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, | |||
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)