diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 259ff24b..a830feff 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index c9e3a501..d8b5abf0 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Hardware.pdf b/Doc/RomWBW Hardware.pdf index 1a2c326a..c868b09d 100644 Binary files a/Doc/RomWBW Hardware.pdf and b/Doc/RomWBW Hardware.pdf differ diff --git a/Doc/RomWBW Introduction.pdf b/Doc/RomWBW Introduction.pdf index 4cf2ce98..bf1035ba 100644 Binary files a/Doc/RomWBW Introduction.pdf and b/Doc/RomWBW Introduction.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index cd6fe081..455d9a7e 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index 4c23e59c..b7009019 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/ReadMe.md b/ReadMe.md index ce199dca..904bad69 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -7,7 +7,7 @@ **RomWBW Introduction** \ Version 3.5 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -03 Apr 2025 +04 Apr 2025 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 384a0c9a..b3e56340 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW Introduction Wayne Warthen (wwarthen@gmail.com) -03 Apr 2025 +04 Apr 2025 diff --git a/Source/Doc/SystemGuide.md b/Source/Doc/SystemGuide.md index c07e679a..26cad640 100644 --- a/Source/Doc/SystemGuide.md +++ b/Source/Doc/SystemGuide.md @@ -168,14 +168,14 @@ For example, let's say we have a typical system with 512KB of ROM and 512KB of RAM. The following table demonstrates how Bank Ids represent areas of physical memory. -| Physical Memory | Type | Physical Bank | Bank Id | -|-------------------|------|---------------|-----------| -| 0x000000-0x007FFF | ROM | 0 | 0x00 | -| 0x008000-0x00FFFF | ROM | 1 | 0x01 | -| 0x010000-0x07FFFF | ROM | 2-15 | 0x02-0x0F | -| 0x080000-0x087FFF | RAM | 16 | 0x80 | -| 0x088000-0x08FFFF | RAM | 17 | 0x81 | -| 0x090000-0x0FFFFF | RAM | 18-31 | 0x82-0x8F | +| **Physical Memory** | **Type** | **Physical Bank** | **Bank Id** | +|-----------------------|----------|-------------------|---------------| +| 0x000000-0x007FFF | ROM | 0 | 0x00 | +| 0x008000-0x00FFFF | ROM | 1 | 0x01 | +| 0x010000-0x07FFFF | ROM | 2-15 | 0x02-0x0F | +| 0x080000-0x087FFF | RAM | 16 | 0x80 | +| 0x088000-0x08FFFF | RAM | 17 | 0x81 | +| 0x090000-0x0FFFFF | RAM | 18-31 | 0x82-0x8F | Note that Bank Id 0x00 is **always** the first bank of ROM and 0x80 is **always** the first bank of RAM. If there were more banks of physical ROM, @@ -197,23 +197,23 @@ table describes the way the banks are assigned. The Typical column shows the specific values that would be assigned for a common system with 512KB of ROM and 512KB of RAM (nROM=16, nRAM=16). -| Bank Id | Identity | Typical | Purpose | -|-------------------|-----------|---------|------------------------------------------| -| 0x00 |BID_BOOT | 0x00 | Boot Bank (HBIOS image) | -| 0x01 |BID_IMG0 | 0x01 | Boot Loader, Monitor, ROM OSes, ROM Apps | -| 0x02 |BID_IMG1 | 0x02 | ROM Apps | -| 0x03 |BID_IMG2 | 0x03 | \ | -| 0x04 |BID_ROMD0 | 0x04 | First ROM Disk Bank | -| nROM - 1 | | 0x0F | Last ROM Disk Bank | -| 0x80 |BID_BIOS | 0x80 | HBIOS (working copy) | -| 0x81 |BID_RAMD0 | 0x81 | First RAM Disk Bank | -| 0x80 + nRAM - 8 | | 0x88 | Last RAM Disk Bank | -| 0x80 + nRAM - 7 |BID_APP0 | 0x89 | First Application Bank | -| 0x80 + nRAM - 5 | | 0x8B | Last Application Bank | -| 0x80 + nRAM - 4 |BID_BUF | 0x8C | OS Disk Buffers | -| 0x80 + nRAM - 3 |BID_AUX | 0x8D | OS Code Bank | -| 0x80 + nRAM - 2 |BID_USR | 0x8E | User Bank (CP/M TPA) | -| 0x80 + nRAM - 1 |BID_COM | 0x8F | Common Bank | +| **Bank Id** | **Identity** | **Typical** | **Purpose** | +|---------------------|--------------|-------------|--------------------------------------------| +| 0x00 | BID_BOOT | 0x00 | Boot Bank (HBIOS image) | +| 0x01 | BID_IMG0 | 0x01 | Boot Loader, Monitor, ROM OSes, ROM Apps | +| 0x02 | BID_IMG1 | 0x02 | ROM Apps | +| 0x03 | BID_IMG2 | 0x03 | \ | +| 0x04 | BID_ROMD0 | 0x04 | First ROM Disk Bank | +| nROM - 1 | | 0x0F | Last ROM Disk Bank | +| 0x80 | BID_BIOS | 0x80 | HBIOS (working copy) | +| 0x81 | BID_RAMD0 | 0x81 | First RAM Disk Bank | +| 0x80 + nRAM - 8 | | 0x88 | Last RAM Disk Bank | +| 0x80 + nRAM - 7 | BID_APP0 | 0x89 | First Application Bank | +| 0x80 + nRAM - 5 | | 0x8B | Last Application Bank | +| 0x80 + nRAM - 4 | BID_BUF | 0x8C | OS Disk Buffers | +| 0x80 + nRAM - 3 | BID_AUX | 0x8D | OS Code Bank | +| 0x80 + nRAM - 2 | BID_USR | 0x8E | User Bank (CP/M TPA) | +| 0x80 + nRAM - 1 | BID_COM | 0x8F | Common Bank | In this table, nROM and nRAM refer to the number of corresponding ROM and RAM banks in the the system. @@ -292,6 +292,23 @@ hence the name "Common". # Disk Layout +## Floppy Disk Layout + +RomWBVW generally handles floppy disks in the same physical formats +as MS-DOS. However, the filesystem will normally be CP/M. The following +table lists the floppy disk formats used by RomWBW. In all cases, +the sector size is 512 bytes. + +| **HBIOS Media ID** | **Capacity** | **Tracks** | **Heads** | **Sectors** | +|--------------------|-------------:|-----------:|----------:|------------:| +| MID_FD720 | 720KB | 80 | 2 | 9 | +| MID_FD144 | 1440KB | 80 | 2 | 18 | +| MID_FD360 | 360KB | 40 | 2 | 9 | +| MID_FD120 | 1200KB | 80 | 2 | 15 | +| MID_FD111 | 1155KB | 77 | 2 | 15 | + +## Hard Disk Layout + RomWBW supports the use of PC MBR hard disk partitioning (see ). When accessing a hard disk device, HBIOS will look for a partition with type id 0x2E @@ -378,7 +395,7 @@ The FAT partition can be initialized using the FAT application from CP/M using the command `FAT FORMAT n:` where n is the RomWBW disk unit number containing the FAT partition to be formatted. -## Modern Disk Layout (hd1k) +### Modern Hard Disk Layout (hd1k) ![Modern Disk Layout](Graphics/hd1k) @@ -389,7 +406,7 @@ The CP/M slices reside entirely within a hard disk partition of type 0x2E. The number of slices is determined by the number of slices that fit within the partition spaces allocated up to the maximum of 256. -## Classic Disk Layout (hd512) +### Classic Hard Disk Layout (hd512) ![Classic Disk Layout](Graphics/hd512) @@ -416,20 +433,18 @@ application. The user is responsible for ensuring that the start of the FAT partition does not overlap with the area they intend to use for CP/M slices. FDISK80 has a Reserve option to assist with this. -## Mapping to Media ID +### Mapping to Media ID HBIOS has a definition of "Media ID", which defines the type and physical properties of disk media provided by an underlying storage device. For a -complete list of Media ID's please see the following section - -[Disk Input/Output (DIO)] +complete list of Media ID's please see [Disk Input/Output (DIO)]. There are two important Media ID's relating to Hard Disk Layouts: -| **Media** | **ID** | **Format / Meaning** | -|------------|-------:|-------------------------------------------------------------| -| MID_HD | 4 | Classic Disk Layout (hd512) *--and--* HBIOS Hard Disk Drive | -| MID_HDNEW | 10 | Modern Disk Layout (hd1k) | +| **Media** | **ID** | **Format / Meaning** | +|----------------|-------:|-------------------------------------------------------------| +| MID_HD | 4 | Classic Disk Layout (hd512) *--and--* HBIOS Hard Disk Drive | +| MID_HDNEW | 10 | Modern Disk Layout (hd1k) | HBIOS typically does not understand the format of data on a device, instead just treating all hard disks as raw sectors. `MID_HD` is the typical