diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index c836c7c5..d10f8d34 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 d59fca24..e2628916 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index 8ca60e9b..9e17f800 100644 Binary files a/Doc/RomWBW Errata.pdf and b/Doc/RomWBW Errata.pdf differ diff --git a/Doc/RomWBW ROM Applications.pdf b/Doc/RomWBW ROM Applications.pdf index 5a0b6dcb..ba860339 100644 Binary files a/Doc/RomWBW ROM Applications.pdf and b/Doc/RomWBW ROM Applications.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index f4a46d0b..12cfa034 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 2213069e..8a24c3b6 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 0d5586a4..41ab05e4 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ **RomWBW ReadMe** \ Version 3.5 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -16 Apr 2024 +17 Apr 2024 # Overview @@ -229,6 +229,8 @@ 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 diff --git a/ReadMe.txt b/ReadMe.txt index c2c52345..af0e23ec 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -16 Apr 2024 +17 Apr 2024 @@ -230,6 +230,8 @@ 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. diff --git a/Source/Doc/ROM_Applications.md b/Source/Doc/ROM_Applications.md index 7a3f1a83..cfb8ae5f 100644 --- a/Source/Doc/ROM_Applications.md +++ b/Source/Doc/ROM_Applications.md @@ -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 diff --git a/Source/Doc/ReadMe.md b/Source/Doc/ReadMe.md index 81a18cf7..61783118 100644 --- a/Source/Doc/ReadMe.md +++ b/Source/Doc/ReadMe.md @@ -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 diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index 8ce4404c..624df28d 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -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 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. -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. +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