THE EPLCOPY/EMTCOPY PROGRAM.
Software & Publications Center.
SPC - IBM Danmark A/S.
Carsten Groennemann ALR/1127
Sortemosevej 21
3450 Alleroed
(02) 93 55 11 ext. 5954

Introduction.

Preface.
This document is a composite documentation for the programs EPLCOPY
and EMTCOPY. It applies to version 4.14 of the programs.
EPLCOPY is a program developed by IBM-SPC Denmark, to copy and compa-
re any type of diskettes.

The name EPLCOPY was coined when the present Software & Publications
Center was named European Program Library. The sister program EMTCOPY
is named after the term: Electronic Master Transfer.

EPLCOPY will run as an application program on a PC, PC/XT, PC/AT,
PC-Convertible or any of the PS/2 systems under control of PC DOS.
It will also be compatible with the MYTE 3270-emulator, and the 3270
PC CONTROL PROGRAM, provided that you do not attempt active use of
your pc as a terminal at the same time as EPLCOPY is running.

EPLCOPY exists in two compatible versions.
EPLCOPY is the authorized version, designed to copy all kinds of
diskettes including copy-protected ones, while EMTCOPY is a
down-scaled version, restricted to copy a large number of formats,
but not copy-protected diskettes. Apart from this, they are identical
and this documentation applies equal well to both, unless specific
noted.

WARNING.
Diskette copying is a legally dangerous business, so take care:
*------------------------------------------------------*
]                                                      ]
]  EPLCOPY is for IBM internal and business use ONLY.  ]
]                                                      ]
*------------------------------------------------------*
Misuse of this tool is strictly forbidden, and could cause IBM a
great deal of embarrassment if used for illegal copying.

Updated versions of EPLCOPY are only available as a subscription ser-
vice from the author. All owners of EPLCOPY should be registered with
this service. Please do not distribute the EPLCOPY program, but noti-
fy CARSTENG at CPHVM3 of the requirement instead.
EMTCOPY is release for general use, and can be freely distributed
within IBM.

The purpose of EPLCOPY.
EPLCOPY is a tool to copy and compare small diskettes regardless of
their format. Furthermore EPLCOPY can create an image of a diskette
as a file which can be stored (or transmitted) for later use.
In this document image files created by EPLCOPY will be referred to
as eplcopy images. As a alternative, files in the MIF format can be
used.

EMTCOPY and EPLCOPY uses the same image format, and data can easily
be exchanged between the two programs.

EPLCOPY supports the following output media:

5.25 inch standard diskette (48 TPI).
5.25 inch high-capacity diskette (96 TPI).
3.5  inch diskette (135 TPI, (1 Meg.)).
3.5  inch diskette (135 TPI, (2 Meg.)).
* 8  inch diskette (type 1, 2 and 2D, any format).

* 8 inch is only supported through the use of special hardware.
(Both diskette drive and controller card.)

EPLCOPY will format the diskette during the copy operation, erasing
undefined tracks. This will ensure that no unwanted data will remain
on a reused diskette.

To ensure high quality production EPLCOPY includes the following
features:

- During copy all data is reread and compared to the source to detect
  media defects on the target diskette.
- To guard against loss of data, the eplcopy image includes a check-
  sum which will be checked on a subsequent copy.
- To prevent the user from confusing images, EPLCOPY includes an in-
  tegrated label facility. The label is included in the image itself,
  and will be displayed on the terminal for verification. The label
  can optionally be printed on sticky labels.
- A list function to identify the format of an unknown diskette.
- A separate compare function for additional verification.
- EPLCOPY recognizes the PC type and drives installed and selects the
  drive fitting the media.
- A simple encryption facility to ensure safer transfer and storage
  of diskette images.

Environment.
EPLCOPY will run on any IBM PC type of equipment with PC DOS rel.2.00
or higher. To produce high-capacity diskettes EPLCOPY will have to run
on a PC/AT or XT/286. External 3.5 inch drives are supported as well
as PS/2 drives of both 1 and 2 meg capacity.

It needs a minimum of 256k to run. Performance will improve with more
memory and a harddisk. 8 inch is only supported through the use of
non-IBM diskette drives and diskette controller.

How to use eplcopy.
THE SYNTAX OF EPLCOPY.
In its simplest form, the program can be run simply by the command:
EPLCOPY or EMTCOPY depending on the version available.

However a wide range of parameters can be used to activate special
functions:

EPLCOPY (NAME=xxxxxxxx.yyy) (OPTION=n) (MEDIA=x..x)
        (WS=d)  (DRV=xxxx)  (TBT) (NOTBT) (MONO)
        (MIF) (MIF=SIMPLE) (EMUL=NDEL / EMUL=DEL)
        (KEY=x..x) (1SIDE) (NOCLEAR) (HDR=a)
        (TRACKLIMIT=xx:xx) (RETRY=x:x) (TRYHARD) (NOCHECK)
        (SERIAL=cchrroooll) (START=x..x) (INC=x..x)

Also the following parameters can be used in support of special hard-
ware:

EPLCOPY (LOADER=x..x) (COPIES=x..x)
        (DMA=x) (NECADDR=xxxx) (CARD=x) (FLAG8) (AW)

All parameters are optional, The order is of no importance, and both
lower and upper-case letters can be used. DOS imposes a maximum limit
of 127 bytes in the command line, this applies to EPLCOPY as well.

PARAMETERS IN THE ENVIRONMENT STRINGS.

You can also specify parms using the environment strings.
(See DOS documentation for DOS "SET" command.)

You must use a identifier of "EPLCOPY=" or "EMTCOPY=". As no "=" are
allowed inside the environment string, all EPLCOPY commands that nor-
mally use a "=", should be coded using a "-". The priority is such,
that the environment is interpreted first. Any identical parms in the
startup command overrides the ones from the environment string.

The advantage of using the environment strings are that they are resi-
dent.

I.E. it is recommended that the following command should be included
in the AUTOEXEC.BAT file.

                   "SET EPLCOPY=DRV-2130"

Where the actual value of the drive specification correspond to the
hardware you are using.

PARAMETER DESCRIPTION.
(Alphabetic order.)

1SIDE
This options forces EPLCOPY to consider only side 0 of adiskette when
reading the source. This option is only intended to "repair" a logical
1 sided diskette copied to a "reused" 2 sided.
It have only affect when READING from a diskette.

AW
This option means ALTERNATIVE WIRING. FLAGSTAFF 8 inch drive
systems do not use the normal twist in the drive cable between drive
C and D. This have the effect that the MOTOR select signal is reversed.
To notify EPLCOPY of this situation, use the AW parameter, or better
still, it is included in the FLAG8 parameter.
P.S. Only active on C and D, not A and B.

CARD=x
This options is for use with non-standard hardware only. It specifies
what kind of diskette controller card is used. This parameter will ma-
ke EPLCOPY decide where the data rate select register is located, and
what values to use to select the rates. Valid entries are:
0 - Standard PC or PC/AT.   - Rate select = NEC_ADDR + 7   (Default)
1 - P.S. Engineering.       - Rate select = NEC_ADDR + 3
1 - (FLAGSTAFF see note.)
2 - Sandshark.              - Rate select = NEC_ADDR + 6

The use of a CARD option (other that 0) is required in order to acti-
vate the FM mode facility necessary for the 8 inch operations.
The use of the FLAGSTAFF system is possible with the "1" code.
However it is required that the FLAGIO.SYS driver is NOT installed,
as it makes alterations to the diskette IO systems that is not compa-
tible with EPL/EMT-COPY.

COPIES=x..x
This option makes EPLCOPY terminate after the said copies have been
handled.
With the use of this option, you can from a .BAT procedure set up all
the necessary information to produce or compare a batch of diskettes.
You can give a value from 1 to 32768. Not specifying the copies count
at all makes the program continue forever until ESC is used to break
the process.

EPLCOPY terminates with a return code 0 if a copies count expire.
If EPLCOPY is terminated by the user pressing ESC, the return code
is 1. Any higher return codes indicates a problem occured inside
the program.

Sample: If you create a batch file with the following contend, you
could have the system create 3 sets of a product.

         EPLCOPY LOADER=M NAME=product1.img COUNT=3 OPTION=7
         EPLCOPY LOADER=M NAME=product2.img COUNT=3 OPTION=7

Of course, if you used the next sample, it would be sorted for you,
but at a cost of a little more overhead. (See also the documentation
for the TBT parameter.)

         EPLCOPY TBT LOADER=M NAME=product1.img COUNT=1 OPTION=7
         EPLCOPY TBT LOADER=M NAME=product2.img COUNT=1 OPTION=7
         EPLCOPY TBT LOADER=M NAME=product1.img COUNT=1 OPTION=7
         EPLCOPY TBT LOADER=M NAME=product2.img COUNT=1 OPTION=7
         EPLCOPY TBT LOADER=M NAME=product1.img COUNT=1 OPTION=7
         EPLCOPY TBT LOADER=M NAME=product2.img COUNT=1 OPTION=7

DMA=x
This options is for use with non-standard hardware only.
It specifies what DMA channel to use for the diskette adapter. (The
adapter has to be hard-wired to the associated signal lines on the
I/O channel). Valid entries are: 1, 2 or 3. The default is 2.

DRV=xxxx
Normally EPLCOPY can determines the type of drives attached.
However it is recommended that you use the DRV= command instead.
This can be conveniently done by using the environment string ("SET").
It is a more secure method to directly explain what types you have,
than to have EPLCOPY doing the tests.

If you specify the DRV= command, you must specify all 4 drives.

Valid values are:

 0 - No drive attached in this position. (First is "A" etc.)
 1 - Standard 48 TPI drive.
 2 - High capacity, 96 TPI drive. (Can also support 48 TPI.)
 3 - 3.5 inch drive. (135 TPI - 1 meg.)
 4 - 3.5 inch drive. (135 TPI - 1 meg./2 meg. drive.)

NOTE: 8 inch drives must be coded as type "2".

EMUL=NDEL  or EMUL=DEL
This option is normally not used, and only in association with writing
diskettes from a MIF file.
8 inch and some types of emulated 8 inch diskettes on 5.25, insert a
"delete" attribute on unused index sectors. This information is not
available in the MIF format, and has to be deducted from other data.
EMTCOPY will automatically assign delete attributes on 8 inch and
diskettes that are identified to have been written on a IBM SYSTEM 36.
All others will NOT be assigned any delete attribute. (This is correct
for S/1-EDX and RPS.) If you ever get in a situation where this auto-
mation proves wrong, using EMUL=NDEL or EMUL=DEL forces EPLCOPY to ei-
ther always or never assign the delete attribute.
It is only intented as a "escape hatch".

FLAG8
This is a combinational parameter. If you use a FLAGSTAFF system to
support 8 inch diskettes, you can use this single parameter in place
of the following set.

     "NECADDR=03E8 DRV=0022 CARD=1 TL=76 MEDIA=H AW"

If necessary, any individual of these can again be modified by having
the single parameter occurs later in the instruction stream.

This parameter also signals that only 8 inch drives is available. !!

HDR=a
This parameter is used to select the kind of header prompts made when
creating a image or MIF file.

Currently -A- for APAR is the only alternative to the standard prompt.

INC=x..x
This parameter is only used together with SERIAL= and START=.
For each good diskette copied, the serial number will be incremented
with this amount.
If INC= isn't used, increments defaults to 1.

KEY=x..x
When creating or using a IMAGE-FILE, you can optionally supply EPLCOPY
with a KEY. This key is used to encrypt or decrypt the file to ensure
images containing confidential data can be transferred or stored en-
crypted. This will prevent illegal access by anyone not knowing the
key. You can supply a key with a length from 1 to 8 characters. It
can consist of any letter or digits. Some special characters can be
used, but blanks and punctuations are not allowed. Any lower case le-
tters are internally converted to upper case before the key is used.
If you use the "KEY=" statement without any data field, EPLCOPY will
use a key of all hex-E6.

WARNING:
Data for the external label is NEVER encrypted.
This is only a simple encryption. It CANNOT be used in place of an
IBM requirement to use "real" encryption. (i.e. DES)
Not available using MIF files.

LOADER=x..x
EPLCOPY has also been designed to interface with some of the robotized
diskette handlers, as an alternative to the drives inside the PC. See
appendix "AUTOLOADERS" for more information.
Only the first letter in the type description is necessary. These are
the type of loaders supported:

M = Mountain loader.
F = Fourmaster loader.
A = ADC 3.5 inch loader.
T = TEXOR loader.

MEDIA=x..x
This option selects the media to be used as source and target.
Normally they are selected automatically.
Specifying MEDIA disables the automatic selection.

The type of media can also be selected by the (m) key from the main
option menu.

The following are valid arguments to the MEDIA command:

"STANDARD"      -  This is the standard 48 TPI diskette.
"HIGHCAP"       -  This is the high-cap 96 TPI diskette.
"1meg" or "3.5" -  This is the 3.5" 135 TPI diskette. (1 meg.)
"2meg"          -  This is the 3.5" 135 TPI diskette. (2 meg.)

Only first letter of argument is significant.

MONO
Mono applies to the colors of the display screens while running the
EPLCOPY program. Normally, colors have been selected that will display
well on both the color and the monochrome adapter.
However, if you are using a monochrome display attached to a color
adapter (i.e. the PC/portable), the displays might be unreadable.
Using the MONO option, forces EPLCOPY to use a basic B&W display, that
can be used with any display/adapter types. For the PC-Convertible,
MONO is the default.

Pressing the "c" key on the main menu, toggles between mono and color
display.

MIF
Specifying the MIF parameter forces the program always to CREATE MIF
files, regardless of the name selected.
It have no bearing on reading files. (Automatic selection.)

MIF=SIMPLE
EPLCOPY/EMTCOPY normally takes advantage of the more sophisticated
MIF record types to reduce the size of the files it creates.
However not all MIF writers supports the full extend of MIF records.
Specifying MIF=SIMPLE have the same affect as specifying MIF, but also
forces the program to use only the very basic MIF record types. The
penalty is a larger data-file that will contain a raw dump of all data
from the diskette.

NAME=xxxxxxxx.yyy
This parameter defines the IMAGE filename to be used together with
main option 4, 6, 7, 8 or 9. It is provided to allow EPLCOPY to be
controlled from a batch procedure. If you do not provide the NAME=
option, and one is needed, then you will be prompted for one.
Drive and path information is allowed on this parameter.

NECADDR=xxxx
This option is for use with non-standard hardware only. It allows you
to specify the base addr. of the NEC controller within the system.
The default value is 03F0.

NOCHECK
If for some reason you want to disable the read-verify on the COPY
operations, then use the NOCHECK option to do so.

NOCLEAR
Whenever EPLCOPY copies a diskette, the tracks that are not used on
the SOURCE diskette, will also be ERASED on the TARGET diskette, so
that they are blank, regardless of their previous contents. (This is
specially important when copying 1 sided diskettes.)
However, if you know that the TARGET diskettes are blank before you
start, you can get a slightly better performance by specifying NOCLEAR.
NOCLEAR disables the ERASE function.

NOTBT
This is the opposite option of TBT. It is used to de-select TBT in
case it was permanently put in the environment strings. (SET cmd.)

OPTION=n
The option parameter allows you to specify which main option to select.
It is provided to allow EPLCOPY to be started from a BAT procedure.
Any valid main option can be selected.

"RETRY=N:M"
The retry parameter is used when read/write errors to a diskette occur.
An unsuccessful operation will be retried a maximum of "n" times befo-
re is is stopped, and the diskette considered bad. Also a maximum of
"m" retries on the same diskette is allowed before it is considered
bad. The default values are n=3 and m=5.

You are permitted to specify "RETRY=n" if you only want to change the
"n default.

SERIAL=cchrroooll (,cchrr000ll ..)  or SER=
If you have diskettes containing serial numbers, they would not compa-
re identical at the place of the serial number. Using the SERIAL= key-
word instructs EPLCOPY not to stop if the diskette are different in
the areas containing the serialization.

When doing copy operation, you can use SERIAL= together with START=
and INC= to instruct eplcopy how to serialize your diskettes.

A maximum of 6 SERIAL= statements can be used, each describing an
individual place for the serial number on the diskette.
Alternatively, you can continue the statement by putting a comma and
then the next cchrroooll sequence at the end. Still the maximum of
6 diskette locations applies. Finally the short form "SER=" is permi-
tted.

The sub parameters are defined as follows:

cc  Two digits cylinder number.       (Valid entries:00 - 79 )
h   Head number.                      (Valid entries:0  - 1  )
rr  Two digits specifying the sector. (Valid entries:01 - 65 )
ooo Offset of first byte into sector. (Valid entries:000- 511)
ll  The length of the serial number.  (Valid entries:01 - 15 )
"," Continuations are legal if separated by comma.

The length field is optional and defaults to 15.

Remember always to use leading zeroes.
Sample parameter. SER=0100322005,0100522005

This means that the serial number is on track 01 (Second track of
diskette, first is always 00), head=0, third sector, starting in off-
set 220 of the sector, (First byte count as 000), and the length is 5
bytes. The same specifications apply to sector 5.

IMPORTANT NOTE: These parameter will appear correctly only when dea-
ling with a standard DOS diskette. However the real offset on the
track is calculated as if each sector is 512 bytes long. If this is
not the case, then it is necessary to do a reverse calculation. The
exact formula used by eplcopy is:

Track_offset = ((Sector_number - 1) * 512) + Sector_offset.

START=x..x
This parameter is used for specifying the starting serial number.
It has only meaning if one or more SERIAL= statement is used. It must
be a numeric value of maximum 15 digits. If START= isn't used, EPLCOPY
will start serializing from 1. The serial number written to the diske-
tte will always be in ASCII format, the length is defined in the SE-
RIAL= parameters, and leading zeroes will be added if necessary.

TBT
TBT stands for TRACK-BY-TRACK. This mode is only active when you are
using a image file (from a hard disk/vdisk) as input. In that case,
EPLCOPY do not use the normal strategy of filling the internal buffer
with all the data, and then produce the diskette, rather the input
and the output phase is merged together in such a way, that you can
produce (or compare) the diskette at the same speed, without having
to wait for the image to be loaded first. This facility greatly redu-
ces the time it takes to produce a single copy.

N.B.: Images files on diskettes will produce unpredictable errors.
      Only images stored on harddisk or virtual disks can be used.

"TRACKLIMIT=xx:xx" or "TL=xx:xx"
This parameter restricts EPLCOPY to read only the cylinders within
the interval. (Physical source diskettes only).
XX can be one or two digits, representing the cylinder number in deci-
mal (Numbering starts from 0.) First value specifies the lower limit,
and the second value the upper limit. They must be separated by a co-
lon. If only one value is given, and no colon, then the value is assu-
med to be the upper limit.

This function is only intended for "editing" purpose, so use it only
when you are sure of what you are doing.

The ERASE function also recognizes these limits.
This means that no tracks will be erased outside the limits.

TRYHARD
This option makes EPLCOPY try harder when analysing (reading)
diskettes. If the diskette contains errors of the type BAD_ID_CRC,
it cannot be detected in the normal mode. TRYHARD makes eplcopy use a
additional analysing methods, that requires additional time, but can
detect this kind of errors. If your first attempt copying a copy-pro-
tected diskette was successful, but the diskette did not work, try
again using this option.

WS=drive.
WS stands for Workspace. It means that in addition to the amount of
real storage available on the system, a disk file (EPLCOPY.WS) is
allocated on the specified drive, as a work-space. This will enable
EPLCOPY to do all functions in single steps, and allow you to change
target operations without re-reading the source, even though there 
isn't enough real memory to hold the entire diskette image.
Drive can be one of the letters A, B, C, D, E, F or G. It must repre-
sent a HARDDISK or a RAM-DISK. It cannot be on a diskette.
Violating this will cause unpredictable errors.

WS is assumed if your system has a harddisk. You can still assign ws
to another drive than the first available by using the WS parameter.
If you do not want to use WS, it can be disabled by using the parame-
ter "WS= " (blank).

TIP:
You can use any memory above the 1M limit on the PC/AT, by allocating
it as a RAM-DISK (using DOS program VDISK), and then assigning the
work space to the VDISK.

THE MAIN MENU.
To load the program enter "EPLCOPY", or if you have a harddisk as "c"
then enter "EPLCOPY WS=C".

The main menu will be displayed:
------------------------------------------------------------------------
E P L C O P Y  -  Version 4.11                  (m) Media: Compatibility

This system is a 512 K machine.
That leaves you  325 K to use as copy-buffer. + workspace on drive: C.

From DISKET: 1=Label print. 2=Copy 3=Compare 4=Create image 5=List format
From IMAGE:  6=Label print. 7=Copy 8=Compare                9=List format
Select program action ==>


Press ESC to exit.         By C.Groennemann.          SPC - IBM Denmark.
IBM internal use only.     Authorized version.    IBM business use only.
------------------------------------------------------------------------

Fig.1 The main menu.

In the top right corner EPLCOPY displays the current drive/media set-
up:

COMPATIBILITY  -  The drive is a high-capacity drive, the media is a
                  standard diskette.
STANDARD       -  The drive is a standard drive.
HIGH-CAPACITY  -  The drive and media is high-capacity.
3.5 / 1 MEG.   -  The drive used is a 3.5 inch (135 TPI) 1 meg.
3.5 / 2 MEG.   -  The drive used is a 3.5 inch (135 TPI) 2 meg.

Line 3 tells you the memory size of the machine and line 4 tells you
how much of that is available as buffer. If a work space is in use,
line 4 tells you so.
Line 5 and 6 lists all of the main menu options.
Options 1 allows you to make labels as a stand alone option.
Options 2, 3 and 5 are for diskette to diskette operations.
Options 4, 6, 7, 8 and 9 require a diskette image file to be speci-
fied.

The bottom half of the display is used to display error and informa-
tional messages like the label on the image. See appendix c for infor-
mation about error messages.

Option description

1=Label print.
This option, allows you to edit a label and print them on a printer.
(Stand alone mode.)

2=COPY.
In this mode, the source diskette is copied to the target diskette,
and every track is reread and compared against the source data, to
verify that the target is in fact readable and identical to the source.

3=COMPARE.
In this mode, the source diskette is compared against the target dis-
kette. For each sector on the source diskette, the corresponding sector
on the target diskette is read, and compared against the source data.
If any discrepancies are found, the target is considered a bad copy.
It is however possible that the target contains MORE sectors and/or
tracks than the source, even if the comparison is OK.
(I.E. A reused 2-sided diskette reused as a 1-sided might contain data
on the back-side, and a 8-sector diskette formatted under DOS 2.0
really contains 9 physical sectors.)

4=CREATE IMAGE.
In this mode EPLCOPY will create an image file of a diskette which
later on can be used for file transfer or replication. The image
contains the data portion of the disk together with control informa-
tion describing the format of the diskette.
In addition the image file contains control block identification and
checksum to insure data integrity.
The image is stored in a compressed format to save space and can op-
tionally be encrypted (see KEY parameter).
Finally the image may contain label data to be displayed and optiona-
lly printed.
The image file may be stored on either hard disk or diskette.
If you are using a diskette as the file target, you might run out of
space on that volume. (An image file can be larger than the capacity
of the diskette, as EPLCOPY stores format information together with
the data from the diskette.)

EPLCOPY allows you to stop and replace the target diskette when it
runs full. You must use the same drive though. This is known as a
multi-volume image. Of course EPLCOPY allows you to use a multi-volume
image file as input to its other functions.

If you enter a filename on the filename prompt, that have a ".MIF"
extension, EPLCOPY will create the output file in the MIF format as
opposed to the normal EPLCOPY format.
EPLCOPY images should be preferred over MIF images because of the
better data integrity facilities and smaller file sizes. MIF is only
recommended if you need it for comparability with other systems.

Before eplcopy creates the image file you'll get the chance to enter
external label information that will be kept together with the image.
See Label Edit description later on for further information.

5=LIST.
This mode requires that you have a printer attached and ready. It will
print a report describing the format of the complete diskette, and can
be used for verification of format and read condition of the diskette.
The contents of the report is described in the chapter "The format
report."

6=PRINT LABEL.
In this mode, an image file is selected, and it is searched for data
for the external label. If any is found, a prompt for the number of
copies to print is issued, and the labels are printed.
The image file can be either an eplcopy image or a MIF image.

NOTE: If your input is from a multi-volume file, you must have the
LAST volume mounted to print a label.

7=COPY FROM IMAGE.
In this mode, the source is read from a image file, and copied to the
target drive. The user is prompted for the name, drive and path of the
file containing the image.
Every track is reread and compared against the source data, to verify
that the target is in fact readable and identical to the source.
The image file can be either an eplcopy image or a MIF image.

8=COMPARE FROM IMAGE.
In this mode, the source is read from an image file, and compared to
the target diskette.
The user is prompted for the name, drive and path of the file contai-
ning the image. As in option 3, the data on the source is verified to
be on the target diskette.
The image file can be either an eplcopy image or a MIF image.

9=LIST FROM IMAGE.
In this mode, a report will be printed describing the format of the
diskette to be created from the image.

Pressing ESC
If you press the ESC key on the initial screen, you will exit the
eplcopy program. In general pressing ESC will cause an interruption of
whatever eplcopy is doing and you'll return to the previous menu. You
can press ESC at any point during execution and choose another func-
tion.

Toggles

Pressing "M".
The M toggles between the different media types available on your ma-
chine. (See also the start up parameter "media=x")
P.S. This option is no longer necessary, as EPLCOPY determines the
types of drives and diskettes automatically.

Pressing "R".
The R resets the production statistics (The line just above the light
blue error display area.). R can be used at any time, even during copy
operations.

Pressing "C".
The C toggles between two types of screen lay-outs. One is in color,
and the other is straight monochrome. (See MONO option.)
This toggle can only be used from the main menu.

Pressing "S".
When used with autoloaders, EPLCOPY signals the operator for attention
by making some sounds. To make EPLCOPY "shut up" without actual res-
ponding to the request, press the "S" key.

RUNNING.
After the initial selection, the following prompt might occur.

ENTER INPUT FILE NAME:  or  ENTER OUTPUT FILE NAME:

This prompt makes it possible to specify a (optional) drive and (op-
tional) path, together with a filename of the file to be used as the
image file. If no drive and path is given, the current DOS default
drive/path is used.

Pressing ESC makes you return to the main menu.

If the name you supply contains meta characters ("*" or '?'), or is
a path (Ending with a reverse slash.), then you will automatically
enter the DIRECTORY mode. If you press the F1 key, you will force
yourself into the directory mode using only the path part of the
current value of the name prompt.

Once in the directory mode, you can select a file using cursor selec-
tion. Position the cursor using the normal cursor keys, and press EN-
TER to select a file. Press ESC to return without selecting a file.
If there is to many entries to be displayed on one screen, you can pa-
ge between screens using PageUP or PageDown. A maximum of 3 screens
(135 entries) is provided.

The SOURCE phase

In the source phase, you are prompted for the source drive. Pressing
's' makes you use the default source drive (initially 'A').
Pressing 'a', 'b', 'c' or 'd', assigns a new source default drive,
and starts reading from the drive. While reading the source, the dis-
play informs you about the current drive, cylinder and head being read.
Pressing ESC anytime in the source phase makes you return to the main
menu. Pressing 'r' resets the GOOD and BAD counters.

Please note that "A" is the first diskette drive on the controller,
"B" the second etc. Installing device drivers, or using DOS commands
to change the drive specifiers, do not affect the values selected here.
"A" to "D" refers to the drives physically connected as the 1. 2. 3.
& 4. drive. THIS IS PARTICULAR IMPORTANT FOR EXTERNAL DRIVES.

The TARGET phase

When the source phase ends, the target phase is entered. Here you are
prompted to enter the target drive. 'T' makes you select the default
target drive (initially the first drive to support the media type you
use). Pressing 'a', 'b', 'c' or 'd' changes the target default, and
starts the target operation.
Please note that "A" is the first diskette drive on the controller,
"B" the second etc. Installing device drivers, or using DOS commands
to change the drive specifiers, do not affect the values selected here.
"A" to "D" refers to the drives physically connected as the 1. 2. 3.
& 4. drive.

Pressing ESC anytime in the target phase makes you return to the main
menu. Pressing 'r' resets the GOOD and BAD counters.

The CHANGE menu

If eplcopy was started with the 'ws=x' parameter you'll get the option
to press 'F1' which will then bring you to a secondary menu, the CHAN-
GE menu.
There you'll have the following options:

1=PRINT LABEL.
2=COPY.
3=COMPARE.
4=CREATE IMAGE.
5=LIST.

These modes are identical to the ones selected on the main menu,ex-
cept that you already have the source in storage.
After selecting a mode, you will return to the target phase. Pressing
ESC will return you to the main menu.
When the target phase ends, you will return to the start of the target
phase, so that you can copy/compare another diskette. Pressing ESC
will return you to the main menu.

The format report

When you select to run a format report, eplcopy analyses the contents
of a diskette or image-file and prints a report on the format of the
entire diskette.
Samples are provided at the end of this chapter.
The report is produced by analysing the first cylinder.
From this information, it prints the header lines, that specifies the
media of the source. (48 TPI, 96 TPI or 3.5 inch diskette.)
Furthermore it makes a guess on the format of the rest of the diskette,
and specifies this in the summary lines.
Next step is to read the entire diskette. Further information is prin-
ted if discrepancies between what was expected and what was read are
encountered. If the track does not contain any special attributes, and
all sectors are of the same size, and numbered sequentially from 1,
then only a single line will be printed, giving the general track for-
mat of the single track.

Otherwise a line for each sector is printed, to describe the special
track in great detail. After the last sample, a description of all
the special attributes that can be assigned is given.
The line "Logical DOS format: xx ...." is only relevant for diskettes
to be run under the PC/DOS operating system. In PC/DOS you can define
a diskette to be logical in the 8 sector format, even though it physi-
cally is a 9 sector diskette. That is, DOS will ignore the presence of
the 9'th sector entirely. The logical format is recorded in a code by-
te.
The xx is this code byte in hex, and the text following it, is the
translation of the code byte. Note that even though DOS might think
of the diskette as a 8 sector one, when doing a IMAGE-COPY like
EPLCOPY does, you must consider the diskette to be a 9 sector one.
The last line states whether or not the logical DOS format is in
agreement with the physical format read from the diskette.

It is important to understand this general rule when using the format
report.

             *-----------------------------------------------------*
             ]                                                     ]
             ]  If special attributes are found, the diskette is   ]
             ]             either  COPY PROTECTED,                 ]
             ]             or    A DEFECT DISKETTE.                ]
             ]                                                     ]
             *-----------------------------------------------------*

LIST SAMPLES:
This is a sample report of a standard DOS diskette:

EPLCOPY Ver. 4.11  -  Diskette format report.
-----------------------------------------------------
Image: stddos.img

Media_type=48 TPI.

Cyl Head Sectors Length. - ID-info.       Special attr.

SUMMARY:  Tracks=40  Sides=2  Sectors=9  Length=512
          Logical DOS format: FD - Dual sided, 9 sector.
          Logical and physical format agree.

----- End of report. ------------------------------

Fig.2 The format report.
N.B. All data is in decimal.
This report states that the image file last read in, and therefore
used as input to this report, was named "STDDOS.IMG".

The diskette media used was a 48 tpi diskette (Std. 5.25" diskette).

All tracks read without anything to report, hence only the headings
of the detailed report are written.

The summary report part states that the diskette contains 40 tracks
on each active side, that 2 sides are used, and that each track con-
tains 9 sectors of 512 bytes length each. This is the physical format.
However from a DOS point of view, a logical format exists. This is do-
ne through the use of a code byte that informs DOS to use both side
or not etc.
This byte was set to hexadecimal "FD", which translated to "2 sides, 9
sectors". In this case the logical and the physical format agrees, but
this is not always necessarily the case.

This is a sample report of a S/36pc diskette:

EPLCOPY Ver. 4.11  -  Diskette format report.
-----------------------------------------------------
Image: s36.img

Media_type=96 TPI.

Cyl Head Sectors Length. - ID-info.       Special attr.

 00  0     26       256
 00  1     26       256

SUMMARY:  Tracks=77  Sides=2  Sectors=8  Length=1024
          Logical DOS format: 00 - Not defined in DOS.

----- End of report. ------------------------------

Fig.3 The format report.
N.B. All data are in decimal except the ID BYTES which are in HEX.
A S/36PC type of diskette, is recorded on a 96 tpi media (High capaci-
ty).
It contains 77 tracks on each side, each with 8 sectors of 1024 bytes.
This, however is not true for the very first track on each side, as
they contain a kind of "index" to what's on the rest of the diskette.
The two first tracks (Cylinder=0 head=0 and head=1) contains 26 sectors
of 256 bytes each.

As this is not a PC-DOS diskette, the DOS code byte contains a random
value, and is therefore not defined.

This is a sample report of a imaginary copy protected diskette.

EPLCOPY Ver. 4.11  -  Diskette format report.
-----------------------------------------------------
Image: protect.img

Media_type=48 TPI.

Cyl Head Sectors Length. - ID-info.     Special attr.

 10  0     09       512
                           01 00 01 02
                           01 00 02 02  Real_length=256
                           00 00 00 00  Format_only
                           01 00 03 02
                           01 00 04 02
                           01 00 05 02
                           01 00 06 02
                           01 00 07 02
                           01 00 08 02
                           01 00 09 02

SUMMARY:  Tracks=40  Sides=2  Sectors=9  Length=512
          Logical DOS format: FF - Dual sided, 8 sector.
** NB **  Logical and physical format do not agree.

----- End of report. ------------------------------

Fig.4 The format report.
This diskette contains a track on cylinder 10, that is specially for-
matted to make it copy protected. Sector number 2 is supposed to have
a length of 512 bytes, but actual length is only 256 bytes. (The last
number in the id byte is 02, a code for the length. 00=128, 01=256,
02=512, 03=102 etc.) The next sector is one put there for geometric
reasons. It is only used while formatting the track, and will not con-
tain any data.

DETAILED REPORT SPECIFICATION:

The ID bytes are in hex, and are the values for each sector.
Normally the format is CC HH RR NN, defined as follows:

CC
Cylinder number. (00-50 hex) (00-80 decimal)
HH
Head number. (0-1)
RR
Record or sector number (01-1A hex) (01-26 decimal)
NN
Length code for sector length. (00-04)
00
128 bytes/sector.
01
256 bytes/sector.
02
512 bytes/sector.
03
1024 bytes/sector.
04
2048 bytes/sector.

The special attributes you will find in the report are:

BAD_DATA_CRC.
The sector checksum value does not match the one recalculated after
reading the sector.
This can either be a part of a protection scheme, or the diskette can
actually contain a bad spot. (Media defect).
The latter is the most likely.

BAD_ID_CRC.
The ID field checksum dosn't match.
This can either be a part of a protection scheme, or the diskette can
actually contain a bad spot. (Media defect).
The later is the most likely.
These kind of attributes can only be analysed using the TRYHARD option.

DELETED.
The sector is logically marked as deleted.

FM-MODE.
This track is recorded in the format called FM-mode (Not MFM.)
FM-mode is only found on 8" diskettes, and is not supported by IBM
diskette adapters.

FORMAT_ONLY.
This sector is to be formatted only. It does not contain actual data

NO_ADDR_MARK
There is no address mark to define the data part of a sector,
following the ID field.
This can either be a part of a protection scheme, or the diskette can
actually contain a bad spot. (Media defect).
The latter is the most likely.

REAL_LENGTH=xxx.
This means that the length given in the code byte (id byte 4) does
not correspond to the actual length of the sector.

WARNING: MAGNETIC INDEX MARK OVERWRITE.
There is a magnetic recording on the track corresponding to the physi-
cal index hole in the diskette. This mark is not used on a PC, but
other equipment might need it to be there. However this track contains
so much data, that the index mark probably will be overwritten.
(Track end overwrites a part of track start).
EPLCOPY will duplicate this feature.

WARNING: NON-STANDARD GAP=xx.
The length of the gap field between the data records, are not as
expected according to IBM standard specifications. If these values are
very small, it might create read/write problems for the end-user of
the diskette.

Standard values are related to the sector length. They are:

Sector length = 128 bytes,   27 bytes;
Sector length = 256 bytes,   54 bytes;
Sector length = 512 bytes,   84 bytes;
Sector length = 1024 bytes, 116 bytes;
Sector length = 2048 bytes, 255 bytes;

Label Edit

When choosing option 4 (Create Image) on the main menu, the following
HEADER prompt will appear:
--------------------------------------------------------------------
Enter HEADER data:

                   Vol........(001) of (001)
                   Family.....(     )
                   PTF no.....(        )

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

If the parameter HDR=A was used the prompt will be:

--------------------------------------------------------------------
Enter HEADER data:

                   Vol........(001) of (001)
                   Family.....(     )
                   APAR no....(        )
                   PMR no.....(               )

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

Fig.5 The HEADER prompts.
These fields are of optional use and only meaningful for the use of
the EMTCOPY application within the ADSDS environment.
ADSDS will define the meaning and use of these fields. They will be
stored as header records in the image file.

Next screen up is the EDIT LABEL screen.

--------------------------------------------------------------------
E P L C O P Y  -  Version 4.11              (m) Media: Compatibility
                                             Current image: test.img
This system is a 512 K machine.
That leaves you  325 K to use as copy-buffer. + workspace on drive: C.


    EDIT LABEL       (                              )
                     (                              )
Use cursor keys to   (                              ) F2-Get model.
update label.        (                              ) F4-Save model.
                     (                              ) F6-Get last used.
Press ENTER to save  (                              )
label.               (                              )
                     (                              )
                     (                              )

Press ESC to exit.     By C.Groennemann.          SPC - IBM Denmark.
IBM internal use only.                        IBM business use only.
--------------------------------------------------------------------

Fig.6 The Edit Label menu.
The user may now enter up to nine lines of text that will be stored
together with the image. Use the cursor keys to get from one line to
another. To save the text, press enter.
Insert and delete are also available on this display as well as CTL
END for delete and END for positioning.
The label can be printed out on sticky labels using option 6 on the
main menu or option 1 on the CHANGE menu. It will automatically be
displayed on the terminal when the image file is in use.

Pressing F2/F4 causes a prompt for a label model name to be displayed.
Together these keys gives you the ability to save and restore
label data in separate files.
As for the image file prompts, you can use F1 for a directory display
and do cursor selection.
F6 causes the last used label, whatever it was, to be recalled and
displayed for futher editing.

APPENDIX A.

SAMPLES.

How to copy one diskette to another.
Start EPLCOPY (enter EPLCOPY).
Choose option 2.
Put source diskette in drive selected by EPLCOPY and press "s".
When prompted, put target diskette in drive selected by EPLCOPY
and press "t".
When the copy is finished, press ESC twice to terminate eplcopy.

How to compare one diskette to another.
Start EPLCOPY (enter EPLCOPY).
Choose option 3.
Put source diskette in drive selected by EPLCOPY and press "s".
When prompted, put target diskette in drive selected by EPLCOPY
and press "t".
When the compare is finished, press ESC twice to terminate eplcopy.

How to create an image file from a diskette.
Start EPLCOPY (enter EPLCOPY).
Choose option 4.
Reply the prompt for output file name with the drive/path/filename
of the file you want to create.
Fill out or press ENTER to ignore the header information.
Fill out the label area with any data you want to put on an external
label for this diskette.
Put source diskette in drive selected by EPLCOPY and press "s".
When the image is created, press ESC twice to terminate eplcopy.

How to create a diskette from a image file.
Start EPLCOPY (enter EPLCOPY).
Choose option 7.
Enter filename and optionally the path (e.g. /mif/dk2203.v01)
(in actual use, the slashes are reverse slashes.)
When prompted, put target diskette in drive selected by EPLCOPY and
press "t".
Press ESC.

If you want to print labels:
Mount labels in your printer.
Select option 6.
Press enter on the filename prompt. (Default is last value.)
Choose the number of labels or just press enter.
Press ESC to terminate eplcopy.

How to repair a S/36PC diskette containing too many tracks.
This is a sample of the ADVANCED functions of EPLCOPY. Not to be used
for normal purposes. You will need a PC/AT to execute this sample.
When formatting S/36PC diskette on a S/36PC, a problem arises if the
diskette has previously been used by PC/DOS. PC/DOS formats 80 cylin-
der, where S/36PC only formats 77 cylinders. This leaves cylinders
numbered 77, 78 and 79 from the old diskette on the disk. EPLCOPY's
advanced features can be used to repair this error.

Start EPLCOPY (enter "EPLCOPY TRACKLIMIT=00:76")

This will start EPLCOPY, and limit it to the cylinders defined for
S/36.
Choose option 4 to create a image file.
Enter filename and optionally the path (e.g."temp.img")
Skip the label, just press enter.
When prompted, put source diskette in drive selected by EPLCOPY and
press "s".
When the operation is done, and the change menu is displayed, press
ESC twice to exit the program.
Restart EPLCOPY, this time using "EPLCOPY" parameter only.

It is important to get rid of the TRACKLIMIT= parameter, or the extra
tracks won't get erased.
Choose option 7 (Copy from image.)
Enter filename and optionally the path (e.g. "temp.img")
When prompted, put target diskette in drive selected by EPLCOPY and
press "t".
Whenever EPLCOPY is finished, and you are displayed the change menu,
press ESC twice to exit the program.
Erase the temporary image file from your disk.
(I.E. "ERASE temp.img")

APPENDIX B.

EPLCOPY messages.
Whenever something unusual happens, EPLCOPY will display messages in
the messages area. The messages area is the light blue area, containing
the 10 newest messages issue. They are scrolled from the top down.
The general format is:

Real-addr=00:0:000  STx=00 00 00 (80)  Text..............

Where REAL-ADDR is the cylinder/head/sector last accessed from the
diskette drive. Some messages refer to the track rather that the indi-
vidual sector. In this case the sector number should be disregarded.
Likewise, for some type of messages, the addr should be disregarded
entirely.

STx= is 3 bytes in hex, containing the return codes from the floppy-
disk controller, and the number in () is the return code as is would
have been returned by the BIOS. The text describes the error and is
the one acted upon by the operator.

When a image file containing data for the external label is processed,
the label data is displayed in the error window as well.
Obvious these messages are not described in the following text.
This is a description of all the error messages:

*** IMAGE DISK FULL. ***
While dumping to disk/diskette, the media ran full. This option gives
you the possibility to create a multi volume file.

*** END OF FILE ON IMAGE DISK. ***
During read of a image file, a premature END-OF-FILE was found,
EPLCOPY assumes that you must be using a multi volume dataset.

*** CHANGE DISK AND PRESS ENTER. ***
Either a disk full situation occurred on output, or a end-of-file
situation occurred on input. This option gives you the possibility
to change the diskette, and then handle it as a multi volume file.
Press enter when done, or ESC to cancel.

8 INCH NOT SUPPORTED ON THIS PC.
To support 8 inch drives you will need a suitable floppy controller.
(IBM floppy controller cannot be used.) The presents of a CARD= para-
meter signals that 8 inch (might) be supported.

AUTOLOADER: CLEAR JAM.
The auto-loader reports a JAM condition, clear it, and press any key
to resume operation.

AUTOLOADER: HOPPER NOT IN PLACE.
The auto-loader end hopper is not properly seated. Make sure it is in
place, then press any key to resume operation.

AUTOLOADER: INPUT EMPTY.
The auto-loader input hopper is empty. Put more diskettes in and press
any key to resume operation. (ESC to terminate.)

AUTOLOADER: INTERFACE ERROR.(xx)
The auto-loader did not respond according to protocol. Either the co-
nnection is bad, or the auto-loader is powered down. This error occu-
rred on a READ operation from the async. interface. Correct the problem
and restart EPLCOPY.

The (xx) code is intended for tracing purpose only.

AUTOLOADER: IS OFFLINE.
The auto-loader is off-line, make it on-line, and press any key to
resume operation. (ESC to terminate.)

AUTOLOADER: STATUS NOT AS EXPECTED.
The (ADC) auto-loader rejected a command to load or unload a diskette.
(Former this was the "R" reply message.)
Please check that a diskette is present or drive is empty for the
operation you attempt. On pressing a key to this reply, the loader
will try to clear the drive and load path, and then retry the opera-
tion if doing a load.

AUTOLOADER: UNDEFINED RETURN CODE.
The auto-loader response is out of protocol. You must terminate the
program.

BAD VERIFY. DO NOT USE THIS COPY.
EPLCOPY found the target diskette to be unequal to the source diskette.
Reject this diskette.

BAD_CRC WRITE UNSUCCESSFUL, MUST RETRY.
When EPLCOPY is asked to create a sector with a bad data crc, a sepa-
rate read verify is done, to check that the sector has the requested
error. If, however, this verify does not prove the special error
exists, EPLCOPY will retry the operation. This message is issued to
notify you that a possible problem is under way. If the operation isn't
successful after 5 retries, the messages FATAL ERROR: BAD_CRC ABANDONED
will be issued.

CANNOT DETERMINE TRACK LENGTH.
While reading this diskette, the first sector read did not reappear
after time equal to 1 rev. of the diskette. Your drive might  be run-
ning with out of tolerance speed, or the diskette might be binding in
the folder.

CHECKSUM = xxxx    or     CHECKSUM = xxxx/yyyy

Whenever CREATE IMAGE is used, a checksum is created, and the "CHECK-
SUM = xxxx" message is issued to inform the operator of the checksum
value. The value is stored within the IMAGE. When the data is recalled
it is automatically recalculated and compared, and the message
"CHECKSUM = xxxx/yyyy" is issued. xxxx is the stored value from the
image, yyyy is the recalculated one. The comparison is automatic, but
the operator can use the values as visual control.

.CHECKSUM ERROR IN IMAGE FILE.
Whenever a IMAGE file is created, a checksum is appended to the file.
When the file is reread to be used as input. EPLCOPY verifies the va-
lidity of the file by means of this checksum. This messages indicate
that either you are using a wrong file, or that the file has been co-
rrupted.

COPY OF COPY-PROTECTED DISK NOT ALLOWED.
The EMTCOPY program do not allow for copying of diskettes that are
considered to be copy-protected. However you are allowed to use the
LIST and COMPARE options.

CRYPTOGRAPHIC SUPPORT ACTIVE.
You have used the "KEY=" statement at the initial start-up. Any CREATE
IMAGE and READ IMAGE operations during this session, will use the en-
cryption key you provided, or the default if you specified "KEY= ".

DATA CANNOT BE READ DURING VERIFY.
The target diskette is so bad, that the verify read cannot be perfor-
med. Reject this diskette.

DELETED SECTOR FOUND.
A sector was found on a target disk with a "delete" mark. As this was
not so on the source diskette, this indicates a severe error.

DISK HAS TOO MANY RETRIES.
The count of all read retries on this diskette is greater than that
allowed on the RETRY= parameter or its default. The target diskette
is considered defective, and EPLCOPY terminated the copying process
counting it as a bad copy.

DRIVE NOT READY.
The drive specified is not ready, doesn't contain a diskette, the door
is not closed, or the source diskette is uninitiated.
If this is a target diskette, you will return to the start of the
target phase ready for a new diskette. If it occurs in the source
phase, you MUST press ESC to return to the main menu.

DRIVE TYPE NOT SUPPORTED ON THIS PC.
The type of diskette media you want to produce, is not supported  by
your hardware. I.E. High capacity is only supported on a PC/AT.

ERASE ERROR rc=xx.
EPLCOPY was not able to erase the unused tracks.
Report the problem and the RC to SPC, Carsten Groennemann.

ERROR DURING FORMAT STARTUP.
EPLCOPY was not able to start a format operation on the diskette.
This is a "Should not occur" situation. Restart the EPLCOPY program.
If the problem persists, report the problem to SPC, Carsten Groennemann.

ERROR DURING FORMAT.
The floppy disk controller responded negatively to a format request.
Document the STx codes, and report the problem to SPC, Carsten
Groennemann.

ERROR DURING WRITE_SECTOR.
After the number of retries specified by the RETRY= option (Default=3)
EPLCOPY gives up a write sector operation.
(See WRITE SECTOR RETRY). A permanent write error exists. Report the
problem together with the source diskette to SPC, Carsten Groennemann.

ERROR READING SECTOR-ID.
During the source read, the read of SECTOR ID's failed. This is a
fatal error of the EPLCOPY program, and should not occur. If problem
persists after retry on another PC, report the problem to SPC, Carsten
Groennemann.

ERROR WHILE READING IMAGE FILE.
A fatal error occurred during read of a image file. EPLCOPY was not
able to read the file, even though it was opened correctly.

ERROR WHILE WRITING TO IMAGE FILE.
It was not possible to write the image file. Probably you have an
error in the filename/drive/path specification.

FATAL ERROR: BAD_CRC ABANDONED.
If EPLCOPY after 5 retries, isn't able to create a record containing
a BAD_DATA_CRC, (See BAD_CRC WRITE UNSUCCESSFUL, MUST RETRY.),
a permanent problem exists. Report the status codes (STx bytes & track/ head/sector), together with the source diskette, and send it to SPC,
Carsten Groennemann.

FATAL ERROR: OUT OF BUFFER SPACE.
One of the tracks on this diskette needed more than 10240 bytes to
hold a copy of the data there. This is more space than available in
EPLCOPY.

FATAL: CRITICAL SECTOR WAS DUPLICATE.
The source diskette contains a track where 2 or more sectors are
marked with identical id fields. (Cyl, head, sector & length).
This can only be handled by EPLCOPY if the first sector to be written
on each track is not a duplicate. (When the first sector is written,
a writing sequence is established, so that the identical sectors are
not exchanged or written into the same slot.) The first sector to be
written is the first sector after the index mark if gap length > 65,
or the second sector if gap length <= 65. (Tracks with short gap length
is written are sequence 2 4 6 8 1 3 5 7 for better performance.)

FATAL: OUT OF FORMAT BUFFER SPACE.
An internal table needed space for more than the maximum of 62 sectors
on a track.
EPLCOPY is terminated. If this problem occurs, report the problem
together with the source diskette to SPC, Carsten Groennemann.

FIRST TRACK NOT FORMATTED.
The first track on the diskette is blank. EPLCOPY uses this to deter-
mine the media, so no further analysis of the diskette is possible.

IMAGE FILE COULD NOT BE CREATED.
The file name given on the file-name prompt, or supplied through the
NAME= option, cannot be created. Probably an drive/path error.

IMAGE FILE NOT AVAILABLE.
The file name given on the file-name prompt, or supplied through the
NAME= option, does not exist on the system.

INTERNAL: ERROR IN WS LSEEK. (GET).
An internal error in EPLCOPY support code for WS mode occurred.
Report the problem to SPC, Carsten Groennemann.

INTERNAL: ERROR IN WS LSEEK. (PUT).
An internal error in EPLCOPY support code for the WS mode occurred.
This error might occur if you don't have enough disk space to contain
the EPLCOPY.WS file. (You need space according to this approximate
formula: ((Source disk capacity * 1.03) - amount of buffer real stora-
ge buffer space. (See initial screen.))
If you are sure you have enough free space, report the problem to
SPC, Carsten Groennemann.

INTERNAL: ERROR IN WS READ.
An internal error in EPLCOPY support code for WS mode occurred.
Report the problem to SPC, Carsten Groennemann.

INTERNAL: ERROR IN WS WRITE.
An internal error in EPLCOPY support code for the WS mode occurred.
This error might occur if you don't have enough disk space to contain
the EPLCOPY.WS file. (You need space according to this approximate
formula: ((Source disk capacity * 1.03) - amount of buffer real stora-
ge buffer space. (See initial screen.))
If you are sure you have enough free space, report the problem to SPC,
Carsten Groennemann.

INVALID CB IN MEMORY.
EPLCOPY holds the diskette image in its buffer storage in CONTROL
BLOCKS. However EPLCOPY found that these CB were in disorder. This
is a critical error, that should be reported to SPC, Carsten
Groennemann.

INVALID CONTROL BLOCK IN IMAGE.
When EPLCOPY read the IMAGE file, an invalid control block was found.
Probably the file is not a valid IMAGE file, or you did not supply the
correct encryption password. (See KEY= start-up parameter.)
P.S. Trying to use a pre 4.04 version image file containing serial
numbers with a copy program of 4.04 or later, will result in this
error message. Images with serial numbers are not compatible over the
4.04 border.

Also, image files containing comment records in front of the image
will display this problem when run on pre 4.07 versions. In this case
you should upgrade your version of the program.
(Optional feature since 4.07, identified by "**" ASCII or EBCDIC in the
two first characters of the image.)

INVALID MIF RECORD IN MIF FILE.
While reading records from the header part of the MIF file, an uniden-
tified record type was found. You are properly not using the correct
file, or the file itself is in error.

INVALID SECTOR LENGTH CODE.
One of the sectors is marked as having a length > 8254 bytes, or code
00 = 128 bytes. (Sectors marked FF FF FF FF will not generate this
message). This message is for information only, as EPLCOPY will copy
the sector using its physical length.

LOGICAL OVERLAPPING SECTORS.
One of the sectors on the track is marked as having a length greater
than its physical length. This message is for information only, as
EPLCOPY will copy the sector using its physical length.

MISSING DATA ADDR MARK.
During read of sector data, the floppy disk controller reported a
missing data addr. mark.
EPLCOPY will make the target, so that it too will contain a missing
addr. mark, or verify the target to have a missing data addr mark.
(If running in verify mode.)
However make sure this is a part of a copy/protection scheme, and is
not caused by a bad source diskette. (The source is read 3 times to
make sure it is a permanent condition.)

MOTHERBOARD SWITCH SETTING IS INCORRECT.
The number of diskette drives indicated by the motherboard switches
are not correct, or at least the corresponding drives do not respond.

ONLY 8 INCH SUPPORTED IN THIS SETUP.
When running with the FLAG8 option, only 8 inch diskettes can be
produced. You will have to exit EPLCOPY and restart without the FLAG8
option to support other media types.

PERMANENT DATA ERROR ON MIF FILE.
The MIF file came to an unexpected end-of-file. This happened in the
middle of a track, and the file must be considered damaged.

PERMANENT READ ERROR ON IMAGE FILE.
EPLCOPY was not able to read from the file, even though it was opened
correctly.

PERMANENT READ ERROR ON MIF FILE.
The program received a read error while processing a MIF image file.

PERMANENT WRITE ERROR ON IMAGE FILE.
EPLCOPY was not able to write to the file, even though it was opened
correctly.

POSSIBLE DATA IN THE GAP FIELD.
During analyse, eplcopy detected the possibility of valid data in the
inter record gap after the first record. Eplcopy will handle this pro-
tection feature as well.

READING ERROR DURING VERIFY READ.
During a compare, a sector on the target diskette could not be read.
The target diskette is probably defective. The result of the compare
is that the target is not identical.

SECTOR DATA WITH BAD_CRC.
During read of sector data, the floppy disk controller reported a bad
checksum in this sector. EPLCOPY will make the target, so that it too
will contain a bad checksum, or verify the target to have a bad check-
sum (if running in verify mode).
However make sure this is a part of a copy/protection scheme, and not
caused by a bad source diskette. (The source is read 3 times to make
sure it is a permanent condition.)

SECTOR ID WITH BAD_CRC.
During read of sector data, the floppy disk controller reported a bad
checksum in the ID field for this sector.
EPLCOPY will make the target, so that it too will contain a bad check-
sum, or verify the target to have a bad checksum (if running in verify
mode).
However make sure this is a part of a copy/protection scheme, and not
caused by a bad source diskette. (The source is read 3 times to make
sure it is a permanent condition.)
This feature can only be detected when using the "TRYHARD" option.

SERIAL NO. ADDR=cc;h;rr;ooo LENGTH=ll
This message is issued to inform the operator, that serial number
support is active. The values displayed are explained as follows:
 cc  = Cylinder             (00  -  82)
 h   = Head                 (0   -   1)
 rr  = Record number.       (01  -  65)
 ooo = Offset in sector.    (000 - 999)
 ll  = Length of serial no. (01  -  15)

SHORT MIF FILE, PADDING ASSUMED.
While building data from a MIF file, the amount of data in the file
doesn't match the amount of tracks formatted. As this happened at a
track boundary, we will assume that the rest of the tracks should
be padded with standard padding characters. This really constitutes
an error condition, but until programs generating MIF's become
better, we will support this emergency solution.

SOURCE DISKETTE IS COPY-PROTECTED.
The source diskette you are trying to use, is a copy-protected
diskette.
If you have an AUTHORIZED EPLCOPY version, this is for information, if
your version is not authorized, this message will be followed by:
"YOU WILL NEED THE AUTHORIZED VERSION.", and the program terminates.

SPECIAL FORMAT PERMANENT ERROR.
If EPLCOPY after 5 retries, isn't able to create special formatted
sectors, (See SPECIAL FORMAT RETRY.) A permanent problem exists.
If the problem persists, document the status codes (STx bytes & track/head/sector), together with the source diskette, and send it to
SPC, Carsten Groennemann.

SPECIAL SECTOR NOT SPECIAL.
During verify, one of the sectors was expected to report a special
error code, but the verify did not do so. The target diskette must be
considered as a bad copy.

SYNC ERROR RC=xx/xx.
After initializing an ERASE operation, the controller did not become
ready again. Please report this problem to SPC, Carsten Groennemann.

TARGET IS WRITE PROTECTED.
The target diskette is write-protected. Remove the protection tap,
and restart the target phase.

TOO MANY SECTORS ON THE TRACK.
While reading this diskette, more than 62 sectors were found on the
same track. This will cause internal tables in EPLCOPY to overflow, and
cannot be handled by EPLCOPY.

TOO MANY SERIAL= PARAMETERS.
EPLCOPY don't support more than 6 sets of serial number addresses.
Therefore you can't use the keyword SERIAL= more than 6 times in the
initial parameters for EPLCOPY.

TRACK LIMIT AT xx;xx TRACKS INSTALLED.
You have specified the TRACKLIMIT= keyword during program startup.
Please be aware of the consequences. (See TRACKLIMIT= keyword
documentation.)

UNABLE TO COMMUNICATE WITH AUTOLOADER.
EPLCOPY was unable to initialize the auto-loader.
Check power and cables.

UNABLE TO OPEN WS FILE.
Either you have specified a drive that does not exist, or something
else is wrong with allocating a EPLCOPY.WS file on that drive.

UNDEFINED READ_SECTOR ERROR.
During a read of diskette data, the floppy disk controller reported
an error condition (see STx codes), that is not identified in EPLCOPY.
This is a fatal condition to EPLCOPY, and should not occur. If you
have this message, document the 3 STx registers, and report it to
SPC, Carsten Groennemann.

UNEXPECTED RETURN CODE FROM READID: xx
The NEC diskette controller reported a return code that EPLCOPY did
not recognize. Please report this to SPC, Carsten Groennemann.

UNKNOWN KEYWORD: ????
A keyword was used during start-up, that EPLCOPY didn't recognize.
Probably a spelling mistake.

VERIFY COMPARED WRONG, COPY IS USELESS.
During a copy & compare, a verify read of the diskette didn't compare
to the source. The target diskette is probably defect. Anyway, do not
use this copy.

WARNING: SECTORS DO NOT FIT INTO TRACK.
After the analysis of the source track, EPLCOPY determined that
more bytes were used, than were available on the track.
This can be due to variations in drive speed. EPLCOPY reduces the
gap length, so that the data will fit the track. (Allowing for up to
3 % drive tolerance.)

WRITE SECTOR RETRY.
A general error occurred during a write sector operation, EPLCOPY
will retry the write operation up to 5 times.

WRONG TYPE OF DRIVE SELECTED.
The drive you have selected does not support the type of media you are
going to use. This can either be attempting to write a HIGH-CAP diske-
tte in a standard drive, or trying to write a standard diskette in the
high-cap drive. The last option is possible if you do not have a
standard drive, but it is not recommended, as the diskette might
not work correctly in another standard drive (*). Finally you can get
this message for trying to select a drive you do not have.
(*) See DOS documentation for an explanation of this problem.

YOU WILL NEED THE AUTHORIZED VERSION.
EPLCOPY exist in two versions, one that is authorized, and lets you
copy
everything, and another that will not allow you to copy copy-protected
diskettes, even though it will allow you to copy a great number of
different regular formats. The source you tried to copy, requires that
you have the authorized version. Either you should not attempt what you
are doing, or you should ask your manager for the authorized version.
APPENDIX C.
Auto-loaders.
What are Auto-loaders.
Auto-loaders are robotized diskette handlers, that contain a diskette
drive, an input stacker, 2 output stackers (For good and bad diskettes),
and some mechanics to move diskettes from the input stacker to the
diskette drive, and then to one of the two output stackers. The in-
terface to this mechanism is through a serial adapter. EPLCOPY sends
characters according to protocol, whenever it wants a diskette moved
in theauto-loader.
So far EPLCOPY can use the following auto-loaders:
 MOUNTAIN COMPUTER M3200 auto-loader.
 FORMASTER auto-loader (This is a renamed M3200).
 ADC RDH 3.5. **
 TEXOR (Under test.)

** The ADC 3.5 inch drive is modified so that only one side will be
written at a time.

Asynchronous setup.
EPLCOPY initializes the async. adapter no. 1 to use these communication
parameters:
 Speed....... 9600 bps.
 Parity...... None.
 Stopbits.... 1 bit.
 Data length. 8 bits.
You will need to set option switches in the auto-loaders according to
these specifications.
Diskette drive used.
If your host computer is a IBM PC/AT, EPLCOPY will use diskette drive
"B" as the auto-loader drive. You will need a cable for extending the
drive cable from within the AT to the drive in the auto-loader. The
auto-loader drive physically replaces the AT's drive "B", and you must
SETUP the "B" drive accordingly.
Any other host computers assume that you can mount external
"C" drives, and EPLCOPY will use the "C" drive as the auto-loader device.
Also if you are using the option NECADDR=, then the program will assume
it is possible to attach to the "C" drive, even though it is a PC/AT.
In this case the autoloader drive will be the "C" drive as well.

APPENDIX D.
8 inch diskettes.
Special hardware.
To copy 8 inch diskettes, you will obvious need a diskette drive capable
of supporting a 8 inch diskette. Also you will need a drive that have
a standard 50 pin interface. (Most IBM drives don't.)
Secondly, you will need a diskette controller that supports reading and
writing in FM-mode. (PC controllers normally don't.) Our test was carried
out using a P.S. Engineering multi-disk adapter, and also the entire
system from FLAGSTAFF.
The options, DMA=, NECADDR= CARD= and AW is provided to setup the use of
this special adapter. The option CARD= different from 0 is also necessa-
ry to select the FM-mode ability of the program.
The option FLAG8 is especial supplied to make the entire setup needed
for the FLAGSTAFF system.

Capabilities.
If you have the hardware, then all the usual EPLCOPY functions is
available to you on the 8 inch diskettes. All formats are supported,
and also the IMAGE and MIF file functions are provided.

*** WARNINGS. ***
None of the systems we have tested so fare is capable of reliable
reading 8 inch diskettes written on IBM equipment in the 2D format.
You might be able to read them, and you may not. However there is
no problem for IBM equipment to read diskettes WRITTEN with the
above equipment.
Please recognize this fact if you are planning to use 8 inch systems.
The problem is not in the software, but in the hardware.
Of the 2 systems tested, FLAGSTAFF was the better one. PSE systems
may have trouble reading their own diskettes !

APPENDIX E.

EPLCOPY execution logic.
The copy operation is done in three major phases:

The INITIAL phase.
In the initial phase, EPLCOPY determines the type of processing to
be done, determines the type of CPU and drives to use, and adjusts
some constants to fit these specifications.
The TIMER chip (8253-5) is reprogrammed to mode 2. This means that
the internal counter will count from X'ffff to x'0000 in decrements
of 1, making the interrupt on reaching 0. This is as opposed to the
standard mode, where decrement is 2, making the interrupt every other
passing of 0. The reason for this reprogramming is, that is makes the
timer chip useable for in flight reading, thus providing a stop-watch
with 0.838 uSEC. resolution. Please note that the frequency of the
external interrupt is not changed, and that the normal time function
is not disturbed by this reprogramming.
Even though not necessary, the chip is reset to standard mode when
exiting the EPLCOPY program.

The SOURCE phase.
The responsibility of the source phase, is to create a structure in
memory, containing all information necessary to create the target
diskette. This information consists of the data to be put onto the
diskette, and information concerning how the diskette sectors should
be formatted. Input to the source phase can either be from a saved
image, or from reading and analysing a source diskette.

Analysing a diskette.
The entire diskette is read, analysed and stored track by track.
Analysing the track consist of 4 steps.

READING IDS.
The floppy disk controller (NEC upd765) is asked to do a read-id
command. This will return the id field of the next VALID id to pass
under the head. The time when the id was found, is stored in an internal
table, together with the ID information. Then the read-id function is
restarted, until the amount of time equivalent to 1 revolution of the
diskette (+3% tolerance) has expired. A check to verify that the first
and last id read is the same is then done, just to make sure.

ANALYSING THE ID INFO.
Next step is to analyse the id information read. The time-stamp is
used for calculating the byte distance between the sectors. This is
used to calculate the physical record length and the gap length.
If physical length is shorter that the logical length (coded in
the id field), then a logical overlapping sector exists, and the
physical length is used as the real length. When sector length
and gap is determined, the longest gap is used to determine the
first sector on the track.

READ DATA.
When all sector ids have been analysed, EPLCOPY reads the data
content of each sector into a buffer. If any sectors return an error
code when read, the sector is reread 3 times to verify that the
condition is stable, a msg. is issued to notify the user, and a
status bit is set in the formatting structure. This is done for all
sectors on the track. For best performance, 2 algorithms are used
when reading. If gap length <= 65, EPLCOPY might not be fast enough
to read and handle each sector consecutively. EPLCOPY will then read
all the data in 2 rev. of the disk, by reading every other sector.
Otherwise a sequential read will be done, reading the diskette in
1 rev.

BUILD FORMAT STRUCTURE. / SAVE DATA.

Now it is time for EPLCOPY to reorganize and store all the information
about the track into a control block in the main buffer storage.
This control block consist of 4 elements:
                       ^----------------------*
                       ] Format data header   ]
                       ]   (16 bytes)         ]
                       "----------------------[
                       ] Format actions codes ]
                       ]   (8 to 64 bytes)    ]
                       "----------------------[
                       ] Format words         ]
                       ]   (8 to 256 bytes)   ]
                       "----------------------[
                       ] Data contents        ]
                       ]  (128 to 10240 bytes)]
                       "----------------------[
                       :                      :
                       :   (Next track)       :
                       :                      :
                       !----------------------%
Each control block represents a track on the diskette, and each block
is stored consecutively in the main buffer. The format data header
contains information on real track/head, and length of the other
structures.

When the source phase is complete, a check is done to determine
if the source is a copy-protected diskette or not. If so, and the
program is not an authorized version, eplcopy rejects the request.
A copy-protected diskette is defined as being a diskette where one
or more tracks differ in format from all the others, or contain
sectors with special attributes. (8 inch look alike disks have
cylinder 0 different from all others, but this is allowed as an
exception.)
The image file used as alternative input to the source phase, is
really a dump of the main buffer control blocks. The image file is
compressed, so sequences of the same char are represented with
a break char (x'F1'), 1 char of the compressed char, and a length code.
Compression and decompression is automatically done in the load/save
procedure for master files.

EPLCOPY allows the image file to be a multi volume dataset. However
all files (on the different volumes) must have the same name, and it
is the responsibility of the user to handle the correct sequencing of
the volumes.

The TARGET phase.
The target phase can either be to write a diskette, to verify it, or it
can be to create a image file.

Writing.
All writing is done one track at a time. First the control blocks
for formatting are restored from the main buffer. Then a format opera-
tion is started. While the format operation is running (It will take a
whole rev. of the diskette, or appr. 0.2 sec), all the data control
blocks are restored from the main buffer. However, if special formatting
is required (Missing addr mark or id crc error requested.), the
formatting will be done in multiple requests. EPLCOPY can only build
special formatting attributes by repeating the format operation for
each special attribute to build.
Special formatting is not done under DMA control, but under direct
CPU - FLOPPY DISK CONTROLLER interfacing.
After the track is formatted, data can be copied to it. As when
reading, 2 algorithms are used for writing, so if the gap length
is less than 65 bytes, alternating sectors are written, otherwise
all data is written in one revolution. During data writing,
bad-data-crc sectors can be created. If this is requested, the
floppy disk controller will not be operated in standard DMA mode,
instead a direct CPU - FLOPPY DISK CONTROLLER interface will be used.
This mode also applies to the writing of short (overlapping) sectors.
If the entire track contains the pad char.
(Hex F6), and no special attributes are required, then this write step
is skipped, because the entire track already has the necessary data
pattern.

Next, the whole track is re-read sector by sector and the data stored
for later comparison.
While the formatting of the next track is running on
the floppy-disk controller, we have 0.2 spare seconds. This time is
used for comparing the data read, and the data intended to be on the
track.

Verifying.
When stand alone verify is requested, a single read-id command is
issued, and the current sector under the head is determined. Next, the
whole track is read sector by sector, and data saved in a local buffer.
All special sectors (Sectors returning error codes), are checked
against the format table, to verify that they in fact should be "bad".
Finally the a real data-compare is done against the main buffer data
content, and if successful, the cycle starts over again for the
next track defined in the main buffer. Please note that tracks not
defined in the main buffer will not be verified. This means that a
(reused) 2 sided diskette can compare equal to a 1 sided diskette,
provided that the 1 sided is used as source, and that side 1 of
the 2 sided diskette is in fact identical to the 1-sided. If you
compare them the other way around, they will not appear to be
equal, unless you use the "read 1 side only" option.

For serialized diskettes, the compare might not be successful at the
point of the serial number. In this case, a check is done to determine
if the error is within the serial numbers as defined by the SERIAL=
parameters, and if so, this particular compare error is ignored.
The rest of the sector is compared in the normal way.

Create image (dumping).
As an alternative to writing a diskette, a dump of the main buffer
content can be put to a file. The purpose of this, is to save an
image of the diskette, so that it can be stored in a master library
or used for transmission, and later be used to produce diskettes from.

If SERIAL= parameters is given, these too are saved within the image.
It is perfectly valid to store and transmit serialized diskettes as well.

The format of the image file.

The comment records.
EPLCOPY accepts (ignores) comment records in front of the real image.
The records must be 80 bytes each, and start with a double asterisk
"**". The encoding form can be either ASCII or EBCDIC.
The image part.
The dump format is likely to be transported around in the system.
To be able to transport is as fast as possible, a compression algorithm
is used. All repeated sequences of data in the image are replaced by
a break char., one occurrence of the data byte, and a length code.
    Sample:        C0 F1 BB 00 00 A0 00 00 00 00 00 00 00 00 07
    Compressed:    C0 F1 F1 01 BB 00 00 A0 F1 00 08 07
                      --------    --[--    --------
             This is a natural      ]      These 8 X'00' has been
             occurrence of the      ]      compressed.
             break char.            ]
                                    ]
                     Only sequences of 3 or more are compressed.

The maximum length of a single compressed entry is 255 bytes. If
more than 255 bytes in sequence are identical, 2 or more compression
sequences are used.
If a natural occurrence of the break char are found, it is forced
to a compress sequence with length 1. (Unless more than one is found).
This might EXPAND the file if many "break characters" is found.
In EPLCOPY, the x'F1' has been selected as the break char. x'F1'
does not represent a 8088 instruction or a normally used ASCII character,
and should therefor occur relatively seldom.

N.B. With the introduction of EBCDIC encoded diskettes, this statement
is no longer valid. The x'F1' happens to be a '1', but for the sake
of compatibility, the x'F1' has been kept as a break char.
A checksum protects the dumped image file against random changes
due to bad communication transfers etc. Each byte in the main buffer
is added together keeping only the least significant 16 bits. The
checksum is added to the dumped image, and when read, it is compared
against a similar checksum created when the file is read.
The label record.
Data for the external label is a optional feature. It is stored in a
512 byte record that is appended to the very end of the image file.
The presence of the label data doesn't make any impact on the image file
at all. The procedure is to read the last 512 byte of the image. If
the last 10 bytes are ascii blanks, then it is a label record.
Otherwise it is not present. An image is most unlikely to have 10
blanks at the end, due to compression. The 512 byte records contains
9 x 36 bytes of label data, the rest is not used for the time being.

APPENDIX F.

MIF formats.
An alternative to using the EPLCOPY defined image format, is to use
a format as defined in a IBM corporate standard called MIF.
This format is designed to handle the distribution of micro-code, but
as this might be on diskettes, it also describes a way of packaging
data intended for a diskette in a single file.
However, it is not able to describe copy-protected diskettes, and is
in a uncompressed format with no check-sum (see note), or other integrity
controls. Also, the image dosn't tell the complete story about the
diskette, the writer programs have to make assumptions about the data.

    "----------------------------------------------------------[
    ] It is therefore recommended to use the EPLCOPY format.   ]
    ]                                                          ]
    ] Use MIF only if you need to for the sake of compability. ]
    %----------------------------------------------------------`

To use a MIF file as input, you don't have to do anything. EPLCOPY
will detect if the images file is a EPLCOPY or MIF file, and adjust
to whatever is presented to EPLCOPY.

To create a MIF file
you must then select a file name ending with the ".MIF" extension, or
start EPLCOPY with the option MIF.
In that case, additional prompting occurs, and the output file will be
in the MIF format.

Additional restrictions apply to the use of MIF output.
Use of multi volume output file is not allowed.
Diskettes containing non sequential sector numbering or not starting
from 1, is not supported.
Diskettes containing more that 1 track format (cyl 0 excepted), are
not supported in this implementation. I.E. this might happen when a
8 inch look-alike diskette contains one format in tracks 0 to 76, and
residual formats from a previous use in the last tracks (77-79).
Lower limit on TRACKLIMIT is not supported.
Copy protection is not supported.
Encryption using KEY= is not supported.

From release 4.12, a obtional checksum is calculated and transmitted
as a comment for the MIF file. If both transmitting and receiving
program happens to be EPL/EMTCOPY (Both 4.12 or higher), then the image
is actual protected by a checksum. Also from 4.12, EPLCOPY tries to
reduce the file size of the files transmitted by means of "Byte filler"
MIF record types.

Parameters specially related to the MIF format are:
 MIF
 MIF=SIMPLE
 EMUL=NDEL / EMUL=DEL

For a description of MIF, see corporate standard C-S 0-2514-436.
EPLCOPY/EMTCOPY version 4.11 supports the MIF revision 1 level.

APPENDIX G.
BAT files.
Some changes where made in 4.12 to allow EPLCOPY to be run as procedures
in BAT files. Especially the COPIES= command, tell EPLCOPY to terminate
after the said numbers of processes, rather than returning to the main
menu.

Also a return code is set on completion:
 0  = EPLCOPY completed due to said COPIES= where processed.
 1  = EPLCOPY terminated due to the operator pressing ESC.
         (I.E. manual terminate from MAIN-MENU.)
 >1 = EPLCOPY terminated due to internal error.

This sample procedure is named MAKECOPY.BAT, and will accept a name
and a optional a number of copies you want to reproduce. It assumes
that you have a directory called IMG that you use to store the image
files in. If the file is not in the directory, is will automatically
prepare for a file transfer from your HOST system. Finally, TBT or NOTBT
mode will be selected whatever is the fastest according to the number
of diskettes you are going to reproduce.

     echo off
     if exist /img/%1.img goto file_ok
     echo  FILE NOT ON DISK, MUST BE TRANSFERRED FROM YOUR HOST.
     pause PLEASE SIGN ON.
     RECEIVE img/%1.img e:%1 imgbin a1   <== This is a 3270CP sample.
     if errorlevel 1 goto abend_pgm          Replace with whatever you
                                             are using. I.E. MYTE.
     :file_ok
     if a%2==a  goto tbt_mode
     if a%2==a1 goto tbt_mode

     EPLCOPY option=7 name=/img/%1.img copies=%2 notbt
     if errorlevel 2 goto abend_pgm
     goto end_pgm

     :tbt_mode
     EPLCOPY option=7 name=/img/%1.img copies=%2 tbt
     if errorlevel 2 goto abend_pgm
     goto end_pgm

     :abend_pgm
     pause THIS OPERATION FAILED, PLEASE DO MANUAL INTERVENTION.

     :end_pgm
     echo on

NOTE: "/" should really have been reverse slash'es. Typo problem]

APPENDIX H.

Performance.
EPLCOPY will be used for copying and verification of a great number of
diskettes. Performance in the target phase is therefore of paramount
importance. If you analyse the performance considerations, you will
discover that it is the number of revolutions of the diskette during
write or compare, that is the determining factor of performance.
EPLCOPY has been designed to reach the following objectives:

                   "------------\------------\------------[
                   ]Average     ]Estimated   ]Measured    ]
                   ]Revolutions ]Time in sec.]Time in sec.]
    "--------------+------------+------------+------------~
    ]Copy & compare]    3.5     ]    56.0    ]    56.0 (*)]
    ^--------------+------------+------------+------------~
    ]Compare       ]   >2.0     ]   >32.0    ]    25.2    ]
    %--------------?------------?------------?------------`

    This chart is for a dual sided diskette (360 K) formatted
    in DOS format, using a 512K standard PC without the WS option.
    DOS 2.1 was used. The entire image fitted into storage.

For the 3.5 inch diskettes, the timings are simply the double values.

For running on an PC/AT, copying high-capacity diskettes, the table
looks like this:
                   "------------\------------\------------[
                   ]Average     ]Estimated   ]Measured    ]
                   ]Revolutions ]Time in sec.]Time in sec.]
    "--------------+------------+------------+------------~
    ]Copy & compare]    3.5     ]    93.3    ]    94.5 (*)]
    ^--------------+------------+------------+------------~
    ]Compare       ]   >2.0     ]   >53.3    ]    41.0    ]
    %--------------?------------?------------?------------`

    This chart is for a high capacity (1.2 MB) diskette formatted
    in DOS format, using a 1536K PC/AT With 512K of primary memory, and
    using a ram disk of 1024K to hold the WS= file. DOS 3.1 was used.

    (*) See note on next page.

If you do not have that much memory, but use the AT harddisk, the
following table applies:
                   "------------\------------\------------[
                   ]Average     ]Estimated   ]Measured    ]
                   ]Revolutions ]Time in sec.]Time in sec.]
    "--------------+------------+------------+------------~
    ]Copy & compare]    3.5     ]    93.3    ]    94.5 (*)]
    ^--------------+------------+------------+------------~
    ]Compare       ]   >2.0     ]   >53.3    ]    46.5    ]
    %--------------?------------?------------?------------`

    This chart is for a high capacity (1.2 MB) diskette formatted
    in DOS format, using a 512K PC/AT and allocating the WS= file on
    the harddisk. DOS 3.2 was used.

(*) An additional write optimization is
used. If a track contains only the format pattern, then the write
operation is skipped. The track is still formatted and verified, so
no change in the final product occurs, but we save appr. 0.2 sec for
each "empty" track. This gives the copy & compare times for a completely
empty disk (best case) of 40.7 on the standard PC, and 86.9 for the
high capacity on the 512K PC/AT.

APPENDIX I.

DEFINITIONS OF TERMS.
This section will define some of the words used in this document.

AUTOLOADER.
Auto-loaders are devices that attach to the PC, and make it
possible to insert and extract diskettes from a diskette drive by
electronic signals from the PC. This is very helpful in a
production environment where you will be making many copies.

BIOS.
Basic Input Output System. A PC contains some hard-coded micro-code
in a ROM chip, that enables software to access system resources from
a macro level. This software is called the BIOS.

CRC.
Cyclic Redundancy Check. All sector on a diskette have a CRC
written after the data portion, to enable the hardware to detect
read errors.

CHECKSUM.
To guard against accidental errors due to random changes or
truncation of an image, a checksum is applied. The checksum
consists of all bytes (data and control information) added together
modulo 65536.

COPY PROTECTION.
Diskettes intended for the PC's sometimes contain special features
to prevent them from being copied. This is known as copy-protection.
EPLCOPY has been designed to copy them anyway if possible, while
EMTCOPY has artificially been restricted from doing so.

DATA ADDR MARK.
The start of each sector is determined by an address mark.
This is a special recording on the disk used by the hardware.

EPL.
European Program Library. An IBM organization for distributing
software in the EMEA area.

EPLCOPY.
An SPC developed program for copying of all types of diskettes.

EMTCOPY.
The original version of EPLCOPY was restricted from copying
copy-protected diskettes, and then released for internal use in IBM.
This version is called EMTCOPY, and is otherwise the same program as
EPLCOPY.

ERASE OF TRACKS.
EPLCOPY has the capability to erase nondefined tracks.
Actually the tracks are overwritten with a special signal, that
will overwrite all information from the track, and therefore after the
operation, the track will appear as had it never been used.

HIGH CAPACITY DISKETTE.
This term refers to a type of diskette media capable of storing
approximate 1.2 Mbyte of data. It contains a maximum of 80 cylinders
(Often called 80 tracks, even though it is 160 tracks). The recording
density is 96 TPI. The necessary magnetic strength to record on this
media is 600 oersted, twice the strength of a standard diskette. This
also accounts for much of the incompatibility between the media types.

To physically tell apart a High-cap and a standard diskette, look at
the hub reinforcement ring. The standard diskette contains one, but
normally the high-cap does not.

ID ADDR MARK.
The start of each sector ID field is determined by an address mark.
This is a special recording on the disk used by the hardware.

ID FIELD.
In front of each data sector on a track, a system record containing
the sectors position on the track, is recorded. This is called the
ID-field.

IMAGE.
A file containing all the necessary data to re-create a diskette.

LSEEK.
A command to position the current reading/writing point in a file.

MIF.
Microcode Image Format. This is an IBM standard. It describes how
to package data for the distribution of micro-code. As this can be on
diskettes, it can also be used to describe diskette images.

We do recommend that you use the EPLCOPY image if possible, as this
provides better integrity, and generally smaller images. For
copy-protected diskettes, there is no choice. They cannot be written
in the MIF format.

NEC.
Nippon Electronic Company. This is the manufacturer of the electronic
chip and its micro-code, used as the diskette controller in IBM PC's.
The limitations on what can be read and written on the diskette is
basically determined by this device.

TPI.
Tracks Per Inch. The type of diskette is often described by the
track density. A standard diskette for a PC/G - PC/XT, is a 48 TPI
diskette. It contains 40 cylinder or 40 tracks on each side. But
this just means that the active area is less that an inch.
Copy protection might use 1 or 2 tracks more, so EPLCOPY will check
up to cylinder 41.

Other types are the High-Capacity diskette that records 96 TPI and
uses 80 tracks on each side (+ 2 more for possible copy protection).
The 3.5 inch diskette records at 135 TPI using a maximum of 80 tracks
per side.
