> MSEDEMO :  err ( &81 2 M%(8) <MX%=640:MY%=512:MZ%=16 F6"USB Mouse Demo 1.01"'"(C) RetroClinic 2009,2018" P "Waiting for HID device..." Z"moni(&11): TEXT COMMAND SET d n!moni("QP2") : QUERY PORT 2 x6A%=?&FCF8 8 : CHECK FOR HUMAN INTERFACE DEVICE  A%=0 flush(20) A%=8  ?&FCF8=13 2"Device detected"'"press to start"A% :  &81:23,1;0;0;0;0 flush(20) (moni("IPA") : I/O PRINTABLE ASCII )moni("SC 0") : SET CURRENT DEVICE 0 "moni("IPH") : I/O IN BINARY : S%=4   0,MZ%); - T%=1 S%: " ";"0"+~M%(T%),2);" ";:  "%moni("DRD") : DEVICE READ DATA ,"S%=?&FCF8 : REPLY SIZE 6$A%=?&FCF8 : SWALLOW @ S%<>4 flush(20) J+ S%=4 : LOOP UNTIL MOUSE PACKET T: ^ MOUSE REPLY: h 1: BUTTONS r 2: X CHANGE | 3: Y CHANGE  4: Z CHANGE (SCROLL WHEEL) : " T%=1 S%:M%(T%)=?&FCF8: T%  OMZ%=MZ% 3 M%(4)=0 M%(4)>127 MZ%=MZ%+1 MZ%=MZ%-1  MZ%>31 MZ%<0 MZ%=OMZ% ! MZ%<>OMZ% 0,OMZ%);16;  0,0: 69,MX%,MY% OMX%=MX%:OMY%=MY% 9 M%(2)>128 MX%=MX%-4*(256-M%(2)) MX%=MX%+4*M%(2) 9 M%(3)>128 MY%=MY%+4*(256-M%(3)) MY%=MY%-4*M%(3)  0,3: 69,MX%,MY%  0,M%(1) % M%(1)>0 OMX%,OMY%: MX%,MY%   & 0moni(A$):flush(5) :T%=1(A$):V%=(A$,T%,1)) D?&FCF8=V%:T%:?&FCF8=13: N&flush(A%)::T%=0A%:X=?&FCF8:: X err ] :23,1,1;0;0;0; b 0,29);:::