add support for nonstandard epilogues in SIGCHECK [fixes Water Pollution]

This commit is contained in:
4am 2023-01-27 21:30:55 -05:00
parent dc7b3d8cd3
commit 98107fcb62
2 changed files with 29 additions and 4 deletions

View File

@ -12,15 +12,40 @@
; - Conjecture (Robert Scott) ; - Conjecture (Robert Scott)
;------------------------------- ;-------------------------------
lda gIsBoot0 lda gIsBoot0
bne + bne @exit
ldy #$05 ldy #$05
jsr SearchTrack jsr SearchTrack
!byte $BD,$80,$C0; LDA $C080,X !byte $BD,$80,$C0; LDA $C080,X
!byte $18 ; CLC !byte $18 ; CLC
!byte $68 ; PLA !byte $68 ; PLA
bcs + ; passport-test-suite/Advanced Electricity.woz [C=0] matches bcs @exit ; passport-test-suite/Advanced Electricity.woz [C=0] matches
inx inx
inx inx
jsr modify1 jsr modify1
!byte $D0 ; change indexed softswitch address so it does nothing !byte $D0 ; change indexed softswitch address so it does nothing
+ ; now search for non-standard RWTS parameters
; conveniently listed at beginning of SIGCHECK routine
ldy #$0C
jsr SearchTrack
!byte $D5,$AA,$96
!byte WILDCARD,WILDCARD
!byte $D5,$AA,$AD
!byte WILDCARD,WILDCARD
!byte $18,$B0
bcs @exit
jsr +
jmp @exit
+ jsr ++
inx
inx
++ inx
inx
inx
jsr compare2
!byte $DE,$AA
bcc +++
; passport-test-suite/Water Pollution.woz reaches here
jsr modify2
!byte $DE,$AA
+++ rts
@exit

View File

@ -377,7 +377,7 @@ StringTableHigh ; must be kept in sync with constants in enid.a
.passport .passport
!text "Passport ",$00 !text "Passport ",$00
.header .header
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2023-01-18",$00 !text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2023-01-27",$00
.bar9 .bar9
!text "_________",$00 !text "_________",$00
.bar18 .bar18