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** \
Version 3.5 \
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
08 Dec 2024
12 Dec 2024
# Overview

2
ReadMe.txt

@ -1,6 +1,6 @@
RomWBW ReadMe
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
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:
PUSH AF
ISHBIOS
@ -79,6 +99,8 @@ CLI_OCTAVE_ADJST5:
LD (OCTAVEADJ), A
RET
OPT_MSX .DB "-MSX", 0 ; USE MSX PORTS
OPT_RC .DB "-RC", 0 ; USE RC PORTS
HBIOSOPT: .DB "--HBIOS", 0
DOWN1 .DB "-t1", 0 ; DOWN AN 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-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-12-12 [WBW] Add options to force standard MSX or RC ports
;_______________________________________________________________________________
;
; ToDo:
@ -73,6 +74,10 @@ TYPPT2 .EQU 1 ; FILTYP value for PT2 sound file
TYPPT3 .EQU 2 ; FILTYP value for PT3 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
;
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
CALL CLI_ABRT_IF_OPT_FIRST
CALL CLI_PORTS
CALL CLI_HAVE_HBIOS_SWITCH
CALL CLI_OCTAVE_ADJST
JP CONTINUE
@ -125,6 +131,22 @@ CONTINUE:
OR A
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
CFGSEL:
LD A,$FF ; End of table marker
@ -646,6 +668,17 @@ CFGSIZ .EQU $ - CFGTBL
;
.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)
PLT .DB 0 ; RomWBW HBIOS platform id
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
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
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",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, "
.DB "HBIOS v", '0' + RMJ, ".", '0' + RMN, " required",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_NABU .DB "NABU Onboard Sound",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

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
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
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
@ -2239,18 +2243,20 @@ AY-3-8910 or YM2149 chips, or a compatibility layer thru HBIOS supporting
the SN76489 chip.
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.
The HBIOS mode also support other switch as described below.
| 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
files in user area 3.

6
Source/HBIOS/hbios.asm

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

39
Source/HBIOS/kbd.asm

@ -76,6 +76,10 @@ KBD_IDLE .DB 0 ; IDLE COUNT
; 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_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"
;
;__________________________________________________________________________________________________
; 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
;__________________________________________________________________________________________________
;

20
Source/HBIOS/ps2iface.inc

@ -58,16 +58,16 @@ KBD_INT:
; CALL KBDQDBG
;
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
;__________________________________________________________________________________________________
; KEYBOARD READ

4
Source/HBIOS/tms.asm

@ -205,6 +205,10 @@ NABUKBENABLE .SET TRUE ; INCLUDE NABU KEYBOARD SUPPORT
;======================================================================
;
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
; HAS BEEN INSTALLED.
LD A, (TMS_INITVDU_REG_1)

2
Source/ver.inc

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

2
Source/ver.lib

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

Loading…
Cancel
Save