Browse Source

Slightly better handling of low HBIOS heap memory

CBIOS reports *** HBIOS Heap Overflow, when the HBIOS is big (i.e. lots of included drivers)

Trigger build failure when CCP will not fit in heap.
Slightly more informative CBIOS error message
pull/317/head
b1ackmai1er 3 years ago
parent
commit
e7ab778929
  1. 5
      Source/CBIOS/cbios.asm
  2. 10
      Source/HBIOS/hbios.asm

5
Source/CBIOS/cbios.asm

@ -2381,7 +2381,7 @@ INIT3:
; ;
ERR_BIOMEM: ERR_BIOMEM:
CALL NEWLINE2 ; FORMATTING CALL NEWLINE2 ; FORMATTING
LD DE,STR_BIOMEM ; HBIOS HEAP MEM OVERFLOW
LD DE,STR_HEAPOVF ; HBIOS HEAP MEM OVERFLOW
CALL WRITESTR ; TELL THE USER CALL WRITESTR ; TELL THE USER
CALL PANIC ; AND GRIND TO A SCREACHING HALT CALL PANIC ; AND GRIND TO A SCREACHING HALT
; ;
@ -3436,7 +3436,7 @@ STR_INITRAMDISK .DB "Formatting RAMDISK...$"
STR_LDR2 .DB "\r\n" STR_LDR2 .DB "\r\n"
STR_LDR .DB "\r\n $" STR_LDR .DB "\r\n $"
STR_DPHINIT .DB "Configuring Drives...$" STR_DPHINIT .DB "Configuring Drives...$"
STR_HEAPOVF .DB " *** Insufficient Memory ***$"
STR_HEAPOVF .DB " *** Insufficient HBIOS Heap Memory ***$"
STR_INVMED .DB " *** Invalid Device ID ***$" STR_INVMED .DB " *** Invalid Device ID ***$"
STR_VERMIS .DB 7,"*** WARNING: HBIOS/CBIOS Version Mismatch ***$" STR_VERMIS .DB 7,"*** WARNING: HBIOS/CBIOS Version Mismatch ***$"
STR_MEMFREE .DB " Disk Buffer Bytes Free$" STR_MEMFREE .DB " Disk Buffer Bytes Free$"
@ -3444,7 +3444,6 @@ STR_CPM .DB "CP/M-80 v2.2$"
STR_ZSDOS .DB "ZSDOS v1.1$" STR_ZSDOS .DB "ZSDOS v1.1$"
STR_TPA1 .DB ", $" STR_TPA1 .DB ", $"
STR_TPA2 .DB "K TPA$" STR_TPA2 .DB "K TPA$"
STR_BIOMEM .DB "*** HBIOS Heap Overflow ***$"
#IFDEF PLTUNA #IFDEF PLTUNA
INIBUF .FILL 512,0 ; LOCATION OF TEMP WORK BUF DURING INIT (512 BYTES) INIBUF .FILL 512,0 ; LOCATION OF TEMP WORK BUF DURING INIT (512 BYTES)

10
Source/HBIOS/hbios.asm

@ -7305,6 +7305,16 @@ SLACK .EQU BNKTOP - $
.ECHO "HBIOS space remaining: " .ECHO "HBIOS space remaining: "
.ECHO SLACK .ECHO SLACK
.ECHO " bytes.\n" .ECHO " bytes.\n"
#IF (SLACK<0)
.ECHO "*** ERROR: HBIOS too big.\n"
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
;
#IF (CCP_SIZ > SLACK)
.ECHO "*** ERROR: Insufficient space for CBIOS Cache.\n"
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
; ;
#IFDEF ROMBOOT #IFDEF ROMBOOT
#IF (ROMSIZE > 0) #IF (ROMSIZE > 0)

Loading…
Cancel
Save