+-------------------------------+ ! ! ! CHAINARE f|r ABC80 ! ! bruksanvisning ! ! Anders Franz`n <5258> ! ! Stockholm 1986 ! ! ! +-------------------------------+ BESKRIVNING ----------- Det finns ett program som heter CHAINARE f|r ABC800-serien men detta {r ett specialhack f|r ABC80. Programmet klarar alla checksummor och funkar b}de f|r 16K och 32K RAM. Man b|r ha tillg}ng till flexskiva f|r att ha n}gon nytta av programmet. Som extra tillbeh|r finns ett program kallat MENY. Normalt n{r man k|r BASIC-program kan de avslutas med CTRL-C, med instruktionen END eller om sista raden i ett program exekverats klart. Vad som d} h{nder {r att BASIC-tolken tar kommandot och skriver ut texten "ABC80" p} bildsk{rmen. Sedan v{ntar datorn p} inmatning av en rad fr}n tangentbordet. Programmet CHAINARE l{gger in en snutt maskinkod i minnet som f|rhindrar detta. N{r CTRL-C trycks eller ett program som exekveras tar slut tar snutten kontroll |ver maskinen och utf|r ett valfritt BASIC-kommando eller en valfri BASIC-rad. ANV[NDANDE ---------- Om man listar programmet CHAINARE ser man att det finns en str{ngvariabel som tilldelas ett v{rde i programmet. N{r s} programmet exekveras placeras detta str{ngv{rde p} en speciell plats i minnet. V{rdet p} str{ngen ska vara ett BASIC-kommando (t ex "RUN") eller en BASIC-rad best}ende av en eller flera BASIC-satser (t ex "PRINT : PRINT"). CHAINARE l{mnar sedan str{ngens v{rde till BASIC-tolken s} att denna kan utf|ra det som anges d{r. Om det finns n}got syntaxfel i str{ngens v{rde avslutas programmet CHAINARE som fortfarande finns i datorns minne. Efter att str{ngv{rdet r{ttats kan ett nytt f|rs|k att k|ra programmet g|ras. Om v{rdet p} str{ngen {r korrekt tar tolken kontrollen och utf|r det som angetts. Det kan vara exekveringen av ett valfritt program, t ex "RUN LIB". N{r hela str{ngen {r f{rdigbehandlad, i exemplet n{r programmet LIB avlutats (med CTRL-C eller programslut), tar CHAINARE den angivna raden och f|rs|ker exekvera kommandot {n en g}ng. Programmet LIB kommer s}ledes att exekveras igen! VAD MAN KAN HA DET HELA TILL ---------------------------- Med hj{lp av CHAINARE kan man f} menystartade program. Det betyder att du p} en meny v{ljer vilket BASIC-program du vill k|ra. N{r detta program avslutas, med CTRL-C eller programslut, visas }nyo menyn |ver alla BASIC-program. F|r att }stadkomma detta anges "RUN MENY" som str{ngv{rde till programmet CHAINARE. Om ett program som heter MENY finns p} flexskivan kommer detta att exekveras. MENY {r d} l{mpligen ett program som ger anv{ndaren en lista p} BASIC-program att v{lja bland. N{r ett program p} menyn valts g|r MENY CHAIN till det |nskade programmet. Som exempel kan n{mnas vad f|rfattaren till denna text gjort. P} en flexskiva med spelprogram har programmet CHAINARE sparats. Str{ngvariabeln i CHAINARE tilldelas v{rdet "RUN MENY". P} samma skiva finns ett program som heter MENY. N{r MENY exekveras visas en meny p} bildsk{rmen |ver alla spelprogram som finns p} skivan. N{r |nskat spel selekteras sker CHAIN till spelet som d} startar. Om man tr|ttnar p} spelet trycker man CTRL-C och kommer tillbaka till MENY. [ven n{r spelet g}r till slut av sig sj{lv startas MENY. N{r s}ledes leksugna knattar kommer p} bes|k skriver man helt enkelt RUN CHAINARE och sedan kan knattarna leka b{st de vill. F|r att f|renkla det hela {nnu mer kan man d|pa om CHAINARE till SPEL. F|r att starta systemet skriver man d} RUN SPEL. AVSLUTNING ---------- Hur g|r man d} om man vill att BASIC-tolken }ter ska f} kommandot i st{llet f|r CHAINARE? Om ett fel uppst}r s} att felrutinen i BASIC-tolken tar |ver och skriver ut ett ERR-meddelande l{mnar CHAINARE ifr}n sig kommandot. Om man vill kunna l{mna MENY p} ett snyggt s{tt och }ter hamna i BASIC m}ste man allts} g|ra s} att man f}r ett fel. Det {r enkelt gjort genom att skriva STOP i programmet. Om det finns ett END i MENY kommer ju MENY att startas igen! SPECIALTIPS ----------- Om MENY anv{nds b|r man se till att alla program som kan v{ljas {r felfria. Om n}got av dem av n}gon anledning skulle ge ett felmeddelande kommer man ej tillbaks till MENY. F|r att f} ig}ng systemet m}ste man skriva RUN CHAINARE igen. Program som {r skrivna i assembler kan f|rst|ra CHAINARE i minnet. F|r att se om det funkar b|r man testa noga. Det g|r ingenting om programmen anv{nder egna interruptrutiner, CHAINARE anv{nder ej interrupt. Koden till CHAINARE placeras i DOS-buffertarna tre, fyra och fem. Det medf|r att program endast kan ha tv} filer |ppna samtidigt. En rolig (?) effekt f}r man om man anger ";'Bra program ';" som str{ngv{rde i CHAINARE.