2 ' made by Svjatoslav Agejenko
\r
4 ' Homepage: http://svjatoslav.eu
\r
6 DECLARE SUB mousedemo ()
\r
7 DECLARE SUB putword (addr!, dat!)
\r
8 DECLARE FUNCTION getword! (addr!)
\r
9 DECLARE FUNCTION getbyte! (addr!)
\r
10 DECLARE SUB start ()
\r
12 DIM SHARED extSEG, extADDR
\r
19 FUNCTION getbyte (addr)
\r
20 getbyte = PEEK(extADDR + addr)
\r
23 FUNCTION getword (addr)
\r
24 a = PEEK(extADDR + addr)
\r
25 b = PEEK(extADDR + addr + 1)
\r
29 IF LEN(c$) = 1 THEN c$ = "0" + c$
\r
30 IF LEN(c$) = 0 THEN c$ = "00"
\r
33 c = VAL("&H" + HEX$(b) + c$)
\r
53 CIRCLE (cx, cy), 10, 0
\r
67 IF xp < -maxmove THEN xp = -maxmove
\r
68 IF xp > maxmove THEN xp = maxmove
\r
71 IF yp < -maxmove THEN yp = -maxmove
\r
72 IF yp > maxmove THEN yp = maxmove
\r
76 CIRCLE (cx, cy), 10, 10
\r
86 SUB putword (addr, dat)
\r
91 IF LEN(b$) < 4 THEN b$ = "0" + b$: GOTO 2
\r
93 n1 = VAL("&H" + LEFT$(b$, 2))
\r
94 n2 = VAL("&H" + RIGHT$(b$, 2))
\r
97 POKE (extADDR + addr), n2
\r
98 POKE (extADDR + addr + 1), n1
\r
105 DEF SEG = 0 ' read first from interrupt table
\r
107 extSEG = PEEK(&H79 * 4 + 3) * 256
\r
108 extSEG = extSEG + PEEK(&H79 * 4 + 2)
\r
110 PRINT "Segment is: " + HEX$(extSEG)
\r
112 extADDR = PEEK(&H79 * 4 + 1) * 256
\r
113 extADDR = extADDR + PEEK(&H79 * 4 + 0)
\r
115 PRINT "relative address is:"; extADDR
\r
119 IF getword(0) <> 1983 THEN
\r
120 PRINT "FATAL ERROR: you must load"
\r
121 PRINT "QBasic extension TSR first!"
\r