diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 80a7175f..93dbd045 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2149,32 +2149,32 @@ CB_IDS: LD (HL),A ; POPULATE CB_BIDCOM ; DISABLED AT THIS POINT. ; #IF (CPUFAM != CPU_EZ80) -#IF ((INTMODE == 2) | ((INTMODE == 1) & (CPUFAM == CPU_Z180))) + #IF ((INTMODE == 2) | ((INTMODE == 1) & (CPUFAM == CPU_Z180))) ; SETUP Z80 IVT AND INT MODE 2 LD A,HBX_IVT >> 8 ; SETUP HI BYTE OF IVT ADDRESS LD I,A ; ... AND PLACE IT IN I REGISTER - #IF (CPUFAM == CPU_Z180) + #IF (CPUFAM == CPU_Z180) ; SETUP Z180 IVT XOR A ; SETUP LO BYTE OF IVT ADDRESS OUT0 (Z180_IL),A ; ... AND PLACE IN Z180 IL REGISTER - #ENDIF + #ENDIF - #IF (INTMODE == 2) + #IF (INTMODE == 2) IM 2 ; SWITCH TO INT MODE 2 + #ENDIF #ENDIF -#ENDIF ; -#IF (MEMMGR == MM_Z280) + #IF (MEMMGR == MM_Z280) ; NOW POINT TO RAM COPY OF Z280 INT/TRAP TABLE ; HL IS TOP 16 BITS OF PHYSICAL ADDRESS OF IVT ; IVT *MUST* BE ON A 4K BOUNDARY LD C,Z280_VPR LD HL,0 + (((PBANK(BID_BIOS) << 15) + Z280_IVT) >> 8) LDCTL (C),HL -#ENDIF + #ENDIF ; -#IF (INTMODE == 3) + #IF (INTMODE == 3) ; ; SETUP Z280 INT A FOR VECTORED INTERRUPTS LD HL,%0010000000000000 @@ -2184,7 +2184,7 @@ CB_IDS: LD (HL),A ; POPULATE CB_BIDCOM ; TRANSITION TO INTERRUPT MODE 3 IM 3 ; -#ENDIF + #ENDIF #ENDIF ; ;-------------------------------------------------------------------------------------------------- @@ -8391,7 +8391,7 @@ FNT_SELECT1: CALL DLZSA2 ; DECOMPRESS LD A,BID_BIOS ; BANK OF DECOMP BUF LD (FNT_BID),A ; UPDATE FNT_BID - LD HL,$E000 ; DEOMP BUF ADR TO HL + LD HL,$E000 ; DECOMP BUF ADR TO HL #ELSE LD DE,$E000 ; DECOMP BUF ADR TO DE CALL DLZSA2 ; DECOMPRESS @@ -8437,8 +8437,9 @@ FNT_NEXT: ; FNT_BYTE: #IF (MEMMGR == MM_Z280) - ; HBX_PEEK FOR Z280 DOES NOT WORK WHEN INVOKED WHILE IN - ; SYSTEM MODE. THIS SHOULD BE REVISITED. + ; THERE IS A DEFICIENCY IN HBX_PEEK FOR Z280 W/ MM_Z280. + ; IT WILL NOT WORK WHEN CALLED FROM Z280 SYSTEM MODE. + ; THIS SHOULD BE REVISITED. ; ; NOTE: WHEN WE GO TO RESTORE THE USER SPACE BANK, WE DON'T ; REALLY HAVE A GOOD SOURCE OF WHAT BANK ID TO RESTORE IT TO. @@ -8470,9 +8471,7 @@ FNT_BYTE: PUSH DE LD A,(FNT_BID) LD D,A - HB_DI - CALL HBX_PEEK - HB_EI + CALL SYS_PEEK LD A,E POP DE RET diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 0a5f53fd..0aeab579 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -174,15 +174,12 @@ start1: ; ; For app mode startup, use alternate table ld hl,ra_tbl ; assume ROM application table - ld de,str_help ; assume ROM help menu ld a,(bootmode) ; get boot mode cp BM_ROMBOOT ; ROM boot? jr z,start2 ; if so, ra_tbl OK, skip ahead ld hl,ra_tbl_app ; switch to RAM application table - ld de,str_help_app ; switch to RAM help menu start2: ld (ra_tbl_loc),hl ; and overlay pointer - ld (str_help_loc),de ; and overlay help menu pointer ; ; Copy original page zero into user page zero ; @@ -866,8 +863,16 @@ dskycmd1: ; Display Help ; help: - ld hl,(str_help_loc) ; point to help string + ld hl,str_help1 ; load first help string call pstr ; display it + ld a,(bootmode) ; get boot mode + cp BM_ROMBOOT ; ROM boot? + jr nz,help1 ; if not, skip str_help2 + ld hl,str_help2 ; load second help string + call pstr ; display it +help1: + ld hl,str_help3 ; load third help string + call pstr ; display it ret ; ; List ROM apps @@ -2586,32 +2591,36 @@ str_binfo5 .db "]",0 str_ldsec .db ", Sector 0x",0 str_diaglvl .db "\r\n\r\nHBIOS Diagnostic Level: ",0 ; -str_help .db "\r\n" +; +; Help text is broken into 3 pieces because an application mode boot +; does allow access to the ROM-hosted features. The str_help2 portion +; is only displayed for a ROM boot. +; +str_help1: + .db "\r\n" .db "\r\n L - List ROM Applications" - .db "\r\n D - Device Inventory" + .db "\r\n [.] - Boot Disk Unit/Slice" + .db 0 +; +str_help2: #if (BIOS == BIOS_WBW) - .db "\r\n S - Slice Inventory" + .db "\r\n N - Network Boot" #endif - .db "\r\n R - Reboot System" + .db "\r\n D - Device Inventory" #if (BIOS == BIOS_WBW) + .db "\r\n S - Slice Inventory" .db "\r\n W - RomWBW Configure" - .db "\r\n I [] - Set Console Interface/Baud Rate" - .db "\r\n V [] - View/Set HBIOS Diagnostic Verbosity" - .db "\r\n N - Network Boot" #endif - .db "\r\n [.] - Boot Disk Unit/Slice" .db 0 ; -str_help_app .db "\r\n" - .db "\r\n L - List ROM Applications" - .db "\r\n R - Reboot System" +str_help3: #if (BIOS == BIOS_WBW) + .db "\r\n I [] - Set Console Interface/Baud Rate" .db "\r\n V [] - View/Set HBIOS Diagnostic Verbosity" #endif - .db "\r\n [.] - Boot Disk Unit/Slice" + .db "\r\n R - Reboot System" .db 0 - ; ;======================================================================= ; DSKY keypad led matrix masks @@ -2776,7 +2785,6 @@ mediaid .db 0 ; media id ; bootmode .db 0 ; ROM, APP, or IMG boot ra_tbl_loc .dw 0 ; points to active ra_tbl -str_help_loc .dw 0 ; points to active str_help bootunit .db 0 ; boot disk unit bootslice .db 0 ; boot disk slice loadcnt .db 0 ; num disk sectors to load diff --git a/Source/ver.inc b/Source/ver.inc index 5f0965a5..2be79253 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 6 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.6.0-dev.8" +#DEFINE BIOSVER "3.6.0-dev.9" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 01b5171a..0aa4be7f 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 6 rup equ 0 rtp equ 0 biosver macro - db "3.6.0-dev.8" + db "3.6.0-dev.9" endm