FORMÁTUMOK

A CAS kazettás file formátum viszonylag kis méretet tesz lehetővé, és kompatibilis majdnem az összes TRS-80 emulátorral is. A file azt a bitfolyamot tartalmazza byte-onként csomagolva, amit a kazettakezelő rutin megpróbált a szalagra írni és nem a tényleges megnókimeneti jeleket. A formátum gyakorlatilag egy az egyben a magnó portra küldött bitek byte-okba csomagolt formája, és tartalmazza az összes szinkronmezőt is. Ennek az az oka, hogy néhány TRS-80 emulátor a CAS file-ok töltését/mentését nem ROM csapdákkal oldotta meg, hanem a kazettaportra küldött jelek valósidejű futáskori mérésével, így valójában az eredeti ROM rutinjai dolgoznak az emulátor helyett.

A CAS formátum BASIC programok esetén

Minden BASIC program a 17129, azaz 42E9h címen kezdődik (erre mutat a 16548-16549, azaz 40A4h-40A5h címen lévő mutató). A BASIC program végére a memóriában (vagyis EOF mögé) a 16633-16634, azaz 40F9h-40FAh címen lévő pointer mutat.

A következő táblázat a Level II BASIC által elmentett formátumot (ld. CSAVE parancs) mutatja be:

 
0-254
00h ... 00h
255 darab nulla byte
255
A5h
Szinkron byte
256-258
D3h D3h D3h
BASIC fejléc byte-ok
259
nn
Program név (1 karakteres)
BASIC 
soronként 
ismétlődő
adatok
nlL nlH
(address pointer)
Következő BASIC sor címe 
(alacsony-magas helyiérték)
nrL nrH
(BASIC line number)
BASIC sor száma binárisan
(alacsony-magas helyiérték)
xx ... xx
(BASIC line)
BASIC sor szövege (tokenizálva)
00h
Sorvégjel (EOL)
EOF
00h 00h
Fájl végjel (EOF)
(az utolsó BASIC sor címmezője ide mutat)

Fontos megjegyezni, hogy a korai TRS-80 modellek (Level I BASIC) az utasításokat is stringként mentik el, így Level II BASIC interpreter esetén nem tölthetők be.

A CAS formátum gépi kódú (SYSTEM) programok esetén

Gépi kódú programok SYSTEM üzemmódban tölthetők be: a memóriába helyezhetők és a kezdőcímre ugorva futtathatók. Már nem csak egy, hanem 6 karakteres névvel rendelkeznek, és a név ismerete nélkül igen nehéz ezeket betölteni (a SYSTEM parancs után mindenképpen meg kell adni a nevet a betöltéshez).

Formátumukat a következő táblázat mutatja be:

 
0-254
00h ... 00h
255 darab nulla byte
255
A5h
Szinkron byte
256
55h
SYSTEM fejléc byte
257...262
nn nn nn nn nn nn
Program név (6 karakteres)
Gépi kódú 
blokkonként 
ismétlődő
adatok
3Ch
Adat fejléc byte
nr
(block length)
Adatblokk hossza 01h...FFh, 
00h esetén 256 byte
laL, laH
(load address)
Adatblokk betöltési cím
(alacsony-magas helyiérték)
xx ... xx
(data bytes)
Adatblokk byte-jai
crc
(checksum)
A betöltési cím és az adatblokk byte-ok
ellenőrző összege, 1 byte
Fájl vége
78h
Fájl végjel (indítási cím bevezető byte)
Start
saL saH
(start adress)
Indítási cím
(alacsony-magas helyiérték)

A CAS formátum Editor/Assembler forrásprogramok esetén

A TRS80 Editor/Assembler program a HT-1080Z esetén is népszerű volt.

A kazettára mentett forrás állomány formátumát mutatja be a következő táblázat :

 
0-254
00h ... 00h
255 darab nulla byte
255
A5h
Szinkron byte
256
D3h
Forrás formátum fejléc byte
257...262
nn nn nn nn nn nn
Program név (6 karakteres)
Forráskód
soronként 
ismétlődő
adatok
nl nl nl nl nl
(line number)
Sorszám ASCII formában, 
minden byte 7. bitje egyes (magas)
20h
Forráskód sor kezdő byte
xx ... xx
(source line)
Forráskód sor (max. 128 byte)
0Dh
Forráskód sor végét jelző byte
Fájl vége
1Ah
Fájl végjel

(Majzik István, Grósz Attila)