mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Merge pull request #34 from b1ackmai1er/master
Add debugging module mio
This commit is contained in:
@@ -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)
|
||||
|
||||
49
Source/HBIOS/mio.asm
Normal file
49
Source/HBIOS/mio.asm
Normal file
@@ -0,0 +1,49 @@
|
||||
;___MIO________________________________________________________________________________________________________________
|
||||
;
|
||||
; MEMORY MAPPED I/O
|
||||
;
|
||||
; PROVIDES AN INTERFACE TO BUFFER OUTPUT FROM PRE-INITIALIZATION
|
||||
; FUNCTIONS PRIOR TO OTHER OUTPUT METHODS BEING AVAILABLE
|
||||
;______________________________________________________________________________________________________________________
|
||||
;
|
||||
; $ CODE NOT STRICTLY REQUIRED.
|
||||
;
|
||||
MIOOUTPTR .EQU BNKTOP
|
||||
;
|
||||
MIO_INIT: ; MINIMAL INIT
|
||||
PUSH HL
|
||||
LD HL,MIOOUTPTR+2
|
||||
LD (MIOOUTPTR),HL
|
||||
LD (HL),'$'
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
MIO_OUTC: ; OUTPUT BYTE IN A
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD HL,MIOOUTPTR
|
||||
LD E,(HL)
|
||||
INC HL
|
||||
LD D,(HL)
|
||||
LD H,D
|
||||
LD L,E
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD (MIOOUTPTR),HL
|
||||
LD (HL),'$'
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
; NOT USED AT THE MOMENT
|
||||
;
|
||||
MIO_INC: ; INPUT BYTE TO A
|
||||
LD A,'$'
|
||||
RET
|
||||
;
|
||||
;
|
||||
MIO_IST: ; INPUT STATUS TO A (NUM CHARS WAITING)
|
||||
LD A,1
|
||||
OR A
|
||||
RET ; DONE
|
||||
;
|
||||
@@ -27,6 +27,13 @@
|
||||
FALSE .EQU 0
|
||||
TRUE .EQU ~FALSE
|
||||
;
|
||||
; DEBUGGNG OPTIONS
|
||||
;
|
||||
USENONE .EQU 0 ; NO DEBUG
|
||||
USEXIO .EQU 1 ; BASIC SERIAL DRIVER
|
||||
USEMIO .EQU 2 ; MEMORY BUFFER DRIVER
|
||||
WBWDEBUG .EQU USENONE
|
||||
;
|
||||
; PRIMARY HARDWARE PLATFORMS
|
||||
;
|
||||
PLT_SBC .EQU 1 ; SBC ECB Z80 SBC
|
||||
|
||||
Reference in New Issue
Block a user