Browse Source

Added Diagnostic Port Support

pull/9/head
Wayne Warthen 8 years ago
parent
commit
99b8409738
  1. 4
      Source/HBIOS/Config/RC180_std.asm
  2. 31
      Source/HBIOS/hbios.asm

4
Source/HBIOS/Config/RC180_std.asm

@ -6,8 +6,8 @@
#include "cfg_rc180.asm"
;
Z180_CLKDIV .SET 1 ; 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .SET 0 ; MEMORY WAIT STATES TO INSERT (0-3)
Z180_IOWAIT .SET 1 ; IO WAIT STATES TO INSERT (0-3)
Z180_MEMWAIT .SET 3 ; MEMORY WAIT STATES TO INSERT (0-3)
Z180_IOWAIT .SET 3 ; IO WAIT STATES TO INSERT (0-3)
;
CPUOSC .SET 18432000 ; CPU OSC FREQ
DEFSERCFG .SET SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SHOULD MATCH ABOVE)

31
Source/HBIOS/hbios.asm

@ -67,12 +67,25 @@ MODCNT .SET MODCNT + 1
;
;
;
; #DEFINE DIAGP $00
;
#IFDEF DIAGP
#DEFINE DIAG(N) PUSH AF
#DEFCONT \ LD A,N
#DEFCONT \ OUT (DIAGP),A
#DEFCONT \ POP AF
#ELSE
#DEFINE DIAG(N) \;
#ENDIF
;
;
;
#IF (INTMODE == 0)
; NO INTERRUPT HANDLING
#DEFINE HB_DI DI
#DEFINE HB_EI ;
#ELSE
; MODE 1 OR 2 INTERRUPT HANDLING
; MODE 1 OR 2 INTERRUPT HANDLING
#DEFINE HB_DI DI
#DEFINE HB_EI EI
#ENDIF
@ -635,6 +648,8 @@ HB_START:
DI ; NO INTERRUPTS
IM 1 ; INTERRUPT MODE 1
LD SP,HBX_LOC ; SETUP INITIAL STACK JUST BELOW HBIOS PROXY
DIAG(%00000001)
;
#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180))
; SET BASE FOR CPU IO REGISTERS
@ -700,6 +715,8 @@ HB_START:
LD A,1
OUT (MPGENA),A
#ENDIF
;
DIAG(%00000011)
;
; INSTALL PROXY IN UPPER MEMORY
;
@ -756,6 +773,8 @@ HB_RAMFLAG .DB FALSE ; INITIALLY FALSE, SET TO TRUE BELOW AFTER RAM TRANSITION
; EXECUTION RESUMES HERE AFTER SWITCH TO RAM BANK
;
HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
;
DIAG(%00000111)
;
LD SP,HBX_LOC ; RESET STACK SINCE WE DO NOT RETURN
LD A,TRUE ; ACCUM := TRUE
@ -785,6 +804,8 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
LD (HL),$4D
#ENDIF
#ENDIF
;
DIAG(%00001111)
;
; PERFORM DYNAMIC CPU SPEED DERIVATION
;
@ -799,6 +820,8 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
#ENDIF
;
CALL DELAY_INIT ; INITIALIZE SPEED COMPENSATED DELAY FUNCTIONS
;
DIAG(%00011111)
;
; INITIALIZE HEAP STORAGE
;
@ -810,6 +833,8 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
LD BC,BNKTOP - HB_END ; MAX SIZE OF HEAP
LD A,$FF ; FILL WITH $FF
CALL FILL ; DO IT
;
DIAG(%00111111)
;
; PRE-CONSOLE INITIALIZATION
;
@ -825,6 +850,8 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
#IF (ACIAENABLE)
CALL ACIA_PREINIT
#ENDIF
;
DIAG(%01111111)
;
; PRIOR TO THIS POINT, CONSOLE I/O WAS DIRECTED TO HARDWARE (XIO.ASM).
; NOW THAT HBIOS IS READY, SET THE CONSOLE UNIT TO ACTIVATE CONSOLE I/O
@ -838,6 +865,8 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
CALL NEWLINE2
PRTX(STR_BANNER)
;
DIAG(%11111111)
;
; IO PORT SCAN
;
#IF 0

Loading…
Cancel
Save