Initial commit

This commit is contained in:
Bill Chatfield 2018-02-02 17:16:08 -05:00
commit 8756e372ed
3 changed files with 85 additions and 0 deletions

BIN
AppleCommander-1.3.5.14.jar Normal file

Binary file not shown.

30
Makefile Normal file
View File

@ -0,0 +1,30 @@
# Compiles with https://www.brutaldeluxe.fr/products/crossdevtools/merlin/
#
ifeq ($(OS),Windows_NT)
MERLIN_DIR=C:/opt/Merlin32_v1.0
MERLIN_LIB=$(MERLIN_DIR)/Library
MERLIN=$(MERLIN_DIR)/Windows/Merlin32
RM=del /s
else
MERLIN_DIR=/opt/Merlin32_v1.0
MERLIN_LIB=$(MERLIN_DIR)/Library
MERLIN=$(MERLIN_DIR)/Windows/Merlin32
RM=rm -f
endif
AC=java -jar AppleCommander-1.3.5.14.jar
SRC=delkeyhandlergid.s
PGM=DELKEYHANDLERGID
VOL=$(PGM)
DSK=$(PGM).dsk
$(DSK): $(PGM)
$(AC) -pro140 $(DSK) $(VOL)
$(AC) -p $(DSK) $(PGM) SYS < $(PGM)
$(PGM): $(SRC)
$(MERLIN) $(MERLIN_LIB) $(SRC)
clean:
$(RM) $(DSK) $(PGM)

55
delkeyhandlergid.s Normal file
View File

@ -0,0 +1,55 @@
********************************
* *
* 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