OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 11:08

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 106 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7, 8  Další
Autor Zpráva
PříspěvekNapsal: 22.01.2020, 15:07 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Gratuluji k dobrému nákupu :-). Mě jde o program plotter2 pro PMD. V manuálu k připojení xy4131 pro PMD 85 se píše o programu Plotter2. To je ten 6kB bumbrlíček co se dohrává k basicu PMD 85-2 pomocí ROM 0 a přidává mu možnosti kreslit. Ovšem plotr má asi spolehlivě fungující rozlišení 2550 x 1700 bodů, tedy 25,5 cm na 17 cm po 0.1 mm. PMD má rozlišení obrazně řečeno 10x menší. V příručce je napsáno "zachovává příkaz SCALE i pro grafickou jednotku, jejíž rastr je 1700 na 2550 bodů." No a teď babo raď co to znamená. Buď je 1 bod na PMD 10 bodů v plotru což by přesnost poslalo tam kde záda ztrácí své slušné jméno, nebo se vykreslí obrázek o velikosti pár cm což by dávalo ještě menší smysl. Má teorie je, že autoři to implementovali přes desetinou čárku a tak např. 130.5 značí 1305 bodů na plotru. PMD zobrazí to samé na obrazovce ale plotr využije plně svou přesnost. Případně SCALE se nějak přepočítává ale opět jak, toť otázka a hlavně jak přesný přepočet to je.

Můj problém je, že to je jen má teorie a nemám to teď jak vyzkoušet takže se ptám těch co PMD a XY4131 mají jak to vlastně je. Protože na tom bude založen celý grafický formát dat + interpretace dat v kreslicím programu a editor, nechci to dělat zbytečně špatně abych v létě zjistil že úmysl sice dobrý ale provedení nebylo dobré ;)


Nahoru
 Profil  
 
PříspěvekNapsal: 22.01.2020, 15:56 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 955
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Odněkud jsem ten BASICovský program opsal, ale fakt nevím odkud. Myslím si, že to co maluje plotr na výše uvedeném videu se zobrazovalo patřičně zmenšené na celé obrazovce PMD. Ale v jakém to bylo vzájemném poměru netuším. Možná ho mám ještě doma vytisknutý (namalovaný). Pamatuji si, že se vždycky vykreslila čára na obrazovce a pak se čekalo, až to samé namaluje plotr. Ale jestli byly příkazy zdvojené (pro obrazovku a pro plotr), si opravdu nepamatuji. Zkusím doma dohledat, ale výtisk už možná skončil v propadlišti dějin...

Petr


Nahoru
 Profil  
 
PříspěvekNapsal: 22.01.2020, 17:34 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Příkaz je prakticky jen jeden, ale podle parametru se "tiskne" buď jen v grafice na obrazovce, na obrazovce a plotru a nebo jen na plotru.

Tak mě zajímá jaké rozdíly mezi nimi jsou, hlavně v režimu obrazovka + plotr a plotr samotný. Nějaké zobrazování složitějšího obrázku stejně nemá moc cenu, jen to žere čas. Z logiky věci bych si myslel že tisk jen na plotr bude nejpravděpodobnější pro jeho plné rozlišení. Ideální by bylo definovat si SCALE třeba -5,5,-5,5 aby to byl čtverec a dělat linky s různými násobky X a Y. A potom SCALE 255,0,170,0 to je měřítko 1:10 a to samé. Na obrazovce to bude šišatě ale na plotru by to mělo být přesně.


Nahoru
 Profil  
 
PříspěvekNapsal: 23.01.2020, 19:51 
Offline
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
Z toho, čo som pochopil, aj nahliadnutím do disassemblovaného kódu, tak mierka zvolená príkazom SCALE platí ako pre obrazovku (256x243), tak aj pre ploter (2550x1700). Práve vzhľadom na rozdielny pomer strán navzájom, zrejme nejde zabezpečiť, aby kresba na obrazovke bola "identická" s kresbou na plotri (a naopak).
A vlastne to píšu aj v návode k príkazu SCALE:
Citace:
Pozn.: V daném SCALE nebude kružnice zobrazená na obrazovce kružnicí na papíře, ale elipsou. To je dáno jiným poměrem stran x, y obrazovky a papíru.
V každom prípade, pokiaľ pri mierke napr. SCALE -2,10,-1,1 "neopustím" príkazmi MOVE/PLOT/... zadané hranice, tak bude kresba "rovnaká" na obrazovke, aj na plotri, ale nebude "navzájom symetrická".

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Nahoru
 Profil  
 
PříspěvekNapsal: 23.01.2020, 20:38 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Aha, takže není v obou směrech poměr 1:10 ale poměr odlišný. To je zásadní vědět aby se dalo mluvit o nějaké přesnosti. Že se bude obrazovka lišit je jisté, když jsou různé poměry stran i rozlišení, ale snad alespoň ten režim výstupu pouze na plotr by mohl fungovat 1:1 i když pokud to jde přes BASIC... Tedy 256 bodů do 2550 a 243 do 1700. S tím se už dá pracovat a testovat. Musel jsem teď sice práci na programech chvíli pověsit na hřebík kvůli nemoci ale už brzy zase budu moct začít.

Ještě tak kdyby někdo na reálném hardwaru projel nějaký jednoduchý testovací program na plotr aby se dalo změřit že ty délky linek jsou opravdu v daném poměru x 1:10 a y 1:6,995 k hodnotě na obrazovce. A mě jde čistě jen o přesné kreslení na plotru když se textově zadají definované body, grafické schopnosti PMD zde ani zdaleka nejsou dostatečné k tomu, aby to bylo použitelné. Fyzické rozlišení toho plotru je prakticky až dnešní 2k displej.

Do kreslicích funkcí ještě přidám elipsu, to je taky poměrně chronicky používané a ten její výpočet a parametry co ho ovlivňují nejsou složité a snadno se dají zadat parametricky, předpokládám stejnou "rychlost" výpočtu jako pro kruh, tedy nízkou :lol: . To si otestuju snad ještě dnes.

Po self-brainstormingu jsem dospěl k názoru, že příkazy na kreslení budou stačit jednopísmenné a oddělovat je budu středníkem. A jako první vstup do programu po rozlišení příkazu bude typ čáry, bylo by vysloveně škoda to nevyužít, že může být až 4+1 uživateluv typ čar. Protože se takhle dá nastavit čára uživatelsky, mohlo by jich být definovaných víc, jen by se ta uživatelova dynamicky měnila, to je jeden příkaz.

Edit: No to jsem si s elipsou dal... parametrické vyjádření ještě dobré ale PMD to nějak nedává :puke: Výsledek se nápadně podobá hodině kreslení "váš oblíbený symbol" v satanistické sektě mentálně retardovaných :lol:. Tuto asi snadná cesta nepovede. Poté co se vnitřek zblázní a vyškrtá spojenými čarami ale dojde k dovykreslení obvodu elipsy, takže možná je to jen nějaký šum v tranzistorech spojený se zaokrouhlováním apod. Ta vnitřní mazanice se totiž opakuje nezávisle na tvaru elipsy.


Přílohy:
Elipsa2.png
Elipsa2.png [ 9.73 KiB | Zobrazeno 10027 krát ]
Elipsa.png
Elipsa.png [ 13.05 KiB | Zobrazeno 10027 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 23.01.2020, 23:27 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 955
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
A není zbytečné vymýšlet nové jednopísmenné příkazy pro kružnici, čáru, křivku, ... když existuje HPGL? Pokud si budeš chtít nakreslit nějaký, již hotový HPGL soubor, budeš ho pracně převádět do "jazyka svého kmene". Ale proti gustu...

Program v BASICu jsem našel (namalovaný plotrem) a kreslení na plotru i obrazovce provádí jeden identický příkaz - není tam nic speciálního. Stále si myslím, že se čára prvně vykreslila na displeji a pak se čekalo na plotr, až jí zvládne taky. A jak píše rombor, SCALE platí stejně pro obrazovku i plotr v rámci jejich fyzických rozlišení.

Chtěl jsem to dneska vyzkoušet, ale PMD nejdřív dost vytrvale stávkovalo (stejně tam je ještě někde studeňák) a když se mi ho konečně povedlo roztlačit proti kopci, nekomunikovalo mi s plotrem. Tak snad někdy příště.

Kód:
30 DIM P(50),Q(50)
40 GCLEAR : SCALE 0,100,0,100
50 PRINT "VLOZ POCET VRCHOLU N:";
60 INPUT N
70 PRINT "VLOZ STRED OPSANE KRUZNICE (X,Y):";
80 INPUT X,Y
90 PRINT "VLOZ POLOMER OPSANE KRUZNICE:";
100 INPUT R
105 GCLEAR
110 PI=3.1415926
120 FOR I=1 TO N
130 J=PI/2+I*2*PI/N
140 P(I)=R*COS(J)+X
150 Q(I)=R*SIN(J)+Y
160 NEXT I
170 GOSUB 200
180 END
200 FOR I=1 TO N-1
210 FOR J=I+1 TO N
220 MOVE P(I),Q(I)
230 PLOT P(J),Q(J)
240 NEXT J
250 NEXT I
260 RETURN


Petr


Nahoru
 Profil  
 
PříspěvekNapsal: 24.01.2020, 00:33 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Začnu od konce :-). Jestli na PMD čára o souřadnicích 0,0;255,0 se na plotru vykreslí po celém rozsahu papíru osy X a 0,0;0,243 po celém rozsahu pera osy Y a desetinná místa mezi jednotlivými body bude plotr fyzicky vykreslovat, tak to mi stačí protože se už dá vyjádřit přesná souřadnice na papíru když známe 1 krok plotru = 0,1mm.

Ad zbytečné vymýšlení... no je a není. Protože a) jak ten HPGL soubor chceš do PMD fyzicky dostat? PMD 32SD padá, místo na její ovladač si zabere plotr. Tedy růčo a kazeta,síť nebo vypípání. Síť zatím fyzicky a softwarově neexistuje, fyzická kazeta asi nemá dnes už moc smysl. Tak pípat z virtuální kazety, kterou s níže uvedeným přístupem snadno vytvoříš i upravíš v emulátoru bez jiných sw pomůcek. A já jsem moc laik na to abych to rozjížděl na nějaké profi úrovni, bohužel. Šlo by to, pomocí editoru (i ten paralelně tvořím, bez něj to nejde) co ti vytvoří pole naplněné HPGL, ale proč to tak zatím nedělám viz dále.

Basic, ve kterém to píšu protože ten ovladač plotru funguje s ním je z našeho pohledu uživatelů silně omezený, nativně načíst, upravit a uložit sám o sobě umí právě jen pole. Jelikož ho chci upravovat i z fyzického PMD, zbývá jedině pole. A tady je druhý problém b) hustota informace vs. velikost souboru. Na 1000 jednoznakových příkazů=čar/objektů ušetříš 1000 bajtů, to je dalších odhadem 30-50 čar. I pole samotné je značně bobtnavá věc. Každý znak ušetřený v poli znamená cca 4 znaky celkově z RAM.

Vzhledem k rozsahu paměti PMD 85-2 je každý kilobajt vzácné koření a ten program samotný jistě naroste na slušnou velikost, protože Basic je všechno jen ne paměťově úsporný. Nerad bych se dostal do situace jako kdysi Mr. Fuka co se rozepsal s textovou hrou a v půlce mu došla RAM :lol:. Pole má ještě výhodu že se dá přesně definovat kde jsi, tedy můžeš z něj a do něj vypisovat a ukládat řetězce a dá se automatizovaně nahrát pole nové. Tedy i při velikosti cca 1 kB dat můžeš do PMD postupně dostat až 99 různých souborů (a když to necháš přetéct nebo s tím počítáš od xzačátku, tak prakticky nekonečně) což činí už dost slušnou datovou kapacitu. I ta velikost je vybraná schválně - 47x21. To se ti totiž celé vejde na obrazovku a ještě máš řádek na editaci.

Tohle se dá brát jako jakási betaverze formátu, zda to vůbec bude fungovat dostatečně dobře aby se vyplatilo vůbec uvažovat o tom to celé finalizovat. Implementovaných HPGL příkazů bude stejně jen pár, většina z nich je zbytečná nebo vůbec neimplementovatelná, to XY ty funkce prostě nemá. Jediné XY co HPGL nativně tak nějak po socialisticku umí je 4160 a to se stejně připojovalo už k PC.

Zároveň je to takto nejméně náročné na algoritmus a podmínky, protože se pracuje vždy jen s 1 znakem, tedy jsme zpět u objemu dostupné RAM. Myslím si, že poté napsat i v nějakém shellu skript co zamění v souboru HPGL všechna "LI" za třeba "A" a následně vyškrtá vše co "není v seznamu" je snadnější, než implementovat HPGL do Basicu PMD 85 kvůli jeho omezením a škrabat se ve vlasech jak ten soubor tam vlastně dostat. Prostě takové to PMD je...

Samozřejmě diskusi se nebráním, ani případným změnám, pokud budu přesvědčen o jejich výhodnosti a proveditelnosti, ideálně podloženým funkčním kódem.

Zkus otestovat tento program - rutinu vykreslení kruhu:
Kód:
0 REM Kruh
10 GCLEAR
20 SCALE 0,255,0,170
30 PRINT AT 3,3 "Napis na kolik stupnu presnosti pocitat"
40 PRINT AT 4,3"1=nejvic,180 nejmene a jaky polomer."
50 Z=.01745329:PI=3.14159265
60 INPUT O:INPUT R:H=O*Z
70 PRINT AT 5,3"Zadej souradnice X a Y v rozsahu 0-255 a 170"
80 INPUT X:INPUT Y:MOVE R,Y
90 FOR I=0 TO 2*PI+0.017STEP H
100 A=X+R*COS(I)
110 B=Y+R*SIN(I)
120 PLOT A,B
130 NEXT I


Nahoru
 Profil  
 
PříspěvekNapsal: 24.01.2020, 09:11 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 955
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
OK, v pohodě, jen se zeptám, jak chceš do PMD dostat soubor ve tvém grafickém formátu? Řekl bych, že stojíš před úplně stejným problémem. Lze napsat v PMD (očistec), nahrát na kazetu a zpátky. Uff...

Se šetřením paměti máš pravdu, interpret jednoznakových příkazů zabere méně místa než interpret dvojznakových. O tom, že by v paměti byl načtený celý soubor najednou, jsem vůbec neuvažoval. Samozřejmostí je sekvenční načítání po blocích známé velikosti (diskové systémy fungují stejně - načítají sektory). Když blok zpracuješ, není již potřeba a může se přepsat dalším. Ve svém interpretu HPGL používám pouze příkazy PU (PenUp - samostatně nebo se souřadnicemi), PD (PenDown - dtto.), PAx,y (PlotAbsolutly) a SPn (SetPen). Nic víc a zatím jsem vytiskl (namaloval) všechno, co jsem chtěl (zde na fóru zveřejněné soubory určitě).

Ušetřit místo v paměti lze i násobnými parametry - např. PD10,10,100,100,50,100 což v podstatě znamená PD10,10;PD100,100;PD50,100 - pokud kreslíš na sebe navazující linky (lze aplikovat i na jednopísmenný interpret), ale tady už nevystačíš s pevným rozměrem pole.

Ve Shellu si samozřejmě převodní skript napsat můžeš, ale jsi opět před problémem, jak zkonvertovaný soubor do PMD dostat.

Nechci tě přesvědčovat, že HPGL je jediné správné řešení, odvedl jsi opravdu veliký kus práce a máš můj obdiv, jenom mi přijde škoda tento potenciál nevyužít pro již zaběhlý a léta funkční souborový formát.

Petr


Nahoru
 Profil  
 
PříspěvekNapsal: 24.01.2020, 10:51 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Napsat to nejsnadněji prakticky jde tak, že si napíšeš na PC soubor a pošleš ho emulátoru Alt+B v editoru (název GRAFEDIT). Klíčovou pasáž pro vstup řetězců mi nedávno poslal rombor. Ten vytvoří a naplní pole (47 znaků je totiž maximum zobrazené na 1 řádku tak to pořád uvidíš). To pole po zaplnění uložíš a proceduru opakuješ s dalším souborem. Je to pracné ale lepší řešení mě zatím nenapadá protože PMD je bohužel tak jedinec s inteligencí dítěte poplatně době vzniku vybavené na ukládání dat a tvůrce disketovky i plotru použil stejnou část RAM pro 2 různé ovladače takže se 2 nejužitečnější periferie k PMD nedají použít společně ( :hammer: ). Nejlepší by byla funkční VARIEL síť a přenos dat po sériáku. I verze 2 má podporu přenosu po 128 bajtech á la terminál (to je několik příkazů, 3-4, krátkých i 5) ale podpora přenosu dat na síti teď vůbec neexistuje. Možná větší znalci PMD navrhnou něco vhodnějšího. Osobně nejvíc ideově funkční mi to přijde právě s tou sítí od EC 1041.01 a pak COM port do PC. Na to jsem zamýšlel z PMD udělat defakto jen řídící elektroniku toho XL4131 - na "COM portu" by poslouchalo a kreslilo co mu pošleš a uživatelský vstup z klávesnice PMD by byl minimalizován. Byla by z toho defakto taková jednoduchá tiskárna.

Co se toho HPGL týká, možná mluvíme "jeden o voze a druhý o koze" - já bohužel teď nemám plotr XY k dispozici abych si mohl vyzkoušet jeho ovládání tak si na základě přečteného návodu k použití grafické jednotky ve spolupráci s PMD od Romana Bórika domýšlím chování toho ovladače protože ty basicovské kreslicí vzorové prográmky ani jeden neobsahují ty nejzákladnější příkazy pro spuštění pera, jeho zdvih apod.

Jak tomu rozumím, tak přímo interpretr HPGL není potřeba vyrobit - ten Basicový kreslicí program co píšu (můj originální název PMDGRAF :D ) co využívá zatím to pole s příkazy je vrstva NAD ovladačem plotru (pojmenovaný PLOTTER/2) co modifikuje origiální Basic G. A ten toto skutečně řeší na úrovni impulzů do stran i spouštění/zvedání pera. Ovšem to celé si z pohledu uživatele řídí sám, Basic přímo nepodporuje tyto povely typu spusť pero zvedni pero. A jako uživatel můžeš pomocí POKE měnit jen pár věcí v tom ovladači jako je rychlost psaní a pohybu hlavy bez psaní, rozteč mezi řádky...

Pro nás coby uživatele jen příkaz PLOT už automaticky znamená pro plotr najeď v daném SCALE na X,Y sklop pero na papír a jeď směrem dle příkazu a na konci zvedni pero, takže to vůbec nemusíme řešit. On umí i to absolutní a relativní posunutí pomocí MOVE x,y či MOVE *x,*y byť se tam kumulují chyby a není přesně popsané jak si to počítá. Tak jsem to radši pro začátek "neimplementoval" ale to se rovná pouze nepoužil, ta funkčnost v tom ovladači je přítomná.

Takže se můžu soustředit na to, co vlastně chci (a můžu) jednoduchým příkazem vykreslit a tady se objevují ty grafické primitivy á la HPGL, ovšem v BASICu. Z toho mi dále vyplývá že re-implementace 90% HPGL je prakticky zbytečná, stačí jen grafické příkazy typu nakresli čáru, kruh, výseč,elipsu apod. a využívat možnosti toho Basicu. Protože zkus definovat v 1 příkazu elipsu či křivku nebo i mnohoúhelník pomocí řady úseček.

Co se nějaké případné rozšířenosti týká, pochybuju že v ČR bude víc uživatelů této kombinace než obrazně řečeno my dva až to (snad nějak) dám dohromady. A je řádově snadnější napsat převodník HPGL na velkém PC, co si vytahá těch 10% použitelných příkazů a převede je do řeči plotru. Když bude hodně RAM, může se to následně napsat na ty příkazy ale tady narážíme na limity toho co Basic PMD umí. Samozřejmě by se jistě dalo napsat to znovu ve strojáku ale to bys musel napsat skutečně úplně vše, opravdový HPGL interpret i samotný kreslicí program tak aby neměl problém s externím úložištěm dat a to je zcela mimo moje znalosti a schopnosti a myslím že to ani nemá smysl, protože to XY připojíš snadno i k PC přes LPT/COM a můžeš na něj tisknout řádově pohodlnějí.


Nahoru
 Profil  
 
PříspěvekNapsal: 29.01.2020, 23:39 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Tak první část editoru souboru, kdy se otevře a ručně edituje již existující "soubor" - pole je návrhově hotová. Část pro vstup dat do nového souboru ještě musím udělat ale to budu řešit cestou vkládání řetězců dle romborova návodu takže se bude moct vkládat pěkně automatizovaně, přes emulátor.

Jinak to funguje až překvapivě hezky a na hrubý text bez nějakých velkých výmyslů ve stylu každé písmeno jinak by to mohl být i základ textového editoru. Protože XY podporuje textový režim ve stylu elektrického psacího stroje, nenechám tento princip využití pole zapadat prachem - mít to ve stejné velikosti, tisknout a editovat by se tak dalo už dost snadno včetně rotace, změn velikosti fontu apod.


Přílohy:
Editace pole 2.png
Editace pole 2.png [ 35.29 KiB | Zobrazeno 9845 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 01.02.2020, 00:23 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Tak proběhl další pokrok v tvorbě editoru GRAFEDIT - už se dá vytvořit nové pole, to následně uložit, nahrát a editovat ručně i automatizovaně vstupem přes Alt+B v emulátoru. Už to jen dočesat do vzhledu a otestovat a editor bude hotový :-). Nakonec budou pole 2 aby se při případném přetečení příkazu z prvního pole do druhého data umístily hned do toho druhého a pak se mohlo pole 1 bezpečně uložit a pokračovat v druhém.


Přílohy:
Grafedit1.png
Grafedit1.png [ 11.21 KiB | Zobrazeno 9755 krát ]
Grafedit2.png
Grafedit2.png [ 38.63 KiB | Zobrazeno 9755 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 02.02.2020, 18:33 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Tak jako vždy když už to vypadá tochu optimisticky, PMD nezklame :lol: Tentokrát jsem zakysnul na uložení jména pole a jeho automatizovaném selektivním načtení. :slap: Na uložení sice PMD podporuje jméno, ale jen do uvozovek za příkaz tedy DSAVE d;A(0,0)"Jmeno". d znamená číslo pole (jediný použitelný údaj pro nahrávání), A(0,0) znamená ulož pole "A" od pozice (0,0). Problém zatím je jak dostat text do těch uvozovek, protože string mi v tomto případě nechce fungovat - neuloží se nic. Je to stejně jen spíš pro uživatele, PMD z toho moc nemá, protože...

...příkaz DLOAD. Ten má formát DLOAD d;A(0,0) a toť vše. Žádné jméno souboru se zadat pro jistotu nedá, jedině číslo. A to ještě ve formátu 01 a výše, jen "1" BASICu pro nahrání pole 01 nestačí.

Tedy pokud náhodou někdo neznáte nějaký hack jak to očurat, tak to zatím vypadá že jméno bude leda tak pro uživatele při vytvoření pole ve virtuálním přehrávači ale nahrávání bude muset být založené čistě na číslu pole 00-99. To mě moc netěší protože automatizace tím samozřejmě jde do kopru, ale co se dá dělat.


Nahoru
 Profil  
 
PříspěvekNapsal: 02.02.2020, 20:37 
Offline
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
PMD 85 (žiaľ) pri hľadaní súboru na páske používa iba číslo záznamu a jeho typ. To "meno", ktoré je možné v príkazoch MGSV (Monitor), SAVE, DSAVE (BASIC) zadať, je iba maximálne 8 znakovou "poznámkou". Naviac, v samotnom BASICu nie je tá časť príkazu vyhodnocovaná ako výraz (čím by bolo možné použiť aj reťazcovú premennú), ale (nepochopiteľne) iba ako "obyčajný text".

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Nahoru
 Profil  
 
PříspěvekNapsal: 02.02.2020, 21:48 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
Nojo, tak jsem upravil loadovací utilitu aby jméno tam bylo ale aby se dalo hlavně zadat číslo nahrávky a tím to hasne. Když si vezmu kolik uživatelů ten program asi tak bude mít, tak taková drobnost jako muset nahrávat první pole ručně už se ztratí. Když to bude na virtuální pásce za sebou, kde se to dá lehce editovat co se jména i čísla týká, tak ty čísla taky stačí. Jen škoda že se nedá uložit ASCII, to by byla ideální forma, takhle je z 1 kB dat 4,1 kB pole a balastu. Už mi funguje načíst pole, zobrazit, editovat případně smazat a uložit znovu přes čísla.


Nahoru
 Profil  
 
PříspěvekNapsal: 08.02.2020, 21:50 
Online
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3766
Has thanked: 269 times
Been thanked: 452 times
První beta verzička editoru je dokončená. Už v tom sám moc chyby kvůli autorské slepotě nevidím, tak kdo má zájem, můžete se na to podívat a případně pohledat chyby nebo přispět nějakým nápadem (ideálně ve formě odladěného Basic programu, vizí z televizí mám sám dost ;) ) . Ovládání je ještě trochu kostrbaté a program běží kvůli Basicu docela pomalu, za připomínky a případné optimalizace budu rád. Jméno pole je momentálně dost irelevantní kvůli vlastnostem PMD BASICu ale možná by to šlo nějak přilepit pomocí podprográmku ve strojáku, co by text názvu přilepil za příkaz na správné místo do RAM, což já nezvládnu. Největší machrovinka by bylo donutit ukládací utilitu aby uložila data ve formě ASCII souboru a zbavit se nutnosti ukládat 3 ze 4 kB pole ve formě popisků dat zbytečně. Protože pole je fixní a vždy stejné a vytváří se na začátku programu, tak by to teoreticky mělo být možné napsat. V dnešní době virtuálních pásek to sice není problém ale na fyzické kazetě 75% balastu z celého objemu dat je poměrně dost.

Ještě taky není implementované automatické překlápění z pole A do pole B když se pole A zaplní daty protože jde text vkládat automatizovaně jako jeden dlouhý řádek přes alt+b.

Program je psaný v emulátoru tak kdo má možnost vyzkoušet na živém hardwaru, budu rád když se potvrdí že to taky běhá. Tam může být problém s pohybem kurzoru nahoru a dolu, pro živé PMD bez Keyface plánuju využít klávesy |<-- a -->| coby směr nahoru a dolů.

A jedná se jen o editor, na tisk bude úplně jiný program a formát dat taky ještě není vyřešený. Na druhou stranu si tak můžete psát třeba 8bitový deníček malého masochisty, tuto funkcionalitu už to poskytuje :D.


Přílohy:
GRAFEDIT v0.6.zip [5.28 KiB]
385 krát
Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 106 ]  Přejít na stránku Předchozí  1, 2, 3, 4, 5, 6, 7, 8  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz