Browse Source

Merge pull request #71 from wwarthen/master

Resync
pull/475/head
b1ackmai1er 1 year ago
committed by GitHub
parent
commit
fa8df65b50
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. BIN
      Doc/RomWBW Applications.pdf
  2. BIN
      Doc/RomWBW Disk Catalog.pdf
  3. BIN
      Doc/RomWBW Errata.pdf
  4. BIN
      Doc/RomWBW System Guide.pdf
  5. BIN
      Doc/RomWBW User Guide.pdf
  6. 2
      ReadMe.md
  7. 2
      ReadMe.txt
  8. 22
      Source/Apps/Tune/cli.inc
  9. 41
      Source/Apps/Tune/tune.asm
  10. 18
      Source/Doc/Applications.md
  11. 6
      Source/HBIOS/hbios.asm
  12. 39
      Source/HBIOS/kbd.asm
  13. 20
      Source/HBIOS/ps2iface.inc
  14. 4
      Source/HBIOS/tms.asm
  15. 2
      Source/ver.inc
  16. 2
      Source/ver.lib

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Errata.pdf

Binary file not shown.

BIN
Doc/RomWBW System Guide.pdf

Binary file not shown.

BIN
Doc/RomWBW User Guide.pdf

Binary file not shown.

2
ReadMe.md

@ -3,7 +3,7 @@
**RomWBW ReadMe** \ **RomWBW ReadMe** \
Version 3.5 \ Version 3.5 \
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
08 Dec 2024
12 Dec 2024
# Overview # Overview

2
ReadMe.txt

@ -1,6 +1,6 @@
RomWBW ReadMe RomWBW ReadMe
Wayne Warthen (wwarthen@gmail.com) Wayne Warthen (wwarthen@gmail.com)
08 Dec 2024
12 Dec 2024

22
Source/Apps/Tune/cli.inc

@ -23,6 +23,26 @@ CLI_HAVE_HBIOS_SWITCH1 ; NOT MATCHED --HBIOS
LD (HBIOSMD), A LD (HBIOSMD), A
RET RET
CLI_PORTS:
LD HL, CLIARGS ; TEST FOR -MSX ON COMMAND LINE
LD DE, OPT_MSX
CALL STRINDEX
JR NZ, CLI_PORTS1
LD A,PORTS_MSX
JR CLI_PORTS_Z
CLI_PORTS1:
LD HL, CLIARGS ; TEST FOR -RC ON COMMAND LINE
LD DE, OPT_RC
CALL STRINDEX
JR NZ, CLI_PORTS2
LD A,PORTS_RC
JR CLI_PORTS_Z
CLI_PORTS2:
LD A,PORTS_AUTO ; USE AUTO PORT SELECTION
CLI_PORTS_Z:
LD (USEPORTS),A ; SAVE PORTS SELECTION
RET
CLI_ABRT_UNSUPPFILTYP: CLI_ABRT_UNSUPPFILTYP:
PUSH AF PUSH AF
ISHBIOS ISHBIOS
@ -79,6 +99,8 @@ CLI_OCTAVE_ADJST5:
LD (OCTAVEADJ), A LD (OCTAVEADJ), A
RET RET
OPT_MSX .DB "-MSX", 0 ; USE MSX PORTS
OPT_RC .DB "-RC", 0 ; USE RC PORTS
HBIOSOPT: .DB "--HBIOS", 0 HBIOSOPT: .DB "--HBIOS", 0
DOWN1 .DB "-t1", 0 ; DOWN AN OCTAVE DOWN1 .DB "-t1", 0 ; DOWN AN OCTAVE
DOWN2 .DB "-t2", 0 ; DOWN TWO OCTAVE DOWN2 .DB "-t2", 0 ; DOWN TWO OCTAVE

41
Source/Apps/Tune/tune.asm

@ -52,6 +52,7 @@
; 2024-07-08 [WBW] Add support for Les Bird's Graphics, Sound, Joystick ; 2024-07-08 [WBW] Add support for Les Bird's Graphics, Sound, Joystick
; 2024-07-11 [WBW] Updated, Les Bird's module now uses same settings as EB6 ; 2024-07-11 [WBW] Updated, Les Bird's module now uses same settings as EB6
; 2024-09-17 [WBW] Add support for HEATH H8 with Les Bird's MSX Card ; 2024-09-17 [WBW] Add support for HEATH H8 with Les Bird's MSX Card
; 2024-12-12 [WBW] Add options to force standard MSX or RC ports
;_______________________________________________________________________________ ;_______________________________________________________________________________
; ;
; ToDo: ; ToDo:
@ -73,6 +74,10 @@ TYPPT2 .EQU 1 ; FILTYP value for PT2 sound file
TYPPT3 .EQU 2 ; FILTYP value for PT3 sound file TYPPT3 .EQU 2 ; FILTYP value for PT3 sound file
TYPMYM .EQU 3 ; FILTYP value for MYM sound file TYPMYM .EQU 3 ; FILTYP value for MYM sound file
; ;
PORTS_AUTO .EQU 0 ; AUTO select audio chip ports
PORTS_MSX .EQU 1 ; force MSX audio chip ports
PORTS_RC .EQU 2 ; force RCBUS audio chip ports
;
; HIGH SPEED CPU CONTROL ; HIGH SPEED CPU CONTROL
; ;
SBCV2004 .EQU 0 ; ENABLE SBC-V2-004 HALF CLOCK DIVIDER SBCV2004 .EQU 0 ; ENABLE SBC-V2-004 HALF CLOCK DIVIDER
@ -106,6 +111,7 @@ Id .EQU 1 ; 5) Insert official identificator
PRTSTRDE(MSGBAN) ; Print to banner message PRTSTRDE(MSGBAN) ; Print to banner message
CALL CLI_ABRT_IF_OPT_FIRST CALL CLI_ABRT_IF_OPT_FIRST
CALL CLI_PORTS
CALL CLI_HAVE_HBIOS_SWITCH CALL CLI_HAVE_HBIOS_SWITCH
CALL CLI_OCTAVE_ADJST CALL CLI_OCTAVE_ADJST
JP CONTINUE JP CONTINUE
@ -125,6 +131,22 @@ CONTINUE:
OR A OR A
JR NZ, TSTTIMER ; skip hardware check if using hbios JR NZ, TSTTIMER ; skip hardware check if using hbios
LD A, (USEPORTS) ; get ports option
LD HL,MSXPORTS ; assume MSX
CP PORTS_MSX ; use MSX?
JR Z,FORCE
LD HL,RCPORTS ; asssume RC
CP PORTS_RC ; use RC?
JR Z,FORCE
JR AUTOSEL ; otherwise do auto select
FORCE:
LD BC,CFGSIZ ; Size of one entry
LD DE,CFG ; Active config structure
LDIR ; Update active config structure
JR MAT ; Continue
AUTOSEL:
LD HL,CFGTBL ; Point to start of config table LD HL,CFGTBL ; Point to start of config table
CFGSEL: CFGSEL:
LD A,$FF ; End of table marker LD A,$FF ; End of table marker
@ -646,6 +668,17 @@ CFGSIZ .EQU $ - CFGTBL
; ;
.DB $FF ; END OF TABLE MARKER .DB $FF ; END OF TABLE MARKER
; ;
; The following are table entries (like above), but not part of auto
; detection searching. They are selected byh command line options.
;
MSXPORTS:
.DB $FF, $A0, $A1, $FF, $FF, $FF, $FF ; GENERIC MSX
.DW HWSTR_MSX
;
RCPORTS:
.DB $FF, $D8, $D0, $FF, $FF, $FF, $FF ; GENERIC RC
.DW HWSTR_RC
;
CFG: ; ACTIVE CONFIG VALUES (FROM SELECTED CFGTBL ENTRY) CFG: ; ACTIVE CONFIG VALUES (FROM SELECTED CFGTBL ENTRY)
PLT .DB 0 ; RomWBW HBIOS platform id PLT .DB 0 ; RomWBW HBIOS platform id
PORTS: PORTS:
@ -672,11 +705,13 @@ TMP .DB 0 ; work around use of undocumented Z80
HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE
OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN
MSGBAN .DB "Tune Player for RomWBW v3.11, 17-Sep-2024",0
USEPORTS .DB 0 ; AUDIO CHIP PORT SELECTION MODE
MSGBAN .DB "Tune Player for RomWBW v3.12, 12-Dec-2024",0
MSGUSE .DB "Copyright (C) 2024, Wayne Warthen, GNU GPL v3",13,10 MSGUSE .DB "Copyright (C) 2024, Wayne Warthen, GNU GPL v3",13,10
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10 .DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10
.DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10 .DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [--hbios] [+tn|-tn]",0
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [-msx|-rc] [--hbios] [+tn|-tn]",0
MSGBIO .DB "Incompatible BIOS or version, " MSGBIO .DB "Incompatible BIOS or version, "
.DB "HBIOS v", '0' + RMJ, ".", '0' + RMN, " required",0 .DB "HBIOS v", '0' + RMJ, ".", '0' + RMN, " required",0
MSGPLT .DB "Hardware error, system not supported!",0 MSGPLT .DB "Hardware error, system not supported!",0
@ -700,6 +735,8 @@ HWSTR_MBC .DB "NHYODYNE Sound Module",0
HWSTR_DUO .DB "DUODYNE Sound Module",0 HWSTR_DUO .DB "DUODYNE Sound Module",0
HWSTR_NABU .DB "NABU Onboard Sound",0 HWSTR_NABU .DB "NABU Onboard Sound",0
HWSTR_HEATH .DB "HEATH H8 MSX Module",0 HWSTR_HEATH .DB "HEATH H8 MSX Module",0
HWSTR_MSX .DB "MSX Standard Ports (A0H/A1H)",0
HWSTR_RC .DB "RCBus Standard Ports (D8H/D0H)",0
MSGUNSUP .db "MYM files not supported with HBIOS yet!\r\n", 0 MSGUNSUP .db "MYM files not supported with HBIOS yet!\r\n", 0

18
Source/Doc/Applications.md

@ -2224,6 +2224,10 @@ well known port addresses at startup. It will auto-configure itself
for the hardware found. If no hardware is detected, it will abort with for the hardware found. If no hardware is detected, it will abort with
an error message. an error message.
Some sound board hardware does not support automatic detection
(notably the Why-Em-Ulator). You may force the use of standard
MSX or RC Bus standard ports using the `-MSX` or `-RC` options.
On Z180 systems, I/O wait states are added when writing to the sound On Z180 systems, I/O wait states are added when writing to the sound
chip to avoid exceeding its speed limitations. On Z80 systems, you chip to avoid exceeding its speed limitations. On Z80 systems, you
will need to ensure that the CPU clock speed of your system does not will need to ensure that the CPU clock speed of your system does not
@ -2239,18 +2243,20 @@ AY-3-8910 or YM2149 chips, or a compatibility layer thru HBIOS supporting
the SN76489 chip. the SN76489 chip.
By default the application will attempt to interface directly to the sound By default the application will attempt to interface directly to the sound
chip. The optional argument `--hbios` supplied after the filename, will
chip. The optional argument `--HBIOS` supplied after the filename, will
enable the application to use the HBIOS sound driver. enable the application to use the HBIOS sound driver.
The HBIOS mode also support other switch as described below. The HBIOS mode also support other switch as described below.
| Switch | Description | | Switch | Description |
| ----------- | ------------------------------------------------------ | | ----------- | ------------------------------------------------------ |
| `--hbios` | Utilise HBIOS' sound driver |
| `+t1` | Play tune an octave higher |
| `+t2` | Play tune two octaves higher |
| `-t1` | Play tune an octave lower |
| `-t2` | Play tune two octaves lower |
| `-MSX` | Force use of MSX standard ports (A0H/A1H) |
| `-RC` | Force use of RCBus standard ports (D8H/D0H) |
| `--HBIOS` | Utilise HBIOS' sound driver |
| `+T1` | Play tune an octave higher |
| `+T2` | Play tune two octaves higher |
| `-T1` | Play tune an octave lower |
| `-T2` | Play tune two octaves lower |
All RomWBW operating system boot disks include a selection of sound All RomWBW operating system boot disks include a selection of sound
files in user area 3. files in user area 3.

6
Source/HBIOS/hbios.asm

@ -5318,9 +5318,9 @@ SYS_RESCOLD:
; ;
; TURN OFF SPURIOUS INTERRUPT SOURCES ; TURN OFF SPURIOUS INTERRUPT SOURCES
; ;
#IF ((INTMODE == 2) & KBDINTS))
CALL KBD_DEINIT
#ENDIF
;;;#IF ((INTMODE == 2) & KBDINTS))
;;; CALL KBD_DEINIT
;;;#ENDIF
#IFDEF APPBOOT #IFDEF APPBOOT
JP HB_RESTART JP HB_RESTART
#ELSE #ELSE

39
Source/HBIOS/kbd.asm

@ -76,6 +76,10 @@ KBD_IDLE .DB 0 ; IDLE COUNT
; 8242 CONTROLLER COMMANDS AND RESPONSES ; 8242 CONTROLLER COMMANDS AND RESPONSES
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
; ;
KBD_CON_DP1 .EQU $AD ; DISABLE PS2 PORT 1 (KEYBOARD)
KBD_CON_DP2 .EQU $A7 ; DISABLE PS2 PORT 2 (MOUSE)
KBD_CON_EP1 .EQU $AE ; ENABLE PS2 PORT 1 (KEYBOARD)
KBD_CON_EP2 .EQU $A8 ; ENABLE PS2 PORT 2 (MOUSE)
KBD_CON_WCR .EQU $60 ; WRITE TO COMMAND REGISTER. VALUE TO FOLLOW. KBD_CON_WCR .EQU $60 ; WRITE TO COMMAND REGISTER. VALUE TO FOLLOW.
KBD_CON_CST .EQU $AA ; CONTROLLER SELF TEST. RETURN FF IF CONTROLLER OK KBD_CON_CST .EQU $AA ; CONTROLLER SELF TEST. RETURN FF IF CONTROLLER OK
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
@ -94,6 +98,41 @@ KBD_CON_IOF .EQU $20 ; XLAT DISABLED, MOUSE DISABLED, NO INTS
#INCLUDE "ps2iface.inc" #INCLUDE "ps2iface.inc"
; ;
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
; KEYBOARD PRE-INITIALIZATION
;__________________________________________________________________________________________________
;
; TO BE CALLED PRIOR TO INITERRUPTS BEING ENABLED
; MUST BE CALLED FROM VIDEO DRIVER PREINIT WITH IY SET
; THIS PREVENTS INTRERRUPT ISSUES IF 8242 HAS INTERRUPTS ENABLED
;
; AT STARTUP. NOT USING IT FOR NOW BECAUSE IT IS NOT A PROBLEM IF
; YOU DON'T USE THE KEYBOARD DURING BOOT.
;
KBD_PREINIT:
;
#IF (KBDINTS)
; DISABLE DEVICES (KEYBOARD/MOUSE)
LD A,KBD_CON_DP1 ; DISABLE PORT 1 (KEYBOARD)
CALL KBD_PUTCMD ; SEND IT
LD A,KBD_CON_DP2 ; DISABLE PORT 2 (MOUSE)
CALL KBD_PUTCMD ; SEND IT
;
; FLUSH ANY PENDING OUTPUT
LD B,16 ; UP TO 16 BYTES MAY BE WAITING
KBD_PREINIT1:
CALL KBD_IN_P ; BLIND READ
DJNZ KBD_PREINIT1 ; AND LOOP
;
; DISABLE INTERRUPTS
LD A,KBD_CON_WCR ; SET COMMAND REGISTER
CALL KBD_PUTCMD ; SEND IT
LD A,KBD_CON_IOF ; XLAT DISABLED, MOUSE DISABLED, NO INTS
CALL KBD_PUTDATA ; SEND IT
;
#ENDIF
RET
;
;__________________________________________________________________________________________________
; KEYBOARD INITIALIZATION ; KEYBOARD INITIALIZATION
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
; ;

20
Source/HBIOS/ps2iface.inc

@ -58,16 +58,16 @@ KBD_INT:
; CALL KBDQDBG ; CALL KBDQDBG
; ;
RET RET
;__________________________________________________________________________________________________
; KEYBOARD DEINITIALIZATION
;__________________________________________________________________________________________________
;
KBD_DEINIT:
LD IY,(KBD_IDAT) ; SETUP PORT POINTER
LD A,KBD_CON_WCR ; LOAD WRITE COMMAND
CALL KBD_CMDOUT ; WRITE IT
LD A,KBD_CON_IOF ; LOAD DISABLE INTERRUPTS CFG
JP KBD_DTAOUT ; WRITE IT
;;;;__________________________________________________________________________________________________
;;;; KEYBOARD DEINITIALIZATION
;;;;__________________________________________________________________________________________________
;;;;
;;;KBD_DEINIT:
;;; LD IY,(KBD_IDAT) ; SETUP PORT POINTER
;;; LD A,KBD_CON_WCR ; LOAD WRITE COMMAND
;;; CALL KBD_CMDOUT ; WRITE IT
;;; LD A,KBD_CON_IOF ; LOAD DISABLE INTERRUPTS CFG
;;; JP KBD_DTAOUT ; WRITE IT
#ENDIF #ENDIF
;__________________________________________________________________________________________________ ;__________________________________________________________________________________________________
; KEYBOARD READ ; KEYBOARD READ

4
Source/HBIOS/tms.asm

@ -205,6 +205,10 @@ NABUKBENABLE .SET TRUE ; INCLUDE NABU KEYBOARD SUPPORT
;====================================================================== ;======================================================================
; ;
TMS_PREINIT: TMS_PREINIT:
#IF (TMSKBD == TMSKBD_KBD)
LD IY,TMS_IDAT ; POINTER TO INSTANCE DATA
CALL KBD_PREINIT
#ENDIF
; DISABLE INTERRUPT GENERATION UNTIL AFTER INTERRUPT HANDLER ; DISABLE INTERRUPT GENERATION UNTIL AFTER INTERRUPT HANDLER
; HAS BEEN INSTALLED. ; HAS BEEN INSTALLED.
LD A, (TMS_INITVDU_REG_1) LD A, (TMS_INITVDU_REG_1)

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 5 #DEFINE RMN 5
#DEFINE RUP 0 #DEFINE RUP 0
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.5.0-dev.99"
#DEFINE BIOSVER "3.5.0-dev.100"
#define rmj RMJ #define rmj RMJ
#define rmn RMN #define rmn RMN
#define rup RUP #define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 5
rup equ 0 rup equ 0
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.5.0-dev.99"
db "3.5.0-dev.100"
endm endm

Loading…
Cancel
Save