Browse Source

Merge branch 'master' into map/hbios-inv-dev

pull/582/head
Mark Pruden 7 months ago
parent
commit
cfaa2b39c1
  1. 29
      Source/HBIOS/hbios.asm
  2. 44
      Source/HBIOS/romldr.asm
  3. 2
      Source/ver.inc
  4. 2
      Source/ver.lib

29
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

44
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 <u>[.<s>] - 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 <u> [<c>] - Set Console Interface/Baud Rate"
.db "\r\n V [<n>] - View/Set HBIOS Diagnostic Verbosity"
.db "\r\n N - Network Boot"
#endif
.db "\r\n <u>[.<s>] - 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 <u> [<c>] - Set Console Interface/Baud Rate"
.db "\r\n V [<n>] - View/Set HBIOS Diagnostic Verbosity"
#endif
.db "\r\n <u>[.<s>] - 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

2
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

2
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

Loading…
Cancel
Save