README.md
FDC provides a means of rapidly reading or writing of floppies to or from disk
files followed by optional verification of the copied data. It is installed
under a Task Name of ...FDC. The actual number of blocks copied may range from
a minimum established by the symbol BLKCNT defined in the next section through
a maximum equal to the floppy diskette size if copying to a disk file, or equal
to either the file size or the floppy diskette size, whichever is smaller, if
copying from a disk file.

Command line syntax is:

>FDC filspec=dev:[/SZ:nnnn][/VE] ! To copy from a floppy to a disk file
-- OR --
>FDC dev:[/SZ:nnnn][/VE]=filspec ! To copy from a disk file to a floppy

where:
filspec = Any valid file specification for a disk file - may include device
and/or UIC specifications; may also include a version specification,
however, if any pre-existing file with an identical specification
will be superseded.
dev: = Any valid device specification for a floppy diskette drive.
nnnn = The number of blocks to be copied to or from the floppy - this number
will be assumed to be a decimal (base 10) number, even if it is not
followed by an decimal point (optional), and must be less than or
equal to the volume size as specified in Control Words 2 and 3 of the
device's Unit Control Block (UCB).

Note that both the verification selection switch (/VE) and the size
specification switch (/SZ:nnnn) are optional. If the verification selection
switch is absent, no verification is performed; if the size selection switch is
absent, the entire volume is copied as spe- cified in CW2 and CW3 of the UCB.

While both switches are shown appended to the floppy diskette drive
specification, each switch may actually appear either there or appended to the
disk file specification.

------------------------------------------------------------------------------

In addition to reporting various error conditions it detects to the User via
TI:, this program also uses the Exit Status word to inform any parent task of
its success or lack thereof. The following table shows how the Exit Status
word is used:

High Low
Word Byte Byte Indication
------ ---- ---- --------------------------------------------

000001 000 001 EX$SUC -
Unqualified success!

000000 000 000 EX$WAR -
Warning, caused by some internally
detected discrepancy which does not
preclude executing the command
issued to it, such as specifying a
switch more than once.

000002 000 002 EX$ERR -
Fatal error, caused by some
internally detected error which
prevents executing the command
issued to it without totally
aborting the Task, such as
specifying more blocks than the
floppy diskette can hold.

000004 000 004 EX$SEV -
Severe error, caused by either a
TRAP instruction (executed when an
internal inconsistency is detected)
or by some other unforseen event
which prevents the Task from reach-
ing completion.

000nnn 000 nnn I/O error -
nnn is in the range 377 through 200
(-1 through -128.) and is the I/O
error code.

177xnn 377 ynn Executive Directive error -
xnn (9 bits, 777 through 600) and
ynn (8 bits, 377 through 200) are
the Directive error code (-1
through -128).

Revision:
---------

18-Aug-1989 VCH001
The number of logical blocks on a device were not calculated
in the correct way. Not all 32 bits of U.CW2 and U.CW3 of
device UCB are valid. The highest byte should be ignored
and only the lower 24 bit are now taken into account.

19-Aug-1989 VCH002
Filename may now contain a named directory as possible
on RSX11M-Plus and Micro-RSX.

Volker C. Huck, TH Darmstadt, Inst. f. Kernphysik,
D-6100 Darmstadt, Fed. Rep. of Germany