Browse Source

COPYSL Utility from Mark Pruden

Co-Authored-By: Mark Pruden <github@mp.tidykiwi.com>
pull/430/head
Wayne Warthen 1 year ago
parent
commit
3ca283d08f
  1. 2
      Doc/ChangeLog.txt
  2. BIN
      Doc/RomWBW Applications.pdf
  3. BIN
      Doc/RomWBW Disk Catalog.pdf
  4. BIN
      Doc/RomWBW Errata.pdf
  5. BIN
      Doc/RomWBW System Guide.pdf
  6. BIN
      Doc/RomWBW User Guide.pdf
  7. 2
      ReadMe.md
  8. 2
      ReadMe.txt
  9. 1
      Source/Apps/Build.cmd
  10. 1
      Source/Apps/Clean.cmd
  11. 2
      Source/Apps/Makefile
  12. 8
      Source/Apps/copysl/Build.cmd
  13. 5
      Source/Apps/copysl/Clean.cmd
  14. 7
      Source/Apps/copysl/Makefile
  15. 79
      Source/Apps/copysl/copysl.doc
  16. 82
      Source/Doc/Applications.md
  17. 2
      Source/Doc/ReadMe.md
  18. 2
      Source/Doc/UserGuide.md
  19. 2
      Source/Images/hd_bp.txt
  20. 2
      Source/Images/hd_cpm22.txt
  21. 2
      Source/Images/hd_cpm3.txt
  22. 2
      Source/Images/hd_nzcom.txt
  23. 2
      Source/Images/hd_qpm.txt
  24. 2
      Source/Images/hd_zpm3.txt
  25. 2
      Source/Images/hd_zsdos.txt

2
Doc/ChangeLog.txt

@ -37,6 +37,8 @@ Version 3.5
- MAP: Improved section Disk Management in User Guide document - MAP: Improved section Disk Management in User Guide document
- WBW: Add CPU speed selection for HEATH platform to HBIOS - WBW: Add CPU speed selection for HEATH platform to HBIOS
- WBW: Add Warm/Cold reboot options to CPUSPD utility - WBW: Add Warm/Cold reboot options to CPUSPD utility
- D?N: Added support for eZ80 CPU
- MAP: Contributed COPYSL utility
Version 3.4 Version 3.4
----------- -----------

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Errata.pdf

Binary file not shown.

BIN
Doc/RomWBW System Guide.pdf

Binary file not shown.

BIN
Doc/RomWBW User Guide.pdf

Binary file not shown.

2
ReadMe.md

@ -199,7 +199,7 @@ let me know if I missed you!
User Guide and Applications documents. User Guide and Applications documents.
- Mark Pruden has also contributed a great deal of content to the User - 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. - Jacques Pelletier has contributed the DS1501 RTC driver code.

2
ReadMe.txt

@ -200,7 +200,7 @@ let me know if I missed you!
User Guide and Applications documents. User Guide and Applications documents.
- Mark Pruden has also contributed a great deal of content to the User - 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. - Jacques Pelletier has contributed the DS1501 RTC driver code.

1
Source/Apps/Build.cmd

@ -31,6 +31,7 @@ pushd cpuspd && call Build || exit /b & popd
pushd Survey && call Build || exit /b & popd pushd Survey && call Build || exit /b & popd
pushd HTalk && call Build || exit /b & popd pushd HTalk && call Build || exit /b & popd
pushd BBCBASIC && call Build || exit /b & popd pushd BBCBASIC && call Build || exit /b & popd
pushd copysl && call Build || exit /b & popd
copy *.com %APPBIN%\ || exit /b copy *.com %APPBIN%\ || exit /b

1
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 Survey && call Clean || exit /b 1 & popd
pushd HTalk && call Clean || exit /b 1 & popd pushd HTalk && call Clean || exit /b 1 & popd
pushd BBCBASIC && call Clean || exit /b 1 & popd pushd BBCBASIC && call Clean || exit /b 1 & popd
pushd copysl && call Clean || exit /b 1 & popd

2
Source/Apps/Makefile

@ -1,6 +1,6 @@
OBJECTS = sysgen.com syscopy.com assign.com format.com talk.com \ OBJECTS = sysgen.com syscopy.com assign.com format.com talk.com \
mode.com rtc.com timer.com rtchb.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 DEST = ../../Binary/Apps
TOOLS =../../Tools TOOLS =../../Tools

8
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

5
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.

7
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

79
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 <disk>.<unit> format
The syntax (similar to copy) for the command is:
COPYSL <destunit>[.<slice>]=<srcunit>[.<slice>] [/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


82
Source/Doc/Applications.md

@ -404,7 +404,7 @@ aspects of RomWBW itself.
Those that are written specific to RomWBW include: ASSIGN, Those that are written specific to RomWBW include: ASSIGN,
CPUSPD, FDU, FORMAT, FLASH, FDISK80, MODE, RTC, SYSCOPY, 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, The CP/M utilities supplied with RomWBW warrant more detailed descriptions,
and so are described in some detail in their own section 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 | | ASSIGN | Yes | Yes |
| CLRDIR | Yes | Yes | | CLRDIR | Yes | Yes |
| COPYSL | No | Yes |
| CPUSPD | Yes | Yes | | CPUSPD | Yes | Yes |
| FAT | No | Yes | | FAT | No | Yes |
| FDISK80 | Yes | Yes | | FDISK80 | Yes | Yes |
@ -1206,6 +1207,85 @@ The source code is provided in the RomWBW distribution.
`\clearpage`{=latex} `\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 \<disk\>.\<unit\> format.
The syntax (similar to copy) for the command is:
| `COPYSL `*\<destunit\>*[`.`*\<slice\>*]`=`*\<srcunit\>*[`.`*\<slice\>*] [`/`*\<options\>*]
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
| FAT | | | FAT | |

2
Source/Doc/ReadMe.md

@ -190,7 +190,7 @@ please let me know if I missed you!
User Guide and Applications documents. User Guide and Applications documents.
* Mark Pruden has also contributed a great deal of content to the * 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. * Jacques Pelletier has contributed the DS1501 RTC driver code.

2
Source/Doc/UserGuide.md

@ -4464,7 +4464,7 @@ please let me know if I missed you!
User Guide and Applications documents. User Guide and Applications documents.
* Mark Pruden has also contributed a great deal of content to the * 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. * Jacques Pelletier has contributed the DS1501 RTC driver code.

2
Source/Images/hd_bp.txt

@ -14,6 +14,8 @@
../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.com 0:
../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/bbcbasic.txt 0:
../../Binary/Apps/cpuspd.com 15: ../../Binary/Apps/cpuspd.com 15:
../../Binary/Apps/copysl.com 0:
../../Binary/Apps/copysl.doc 0:
../../Binary/Apps/fat.com 15: ../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15: ../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 15: ../../Binary/Apps/fdu.doc 15:

2
Source/Images/hd_cpm22.txt

@ -10,6 +10,8 @@ d_cpm22/ReadMe.txt 0:
../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.com 0:
../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/bbcbasic.txt 0:
../../Binary/Apps/cpuspd.com 0: ../../Binary/Apps/cpuspd.com 0:
../../Binary/Apps/copysl.com 0:
../../Binary/Apps/copysl.doc 0:
../../Binary/Apps/fat.com 0: ../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0: ../../Binary/Apps/fdu.doc 0:

2
Source/Images/hd_cpm3.txt

@ -26,6 +26,8 @@
../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.com 0:
../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/bbcbasic.txt 0:
../../Binary/Apps/cpuspd.com 0: ../../Binary/Apps/cpuspd.com 0:
../../Binary/Apps/copysl.com 0:
../../Binary/Apps/copysl.doc 0:
../../Binary/Apps/fat.com 0: ../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0: ../../Binary/Apps/fdu.doc 0:

2
Source/Images/hd_nzcom.txt

@ -33,6 +33,8 @@ d_zsdos/u0/*.DAT 15:
../../Binary/Apps/bbcbasic.com 15: ../../Binary/Apps/bbcbasic.com 15:
../../Binary/Apps/bbcbasic.txt 10: ../../Binary/Apps/bbcbasic.txt 10:
../../Binary/Apps/cpuspd.com 15: ../../Binary/Apps/cpuspd.com 15:
../../Binary/Apps/copysl.com 0:
../../Binary/Apps/copysl.doc 0:
../../Binary/Apps/fat.com 15: ../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15: ../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 10: ../../Binary/Apps/fdu.doc 10:

2
Source/Images/hd_qpm.txt

@ -14,6 +14,8 @@ d_cpm22/u0/*.* 0:
../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.com 0:
../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/bbcbasic.txt 0:
../../Binary/Apps/cpuspd.com 0: ../../Binary/Apps/cpuspd.com 0:
../../Binary/Apps/copysl.com 0:
../../Binary/Apps/copysl.doc 0:
../../Binary/Apps/fat.com 0: ../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0: ../../Binary/Apps/fdu.doc 0:

2
Source/Images/hd_zpm3.txt

@ -25,6 +25,8 @@
../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.com 0:
../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/bbcbasic.txt 0:
../../Binary/Apps/cpuspd.com 15: ../../Binary/Apps/cpuspd.com 15:
../../Binary/Apps/copysl.com 0:
../../Binary/Apps/copysl.doc 0:
../../Binary/Apps/fat.com 15: ../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15: ../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 15: ../../Binary/Apps/fdu.doc 15:

2
Source/Images/hd_zsdos.txt

@ -23,6 +23,8 @@ d_cpm22/u0/XSUB.COM 0:
../../Binary/Apps/bbcbasic.com 0: ../../Binary/Apps/bbcbasic.com 0:
../../Binary/Apps/bbcbasic.txt 0: ../../Binary/Apps/bbcbasic.txt 0:
../../Binary/Apps/cpuspd.com 0: ../../Binary/Apps/cpuspd.com 0:
../../Binary/Apps/copysl.com 0:
../../Binary/Apps/copysl.doc 0:
../../Binary/Apps/fat.com 0: ../../Binary/Apps/fat.com 0:
../../Binary/Apps/fdu.com 0: ../../Binary/Apps/fdu.com 0:
../../Binary/Apps/fdu.doc 0: ../../Binary/Apps/fdu.doc 0:

Loading…
Cancel
Save