; ; The was extracted out of STD.ASM, so can be included ; in BIOS apps that are NOT in HBIOS directory! ; ; ============= ; MEMORY LAYOUT ; ============= ; SYS_SIZ .EQU $3000 ; COMBINED SIZE OF SYSTEM AREA (OS + HBIOS PROXY) HBBUF_SIZ .EQU 1024 ; INVARIANT HBIOS PHYSICAL DISK BUFFER, 1K HBX_SIZ .EQU $200 ; HBIOS PROXY SIZE (SUBJECT TO CHANGE) CPM_SIZ .EQU SYS_SIZ - HBX_SIZ ; NET SIZE OF ALL OS COMPONENTS (EXCLUDING HBIOS PROXY) CCP_SIZ .EQU $800 ; INVARIANT SIZE OF CCP BDOS_SIZ .EQU $E00 ; INVARIANT SIZE OF BDOS CBIOS_SIZ .EQU CPM_SIZ - CCP_SIZ - BDOS_SIZ ; CBIOS IS THE REMAINDER ; MEMTOP .EQU $10000 ; INVARIANT TOP OF Z80 ADDRESSABLE MEMORY BNKTOP .EQU $8000 ; BANK MEMORY BARRIER ; HBX_IMG .EQU $200 ; LOC OF HBX IMAGE IN HBIOS IMAGE BANK ; HBBUF_END .EQU BNKTOP ; END OF PHYSICAL DISK BUFFER IN HBIOS HBBUF_LOC .EQU HBBUF_END - HBBUF_SIZ ; START OF PHYSICAL DISK BUFFER HBX_END .EQU MEMTOP ; END OF HBIOS PROXY HBX_LOC .EQU HBX_END - HBX_SIZ ; START OF HBIOS PROXY CPM_END .EQU HBX_LOC ; END OF CPM COMPONENTS (INCLUDING CBIOS) CPM_LOC .EQU CPM_END - CPM_SIZ ; START OF CPM COMPONENTS CBIOS_END .EQU HBX_LOC ; END OF CBIOS CBIOS_LOC .EQU CBIOS_END - CBIOS_SIZ ; START OF CBIOS ; CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS) ; CPM_IMGSIZ .EQU $3000 ; ; ============================= ; ROM BANK 0 (hbios_rom.bin) ; ============================= ; ; See hbios.asm for content of Bank 0 ; ; ============================= ; ROM BANK 1 LAYOUT (osimg.bin) ; ============================= ; LDR_LOC .EQU $0000 ; ROM LOADER LDR_SIZ .EQU $1000 LDR_END .EQU LDR_LOC +LDR_SIZ LDR_IMGLOC .EQU $0000 ; MON_LOC .EQU $EE00 ; LOCATION OF MONITOR FOR RUNNING SYSTEM MON_SIZ .EQU $1000 ; SIZE OF MONITOR BINARY IMAGE MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR MON_IMGLOC .EQU LDR_IMGLOC + LDR_SIZ ; ZSYS_IMGLOC .EQU MON_IMGLOC + MON_SIZ ; ZSDOS / Z-System ; CPM_IMGLOC .EQU ZSYS_IMGLOC + CPM_IMGSIZ ; CP/M 2.2 ; BNK1_IMGEND .EQU CPM_IMGLOC + CPM_IMGSIZ ; END OF BANK BNK1_REMAIN .EQU BNKTOP - BNK1_IMGEND ; REMAINING ; ; ============================== ; ROM BANK 2 LAYOUT (osimg1.bin) ; ============================== ; ; NOTE FOLLOWING ARE COPY/PASTED INTO camel80.azm !!!!!!!! FTH_LOC .EQU $0200 ; CAMEL FORTH FTH_SIZ .EQU $1700 FTH_END .EQU FTH_LOC + FTH_SIZ FTH_IMGLOC .EQU $0000 BAS_LOC .EQU $0200 ; NASCOM BASIC BAS_SIZ .EQU $2000 BAS_END .EQU BAS_LOC + BAS_SIZ BAS_IMGLOC .EQU FTH_IMGLOC + FTH_SIZ ; ; NOTE FOLLOWING ARE COPY/PASTED INTO tastybasic.asm !!!!!!!! TBC_LOC .EQU $0A00 ; TASTYBASIC TBC_SIZ .EQU $0A00 TBC_END .EQU TBC_LOC + TBC_SIZ TBC_IMGLOC .EQU BAS_IMGLOC + BAS_SIZ ; GAM_LOC .EQU $0200 ; GAME 2048 GAM_SIZ .EQU $0900 GAM_END .EQU GAM_LOC + GAM_SIZ GAM_IMGLOC .EQU TBC_IMGLOC + TBC_SIZ ; EGG_LOC .EQU $F000 ; EASTER EGG EGG_SIZ .EQU $0200 EGG_END .EQU EGG_LOC + EGG_SIZ EGG_IMGLOC .EQU GAM_IMGLOC + GAM_SIZ ; NET_LOC .EQU $0100 ; NETWORK BOOT NET_SIZ .EQU $1000 NET_END .EQU NET_LOC + NET_SIZ NET_IMGLOC .EQU EGG_IMGLOC + EGG_SIZ ; UPD_LOC .EQU $0200 ; ROM UPDATER UPD_SIZ .EQU $0D00 UPD_END .EQU UPD_LOC + UPD_SIZ UPD_IMGLOC .EQU NET_IMGLOC + NET_SIZ ; NVR_LOC .EQU $0100 ; NVRAM CONFIG NVR_SIZ .EQU $0800 NVR_END .EQU NVR_LOC + NVR_SIZ NVR_IMGLOC .EQU UPD_IMGLOC + UPD_SIZ ; USR_LOC .EQU $0200 ; USER USR_SIZ .EQU $0200 USR_END .EQU USR_LOC + USR_SIZ USR_IMGLOC .EQU NVR_IMGLOC + NVR_SIZ ; BNK2_IMGEND .EQU USR_IMGLOC + USR_SIZ ; END OF BANK BNK2_REMAIN .EQU BNKTOP - BNK2_IMGEND ; REMAINING ; ; ============================== ; ROM BANK 3 LAYOUT (osimg2.bin) ; ============================== ; ; not defined here, see build files ; optionally contains S100 monitor ; ; ================= ; #IFDEF BNKINFO .ECHO "-------------------------------\n" .ECHO "ROM BANK INFO \tLENGTH \tREMAIN \n" .ECHO "---------------\t-------\t-------\n" .ECHO "BANK1 BID_IMG0 \t" \ .ECHO BNK1_IMGEND \ .ECHO "\t" \ .ECHO BNK1_REMAIN \ .ECHO "\n" .ECHO "BANK2 BID_IMG1 \t" \ .ECHO BNK2_IMGEND \ .ECHO "\t" \ .ECHO BNK2_REMAIN \ .ECHO "\n" .ECHO "-------------------------------\n" ; #IF (BNK1_IMGEND > BNKTOP) .ECHO "*** BANK 1 IS TOO BIG!!!\n" !!! ; FORCE AN ASSEMBLY ERROR IF BANK SIZE EXCEEDS SPACE #ENDIF #IF (BNK2_IMGEND > BNKTOP) .ECHO "*** BANK 2 IS TOO BIG!!!\n" !!! ; FORCE AN ASSEMBLY ERROR IF BANK SIZE EXCEEDS SPACE #ENDIF ; #ENDIF