diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index c86c361f..2e017e0f 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -1628,7 +1628,6 @@ HB_INIT_REC: #IF (PLATFORM == PLT_SBC) .DW UART_INIT .DW MD_INIT - .DW FD_INIT #ENDIF HB_INITRLEN .EQU (($ - HB_INIT_REC) / 2) ; @@ -1646,6 +1645,9 @@ HB_PCINITTBL: #IF (UARTENABLE) .DW UART_PREINIT #ENDIF +#IF (DUARTENABLE) + .DW DUART_PREINIT +#ENDIF #IF (SIOENABLE) .DW SIO_PREINIT #ENDIF @@ -1671,14 +1673,14 @@ HB_INITTBL: #IF (CTCENABLE) .DW CTC_INIT #ENDIF -#IF (AY38910ENABLE) - .DW AY38910_INIT ; AUDIBLE INDICATOR OF BOOT START +#IF (SPKENABLE) + .DW SP_INIT ; AUDIBLE INDICATOR OF BOOT START #ENDIF #IF (SN76489ENABLE) .DW SN76489_INIT #ENDIF -#IF (SPKENABLE) - .DW SP_INIT ; AUDIBLE INDICATOR OF BOOT START +#IF (AY38910ENABLE) + .DW AY38910_INIT ; AUDIBLE INDICATOR OF BOOT START #ENDIF #IF (ASCIENABLE) .DW ASCI_INIT @@ -1686,6 +1688,9 @@ HB_INITTBL: #IF (UARTENABLE) .DW UART_INIT #ENDIF +#IF (DUARTENABLE) + .DW DUART_INIT +#ENDIF #IF (SIOENABLE) .DW SIO_INIT #ENDIF @@ -3151,6 +3156,15 @@ SIZ_UART .EQU $ - ORG_UART .ECHO " bytes.\n" #ENDIF ; +#IF (DUARTENABLE) +ORG_DUART .EQU $ + #INCLUDE "duart.asm" +SIZ_DUART .EQU $ - ORG_DUART + .ECHO "DUART occupies " + .ECHO SIZ_DUART + .ECHO " bytes.\n" +#ENDIF +; #IF (SIOENABLE) ORG_SIO .EQU $ #INCLUDE "sio.asm" @@ -3666,15 +3680,10 @@ PRTSUM: LD C,BF_SYSGET_DIOCNT ; DISK DRIVES LD HL,PS_DISK CALL PRT_ALLD -; + LD C,BF_SYSGET_VDACNT ; VIDEO DEVICES LD HL,PS_VIDEO CALL PRT_ALLD - - LD C,BF_SYSGET_SNDCNT ; SOUND DEVICES - LD HL,PS_SOUND - CALL PRT_ALLD -; RET ; PRT_ALLD: @@ -4017,56 +4026,6 @@ PS_PRTVC: CALL PRTDECB RET ; -; PRINT SOUND CONFIG -; -PS_SOUND: - PUSH BC - - ; UNIT COLUMN - PRTS("Sound $") - LD A,C ; MOVE UNIT NUM TO A - CALL PRTDECB ; PRINT IT - CP 10 ; CHECK FOR MULTIPLE DIGITS - CALL C,PC_SPACE ; EXTRA SPACE IF NEEDED - PRTS(" $") ; PAD TO NEXT COLUMN - - ; DEVICE COLUMN - - PUSH BC ; - LD E,C - XOR A - LD DE,PS_SDSND ; POINT TO DEVICE TYPE NAME TABLE - CALL PRTIDXDEA ; PRINT DEVICE NMEMONIC PADDED TO FIELD WIDTH - LD A,C ; MOVE UNIT NUM TO A - CALL PRTDECB ; PRINT IT - CALL PC_COLON - CP 10 ; CHECK FOR MULTIPLE DIGITS - CALL C,PC_SPACE ; EXTRA SPACE IF NEEDED - LD A,(PRTIDXCNT) - SUB 9+1 - CPL - CALL PS_PAD - POP BC - - ; DEVICE TYPE -; - LD B,BF_SNDQUERY ; FUNC=GET DEVICE INFO, UNIT NUM STILL IN C - LD E,BF_SNDQ_DEV - RST 08 - LD A,B - DEC A - LD DE,PS_SDSN76489 - CALL PRTIDXDEA - LD A,(PRTIDXCNT) - SUB 18+1 - CPL - CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A) -; - CALL NEWLINE -; - POP BC - RET -; ; PRINT DEVICE NMEMONIC, DEVTYP/NUM SPECIFIED IN DE ; PS_PRTDEV: @@ -4075,7 +4034,6 @@ PS_PRTDEV: RRCA RRCA RRCA -PS_PRTDEV1: RLCA ; X2 FOR WORD OFFSET IN STRING TABLE CALL ADDHLA LD A,(HL) @@ -4097,9 +4055,10 @@ PS_PRTNUL: LD HL,PS_STRNUL ; FALL THRU TO PS_PRT ; -; PRINT STRING AT (HL), $ TERM, RETURN CHARS PRINTED IN C +; ; PS_PRT: + ; PRINT STRING AT (HL), $ TERM, RETURN CHARS PRINTED IN C LD C,0 ; INIT CHAR COUNT PS_PRT1: LD A,(HL) ; GET CHAR @@ -4110,9 +4069,10 @@ PS_PRT1: INC C ; BUMP COUNTER JR PS_PRT1 ; AND LOOP ; -; PAD N SPACES SPECIFIED IN A +; ; PS_PAD: + ; PAD N SPACES SPECIFIED IN A LD B,A LD A,' ' PS_PAD1: @@ -4179,7 +4139,7 @@ PS_FLP_DSTR: .TEXT "SD$" ; PS_FLPSD ; PS_SDSTRREF: .DW PS_SDUART, PS_SDASCI, PS_SDTERM - .DW PS_SDPRPCON, PS_SDPPPCON, PS_SDSIO, PS_SDACIA, PS_SDPIO,PS_SDUF + .DW PS_SDPRPCON, PS_SDPPPCON, PS_SDSIO, PS_SDACIA, PS_SDPIO,PS_SDUF,PS_SDDUART ; PS_SDUART .TEXT "UART$" PS_SDASCI .TEXT "ASCI$" @@ -4190,6 +4150,7 @@ PS_SDSIO .TEXT "SIO$" PS_SDACIA .TEXT "ACIA$" PS_SDPIO .TEXT "PORT$" PS_SDUF .TEXT "UF$" +PS_SDDUART .TEXT "DUART$" ; ; CHARACTER SUB TYPE STRINGS ; @@ -4221,16 +4182,6 @@ PS_VDVGA .TEXT "VGA$" ; PS_VTCRT .TEXT "CRT$" ; -; SOUND DEVICE STRINGS -; -PS_SDSND .TEXT "SND$" -; -; SOUND TYPE STRINGS -; -PS_SDSN76489 .TEXT "SN76489$" -PS_SDAY38910 .TEXT "AY-3-8910$" -PS_SDBITMODE .TEXT "BITMODE$" -; ; 0 1 2 3 4 5 6 7 ; 01234567890123456789012345678901234567890123456789012345678901234567890123456789 PS_STRHDR .TEXT "Unit Device Type Capacity/Mode\r\n"