patch 13-sector DLM disks that call BCF0 from 9D84

This commit is contained in:
4am 2017-08-17 15:37:10 -04:00
parent 9e3664f630
commit 760650802f
2 changed files with 27 additions and 1 deletions

View File

@ -95,7 +95,7 @@ flag = $FF ; byte
}
; Application constants (not zero addresses)
RELBASE = $5800 ; address to move Passport code
RELBASE = $5700 ; address to move Passport code
; so that it's out of the way
LOWPOINT = $4300 ; lowest available address for code
BASEPAGE = $10 ; Special Delivery tracer assumes
@ -710,6 +710,7 @@ _applyToT00
!source "patchers/pascalrwts.a"
!source "patchers/micrograms.a"
!source "patchers/dos32.a"
!source "patchers/dos32dlm.a"
_applyToAll
!source "patchers/universale7.a"
!source "patchers/a6bc95.a" ; gIsPascal only

25
src/patchers/dos32dlm.a Normal file
View File

@ -0,0 +1,25 @@
;-------------------------------
; #DOS32DLM
; $9D84 jumps to $BCF0 to set the input vector to trap <Ctrl-C> during boot
; (crashes because we don't include their custom code at $BCF0 when we
; reconstruct the bootloader)
;
; tested on
; Alien Addition (1982, DLM)
; Alligator Mix (1982, DLM)
; Dragon Mix (1982, DLM)
;-------------------------------
!zone {
lda gIsDOS32
bne .exit
lda #$0b
ldx #$84
ldy #$03
jsr compare ; if T00,S0B,$84 ==
!byte $4C,$F0,$BC
bcs .exit
ldy #$03
jsr modify ; then set T00,S0B,$84 =
!byte $AD,$E9,$B7
.exit
}