apple2-delete-key-handler-f.../delkeyhandlergid.s

56 lines
1.6 KiB
ArmAsm

********************************
* *
* DELKEYHANDLERGID - MAKES THE *
* DELETE KEY WORK LIKE THE *
* BACKSPACE ON A PC *
* *
* AUTHOR: gid...@sasktel.net *
* MERLINIFY: Bill Chatfield *
* LICENSE: GPL2 *
* *
********************************
ORG $803
********************************
* *
* CONSTANTS *
* *
********************************
VECTOUT EQU $BE30 ;VECTOUT LOW
VECTIN EQU $BE32 ;VECTIN LOW
VECTINH EQU $BE33 ;VECTIN HIGH
* FOR PRODOS
* setup Basic.system vectors for input
LDA #<DELETE
STA VECTIN
LDA #>DELETE
STA VECTIN+1
RTS
* FOR DOS 3.3
* setup Dos vectors to get a keypress
* LDA #<DELETE
* STA $38
* LDA #>DELETE
* STA $39
* JMP $3EA
DELETE BIT $C01F ; are we in 80-col mode?
BMI COL80 ; branch if yes
JSR $FD1B ; changed from $FD0C
BNE DEL2
COL80 JSR $C305 ; for 80-col input
DEL2 CMP #$FF ; is the Delete key pressed; change to something else for the Apple II or II+
BNE RETURN ; if not then let DOS or Basic.sys handle the keypress
LDA #$88 ; go back one space; same action as the left arrow
JSR $FDED ; print it
LDA #$A0 ; print a space
JSR $FDED
LDA #$88 ; go back over the space
RETURN RTS ; let Dos or BS handle the last character