mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Doc Updates
- Various edits to address feedback from Andrew Kendall.
This commit is contained in:
@@ -10,7 +10,7 @@ programming languages.
|
||||
|
||||
`\clearpage`{=latex}
|
||||
|
||||
# ROMWBW Monitor
|
||||
# RomWBW Monitor
|
||||
|
||||
The Monitor program is a low level utility that can be used
|
||||
for testing and programming. It allows programs to be entered,
|
||||
@@ -339,8 +339,8 @@ A comprehensive instruction manual is available in the Doc\\Contrib directory.
|
||||
|
||||
## ROMWBW unsupported features
|
||||
|
||||
- Cassette loading
|
||||
- Cassette saving
|
||||
- This ROM-hosted implementation does not support cassette or disk
|
||||
access for loading and saving programs.
|
||||
|
||||
# TastyBASIC
|
||||
|
||||
@@ -350,10 +350,12 @@ original source can be found here [https://github.com/dimitrit/tastybasic](https
|
||||
|
||||
## Features / Limitations
|
||||
|
||||
Integer arithmetic, numbers -32767 to 32767
|
||||
Singles letter variables A-Z
|
||||
1-dimensional array support
|
||||
Strings are not supported
|
||||
- This ROM-hosted implementation does not support disk access for
|
||||
loading and saving programs.
|
||||
- Integer arithmetic, numbers -32767 to 32767
|
||||
- Singles letter variables A-Z
|
||||
- 1-dimensional array support
|
||||
- Strings are not supported
|
||||
|
||||
## Direct Commands
|
||||
|
||||
@@ -494,7 +496,8 @@ Due to different platform processor speeds, serials speeds and flow control cap
|
||||
|
||||
See the ROMWBW Applications guide for additional information on performing upgrades.
|
||||
|
||||
## Console Options
|
||||
## Console Options
|
||||
|
||||
Option ( C ) - Set Console Device
|
||||
|
||||
Option ( S ) - Set Serial Device
|
||||
@@ -576,7 +579,7 @@ Can be used to verify if a ROM image has been transferred and flashed correctly.
|
||||
|
||||
In Windows, right clicking on a file should also give you a context menu option CRC SHA which will allow you to select a CRC32 calculation to be done on the selected file.
|
||||
|
||||
## Teraterm macro configuration
|
||||
## Tera Term macro configuration
|
||||
|
||||
Macros are a useful tool for automatic common tasks. There are a number of instances where using macros to facilitate the update process could be worthwhile if you are:
|
||||
|
||||
@@ -595,20 +598,21 @@ crc32file crc '\\desktop\users\phillip\documents\github\romwbw\binary\sbc_std_cu
|
||||
sprintf '0x%08x' crc
|
||||
messagebox inputstr 'crc32'
|
||||
```
|
||||
|
||||
## Serial speed guidelines
|
||||
|
||||
As identified in the introduction, there are limitations on serial speed depending on processor speed and flow control settings. Listed below are some of the results identified during testing.
|
||||
|
||||
Platform / Configuration | Processor Speed | Maximum Serial Speed
|
||||
-------------------------------|-----------------|---------------------
|
||||
Sbc-v2 uart no flow control | 2mhz | 9600
|
||||
sbc-v2 uart no flow control | 4mhz | 19200
|
||||
sbc-v2 uart no flow control | 5mhz | 19200
|
||||
sbc-v2 uart no flow control | 8mhz | 38400
|
||||
sbc-v2 uart no flow control | 10mhz | 38400
|
||||
sbc-v2 usb-fifo 2mhz+ | | n/a
|
||||
sbc-mk4 asci no flow control | 18.432mhz | 9600
|
||||
sbc-mk4 asci with flow control | 18.432mhz | 38400
|
||||
SBC-V2 UART no flow control | 2mhz | 9600
|
||||
SBC-V2 UART no flow control | 4mhz | 19200
|
||||
SBC-V2 UART no flow control | 5mhz | 19200
|
||||
SBC-V2 UART no flow control | 8mhz | 38400
|
||||
SBC-V2 UART no flow control | 10mhz | 38400
|
||||
SBC-V2 USB-FIFO 2mhz+ | | n/a
|
||||
SBC-MK4 ASCI no flow control | 18.432mhz | 9600
|
||||
SBC-MK4 ASCI with flow control | 18.432mhz | 38400
|
||||
|
||||
The **Set Recommend Baud Rate** option in the Updater menu follows the following guidelines.
|
||||
|
||||
@@ -623,9 +627,9 @@ These can be customized in the updater.asm source code in the CLKTBL table if d
|
||||
Feedback to the ROMWBW developers on these guidelines would be appreciated.
|
||||
|
||||
## Notes:
|
||||
All testing was done with Teraterm x-modem, Forcing checksum mode using macros was found to give the most reliable transfer.
|
||||
Partial writes can be completed with 39SF040 chips. Other chips require entire flash to be erased before being written.
|
||||
An SBC V2-005 MegaFlash or Z80 MBC required for 1mb flash support. The Updater assumes both chips are same type
|
||||
Failure handling has not been tested.
|
||||
Timing broadly calibrated on a Z80 SBC-v2
|
||||
Unabios not supported
|
||||
- All testing was done with Teraterm x-modem, Forcing checksum mode using macros was found to give the most reliable transfer.
|
||||
- Partial writes can be completed with 39SF040 chips. Other chips require entire flash to be erased before being written.
|
||||
- An SBC V2-005 MegaFlash or Z80 MBC required for 1mb flash support. The Updater assumes both chips are same type
|
||||
- Failure handling has not been tested.
|
||||
- Timing broadly calibrated on a Z80 SBC-v2
|
||||
- UNA BIOS not supported
|
||||
|
||||
@@ -220,6 +220,8 @@ please let me know if I missed you!
|
||||
* Ladislau Szilagyi has contributed an enhanced version of
|
||||
CP/M Cowgol that leverages RomWBW memory banking.
|
||||
|
||||
* Les Bird has contributed support for the NABU w/ Option Board
|
||||
|
||||
Contributions of all kinds to RomWBW are very welcome.
|
||||
|
||||
# Licensing
|
||||
|
||||
@@ -631,6 +631,7 @@ prompt:
|
||||
| CP/M 2.2 | Digital Research CP/M 2.2 OS |
|
||||
| Z-System | ZSDOS 1.1 w/ ZCPR 1 (Enhanced CP/M compatible OS) |
|
||||
| Forth | Brad Rodriguez's ANSI compatible Forth language |
|
||||
| BASIC | Microsoft ROM BASIC |
|
||||
| Tasty BASIC | Dimitri Theuling's Tiny BASIC implementation |
|
||||
| Play | A simple video game (requires ANSI terminal emulation) |
|
||||
| Network Boot | Boot system via Wiznet MT011 device |
|
||||
@@ -650,9 +651,17 @@ in the ROM (CP/M 2.2 & Z-System) are described in the Operating Systems
|
||||
chapter of this document.
|
||||
|
||||
In general, the command to exit any of these applications and restart
|
||||
the system is `BYE`. The exceptions are the Monitor which uses `B` and
|
||||
the system is `BYE`. The exceptions are the Monitor which uses `X` and
|
||||
Play which uses `Q`.
|
||||
|
||||
**NOTE:** Of the ROM Applications, only the operating systems (CP/M and
|
||||
Z-System) have the ability to interact with disk drives. So, other than
|
||||
these 2 OSes, the ROM Applications do **not** have any way to save or
|
||||
load data from peristent/disk storage. For example, if you launch BASIC
|
||||
from the Boot Loader, you will not be able to save or load your
|
||||
programs. You will need to start an operating system first and then run
|
||||
BASIC in order to save or load programs.
|
||||
|
||||
Two of the ROM Applications are, in fact, complete operating systems.
|
||||
Specifically, "CP/M 2.2" and "Z-System" are provided so that you can
|
||||
actually start either operating system directly from your ROM. This
|
||||
@@ -1395,15 +1404,24 @@ filesystem format used is 8MB. This ensures any filesystem will be
|
||||
accessible to any of the operating systems.
|
||||
|
||||
Since storage devices today are quite large, RomWBW implements a
|
||||
mechanism called slicing to allow up to 256 8MB filesystems on a
|
||||
single large storage device. This allows up to 2GB of usable space on
|
||||
mechanism called slicing to allow up to 256 8MB CP/M filesystems on a
|
||||
single large storage device. To say it another way, the media is
|
||||
"sliced up" into many 8MB CP/M filesystems. Each slice is a complete
|
||||
CP/M filesystem. This allows up to 2GB of usable space on
|
||||
one media. You can think of slices as a way to refer to any of
|
||||
the first 256 8MB chunks of space on a single media.
|
||||
the first 256 8MB chunks of space on a single media. Each chunk
|
||||
is a CP/M filesystem.
|
||||
|
||||
Note that although you can use up to 256 slices per physical disk, this
|
||||
large number of slices is rarely used. The recommended RomWBW disk
|
||||
layout provides for 64 slices which is more than enough for most
|
||||
use cases.
|
||||
Note that slices are **not** the same thing as a hard disk partition.
|
||||
In fact, these slices all live inside of a single hard disk partition.
|
||||
Normally, a RomWBW hard disk will have one partition (called the
|
||||
RomWBW partition) containing 64 slices. Optionally, there may be
|
||||
a second partition which contains a FAT filesystem. For now, we
|
||||
are just talking about the slices within the single RomWBW partition.
|
||||
|
||||
Although you can use up to 256 slices per physical disk, this large
|
||||
number of slices is rarely used. The recommended RomWBW disk layout
|
||||
provides for 64 slices which is more than enough for most use cases.
|
||||
|
||||
Of course, the problem is that CP/M-like operating systems have only
|
||||
16 drive letters (A:-P:) available. Under the covers, RomWBW allows
|
||||
@@ -1439,22 +1457,28 @@ the same device/slice at the same time. Second, there must always be a
|
||||
drive assigned to A:. Any attempt to violate these rules will be blocked
|
||||
by the `ASSIGN` command.
|
||||
|
||||
As you see, the name of a slice does not reference the hard disk
|
||||
partition containing the slices. Since there can only be a single
|
||||
RomWBW partition containing slices on any disk, the partition is
|
||||
determined automatically.
|
||||
|
||||
In case this wasn't already clear, you **cannot** refer directly
|
||||
to slices using CP/M. CP/M only understands drive letters, so
|
||||
to access a given slice, you must assign a drive letter to it first.
|
||||
|
||||
While it may be obvious, you cannot use slices on any media less
|
||||
than 8MB in size. Specifically, you cannot slice RAM disks, ROM
|
||||
disks, floppy disks, etc. All of these are considered to have a single
|
||||
slice and any attempt to ASSIGN a drive letter to a slice beyond that
|
||||
will result in an error message.
|
||||
While it may be obvious, you cannot use slices on any media less than
|
||||
8MB in size. Specifically, you cannot slice RAM disks, ROM disks, floppy
|
||||
disks, etc. All of these are considered to have a single slice (slice
|
||||
0) and any attempt to ASSIGN a drive letter to a slice beyond that will
|
||||
fail and produce an error message.
|
||||
|
||||
It is very important to understand that RomWBW slices are not
|
||||
individually created or allocated on your hard disk. RomWBW uses a
|
||||
single, large chunk of space on your hard disk to contain the slices.
|
||||
You should think of slices as just an index into a sequential set of 8MB
|
||||
areas that exist in this large chunk of space. The next section will
|
||||
go into more detail on how slices are located on your hard disk.
|
||||
single, large chunk of space (partition) on your hard disk to contain
|
||||
the slices. You should think of slices as just an index into a
|
||||
sequential set of 8MB areas that exist in this large chunk of space.
|
||||
The next section will go into more detail on how slices are located on
|
||||
your hard disk.
|
||||
|
||||
Although you do not need to allocate slices individually, you do need to
|
||||
initialize each slice for CP/M to use it. This is somewhat analogous
|
||||
@@ -1466,10 +1490,10 @@ absolutely sure you know what media and slice are assigned to that
|
||||
drive letter before using `CLRDIR` because CLRDIR will wipe out any
|
||||
pre-existing contents of the slice.
|
||||
|
||||
**WARNING**: The `CLRDIR` application does not appear to check for
|
||||
disk errors when it runs. If you attempt to run `CLRDIR` on a drive
|
||||
that is mapped to a slice that does not actually fit on the physical
|
||||
disk, it may behave erratically.
|
||||
**WARNING**: Earlier versions of the `CLRDIR` application does not
|
||||
appear to check for disk errors when it runs. If you attempt to run
|
||||
`CLRDIR` on a drive that is mapped to a slice that does not actually fit
|
||||
on the physical disk, it may behave erratically.
|
||||
|
||||
Here is an example of using `CLRDIR`. In this example, the `ASSIGN`
|
||||
command is used to show the current drive letter assignments. Then
|
||||
@@ -1696,9 +1720,9 @@ transferring your files over individually. You use your modern
|
||||
computer (Windows, Linux, MacOS) to write the disk image onto the
|
||||
disk media, then just move the media over to your system.
|
||||
|
||||
The disk image files are found in the Binary directory of the
|
||||
distribution. Floppy disk images are prefixed with "fd_" and hard
|
||||
disk images are prefixed with either "hd512_" or "hd1k_" depending on the
|
||||
The disk image files are found in the Binary directory of the
|
||||
distribution. Floppy disk images are prefixed with "fd_" and hard disk
|
||||
images are prefixed with either "hd512_" or "hd1k_" depending on the
|
||||
hard disk layout they are for.
|
||||
|
||||
Each disk image has the complete set of normal applications and tools
|
||||
@@ -2255,7 +2279,7 @@ significant improvements such as date/time stamping of files.
|
||||
|
||||
Z-System is a somewhat ambiguous term because there are multiple
|
||||
generations of this software. RomWBW Z-System is a combination of both
|
||||
ZCPR-DJ (the CCP) and ZSDOS 1.1 (the BDOS) when referring to Z-System.
|
||||
ZCPR-DJ (the CCP) and ZSDOS 1.1 (the BDOS) when referring to Z-System.
|
||||
The latest version of Z-System (ZCPR 3.4) is also provided with RomWBW
|
||||
via the NZ-COM adaptation (see below).
|
||||
|
||||
@@ -2470,7 +2494,7 @@ CP/M 3 and ZCPR 3.
|
||||
To create (or update) a ZPM3 boot drive, you must place `ZPMLDR.SYS` on
|
||||
the system track of the disk. You must also place `CPM3.SYS`,
|
||||
`ZCCP.COM`, `ZINSTAL.ZPM`, and `STARTZPM.COM` on the target drive as
|
||||
regular files. Do **not** place CPM3.SYS on the boot track.
|
||||
regular files. Do **not** place CPM3.SYS on the boot track.
|
||||
`ZPMLDR.SYS` chain loads `CPM3.SYS` which must exist as a regular file
|
||||
on the disk. Subsequently, `CPM3.SYS` loads `CCP.COM`.
|
||||
|
||||
@@ -2549,9 +2573,9 @@ the QP/M components. To do this, you can perform the following steps:
|
||||
|
||||
1. Use RomWBW `SYSCOPY` to place the stock RomWBW CP/M OS image
|
||||
onto the system tracks of the QP/M boot disk:
|
||||
|
||||
|
||||
`SYSCOPY A:=x:CPM.SYS`
|
||||
|
||||
|
||||
where x is the drive letter of your ROM Disk.
|
||||
|
||||
1. Run `QINSTALL` to overlay the QP/M OS components on your
|
||||
@@ -2709,11 +2733,11 @@ To boot into Fuzix:
|
||||
```
|
||||
RCBus [RCZ180_nat_wbw] Boot Loader
|
||||
FP Switches = 0x00
|
||||
|
||||
|
||||
Boot [H=Help]: 2
|
||||
|
||||
|
||||
Booting Disk Unit 2, Slice 0, Sector 0x00000000...
|
||||
|
||||
|
||||
Volume "Fuzix 126 Loader" [0xF200-0xF400, entry @ 0xF200]...
|
||||
FUZIX version 0.4
|
||||
Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza
|
||||
@@ -2742,13 +2766,13 @@ To boot into Fuzix:
|
||||
Enter new date:
|
||||
Current time is 13:30:24
|
||||
Enter new time:
|
||||
|
||||
|
||||
^ ^
|
||||
n n Fuzix 0.4
|
||||
>@<
|
||||
Welcome to Fuzix
|
||||
m m
|
||||
|
||||
|
||||
login:
|
||||
```
|
||||
|
||||
@@ -2757,7 +2781,7 @@ To boot into Fuzix:
|
||||
|
||||
```
|
||||
login: root
|
||||
|
||||
|
||||
Welcome to FUZIX.
|
||||
#
|
||||
```
|
||||
@@ -2841,7 +2865,7 @@ This application understands both FAT filesystems as well as CP/M filesystems.
|
||||
characters are **not permitted** in a CP/M filename:
|
||||
|
||||
`< > . , ; : = ? * [ ] _ % | ( ) / \`
|
||||
|
||||
|
||||
The FAT application does not auto-rename files when it encounters
|
||||
invalid filenames. It will just issue an error and quit.
|
||||
Additionally, the error message is not very clear about the problem.
|
||||
@@ -2916,8 +2940,8 @@ computer and access it using `FAT` based on its RomWBW unit number.
|
||||
**WARNING**: Microsoft Windows will sometimes suggest reformatting
|
||||
partitions that it does not recognize. If you are prompted to format a
|
||||
partition of your SD/CF/USB Media when inserting the card into a Windows
|
||||
computer, you probably want to select Cancel.
|
||||
|
||||
computer, you probably want to select Cancel.
|
||||
|
||||
## FAT Application Usage
|
||||
|
||||
Complete instructions for the `FAT` application are found in $doc_apps$.
|
||||
@@ -3393,7 +3417,7 @@ The document is called "dri-cpnet.pdf".
|
||||
Under CP/M 2.2, you will start the networking client using the command
|
||||
`CPNETLDR`. Under CP/M 3, you use the command `NDOS3`. If that works,
|
||||
you can map network drives as local drives using the `NETWORK` command.
|
||||
The `CPNETSTS` command is useful for displaying the current status.
|
||||
The `CPNETSTS` command is useful for displaying the current status.
|
||||
Here is a sample session from CP/M 2.2:
|
||||
|
||||
```
|
||||
@@ -4184,6 +4208,8 @@ please let me know if I missed you!
|
||||
* Ladislau Szilagyi has contributed an enhanced version of
|
||||
CP/M Cowgol that leverages RomWBW memory banking.
|
||||
|
||||
* Les Bird has contributed support for the NABU w/ Option Board
|
||||
|
||||
Contributions of all kinds to RomWBW are very welcome.
|
||||
|
||||
# Licensing
|
||||
|
||||
Reference in New Issue
Block a user