Browse Source

run time memory size adjustment

pull/247/head
b1ackmai1er 4 years ago
parent
commit
145ae8baa1
  1. 37
      Source/HBIOS/hbios.asm
  2. 3
      Source/HBIOS/std.asm

37
Source/HBIOS/hbios.asm

@ -273,7 +273,7 @@ CB_DIAGLVL .DB DIAGLVL ; ROMWBW HBIOS DIAGNOSTIC LEVEL
CB_HEAP .DW 0
CB_HEAPTOP .DW 0
;
; STANDARD BANK ID'S START AT $D8
; STANDARD BANK ID'S START AT $D8. DEFAULT VALUES FOR 512KB SYSTEM WITH NO RESERVED BANKS
;
.FILL (HCB + $D8 - $),0
;
@ -1060,6 +1060,7 @@ HB_IVT0F: JP HB_BADINT \ .DB 0
;==================================================================================================
;
HB_START:
;
#IFDEF APPBOOT
#IF (MEMMGR == MM_Z280)
LD A,%00000001
@ -1076,7 +1077,7 @@ HB_START:
Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 native memory management!!!\r\n\r\n$"
#ENDIF
#ENDIF
;
DI ; NO INTERRUPTS
IM 1 ; INTERRUPT MODE 1
;
@ -1337,6 +1338,38 @@ Z280_INITZ:
LD DE,0
LD BC,$8000
CALL HBX_BNKCPY
#IF (1)
;
; POPULATE THE CRITICAL RAM BANK NUMBERS.
;
; ASSUME THAT CB_RAMBANKS IS THE NUMBER OF 32K RAM BANKS THAT HAS BEEN SET EITHER
; AT ASSEMBLY TIME OR BY PROBING THE ACTUAL AVAILABLE MEMORY (NOT IMPLEMENTED YET).
;
call dbg
LD A,(CB_RAMBANKS) ; CALCULATE START
DEC A ; RAMBANK AFTER
ADD A,($80 + (PLT_RAM_R / 32)) ; RESERVED BANKS
;
LD HL,CB_BIDCOM
LD B,4
CB_IDS: LD (HL),A ; POPULATE CB_BIDCOM
INC HL ; POPULATE CB_BIDUSR
DEC A ; POPULATE CB_BIDBIOS
DJNZ CB_IDS ; POPULATE CB_BIDAUX
LD A,(CB_BIDUSR)
LD (HB_SRCBNK),A ; POPULATE HB_SRCBNK
LD (HB_DSTBNK),A ; POPULATE HB_DSTBNK
;
LD A,+($80 + (PLT_RAM_R / 32)) ; POPULATE CB_BIDRAMD0 ; START RAMBANK
LD (HL),A
INC HL
;
LD A,(CB_RAMBANKS) ; POPULATE CB_BIDRAMDN ; END RAMBANK
DEC A
SUB TOT_RAM_RB
LD (HL),A
#ENDIF
;
; TRANSITION TO HBIOS IN RAM BANK
;

3
Source/HBIOS/std.asm

@ -488,9 +488,6 @@ SYSTIM .SET TM_Z280
;
; MEMORY BANK CONFIGURATION
;
RAMSIZE .SET 0
;PLT_RAM_R .SET 0 ; 0K ; RESERVED RAM FOR EACH PLATFORM IS DEFINED IN ITS CONFIG FILE
;PLT_ROM_R .SET 0 ; 0K ; RESERVED ROM FOR EACH PLATFORM IS DEFINED IN ITS CONFIG FILE
WBW_ROM_R .EQU 128 ; 128K ; RESERVED ROM REQUIRED FOR ROMWBW
WBW_RAM_R .EQU 256 ; 256K ; RESERVED RAM REQUIRED FOR ROMWBW
TOT_ROM_RB .EQU (PLT_ROM_R + WBW_ROM_R)/32 ; TOTAL ROM BANKS RESERVED

Loading…
Cancel
Save