Browse Source

TUNE Delay Switch, Issue #558

- Add a -DELAY switch to the TUNE command line to force the use of delay mode for note pacing.  Issue #558  Credit to @robbbates for suggesting this.
- Add missing include file logic for DS1307, Issue #556.  Credit to @tpycio.
- Miscellaneous documentation improvements per Peter Onion and Petr Antos.
pull/561/head v3.6.0-dev.1
Wayne Warthen 8 months ago
parent
commit
52ea94161c
No known key found for this signature in database GPG Key ID: 8B34ED29C07EEB0A
  1. 1
      Doc/ChangeLog.txt
  2. BIN
      Doc/RomWBW Applications.pdf
  3. BIN
      Doc/RomWBW Disk Catalog.pdf
  4. BIN
      Doc/RomWBW Hardware.pdf
  5. BIN
      Doc/RomWBW Introduction.pdf
  6. BIN
      Doc/RomWBW System Guide.pdf
  7. BIN
      Doc/RomWBW User Guide.pdf
  8. 2
      ReadMe.md
  9. 2
      ReadMe.txt
  10. 16
      Source/Apps/Tune/cli.inc
  11. 6
      Source/Apps/Tune/timing.inc
  12. 9
      Source/Apps/Tune/tune.asm
  13. 19
      Source/Doc/Applications.md
  14. 5
      Source/Doc/Hardware.md
  15. 56
      Source/Doc/SystemGuide.md
  16. 2
      Source/Doc/UserGuide.md
  17. 9
      Source/HBIOS/hbios.asm
  18. 2
      Source/ver.inc
  19. 2
      Source/ver.lib

1
Doc/ChangeLog.txt

@ -5,6 +5,7 @@ Version 3.6
- WBW: Enabled dynamic CPU speed update on LCD screen
- WBW: Improve LPT driver boot messaging when not detected (per Robb Bates)
- WBW: Correct DS1307 boot date/time display (per Tadeusz Pycio)
- WBW: Add -DELAY option to TUNE app (per Robb Bates)
Version 3.5.1
-------------

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Hardware.pdf

Binary file not shown.

BIN
Doc/RomWBW Introduction.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

@ -7,7 +7,7 @@
**RomWBW Introduction** \
Version 3.6 \
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
23 May 2025
28 May 2025
# Overview

2
ReadMe.txt

@ -1,6 +1,6 @@
RomWBW Introduction
Wayne Warthen (wwarthen@gmail.com)
23 May 2025
28 May 2025

16
Source/Apps/Tune/cli.inc

@ -23,6 +23,19 @@ CLI_HAVE_HBIOS_SWITCH1 ; NOT MATCHED --HBIOS
LD (HBIOSMD), A
RET
CLI_HAVE_DELAY_SWITCH:
LD HL, CLIARGS ; TEST FOR --DELAY ON COMMAND LINE
LD DE, DELAYOPT
CALL STRINDEX
JR NZ, CLI_HAVE_DELAY_SWITCH1
OR $FF ; MATCHED --DELAY
LD (DELAYMD), A
RET
CLI_HAVE_DELAY_SWITCH1 ; NOT MATCHED --HBIOS
XOR A
LD (DELAYMD), A
RET
CLI_PORTS:
LD HL, CLIARGS ; TEST FOR -MSX ON COMMAND LINE
LD DE, OPT_MSX
@ -101,7 +114,8 @@ CLI_OCTAVE_ADJST5:
OPT_MSX .DB "-MSX", 0 ; USE MSX PORTS
OPT_RC .DB "-RC", 0 ; USE RC PORTS
HBIOSOPT: .DB "--HBIOS", 0
HBIOSOPT: .DB "--HBIOS", 0 ; USE HBIOS API FOR PLAYBACK
DELAYOPT: .DB "-DELAY",0 ; FORCE DELAY MODE
DOWN1 .DB "-t1", 0 ; DOWN AN OCTAVE
DOWN2 .DB "-t2", 0 ; DOWN TWO OCTAVE
UP1 .DB "+t1", 0 ; UP AN OCTAVE

6
Source/Apps/Tune/timing.inc

@ -41,8 +41,14 @@ DLY1 DEC BC ; [6]
; Test for timer running to determine if it can be used for delay
; Return string message in DE
; Assigned (WMOD) with 0 if no hardware time, 1 if hardware timer found
; If -DELAY on command line, force delay mode
;
PROBETIMER:
LD A,(DELAYMD) ; GET COMMAND LINE DELAY FLAG
OR A ; TEST IT
LD A,0 ; ASSUME NO TIMER
LD DE,MSGDLY ; DELAY MODE MESSAGE
JR NZ,SETDLY ; IF TRUE, DONE
LD B,BF_SYSGET ; HBIOS: GET function
LD C,$D0 ; TIMER subfunction
RST 08 ; DE:HL := current tick count

9
Source/Apps/Tune/tune.asm

@ -53,6 +53,7 @@
; 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
; 2025-05-28 [WBW] Add option to force delay mode
;_______________________________________________________________________________
;
; ToDo:
@ -113,6 +114,7 @@ Id .EQU 1 ; 5) Insert official identificator
CALL CLI_ABRT_IF_OPT_FIRST
CALL CLI_PORTS
CALL CLI_HAVE_HBIOS_SWITCH
CALL CLI_HAVE_DELAY_SWITCH
CALL CLI_OCTAVE_ADJST
JP CONTINUE
@ -703,15 +705,16 @@ FILTYP .DB 0 ; Sound file type (TYPPT2, TYPPT3, TYPMYM)
TMP .DB 0 ; work around use of undocumented Z80
HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE
DELAYMD .DB 0 ; FORCE DELAY MODE IF TRUE (NON-ZERO)
OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN
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
MSGBAN .DB "Tune Player for RomWBW v3.13, 28-May-2025",0
MSGUSE .DB "Copyright (C) 2025, 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] [-msx|-rc] [--hbios] [+tn|-tn]",0
.DB "Usage: TUNE <filename>.[PT2|PT3|MYM] [-msx|-rc] [-delay] [--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

19
Source/Doc/Applications.md

@ -2438,10 +2438,11 @@ whether support for it is included in the RomWBW HBIOS configuration
| `-MSX` | Force MSX port addresses A0H/A1H (no PSG detection) |
| `-RC` | Force RCBus port addresses D8H/D0H (no PSG detection) |
| `--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 |
| `-DELAY` | Force delay mode (don't use hardware timer) |
| `+T1` | Play tune an octave higher |
| `+T2` | Play tune two octaves higher |
| `-T1` | Play tune an octave lower |
| `-T2` | Play tune two octaves lower |
The +t and -t options apply only to HBIOS mode operation. The `-MSX`,
`-RC`, and `--HBIOS` options are mutually exclusive. See Notes below.
@ -2465,7 +2466,7 @@ an error message.
Some hardware (notably Why-Em-Ulator) cannot be detected due limitations
of the emulation. In such cases, you can force the use of the two
most common port addresses using the `-msx` or `-rc` options.
most common port addresses 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
@ -2473,9 +2474,13 @@ will need to ensure that the CPU clock speed of your system does not
exceed the timing limitations of your sound chip.
The application probes for an active system timer and uses it to
accurately pace the sound file output. If no system timer is
accurately pace the sound file playback. If no system timer is
available, a delay loop is calculated instead. The delay loop will not
be as accurate as the system timer.
be as accurate as the system timer. If the `-DELAY` options is
specified on the command line, then the delay loop will be used
regardless of whether the system has a hardware timer. This is useful
if the hardware timer does not run at the 50Hz desired for sound
playback.
There are two modes of operation. A direct hardware interface for the
AY-3-8910 or YM2149 chips, or a compatibility layer thru HBIOS supporting

5
Source/Doc/Hardware.md

@ -141,6 +141,11 @@ devices and peripherals that are on-board or frequently used with
each platform. If the device or peripheral is not detected at boot,
the ROM will simply bypass support appropriately.
Each ROM will support a single memory manager. This is determined
by the build configuration and is not dynamically selected. The use
of the term Memory Manager is generally synonymous with Memory
Management Unit (MMU).
In some cases, support for multiple hardware components with potentially
conflicting resource usage are handled by a single ROM image. It is up
to the user to ensure that no conflicting hardware is in use.

56
Source/Doc/SystemGuide.md

@ -142,6 +142,14 @@ currently selected. The upper 32KB is "fixed". This area of memory
is never swapped out and is used to contain software and operating
systems that must remain in the Z80 address space.
Throughout this document, this mechanism of selecting banks of memory
into the lower 32K is referred to as memory management. Achieving
this functionality requires some type of hardware which is generally
referred to as the system's Memory Management Unit (MMU). RomWBW
supports a variety of MMUs -- but they all perform the same function
of swapping in/out banks of memory in the lower 32K of CPU address
space.
Figure 4.1 depicts the memory layout for a system running the CP/M
operating system. Applications residing in TPA invoke BDOS services
of CP/M, BDOS invokes the custom CBIOS APIs, and finally CBIOS
@ -290,6 +298,54 @@ Common Bank:
It is a fixed mapping that is never changed in normal RomWBW operation
hence the name "Common".
## Memory Managers
The following hardware memory managers are supported by RomWBW. The
operation of these memory managers is not documented here -- please
refer to the documentation of your hardware provider for that.
Z2:
: Memory memory manager introduced by Sergey Kiselv in the Zeta 2 SBC.
Popular in many RCBus systems.
Z180:
: Memory manager built into the Z180 CPU
Z280:
: Memory manager built into the Z280 CPU
ZRC:
: Memory manager onboard the ZRC series of computers by Bill Shen.
SBC:
: Memory manager onboard the N8VEM SBC series of computers by
Andrew Lynch.
MBC:
: Memory manager onboard the Nhyodyne computer system by Andrew Lynch.
N8:
: Memory manager onboard the N8 SBC computer by Andrew Lynch.
EZ512:
: Memory manager onboard the EaZy80-512 Z80 CPU Module by Bill Shen.
RPH:
: Memory manager onboard the Rhyophyre computer system by Andrew Lynch.
The memory manager used is determined by the configuration choices
that are part of a RomWBW build process. A given ROM can only have a
single memory manager -- it is not selected dynamically.
# Disk Layout
## Floppy Disk Layout

2
Source/Doc/UserGuide.md

@ -3163,7 +3163,7 @@ floppy disk and hard disk images.
| TUNE | Play .PT2, .PT3, .MYM audio files. |
| INTTEST | Test interrupt vector hooking. |
# Real Time Clock
# Real Time Clock & Date/Time Stamping
RomWBW supports a variety of real time clock hardware. If your
system has this hardware, then it will be able to maintain the

9
Source/HBIOS/hbios.asm

@ -8978,6 +8978,15 @@ SIZ_INTRTC .EQU $ - ORG_INTRTC
MEMECHO " bytes.\n"
#ENDIF
;
#IF (DS7RTCENABLE)
ORG_DS7RTC .EQU $
#INCLUDE "ds7rtc.asm"
SIZ_DS7RTC .EQU $ - ORG_DS7RTC
.ECHO "DS7RTC occupies "
.ECHO SIZ_DS7RTC
.ECHO " bytes.\n"
#ENDIF
;
#IF (RP5RTCENABLE)
ORG_RP5RTC .EQU $
#INCLUDE "rp5rtc.asm"

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 6
#DEFINE RUP 0
#DEFINE RTP 0
#DEFINE BIOSVER "3.6.0-dev.0"
#DEFINE BIOSVER "3.6.0-dev.1"
#define rmj RMJ
#define rmn RMN
#define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 6
rup equ 0
rtp equ 0
biosver macro
db "3.6.0-dev.0"
db "3.6.0-dev.1"
endm

Loading…
Cancel
Save