mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:33:12 -06:00
remove assembly time memory constraints
This commit is contained in:
@@ -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
|
||||
;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user