|
|
|
@ -1374,19 +1374,33 @@ Z280_INITZ: |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; S100 ROM CONTAINS A HARDWARE LEVEL MONITOR IN BANK ID 3 OF ROM. |
|
|
|
; IF PORT $65 BIT 1 IS SET (SET IS ZERO), THEN WE IMMEDIATELY |
|
|
|
; TRANSITION TO THIS MONITOR. |
|
|
|
; IF PORT $75 BIT 1 IS SET (SET IS ZERO), THEN WE IMMEDIATELY |
|
|
|
; TRANSITION TO THIS MONITOR. PRIOR TO THE TRANSITION, WE ALSO |
|
|
|
; CHECK THE VALUE IN THE Z180 RELOAD REGISTER LOW. IF IT IS ASCII 'W', |
|
|
|
; THEN IT MEANS THE S100 MONITOR IS ATTEMPTING TO REBOOT INTO ROMWBW |
|
|
|
; HBIOS. |
|
|
|
; |
|
|
|
#IF ((PLATFORM == PLT_S100) & TRUE) |
|
|
|
IN A,($65) ; READ SWITCHES |
|
|
|
; CHECK S100 BOARD DIP SWITCH, BIT 1 |
|
|
|
IN A,($75) ; READ SWITCHES |
|
|
|
BIT 1,A ; CHECK BIT 1 |
|
|
|
JR NZ,S100MON_SKIP ; IF NOT SET, BYPASS |
|
|
|
JR NZ,S100MON_SKIP ; IF NOT SET, CONT ROMWBW BOOT |
|
|
|
; |
|
|
|
; CHECK RELOAD REGISTER LOW FOR SPECIAL VALUE |
|
|
|
IN0 A,(Z180_RLDR1L) ; GET RELOAD REG 1 LOW |
|
|
|
CP 'W' ; CHECK FOR SPECIAL VALUE |
|
|
|
JR Z,S100MON_SKIP ; IF SO, DO ROMWBW BOOT |
|
|
|
; |
|
|
|
; LAUNCH S100 MONITOR FROM ROM BANK 3 |
|
|
|
LD A,BID_IMG2 ; S100 MONITOR BANK |
|
|
|
LD IX,0 ; EXECUTION RESUMES HERE |
|
|
|
CALL HBX_BNKCALL ; CONTINUE IN RAM BANK, DO NOT RETURN |
|
|
|
HALT ; WE SHOULD NOT COME BACK HERE! |
|
|
|
; |
|
|
|
S100MON_SKIP: |
|
|
|
; RESTORE DEFAULT RELOAD REGISTER VALUE (PROBABLY NOT NEEDED) |
|
|
|
XOR A |
|
|
|
OUT0 (Z180_RLDR1L),A |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; SAVE CURRENT BANKID |
|
|
|
|