Ez a program a TVC-BASIC bináris file-ját (CAS) alakítja olvasható szövegfájllá (BAS), vagy fordítva.
(Megjegyzés: Basic programot mindkét emuból ki lehet szedni az LLIST -lista nyomtatása- basic parancsal de vissza már nem megy - KKS)
Például akkor lehet haszna, ha szeretnénk egy BASIC játékban hibát keresni, vagy különböző verziókat összehasonlítani.
K: Hogyan lehet a CAS-fileból előállítani a BAS-t?
V: Három lehetőség:
CASBAS <input>.CAS - létrejön az <input>.BAS file, ha még nem létezett
CASBAS -o <input>.CAS - létrejön az <input>.BAS file, ha létezett, felülíródik
CASBAS <input>.CAS <output> - létrejön az <output> file, ha létezett, felülíródik
K: Hogyan lehet a BAS-fileból előállítani a CAS-t?
V: Három lehetőség:
CASBAS <input>.BAS - létrejön az <input>.CAS file, ha még nem létezett
CASBAS -o <input>.BAS - létrejön az <input>.CAS file, ha létezett, felülíródik
CASBAS <input>.BAS <output> - létrejön az <output> file, ha létezett, felülíródik
K: Tehát a "-o" felülírást (overwrite) jelent?
V: Igen, de csak akkor van jelentősége, ha nem adtad meg az output-file nevét.
K: A kiterjesztés csak 'CAS' vagy 'BAS' lehet?
V: Igen, mivel ebből tudja a program, hogy mit kell csinálnia.
K: A CASBAS.EXE program Windows-ban is működik?
V: Egy DOS-ablakot kell hozzá nyitni.
K: UNIX-ban nem használható?
V: A forrásprogramot ott is lefordíthatod, ha van C-compiler.
K: Milyen kódkészletet használ a CASBAS.EXE?
V: A 20-7E ASCII-kódokat és a latin2 szerinti magyar ékezetes betűket.
K: A program csak TVC-s file-okhoz használható?
V: Igen.
K: Ismeri 64K+ gépek tokenjeit is?
V: Az alábbiakat: POLIGON, RECTANGLE, ELLIPSE, AUTO, FKEY, RENUMBER, EXCEPTION.
K: Ki és mikor készítette a CASBAS programot?
V: Lőrinczy Zsigmond, 2005. júliusában.
K: Mit jelent az a program outputjában, hogy "BYTES"?
V: Azt, hogy a BASIC program vége mögött még van 'valami'... mondjuk adat vagy gépi kód.
K: Mit jelent az, hogy "AUTORUN"?
V: Azt, hogy a CAS-header-ben az 'automatikus indítás' jelző be van állítva.
K: Mit jelent az, hogy \t**?
V: Olyan TVC-s kódot, aminek nincs ASCII megfelelője... a 't' után két hexa számjegy áll. Lehetséges értékei \t7f..\tdf (inputnál \t20..\tdf.
K: Mit jelent az, hogy \x**?
V: Olyen kódot, aminek még a TVC kódkészletben sincs megfelelője... valószínűleg adat, vagy gépi kód. Lehetséges értékei \x00..\x1f, \xe0..\xff (inputnál \x00..\xff).
K: Mi a különbség a \t** és a \x** között?
V: A tokenizált programban a 80H-9FH közötti kódok helyett 00H-1FH szerepel. Ez az átkódolás megtörténik a \t** esetén, de nem történik meg a \x** esetén. Tehát ha azt látjuk, hogy \t8F\t9F\x8F\x9F, akkor a CAS-fileban 0F1F8F9F van.
K: Ez elég zavaros...
V: Sajnos igen, viszont így a CAS->BAS konverzió (remélhetőleg) információ- vesztés nélkül megoldható, még gépi kódú programrészek esetén is.
K: Egyes CAS file-ok nagyobbak, mint amit a programméret indokol, miért?
V: Valószínűleg UPM-ből (az egy CP/M klón) származnak, ott a file-méretet 128 byte-os szektorokban számolják, az utolsó szektor használatlan részét 1A karakterekkel töltik ki.
K: Ez az 1A ismerős nekem! Ez nem a Control+Z, ami a file-ok végén szokott lenni?
V: Igen, ez az, csak annyi a gond vele hogy DOS-ban (Windows-ban) nincs rá szükség, mivel itt a file méretét pontosan (byte-ban) tárolja a rendszer.
K: Hogyan értelmezi a program a CAS fejrészt?
V: Nézd meg a TVC.H-ban a CPMHDR, PRGFILEHDR és CASHDR struktúrákat.
K: Mekkora a maximális sorszám a TV-BASIC-ben?
V: Hivatalosan 9999, ennél nagyobbat csak kerülő úton tudsz előállítani.
K: Pédául?
V: Például a BAS->CAS konverzióval... így különösebb gond nélkül előjuthatsz 32767-ig. Persze ezt csak akkor ajánlom, ha valami komoly okod van rá...
K: És ha én 65535-ig szeretnék eljutni?
V: Az sem lehetetlen, de a 32768-65535 közötti sorokra nem tudsz a programban hivatkozni (pl GOTO).
K: Milyen hosszú lehet egy tokenizált BASIC sor?
V: A végső korlát az egybyte-os hossztényező miatt 255, ebből három a fejrész, egy a terminátor, marad 251 felhasználói adat...
K: Mi az a fejrész?
V: Sorhossz egy byte-on (önmagát is tartalmazva), sorszám két byte-on.
K: És a terminátor?
V: Egy byte FF a sor végén, a program végén pedig 00.
K: Igaz, hogy a TV-BASIC mindent nagybetűsít?
V: Nem, az alábbi helyeken nem nagybetűsít: macskakörmök között, DATA-ban, megjegyzésben (REM, illetve !).
K: Hogyan lehet olyan sort előállítani, amelyben nincs semmi?
V: A sorszám után írjál egy szóközt, és nyomj Enter-t. Azt nem tudom, hogy mire jó egy ilyen sor.
Itt tölthető le a program és a forráskódja: Cas2Bas
Lőrinczy Zsigmond