diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index d8ba9594..92fb90fe 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 30fc1e65..44a2b878 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 80027d89..a862db3f 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 1750da88..47f903b9 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 b2fa3bab..b4e4acad 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 5f9307eb..c552e81d 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 89e375d3..6f08dedc 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ **RomWBW ReadMe** \ Version 3.4 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -01 Jan 2024 +09 Jan 2024 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 95ed6603..344c7319 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -01 Jan 2024 +09 Jan 2024 diff --git a/Source/Apps/FAT/ReadMe.md b/Source/Apps/FAT/ReadMe.md new file mode 100644 index 00000000..c54eda9f --- /dev/null +++ b/Source/Apps/FAT/ReadMe.md @@ -0,0 +1,125 @@ +# RomWBW HBIOS CP/M FAT Utility ("FAT.COM") + +Author: Wayne Warthen \ +Updated: 6-Jan-2024 + +This application allows copying files between CP/M filesystems and FAT +filesystems (DOS, Windows, Mac, Linux, etc.). The application runs on +RomWBW hosted CP/M (and compatible) operating systems. The application +also has limited file management capabilities on FAT filesystems +including directory listing, renaming, deleting, and sub-directory +creation. + +### Usage: + +``` + FAT DIR + FAT COPY + FAT REN + FAT DEL [|] + FAT MD + FAT FORMAT +``` + + CP/M filespec: \:FILENAME.EXT (\ is CP/M drive letter A-P) \ + FAT filespec: \:/DIR/FILENAME.EXT (\ is disk unit #) + +### Notes: + + - Partitioned or non-partitioned media is handled automatically. + A floppy drive is a good example of a non-partitioned FAT + filesystem and will be recognized. Larger media will typically + have a partition table which will be recognized by the + application to find the FAT filesystem. + + - Although RomWBW-style CP/M media does not know anything about + partition tables, it is entirely possible to have media that + has both CP/M and FAT file systems on it. This is accomplished + by creating a FAT filesystem on the media that starts on a track + beyond the last track used by CP/M. Each CP/M slice can occupy + up to 8MB. So, make sure to start your FAT partition beyond + (slice count) * 9MB. + + - The application infers whether you are attempting to reference + a FAT or CP/M filesystem via the drive specifier (char before ':'). + A numeric drive character specifies the HBIOS disk unit number + for FAT access. An alpha (A-P) character indicates a CP/M + file system access targeting the specified drive letter. If there + is no drive character specified, the current CP/M filesystem and + current CP/M drive is assumed. For example: + + `2:README.TXT` refers to FAT file README.TXT on disk unit #2 \ + `C:README.TXT` refers to CP/M file README.TXT on CP/M drive C: \ + `README.TXT` refers to CP/M file README.TXT on current CP/M drive + + - FAT files with SYS, HIDDEN, or R/O attributes are not given + any special treatment. Such files are found and processed + like any other file. However, any attempt to write to a + read-only file will fail and the application will abort. + + - It is not currently possible to reference CP/M user areas other + than the current user. To copy files to alternate user areas, + you must switch to the desired user number first or use an + additional step to copy the file to the desired user area. + + - Accessing FAT filesystems on a floppy requires the use of + RomWBW HBIOS v2.9.1-pre.13 or greater. + + - Only the first 8 RomWBW disk units (0-7) can be referenced. + + - Files written are not verified. + + - Wildcard matching in FAT filesystems is a bit unusual as + implemented by FatFs. See FatFs documentation. + +### License: + + GNU GPLv3 (see file LICENSE.txt) + +### Build Notes: + + - Source is maintained on GitHub at . + + - Application is based on FatFs. FatFs source is included. See + . + + - SDCC compiler v4.3 or greater is required to build. New calling + conventions introduced in v4.3 are assumed. + + - See Build.cmd for sample build script under Windows. References + to SDCC must be updated for your environment. + + - Note that ff.c (core FatFs code) generates quite a few compiler + warnings (all appear to be benign). + +### To Do: + + - Allow ^C to abort any operation in progress. + + - Allow referencing more than the first 8 RomWBW disk units. + + - Handle wildcards in destination, e.g.: + + `FAT REN 2:/*.TXT 2:/*.BAK` + + - Do something intelligent with R/O and SYS file attributes + + - Support UNA + +### History: + +| Date | Version | Notes | +|------------:|-------- |-------------------------------------------------------------| +| 2-May-2019 | v0.9 | (beta) initial release | +| 7-May-2019 | v0.9.1 | (beta) added REN and DEL | +| 8-May-2019 | v0.9.2 | (beta) handle file collisions w/ user prompt | +| 8-Oct-2019 | v0.9.3 | (beta) fixed incorrect filename buffer size (MAX_FN) | +| 10-Oct-2019 | v0.9.4 | (beta) upgraded to FatFs R0.13c | +| 10-Oct-2019 | v0.9.5 | (beta) added MD (make directory) | +| 10-Oct-2019 | v0.9.6 | (beta) added FORMAT | +| 11-Oct-2019 | v0.9.7 | (beta) fix FORMAT to use existing partition table entries | +| | | add attributes to directory listing | +| 12-Apr-2021 | v0.9.8 | (beta) support CP/NET drives | +| 12-Oct-2023 | v0.9.9 | (beta) handle updated HBIOS Disk Device call | +| 6-Jan-2024 | v1.0.0 | updated to latest FsFat (v0.15) | +| | | updated to latest SDCC (v4.3) | diff --git a/Source/Apps/FAT/ReadMe.txt b/Source/Apps/FAT/ReadMe.txt deleted file mode 100644 index 916b2ffd..00000000 --- a/Source/Apps/FAT/ReadMe.txt +++ /dev/null @@ -1,105 +0,0 @@ -RomWBW HBIOS CP/M FAT Utility ("FAT.COM") - -Author: Wayne Warthen -Updated: 12-Oct-2023 - -Application to manipulate and exchange files with a FAT (DOS) -filesystem. Runs on any HBIOS hosted CP/M implementation. - -USAGE: - FAT DIR - FAT COPY - FAT REN - FAT DEL [|] - FAT MD - FAT FORMAT - - CP/M filespec: :FILENAME.EXT ( is CP/M drive letter A-P) - FAT filespec: :/DIR/FILENAME.EXT ( is disk unit #) - -LICENSE: - GNU GPLv3 (see file LICENSE.txt) - -NOTES: - - Partitioned or non-partitioned media is handled automatically. - A floppy drive is a good example of a non-partitioned FAT - filesystem and will be recognized. Larger media will typically - have a partition table which will be recognized by the - application to find the FAT filesystem. - - - Although RomWBW-style CP/M media does not know anything about - partition tables, it is entirely possible to have media that - has both CP/M and FAT file systems on it. This is accomplished - by creating a FAT filesystem on the media that starts on a track - beyond the last track used by CP/M. Each CP/M slice on a - media will occupy a little over 8MB. So, make sure to start - your FAT partition beyond (slice count) * 8MB. - - - The application infers whether you are attempting to reference - a FAT or CP/M filesystem via the drive specifier (char before ':'). - A numeric drive character specifies the HBIOS disk unit number - for FAT access. An alpha (A-P) character indicates a CP/M - file system access targeting the specified drive letter. If there - is no drive character specified, the current CP/M filesystem and - current CP/M drive is assumed. For example: - - "2:README.TXT" refers to FAT file README.TXT on disk unit #2 - "C:README.TXT" refers to CP/M file README.TXT on CP/M drive C - "README.TXT" refers to CP/M file README.TXT on current CP/M drive - - - FAT files with SYS, HIDDEN, or R/O only attributes are not given - any special treatment. Such files are found and processed - like any other file. However, any attempt to write to a - read-only file will fail and the application will abort. - - - It is not currently possible to reference CP/M user areas other - than the current user. To copy files to alternate user areas, - you must switch to the desired user number first or use an - additional step to copy the file to the desired user area. - - - Accessing FAT filesystems on a floppy requires the use of - RomWBW HBIOS v2.9.1-pre.13 or greater. - - - Files written are not verified. - - - Wildcard matching in FAT filesystems is a bit unusual as - implemented by FatFs. See FatFs documentation. - -BUILD NOTES: - - Source is maintained on GitHub at https://github.com/wwarthen/FAT - - - Application is based on FatFs. FatFs source is included. - - - SDCC compiler is required to build (v4.0.0 known working). - - - ZX CP/M emulator is required to build (from RomWBW distribution). - - - See Build.cmd for sample build script under Windows. References - to SDCC and ZX must be updated for your environment. - - - Note that ff.c (core FatFs code) generates quite a few compiler - warnings (all appear to be benign). - -TO DO: - - Allow ^C to abort any operation in progress. - - - Handle wildcards in destination, e.g.: - "FAT REN 2:/*.TXT 2:/*.BAK" - - - Do something intelligent with R/O and SYS files on FAT - - - Support UNA - -HISTORY: - 2-May-2019: v0.9 (beta) initial release - 7-May-2019: v0.9.1 (beta) added REN and DEL - 8-May-2019: v0.9.2 (beta) handle file collisions w/ user prompt - 8-Oct-2019: v0.9.3 (beta) fixed incorrect filename buffer size (MAX_FN) - 10-Oct-2019: v0.9.4 (beta) upgraded to FatFs R0.13c - 10-Oct-2019: v0.9.5 (beta) added MD (make directory) - 10-Oct-2019: v0.9.6 (beta) added FORMAT - 11-Oct-2019: v0.9.7 (beta) fix FORMAT to use existing partition table entries - add attributes to directory listing - 12-Apr-2021: v0.9.8 (beta) support CP/NET drives - 12-Oct-2023: v0.9.9 (beta) handle updated HBIOS Disk Device call - diff --git a/Source/Apps/FAT/fat.com b/Source/Apps/FAT/fat.com index b1b50ee9..004760fb 100644 Binary files a/Source/Apps/FAT/fat.com and b/Source/Apps/FAT/fat.com differ diff --git a/Source/Doc/Applications.md b/Source/Doc/Applications.md index 463896c0..5c0f03bb 100644 --- a/Source/Doc/Applications.md +++ b/Source/Doc/Applications.md @@ -882,12 +882,12 @@ table which will be recognized by the application to find the FAT filesystem. Although RomWBW-style CP/M media does not know anything about -partition tables, it is entirely possible to have media that has both -CP/M and FAT file systems on it. This is accomplished by creating a -FAT filesystem on the media that starts on a track beyond the last -track used by CP/M. Each CP/M slice on a media will occupy 8,320K -(16,640 sectors). So, make sure to start your FAT partition beyond (< -slice count> * 8,320K) or ( . , ; : = ? * [ ] _ % | ( ) / \` +| `< > . , ; : ? * [ ] |/ \` The operation will be aborted with "`Error: Invalid Path Name`" if such a filename character is encountered. diff --git a/Source/RomDsk/RAM_1024KB/FAT.COM b/Source/RomDsk/RAM_1024KB/FAT.COM index 688faa99..004760fb 100644 Binary files a/Source/RomDsk/RAM_1024KB/FAT.COM and b/Source/RomDsk/RAM_1024KB/FAT.COM differ diff --git a/Source/RomDsk/ROM_1024KB/FAT.COM b/Source/RomDsk/ROM_1024KB/FAT.COM index 688faa99..004760fb 100644 Binary files a/Source/RomDsk/ROM_1024KB/FAT.COM and b/Source/RomDsk/ROM_1024KB/FAT.COM differ diff --git a/Source/RomDsk/ROM_512KB/FAT.COM b/Source/RomDsk/ROM_512KB/FAT.COM index 688faa99..004760fb 100644 Binary files a/Source/RomDsk/ROM_512KB/FAT.COM and b/Source/RomDsk/ROM_512KB/FAT.COM differ