0100 ; SSI JOYSTICK DRIVER (8-WAY)õ0110 ; BY RICH MOOREõ0120 ; (c)1987, ANTIC PUBLISHINGõ0130 ;õ0140 ;Uses deferred Vertical Blank toõ0150 ;enter a keycode based on theõ0160 ;deflection of the joystick andõ0170 ;whether the trigger is pressed.õ0180 ;õ0190 ;Replaces "XRENAME" in DOS 2.0õ0200 ;õ0210 ; System equatesõ0220 ;õ0230 SETVBV = 58460õ0240 XITVBV = 58466õ0250 STICK0 = 632õ0260 STRIG0 = 644õ0270 INITAD = 738õ0280 CH = 764õ0290 ;õ0300 ; DOS 2.0 equatesõ0310 XRENAME = $0BD9 ; Start ofõ0320 ; "XRENAME"õ0330 ERDVDC = $12BF ;Command errorõ0340 ; routineõ0350 *= XRENAMEõ0360 ;õ0370 JMP ERDVDC ;Jump to errorõ0380 ; ;routine ifõ0390 ; XRENAME calledõ0400 ; by CIO or DOSõ0410 ;õ0420 INSTALL ; Link joystickõ0430 LDY # VBD ;Vertical Blankõ0450 LDA #7õ0460 JMP SETVBVõ0470 ;õ0480 VBDõ0490 LDA STICK0õ0500 AND #15 ;Mask-out upperõ0510 ; four bits,õ0520 CMP #15 ;exit if stickõ0530 ; is centered.õ0540 BEQ DONEõ0550 ;õ0560 LDX STRIG0 ;If pressed,õ0570 BEQ D0 ;check diagonal.õ0580 ;õ0590 LDX #3 ;Check forõ0600 L1 ; Cardinal (NESW)õ0610 LDY KEY1,X ;direction.õ0620 CMP CARD,Xõ0630 BEQ DELAYõ0640 ;õ0650 DEX õ0660 BPL L1õ0670 BMI DONE ;Exit if no matchõ0680 ;õ0690 D0 ; Check forõ0700 LDX #3 ;diagonalsõ0710 D1õ0720 LDY KEY2,Xõ0730 CMP DIAG,Xõ0740 BEQ DELAYõ0750 DEX õ0760 BPL D1õ0770 BMI DONEõ0780 ;õ0790 DELAYõ0800 DEC TIMERõ0810 BPL DONEõ0820 LDX #3õ0830 STX TIMERõ0840 ;õ0850 PRESSõ0860 STY CH ;Enter the codeõ0870 DONEõ0880 JMP XITVBV ;and exit.õ0890 ;õ0900 TIMERõ0910 .BYTE 3õ0920 ;õ0930 KEY1õ0940 .BYTE 31 ;"1"õ0950 .BYTE 26 ;"3"õ0960 .BYTE 29 ;"5"õ0970 .BYTE 51 ;"7"õ0980 CARDõ0990 .BYTE 14 ;NORTHõ1000 .BYTE 7 ;EASTõ1010 .BYTE 13 ;SOUTHõ1020 .BYTE 11 ;WESTõ1030 ;õ1040 KEY2õ1050 .BYTE 30 ;"2"õ1060 .BYTE 24 ;"4"õ1070 .BYTE 27 ;"6"õ1080 .BYTE 53 ;"8"õ1090 DIAGõ1100 .BYTE 6 ;NEõ1110 .BYTE 5 ;SEõ1120 .BYTE 9 ;SWõ1130 .BYTE 10 ;NWõ1140 ;õ1150 ;õ1160 *= INITAD ;Execute as soonõ1170 ; as segmentõ1180 ; is loaded soõ1190 .WORD INSTALL ; it can beõ1200 ; ;the first partõ1210 ; ; of anõ1220 ; AUTORUN.SYS fileõ1230 .END õ