diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 1d48213c..50f5f407 100644 --- a/Doc/ChangeLog.txt +++ b/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 ------------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 4fdbaee4..8bc1135e 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Architecture.pdf b/Doc/RomWBW Architecture.pdf index 3987650c..9c90a8d0 100644 Binary files a/Doc/RomWBW Architecture.pdf and b/Doc/RomWBW Architecture.pdf differ diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index 2329e301..99f13233 100644 Binary files a/Doc/RomWBW Getting Started.pdf and b/Doc/RomWBW Getting Started.pdf differ diff --git a/ReadMe.md b/ReadMe.md index 030e20e5..0ef34b7f 100644 --- a/ReadMe.md +++ b/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 @@ -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. diff --git a/ReadMe.txt b/ReadMe.txt index e0241d40..4337d2cb 100644 --- a/ReadMe.txt +++ b/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. diff --git a/Source/Doc/Architecture.md b/Source/Doc/Architecture.md index eb962567..94c9a85d 100644 --- a/Source/Doc/Architecture.md +++ b/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_ diff --git a/Source/Doc/GettingStarted.md b/Source/Doc/GettingStarted.md index a92b189a..4148a245 100644 --- a/Source/Doc/GettingStarted.md +++ b/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. diff --git a/Source/HBIOS/Config/RCZ80_std.asm b/Source/HBIOS/Config/RCZ80_std.asm index 5b120cb7..5766331e 100644 --- a/Source/HBIOS/Config/RCZ80_std.asm +++ b/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 diff --git a/Source/HBIOS/audio.inc b/Source/HBIOS/audio.inc index e171eb41..e1a9fbe4 100644 --- a/Source/HBIOS/audio.inc +++ b/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 diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index 01c0f32b..8226482d 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_ezz80.asm b/Source/HBIOS/cfg_ezz80.asm index 385ca6d7..990d2e1d 100644 --- a/Source/HBIOS/cfg_ezz80.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index a4cf63d5..faafae4e 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 191128bd..8e23bf25 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 48362ebf..7cb9a714 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index 18037ad3..fcdf9d72 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 60b8675d..e682bc01 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index e16892a0..07d679ce 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index 6a3982a7..93dcb107 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index e5422759..e42d0503 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/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 \ No newline at end of file +SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER +AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 81404dcf..3af09e56 100644 --- a/Source/HBIOS/hbios.asm +++ b/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 diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index 477fcdfe..17a9ae23 100644 --- a/Source/HBIOS/hbios.inc +++ b/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 diff --git a/Source/HBIOS/sn76489.asm b/Source/HBIOS/sn76489.asm index 68928dfb..18f7f649 100644 --- a/Source/HBIOS/sn76489.asm +++ b/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" diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 93015bd8..3c2f8af0 100644 --- a/Source/HBIOS/std.asm +++ b/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") diff --git a/Source/HBIOS/util.asm b/Source/HBIOS/util.asm index f647a5a4..a1ca84ff 100644 --- a/Source/HBIOS/util.asm +++ b/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: diff --git a/Source/ver.inc b/Source/ver.inc index c6cdf73b..f20047e5 100644 --- a/Source/ver.inc +++ b/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" diff --git a/Source/ver.lib b/Source/ver.lib index 1524ad08..821e6368 100644 --- a/Source/ver.lib +++ b/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