diff --git a/Source/Apps/Test/Makefile b/Source/Apps/Test/Makefile index 6fbce342..ef0d67c2 100644 --- a/Source/Apps/Test/Makefile +++ b/Source/Apps/Test/Makefile @@ -1,4 +1,4 @@ -OBJECTS = +OBJECTS = SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz vdctest kbdtest ps2info 2piotst piomon banktest portscan DEST = ../../../Binary/Apps/Test TOOLS =../../../Tools diff --git a/Source/Apps/Test/sound/ay-test.asm b/Source/Apps/Test/sound/ay-test.asm index 29f84f7b..40de4ef6 100644 --- a/Source/Apps/Test/sound/ay-test.asm +++ b/Source/Apps/Test/sound/ay-test.asm @@ -13,9 +13,9 @@ ; ; Hardware port addresses ; -rsel .equ $9A ; Register seelection port address -rdat .equ $9B ; Register data port address -acr .equ $9C ; Aux control register port address +rsel .equ $A4 ; Register seelection port address +rdat .equ $A5 ; Register data port address +acr .equ $A2 ; Aux control register port address ; ; CPU speed for delay scaling ; diff --git a/Source/Apps/Tune/tune.asm b/Source/Apps/Tune/tune.asm index be886658..c12ba1a0 100644 --- a/Source/Apps/Tune/tune.asm +++ b/Source/Apps/Tune/tune.asm @@ -630,7 +630,7 @@ CFGTBL: ; PLT RSEL RDAT RIN Z180 ACR .DB 13, $A0, $A1, $A0, $FF, $A2 ; MBC .DW HWSTR_MBC ; - .DB 17, $A0, $A1, $A0, $FF, $A2 ; DUODYNE + .DB 17, $A4, $A5, $A4, $FF, $FF ; DUODYNE .DW HWSTR_DUO ; .DB $FF ; END OF TABLE MARKER diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index 4188fa17..f9451d7d 100644 --- a/Source/HBIOS/ay38910.asm +++ b/Source/HBIOS/ay38910.asm @@ -2,6 +2,7 @@ ; ; AY-3-8910 / YM2149 SOUND DRIVER ; +; UPDATED BY: DAN WERNER -- 2/11/2024 - DUODYNE SUPPORT ;====================================================================== ; ; AY-3-8910 & YM2149 PSG CHIPS NEED AN INPUT CLOCK FREQUENCY OF @@ -14,7 +15,7 @@ ; DIFFENCES BETWEEN AY-3-8910 AND YM2149 ; THE AY-3-8910 HAS 16 ENVELOPE LEVELS, YM2149 HAS 32. ; THIS AFFECTS AUDIO OUTPUT ONLY. THERE IS NO PROGRAMMING IMPACT. -; UNUSED BITS IN REGISTERS ARE READ AS ZERO ON AY-3-8910. +; UNUSED BITS IN REGISTERS ARE READ AS ZERO ON AY-3-8910. ; UNUSED BITS CAN BE READ BACK AND WRITTEN ON YM. ; VOLTAGE LEVEL OUTPUT ON A AY-3-8910 IS LOW AND AROUND 2V ON YM2149. ; @@ -73,6 +74,13 @@ AY_RIN .EQU AY_RSEL AY_ACR .EQU $A2 .ECHO "MBC" #ENDIF +#IF (AYMODE == AYMODE_DUO) +AY_RSEL .EQU $A4 +AY_RDAT .EQU $A5 +AY_RIN .EQU AY_RSEL +AY_ACR .EQU $A6 + .ECHO "DUO" +#ENDIF ; .ECHO ", IO=" .ECHO AY_RSEL @@ -117,7 +125,7 @@ AY_IDAT .EQU 0 ; NO INSTANCE DATA ASSOCIATED WITH THIS DEVICE AY_TONECNT .EQU 3 ; COUNT NUMBER OF TONE CHANNELS AY_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS ;; -;#IF (AY_CLK > 3579545) ; DEPENDING ON THE +;#IF (AY_CLK > 3579545) ; DEPENDING ON THE ;AY_SCALE .EQU 2 ; INPUT CLOCK FREQUENCY ;#ELSE ; PRESCALE THE TONE PERIOD ;AY_SCALE .EQU 3 ; DATA TO MAINTAIN MAXIMUM @@ -161,19 +169,26 @@ AY38910_INIT: #IF (AYMODE == AYMODE_MBC) PRTS(" MODE=MBC$") #ENDIF +#IF (AYMODE == AYMODE_DUO) + PRTS(" MODE=DUO$") +#ENDIF ; #IF (AYMODE == AYMODE_LINC) PRTS(" MODE=LINC$") #ENDIF -; +; PRTS(" IO=0x$") LD A,AY_RSEL CALL PRTHEXBYTE ; -#IF ((AYMODE == AYMODE_SCG) | (AYMODE == AYMODE_N8) | (AYMODE == AYMODE_MBC)) +#IF ((AYMODE == AYMODE_SCG) | (AYMODE == AYMODE_N8) | (AYMODE == AYMODE_MBC) LD A,$FF ; ACTIVATE DEVICE BIT 4 IS AY RESET CONTROL, BIT 3 IS ACTIVE LED OUT (AY_ACR),A ; SET INIT AUX CONTROL REG #ENDIF +#IF ((AYMODE == AYMODE_DUO)) + LD A,$FE ; + OUT (AY_ACR),A ; SET INIT AUX CONTROL REG +#ENDIF ; LD DE,(AY_R2CHBP*256)+$55 ; SIMPLE HARDWARE PROBE CALL AY_WRTPSG ; WRITE AND @@ -202,7 +217,7 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE LD DE,(AY_R3CHBP*256)+$00 CALL AY_WRTPSG ; R03 = $00 = XXXX0000 ; -#IF (SYSTIM != TM_NONE) +#IF ((SYSTIM != TM_NONE) & (AYMODE != AYMODE_DUO)) LD A, TICKFREQ / 3 ; SCHEDULE IN 1/3 SECOND TO TURN OFF SOUND LD (AY_TIMTIK), A ; @@ -224,7 +239,7 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE XOR A ; SUCCESSFULL INIT RET ; -#IF (SYSTIM != TM_NONE) +#IF ((SYSTIM != TM_NONE) & (AYMODE != AYMODE_DUO)) AY_TIMER: LD A, (AY_TIMTIK) DEC A @@ -638,46 +653,46 @@ AY3NOTETBL: .DW AY_RATIO / 2999 ; .DW AY_RATIO / 3042 ; .DW AY_RATIO / 3086 ; B0 - .DW AY_RATIO / 3131 ; - .DW AY_RATIO / 3177 ; - .DW AY_RATIO / 3223 ; + .DW AY_RATIO / 3131 ; + .DW AY_RATIO / 3177 ; + .DW AY_RATIO / 3223 ; .DW AY_RATIO / 3270 ; C1 - .DW AY_RATIO / 3318 ; - .DW AY_RATIO / 3366 ; - .DW AY_RATIO / 3415 ; + .DW AY_RATIO / 3318 ; + .DW AY_RATIO / 3366 ; + .DW AY_RATIO / 3415 ; .DW AY_RATIO / 3464 ; C1#/D1b - .DW AY_RATIO / 3515 ; - .DW AY_RATIO / 3566 ; - .DW AY_RATIO / 3618 ; + .DW AY_RATIO / 3515 ; + .DW AY_RATIO / 3566 ; + .DW AY_RATIO / 3618 ; .DW AY_RATIO / 3670 ; D1 - .DW AY_RATIO / 3724 ; - .DW AY_RATIO / 3778 ; - .DW AY_RATIO / 3833 ; + .DW AY_RATIO / 3724 ; + .DW AY_RATIO / 3778 ; + .DW AY_RATIO / 3833 ; .DW AY_RATIO / 3889 ; D1#/E1b - .DW AY_RATIO / 3945 ; - .DW AY_RATIO / 4003 ; - .DW AY_RATIO / 4061 ; + .DW AY_RATIO / 3945 ; + .DW AY_RATIO / 4003 ; + .DW AY_RATIO / 4061 ; .DW AY_RATIO / 4120 ; E1 - .DW AY_RATIO / 4180 ; - .DW AY_RATIO / 4241 ; - .DW AY_RATIO / 4302 ; + .DW AY_RATIO / 4180 ; + .DW AY_RATIO / 4241 ; + .DW AY_RATIO / 4302 ; .DW AY_RATIO / 4365 ; F1 - .DW AY_RATIO / 4428 ; - .DW AY_RATIO / 4493 ; - .DW AY_RATIO / 4558 ; + .DW AY_RATIO / 4428 ; + .DW AY_RATIO / 4493 ; + .DW AY_RATIO / 4558 ; .DW AY_RATIO / 4624 ; F1#/G1b - .DW AY_RATIO / 4692 ; - .DW AY_RATIO / 4760 ; - .DW AY_RATIO / 4829 ; + .DW AY_RATIO / 4692 ; + .DW AY_RATIO / 4760 ; + .DW AY_RATIO / 4829 ; .DW AY_RATIO / 4899 ; G1 - .DW AY_RATIO / 4971 ; - .DW AY_RATIO / 5043 ; - .DW AY_RATIO / 5116 ; + .DW AY_RATIO / 4971 ; + .DW AY_RATIO / 5043 ; + .DW AY_RATIO / 5116 ; .DW AY_RATIO / 5191 ; G1#/A1b - .DW AY_RATIO / 5266 ; - .DW AY_RATIO / 5343 ; - .DW AY_RATIO / 5421 ; + .DW AY_RATIO / 5266 ; + .DW AY_RATIO / 5343 ; + .DW AY_RATIO / 5421 ; .DW AY_RATIO / 5499 ; A1 - .DW AY_RATIO / 5579 ; - .DW AY_RATIO / 5661 ; - .DW AY_RATIO / 5743 ; + .DW AY_RATIO / 5579 ; + .DW AY_RATIO / 5661 ; + .DW AY_RATIO / 5743 ; diff --git a/Source/HBIOS/cfg_duo.asm b/Source/HBIOS/cfg_duo.asm index bd9606eb..47951975 100644 --- a/Source/HBIOS/cfg_duo.asm +++ b/Source/HBIOS/cfg_duo.asm @@ -167,8 +167,8 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUMODE .EQU CVDUMODE_MBC ; CVDU: CVDU MODE: CVDUMODE_[NONE|ECB|MBC] CVDUMON .EQU CVDUMON_CGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) -TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MBC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSMODE .EQU TMSMODE_DUO ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] @@ -310,9 +310,9 @@ AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER SN7CLK .EQU 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; -AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER +AY38910ENABLE .EQU TRUE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_MBC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_DUO ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index 66726519..7aa27a74 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/Source/HBIOS/cfg_dyno.asm @@ -186,7 +186,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -291,7 +291,7 @@ SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_epitx.asm b/Source/HBIOS/cfg_epitx.asm index 40be5a09..59a8be6a 100644 --- a/Source/HBIOS/cfg_epitx.asm +++ b/Source/HBIOS/cfg_epitx.asm @@ -188,7 +188,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -323,7 +323,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_heath.asm b/Source/HBIOS/cfg_heath.asm index f1c53d35..7b8892d7 100644 --- a/Source/HBIOS/cfg_heath.asm +++ b/Source/HBIOS/cfg_heath.asm @@ -191,7 +191,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -316,7 +316,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index 8419d777..ffa67e56 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.asm @@ -236,7 +236,7 @@ GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) GDCMODE .EQU GDCMODE_RPH ; GDC: GDC MODE: GDCMODE_[NONE|ECB|RPH] GDCMON .EQU GDCMON_EGA ; GDC: GDC MONITOR SETUP: GDCMON_[NONE|CGA|EGA] TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] @@ -383,7 +383,7 @@ SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_mbc.asm b/Source/HBIOS/cfg_mbc.asm index 147b15cd..42a0eaaa 100644 --- a/Source/HBIOS/cfg_mbc.asm +++ b/Source/HBIOS/cfg_mbc.asm @@ -165,7 +165,7 @@ CVDUMODE .EQU CVDUMODE_MBC ; CVDU: CVDU MODE: CVDUMODE_[NONE|ECB|MBC] CVDUMON .EQU CVDUMON_CGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MBC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MBC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] @@ -299,7 +299,7 @@ SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_MBC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_MBC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index f2815b94..a5388211 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -175,7 +175,7 @@ CVDUMODE .EQU CVDUMODE_ECB ; CVDU: CVDU MODE: CVDUMODE_[NONE|ECB|MBC] CVDUMON .EQU CVDUMON_EGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] @@ -295,7 +295,7 @@ SNMODE .EQU SNMODE_VGM ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; @@ -303,5 +303,5 @@ DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM) DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS DMAMODE .EQU DMAMODE_ECB ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC|DUO) ; -YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER +YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76489s/CTC) diff --git a/Source/HBIOS/cfg_mon.asm b/Source/HBIOS/cfg_mon.asm index deecfc30..46d2b23d 100644 --- a/Source/HBIOS/cfg_mon.asm +++ b/Source/HBIOS/cfg_mon.asm @@ -186,7 +186,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -321,7 +321,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 64d29641..508fd8ff 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.asm @@ -177,7 +177,7 @@ CVDUMODE .EQU CVDUMODE_ECB ; CVDU: CVDU MODE: CVDUMODE_[NONE|ECB|MBC] CVDUMON .EQU CVDUMON_EGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] @@ -288,7 +288,7 @@ SNMODE .EQU SNMODE_VGM ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; @@ -296,5 +296,5 @@ DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM) DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS DMAMODE .EQU DMAMODE_Z180 ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC|DUO) ; -YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER +YM2612ENABLE .EQU FALSE ; YM2612: ENABLE YM2612 DRIVER VGMBASE .EQU $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76489s/CTC) diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index a54bb422..2c02052b 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.asm @@ -192,7 +192,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -327,7 +327,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_rcz280.asm b/Source/HBIOS/cfg_rcz280.asm index a4b55f5e..2817b7fa 100644 --- a/Source/HBIOS/cfg_rcz280.asm +++ b/Source/HBIOS/cfg_rcz280.asm @@ -196,7 +196,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -331,7 +331,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index 4ba87bd7..b0ac1456 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.asm @@ -191,7 +191,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -326,7 +326,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_rph.asm b/Source/HBIOS/cfg_rph.asm index 161bd06d..5ed992b7 100644 --- a/Source/HBIOS/cfg_rph.asm +++ b/Source/HBIOS/cfg_rph.asm @@ -166,7 +166,7 @@ GDCENABLE .EQU TRUE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) GDCMODE .EQU GDCMODE_RPH ; GDC: GDC MODE: GDCMODE_[NONE|ECB|RPH] GDCMON .EQU GDCMON_EGA ; GDC: GDC MONITOR SETUP: GDCMON_[NONE|CGA|EGA] TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] @@ -277,7 +277,7 @@ SNMODE .EQU SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_s100.asm b/Source/HBIOS/cfg_s100.asm index 9054bca1..cd424184 100644 --- a/Source/HBIOS/cfg_s100.asm +++ b/Source/HBIOS/cfg_s100.asm @@ -186,7 +186,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -311,7 +311,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 2e3b4590..40fe08f0 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -165,7 +165,7 @@ CVDUMODE .EQU CVDUMODE_ECB ; CVDU: CVDU MODE: CVDUMODE_[NONE|ECB|MBC] CVDUMON .EQU CVDUMON_EGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] @@ -277,7 +277,7 @@ SNMODE .EQU SNMODE_VGM ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index a67633cf..794354ca 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/Source/HBIOS/cfg_scz180.asm @@ -186,7 +186,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -321,7 +321,7 @@ SNMODE .EQU SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM] ; AY38910ENABLE .EQU FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD -AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_z80retro.asm b/Source/HBIOS/cfg_z80retro.asm index 133eda3d..6dc541aa 100644 --- a/Source/HBIOS/cfg_z80retro.asm +++ b/Source/HBIOS/cfg_z80retro.asm @@ -168,7 +168,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index ebffc955..9bda4cb0 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/Source/HBIOS/cfg_zeta.asm @@ -138,7 +138,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) GDCENABLE .EQU FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO] +TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO|DUO] TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) @@ -149,7 +149,7 @@ MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .EQU TRUE ; MD: ENABLE ROM DISK MDRAM .EQU TRUE ; MD: ENABLE RAM DISK MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) -MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM +MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM ; FDENABLE .EQU TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) FDMODE .EQU FDMODE_ZETA ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC] diff --git a/Source/HBIOS/pcf.asm b/Source/HBIOS/pcf.asm index ab17f85c..92023bc9 100644 --- a/Source/HBIOS/pcf.asm +++ b/Source/HBIOS/pcf.asm @@ -44,7 +44,7 @@ PCF_IDLE_ .EQU (PCF_PIN | PCF_ES0 | PCF_ACK) ; STATUS REGISTER BITS ; ;PCF_PIN .EQU 10000000B -PCF_INI .EQU 01000000B ; 1 if not initialized +PCF_INI .EQU 01000000B ; 1 if not initialized PCF_STS .EQU 00100000B PCF_BER .EQU 00010000B PCF_AD0 .EQU 00001000B @@ -53,14 +53,14 @@ PCF_AAS .EQU 00000100B PCF_LAB .EQU 00000010B PCF_BB .EQU 00000001B ; -; THE PCF8584 TARGETS A TOP I2C CLOCK SPEED OF 90KHZ AND SUPPORTS DIVIDERS FOR +; THE PCF8584 TARGETS A TOP I2C CLOCK SPEED OF 90KHZ AND SUPPORTS DIVIDERS FOR ; 3, 4.43, 6, 8 AND 12MHZ TO ACHEIVE THIS. ; ; +--------------------------------------------------------------------------------------------+ ; | div/clk | 2MHz | 4MHz | 6MHz | 7.38Mhz | 10MHz | 12MHz | 16MHz | 18.432Mhz | 20MHz | ; +----------------------------------------------------------------------------------+---------+ ; | 3MHz | 60Khz | 120Khz | | | | | | | | -; | 4.43MHz | | 81Khz | | | | | | | | +; | 4.43MHz | | 81Khz | | | | | | | | ; | 6MHz | | | 90Khz | 110Khz | | | | | | ; | 8MHz | | | | 83Khz | 112Khz | | | | | ; | 12MHz | | | | | | 90Khz | 120Khz | 138Khz | 150Khz | @@ -116,21 +116,21 @@ PCF_INIT: ; I2C_OUTB = LD A,* | OUT (PCF_RS0),A ; SET_PCF -= LD A,* | OUT (PCF_RS1),A ; GET_PCF = IN A,(PCF_RS1) -; +; ;----------------------------------------------------------------------------- PCF_START: - LD A,PCF_START_ + LD A,PCF_START_ OUT (PCF_RS1),A RET ; ;----------------------------------------------------------------------------- PCF_REPSTART: - LD A,PCF_REPSTART_ + LD A,PCF_REPSTART_ OUT (PCF_RS1),A RET ; ;----------------------------------------------------------------------------- -PCF_STOP: +PCF_STOP: LD A,PCF_STOP_ OUT (PCF_RS1),A RET @@ -138,7 +138,7 @@ PCF_STOP: ;----------------------------------------------------------------------------- ; PCF_INITDEV: - LD A,PCF_PIN ; S1=80H: S0 SELECTED, SERIAL + LD A,PCF_PIN ; S1=80H: S0 SELECTED, SERIAL OUT (PCF_RS1),A ; INTERFACE OFF NOP IN A,(PCF_RS1) ; CHECK TO SEE S1 NOW USED AS R/W @@ -147,7 +147,7 @@ PCF_INITDEV: AND 07FH ; CTRL. PCF8584 DOES THAT WHEN ESO JR NZ,PCF_FAIL ; IS ZERO ; - LD A,PCF_OWN ; LOAD OWN ADDRESS IN S0, + LD A,PCF_OWN ; LOAD OWN ADDRESS IN S0, OUT (PCF_RS0),A ; EFFECTIVE ADDRESS IS (OWN <<1) NOP IN A,(PCF_RS0) ; CHECK IT IS REALLY WRITTEN @@ -177,9 +177,9 @@ PCF_INITDEV: JP NZ,PCF_CLKERR ; LD A,PCF_IDLE_ - OUT (PCF_RS1),A + OUT (PCF_RS1),A NOP - IN A,(PCF_RS1) + IN A,(PCF_RS1) ;CALL PC_SPACE ;CALL PRTHEXBYTE CP +(PCF_PIN | PCF_BB) @@ -195,21 +195,21 @@ PCF_FAIL: RET ; PCF_FAIL_FLAG: - .DB 0 + .DB 0 ; ;----------------------------------------------------------------------------- PCF_HANDLE_LAB: ; - LD A,PCF_PIN - OUT (PCF_RS1),A - LD A,PCF_ES0 + LD A,PCF_PIN + OUT (PCF_RS1),A + LD A,PCF_ES0 OUT (PCF_RS1),A ; LD HL,PCF_LABDLY PCF_LABLP: LD A,H OR L - DEC HL + DEC HL JR NZ,PCF_LABLP ; IN A,(PCF_RS1) @@ -226,7 +226,7 @@ PCF_WAIT_FOR_PIN: PUSH HL LD HL,PCF_PINTO ; SET TIMEOUT VALUE -PCF_WFP0: +PCF_WFP0: IN A,(PCF_RS1) ; GET BUS LD (PCF_STATUS),A ; STATUS LD B,A @@ -236,7 +236,7 @@ PCF_WFP0: OR L JR Z,PCF_WFP1 ; YES WE HAVE, GO ACTION IT - LD A,B ; + LD A,B ; AND PCF_PIN ; IS TRANSMISSION COMPLETE? JR NZ,PCF_WFP0 ; KEEP ASKING IF NOT OR POP HL ; YES COMPLETE (PIN=0) RETURN WITH ZERO @@ -244,14 +244,14 @@ PCF_WFP0: PCF_WFP1: LD A,B ; DID WE LOSE ARBITRATION? AND PCF_LAB ; IF A=0 THEN NO - CPL - JR NZ,PCF_WFP2 ; NO + CPL + JR NZ,PCF_WFP2 ; NO CALL PCF_HANDLE_LAB ; YES GO HANDLE IT LD (PCF_STATUS),A XOR A ; RETURN NZ, A=01H INC A PCF_WFP2: - POP HL ; RET NZ, A=FF IF TIMEOUT + POP HL ; RET NZ, A=FF IF TIMEOUT RET ; PCF_STATUS .DB 00H @@ -270,12 +270,12 @@ PCF_WFA0: IN A,(PCF_RS1) ; READ PIN LD (PCF_STATUS),A ; STATUS LD B,A -; +; DEC HL ; SEE IF WE HAVE TIMED LD A,H ; OUT WAITING FOR PIN OR L ; EXIT IF JR Z,PCF_WFA1 ; WE HAVE -; +; LD A,B ; OTHERWISE KEEP LOOPING AND PCF_PIN ; UNTIL WE GET PIN JR NZ,PCF_WFA0 ; OR TIMEOUT @@ -291,7 +291,7 @@ PCF_WFA1: PCF_WFA2: POP HL ; EXIT WITH NZ = FF RET -; +; ;-------------------------------------------------------------------------------- ; ; HL POINTS TO DATA @@ -321,7 +321,7 @@ PCF_RB1: ; IS THIS THE SECOND TO LAST BYTE TO GO? - PUSH DE ; SAVE COUNT + PUSH DE ; SAVE COUNT DEC DE ; COUNT (DE) = NUMBER OF BYTES TO READ LESS 1 EX DE,HL ; SAVE POINTER, PUT COUNT IN DE XOR A ; CLEAR CARRY FLAG @@ -333,7 +333,7 @@ PCF_RB1: ; NZ = NO IT ISN'T JR NZ,PCF_RB4 ; -PCF_RB4:LD A,B ; IF FIRST READ DO A DUMMY +PCF_RB4:LD A,B ; IF FIRST READ DO A DUMMY OR C ; READ OTHERWISE READ AND SAVE JR NZ,PCF_RB5 @@ -401,8 +401,8 @@ PCF_WFBB0: LD A,H OR L JR NZ,PCF_WFBB0 ; REPEAT IF NOT TIMED OUT - CPL ; RET NZ IF TIMEOUT - RET + CPL ; RET NZ IF TIMEOUT + RET ; ;----------------------------------------------------------------------------- ; DISPLAY ERROR MESSAGES @@ -416,7 +416,7 @@ PCF_INIERR: PUSH HL LD HL,PCF_NOPCF JR PCF_PRTERR -; +; PCF_SETERR: PUSH HL LD HL,PCF_WRTFAIL @@ -426,17 +426,17 @@ PCF_REGERR: PUSH HL LD HL,PCF_REGFAIL JR PCF_PRTERR -; +; PCF_CLKERR: PUSH HL LD HL,PCF_CLKFAIL JR PCF_PRTERR -; +; PCF_IDLERR: PUSH HL LD HL,PCF_IDLFAIL - JR PCF_PRTERR -; + JR PCF_PRTERR +; PCF_ACKERR: PUSH HL LD HL,PCF_ACKFAIL @@ -470,7 +470,7 @@ PCF_BBERR: PCF_PRTERR: CALL PRTSTR ; CALL NEWLINE - POP HL + POP HL RET ; ;----------------------------------------------------------------------------- @@ -494,7 +494,7 @@ PCF_DBG: POP DE POP AF RET -PCF_DBGF: +PCF_DBGF: .DB 0 ; DEBUG STAGE COUNTER #ENDIF ; diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 9612a00a..2219e62e 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -214,6 +214,7 @@ AYMODE_RCZ180 .EQU 4 ; RCBUS SOUND MODULE BY ED BRINDLEY ON Z180 AYMODE_MSX .EQU 5 ; RCBUS SOUND MODULE REV6 BY ED BRINDLEY ON Z80/Z180 AT MSX PORTS AYMODE_LINC .EQU 6 ; LINC Z50 AY SOUND CARD AYMODE_MBC .EQU 7 ; MBC SOUND BOARD +AYMODE_DUO .EQU 8 ; MBC SOUND BOARD ; ; SN SOUND CHIP MODE SELECTIONS ; @@ -231,6 +232,7 @@ TMSMODE_MSX9958 .EQU 4 ; MSX PORTS, V9958 CHIP TMSMODE_MSXKBD .EQU 5 ; MSX PORTS + PS2 KEYBOARD TMSMODE_MBC .EQU 6 ; MBC V9938/58 VIDEO BOARD TMSMODE_COLECO .EQU 7 ; COLECOVISION PORT MAPPING +TMSMODE_DUO .EQU 8 ; COLECOVISION PORT MAPPING ; ; CVDU VIDEO MODE SELECTIONS ; @@ -980,7 +982,7 @@ INT_SIO1 .EQU 14 ; ZILOG SIO 1, CHANNEL A & B ; ; MBC IM2 PINHEADER INTERRUPTS ; -;INT_IM2PH0 .EQU 0 +;INT_IM2PH0 .EQU 0 ;INT_IM2PH1 .EQU 1 ;INT_IM2PH2 .EQU 2 ;INT_IM2PH3 .EQU 3 @@ -1026,7 +1028,7 @@ INT_CTC0D .EQU 15 ; ZILOG CTC 0, CHANNEL D ;INT_IM2PH7 .EQU 7 ; ; DUO Z80 IM2 INTERRUPTS -; +; INT_UART0 .EQU 7 ; UART 0 INT_UART1 .EQU 6 ; UART 1 ????? INT_CTC0A .EQU 0 ; ZILOG CTC 0, CHANNEL A diff --git a/Source/HBIOS/tms.asm b/Source/HBIOS/tms.asm index 18de2d14..4d47981d 100644 --- a/Source/HBIOS/tms.asm +++ b/Source/HBIOS/tms.asm @@ -5,6 +5,7 @@ ; UPDATED BY: WAYNE WARTHEN -- 4/7/2013 ; UPDATED BY: DEAN NETHERTON -- 5/26/2021 - V9958 SUPPORT ; UPDATED BY: JOSE L. COLLADO -- 11/15/2023 - MEMORY MAP CHANGES +; UPDATED BY: DAN WERNER -- 2/11/2024 - DUODYNE SUPPORT ;====================================================================== ; ; TODO: @@ -111,6 +112,19 @@ TMS_KBDDATA .EQU $E2 ; KBD CTLR DATA PORT TMS_KBDST .EQU $E3 ; KBD CTLR STATUS/CMD PORT .ECHO "MBC" #ENDIF + +#IF (TMSMODE == TMSMODE_DUO) +TMS_DATREG .EQU $A0 ; READ/WRITE DATA +TMS_CMDREG .EQU $A1 ; READ STATUS / WRITE REG SEL +TMS_ACR .EQU $A6 ; AUX CONTROL REGISTER +TMS_PPIA .EQU 0 ; PPI PORT A +TMS_PPIB .EQU 0 ; PPI PORT B +TMS_PPIC .EQU 0 ; PPI PORT C +TMS_PPIX .EQU 0 ; PPI CONTROL PORT +TMS_KBDDATA .EQU $E2 ; KBD CTLR DATA PORT +TMS_KBDST .EQU $E3 ; KBD CTLR STATUS/CMD PORT + .ECHO "MBC" +#ENDIF ; .ECHO ", IO=" .ECHO TMS_DATREG @@ -121,7 +135,7 @@ TMS_KBDST .EQU $E3 ; KBD CTLR STATUS/CMD PORT ; TMS_ROWS .EQU 24 ; -#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC)) +#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) TMS_FNTVADDR .EQU $1000 ; VRAM ADDRESS OF FONT DATA TMS_FNTSIZE .EQU 8*256 ; ### JLC Mod for JBL compatibility ### = 8x8 Font 256 Chars TMS_CHRVADDR .EQU $0000 ; VRAM ADDRESS OF CHAR SCREEN DATA (NEW CONSTANT) = REG2 * $400 @@ -157,7 +171,7 @@ PPKENABLE .SET TRUE ; INCLUDE KBD KEYBOARD SUPPORT ;#DEFINE TMS_IODELAY NOP \ NOP \ NOP \ NOP \ NOP ; 20 W/S ### JLC Mod for Clock/2 (9 MHz) ### #ELSE ; BELOW WAS TUNED FOR SBC AT 8MHZ - #IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC)) + #IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) #DEFINE TMS_IODELAY NOP \ NOP \ NOP \ NOP \ NOP \ NOP \ NOP ; V9958 NEEDS AT WORST CASE, APPROX 4us (28T) DELAY BETWEEN I/O (WHEN IN TEXT MODE) #ELSE #DEFINE TMS_IODELAY NOP \ NOP ; 8 W/S @@ -181,7 +195,7 @@ TMS_INIT: CALL TMS_Z180IO #ENDIF ; -#IF ((TMSMODE == TMSMODE_SCG) | (TMSMODE == TMSMODE_MBC)) +#IF ((TMSMODE == TMSMODE_SCG) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) LD A,$FF OUT (TMS_ACR),A ; INIT AUX CONTROL REG #ENDIF @@ -189,7 +203,7 @@ TMS_INIT: CALL NEWLINE ; FORMATTING PRTS("TMS: MODE=$") -#IF ((TMSMODE == TMSMODE_MBC)) +#IF ((TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) LD A,$FE OUT (TMS_ACR),A ; INIT AUX CONTROL REG #ENDIF @@ -203,6 +217,9 @@ TMS_INIT: #IF (TMSMODE == TMSMODE_MBC) PRTS("MBC$") #ENDIF +#IF (TMSMODE == TMSMODE_DUO) + PRTS("DUO$") +#ENDIF #IF (TMSMODE == TMSMODE_N8) PRTS("N8$") #ENDIF @@ -292,7 +309,7 @@ TMS_FNTBL: .DW PPK_FLUSH .DW PPK_READ #ELSE - #IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC)) + #IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC) ) .DW KBD_STAT .DW KBD_FLUSH .DW KBD_READ @@ -527,7 +544,7 @@ TMS_SET: ;---------------------------------------------------------------------- ; TMS_WR: -#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC)) +#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) ; CLEAR R#14 FOR V9958 XOR A OUT (TMS_CMDREG), A @@ -621,7 +638,7 @@ TMS_CRTINIT2: DJNZ TMS_CRTINIT2 ; LOOP ; ; ENABLE WAIT SIGNAL IF 9938/58 -#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC)) +#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) LD C,25 ; REGISTER 25 LD A,%00000100 ; ONLY WTE BIT SET CALL TMS_SET ; DO IT @@ -1036,7 +1053,7 @@ TMS_IDAT: .DB TMS_PPIC ; PPI PORT C .DB TMS_PPIX ; PPI CONTROL PORT #ENDIF -#IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC)) +#IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) .DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER .DB TMS_KBDST ; 8242 CMD/STATUS PORT .DB TMS_KBDDATA ; 8242 DATA PORT @@ -1088,7 +1105,7 @@ TMS_IDAT: ; 5S Fifth sprite (not displayed) detected. Value in FS* is valid. ; INT Set at each screen update, used for interrupts. ; -#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC)) +#IF ((TMSMODE == TMSMODE_MSX9958) | (TMSMODE == TMSMODE_MBC) | (TMSMODE == TMSMODE_DUO)) ; ; NOTE: YAMAHA 9938/58 DOCUMENTATION SAYS R3 IS SAME AS 9918 (ADR >> 10), ; BUT THIS SEEMS TO BE WRONG AND CORRECTLY DOCUMENTED AT