Před pár dny Poxoft mě posílal na facebook dotaz, jak převést zdrojový kód z Promethea do TXT na PC. Před mnoha lety jsem musel takto převést zdroják MDOS3, protože už se nevešel a kompilace byla poměrně složitá.
Proto dneska bude krátká ukázka, jak se převádí zdroják z Promíka do AS (či jiného). Já to tedy dělám na MDOS3. Nedělal jsem to v žádném emulátoru, proto pokud tady bude nějaký screenshot, bude to jen sprostá fotka z mobilu. Celý proces je prakticky o tom, že zdrojový kód se vytiskne do sekvenčního souboru.
Krok 1: Start PROMETHEA
Pro buffer sekvenčního souboru bude zapotřebí kus paměti, Promethea je třeba nahrát alespoň od adresy 24500. Na adrese 24000 to nefunguje, při založení hlásí chybu Memory full. Potom nahrajte do něj zdroják.
Krok 2: založení sekvenčního souboru
Je jednoduché: Skočte do Basicu, pokud nemáte volno na disketě, nebo to chcete na jinou, založte ji do mechaniky. V MDOS3 vyberte v NMI menu. Pak příkazem OPEN #3,,“vystup“. Tím připojíte soubor na kanál 3, na který Prometheus posílá tisk.
Krok 3: Tisk
Vraťte se do Promethea a označte oblast, kterou chcete převést. Označuje se tak, že umístíte řádek na jeden konec, stiskněte Extend Mode a pak na druhý konec a znova Extend Mode. Nakonec to celé vytiskneme Print (Symbol Shift + P). Pokud máte ještě kousek binárních dat, které chcete ještě vložit jako defb (defw) tak soubor nezavírejte. Pokud ne, sekvenční soubor zavřete v Basicu příkazem CLOSE #3
Krok 3: Binární data, sprajty
Určitě máte ještě někde mimo kusy binárních dat, které po kompilaci ještě přidáváte do paměti. Myslím nějaké sprajty, masky, fonty a tak. Větší data se na to moc nehodí, znepřehlední zdroják. Kratší data přidáme do zdrojáku.
Nahrajte data do paměti. Ve výpisu v monitoru se zatím data tváří jako chaotický disassembling. Musíme nyní tato data označit tak, aby se vypisovala jako defb (nebo defw). Na to slouží klávesy 1 (defb) a 2 (defw). Na tuto funkci se zeptejte manuálu. Nyní můžete provést zpětný překlad do zdrojáku ss+D.
Nakonec můžete tyto defb části opět vytisknout do sekvenčního souboru.
Krok 4: uzavření sekvenčního souboru
Easy kráječ. CLOSE #3. Na konci toho všeho máme TXT soubor se zdrojákem v sekvenčním soboru:
Krok 5: Převod do PC.
Nejtěžší část. Opravdu. Na reálné D80 můžete použít EI Manager. Pokud se sekvence kratší, pomocí TOOLS128 ji můžete přejmenovat na Bytes a pak převést pomocí PC utils. Jinak nevím. Napadá mě jinak zdroják vytisknout po částech tak, aby výsledné soubory nebyly delší než 64. Postupně je v TOOLS128 změnit, aby měli koncovku B, pak vyexportovat celou D80 do souboru a příkazem d80tap a pak tapto0 a zase 0tobin z toho dostaneme binárku a jako bonus spousty jiných souborů. Nenapadá mě lepší postup. Až jej budu vědět, napíšu.
UPDATE: po konzultaci s velkým odborníkem na D80, MDOS3 a Linux Duškym jsme sekvenční soubor převedli pomocí jeho pluginu do MC. Celou disketu si načteme jako image D80. Duškyho plugin jsem přeložil gcc d80.c -o d80
, potom jsme si zobrazil co je v něm: ./d80 list pokus2.d80
a nakonec vykopíroval: ./d80 copyout pokus2.d80 vystup.zx6 vystup.txt
. Pokus2.d80 je image celé diskety, vystup.zx6 je název té sekvence a vystup.txt je cílový soubor na PC. Složité? Pokud chcete pomoc, klidně mi ten image d80 pošlete.
Potom už jen zbývá předělat ve vašem oblíbeném editoru syntaxi na tu, kterou používá váš kompiler. Můžete zkusit AS
2 komentáre na “Převod zdrojového textu z Promethea do TXT”
Je nám líto, ale formulář pro přidávání komentářů je momentálně uzavřen.
Jak jsem uvedl na FB, na data tj. jakýkoliv soubor, který může být např. obrázek, fonty, již hotový kód, hudba a podobně a potřebuji ho mít ve zdrojáku jako DEFB, tak to už mám vyřešeno krátkým převodníčkem pro Amigu. Pomocí argumentů z toho lezou řádky, jehož začátek zadám jako argument tj. DEFB, dále defaultně lezou hexa čísla nebo argumentem "dec" lezou dekadická, oddělené čárkou samozřejmě, další argument kolik čísel na řádek např. 32. Kvůli TAPkám ještě existuje argument SKIP, který vynechá zadaný počet bajtů tj. začátek souboru, hlavičky atd. před požadovanými bajty k převodu. Výstupem je standartní textový soubor, který stačí překopírovat do zdroje bez jakýchkoliv úprav event. dát jako include "soubor" podle možností v čem se assembleruje. Raději si to švihnu do jednoho. S převodem kódu nebo zdroje z Promethea koukám na Luďkovo nápad a uvidím, jak se s tím poperu. Každopádně SPIN dokáže přeložený kód disnout do celkem normální podoby, až na ty
návěští – to holt se zas musí pustit Prometheus a místo těch vylezlejch adresových návěstidel to udělat ručně. Pokud je to dlouhý zdroj, pak je to vopruz. Nicméně týká se to jednoho dema, takže to vydržim. Všechno ostatní po něm jsem psal už jen ve Spin editoru. Ehm, ano, to demo je uleželý asi dva roky, tak už na něj přišla řada. Luďkovi díky za výše uvedené helpovné 🙂
MDOS3TOOL neumí export souboru z D80 image? Já měl za to, že jo. Pravda, už jsem jej pár let neviděl spuštěného… 🙁