OldComp.cz http://oldcomp.cz/ |
|
Přenos programu v BASICu do emulátoru http://oldcomp.cz/viewtopic.php?f=134&t=6099 |
Stránka 1 z 1 |
Autor: | lukz [ 15.03.2018, 15:11 ] |
Předmět příspěvku: | Přenos programu v BASICu do emulátoru |
Nahrát existující binární program v emulátoru je celkem snadné. Pomocí virtuálního CMT můžeme nahrát soubor mzf nebo mzt. Případně je možné využít virtuální Quick disk a nahrát soubor mzq, nebo opět mzt (přípona se liší podle použitého emulátoru). Pokud připravíme nový program, v textové formě, jaké jsou možnosti přenést ho do emulátoru? Bez speciálních nástrojů máme vždy možnost přepsat ho ručně. V emulátoru EmuZ-800 je navíc funkce Paste, která podle textu ve schránce simuluje stisky jednotlivých kláves. Přenos to usnadní výrazně. Je ovšem potřeba dát pozor na to, že interpret BASICu potřebuje čas na uložení nové řádky do paměti, takže po vložení dlouhé řádky nějakou dobu na další stisky kláves nereaguje. BASIC verze 1Z-016 a 5Z-009 umí také číst datové soubory, které obsahují text programu jako sekvenci programových řádek, v textovém formátu. Tato data mají na pásce trochu odlišnou strukturu od standardních binárních dat. Také na QD disku mají odlišnou strukturu od normálních souborů. Takovýto datový soubor můžeme použít pro snadnější přenos textu programu z PC do emulátoru. Musíme ovšem nejprve vyrobit obraz dat použitelný pro virtuální CMT nebo virtuální QD. Použití QD se jeví jako lepší cesta, načítání z něj je rychlejší než z CMT. Navíc myslím zatím neexistuje žádný nízkoúrovňový formát popisující obsah pásky, který by emulátory podporovaly. (Datové soubory pro CMT zatím můžeme jen napodobit pomocí normálních souborů - při malé délce mají binární i datové soubory strukturu stejnou). Tímto příspěvkem tedy oznamuji, že jsem si připravil aplikaci, která tento převod provede. Tj. jako vstup je dodán text programu, jako výstup je připraven binární obraz Quick disku s jedním datovým souborem. Z virtuálního QD je možné ten soubor načíst příkazem LOAD"PRG",A . Pro vyzkoušení v on-line verzi na https://lukq.github.io/mz-basictoqd/Basictoqd.htm Jestli někdo ještě píšete programy v BASICu, tak dejte vědět. Případně tipy na zajímavé programy, které by šly na Sharpu vyzkoušet. |
Autor: | Milsa [ 15.03.2018, 18:02 ] |
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru |
Mám skúsenosti so schránkou. Urobil som to vo svojom emulátore, ale nefungovalo mi to. Zrejme si to pýta veľa ladenia. Niektoré písmená mi preskočilo aj keď som mal veľmi dlhý čas medzi jednotlivými písmenami. Naopak veľa písmen to zobralo aj pri vysokej rýchlosti, takže neviem, kde mohol byť problém. S Quick Diskom je menší problém. Dodnes nebol uvoľnený presný formát súboru a neviem presne ako vznikol Zdeňkov QD formát. Ja som vo svojom emulátore použil formát od autora iného emulátora. V podstate som mal kompletnú emuláciu QD hotovú, len mi to nevedelo zosynchronizovať dokopy a jednoducho mi to stále hádzalo chyby. Potom som sa dostal k zdrojáku emulácie QD a zistil som, že všetko som mal dobre, až na synchronizačnú značku, pretože tá nebola dobre popísaná v dokumentácii. Tvorbu značky som "okopíroval" z cudzieho zdrojáka a zrazu mi celá emulácia začala fungovať naplno. Problém je, že tento formát nie je kompatibilný so Zdeňkovým a Michalovým. Takže som za to, aby sa sprístupnili nejaké informácie o emulácii QD, aby sme neštiepili formát. Osobne to vidím tak, že najlepšie by bolo prehodiť to do BASIC kódu a dá sa to načítať kdekoľvek. Doplnené: Aby som nebol nevďačný, spomenul som si na meno autora. Bol to formát Michala Medeka, ktorý použil vo svojom emulátore. Ide o to, že môj formát bol identickou kópiou jeho formátu, len to nefungovalo a to som ešte nevedel, že sa k nejakému zdrojáku dostanem. Takže Zdeněk zrejme emuluje presnejšie, lebo vo svojom formáte má toho trochu viac (jeho začiatok disku je v súbore posunutý ďalej). Neviem, či som to vysvetlil presne, dúfam, že sa to dá pochopiť. |
Autor: | lukz [ 15.03.2018, 19:09 ] |
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru |
Ještě doplním, že při načítání zdrojáku jako datového souboru je možné psát zdroják ve stejně volné syntaxi, jako při zadávání v obrazovkovém editoru. Tj. na mnoha místech je možné ubrat mezery a identifikátory lepit za sebe, na druhou stranu skoro všude je možné mezery přidávat. Takže všechno tohle je platné: Kód: 10PRINT 21 Rozpoznávají se také zkratky, např. F. jako FOR a N. jako NEXT.20 P=21:PRINTP 30 ? 2"1" Na vyzkoušení jsem připravil krátký prográmek, který "něco dělá", a ukazuje syntaxi Sharp Basicu. Kód: 1 REM PRIKLAD, BINARNI SCITANI
2 A=341:B=342:C=A+B 3 F.I=1TO3:?:?MI.(" +=",I,1);:A=A/512 4 F.J=0TO9:?A AND1;:A=A*2:N.:A=B:B=C 5 N. |
Autor: | Mikes21 [ 15.03.2018, 21:19 ] |
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru |
Jo, ve stare verzi emulatoru to opravdu bylo hodne nekompatibilni. Ale jak sel cas, tak vznikla opravena verze, ktera se vice podoba Zdenkove verzi. I kdyz i to je ponekud jine nez v realu. Asi nejpresnejsi format je v soucasne verzi implementovany v emulaci QD v unikarte. Funguje tam samozrejme formatovani i zapis. A taky neco jako oversizing az do cca 120kB. Ale neni problem dostat neco z/do QD image. Takze by bylo mozne textovy soubor nahrat do QD image, pak s nim pracovat treba v Sharpu s unikartou a potom gto zase exportovat do PC. Podobne se da pracovat s image RAMdisku. P.S.: Za nedlouho bude setkani sharpistu, tak by se tam dal udelat na toto tema workshop. Urcite tam bude dost lidi, kteri s tim maji zkusenosti. A treba z toho nekdo udela zaznam |
Autor: | Milsa [ 15.03.2018, 21:46 ] |
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru |
Tak to som riadne zaspal dobu, ja si pamätám ešte časy, keď Unikarta ťahala z akože obrazu QD zavádzač a to bola celá emulácia. Ďakujem za informácie. |
Autor: | wankes [ 15.03.2018, 23:09 ] |
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru |
Basic na MZ má přece příkaz MERGE takže by bohatě stačilo, kdyby člověk mohl napsat třeba v PSPadu program v Basicu a emulátor by ten soubor uměl "připojit" načíst. |
Autor: | lukz [ 16.03.2018, 15:20 ] |
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru |
BASIC je jazyk pro snadné experimentování. Měl umožnit lidem vzít nějakou ideu a vyjádřit ji jako program prováděný počítačem. Jedna z ideí, co se mi v poslední době líbila, zahrnovala pohyb robota po dvorku a kladení značek. Připravil jsem tedy simulaci v BASICu a přidávám ji jako další ukázkový program. Kód: 30 REM SIMULACE ROBOTA KARLA
31 DA.1,0,1,0,1,0,1,1,0 32 DA.1,0,1,0,1,0,1,0,1 33 CLS:DIMA(9,9),O$(99),S(9) 34 F.Y=7TO8:F.X=1TO9:READA(X,Y):CURSORX,Y:IFA(X,Y)?"1" 35 N.:N. 36 READO$(I):IFO$(I)I=I+1:GOTO36 40 X=9:Y=X:DX=1 41 F.L=1TO9:P$="POZICE":GOSUB66:N.:END 66 I=0 67 IFO$(I)<>P$I=I+1:GOTO67 69 REM PROVED PRIKAZ 70 I=I+1:P$=O$(I) 71 CURSOR0,11:?I":"P$;:IFP$="KDYZ"I=I+2:?" "O$(I-1)" "O$(I)ELSE?SPC(10) 72 IFE=0:CURSORX,Y:?MI.("^_ \xc6ü",2*DY+DX+3,1);:WAIT500:CURSORX,Y:IFA(X,Y)?STR$(A(X,Y)):WAIT500ELSE?" ":WAIT500 73 IFP$<>"KDYZ"IFP$<>"JINAK"GOTO77 74 IFEGOSUB70:GOTO70 75 IFP$="KDYZ"AND(O$(I-1)="JE"XORA(X,Y)=0)ORP$="JINAK"ANDKGOSUB70:K=0:GOTO70 76 E=1:GOSUB70:E=0:K=1:GOTO70 77 IFP$="KONEC"RETURNELSEIFEGOTO70 78 IFP$="KROK"X=X+DX:Y=Y+DY:GOTO70 79 IFP$="VLEVOV"T=DX:DX=DY:DY=-T:GOTO70 80 IFP$="POLOZ"A(X,Y)=A(X,Y)+1:GOTO70 81 IFP$="ZVEDNI"A(X,Y)=A(X,Y)-1:GOTO70 82 S(J)=I:J=J+1:GOSUB66:J=J-1:I=S(J):GOTO70 90 DA.HORNI 91 DA.VLEVOV,KROK,KROK,VLEVOV,VLEVOV,KDYZ,JE,ZNACKA,KROK,KROK,POLOZ,KONEC,JINAK,KROK,KROK,KONEC,VLEVOV,KONEC 92 DA.DOLNI 93 DA.VLEVOV,KROK,VLEVOV,VLEVOV,KDYZ,JE,ZNACKA,KROK,POLOZ,KONEC,JINAK,KROK,KONEC,VLEVOV,KONEC 94 DA.PRENOS 95 DA.VLEVOV,VLEVOV,KDYZ,JE,ZNACKA,ZVEDNI,KDYZ,JE,ZNACKA,ZVEDNI,KROK,POLOZ,KONEC,JINAK,POLOZ,KROK,KONEC,KONEC,JINAK,KROK,KONEC,VLEVOV,VLEVOV,KONEC 96 DA.POZICE 97 DA.HORNI,DOLNI,PRENOS,KONEC 98 DA., |
Autor: | Mikes21 [ 16.03.2018, 15:39 ] | ||
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru | ||
Dobry, taky prikladam jeden pokus na robota KARLA. Vzniklo to v dobe, kdy tento jazyk slavil nejvetsi slavu - cca v roce 1986. Tahleta verze je zavisla na BASICu pro MZ-800. Jeste, pri tom prenosu textu z PC do Sharpa je potreba davat pozor na znaky, ktere Sharp zobrazuje jinak. Treba ruzna pseudografika a tak. Tyka se i opacneho smeru.
|
Autor: | lukz [ 16.03.2018, 16:39 ] | ||
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru | ||
Pěkné, to je dokonce kompletní implementace Karla. Povedlo se mi to v ní také nasimulovat.
|
Autor: | lukz [ 12.04.2018, 23:31 ] |
Předmět příspěvku: | Re: Přenos programu v BASICu do emulátoru |
I kdyz to neni potreba (protoze na to program uz existuje), tak jsem si pripravil program i pro opacny prenos. Tj. prevod binarniho souboru zpet na zdrojovy text BASICu. Je tedy mozno prenaset data "do" i "z" binarniho formatu. Prevod textu na datovy soubor pro QD: https://lukq.github.io/mz-basictoqd/Basictoqd.htm Prevod binarniho souboru na text: https://lukq.github.io/mz-basictoqd/Listbasic.htm |
Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |