|
|
|
@ -1848,6 +1848,12 @@ At this point, it is best to restart your system to make sure that |
|
|
|
the operating system is aware of the partition table updates. Start |
|
|
|
CP/M 2.2 or Z-System from ROM again. |
|
|
|
|
|
|
|
#### FAT Partition |
|
|
|
|
|
|
|
At this point you may want to consider creating a FAT partition |
|
|
|
Please see the section [FAT Filesystem Preparation] for detils on how |
|
|
|
to setup the FAT partition. |
|
|
|
|
|
|
|
### Slice Initialization |
|
|
|
|
|
|
|
You need to initialize each slice for CP/M to use it. |
|
|
|
@ -2998,195 +3004,6 @@ floppy disk and hard disk images. |
|
|
|
| TUNE | Play .PT2, .PT3, .MYM audio files. | |
|
|
|
| INTTEST | Test interrupt vector hooking. | |
|
|
|
|
|
|
|
# FAT Filesystem |
|
|
|
|
|
|
|
The FAT filesystem format that originated with MS-DOS is almost |
|
|
|
ubiquitous across modern computers. Virtually all operating systems |
|
|
|
now support reading and writing files to a FAT filesystem. For this |
|
|
|
reason, RomWBW now has the ability to read and write files on FAT |
|
|
|
filesystems. |
|
|
|
|
|
|
|
This is accomplished by running a RomWBW custom application called `FAT`. |
|
|
|
This application understands both FAT filesystems as well as CP/M filesystems. |
|
|
|
|
|
|
|
* Files can be copied between a FAT filesystem and a CP/M filesystem, |
|
|
|
but you cannot execute files directly from a FAT filesystem. |
|
|
|
* FAT12, FAT16, and FAT32 formats are supported. |
|
|
|
* Long filenames are not supported. Files with long filenames will |
|
|
|
show up with their names truncated into the older 8.3 convention. |
|
|
|
* A FAT filesystem can be located on floppy or hard disk media. For |
|
|
|
hard disk media, a valid FAT Filesystem partition must exist. |
|
|
|
* Note that CP/M (and compatible) OSes do not support all of the |
|
|
|
filename characters that a modern computer does. The following |
|
|
|
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. |
|
|
|
|
|
|
|
## FAT Filesystem Preparation |
|
|
|
|
|
|
|
In general, you can create media formatted with a FAT filesystem on |
|
|
|
your RomWBW computer or on your modern computer. We will only be |
|
|
|
discussing the RomWBW-based approach here. |
|
|
|
|
|
|
|
In the case of a floppy disk, you can use the `FAT` application to |
|
|
|
format the floppy disk. The floppy disk must already be physically |
|
|
|
formatted using RomWBW FDU or equivalent. If your floppy disk is on |
|
|
|
RomWBW disk unit 2, you could use `FAT FORMAT 2:`. This will overwrite |
|
|
|
the floppy with a FAT filesystem and all previous contents will be lost. |
|
|
|
Once formatted this way, the floppy disk can be used in a floppy drive |
|
|
|
attached to a modern computer or it can be used on RomWBW using the |
|
|
|
other `FAT` tool commands. |
|
|
|
|
|
|
|
In the case of hard disk media, it is necessary to have a FAT |
|
|
|
partition. If you prepared your RomWBW hard disk media using the |
|
|
|
disk image process, then this partition will already be defined and |
|
|
|
you do not need to recreate it. This default FAT partition is located |
|
|
|
at approximately 512MB from the start of your disk and it is 384MB in |
|
|
|
size. So, your hard disk media must be 1GB or greater to use this |
|
|
|
default FAT partition. |
|
|
|
|
|
|
|
You can confirm the existence of the FAT partition with `FDISK80` by |
|
|
|
using the 'P' command to show the current partition table. Here is an |
|
|
|
example of a partition table listing from `FDISK80` that includes the |
|
|
|
FAT partition (labelled "FAT16"): |
|
|
|
|
|
|
|
``` |
|
|
|
Capacity of disk 4: ( 4G) 7813120 Geom 77381010 |
|
|
|
Nr ---Type- A -- Start End LBA start LBA count Size |
|
|
|
1 RomWBW 2e 8:0:1 1023:15:16 2048 1048576 512M |
|
|
|
2 FAT16 06 1023:0:1 1023:15:16 1050624 786432 384M |
|
|
|
3 00 *** empty *** |
|
|
|
4 00 *** empty *** |
|
|
|
``` |
|
|
|
|
|
|
|
If your hard disk media does not have a FAT partition already defined, |
|
|
|
you will need to define one using FDISK80 by using the 'N' command. |
|
|
|
Ensure that the location and size of the FAT partition does not |
|
|
|
overlap any of the CP/M slice area and that it fits within the size |
|
|
|
of your media. |
|
|
|
|
|
|
|
Once the partition is defined, you will still need to format it. Just |
|
|
|
as with a floppy disk, you use the `FAT` tool to do this. If your |
|
|
|
hard disk media is on RomWBW disk unit 4, you would use `FAT FORMAT 4:`. |
|
|
|
This will look something like this: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat format 4: |
|
|
|
|
|
|
|
About to format FAT Filesystem on Disk Unit #4. |
|
|
|
All existing FAT partition data will be destroyed!!! |
|
|
|
|
|
|
|
Continue (y/n)? |
|
|
|
|
|
|
|
Formatting... Done |
|
|
|
``` |
|
|
|
|
|
|
|
Your FAT filesystem is now ready to use. |
|
|
|
|
|
|
|
If your RomWBW system has multiple disk drives/slots, you can also just |
|
|
|
create a disk with your modern computer that is a dedicated FAT |
|
|
|
filesystem disk. You can use your modern computer to format the disk |
|
|
|
(floppy, CF Card, SD Card, etc.), then insert the disk in your RomWBW |
|
|
|
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. |
|
|
|
|
|
|
|
## FAT Application Usage |
|
|
|
|
|
|
|
Complete instructions for the `FAT` application are found in $doc_apps$. |
|
|
|
Here, we will just provide a couple of simple examples. Note that the |
|
|
|
FAT application is not on the ROM disk because it is too large to |
|
|
|
include there. |
|
|
|
|
|
|
|
The most important thing to understand about the `FAT` application is |
|
|
|
how it refers to FAT filesystems vs. CP/M filesystems. It infers this |
|
|
|
based on the file specification provided. If you use a specification |
|
|
|
like `C:SAMPLE.TXT`, it will use the C: drive of your CP/M operating |
|
|
|
system. If you use a specification like `4:SAMPLE.TXT`, it will use |
|
|
|
the FAT filesystem on the disk in RomWBW disk unit 4. Basically, if |
|
|
|
you start your file or directory specification with a number followed |
|
|
|
by a colon, it means FAT filesystem. Anything else will mean CP/M |
|
|
|
filesystem. |
|
|
|
|
|
|
|
Here are a few examples. This first example shows how to get a FAT |
|
|
|
directory listing from RomWBW disk unit 4: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat dir 4: |
|
|
|
|
|
|
|
Directory of 4: |
|
|
|
|
|
|
|
|
|
|
|
E> |
|
|
|
``` |
|
|
|
|
|
|
|
As you can see, there are currently no files there. Now let's copy |
|
|
|
a file from CP/M to the FAT directory: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat copy sample.txt 4: |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
SAMPLE.TXT ==> 4:/SAMPLE.TXT ... [OK] |
|
|
|
|
|
|
|
1 File(s) Copied |
|
|
|
``` |
|
|
|
|
|
|
|
If we list the FAT directory again, you will see the file: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat dir 4: |
|
|
|
|
|
|
|
Directory of 4: |
|
|
|
|
|
|
|
01/30/2023 17:50:14 29952 ---A SAMPLE.TXT |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
Now let's copy the file from the FAT filesystem back to CP/M. This |
|
|
|
time we will get a warning about overwriting the file. For this |
|
|
|
example, we don't want to do that, so we abort and reissue the |
|
|
|
command specifying a new filename to use: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat copy 4:sample.txt e: |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
4:/SAMPLE.TXT ==> E:SAMPLE.TXT Overwrite? (Y/N) [Skipped] |
|
|
|
|
|
|
|
0 File(s) Copied |
|
|
|
|
|
|
|
E>fat copy 4:sample.txt e:sample2.txt |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
4:/SAMPLE.TXT ==> E:SAMPLE2.TXT ... [OK] |
|
|
|
|
|
|
|
1 File(s) Copied |
|
|
|
``` |
|
|
|
|
|
|
|
Finally, let's try using wildcards: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat copy sample*.* 4: |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
SAMPLE.TXT ==> 4:/SAMPLE.TXT Overwrite? (Y/N) ... [OK] |
|
|
|
SAMPLE2.TXT ==> 4:/SAMPLE2.TXT ... [OK] |
|
|
|
|
|
|
|
2 File(s) Copied |
|
|
|
``` |
|
|
|
|
|
|
|
# Real Time Clock |
|
|
|
|
|
|
|
RomWBW supports a variety of real time clock hardware. If your |
|
|
|
@ -3963,35 +3780,222 @@ detail in the Source/Images directory of the distribution. |
|
|
|
|
|
|
|
## FAT Filesystem Transfers |
|
|
|
|
|
|
|
The ability to interact with FAT filesystems was covered in |
|
|
|
[FAT Filesystem]. This capability means that you can generally use your |
|
|
|
modern computer to make an SD Card, CF Card, or USB Drive with a |
|
|
|
standard FAT32 filesystem on it, then place that media in your RomWBW |
|
|
|
computer and access the files. |
|
|
|
The FAT filesystem format that originated with MS-DOS is almost |
|
|
|
ubiquitous across modern computers. Virtually all operating systems |
|
|
|
now support reading and writing files to a FAT filesystem. For this |
|
|
|
reason, RomWBW now has the ability to read and write files on FAT |
|
|
|
filesystems. |
|
|
|
|
|
|
|
This capability means that you can generally use your modern computer |
|
|
|
to make an SD Card, CF Card, or USB Drive with a standard FAT filesystem |
|
|
|
on it, then place that media in your RomWBW computer and access the files. |
|
|
|
|
|
|
|
* Files can be copied between a FAT filesystem and a CP/M filesystem, |
|
|
|
but you cannot execute files directly from a FAT filesystem. |
|
|
|
|
|
|
|
* FAT12, FAT16, and FAT32 formats are supported. |
|
|
|
|
|
|
|
* Long filenames are not supported. Files with long filenames will |
|
|
|
show up with their names truncated into the older 8.3 convention. |
|
|
|
If you have files on your modern computer with long filenames, |
|
|
|
it is usually easiest to rename them on the modern computer. |
|
|
|
|
|
|
|
* A FAT filesystem can be located on floppy or hard disk media. For |
|
|
|
hard disk media, a valid FAT Filesystem partition must exist. |
|
|
|
|
|
|
|
Some additional **Notes** and **WARNINGS** Things to be careful about |
|
|
|
|
|
|
|
* CP/M (and compatible) OSes do not support all of the |
|
|
|
filename characters that a modern computer does. The following |
|
|
|
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. |
|
|
|
|
|
|
|
* Microsoft Windows will sometimes suggest **reformatting** |
|
|
|
partitions that it does not recognize (e.g. RomWBW). |
|
|
|
If you are using media that contains both a FAT partition |
|
|
|
and a RomWBW partition you may 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. |
|
|
|
|
|
|
|
### FAT Filesystem Preparation |
|
|
|
|
|
|
|
In general, you can create media formatted with a FAT filesystem on |
|
|
|
your RomWBW computer or on your modern computer. We will only be |
|
|
|
discussing the RomWBW-based approach here. |
|
|
|
|
|
|
|
#### Floppy Disk |
|
|
|
|
|
|
|
In the case of a floppy disk, you can use the `FAT` application to |
|
|
|
format the floppy disk. The floppy disk must already be physically |
|
|
|
formatted using RomWBW FDU or equivalent. If your floppy disk is on |
|
|
|
RomWBW disk unit 2, you could use `FAT FORMAT 2:`. This will overwrite |
|
|
|
the floppy with a FAT filesystem and all previous contents will be lost. |
|
|
|
Once formatted this way, the floppy disk can be used in a floppy drive |
|
|
|
attached to a modern computer or it can be used on RomWBW using the |
|
|
|
other `FAT` tool commands. |
|
|
|
|
|
|
|
#### Hard Disk |
|
|
|
|
|
|
|
In the case of hard disk media, it is necessary to have a FAT |
|
|
|
partition. If you prepared your RomWBW hard disk media using the |
|
|
|
disk image process, then this partition will already be defined and |
|
|
|
you do not need to recreate it. This default FAT partition is located |
|
|
|
at approximately 512MB from the start of your disk and it is 384MB in |
|
|
|
size. So, your hard disk media must be 1GB or greater to use this |
|
|
|
default FAT partition. |
|
|
|
|
|
|
|
You can confirm the existence of the FAT partition with `FDISK80` by |
|
|
|
using the 'P' command to show the current partition table. Here is an |
|
|
|
example of a partition table listing from `FDISK80` that includes the |
|
|
|
FAT partition (labelled "FAT16"): |
|
|
|
|
|
|
|
``` |
|
|
|
Capacity of disk 4: ( 4G) 7813120 Geom 77381010 |
|
|
|
Nr ---Type- A -- Start End LBA start LBA count Size |
|
|
|
1 RomWBW 2e 8:0:1 1023:15:16 2048 1048576 512M |
|
|
|
2 FAT16 06 1023:0:1 1023:15:16 1050624 786432 384M |
|
|
|
3 00 *** empty *** |
|
|
|
4 00 *** empty *** |
|
|
|
``` |
|
|
|
|
|
|
|
If your hard disk media does not have a FAT partition already defined, |
|
|
|
you will need to define one using FDISK80 by using the 'N' command. |
|
|
|
Ensure that the location and size of the FAT partition does not |
|
|
|
overlap any of the CP/M slice area and that it fits within the size |
|
|
|
of your media. |
|
|
|
|
|
|
|
Once the partition is defined, you will still need to format it. Just |
|
|
|
as with a floppy disk, you use the `FAT` tool to do this. If your |
|
|
|
hard disk media is on RomWBW disk unit 4, you would use `FAT FORMAT 4:`. |
|
|
|
This will look something like this: |
|
|
|
|
|
|
|
When formatting the media on your modern computer, be sure to pick the |
|
|
|
FAT filesystem. NTFS and other filesystems will not work. As previously |
|
|
|
mentioned, the `FAT` application does not understand long filenames, |
|
|
|
only the traditional 8.3 filenames. If you have files on your modern |
|
|
|
computer with long filenames, it is usually easiest to rename them on |
|
|
|
the modern computer. |
|
|
|
``` |
|
|
|
E>fat format 4: |
|
|
|
|
|
|
|
About to format FAT Filesystem on Disk Unit #4. |
|
|
|
All existing FAT partition data will be destroyed!!! |
|
|
|
|
|
|
|
Continue (y/n)? |
|
|
|
|
|
|
|
Formatting... Done |
|
|
|
``` |
|
|
|
|
|
|
|
Your FAT filesystem is now ready to use. |
|
|
|
|
|
|
|
If your RomWBW system has multiple disk drives/slots, you can also just |
|
|
|
create a disk with your modern computer that is a dedicated FAT |
|
|
|
filesystem disk. You can use your modern computer to format the disk |
|
|
|
(floppy, CF Card, SD Card, etc.), then insert the disk in your RomWBW |
|
|
|
computer and access it using `FAT` based on its RomWBW unit number. |
|
|
|
|
|
|
|
### FAT Application Usage |
|
|
|
|
|
|
|
Transferring files is accomplished by running a RomWBW custom application |
|
|
|
called `FAT`. This application understands both FAT filesystems as well |
|
|
|
as CP/M filesystems. |
|
|
|
|
|
|
|
To copy files from your modern computer to your RomWBW computer, start |
|
|
|
by putting the disk media with the FAT filesystem in your modern |
|
|
|
computer. The modern computer should recognize it. Then copy the files |
|
|
|
you want to get to your RomWBW computer onto this media. Once done, |
|
|
|
remove the media from your modern computer and insert it in the RomWBW |
|
|
|
computer. Finally, use the `FAT` tool to copy the files onto a CP/M |
|
|
|
drive. |
|
|
|
computer. |
|
|
|
|
|
|
|
This process works just fine in reverse if you want to copy files from a |
|
|
|
Finally, use the `FAT` tool to copy the files onto a CP/M |
|
|
|
drive. This process works just fine in reverse if you want to copy files from a |
|
|
|
CP/M filesystem to your modern computer. |
|
|
|
|
|
|
|
**WARNING**: If you are using media that contains both a FAT partition |
|
|
|
and a RomWBW partition, your modern computer may be confused by the |
|
|
|
RomWBW partition. In some cases, it will prompt you to format the |
|
|
|
RomWBW partition because it doesn't know what it is. You will be |
|
|
|
prompted before it does this -- just be careful not to allow it. |
|
|
|
Complete instructions for the `FAT` application are found in $doc_apps$. |
|
|
|
Here, we will just provide a couple of simple examples. Note that the |
|
|
|
FAT application is not on the ROM disk because it is too large to |
|
|
|
include there. |
|
|
|
|
|
|
|
The most important thing to understand about the `FAT` application is |
|
|
|
how it refers to FAT filesystems vs. CP/M filesystems. It infers this |
|
|
|
based on the file specification provided. If you use a specification |
|
|
|
like `C:SAMPLE.TXT`, it will use the C: drive of your CP/M operating |
|
|
|
system. If you use a specification like `4:SAMPLE.TXT`, it will use |
|
|
|
the FAT filesystem on the disk in RomWBW disk unit 4. Basically, if |
|
|
|
you start your file or directory specification with a number followed |
|
|
|
by a colon, it means FAT filesystem. Anything else will mean CP/M |
|
|
|
filesystem. |
|
|
|
|
|
|
|
Here are a few examples. This first example shows how to get a FAT |
|
|
|
directory listing from RomWBW disk unit 4: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat dir 4: |
|
|
|
|
|
|
|
Directory of 4: |
|
|
|
|
|
|
|
|
|
|
|
E> |
|
|
|
``` |
|
|
|
|
|
|
|
As you can see, there are currently no files there. Now let's copy |
|
|
|
a file from CP/M to the FAT directory: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat copy sample.txt 4: |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
SAMPLE.TXT ==> 4:/SAMPLE.TXT ... [OK] |
|
|
|
|
|
|
|
1 File(s) Copied |
|
|
|
``` |
|
|
|
|
|
|
|
If we list the FAT directory again, you will see the file: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat dir 4: |
|
|
|
|
|
|
|
Directory of 4: |
|
|
|
|
|
|
|
01/30/2023 17:50:14 29952 ---A SAMPLE.TXT |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
Now let's copy the file from the FAT filesystem back to CP/M. This |
|
|
|
time we will get a warning about overwriting the file. For this |
|
|
|
example, we don't want to do that, so we abort and reissue the |
|
|
|
command specifying a new filename to use: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat copy 4:sample.txt e: |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
4:/SAMPLE.TXT ==> E:SAMPLE.TXT Overwrite? (Y/N) [Skipped] |
|
|
|
|
|
|
|
0 File(s) Copied |
|
|
|
|
|
|
|
E>fat copy 4:sample.txt e:sample2.txt |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
4:/SAMPLE.TXT ==> E:SAMPLE2.TXT ... [OK] |
|
|
|
|
|
|
|
1 File(s) Copied |
|
|
|
``` |
|
|
|
|
|
|
|
Finally, let's try using wildcards: |
|
|
|
|
|
|
|
``` |
|
|
|
E>fat copy sample*.* 4: |
|
|
|
|
|
|
|
Copying... |
|
|
|
|
|
|
|
SAMPLE.TXT ==> 4:/SAMPLE.TXT Overwrite? (Y/N) ... [OK] |
|
|
|
SAMPLE2.TXT ==> 4:/SAMPLE2.TXT ... [OK] |
|
|
|
|
|
|
|
2 File(s) Copied |
|
|
|
``` |
|
|
|
|
|
|
|
# Customizing RomWBW |
|
|
|
|
|
|
|
|