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