KEYMINI.INF
+--------------------------------------------------------------------+
! KEYMINI.BAC, ST[LLPAR.BAS, KEYMINI.INF !
! F|r ABC800-serien. !
! 1986-05-24 Av Kristoffer Eriksson ABC-klubben <5357> !
! F}r kopieras fritt f|r ickekommersiella syften. !
+--------------------------------------------------------------------+
0. Inneh}ll
------------
1. Presentation
2. Filer
3. Funktion
4. Minnes}tg}ng
5. Autostart
6. [ndring av parametrar i KEYMINI.BAC
7. Intern funktion
8. Skillnader mellan ver 1.0 och 1.1
1. Presentation
-----------------
KEYMINI.BAC {r en nedbantad version av KEY.BAC (se KEY.INF). Den inne-
h}ller en tangentbordsbuffert utan n}gra extra finesser f|rutom att
man p} ABC 800 och 802 kan f} klickningar i h|gtalaren n{r man trycker
p} tangenterna.
F|rdelen med KEYMINI j{mf|rt med KEY {r att KEYMINI tar betydligt
mindre minne (ca 144 byte + buffert) och kan placeras i valfri dosbuf-
fert, l{ngst ned eller l{ngst upp i datorns minne.
2. Filer
---------
KEYMINI.BAC Detta program l{gger upp tangentbufferten och i
datorns minne. Det kan k|ras n{r som helst d} man
tycker att det beh|vs. Det kan {ven startas automa-
tiskt vid reset.
ST[LLPAR.BAS Med det h{r programmet kan ett antal parametrar i
KEYMINI.BAC {ndras.
3. Funktion
------------
Om man i vanliga fall skriver n}got p} tangentbordet n{r datorn inte
v{ntar sig det (t ex n{r den h{mtar ett program fr}n diskett) f|rsvin-
ner det skrivna ut i tomma intet. Med KEYMINI stoppas det i st{llet
undan p} en s{ker plats i datorns minne (bufferten), och h{mtas fram
igen n{r datorn {r klar.
CTRL-C har f}tt en extra funktion. F|rutom att den stoppar programex-
ekvering som vanligt t|mmer den {ven tangentbufferten. Eftersom CTRL-C
t|mmer bufferten kan inte CTRL-C mellanlagras i bufferten s} som de
|vriga tecknen, utan har alltid omedelbar effekt.
Om datorn har h|gtalare (ABC 800, ABC 802) h|rs ett litet klick varje
g}ng n}gon tangent trycks ned. Denna finess kan st{ngas av med prog-
rammet ST[LLPAR.
Tangentbufferten kan med ett par programsatser kopplas ur tillf{lligt
eller f|r alltid:
Consi=PEEK2(65425)
POKE 65425,PEEK(Consi-4),PEEK(Consi-3) ! CONSI
POKE 65460,PEEK(Consi-2),PEEK(Consi-1) ! KEY-INT
Detta g|r att datorn h{mtar tecken direkt fr}n tangentbordet (rad 2)
och att nya tecken som skrivs in inte placeras i tangentbufferten
(rad 3). Det minnesutrymme som upptas av programmet f|rblir dock
upptaget.
Med f|ljande snuttar kan bufferten kopplas ur tillf{lligt, och sedan
}ter kopplas in.
Consi=PEEK2(65425)
Keyint=PEEK2(65460)
POKE 65425,PEEK(Consi-4),PEEK(Consi-3) ! CONSI
POKE 65460,PEEK(Consi-2),PEEK(Consi-1) ! KEY-INT
....
....
POKE 65425,Consi,SWAP%(Consi)
POKE 65460,Keyint,SWAP%(Keyint)
4. Minnes}tg}ng
-----------------
KEYMINI.BAC tar ca 144 bytes plus utrymme f|r tangentbufferten fr}n
datorns RAM-minne. Programmet l{gger sig antingen p} l{gsta oanv{nda
adress och h|jer densamma (Y.BOTM) s} att andra program inte kollide-
rar med det, p} h|gsta oanv{nda adress och s{nker densamma (Y.CMDSP),
eller i valfri dosbuffert som blockeras f|r annat bruk (antalet filer
som kan anv{ndas samtidigt minskar med en). Vilken variant som anv{nds
st{lls in med ST[LLPAR. Vid "leverans" {r KEYMINI inst{llt p} att
anv{nda minnets l{gsta adresser.
Det g}r inte att anv{nda KEYMINI tillsammans med andra program som {r
"ouppfostrade" och vill ha samma minne. Ibland kan det g} om KEYMINI
laddas sist, efter det andra programmet. Oftast {r chansen att det ska
fungera betydligt st|rre om KEYMINI l{ggs i n}gon dosbuffert.
Tangentbufferten rymmer fr}n b|rjan 60 tecken, men kan varieras mellan
2 och 255 med ST[LLPAR. Om dosbuffert-varianten anv{nds m}ste b}de
KEYMINI och tangentbufferten rymmas en dosbuffert som {r 256 tecken.
Om laddning till h|gsta m|jliga adress anv{nds blir bufferten pga
vissa tekniska sk{l aldrig kortare {n 64 tecken.
Det g|r inget om man k|r KEYMINI flera g}nger utan att g|ra reset
emellan. KEYMINI uppt{cker detta och dubbellagras INTE i minnet. Det
g}r inte heller att l{gga KEYMINI i en redan upptagen dosbuffert. Dos-
buffert 6 {r alltid upptagen eftersom den anv{nds internt vid
laddningen.
5. Autostart
--------------
Det {r inte n|dv{ndigt att autostarta KEYMINI - det g}r bra att starta
"manuellt" n{r som helst - men det kan vara ganska praktiskt. Tyv{rr
}stadkommer man detta p} n}got olika s{tt med olika DOS. H{r f|ljer
n}gra riktlinjer.
Gamla DOS: Anv{nd programmet PRESTART eller PREABS f|r att {ndra
BASICINI.SYS s} att BASIC-programmet KEYMINI autostartas.
UFD-DOS: [ndra i programmet DRINI s} att den rad i b|rjan av
programmet som b|rjar med Link$=... blir
Link$='KEYMINI.BAC'.
NET med meny0: Autostart av KEYMINI ej l{mplig, eftersom meny0 ska
autostartas i st{llet, men har man en privat BASICINI.SYS i
sitt bibliotek g{ller samma regler som ovan.
Vill man att ytterligare program ska startas efter KEYMINI kan detta
st{llas in med programmet ST[LLPAR.
6. [ndring av parametrar i KEYMINI
------------------------------------
Det finns ett antal parametrar i KEYMINI som kan st{llas in i f|rv{g
med hj{lp av programmet ST[LLPAR. Dessa parametrar sparas i sj{lva
filen KEYMINI.BAC och ligger kvar till n{sta g}ng de {ndras med
ST[LLPAR. Om man k|r KEYMINI och vill {ndra n}gon parameter m}ste man
k|ra ST[LLPAR, ange r{tt parametrar, trycka p} reset och ladda in
KEY.BAC p} nytt.
Det g}r bra att ha flera kopior (med olika namn f|rst}s om de ligger
p} samma skiva) av KEYMINI med olika parametrar i.
N{r man k|r ST[LLPAR f}r man b|rja med att ange namnet p} den KEYMINI-
kopia som ska behandlas. Filtyp beh|ver inte anges. De nuvarande para-
metrarna visas, varefter man f|r varje parameter f}r fr}gan om den ska
{ndras. Svarar man ja f}r man tillf{lle att mata in ett nytt v{rde.
F|ljande parametrar finns:
Placering i minnet (Dosbuf 1,2,3,4,5,7/8/9):
Talen 1-7 inneb{r att KEYMINI's rutiner l{ggs i motsvarande
dosbuffert (nr 6 {r alltid upptagen). Talet 8 betyder d{re-
mot att rutinerna ska l{ggas i minnets l{gsta lediga utrym-
me, och 9 att de ska l{gga sig p} h|gsta m|jliga adress (som
".REL"-program). Se "minnes}tg}ng".
Knappklick?
Ange ja eller nej beroende p} om h|gtalaren ska klicka n{r
man skriver.
Buffertl{ngd (2-255):
Ange hur m}nga tecken tangentbordsbufferten ska rymma. N{r
rutinerna lagras i en dosbuffert kan maximalt ca 110 tecken
utnyttjas, men det {r inte farligt att ange mera. Fr}n b|r-
jan {r den 60 tecken. Se Minnes}tg}ng.
Fil som chainas efter exekvering:
Om man vill kan man h{r ange namnet p} ett BASIC-program som
ska startas automatiskt efter KEYMINI. Max 16 tecken. Fr}n
b|rjan tomt. Se Autostart.
Det g}r {ven att ange placering i minnet, buffertl{ngd, och ytterli-
gare program som ska anropas, direkt p} kommandoraden n{r programmet
startas. Syntax:
RUN KEYMINI, placering, buffertl{ngd; programnamn
eller CHAIN 'KEYMINI, placering, buffertl{ngd; programnamn'
Placeringen anges med samma sifferkoder som ovan. Alla parametrarna
beh|ver inte anges. Det f|rsta kommat efter programnamnet m}ste alltid
vara med om n}gon parameter anges.
7. Intern funktion
--------------------
F|r en liten utl{ggning om det interna arbetet i KEYMINI och om
SYS(6), se KEY.INF eftersom samma saker g{ller h{r.
8. Skillnader mellan version 1.0 och 1.1
------------------------------------------
a) Version 1.0 {r fr}n 85-10-22, medan 1.1 gjordes 86-05-23.
b) Version 1.1 kan med placeringsalternativ 9, {ven l{ggas h|gst upp
i datorns lediga minne. Detta medf|r att stacken flyttas ner en
bit s} att KEYMINI residerar omedelbart ovanf|r densamma, vilket
motsvarar ".REL"-programmens metod.
c) Pekare sparas s} att version 1.1 kan l{nkas ur om man vill slippa
bufferten. Se avsnitt "Funktion".
d) Placering i minnet, buffertl{ngd, och efterf|ljande program kan
anges direkt p} kommandoraden n{r programmet startas. Se avsnitt
"[ndring av parametrar".
Ha det s} trevligt med KEYMINI |nskar
Kristoffer Eriksson <5357>
(Vassv{gen 3, 702 31 \REBRO)