0100 ; SSI JOYSTICK DRIVER (6-WAY)›0110 ; BY RICH MOORE›0120 ;(c)1987, ANTIC PUBLISHING›0130 ;›0140 ; SYSTEM EQUATES›0150 SETVBV = 58460›0160 XITVBV = 58466›0170 STICK0 = 632›0180 INITAD = 738›0190 CH = 764›0200 ;›0210 ; DOS 2.0 EQUATES›0220 XRENAME = $0BD9›0230 ERDVDC = $12BF›0240 ;›0250 *= XRENAME›0260 ;›0270 JMP ERDVDC›0280 INSTALL›0290 LDY # VBD›0310 LDA #7›0320 JMP SETVBV›0330 ;›0340 VBD›0350 LDA STICK0›0360 AND #15›0370 CMP #15›0380 BEQ DONE›0390 ;›0400 LDX #5 ;Match stick›0410 ; position›0420 L1 ; (N/NE/SE/S/SW/NW)›0430 ; to a›0440 LDY KEY,X ;keyboard code›0450 CMP POS,X›0460 BEQ DELAY›0470 DEX ›0480 BPL L1›0490 BMI DONE ;Exit if no match›0500 ;›0510 DELAY›0520 DEC TIMER›0530 BPL DONE›0540 LDX #3›0550 STX TIMER›0560 ;›0570 PRESS›0580 STY CH ;Enter the code›0590 DONE›0600 JMP XITVBV ;and exit›0610 ;›0620 TIMER›0630 .BYTE 3›0640 ;›0650 KEY›0660 .BYTE 31 ;"1"›0670 .BYTE 30 ;"2"›0680 .BYTE 26 ;"3"›0690 .BYTE 24 ;"4"›0700 .BYTE 29 ;"5"›0710 .BYTE 27 ;"6"›0720 POS›0730 .BYTE 14 ;NORTH›0740 .BYTE 6 ;NE›0750 .BYTE 5 ;SE›0760 .BYTE 13 ;SOUTH›0770 .BYTE 9 ;SW›0780 .BYTE 10 ;NW›0790 ;›0800 *= INITAD›0810 .WORD INSTALL›0820 .END ›