CASBAS - Konverziós program

Ez a program a TVC-BASIC bináris file-ját (CAS) alakítja olvasható szövegfájllá (BAS), vagy fordítva. 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.

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

CAS2BAS LETÖLTÉSE

Némi információ kérdés-válasz formában...

A programról

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. A program által előállított BAS-file-okról

A program által előállított BAS-file-okról

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. A CAS-file-okról

A CAS-file-okról

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.

A TV-BASIC-ről

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.

(Lőrinczy Zsigmond)