|
|
|
@ -97,10 +97,21 @@ MODCNT .SET MODCNT + 1 |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (LEDENABLE) |
|
|
|
#DEFINE LED(N) PUSH AF |
|
|
|
#DEFCONT \ LD A,~N |
|
|
|
#DEFCONT \ OUT (LEDPORT),A |
|
|
|
#DEFCONT \ POP AF |
|
|
|
#IF (LEDMODE == LEDMODE_STD) |
|
|
|
#DEFINE LED(N) PUSH AF |
|
|
|
#DEFCONT \ LD A,~N |
|
|
|
#DEFCONT \ OUT (LEDPORT),A |
|
|
|
#DEFCONT \ POP AF |
|
|
|
#ENDIF |
|
|
|
#IF (LEDMODE == LEDMODE_RTC) |
|
|
|
#DEFINE LED(N) PUSH AF |
|
|
|
#DEFCONT \ LD A,(RTCVAL) |
|
|
|
#DEFCONT \ AND %11111100 |
|
|
|
#DEFCONT \ OR (N & %00000011) |
|
|
|
#DEFCONT \ LD (RTCVAL),A |
|
|
|
#DEFCONT \ OUT (LEDPORT),A |
|
|
|
#DEFCONT \ POP AF |
|
|
|
#ENDIF |
|
|
|
#ELSE |
|
|
|
#DEFINE LED(N) \; |
|
|
|
#ENDIF |
|
|
|
@ -1050,6 +1061,16 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n |
|
|
|
LD A,%00000001 |
|
|
|
OUT (DIAGPORT),A |
|
|
|
#ENDIF |
|
|
|
#IF (LEDENABLE) |
|
|
|
#IF (LEDMODE == LEDMODE_STD) |
|
|
|
XOR A ; LED IS INVERTED, TURN IT ON |
|
|
|
#ENDIF |
|
|
|
#IF (LEDMODE == LEDMODE_RTC) |
|
|
|
LD A,%00000001 ; LED 0 |
|
|
|
LD (RTCVAL),A ; SAVE TO SHADOW REGISTER |
|
|
|
#ENDIF |
|
|
|
OUT (LEDPORT),A |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
LD SP,HBX_LOC ; SETUP INITIAL STACK JUST BELOW HBIOS PROXY |
|
|
|
; |
|
|
|
@ -1222,7 +1243,6 @@ Z280_INITZ: |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
DIAG(%00000011) |
|
|
|
LED($00) |
|
|
|
; |
|
|
|
; CHECK BATTERY BACKUP STATUS BEFORE WE COPY PROXY TO UPPER MEMORY |
|
|
|
; |
|
|
|
@ -1307,6 +1327,7 @@ HB_RAMFLAG .DB FALSE ; INITIALLY FALSE, SET TO TRUE BELOW AFTER RAM TRANSITION |
|
|
|
HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
|
; |
|
|
|
DIAG(%00000111) |
|
|
|
LED(%00000010) |
|
|
|
; |
|
|
|
LD A,(HBX_LOC - 1) ; RECALL BATTERY STATE AND SAVE |
|
|
|
LD (HB_BATCOND),A ; FOR FUTURE REFERENCE |
|
|
|
@ -1365,7 +1386,7 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
|
LD A,1 ; SET FOR RECOVERY MODE |
|
|
|
LD (HB_BOOT_REC),A ; SAVE FOR LATER |
|
|
|
#ENDIF |
|
|
|
#IF (PLATFORM == PLT_SBC) |
|
|
|
#IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_MBC)) |
|
|
|
#IF (BT_REC_TYPE == BT_REC_SBC01) |
|
|
|
LD A,%00100000 ; DISABLE RTC AND |
|
|
|
OUT (RTCIO),A ; DRQ DRIVER READ |
|
|
|
@ -1398,13 +1419,17 @@ SAVE_REC_M: |
|
|
|
DIAG(%00001111) |
|
|
|
; |
|
|
|
#IF (DSKYENABLE) |
|
|
|
CALL DSKY_INIT |
|
|
|
|
|
|
|
LD HL,MSG_HBVER + 5 |
|
|
|
LD A,(DSKY_NUMS + RMJ) |
|
|
|
AND $7F |
|
|
|
;AND $7F |
|
|
|
OR $80 |
|
|
|
LD (HL),A |
|
|
|
INC HL |
|
|
|
LD A,(DSKY_NUMS + RMN) |
|
|
|
AND $7F |
|
|
|
;AND $7F |
|
|
|
OR $80 |
|
|
|
LD (HL),A |
|
|
|
INC HL |
|
|
|
LD A,(DSKY_NUMS + RUP) |
|
|
|
@ -1760,7 +1785,7 @@ NOT_REC_M0: |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
DIAG(%01111111) |
|
|
|
LED($FF) |
|
|
|
LED(%00000011) |
|
|
|
; |
|
|
|
; 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 |
|
|
|
@ -1978,6 +2003,9 @@ HB_Z280BUS1: |
|
|
|
#ENDIF |
|
|
|
#IF (MEMMGR == MM_ZRC) |
|
|
|
.TEXT "ZRC$" |
|
|
|
#ENDIF |
|
|
|
#IF (MEMMGR == MM_MBC) |
|
|
|
.TEXT "MBC$" |
|
|
|
#ENDIF |
|
|
|
CALL PRTSTRD |
|
|
|
.TEXT " MMU$" |
|
|
|
@ -2108,7 +2136,7 @@ HB_WDZ: |
|
|
|
; IF PLATFORM HAS A CONFIG JUMPER, CHECK TO SEE IF IT IS JUMPERED. |
|
|
|
; IF SO, BYPASS SWITCH TO CRT CONSOLE (FAILSAFE MODE) |
|
|
|
; |
|
|
|
#IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_ZETA) | (PLATFORM == PLT_ZETA2)) |
|
|
|
#IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_ZETA) | (PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_MBC)) |
|
|
|
IN A,(RTCIO) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER |
|
|
|
BIT 6,A ; BIT 6 HAS CONFIG JUMPER STATE |
|
|
|
JR Z,INITSYS3 ; Z=SHORTED, BYPASS CONSOLE SWITCH |
|
|
|
@ -2214,14 +2242,14 @@ CALLDUMMY: |
|
|
|
#IF (BT_REC_TYPE != BT_REC_NONE) |
|
|
|
; |
|
|
|
HB_PCINIT_REC: |
|
|
|
#IF (PLATFORM == PLT_SBC) |
|
|
|
#IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_MBC)) |
|
|
|
.DW UART_PREINIT |
|
|
|
; .DW CALLDUMMY |
|
|
|
#ENDIF |
|
|
|
HB_PCINITRLEN .EQU (($ - HB_PCINIT_REC) / 2) |
|
|
|
; |
|
|
|
HB_INIT_REC: |
|
|
|
#IF (PLATFORM == PLT_SBC) |
|
|
|
#IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_MBC)) |
|
|
|
.DW UART_INIT |
|
|
|
.DW MD_INIT |
|
|
|
.DW PPIDE_INIT |
|
|
|
@ -2336,12 +2364,9 @@ HB_INITTBL: |
|
|
|
#IF (TMSENABLE) |
|
|
|
.DW TMS_INIT |
|
|
|
#ENDIF |
|
|
|
#IF (DSKYENABLE) |
|
|
|
.DW DSKY_INIT |
|
|
|
#ENDIF |
|
|
|
#IF (DMAENABLE) |
|
|
|
.DW DMA_INIT |
|
|
|
#ENDIF |
|
|
|
;#IF (DSKYENABLE) |
|
|
|
; .DW DSKY_INIT |
|
|
|
;#ENDIF |
|
|
|
#IF (MDENABLE) |
|
|
|
.DW MD_INIT |
|
|
|
#ENDIF |
|
|
|
@ -2789,7 +2814,7 @@ HB_DSKFN: |
|
|
|
OUT (DIAGPORT),A ; DISPLAY ON DIAG LEDS |
|
|
|
#ENDIF |
|
|
|
#IF (LEDENABLE & LEDDISKIO) |
|
|
|
LED($FF) |
|
|
|
LED(%00000001) |
|
|
|
#ENDIF |
|
|
|
LD E,1 ; ONE SECTOR |
|
|
|
HB_DSKFNADR .EQU $+1 |
|
|
|
@ -4648,14 +4673,6 @@ SIZ_NEC .EQU $ - ORG_NEC |
|
|
|
.ECHO SIZ_NEC |
|
|
|
.ECHO " bytes.\n" |
|
|
|
#ENDIF |
|
|
|
#IF (DMAENABLE) |
|
|
|
ORG_DMA .EQU $ |
|
|
|
#INCLUDE "dma.asm" |
|
|
|
SIZ_DMA .EQU $ - ORG_DMA |
|
|
|
.ECHO "DMA occupies " |
|
|
|
.ECHO SIZ_DMA |
|
|
|
.ECHO " bytes.\n" |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; FONTS AREA |
|
|
|
; |
|
|
|
@ -4825,7 +4842,7 @@ SIZ_SPK .EQU $ - ORG_SPK |
|
|
|
.ECHO " bytes.\n" |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (PIO_4P | PIO_ZP | PPI_SBC) |
|
|
|
#IF (PIO_4P | PIO_ZP | PIO_SBC) |
|
|
|
ORG_PIO .EQU $ |
|
|
|
#INCLUDE "pio.asm" |
|
|
|
SIZ_PIO .EQU $ - ORG_PIO |
|
|
|
@ -4891,7 +4908,12 @@ SIZ_AY38910 .EQU $ - ORG_AY38910 |
|
|
|
; |
|
|
|
#IF (DSKYENABLE) |
|
|
|
#DEFINE DSKY_KBD |
|
|
|
#IF (DSKYMODE == DSKYMODE_V1) |
|
|
|
#INCLUDE "dsky.asm" |
|
|
|
#ENDIF |
|
|
|
#IF (DSKYMODE == DSKYMODE_NG) |
|
|
|
#INCLUDE "dskyng.asm" |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; INCLUDE LZSA2 decompression engine if required. |
|
|
|
@ -4922,6 +4944,7 @@ HB_CPUSPD1: |
|
|
|
|
|
|
|
; WAIT FOR AN INITIAL TICK TO ALIGN, THEN WAIT |
|
|
|
; FOR SECOND TICK AND TO GET A FULL ONE SECOND LOOP COUNT |
|
|
|
CALL DSRTC_START |
|
|
|
CALL HB_RDSEC ; GET SECONDS |
|
|
|
LD (HB_CURSEC),A ; AND INIT CURSEC |
|
|
|
CALL HB_WAITSEC ; WAIT FOR SECONDS TICK |
|
|
|
@ -5907,7 +5930,12 @@ STR_SYSCHK .TEXT "\r\n>>> SYSCHK: $" |
|
|
|
STR_CONTINUE .TEXT "\r\nContinue (Y/N)? $" |
|
|
|
; |
|
|
|
#IF (DSKYENABLE) ; 'H','B','I','O',' ',' ',' ',' ' |
|
|
|
MSG_HBVER .DB $BE,$FF,$8A,$FB,$80,$80,$80,$80 ; "HBIO " |
|
|
|
#IF (DSKYMODE == DSKYMODE_V1) |
|
|
|
MSG_HBVER .DB $3E,$7F,$0A,$7B,$00,$00,$00,$00 ; "HBIO " |
|
|
|
#ENDIF |
|
|
|
#IF (DSKYMODE == DSKYMODE_NG) |
|
|
|
MSG_HBVER .DB $76,$7F,$30,$3F,$00,$00,$00,$00 ; "HBIO " |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
HB_APPBNK .DB 0 ; START BANK WHEN RUN IN APP MODE |
|
|
|
|