Browse Source

Miscellaneous Cleanup

No functional changes.
pull/114/head
Wayne Warthen 6 years ago
parent
commit
d14cf27acf
  1. 2
      Doc/ChangeLog.txt
  2. BIN
      Doc/RomWBW Applications.pdf
  3. BIN
      Doc/RomWBW Architecture.pdf
  4. BIN
      Doc/RomWBW Getting Started.pdf
  5. 7
      ReadMe.md
  6. 7
      ReadMe.txt
  7. 72
      Source/Doc/Architecture.md
  8. 5
      Source/Doc/GettingStarted.md
  9. 2
      Source/HBIOS/Config/RCZ80_std.asm
  10. 52
      Source/HBIOS/audio.inc
  11. 4
      Source/HBIOS/cfg_dyno.asm
  12. 4
      Source/HBIOS/cfg_ezz80.asm
  13. 4
      Source/HBIOS/cfg_master.asm
  14. 4
      Source/HBIOS/cfg_mk4.asm
  15. 4
      Source/HBIOS/cfg_n8.asm
  16. 4
      Source/HBIOS/cfg_rcz180.asm
  17. 4
      Source/HBIOS/cfg_sbc.asm
  18. 4
      Source/HBIOS/cfg_scz180.asm
  19. 4
      Source/HBIOS/cfg_zeta.asm
  20. 4
      Source/HBIOS/cfg_zeta2.asm
  21. 20
      Source/HBIOS/hbios.asm
  22. 13
      Source/HBIOS/hbios.inc
  23. 552
      Source/HBIOS/sn76489.asm
  24. 24
      Source/HBIOS/std.asm
  25. 11
      Source/HBIOS/util.asm
  26. 2
      Source/ver.inc
  27. 2
      Source/ver.lib

2
Doc/ChangeLog.txt

@ -9,6 +9,8 @@ Version 3.1
- WBW: Support use of CTC for SIO baud rate divisors
- WBW: Updated IDE and PPIDE drivers to improve old CF Card compatibility
- WBW: Support TIMER mode in CTC driver
- D?N: Added sound driver support
- D?N: Added SN76489 sound chip driver
Version 3.0.1
-------------

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Architecture.pdf

Binary file not shown.

BIN
Doc/RomWBW Getting Started.pdf

Binary file not shown.

7
ReadMe.md

@ -3,7 +3,7 @@
## Z80/Z180 System Software
Version 3.1 Pre-release
Wednesday 15 April 2020
Wednesday 22 April 2020
Wayne Warthen <wwarthen@gmail.com>
@ -1141,8 +1141,11 @@ applications are no longer provided.
list of general code enhancements.
- Phillip Stevens contributed support for FreeRTOS.
- Curt Mayer contributed the Linux / MacOS build process.
- UNA BIOS and FDISK80 is a product of John Coffman.
- UNA BIOS and FDISK80 are the products of John Coffman.
- FLASH4 is a product of Will Sowerbutts.
- CLRDIR is a product of Max Scane.
- Dean Netherton contributed the sound driver interface and the
SN76489 sound driver.
Contributions of all kinds to RomWBW are very welcome.

7
ReadMe.txt

@ -3,7 +3,7 @@ RomWBW
Z80/Z180 System Software
Version 3.1 Pre-release
Wednesday 15 April 2020
Wednesday 22 April 2020
Wayne Warthen wwarthen@gmail.com
@ -1173,8 +1173,11 @@ applications are no longer provided.
list of general code enhancements.
- Phillip Stevens contributed support for FreeRTOS.
- Curt Mayer contributed the Linux / MacOS build process.
- UNA BIOS and FDISK80 is a product of John Coffman.
- UNA BIOS and FDISK80 are the products of John Coffman.
- FLASH4 is a product of Will Sowerbutts.
- CLRDIR is a product of Max Scane.
- Dean Netherton contributed the sound driver interface and the
SN76489 sound driver.
Contributions of all kinds to RomWBW are very welcome.

72
Source/Doc/Architecture.md

@ -1299,7 +1299,7 @@ Sound (SND)
| _Entry Parameters_
| B: 0x50
| C: The audio device unit number
| C: Audio Device Unit ID
| _Exit Results_
| A: Status (0=OK, else error)
@ -1311,53 +1311,62 @@ channels to silence.
| _Entry Parameters_
| B: 0x51
| C: The audio device unit number
| L: The volume to be applied (00=Silence, FF=Maximum)
| C: Audio Device Unit ID
| L: Volume (00=Silence, FF=Maximum)
| _Exit Results_
| A: Status (0=OK, else error)
This function set the volume configuration command. The volume will
be applied when the SNDPLAY function is invoked.
This function sets the sound chip volume parameter. The volume will
be applied when the next SNDPLAY function is invoked.
### Function 0x52 -- Sound Volume (SNDPIT)
Note that not all sounds chips implement 256 volume levels. The
driver will scale the volume to the closest possible level the
chip provides.
### Function 0x52 -- Sound Pitch (SNDPIT)
| _Entry Parameters_
| B: 0x52
| C: The audio device unit number
| HL: The pitch to be applied (0000=lowest note, FFFF=highest note)
| C: Audio Device Unit ID
| HL: Pitch (0000=lowest note, FFFF=highest note)
This function sets the sound chip pitch parameter. The pitch will
be applied when the next SNDPLAY function is invoked.
This function set the pitch configuration command. The pitch will
be applied when the SNDPLAY function is invoked.
The pitch value is a driver specific value. To play standardized
notes, use the SNDNOTE function.
### Function 0x53 -- Sound Volume (SNDNOTE)
### Function 0x53 -- Sound Note (SNDNOTE)
| _Entry Parameters_
| B: 0x52
| C: The audio device unit number
| L: A number from 0 to 255 selecting quarter notes
| B: 0x53
| C: Audio Device Unit ID
| L: Note (0 to 255 quarter notes)
This function will apply a pitch value to the sound chip.
This function sets the sound chip pitch parameter according to
standardized notes.
The value correspond to standard musical notes. The value allows for selection
of a quarter of a semitone by giving a value between 0 and upto the drivers maximum
supported value. The lowest note is (0).
The value corresponds to standard musical notes. The value allows
for selection of a quarter of a semitone by giving a value between 0
and up to the drivers maximum supported value. The lowest note is (0).
For the SN76490 chip, 0 corresponds to note A1# and the value 249 is the maximum
supported value, and it corresponds to note C7.
For the SN76490 chip, 0 corresponds to note A1# and the value 249 is
the maximum supported value, and it corresponds to note C7.
### Function 0x54 -- Sound Play (SNDPLAY)
| _Entry Parameters_
| B: 0x53
| C: The audio device unit number
| D: The channel to play the previously configured tone
| B: 0x54
| C: Audio Device Unit ID
| D: Channel
This function set the pitch and volume previously configured with the SNDPIT
and SNDVOL functions.
This function applies the previously specified volume and pitch by
programming the sound chip with the appropriate values. The values
are applied to the specified channel of the chip.
For example, to play a specific note, on the first installed driver, the following
HBIOS calls would need to be made
For example, to play a specific note on Audio Device UNit 0,
the following HBIOS calls would need to be made:
```
HBIOS B=51 C=00 L=80 ; Set volume to half level
@ -1555,6 +1564,15 @@ available along with the registers/information returned.
| A: Status (0=OK, else error)
| E: Count of Video Device Units
#### SYSGET Subfunction 0x50 -- Get Sound Device Unit Count (SNDCNT)
| _Entry Parameters_
| BC: 0xF850
| _Returned Values_
| A: Status (0=OK, else error)
| E: Count of Sound Device Units
#### SYSGET Subfunction 0xD0 -- Get Timer Tick Count (TIMER)
| _Entry Parameters_

5
Source/Doc/GettingStarted.md

@ -1194,8 +1194,11 @@ platform.
list of general code enhancements.
* Phillip Stevens contributed support for FreeRTOS.
* Curt Mayer contributed the Linux / MacOS build process.
* UNA BIOS and FDISK80 is a product of John Coffman.
* UNA BIOS and FDISK80 are the products of John Coffman.
* FLASH4 is a product of Will Sowerbutts.
* CLRDIR is a product of Max Scane.
* Dean Netherton contributed the sound driver interface and
the SN76489 sound driver.
Contributions of all kinds to RomWBW are very welcome.

2
Source/HBIOS/Config/RCZ80_std.asm

@ -38,5 +38,5 @@ FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|DIDE|N8|DIO3]
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
SN76489ENABLE .SET FALSE ; SN76489 SOUND DRIVER

52
Source/HBIOS/audio.inc

@ -1,26 +1,26 @@
#IF AUDIOTRACE
#DEFINE AUDTRACE(STR) PUSH DE \ LD DE, STR \ CALL WRITESTR \ POP DE
#DEFINE AUDTRACE_A CALL PRTHEXBYTE
#DEFINE AUDTRACE_B PUSH AF \ LD A, B \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_D PUSH AF \ LD A, D \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_E PUSH AF \ LD A, E \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_L PUSH AF \ LD A, L \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_HL CALL PRTHEXWORDHL
#DEFINE AUDTRACE_DE PUSH DE \ PUSH DE \ POP HL \ CALL PRTHEXWORDHL \ POP DE
#DEFINE AUDTRACE_IY PUSH HL \ PUSH IY \ POP HL \ CALL PRTHEXWORDHL \ POP HL
#DEFINE AUDDEBUG(S) CALL PRTSTRD \ .TEXT S \ .TEXT "$" ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED
#ELSE
#DEFINE AUDTRACE(S)
#DEFINE AUDTRACE_A
#DEFINE AUDTRACE_B
#DEFINE AUDTRACE_D
#DEFINE AUDTRACE_E
#DEFINE AUDTRACE_L
#DEFINE AUDTRACE_HL
#DEFINE AUDTRACE_DE
#DEFINE AUDTRACE_IY
#DEFINE AUDDEBUG(STR)
#ENDIF
#IF AUDIOTRACE
#DEFINE AUDTRACE(STR) PUSH DE \ LD DE, STR \ CALL WRITESTR \ POP DE
#DEFINE AUDTRACE_A CALL PRTHEXBYTE
#DEFINE AUDTRACE_B PUSH AF \ LD A, B \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_D PUSH AF \ LD A, D \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_E PUSH AF \ LD A, E \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_L PUSH AF \ LD A, L \ CALL PRTHEXBYTE \ POP AF
#DEFINE AUDTRACE_HL CALL PRTHEXWORDHL
#DEFINE AUDTRACE_DE PUSH DE \ PUSH DE \ POP HL \ CALL PRTHEXWORDHL \ POP DE
#DEFINE AUDTRACE_IY PUSH HL \ PUSH IY \ POP HL \ CALL PRTHEXWORDHL \ POP HL
#DEFINE AUDDEBUG(S) CALL PRTSTRD \ .TEXT S \ .TEXT "$" ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED
#ELSE
#DEFINE AUDTRACE(S)
#DEFINE AUDTRACE_A
#DEFINE AUDTRACE_B
#DEFINE AUDTRACE_D
#DEFINE AUDTRACE_E
#DEFINE AUDTRACE_L
#DEFINE AUDTRACE_HL
#DEFINE AUDTRACE_DE
#DEFINE AUDTRACE_IY
#DEFINE AUDDEBUG(STR)
#ENDIF

4
Source/HBIOS/cfg_dyno.asm

@ -155,5 +155,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_ezz80.asm

@ -180,5 +180,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_master.asm

@ -235,5 +235,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_mk4.asm

@ -189,5 +189,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_n8.asm

@ -189,5 +189,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_rcz180.asm

@ -189,5 +189,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_sbc.asm

@ -191,5 +191,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_scz180.asm

@ -184,5 +184,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_zeta.asm

@ -135,5 +135,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

4
Source/HBIOS/cfg_zeta2.asm

@ -145,5 +145,5 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER

20
Source/HBIOS/hbios.asm

@ -1030,7 +1030,7 @@ SAVE_REC_M:
LD (HB_BOOT_REC),A ; SAVE FOR LATER
#ENDIF
#IF (BT_REC_TYPE == BT_REC_SBCRI)
IN A,($68 + 6) ; UART_MSR MODEM
IN A,($68 + 6) ; UART_MSR MODEM
BIT 6,A ; STATUS REGISTER
LD A,0 ; BIT 6
JR Z,SAVE_REC_M ; IS RECOVERY MODE
@ -1098,17 +1098,17 @@ SAVE_REC_M:
INC L ; FLAG Z80180 OR BETTER
;
; TEST FOR OLDER S-CLASS (REV K)
IN0 A,(Z180_CCR) ; SUPPOSEDLY ONLY ON S-CLASS
INC A ; FF -> 0
IN0 A,(Z180_CCR) ; SUPPOSEDLY ONLY ON S-CLASS
INC A ; FF -> 0
JR Z,HB_CPU1
INC L ; FLAG Z8S180 REV K (SL1960) OR BETTER
;
; TEST FOR NEWER S-CLASS (REV N)
; ON OLDER S-CLASS, ASCI TIME CONSTANT REG DOES NOT EXIST
; AND WILL ALWYAS READ BACK AS $FF
OUT0 (Z180_ASTC1L),D ; D = 0 AT THIS POINT
IN0 A,(Z180_ASTC1L) ; ASCI TIME CONSTANT REG
INC A ; FF -> 0
OUT0 (Z180_ASTC1L),D ; D = 0 AT THIS POINT
IN0 A,(Z180_ASTC1L) ; ASCI TIME CONSTANT REG
INC A ; FF -> 0
JR Z,HB_CPU1
INC L ; FLAG Z8S180 REV N W/ ASCI BRG
;
@ -1647,9 +1647,6 @@ HB_PCINITTBLLEN .EQU (($ - HB_PCINITTBL) / 2)
;==================================================================================================
;
HB_INITTBL:
#IF (SN76489ENABLE)
.DW SN76489_INIT
#ENDIF
#IF (CTCENABLE)
.DW CTC_INIT
#ENDIF
@ -1659,6 +1656,9 @@ HB_INITTBL:
#IF (AYENABLE)
.DW AY_INIT ; AUDIBLE INDICATOR OF BOOT START
#ENDIF
#IF (SN76489ENABLE)
.DW SN76489_INIT
#ENDIF
#IF (ASCIENABLE)
.DW ASCI_INIT
#ENDIF
@ -3959,7 +3959,7 @@ PS_FLP_FSTR: .TEXT "8\",$" ; PS_FLP8
PS_FLP_SSTR: .TEXT "SS/$" ; PS_FLPSS
.TEXT "DS/$" ; PS_FLPDS
;
PS_FLP_DSTR: .TEXT "SD$" ; PS_FLPSD
PS_FLP_DSTR: .TEXT "SD$" ; PS_FLPSD
.TEXT "DD$" ; PS_FLPDD
.TEXT "HD$" ; PS_FLPHD
.TEXT "ED$" ; PS_FLPED

13
Source/HBIOS/hbios.inc

@ -51,7 +51,7 @@ BF_VDASCR .EQU BF_VDA + 11 ; SCROLL
BF_VDAKST .EQU BF_VDA + 12 ; GET KEYBOARD STATUS
BF_VDAKFL .EQU BF_VDA + 13 ; FLUSH KEYBOARD BUFFER
BF_VDAKRD .EQU BF_VDA + 14 ; READ KEYBOARD
;
BF_SND .EQU $50
BF_SNDRESET .EQU BF_SND + 0 ; RESET SOUND SYSTEM
BF_SNDVOL .EQU BF_SND + 1 ; REQUEST SOUND VOL - L CONTAINS VOLUME (255 MAX, 0 SILENT) - SCALED AS REQUIRED BY DRIVER (EG: MAPS TO JUST 4 BIT RESOLUTION FOR SN76489)
@ -59,13 +59,12 @@ BF_SNDPIT .EQU BF_SND + 2 ; REQUEST SOUND PITCH - HL CONTAINS PITCH DRIVER SPECI
BF_SNDNOTE .EQU BF_SND + 3 ; REQUEST NOTE - L CONTAINS NOTE - EACH VALUE IS QUARTER NOTE
BF_SNDPLAY .EQU BF_SND + 4 ; INITIATE THE REQUESTED SOUND COMMAND
BF_SNDQUERY .EQU BF_SND + 5 ; D IS CHANNEL, E IS SUBCOMMAND
;
; BF_SNDQUERY SUBCOMMANDS
SND_STATUS .EQU 0
SND_CHCNT .EQU SND_STATUS + 1 ; RETURN COUNT OF CHANNELS
SND_SVOLUME .EQU SND_STATUS + 2 ; 8 BIT NUMBER
SND_SPITCH .EQU SND_STATUS + 3 ; 16 BIT NUMBER
BF_SNDQ_STATUS .EQU 0
BF_SNDQ_CHCNT .EQU BF_SNDQ_STATUS + 1 ; RETURN COUNT OF CHANNELS
BF_SNDQ_SVOLUME .EQU BF_SNDQ_STATUS + 2 ; 8 BIT NUMBER
BF_SNDQ_SPITCH .EQU BF_SNDQ_STATUS + 3 ; 16 BIT NUMBER
;
BF_SYS .EQU $F0
BF_SYSRESET .EQU BF_SYS + 0 ; SOFT RESET HBIOS

552
Source/HBIOS/sn76489.asm

@ -11,9 +11,9 @@
;======================================================================
;
SN76489_PORT_LEFT .EQU $FC ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)
SN76489_PORT_RIGHT .EQU $F8 ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)
SN7_IDAT .EQU 0
SN76489_PORT_LEFT .EQU $FC ; PORTS FOR ACCESSING THE SN76489 CHIP (LEFT)
SN76489_PORT_RIGHT .EQU $F8 ; PORTS FOR ACCESSING THE SN76489 CHIP (RIGHT)
SN7_IDAT .EQU 0
SN7_TONECNT .EQU 3 ; COUNT NUMBER OF TONE CHANNELS
SN7_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS
SN7_CHCNT .EQU SN7_TONECNT + SN7_NOISECNT
@ -23,33 +23,33 @@ CHANNEL_2_SILENT .EQU $DF
CHANNEL_3_SILENT .EQU $FF
SN7CLKDIVIDER .EQU 4
SN7CLK .EQU CPUOSC / SN7CLKDIVIDER
SN7CLK .EQU CPUOSC / SN7CLKDIVIDER
SN7RATIO .EQU SN7CLK * 100 / 32
SN7_FIRST_NOTE .EQU 5827 ; A1#
SN7_LAST_NODE .EQU 209300 ; C7
SN7_LAST_NOTE .EQU 209300 ; C7
A1S .equ SN7RATIO / SN7_FIRST_NOTE
C7 .EQU SN7RATIO / SN7_LAST_NODE
A1S .EQU SN7RATIO / SN7_FIRST_NOTE
C7 .EQU SN7RATIO / SN7_LAST_NOTE
.echo "SN76489: range of A1# (pitch: "
.echo A1S
.echo ") to C7 (pitch: "
.echo C7
.echo ")\n"
.ECHO "SN76489: range of A1# (pitch: "
.ECHO A1S
.ECHO ") to C7 (pitch: "
.ECHO C7
.ECHO ")\n"
#include "audio.inc"
#INCLUDE "audio.inc"
SN76489_INIT:
LD IY, SN7_IDAT ; POINTER TO INSTANCE DATA
LD DE,STR_MESSAGELT
LD DE,STR_MESSAGELT
CALL WRITESTR
LD A, SN76489_PORT_LEFT
CALL PRTHEXBYTE
LD DE,STR_MESSAGERT
LD DE,STR_MESSAGERT
CALL WRITESTR
LD A, SN76489_PORT_RIGHT
CALL PRTHEXBYTE
@ -95,7 +95,7 @@ SN7_VOLUME_OFF:
RET
; BITS MAPING
; BIT MAPPING
; SET TONE:
; 1 CC 0 PPPP (LOW)
; 0 0 PPPPPP (HIGH)
@ -121,10 +121,10 @@ SN7_NOTE:
ADD HL, HL ; SHIFT RIGHT (MULT 2) -INDEX INTO SN7NOTETBL TABLE OF WORDS
; TEST IF HL IS LARGER THAN SN7NOTETBL SIZE
OR A ; CLEAR CARRY FLAG
OR A ; CLEAR CARRY FLAG
LD DE, SIZ_SN7NOTETBL
SBC HL, DE
JR NC, SN7_NOTE1 ; INCOMING HL DOES NOT MAP INTO SN7NOTETBL
SBC HL, DE
JR NC, SN7_NOTE1 ; INCOMING HL DOES NOT MAP INTO SN7NOTETBL
ADD HL, DE ; RESTORE HL
LD E, L ; HL = SN7NOTETBL + HL
@ -140,7 +140,7 @@ SN7_NOTE:
JR SN7_PITCH ; APPLY PITCH
SN7_NOTE1:
OR $FF ; not implemented yet
OR $FF ; NOT IMPLEMENTED YET
RET
SN7_PITCH:
@ -165,13 +165,13 @@ SN7_PLAY:
SN7_QUERY:
LD A, E
CP SND_CHCNT
CP BF_SNDQ_CHCNT
JR Z, SN7_QUERY_CHCNT
CP SND_SPITCH
CP BF_SNDQ_SPITCH
JR Z, SN7_QUERY_PITCH
CP SND_SVOLUME
CP BF_SNDQ_SVOLUME
JR Z, SN7_QUERY_VOLUME
OR $FF ; SIGNAL FAILURE
@ -310,7 +310,7 @@ SN7_FNTBL:
PENDING_PITCH
.DW 0 ; PENDING PITCH (10 BITS)
PENDING_VOLUME
.DB 0 ; PENDING VOL (8 BITS -> downoverted to 4 BITS and inverted)
.DB 0 ; PENDING VOL (8 BITS -> DOWNOVERTED TO 4 BITS AND INVERTED)
STR_MESSAGELT .DB "\r\nSN76489: LEFT IO=0x$"
STR_MESSAGERT .DB ", RIGHT IO=0x$"
@ -324,265 +324,265 @@ TRACE_VOLUME .DB ", VOL: $"
TRACE_PORT_WR .DB "\r\nOUT SN76489, $"
TRACE_PITCH_SET .DB "\r\nSN7_PITCH_SET CH: $"
TRACE_PITCH .DB ", PITCH: $"
TRACE_NEWLINE .DB "\r\n$"
TRACE_NEWLINE .DB "\r\n$"
#ENDIF
; THE FREQUENCY BY QUATER TONE STARTING AT A1#
SN7NOTETBL:
.dw A1S
.dw SN7RATIO / 5912
.dw SN7RATIO / 5998
.dw SN7RATIO / 6085
.dw SN7RATIO / 6174
.dw SN7RATIO / 6264
.dw SN7RATIO / 6355
.dw SN7RATIO / 6447
.dw SN7RATIO / 6541
.dw SN7RATIO / 6636
.dw SN7RATIO / 6733
.dw SN7RATIO / 6831
.dw SN7RATIO / 6930
.dw SN7RATIO / 7031
.dw SN7RATIO / 7133
.dw SN7RATIO / 7237
.dw SN7RATIO / 7342
.dw SN7RATIO / 7449
.dw SN7RATIO / 7557
.dw SN7RATIO / 7667
.dw SN7RATIO / 7778
.dw SN7RATIO / 7891
.dw SN7RATIO / 8006
.dw SN7RATIO / 8122
.dw SN7RATIO / 8241
.dw SN7RATIO / 8361
.dw SN7RATIO / 8482
.dw SN7RATIO / 8606
.dw SN7RATIO / 8731
.dw SN7RATIO / 8858
.dw SN7RATIO / 8987
.dw SN7RATIO / 9118
.dw SN7RATIO / 9250
.dw SN7RATIO / 9385
.dw SN7RATIO / 9521
.dw SN7RATIO / 9660
.dw SN7RATIO / 9800
.dw SN7RATIO / 9943
.dw SN7RATIO / 10087
.dw SN7RATIO / 10234
.dw SN7RATIO / 10383
.dw SN7RATIO / 10534
.dw SN7RATIO / 10687
.dw SN7RATIO / 10843
.dw SN7RATIO / 11000
.dw SN7RATIO / 11160
.dw SN7RATIO / 11322
.dw SN7RATIO / 11487
.dw SN7RATIO / 11654
.dw SN7RATIO / 11824
.dw SN7RATIO / 11995
.dw SN7RATIO / 12170
.dw SN7RATIO / 12347
.dw SN7RATIO / 12527
.dw SN7RATIO / 12709
.dw SN7RATIO / 12894
.dw SN7RATIO / 13081
.dw SN7RATIO / 13271
.dw SN7RATIO / 13464
.dw SN7RATIO / 13660
.dw SN7RATIO / 13859
.dw SN7RATIO / 14061
.dw SN7RATIO / 14265
.dw SN7RATIO / 14473
.dw SN7RATIO / 14683
.dw SN7RATIO / 14897
.dw SN7RATIO / 15113
.dw SN7RATIO / 15333
.dw SN7RATIO / 15556
.dw SN7RATIO / 15782
.dw SN7RATIO / 16012
.dw SN7RATIO / 16245
.dw SN7RATIO / 16481
.dw SN7RATIO / 16721
.dw SN7RATIO / 16964
.dw SN7RATIO / 17211
.dw SN7RATIO / 17461
.dw SN7RATIO / 17715
.dw SN7RATIO / 17973
.dw SN7RATIO / 18234
.dw SN7RATIO / 18500
.dw SN7RATIO / 18769
.dw SN7RATIO / 19042
.dw SN7RATIO / 19319
.dw SN7RATIO / 19600
.dw SN7RATIO / 19885
.dw SN7RATIO / 20174
.dw SN7RATIO / 20468
.dw SN7RATIO / 20765
.dw SN7RATIO / 21067
.dw SN7RATIO / 21373
.dw SN7RATIO / 21684
.dw SN7RATIO / 22000
.dw SN7RATIO / 22320
.dw SN7RATIO / 22645
.dw SN7RATIO / 22974
.dw SN7RATIO / 23308
.dw SN7RATIO / 23647
.dw SN7RATIO / 23991
.dw SN7RATIO / 24340
.dw SN7RATIO / 24694
.dw SN7RATIO / 25053
.dw SN7RATIO / 25418
.dw SN7RATIO / 25787
.dw SN7RATIO / 26163
.dw SN7RATIO / 26544
.dw SN7RATIO / 26930
.dw SN7RATIO / 27321
.dw SN7RATIO / 27718
.dw SN7RATIO / 28121
.dw SN7RATIO / 28530
.dw SN7RATIO / 28945
.dw SN7RATIO / 29366
.dw SN7RATIO / 29793
.dw SN7RATIO / 30226
.dw SN7RATIO / 30666
.dw SN7RATIO / 31113
.dw SN7RATIO / 31566
.dw SN7RATIO / 32025
.dw SN7RATIO / 32490
.dw SN7RATIO / 32963
.dw SN7RATIO / 33442
.dw SN7RATIO / 33929
.dw SN7RATIO / 34422
.dw SN7RATIO / 34923
.dw SN7RATIO / 35431
.dw SN7RATIO / 35946
.dw SN7RATIO / 36469
.dw SN7RATIO / 36999
.dw SN7RATIO / 37537
.dw SN7RATIO / 38083
.dw SN7RATIO / 38637
.dw SN7RATIO / 39200
.dw SN7RATIO / 39770
.dw SN7RATIO / 40349
.dw SN7RATIO / 40936
.dw SN7RATIO / 41530
.dw SN7RATIO / 42134
.dw SN7RATIO / 42747
.dw SN7RATIO / 43369
.dw SN7RATIO / 44000
.dw SN7RATIO / 44640
.dw SN7RATIO / 45289
.dw SN7RATIO / 45948
.dw SN7RATIO / 46616
.dw SN7RATIO / 47294
.dw SN7RATIO / 47982
.dw SN7RATIO / 48680
.dw SN7RATIO / 49388
.dw SN7RATIO / 50106
.dw SN7RATIO / 50835
.dw SN7RATIO / 51575
.dw SN7RATIO / 52325
.dw SN7RATIO / 53086
.dw SN7RATIO / 53858
.dw SN7RATIO / 54642
.dw SN7RATIO / 55437
.dw SN7RATIO / 56243
.dw SN7RATIO / 57061
.dw SN7RATIO / 57891
.dw SN7RATIO / 58733
.dw SN7RATIO / 59587
.dw SN7RATIO / 60454
.dw SN7RATIO / 61333
.dw SN7RATIO / 62225
.dw SN7RATIO / 63130
.dw SN7RATIO / 64048
.dw SN7RATIO / 64980
.dw SN7RATIO / 65925
.dw SN7RATIO / 66884
.dw SN7RATIO / 67857
.dw SN7RATIO / 68844
.dw SN7RATIO / 69846
.dw SN7RATIO / 70862
.dw SN7RATIO / 71893
.dw SN7RATIO / 72938
.dw SN7RATIO / 73999
.dw SN7RATIO / 75075
.dw SN7RATIO / 76167
.dw SN7RATIO / 77275
.dw SN7RATIO / 78399
.dw SN7RATIO / 79539
.dw SN7RATIO / 80696
.dw SN7RATIO / 81870
.dw SN7RATIO / 83061
.dw SN7RATIO / 84269
.dw SN7RATIO / 85495
.dw SN7RATIO / 86738
.dw SN7RATIO / 88000
.dw SN7RATIO / 89280
.dw SN7RATIO / 90579
.dw SN7RATIO / 91896
.dw SN7RATIO / 93233
.dw SN7RATIO / 94589
.dw SN7RATIO / 95965
.dw SN7RATIO / 97361
.dw SN7RATIO / 98777
.dw SN7RATIO / 100214
.dw SN7RATIO / 101671
.dw SN7RATIO / 103150
.dw SN7RATIO / 104650
.dw SN7RATIO / 106172
.dw SN7RATIO / 107716
.dw SN7RATIO / 109283
.dw SN7RATIO / 110873
.dw SN7RATIO / 112486
.dw SN7RATIO / 114122
.dw SN7RATIO / 115782
.dw SN7RATIO / 117466
.dw SN7RATIO / 119175
.dw SN7RATIO / 120908
.dw SN7RATIO / 122667
.dw SN7RATIO / 124451
.dw SN7RATIO / 126261
.dw SN7RATIO / 128098
.dw SN7RATIO / 129961
.dw SN7RATIO / 131851
.dw SN7RATIO / 133769
.dw SN7RATIO / 135715
.dw SN7RATIO / 137689
.dw SN7RATIO / 139691
.dw SN7RATIO / 141723
.dw SN7RATIO / 143784
.dw SN7RATIO / 145876
.dw SN7RATIO / 147998
.dw SN7RATIO / 150151
.dw SN7RATIO / 152335
.dw SN7RATIO / 154550
.dw SN7RATIO / 156798
.dw SN7RATIO / 159079
.dw SN7RATIO / 161393
.dw SN7RATIO / 163740
.dw SN7RATIO / 166122
.dw SN7RATIO / 168538
.dw SN7RATIO / 170990
.dw SN7RATIO / 173477
.dw SN7RATIO / 176000
.dw SN7RATIO / 178560
.dw SN7RATIO / 181157
.dw SN7RATIO / 183792
.dw SN7RATIO / 186466
.dw SN7RATIO / 189178
.dw SN7RATIO / 191930
.dw SN7RATIO / 194722
.dw SN7RATIO / 197553
.dw SN7RATIO / 200426
.dw SN7RATIO / 203342
.dw SN7RATIO / 206299
.dw C7
.DW A1S
.DW SN7RATIO / 5912
.DW SN7RATIO / 5998
.DW SN7RATIO / 6085
.DW SN7RATIO / 6174
.DW SN7RATIO / 6264
.DW SN7RATIO / 6355
.DW SN7RATIO / 6447
.DW SN7RATIO / 6541
.DW SN7RATIO / 6636
.DW SN7RATIO / 6733
.DW SN7RATIO / 6831
.DW SN7RATIO / 6930
.DW SN7RATIO / 7031
.DW SN7RATIO / 7133
.DW SN7RATIO / 7237
.DW SN7RATIO / 7342
.DW SN7RATIO / 7449
.DW SN7RATIO / 7557
.DW SN7RATIO / 7667
.DW SN7RATIO / 7778
.DW SN7RATIO / 7891
.DW SN7RATIO / 8006
.DW SN7RATIO / 8122
.DW SN7RATIO / 8241
.DW SN7RATIO / 8361
.DW SN7RATIO / 8482
.DW SN7RATIO / 8606
.DW SN7RATIO / 8731
.DW SN7RATIO / 8858
.DW SN7RATIO / 8987
.DW SN7RATIO / 9118
.DW SN7RATIO / 9250
.DW SN7RATIO / 9385
.DW SN7RATIO / 9521
.DW SN7RATIO / 9660
.DW SN7RATIO / 9800
.DW SN7RATIO / 9943
.DW SN7RATIO / 10087
.DW SN7RATIO / 10234
.DW SN7RATIO / 10383
.DW SN7RATIO / 10534
.DW SN7RATIO / 10687
.DW SN7RATIO / 10843
.DW SN7RATIO / 11000
.DW SN7RATIO / 11160
.DW SN7RATIO / 11322
.DW SN7RATIO / 11487
.DW SN7RATIO / 11654
.DW SN7RATIO / 11824
.DW SN7RATIO / 11995
.DW SN7RATIO / 12170
.DW SN7RATIO / 12347
.DW SN7RATIO / 12527
.DW SN7RATIO / 12709
.DW SN7RATIO / 12894
.DW SN7RATIO / 13081
.DW SN7RATIO / 13271
.DW SN7RATIO / 13464
.DW SN7RATIO / 13660
.DW SN7RATIO / 13859
.DW SN7RATIO / 14061
.DW SN7RATIO / 14265
.DW SN7RATIO / 14473
.DW SN7RATIO / 14683
.DW SN7RATIO / 14897
.DW SN7RATIO / 15113
.DW SN7RATIO / 15333
.DW SN7RATIO / 15556
.DW SN7RATIO / 15782
.DW SN7RATIO / 16012
.DW SN7RATIO / 16245
.DW SN7RATIO / 16481
.DW SN7RATIO / 16721
.DW SN7RATIO / 16964
.DW SN7RATIO / 17211
.DW SN7RATIO / 17461
.DW SN7RATIO / 17715
.DW SN7RATIO / 17973
.DW SN7RATIO / 18234
.DW SN7RATIO / 18500
.DW SN7RATIO / 18769
.DW SN7RATIO / 19042
.DW SN7RATIO / 19319
.DW SN7RATIO / 19600
.DW SN7RATIO / 19885
.DW SN7RATIO / 20174
.DW SN7RATIO / 20468
.DW SN7RATIO / 20765
.DW SN7RATIO / 21067
.DW SN7RATIO / 21373
.DW SN7RATIO / 21684
.DW SN7RATIO / 22000
.DW SN7RATIO / 22320
.DW SN7RATIO / 22645
.DW SN7RATIO / 22974
.DW SN7RATIO / 23308
.DW SN7RATIO / 23647
.DW SN7RATIO / 23991
.DW SN7RATIO / 24340
.DW SN7RATIO / 24694
.DW SN7RATIO / 25053
.DW SN7RATIO / 25418
.DW SN7RATIO / 25787
.DW SN7RATIO / 26163
.DW SN7RATIO / 26544
.DW SN7RATIO / 26930
.DW SN7RATIO / 27321
.DW SN7RATIO / 27718
.DW SN7RATIO / 28121
.DW SN7RATIO / 28530
.DW SN7RATIO / 28945
.DW SN7RATIO / 29366
.DW SN7RATIO / 29793
.DW SN7RATIO / 30226
.DW SN7RATIO / 30666
.DW SN7RATIO / 31113
.DW SN7RATIO / 31566
.DW SN7RATIO / 32025
.DW SN7RATIO / 32490
.DW SN7RATIO / 32963
.DW SN7RATIO / 33442
.DW SN7RATIO / 33929
.DW SN7RATIO / 34422
.DW SN7RATIO / 34923
.DW SN7RATIO / 35431
.DW SN7RATIO / 35946
.DW SN7RATIO / 36469
.DW SN7RATIO / 36999
.DW SN7RATIO / 37537
.DW SN7RATIO / 38083
.DW SN7RATIO / 38637
.DW SN7RATIO / 39200
.DW SN7RATIO / 39770
.DW SN7RATIO / 40349
.DW SN7RATIO / 40936
.DW SN7RATIO / 41530
.DW SN7RATIO / 42134
.DW SN7RATIO / 42747
.DW SN7RATIO / 43369
.DW SN7RATIO / 44000
.DW SN7RATIO / 44640
.DW SN7RATIO / 45289
.DW SN7RATIO / 45948
.DW SN7RATIO / 46616
.DW SN7RATIO / 47294
.DW SN7RATIO / 47982
.DW SN7RATIO / 48680
.DW SN7RATIO / 49388
.DW SN7RATIO / 50106
.DW SN7RATIO / 50835
.DW SN7RATIO / 51575
.DW SN7RATIO / 52325
.DW SN7RATIO / 53086
.DW SN7RATIO / 53858
.DW SN7RATIO / 54642
.DW SN7RATIO / 55437
.DW SN7RATIO / 56243
.DW SN7RATIO / 57061
.DW SN7RATIO / 57891
.DW SN7RATIO / 58733
.DW SN7RATIO / 59587
.DW SN7RATIO / 60454
.DW SN7RATIO / 61333
.DW SN7RATIO / 62225
.DW SN7RATIO / 63130
.DW SN7RATIO / 64048
.DW SN7RATIO / 64980
.DW SN7RATIO / 65925
.DW SN7RATIO / 66884
.DW SN7RATIO / 67857
.DW SN7RATIO / 68844
.DW SN7RATIO / 69846
.DW SN7RATIO / 70862
.DW SN7RATIO / 71893
.DW SN7RATIO / 72938
.DW SN7RATIO / 73999
.DW SN7RATIO / 75075
.DW SN7RATIO / 76167
.DW SN7RATIO / 77275
.DW SN7RATIO / 78399
.DW SN7RATIO / 79539
.DW SN7RATIO / 80696
.DW SN7RATIO / 81870
.DW SN7RATIO / 83061
.DW SN7RATIO / 84269
.DW SN7RATIO / 85495
.DW SN7RATIO / 86738
.DW SN7RATIO / 88000
.DW SN7RATIO / 89280
.DW SN7RATIO / 90579
.DW SN7RATIO / 91896
.DW SN7RATIO / 93233
.DW SN7RATIO / 94589
.DW SN7RATIO / 95965
.DW SN7RATIO / 97361
.DW SN7RATIO / 98777
.DW SN7RATIO / 100214
.DW SN7RATIO / 101671
.DW SN7RATIO / 103150
.DW SN7RATIO / 104650
.DW SN7RATIO / 106172
.DW SN7RATIO / 107716
.DW SN7RATIO / 109283
.DW SN7RATIO / 110873
.DW SN7RATIO / 112486
.DW SN7RATIO / 114122
.DW SN7RATIO / 115782
.DW SN7RATIO / 117466
.DW SN7RATIO / 119175
.DW SN7RATIO / 120908
.DW SN7RATIO / 122667
.DW SN7RATIO / 124451
.DW SN7RATIO / 126261
.DW SN7RATIO / 128098
.DW SN7RATIO / 129961
.DW SN7RATIO / 131851
.DW SN7RATIO / 133769
.DW SN7RATIO / 135715
.DW SN7RATIO / 137689
.DW SN7RATIO / 139691
.DW SN7RATIO / 141723
.DW SN7RATIO / 143784
.DW SN7RATIO / 145876
.DW SN7RATIO / 147998
.DW SN7RATIO / 150151
.DW SN7RATIO / 152335
.DW SN7RATIO / 154550
.DW SN7RATIO / 156798
.DW SN7RATIO / 159079
.DW SN7RATIO / 161393
.DW SN7RATIO / 163740
.DW SN7RATIO / 166122
.DW SN7RATIO / 168538
.DW SN7RATIO / 170990
.DW SN7RATIO / 173477
.DW SN7RATIO / 176000
.DW SN7RATIO / 178560
.DW SN7RATIO / 181157
.DW SN7RATIO / 183792
.DW SN7RATIO / 186466
.DW SN7RATIO / 189178
.DW SN7RATIO / 191930
.DW SN7RATIO / 194722
.DW SN7RATIO / 197553
.DW SN7RATIO / 200426
.DW SN7RATIO / 203342
.DW SN7RATIO / 206299
.DW C7
SIZ_SN7NOTETBL .EQU $ - SN7NOTETBL
.ECHO "SN76489 approx "
.ECHO SIZ_SN7NOTETBL / 2 / 4 /12
.ECHO " Octaves. Last note index supported: "
.echo SIZ_SN7NOTETBL / 2
.echo "\n"
.ECHO SIZ_SN7NOTETBL / 2
.ECHO "\n"

24
Source/HBIOS/std.asm

@ -2,7 +2,7 @@
; the requested build configuraton file to bring in platform specifics.
; There are several hardware platforms supported by SBC.
; 1. SBC Z80 SBC (v1 or v2) w/ ECB interface
; 1. SBC Z80 SBC (v1 or v2) w/ ECB interface
; 2. ZETA Standalone Z80 SBC w/ SBC compatibility
; 3. ZETA2 Second version of ZETA with enhanced memory bank switching
; 4. N8 MSX-ish Z180 SBC w/ onboard video and sound
@ -20,8 +20,8 @@
;
#INCLUDE "../ver.inc" ; ADD BIOSVER
;
FALSE .EQU 0
TRUE .EQU ~FALSE
FALSE .EQU 0
TRUE .EQU ~FALSE
;
; DEBUGGING OPTIONS
;
@ -298,9 +298,9 @@ KBD_DE .EQU 1 ; GERMAN
;
; EMULATION TYPES
;
EMUTYP_NONE .EQU 0 ; NONE
EMUTYP_TTY .EQU 1 ; TTY
EMUTYP_ANSI .EQU 2 ; ANSI
EMUTYP_NONE .EQU 0 ; NONE
EMUTYP_TTY .EQU 1 ; TTY
EMUTYP_ANSI .EQU 2 ; ANSI
;
; DEVICE DRIVER TO BE INITIALIZED FIRST. FIRST CIO DRIVER, UNIT 0 INITIALIZED BECOMES PRIMARY CONSOLE.
; IS AN INDEX INTO THE ENABLED INITIALIZATION DRIVER LIST i.e. ASCI, UART, SIO, ACIA, PIO, UF ETC.
@ -457,7 +457,7 @@ INT_SER1 .EQU 8 ; Z180 SERIAL 0
INT_PIO0A .EQU 9 ; ZILOG PIO 0, CHANNEL A
INT_PIO0B .EQU 10 ; ZILOG PIO 0, CHANNEL B
INT_PIO1A .EQU 11 ; ZILOG PIO 1, CHANNEL A
INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B
INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B
INT_SIO0 .EQU 13 ; ZILOG SIO 0, CHANNEL A & B
INT_SIO1 .EQU 14 ; ZILOG SIO 1, CHANNEL A & B
@ -470,11 +470,11 @@ INT_CTC0B .EQU 1 ; ZILOG CTC 0, CHANNEL B
INT_CTC0C .EQU 2 ; ZILOG CTC 0, CHANNEL C
INT_CTC0D .EQU 3 ; ZILOG CTC 0, CHANNEL D
INT_SIO0 .EQU 7 ; ZILOG SIO 0, CHANNEL A & B
INT_SIO1 .EQU 8 ; ZILOG SIO 1, CHANNEL A & B
INT_SIO1 .EQU 8 ; ZILOG SIO 1, CHANNEL A & B
INT_PIO0A .EQU 9 ; ZILOG PIO 0, CHANNEL A
INT_PIO0B .EQU 10 ; ZILOG PIO 0, CHANNEL B
INT_PIO1A .EQU 11 ; ZILOG PIO 1, CHANNEL A
INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B
INT_PIO0B .EQU 10 ; ZILOG PIO 0, CHANNEL B
INT_PIO1A .EQU 11 ; ZILOG PIO 1, CHANNEL A
INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B
#ENDIF
@ -488,7 +488,7 @@ INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B
#DEFINE PRTC(C) CALL PRTCH \ .DB C ; PRINT CHARACTER C TO CONSOLE - PRTC('X')
#DEFINE PRTS(S) CALL PRTSTRD \ .TEXT S ; PRINT STRING S TO CONSOLE - PRTD("HELLO")
#DEFINE PRTX(X) CALL PRTSTRI \ .DW X ; PRINT STRING AT ADDRESS X TO CONSOLE - PRTI(STR_HELLO)
#DEFINE DEBUG(S) CALL PRTSTRD \ .TEXT S \ .TEXT "$" ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED
#DEFINE DEBUG(S) CALL PRTSTRD \ .TEXT S \ .TEXT "$" ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED
;
#DEFINE XIO_PRTC(C) CALL XIO_PRTCH \ .DB C ; PRINT CHARACTER C TO CONSOLE - PRTC('X')
#DEFINE XIO_PRTS(S) CALL XIO_PRTSTRD \ .DB S ; PRINT STRING S TO CONSOLE - PRTD("HELLO")

11
Source/HBIOS/util.asm

@ -183,6 +183,17 @@ PRTHEXWORD:
POP AF
RET
;
; PRINT THE HEX WORD VALUE IN HL
;
PRTHEXWORDHL:
PUSH AF
LD A,D
CALL PRTHEXBYTE
LD A,E
CALL PRTHEXBYTE
POP AF
RET
;
; PRINT THE HEX DWORD VALUE IN DE:HL
;
PRTHEX32:

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 0
#DEFINE RTP 0
#DEFINE BIOSVER "3.1-pre.9"
#DEFINE BIOSVER "3.1-pre.10"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 0
rtp equ 0
biosver macro
db "3.1-pre.9"
db "3.1-pre.10"
endm

Loading…
Cancel
Save