mirror of
https://github.com/gungwald/apple2-delete-key-handler-from-gid.git
synced 2024-06-14 10:29:29 +00:00
56 lines
1.6 KiB
ArmAsm
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
|