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)