diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index d90d4e34..214e9dac 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -37,6 +37,8 @@ Version 3.5 - MAP: Improved section Disk Management in User Guide document - WBW: Add CPU speed selection for HEATH platform to HBIOS - WBW: Add Warm/Cold reboot options to CPUSPD utility +- D?N: Added support for eZ80 CPU +- MAP: Contributed COPYSL utility Version 3.4 ----------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index db47ff0e..63dc9ce4 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 27c89ac4..e27a0345 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 2d69fe31..2cb9070e 100644 Binary files a/Doc/RomWBW Errata.pdf and b/Doc/RomWBW Errata.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 87f740ea..9f0c2b6e 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 f284082b..e498a456 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 64690ad7..bb27aadf 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -199,7 +199,7 @@ let me know if I missed you! User Guide and Applications documents. - Mark Pruden has also contributed a great deal of content to the User - Guide. + Guide as well as the COPYSL utility. - Jacques Pelletier has contributed the DS1501 RTC driver code. diff --git a/ReadMe.txt b/ReadMe.txt index 953649b8..d85a7916 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -200,7 +200,7 @@ let me know if I missed you! User Guide and Applications documents. - Mark Pruden has also contributed a great deal of content to the User - Guide. + Guide as well as the COPYSL utility. - Jacques Pelletier has contributed the DS1501 RTC driver code. diff --git a/Source/Apps/Build.cmd b/Source/Apps/Build.cmd index 2da8d667..130996b3 100644 --- a/Source/Apps/Build.cmd +++ b/Source/Apps/Build.cmd @@ -31,6 +31,7 @@ pushd cpuspd && call Build || exit /b & popd pushd Survey && call Build || exit /b & popd pushd HTalk && call Build || exit /b & popd pushd BBCBASIC && call Build || exit /b & popd +pushd copysl && call Build || exit /b & popd copy *.com %APPBIN%\ || exit /b diff --git a/Source/Apps/Clean.cmd b/Source/Apps/Clean.cmd index c95fdad7..6db02516 100644 --- a/Source/Apps/Clean.cmd +++ b/Source/Apps/Clean.cmd @@ -20,3 +20,4 @@ pushd cpuspd && call Clean || exit /b 1 & popd pushd Survey && call Clean || exit /b 1 & popd pushd HTalk && call Clean || exit /b 1 & popd pushd BBCBASIC && call Clean || exit /b 1 & popd +pushd copysl && call Clean || exit /b 1 & popd diff --git a/Source/Apps/Makefile b/Source/Apps/Makefile index 39ed301b..8c2a2a5e 100644 --- a/Source/Apps/Makefile +++ b/Source/Apps/Makefile @@ -1,6 +1,6 @@ OBJECTS = sysgen.com syscopy.com assign.com format.com talk.com \ mode.com rtc.com timer.com rtchb.com -SUBDIRS = HTalk XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd Survey BBCBASIC +SUBDIRS = HTalk XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd Survey BBCBASIC copysl DEST = ../../Binary/Apps TOOLS =../../Tools diff --git a/Source/Apps/copysl/Build.cmd b/Source/Apps/copysl/Build.cmd new file mode 100644 index 00000000..22be44e8 --- /dev/null +++ b/Source/Apps/copysl/Build.cmd @@ -0,0 +1,8 @@ +@echo off +setlocal + +:: copysl.com is currently distributed as a binary application, so +:: it is not built here. + +copy /Y copysl.com ..\..\..\Binary\Apps\ || exit /b +copy /Y copysl.doc ..\..\..\Binary\Apps\ || exit /b diff --git a/Source/Apps/copysl/Clean.cmd b/Source/Apps/copysl/Clean.cmd new file mode 100644 index 00000000..2b4cb29c --- /dev/null +++ b/Source/Apps/copysl/Clean.cmd @@ -0,0 +1,5 @@ +@echo off +setlocal + +:: copysl.com is currently distributed as a binary application, so +:: we do not delete the .COM file. \ No newline at end of file diff --git a/Source/Apps/copysl/Makefile b/Source/Apps/copysl/Makefile new file mode 100644 index 00000000..1024dc14 --- /dev/null +++ b/Source/Apps/copysl/Makefile @@ -0,0 +1,7 @@ +OBJECTS = copysl.com +NODELETE = $(OBJECTS) +DOCS = copysl.doc +DEST = ../../../Binary/Apps +DOCDEST = ../../../Binary/Apps +TOOLS=../../../Tools +include $(TOOLS)/Makefile.inc diff --git a/Source/Apps/copysl/copysl.doc b/Source/Apps/copysl/copysl.doc new file mode 100644 index 00000000..c2f7e9c4 --- /dev/null +++ b/Source/Apps/copysl/copysl.doc @@ -0,0 +1,79 @@ +========================================================================== + CopySlice Utility v0.1 for RomWbW computers + written by Mark Pruden (Sept 2024) +========================================================================== + +Purpose: +-------- + +The purpose of this utility is to allow the copying of whole disk slices +from one disk slice to another slice + +Background +---------- + +This tool is only supported by RomWBW HBIOS, it uses HDIOS for all its +disk IO. UNA UBIOS is not supported by this tool. + +This tool only works with hard disk devices, other media types like +floppy, are not supported at this time. This tool works across different +hard disk device types, even of different physical type + +Both hd1k and hd512 are fully supported, however copying from one layout +type to the other is not supported. + +During operation data is copied in a single read/write pass, noting data +is not verified by a re-read. If there is a write error, it will be reported, +and operation will stop. + +General Usage +------------- +This tool operates at the disk level via RomWBW, thus all disk identifiers +are in the RomWBW . format + +The syntax (similar to copy) for the command is: + + COPYSL [.]=[.] [/options] + +E.g. + + COPYSL 3.3=2.10 /U + +Means copy from slice 10 on disk 2, onto disk 3 slice 3. Tis is in unattended +mode, so you will not be asked to confirm the copy operation. + +Options +------- +U - Unattended. Will complete copy without confirmation from the user +F - Full disk copy. Copies the complete disk slice, all sectors. + +Description +----------- + +When run COPYSL will perform command line argument validation and display +an error if they are illegal. Also any disk IO errors will cause COPYSL to exit. + +When specifying slice number(s) a check is made that the slice number is valid, +i.e. not too large that it would extend past the end of the partition (hd1k), +or the end of the media (hd512). For hd512 a check is also performed to +ensure that the slice would not extend into the first defined partition. + +The copy operation will be faster if the source disk has been formatted with +the CP/M file system, since during copy the CP/M directory is scanned, and +unused blocks are not copied. + +If a filesystem is not found, (or the /F option is chosen) all data is copied. + +During copy dots "." will be displayed to indicate progress of the copy. +Each "." represents 16 kBytes of data copied. Each line of "." 's is 1 mBytes. + +Testing +------- +This tool has been tested on both SD and CF media types and with hd1k and hd512 +formatted media + +Future +------ +* support a verify option to read/verify data just written + + \ No newline at end of file diff --git a/Source/Doc/Applications.md b/Source/Doc/Applications.md index 309e2a05..a87b02b0 100644 --- a/Source/Doc/Applications.md +++ b/Source/Doc/Applications.md @@ -404,7 +404,7 @@ aspects of RomWBW itself. Those that are written specific to RomWBW include: ASSIGN, CPUSPD, FDU, FORMAT, FLASH, FDISK80, MODE, RTC, SYSCOPY, -TALK, TIMER, and XM. +TALK, TIMER, XM, and COPYSL. The CP/M utilities supplied with RomWBW warrant more detailed descriptions, and so are described in some detail in their own section @@ -896,6 +896,7 @@ incuded within RomWBW may be found with in the Binary/Apps directory. | ----------- | :------: | :--------: | | ASSIGN | Yes | Yes | | CLRDIR | Yes | Yes | +| COPYSL | No | Yes | | CPUSPD | Yes | Yes | | FAT | No | Yes | | FDISK80 | Yes | Yes | @@ -1206,6 +1207,85 @@ The source code is provided in the RomWBW distribution. `\clearpage`{=latex} +## COPYSL + +| COPYSL | | +| --------------------|---| +| ROM-based |No | +| Disk-based |Yes| + +The purpose of this utility is to allow the copying of whole disk slices +from one disk slice to another slice + +This tool is only supported by RomWBW HBIOS, it uses HDIOS for all its +disk IO. UNA UBIOS is not supported by this tool. + +This tool only works with hard disk devices, other media types like +floppy, are not supported at this time. This tool works across different +hard disk device types, even of different physical type + +Both hd1k and hd512 are fully supported, however copying from one layout +type to the other is not supported. + +During operation data is copied in a single read/write pass, noting data +is not verified by a re-read. If there is a write error, it will be reported, +and operation will stop. + +#### Syntax + +This tool operates at the disk level via RomWBW, thus all disk identifiers +are in the RomWBW \.\ format. + +The syntax (similar to copy) for the command is: + +| `COPYSL `*\*[`.`*\*]`=`*\*[`.`*\*] [`/`*\*] + +E.g. + +| COPYSL 3.3=2.10 /U + +Means copy from slice 10 on disk 2, onto disk 3 slice 3. This is in unattended +mode, so you will not be asked to confirm the copy operation. + +#### Options + +U - Unattended. Will complete copy without confirmation from the user. \ +F - Full disk copy. Copies the complete disk slice, all sectors. + +#### Usage + +When run COPYSL will perform command line argument validation and display +an error if they are illegal. Also any disk IO errors will cause COPYSL to exit. + +When specifying slice number(s) a check is made that the slice number is valid, +i.e. not too large that it would extend past the end of the partition (hd1k), +or the end of the media (hd512). For hd512 a check is also performed to +ensure that the slice would not extend into the first defined partition. + +The copy operation will be faster if the source disk has been formatted with +the CP/M file system, since during copy the CP/M directory is scanned, and +unused blocks are not copied. + +If a filesystem is not found, (or the /F option is chosen) all data is copied. + +During copy dots "." will be displayed to indicate progress of the copy. +Each "." represents 16 kBytes of data copied. Each line of "." 's is 1 MBytes. + +#### Notes + +This tool has been tested on both SD and CF media types and with hd1k and hd512 +formatted media. + +You cannot copy slices between different hard disk formats (hd512 and +hd1k) because the slices are incompatible. + +#### Etymology + +The `COPYSL` application waw custom written for RomWBW and contributed +by Mark Pruden. + +`\clearpage`{=latex} + ## FAT | FAT | | diff --git a/Source/Doc/ReadMe.md b/Source/Doc/ReadMe.md index 1864470b..8c08dfc2 100644 --- a/Source/Doc/ReadMe.md +++ b/Source/Doc/ReadMe.md @@ -190,7 +190,7 @@ please let me know if I missed you! User Guide and Applications documents. * Mark Pruden has also contributed a great deal of content to the - User Guide. + User Guide as well as the COPYSL utility. * Jacques Pelletier has contributed the DS1501 RTC driver code. diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index 965ab428..2b6dd613 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -4464,7 +4464,7 @@ please let me know if I missed you! User Guide and Applications documents. * Mark Pruden has also contributed a great deal of content to the - User Guide. + User Guide as well as the COPYSL utility. * Jacques Pelletier has contributed the DS1501 RTC driver code. diff --git a/Source/Images/hd_bp.txt b/Source/Images/hd_bp.txt index 789683f9..14a04378 100644 --- a/Source/Images/hd_bp.txt +++ b/Source/Images/hd_bp.txt @@ -14,6 +14,8 @@ ../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/cpuspd.com 15: +../../Binary/Apps/copysl.com 0: +../../Binary/Apps/copysl.doc 0: ../../Binary/Apps/fat.com 15: ../../Binary/Apps/fdu.com 15: ../../Binary/Apps/fdu.doc 15: diff --git a/Source/Images/hd_cpm22.txt b/Source/Images/hd_cpm22.txt index 8d60965b..9b9cca8b 100644 --- a/Source/Images/hd_cpm22.txt +++ b/Source/Images/hd_cpm22.txt @@ -10,6 +10,8 @@ d_cpm22/ReadMe.txt 0: ../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/cpuspd.com 0: +../../Binary/Apps/copysl.com 0: +../../Binary/Apps/copysl.doc 0: ../../Binary/Apps/fat.com 0: ../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.doc 0: diff --git a/Source/Images/hd_cpm3.txt b/Source/Images/hd_cpm3.txt index 1772d2fa..9f49c67f 100644 --- a/Source/Images/hd_cpm3.txt +++ b/Source/Images/hd_cpm3.txt @@ -26,6 +26,8 @@ ../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/cpuspd.com 0: +../../Binary/Apps/copysl.com 0: +../../Binary/Apps/copysl.doc 0: ../../Binary/Apps/fat.com 0: ../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.doc 0: diff --git a/Source/Images/hd_nzcom.txt b/Source/Images/hd_nzcom.txt index 47378863..1a35ebb8 100644 --- a/Source/Images/hd_nzcom.txt +++ b/Source/Images/hd_nzcom.txt @@ -33,6 +33,8 @@ d_zsdos/u0/*.DAT 15: ../../Binary/Apps/bbcbasic.com 15: ../../Binary/Apps/bbcbasic.txt 10: ../../Binary/Apps/cpuspd.com 15: +../../Binary/Apps/copysl.com 0: +../../Binary/Apps/copysl.doc 0: ../../Binary/Apps/fat.com 15: ../../Binary/Apps/fdu.com 15: ../../Binary/Apps/fdu.doc 10: diff --git a/Source/Images/hd_qpm.txt b/Source/Images/hd_qpm.txt index 98434857..f97b1cba 100644 --- a/Source/Images/hd_qpm.txt +++ b/Source/Images/hd_qpm.txt @@ -14,6 +14,8 @@ d_cpm22/u0/*.* 0: ../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/cpuspd.com 0: +../../Binary/Apps/copysl.com 0: +../../Binary/Apps/copysl.doc 0: ../../Binary/Apps/fat.com 0: ../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.doc 0: diff --git a/Source/Images/hd_zpm3.txt b/Source/Images/hd_zpm3.txt index 5f5c0615..c47f9164 100644 --- a/Source/Images/hd_zpm3.txt +++ b/Source/Images/hd_zpm3.txt @@ -25,6 +25,8 @@ ../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/cpuspd.com 15: +../../Binary/Apps/copysl.com 0: +../../Binary/Apps/copysl.doc 0: ../../Binary/Apps/fat.com 15: ../../Binary/Apps/fdu.com 15: ../../Binary/Apps/fdu.doc 15: diff --git a/Source/Images/hd_zsdos.txt b/Source/Images/hd_zsdos.txt index 1c7fe895..97b89c6b 100644 --- a/Source/Images/hd_zsdos.txt +++ b/Source/Images/hd_zsdos.txt @@ -23,6 +23,8 @@ d_cpm22/u0/XSUB.COM 0: ../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/cpuspd.com 0: +../../Binary/Apps/copysl.com 0: +../../Binary/Apps/copysl.doc 0: ../../Binary/Apps/fat.com 0: ../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.doc 0: