Home of the original IBM PC emulator for browsers.
[PCjs Machine "ibm5170"]
Waiting for machine "ibm5170" to load....
Sydex
22DISK
A CP/M-to-DOS Diskette Interchange Utility
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
22DISK
A CP/M-to-DOS Diskette Interchange Utility
Version 1.30, February, 1989
Copyright 1988, 1989, Sydex
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
All Rights Reserved
NOTICE
THIS IS NOT FREE SOFTWARE! If you paid a "public domain" vendor
for this program, you paid for the service of copying the program,
and not for the program itself. Rest assured that nothing ever gets
to the originators of this product from such a sale. You may evaluate
this product, but if you make use of it, you must register your copy.
We offer several inducements to you for registering. First of all,
you receive the most up-to-date copy of the program that we have --
and we do update the product on a regular basis. You also receive
support for 22DISK -- which can be quite valuable at times. And
finally, we have a few utilities not included in the evaluation
package. Make no mistake, however - this is a fully functional ver-
sion of 22DISK and not "crippled" in any way.
REGISTRATION INFORMATION
The non-commercial single-user registration fee for 22DISK is $25.00
US. The commercial and multisystem site fee for 22DISK is $100.00.
Send a check or company P.O. for the appropriate amount to:
Sydex
P.O. Box 5700
Eugene, OR 97405
Please indicate what product you are ordering and if you have a re-
quirement for 3.5" media. We normally ship 5.25" 360K diskettes, but
will furnish 3.5" 720K media upon request. Customers outside of
the United States and Canada should include an extra $5.00 for airmail.
If you are a registered user of this product and desire an update,
please send $5.00 for handling and we will ship you an up-to-date
copy. Please add $10.00 for printed documentation to cover duplication
and shipping costs.
DISTRIBUTION NOTICE
This is "user-supported" software. You are hereby granted a license
by Sydex to distribute this evaluation copy of 22DISK and its documen-
tation, subject to the following conditions:
1. 22DISK may be distributed freely without charge in evaluation
form only.
2. 22DISK may not be sold, licensed, or a fee charged for its use.
If a fee is charged in connection with 22DISK, it must cover the
cost of copying or dissemination only. Such charges must be
clearly identified as such by the originating party. Under no
circumstances may the purchaser be given the impression that he
is buying 22DISK itself.
3. 22DISK must be presented as a complete unit, including this
documentation. Neither 22DISK nor its documentation may be
amended or altered in any way.
4. By granting you the right to distribute the evaluation form of
22DISK, you do not become the owner of 22DISK in any form.
Any other use, distribution or representation of 22DISK is expressly
forbidden without the written consent of Sydex.
_______________________________________________________________
CP/M, CP/M-80 and CP/M 2.2 are trademarks of Digital Research. MS-DOS
is a trademark of Microsoft. IBM PC, PC-XT and PC-AT are trademarks
of International Business Machines. V20, V30, uPD70108, uPD70116 are
trademarks of NEC Electronics. CompatiCard is the trademark of
MicroSolutions, Inc. Some products of Lear-Siegler, Kaypro, Osborne
and Televideo are also trademarked.
Table of Contents
22DISK, Briefly..............................................1
Installing 22DISK............................................2
Getting Started..............................................2
Selecting A Disk Format......................................4
22DISK CP/M File Naming Conventions..........................5
22DISK Command Syntax Conventions............................6
A Quick Reference Guide to 22DISK Commands...................7
CTOD -- Convert A CP/M Diskette To DOS.......................9
DTOC -- Convert DOS Files TO CP/M Files.....................10
CTYPE -- Display A CP/M File................................10
CDIR -- Display A CP/M Directory............................11
CERA -- Erase CP/M Files....................................12
CFMT -- Format A CP/M Diskette..............................13
Building Custom Diskette Definitions........................14
Some Hints on Developing a Definition.......................19
Indexing A Large Definition File with GENINDEX..............21
Diskette Densities and Recording Modes......................21
Modifying A PC-XT "Clone" Controller For Single-Density Re..23
In Closing..................................................25
Other Sydex Products........................................26
22DISK, Briefly
22DISK is a product which enables one to convert files on diskette
from various CP/M formats to MS-DOS, and vice versa. It is a com-
panion product to 22NICE, a Z-80/8080 CP/M 2.2 emulator. The opera-
tion of one part is not dependent on the other--if you want to use
22DISK to convert data from other disk formats to DOS or vice-versa,
you need not install the 22NICE CP/M emulator. Similarly, if you al-
ready have CP/M programs available as DOS files, you may not want to
use the 22DISK disk conversion utilities.
Our packaging for 22NICE and 22DISK offers the 22DISK program set
separately for those who may be using a different emulator or have no
need of a CP/M emulator. The 22NICE emulation package, however, is
bundled with 22DISK because of the need to transport CP/M files to the
PC before emulation can be performed.
The 22DISK disk conversion package offers the following features:
* "Roll your own" disk formats - we provide support for
several common CP/M 2.2 diskette formats, but if you have a
format that isn't in our list, you can simply define the
characteristics in an ASCII parameter file. Registered
users get an even larger file of diskette types.
* Support for single- double- and quad-density formats,
hardware permitting.
* Support of the the following operations:
CP/M-to-DOS
DOS-to-CP/M
Directory display
Display CP/M files
Erase CP/M files
Format CP/M diskette
* Full user number support.
* Support of MicroSolutions' CompatiCard.
22DISK currently will not handle "hard sectored" diskettes, nor will
it work with diskettes written on an Apple ][ or Commodore 64 or 128.
Page 1
Installing 22DISK
22DISK will not run without first being installed. To do this, enter
the following command at the DOS prompt:
A:22DINST and press the ENTER key.
We're assuming that the file 22DINST.EXE is located on the diskette in
drive A:; if you are installing 22DISK from some other drive or direc-
tory, substitute it for the A: in this command.
Generally, the installation process is self-explanatory. A few of the
more important points to note are:
1. 22DISK will support up to 8 diskette drives--4 per control-
ler card. Support for two controller cards is provided.
2. If you're using 22DISK on an XT-class computer with a high-
density controller, you'll need to specify that your com-
puter is an AT-type computer. This is necessary to ensure
that your controller is correctly programmed by 22DISK.
3. 22DINST installs all files in the same directory. However,
the file CPMDISKS.DEF and the files with an extension of
"LBL" may be placed in any directory specified by the DOS
PATH environment variable. For information on PATH, consult
the DOS reference manual.
4. The files comprising 22DISK can be installed or re-installed
"in place". That is, the source drive and directory may be
the same as the destination.
You'll need about 512K of base memory to install 22DISK. If you don't
have that much available, you can still install 22DISK by creating an
installation diskette having all of the 22DISK files except
CPMDISKS.DEF and all of the files having a extension of "LBL". These
files can be copied over to your destination drive or directory after
you've run 22DINST.
Getting Started
The following sections deal with various specific features of 22DISK.
If the diskette format desired is one of those included in the stan-
dard definition file, entering the command
CMENU
will cause a menu-driven interface to 22DISK to be executed. The ap-
propriate function may then be selected from the menu. CMENU displays
the following choices:
Page 2
+------------------------------------------------+
| |
| 22DISK Version 1.30 (12-Mar-89) |
| |
| Please select one of the following: |
| |
| 0. Exit to DOS |
| 1. Set CP/M diskette type |
| 2. Set CP/M diskette drive |
| 3. Copy CP/M file(s) to DOS |
| 4. Copy DOS file(s) to CP/M |
| 5. Format a CP/M diskette |
| 6. Display a CP/M directory |
| 7. Display (type) CP/M file(s) |
| 8. Erase CP/M file(s) |
| |
+------------------------------------------------+
No diskette type selected yet.
Please enter function number (0...8):
When CMENU is used for the first time, choice 1 should be selected to
determine what CP/M diskette format will be used. Until a format is
selected, no CP/M diskette operations can be performed; attempts to
perform any operation before selecting a type will produce an error
message.
When choice 1 is selected, a list of CP/M diskette types, in display
"pages" of 23 types will be displayed. The cursor keys may be used to
select a format type. When the desired type is located, pressing the
ENTER keys will select that format. A screen of general information
about systems requirements will be displayed, after which the opening
menu is again shown.
After the diskette type is selected, CMENU will "remember" it from
session to session. The next step is to select choice 2 to specify
what diskette drive will be used to access CP/M diskettes.
The desired function may then be selected from the menu. Each func-
tion may then request additional input for items such as CP/M diskette
type and names of source and destination files.
Page 3
CMENU prompts for parameters and formats them into a command line for
one of 22DISK's utility programs. If a menu interface is not desired,
each program may also be invoked as a normal DOS command. The follow-
ing sections deal with each specific function in terms of the program
that performs that function.
Selecting A Disk Format
All of the 22DISK utilities make use of a common interface to specify
the format of CP/M diskette to be used. Over 200 different formats are
provided with 22DISK and "custom" definitions may also be written.
Each different CP/M format is given a unique one- to four-character
tag. For example, the Osborne 1, single-sided, double-density format
is given a tag of "OSB2", while the single-sided, double-density
Kaypro 2is assigned a tag of "KAY1". So, to specify a format, its tag
is used.
The format tag may be indicated to the 22DISK utilities in any of
three ways:
(1) The tag may be specified interactively. This is the default
situation if the tag has not been indicated by either of the
other two ways. The following prompting message is dis-
played -
Enter 1-4 character disk format type, ? for list -
If a question mark is entered, followed by the ENTER key, a
list of diskette formats and their tags is displayed, 23
lines at a time. The cursor keys (up, down, PgUp and PgDn)
may be used to select a type. Pressing ENTER causes the
current type to be used.
(2) The tag may be specified directly on the DOS command line.
In this case, the tag is the first field of the 22DISK com-
mand and is preceded with a slash (/) character. For ex-
ample,
CFMT /KAY1 A:
would result in the diskette in drive A: being formatted as
a Kaypro 2 single-sided, double-density diskette.
(3) The DOS environment variable "CPMDISK" may be set to the tag
corresponding to the desired format. So,
SET CPMDISK=OSB2
Page 4
would result in all 22DISK operations being performed in
terms of Osborne 1 double-density format, unless overridden
by an explicit DOS command line specification as in (2),
above.
The file named CPMDISKS.DEF contains definitions for all diskette
types and must be present somewhere in the DOS command search path.
That is, one of the directories indicated by the DOS PATH statement
must contain the CPMDISKS.DEF file.
In addition to the predefined formats given in CPMDISKS.DEF as sup-
plied with 22DISK, custom definitions may also be prepared using any
ASCII text editor. For details, consult the section titled Building
Custom Diskette Definitions.
22DISK CP/M File Naming Conventions
All of the 22DISK utilities use the same convention for naming CP/M
files, which corresponds roughly to that used by CP/M. However, to
supply a means of indicating CP/M user numbers and to afford an alter-
nate way to refer to diskette drives, the convention has been extended
somewhat.
A CP/M file designator as used by 22DISK consists of the following
items:
* A disk drive specifier. This is a letter referring to those
drives configured by the 22DINST program.
* An optional user number between 0 and 31. If omitted, user
number 0 is assumed. A wildcard, or asterisk (*), may be
specified to signify all user numbers.
* A colon (:).
* The file name consisting of up to 8 letters, numbers or spe-
cial characters. Upper- and lower-case letters are con-
sidered to be equivalent. A special character may be any of
the following -
! @ # $ % ^ & ( ) - _ = + { } [ ] ' " , /
* The characters "?" and "*" serve as "wildcard" specifiers;
"?" matches any single character. "*" matches any remaining
characters in the file name.
* A period (.), which may be omitted if no file extension is
present (see next item).
Page 5
* The file extension which consists of up to 3 letters, num-
bers or special characters. Its rules of formation are
identical to those associated with the file name, including
use of wildcard characters.
Here are some examples of CP/M file names accepted by the 22DISK con-
version utilities:
A:*.COM All files with an extension of
"COM" from drive A:, user number
0.
D*:*.* All files from any user number on
diskette drive D.
B2:X*.DAT All files having an extension of
"DAT" under user number 2, from
drive B:, starting with the let-
ter "X".
In all of the 22DISK utilities, a drive designator followed by a colon
without any filename or extension assumes all files on that drive.
Thus,
B: is identical in meaning to
B:*.*
Sometimes, as with the CFMT utility, a drive designator is required
without a file name. In these cases, no user number, file name or ex-
tension is used, but physical unit designations are still allowed.
22DISK Command Syntax Conventions
In order to discuss command syntax in 22DISK, a number of conventions
have been adopted in this document:
(1) All commands are assumed to be followed by depression of the
ENTER key. Sometimes this key is referred to as RETURN or
CARRIAGE RETURN.
(2) All upper-case (capital) letters are entered exactly as
shown in the command description. For instance,
CFMT
is entered as depressions of the "C", "F", "M" and "T" keys.
Actual case of the entered characters is irrelevant; that
is, either upper- or lower-case letters may be entered.
Page 6
(3) Any underlined item enclosed in italics refers to a name of
a particular type of item and is not to be entered
literally. For example:
CP/M file
refers to a general CP/M file designator as described in the
preceding section, and NOT the characters ""CP/M file"".
(4) Any item enclosed in parentheses ("(" and ")") refers to an
item which may be omitted from the command line. For ex-
ample:
(disk type)
refers to a disk type item which may be left out completely
from the command statement.
(5) Any blank character may be replaced by more than one blank
character or a tab character.
These conventions will be used throughout this document with addi-
tional explanations where required.
A Quick Reference Guide to 22DISK Commands
The following is a short description of the command syntax of each
conversion program:
CONVERT CP/M FILES TO DOS
CTOD (/disk type) CP/M file name DOS disk unit
Example:
CTOD /KAY1 A:*.DAT C:
CONVERT DOS FILES TO CP/M
DTOC (/disk type) DOS file name CP/M disk unit
Example:
DTOC C:*.BAS A:
DISPLAY A CP/M DISKETTE DIRECTORY
CDIR (/disk type) CP/M file name
Page 7
Example:
CDIR A:*.OVR
ERASE A CP/M DISKETTE FILE
CERA (/disk type) CP/M file name
Example:
CERA /IBM1 WS?.COM
DISPLAY (TYPE) A CP/M DISKETTE FILE
CTYPE (/disk type) CP/M file name
Example:
CTYPE 2:*.DOC
FORMAT A CP/M DISKETTE
CFMT (/disk type) CP/M disk unit
Example:
CFMT /OSB1 B:
GENERATE AN INDEXED DEFINITION FILE
GENINDEX source file destination file
Example:
GENINDEX CPMDISKS.NOI CPMDISKS.DEF
STRIP AN INDEX FROM A DEFINITION FILE
STRIPIDX source file destination file
Example:
STRIPIDX CPMDISKS.DEF CPMDISKS.NOI
Page 8
CTOD -- Convert A CP/M Diskette To DOS
The program CTOD is used to read a CP/M diskette and copy files to any
selected DOS directory.
The general syntax of the CTOD command is -
CTOD (/disk type) CP/M file (DOS path)
Disk type is the optional diskette tag as discussed earlier. CP/M
file refers to the CP/M file designator for the diskette drive con-
taining the CP/M diskette and the file(s) to be copied. The wildcard
characters * and ? are allowed to specify a number of CP/M files.
DOS path refers to the name of a DOS disk drive or subdirectory to
which the CP/M files will be copied by CTOD. If this term is omitted,
the current DOS default drive and path are used.
Some transformations of CP/M file names are made by CTOD when copying
to DOS. CP/M file naming conventions allow just about any character
in a file name; DOS naming conventions are much more restrictive.
Characters which are not accepted by DOS are translated by CTOD to the
character #, a legal DOS file name character.
In addition, the file extension COM is changed to CPM by CTOD. DOS
considers any file with the extension COM to be executable; if execu-
tion of a CP/M file is attempted by DOS, the result could be dis-
astrous.
The 22NICE CP/M emulator also performs the same name translation in-
ternally for CP/M programs, so programs will operate correctly with
the transformed file extensions.
Here are a few examples of CTOD commands:
CTOD A:*.*
Copy all files from user 0, on drive A: to the current directory.
Use whatever format that was defined by the CPMDISK environment
variable, or prompt for one if CPMDISK is not defined.
CTOD /A1 B*:*.COM C:\CPMFILES
Copy all files with an extension of COM from all users, from
drive B: to the directory named C:\CPMFILES. Use the 8" SSSD
format. These files, when copied, will be given an extension of
CPM.
CTOD
Produces no action, but gives a synopsis of the CTOD command syn-
tax.
Page 9
DTOC -- Convert DOS Files TO CP/M Files
The program DTOC is the complement of CTOD; that is, it writes DOS
files to a CP/M diskette. The general syntax of the DTOC command is:
DTOC (/disk type) DOS file name CP/M drive and user
The optional term disk type is the name of a CP/M diskette type, as
discussed above. DOS file name refers to the name of a DOS file or
group of files and may include drive and subdirectory specifiers.
CP/M drive and user specifies the diskette drive to receive the DOS
files and the user number under which they are to be created.
In addition to copying DOS files to CP/M diskettes, DTOC carries out
the CPM to COM name translation described in the CTOD command. That
is, all DOS files with an extension of CPM will be created as COM
files on the CP/M target diskette.
Some examples of DTOC commands are:
DTOC C:*.* A:
Copy all files from DOS drive C: to CP/M diskette A:, user 0.
Use whatever format that was defined by the CPMDISK environment
variable, or prompt for one if CPMDISK is undefined.
DTOC /A1 \UTILS\*.ASM B3:
Copy all files from the DOS default drive in the subdirectory
named UTILS with an extension of ASM to user 3 on CP/M diskette
drive B:. Use the 8" SSSD format.
DTOC
Produces no action, but gives a synopsis of the DTOC command syn-
tax.
CTYPE -- Display A CP/M File
The program CTYPE copies a CP/M diskette file or files to DOS standard
output. Before each file is copied, its name is also copied to stan-
dard output. CTYPE is the analogue of the DOS and CP/M TYPE
utilities.
The general syntax of the CTYPE command is:
CTYPE (/disk type) CP/M file
Page 10
Disk type is the optional diskette tag code as discussed earlier.
CP/M file refers to the CP/M file designator for the diskette drive
containing the CP/M diskette and the file(s) to be displayed. The
wildcard characters * and ? are allowed in order that a group of CP/M
files may be specified.
An operation similar to CTYPE can be obtained with CTOD, where the
destination DOS drive is given as CON. Some examples of the CTYPE
command are:
CTYPE A:*.*
Copy all files from user 0, on drive A: to standard output.
CTYPE /A1 B*:*.DOC
Copy all files with an extension of DOC from all user numbers,
from drive B: to standard output. The source diskette is assumed
to be in 8" SSSD format.
CTYPE
Produces no action, but gives a synopsis of the CTYPE command
syntax.
CDIR -- Display A CP/M Directory
The program CDIR displays a list of CP/M diskette files in much the
same way that the CP/M command DIR does. However, the user number for
each file is also displayed, along with the available CP/M diskette
space remaining.
The general syntax of the CDIR command is:
CDIR (/disk type) CP/M file
Disk type is the optional two character diskette type code as dis-
cussed earlier. CP/M file refers to the CP/M file designator for the
diskette drive containing the CP/M diskette and the file(s) to be dis-
played. The wildcard characters "*" and "?" are allowed in order that
a group of CP/M files may be specified. Some examples of the CDIR
command are:
CDIR A:*.*
Displays a directory of all files from all user areas, on drive
A.
CDIR /A1 B*:*.DOC
Page 11
Displays a directory of all files with an extension of DOC from
all user numbers, on drive B:. The source diskette is assumed to
be in 8" SSSD format.
CDIR
Produces no action, but gives a synopsis of the CDIR command syn-
tax.
CERA -- Erase CP/M Files
The program CERA erases a list of CP/M diskette files in much the same
way that the CP/M command ERA does. In addition, the available
remaining CP/M diskette space is reported.
The general syntax of the CERA command is:
CERA (/disk type) CP/M file
disk type is the optional diskette tag as discussed earlier. CP/M
file refers to the CP/M file designator for the diskette drive con-
taining the CP/M diskette and the file(s) to be displayed. The
wildcard characters "*" and "?" are allowed in order that a group of
CP/M files may be specified.
Each file specified is erased by writing the hexadecimal character E5
as the first byte (user number) of the CP/M diskette directory entry.
The rest of the affected directory entry is left alone. Examples of
the CERA command are:
CERA A:*.*
Erase all files belonging to user 0, on drive A:.
CERA /A1 B*:*.DOC
Erase all files with an extension of DOC from all user numbers,
on drive B:. The source diskette is assumed to be in 8" SSSD
format.
CERA
Produces no action, but gives a synopsis of the CERA command syn-
tax.
Page 12
CFMT -- Format A CP/M Diskette
The CFMT utility formats blank CP/M diskettes. CFMT corresponds
directly to the CP/M FORMAT or NEWDISK command.
The general syntax of the CFMT command is:
CFMT (/disk type) CP/M unit name
Disk type is the optional diskette tag as discussed earlier. CP/M
unit name refers to the designator for the diskette drive containing
the diskette to be formatted.
Before a diskette is formatted by CFMT, a prompt is issued to the con-
sole in order to confirm that a diskette is to be reformatted. If the
letter "G" followed by the ENTER key is typed, a blank format pattern
is created on the designated diskette.
Examples of the CFMT command are:
CFMT /MOR1 A:
Format the diskette in drive A: with a format pattern suitable
for a Morrow MD1 computer system.
CFMT F:
Format the diskette in diskette unit F: with a format pattern
corresponding to whatever is specified by the CPMDISK environment
variable. If CPMDISK is not defined, CFMT will prompt for a dis-
kette type.
Page 13
Building Custom Diskette Definitions
As mentioned earlier, the file CPMDISKS.DEF contains definitions for
various common CP/M diskette types. This sections describes how you
can add your own definitions to this file for diskette formats not al-
ready present. This section requires some knowledge of CP/M disk
structure; it is not intended for the casual user.
The following is a typical diskette format definition:
BEGIN
SUP3 Superbrain QD -- DSDD 48 tpi 5.25"
DENSITY
MFM,LOW
COMPLEMENT
CYLINDERS
35
SIDES
2
SECTORS
10,512
SIDE1 0
1,3,5,7,9,2,4,6,8,10
SIDE2 1
1,3,5,7,9,2,4,6,8,10
ORDER
CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 169 DRM 63
AL0 080H AL1 00H OFS 2
END
Diskette definitions are keyword-oriented. That is, there are a few
words which have special meaning to the routines with interpret the
diskette definitions. Each keyword identifies the data which im-
mediately follows it.
The following rules of construction apply to a diskette definition:
(1) Definitions are not sensitive to alphabetic case; terms and
keywords may be in upper- or lower-case characters, or a
mixture of both.
(2) Spaces, tabs and line boundaries are treated as separators
between terms. In some cases, a comma is required as an ad-
ditional separator.
(3) A term must be completely contained on a single line; other-
wise, line boundaries are generally ignored. The only ex-
ceptions to this are the NOTE keyword, which causes the rest
Page 14
of the current line to be ignored, and the BEGIN keyword,
which uses the rest of the line following the diskette type
code or "tag" as a descriptive comment.
(4) Numbers may be expressed in decimal, hexadecimal or binary.
Decimal quantities are the default and are made up of digits
between 0 and 9 inclusive. Hexadecimal quantities may also
include the letters A through F, but must begin with a num-
ber. Hexadecimal quantities are denoted by a final "H".
Binary quantities are made up of the numbers 0 and 1 and are
denoted by a final "B". These are the same conventions as
those used in CP/M assembler coding.
(5) All-blank or empty lines are ignored and may be used freely
to enhance readability.
BEGIN signals the start of a definition. The first term following
this keyword is a one- to four-character diskette tag code by which
this definition may be accessed. The first character of this type
code must be alphabetic; the second character may be numeric or al-
phabetic. The remainder of the the line following the type code is
saved as commentary describing the diskette type.
DENSITY takes two terms, separated by a comma. The first term is
either MFM for a double-density diskette or FM for single density.
Your disk controller must be capable of supporting FM operation if the
FM density option is given. The second term is used to program the
diskette clock rate on AT-class machines. LOW signifies that a 250
Kbps data rate should be used; HIGH signifies that a 500 Kbps (HD den-
sity) data rate is to be used. When the PC-AT 1.2M 5.25" diskette
drive is being used, a data rate of LOW is taken to mean 300 Kbps in-
stead of 250 Kbps.
CYLINDERS specifies the number of cylinders contained in the diskette
format. If this number is less than 50, quad-density (80 track)
drives will be double stepped to go from cylinder to cylinder.
SKEW specifies the physical interleaving of sectors. This specifica-
tion is optional; if omitted a 1-to-1 physical interleave is assumed.
SIDES specifies the number of tracks or surfaces per cylinder. SIDES
may be either 1 or 2 for single- or double-sided media, respectively.
SECTORS specifies both the number of sectors per track (cylinder sur-
face) and the size of a sector. The sector count and the size terms
must be separated by a comma. SECTORS must precede SIDE1 and SIDE2 in
a definition.
Page 15
COMPLEMENT is used to denote certain formats which record data in
complemented or NOT-ed form. The primary offender in this area is the
Superbrain line. COMPLEMENT instructs 22DISK to complement data
before writing and after reading a CP/M diskette. If COMPLEMENT is
not used within a definition, normal true format recording is assumed.
ORDER instructs 22DISK as to the ordering of tracks on a double-sided
diskette. Most formats record first one side, and then the other
before moving to a new cylinder. However, some diskette formats,
notably CP/M-86 on the IBM PC, record all of the tracks on one side of
a diskette, then record the tracks on the other side in descending or-
der. To specify that the cylinder is incremented before the side, use
CYLINDERS after the ORDER keyword. To specify that the side is incre-
mented before the cylinder number, use SIDES after the ORDER keyword.
The default when ORDER is not specified is SIDES; that is, first one
side is recorded, then the other before the cylinder number is incre-
mented. ORDER has no effect on single-sided media.
SIDE1, which must follow the SECTORS specification, specifies the sec-
tor ordering on the first cylinder surface. CP/M 2.2 allows a
software interleave of sectors on a diskette; the terms given here
reflect that interleave. The first term after the SIDE1 keyword is
the logical side ID found in each ID address mark for that disk.
Usually, this number is 0 for the first side of a diskette and 1 for
the second side. Certain computers, however, deviate from this, as
shown by the Kaypro example above, where the second side also has a
side ID of 0. After the side ID, there follows a list of sector num-
bers in their CP/M ordering. Each number specifies the next logical
sector to be addressed. Sector numbers in this list must be separated
by commas; the number given must correspond to that stated in the
SECTORS specification.
SIDE2 is specified only if the diskette has two surfaces per cylinder.
The terms following SIDE2 are the same as those for SIDE1, except that
they define the sector addressing and ordering for the second surface
of the diskette.
LABEL is specified for diskette formatting only. The term following
the word LABEL is used as a file name with an implied suffix of .LBL.
When a diskette is formatted, the contents of this file are written to
the diskette, starting with the first sector. If the data length of
the file does not work out to be an integral multiple of the diskette
sector length, the last sector is filled to its end with the value of
the last byte read from the file. The LABEL feature may also be used
to enable one to create CP/M "system" diskettes.
The remainder of the keywords in the definition are taken from the
CP/M Disk Parameter Block for this diskette type. The CP/M System Al-
teration Guide presents details on the meaning of each field. A brief
description of each is presented here:
Page 16
BSH refers to the block shift or the number of left shifts needed
to translate an allocation block number to a relative sector
address.
BLM refers to the block mask or a bit mask of ones corresponding
to the number of bits specified by BSH. For example, if BSH
is 3, BLM is 7 (3 bits).
EXM refers to the extent mask or a bit mask of ones used in
delimiting extents, or groups of 128 128-byte records.
DSM refers to the total number of sectors present on a diskette.
This quantity, like all of the CP/M system variables, as-
sumes a 128-byte sector.
DRM refers to the total number of directory entries available on
a diskette. DRM is also related to the AL0 and AL1 fields.
AL0 and AL1 form a bit mask, beginning with the most significant
bit in byte AL0 and ending with the least significant bit in
AL1. These two bytes map the first 16 allocation blocks of
the disk. A 1 bit in a position indicates that an alloca-
tion block is reserved, usually for the directory (see DRM,
above).
OFS indicates the number of tracks that are used for storing the
CP/M system and BIOS at the beginning of a diskette.
SOFS indicates the number of sectors that are used for storing
the CP/M system and BIOS at the beginning of a diskette.
SOFS is used when the number of sectors used by the CP/M is
not an integral number of tracks, such as for the Coleco
Adam.
Every diskette definition must end with the END keyword, which follows
the OFS specification.
If the following Microsoft BASIC program is run on the host CP/M (8
bit) system, the values of the relevant DPB fields are displayed for
the currently logged-in drive:
100 REM PROGRAM TO DISPLAY A DEFAULT DPB
110 REM
120 REM FOR CP/M 2.2 ONLY
130 REM
140 DEF FNP(X) = PEEK(X) + 256*PEEK(X+1)
150 IF PEEK(0) <> 195 THEN PRINT "Requires CP/M" : STOP
160 PRINT "DPB VALUES FOR THE CURRENT DISK -- " : PRINT
170 REM
180 REM STUFF S$ WITH THE FOLLOWING PROGRAM -
Page 17
190 REM
200 REM PUSH H ; Save address of FAC-3
210 REM LHLD 1 ; Get BIOS Cold boot entry
220 REM MVI L,27 ; Change to SELDISK vector
230 REM LDA 4 ; Get current disk
240 REM MOV C,A
250 REM MVI A,PCHL ; for indirect call
260 REM STA 38H ; set in RST 7 vector
270 REM RST 7 ; call SELDISK
280 REM POP D ; FAC-3
290 REM XCHG
300 REM MOV M,E ; Store pointer to DPH
310 REM INX H
320 REM MOV M,D
330 REM RET ; exit...
340 REM
350 S$ = ""
360 READ SD : IF SD < 0 THEN 380 ' Read the USR code
370 S$ = S$ + CHR$(SD) : GOTO 360
380 SX = VARPTR(S$) +1
390 SR = FNP(SX)
400 DEF USR = SR ' User program set up
410 DPH = USR(0) ' Get DPH Pointer
420 IF DPH = 0 THEN PRINT "Select error" : STOP
430 SPT = FNP( FNP( DPH +10)) ' Get Sectors/Track
440 PRINT "Sectors per Track";TAB(30);SPT
450 IF FNP(DPH) = 0 THEN 510 ' if no interleave
460 PRINT " Sectors interleaved as follows:"
470 FOR I = 1 TO SPT
480 PRINT TAB(10); PEEK( FNP(DPH) + I-1)
490 NEXT I
500 PRINT : GOTO 520
510 PRINT " Sectors are not interleaved"
520 DPB = FNP(DPH+10)
530 PRINT "Block Shift (BSH)";TAB(30);PEEK(DPB+2)
540 PRINT "Block Mask (BLM)";TAB(30);PEEK(DPB+3)
550 PRINT "Extent Mask (EXM)";TAB(30);PEEK(DPB+4)
560 PRINT "Total Sectors (DSM)";TAB(30);FNP(DPB+5)
570 PRINT "Directory Entries (DRM)";TAB(30);FNP(DPB+7)
580 PRINT "Allocation 0 (AL0)";TAB(31);HEX$(PEEK(DPB+9));"H"
590 PRINT "Allocation 1 (AL1)";TAB(31);HEX$(PEEK(DPB+10));"H"
600 PRINT "Cylinder Offset (OFS)";TAB(30);PEEK(DPB+13)
610 PRINT
620 STOP
630 DATA 229,42,1,0,46,27,58,4,0,79,62,233,50,56,0
640 DATA 255,209,235,115,35,114,201,-1
650 END
Page 18
Some Hints on Developing a Definition
Quite frequently, the only information available when developing a
definition for 22DISK is a diskette with a few files and nothing more.
Here's a guide on what to do if you'd like to try working up a defini-
tion yourself:
1. Get a copy of Sydex's ANADISK. This utility will fur-
nish far more information than will any other program.
2. Run ANADISK on the diskette in SECTOR EDIT mode. Note
that the interleave (or SKEW) is given, as well as the
number, size and addresses of sectors. You then have
the figures for DENSITY, CYLINDERS, SIDES, SKEW SIDE1
and SIDE2.
3. Locate the directory on the diskette. Almost in-
variably, it starts on the first sector of a track. The
number of tracks up the point where the directory begins
will give the figure for OFS. The directory stands out
because it shows file names every 32 bytes, or every
other line on the ANADISK display.
4. Examine the first directory entry. The second 16 bytes
(the second line of the entry) gives a list of alloca-
tion unit numbers belonging to the file. The first one
of these will tell how many allocation units have been
reserved to hold the directory. Thus, if the first al-
location byte is 04, four allocation units have been al-
located to the directory. Another thing to note is
whether the allocation unit number appears to be an 8
bit or 16 bit quantity. For example, if an entry has
the following form:
00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 10 .PIP COM....
04 00 05 00 06 00 00 00 00 00 00 00 00 00 00 00 ................
the allocation unit designators are 4, 5 and 6 and are 16-
bit quantities. On the other hand, the following item:
00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 10 .PIP COM....
04 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
shows the same allocation units, but as 8-bit quantities.
If 16-bit quantities are involved, more than 255 allocation
units are defined for the diskette, if an 8-bit quantity,
less than 256 units. This serves as a check for later com-
putations. In any case, the first allocation number of the
first directory entry gives the number of bits to be set in
AL0 and AL1. Thus, for an allocation number of 04:
AL0 11110000B Al1 0
Page 19
5. Starting with the first directory sector, advance the sector
(and track, if necessary) until you find the data belonging
to the first file. Unused directory entries are almost al-
ways filled out with a pattern of E5's. The number of sec-
tors dedicated to the directory will give an indication of
both the number of directory entries and the allocation unit
size. Suppose that a our hypothetical diskette shows 16
sectors of 512 bytes allocated to the directory. Since a
directory entry is 32 bytes long, the number of directory
entries possible for this format is:
16 entries/sector X 16 sectors = 256 entries total
Thus, DRM is one less than this or 255. Since we know that
these 16 sectors represent 4 allocation units or 8,192
bytes, the allocation unit size is:
8,192 / 4 = 2,048 bytes
Given this, we can use the following table to compute the
values for BSH and BLM:
+------------+---------+----------+
| Unit Size | BSH | BLM |
+------------+---------+----------+
| 1,024 | 3 | 7 | +----------+
| 2,048 | 4 | 15 | ------+ This one |
| 4,096 | 5 | 31 | +----------+
| 8,192 | 6 | 63 |
| 16,384 | 7 | 127 |
+------------+---------+----------+
7. We still need a value for EXM and DSM. DSM is simply the
total number of allocation units on the diskette, not count-
ing the system OFS area. Let's assume that our diskette has
an offset of 2 tracks and is single-sided with 40 cylinders
with 8 sectors per track. The value of DSM is then:
((40 cylinders X 1 side) - 2 tracks) X 8 sectors X 512 bytes) =
155,648 bytes / 2,048 = 76 Allocation units, total
To get EXM, we then use the following table:
+------------+-----------+-----------+
| Unit Size | DSM < 256 | DSM > 255 |
+------------+-----------+-----------+
| 1,024 | 0 | na |
| 2,048 | 1 | 0 |
| 4,096 | 3 | 1 |
| 8,192 | 7 | 3 |
| 16,384 | 15 | 7 |
+------------+-----------+-----------+
Page 20
8. That's almost the complete picture, but for the SIDE1 and
SIDE2 sector ordering. This is the hardest to determine of
any of the parameters. Find a readable text file on the
diskette and piece the text back together by observing how
words break across sector boundaries. After a bit, a pat-
tern in the ordering will become apparent, such as:
1, 3, 5, 7, 2, 4, 6, 8
9. The ORDER value can be determined on double-sided diskettes
by observing whether file data appears to move from one
track to the next on the same side (CYLINDERS), or appears
to go from one side to the other and then advance to the
next cylinder (SIDES).
10. COMPLEMENT is rare. Generally, if a diskette appears to be
formatted with values of 1A instead of E5, the data on the
diskette is complemented.
Indexing A Large Definition File with GENINDEX
CPMDISKS.DEF as supplied with 22DISK has been indexed so that the en-
tire file does not need to be searched for the specified diskette
definition. CPMDISKS.DEF is also supplied in a non-indexed form as
CPMDISKS.NOI.
To generate an indexed definition file, the GENINDEX command is used
as follows:
GENINDEX source file destination file
where source file is the non-indexed input definition file and des-
tination file names the file which will contain the indexed defini-
tions.
An editable form of CPMDISKS.DEF may be had by using the utility
STRIPIDX to remove the index from a definition file:
STRIPIDX source file destination file
Diskette Densities and Recording Modes
The diskette has undergone quite a number of changes in its develop-
ment and 22DISK reflects some of these changes. This section dis-
cusses some of the terms used in connection with 22DISK definitions:
1. The physical size of the diskette. By and large, most dis-
kettes come in one of three sizes: 8, 5.25 or 3.5". The 8"
diskette is rare to find in use nowadays, but 22DISK is able
Page 21
to handle this format, given the appropriate hardware.
5.25" diskettes are the reigning media choice now, but may
soon be displaced by the 3.5" "micro" diskettes. There have
been other sizes, such as 3.25", but these have not enjoyed
much popularity.
2. Recording performed on both surfaces of the diskette. The
formats using only one surface are called single-sided,
those using both surfaces, double-sided. Double-sided
drives were rare until about 1978; now they are the rule,
rather than the exception.
3. The track density. An analogue to this would be to ask how
close the grooves on a phonograph record are. On 8" and
5.25" drives, a track packing density of 48 tracks per inch
is most commonly used, although some high-capacity 5.25"
drives double this for 96 tracks per inch (the PC AT's 1.2
megabyte drive is a 96 tpi drive). There was an alternate
5.25" standard in use between 1977 and 1980, 100 tracks per
inch, but it was always in the minority of applications.
3.5" diskettes use a track density of 135.5 tracks per inch.
4. The spindle speed, or how fast the diskette spins inside its
jacket. All 8" diskettes spin at 360 revolutions per
minute; almost all 3.5" diskettes spin at 300 rpm; the first
Sony drives spun at 600 rpm. Most 5.25" drives also spin at
300 rpm, with the exception of the PC AT 1.2 megabyte high-
capacity drive, which spins at 360 rpm.
5. The recording method used. Early diskette drives used a
method called FM, for frequency modulation, in which one
pulse per time period signified a zero bit and two pulses
signified a one bit. This is the method referred to as
single density. Later, a recording method called MFM, for
Modified FM came into popular use. This scheme uses a some-
what more complex encoding scheme dependent on the position
of a pulse within a bit time window and the value of the
last bit written. What MFM does is get twice the data rate
for the same bit rate, hence the term double density. Al-
most all modern diskette drives use MFM recording.
6. The bit rate at which data is read or written. The data
rate for low-density 5.25" diskettes are recorded is 250,000
bits per second. The PS/2 and PC AT high-density formats
make use of a data rate of 500,000 bits per second. 8" for-
mats generally make use of a 500,000 bit per second data
rate. The PC AT 1.2 megabyte high-capacity drive uses a
data rate of 300,000 bits per second to record 360K dis-
kettes because of its higher spindle speed:
Page 22
360 rpm
---------- X 250,000 bps = 300,000 bps
300 rpm
7. The sector demarcation method used. All modern diskettes
use unique data patterns to show where a sector begins and
ends on a track. On some older systems, however, additional
index holes were used to mark sector boundaries--known as
"hard" sectoring. 22DISK does not support hard sectored
formats.
The common PC XT diskette controller is able to handle single- and
double-sided, double-density diskettes. The common PC AT diskette
controller possesses a variable-rate bit clock generator for 250,000,
300,000 and 500,000 bits per second to handle double density diskettes
in both 8", 5.25" and 3.5" sizes, as well as high-density diskettes in
the 5.25" and 3.5" profiles.
If there is a need to handle single-density diskettes in a 5.25" form
factor, a PC XT clone controller can easily be modified to do so, at
no loss of normal functioning. The next section shows how.
Modifying A PC-XT "Clone" Controller For Single-Density Reading
Got a bunch of Xerox 820 diskettes that you'd love to be able to read?
Sold your Osborne I at a swap meet and need your correspondence files
from 1981? Too bad, your PC can't handle single-density diskettes...
Or can it?
Well, it can be done with a little patience, a few bits of wire, and a
small soldering iron. The result is a controller that remains PC-
compatible as far as any DOS software can tell, but has an extra FM
mode in addition.
Do not attempt this modification unless you really know what you're
doing and have worked with this kind of equipment before. This is no
place for a novice.
First, you need to determine the type of controller you're using. The
original IBM PC and PC/XT controllers are NOT readily adaptable, but
most inexpensive clones are.
The important thing to locate on the controller card is the data
separator chip; it's an 8-pin DIP. It looks something like this:
Page 23
+--U--+
Pin 1 | | Pin 8
Pin 2 | | Pin 7
Pin 3 | | Pin 6
Pin 4 | | Pin 5
+-----+
(Top View)
This DIP (Dual Inline Package) will have pins 4, 5 and 6 grounded and
pin 8 connected to the +5 supply trace. Numbering of this device
varies -- Western Digital (the prime source) has it as a WD 9216; a
NEC part number is UM 8326. But it's all the same as far as we're
concerned.
Identify the diskette controller chip on your board -- this is the
large 40 pin DIP labeled uPD765A (NEC), Z765A (Zilog), or 8272A
(Intel). Note that pin 26 is a no-connection on your card -- this is
the MFM/FM mode output pin.
The last thing you need to find is an unused inverter section. This
is the most difficult part of this whole modification. Most cards use
a SN7404 or 'S04 as an oscillator (look near the crystal). Usually,
not all sections are used. Or look for a section of an 'LS00 gate or
some such thing that can be wired as an inverter (Hint: tie both in-
puts together).
You need to lift pin 5 of the 8-pin data separator (above) from
ground. Depending on how your card is laid out, this can be quick and
simple (cut the ground trace) or very messy (unsolder the whole chip).
Connect a wire (wire-wrap wire is great) between this pin 5 and the
output of the inverter which you located. Connect a second wire be-
tween pin 26 of the floppy disk controller (uPD 765) and the input of
the inverter.
That's it -- put the card back into your PC and make sure it still
handles regular DOS diskettes okay.
If you've got an AT-style controller or a Western Digital 'Fox' dual-
density XT controller, you can even drive SD and DD 8" diskettes with
this modification.
Note that this simple modification will enable you to read single-
density diskettes, but not to write them. If you're really adven-
turous, an XT-style controller can be made to write diskettes if the
write-precompensation circuitry is bypassed. We do it here with a
section of a 74LS157 driven from the MFM pin of the '765. A schematic
of your controller is a must for this kind of work.
Page 24
In Closing
Thank you for taking the time to consider Sydex. We hope that 22DISK
does its job well and that it meets your needs. This product repre-
sents several months of work and research; if you have any suggestions
on how it might be improved, please let us know.
Page 25
Other Sydex Products
SHAREWARE
CON>FORMAT -- Concurrent "background" diskette formatter. Fea-
tures "pop-up" operation and "hot key" activation. You've got to
see it to believe. Supports all current DOS formats. $15.00
($50.00 site) registration fee.
22DISK -- Transfer files, format, examine and erase files on
"foreign" CP/M diskettes on your PC. Includes tips on supporting
8" and 5.25" single-density diskettes. Contains definitions for
over 200 different formats. $25.00 ($100.00 site) registration
fee.
22NICE -- A CP/M 2.2 emulation package. Supports the NEC
V-series chips or performs emulation by software for both the
8080 and Z80 processors. Includes terminal emulation and dis-
kette handling for common CP/M systems. Includes 22DISK. $40.00
($150.00 site) registration fee.
ANADISK -- The compleat diskette utility. Nothing like it
anywhere else; scan, edit, repair and copy just about any kind of
diskette. $25.00 ($150.00 site) registration fee.
TELEDISK -- Turn any diskette into a compressed data file and
vice-versa. Allows you to send and receive entire diskettes via
modem. Even works with some "copy-protected" diskettes. $20.00
($150.00 site) registration fee.
COPYQM -- Mass diskette duplicator. Format, copy and verify mul-
tiple diskettes from a single master. Implements "no keyboard"
interaction mode and drive "round robin" servicing. Supports all
standard DOS formats. $15.00 ($50.00 site) registration fee.
FORMATQM -- Mass diskette formatter - format a box of diskettes
at a single sitting. Implements "no keyboard" interaction mode
and drive "round robin" servicing. Supports all standard DOS
formats. $10.00 ($40.00 site) registration fee.
RETAIL SOFTWARE
SIM-CGA 4.2 -- Color Graphics Adapter simulation on monochrome
(Hercules-compatible) graphics-equipped machines. Available from
better software retailers and distributed by CSS, ABCO and
American Software Distributors.
SIM-EMS -- Simulate Lotus/Intel/Microsoft Expanded Memory on PC-
AT class machines. Conforms to EMS 4.0 specification. Dis-
tributed by CSS and ABCO.
Page 26
;* Program to display DPB information on CP/M 2.2
;
; For those systems without MS BASIC
;
bdos equ 0005h ; BDOS call vector
wboot equ 0000h ; Warm boot vector
cdisk equ 0004h ; current disk
tpa equ 0100h ; TPA start
cr equ 13 ; return
lf equ 10 ; line feed
bel equ 7 ; bell
org tpa
GetDPB:
call Strout
db cr,lf,' Parameters for Drive ',0
lda cdisk
ani 15
adi 'A'
call chout ; give a drive letter
call Strout
db ':',cr,lf,lf,0 ; skip a line
lda cdisk
mov c,a
lhld wboot+1
mvi l,27 ; point to seldisk
call Indcall ; go call (seldisk)
mov a,h
ora l
jnz GetDPB2 ; if okay
call Strout
db cr,lf,bel,'Select error',cr,lf,0
jmp wboot ; exit...
GetDPB2:
shld DPHaddr ; save DPH address
lxi d,10
dad d
mov e,m
inx h
mov d,m ; get DPB address
xchg
shld DPBaddr ; save DPB address
; Show sectors/track.
call Strout
db 'Sectors per Track............',0
mvi a,0
call GetField ; get a field from the DPB
shld SectTrk ; save it
call ShowDec ; show it
; If there's a translate table, show it.
lhld DPHaddr
mov e,m
inx h
mov d,m
mov a,d
ora e
jz GetDPB6 ; if none..
call Strout
db cr,lf,'Sectors interleaved as follows:',0
lhld SectTrk ; get Sectors/track
mov b,h
mov c,l
GetDPB4:
call Strout
db cr,lf,' ',0 ; indent
ldax d ; get a sector
push h
mov l,a
mvi h,0
call ShowDec ; show it
pop h
dcx b
mov a,b
ora c
jnz GetDPB4 ; loop...
jmp GetDPB8 ; do the rest...
GetDPB6:
call Strout
db cr,lf,'Sectors are not interleaved',0
; Show the rest of the fields.
GetDPB8:
call Strout
db cr,lf,'Block Shift (BSH)............',0
mvi a,2
call GetField
mvi h,0
call ShowDec
call Strout
db cr,lf,'Block Mask (BLM).............',0
mvi a,3
call GetField
mvi h,0
call ShowDec
call Strout
db cr,lf,'Extent Mask (EXM)............',0
mvi a,4
call GetField
mvi h,0
call ShowDec
call Strout
db cr,lf,'Total Blocks (DSM)...........',0
mvi a,5
call GetField
call ShowDec
call Strout
db cr,lf,'Directory Entries (DRM)......',0
mvi a,7
call GetField
call ShowDec
call Strout
db cr,lf,'Allocation 0 (AL0)...........',0
mvi a,9
call GetField
mvi h,0
call ShowHex
call Strout
db cr,lf,'Allocation 1 (AL1)...........',0
mvi a,10
call GetField
mvi h,0
call ShowHex
call Strout
db cr,lf,'Cylinder Offset (OFS)........',0
mvi a,13
call GetField
call ShowDec
call Strout
db cr,lf,lf,0 ; done...
jmp wboot ; exit...
;* Indirect call to (hl).
;
; Simple, yet effective.
;
Indcall:
pchl ; jmp to (hl)
;* GetField - Get a DPB field into (hl)
;
; (a) = offset on entry.
;
GetField:
push d
lhld DPBaddr
mov e,a
mvi d,0
dad d
mov e,m
inx h
mov d,m
xchg
pop d
ret
;* Chout - Character in (a) to console output.
;
; Preserves all but (a)
;
Chout:
push h
push b
push d
mov e,a
mvi c,2
call bdos ; issue a console-out
pop d
pop b
pop h
ret
;* Strout - Output a string following the call to this routine.
;
; preserves all.
;
; String is null-terminated.
;
Strout:
xthl ; get return in (hl)
push psw ; save (a)
Strout2:
mov a,m
inx h
ora a
jz Strout4 ; if done...
push d
push b
push h
mov e,a
mvi c,2 ; console out
call bdos
pop h
pop b
pop d
jmp Strout2
Strout4:
pop psw
xthl
ret ; exit...all regs preserved
;* ShowDec - Show (HL) as a decimal number.
;
; Output to the console; blank leading zeroes.
;
ShowDec:
push h
push d
push b
push psw
lxi d,DecTable ; get powers table
xchg
mvi c,0 ; say blanking
ShowDec2:
mov a,m
ora a ; see if last digit
jz ShowDec8 ; if so
mvi b,0
ShowDec4:
inr b
mov a,e
sub m
mov e,a
inx h
mov a,d
sbb m
mov d,a
dcx h
jnc ShowDec4 ; if oversubtract
; correct oversubtract.
mov a,e
add m
mov e,a
inx h
mov a,d
adc m
inx h
mov d,a
dcr b
jz ShowDec6 ; if a zero
mvi c,1
ShowDec6:
inr c
dcr c ; check (c)
jz ShowDec2 ; loop to next digit
mov a,b
adi '0'
call chout ; character out
jmp ShowDec2 ; to next digit
; Do the last digit - do not blank.
ShowDec8:
mov a,e
adi '0'
call chout
pop psw
pop b
pop d
pop h
ret
DecTable:
dw 10000,1000,100,10,0 ; powers of 10
;* ShowHex - Show a string of hex digits.
;
; On entry (HL) = value.
;
; Output is to console, leading zeroes blanked.
;
ShowHex:
push h
push d
push b
push psw
lxi b,0400h ; 4 digits + blank indicator
ShowHex2:
xra a
dad h
ral
dad h
ral
dad h
ral
dad h
ral ; isolate a digit in (a)
ora a
jz ShowHex4 ; if zero
mvi c,1 ; say nonzero
ShowHex4:
adi '0' ; bias for ASCII
cpi '9'+1
jc ShowHex6 ; if 0-9
adi 'A'-'9'-1 ; make digits
ShowHex6:
dcr b
jz ShowHex8 ; if last digit
inr c
dcr c
jz ShowHex10 ; skip the leading zero
ShowHex8:
call chout
ShowHex10:
inr b
dcr b
jnz ShowHex2 ; if not done yet
pop psw
pop b
pop d
pop h
ret ; exit...
DPBaddr dw 0 ; address of DPB
DPHaddr dw 0 ; address of DPH
SectTrk dw 0 ; sectors/track
end GetDPB
Sydex
22NICE
A New Insystem CP/M Emulator
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
Data: (503) 683-1385
Table of Contents
22Nice, Briefly..............................................1
Quick Installation And Operation of 22Nice...................1
If You're Upgrading..........................................2
How 22Nice Works.............................................3
The GENCOM Utility--Generate A Loader........................4
Specifying a Custom Keyboard Layout..........................8
Running 22NICE.COM..........................................11
Support of User Areas.......................................12
CSAVE - Write the CP/M Area to Disk.........................12
Disk Drive Reassignment.....................................13
Locating CP/M Program Files.................................14
Interrupts and 22Nice.......................................14
Setting GENCOM Defaults.....................................15
Use Of CP/M SUBMIT And XSUB.................................16
Accessing I/O Ports.........................................16
Accessing PC Memory.........................................17
IOBYTE Support..............................................17
Absolute Disk Read and Write................................18
Maximum Program Size........................................18
A Sample 22Nice Installation................................18
A Short Glossary of CP/M Terms..............................19
What's New in Version 1.3...................................21
The Sydex Product Line......................................22
22NICE
A New Insystem CP/M 2.2 Emulator
Version 1.3, July, 1990
Copyright 1985-1990, Sydex
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
Data: (503) 683-1385
All Rights Reserved
NOTICE
THIS IS NOT FREE SOFTWARE! If you paid a "public domain" vendor
for this program, you paid for the service of copying the
program, and not for the program itself. Rest assured that noth-
ing ever gets to the originators of this product from such a
sale. You may evaluate this product, but if you make use of it,
you must register your copy.
We offer several inducements to you for registering. First of
all, you receive the most up-to-date copy of the program that we
have -- and we do update the product on a regular basis. You
also receive support for 22Nice -- which can be quite valuable at
times. And finally, we have a few utilities not included in the
evaluation package. Make no mistake, however - the evaluation
version is fully functional and not "crippled" in any way.
Registration Information
The non-commercial single-user registration fee for 22Nice is
$40.00 US, which includes a copy of 22Disk, our CP/M diskette
transfer utility. The commercial and multisystem site fee for
22Nice (including 22Disk) is $150.00.
Send your payment to:
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
We can accept telephone or FAX orders and honor VISA and Master-
Card charges, as well as corporate and government purchase or-
ders. All payments must be made in U.S. dollars. Orders from
outside the U.S. and Canada should include an additional $5.00
for airmail shipping. Please indicate if you have a requirement
for 3.5" media; we normally ship 5.25" 360K diskettes, but will
furnish 3.5" 720K media upon request.
If you are a registered user of this product and desire an up-
date, please send $5.00 for handling and we will ship you an up-
to-date copy. Please add $7.50 if you also need printed documen-
tation to cover our printing costs. You may also download a
registered copy from our bulletin board system; you'll need the
five-digit number from your invoice for validation. Our bulletin
board system operates 24 hours per day, 365 days a year and sup-
ports data rates from 1200 to 9600 bits per second, no parity, 8
data bits.
Distribution Notice
This is "user-supported" software. You are hereby granted a
license by Sydex to distribute this evaluation copy of 22Nice and
its documentation, subject to the following conditions:
1. 22Nice may be distributed freely without charge in
evaluation form only.
2. 22Nice may not be sold, licensed, or a fee charged for
its use. If a fee is charged in connection with
22Nice, it must cover the cost of copying or dissemina-
tion only. Such charges must be clearly identified as
such by the originating party. Under no circumstances
may the purchaser be given the impression that he is
buying 22Nice itself.
3. 22Nice must be presented as a complete unit, including
this documentation. Neither 22Nice nor its documenta-
tion may be amended or altered in any way.
4. By granting you the right to distribute the evaluation
form of 22Nice, you do not become the owner of 22Nice
in any form.
Any other use, distribution or representation of 22Nice
is expressly forbidden without the written consent of
Sydex.
1
--------------------
1. CP/M, CP/M-80 and CP/M 2.2 are trademarks of Digital Research.
MS-DOS is a trademark of Microsoft. IBM PC, PC-XT and PC-AT are
trademarks of International Business Machines. V20, V30,
uPD70108, uPD70116 are trademarks of NEC Electronics. WordStar
is a trademark of WordStar Corporation. Some products of Lear-
Siegler, Kaypro, Osborne and Televideo are also trademarked.
Getting Started
____________________________________________________
22Nice, Briefly
22Nice is a Z80/8080 CP/M 2.2 emulator for use on PC-compatible
computers. The 22Nice CP/M Emulation package offers the follow-
ing features:
* Emulate 8080/8085/Z80 processors with or without NEC
V-series chip installed. 22Nice contains an emulator
for both 8080 and Z80 processors. 22Nice also has a
test mode, which allows identification of the ap-
propriate processor needed for emulation.
* Provides terminal emulation for most common CP/M
machines with terminal types for Osborne, Kaypro,
Heath/Zenith, Morrow, Actrix, DEC VT-100/VT-52,
Televideo 925/950 and LSI ADM-3A.
* Supports CP/M user number to DOS sub-directory transla-
tion.
* Allows use of DOS "pipes" and utilities with CP/M
programs.
* Supports a complete set of BDOS and BIOS function inter-
faces, including direct disk read/write.
* CP/M programs are fully integrated into the DOS environ-
ment; the user is unaware that a program is CP/M- or
DOS-based.
Quick Installation And Operation of 22Nice
NOTE: If you're upgrading from a version of 22Nice earlier than
1.3, consult the next section on special upgrade considerations.
There are quite a number of differences between Version 1.3 and
earlier versions of 22Nice.
The following files should be present on your 22Nice distribution
diskette or archive file:
22NICE.COM The emulator program itself
GENCOM.COM Execution environment specifier
CSAVE.COM Analog to CP/M SAVE function
Page 1
Getting Started
____________________________________________________
USERS.EXE Shows user-to-directory mapping
22NICE.DOC Printable documentation file for 22Nice
WHATS.NEW Latest bulletin on 22Nice enhancements
To use 22Nice, you'll need to do the following:
1. Copy the contents of the 22Nice distribution diskette
or archive file into a subdirectory, preferably located
on a hard drive.
2. Copy the CP/M program files that you want to execute
into this directory, changing the .COM file type to
.CPM. If you've used our 22Disk diskette transfer
utility to read your program files from your CP/M dis-
kettes, the .COM file types have already been changed
to .CPM. Otherwise, a simple way to change names is to
use the following DOS command:
REN *.COM *.CPM
3. Run the GENCOM utility for all .CPM files, specifying
the console, keyboard and processor type. For example,
a WordStar-type keyboard layout with a Kaypro-type dis-
play can be done thus:
GENCOM * DIS=KAY KEY=WS
The GENCOM utility has many options to modify 22Nice
operation; refer to the GENCOM section later in this
document for more details.
4. Run the CP/M program(s) as if they were normal DOS
programs!
That's all there is to it--but there are many special features of
22Nice that you'll undoubtedly want to take advantage of--so keep
reading!
If You're Upgrading...
If you're upgrading from an earlier version, there are some dif-
ferences between the current version of 22Nice and previous ver-
sions that you should know about:
Page 2
How 22Nice Works
____________________________________________________
1. The device-driver form of 22Nice (22RES.SYS) has been
discontinued. The terminate-and-stay-resident form of
22Nice takes its place.
2. The BIND option of the GENCOM utility has been discon-
tinued. The difference in loading time between the
separate and the "bound" versions of a program were neg-
ligible.
3. Interface conventions between the 22Nice resident and
GENCOM-produced programs have changed. You'll have to
re-GENCOM your programs.
4. The RMVNICE program has been moved into the 22NICE.COM
resident.
5. The default processor mode for GENCOM is now Auto.
6. Two environment variables have been introduced to
simplify specification of defaults: GENCOM and 22NICE.
7. The support of user areas has been greatly enhanced.
8. All file functions are now performed using DOS handle-
type I/O rather than FCB-type I/O.
How 22Nice Works
In addition to supporting the functions of the CP/M operating sys-
tem under DOS, 22Nice supports the instruction set of a
microprocessor different from that used in the IBM PC. On PC XT-
type machines, this microprocessor support function can be be
facilitated through a plug-in replacement processor to the Intel
8088, known as the NEC V20. But in the case of PC AT- and 386-
class systems, emulation of the 8080 or Z80 processor must be per-
formed by 22Nice. All emulation is implemented in a single
program, 22NICE.COM.
22NICE.COM may be loaded "on demand" by CP/M programs, or may be
run as a terminate-and-stay-resident program.
Page 3
How 22Nice Works
____________________________________________________
CP/M programs are executed by having DOS first execute a short
"loader" program, which provides information to 22Nice about the
program to be executed. In addition, the "loader" executes the
22NICE.COM program if necessary.
As implemented, a CP/M executable file normally has a file name
extension of .COM. However, this creates problems by conflicting
with DOS .COM-type programs. Because DOS does little checking
on the contents of .COM files, executing a CP/M .COM file under
DOS could lead to disaster. By renaming all CP/M .COM files to
.CPM the conflict is resolved. As part of CP/M emulation, 22Nice
changes all CP/M .COM file references to .COM and vice-versa, so
that the name change is transparent.
The short "loader" for each CP/M program is a DOS-mode program
with the .COM file type. This short (about 500 bytes) program
contains the following information:
* The name of the CP/M program to be run.
* The type of microprocessor to be emulated--8080 or
Z80--and if a NEC V20 can be used, if available.
* The type of terminal display to be emulated. Unlike
DOS, CP/M usually provides only a simple terminal-style
display rather than the full-screen text and graphics
display of the PC. However, each manufacturer's CP/M
system differed in the type of terminal supported.
* How the cursor and function keys are to be translated.
One CP/M program may require a WordStar type of
keyboard mapping, while another could require a Perfect
Writer style of keyboard.
All of this information is provided by the output of the GENCOM
utility as a very small .COM-type file.
The GENCOM Utility--Generate A Loader
At this point, it's assumed that you've gotten your CP/M files
over to your PC somehow. Remember that CP/M program files with
an extension of .COM need to be renamed to have an extension of
.CPM. The 22Disk diskette conversion package does this automati-
cally, but if you've used some other means to obtain your files,
you'll need to rename them manually.
Page 4
GENCOM Operation
____________________________________________________
The GENCOM utility is used to create a .COM file which can be ex-
ecuted by DOS for each .CPM file. This .COM file interfaces with
the 22NICE.COM support program and brings the associated CP/M
program into execution.
The syntax of the GENCOM command is as follows:
GENCOM file DISPLAY=dtype KEYBOARD=ktype PROCESSOR=ptype
"file" is the name of the CP/M program file to be executed,
and is specified without a file extension. DOS path
names are allowed as well as "wildcard" file specifiers
(i.e., "*" and "?"). All .CPM files matching the file
specification will be processed by GENCOM and the .COM
files which are generated will be placed in the same
directory as the original .CPM files.
DISPLAY=dtype is optional and may be omitted. If specified,
it indicates the type of console display to be emu-
lated. Any of the following may be specified for
dtype:
NONE uses DOS character I/O for output. No special han-
dling of characters is performed. If the DISPLAY
expression is omitted, this is the default. If
program output is to be "piped" to another program
or file, NONE must be used.
TVI emulates a Televideo 925/950 series terminal.
ADM emulates a Lear-Siegler ADM-3 or ADM-31 type ter-
minal.
OSBORNE emulates the display on an Osborne I/II/Nuevo
computer.
KAYPRO emulates the display on a Kaypro I/II computer.
ANSI or VT100 emulates an ANSI (DEC VT-100) display.
VT52 emulates a DEC VT-52 display.
H19 emulates a Heath/Zenith H19/Z19 or H89/Z89 display.
Page 5
GENCOM Operation
____________________________________________________
DISPLAY may be abbreviated as DIS. Certain display-specific
features cannot be accommodated by 22Nice, such as the 132-
column mode of a VT-100 terminal.
KEYMAP=ktype is optional and specifies the map for the con-
sole keyboard. Any of the following may be specified
for ktype:
NONE uses DOS for input. No special handling of
keyboard characters is performed. If the KEYMAP
expression is omitted, this is the default. If
keyboard input is to be "piped" from another
program, this option must be used.
H19 emulates the Heath/Zenith H19/Z19/H89/Z89 keyboard.
ANSI emulates a VT-100-style keyboard.
WS implements a WordStar cursor keyboard mapping.
TVI emulates a Televideo 925/950-series keyboard.
OSBORNE emulates an Osborne 1 keyboard in non-WordStar
mode.
Anything else indicates a custom keyboard map is to be
used and the value given is the name of the file
containing the keyboard information. See the sec-
tion entitled Defining Custom Keyboards for more
information.
KEYBOARD may be abbreviated as KEY.
PROCESSOR=ptype is optional and specifies the processor
emulation type required for this program. Any of the
following may be specified for ptype:
AUTO indicates that 22Nice begins execution in emulated
Intel 8080 mode and switches to Zilog Z80 emula-
tion if a Z80-specific instruction is encountered.
If PROCESSOR is not specified, it defaults to
AUTO.
Page 6
GENCOM Operation
____________________________________________________
V20 indicates that 22Nice should use the hardware emula-
tion capabilities of the NEC V20 or V30 processor,
if one is installed in this computer. If no V20
or V30 processor can be found, an 8080 software
emulator will automatically be used.
E8080 specifies that 22Nice should emulate the Intel
8080 processor, even if a NEC V20 or V30 is
detected. E8080 is somewhat faster than Z80 emula-
tion mode.
Z80 specifies that 22Nice should use a Z80 software
emulation. Note that the NEC V20 and V30
microprocessors do not support the extended in-
struction set of the Z80 processor.
TEST specifies that 22Nice should emulate the Z80 in-
struction set and observe the execution of the cur-
rent program. At the conclusion of program execu-
tion, 22Nice will report the following informa-
tion:
* If any Z80-specific instruction codes were
executed. If this is noted, PROCESSOR=Z80
should be used for further program execution.
* Any use of I/O instructions. If these are
present, the program should be examined and
the instructions modified or eliminated to
be compatible with the PC hardware.
* Presence of code likely to activate one of
the V20 bugs. If a message indicating this
is present, a software emulation (E8080 or
Z80) should be selected.
Hardware-supported emulation (V20) results in the
fastest execution speed for a program. 8080
software emulation (E8080) is approximately 4
times slower, with Z80 software emulation (Z80)
about 6 times slower than V20/V30 supported
hardware emulation. On PC-AT- or 386-class
machines, the software emulation modes compare
favorably with a PC-XT class machine using a V20
processor.
Page 7
GENCOM Operation
____________________________________________________
PROCESSOR may be abbreviated as PRO.
Here are some examples of the GENCOM command:
GENCOM DDT PRO=V20
Builds a loader file, DDT.COM. If a V20 is present, its emula-
tion capabilities will be used. Otherwise, 8080 software emula-
tion will be performed. Standard DOS input and output will be
performed.
GENCOM * KEY=WS DIS=ANSI
Builds .COM loader files for all .CPM files present in the cur-
rent directory. AUTO processor mode is assumed. A special
WordStar keyboard mapping will be used; console output will emu-
late a standard ANSI terminal.
GENCOM F:\CPM22\* PRO=Z80
Builds .COM loader files for every .CPM file present in the direc-
tory F:\CPM22. Z80 software emulation will be performed and stan-
dard DOS input and output will be used.
GENCOM MYPROG PRO=TEST
Builds a .COM loader file, MYPROG.COM. Z80 software emulation is
used and a message will be displayed if any Z80-only instructions
are used. In addition, any code likely to run afoul of V20 bugs
will be noted, as well as usage of any I/O instructions.
GENCOM
Displays a summary of GENCOM command syntax.
Specifying a Custom Keyboard Layout
In addition to several pre-defined keyboard layouts, a custom-
tailored keyboard "map" can be specified for individual
programs. No longer is it necessary to remember that "cursor
Page 8
Custom Keyboard Definition
____________________________________________________
back" is Control-B for Perfect Writer, but Control-S for
WordStar--a separate keyboard "map" can be created for each
program.
A keyboard map affects only the cursor keypad and the function
keys; "normal" keys, (i.e., letters, numbers and symbols) cannot
be mapped. To define a set of key mappings, a file must first
be created (using any convenient ASCII editor) containing lines
of the following form:
key-name "key-values"
Key-name is the name of the key being mapped and may be one of
the following:
F1, F2, F3...F10 Function keys F1 through F10
SF1, SF2, SF3...SF10 Function keys Shift-F1 through Shift-F10
AF1, AF2, AF3...AF10 Function keys Alt-F1 through Alt-F10
CF1, CF2, CF3...CF10 Function keys Ctrl-F1 through Ctrl-F10
Up, CUp Keypad up-arrow, Ctrl-up-arrow
Down, CDown Keypad down-arrow, Ctrl-down-arrow
Left, CLeft Keypad left-arrow, Ctrl-left-arrow
Right, CRight Keypad right-arrow, Ctrl-right-arrow
Home, CHome Keypad Home, Ctrl-Home
End, CEnd Keypad End, Ctrl-End
PgDn, CPgDn Keypad PgDn, Ctrl-PgDn
PgUp, CPgUp Keypad PgUp, Ctrl-PgUp
Ins, CIns Keypad Ins, Ctrl-Ins
Del, CDel Keypad Del, Ctrl-Del
Break Scroll Lock
The key-values part of the definition represents the codes to be
generated for each key; note that the key-values are enclosed in
double quotation marks. As many values as can fit on a 255-
character line may be specified. Commentary can be placed on a
line after the closing quotation mark, provided that at least one
space follows the quotation mark.
Lines beginning with an asterisk (*) are ignored and may be used
for commentary.
Control characters are specified by preceding the corresponding
printing character by the caret (^). Thus, ^C generates a
Control-C or ASCII value of 03. A carriage return or Enter
Page 9
Custom Keyboard Definition
____________________________________________________
character is represented by ^M. A double-quotation mark is repre-
sented by a pair of double quotation marks (""); a caret (^) is
represented by a double-quotation-mark-caret sequence ("^).
A keyboard mapping file to be used by a CP/M program is specified
with the KEYBOARD= parameter in the GENCOM command. GENCOM as-
sumes that the file type of a keyboard mapping definition file is
.KEY, but another extension may be specified explicitly.
Let's try an example:
Suppose that we want to provide a cursor keypad and
simple function key map for WordStar. We first create
a file (using either WordStar's nondocument mode or the
DOS EDLIN utility) called STAR.KEY with the following
contents:
Up "^E" Line up
Down "^X" Line down
Right "^D" Character right
Left "^S" Character left
PgUp "^R" Page up
PgDn "^C" Page down
Home "^QR" Start of document
End "^QC" End of document
Ins "^V" Toggle insert mode
Del "^G" Delete character
F1 "^J" Help
F2 "^PS" Start/Stop underline
F3 "^PB" Start/Stop Bold
F4 "^PI" Start/Stop Italic
F5 "^KB" Start block
F6 "^KK" End block
F7 "^KV" Move block
F8 "^KC" Copy block
F9 "^KS" Save file, continue edit
F10 "^KD" Save file
Suppose also that our copy of WordStar requires a
TeleVideo 925 terminal for display. The GENCOM com-
mand to produce our WordStar WS.COM loader file is:
GENCOM WS DIS=TVI925 KEY=STAR
Page 10
Running 22NICE.COM
___________________________________________________
Note that a keyboard mapping file should not have the
same name as one of the pre-defined maps that GENCOM
supports. This is why the mapping file just defined was
not called WS.KEY--GENCOM already has a predefined map
named WS.
The contents of the keyboard mapping file are included in the
.COM loader generated by GENCOM; use of a keyboard mapping file
increases the length of a .COM loader file by 256 bytes.
Running 22NICE.COM
22Nice's support routine, called 22NICE.COM, provides all of the
emulation and CP/M support facilities needed to execute a CP/M
program under DOS. 22NICE.COM can be run in two ways:
1. As a program that is loaded automatically every time a
CP/M program is executed. When the CP/M program has
completed executing, 22NICE.COM is removed from memory.
This mode of operation suits most applications. It is
only necessary that the file 22NICE.COM be placed where
it can be accessed as a normal DOS program. On most
systems, this will be in the subdirectory usually
called \DOS. However, 22NICE.COM may also be placed in
the same directory used to store CP/M programs to be
run.
2. As a "terminate and stay resident" (or TSR) program.
In this operating mode, 22NICE.COM is loaded explicitly
by entering the DOS command:
22NICE
22NICE.COM will load and stay resident until explicitly
removed with the command:
22NICE OUT
This operating mode is most useful when the CSAVE com-
mand is used to save the contents of the CP/M memory
area for later inspection. Like the load on demand
mode, the file 22NICE.COM must be placed where it is
Page 11
User Area Support
___________________________________________________
accessible as a normal DOS command file. While
22NICE.COM is resident in memory, it occupies about
23K.
CP/M program operation in either mode is the same; to execute a
CP/M program, simply type its name as if it were a DOS program.
Support of User Areas
CP/M implements the capability to segment a file directory into
numbered "user areas". Files created in one user area are not
visible to another. DOS departs from CP/M in this area and imple-
ments subdirectories, or "files of files".
22Nice provides a simulation of user areas by mapping DOS sub-
directories to CP/M user area numbers. The mapping information
is supplied by a set of DOS environment variables, defined by the
DOS SET statement.
As an example, let's "map" the DOS subdirectory \MYCODE to CP/M
user 2. To do this, the following DOS statement is used:
SET USER2=\MYCODE
All accesses by a CP/M program to user area 2 will result in ac-
cessing the DOS subdirectory \MYCODE on the current disk. Up to
31 user areas can be defined, but user area 0 is predefined to be
the current (default) directory. That is, the DOS environment
variables USER1 through USER31 may be used.
The command USERS can be used to show what user areas are
defined. The syntax of this command is:
USERS
A display of user area-to-DOS subdirectory correspondence will be
displayed.
CSAVE - Write the CP/M Area to Disk
22Nice provides an analog to the CP/M SAVE command, called CSAVE.
The syntax of CSAVE is identical to its CP/M counterpart, namely:
Page 12
Miscellaneous Topics
____________________________________________________
CSAVE page-count file-name
Page-count is the decimal count of 256-byte pages to be saved to
file-name, beginning with the first byte of the transient program
area (TPA), located at 100 (hexadecimal). Up to 255 pages can be
written in this manner.
For CSAVE to operate, 22NICE.COM must have been run in the
terminate-and-stay-resident operating mode.
Disk Drive Reassignment
Most CP/M programs can be reconfigured to make use of any combina-
tion of available disk drive units. However, a few of the older
CP/M programs require that drive A: contain CP/M programs and
drive B: contain data files. While operation under DOS can be
performed using actual A: and B: drives, it is often desirable to
make use of the hard disk exclusively.
If you're using DOS 3.1 or later, you can use the DOS SUBST com-
mand to reassign a drive letter to a hard disk subdirectory. For
example, to reassign drive A: to access files in the subdirectory
\MYDISK on the C: drive, the following command could be used:
SUBST A:=C:\MYDISK
To make the "real" drive A: accessible again, use:
SUBST A: /D
If you're using DOS 2.1, the DOS ASSIGN command can be used to
reassign one drive letter to another. For example, when
ASSIGN A=C
is used, all accesses to the A: drive will be changed to access
the C: drive. To terminate the drive reassignment, use:
ASSIGN
Page 13
Miscellaneous Topics
____________________________________________________
Locating CP/M Program Files
It's been mentioned that GENCOM generates a loader file for CP/M
programs. However, 22NICE.COM needs to know where to find the
program file (.CPM) itself. 22Nice locates program files in the
following manner:
1. 22NICE.COM first searches the current directory for the
.CPM program files.
2. If the environment variable CPMPATH is defined,
22NICE.COM will search the drives and directories named
by that variable. The syntax for describing a search
path with CPMPATH is identical to that used for DOS
PATH; namely, a list of directories or drive names,
separated by semicolons.
3. In the absence of any other indication, 22NICE.COM
searches for a program according to the PATH environ-
ment variable specification. That is, 22Nice will look
for a program in the same places and in the same order
as the DOS command processor.
As an example, suppose all of our system's CP/M program files are
located in the subdirectory \USR\CPM22. We could indicate this
to 22Nice by means of the following DOS statement:
SET CPMPATH=\USR\CPM22
Observe that, since DOS is responsible for loading the .COM
loader files, only the PATH environment variable has any effect
on the main DOS search path. In other words, CPMPATH only has
relevance when .CPM program files are involved.
Interrupts and 22Nice
22NICE.COM uses two interrupts to communicate between it and the
CP/M program being executed. Under normal circumstances, 22Nice
will automatically select a pair of unused interrupts. However,
if the message:
No Interrupts--Consult Manual and specify interrupts explicitly
Page 14
Miscellaneous Topics
____________________________________________________
is displayed when 22NICE.COM is loaded, it will be necessary to
specify a pair of interrupts by means of the environment variable
22NICE. This situation usually occurs because of small dif-
ferences in BIOS ROM initialization between makers of PC systems.
Usually, interrupt numbers in the range of 128 to 159 are avail-
able for assignment. Select two numbers from this range and ex-
ecute the following DOS statement:
SET 22NICE=n1 n2
Where n1 and n2 are the selected interrupt numbers. If, after
selecting an interrupt set, 22Nice operates without affecting the
normal DOS operation of your system, a valid interrupt pair has
been selected.
Setting GENCOM Defaults
Default options have been selected for the GENCOM utility that
reflect what Sydex believes will be adequate for most CP/M ap-
plications. However, in some cases, it will be desirable to
change the defaults without explicitly specifying them every time
GENCOM is run.
Default parameters can be specified by setting the GENCOM DOS en-
vironment variable to the desired values. Since the DOS SET com-
mand does not allow the equals sign (=) to be included within an
environment string, the semicolon (;) can be used in its place.
Thus, to set GENCOM defaults to generate loader files to make use
of the V20 processor chip, a Televideo display, and a WordStar
keyboard, the following DOS statement is used:
SET GENCOM=PRO;V20 DIS;TVI KEY;WS
GENCOM defaults set in this way may be overridden at any time
simply by specifying new values explicitly when executing GENCOM.
For example, to use the values defined above, but to use Z80
emulation, the following GENCOM statement could be used:
GENCOM filename PRO=Z80
Page 15
Miscellaneous Topics
____________________________________________________
Use Of CP/M SUBMIT And XSUB
If you have "batch" files which operate with CP/M 2.2's SUBMIT
facility, you'll need to modify them to use DOS's batch file
capability. Usually this will entail no more than the following:
1. Changing the file name extension from .SUB to .BAT.
This is done with the DOS RENAME command.
2. Editing the now-.BAT file, changing all parameter
references from $1, $2, etc. to %1, %2 and so on.
3. Instead of using SUBMIT filename to invoke the file,
simply use filename to do the same.
A special problem arises when XSUB is used in a batch file. DOS
has no direct analogue of the XSUB function, but it may be simu-
lated by means of input file redirection. Consider the following
sample batch file:
XSUB
SAMPLE $1
line 1 for SAMPLE
line 2 for SAMPLE
^Z
This file could be rearranged to yield the same results under
DOS:
echo line 1 for SAMPLE >x
echo line 2 for SAMPLE >>x
SAMPLE %1 <x
DEL X
Of course this is only one possibility; you may wish to make use
of the pipe facility of DOS, if the input to your program comes
from another program.
Accessing I/O Ports
22Nice does not support access to 8-bit I/O port numbers via the
8080 IN and OUT instructions. This is done for the protection of
the PC's hardware, as most of the first 256 I/O port addresses on
Page 16
Miscellaneous Topics
____________________________________________________
the PC relate to fundamental PC hardware operation. Occasionally
it may be necessary to access a PC I/O port. This can be done by
means of the 8080 RST 3 instructions.
To read a byte from an I/O port, code the following (in 8080
code):
LXI D,port number
RST 3
The contents of the I/O port will be returned in the simulated
8080's A register.
To write a byte to an I/O port, code the following:
LXI D,port number
RST 4
The contents of the simulated 8080 A register will be written to
the specified port.
Accessing PC Memory
During CP/M emulation, a program's memory access is limited to
the 64K addressing range of the 8080. Should it become necessary
to inspect the contents of a memory location outside of this
range, the following RST 5 call can be used:
LXI D,segment
LXI H,offset
RST 5
The contents of the memory location at the specified segment and
offset will be returned in the simulated 8080 A register.
IOBYTE Support
The CP/M 2.2 IOBYTE mappings are supported by 22Nice for the con-
sole, printer, punch and reader as described in the CP/M 2.2 Sys-
tem Alteration Guide. All other mappings will result in a null
device access; i.e., data output will be discarded, input will
result in an end-of-file, and input status will always be data
unavailable.
Page 17
A Sample Installation
____________________________________________________
The CP/M punch and reader devices are taken to be the DOS
auxiliary device. Usually, this is a serial communications port,
or in absence of a serial port, the null device.
Absolute Disk Read and Write
22Nice contains an interface to disk read and write routines
present in DOS. When a CP/M program requests a DPB (Disk
Parameter Block) from 22Nice (BDOS function 31), one is supplied
which defines a 36-sector track with the allocation block size
and number of tracks varying according to the capacity of the
disk being serviced. Note that DOS can describe drives much
smaller (less than 1K) and much larger (32,000 K) than CP/M;
22Nice attempts to build a DPB which best defines the disk in
question.
Utilities that directly write to a disk without making use of
BDOS calls should be avoided, as the DOS structure for a disk is
quite different from that assumed by CP/M.
22Nice attempts to emulate the disk interface of CP/M. However,
because of differences in implementation, disk sizes reported by
STAT and similar programs should be considered to be approxima-
tions only.
Maximum Program Size
In the interest of compatibility, 22Nice implements a slightly
larger than "stock" 64K CP/M memory layout. About 59K of memory
can be used for program execution. The remainder of memory is
used to contain CP/M BIOS support routines and file tables.
A Sample 22Nice Installation
We present here a sample installation of the CP/M version of
WordStar Corporation's WordStar program on a 80286 PC AT "clone"
with a hard disk.
The following steps are involved:
Page 18
Glossary
___________________________________________________
1. Make a subdirectory on the hard disk (drive C;), call
it \OSBORNE:
C> MKDIR C:\OSBORNE
2. Copy 22NICE.COM and GENCOM.COM into C:\OSBORNE:
C> COPY A:22NICE.COM C:\OSBORNE
C> COPY A:GENCOM.COM C:\OSBORNE
3. Using Sydex's 22Disk program, copy the files WS.COM,
WSMSGS.COM, WSOVLY1.COM from the Osborne program dis-
kette to C:\OSBORNE. 22Disk will automatically change
the .COM file types to .CPM:
C> CTOD /OSB1 A:*.COM C:\OSBORNE
4. Run GENCOM on WS.CPM to generate a loader for 22Nice:
C> GENCOM WS DIS=OSB KEY=WS
5. Move to the \OSBORNE subdirectory and run WordStar:
C> CD \OSBORNE
C> WS
A Short Glossary of CP/M Terms
BDOS Under CP/M the part of the operating system which manages
file and console operations at a hardware-independent level.
The BDOS receives requests from an application program and
translates them into low-level operations that the BIOS can
understand and act on.
BIOS Under both CP/M and DOS, an acronym for Basic Input/Output
Subsystem. This is the portion of the operating system that
deals with the lowest-level interface to peripheral devices
such as disks and displays.
CCP Under CP/M the Console Command Processor. This is the part
of the operating system which interprets commands from the
console and acts upon them. This interface is only used
when CP/M is at a system-level command prompt (e.g., A>);
during execution of application programs, it is not active.
Page 19
Glossary
___________________________________________________
DDT is the name for the CP/M debugging utility and stands for
Dynamic Debugging Tool. The acronym's similarity to a well-
known insecticide is not coincidental.
FCB stands for File Control Block. In both DOS and CP/M, this is
a small memory-resident table used to access a file. When a
file is opened or created, CP/M fills in certain fields in
the FCB; the user program fills in others. In DOS, the FCB
is considered to be obsolescent and has been superseded by
the I/O handle facility, which more closely resembles the
approach taken by Unix. 22Nice translates CP/M FCB func-
tions to their corresponding DOS handle functions.
IOBYTE is a name for a memory location which determines where
most basic console and printer I/O will be directed. It is
possible to redirect console output to the printer by ap-
propriately setting this location, for example.
PIP is the name of CP/M's Peripheral Interchange Program. It cor-
responds roughly to DOS COPY.
STAT is a CP/M command used to provide several different serv-
ices. Generally, STAT is used to provide information regard-
ing file lengths and the amount of storage available on each
disk.
SUBMIT is the CP/M batch file processor. Unlike DOS, which im-
plicitly executes batch files, SUBMIT must be explicitly
called to begin batch file processing.
TPA stands for Transient Program Area. In CP/M, this the area of
memory that is used to run programs.
USER AREA or NUMBER is a primitive CP/M facility to provide a
logical division between files in a disk's directory. DOS
uses the subdirectory facility to achieve the same end in a
more general fashion. In essence, a file name is
"qualified" by a user number byte to distinguish it. Note,
however, that all files in CP/M are still kept in one direc-
tory.
V20 A plug-in replacement for the 8088 central processor in-
tegrated circuit found in most XT-type PC's. The V20 is
made by Nippon Electric Corporation (NEC) of Japan and incor-
Page 20
Glossary
___________________________________________________
porates not only the 8088 instruction set, but also the in-
struction set of the 8080 "8 bit" processor used in many
CP/M computers. The advantage that this hardware implementa-
tion presents over software emulation is one of much greater
speed.
V30 A plug-in replacement for the 8086 CPU, otherwise identical
in capability to the V20, above.
XSUB is a facility within SUBMIT processing that allows not only
CP/M commands, but program data to be diverted from the con-
sole to a disk file. There is no precisely corresponding
facility in DOS.
What's New in Version 1.3
Version 1.3 represents a major revision of 22Nice. For a list of
differences, consult the section titled If You're Upgrading....
Page 21
The Sydex Product Line
____________________________________________________
The Sydex Product Line
AnaDisk -- The compleat diskette utility. Nothing like it any-
where else; scan, edit, repair and copy just about any kind of
diskette. $25.00 ($150.00 site) registration fee.
Con>Format -- Concurrent "background" diskette formatter. Fea-
tures "pop-up" operation and "hot key" activation. You've got to
see it to believe. Supports all current DOS formats. $15.00
($50.00 site) registration fee.
22Disk -- Transfer files, format, examine and erase files on
"foreign" CP/M diskettes on your PC. Includes tips on supporting
8" and 5.25" single-density diskettes. Contains definitions for
over 200 different formats. $25.00 ($100.00 site) registration
fee.
TeleDisk -- Turn any diskette into a compressed data file and
vice-versa. Allows you to send and receive entire diskettes via
modem. Even works with some "copy-protected" diskettes. $20.00
($150.00 site) registration fee.
COPYQM -- Mass diskette duplicator. Format, copy and verify mul-
tiple diskettes from a single master. Implements "no keyboard"
interaction mode and drive "round robin" servicing. Supports all
standard DOS formats. $15.00 ($50.00 site) registration fee.
FORMATQM -- Mass diskette formatter - format a box of diskettes
at a single sitting. Implements "no keyboard" interaction mode
and drive "round robin" servicing. Supports all standard DOS for-
mats. $10.00 ($40.00 site) registration fee.
Information on any of these products can be obtained from Sydex
by calling or writing us at:
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
Data: (503) 683-1385
Page 22
Sydex
HP150.SYS and HP150II.SYS
Two Device Drivers for Hewlett-Packard HP 150 MS-DOS Diskettes
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
HP150.SYS and HP150II.SYS
Two Device Drivers for Hewlett-Packard HP 150 MS-DOS Diskettes
Copyright 1990, Sydex
All Rights Reserved
Version 2.0 June, 1990
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
NOTICE
THIS IS NOT FREE SOFTWARE! If you paid a "public domain" vendor
for this program, you paid for the service of copying the
program, and not for the program itself. Rest assured that noth-
ing ever gets to the originators of this product from such a
sale. You may evaluate this product, but if you make use of it,
you must register your copy.
We offer several inducements to you for registering. First of
all, you receive the most up-to-date copy of the program that we
have without the advertising copy embedded. You also receive sup-
port for HP150.SYS and HP150II.SYS--which can be quite valuable
at times. And finally, we include a few utilities not included
in the evaluation package. Make no mistake however--we do not
"cripple" our evaluation software--our sample programs are fully
functional and complete.
REGISTRATION INFORMATION
The non-commercial single-user registration fee for HP150.SYS and
HP150II.SYS is $20.00 US. The commercial and multisystem site
fee is $150.00 for HP150.SYS and HP150II.SYS.
Send a check or company P.O. for the appropriate amount to:
SYDEX
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
Data: (503) 683-1385
Major Credit Cards Accepted
Please indicate what product you are ordering and if you have a
requirement for 3.5" media. We normally ship 5.25" 360K dis-
kettes, but we will furnish 3.5" 720K media upon request. Orders
placed outside of the U.S. and Canada should include an addi-
tional $5.00 for airmail. We can accept U.S. funds only, please.
DISTRIBUTION NOTICE
This is "user-supported" software. You are hereby granted a
license by Sydex to distribute this evaluation copy of HP150.SYS
and HP150II.SYS and its documentation, subject to the following
conditions:
1. HP150.SYS and HP150II.SYS may be distributed freely without
charge in evaluation form only.
2. HP150.SYS and HP150II.SYS may not be sold, licensed, or a
fee charged for their use. If a fee is charged in connec-
tion with HP150.SYS and/or HP150II.SYS, it must cover the
cost of copying or dissemination only. Such charges must be
clearly identified as such by the originating party. Under
no circumstances may the purchaser be given the impression
that he is buying HP150.SYS or HP150II.SYS themselves.
3. HP150.SYS and HP150II.SYS must be presented as complete
units, including this documentation. This documentation may
be not amended or altered in any way.
4. In granting you the right to distribute the evaluation form
of HP150.SYS and HP150II.SYS, Sydex does not acknowledge you
as the owner of HP150.SYS or HP150II.SYS in any form.
Any other use or distribution of HP150.SYS and
HP150II.SYS is expressly forbidden without the written
consent of SYDEX.
________________________________________________________________
"HP 150" and "HP" are trademarks of Hewlett-Packard Corporation.
"IBM", "PC DOS" and "Personal System/2" are trademarks of Interna-
tional Business Machines Corporation. "MS-DOS" is a trademark of
Microsoft Corporation.
What are HP150.SYS and HP150II.SYS?
HP150.SYS and HP150II.SYS are two device drivers which support
reading and writing of MS-DOS diskettes from Hewlett-Packard
Corporation's HP 150 series computers on PC XT- or AT-compatible
machines. Under DOS 3.2 or later, the utilities FORMAT, DISKCOPY
and DISKCOMP are supported, as well as normal DOS read and write
operations. HP150.SYS is used for single-sided HP 150 diskettes;
HP150II.SYS is used for the double-sided diskettes of the Series
II HP 150.
To use HP150.SYS or HP150II.SYS, your computer must be PC AT-,
XT- or IBM Personal System/2 compatible. Computers such as the
Tandy 2000 or the Zenith Z-150 are not suitable because of their
relative incompatibility. Further, your computer must be
equipped with a 3.5" 720K or 1.44M diskette drive. To read and
write HP 150 5.25" diskettes, your computer must be equipped with
high-density 1.2 Megabyte drive or a 5.25" "quad" density drive,
such as the Teac 55F. The diskette adapter on your computer must
match the diskette drive characteristics. That is, a high-
density drive must be used with a high-density adapter. Many
manufacturers, such as Western Digital, produce high-density dis-
kette adapters for XT-style computers, and these may be used suc-
cessfully with HP150.SYS and HP150II.SYS. Currently, we support
only the first (or primary) diskette adapter in a system.
And finally, your computer needs to be running PC-DOS or MS-DOS
Version 2.0 or later. DOS 3.2 or later is preferable, but not
required. Version 2 DOS users may find that some HP150.SYS and
HP150II.SYS functions, such as formatting, are not supported.
Installing and Using HP150.SYS and HP150II.SYS
Installation of HP150.SYS and HP150II.SYS is straightforward.
First, find the file CONFIG.SYS in the root directory of the disk
that your computer boots (loads DOS) from. It may be possible
that you do not have a CONFIG.SYS file, in which case the next
few steps will create one. If you are unfamiliar with the
CONFIG.SYS file, take time out now and read the section in your
DOS manual dealing with it, and in particular, the DEVICE= state-
ment.
You'll need to add a line to CONFIG.SYS of the following general
form:
DEVICE=HP150.SYS /D:unit /F:format
Or:
DEVICE=HP150II.SYS /D:unit /F:format
Page 1
This can be done with the program EDLIN which is supplied with
DOS, or with a text editor of your choosing. If you use a word-
processing editor, make sure that you indicate that CONFIG.SYS is
a nondocument file. If you didn't find a CONFIG.SYS, the above
line will be the only line in the file which is created.
The value of unit can range from 0 to 3 and represents the physi-
cal diskette unit to be used to read and write the HP 150 dis-
kettes. If this unit is normally called A: on your computer,
then the value of unit is 0; if B:, then unit is 1. External
drives are generally units 2 and 3.
The value of format depends on the type of diskette drive that
you're using. If it's a high-density 1.2 megabyte unit, then the
value of format is 1. If you're using a 3.5" drive or a "quad"
density drive, such as the Teac 55F, then format is 2.
If /D:unit is omitted in the configuration line, unit is assumed
to be 1. If /F:format is omitted, format is assumed to be 1 also.
The last step is to copy the file HP150.SYS or HP150II.SYS into
the root directory of your system or "boot" drive. Finally, re-
boot your computer. If your computer is configured with a ver-
sion of DOS 3, the following message will be displayed:
HP 150 (or HP 150II) diskette driver, Copyright 1990, Sydex
All Rights Reserved.
HP 150 (or HP 150II) DOS diskette unit x is accessible as
drive y:
The letters x and y will take on values which depend on the con-
figuration of your computer.
If your computer is configured with a version of DOS 2, the fol-
lowing message will be displayed:
HP 150 (or HP 150II) diskette driver, Copyright 1990, Sydex
All Rights Reserved.
HP150 (or HP 150II) DOS diskette unit x installed.
In this case, the drive letter which is used to read HP 150 dis-
kettes will generally be one greater than the last drive letter
in use before you modified CONFIG.SYS. For example, if drive C:
was the last drive on your computer, HP150.SYS and HP150II.SYS
will use drive letter D:.
Page 2
As an example of the whole process described above, suppose that
we wished to add HP150.SYS or HP150II.SYS to a PC-AT "clone"
which has one 3.5" diskette drive and a hard disk. Our
CONFIG.SYS file on drive C: might look like this after we
modified it using EDLIN:
FILES = 30
BUFFERS = 10
DEVICE = HP150.SYS /D:0 /F:2 (This line is added)
If we are adding HP150II.SYS to this system, our CONFIG.SYS file
on drive C: might look like this after we modified it using ED-
LIN:
FILES = 30
BUFFERS = 10
DEVICE = HP150II.SYS /D:0 /F:2 (This line is added)
We then copy HP150.SYS or HP150II.SYS to drive C:...
COPY /B A:HP150.SYS C:\
Or:
COPY /B A:HP150II.SYS C:\
We then press the keys Ctrl, Alt and Del simultaneously to
"reboot" our computer. After the rebooting process has com-
pleted, the following message is displayed:
HP 150 (or HP 150II) diskette driver, Copyright 1989, Sydex
All Rights Reserved.
HP 150 (or HP 150II) DOS diskette unit 0 is accessible as
drive D:
We then find that HP 150 diskettes placed in our A: drive can be
read and written if we refer to that drive as drive D:.
FINAL COMMENTS...
HP150.SYS and HP150II.SYS were written in response to inquiries
from customers who had our CP/M diskette transfer package, but
who had no way to easily handle the HP 150 DOS diskettes. We
hope that this situation is now remedied. If you experience
problems in getting HP150.SYS or HP150II.SYS to work for you, or
if you have questions about any Sydex product, please give us a
call.
Page 3
Other Sydex Products
AnaDisk -- The compleat diskette utility. Nothing like it
anywhere else; scan, edit, repair and copy just about any kind of
diskette. $25.00 ($150.00 site) registration fee.
Con>Format -- Concurrent "background" diskette formatter. Fea-
tures "pop-up" operation and "hot key" activation. You've got to
see it to believe. Supports all current DOS formats. $15.00
($50.00 site) registration fee.
22DISK -- Transfer files, format, examine and erase files on
"foreign" CP/M diskettes on your PC. Includes tips on supporting
8" and 5.25" single-density diskettes. Contains definitions for
over 250 different formats. "Roll your own" option for unusual
formats. $25.00 ($100.00 site) registration fee.
22NICE -- A CP/M 2.2 emulation package. Supports the NEC
V-series chips or performs emulation by software for both the
8080 and Z80 processors. Includes terminal emulation and dis-
kette handling for common CP/M systems. Includes 22DISK. $40.00
($150.00 site) registration fee.
TeleDisk -- Our diskette FAX machine. Turn any diskette into a
compressed data file and vice-versa. Allows you to send and
receive entire diskettes via modem. Even works with some "copy-
protected" diskettes. $20.00 ($150.00 site) registration fee.
COPYQM -- Mass diskette duplicator. Format, copy and verify mul-
tiple diskettes from a single master. Implements "no keyboard"
interaction mode and drive "round robin" servicing. Supports all
standard DOS formats. Copy even non-DOS diskettes with "blind
copy" option in the latest release. $15.00 ($50.00 site)
registration fee.
FORMATQM -- Mass diskette formatter - format a box of diskettes
at a single sitting. Implements "no keyboard" interaction mode
and drive "round robin" servicing. Supports all standard DOS for-
mats. $10.00 ($40.00 site) registration fee.
Information on any of these products can be obtained from Sydex
by calling or writing us at:
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
Data: (503) 683-1385
Page 4
Sydex
RainDOS
A Device Driver for DEC Rainbow tm MS-DOS Diskettes
RainDOS
A Device Driver for DEC Rainbow MS-DOS Diskettes
Copyright 1989, 1990, Sydex
All Rights Reserved
Version 1.1 January, 1990
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
Data: (503) 683-1385
NOTICE
THIS IS NOT FREE SOFTWARE! If you paid a "public
domain" vendor for this program, you paid for the serv-
ice of copying the program, and not for the program it-
self. Rest assured that nothing ever gets to the
originators of this product from such a sale. You may
evaluate this product, but if you make use of it, you
must register your copy.
We offer several inducements to you for registering.
First of all, you receive the most up-to-date copy of
the program that we have--and we do update the product
on a regular basis. You also receive support for
RainDOS--which can be quite valuable at times. And
finally, we include a few utilities not included in the
evaluation package. Make no mistake however--we do not
"cripple" our evaluation software--our sample programs
are fully functional and complete.
REGISTRATION INFORMATION
The non-commercial single-user registration fee for
RainDOS is $15.00 US. The commercial and multisystem
site fee is $50.00.
Send a check or company P.O. for the appropriate amount
to:
SYDEX
P.O. Box 5700
Eugene, OR 97405
Major Credit Cards Accepted
Please indicate what product you are ordering and if you
have a requirement for 3.5" media. We normally ship
5.25" 360K diskettes, but we will furnish 3.5" 720K
media upon request. Orders placed outside of the U.S.
and Canada should include an additional $5.00 for air-
mail. We can accept U.S. funds only, please.
DISTRIBUTION NOTICE
This is "user-supported" software. You are hereby
granted a license by Sydex to distribute this evaluation
copy of RainDOS and its documentation, subject to the
following conditions:
1. RainDOS may be distributed freely without charge in
evaluation form only.
2. RainDOS may not be sold, licensed, or a fee charged
for its use. If a fee is charged in connection
with RainDOS, it must cover the cost of copying or
dissemination only. Such charges must be clearly
identified as such by the originating party. Under
no circumstances may the purchaser be given the im-
pression that he is buying RainDOS itself.
3. RainDOS must be presented as a complete unit, in-
cluding this documentation. RainDOS's documenta-
tion may be not amended or altered in any way.
4. In granting you the right to distribute the evalua-
tion form of RainDOS, Sydex does not acknowledge
you as the owner of RainDOS in any form.
Any other use or distribution of RainDOS is expressly
forbidden without the written consent of SYDEX.
________________________________________________________________
"DEC" and "Rainbow" are trademarks of Digital Equipment Corpora-
tion. "IBM", "PC DOS" and "Personal System/2" are trademarks of
International Business Machines Corporation. "MS-DOS" is a
trademark of Microsoft Corporation.
What is RainDOS?
RainDOS is a device driver which supports reading and writing of
MS-DOS diskettes from Digital Equipment Corporation's Rainbow tm
series computers on PC XT- or AT-compatible machines. Under DOS
3.2, the utilities FORMAT, DISKCOPY and DISKCOMP are supported,
as well as normal DOS read and write operations.
To use RainDOS, your computer must be PC AT-, XT- or IBM Personal
System/2 compatible. Computers such as the Tandy 2000 or the
Zenith Z-150 are not suitable because of their relative incom-
patibility. Further, your computer must be equipped with either
a 5.25" high-density (1.2 Megabyte) or 5.25" "quad" density
drive, such as the Teac 55F. The diskette adapter on your com-
puter must match the diskette drive characteristics. That is, a
high-density drive must be used with a high-density adapter.
Many manufacturers, such as Western Digital, produce high-density
diskette adapters for XT-style computers, and these may be used
successfully with RainDOS. Currently, we support only the first
(or primary) diskette adapter in a system.
And finally, your computer needs to be running PC-DOS or MS-DOS
Version 2.0 or later. DOS 3.2 or later is preferable, but not
required. Version 2 DOS users may find that some RainDOS func-
tions, such as formatting, are not supported.
Installing and Using RainDOS
Installation of RainDOS is straightforward. First, find the file
CONFIG.SYS in the root directory of the disk that your computer
boots (loads DOS) from. It may be possible that you do not have
a CONFIG.SYS file, in which case the next few steps will create
one. If you are unfamiliar with the CONFIG.SYS file, take time
out now and read the section in your DOS manual dealing with it,
and in particular, the DEVICE= statement.
You'll need to add a line to CONFIG.SYS of the following general
form:
DEVICE=RAINDOS.SYS /D:unit /F:format
This can be done with the program EDLIN which is supplied with
DOS, or with a text editor of your choosing. If you use a word-
processing editor, make sure that you indicate that CONFIG.SYS is
a nondocument file. If you didn't find a CONFIG.SYS, the above
line will be the only line in the file which is created.
The value of unit can range from 0 to 3 and represents the physi-
cal diskette unit to be used to read and write the Rainbow dis-
kettes. If this unit is normally called A: on your computer,
then the value of unit is 0; if B:, then unit is 1. External
drives are generally units 2 and 3.
Page 1
The value of format depends on the type of diskette drive that
you're using. If it's a high-density 1.2 megabyte unit, then the
value of format is 1. If you're using a "quad" density drive,
such as the Teac 55F, then format is 2.
If /D:unit is omitted in the configuration line, unit is assumed
to be 1. If /F:format is omitted, format is assumed to be 1 also.
The last step is to copy the file RAINDOS.SYS into the root
directory of your system or "boot" drive. Finally, re-boot your
computer. If your computer is configured with a revision of DOS
3, the following message will be displayed:
Rainbow diskette driver, Copyright 1990, Sydex
All Rights Reserved.
Rainbow DOS diskette unit x is accessible as drive y:
The letters x and y will take on values which depend on the con-
figuration of your computer.
If your computer is configured with a revision of DOS 2, the fol-
lowing message will be displayed:
Rainbow diskette driver, Copyright 1990, Sydex
All Rights Reserved.
Rainbow DOS diskette unit x installed.
In this case, the drive letter which is used to read Rainbow dis-
kettes will generally be one greater than the last drive letter
in use before you modified CONFIG.SYS. For example, if drive C:
was the last drive on your computer, RainDOS will use drive let-
ter D:.
As an example of the whole process described above, suppose that
we wished to add RainDOS to a PC-AT "clone" which has one high-
density diskette drive and a hard disk. Our CONFIG.SYS file on
drive C: might look like this after we modified it using EDLIN:
FILES = 30
BUFFERS = 10
DEVICE = RAINDOS.SYS /D:0 /F:1 (This line is added)
We then copy RAINDOS.SYS to drive C:...
COPY A:RAINDOS.SYS C:\
We then press the keys Ctrl, Alt and Del simultaneously to
"reboot" our computer. After the rebooting process has com-
pleted, the following message is displayed:
Rainbow diskette driver, Copyright 1989, Sydex
All Rights Reserved.
Rainbow DOS diskette unit 0 is accessible as drive D:
Page 2
We then find that Rainbow diskettes placed in our A: drive can be
read and written if we refer to that drive as drive D:.
FINAL COMMENTS...
RainDOS was written in response to inquiries from customers who
had our CP/M diskette transfer package, but who had no way to
easily handle the Rainbow DOS diskettes. We hope that this
situation is now remedied. If you experience problems in getting
RainDOS to work for you, or if you have questions about any Sydex
product, please give us a call.
Page 3
The Sydex Product Line
AnaDisk -- The compleat diskette utility. Nothing like it
anywhere else; scan, edit, repair and copy just about any
kind of diskette. $25.00 ($150.00 site) registration fee.
Con>Format -- Concurrent "background" diskette formatter.
Features "pop-up" operation and "hot key" activation.
You've got to see it to believe. Supports all current DOS
formats. $15.00 ($50.00 site) registration fee.
22DISK -- Transfer files, format, examine and erase files on
"foreign" CP/M diskettes on your PC. Includes tips on sup-
porting 8" and 5.25" single-density diskettes. Contains
definitions for over 200 different formats. $25.00 ($100.00
site) registration fee.
22NICE -- A CP/M 2.2 emulation package. Supports the NEC
V-series chips or performs emulation by software for both
the 8080 and Z80 processors. Includes terminal emulation
and diskette handling for common CP/M systems. Includes
22DISK. $40.00 ($150.00 site) registration fee.
TeleDisk -- Turn any diskette into a compressed data file
and vice-versa. Allows you to send and receive entire dis-
kettes via modem. Even works with some "copy-protected"
diskettes. $20.00 ($150.00 site) registration fee.
COPYQM -- Mass diskette duplicator. Format, copy and verify
multiple diskettes from a single master. Implements "no
keyboard" interaction mode and drive "round robin" servic-
ing. Supports all standard DOS formats. $15.00 ($50.00
site) registration fee.
FORMATQM -- Mass diskette formatter - format a box of dis-
kettes at a single sitting. Implements "no keyboard" inter-
action mode and drive "round robin" servicing. Supports all
standard DOS formats. $10.00 ($40.00 site) registration
fee.
Information on any of these products can be obtained from Sydex
by calling or writing us at:
Sydex
P.O. Box 5700
Eugene, OR 97405
Voice: (503) 683-6033
FAX: (503) 683-1622
Data: (503) 683-1385
Page 4
Volume in drive A has no label
Directory of A:\
READ ME 7209 9-10-92 12:04p
PKUNZIP EXE 23528 3-15-90 1:10a
22DSK139 ZIP 194040 9-03-92 12:24p
22NCE132 ZIP 50625 7-17-92 2:12p
RAIND112 ZIP 14697 7-17-92 2:14p
HP15S201 ZIP 17779 7-17-92 2:14p
GO BAT 33 3-28-93 5:09p
SHOW EXE 2040 9-12-88 10:48a
8 file(s) 309951 bytes
8192 bytes free