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>