10
20 :
30 MODE &80:VDU 23,1;0;0;0;0
40 max%=7
50 DIM ox%(max%),oy%(max%)
60 FOR test%=1 TO max%*2 STEP 2:PROCpointer(0,0):NEXT test%
70 REPEAT
80 PRINT TAB(7,0);"ADVAL(0)=&";FNh0(ADVAL(0),4)
90 FOR test%=1 TO max%*2 STEP 2
100 PROCtest(test%)
110 NEXT test%
120 FOR test%=10 TO 12
130 PRINT MID$("Left MiddleRight ",test%*6-59,6);" INKEY";-test%;"=";INKEY-test%;SPC3
140 NEXT
150 UNTIL FALSE
160 :
170 DEFPROCtest(port%)
180 x%=ADVAL(port%+0)
190 y%=ADVAL(port%+1)
200 IF PAGE>&FFFF:IF port%=7:MOUSE x%,y%,A%
210 IF port%=7:PRINT"Mouse:"
220 PRINT TAB(07,port%/2+1);"ADVAL(";port%+0;")=";SPC(-(port%<10));x%;SPC2;
230 PRINT TAB(24,port%/2+1);"ADVAL(";port%+1;")=";SPC(-(port%<9));y%;SPC2
240 IF port%<5:x%=x%DIV48:y%=y%DIV64
250 IF x%=ox%(port%/2) AND y%=oy%(port%/2) THEN ENDPROC
260 PROCpointer(ox%(port%/2),oy%(port%/2)):PROCpointer(x%,y%)
270 ox%(port%/2)=x%:oy%(port%/2)=y%
280 ENDPROC
290 :
300 DEFPROCpointer(x%,y%)
310 GCOL 4,0
320 MOVE x%-16,y%:DRAW x%+16,y%
330 MOVE x%,y%-16:DRAW x%,y%+16
340 MOVE x%,y%
350 ENDPROC
360 :
370 DEFFNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%)