mirror of
https://github.com/a2-4am/passport.git
synced 2024-12-22 04:29:59 +00:00
add support for Micrograms bootloader and RWTS patching
This commit is contained in:
parent
0b2e96cacb
commit
1eb86bf597
@ -187,6 +187,13 @@ IDBootloader
|
||||
jsr PrintByID
|
||||
bcc .useuniv ; always branches
|
||||
;
|
||||
; Micrograms bootloader
|
||||
;
|
||||
+ jsr IDMicrograms
|
||||
bcs +
|
||||
lda #s_micrograms
|
||||
jsr PrintByID
|
||||
;
|
||||
; David-DOS II
|
||||
;
|
||||
+ jsr IDDavid
|
||||
|
29
src/id/micrograms.a
Normal file
29
src/id/micrograms.a
Normal file
@ -0,0 +1,29 @@
|
||||
;-------------------------------
|
||||
; IDMicrograms
|
||||
; identify Micrograms bootloader
|
||||
;
|
||||
; in: track buffer contains T00,S00
|
||||
; out: C clear if MECC bootloader was found
|
||||
; (and track buffer now contains all of track 0)
|
||||
; C set if not found
|
||||
; all other flags clobbered
|
||||
; all registers clobbered
|
||||
;-------------------------------
|
||||
!zone {
|
||||
IDMicrograms
|
||||
lda #$00
|
||||
ldx #$01
|
||||
ldy #$0A
|
||||
jsr compare
|
||||
!byte $A5,$27
|
||||
!byte $C9,$09
|
||||
!byte $D0,$12
|
||||
!byte $A9,$C6
|
||||
!byte $85,$3F
|
||||
bcs .exit
|
||||
ldx #$42
|
||||
ldy #$03
|
||||
jsr compare
|
||||
!byte $4C,$00,$0D
|
||||
.exit rts
|
||||
}
|
@ -95,7 +95,7 @@ flag = $FF ; byte
|
||||
}
|
||||
|
||||
; Application constants (not zero addresses)
|
||||
RELBASE = $6000 ; address to move Passport code
|
||||
RELBASE = $5F00 ; 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
|
||||
@ -160,6 +160,7 @@ FirstMover
|
||||
!source "id/prontodos.a"
|
||||
!source "id/d5d5f7.a"
|
||||
!source "id/laureate.a"
|
||||
!source "id/micrograms.a"
|
||||
!source "print.a"
|
||||
!source "compare.a"
|
||||
!source "modify.a"
|
||||
@ -705,6 +706,7 @@ _applyToT00
|
||||
!source "patchers/jsr8b3.a"
|
||||
!source "patchers/laureate.a"
|
||||
!source "patchers/pascalrwts.a"
|
||||
!source "patchers/micrograms.a"
|
||||
_applyToAll
|
||||
!source "patchers/universale7.a"
|
||||
!source "patchers/runhello.a" ; (!gIsProDOS && !gIsPascal) only
|
||||
|
26
src/patchers/micrograms.a
Normal file
26
src/patchers/micrograms.a
Normal file
@ -0,0 +1,26 @@
|
||||
;-------------------------------
|
||||
; #MICROGRAMS
|
||||
; Micrograms RWTS requires a non-standard
|
||||
; third epilogue nibble ($BE)
|
||||
;
|
||||
; tested on
|
||||
; Wild West Math Level 3
|
||||
; Wild West Math Level 4
|
||||
; Wild West Math Level 5
|
||||
;-------------------------------
|
||||
!zone {
|
||||
lda #$06
|
||||
ldx #$01
|
||||
ldy #$09
|
||||
jsr compare ; and T00,S06,$01 ==
|
||||
!byte $AD,$EC,$C0
|
||||
!byte $10,$FB
|
||||
!byte $C9,$BE
|
||||
!byte $D0,$E5
|
||||
bcs .exit
|
||||
ldx #$09
|
||||
ldy #$01
|
||||
jsr modify ; then set T00,S06,$07 =
|
||||
!byte $00
|
||||
.exit
|
||||
}
|
@ -99,7 +99,8 @@ s_prontodos = $50
|
||||
s_jmpb412 = $51
|
||||
s_laureate = $52
|
||||
s_bbf9 = $53
|
||||
STRINGCOUNT = $54
|
||||
s_micrograms = $54
|
||||
STRINGCOUNT = $55
|
||||
|
||||
!zone {
|
||||
StringTable
|
||||
@ -187,6 +188,7 @@ StringTable
|
||||
!word .jmpb412
|
||||
!word .laureate
|
||||
!word .bbf9
|
||||
!word .micrograms
|
||||
;
|
||||
; Text can contain substitution strings, which
|
||||
; are replaced by current values at runtime. Each
|
||||
@ -212,7 +214,7 @@ StringTable
|
||||
; can be set directly before calling PrintByID.
|
||||
;
|
||||
.header
|
||||
!text "Passport by 4am 2017-06-19",00
|
||||
!text "Passport by 4am 2017-06-20",00
|
||||
.mainmenu
|
||||
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
||||
!text " "
|
||||
@ -470,4 +472,6 @@ StringTable
|
||||
!text "T00,S00 Found Laureate bootloader",$8D,00
|
||||
.bbf9
|
||||
!text "T%t,S%0 Found BBF9 protection check",$8D,00
|
||||
.micrograms
|
||||
!text "T00,S00 Found Micrograms bootloader",$8D,00
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user