home *** CD-ROM | disk | FTP | other *** search
/ Old Hackers Atari User Group Newsletter / Old_Hackers_Atari_User_Group_Newsletter_OHMJ98A.atr / tpkeypad.arc / TPKEY.SRC < prev    next >
Text File  |  1988-09-01  |  3KB  |  1 lines

  1. 10 ; CX85 KEYPAD HANDLER TPKEY.SRC¢20 ; BY Frank Walters 09/20/97¢30 ; Page 6: $0600-$0699 = 154 bytes¢40 ; PORT 1: TEXTPRO KEYS: DEL/.=cursor_L/R -/ENT=page_up/dn¢50 ; 0=^M 5=M 6=^B 7=^; 9=^L N=^H Y=^E¢60 ; PORT 2: BCALC KEYS: ESC=^A -/ENT=cursor_L/R N/Y=cursor_U/D¢70 ;¢80 ; DISABLE VBI:  PRESS START+SELECT+OPTION SIMULTANEOUSLY¢90 ;¢0100     *=  $0600¢0110 START ;         BAS USR & 1-BYTE¢0120     PLA         ;TEMP BUFFER¢0130     LDA $0224   ;VVBLKD (DEFERRED LO)¢0140     STA EXIT+1  ;EXIT TO ORIGINAL VBI¢0150     LDA $0225   ;VVBLKD (HI)¢0160     STA EXIT+2¢0170     LDY # <VBI_NEW ;SETUP X,Y,A FOR NEW VBI¢0180     LDX # >VBI_NEW¢0190     LDA #7¢0200     JMP $E45C   ;SETVBV¢0210 VBI_NEW¢0220     LDY $D300   ;PORTA (JOYSTICK)¢0230     LDX $0284   ;STRIG0¢0240     BEQ PORT_1  ;0=KEY  PRESSED¢0250     LDX $0285   ;STRIG1¢0260     BEQ PORT_2  ;0=KEY  PRESSED¢0270     DEX ¢0280     STX START   ;NO KEY PRESSED¢0290     BEQ CONSOL¢0300 PORT_1¢0310     STX OFFSET  ;OFFSET 0¢0320     TYA         ;PORTA¢0330     AND #15     ;KEYCODE NOW 0-15¢0340     BPL ESC_KEY ;SKIP PORT_2¢0350 PORT_2¢0360     LDA #17     ;OFFSET NOW +17¢0370     STA OFFSET¢0380     TYA         ;PORTA¢0390     LSR A       ;SHIFT PORT 2¢0400     LSR A       ;FROM BITS 4-7¢0410     LSR A       ;TO   BITS 0-3,¢0420     LSR A       ;SAME AS PORT 1¢0430 ESC_KEY¢0440     TAX         ;X REG = 0-15¢0450     LDA #255¢0460     CMP $D208   ;255=ESCAPE¢0470     BNE SEND_KEY ;SKIP ESC KEY¢0480     LDX #16     ;X REG=16 [ESC]¢0490 SEND_KEY¢0500     LDA START¢0510     BNE EXIT¢0520     INC START¢0530     TXA         ;0-16 (16=ESC)¢0540     STA $4D     ;ATTRACT MODE¢0550     CLC ¢0560     ADC OFFSET  ;0-16 OR 17-33¢0570     TAX ¢0580     LDA TABLE_1,X ;TABLE_1/X=0 OR TABLE_2/X=17¢0590     STA $02FC   ;764 KEY CODE¢0600 CONSOL¢0610     LDA $D01F   ;CONSOLE KEYS¢0620     BEQ QUIT    ;0=ALL 3 PRESSED¢0630 EXIT¢0640     JMP $E462   ;XITVBV TO OLD VBI¢0650 ;¢0660 OFFSET¢0670     .BYTE 0     ;PORT_1=0 OR _2=17¢0680 ;¢0690 TABLE_1 ;     TEXTPRO COMMANDS¢0700     .BYTE 134,24,101,149,185,130¢0710 ;keypad   DEL, 4, 5 , 6 , N , 7¢0720     .BYTE 53,128,170,31,30,26¢0730 ;keypad    8, 9 , Y , 1, 2, 3¢0740     .BYTE 165,135,207,206,28¢0750 ;keypad    0 , . ,ENT, - ,ESC¢0760 ;¢0770 TABLE_2 ;       BCALC KEYS (+17)¢0780     .BYTE  52,24,29,27,142,51¢0790 ;keypad   DEL, 4, 5, 6, N , 7¢0800     .BYTE 53,48,143,31,30,26¢0810 ;keypad    8, 9, Y , 1, 2, 3¢0820     .BYTE 50,34,135,134,191¢0830 ;keypad    0, .,ENT, - ,ESC¢0840 ;¢0850 ;QUIT VBI FROM CONSOLE KEYS¢0860 ;PRESS START + SELECT + OPTION¢0870 ;to turn off the Keypad!¢0880 ;¢0890 ;RE-RUN KEYPAD FROM DOS¢0900 ;Run @ Address: M $0601¢0910 ;or from BASIC: A=USR(1536)¢0920 ;¢0930 QUIT¢0940     LDA #104    ;"h" or PLA¢0950     STA $0600   ;RESTORE 1536¢0960     LDA EXIT+1  ;OLD VVBLKD LO¢0970     STA $0224   ;REPLACE IT¢0980     LDA EXIT+2  ;OLD VVBLKD HI¢0990     STA $0225   ;REPLACE IT¢1000     JMP EXIT    ;EXIT TO OLD VBI¢1010 ; RUNAD¢1020     *=  $02E0¢1030     .WORD START+1¢1040     .END ¢