mirror of
https://github.com/a2-4am/4cade.git
synced 2024-06-17 08:29:32 +00:00
distinguish between SC-01 and SSI-263
This commit is contained in:
parent
fbc7179dd6
commit
0c12457e69
|
@ -169,9 +169,11 @@ iLoadFileDirect = $FFEF ; note: you really want LC RAM 2 banked in before ca
|
||||||
WaitForVBL = $FFF2
|
WaitForVBL = $FFF2
|
||||||
UnwaitForVBL = $FFF5
|
UnwaitForVBL = $FFF5
|
||||||
|
|
||||||
MockingboardStuff = $FFF8 ; bit 7 = 1 if speech chip present (Mockingboard "C")
|
MockingboardStuff = $FFF8 ; bit 7 = 1 if SC-01 speech chip present (Speech I)
|
||||||
; bit 6 = 1 if Mockingboard "B" (stereo) found (else Mockingboard "A")
|
; bit 6 = 1 if SSI-263 speech chip present (Mockingboard "B"-"D")
|
||||||
; bit 4-5 unused
|
; bit 5 = 1 if two AY-3-8910s present (Sound II / Mockingboard "A"-"D")
|
||||||
|
; bit 5 = 0 if only AY-3-8910 present (Sound I)
|
||||||
|
; bit 4 unused
|
||||||
; bits 0-3: slot number
|
; bits 0-3: slot number
|
||||||
MachineStatus = $FFF9
|
MachineStatus = $FFF9
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,10 @@
|
||||||
; (zp$81 will contain the slot in form $Cx)
|
; (zp$81 will contain the slot in form $Cx)
|
||||||
; /!\ ALL ACCELERATORS MUST BE OFF OR SET TO 1 MHZ
|
; /!\ ALL ACCELERATORS MUST BE OFF OR SET TO 1 MHZ
|
||||||
; out: if card was found, X = #$?n where n is the slot number of the card, otherwise #$00
|
; out: if card was found, X = #$?n where n is the slot number of the card, otherwise #$00
|
||||||
; and bit 6 = 0 if Mockingboard Sound I found
|
; and bit 5 = 0 if Mockingboard Sound I found
|
||||||
; or bit 6 = 1 if Mockingboard Sound II or "A" found
|
; or bit 5 = 1 if Mockingboard Sound II or "A"-"D" found
|
||||||
; and bit 7 = 1 if Mockingboard Sound/Speech I or "C" found
|
; and bit 6 = 1 if SSI-263 speech chip found
|
||||||
|
; or bit 7 = 1 if SC-01 speech chip found
|
||||||
; flags clobbered
|
; flags clobbered
|
||||||
; zp $80-$82 clobbered
|
; zp $80-$82 clobbered
|
||||||
; A/Y clobbered
|
; A/Y clobbered
|
||||||
|
@ -127,11 +128,13 @@ GetMockingboardStuff
|
||||||
|
|
||||||
@wait_irq
|
@wait_irq
|
||||||
lda $80
|
lda $80
|
||||||
bne @got_irq
|
bne +
|
||||||
iny
|
iny
|
||||||
bne @wait_irq
|
bne @wait_irq
|
||||||
inx
|
inx
|
||||||
bne @wait_irq
|
bne @wait_irq
|
||||||
|
clc
|
||||||
|
+ ror $82
|
||||||
|
|
||||||
; detect speech - SC-01
|
; detect speech - SC-01
|
||||||
;based on S/S I demo dsk
|
;based on S/S I demo dsk
|
||||||
|
@ -159,24 +162,22 @@ GetMockingboardStuff
|
||||||
bne -
|
bne -
|
||||||
inx
|
inx
|
||||||
bne -
|
bne -
|
||||||
clc ; not found
|
beq @got_irq
|
||||||
bcc @got_irq
|
|
||||||
|
|
||||||
@mb_smc21
|
@mb_smc21
|
||||||
+ sta $c40d ; ifr, clear flag
|
+ sta $c40d ; ifr, clear flag
|
||||||
lda #$00 ; turn off cb2 pulse mode to disable false writes to sc01
|
lda #$00 ; turn off cb2 pulse mode to disable false writes to sc01
|
||||||
@mb_smc22
|
@mb_smc22
|
||||||
sta $c40c ; pcr
|
sta $c40c ; pcr
|
||||||
sec ; found, we have an S/S I
|
sec ; found, we have an SC-01
|
||||||
ror $82
|
ror $82
|
||||||
ldy #$ff
|
bne @ssI
|
||||||
bcc @ssI
|
|
||||||
|
|
||||||
@got_irq
|
@got_irq
|
||||||
sei
|
sei
|
||||||
|
clc ; not found
|
||||||
ror $82
|
ror $82
|
||||||
|
|
||||||
@onlyI
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
@mb_smc6
|
@mb_smc6
|
||||||
sty $c403 ; 6522#1 ddra
|
sty $c403 ; 6522#1 ddra
|
||||||
|
@ -190,16 +191,16 @@ GetMockingboardStuff
|
||||||
sta ($80),y ; 6522#1 orb
|
sta ($80),y ; 6522#1 orb
|
||||||
lda #4
|
lda #4
|
||||||
sta ($80),y ; 6522#1 orb
|
sta ($80),y ; 6522#1 orb
|
||||||
dey
|
|
||||||
@ssI
|
@ssI
|
||||||
|
ldy #$ff
|
||||||
@mb_smc8
|
@mb_smc8
|
||||||
sty $c483 ; 6522#2 ddra
|
sty $c483 ; 6522#2 ddra
|
||||||
lda #7
|
lda #7
|
||||||
@mb_smc9
|
@mb_smc9
|
||||||
sta $c482 ; 6522#2 ddrb
|
sta $c482 ; 6522#2 ddrb
|
||||||
|
|
||||||
iny
|
lda #0
|
||||||
tya
|
|
||||||
ldy #$80
|
ldy #$80
|
||||||
sta ($80),y ; 6522#2 orb
|
sta ($80),y ; 6522#2 orb
|
||||||
lda #4
|
lda #4
|
||||||
|
|
18
src/macros.a
18
src/macros.a
|
@ -209,7 +209,7 @@
|
||||||
|
|
||||||
; various language card configurations
|
; various language card configurations
|
||||||
!macro READ_RAM1_NO_WRITE {
|
!macro READ_RAM1_NO_WRITE {
|
||||||
bit $C088
|
sta $C088
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_RAM1_WRITE_RAM1 {
|
!macro READ_RAM1_WRITE_RAM1 {
|
||||||
|
@ -218,7 +218,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_RAM2_NO_WRITE {
|
!macro READ_RAM2_NO_WRITE {
|
||||||
bit $C080
|
sta $C080
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_RAM2_WRITE_RAM2 {
|
!macro READ_RAM2_WRITE_RAM2 {
|
||||||
|
@ -237,7 +237,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_ROM_NO_WRITE {
|
!macro READ_ROM_NO_WRITE {
|
||||||
bit $C082
|
sta $C082
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro READ_AUX {
|
!macro READ_AUX {
|
||||||
|
@ -314,18 +314,16 @@
|
||||||
+READ_ROM_NO_WRITE
|
+READ_ROM_NO_WRITE
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro GET_MOCKINGBOARD_SPEECH { ;carry set if present
|
!macro GET_MOCKINGBOARD_SPEECH { ;sign set if SC-01, overflow set if SSI-263
|
||||||
+READ_RAM2_NO_WRITE
|
+READ_RAM2_NO_WRITE
|
||||||
lda MockingboardStuff
|
bit MockingboardStuff
|
||||||
asl
|
|
||||||
+READ_ROM_NO_WRITE
|
+READ_ROM_NO_WRITE
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro GET_MOCKINGBOARD_SPEECH_AND_MACHINE_STATUS { ;carry set if present
|
!macro GET_MOCKINGBOARD_SPEECH_AND_MACHINE_STATUS { ;sign set if SC-01, overflow set if SSI-263
|
||||||
+READ_RAM2_NO_WRITE
|
+READ_RAM2_NO_WRITE
|
||||||
lda MockingboardStuff
|
|
||||||
asl
|
|
||||||
lda MachineStatus
|
lda MachineStatus
|
||||||
|
bit MockingboardStuff
|
||||||
+READ_ROM_NO_WRITE
|
+READ_ROM_NO_WRITE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -333,6 +331,7 @@
|
||||||
+READ_RAM2_NO_WRITE
|
+READ_RAM2_NO_WRITE
|
||||||
lda MockingboardStuff
|
lda MockingboardStuff
|
||||||
cmp #1
|
cmp #1
|
||||||
|
and #7
|
||||||
ora #$C0
|
ora #$C0
|
||||||
+READ_ROM_NO_WRITE
|
+READ_ROM_NO_WRITE
|
||||||
}
|
}
|
||||||
|
@ -341,6 +340,7 @@
|
||||||
+READ_RAM2_NO_WRITE
|
+READ_RAM2_NO_WRITE
|
||||||
lda MockingboardStuff
|
lda MockingboardStuff
|
||||||
cmp #1
|
cmp #1
|
||||||
|
and #7
|
||||||
ora #$C0
|
ora #$C0
|
||||||
tax
|
tax
|
||||||
lda MachineStatus
|
lda MachineStatus
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2021 by qkumba
|
;(c) 2021-2022 by qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH.INDEXED/APE.ESCAPE",plain
|
!to "build/PRELAUNCH.INDEXED/APE.ESCAPE",plain
|
||||||
|
@ -26,11 +26,9 @@
|
||||||
jsr $94E4 ; decompress game
|
jsr $94E4 ; decompress game
|
||||||
|
|
||||||
lda MockingboardStuff
|
lda MockingboardStuff
|
||||||
cmp #1
|
|
||||||
ora #$C0
|
|
||||||
bcc no_speech
|
|
||||||
ldx MockingboardStuff
|
|
||||||
bpl no_speech
|
bpl no_speech
|
||||||
|
and #7
|
||||||
|
ora #$C0
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
- ldx $1300,Y ;find #$C4s
|
- ldx $1300,Y ;find #$C4s
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2020 by qkumba
|
;(c) 2020, 2022 by qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH.INDEXED/BATTLE.CRUISER",plain
|
!to "build/PRELAUNCH.INDEXED/BATTLE.CRUISER",plain
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
jsr $2000 ; decompress
|
jsr $2000 ; decompress
|
||||||
|
|
||||||
+GET_MOCKINGBOARD_SPEECH_AND_MACHINE_STATUS
|
+GET_MOCKINGBOARD_SPEECH_AND_MACHINE_STATUS
|
||||||
bcs +
|
bmi +
|
||||||
ldy #0
|
ldy #0
|
||||||
sty $868
|
sty $868
|
||||||
sty $9486
|
sty $9486
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2020 by qkumba
|
;(c) 2020, 2022 by qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH/BERZAP.MB",plain
|
!to "build/PRELAUNCH/BERZAP.MB",plain
|
||||||
|
@ -93,21 +93,20 @@ setopt
|
||||||
lda $65AB
|
lda $65AB
|
||||||
cmp #3
|
cmp #3
|
||||||
bne ++
|
bne ++
|
||||||
+READ_RAM2_NO_WRITE
|
|
||||||
lda MockingboardStuff
|
|
||||||
ldx #3 ; MB/A
|
|
||||||
ldy #0
|
ldy #0
|
||||||
sty $382 ; joystick
|
sty $382 ; joystick
|
||||||
asl
|
ldx #2
|
||||||
bpl +
|
iny ; Sound/Speech I
|
||||||
ldx #1 ; Sound2
|
|
||||||
+ bcc +
|
+READ_RAM2_NO_WRITE
|
||||||
txa
|
bit MockingboardStuff
|
||||||
eor #2
|
bmi + ; SC-01
|
||||||
adc #0
|
ldx #0
|
||||||
tax ; Sound/Speech or MB/C
|
dey ; Sound II
|
||||||
lsr
|
bvc + ; no speech
|
||||||
tay ; Speech1 or Speech2
|
ldx #4
|
||||||
|
ldy #2 ; Mockingboard "C"
|
||||||
+ stx $380
|
+ stx $380
|
||||||
sty $381
|
sty $381
|
||||||
lda #$0D
|
lda #$0D
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2021 by qkumba
|
;(c) 2021-2022 by qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH/KAMUNGAS.MB",plain
|
!to "build/PRELAUNCH/KAMUNGAS.MB",plain
|
||||||
|
@ -30,22 +30,20 @@
|
||||||
+
|
+
|
||||||
lda MockingboardStuff
|
lda MockingboardStuff
|
||||||
+READ_ROM_NO_WRITE
|
+READ_ROM_NO_WRITE
|
||||||
cmp #1
|
beq ++
|
||||||
bcc ++
|
|
||||||
tax
|
tax
|
||||||
|
and #7
|
||||||
ora #$C0
|
ora #$C0
|
||||||
sta mbslot+1
|
sta mbslot+1
|
||||||
txa
|
txa
|
||||||
|
ldy #$0e ; sound/speech
|
||||||
asl
|
asl
|
||||||
and #$80
|
bcs +
|
||||||
ora #2 ; sound i
|
ldy #$0a ; sound ii
|
||||||
bpl +
|
asl
|
||||||
eor #$88 ; sound ii
|
bmi +
|
||||||
+
|
ldy #2 ; sound i
|
||||||
bcc +
|
+ sty mbtype+1
|
||||||
ora #4 ; +speech
|
|
||||||
+
|
|
||||||
sta mbtype+1
|
|
||||||
lda #$4C
|
lda #$4C
|
||||||
sta $BD00
|
sta $BD00
|
||||||
lda #<callback
|
lda #<callback
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019-2020 by 4am and qkumba
|
;(c) 2019-2020, 2022 by 4am and qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH.INDEXED/LADY.TUT",plain
|
!to "build/PRELAUNCH.INDEXED/LADY.TUT",plain
|
||||||
|
@ -39,6 +39,7 @@ patch
|
||||||
asl
|
asl
|
||||||
ror $AD
|
ror $AD
|
||||||
lsr
|
lsr
|
||||||
|
and #7
|
||||||
ora #$C0
|
ora #$C0
|
||||||
sta $AC
|
sta $AC
|
||||||
lda #$4B
|
lda #$4B
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2020 by qkumba
|
;(c) 2020, 2022 by qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH/RESQ.RAIDERS.MB",plain
|
!to "build/PRELAUNCH/RESQ.RAIDERS.MB",plain
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
lda #$4C
|
lda #$4C
|
||||||
sta $4047
|
sta $4047
|
||||||
+GET_MOCKINGBOARD_SPEECH
|
+GET_MOCKINGBOARD_SPEECH
|
||||||
bcs +
|
bmi +
|
||||||
lda #$60
|
lda #$60
|
||||||
sta $40FB ; no speech chip, pretend no MB
|
sta $40FB ; no speech chip, pretend no MB
|
||||||
+
|
+
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019-2020 by 4am, qkumba
|
;(c) 2019-2020, 2022 by 4am, qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH.INDEXED/S2",plain
|
!to "build/PRELAUNCH.INDEXED/S2",plain
|
||||||
|
@ -20,15 +20,15 @@
|
||||||
sta $6AE7 ; patch - don't decrease lives
|
sta $6AE7 ; patch - don't decrease lives
|
||||||
sta $87EE ; patch - don't increase lives
|
sta $87EE ; patch - don't increase lives
|
||||||
+
|
+
|
||||||
|
ldy #2 ; sound / speech
|
||||||
lda MockingboardStuff
|
lda MockingboardStuff
|
||||||
asl
|
beq skipmb
|
||||||
bpl skipmb
|
bmi +
|
||||||
lsr
|
iny ; sound
|
||||||
and #7
|
+ and #7
|
||||||
ora #$30
|
ora #$30
|
||||||
sta $8F33
|
sta $8F33
|
||||||
lda #3
|
sty $8FEC
|
||||||
sta $8FEC
|
|
||||||
|
|
||||||
skipmb
|
skipmb
|
||||||
jsr DisableAccelerator
|
jsr DisableAccelerator
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by Frank M.
|
;(c) 2019 by Frank M., 2022 by qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH.INDEXED/THUNDER.BOMBS",plain
|
!to "build/PRELAUNCH.INDEXED/THUNDER.BOMBS",plain
|
||||||
|
@ -28,22 +28,21 @@
|
||||||
+READ_RAM2_NO_WRITE
|
+READ_RAM2_NO_WRITE
|
||||||
lda MockingboardStuff
|
lda MockingboardStuff
|
||||||
+READ_ROM_NO_WRITE
|
+READ_ROM_NO_WRITE
|
||||||
cmp #1
|
beq ++
|
||||||
bcc ++
|
|
||||||
tax
|
tax
|
||||||
|
and #7
|
||||||
ora #$C0
|
ora #$C0
|
||||||
sta $341
|
sta $341
|
||||||
txa
|
txa
|
||||||
|
ldy #6 ; sound/speech
|
||||||
asl
|
asl
|
||||||
and #$80
|
bcs +
|
||||||
ora #1 ; sound i
|
ldy #4 ; sound ii
|
||||||
bpl +
|
asl
|
||||||
eor #$85 ; sound ii
|
bmi +
|
||||||
|
dey ; sound i
|
||||||
+
|
+
|
||||||
bcc +
|
sty $340
|
||||||
lda #6 ; +speech
|
|
||||||
+
|
|
||||||
sta $340
|
|
||||||
jsr $7CB4
|
jsr $7CB4
|
||||||
++
|
++
|
||||||
+DISABLE_ACCEL
|
+DISABLE_ACCEL
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2021 by qkumba
|
;(c) 2021-2022 by qkumba
|
||||||
|
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/PRELAUNCH.INDEXED/ZOO.MASTER",plain
|
!to "build/PRELAUNCH.INDEXED/ZOO.MASTER",plain
|
||||||
|
@ -18,12 +18,11 @@
|
||||||
+READ_RAM2_NO_WRITE
|
+READ_RAM2_NO_WRITE
|
||||||
jsr DisableAccelerator
|
jsr DisableAccelerator
|
||||||
lda MockingboardStuff
|
lda MockingboardStuff
|
||||||
pha
|
|
||||||
+READ_ROM_NO_WRITE
|
+READ_ROM_NO_WRITE
|
||||||
pla
|
|
||||||
bmi +
|
bmi +
|
||||||
jmp $8C0
|
jmp $8C0
|
||||||
+
|
+
|
||||||
|
and #7
|
||||||
ora #$C0
|
ora #$C0
|
||||||
ldx #0
|
ldx #0
|
||||||
- ldy $9A00, x
|
- ldy $9A00, x
|
||||||
|
|
Loading…
Reference in New Issue
Block a user