mirror of https://github.com/wwarthen/RomWBW.git
11 changed files with 14 additions and 198 deletions
@ -1,146 +0,0 @@ |
|||
ROM Page 0 |
|||
---------- |
|||
|
|||
Loc Org Size File Contents |
|||
|
|||
0000 0000 0100 pgzero Page Zero |
|||
0100 0100 0100 bootrom ROM Bootstrap |
|||
0200 0100 0200 syscfg System Configuration |
|||
0400 8400 0C00 loader Loader |
|||
1000 1000 3000 romfill Filler (for future use?) |
|||
4000 C000 1000 dbgmon Debug Monitor |
|||
5000 D000 0800 <ccp> Command Processor (CCP, ZCPR, etc.) |
|||
5800 D800 0E00 <dos> Disk Operating System (BDOS, ZSDOS, etc.) |
|||
6600 E600 1900 cbios CP/M BIOS |
|||
7F00 FF00 0100 hbfill Filler for HBIOS Proxy (HiMem Stub) |
|||
---- |
|||
8000H = 32768 |
|||
|
|||
|
|||
ROM Page 1 |
|||
---------- |
|||
|
|||
Loc Org Size File Contents |
|||
|
|||
0000 0000 0100 pgzero Page Zero |
|||
0100 0100 0100 bootrom Reserved (unused, 'bootrom' used as filler) |
|||
0200 0200 0200 syscfg System Configuration |
|||
0400 0400 0C00 loader Reserved (unused, 'loader' used as filler) |
|||
1000 1000 7000 bnk1 Bank 1 BIOS Extension |
|||
---- |
|||
8000H = 32768 |
|||
|
|||
|
|||
COM File Image |
|||
-------------- |
|||
|
|||
Loc Org Size File Contents |
|||
|
|||
0100 0100 0100 bootapp Application Bootstrap |
|||
0200 0200 0200 syscfg System Configuration |
|||
0400 8400 0C00 loader Loader |
|||
1000 1000 7000 bnk1 Bank 1 BIOS Extension |
|||
|
|||
8000 C000 1000 dbgmon Debug Monitor |
|||
9000 D000 0800 <ccp> Command Processor (CCP, ZCPR, etc.) |
|||
9800 D800 0E00 <dos> Disk Operating System (BDOS, ZSDOS, etc.) |
|||
A600 E600 1900 cbios CP/M BIOS |
|||
---- |
|||
BF00H - 0100H = BE00H = 48640 |
|||
|
|||
|
|||
RAM Page 0 |
|||
---------- |
|||
|
|||
Loc Org Size Contents |
|||
|
|||
0000 0000 0100 Page Zero |
|||
0100 0100 7F00 TPA |
|||
---- |
|||
8000H = 32768 |
|||
|
|||
|
|||
RAM Page 1 |
|||
---------- |
|||
|
|||
Loc Org Size Contents |
|||
|
|||
0000 0000 0100 Page Zero |
|||
0100 0100 0100 Reserved (unused) |
|||
0200 0200 0200 System Configuration (dynamic) |
|||
0400 0400 0C00 Command processor cache area |
|||
1000 1000 7000 Bank 1 BIOS Extension |
|||
---- |
|||
8000H = 32768 |
|||
|
|||
|
|||
RAM Page N |
|||
---------- |
|||
|
|||
Loc Org Size Contents |
|||
|
|||
8000 8000 TPA |
|||
C000 C000 1000 TPA/Debug Monitor |
|||
D000 D000 0800 Command Processor |
|||
D800 D800 0E00 Disk Operating System |
|||
E600 E600 1900 CP/M CBIOS |
|||
FF00 FF00 0100 HBIOS Proxy (HiMem Stub) |
|||
---- |
|||
10000H - 8000H = 8000H = 32768 |
|||
|
|||
General Startup Strategy |
|||
------------------------ |
|||
|
|||
A two phase boot strategy is employed. This is necessary |
|||
because at cold start, the CPU is executing code in lower |
|||
memory which is the same area that is bank switched. |
|||
|
|||
Phase 1 of booting copies phase 2 code to upper memory |
|||
and jumps to it to continue the boot process. |
|||
|
|||
Phase 2 of booting manages the setup of the RAM page |
|||
banks as needed. In the case of a hardware startup, |
|||
phase 2 just copies the code from ROM page 1 into RAM |
|||
page 1 and executes the loader. In the case of an |
|||
application startup (.com file used to load a new |
|||
copy of the system), phase 2 copies the first 32KB |
|||
of the application memory space into RAM page 1 |
|||
and executes the loader. |
|||
|
|||
See 'bootrom.asm' for the implementation of the ROM |
|||
(hardware) startup. See 'bootapp' for the implementation |
|||
of the application based startup. |
|||
|
|||
General Design Strategy |
|||
----------------------- |
|||
|
|||
The design goal is to locate as much of the hardware |
|||
dependent code as possible out of normal 64KB CP/M |
|||
address space and into a bank switched area of memory. |
|||
As calls are made to HBIOS, the lower 32KB of memory |
|||
is switched to 'bank 1' which contains all of the |
|||
driver code. The operating system is unaware this |
|||
has occurred. As control is returned to the Operating |
|||
System, the lower 32KB of memory is switched back to |
|||
normal 'bank 0'. |
|||
|
|||
HBIOS implements a small 'shim' (proxy) that lives in the |
|||
upper page (256 bytes) of RAM. This shim is responsible |
|||
for handling the HBIOS call invocations. It is the |
|||
target of 'RST 08' and will simply switch in RAM |
|||
bank 1 into lower RAM forward the call to the lower |
|||
memory, then switch lower memory back to RAM bank 0 |
|||
on return. |
|||
|
|||
In the case of CP/M and ZSDOS, CBIOS is built to |
|||
utilize HBIOS for most of the work. CBIOS contains |
|||
the required CP/M data structures such as DPH and DPB |
|||
and is responsible for translating and forwarding work |
|||
to HBIOS as needed. |
|||
|
|||
Notes |
|||
----- |
|||
|
|||
1. Size of ROM disk and RAM disk will necessarily be |
|||
decreased by 32KB each. User will need to make sure |
|||
that RAM disk is reformatted (CLRDIR). |
|||
Binary file not shown.
Binary file not shown.
@ -1,4 +0,0 @@ |
|||
HBIOS FUNCTION CALLS |
|||
==================== |
|||
|
|||
HBIOS function calls are now documented in "RomWBW Architecture.pdf". Please refer to this document. |
|||
@ -1,47 +0,0 @@ |
|||
******************************************** |
|||
*** This file is deprecated as ov v2.X *** |
|||
*** Please see BankedBIOS.txt *** |
|||
******************************************** |
|||
|
|||
|
|||
7 6 5 4 3 2 1 0 ONLY APPLICABLE TO THE LOWER MEMORY PAGE 00000h-$7FFF |
|||
^ ^ ^ ^ ^ ^ ^ ^ |
|||
: : : : : : : +--> A15 RAM/ROM ADDRESS LINE DEFAULT IS 0 |
|||
: : : : : : +----> A16 RAM/ROM ADDRESS LINE DEFAULT IS 0 |
|||
: : : : : +------> A17 RAM/ROM ADDRESS LINE DEFAULT IS 0 |
|||
: : : : +--------> A18 RAM/ROM ADDRESS LINE DEFAULT IS 0 |
|||
: : : +-----------> A19 ROM ONLY ADDRESS LINE DEFAULT IS 0 |
|||
: : +-------------> |
|||
: +---------------> |
|||
+-----------------> ROM SELECT (0=ROM, 1=RAM) DEFAULT IS 0 |
|||
|
|||
|
|||
|
|||
RAM: |
|||
|
|||
ADDRESS COMPONENT SIZE PAGE COMMENTS |
|||
----------- --------- ----- ------ ---------------------------------------------- |
|||
00000-07FFF TPA 08000 0 Normally mapped to lower 32K of CPU address space |
|||
|
|||
08000-77FFF RAMDSK 70000 1-E 448KB RAM Disk |
|||
|
|||
78000-78FFF TPA/DBGMON 01000 F Pinned to upper 32K of CPU address space |
|||
79000-7CFFF TPA 04000 " |
|||
7D000-7D7FF TPA/CCP 00800 " |
|||
7D800-7E5FF BDOS 00E00 " |
|||
7E600-7FFFF CBIOS 01A00 " (includes DATA) |
|||
|
|||
|
|||
ROM: |
|||
|
|||
ADDRESS COMPONENT SIZE PAGE COMMENTS |
|||
----------- --------- ----- ------ ---------------------------------------------- |
|||
00000-000FF PAGE ZERO 00100 |
|||
00100-01FFF LOADER 01F00 0 |
|||
02000-027FF CCP 00800 |
|||
02800-035FF BDOS 00E00 |
|||
03600-04FFF CBIOS 01A00 includes DATA |
|||
05000-05FFF DBGMON 01000 |
|||
06000-07FFF ROM EXT 02000 vdu driver, etc. |
|||
|
|||
08000-FFFFF ROMDSK F8000 1-1E 960KB ROM Disk |
|||
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue