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_HEAP .DW 0
CB_HEAPTOP .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 .FILL (HCB + $D8 - $),0
; ;
@ -1060,6 +1060,7 @@ HB_IVT0F: JP HB_BADINT \ .DB 0
;================================================================================================== ;==================================================================================================
; ;
HB_START: HB_START:
;
#IFDEF APPBOOT #IFDEF APPBOOT
#IF (MEMMGR == MM_Z280) #IF (MEMMGR == MM_Z280)
LD A,%00000001 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$" Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 native memory management!!!\r\n\r\n$"
#ENDIF #ENDIF
#ENDIF #ENDIF
;
DI ; NO INTERRUPTS DI ; NO INTERRUPTS
IM 1 ; INTERRUPT MODE 1 IM 1 ; INTERRUPT MODE 1
; ;
@ -1337,6 +1338,38 @@ Z280_INITZ:
LD DE,0 LD DE,0
LD BC,$8000 LD BC,$8000
CALL HBX_BNKCPY 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 ; TRANSITION TO HBIOS IN RAM BANK
; ;

3
Source/HBIOS/std.asm

@ -488,9 +488,6 @@ SYSTIM .SET TM_Z280
; ;
; MEMORY BANK CONFIGURATION ; 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_ROM_R .EQU 128 ; 128K ; RESERVED ROM REQUIRED FOR ROMWBW
WBW_RAM_R .EQU 256 ; 256K ; RESERVED RAM 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 TOT_ROM_RB .EQU (PLT_ROM_R + WBW_ROM_R)/32 ; TOTAL ROM BANKS RESERVED

Loading…
Cancel
Save