From 7590c290a33f8a36778e79bd182b56897ced2b17 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Fri, 6 Jan 2023 11:36:12 -0800 Subject: [PATCH] display MB mono/stereo on start --- src/4cade.init.a | 39 ++++++++++++++++++++++++--------------- src/constants.a | 6 ++++-- src/hw.mockingboard.a | 2 +- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/4cade.init.a b/src/4cade.init.a index 7511b2b86..c31bcdc8e 100755 --- a/src/4cade.init.a +++ b/src/4cade.init.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2018-2020 by 4am +;(c) 2018-2023 by 4am ; ; first-run initialization code ; @@ -157,7 +157,6 @@ lda zpMachineStatus and #HAS_JOYSTICK beq + - jsr LoadingCR +LDADDR LoadingJoystick jsr LoadingPrint + @@ -165,7 +164,6 @@ lda zpMachineStatus and #HAS_VIDHD beq + - jsr LoadingCR +LDADDR LoadingVidHD jsr LoadingPrint + @@ -235,11 +233,21 @@ stx MockingboardStuff ; save mockingboard slot and type in LC RAM +READ_ROM_NO_WRITE + txa + beq + + and #HAS_STEREO + beq @mb_mono + +LDADDR LoadingMockingboardStereo + bne @mb_print +@mb_mono + +LDADDR LoadingMockingboardStereo +@mb_print + jsr LoadingPrint + ; if Mockingboard AND HAS_SPEECH then print CR & '...and it talks!' txa and #HAS_SPEECH beq + - jsr LoadingCR +LDADDR LoadingMockingboardSpeech jsr LoadingPrint @@ -280,13 +288,8 @@ LoadingPrint bne - rts -LoadingCR - lda #$8D - jmp ROM_COUT - FoundMockingboardCallback ; in: zp$81 contains slot number in form $Cx - jsr LoadingCR +LDADDR LoadingMockingboard jsr LoadingPrint lda $81 @@ -319,14 +322,20 @@ LoadingIIgs !byte 4 !text "IIgs" LoadingJoystick - !byte 8 - !text "joystick" + !byte 9 + !text $8D,"joystick" LoadingVidHD - !byte 5 - !text "VidHD" + !byte 6 + !text $8D,"VidHD" LoadingMockingboard - !byte 21 - !text "Mockingboard in slot " + !byte 22 + !text $8D,"Mockingboard in slot " +LoadingMockingboardStereo + !byte 7 + !text $8D,"Stereo" +LoadingMockingboardMono + !byte 5 + !text $8D,"Mono" LoadingMockingboardSpeech !byte 16 !text "...and it talks!" diff --git a/src/constants.a b/src/constants.a index 03632992b..02346d0f2 100644 --- a/src/constants.a +++ b/src/constants.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2018-2022 by 4am +;(c) 2018-2023 by 4am ; ;------------------------------------------------------------------------------ @@ -11,7 +11,7 @@ ; ...unused... ; E000..E3FF - HGR font data ; ...unused... -; E730..FFEB - main program code +; E6C9..FFEB - main program code ; FFEC..FFF9 - API functions and global constants available for main program ; code, prelaunchers, transition effects, &c. ; (LoadFileDirect, Wait/UnwaitForVBL, MockingboardStuff, MachineStatus) @@ -110,6 +110,7 @@ ROM_MACHINEID =$FBB3 ROM_MACHINE2C =$FBC0 ROM_HOME = $FC58 ROM_WAIT = $FCA8 +ROM_CROUT= $FD8E ROM_COUT = $FDED ROM_NORMAL = $FE84 ; NORMAL text (instead of INVERSE or FLASH) ROM_IN0 = $FE89 ; SETKBD @@ -188,6 +189,7 @@ EnableAccelerator = DisableAccelerator+3 ; AND masks for MockingboardStuff MOCKINGBOARD_SLOT = %00001111 +HAS_STEREO = %00100000 HAS_SPEECH = %11000000 ; AND masks for game info bitfield (after game display name in gSearchStore) diff --git a/src/hw.mockingboard.a b/src/hw.mockingboard.a index 0db8b99a7..642ee46b6 100644 --- a/src/hw.mockingboard.a +++ b/src/hw.mockingboard.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019-2020 by Andrew Roughan, qkumba, 4am, Tom Charlesworth, Rob Justice +;(c) 2019-2022 by Andrew Roughan, qkumba, 4am, Tom Charlesworth, Rob Justice ; ; Mockingboard support functions ;