1 REM Ins{nd av Kristoffer Eriksson SYSOP <5357> 1986-10-06 02.55.33 (DUMP) USERDOG.INF +-------------------------------------------------------------+ ! USERDOG.BAC Ver 1.00 - Tv}ngskommando om anv{ndaren smiter. ! ! F|r ABC800-serien. ! ! Av Kristoffer Eriksson <5357>, Oktober 1986. ! ! F}r kopieras fritt, dock endast f|r icke-kommersiellt bruk. ! +-------------------------------------------------------------+ 1. Nyttan av USERDOG. 2. Start och inst{llning av parametrar. 3. Restriktioner. 4. Teknisk beskrivning. 1. Nyttan av USERDOG. ---------------------- Detta program laddar in en maskinkodsrutin i datorns minne, som ser till att datorn stoppar det p}g}ende programmet och utf|r n}got speciellt kommando om anv{ndaren dr|jer mer {n en viss tid med att mata in n}got via tangentbordet. I likhet med CHAINARE.BAC tar rutinen |ver styrningen av datorn i en viss situation, men den utl|sande faktorn {r att en viss tid f|rflutit sedan senaste inmatning, i st{llet f|r att det p}g}ende programmet avslutas. Till skillnad fr}n INPUTDOG.BAC kontrolleras h{r tiden sen senaste tangentbordsaktivitet hela tiden, och inte bara n{r n}got program v{ntar p} inmatning via l{s-ett-tecken-rutinen (GET/CONSI). D{rf|r fungerar det {ven f|r program som anv{nder egna inmatningsrutiner. Dessutom {r det inte reset som utl|ses n{r tidsgr{nsen |verskrids, s} man riskerar inte att f|rst|ra |ppna filer. 2. Start och inst{llning av parametrar. ---------------------------------------- Maxtiden och det kommando som aktiveras n{r maxtiden |verskrids, kan st{llas in med programmet ST[LLPAR, eller direkt vid programstart enligt: RUN USERDOG,,; Det g}r att hoppa |ver en eller flera av parametrarna, varvid motsvarande inst{llning enligt ST[LLPAR anv{nds. Det g}r inte att ha semikolon (;) inuti kommandot, eftersom det tecknet markerar b|rjan av den efterf|ljande parametern. Exempel: RUN USERDOG,55,CHAIN 'ALARM';PROGR CHAIN "USERDOG,20" RUN USERDOG,,PRINT CHR$(7) TIME$: CHAIN 'SLUT' RUN USERDOG Observera att "RUN USERDOG,10,;START" anger ett kommando med noll tecken mellan kommat och semikolonet, medan "RUN USERDOG,10;START" inneb{r att det kommando som st{llts in av ST[LLPAR ska anv{ndas. 3. Restriktioner. ------------------ Inga ytterligare program som l{gger till rutiner i botten av minnet b|r k|ras efter USERDOG, f|r att inte st|ra de rutiner som anv{nds, eller hindra att det minne som tas upp av USERDOG }terl{mnas efter f|rr{ttat v{rv. Det {r dock inte meningen att det ska krascha om man {nd} g|r det. Det eller de kommandon som anv{nds b|r avslutas med CHAIN, RUN, NEW, LOAD eller liknande som f}r datorn att uppdatera sina minnespekare, f|r att det anv{nda minnet ska anses ordentligt }terl{mnat. Om inget program |nskas inladdat kan CHAIN "NUL:" anv{ndas. 4. Teknisk beskrivning. ------------------------ Programmet l{gger sig i botten av det lediga arbetsminnet. Allra f|rst lagras det gamla v{rdet p} Y.BOTM (Y.COMTOP ska vara samma) och avbrotts- vektorerna f|r tangentbordet (65460) och realtidsklockan (65494), som kan anv{ndas f|r url{nkning av rutinen. En extra tidtagningsrutin l{nkas in i realtidsklockan, och en }terst{ll- ningsrutin f|r denna l{nkas in i tangentbordsavbrottet. Om tidtagningen r{knar ned till noll l{nkas en s{rskild rutin in i CONSI-rutinen, som h{mtar text fr}n det angivna kommandot varje g}ng datorn vill l{sa ett tecken. N{r kommandot l{sts till slutet, l{nkas alltihop ur. Tangentbords- och klock-avbrottet }terst{lls till det skick de var i n{r USERDOG starta- des. Det utnyttjade minnet }terl{mnas om inte minnets bottenpekare h|jts ytterligare. Det g}r }t 154 byte + antalet tecken i kommandotexten. /Kristoffer Eriksson, ABC-klubben <5357>