FÁJLFORMÁTUMOK

Ezen az oldalon a TVC és emulátora által használt fájlformátumokat ismertetjük.

A .CAS FÁJLFORMÁTUM

Az emulátor alatt használható kazettás fájl formátum a .CAS formátum, amely nem más, mint egy kazettás TVC fájl VT-DOS illesztővel lemezre másolt formája. Ennek felépítése a következő:

128-bájtos UPM-header
00 filetype fájl típus, 01h/11h: pufferelt/nem pufferelt
01 copyprotect ha 00h akkor nem védett a fájl
02-03 blocknumber lo/hi A program által elfoglalt 80h méretű blokkok száma
04 lastblockbytes Az utolsó 80h-s blokkban található hasznos bájtok száma (0-127)
05-7F 00h Mindig 00h
Nem pufferelt file-ok 16-bájtos fejléce
80 00h Mindig 00h
81 type 01 - programfájl, 00 - adat
82-83 prgsize lo/hi a program hossza
84 autorun automatikus indítás, ha $ff akkor igen
85-8E 00h Mindig 00h
8F versionnumber Változatszám (többnyire nem használják)
90-n databytes A program adatbájtjai, egészen a fájl végéig.

Ha szeretnénk a .CAS fájlokat VT-DOS floppyillesztős floppydriveval TVC-n használni, akkor PC-n egy 360k-ra vagy 720k-ra formázott lemezre kell felmásolnunk a .CAS fájlt. A VT-DOS illesztő ugyanis DOS kompatiblis (leszamitva az ékezetes fajlneveket) fájlrendszert használ. (Vagyis a PC tudja olvasni és írni a TVC lemezeket.)

AZ ADATOK FORMÁTUMA EGY KAZETTÁN

Egy TVC kazettán az adatok tömbökre oszlanak. Egy adatfájl mindig tartalmaz egy header tömböt, és 0, 1 vagy több adattömböt. Az adattömbök továbbá szerktorokat tartalmaznak, minimum 1 maximum 256 szektort. (Nem lehet 0 szektort tartalmazó tömböt létrehozni.) A visszaolvasás szinkronizálásához a szalagsebesség megállapításához minde tömb elején speciális hangsorozat található.

Egy fájl felépítése a kazettán a következő:

Fejtömb

10240 periódus bevezető hang (periódusidő: 470 microsec, frekvencia: 2128 Hz, időtartam: 4,8 s)
1 szinkronperiódus (periódusidő: 736 microsec, frekvencia: 1359 Hz)

A továbbiakban az információ byte struktúrájú, a bitek "0" vagy "1" értékét a periódusidő határozza meg,
0 bit - 552 microsec, 1812 Hz; 1 bit - 388 microsec, 2577 Hz. A bitek 0.-7. sorrendben következnek egymás után.

00 00h Mindig 00h
01 6Ah Szinkronbyte, mindig 6Ah
02 blocktype Tömbtípus azonosító, fejtömb esetén: FFh (adattömbnél: 00h)
03 filetype fájl típus, pufferelt fájl: 01h, nem pufferelt fájl: 11h
pufferelt fájl akkor jön létre, ha adatot kezelünk, és előre nem ismert az adatbájtok száma, nem pufferelt fájl akkor, ha adatot mentünk ki a gépből, ekkor előre ismert a fájl hossza is.
Pufferelt fájl esetén egy fejtömb és nulla vagy több adattömbünk lesz,
nem pufferelt fájl esetén pedig egy egyszektoros fejtömbünk és 0 vagy 1 adattömbünk.
04 copyprotect ha 00h akkor nem védett a fájl
05 sectors in this block Szektorok száma a tömbben (a fejtömbben mindig 1)
06 sectorcounter A szektor sorszáma (a fejtömbben mindig 0).
07 bytes in sector (bis) A szektorban lévő adatbájtok száma, ha értéke 00h akkor 256 bájtot tartalmaz.
08 file name length (fnl) A fájlnév hossza, max 10 karakter
09 - (09+fnl) file name A fájl neve
  ha filetype=11h nullbyte Megj: Ez a byte (és a következő 15) csak nem pufferelt file-ok (programok) esetén áll itt, ugyanaz mint a CAS header 80-8F közötti része.
(0A+fnl+00)
(0A+fnl+01) filetype 01h - programfájl, 00h - ASCII fájl, stb...
(0A+fnl+02)-(09+fnl+04) file length hi,
file length lo
A fájl (program) hossza
(0A+fnl+04) autorun Ha nem 00h, akkor automatikusan indul.
(0A+fnl+05)-(0A+fnl+0E) nullbytes értékük mindig 00h
(0A+fnl+0F) versionnumber Változatszám (többnyire nem használják)
(0A+fnl+00) (0A+fnl+10) fileendmark Fájl vég jelzés, utolsó szektorban 00h az értéke.
(0A+fnl+01) (0A+fnl+11) CRClo, CRChi Ellenőrző összeg, először az alsó majd a felső bájt.
Leírását lásd az adatblokknál.
5 periódus lezáró hang (periódusidő: 470 microsec, frekvencia: 2128 Hz)

Adattömb

00 00h Mindig 00h
01 6Ah Szinkronbyte, mindig 6Ah
02 blocktype Tömbtípus azonosító, adattömb esetén: 00h (fejtömbnél: FFh)
03 filetype fájl típus, pufferelt fájl: 01h, nem pufferelt fájl: 11h
04 copyprotect ha 00h akkor nem védett a fájl
05 sectors in block (sib) szektorok száma a tömbben
Ezután következnek az adatszektorok
00 sectorcounter A szektor sorszáma a file-ban. Egyesével növekszik, az első adatszektor sorszáma 1.
01 bytes in sector (bis) A szektorban lévő adatbájtok száma, ha értéke 00h akkor 256 bájtot tartalmaz.
02 - (02+bis) databytes Adatbájtok
(03+bis+00) fileendmark Fájl vég jelzés, utolsó szektorban 00h az értéke
(03+bis+01) - (03+bis+02)
CRClo, CRChi Ellenőrző összeg, először a felső majd az alsó bájt.
A CRC számítás algoritmusa nem egyszerű ellenőrző összeg, annál azért bonyolultabb. A CRC számítása a tömb első szektora esetén a szinkronbájttól ($6A) a filendmark bájtig történik (a határokat is beleértve), a többi szektor esetén a sectorcounter bájttól filendmark bájtig (a határokat is beleértve). (A CRC számoló rutin itt található.)
Az adatszektorok ismétlődnek annyiszor, amennyi a sectors in block értéke.
5 periódus lezáró hang (periódusidő: 470 microsec, frekvencia: 2128 Hz)
Pufferelt fájl esetén ezután következik a következő adattömb.

ADATFORMÁTUM FLOPPY LEMEZEN VT-DOS ESETÉN

A floppy lemez FAT12 formátumú DOS kompatibilis floppy. Ha nem használunk ékezetes fájlneveket a TVC-n, akkor a PC egy az egyben olvasni tudja. Egy tárolt fájl felépítése a lemezen pedig egy az egyben a .CAS fájlformátum.

ADATFORMÁTUM FLOPPY LEMEZEN UPM ESETÉN

Erről nincs sok információm, az található itt:

"UPM (CP/M) illesztő, Ez a DOS fájlrendszerével nem kompatibilis, de az emulátorhoz kapott segédprogrammal a TVC floppy anyaga így is PC-re menthető."

(Majzik István, Tóth László, Varga Viktor)