Browse Source

Merge pull request #389 from danwerner21/master

Add support for Duodyne media board
pull/393/head
Wayne Warthen 2 years ago
committed by GitHub
parent
commit
c1d7a41c82
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      Source/Apps/Test/Makefile
  2. 6
      Source/Apps/Test/sound/ay-test.asm
  3. 2
      Source/Apps/Tune/tune.asm
  4. 93
      Source/HBIOS/ay38910.asm
  5. 8
      Source/HBIOS/cfg_duo.asm
  6. 4
      Source/HBIOS/cfg_dyno.asm
  7. 4
      Source/HBIOS/cfg_epitx.asm
  8. 4
      Source/HBIOS/cfg_heath.asm
  9. 4
      Source/HBIOS/cfg_master.asm
  10. 4
      Source/HBIOS/cfg_mbc.asm
  11. 6
      Source/HBIOS/cfg_mk4.asm
  12. 4
      Source/HBIOS/cfg_mon.asm
  13. 6
      Source/HBIOS/cfg_n8.asm
  14. 4
      Source/HBIOS/cfg_rcz180.asm
  15. 4
      Source/HBIOS/cfg_rcz280.asm
  16. 4
      Source/HBIOS/cfg_rcz80.asm
  17. 4
      Source/HBIOS/cfg_rph.asm
  18. 4
      Source/HBIOS/cfg_s100.asm
  19. 4
      Source/HBIOS/cfg_sbc.asm
  20. 4
      Source/HBIOS/cfg_scz180.asm
  21. 2
      Source/HBIOS/cfg_z80retro.asm
  22. 4
      Source/HBIOS/cfg_zeta.asm
  23. 70
      Source/HBIOS/pcf.asm
  24. 6
      Source/HBIOS/std.asm
  25. 35
      Source/HBIOS/tms.asm

2
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

6
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
;

2
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

93
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 ;

8
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)
;

4
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)
;

4
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)
;

4
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)
;

4
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)
;

4
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)
;

6
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)

4
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)
;

6
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)

4
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)
;

4
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)
;

4
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)
;

4
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)
;

4
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)
;

4
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)
;

4
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)
;

2
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)

4
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]

70
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
;

6
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

35
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

Loading…
Cancel
Save