+----------------------------+ ! ! ! KEY.BAC f|r ABC80 ! ! bruksanvisningen ! ! Anders Franz`n <5258> ! ! Stockholm maj 1986 ! ! ! +----------------------------+ INNEH]LL ======== 1 Beskrivning 2 Tangentbordsbuffert 3 JOB-filer 4 Nya BASIC-instruktioner 4.1 CLICK 4.2 NOCLICK 4.3 KEY 4.4 LKEY 4.5 GRAFMOD 4.6 LINE och UNLINE 4.7 BOX och UNBOX 5 EXIT 1 Beskrivning ============== KEY.BAC {r ett program som l{gger in en tangentbordsbuffert i ABC80. Det betyder att n{r datorn jobbar med n}gonting, t ex l{ser fr}n skiva, kan du skriva text p} tangentbordet och n{r datorn jobbat klart p} skivan tar den hand om texten. Det {r m|jligt att programmera om tangenterna p} tangentbordet s} att de f}r en annan betydelse {n den normala. Man kan l{gga in flera kommandon p} en tangent s} n{r den tangenten trycks ner utf|rs samtliga kommandon den programmerats att utf|ra. JOB-filer kan exekveras, det {r det samma som att l{gga en serie kommandon, en jobbstr|m, p} en textfil. Datorn l{ser kommandona en och en samt utf|r dem. Som en extra finess finns n}gra nya instruktioner som kan skrivas i BASIC-program. Det finns ett KEY.BAC f|r ABC800-serien men detta {r allts} ett specialhack f|r ABC80. Programmet klarar alla checksummor, 80-teckenstillsats och det spelar ingen roll hur mycket RAM-minne som finns anslutet. Programmet klarar kassetter lika bra som flexskivor. Programmet KEYINIT.BAS kan vara bra att ha. Det {r ett BASIC-program som k|rs efter det att KEY.BAC exekverats och det programmerar om vissa tangenter. Om man har flexskiva kan man f} detta program att startas automatiskt n{r KEY.BAC {r k|rt. Se kapitel 3 som handlar om JOB-filer. 2 Tangentbordsbuffert ====================== Varje g}ng en tangent p} tangentbordet trycks ner, det kan vara d} du skriver BASIC-program eller n{r ett program exekveras, sparas tangenten i en buffert. N{r BASIC-tolken eller ett program f|rv{ntar sig inmatning fr}n tangentbordet ser KEY.BAC till att de tecken som eventuellt ligger i bufferten h{mtas f|rst. Det betyder att man kan skriva text under tiden som datorn jobbar med annat. F|r att illustrera det hela kan f|ljande program knappas in samt exekveras: 10 FOR I=1 TO 10000 : NEXT I Samtidigt som detta program rullar kan du nu skriva t ex LIST samt trycka p} RETURN. N{r programmet rullat klart l{ses LIST-kommandot in av BASIC-tolken varvid programmet listas. Om det av n}gon anledning uppst}r ett fel s} att ett felmeddelande skrivs ut p} sk{rmen, t ex ERR 21, t|ms tangentbordsbufferten. All text som skrivits in men som inte hunnit behandlas av tolken igoreras i s} fall. Tangentbordsbufferten rymmer max 256 tecken. Hinner man skriva in fler tecken {n 256 {r det bara de sista 256 tecknen som kommer att behandlas. Vartefter som BASIC-tolken h{mtar in tecken fr}n bufferten t|mms den. 3 JOB-filer ============ KEY.BAC l{nkar in ett nytt kommndo i ABC80. Genom att skriva JOB l{ses den textfil som angetts och n{r BASIC-tolken eller ett BASIC-program f|rv{ntar sig inmatning fr}n tangentbordet l{ses tecken fr}n filen ist{llet. Om textfilen t ex inneh}ller denna text: RUN LIB kommer datorn, om du skriver JOB d{r fil {r namnet p} den textfil d{r texten ligger, att k|ra programmet LIB. Om flexskiva {r ansluten s} kommer detta kommando att utf|ras n{r KEY.BAC startas upp: JOB START.JOB Om filen START.JOB p}tr{ffas kommer datorn att l{sa den text som filen inneh}ller. Om filen ej p}tr{ffas erh}lles felkod 21. 4 Nya BASIC-instruktioner ========================== KEY.BAC m|jligg|r anv{ndandet av n}gra nya instruktioner i BASIC-program. Dessa program kan sparas med LIST eller SAVE som vanligt. Om man f|rs|ker k|ra dem i ABC80 utan att f|rst ha k|rt KEY.BAC f}r man felmeddelande. 4.1 CLICK ---------- Instruktionen CLICK s{tter p} tangentbordsklick. Varje g}ng en tangent trycks ned klickar det i h|gtalaren. Exempel 10 CLICK : INPUTLINE R$ 4.2 NOCLICK ------------ St{nger av tangentbordsklicket. Exempel 10 CLICK : GET R$ : NOCLICK 4.3 KEY -------- KEY programmerar om en tangent. Tv} str{ngargument m}ste anges, det f|rsta talar om vilken tangent som ska programmeras om, de andra talar om den nya betydelsen f|r tangenten. Tangenterna CTRL-C samt understrykningsstrecket kan inte programmeras om. Exempel 10 KEY "A","Anders" Varje g}ng man nu trycker p} A skriver datorn ut Anders ist{llet. 10 KEY "A","B" : KEY "B","A" Bokst{verna A och B byter plats p} tangentbordet! 10 KEY "_L","PRINT CHR$(12%)_M" Man kan ange CTRL-tangenter genom att skriva understrykningsstreck framf|r en bokstav. I exemplet kommer CTRL-L att t|mma sk{rmen. Notera CTRL-M (motsvarar RETURN) efter CHR$(12%), det medf|r att str{ngen }ker in i datorn! 10 KEY CHR$(12),"PRINT CHR$(12%)"+CHR$(13) Man kan {ven ange str{nguttryck. Detta exempel g|r samma sak som exemplet ovan. 10 KEY "_L","" Ev programmering p} tangenten CTRL-L tas bort och tangenten }terf}r sin normala btydelse. 4.4 LKEY --------- Med instruktionen LKEY listas alla tangenter som programmerats om. Exempel 10 LKEY 4.5 GRAFMOD ------------ Instruktionen GRAFMOD t|mmer bildsk{rmen samt ritar tecknet f|r start grafik i kolumnen l{ngst till v{nster p} varje rad p} bildsk{rmen. GRAFMOD {r allts} ekvivalent med 10 ;CHR$(12) 20 FOR R=0 TO 23 : ;CUR(R,0)CHR$(151); : NEXT R 4.6 LINE och UNLINE -------------------- Det {r l{tt att dra linjer p} bildsk{rmen samt att ta bort dem om bildsk{rmen {r satt i grafisk mod. Uttryck kan anv{ndas i LINE- och UNLINE-instruktionerna. Exempel 10 GRAFMOD : LINE 2,2,20,20 S{tt sk{rmen i grafikmod samt dra en linje mellan punkterna (2,2) och (20,20) p} sk{rmen. 20 UNLINE 2,2,20,20 Ta bort den linje som ritades i f|reg}ende exempel. 10 LINE x1,y1,x2,y2,x3,y3,x1,y1 Rita en triangel p} sk{rmen. En linje dras f|rst mellan punkterna (x1,y1) och (x2,y2). D{refter dras linjen vidare till (x3,y3) och till slut tillbaka till (x1,y1). Flera koordinater kan allts} anges i en LINE-instruktion. 10 LINE 70*RND,70*RND,70*RND,70*RND En slumplinje ritas! 4.7 BOX och UNBOX ------------------ Med BOX kan man snabbt rita en rektangel p} sk{rmen. Uttryck kan anv{ndas i BOX- och UNBOX-instruktionerna. Exempel 10 BOX 10,10,40,40 En rektangel med koordinaterna (10,10), (10,40), (40,10) och (40,40) ritas upp. 20 UNBOX 10,10,40,40 Ta bort rektangeln som ritades i exemplet ovan. 5 EXIT ======= EXIT {r ett kommando som medf|r att ett hopp sker till adress noll i BASIC-tolken, dvs {r detsamma som att trycka p} RESET-kanppen.