Browse Source

remove assembly time memory constraints

pull/247/head
b1ackmai1er 4 years ago
parent
commit
2c633d2d13
  1. 39
      Source/HBIOS/hbios.asm
  2. 49
      Source/HBIOS/md.asm
  3. 20
      Source/HBIOS/std.asm

39
Source/HBIOS/hbios.asm

@ -514,15 +514,21 @@ HBX_ROM:
OR A ; SET FLAGS
JP P,HBX_ROM ; BIT 7 INDICATES RAM
OUT (MPCL_ROM),A ; ENSURE ROM PAGE OUT OF MEMORY BEFORE SWITCH
#IF (RAMSIZE == 256)
XOR %00000100 ; TOP 32K IS ALWAYS IN FIRST CHIP
#ENDIF
#IF (RAMSIZE == 1024)
XOR %00010000 ; TOP 32K IS ALWAYS IN FIRST CHIP
#ENDIF
;
PUSH HL ; FORCE TOP 32K
LD HL,(HCB + HCB_RAMBANKS) ; TO BE IN FIRST CHIP
SRL L
XOR L ; MAYBE PRECALCULATE THIS
POP HL ; AT INITIALIZATION
;
;#IF (RAMSIZE == 256)
; XOR %00000100 ; TOP 32K IS ALWAYS IN FIRST CHIP ; 256K = 8 banks = 00001000
;#ENDIF
;
;#IF (RAMSIZE == 1024)
; XOR %00010000 ; TOP 32K IS ALWAYS IN FIRST CHIP ; 1024K = 32 banks = 00100000
;#ENDIF
;
OUT (MPCL_RAM),A ; SET RAM PAGE SELECTOR
JR HBX_RAMX
HBX_ROM:
@ -2041,7 +2047,15 @@ HB_Z280BUS1:
CALL PRTDEC
CALL PRTSTRD
.TEXT "KB ROM, $"
LD HL,RAMSIZE
;
LD HL,(HCB + HCB_RAMBANKS) ; GET NUMBER OF BANKS IN L
LD H,0 ; CALCULATE RAM SIZE
ADD HL,HL
ADD HL,HL ; X4
ADD HL,HL ; X8
ADD HL,HL ; X16
ADD HL,HL ; X32
;
CALL PRTDEC
CALL PRTSTRD
.TEXT "KB RAM$"
@ -2074,7 +2088,7 @@ HB_Z280BUS1:
;
; ROM CHECKSUM VERIFICATION
; EACH OF THE FIRST 4 ROM BANKS HAS A CHECKSUM INJECTED SUCH THAT
; A COMPUTED CHECKSUM ACROSS THE ENTIRE BANK SHOLD ALWAYS BE ZERO
; A COMPUTED CHECKSUM ACROSS THE ENTIRE BANK SHOULD ALWAYS BE ZERO
;
HB_ROMCK:
CALL NEWLINE
@ -3512,7 +3526,8 @@ SYS_GETCPUINFO:
;
SYS_GETMEMINFO:
LD D,ROMSIZE / 32
LD E,RAMSIZE / 32
LD A,(HCB + HCB_RAMBANKS)
LD E,A
XOR A
RET
;

49
Source/HBIOS/md.asm

@ -64,7 +64,7 @@ MD_INIT:
#IF (MDFFENABLE)
CALL MD_FINIT ; PROBE FLASH CAPABILITY
#ENDIF
;
CALL NEWLINE ; FORMATTING
PRTS("MD: UNITS=$")
LD A,MD_DEVCNT
@ -72,14 +72,32 @@ MD_INIT:
;
#IF (MDROM)
PRTS(" ROMDISK=$")
LD HL,ROMSIZE - 128
; LD HL,ROMSIZE - 128
LD A,(HCB + HCB_ROMBANKS) ; GET NUMBER OF BANKS
SUB (TOT_ROM_RB)
LD L,A
LD H,0 ; CALCULATE RAM SIZE
ADD HL,HL ; X2
ADD HL,HL ; X4
ADD HL,HL ; X8
ADD HL,HL ; X16
ADD HL,HL ; X32
CALL PRTDEC
PRTS("KB$")
#ENDIF
;
#IF (MDRAM)
PRTS(" RAMDISK=$")
LD HL,RAMSIZE - 256
; LD HL,RAMSIZE - 256
LD A,(HCB + HCB_RAMBANKS) ; GET NUMBER OF BANKS
SUB (TOT_RAM_RB) ; LESS RESERVED BANKS
LD L,A
LD H,0 ; CALCULATE RAM SIZE
ADD HL,HL ; X2
ADD HL,HL ; X4
ADD HL,HL ; X8
ADD HL,HL ; X16
ADD HL,HL ; X32
CALL PRTDEC
PRTS("KB$")
#ENDIF
@ -170,11 +188,11 @@ MD_CAP: ; ASSUMES THAT UNIT 0 IS RAM, UNIT 1 IS ROM
RET
MD_CAP0:
LD A,(HCB + HCB_RAMBANKS) ; POINT TO RAM BANK COUNT
LD B,4 ; SET # RESERVED RAM BANKS
LD B,TOT_RAM_RB ; SET # RESERVED RAM BANKS
JR MD_CAP2
MD_CAP1:
LD A,(HCB + HCB_ROMBANKS) ; POINT TO ROM BANK COUNT
LD B,8 ; SET # RESERVED ROM BANKS
LD B,TOT_ROM_RB ; SET # RESERVED ROM BANKS
MD_CAP2:
SUB B ; SUBTRACT OUT RESERVED BANKS
LD H,A ; H := # BANKS
@ -756,7 +774,8 @@ MD_TGTDEV .EQU 0B7BFH ; TARGET CHIP FOR R/W FILESYSTEM 39SF040
;======================================================================
;
MD_FINIT:
LD A,+(ROMSIZE/512) ; DISLAY NUMBER
CALL MD_CALCU ; DISPLAY
;
#IF (MD_FVBS==1)
CALL NEWLINE ; OF UNITS
PRTS("MD: FLASH=$")
@ -773,7 +792,8 @@ MD_PROBE:
PUSH BC
#IF (MD_FVBS==1)
CALL PC_SPACE
LD A,+(ROMSIZE/512)+1
CALL MD_CALCU
INC A
SUB B ; PRINT
CALL PRTDECB ; DEVICE
LD A,'=' ; NUMBER
@ -818,6 +838,17 @@ MD_PR1: CALL WRITESTR
XOR A ; INIT SUCCEEDED
RET
;
; CALCULATE NUMBER OF 512KB ROMS FROM NUMBER OF ROM BANKS
;
MD_CALCU:
; LD A,+(ROMSIZE/512) ; DISPLAY NUMBER
LD A,(HCB + HCB_ROMBANKS) ; GET NUMBER OF BANKS
SRL A ; X2 CALCULATE
SRL A ; X4 NUMBER OF 512KB
SRL A ; X8 CHIPS THAT IS
SRL A
RET
;
;======================================================================
; LOOKUP AND DISPLAY CHIP
;
@ -847,7 +878,7 @@ MD_NXT1:LD A,(HL)
;
INC HL
INC HL
JR FF_NXT2 ; MATCH SO EXIT
JR MD_NXT2 ; MATCH SO EXIT
;
MD_NXT0:PUSH BC ; WE DIDN'T MATCH SO POINT
LD BC,MD_T_SZ ; TO THE NEXT TABLE ENTRY
@ -861,7 +892,7 @@ MD_NXT0:PUSH BC ; WE DIDN'T MATCH SO POINT
;
LD HL,MD_FFMSGUNK ; WE REACHED THE END WITHOUT A MATCH
;
FF_NXT2:
MD_NXT2:
#IF (MD_FVBS==1)
CALL PRTSTR ; AFTER SEARCH DISPLAY THE RESULT
#ENDIF

20
Source/HBIOS/std.asm

@ -488,14 +488,26 @@ SYSTIM .SET TM_Z280
;
; MEMORY BANK CONFIGURATION
;
; PLT_RAM_R HOW MUCH RAM NEEDS TO BE RESERVED FOR SPECIFIC PLATFORMS
; WBW_RAM_R HOW MUCH RAM NEEDS TO BE RESERVED FOR ROMWBW
; PLT_ROM_R HOW MUCH ROM NEEDS TO BE RESERVED FOR SPECIFIC PLATFORMS
; WBW_ROM_R HOW MUCH ROM NEEDS TO BE RESERVED FOR ROMWBW
;
PLT_RAM_R .EQU 0 ; 0K
PLT_ROM_R .EQU 0 ; 0K
WBW_ROM_R .EQU 128 ; 128K ; TOTAL RESERVED ROM
WBW_RAM_R .EQU 256 ; 256K ; TOTAL RESERVED RAM
TOT_ROM_RB .EQU (PLT_ROM_R + WBW_ROM_R)/32 ; TOTAL ROM BANKS RESERVED
TOT_RAM_RB .EQU (PLT_RAM_R + WBW_RAM_R)/32 ; TOTAL RAM BANKS RESERVED
;
#IF (BIOS == BIOS_UNA)
BID_ROM0 .EQU $0000 + (ROM_RESERVE / 32)
BID_RAM0 .EQU $8000 + (RAM_RESERVE / 32)
BID_ROM0 .EQU $0000 + (PLT_ROM_R / 32)
BID_RAM0 .EQU $8000 + (PLT_RAM_R / 32)
#ENDIF
;
#IF (BIOS == BIOS_WBW)
BID_ROM0 .EQU $00 + (ROM_RESERVE / 32)
BID_RAM0 .EQU $80 + (RAM_RESERVE / 32)
BID_ROM0 .EQU $00 + (PLT_ROM_R / 32)
BID_RAM0 .EQU $80 + (PLT_RAM_R / 32)
#ENDIF
BID_ROMN .EQU (BID_ROM0 + ((ROMSIZE / 32) - 1))

Loading…
Cancel
Save