mirror of
https://github.com/a2-4am/passport.git
synced 2024-12-22 04:29:59 +00:00
Merge pull request #27 from peterferrie/master
support some Sierra/Disney titles
This commit is contained in:
commit
3cbb4984fa
@ -29,7 +29,7 @@ IDDOS33
|
||||
;
|
||||
+ lda #$00
|
||||
ldx #$00
|
||||
ldy #$4A
|
||||
ldy #$3F
|
||||
jsr compare ; if T00,S00,$00 ==
|
||||
!byte $01
|
||||
!byte $A5,$27
|
||||
@ -62,11 +62,32 @@ IDDOS33
|
||||
!byte $6C,$3E,$00
|
||||
!byte $EE,$FE,$08
|
||||
!byte $EE,$FE,$08
|
||||
bcs .exit
|
||||
;
|
||||
; DOS 3.3 has JSR $FE89 / JSR $FE93 / JSR $FB2F
|
||||
; some Sierra have STA $C050 / STA $C057 / STA $C055 instead
|
||||
; with the unpleasant side-effect of showing text-mode garbage
|
||||
; if mixed-mode was enabled at the time
|
||||
;
|
||||
lda #$00
|
||||
ldx #$3F
|
||||
ldy #$0B
|
||||
jsr compare ; if T00,S00,$3F ==
|
||||
!byte $20,$89,$FE
|
||||
!byte $20,$93,$FE
|
||||
!byte $20,$2F,$FB
|
||||
!byte $A6,$2B
|
||||
bcs .exit
|
||||
bcc +
|
||||
lda #$00
|
||||
ldx #$3F
|
||||
ldy #$0B
|
||||
jsr compare ; if T00,S00,$3F ==
|
||||
!byte $8D,$50,$C0
|
||||
!byte $8D,$57,$C0
|
||||
!byte $8D,$55,$C0
|
||||
!byte $A6,$2B
|
||||
+
|
||||
|
||||
;
|
||||
; Sector order map must be standard (no exceptions)
|
||||
;
|
||||
|
@ -44,10 +44,12 @@ TraceDOS33b
|
||||
sta $084B
|
||||
lda #>TraceDOS33c
|
||||
sta $084C
|
||||
lda #$2C ; disable calls to
|
||||
sta $083F ; TEXt/PR0/IN0
|
||||
sta $0842
|
||||
sta $0845
|
||||
lda #$EA
|
||||
ldy #9
|
||||
.noppatch
|
||||
sta $83E,Y ; disable calls to
|
||||
dey ; TEXt/PR0/IN0
|
||||
bne .noppatch ; including "Grafboot"
|
||||
jmp $0801
|
||||
|
||||
TraceDOS33c
|
||||
|
@ -17,6 +17,13 @@
|
||||
; Oil's Well
|
||||
; Sammy Lightfoot
|
||||
; Sierra Championship Boxing
|
||||
; Winnie the Pooh
|
||||
; Donald Duck
|
||||
; Mickey's Space Adventure
|
||||
; King's Quest
|
||||
; Leisure Suit Larry
|
||||
; Space Quest
|
||||
; The Black Cauldron
|
||||
;
|
||||
; module by qkumba
|
||||
;-------------------------------
|
||||
@ -30,7 +37,7 @@
|
||||
+ ldy #3
|
||||
jsr SearchTrack
|
||||
.call
|
||||
!byte $20,$D1,$D1
|
||||
!byte $20,$D1,$D1 ;JSR $xxxx
|
||||
bcs +
|
||||
ldy #$01
|
||||
jsr modify
|
||||
@ -38,7 +45,7 @@
|
||||
+ ldy #3
|
||||
jsr SearchTrack
|
||||
.load
|
||||
!byte $AD,$D1,$D1
|
||||
!byte $AD,$D1,$D1 ;LDA $xxxx
|
||||
bcs +
|
||||
sta .cmp7+1
|
||||
adc #BASEPAGE
|
||||
@ -56,7 +63,8 @@
|
||||
lda #$D1
|
||||
ldy #3
|
||||
jsr compare
|
||||
!byte $C9,$1D,$B0
|
||||
!byte $C9,$1D ;CMP #$1D
|
||||
!byte $B0 ;BCS *+xx
|
||||
bcs +
|
||||
inx
|
||||
inx
|
||||
@ -66,7 +74,11 @@
|
||||
!byte $00
|
||||
+ ldy #12
|
||||
jsr SearchTrack
|
||||
!byte $AD,WILDCARD,WILDCARD,$85,$C1,$A9,$00,$85,$C0,$6C,$C0,$00
|
||||
!byte $AD,WILDCARD,WILDCARD ;LDA $xxxx
|
||||
!byte $85,$C1 ;STA $C1
|
||||
!byte $A9,$00 ;LDA #$00
|
||||
!byte $85,$C0 ;STA $C0
|
||||
!byte $6C,$C0,$00 ;JMP ($00C0)
|
||||
bcs +
|
||||
pha
|
||||
txa
|
||||
@ -78,7 +90,15 @@
|
||||
!byte $60
|
||||
+ ldy #14
|
||||
jsr SearchTrack
|
||||
!byte $85,$11,$49,WILDCARD,$48,$A5,$10,$49,WILDCARD,$48,$D0,$01,$4C,$60
|
||||
!byte $85,$11 ;STA $11
|
||||
!byte $49,WILDCARD ;EOR #$xx
|
||||
!byte $48 ;PHA
|
||||
!byte $A5,$10 ;LDA $10
|
||||
!byte $49,WILDCARD ;EOR #$xx
|
||||
!byte $48 ;PHA
|
||||
!byte $D0,$01 ;BNE *+3
|
||||
!byte $4C ;dummy
|
||||
!byte $60 ;RTS
|
||||
bcs +
|
||||
pha
|
||||
tay
|
||||
@ -91,7 +111,7 @@
|
||||
tya
|
||||
ldy #1
|
||||
jsr modify
|
||||
!byte $EA
|
||||
!byte $EA ;NOP
|
||||
pla
|
||||
clc
|
||||
adc #5
|
||||
@ -99,28 +119,44 @@
|
||||
pla
|
||||
ldy #1
|
||||
jsr modify
|
||||
!byte $EA
|
||||
!byte $EA ;NOP
|
||||
+ ldy #10
|
||||
jsr SearchTrack
|
||||
!byte $A9,$20,$8D,$DC,$4D,$A9,$60,$8D,$DF,$4D
|
||||
!byte $A9,$20 ;LDA #$20
|
||||
!byte $8D,$DC,$4D ;STA $4DDC
|
||||
!byte $A9,$60 ;LDA #$60
|
||||
!byte $8D,$DF,$4D ;STA $4DDF
|
||||
bcs +
|
||||
inx
|
||||
ldy #$01
|
||||
jsr modify
|
||||
!byte $2C
|
||||
!byte $2C ;BIT $xxxx
|
||||
+ ldy #6
|
||||
jsr SearchTrack
|
||||
!byte $20,$0A,$14,$6C,$C6,$03
|
||||
!byte $20,$0A,$14 ;JSR $140A
|
||||
!byte $6C,$C6,$03 ;JMP ($03C6)
|
||||
bcs +
|
||||
inx
|
||||
inx
|
||||
inx
|
||||
ldy #$01
|
||||
jsr modify
|
||||
!byte $60
|
||||
!byte $60 ;RTS
|
||||
+ ldy #17
|
||||
jsr SearchTrack
|
||||
!byte $48,$8A,$48,$98,$48,$20,$3D,$9B,$68,$A8,$68,$AA,$68,$28,$6C,$36,$00
|
||||
!byte $48 ;PHA
|
||||
!byte $8A ;TXA
|
||||
!byte $48 ;PHA
|
||||
!byte $98 ;TYA
|
||||
!byte $48 ;PHA
|
||||
!byte $20,$3D,$9B ;JSR $9B3D
|
||||
!byte $68 ;PLA
|
||||
!byte $A8 ;TAY
|
||||
!byte $68 ;PLA
|
||||
!byte $AA ;TAX
|
||||
!byte $68 ;PLA
|
||||
!byte $28 ;PLP
|
||||
!byte $6C,$36,$00 ;JMP ($0036)
|
||||
bcs +
|
||||
inx
|
||||
inx
|
||||
@ -129,7 +165,7 @@
|
||||
inx
|
||||
ldy #$01
|
||||
jsr modify
|
||||
!byte $2C
|
||||
!byte $2C ;BIT $xxxx
|
||||
+ jmp .exit
|
||||
.foundsierra
|
||||
!byte $00
|
||||
@ -137,17 +173,82 @@
|
||||
.trybox
|
||||
ldy #17
|
||||
jsr SearchTrack
|
||||
!byte $20,$00,$1D,$20,$C0,$1D,$A9,$16,$85,$56,$A9,$15,$85,$57,$20,$93,$15
|
||||
bcs .bcsexit1
|
||||
sta gDisplayBytes
|
||||
!byte $20,$00,$1D ;JSR $1D00
|
||||
!byte $20,$C0,$1D ;JSR $1DC0
|
||||
!byte $A9,$16 ;LDA #$16
|
||||
!byte $85,$56 ;STA $56
|
||||
!byte $A9,$15 ;LDA #$15
|
||||
!byte $85,$57 ;STA $57
|
||||
!byte $20,$93,$15 ;JSR $1593
|
||||
bcc +
|
||||
ldy #19
|
||||
jsr SearchTrack
|
||||
!byte $20,$17,$0A ;JSR $0A17
|
||||
!byte $20,$25,$0D ;JSR $0D25
|
||||
!byte $20,$85,$1E ;JSR $1E85
|
||||
!byte $80 ;dummy
|
||||
!byte $08,$CE,$CF,$CD,$CF,$CE,$C9,$C3,$CF
|
||||
;NOMONICO
|
||||
+ bcc +
|
||||
ldy #19
|
||||
jsr SearchTrack
|
||||
!byte $20,$07,$FF ;JSR $FF07
|
||||
!byte $A2,$00 ;LDX #$00
|
||||
!byte $A9,$01 ;LDA #$01
|
||||
!byte $85,$08 ;STA $08
|
||||
!byte $86,$09 ;STA $09
|
||||
!byte $60 ;RTS
|
||||
!byte $A9,$02 ;LDA #$02
|
||||
!byte $85,$0C ;STA $0C
|
||||
!byte $4C,$41,$7E ;JMP $7E41
|
||||
+ bcc +
|
||||
ldy #17
|
||||
jsr SearchTrack
|
||||
!byte $20,$27,$15 ;JSR $1527
|
||||
!byte $4C,$6C,$41 ;JMP $416C
|
||||
!byte $84,$C2,$CC,$CF,$C1,$C4,$A0,$D7,$C1,$CC,$D4
|
||||
;"BLOAD WALT..."
|
||||
+ bcc +
|
||||
ldy #11
|
||||
jsr SearchTrack
|
||||
!byte $20,$00,$FF ;JSR $FF00
|
||||
!byte $18 ;CLC
|
||||
!byte $A9,$7A ;LDA #$7A
|
||||
!byte $65,$08 ;ADC $08
|
||||
!byte $8D,$65,$66 ;STA $6665
|
||||
+ bcc +
|
||||
ldy #18
|
||||
jsr SearchTrack
|
||||
!byte $20,$00,$FF ;JSR $FF00
|
||||
!byte $A9,$00 ;LDA #$00
|
||||
!byte $85,$A6 ;STA $A6
|
||||
!byte $85,$A7 ;STA $A7
|
||||
!byte $A9,$00 ;LDA #$00
|
||||
!byte $85,$A8 ;STA $A8
|
||||
!byte $85,$A9 ;STA $A9
|
||||
!byte $20,WILDCARD,$53 ;JSR $53xx
|
||||
+ bcc +
|
||||
ldy #21
|
||||
jsr SearchTrack
|
||||
!byte $20,$00,$FF ;JSR $FF00
|
||||
!byte $A5,$AC ;LDA $AC
|
||||
!byte $8D,$E0,$7E ;STA $7EE0
|
||||
!byte $A5,$AD ;LDA $AD
|
||||
!byte $8D,$E1,$7E ;STA $7EE1
|
||||
!byte $A5,$06 ;LDA $06
|
||||
!byte $85,$AC ;STA $AC
|
||||
!byte $A5,$07 ;LDA $07
|
||||
!byte $85,$AD ;STA $AD
|
||||
bcs ++
|
||||
+ sta gDisplayBytes
|
||||
pha
|
||||
lda #s_sierra
|
||||
jsr PrintByID
|
||||
pla
|
||||
ldy #$01
|
||||
jsr modify
|
||||
!byte $2C
|
||||
jmp .exit
|
||||
!byte $2C ;BIT $xxxx
|
||||
++ jmp .exit
|
||||
|
||||
.dosearch
|
||||
lda gIsBoot0
|
||||
@ -155,10 +256,16 @@
|
||||
jmp .exit
|
||||
+ ldy #15
|
||||
jsr SearchTrack
|
||||
!byte $CE,WILDCARD,WILDCARD,$EF,WILDCARD,WILDCARD,$AD
|
||||
!byte WILDCARD,WILDCARD,$49,WILDCARD,$D0,01,$20,$8D
|
||||
bcs .trybox
|
||||
sta .cmp1+1
|
||||
!byte $CE,WILDCARD,WILDCARD ;DEC $xxxx
|
||||
!byte $EF,WILDCARD,WILDCARD ;mod->INC $xxxx
|
||||
!byte $AD,WILDCARD,WILDCARD ;LDA $xxxx
|
||||
!byte $49,WILDCARD ;EOR #$xx
|
||||
!byte $D0,01 ;BNE *+3
|
||||
!byte $20 ;dummy
|
||||
!byte $8D ;STA $xxxx
|
||||
bcc +
|
||||
jmp .trybox
|
||||
+ sta .cmp1+1
|
||||
sta .cmp2+1
|
||||
sta .cmp3+1
|
||||
sta .cmp4+1
|
||||
@ -188,7 +295,10 @@
|
||||
+ pla
|
||||
ldy #6
|
||||
jsr compare
|
||||
!byte $D0,$01,$4C,$A0,WILDCARD,$98
|
||||
!byte $D0,$01 ;BNE *+3
|
||||
!byte $4C ;dummy
|
||||
!byte $A0,WILDCARD ;LDY #$xx
|
||||
!byte $98 ;TYA
|
||||
.bcsexit1
|
||||
bcs .bcsexit2
|
||||
.page2
|
||||
@ -210,7 +320,10 @@
|
||||
+ pla
|
||||
ldy #8
|
||||
jsr compare
|
||||
!byte $59,WILDCARD,WILDCARD,$99,WILDCARD,WILDCARD,$C8,$D0
|
||||
!byte $59,WILDCARD,WILDCARD ;EOR $xxxx,Y
|
||||
!byte $99,WILDCARD,WILDCARD ;STA $xxxx,Y
|
||||
!byte $C8 ;INY
|
||||
!byte $D0 ;BNE *+xx
|
||||
.bcsexit2
|
||||
bcs .bcsexit3
|
||||
.page3
|
||||
@ -227,12 +340,18 @@
|
||||
pha
|
||||
ldy #5
|
||||
jsr compare
|
||||
!byte $88,$30,$01,$4C,$60
|
||||
!byte $88 ;DEY
|
||||
!byte $30,$01 ;BMI *+3
|
||||
!byte $4C ;dummy
|
||||
!byte $60 ;RTS
|
||||
pla
|
||||
bcc +
|
||||
ldy #5
|
||||
jsr compare
|
||||
!byte $98,$10,$01,$4C,$60
|
||||
!byte $98 ;TYA
|
||||
!byte $10,$01 ;BPL *+3
|
||||
!byte $4C ;dummy
|
||||
!byte $60 ;RTS
|
||||
.bcsexit3
|
||||
bcs .bcsexit4
|
||||
+ txa
|
||||
@ -261,7 +380,11 @@
|
||||
lda #$D1
|
||||
ldy #11
|
||||
jsr compare
|
||||
!byte $8C,$F4,$B7,WILDCARD,$EC,$B7,$A9,$B7,$A0,$E8,$20
|
||||
!byte $8C,$F4,$B7 ;STY $B7F4
|
||||
!byte WILDCARD,$EC,$B7 ;STx $B7EC
|
||||
!byte $A9,$B7 ;LDA #$B7
|
||||
!byte $A0,$E8 ;LDY #$E8
|
||||
!byte $20 ;JSR $xxxx
|
||||
.bcsexit4
|
||||
bcs .bcsexit5
|
||||
txa
|
||||
@ -293,7 +416,7 @@
|
||||
pha
|
||||
ldy #3
|
||||
jsr compare
|
||||
!byte $AE,$E9,$B7
|
||||
!byte $AE,$E9,$B7 ;LDX #$B7E9
|
||||
bcs +
|
||||
inx
|
||||
inx
|
||||
@ -301,7 +424,10 @@
|
||||
+ pla
|
||||
ldy #9
|
||||
jsr compare
|
||||
!byte $BD,$89,$C0,$A9,WILDCARD,$8D,WILDCARD,WILDCARD,$20
|
||||
!byte $BD,$89,$C0 ;LDA $C089,X
|
||||
!byte $A9,WILDCARD ;LDA #$xx
|
||||
!byte $8D,WILDCARD,WILDCARD ;STA $xxxx
|
||||
!byte $20 ;JSR $xxxx
|
||||
.bcsexit6
|
||||
bcs .exit
|
||||
.page8
|
||||
@ -314,7 +440,8 @@
|
||||
pha
|
||||
ldy #3
|
||||
jsr compare
|
||||
!byte $A9,$1C,$8D
|
||||
!byte $A9,$1C ;LDA #$1C
|
||||
!byte $8D ;STA $xxxx
|
||||
pla
|
||||
bcs .exit
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user