From a86411682b3ce5ada556a73e0c7ca2f0e08b4242 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Wed, 18 Mar 2020 11:41:51 -0700 Subject: [PATCH] Documentation Updates --- Doc/GettingStarted.pdf | Bin 124276 -> 145988 bytes ReadMe.md | 328 +++++++++++++++++++++++++++++++++++++---- ReadMe.txt | 327 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 597 insertions(+), 58 deletions(-) diff --git a/Doc/GettingStarted.pdf b/Doc/GettingStarted.pdf index ebd255b59b31b776569c5aa279d27cad7e99d01b..f90b8ce8315d4302ba057583edf4e086264bd0ee 100644 GIT binary patch delta 66474 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%0DY*+BmznBxqj1R^l_8()7mnkLw7u5p`s2(6hN#l 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 byBeMjIX@vJRE-H6JBO!cXE)SunA-mVAWAkg delta 48132 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 diff --git a/ReadMe.md b/ReadMe.md index b8edf341..0899e120 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -2,7 +2,7 @@ ## Z80/Z180 System Software -Version 2.9.2 of March 17, 2020 +Version 2.9.2 of March 18, 2020 Wayne Warthen @@ -268,26 +268,176 @@ While the RAM/ROM disks provide a functional system, they are not useful in the long term because you cannot save data across power cycles. They are also constrained by limited space. -If your system has working disk devices, then you should notice some -drive letters assigned at startup. The specific drive letters assigned -will depend on your system configuration. Note that there **must** be -media installed in IDE, CF, SD interfaces in order for drive letters to -be assigned at boot. +The systems supported by RomWBW all have the ability to use persistent +disk media. I am referring to all kinds of disk devices including floppy +drives, hard disks, CF Cards, and SD Cards. Some systems have disk +interfaces built-in, while others will require add-in cards. You will +need to refer to the documentation for your system. + +In the RomWBW bootup messages, you will see hardware discovery messages. +If you have a disk drive interface, you should see messages listing +device types like FD:, IDE:, PPIDE:, SD:. Additionally, you will see +messages indicating the media that has been found on the interfaces. As +an example, here are the messages you might see if you have an IDE +interface in your system with a single CF Card inserted in the primary +side of the interface: + + IDE: IO=0x80 MODE=MK4 + IDE0: 8-BIT LBA BLOCKS=0x00773800 SIZE=3815MB + IDE1: NO MEDIA + +The messages you see will vary depending on your hardware and the media +you have installed. But, they will all have the same general format as +the example above. + +Once your your system has working disk devices, you can boot an +operating system and the operating system will have access to the media. +At the boot loader prompt, select either either CP/M 2.2 or Z-System to +boot from ROM. As the operating system starts up, you should see a list +of drive letters assigned to the disk media you have installed. Here is +an example of this: + + Configuring Drives... + + A:=MD1:0 + B:=MD0:0 + C:=IDE0:0 + D:=IDE0:1 + +You will probably see mroe drive letters than this. The drive letter +assignment process is described in more detail later in this document. +Be aware that RomWBW will only assign drive letters to disk interfaces +that actually have media in them. If you do not see drive letters +assigned as expected, refer to the prior system boot messages to ensure +media has been detected in the interface. Actually, there is one +exception to this rule: floppy drives will be assigned a drive letter +regardless of whether there is any media inserted at boot. + +Notice how each drive letter refers back to a specific disk hardware +interface like IDE0. This is important as it is telling you what each +drive letter refers to. Also notice that mass storage disks (like IDE) +will normally have multiple drive letters assigned. The extra drive +letters refer to additional “slices” on the disk. The concept of slices +is also explained later in this document. + +Once you are seeing drive letters referring to your disk media, you can +follow the instructions below to begin using the disk media with the +operating system. Your disk media **must** be initialized prior to be +used. There are two ways to initialize your media for use. + +You can initialize the media in-place using your RomWBW system. This +process is described below under Disk Initialization. In this scenario, +you will need to subsequently copy any files you want to use onto the +newly initialized disk. + +Alternatively, you can use your modern Windows, Linux, or Mac computer +to copy a disk image onto the disk media. RomWBW comes with a variety of +disk images that are ready to use and have a much more complete set of +files than you will find on the ROM disk. This process is covered below +under Disk Images. + +## Disk Initialization To use a disk device, you will need to initialize the directory of the -filesystem. This is done using the CLRDIR application. For example if -your C: drive has been assigned to a storage device, you would use -`CLRDIR C:` to initialize C: and prepare it hold files. Note that CLRDIR -will prompt you for confirmation and you must respond with a **capital** -‘Y’ to confirm. Once CLDIR has completed, you can copy files onto the -drive, for example `COPY *.* C:`. - -If you are using a floppy drive, you will need to format your floppy -disk prior to use. This is only required for floppy disks, not hard -disk, CF Cards, or SD Cards, etc. To format a floppy drive, you can use -the interactive application FDU. FDU is not terribly user friendly, but -is generally documented in the file “FDU.txt” found in the Doc directory -of the distribution. +filesystem. On RomWBW, the initialization is done using the CLRDIR +application. For example if your C: drive has been assigned to a storage +device, you would use `CLRDIR C:` to initialize C: and prepare it hold +files. Note that CLRDIR will prompt you for confirmation and you must +respond with a **capital** ‘Y’ to confirm. Once CLDIR has completed, you +can copy files onto the drive, for example `COPY *.* C:`. Be very +careful to pay attention to your drive letter assignments prior to +running CLRDIR to avoid accidentally wiping out a filesystem that has +data on it. + +Running CLRDIR on a disk device is roughly equivalent to running FORMAT +on MS-DOS. Note that unlike MS-DOS you do **not** partition your mass +storage device. CP/M knows nothing about disk partitions. You may notice +a partitioning application on your ROM disk (FDISK80), but this is +strictly for an advanced technique of adding an MS-DOS FAT filesystem to +your media in addition to the CP/M area. Do not use FDISK80 unless you +are specifically attempting to add an MS-DOS FAT filesystem to your +media. + +If you are using a floppy drive, you will need to physically format your +floppy disk prior to use. This is only required for floppy disks, not +hard disk, CF Cards, or SD Cards, etc. To format a floppy drive, you can +use the interactive application FDU. FDU is not terribly user friendly, +but is generally documented in the file “FDU.txt” found in the Doc +directory of the distribution. It is not necessary to run CLRDIR on a +floppy disk after physically formatting it – the directory is cleared as +part of the formatting. + +## Booting Disks + +Once you have initialized a disk device and copied your desired files +onto it, you may want to boot directly to this disk device at startup. +On CP/M filesystems, you must perform one additional step to make a disk +bootable. Specifically, you need to place a copy of the oeoprating +system on the system tracks of the disk. This is done using the +`SYSCOPY` command. Let’s say you have prepared drive C: by initializing +it with `CLRDIR` and copied some files onto it. You can now make C: +bootable by running the following command: + +`B>SYSCOPY C:=B:ZSYS.SYS` + +This command means: copy the Z-System operating system onto the system +tracks of drive C:. In this example, it is assumed that you have booted +from ROM, so B: is the ROM disk drive. Additionally, this example +assumes you want the Z-System operating system to be booted from C:. If +you want CP/M 2.2 instead, you would replace `B:ZSYS.SYS` with +`B:CPM.SYS`. Here is a full example of this process. + + B>SYSCOPY C:=B:ZSYS.SYS + + SYSCOPY v2.0 for RomWBW CP/M, 17-Feb-2020 (CP/M 2 Mode) + Copyright 2020, Wayne Warthen, GNU GPL v3 + + Transfer system image from B:ZSYS.SYS to C: (Y/N)? Y + Reading image... Writing image... Done + +After successfully putting the operating system on the disk, you can +restart your system. When you get to the boot loader, notice the line +starting with “Disk:”. This line lists the disk devices that you can +choose to boot directly. + +You will notice that you do not have an option to boot a drive letter +here (like C:). This is because the operating system is not yet loaded. +When you ran `SYSCOPY` previously, remember that C: was assigned to +IDE0:0 which means device IDE0, slice 0. So, to boot the disk that you +just setup with SYSCOPY, you would choose option 1. You will then be +prompted for the slice on IDE0 that you want to boot. For now, just +press enter to choose slice 0. Once you are familiar with slices, you +can `SYSCOPY` and boot alternate slices. Here is what you would see when +booting to a disk device: + + MARK IV Boot Loader + + ROM: (M)onitor (C)P/M (Z)-System (F)orth (B)ASIC (T)-BASIC (P)LAY (U)SER ROM + Disk: (0)MD1 (1)MD0 (2)IDE0 (3)IDE1 + + Boot Selection? 2 Slice(0-9)[0]? + + Booting Disk Unit 2, Slice 0... + + Reading disk information... + Loc=D000 End=FE00 Ent=E600 Label=Unlabeled Drive + + Loading... + +Following this, you would see the normal operating system startup +messages. However, your operating system prompt will be `A>` and when +you look at the drive letter assignments, you should see that A: has +been assigned to the disk you selected to boot. + +If you receive the error message “Disk not bootable\!”, you have either +failed to properly run `SYSCOPY` on the target disk or you have selected +the wrong disk/slice. + +Note that although MD1 (RAM disk) and MD0 (ROM disk) drives are listed +in the Disk boot line, they are not currently “bootable” disks because +they have no system tracks on them. Attempting to boot to one of them, +will fail with a “Disk not bootable\!” error message and return to the +loader prompt. ## Disk Images @@ -297,7 +447,8 @@ It is generally easier to use these disk images instead of copying all the files over using XModem. You use your modern computer (Windows, Linux, MacOS) to place the disk image onto the disk media, then just move the media over to your system. In this scenario you **do not** run -CLRDIR on the directory of the drive letter(s). +`CLRDIR` or `SYSCOPY` on the drive(s). The directory prepared and the +disk is already bootable, if it is an operating system. To copy the disk image files onto your actual media (floppy disk, CF Card, SD Card, etc.), you need to use an image writing utility on your @@ -341,11 +492,11 @@ This is the layout of the hd\_combo disk image: | Slice | Description | | ------- | ---------------------------- | -| Slice 0 | DRI CP/M 2.2 bootable disk | -| Slice 1 | ZSDOS 1.1 bootable disk | -| Slice 2 | NZCOM bootable disk | -| Slice 3 | DRI CP/M 3 bootable disk | -| Slice 4 | ZPM3 bootable disk | +| Slice 0 | DRI CP/M 2.2 boot disk | +| Slice 1 | ZSDOS 1.1 boot disk | +| Slice 2 | NZCOM boot disk | +| Slice 3 | DRI CP/M 3 boot disk | +| Slice 4 | ZPM3 boot disk | | Slice 5 | WordStar v4 application disk | Note that unlike the ROM firmware, you do **not** need to choose a disk @@ -356,10 +507,10 @@ system and put it in a different system. The only constraint is that the applications on the disk media must be up to date with the firmware on the system being used. -All of the disk images that indicate they are bootable will boot from -disk as is. You do not need to run `SYSCOPY` on them to make them -bootable. However, if you upgrade your ROM, you should use `SYSCOPY` to -update the system tracks. +All of the disk images that indicate they are bootable (boot disk) will +boot from disk as is. You do not need to run `SYSCOPY` on them to make +them bootable. However, if you upgrade your ROM, you should use +`SYSCOPY` to update the system tracks. # General Usage @@ -619,6 +770,125 @@ Note that Phillip Stevens has also ported FreeRTOS to run under RomWBW. FreeRTOS is not provided in the RomWBW distribution, but is available from Phillip. +# Transferring Files + +Transferring files between your modern computer and your RomWBW system +can be achieved in a variety of ways. The most common of these are +described below. All of these have a certain degree of complexity and I +encourage new users to use the available community forums to seek +assistance as needed. + +## Serial Port Transfers + +RomWBW provides an serial file transfer program called XModem that has +been adapted to run under RomWBW hardware. The program is called `XM` +and is on your ROM disk as well as all of the pre-built disk images. + +You can type `XM` by itself to get usage information. In general, you +will run `XM` with parameters to indicate you want to send or receive a +file on your RomWBW system. Then, you will use your modern computers +terminal program to complete the process. + +The `XM` application generally tries to detect the hardware you are +using and adapt to it. However, you must ensure that you have a +realiable serial connection. You must also ensure that the speed of the +connection is not too fast for XModem to handle. Alternatively, you can +ensure that hardware flow control is working properly. + +There is an odd interaction between XModem and partner terminal programs +that can occur. Essentially, after launching `XM`, you must start the +protocol on your modern computer fairly quickly (usually about 20 +seconds or so). So, if you do not pick a file on your modern computer +quickly enough, you will find that the transfer completes about 16K, +then hangs. The interaction that casuses this is beyond the scope of +this document. + +## Disk Image Transfers + +It is possible to pass disk images between your RomWBW system and your +modern computer. This assumes you have an appropriate media slot on your +modern computer for the media you want to use (CF Card, SD Card, or +floppy drive). + +The general process to get files from your modern computer to a RomWBW +computer is: + +1. Use `cpmtools` on your modern computer to create a RomWBW CP/M + filesystem image. +2. Insert your RomWBW media (CF Card, SD Card, or floppy disk) in your + modern computer. +3. Use a disk imaging tool to copy the RomWBW filesystem image onto the + media. +4. Move the media back to the RomWBW computer. + +This process is a little complicated, but it has the benefit of allowing +you to get a lot of files over to your RomWBW system quickly and with +little change of corruption. + +The process can be run in reverse to get files from your RomWBW computer +to a modern computer. + +The exact use of these tools is a bit too much for this document, but +the tools are all included in the RomWBW distribution along with usage +documents. + +Note that the build scripts for RomWBW create the default disk images +supplied with RomWBW. It is relatively easy to customize the contents of +the disk images that are part of RomWBW. This is described in more +detail in the Source\\Images driectory of the distribution. + +## FAT Filesystem Transfers + +RomWBW provides a mechanism that allows it to read and write files on an +FAT formatted disk. This means that you can generally use your modern +computer to make an SD Card or CF Card with a standard FAT32 filesystem +on it, then place that media in your RomWBW computer and read/write the +files. + +When formatting the media on your modern computer, but sure to pick the +FAT filesystem. NTFS and other filesystems will not work. + +On your RomWBW computer you can use the `FAT` application to access the +FAT media. The `FAT` application allows you to read files, write files, +list a directory, and erase files on the FAT media. It can handle +subdirectories as well. It will only see 8.3 character filenames +however. Longer filenames will show up as a truncated version. + +The `FAT` application is not on your ROM disk because it is too large to +fit. You will find it on all of the pre-built disk images as well as in +the Binary\\Apps directory of the distribution. + +For advanced users, it is possible to create a hybrid disk that contains +CP/M slices at the beginning and a FAT filesystem after. Such a hybrid +disk can be used to boot an operating system and still have access to +FAT files on the FAT portion of the disk. David Reese has prepared a +document describing how to do this. It is called +“SC126\_How-To\_No\_2\_Preparing\_an\_SD\_Card\_for\_Use\_with\_SC126\_Rev\_1-5.pdf” +and can be found in the Doc\\Contrib directory of the distribution. + +# Startup Command Processing + +Each of the operating system supported by RomWBW provide a mechanism to +run commands at boot. This is similar to the AUTOEXEC.BAT files from +MS-DOS. + +With the exception of ZPM3, all operating system will look for a file +called `PROFILE.SUB` on the system drive at boot. If it is found, it +will be processed as a standard CP/M submit file. You can read about the +use of the SUBMIT facility in the CP/M manuals included in the RomWBW +distribution. + +In the case of ZPM3, the file called `STARTZPM.COM` will be run at boot. +To customize this file, you use the ZCPR ALIAS facility. You will need +to refer to ZCPR documentation for more information on the ALIAS +facility. + +Note that automatic startup processing generally requires booting to a +disk drive. Since the ROM disk is not writable, there is no simple way +to add/edit a `PROFILE.SUB` file there. If you want to customize your +ROM and add a `PROFILE.SUB` file to the ROM Disk, it will work, but is a +lot harder than using a boot disk. + # ROM Customization The pre-built ROM images are configured for the basic capabilities of diff --git a/ReadMe.txt b/ReadMe.txt index 276ae088..ff28b03f 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -2,7 +2,7 @@ RomWBW Z80/Z180 System Software -Version 2.9.2 of March 17, 2020 +Version 2.9.2 of March 18, 2020 Wayne Warthen wwarthen@gmail.com @@ -282,26 +282,175 @@ While the RAM/ROM disks provide a functional system, they are not useful in the long term because you cannot save data across power cycles. They are also constrained by limited space. -If your system has working disk devices, then you should notice some -drive letters assigned at startup. The specific drive letters assigned -will depend on your system configuration. Note that there must be media -installed in IDE, CF, SD interfaces in order for drive letters to be -assigned at boot. +The systems supported by RomWBW all have the ability to use persistent +disk media. I am referring to all kinds of disk devices including floppy +drives, hard disks, CF Cards, and SD Cards. Some systems have disk +interfaces built-in, while others will require add-in cards. You will +need to refer to the documentation for your system. + +In the RomWBW bootup messages, you will see hardware discovery messages. +If you have a disk drive interface, you should see messages listing +device types like FD:, IDE:, PPIDE:, SD:. Additionally, you will see +messages indicating the media that has been found on the interfaces. As +an example, here are the messages you might see if you have an IDE +interface in your system with a single CF Card inserted in the primary +side of the interface: + + IDE: IO=0x80 MODE=MK4 + IDE0: 8-BIT LBA BLOCKS=0x00773800 SIZE=3815MB + IDE1: NO MEDIA + +The messages you see will vary depending on your hardware and the media +you have installed. But, they will all have the same general format as +the example above. + +Once your your system has working disk devices, you can boot an +operating system and the operating system will have access to the media. +At the boot loader prompt, select either either CP/M 2.2 or Z-System to +boot from ROM. As the operating system starts up, you should see a list +of drive letters assigned to the disk media you have installed. Here is +an example of this: + + Configuring Drives... + + A:=MD1:0 + B:=MD0:0 + C:=IDE0:0 + D:=IDE0:1 + +You will probably see mroe drive letters than this. The drive letter +assignment process is described in more detail later in this document. +Be aware that RomWBW will only assign drive letters to disk interfaces +that actually have media in them. If you do not see drive letters +assigned as expected, refer to the prior system boot messages to ensure +media has been detected in the interface. Actually, there is one +exception to this rule: floppy drives will be assigned a drive letter +regardless of whether there is any media inserted at boot. + +Notice how each drive letter refers back to a specific disk hardware +interface like IDE0. This is important as it is telling you what each +drive letter refers to. Also notice that mass storage disks (like IDE) +will normally have multiple drive letters assigned. The extra drive +letters refer to additional “slices” on the disk. The concept of slices +is also explained later in this document. + +Once you are seeing drive letters referring to your disk media, you can +follow the instructions below to begin using the disk media with the +operating system. Your disk media must be initialized prior to be used. +There are two ways to initialize your media for use. + +You can initialize the media in-place using your RomWBW system. This +process is described below under Disk Initialization. In this scenario, +you will need to subsequently copy any files you want to use onto the +newly initialized disk. + +Alternatively, you can use your modern Windows, Linux, or Mac computer +to copy a disk image onto the disk media. RomWBW comes with a variety of +disk images that are ready to use and have a much more complete set of +files than you will find on the ROM disk. This process is covered below +under Disk Images. + +Disk Initialization To use a disk device, you will need to initialize the directory of the -filesystem. This is done using the CLRDIR application. For example if -your C: drive has been assigned to a storage device, you would use -CLRDIR C: to initialize C: and prepare it hold files. Note that CLRDIR -will prompt you for confirmation and you must respond with a capital ‘Y’ -to confirm. Once CLDIR has completed, you can copy files onto the drive, -for example COPY *.* C:. - -If you are using a floppy drive, you will need to format your floppy -disk prior to use. This is only required for floppy disks, not hard -disk, CF Cards, or SD Cards, etc. To format a floppy drive, you can use -the interactive application FDU. FDU is not terribly user friendly, but -is generally documented in the file “FDU.txt” found in the Doc directory -of the distribution. +filesystem. On RomWBW, the initialization is done using the CLRDIR +application. For example if your C: drive has been assigned to a storage +device, you would use CLRDIR C: to initialize C: and prepare it hold +files. Note that CLRDIR will prompt you for confirmation and you must +respond with a capital ‘Y’ to confirm. Once CLDIR has completed, you can +copy files onto the drive, for example COPY *.* C:. Be very careful to +pay attention to your drive letter assignments prior to running CLRDIR +to avoid accidentally wiping out a filesystem that has data on it. + +Running CLRDIR on a disk device is roughly equivalent to running FORMAT +on MS-DOS. Note that unlike MS-DOS you do not partition your mass +storage device. CP/M knows nothing about disk partitions. You may notice +a partitioning application on your ROM disk (FDISK80), but this is +strictly for an advanced technique of adding an MS-DOS FAT filesystem to +your media in addition to the CP/M area. Do not use FDISK80 unless you +are specifically attempting to add an MS-DOS FAT filesystem to your +media. + +If you are using a floppy drive, you will need to physically format your +floppy disk prior to use. This is only required for floppy disks, not +hard disk, CF Cards, or SD Cards, etc. To format a floppy drive, you can +use the interactive application FDU. FDU is not terribly user friendly, +but is generally documented in the file “FDU.txt” found in the Doc +directory of the distribution. It is not necessary to run CLRDIR on a +floppy disk after physically formatting it – the directory is cleared as +part of the formatting. + +Booting Disks + +Once you have initialized a disk device and copied your desired files +onto it, you may want to boot directly to this disk device at startup. +On CP/M filesystems, you must perform one additional step to make a disk +bootable. Specifically, you need to place a copy of the oeoprating +system on the system tracks of the disk. This is done using the SYSCOPY +command. Let’s say you have prepared drive C: by initializing it with +CLRDIR and copied some files onto it. You can now make C: bootable by +running the following command: + +B>SYSCOPY C:=B:ZSYS.SYS + +This command means: copy the Z-System operating system onto the system +tracks of drive C:. In this example, it is assumed that you have booted +from ROM, so B: is the ROM disk drive. Additionally, this example +assumes you want the Z-System operating system to be booted from C:. If +you want CP/M 2.2 instead, you would replace B:ZSYS.SYS with B:CPM.SYS. +Here is a full example of this process. + + B>SYSCOPY C:=B:ZSYS.SYS + + SYSCOPY v2.0 for RomWBW CP/M, 17-Feb-2020 (CP/M 2 Mode) + Copyright 2020, Wayne Warthen, GNU GPL v3 + + Transfer system image from B:ZSYS.SYS to C: (Y/N)? Y + Reading image... Writing image... Done + +After successfully putting the operating system on the disk, you can +restart your system. When you get to the boot loader, notice the line +starting with “Disk:”. This line lists the disk devices that you can +choose to boot directly. + +You will notice that you do not have an option to boot a drive letter +here (like C:). This is because the operating system is not yet loaded. +When you ran SYSCOPY previously, remember that C: was assigned to IDE0:0 +which means device IDE0, slice 0. So, to boot the disk that you just +setup with SYSCOPY, you would choose option 1. You will then be prompted +for the slice on IDE0 that you want to boot. For now, just press enter +to choose slice 0. Once you are familiar with slices, you can SYSCOPY +and boot alternate slices. Here is what you would see when booting to a +disk device: + + MARK IV Boot Loader + + ROM: (M)onitor (C)P/M (Z)-System (F)orth (B)ASIC (T)-BASIC (P)LAY (U)SER ROM + Disk: (0)MD1 (1)MD0 (2)IDE0 (3)IDE1 + + Boot Selection? 2 Slice(0-9)[0]? + + Booting Disk Unit 2, Slice 0... + + Reading disk information... + Loc=D000 End=FE00 Ent=E600 Label=Unlabeled Drive + + Loading... + +Following this, you would see the normal operating system startup +messages. However, your operating system prompt will be A> and when you +look at the drive letter assignments, you should see that A: has been +assigned to the disk you selected to boot. + +If you receive the error message “Disk not bootable!”, you have either +failed to properly run SYSCOPY on the target disk or you have selected +the wrong disk/slice. + +Note that although MD1 (RAM disk) and MD0 (ROM disk) drives are listed +in the Disk boot line, they are not currently “bootable” disks because +they have no system tracks on them. Attempting to boot to one of them, +will fail with a “Disk not bootable!” error message and return to the +loader prompt. Disk Images @@ -311,7 +460,8 @@ It is generally easier to use these disk images instead of copying all the files over using XModem. You use your modern computer (Windows, Linux, MacOS) to place the disk image onto the disk media, then just move the media over to your system. In this scenario you do not run -CLRDIR on the directory of the drive letter(s). +CLRDIR or SYSCOPY on the drive(s). The directory prepared and the disk +is already bootable, if it is an operating system. To copy the disk image files onto your actual media (floppy disk, CF Card, SD Card, etc.), you need to use an image writing utility on your @@ -355,11 +505,11 @@ This is the layout of the hd_combo disk image: Slice Description --------- ------------------------------ - Slice 0 DRI CP/M 2.2 bootable disk - Slice 1 ZSDOS 1.1 bootable disk - Slice 2 NZCOM bootable disk - Slice 3 DRI CP/M 3 bootable disk - Slice 4 ZPM3 bootable disk + Slice 0 DRI CP/M 2.2 boot disk + Slice 1 ZSDOS 1.1 boot disk + Slice 2 NZCOM boot disk + Slice 3 DRI CP/M 3 boot disk + Slice 4 ZPM3 boot disk Slice 5 WordStar v4 application disk Note that unlike the ROM firmware, you do not need to choose a disk @@ -370,10 +520,10 @@ system and put it in a different system. The only constraint is that the applications on the disk media must be up to date with the firmware on the system being used. -All of the disk images that indicate they are bootable will boot from -disk as is. You do not need to run SYSCOPY on them to make them -bootable. However, if you upgrade your ROM, you should use SYSCOPY to -update the system tracks. +All of the disk images that indicate they are bootable (boot disk) will +boot from disk as is. You do not need to run SYSCOPY on them to make +them bootable. However, if you upgrade your ROM, you should use SYSCOPY +to update the system tracks. General Usage @@ -649,6 +799,125 @@ Note that Phillip Stevens has also ported FreeRTOS to run under RomWBW. FreeRTOS is not provided in the RomWBW distribution, but is available from Phillip. +Transferring Files + +Transferring files between your modern computer and your RomWBW system +can be achieved in a variety of ways. The most common of these are +described below. All of these have a certain degree of complexity and I +encourage new users to use the available community forums to seek +assistance as needed. + +Serial Port Transfers + +RomWBW provides an serial file transfer program called XModem that has +been adapted to run under RomWBW hardware. The program is called XM and +is on your ROM disk as well as all of the pre-built disk images. + +You can type XM by itself to get usage information. In general, you will +run XM with parameters to indicate you want to send or receive a file on +your RomWBW system. Then, you will use your modern computers terminal +program to complete the process. + +The XM application generally tries to detect the hardware you are using +and adapt to it. However, you must ensure that you have a realiable +serial connection. You must also ensure that the speed of the connection +is not too fast for XModem to handle. Alternatively, you can ensure that +hardware flow control is working properly. + +There is an odd interaction between XModem and partner terminal programs +that can occur. Essentially, after launching XM, you must start the +protocol on your modern computer fairly quickly (usually about 20 +seconds or so). So, if you do not pick a file on your modern computer +quickly enough, you will find that the transfer completes about 16K, +then hangs. The interaction that casuses this is beyond the scope of +this document. + +Disk Image Transfers + +It is possible to pass disk images between your RomWBW system and your +modern computer. This assumes you have an appropriate media slot on your +modern computer for the media you want to use (CF Card, SD Card, or +floppy drive). + +The general process to get files from your modern computer to a RomWBW +computer is: + +1. Use cpmtools on your modern computer to create a RomWBW CP/M + filesystem image. +2. Insert your RomWBW media (CF Card, SD Card, or floppy disk) in your + modern computer. +3. Use a disk imaging tool to copy the RomWBW filesystem image onto the + media. +4. Move the media back to the RomWBW computer. + +This process is a little complicated, but it has the benefit of allowing +you to get a lot of files over to your RomWBW system quickly and with +little change of corruption. + +The process can be run in reverse to get files from your RomWBW computer +to a modern computer. + +The exact use of these tools is a bit too much for this document, but +the tools are all included in the RomWBW distribution along with usage +documents. + +Note that the build scripts for RomWBW create the default disk images +supplied with RomWBW. It is relatively easy to customize the contents of +the disk images that are part of RomWBW. This is described in more +detail in the Source\Images driectory of the distribution. + +FAT Filesystem Transfers + +RomWBW provides a mechanism that allows it to read and write files on an +FAT formatted disk. This means that you can generally use your modern +computer to make an SD Card or CF Card with a standard FAT32 filesystem +on it, then place that media in your RomWBW computer and read/write the +files. + +When formatting the media on your modern computer, but sure to pick the +FAT filesystem. NTFS and other filesystems will not work. + +On your RomWBW computer you can use the FAT application to access the +FAT media. The FAT application allows you to read files, write files, +list a directory, and erase files on the FAT media. It can handle +subdirectories as well. It will only see 8.3 character filenames +however. Longer filenames will show up as a truncated version. + +The FAT application is not on your ROM disk because it is too large to +fit. You will find it on all of the pre-built disk images as well as in +the Binary\Apps directory of the distribution. + +For advanced users, it is possible to create a hybrid disk that contains +CP/M slices at the beginning and a FAT filesystem after. Such a hybrid +disk can be used to boot an operating system and still have access to +FAT files on the FAT portion of the disk. David Reese has prepared a +document describing how to do this. It is called +“SC126_How-To_No_2_Preparing_an_SD_Card_for_Use_with_SC126_Rev_1-5.pdf” +and can be found in the Doc\Contrib directory of the distribution. + +Startup Command Processing + +Each of the operating system supported by RomWBW provide a mechanism to +run commands at boot. This is similar to the AUTOEXEC.BAT files from +MS-DOS. + +With the exception of ZPM3, all operating system will look for a file +called PROFILE.SUB on the system drive at boot. If it is found, it will +be processed as a standard CP/M submit file. You can read about the use +of the SUBMIT facility in the CP/M manuals included in the RomWBW +distribution. + +In the case of ZPM3, the file called STARTZPM.COM will be run at boot. +To customize this file, you use the ZCPR ALIAS facility. You will need +to refer to ZCPR documentation for more information on the ALIAS +facility. + +Note that automatic startup processing generally requires booting to a +disk drive. Since the ROM disk is not writable, there is no simple way +to add/edit a PROFILE.SUB file there. If you want to customize your ROM +and add a PROFILE.SUB file to the ROM Disk, it will work, but is a lot +harder than using a boot disk. + ROM Customization The pre-built ROM images are configured for the basic capabilities of