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)