diff --git a/src/patchers/jmpbeca.a b/src/patchers/jmpbeca.a index dc52da8..3055d70 100755 --- a/src/patchers/jmpbeca.a +++ b/src/patchers/jmpbeca.a @@ -38,7 +38,7 @@ jsr PrintByID lda #$02 ldy #$0D - jsr modify ; and set T00,S02,$F4 = + jsr modify ; then set T00,S02,$F4 = !byte $A0,$56 !byte $BD,$8C,$C0 !byte $10,$FB diff --git a/src/patchers/jsrbb03.a b/src/patchers/jsrbb03.a index 77be6c2..f8fef63 100755 --- a/src/patchers/jsrbb03.a +++ b/src/patchers/jsrbb03.a @@ -7,7 +7,6 @@ ; Backbones, EduCalc ;------------------------------- !zone { -_jsrbb03 lda gIsBoot0 ; if DOS 3.3 boot0 loader bne .exit lda gIsBoot1 ; and DOS 3.3 boot1 loader @@ -34,6 +33,10 @@ _jsrbb03 ldx #$03 ldy #$09 jsr modify ; then set T00,S05,$03 = - !byte $A9,$B5,$48,$A9,$18,$48,$4C,$93,$B7 + !byte $A9,$B5 + !byte $48 + !byte $A9,$18 + !byte $48 + !byte $4C,$93,$B7 .exit } diff --git a/src/patchers/mecc1.a b/src/patchers/mecc1.a index 88c8098..91b9d89 100755 --- a/src/patchers/mecc1.a +++ b/src/patchers/mecc1.a @@ -1,11 +1,10 @@ ;------------------------------- -; #MECCM8 +; #MECC1 ; MECC fastloader with custom ; address and data prologues ; e.g. Word Munchers ;------------------------------- !zone { -_meccm8 jsr IDMECC bcs .exit jsr IDMECC1 diff --git a/src/patchers/mecc2.a b/src/patchers/mecc2.a index 5c958b0..468b7d0 100755 --- a/src/patchers/mecc2.a +++ b/src/patchers/mecc2.a @@ -1,11 +1,10 @@ ;------------------------------- -; #MECCM7 +; #MECC2 ; MECC fastloader with custom ; address and data prologues ; e.g. Phonics Prime Time series ;------------------------------- !zone { -_meccm7 jsr IDMECC bcs .exit jsr IDMECC2 diff --git a/src/patchers/mecc3.a b/src/patchers/mecc3.a index e379de5..5cff756 100644 --- a/src/patchers/mecc3.a +++ b/src/patchers/mecc3.a @@ -5,7 +5,6 @@ ; e.g. Word Munchers v1.1 ;------------------------------- !zone { -_mecc3 jsr IDMECC bcs .exit jsr IDMECC3 diff --git a/src/patchers/mecc4.a b/src/patchers/mecc4.a index 545fdf1..86d09fc 100644 --- a/src/patchers/mecc4.a +++ b/src/patchers/mecc4.a @@ -5,7 +5,6 @@ ; e.g. A-201 Conquering Whole Numbers ;------------------------------- !zone { -_mecc4 jsr IDMECC bcs .exit jsr IDMECC4 diff --git a/src/patchers/methods.a b/src/patchers/methods.a index ac5a6b1..229f892 100644 --- a/src/patchers/methods.a +++ b/src/patchers/methods.a @@ -2,11 +2,10 @@ ; #METHODS ; RWTS changes prologue with RWTS ; swapper at $B6B4 -; e.g. "Alphabetizing: Blue Level" +; e.g. Alphabetizing: Blue Level ; and others by Methods & Solutions ;------------------------------- !zone { -_methods lda gIsBoot0 ; if DOS 3.3 boot0 loader bne .exit lda #$08 diff --git a/src/patchers/milliken.a b/src/patchers/milliken.a index 192f59c..4672511 100644 --- a/src/patchers/milliken.a +++ b/src/patchers/milliken.a @@ -7,7 +7,6 @@ ; The Writing Workshop, Math Sequences ;------------------------------- !zone { -_milliken jsr IDMilliken1 bcs .exit lda #$01 diff --git a/src/patchers/optimum.a b/src/patchers/optimum.a index 4f80802..ad65521 100644 --- a/src/patchers/optimum.a +++ b/src/patchers/optimum.a @@ -7,7 +7,6 @@ ; module by qkumba ;------------------------------- !zone { -_optimum lda gIsOptimum bne .jmpexit1 ldy #15 diff --git a/src/patchers/prodos6a.a b/src/patchers/prodos6a.a index de24ba9..81f7865 100644 --- a/src/patchers/prodos6a.a +++ b/src/patchers/prodos6a.a @@ -3,10 +3,10 @@ ; disk allows either $D4 or $D5 for the ; first address prologue nibble ; (no patches required, but we want to -; log it) +; log it and pretend we patched something +; so we get a nice CRACK COMPLETE message) ;------------------------------- !zone { -prodos6a lda gIsProDOS ; only if ProDOS (separate check for DOS) bne .exit lda #$0F @@ -16,7 +16,10 @@ prodos6a ldx #$A5 ldy #$08 jsr compare - !byte $BD,$8C,$C0,$10,$FB,$4A,$C9,$6A + !byte $BD,$8C,$C0 + !byte $10,$FB + !byte $4A + !byte $C9,$6A bcs + lda #s_lsr6a jsr PrintByID @@ -26,7 +29,10 @@ prodos6a ldx #$EF ldy #$07 jsr compare - !byte $48,$68,$BD,$8C,$C0,$C9,$08 + !byte $48 + !byte $68 + !byte $BD,$8C,$C0 + !byte $C9,$08 bcs .nextsector lda #s_bcs08 jsr PrintByID diff --git a/src/patchers/prodosmecc.a b/src/patchers/prodosmecc.a index 6f5b9f6..79fc207 100755 --- a/src/patchers/prodosmecc.a +++ b/src/patchers/prodosmecc.a @@ -5,7 +5,6 @@ ; [thanks LoGo] ;------------------------------- !zone { -_prodosmecc lda gIsProDOS beq + jmp .exit @@ -13,7 +12,7 @@ _prodosmecc ldy #$0E jsr SearchTrack !byte $50,$54,$58,$5C,$60,$64,$68,$00 - !byte $20,$10,$30,$97,$AA,$EB + !byte $20,$10,$30,WILDCARD,$AA,$EB bcs + sta gDisplayBytes inx @@ -75,7 +74,7 @@ _prodosmecc ; variation seen in e.g. A-232 Spelling Press !byte $AD,$C4,$D1,$CD,$C8,$D4,$08,$2C - !byte $81,$C0,$28,$D0,$09,$8D,$97,$97 + !byte $81,$C0,$28,$D0,$09,$8D,WILDCARD,WILDCARD !byte $C9,$DE,$F0,$02,$18,$24,$38,$60 bcs + sta gDisplayBytes @@ -111,7 +110,13 @@ _prodosmecc + ldy #$0C jsr SearchTrack - !byte $30,$A2,$20,$00,$BF,$80,$97,$97,$B0,$98,$38,$60 + !byte $30,$A2 + !byte $20,$00,$BF + !byte $80 + !byte WILDCARD,WILDCARD + !byte $B0,$98 + !byte $38 + !byte $60 bcs + inx inx diff --git a/src/patchers/prodosrwts.a b/src/patchers/prodosrwts.a index 337fc11..d42345e 100755 --- a/src/patchers/prodosrwts.a +++ b/src/patchers/prodosrwts.a @@ -9,9 +9,16 @@ _prodosrwts bne .exit ldy #$14 jsr SearchTrack - !byte $29,$FC,$5D,$97,$97,$D0,$0C,$A6 - !byte $97,$BD,$8C,$C0,$10,$FB,$C9,$97 - !byte $18,$F0,$01,$38 + !byte $29,$FC + !byte $5D,WILDCARD,WILDCARD + !byte $D0,$0C + !byte $A6,WILDCARD + !byte $BD,$8C,$C0 + !byte $10,$FB + !byte $C9,WILDCARD + !byte $18 + !byte $F0,$01 + !byte $38 bcs .exit sta gDisplayBytes inx diff --git a/src/patchers/protecteddos.a b/src/patchers/protecteddos.a index 70f11c4..c0d623a 100755 --- a/src/patchers/protecteddos.a +++ b/src/patchers/protecteddos.a @@ -9,7 +9,6 @@ ; Math Blaster, Moebius ;------------------------------- !zone { -_protdos lda gIsProtDOS beq + jmp .exit @@ -20,8 +19,11 @@ _protdos ; ldy #$0C jsr SearchTrack - !byte $A9,$B5,$85,$4E,$8D,$5D,$BD,$A9 - !byte $D5,$8D,$2C,$BF + !byte $A9,$B5 + !byte $85,$4E + !byte $8D,$5D,$BD + !byte $A9,$D5 + !byte $8D,$2C,$BF bcs .specific sta .swapper2+1 inx @@ -96,8 +98,11 @@ _protdos ldx #$AF ldy #$0C jsr compare ; if T01,S02,$AF == - !byte $A2,$B5,$86,$4E,$8E,$5D,$BD,$A2 - !byte $D5,$8E,$2C,$BF + !byte $A2,$B5 + !byte $86,$4E + !byte $8E,$5D,$BD + !byte $A2,$D5 + !byte $8E,$2C,$BF bcs .exitt1 lda #$02 ldx #$B0 @@ -183,10 +188,18 @@ _protdos ldx #$48 ldy #$19 jsr compare ; if T00,S07,$48 == - !byte $A0,$04,$48,$68,$A0,$B9,$BD,$88 - !byte $D0,$F8,$A9,$97,$20,$B8,$BD,$A9 - !byte $97,$20,$B8,$BD,$A9,$97,$20,$B8 - !byte $BD + !byte $A0,$04 + !byte $48 + !byte $68 + !byte $A0,$B9,$BD + !byte $88 + !byte $D0,$F8 + !byte $A9,WILDCARD + !byte $20,$B8,$BD + !byte $A9,WILDCARD + !byte $20,$B8,$BD + !byte $A9,WILDCARD + !byte $20,$B8,$BD bcs .writeIsOK ldx #$4C ldy #$01 diff --git a/src/patchers/rol1e.a b/src/patchers/rol1e.a index 176da67..9e5b422 100755 --- a/src/patchers/rol1e.a +++ b/src/patchers/rol1e.a @@ -9,22 +9,55 @@ _rol1e ldx #$00 ldy #$2F jsr compare ; if T00,S03,$00 == - !byte $86,$1B,$BA,$BD,$02,$01,$85,$03 - !byte $18,$69,$04,$85,$05,$A0,$00,$84 - !byte $02,$A0,$40,$84,$04,$A0,$39,$A9 - !byte $93,$91,$02,$C8,$A5,$03,$91,$02 - !byte $A0,$7F,$B1,$04,$99,$00,$08,$88 - !byte $10,$F8,$A6,$1B,$4C,$00,$08 + !byte $86,$1B + !byte $BA + !byte $BD,$02,$01 + !byte $85,$03 + !byte $18 + !byte $69,$04 + !byte $85,$05 + !byte $A0,$00 + !byte $84,$02 + !byte $A0,$40 + !byte $84,$04 + !byte $A0,$39 + !byte $A9,$93 + !byte $91,$02 + !byte $C8 + !byte $A5,$03 + !byte $91,$02 + !byte $A0,$7F + !byte $B1,$04 + !byte $99,$00 + !byte $08 + !byte $88 + !byte $10,$F8 + !byte $A6,$1B + !byte $4C,$00,$08 bcs .exit - lda #$03 ldx #$40 ldy #$28 jsr compare ; and T00,S03,$40 == - !byte $A9,$00,$A0,$EC,$91,$02,$C8,$91 - !byte $02,$A9,$09,$A0,$F1,$91,$02,$A9 - !byte $08,$A0,$E1,$91,$02,$A9,$4C,$85 - !byte $01,$A9,$93,$85,$02,$20,$01,$00 - !byte $A0,$00,$84,$02,$A5,$1E,$85,$08 + !byte $A9,$00 + !byte $A0,$EC + !byte $91,$02 + !byte $C8 + !byte $91,$02 + !byte $A9,$09 + !byte $A0,$F1 + !byte $91,$02 + !byte $A9,$08 + !byte $A0,$E1 + !byte $91,$02 + !byte $A9,$4C + !byte $85,$01 + !byte $A9,$93 + !byte $85,$02 + !byte $20,$01,$00 + !byte $A0,$00 + !byte $84,$02 + !byte $A5,$1E + !byte $85,$08 bcs .exit lda #s_rol1e jsr PrintByID diff --git a/src/patchers/runhello.a b/src/patchers/runhello.a index 6452054..4c92ba0 100755 --- a/src/patchers/runhello.a +++ b/src/patchers/runhello.a @@ -6,7 +6,6 @@ ; e.g. Microzine 15, Alpine Tram Ride ;------------------------------- !zone { -_runhello lda gIsProDOS ; this exact protection is only beq .exit ; on DOS 3.3 disks (other patchers lda gIsPascal ; will catch other variations) diff --git a/src/patchers/rwts.a b/src/patchers/rwts.a index 5b6dba4..1e7639b 100755 --- a/src/patchers/rwts.a +++ b/src/patchers/rwts.a @@ -3,7 +3,6 @@ ; address prologue byte 1 (read) ;------------------------------- !zone { -rwtspatcher lda gIsRWTS ; if DOS 3.3 RWTS bne .ap1r lda #$03 @@ -638,7 +637,11 @@ rwtspatcher ldx #$4F ldy #$0A jsr compare ; and T00,S03,$4F == - !byte $BD,$8C,$C0,$10,$FB,$4A,$97,$6A,$D0,$EF + !byte $BD,$8C,$C0 + !byte $10,$FB + !byte $4A + !byte WILDCARD,$6A + !byte $D0,$EF bcs .lsr6a lda #s_lsr6a jsr PrintByID @@ -659,7 +662,18 @@ rwtspatcher ldx #$8B ldy #$15 jsr compare ; and T00,S03,$8B == - !byte $BD,$8C,$C0,$10,$FB,$C9,$DE,$F0,$0A,$48,$68,$BD,$8C,$C0,$C9,$08,$B0,$A5,$EA,$18,$60 + !byte $BD,$8C,$C0 + !byte $10,$FB + !byte $C9,$DE + !byte $F0,$0A + !byte $48 + !byte $68 + !byte $BD,$8C,$C0 + !byte $C9,$08 + !byte $B0,$A5 + !byte $EA + !byte $18 + !byte $60 bcs .bcs08 lda #s_bcs08 jsr PrintByID diff --git a/src/patchers/rwtsswap.a b/src/patchers/rwtsswap.a index 126d45c..fc4bba1 100755 --- a/src/patchers/rwtsswap.a +++ b/src/patchers/rwtsswap.a @@ -7,7 +7,6 @@ ; e.g. Puzzle Master ;------------------------------- !zone { -_rwtsswap lda gIsBoot0 ; if DOS 3.3 boot0 loader bne .exit lda gIsBoot1 ; and DOS 3.3 boot1 loader @@ -16,17 +15,21 @@ _rwtsswap ldx #$69 ldy #$0B jsr compare ; and T00,S04,$69 == - !byte $A0,$07,$B9,$DF,$BC,$99,$94,$B9 - !byte $88,$10,$F7 + !byte $A0,$07 + !byte $B9,$DF,$BC + !byte $99,$94,$B9 + !byte $88 + !byte $10,$F7 bcs .exit - lda #$04 ldx #$7F ldy #$0B jsr compare ; and T00,S04,$7F == - !byte $A0,$07,$B9,$E7,$BC,$99,$94,$B9 - !byte $88,$10,$F7 + !byte $A0,$07 + !byte $B9,$E7,$BC + !byte $99,$94,$B9 + !byte $88 + !byte $10,$F7 bcs .exit - lda #$04 ldx #$69 ldy #$01 jsr modify ; then set T00,S04,$69 = diff --git a/src/patchers/rwtsswap2.a b/src/patchers/rwtsswap2.a index 463cbd9..24c7d64 100755 --- a/src/patchers/rwtsswap2.a +++ b/src/patchers/rwtsswap2.a @@ -14,19 +14,28 @@ _rwtsswap2 ldx #$69 ldy #$13 jsr compare ; and T00,S04,$69 == - !byte $A9,$AB,$8D,$4B,$B8,$A9,$FF,$20 - !byte $DF,$BC,$20,$EC,$BC,$A9,$AA,$8D - !byte $29,$BA,$60 + !byte $A9,$AB + !byte $8D,$4B,$B8 + !byte $A9,$FF + !byte $20,$DF,$BC + !byte $20,$EC,$BC + !byte $A9,$AA + !byte $8D,$29,$BA + !byte $60 bcs .exit - lda #$04 ldx #$7D ldy #$15 jsr compare ; and T00,S04,$7D == - !byte $A9,$FF,$8D,$4B,$B8,$A9,$DE,$20 - !byte $DF,$BC,$A9,$AA,$20,$EC,$BC,$A9 - !byte $96,$8D,$29,$BA,$60 + !byte $A9,$FF + !byte $8D,$4B,$B8 + !byte $A9,$DE + !byte $20,$DF,$BC + !byte $A9,$AA + !byte $20,$EC,$BC + !byte $A9,$96 + !byte $8D,$29,$BA + !byte $60 bcs .exit - lda #$04 ldx #$69 ldy #$01 jsr modify ; then set T00,S04,$69 = diff --git a/src/patchers/rwtsswapmecc.a b/src/patchers/rwtsswapmecc.a index ddcf778..fd04a1c 100755 --- a/src/patchers/rwtsswapmecc.a +++ b/src/patchers/rwtsswapmecc.a @@ -7,13 +7,19 @@ _rwtsswapmecc ldy #$11 jsr SearchTrack - !byte $0A,$18,$69,$FF,$A8,$8D,$8B,$C0 - !byte $8D,$8B,$C0,$B9,$97,$97,$8D,$AC - !byte $D5 + !byte $0A + !byte $18 + !byte $69,$FF + !byte $A8 + !byte $8D,$8B,$C0 + !byte $8D,$8B,$C0 + !byte $B9,WILDCARD,WILDCARD + !byte $8D,$AC,$D5 bcs .exit sta gDisplayBytes ldy #$03 jsr modify - !byte $A9,$00,$24 + !byte $A9,$00 + !byte $24 .exit } diff --git a/src/patchers/sierra.a b/src/patchers/sierra.a index ca465c4..12ff31c 100755 --- a/src/patchers/sierra.a +++ b/src/patchers/sierra.a @@ -9,7 +9,6 @@ ; module by qkumba ;------------------------------- !zone { -_sierra lda .foundsierra bne + jmp .dosearch diff --git a/src/patchers/sunburst.a b/src/patchers/sunburst.a index 4639094..78cc39e 100755 --- a/src/patchers/sunburst.a +++ b/src/patchers/sunburst.a @@ -7,7 +7,6 @@ ; patchers due to overlapping bytes ;------------------------------- !zone { -_sunburst sec lda gIsRWTS ; if DOS 3.3 RWTS bne .exit @@ -27,18 +26,36 @@ _sunburst ldx #$69 ldy #$2C jsr compare ; and T00,S04,$69 == - !byte $48,$A5,$2A,$4A,$A8,$B9,$29,$BA - !byte $8D,$6A,$B9,$8D,$84,$BC,$B9,$34 - !byte $BA,$8D,$FC,$B8,$8D,$5D,$B8,$C0 - !byte $11,$D0,03,$A9,02,$AC,$A9,$0E - !byte $8D,$C0,$BF,$68,$69,00,$48,$AD - !byte $78,04,$90,$2B + !byte $48 + !byte $A5,$2A + !byte $4A + !byte $A8 + !byte $B9,$29,$BA + !byte $8D,$6A,$B9 + !byte $8D,$84,$BC + !byte $B9,$34,$BA + !byte $8D,$FC,$B8 + !byte $8D,$5D,$B8 + !byte $C0,$11 + !byte $D0,$03 + !byte $A9,$02 + !byte $AC + !byte $A9,$0E + !byte $8D,$C0,$BF + !byte $68 + !byte $69,00 + !byte $48 + !byte $AD,$78,04 + !byte $90,$2B bcs .exit lda #$06 ldx #$69 ldy #$06 jsr compare ; and T00,S06,$69 == - !byte $4C,$B8,$B6,$EA,$EA,$EA + !byte $4C,$B8,$B6 + !byte $EA + !byte $EA + !byte $EA bcs .exit lda #$08 ldx #$8C @@ -63,7 +80,8 @@ _sunburst ldx #$69 ldy #$06 jsr modify ; and set T00,S06,$69 = - !byte $20,$C3,$BC,$20,$C3,$BC + !byte $20,$C3,$BC + !byte $20,$C3,$BC lda #$08 ldx #$8C ldy #$02 diff --git a/src/patchers/thunder.a b/src/patchers/thunder.a index 3143f9e..be38e10 100755 --- a/src/patchers/thunder.a +++ b/src/patchers/thunder.a @@ -8,7 +8,6 @@ ; Dig Dug, Pac-Man, Galaxian ;------------------------------- !zone { -_thunder lda gIsBoot0 ; if DOS 3.3 boot0 loader bne .no lda gIsBoot1 ; and DOS 3.3 boot1 loader @@ -17,7 +16,8 @@ _thunder ldx #$3E ldy #$04 jsr compare ; and T00,S03,$3E == - !byte $4C,$B3,$B6,$EA + !byte $4C,$B3,$B6 + !byte $EA bcc + .no jmp .exit