Support for Application Banks

This commit is contained in:
Wayne Warthen
2024-01-24 12:39:10 -08:00
parent ee8cdfa4b8
commit 8e4bb575f1
253 changed files with 430 additions and 1139 deletions

View File

@@ -699,6 +699,83 @@ BID_RAM0 .EQU $80
BID_ROMN .EQU (BID_ROM0 + ROMBANKS - 1)
BID_RAMN .EQU (BID_RAM0 + RAMBANKS - 1)
;
#IF (BIOS == BIOS_WBW)
;
#IF (ROMSIZE > 0)
ROM_BNKS_RSVD .EQU 4
RAM_BNKS_RSVD .EQU 5
#ELSE
ROM_BNKS_RSVD .EQU 0
RAM_BNKS_RSVD .EQU 8
#ENDIF
#ENDIF
;
#IF (BIOS == BIOS_UNA)
ROM_BNKS_RSVD .EQU 4
RAM_BNKS_RSVD .EQU 4 ; NEED TO CONFIRM THIS!!!
#ENDIF
;
; APPLICATION MEMORY BANKS
;
#IF (APP_BNKS == $FF)
APP_BNKS .SET 0 ; 0K
#IF ((RAMBANKS - RAM_BNKS_RSVD) > $08)
APP_BNKS .SET 3 ; 96K
#ENDIF
#IF ((RAMBANKS - RAM_BNKS_RSVD) > $18)
APP_BNKS .SET 11 ; 353KB
#ENDIF
#ENDIF
;
; ROM/RAM MEMORY BANKS
;
#IF (BIOS == BIOS_WBW)
;
ROMD_BNKS .EQU ROMBANKS - ROM_BNKS_RSVD
RAMD_BNKS .EQU RAMBANKS - APP_BNKS - RAM_BNKS_RSVD
;
#ENDIF
;
#IF (BIOS == BIOS_UNA)
;
ROMD_BNKS .EQU ROMBANKS - 4
RAMD_BNKS .EQU RAMBANKS - 4
;
#ENDIF
;
; ADJUSTMENTS FOR ROMLESS SYSTEMS
;
#IF (ROMSIZE == 0)
;
; WE NEED TO NORMALIZE THE SIZE OF THE RAM DISK TO FIT
; ONE OF THE STANDARD ROM DISK IMAGES
;
#IF (RAMD_BNKS < 4)
RAMD_BNKS .SET 0 ; 0KB RAM DISK
#ENDIF
#IF ((RAMD_BNKS >= 4) & (RAMD_BNKS < 8))
RAMD_BNKS .SET 4 ; 128KB RAM DISK
#ENDIF
#IF ((RAMD_BNKS >= 8) & (RAMD_BNKS < 12))
RAMD_BNKS .SET 8 ; 256KB RAM DISK
#ENDIF
#IF ((RAMD_BNKS >= 12) & (RAMD_BNKS < 28))
RAMD_BNKS .SET 12 ; 384KB RAM DISK
#ENDIF
#IF (RAMD_BNKS >= 28)
RAMD_BNKS .SET 28 ; 896KB RAM DISK
#ENDIF
;
#ENDIF
;
#IF ((!MDRAM) | (RAMD_BNKS <= 0))
RAMD_BNKS .SET 0
#ENDIF
;
#IF ((!MDROM) | (ROMD_BNKS <= 0))
ROMD_BNKS .SET 0
#ENDIF
;
#IF (ROMSIZE > 0)
;
; NORMAL SYSTEM WITH ROM & RAM
@@ -708,11 +785,9 @@ BID_IMG0 .EQU BID_ROM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK 0x01
BID_IMG1 .EQU BID_ROM0 + 2 ; SECOND IMAGES BANK 0x02
BID_IMG2 .EQU BID_ROM0 + 3 ; RESERVED 0x03
BID_ROMD0 .EQU BID_ROM0 + 4 ; FIRST ROM DRIVE BANK 0x04
BID_ROMDN .EQU BID_ROMN ; LAST ROM DRIVE BANK 0x0F
;
BID_BIOS .EQU BID_RAM0 ; HBIOS BANK 0x80
BID_BIOS .EQU BID_RAM0 + 0 ; HBIOS BANK 0x80
BID_RAMD0 .EQU BID_RAM0 + 1 ; FIRST RAM DRIVE BANK 0x81
BID_RAMDN .EQU BID_RAMN - 4 ; LAST RAM DRIVE BANK 0x8B
BID_APP0 .EQU BID_RAMD0 + RAMD_BNKS ; FIRST APP BANK 0x89
BID_BUF .EQU BID_RAMN - 3 ; OS BUFFERS (CP/M3) 0x8C
BID_AUX .EQU BID_RAMN - 2 ; AUX BANK (CP/M 3, BPBIOS, ETC.) 0x8D
BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) 0x8E
@@ -728,7 +803,7 @@ BID_IMG0 .EQU BID_RAM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK 0x81
BID_IMG1 .EQU BID_RAM0 + 2 ; SECOND IMAGES BANK 0x82
BID_IMG2 .EQU BID_RAM0 + 3 ; RESERVED 0x83
BID_RAMD0 .EQU BID_RAM0 + 4 ; FIRST RAM DRIVE BANK 0x84
BID_RAMDN .EQU BID_RAMN - 4 ; LAST RAM DRIVE BANK 0x8B
BID_APP0 .EQU BID_RAMD0 + RAMD_BNKS ; FIRST APP BANK 0x89
BID_BUF .EQU BID_RAMN - 3 ; OS BUFFERS (CP/M3) 0x8C
BID_AUX .EQU BID_RAMN - 2 ; AUX BANK (CP/M 3, BPBIOS, ETC.) 0x8D
BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) 0x8E
@@ -736,47 +811,44 @@ BID_COM .EQU BID_RAMN - 0 ; COMMON BANK, UPPER 32K 0x8F
;
BID_BIOS .EQU BID_BOOT ; HBIOS BANK 0x80
BID_ROMD0 .EQU 0 ; NO ROM DRIVE
BID_ROMDN .EQU $FF ; NO ROM DRIVE
;
#ENDIF
;
#IF (BIOS == BIOS_WBW)
APP_BNKS .SET BID_BUF - BID_APP0
;
#IF (!MDRAM)
BID_RAMD0 .SET $FF ; RAM DRIVE DISABLED
BID_RAMDN .SET 0 ; RAM DRIVE DISABLED
#ENDIF
BID_RAMDN .EQU BID_RAMD0 + RAMD_BNKS - 1 ; LAST RAM DRIVE BANK
BID_ROMDN .EQU BID_ROMD0 + ROMD_BNKS - 1 ; LAST ROM DRIVE BANK
BID_APPN .EQU BID_APP0 + APP_BNKS - 1 ; LAST APP BANK
;
#IF (!MDROM)
BID_ROMD0 .SET $FF ; ROM DRIVE DISABLED
BID_ROMDN .SET 0 ; ROM DRIVE DISABLED
#ENDIF
;
ROMD_BNKS .EQU (BID_ROMDN - BID_ROMD0 + 1)
RAMD_BNKS .EQU (BID_RAMDN - BID_RAMD0 + 1)
;
#ENDIF
;
#IF FALSE
.ECHO "--- RAM/ROM CAPACITY ---\n"
.ECHO "BID_ROM0: " \ .ECHO BID_ROM0 \ .ECHO "\n"
.ECHO "BID_ROMN: " \ .ECHO BID_ROMN \ .ECHO "\n"
.ECHO "BID_RAM0: " \ .ECHO BID_RAM0 \ .ECHO "\n"
.ECHO "BID_RAMN: " \ .ECHO BID_RAMN \ .ECHO "\n"
.ECHO "--- BANK LAYOUT ---\n"
.ECHO "BID_BOOT: " \ .ECHO BID_BOOT \ .ECHO "\n"
.ECHO "BID_IMG0: " \ .ECHO BID_IMG0 \ .ECHO "\n"
.ECHO "BID_IMG1: " \ .ECHO BID_IMG1 \ .ECHO "\n"
.ECHO "BID_IMG2: " \ .ECHO BID_IMG2 \ .ECHO "\n"
#IF TRUE
.ECHO "------------- CAPACITY -----------------\n"
.ECHO "ROMBANKS: " \ .ECHO ROMBANKS \ .ECHO "\n"
.ECHO "RAMBANKS: " \ .ECHO RAMBANKS \ .ECHO "\n"
.ECHO "ROMD_BNKS: " \ .ECHO ROMD_BNKS \ .ECHO "\n"
.ECHO "RAMD_BNKS: " \ .ECHO RAMD_BNKS \ .ECHO "\n"
.ECHO "APP_BNKS: " \ .ECHO APP_BNKS \ .ECHO "\n"
.ECHO "----------- MEMORY LAYOUT --------------\n"
.ECHO "BID_ROM0: " \ .ECHO BID_ROM0 \ .ECHO "\n"
.ECHO "BID_ROMN: " \ .ECHO BID_ROMN \ .ECHO "\n"
.ECHO "BID_RAM0: " \ .ECHO BID_RAM0 \ .ECHO "\n"
.ECHO "BID_RAMN: " \ .ECHO BID_RAMN \ .ECHO "\n"
.ECHO "------------- BANK LAYOUT --------------\n"
.ECHO "BID_BOOT: " \ .ECHO BID_BOOT \ .ECHO "\n"
.ECHO "BID_IMG0: " \ .ECHO BID_IMG0 \ .ECHO "\n"
.ECHO "BID_IMG1: " \ .ECHO BID_IMG1 \ .ECHO "\n"
.ECHO "BID_IMG2: " \ .ECHO BID_IMG2 \ .ECHO "\n"
.ECHO "BID_ROMD0: " \ .ECHO BID_ROMD0 \ .ECHO "\n"
.ECHO "BID_ROMDN: " \ .ECHO BID_ROMDN \ .ECHO "\n"
.ECHO "BID_BIOS: " \ .ECHO BID_BIOS \ .ECHO "\n"
.ECHO "BID_BIOS: " \ .ECHO BID_BIOS \ .ECHO "\n"
.ECHO "BID_RAMD0: " \ .ECHO BID_RAMD0 \ .ECHO "\n"
.ECHO "BID_RAMDN: " \ .ECHO BID_RAMDN \ .ECHO "\n"
.ECHO "BID_BUF: " \ .ECHO BID_BUF \ .ECHO "\n"
.ECHO "BID_AUX: " \ .ECHO BID_AUX \ .ECHO "\n"
.ECHO "BID_USR: " \ .ECHO BID_USR \ .ECHO "\n"
.ECHO "BID_COM: " \ .ECHO BID_COM \ .ECHO "\n"
.ECHO "BID_APP0: " \ .ECHO BID_APP0 \ .ECHO "\n"
.ECHO "BID_APPN: " \ .ECHO BID_APPN \ .ECHO "\n"
.ECHO "BID_BUF: " \ .ECHO BID_BUF \ .ECHO "\n"
.ECHO "BID_AUX: " \ .ECHO BID_AUX \ .ECHO "\n"
.ECHO "BID_USR: " \ .ECHO BID_USR \ .ECHO "\n"
.ECHO "BID_COM: " \ .ECHO BID_COM \ .ECHO "\n"
.ECHO "----------------------------------------\n"
#ENDIF
;
; MEMORY LAYOUT