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 >
Wrap
Text File
|
1988-09-01
|
3KB
|
1 lines
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 ¢