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