mirror of
https://github.com/a2-4am/passport.git
synced 2024-12-26 16:30:22 +00:00
with all the trimmings
This commit is contained in:
parent
7941fcb327
commit
af64599488
@ -3,14 +3,13 @@ EnterCFFAIfAvailable
|
|||||||
ldy #$04
|
ldy #$04
|
||||||
- lda $C7F6, y
|
- lda $C7F6, y
|
||||||
cmp CFFASignature, y
|
cmp CFFASignature, y
|
||||||
|
sec
|
||||||
bne +
|
bne +
|
||||||
dey
|
dey
|
||||||
bpl -
|
bpl -
|
||||||
jsr $C730
|
jsr $C730
|
||||||
clc
|
clc
|
||||||
!byte $24 ; hide next SEC
|
|
||||||
+
|
+
|
||||||
sec
|
|
||||||
rts
|
rts
|
||||||
CFFASignature
|
CFFASignature
|
||||||
!byte $43,$46,$33,$4B,$31
|
!byte $43,$46,$33,$4B,$31
|
||||||
|
@ -11,24 +11,24 @@
|
|||||||
!zone {
|
!zone {
|
||||||
IDDavidson
|
IDDavidson
|
||||||
lda gIsProDOS ; ProDOS?
|
lda gIsProDOS ; ProDOS?
|
||||||
bne .no ; no, give up
|
bne .exit ; no, give up
|
||||||
lda gTrack ; track $22?
|
lda gTrack ; track $22?
|
||||||
cmp #$22
|
cmp #$22
|
||||||
bne .no ; no, give up
|
sec
|
||||||
|
bne .exit ; no, give up
|
||||||
lda gSector ; sector $00?
|
lda gSector ; sector $00?
|
||||||
bne .no ; no, give up
|
bne .exit ; no, give up
|
||||||
;;lda #$00 ; try re-reading the sector but
|
;;lda #$00 ; try re-reading the sector but
|
||||||
sta $B92E ; ignore data field checksum failure
|
sta $B92E ; ignore data field checksum failure
|
||||||
jsr ReadSector
|
jsr ReadSector
|
||||||
lda #$13
|
lda #$13
|
||||||
sta $B92E
|
sta $B92E
|
||||||
bcs .no ; didn't work, give up
|
bcs .exit ; didn't work, give up
|
||||||
lda #s_davidson
|
lda #s_davidson
|
||||||
jsr PrintByID
|
jsr PrintByID
|
||||||
lda #TRUE
|
lda #TRUE
|
||||||
sta gIsDavidson
|
sta gIsDavidson
|
||||||
clc
|
clc
|
||||||
!byte $24
|
.exit
|
||||||
.no sec
|
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -145,9 +145,6 @@ IDDOS33
|
|||||||
ldy #$09
|
ldy #$09
|
||||||
jsr compare ; if T00,S00,$F0 ==
|
jsr compare ; if T00,S00,$F0 ==
|
||||||
!byte $8D,$FE,$08
|
!byte $8D,$FE,$08
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
!byte $EE,$F3,$03
|
!byte $EE,$F3,$03
|
||||||
!byte $4C,$1F,$08
|
!byte $4C,$1F,$08
|
||||||
; bcs .exit ; unknown code at $08F0 -> failure
|
; bcs .exit ; unknown code at $08F0 -> failure
|
||||||
|
@ -15,7 +15,7 @@ IDEncoded44
|
|||||||
ldy #$07
|
ldy #$07
|
||||||
jsr SearchTrack
|
jsr SearchTrack
|
||||||
!byte $BD,$8C,$C0,$10,$FB,$38,$2A
|
!byte $BD,$8C,$C0,$10,$FB,$38,$2A
|
||||||
bcs .exit
|
;; bcs .exit
|
||||||
.exit
|
.exit
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ IDEncoded53
|
|||||||
jsr SearchTrack
|
jsr SearchTrack
|
||||||
!byte $BD,$8C,$C0,$10,$FB,$C9,$B5,$F0
|
!byte $BD,$8C,$C0,$10,$FB,$C9,$B5,$F0
|
||||||
!byte $09,$28,$90,$DF,$49,$AD,$F0,$1F
|
!byte $09,$28,$90,$DF,$49,$AD,$F0,$1F
|
||||||
bcs .exit
|
;; bcs .exit
|
||||||
.exit
|
.exit
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -28,10 +28,8 @@ ID8b3
|
|||||||
!byte $A2,$FF,$BD,$00,$08,$9D,$00,$B6
|
!byte $A2,$FF,$BD,$00,$08,$9D,$00,$B6
|
||||||
!byte $CA,$E0,$FF,$D0,$F5,$20,$CC,$08
|
!byte $CA,$E0,$FF,$D0,$F5,$20,$CC,$08
|
||||||
!byte $A6,$2B
|
!byte $A6,$2B
|
||||||
bcc .maybe
|
bcs .exit
|
||||||
rts
|
|
||||||
|
|
||||||
.maybe
|
|
||||||
lda #$00
|
lda #$00
|
||||||
ldx #$B3
|
ldx #$B3
|
||||||
ldy #$36
|
ldy #$36
|
||||||
@ -44,5 +42,6 @@ ID8b3
|
|||||||
!byte $00,$F0,$91,$00,$C0,$FF,$D0,$F6
|
!byte $00,$F0,$91,$00,$C0,$FF,$D0,$F6
|
||||||
!byte $C6,$01,$A9,$08,$C5,$01,$D0,$EC
|
!byte $C6,$01,$A9,$08,$C5,$01,$D0,$EC
|
||||||
!byte $60
|
!byte $60
|
||||||
|
.exit
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
@ -82,10 +82,7 @@ AnalyzeT00
|
|||||||
!source "../patchers/bademu2.a"
|
!source "../patchers/bademu2.a"
|
||||||
!source "../patchers/rwts.a"
|
!source "../patchers/rwts.a"
|
||||||
!source "../patchers/rwtslog.a"
|
!source "../patchers/rwtslog.a"
|
||||||
!source "../patchers/mecc1.a"
|
!source "../patchers/mecc.a"
|
||||||
!source "../patchers/mecc2.a"
|
|
||||||
!source "../patchers/mecc3.a"
|
|
||||||
!source "../patchers/mecc4.a"
|
|
||||||
!source "../patchers/rol1e.a"
|
!source "../patchers/rol1e.a"
|
||||||
; !source "../patchers/thunder.a"
|
; !source "../patchers/thunder.a"
|
||||||
!source "../patchers/bb03.a"
|
!source "../patchers/bb03.a"
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
;-------------------------------
|
;-------------------------------
|
||||||
; Passport
|
; Passport
|
||||||
; a 4am hack
|
; a 4am hack
|
||||||
; (c) 2016-8 by 4am
|
; (c) 2016-9 by 4am
|
||||||
;
|
;
|
||||||
; Permission is hereby granted, free of charge, to any
|
; Permission is hereby granted, free of charge, to any
|
||||||
; person obtaining a copy of this software and associated
|
; person obtaining a copy of this software and associated
|
||||||
@ -234,11 +234,6 @@ MainMenu
|
|||||||
bne +
|
bne +
|
||||||
lda #%00000000
|
lda #%00000000
|
||||||
beq Action ; unconditional branch
|
beq Action ; unconditional branch
|
||||||
+
|
|
||||||
cmp #k_demuffin
|
|
||||||
bne +
|
|
||||||
lda #%10000000
|
|
||||||
bne Action ; unconditional branch
|
|
||||||
+
|
+
|
||||||
cmp #k_crack
|
cmp #k_crack
|
||||||
bne .getkey
|
bne .getkey
|
||||||
|
@ -20,12 +20,11 @@
|
|||||||
bcs .exit
|
bcs .exit
|
||||||
sta gDisplayBytes
|
sta gDisplayBytes
|
||||||
pha
|
pha
|
||||||
lda #s_a5count
|
|
||||||
jsr PrintByID
|
|
||||||
txa
|
txa
|
||||||
clc
|
|
||||||
adc #$08
|
adc #$08
|
||||||
tax
|
tax
|
||||||
|
lda #s_a5count
|
||||||
|
jsr PrintByID
|
||||||
pla
|
pla
|
||||||
ldy #$02
|
ldy #$02
|
||||||
jsr modify
|
jsr modify
|
||||||
|
@ -23,9 +23,8 @@
|
|||||||
lda #$07 ; sector to check for David-DOS variant
|
lda #$07 ; sector to check for David-DOS variant
|
||||||
ldx gIsDavidDOS
|
ldx gIsDavidDOS
|
||||||
beq .maybe
|
beq .maybe
|
||||||
ldx gIsBoot0 ; if DOS 3.3 boot0 loader
|
lda gIsBoot0 ; if DOS 3.3 boot0 loader
|
||||||
bne .noButInYellow
|
ora gIsBoot1 ; and DOS 3.3 boot1 loader
|
||||||
ldx gIsBoot1 ; and DOS 3.3 boot1 loader
|
|
||||||
bne .noButInYellow
|
bne .noButInYellow
|
||||||
lda #$05 ; sector to check for DOS 3.3 variant
|
lda #$05 ; sector to check for DOS 3.3 variant
|
||||||
.maybe
|
.maybe
|
||||||
|
@ -358,7 +358,7 @@ ReadChoplifter
|
|||||||
lda $c050
|
lda $c050
|
||||||
ldx #0
|
ldx #0
|
||||||
- lda $800,x
|
- lda $800,x
|
||||||
sta $400,x
|
sta $B300,x
|
||||||
inx
|
inx
|
||||||
bne -
|
bne -
|
||||||
ldx #$42
|
ldx #$42
|
||||||
@ -375,10 +375,10 @@ ReadChoplifter
|
|||||||
sta $500,x
|
sta $500,x
|
||||||
lda (*+$ff) and $ff00,x
|
lda (*+$ff) and $ff00,x
|
||||||
sta $200,x
|
sta $200,x
|
||||||
lda $400,x
|
|
||||||
sta $800,x
|
|
||||||
lda (*+$1ff) and $ff00,x
|
lda (*+$1ff) and $ff00,x
|
||||||
sta $400,x
|
sta $400,x
|
||||||
|
lda $B300,x
|
||||||
|
sta $800,x
|
||||||
txs
|
txs
|
||||||
inx
|
inx
|
||||||
bne -
|
bne -
|
||||||
|
92
src/patchers/mecc.a
Normal file
92
src/patchers/mecc.a
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
;-------------------------------
|
||||||
|
; #MECC
|
||||||
|
; MECC fastloader with custom
|
||||||
|
; address and data prologues
|
||||||
|
; e.g. 1: Word Munchers
|
||||||
|
; e.g. 2: Phonics Prime Time series
|
||||||
|
; e.g. 3: Word Munchers v1.1
|
||||||
|
; e.g. 4: A-201 Conquering Whole Numbers
|
||||||
|
;-------------------------------
|
||||||
|
!zone {
|
||||||
|
bit gMode ; nothing to do here in verify-only mode
|
||||||
|
bpl .jmpexit
|
||||||
|
lda gMECCFastloadType
|
||||||
|
cmp #ID_MECC1
|
||||||
|
bcc .jmpexit
|
||||||
|
cmp #ID_MECC4+1
|
||||||
|
bcs .jmpexit
|
||||||
|
asl
|
||||||
|
adc gMECCFastloadType
|
||||||
|
ldx #6
|
||||||
|
- pha
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
lda .table+2,y
|
||||||
|
sta .cmpbyte
|
||||||
|
sta .modbyte
|
||||||
|
lda .table,y
|
||||||
|
ldx .table+1,y
|
||||||
|
ldy #$01
|
||||||
|
jsr compare
|
||||||
|
.cmpbyte
|
||||||
|
!byte $D1 ; SMC
|
||||||
|
bcc +
|
||||||
|
|
||||||
|
ldy #$01
|
||||||
|
jsr modify
|
||||||
|
.modbyte
|
||||||
|
!byte $D1 ; SMC
|
||||||
|
|
||||||
|
+ pla
|
||||||
|
tax
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne -
|
||||||
|
|
||||||
|
.jmpexit
|
||||||
|
jmp .exit
|
||||||
|
|
||||||
|
.table
|
||||||
|
; MECC1
|
||||||
|
|
||||||
|
!byte $0B,$08,$D5
|
||||||
|
!byte $0B,$12,$AA
|
||||||
|
!byte $0B,$1D,$96
|
||||||
|
!byte $0B,$8F,$D5
|
||||||
|
!byte $0B,$99,$AA
|
||||||
|
!byte $0B,$A3,$AD
|
||||||
|
|
||||||
|
; MECC2
|
||||||
|
|
||||||
|
!byte $07,$83,$D5
|
||||||
|
!byte $07,$8D,$AA
|
||||||
|
!byte $07,$98,$96
|
||||||
|
!byte $07,$15,$D5
|
||||||
|
!byte $07,$1F,$AA
|
||||||
|
!byte $07,$2A,$AD
|
||||||
|
|
||||||
|
; MECC3
|
||||||
|
|
||||||
|
!byte $0A,$E8,$D5
|
||||||
|
!byte $0A,$F2,$AA
|
||||||
|
!byte $0A,$FD,$96
|
||||||
|
!byte $0B,$6F,$D5
|
||||||
|
!byte $0B,$79,$AA
|
||||||
|
!byte $0B,$83,$AD
|
||||||
|
|
||||||
|
; MECC4
|
||||||
|
|
||||||
|
!byte $08,$83,$D5
|
||||||
|
!byte $08,$8D,$AA
|
||||||
|
!byte $08,$98,$96
|
||||||
|
!byte $08,$15,$D5
|
||||||
|
!byte $08,$1F,$AA
|
||||||
|
!byte $08,$2A,$AD
|
||||||
|
|
||||||
|
.exit
|
||||||
|
}
|
@ -1,73 +0,0 @@
|
|||||||
;-------------------------------
|
|
||||||
; #MECC1
|
|
||||||
; MECC fastloader with custom
|
|
||||||
; address and data prologues
|
|
||||||
; e.g. Word Munchers
|
|
||||||
;-------------------------------
|
|
||||||
!zone {
|
|
||||||
bit gMode ; nothing to do here in verify-only mode
|
|
||||||
bpl .exit
|
|
||||||
lda gMECCFastloadType
|
|
||||||
cmp #ID_MECC1
|
|
||||||
bne .exit
|
|
||||||
lda #$0B
|
|
||||||
ldx #$08
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$08 !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .addr2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$0B =
|
|
||||||
!byte $D5
|
|
||||||
.addr2
|
|
||||||
lda #$0B
|
|
||||||
ldx #$12
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$12 !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .addr3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$12 =
|
|
||||||
!byte $AA
|
|
||||||
.addr3
|
|
||||||
lda #$0B
|
|
||||||
ldx #$1D
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$1D !=
|
|
||||||
!byte $96
|
|
||||||
bcc .data1
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$1D =
|
|
||||||
!byte $96
|
|
||||||
.data1
|
|
||||||
lda #$0B
|
|
||||||
ldx #$8F
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$8F !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .data2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$8F =
|
|
||||||
!byte $D5
|
|
||||||
.data2
|
|
||||||
lda #$0B
|
|
||||||
ldx #$99
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$99 !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .data3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$99 =
|
|
||||||
!byte $AA
|
|
||||||
.data3
|
|
||||||
lda #$0B
|
|
||||||
ldx #$A3
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$A3 !=
|
|
||||||
!byte $AD
|
|
||||||
bcc .exit
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$A3 =
|
|
||||||
!byte $AD
|
|
||||||
.exit
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
;-------------------------------
|
|
||||||
; #MECC2
|
|
||||||
; MECC fastloader with custom
|
|
||||||
; address and data prologues
|
|
||||||
; e.g. Phonics Prime Time series
|
|
||||||
;-------------------------------
|
|
||||||
!zone {
|
|
||||||
bit gMode ; nothing to do here in verify-only mode
|
|
||||||
bpl .exit
|
|
||||||
lda gMECCFastloadType
|
|
||||||
cmp #ID_MECC2
|
|
||||||
bne .exit
|
|
||||||
lda #$07
|
|
||||||
ldx #$83
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S07,$83 !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .addr2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S07,$83 =
|
|
||||||
!byte $D5
|
|
||||||
.addr2
|
|
||||||
lda #$07
|
|
||||||
ldx #$8D
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S07,$8D !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .addr3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S07,$8D =
|
|
||||||
!byte $AA
|
|
||||||
.addr3
|
|
||||||
lda #$07
|
|
||||||
ldx #$98
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S07,$98 !=
|
|
||||||
!byte $96
|
|
||||||
bcc .data1
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S07,$98 =
|
|
||||||
!byte $96
|
|
||||||
.data1
|
|
||||||
lda #$07
|
|
||||||
ldx #$15
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S07,$15 !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .data2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S07,$15 =
|
|
||||||
!byte $D5
|
|
||||||
.data2
|
|
||||||
lda #$07
|
|
||||||
ldx #$1F
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S07,$1F !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .data3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S07,$1F =
|
|
||||||
!byte $AA
|
|
||||||
.data3
|
|
||||||
lda #$07
|
|
||||||
ldx #$2A
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S07,$2A !=
|
|
||||||
!byte $AD
|
|
||||||
bcc .exit
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S07,$2A =
|
|
||||||
!byte $AD
|
|
||||||
.exit
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
;-------------------------------
|
|
||||||
; #MECC3
|
|
||||||
; MECC fastloader with custom
|
|
||||||
; address and data prologues
|
|
||||||
; e.g. Word Munchers v1.1
|
|
||||||
;-------------------------------
|
|
||||||
!zone {
|
|
||||||
bit gMode ; nothing to do here in verify-only mode
|
|
||||||
bpl .exit
|
|
||||||
lda gMECCFastloadType
|
|
||||||
cmp #ID_MECC3
|
|
||||||
bne .exit
|
|
||||||
lda #$0A
|
|
||||||
ldx #$E8
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0A,$E8 !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .addr2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0A,$E8 =
|
|
||||||
!byte $D5
|
|
||||||
.addr2
|
|
||||||
lda #$0A
|
|
||||||
ldx #$F2
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0A,$F2 !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .addr3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0A,$F2 =
|
|
||||||
!byte $AA
|
|
||||||
.addr3
|
|
||||||
lda #$0A
|
|
||||||
ldx #$FD
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0A,$FD !=
|
|
||||||
!byte $96
|
|
||||||
bcc .data1
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0A,$FD =
|
|
||||||
!byte $96
|
|
||||||
.data1
|
|
||||||
lda #$0B
|
|
||||||
ldx #$6F
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$6F !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .data2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$6F =
|
|
||||||
!byte $D5
|
|
||||||
.data2
|
|
||||||
lda #$0B
|
|
||||||
ldx #$79
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$79 !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .data3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$79 =
|
|
||||||
!byte $AA
|
|
||||||
.data3
|
|
||||||
lda #$0B
|
|
||||||
ldx #$83
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S0B,$83 !=
|
|
||||||
!byte $AD
|
|
||||||
bcc .exit
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S0B,$83 =
|
|
||||||
!byte $AD
|
|
||||||
.exit
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
;-------------------------------
|
|
||||||
; #MECC4
|
|
||||||
; MECC fastloader with custom
|
|
||||||
; address and data prologues
|
|
||||||
; e.g. A-201 Conquering Whole Numbers
|
|
||||||
;-------------------------------
|
|
||||||
!zone {
|
|
||||||
bit gMode ; nothing to do here in verify-only mode
|
|
||||||
bpl .exit
|
|
||||||
lda gMECCFastloadType
|
|
||||||
cmp #ID_MECC4
|
|
||||||
bne .exit
|
|
||||||
lda #$08
|
|
||||||
ldx #$83
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S08,$83 !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .addr2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S08,$83 =
|
|
||||||
!byte $D5
|
|
||||||
.addr2
|
|
||||||
lda #$08
|
|
||||||
ldx #$8D
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S08,$8D !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .addr3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S08,$8D =
|
|
||||||
!byte $AA
|
|
||||||
.addr3
|
|
||||||
lda #$08
|
|
||||||
ldx #$98
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S08,$98 !=
|
|
||||||
!byte $96
|
|
||||||
bcc .data1
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S08,$98 =
|
|
||||||
!byte $96
|
|
||||||
.data1
|
|
||||||
lda #$08
|
|
||||||
ldx #$15
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S08,$15 !=
|
|
||||||
!byte $D5
|
|
||||||
bcc .data2
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S08,$15 =
|
|
||||||
!byte $D5
|
|
||||||
.data2
|
|
||||||
lda #$08
|
|
||||||
ldx #$1F
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S08,$1F !=
|
|
||||||
!byte $AA
|
|
||||||
bcc .data3
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S08,$1F =
|
|
||||||
!byte $AA
|
|
||||||
.data3
|
|
||||||
lda #$08
|
|
||||||
ldx #$2A
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S08,$2A !=
|
|
||||||
!byte $AD
|
|
||||||
bcc .exit
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S08,$2A =
|
|
||||||
!byte $AD
|
|
||||||
.exit
|
|
||||||
}
|
|
@ -63,7 +63,7 @@
|
|||||||
adc #$0B
|
adc #$0B
|
||||||
tax
|
tax
|
||||||
lda #$0B
|
lda #$0B
|
||||||
jmp ++
|
bne ++
|
||||||
+
|
+
|
||||||
ldx #BASEPAGE
|
ldx #BASEPAGE
|
||||||
inx
|
inx
|
||||||
|
@ -4,543 +4,227 @@
|
|||||||
|
|
||||||
!zone {
|
!zone {
|
||||||
bit gMode ; nothing to do here in verify-only mode
|
bit gMode ; nothing to do here in verify-only mode
|
||||||
bpl .jmpexit
|
bpl .jmpexit1
|
||||||
lda gIsRWTS ; DOS 3.3-shaped RWTSen only
|
ldy gIsRWTS ; DOS 3.3-shaped RWTSen only
|
||||||
beq +
|
beq .initmatch
|
||||||
.jmpexit
|
|
||||||
|
.jmpexit1
|
||||||
jmp .exit
|
jmp .exit
|
||||||
;
|
|
||||||
; address prologue byte 1 (read)
|
.initmatch
|
||||||
;
|
sty .findmatch1+1
|
||||||
+ lda #$03
|
|
||||||
ldx #$4F
|
.findmatch1
|
||||||
ldy #$06
|
ldy #$D1 ; SMC
|
||||||
jsr compare ; if T00,S03,$4F ==
|
lda #$C9
|
||||||
|
ldx .table1+1,y
|
||||||
|
cpx #$E1
|
||||||
|
bne .compare1
|
||||||
|
lda #$49
|
||||||
|
.compare1
|
||||||
|
sta .cmpbyte1
|
||||||
|
lda .table1,y
|
||||||
|
ldy #6
|
||||||
|
jsr compare
|
||||||
!byte $BD,$8C,$C0
|
!byte $BD,$8C,$C0
|
||||||
!byte $10,$FB
|
!byte $10,$FB
|
||||||
!byte $C9
|
.cmpbyte1
|
||||||
|
!byte $D1 ; SMC
|
||||||
bcs +
|
bcs +
|
||||||
ldx #$56
|
|
||||||
ldy #$03
|
pha
|
||||||
jsr compare ; and T00,S03,$56 ==
|
lda .findmatch1+1
|
||||||
!byte $D0,$F0
|
asl
|
||||||
!byte $EA
|
adc .findmatch1+1
|
||||||
|
tay
|
||||||
|
lda .table2+1,y
|
||||||
|
pha
|
||||||
|
tax
|
||||||
|
- lda .table2+2,x
|
||||||
|
sta .cmpbytes2,x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
ldx .table2,y
|
||||||
|
pla
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
jsr compare
|
||||||
|
.cmpbytes2 ; SMC
|
||||||
|
!byte $EA,$EA,$EA,$EA
|
||||||
bcs +
|
bcs +
|
||||||
ldx #$55
|
|
||||||
ldy #$01
|
ldy .findmatch1+1
|
||||||
jsr compare ; and T00,S03,$55 !=
|
ldx .table3+1,y
|
||||||
!byte $D5
|
stx .cmpbyte3
|
||||||
|
stx .modify3
|
||||||
|
ldx .table3,y
|
||||||
|
ldy #1
|
||||||
|
jsr compare
|
||||||
|
.cmpbyte3 ; SMC
|
||||||
|
!byte $D1
|
||||||
bcc +
|
bcc +
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S03,$55 =
|
ldy #1
|
||||||
!byte $D5
|
jsr modify
|
||||||
;
|
.modify3 ; SMC
|
||||||
; address prologue byte 2 (read)
|
!byte $D1
|
||||||
;
|
|
||||||
+ lda #$03
|
+ ldy .findmatch1+1
|
||||||
ldx #$59
|
lda .table4,y
|
||||||
ldy #$06
|
ldx .table4+1,y
|
||||||
jsr compare ; if T00,S03,$59 ==
|
ldy #1
|
||||||
!byte $BD,$8C,$C0
|
jsr compare
|
||||||
!byte $10,$FB
|
!byte $A9
|
||||||
!byte $C9
|
|
||||||
bcs +
|
bcs +
|
||||||
ldx #$60
|
|
||||||
ldy #$04
|
+ ldy .findmatch1+1
|
||||||
jsr compare ; and T00,S03,$60 ==
|
ldx .table5+1,y
|
||||||
!byte $D0,$F2
|
stx .cmpbyte5+1
|
||||||
!byte $A0,$03
|
ldx .table5,y
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
tya
|
||||||
|
ldy #2
|
||||||
|
jsr compare
|
||||||
|
.cmpbyte5
|
||||||
|
!byte $20,$D1 ; SMC
|
||||||
|
|
||||||
|
tay
|
||||||
|
pla
|
||||||
bcs +
|
bcs +
|
||||||
ldx #$5F
|
tax
|
||||||
ldy #$01
|
dex
|
||||||
jsr compare ; and T00,S03,$5F !=
|
tya
|
||||||
!byte $AA
|
pha
|
||||||
|
lda .findmatch1+1
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
lda .table6,y
|
||||||
|
sta .cmpbyte6
|
||||||
|
sta .modify6
|
||||||
|
tya
|
||||||
|
ldy #1
|
||||||
|
jsr compare
|
||||||
|
.cmpbyte6
|
||||||
|
!byte $D1 ; SMC
|
||||||
bcc +
|
bcc +
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S03,$5F =
|
ldy #1
|
||||||
|
jsr modify
|
||||||
|
.modify6
|
||||||
|
!byte $D1 ; SMC
|
||||||
|
|
||||||
|
+ ldy .findmatch1+1
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
cpy #(.table1_e-.table1)*2/3
|
||||||
|
beq .jmpexit2
|
||||||
|
jmp .initmatch
|
||||||
|
|
||||||
|
.jmpexit2
|
||||||
|
jmp .exit
|
||||||
|
|
||||||
|
; address prologue (read)
|
||||||
|
; A,X
|
||||||
|
|
||||||
|
.table1
|
||||||
|
!byte $03,$4F
|
||||||
|
!byte $03,$59
|
||||||
|
!byte $03,$64
|
||||||
|
!byte $03,$8B
|
||||||
|
!byte $03,$95
|
||||||
|
!byte $02,$E1
|
||||||
|
!byte $02,$EB
|
||||||
|
!byte $02,$F6
|
||||||
|
!byte $03,$2F
|
||||||
|
!byte $03,$39
|
||||||
|
.table1_e
|
||||||
|
|
||||||
|
; X,Y, compare bytes (nop-pad to four bytes)
|
||||||
|
|
||||||
|
.table2
|
||||||
|
!byte $56,$03,$D0,$F0,$EA,$EA
|
||||||
|
!byte $60,$04,$D0,$F2,$A0,$03
|
||||||
|
!byte $6B,$02,$D0,$E7,$EA,$EA
|
||||||
|
!byte $92,$02,$D0,$AE,$EA,$EA
|
||||||
|
!byte $9C,$03,$D0,$A4,$18,$EA
|
||||||
|
!byte $E8,$03,$D0,$F4,$EA,$EA
|
||||||
|
!byte $F2,$04,$D0,$F2,$A0,$56
|
||||||
|
!byte $FD,$02,$D0,$E7,$EA,$EA
|
||||||
|
!byte $36,$03,$D0,$0A,$EA,$EA
|
||||||
|
!byte $40,$03,$F0,$5C,$38,$EA
|
||||||
|
.table2_e
|
||||||
|
|
||||||
|
; X, compare byte
|
||||||
|
|
||||||
|
.table3
|
||||||
|
!byte $55,$D5
|
||||||
|
!byte $5F,$AA
|
||||||
|
!byte $6A,$96
|
||||||
|
!byte $91,$DE
|
||||||
|
!byte $9B,$AA
|
||||||
|
!byte $E7,$D5
|
||||||
|
!byte $F1,$AA
|
||||||
|
!byte $FC,$AD
|
||||||
|
!byte $35,$DE
|
||||||
|
!byte $3F,$AA
|
||||||
|
.table3_e
|
||||||
|
|
||||||
|
; address prologue (write)
|
||||||
|
; A,X
|
||||||
|
|
||||||
|
.table4
|
||||||
|
!byte $06,$79
|
||||||
|
!byte $06,$7E
|
||||||
|
!byte $06,$83
|
||||||
|
!byte $06,$AD
|
||||||
|
!byte $06,$B2
|
||||||
|
!byte $06,$B7
|
||||||
|
!byte $02,$52
|
||||||
|
!byte $02,$57
|
||||||
|
!byte $02,$5C
|
||||||
|
!byte $02,$9D
|
||||||
|
!byte $02,$A2
|
||||||
|
!byte $02,$A7
|
||||||
|
!byte $02,$AC
|
||||||
|
.table4_e
|
||||||
|
|
||||||
|
; X, compare byte
|
||||||
|
|
||||||
|
.table5
|
||||||
|
!byte $7B,$D5
|
||||||
|
!byte $80,$D5
|
||||||
|
!byte $85,$D5
|
||||||
|
!byte $AF,$D5
|
||||||
|
!byte $B4,$D5
|
||||||
|
!byte $B9,$D5
|
||||||
|
!byte $54,$B8
|
||||||
|
!byte $59,$B8
|
||||||
|
!byte $5E,$B8
|
||||||
|
!byte $9F,$B8
|
||||||
|
!byte $A4,$B8
|
||||||
|
!byte $A9,$B8
|
||||||
|
!byte $AE,$B8
|
||||||
|
.table5_e
|
||||||
|
|
||||||
|
; modify byte
|
||||||
|
|
||||||
|
.table6
|
||||||
|
!byte $D5
|
||||||
!byte $AA
|
!byte $AA
|
||||||
;
|
|
||||||
; address prologue byte 3 (read)
|
|
||||||
;
|
|
||||||
+ lda #$03
|
|
||||||
ldx #$64
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S03,$64 ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $C9
|
|
||||||
bcs +
|
|
||||||
ldx #$6B
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S03,$6B ==
|
|
||||||
!byte $D0,$E7
|
|
||||||
bcs +
|
|
||||||
ldx #$6A
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S03,$6A !=
|
|
||||||
!byte $96
|
!byte $96
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S03,$6A =
|
|
||||||
!byte $96
|
|
||||||
;
|
|
||||||
; address epilogue byte 1 (read)
|
|
||||||
;
|
|
||||||
+ lda #$03
|
|
||||||
ldx #$8B
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S03,$8B ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $C9
|
|
||||||
bcs +
|
|
||||||
ldx #$92
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S03,$92 ==
|
|
||||||
!byte $D0,$AE
|
|
||||||
bcs +
|
|
||||||
ldx #$91
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S03,$91 !=
|
|
||||||
!byte $DE
|
!byte $DE
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S03,$91 =
|
|
||||||
!byte $DE
|
|
||||||
;
|
|
||||||
; address epilogue byte 2 (read)
|
|
||||||
;
|
|
||||||
+ lda #$03
|
|
||||||
ldx #$95
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S03,$95 ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $C9
|
|
||||||
bcs +
|
|
||||||
ldx #$9C
|
|
||||||
ldy #$03
|
|
||||||
jsr compare ; and T00,S03,$9C ==
|
|
||||||
!byte $D0,$A4
|
|
||||||
!byte $18
|
|
||||||
bcs +
|
|
||||||
ldx #$9B
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S03,$9B !=
|
|
||||||
!byte $AA
|
!byte $AA
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S03,$9B =
|
|
||||||
!byte $AA
|
|
||||||
;
|
|
||||||
; data prologue byte 1 (read)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$E1
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S02,$E1 ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $49
|
|
||||||
bcs +
|
|
||||||
ldx #$E8
|
|
||||||
ldy #$03
|
|
||||||
jsr compare ; and T00,S02,$E8 ==
|
|
||||||
!byte $D0,$F4
|
|
||||||
!byte $EA
|
|
||||||
bcs +
|
|
||||||
ldx #$E7
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$E7 !=
|
|
||||||
!byte $D5
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$E7 =
|
|
||||||
!byte $D5
|
|
||||||
;
|
|
||||||
; data prologue byte 2 (read)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$EB
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S02,$EB ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $C9
|
|
||||||
bcs +
|
|
||||||
ldx #$F2
|
|
||||||
ldy #$04
|
|
||||||
jsr compare ; and T00,S02,$F2 ==
|
|
||||||
!byte $D0,$F2
|
|
||||||
!byte $A0,$56
|
|
||||||
bcs +
|
|
||||||
ldx #$F1
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$F1 !=
|
|
||||||
!byte $AA
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$F1 =
|
|
||||||
!byte $AA
|
|
||||||
;
|
|
||||||
; data prologue byte 3 (read)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$F6
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S02,$F6 ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $C9
|
|
||||||
bcs +
|
|
||||||
ldx #$FD
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$FD ==
|
|
||||||
!byte $D0,$E7
|
|
||||||
bcs +
|
|
||||||
ldx #$FC
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$FC !=
|
|
||||||
!byte $AD
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$FC =
|
|
||||||
!byte $AD
|
|
||||||
;
|
|
||||||
; data epilogue byte 1 (read)
|
|
||||||
;
|
|
||||||
+ lda #$03
|
|
||||||
ldx #$2F
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S03,$2F ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $C9
|
|
||||||
bcs +
|
|
||||||
ldx #$36
|
|
||||||
ldy #$03
|
|
||||||
jsr compare ; and T00,S03,$36 ==
|
|
||||||
!byte $D0,$0A,$EA
|
|
||||||
bcs +
|
|
||||||
ldx #$35
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S03,$35 !=
|
|
||||||
!byte $DE
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S03,$35 =
|
|
||||||
!byte $DE
|
|
||||||
;
|
|
||||||
; data epilogue byte 2 (read)
|
|
||||||
;
|
|
||||||
+ lda #$03
|
|
||||||
ldx #$39
|
|
||||||
ldy #$06
|
|
||||||
jsr compare ; if T00,S03,$39 ==
|
|
||||||
!byte $BD,$8C,$C0
|
|
||||||
!byte $10,$FB
|
|
||||||
!byte $C9
|
|
||||||
bcs +
|
|
||||||
ldx #$40
|
|
||||||
ldy #$03
|
|
||||||
jsr compare ; and T00,S03,$40 ==
|
|
||||||
!byte $F0,$5C,$38
|
|
||||||
bcs +
|
|
||||||
ldx #$3F
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S03,$3F !=
|
|
||||||
!byte $AA
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S03,$3F =
|
|
||||||
!byte $AA
|
|
||||||
;
|
|
||||||
; address prologue byte 1 (write)
|
|
||||||
;
|
|
||||||
+ lda #$06
|
|
||||||
ldx #$79
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S06,$79 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$7B
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S06,$7B ==
|
|
||||||
!byte $20,$D5
|
|
||||||
bcs +
|
|
||||||
ldx #$7A
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S06,$7A !=
|
|
||||||
!byte $D5
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S06,$7A =
|
|
||||||
!byte $D5
|
|
||||||
;
|
|
||||||
; address prologue byte 2 (write)
|
|
||||||
;
|
|
||||||
+ lda #$06
|
|
||||||
ldx #$7E
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S06,$7E ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$80
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S06,$80 ==
|
|
||||||
!byte $20,$D5
|
|
||||||
bcs +
|
|
||||||
ldx #$7F
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S06,$7F !=
|
|
||||||
!byte $AA
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S06,$7F =
|
|
||||||
!byte $AA
|
|
||||||
;
|
|
||||||
; address prologue byte 3 (write)
|
|
||||||
;
|
|
||||||
+ lda #$06
|
|
||||||
ldx #$83
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S06,$83 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$85
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S06,$85 ==
|
|
||||||
!byte $20,$D5
|
|
||||||
bcs +
|
|
||||||
ldx #$84
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S06,$84 !=
|
|
||||||
!byte $96
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S06,$84 =
|
|
||||||
!byte $96
|
|
||||||
;
|
|
||||||
; address epilogue byte 1 (write)
|
|
||||||
;
|
|
||||||
+ lda #$06
|
|
||||||
ldx #$AD
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S06,$AD ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$AF
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S06,$AF ==
|
|
||||||
!byte $20,$D5
|
|
||||||
bcs +
|
|
||||||
ldx #$AE
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S06,$AE !=
|
|
||||||
!byte $DE
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S06,$AE =
|
|
||||||
!byte $DE
|
|
||||||
;
|
|
||||||
; address epilogue byte 2 (write)
|
|
||||||
;
|
|
||||||
+ lda #$06
|
|
||||||
ldx #$B2
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S06,$B2 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$B4
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S06,$B4 ==
|
|
||||||
!byte $20,$D5
|
|
||||||
bcs +
|
|
||||||
ldx #$B3
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S06,$B3 !=
|
|
||||||
!byte $AA
|
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S06,$B3 =
|
|
||||||
!byte $AA
|
|
||||||
;
|
|
||||||
; address epilogue byte 3 (write)
|
|
||||||
;
|
|
||||||
+ lda #$06
|
|
||||||
ldx #$B7
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S06,$B7 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$B9
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S06,$B9 ==
|
|
||||||
!byte $20,$D5
|
|
||||||
bcs +
|
|
||||||
ldx #$B8
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S06,$B8 !=
|
|
||||||
!byte $EB
|
!byte $EB
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S06,$B8 =
|
|
||||||
!byte $EB
|
|
||||||
;
|
|
||||||
; data prologue byte 1 (write)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$52
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S02,$52 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$54
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$54 ==
|
|
||||||
!byte $20,$B8
|
|
||||||
bcs +
|
|
||||||
ldx #$53
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$53 !=
|
|
||||||
!byte $D5
|
!byte $D5
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$53 =
|
|
||||||
!byte $D5
|
|
||||||
;
|
|
||||||
; data prologue byte 2 (write)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$57
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S02,$57 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$59
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$59 ==
|
|
||||||
!byte $20,$B8
|
|
||||||
bcs +
|
|
||||||
ldx #$58
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$58 ==
|
|
||||||
!byte $AA
|
!byte $AA
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$58 =
|
|
||||||
!byte $AA
|
|
||||||
;
|
|
||||||
; data prologue byte 3 (write)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$5C
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S02,$5C ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$5E
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$5E ==
|
|
||||||
!byte $20,$B8
|
|
||||||
bcs +
|
|
||||||
ldx #$5D
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$5D !=
|
|
||||||
!byte $AD
|
!byte $AD
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$5D =
|
|
||||||
!byte $AD
|
|
||||||
;
|
|
||||||
; data epilogue byte 1 (write)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$9D
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S02,$9D ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$9F
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$9F ==
|
|
||||||
!byte $20,$B8
|
|
||||||
bcs +
|
|
||||||
ldx #$9E
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$9E !=
|
|
||||||
!byte $DE
|
!byte $DE
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$9E =
|
|
||||||
!byte $DE
|
|
||||||
;
|
|
||||||
; data epilogue byte 2 (write)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$A2
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S02,$A2 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$A4
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$A4 ==
|
|
||||||
!byte $20,$B8
|
|
||||||
bcs +
|
|
||||||
ldx #$A3
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$A3 !=
|
|
||||||
!byte $AA
|
!byte $AA
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$A3 =
|
|
||||||
!byte $AA
|
|
||||||
;
|
|
||||||
; data epilogue byte 3 (write)
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$A7
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S02,$A7 ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$A9
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$A9 ==
|
|
||||||
!byte $20,$B8
|
|
||||||
bcs +
|
|
||||||
ldx #$A8
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$A8 !=
|
|
||||||
!byte $EB
|
!byte $EB
|
||||||
bcc +
|
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$A8 =
|
|
||||||
!byte $EB
|
|
||||||
;
|
|
||||||
; data epilogue byte 4 (write)
|
|
||||||
; needed by some Sunburst disks
|
|
||||||
;
|
|
||||||
+ lda #$02
|
|
||||||
ldx #$AC
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; if T00,S02,$AC ==
|
|
||||||
!byte $A9
|
|
||||||
bcs +
|
|
||||||
ldx #$AE
|
|
||||||
ldy #$02
|
|
||||||
jsr compare ; and T00,S02,$AE ==
|
|
||||||
!byte $20,$B8
|
|
||||||
bcs +
|
|
||||||
ldx #$AD
|
|
||||||
ldy #$01
|
|
||||||
jsr compare ; and T00,S02,$AD !=
|
|
||||||
!byte $FF
|
!byte $FF
|
||||||
bcc +
|
.table6_e
|
||||||
ldy #$01
|
|
||||||
jsr modify ; then set T00,S02,$AD =
|
|
||||||
!byte $FF
|
|
||||||
+
|
|
||||||
.exit
|
.exit
|
||||||
}
|
}
|
||||||
|
@ -9,65 +9,34 @@
|
|||||||
!zone {
|
!zone {
|
||||||
universale7
|
universale7
|
||||||
bit gMode ; nothing to do here in verify-only mode
|
bit gMode ; nothing to do here in verify-only mode
|
||||||
bpl .jmpexit
|
bpl .exit
|
||||||
lda #$0F
|
lda #BASEPAGE+$0F
|
||||||
sta .sector+1
|
sta .sector+2
|
||||||
.sector lda #$FF ; modified at runtime
|
|
||||||
ldx #$A0
|
ldx #$A0
|
||||||
ldy #$60
|
lda #$00
|
||||||
jsr compare
|
.eor eor #$AC
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
.sector cmp $D100,x ; modified at runtime
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
bne .nextsector
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
inx
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
cpx #$80
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
bcc .sector
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
bne .eor
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
|
||||||
!byte $AC,$00,$AC,$00,$AC,$00,$AC,$00
|
|
||||||
bcc +
|
|
||||||
jmp .nextsector
|
|
||||||
.jmpexit
|
|
||||||
jmp .exit
|
|
||||||
|
|
||||||
+
|
lda .sector+2
|
||||||
lda .sector+1
|
and #$0F
|
||||||
ldx #$00
|
pha
|
||||||
ldy #$80
|
|
||||||
jsr compare
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
!byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
||||||
bcs .nextsector
|
|
||||||
|
|
||||||
lda .sector+1
|
|
||||||
sta gDisplayBytes
|
sta gDisplayBytes
|
||||||
lda #s_e7
|
lda #s_e7
|
||||||
jsr PrintByID
|
jsr PrintByID
|
||||||
lda .sector+1
|
pla
|
||||||
ldx #$A3
|
ldx #$A3
|
||||||
ldy #$0C
|
ldy #$0C
|
||||||
jsr modify
|
jsr modify
|
||||||
!byte $64,$B4,$44,$80,$2C,$DC,$18,$B4,$44,$80,$44,$B4
|
!byte $64,$B4,$44,$80,$2C,$DC,$18,$B4,$44,$80,$44,$B4
|
||||||
.nextsector
|
.nextsector
|
||||||
dec .sector+1
|
dec .sector+2
|
||||||
bmi .exit
|
lda .sector+2
|
||||||
jmp .sector
|
cmp #BASEPAGE-1
|
||||||
|
bne .sector
|
||||||
.exit
|
.exit
|
||||||
}
|
}
|
||||||
|
@ -282,19 +282,16 @@ StringTableHigh
|
|||||||
.header
|
.header
|
||||||
!text "Passport by 4am 2019-04-17",$00
|
!text "Passport by 4am 2019-04-17",$00
|
||||||
.mainmenu
|
.mainmenu
|
||||||
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
||||||
!text " "
|
!text " "
|
||||||
!scrxor $40, "V"
|
!scrxor $40, "V"
|
||||||
!text "erify disk",$8D,$8D
|
!text "erify disk",$8D,$8D
|
||||||
!text " "
|
!text " "
|
||||||
!scrxor $40, "D"
|
|
||||||
!text "emuffin disk",$8D,$8D
|
|
||||||
!text " "
|
|
||||||
!scrxor $40, "C"
|
!scrxor $40, "C"
|
||||||
!text "rack disk",$8D,$8D
|
!text "rack disk",$8D,$8D
|
||||||
!text " "
|
!text " "
|
||||||
!scrxor $40, "Q"
|
!scrxor $40, "Q"
|
||||||
!text "uit",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
!text "uit",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
||||||
!text "source: S6,D1 target: "
|
!text "source: S6,D1 target: "
|
||||||
!scrxor $40, "S"
|
!scrxor $40, "S"
|
||||||
!text "%S,D%D",$00
|
!text "%S,D%D",$00
|
||||||
|
Loading…
Reference in New Issue
Block a user