From 4f25cf13660aae1a60aa1549f19d8a7366b79362 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 25 Mar 2022 15:48:06 -0700 Subject: [PATCH] Miscellaneous - Add hardware detect and initialization code to Centronics driver. - Fix .gitignore to reflect subdirectory name changes under Tools/cpm/. - Bump version number in TUNE to reflect Dan's changes. - Detect Centronics hardware in MBC configuration by default. --- .gitignore | 2 +- Source/Apps/Tune/tune.asm | 3 ++- Source/HBIOS/cen.asm | 34 +++++++++++++++++++++++++--------- Source/HBIOS/cfg_mbc.asm | 6 +++--- Source/ver.inc | 2 +- Source/ver.lib | 2 +- Tools/cpm/bin80/ASM.COM | Bin 0 -> 8192 bytes 7 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 Tools/cpm/bin80/ASM.COM diff --git a/.gitignore b/.gitignore index bb8e3c86..74ad88cc 100644 --- a/.gitignore +++ b/.gitignore @@ -96,7 +96,7 @@ Tools/unix/zx/zx !Source/ZRC/*.bin !Source/ZZR/*.bin !Source/ZZR/*.hex -!Tools/cpm/bin/* +!Tools/cpm/** !Tools/unix/zx/* !Tools/zx/* diff --git a/Source/Apps/Tune/tune.asm b/Source/Apps/Tune/tune.asm index 4659f556..27b07723 100644 --- a/Source/Apps/Tune/tune.asm +++ b/Source/Apps/Tune/tune.asm @@ -44,6 +44,7 @@ ; 2020-09-03 [E?B] Add support for Ed Brindley YM/AY Sound Card v6 ; 2021-08-13 [WBW] Add support for LiNC Z50 Sound Card ; 2021-08-17 [WBW] When playing via HBIOS, call BF_SNDRESET at end +; 2022-03-20 [DDW] Add support for MBC PSG module ;_______________________________________________________________________________ ; ; ToDo: @@ -653,7 +654,7 @@ TMP .DB 0 ; work around use of undocumented Z80 HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN -MSGBAN .DB "Tune Player for RomWBW v3.4, 17-Aug-2021",0 +MSGBAN .DB "Tune Player for RomWBW v3.5, 20-Mar-2022",0 MSGUSE .DB "Copyright (C) 2021, Wayne Warthen, GNU GPL v3",13,10 .DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10 .DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10 diff --git a/Source/HBIOS/cen.asm b/Source/HBIOS/cen.asm index 4cceeca1..834fa8c6 100644 --- a/Source/HBIOS/cen.asm +++ b/Source/HBIOS/cen.asm @@ -134,7 +134,7 @@ CEN_IN: ; BYTE OUTPUT ; CEN_OUT: - CALL CEN_OST ; READY FOR CHAR? + CALL CEN_OST ; READY TO SEND? JR Z,CEN_OUT ; LOOP IF NOT ; *** ADD CODE TO OUTPUT BYTE *** XOR A ; SIGNAL SUCCESS @@ -166,9 +166,15 @@ CEN_INITDEV: ; PREINIT ABOVE. PREINIT IS NOT ALLOWED TO ENABLE INTS! ; CEN_INITDEVX: -; - ; *** ADD CODE TO INITIALIZE DEVICE *** -; + ; *** NOT SURE THIS IS RIGHT *** + LD A,(IY+3) + LD C,A ; PORT 0 (DATA) + XOR A ; CLEAR ACCUM + OUT (C),A ; SEND IT + INC C ; BUMP TO + INC C ; ... PORT 2 + LD A,%11000000 ; RESET, LEDS OFF + OUT (C),A ; SEND IT XOR A ; SIGNAL SUCCESS RET ; RETURN ; @@ -195,6 +201,7 @@ CEN_DEVICE: ; CEN_DETECT: LD A,(IY+3) ; BASE PORT ADDRESS + ADD A,2 ; USE PORT 2 FOR DETECT LD C,A ; PUT IN C FOR I/O CALL CEN_DETECT2 ; CHECK IT JR Z,CEN_DETECT1 ; FOUND IT, RECORD IT @@ -208,9 +215,18 @@ CEN_DETECT1: ; CEN_DETECT2: ; LOOK FOR CEN AT PORT ADDRESS IN C - ; *** ADD CODE TO DETECT DEVICE *** - OR $FF ; TEMP SET TO NOT PRESENT - RET ; RETURN RESULT, Z = CHIP FOUND + XOR A ; DEFAULT VALUE + OUT (C),A ; SEND IT + IN A,(C) ; READ IT + AND %11000000 ; ISOLATE STATUS BITS + CP %00000000 ; CORRECT VALUE? + RET NZ ; IF NOT, RETURN + LD A,%11000000 ; STATUS BITS ON (LEDS OFF) + OUT (C),A ; SEND IT + IN A,(C) ; READ IT + AND %11000000 ; ISOLATE STATUS BITS + CP %11000000 ; CORRECT VALUE? + RET ; RETURN (ZF SET CORRECTLY) ; ; ; @@ -249,10 +265,10 @@ CEN_PRTCFG: ; CEN_TYPE_MAP: .DW CEN_STR_NONE - .DW CEN_STR_CEN + .DW CEN_STR_MBC ; CEN_STR_NONE .DB "$" -CEN_STR_CEN .DB "MBC$" +CEN_STR_MBC .DB "MBC$" ; ; WORKING VARIABLES ; diff --git a/Source/HBIOS/cfg_mbc.asm b/Source/HBIOS/cfg_mbc.asm index d025d429..0158e09f 100644 --- a/Source/HBIOS/cfg_mbc.asm +++ b/Source/HBIOS/cfg_mbc.asm @@ -243,9 +243,9 @@ AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SNMODE .EQU SNMODE_NONE ; DRIVER MODE: SNMODE_[NONE|RC2014|VGM] ; -AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER -AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 -AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] +AY38910ENABLE .EQU TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER +AY_CLK .EQU 3579545 / 2 ; DEFAULT TO CPUOSC / 4 +AYMODE .EQU AYMODE_MBC ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC] ; SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/ver.inc b/Source/ver.inc index 052a21f4..c8a6de03 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 1 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.1.1-pre.164" +#DEFINE BIOSVER "3.1.1-pre.165" diff --git a/Source/ver.lib b/Source/ver.lib index bc0ff5e9..92cf12c1 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 1 rup equ 1 rtp equ 0 biosver macro - db "3.1.1-pre.164" + db "3.1.1-pre.165" endm diff --git a/Tools/cpm/bin80/ASM.COM b/Tools/cpm/bin80/ASM.COM new file mode 100644 index 0000000000000000000000000000000000000000..a63e5aec663546b7aac7b330a9ebe8be3a46ba33 GIT binary patch literal 8192 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