10
20
30 :
40 DIMctrl% 31:X%=ctrl%:Y%=X%DIV256
50 :
60 PRINTSPC(23)"Osword64"
70 PRINT"MouseX ADVAL(7):"'"MouseY ADVAL(8):"'"Left INKEY-10:"'"Middle INKEY-11:"'"Right INKEY-12:"
80 VDU11,11,11,11,11:y%=VPOS
90 GCOL 4,0
100 omx0%=0:omy0%=0:omx1%=0:omy1%=0:ob0%=0:ob1%=0
110 mx0%=0:my0%=0:mx1%=0:my1%=0:PROCPointerOn
120 REPEAT
130 REPEAT:PROCMouseRd:UNTILdiff%:PROCPointerOff
140 ob0%=ml0%+mm0%+mr0%:ob1%=ml1%+mm1%+mr1%
150 omx0%=mx0%:omy0%=my0%:omx1%=mx1%:omy1%=my1%:PROCPointerOn
160 PRINTTAB(18,y%+0)FNd(mx0%,5)" "FNd(mx1%,5)
170 PRINTTAB(18,y%+1)FNd(my0%,5)" "FNd(my1%,5)
180 PRINTTAB(18,y%+2)FNd(ml0%,4)" "FNd(ml1%,4)
190 PRINTTAB(18,y%+3)FNd(mm0%,4)" "FNd(mm1%,4)
200 PRINTTAB(18,y%+4)FNd(mr0%,4)" "FNd(mr1%,4)
210 UNTIL0
220 END
230 :
240 DEFPROCPointerOn
250 MOVE mx0%-8,my0%:DRAW mx0%+8,my0%:MOVE mx0%,my0%-8:DRAW mx0%,my0%+8
260 ENDPROC
270 DEFPROCPointerOff
280 MOVEomx0%-8,omy0%:DRAW omx0%+8,omy0%:MOVE omx0%,omy0%-8:DRAW omx0%,omy0%+8
290 ENDPROC
300 DEFPROCMouseRd
310 mx0%=ADVAL(7):my0%=ADVAL(8):ml0%=INKEY-10:mm0%=INKEY-11:mr0%=INKEY-12
320 A%=64:!X%=-1:CALL&FFF1:mx1%=X%!0 AND &FFFF:my1%=X%!2 AND &FFFF
330 ml1%=(X%?6 AND 32)=0:mm1%=(X%?6 AND 64)=0:mr1%=(X%?6 AND 128)=0
340 diff%=mx0%<>omx0% OR mx1%<>omx1% OR my0%<>omy0% OR my1%<>omy1%
350 diff%=diff% OR ob0%<>(ml0%+mm0%+mr0%) OR ob1%<>(ml1%+mm1%+mr1%)
360 ENDPROC
370 DEFFNd(A%,N%)=RIGHT$(" "+STR$A%,N%)