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
|
jsr PrintByID
|
||||||
bcc .useuniv ; always branches
|
bcc .useuniv ; always branches
|
||||||
;
|
;
|
||||||
|
; Micrograms bootloader
|
||||||
|
;
|
||||||
|
+ jsr IDMicrograms
|
||||||
|
bcs +
|
||||||
|
lda #s_micrograms
|
||||||
|
jsr PrintByID
|
||||||
|
;
|
||||||
; David-DOS II
|
; David-DOS II
|
||||||
;
|
;
|
||||||
+ jsr IDDavid
|
+ 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)
|
; 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
|
; so that it's out of the way
|
||||||
LOWPOINT = $4300 ; lowest available address for code
|
LOWPOINT = $4300 ; lowest available address for code
|
||||||
BASEPAGE = $10 ; Special Delivery tracer assumes
|
BASEPAGE = $10 ; Special Delivery tracer assumes
|
||||||
@ -160,6 +160,7 @@ FirstMover
|
|||||||
!source "id/prontodos.a"
|
!source "id/prontodos.a"
|
||||||
!source "id/d5d5f7.a"
|
!source "id/d5d5f7.a"
|
||||||
!source "id/laureate.a"
|
!source "id/laureate.a"
|
||||||
|
!source "id/micrograms.a"
|
||||||
!source "print.a"
|
!source "print.a"
|
||||||
!source "compare.a"
|
!source "compare.a"
|
||||||
!source "modify.a"
|
!source "modify.a"
|
||||||
@ -705,6 +706,7 @@ _applyToT00
|
|||||||
!source "patchers/jsr8b3.a"
|
!source "patchers/jsr8b3.a"
|
||||||
!source "patchers/laureate.a"
|
!source "patchers/laureate.a"
|
||||||
!source "patchers/pascalrwts.a"
|
!source "patchers/pascalrwts.a"
|
||||||
|
!source "patchers/micrograms.a"
|
||||||
_applyToAll
|
_applyToAll
|
||||||
!source "patchers/universale7.a"
|
!source "patchers/universale7.a"
|
||||||
!source "patchers/runhello.a" ; (!gIsProDOS && !gIsPascal) only
|
!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_jmpb412 = $51
|
||||||
s_laureate = $52
|
s_laureate = $52
|
||||||
s_bbf9 = $53
|
s_bbf9 = $53
|
||||||
STRINGCOUNT = $54
|
s_micrograms = $54
|
||||||
|
STRINGCOUNT = $55
|
||||||
|
|
||||||
!zone {
|
!zone {
|
||||||
StringTable
|
StringTable
|
||||||
@ -187,6 +188,7 @@ StringTable
|
|||||||
!word .jmpb412
|
!word .jmpb412
|
||||||
!word .laureate
|
!word .laureate
|
||||||
!word .bbf9
|
!word .bbf9
|
||||||
|
!word .micrograms
|
||||||
;
|
;
|
||||||
; Text can contain substitution strings, which
|
; Text can contain substitution strings, which
|
||||||
; are replaced by current values at runtime. Each
|
; are replaced by current values at runtime. Each
|
||||||
@ -212,7 +214,7 @@ StringTable
|
|||||||
; can be set directly before calling PrintByID.
|
; can be set directly before calling PrintByID.
|
||||||
;
|
;
|
||||||
.header
|
.header
|
||||||
!text "Passport by 4am 2017-06-19",00
|
!text "Passport by 4am 2017-06-20",00
|
||||||
.mainmenu
|
.mainmenu
|
||||||
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
!text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D
|
||||||
!text " "
|
!text " "
|
||||||
@ -470,4 +472,6 @@ StringTable
|
|||||||
!text "T00,S00 Found Laureate bootloader",$8D,00
|
!text "T00,S00 Found Laureate bootloader",$8D,00
|
||||||
.bbf9
|
.bbf9
|
||||||
!text "T%t,S%0 Found BBF9 protection check",$8D,00
|
!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