home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1987 March / Antic_Magazine_1987_03_Antic.atr / console.m65 < prev    next >
Text File  |  2023-02-26  |  3KB  |  1 lines

  1. 0100 ; CONSOLE KEY EXPANDER¢0110 ; BY MATT LOVELESS AND MIKE EGGERS¢0120 ; (c) 1987, ANTIC PUBLISHING¢0130 ; EQUATES¢0140 CONSOL = $D01F  ;CONSOLE BUTTONS¢0150 SKSTAT = $D20F  ;SERIAL PORT/KEYBOARD STATUS¢0160 VALRTRN = 212   ;LOCATION TO STORE USR RETURN VALUE¢0170 SETVBV = $E45C  ;SET VBI VECTOR¢0180 SYSVBV = $E45F  ;SYSTEM VBI¢0190 XITVBV = $E462  ;EXIT VBI¢0200 ;¢0210     *=  $0600¢0220     LDA #$00¢0230     STA FLAG    ;ZERO THE FLAG¢0240     PLA ¢0250     BNE INIT¢0260 ;¢0270     RTS ¢0280 INIT¢0290     TAX ¢0300     PLA         ;DISCARD HIGH BYTE AWAY¢0310     PLA         ;GET LOW BYTE¢0320     STA BUTTON  ;SAVE IT¢0330     DEX         ;COMPENSATE FOR REMOVING FIRST ARGUMENT¢0340     BEQ GETVBI  ;IF ALL PARAMETERS ARE OFF THEN BRANCH¢0350 LOOP1¢0360     PLA         ;REMOVE BAD¢0370     PLA         ;VALUES WHICH¢0380     DEX         ;MIGHT OCCUR¢0390     BNE LOOP1   ;IN THE USR CALL¢0400 ;¢0410 GETVBI¢0420     BIT BUTTON¢0430     BEQ VBIOFF  ;OPTION #0¢0440 ;¢0450     BMI VBION   ;OPTION #128¢0460 ;¢0470 ;OPTION #1¢0480 ;¢0490     LDA #$01¢0500     STA FLAG¢0510 ;¢0520 VBION¢0530     LDA #BUTTON/256 ;HIGH BYTE FOR USR RETURN¢0540     STA VALRTRN+1¢0550     LDA #BUTTON&255 ;LOW BYTE¢0560     STA VALRTRN¢0570 ;  GRAB VBI¢0580     LDX #VBI/256 ;HIGH BYTE¢0590     LDY #VBI&255 ;LOW BYTE¢0600     LDA #$07    ;DEFERRED VBI¢0610     JSR SETVBV¢0620     LDA #$00¢0630     STA BUTTON¢0640     RTS ¢0650 ;¢0660 VBIOFF¢0670     LDA #CONSOL/256 ;HIGH BYTE FOR USR¢0680     STA VALRTRN+1¢0690     LDA #CONSOL&255 ;LOW BYTE¢0700     STA VALRTRN¢0710     LDX #XITVBV/256 ;HIGH BYTE¢0720     LDY #XITVBV&255 ;LOW BYTE¢0730     LDA #$07    ;DEFERRED VBI¢0740     JMP SETVBV  ;ITS RTS WILL RETURN TO CARTRIDGE¢0750 ;¢0760 ; THE DEFERRED VBI VECTOR POINTS¢0770 ; HERE.¢0780 ;¢0790 VBI¢0800     LDA SKSTAT¢0810     AND #$08    ;"AND-OUT" ALL BUT BIT-3 (SHIFT KEY)¢0820     ORA CONSOL  ;OR, IN CONSOLE KEYS¢0830     EOR #$0F    ;SWITCH THE LOWER NIBBLE.¢0840     LDX FLAG¢0850     BNE ZERO    ;ARE WE IN LATCHED MODE?¢0860 ;---YES¢0870     TAX         ;COPY A-REG INTO X-REG¢0880     AND #$F7    ;AND OUT SHIFT VALUE¢0890     BEQ EXIT    ;IF NO CONSOLE KEYS THEN EXIT¢0900 ;¢0910     TXA         ;ELSE RETURN ORIGINAL VALUE¢0920     JMP STORE¢0930 ZERO¢0940     TAX ¢0950     AND #$F7    ;"AND-OUT" SHIFT VALUE¢0960     BEQ STORE   ;IF NO CONSOLE KEYS THEN STORE A ZERO¢0970 ;¢0980     TXA         ;OTHERWISE STORE THE ORIGINAL VALUE¢0990 ;¢1000 STORE¢1010     STA BUTTON¢1020 EXIT¢1030     JMP XITVBV¢1040 ;¢1050 FLAG¢1060     .BYTE 0¢1070 BUTTON¢1080     .BYTE 0¢1090 ;¢1100     .END ¢