+----------------------------+
! !
! 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.