|
|
|
@ -598,28 +598,6 @@ INT_IM1: |
|
|
|
; JR HBX_INT ; GO TO ROUTING CODE |
|
|
|
; #ENDIF |
|
|
|
;; |
|
|
|
;#IF (PIO_ZP) |
|
|
|
;INT_ZP0: ; PIO INTERRUPT HANDLER |
|
|
|
; PUSH HL ; SAVE HL |
|
|
|
; LD HL,PIO0INT ; HL := PIO INT HANDLER IN BIOS BANK |
|
|
|
; JR HBX_INT ; GO TO ROUTING CODE |
|
|
|
;INT_ZP1 |
|
|
|
; PUSH HL ; SAVE HL |
|
|
|
; LD HL,PIO1INT ; HL := PIO INT HANDLER IN BIOS BANK |
|
|
|
; JR HBX_INT ; GO TO ROUTING CODE |
|
|
|
;#ENDIF |
|
|
|
;; |
|
|
|
;#IF (PIO_4P) |
|
|
|
;INT_4P0: ; PIO INTERRUPT HANDLER |
|
|
|
; PUSH HL ; SAVE HL |
|
|
|
; LD HL,PIO2INT ; HL := PIO INT HANDLER IN BIOS BANK |
|
|
|
; JR HBX_INT ; GO TO ROUTING CODE |
|
|
|
;INT_4P1: |
|
|
|
; PUSH HL ; SAVE HL |
|
|
|
; LD HL,PIO3INT ; HL := PIO INT HANDLER IN BIOS BANK |
|
|
|
; JR HBX_INT ; GO TO ROUTING CODE |
|
|
|
;#ENDIF |
|
|
|
;; |
|
|
|
;#ENDIF |
|
|
|
; |
|
|
|
#IF (INTMODE > 0) |
|
|
|
@ -967,6 +945,20 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
|
LD HL,MSG_HBVER |
|
|
|
CALL DSKY_SHOWSEG |
|
|
|
#ENDIF |
|
|
|
|
|
|
|
#IF (WBWDEBUG=USEMIO) ; BUFFER OUTPUT UNTIL |
|
|
|
CALL MIO_INIT ; WE GET TO BOOT MESSAGE |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
PRTS("DEBUG-IVT$") |
|
|
|
LD DE,HB_IVT |
|
|
|
CALL DUMP_BUFFER |
|
|
|
CALL NEWLINE |
|
|
|
; |
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
; |
|
|
|
; DISCOVER CPU TYPE |
|
|
|
; |
|
|
|
@ -1039,6 +1031,14 @@ HB_CPU1: |
|
|
|
; |
|
|
|
; PRE-CONSOLE INITIALIZATION |
|
|
|
; |
|
|
|
|
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
CALL NEWLINE |
|
|
|
CALL REGDMP |
|
|
|
; |
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
#IF (ASCIENABLE) |
|
|
|
CALL ASCI_PREINIT |
|
|
|
#ENDIF |
|
|
|
@ -1054,15 +1054,48 @@ HB_CPU1: |
|
|
|
#IF (PIO_4P | PIO_ZP) |
|
|
|
CALL PIO_PREINIT |
|
|
|
#ENDIF |
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
CALL NEWLINE |
|
|
|
CALL REGDMP |
|
|
|
; |
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
DIAG(%01111111) |
|
|
|
; |
|
|
|
; PRIOR TO THIS POINT, CONSOLE I/O WAS DIRECTED TO HARDWARE (XIO.ASM). |
|
|
|
; PRIOR TO THIS POINT, CONSOLE I/O WAS NOT AVAILABLE UNLESS DIRECTED TO DEBUG OUTPUT I.E. XIO |
|
|
|
; NOW THAT HBIOS IS READY, SET THE CONSOLE UNIT TO ACTIVATE CONSOLE I/O |
|
|
|
; VIA HBIOS. |
|
|
|
; |
|
|
|
XOR A ; INITIALLY, FIRST SERIAL UNIT IS CONSOLE |
|
|
|
LD (CB_CONDEV),A ; SAVE IT, ACTIVATES CONSOLE ON HBIOS |
|
|
|
|
|
|
|
#IF (WBWDEBUG=USEMIO) ; OUTPUT ANY CACHED DEBUG TEXT |
|
|
|
LD HL,MIOOUTPTR |
|
|
|
LD E,(HL) |
|
|
|
INC HL |
|
|
|
LD D,(HL) |
|
|
|
INC HL |
|
|
|
NXTMIO: LD A,(HL) |
|
|
|
CALL COUT |
|
|
|
INC HL |
|
|
|
LD A,L |
|
|
|
CP E |
|
|
|
JR NZ,NXTMIO |
|
|
|
LD A,H |
|
|
|
CP D |
|
|
|
JR NZ,NXTMIO |
|
|
|
; CALL WRITESTR ; WRITESTR WILL WORK WILL ONLY PRINT UP TO FIRST $ |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
CALL NEWLINE2 |
|
|
|
PRTS("DEBUG+IVT$") |
|
|
|
LD DE,HB_IVT |
|
|
|
CALL DUMP_BUFFER |
|
|
|
; |
|
|
|
; TEST DEBUG *************************************************************************************** |
|
|
|
; |
|
|
|
; ANNOUNCE HBIOS |
|
|
|
; |
|
|
|
@ -2728,7 +2761,13 @@ SIZ_PIO .EQU $ - ORG_PIO |
|
|
|
#INCLUDE "time.asm" |
|
|
|
#INCLUDE "bcd.asm" |
|
|
|
#INCLUDE "decode.asm" |
|
|
|
;#INCLUDE "xio.asm" |
|
|
|
; |
|
|
|
#IF WBWDEBUG=USEXIO |
|
|
|
#INCLUDE "xio.asm" |
|
|
|
#ENDIF |
|
|
|
#IF WBWDEBUG=USEMIO |
|
|
|
#INCLUDE "mio.asm" |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (DSKYENABLE) |
|
|
|
#DEFINE DSKY_KBD |
|
|
|
@ -3511,7 +3550,7 @@ COUT: |
|
|
|
LD E,A ; TEMPORARILY STASH OUTPUT CHAR IN E |
|
|
|
LD A,(CB_CONDEV) ; GET CONSOLE UNIT BYTE |
|
|
|
CP $FF ; TEST FOR $FF (HBIOS NOT READY) |
|
|
|
JR Z,COUT1 ; IF NOT READY, USE XIO |
|
|
|
JR Z,COUT1 ; IF NOT READY, TRY DEBUG OUTPUT |
|
|
|
; |
|
|
|
; USE HBIOS |
|
|
|
LD C,A ; CONSOLE UNIT TO C |
|
|
|
@ -3520,9 +3559,15 @@ COUT: |
|
|
|
JR COUT2 ; CONTINUE |
|
|
|
; |
|
|
|
COUT1: |
|
|
|
;; USE XIO |
|
|
|
;LD A,E ; GET OUTPUT CHAR BACK TO ACCUM |
|
|
|
;CALL XIO_OUTC ; OUTPUT VIA XIO |
|
|
|
; |
|
|
|
#IF WBWDEBUG=USEXIO |
|
|
|
LD A,E ; GET OUTPUT CHAR BACK TO ACCUM |
|
|
|
CALL XIO_OUTC ; OUTPUT VIA XIO |
|
|
|
#ENDIF |
|
|
|
#IF WBWDEBUG=USEMIO |
|
|
|
LD A,E |
|
|
|
CALL MIO_OUTC ; OUTPUT VIA MIO |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
COUT2: |
|
|
|
; RESTORE ALL REGISTERS |
|
|
|
@ -3542,7 +3587,7 @@ CIN: |
|
|
|
; |
|
|
|
LD A,(CB_CONDEV) ; GET CONSOLE UNIT BYTE |
|
|
|
CP $FF ; TEST FOR $FF (HBIOS NOT READY) |
|
|
|
JR Z,CIN1 ; IF NOT READY, USE XIO |
|
|
|
JR Z,CIN1 ; IF NOT READY, TRY DEBUG INPUT |
|
|
|
; |
|
|
|
; USE HBIOS |
|
|
|
LD C,A ; CONSOLE UNIT TO C |
|
|
|
@ -3552,8 +3597,13 @@ CIN: |
|
|
|
JR CIN2 ; CONTINUE |
|
|
|
; |
|
|
|
CIN1: |
|
|
|
;; USE XIO |
|
|
|
;CALL XIO_INC ; GET CHAR |
|
|
|
; |
|
|
|
#IF WBWDEBUG=USEXIO |
|
|
|
CALL XIO_INC ; GET CHAR |
|
|
|
#ENDIF |
|
|
|
#IF WBWDEBUG=USEMIO |
|
|
|
CALL MIO_INC ; GET CHAR |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
CIN2: |
|
|
|
; |
|
|
|
@ -3573,7 +3623,7 @@ CST: |
|
|
|
; |
|
|
|
LD A,(CB_CONDEV) ; GET CONSOLE UNIT BYTE |
|
|
|
CP $FF ; TEST FOR $FF (HBIOS NOT READY) |
|
|
|
JR Z,CST1 ; IF NOT READY, USE XIO |
|
|
|
JR Z,CST1 ; IIF NOT READY, TRY DEBUG DEBUG STATUS |
|
|
|
; |
|
|
|
; USE HBIOS |
|
|
|
LD C,A ; CONSOLE UNIT TO C |
|
|
|
@ -3582,8 +3632,13 @@ CST: |
|
|
|
JR CST2 ; CONTINUE |
|
|
|
; |
|
|
|
CST1: |
|
|
|
;; USE XIO |
|
|
|
;CALL XIO_IST ; GET STATUS |
|
|
|
; |
|
|
|
#IF WBWDEBUG=USEXIO |
|
|
|
CALL XIO_IST ; GET STATUS |
|
|
|
#ENDIF |
|
|
|
#IF WBWDEBUG=USEMIO |
|
|
|
CALL MIO_IST ; GET STATUS |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
CST2: |
|
|
|
; RESTORE REGISTERS (AF IS OUTPUT) |
|
|
|
|