soubor.trd
nebo soubory typu .$?, kde '?' je libovolný znak (nejčastěji 'b','c')
soubor.trd
, pak použijte ulilitu
, kterou tu dám taky. Vzniknou výše uvedené soubory (tzv. hobety).
Délka těchto hobet se liší podle toho, jak je autor sestavil. Buď to budou tzv. Overlaye, ve kterých je "schováno" více souborů, takže taková hobeta má pak třeba 50-60 kB.
Takové hobety se poznaji buď zkušeností, nebo tak, že se všechno nahrává z Basicu; pak Overlay být použit nemůže. Pak stačí jen tyto hobety převést utilitou
do formátu
soubor.000
, který snadno převedete
EIM-kem na Speccy (Import-Zxs emul)(Pokud máte D80, pokud Mb-02+, tak do .tap, a pak nějakým konvertorem do ZX.).
No, popíšu zde postup, kterým procházím já.
- Já jsem si proto vytvořil takové utilitky, které Vám teď předkládám -
Jsou bohužel pro PC/MSDOS....
Pomocí nich si jednotlivé Overlaye pěkně spojíte tak(sekvence hobet musí být tatáž jako na disku(.trd)!), že nebudou mít ty 17.bajtové hlavičky na začátku, dále pak tam je program na vysekávání fajlu, jak potřebujete, a nebo prográmek na vysekání většího množství fajlů se standardní délkou(vhodné pro vysekávání animací). Stačísi tedy zjistit z úvodního basicu(vyseknete si třeba 2kila ze začátku toho spojeného fajlu a loadnete ho na adresu 23867, a tam zkoumejte BASIC, a podle loaderu níže popsaného si vysekávejte postupně fajly. Je to jednoduché....
Samotný počátek Basicu a kódu hobety začíná na adrese 24217. Další důležitou vlastností Betadisku je, že posouvá BASIC o 112 bytů výš, tedy první řádek nezačíná na adrese 23755, ale na adrese 23867!, takže pokud používáte Devastaci+ (co jiného ? :)), tak si LDIR-nete (24217,prvni_délka)->>23867 a pak si to od adresy 23867 prohlédnete jako BASIC a zjistíte, jaké RANDOMIZE USR spouští loader.
Loader pak povetšinou začíná klasicky smazáním obrazovky, vždy tam je sekvence pro nějakou inicializaci pro load (ld hl,51769, ld (někam),hl)- tohle ignorujte, a pak někde začne samotný loader. TR-DOSovský loader má tuto strukturu:
ld hl | kam_nahrávat_blok |
ld de | pozice_na_disku (u drtivé většiny se o toto nemusíte starat) |
{d-stopa (0-80 ??), e-sector (0-15)} | |
ld bc | kolik sektorů a číslo služby TR-DOSu. |
b-kolik sektorů*256 (1sekt=256B) | |
c-číslo služby (5-load) | |
call 15635 | (nebo call svůj LOAD) |
Pr.: Když se má nahrát blok o délce 512B na adresu 25000, tak rutina bude vypadat takto:
ld hl, 25000
ld de,(23796) {z té adresy se to tahá}
ld bc,512
call 15635
- když tam nebude call 15635 a bude tam call na svůj load, tak ta rutina na svůj LOAD bude mít někde jp 15663(4) nebo tak (prostě hledejte sekvenci (47,61-15663, nebo 19,61-15635))
Doufám, že si tohle někdo přečte a že mu to nějak pomůže.
Stránka byla už zobrazena: 103 ×
Aktualizováno: 23. 5. 2018, 06:22
Stránka načtena za 0.00204 sekund.