From e3805d41383a8286b9d77ff8e5cbe5f53c67e2cc Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 22 Apr 2019 16:03:02 -0700 Subject: [PATCH] Minor Cleanup --- Source/HBIOS/acia.asm | 1 + Source/HBIOS/asci.asm | 1 + Source/HBIOS/hbios.asm | 125 ++++++++++++++++++++++++----------------- Source/HBIOS/ppp.asm | 2 +- Source/HBIOS/prp.asm | 2 +- Source/HBIOS/sio.asm | 1 + Source/HBIOS/uart.asm | 1 + 7 files changed, 80 insertions(+), 53 deletions(-) diff --git a/Source/HBIOS/acia.asm b/Source/HBIOS/acia.asm index b0b0fa8b..966474df 100644 --- a/Source/HBIOS/acia.asm +++ b/Source/HBIOS/acia.asm @@ -460,6 +460,7 @@ ACIA_QUERY: ACIA_DEVICE: LD D,CIODEV_ACIA ; D := DEVICE TYPE LD E,(IY) ; E := PHYSICAL UNIT + LD C,$00 ; C := DEVICE TYPE, 0x00 IS RS-232 XOR A ; SIGNAL SUCCESS RET ; diff --git a/Source/HBIOS/asci.asm b/Source/HBIOS/asci.asm index d3ef04c7..13ea9528 100644 --- a/Source/HBIOS/asci.asm +++ b/Source/HBIOS/asci.asm @@ -259,6 +259,7 @@ ASCI0_QUERY: ASCI0_DEVICE: LD D,CIODEV_ASCI ; D := DEVICE TYPE LD E,0 ; E := PHYSICAL UNIT + LD C,$00 ; C := DEVICE TYPE, 0x00 IS RS-232 XOR A ; SIGNAL SUCCESS RET ; diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 8f7e32f3..18101f7b 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -124,7 +124,7 @@ MODCNT .SET MODCNT + 1 RET .FILL (038H - $),0FFH ; RST 38 / IM1 INT #IF (INTMODE == 1) - JP INT_IM1 ; JP TO INTERRUPT HANDLER IN HI MEM + JP INT_IM1 ; JP TO INTERRUPT HANDLER IN HI MEM #ELSE RETI ; RETURN W/ INTS DISABLED #ENDIF @@ -237,12 +237,12 @@ HBX_INVOKE: LD A,BID_BIOS ; HBIOS BANK CALL HBX_BNKSEL ; SELECT IT LD SP,HB_STACK ; NOW USE FULL HBIOS STACK IN HBIOS BANK - + CALL HB_DISPATCH ; CALL HBIOS FUNCTION DISPATCHER LD SP,HBX_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM FOR BANK SWITCH PUSH AF ; SAVE AF (FUNCTION RETURN) - + LD A,(HB_INVBNK) ; LOAD ORIGINAL BANK CALL HBX_BNKSEL ; SELECT IT POP AF ; RESTORE AF @@ -479,43 +479,66 @@ HBX_STACK .EQU $ ; ; HBIOS INTERRUPT VECTOR TABLE (16 ENTRIES) ; +; # SBC N8,MK4 ZETA ZETA2 +; --- -------------- -------------- -------------- -------------- +; 0 CTC0A Z180/INT1 CTC0A/PRESCL +; 1 CTC0B Z180/INT2 CTC0B/TIMER +; 2 CTC0C Z180/TIM0 CTC0C/UART +; 3 CTC0D Z180/TIM1 CTC0D/FDC +; 4 Z180/DMA0 +; 5 Z180/DMA1 +; 6 Z180/CSIO +; 7 SIO0 Z180/SER0 +; 8 SIO1 Z180/SER1 +; 9 PIO0A PIO0A +; 10 PIO0B PIO0B +; 11 PIO1A PIO1A +; 12 PIO1B PIO1B +; 13 +; 14 +; 15 +; 16 +; +; # RC RC180 EZZ80 +; --- -------------- -------------- ------------- +; 0 CTC0A Z180/INT1 CTC0A/SIO0CLK +; 1 CTC0B Z180/INT2 CTC0B/SIO1CLK +; 2 CTC0C Z180/TIM0 CTC0C/PRESCL +; 3 CTC0D Z180/TIM1 CTC0D/TIMER +; 4 Z180/DMA0 +; 5 Z180/DMA1 +; 6 Z180/CSIO +; 7 SIO0 Z180/SER0 SIO0 +; 8 SIO1 Z180/SER1 SIO1 +; 9 PIO0A PIO0A PIO0A +; 10 PIO0B PIO0B PIO0B +; 11 PIO1A PIO1A PIO1A +; 12 PIO1B PIO1B PIO1B +; 13 +; 14 +; 15 +; 16 +; HBX_IVT: - .DW INT_BAD ; IVT_INT1 - .DW INT_BAD ; IVT_INT2 - .DW INT_BAD ; IVT_TIM0 - .DW INT_BAD ; IVT_TIM1 - .DW INT_BAD ; IVT_DMA0 - .DW INT_BAD ; IVT_DMA1 - .DW INT_BAD ; IVT_CSIO - .DW INT_BAD ; IVT_SER0 - .DW INT_BAD ; IVT_SER1 - .DW INT_BAD ; IVT_PIO0 - .DW INT_BAD ; IVT_PIO1 - .DW INT_BAD ; IVT_PIO2 - .DW INT_BAD ; IVT_PIO3 - .DW INT_BAD ; - .DW INT_BAD ; - .DW INT_BAD ; + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD + .DW INT_BAD ; HBX_IVTCNT .EQU ($ - HBX_IVT) / 2 ; -HBX_ITBL: - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT - .DW HB_BADINT #ENDIF ; ; INTERRUPT HANDLER STUBS @@ -592,7 +615,7 @@ HBX_INT: ; COMMON INTERRUPT ROUTING CODE PUSH BC ; SAVE BC PUSH DE ; SAVE DE PUSH IY ; SAVE IY - + LD A,BID_BIOS ; HBIOS BANK CALL HBX_BNKSEL_INT ; SELECT IT @@ -600,7 +623,7 @@ HBX_INT: ; COMMON INTERRUPT ROUTING CODE LD A,(HB_CURBNK) ; GET PRE-INT BANK CALL HBX_BNKSEL ; SELECT IT - + ; RESTORE STATE POP IY ; RESTORE IY POP DE ; RESTORE DE @@ -679,12 +702,12 @@ HB_STACK .EQU $ ; TOP OF HBIOS STACK HB_START: DI ; NO INTERRUPTS IM 1 ; INTERRUPT MODE 1 -; +; #IFDEF DIAGP LD A,%00000001 OUT (DIAGP),A #ENDIF -; +; LD SP,HBX_LOC ; SETUP INITIAL STACK JUST BELOW HBIOS PROXY ; #IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) @@ -693,7 +716,7 @@ HB_START: OUT0 (Z180_ICR),A DIAG(%00000010) - + ; DISABLE REFRESH XOR A OUT0 (Z180_RCR),A @@ -912,7 +935,7 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK PRTX(STR_BANNER) ; DIAG(%11111111) -; +; ; IO PORT SCAN ; #IF 0 @@ -956,7 +979,7 @@ PSCNX .EQU $ + 1 ; SETUP Z80 IVT AND INT MODE 2 LD A,HBX_IVT >> 8 ; SETUP HI BYTE OF IVT ADDRESS LD I,A ; ... AND PLACE IT IN I REGISTER - + #IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) ; SETUP Z180 IVT XOR A ; SETUP LO BYTE OF IVT ADDRESS @@ -1446,7 +1469,7 @@ CIO_DISPATCH: LD IY,CIO_TBL ; POINT IY TO START OF DIO TABLE CALL HB_DISPCALL ; GO TO GENERIC API CALL CODE - + POP IY ; RESTORE IY RET ; AND DONE ; @@ -1479,7 +1502,7 @@ CIO_ADDENT: CIO_FNCNT .EQU 7 ; NUMBER OF CIO FUNCS (FOR RANGE CHECK) CIO_MAX .EQU 32 ; UP TO 32 UNITS CIO_SIZ .EQU CIO_MAX * 4 ; EACH ENTRY IS 4 BYTES -; +; .DB CIO_FNCNT ; CIO FUNCTION COUNT (FOR RANGE CHECK) .DB CIO_MAX ; MAX ENTRY COUNT TABLE PREFIX CIO_CNT .DB 0 ; ENTRY COUNT PREFIX @@ -1518,7 +1541,7 @@ DIO_DISPCALL: LD IY,DIO_TBL ; POINT IY TO START OF DIO TABLE CALL HB_DISPCALL ; GO TO GENERIC API CALL CODE - + POP IY ; RESTORE IY RET ; AND DONE ; @@ -1542,7 +1565,7 @@ DIO_ADDENT: DIO_FNCNT .EQU 12 ; NUMBER OF DIO FUNCS (FOR RANGE CHECK) DIO_MAX .EQU 16 ; UP TO 16 UNITS DIO_SIZ .EQU DIO_MAX * 4 ; EACH ENTRY IS 4 BYTES -; +; .DB DIO_FNCNT ; DIO FUNCTION COUNT (FOR RANGE CHECK) .DB DIO_MAX ; MAX ENTRY COUNT TABLE PREFIX DIO_CNT .DB 0 ; ENTRY COUNT PREFIX @@ -1577,7 +1600,7 @@ VDA_DISPATCH: LD IY,VDA_TBL ; POINT IY TO START OF DIO TABLE CALL HB_DISPCALL ; GO TO GENERIC API CALL CODE - + POP IY ; RESTORE IY RET ; AND DONE ; @@ -1951,7 +1974,7 @@ SYS_INTINFO: ; ROUTINE SHARED BY INT GET/SET. RETURNS ADDRESS OF VECTOR FOR SPECIFIED LIST / TABLE ; POSITION. ZF SET ON RETURN FOR SUCCESS, ELSE ERROR. ; -SYS_INTVECADR: +SYS_INTVECADR: #IF (INTMODE == 0) CALL PANIC ; INVALID FOR INT MODE 0 OR $FF @@ -2965,10 +2988,10 @@ PS_SERIAL: PUSH BC ; SAVE UNIT INDEX FOR LATER ; ; UNIT COLUMN - PRTS("Char $" + PRTS("Char $") LD A,C ; MOVE UNIT NUM TO A CALL PRTDECB ; PRINT IT, ASSUME SINGLE DIGIT - PRTS(" $") ; PAD TO NEXT COLUMN + PRTS(" $") ; PAD TO NEXT COLUMN ; ; DEVICE COLUMN LD B,BF_CIODEVICE ; FUNC=GET DEVICE INFO, UNIT NUM STILL IN C diff --git a/Source/HBIOS/ppp.asm b/Source/HBIOS/ppp.asm index ec4782a6..79881377 100644 --- a/Source/HBIOS/ppp.asm +++ b/Source/HBIOS/ppp.asm @@ -353,7 +353,7 @@ PPPCON_QUERY: PPPCON_DEVICE: LD D,CIODEV_PPPCON ; D := DEVICE TYPE LD E,0 ; E := DEVICE NUM, ALWAYS 0 - LD C,$FF ; $FF MEANS TERM W/ NO ATTACHED VDA + LD C,$80 ; C := DEVICE TYPE, 0x80 IS TERMINAL XOR A ; SIGNAL SUCCESS RET ; diff --git a/Source/HBIOS/prp.asm b/Source/HBIOS/prp.asm index 9444eafd..11518311 100644 --- a/Source/HBIOS/prp.asm +++ b/Source/HBIOS/prp.asm @@ -226,7 +226,7 @@ PRPCON_QUERY: PRPCON_DEVICE: LD D,CIODEV_PRPCON ; D := DEVICE TYPE LD E,0 ; E := DEVICE NUM, ALWAYS 0 - LD C,$FF ; $FF MEANS TERM W/ NO ATTACHED VDA + LD C,$80 ; C := DEVICE TYPE, 0x80 IS TERMINAL XOR A ; SIGNAL SUCCESS RET ; diff --git a/Source/HBIOS/sio.asm b/Source/HBIOS/sio.asm index ca998c8f..d2f9ecc7 100644 --- a/Source/HBIOS/sio.asm +++ b/Source/HBIOS/sio.asm @@ -642,6 +642,7 @@ SIO_QUERY: SIO_DEVICE: LD D,CIODEV_SIO ; D := DEVICE TYPE LD E,(IY) ; E := PHYSICAL UNIT + LD C,$00 ; C := DEVICE TYPE, 0x00 IS RS-232 XOR A ; SIGNAL SUCCESS RET ; diff --git a/Source/HBIOS/uart.asm b/Source/HBIOS/uart.asm index 2e8fdb8f..565511b7 100644 --- a/Source/HBIOS/uart.asm +++ b/Source/HBIOS/uart.asm @@ -326,6 +326,7 @@ UART_QUERY: UART_DEVICE: LD D,CIODEV_UART ; D := DEVICE TYPE LD E,(IY) ; E := PHYSICAL UNIT + LD C,$00 ; C := DEVICE TYPE, 0x00 IS RS-232 XOR A ; SIGNAL SUCCESS RET ;