Try to fix 80-col detection

This commit is contained in:
Bill Chatfield 2021-10-01 02:12:32 -04:00
parent 8198d5adab
commit 0c3e688faf
4 changed files with 94 additions and 10 deletions

4
.gitignore vendored
View File

@ -1,4 +1,4 @@
*.swp
delkeyeraseleft
delkeyeraseleft.dsk
delkey.clr.left
delkey.clr.left.dsk
_FileInformation.txt

View File

@ -3,15 +3,18 @@
#
AC=java -jar AppleCommander-1.3.5-ac.jar
SRC=delkeyeraseleft.s
PGM=delkeyeraseleft
PGM=delkey.clr.left
SRC=$(PGM).s
PGM2=mem.vars
SRC2=$(PGM2).s
VOL=$(PGM)
DSK=$(PGM).dsk
$(DSK): $(PGM)
$(DSK): $(PGM) $(PGM2)
#$(AC) -pro140 $(DSK) $(VOL) ---- Broken in 1.3.5 and others
cp prodos.dsk $(DSK)
$(AC) -p $(DSK) $(PGM) BIN 0x0300 < $(PGM)
$(AC) -p $(DSK) $(PGM2) BIN 0x0300 < $(PGM2)
$(PGM): $(SRC)
merlin32 $(SRC)
@ -20,6 +23,14 @@ $(PGM): $(SRC)
@# file.
@test -e $(PGM)
clean:
$(RM) $(PGM) $(DSK) error_output.txt _FileInformation.txt
$(PGM2): $(SRC2)
merlin32 $(SRC2)
@# Merlin fails to provide a non-0 exit code on failure so
@# it needs to be simulated by checking for the error_output.txt
@# file.
@test -e $(PGM2)
clean:
$(RM) $(PGM) $(PGM2) $(DSK) error_output.txt _FileInformation.txt

View File

@ -9,8 +9,9 @@
ORG $300
TYP $06 ;BINARY TYPE
DSK delkeyeraseleft ;PUT FILE NAME
DSK delkey.clr.left ;OUTPUT FILE NAME
WINWIDTH EQU $21
CH EQU $24 ;HORIZ CHAR POS (40-COL)
BASL EQU $28 ;BASE ADDR FOR CURR VIDEO LINE
KSWL EQU $38 ;KEYBOARD SWITCH LOW BYTE
@ -21,7 +22,9 @@ KBD EQU $C000 ;KEYBOARD DATA + STROBE
KBDSTRB EQU $C010 ;CLEAR KEYBOARD STROBE
CXROMON EQU $C007 ;TURN ON INTERNAL ROM
CXROMOFF EQU $C006 ;ENABLE SLOT ROMS
ALTCHAR EQU $C01E ;>=$80 IF IN 80-COL
80COLOFF EQU $C00C ;Off: display 40 columns
80COLON EQU $C00D ;On: display 80 columns
RD80COL EQU $C01F ;Read 80col switch (1 = on)
COUT EQU $FDED ;WRITE A CHARACTER
* 80-COL SUBS INSIDE THE INTERNAL ROM
@ -152,7 +155,7 @@ DELHNDLR
TYA ;SAVE Y
PHA
BIT ALTCHAR ;TEST FOR 80-COL ON
BIT RD80COL ;TEST FOR 80-COL ON
BMI COL80
COL40

70
mem.vars.s Normal file
View File

@ -0,0 +1,70 @@
********************************
* *
* PRINT MEMORY VARIABLES *
* *
* AUTHOR: BILL CHATFIELD *
* LICENSE: GPL *
* *
********************************
ORG $300
TYP $06 ;BINARY TYPE
DSK mem.vars ;OUTPUT FILE NAME
RDALTCHAR EQU $C01E
RD80COL EQU $C01F
RD80STORE EQU $C018
HEXDEC EQU $ED24 ;HEX-TO-DECIMAL CONVERSION
CROUT EQU $FD8E ;PRINT A CARRIAGE RETURN
STROUT EQU $DB3A ;PRINT NULL-TERM STRING IN AY
* MONITOR SUBS
PRINTXY EQU $F940 ;PRINT X & Y AS HEX
PRBYTE EQU $FDDA ;PRINT BYTE AS 2 HEX DIGITS
********************************
* *
* PUTS MACRO *
* *
* APPLESOFT MUST BE IN MEMORY *
* BECAUSE THE STROUT SUB IS *
* USED. *
* *
* X & Y ARE PRESERVED *
* *
* ]1 - ADDRESS OF STRING *
* *
********************************
PUTS MAC
TYA ;PRESERVE Y
PHA
LDA #<]1 ;PUT LOW BYTE INTO A
LDY #>]1 ;PUT HIGH BYTE INTO Y
JSR STROUT ;CALL APPLESOFT'S STRING PRINT
PLA ;RESTORE Y
TAY
<<<
MAIN
PUTS ALTCHLBL
BIT RDALTCHAR
JSR PRBYTE
JSR CROUT
PUTS 80COLLBL
BIT RD80COL
JSR PRBYTE
JSR CROUT
PUTS 80STOLBL
BIT RD80STORE
JSR PRBYTE
JSR CROUT
RTS
ALTCHLBL ASC "ALTCHAR = ",00
80COLLBL ASC "80COL = ",00
80STOLBL ASC "80STORE = ",00