RT-11 Floppy Interchange Program
Written by:
Dick Murphy
Digital Equipment Corporation
Santa Clara, CA 95051
User's notes
This program is used to manipulate RT-11 floppy disk
file structures under OS/8. (RX01 ONLY, RX02 Not supported).
The operations available allow most of the functions of
OS/8 PIP to be simulated on the RT-11 disk. These
functions include:
1. Creating a file on a RT-11 floppy
2. Copying a file from an RT-11 floppy to an
OS/8 device (disk, dectape, TTY:, LPT:, etc.)
3. Deleting files from the RT-11 floppy
4. Listing the directory of the RT-11 floppy
5. ZEROing (INITing) the directory of a floppy
to an empty state.
The user interface is similar to the OS/8 command decoder.
When the program desires file specifications, it prints an
asterisk (*) and waits for input. The file specification line
is very similar to OS/8's. A sample input line is detailed
below:
*RTFLOP.PAL<RTFLOP.PA/O$
The "*" is the prompt printed when the program wants input.
The name "RTFLOP.PAL" is the name of a file to be created on
an RT-11 floppy. The "<" character specifies that this is an
output file, and that the input file names are to follow.
The name "RTFLOP.PA" is the name of the OS/8 file to be read
to create the RT-11 file. The characters "/O" are an option flag
used to specify the operation to be performed. In this case,
they specify that the RT-11 file is an Output file.
The general command line is of the form
*output<input/opt[/opt]....{$} or {return}
Where "output" is an output file specification and "input" is
an input file specification. For an RT-11 file, the spec is a
file name, of up to six characters, a period, followed by an
extension of up to three characters. If there is o extension,
the period following the name can be omitted. The OS/8 file spec
uses the standard name format "device:file.ex" explained in the
OS/8 Handbook, page 1-45.
The "<" character is used to separate the output file from the
input file. If only an output file is to be specified, this
"<" character can be omitted.
The file names are followed by at least one and possibly
several option flags. These are entered by typing a slash "/"
followed by the desired character, for example "/L".
The possible options are detailed later. If a "$", which could be
either a dollar sign, escape, or alt mode character, is used to
end the command line, it tells the program to return to the
OS/8 monitor when it is done processing this command. If an error
occurs while executing this command, however,the program will
prompt with another "*". If the command line is ended with a
return, the program will prompt with another "*" when it is
finished executing the command.
While entering this command line, all the normal editing
functions of OS/8 can be used. Rubout deletes the last character
entered, and ^U (control-U) deletes the entire line. Line feed
causes the line being entered to be retyped.
If a character is entered which the program does not
understand, the terminal bell rings and the character is
ignored. The OS/8 wildcard characters "*" and "?" are not
functional and are ignored. (See the OS/8 Handbook, page
1-55 for a description of wildcards).
Functions available
The function desired is entered in a command string
as a slash option of the form "/char" where "char" is a one-
character option flag. The available options are:
Option Operation
/O Write RT-11 file
/I Read RT-11 file
/L List RT-11 directory
/D Delete RT-11 file
/Z ZERO RT-11 directory
/0 (zero) Select drive zero
/1 (one) Select drive one
Only one option at a time can be performed; the last
option in the input string is the one executed.
(This limitation of one option switch does not include
the drive selection options, /0 and /1.)
/O Option - Write RT-11 File
This option is used to create a RT-11 file from an
OS/8 device. The format of the command is:
@*rtfile.ext<[dev:]osfile.ex/O[/1][/0]
The items in braces ([]) are optional; if no device
is given for the OS/8 file, DSK: is assumed; if no drive
number is specified, /0 (left drive) is assumed.
If a file with the same name as the file to be created
exists on the floppy already, it is deleted before the new
file is written. This means that if the new file cannot
be created due to an I/O error or size problems, neither
copy of the file exists. Sorry about that.
/I - Read RT-11 file
This option is used to copy a file from an RT-11 device
to an OS/8 device.
The command string is as follows:
*[dev:][osname.ex]<rtname.ex/I[/0][/1]
Again, the braces enclose optional items. If no OS/8
device is specified, DSK: is assumed. If a non-file structured
output device is specified (such as TTY: or LPT:) the file
name is not needed. If no unit switch (/0 or/1) is given, drive
zero (the left one) is assumed.
/L - List directory
This option is used to list the directory of the RT-11
floppy. The listing is given in four columns. The first is
the name of the file, the second is it's size (in decimal),
the third is its starting block number (also decimal) and the
last column is the file's creation date.
The format of the command string is:
*[dev:][name.ex]/L[/0][/1]
If no device is specified, TTY: is assumed. If only a file
name is entered, TTY: is still assumed. This means that an
explicit device name must be entered to cause a listing to
be written to a mass storage device, including DSK:.
For example:
*LPT:/L List on line printer
*DIR.DI/L Lists on TTY:!
*DSK:DIR.DI/L Creates listing file on DSK:
/D - Delete RT-11 file
This option is used to delete a file from a RT-11 floppy.
This can be used to try to gain space to copy another file
to the floppy. The command string is:
*file.ext/D[/0][/1]
/Z - Zero the floppy
This option writes a new directory on the floppy with
one empty file. This is necessary if yours is a new floppy
or if it has an OS/8 directory. The command string is:
*/Z[/0][/1]
To be sure that this is what you want, the program asks:
Zero - are you sure?
Respond with "Y" if you want a new directory.
General information
This program requires 8K of memory to run. The program
itself resides in field zero, field one is used for buffers,
message storage, and the like.
Assembly instructions:
Type the following:
.PAL RTFLOP/L
.SAVE dev RTFLOP=2401
This program will run under BATCH. The commands should
be entered into the batch stream as one normally does.
This program does not recognize wildcards. Therefore, a
command such as :
**.PAL<*.PA/O
is illegal. However, There are two TECO macros distributed
with this program which allow one to approximate this function.
The first macro writes files to a floppy, the second reads files
from a floppy.
RTOUT.TE - Writing files to a floppy
This macro reads a file with a list of file names and creates
a BATCH stream to write the files to a floppy. The format of the
entries in this file is:
namexx.ex
nameyy.ex .....
Where each "name" is padded with blanks, if necessary, to six
characters.
The DIRECT command can be used to create this file. For example,
.DIR FILE<SYS:*.BN=1
creates a file called FILE.DI with the desired directory listing.
The "=1" is necessary to insure a one-column listing. Giving
this file to RTOUT will copy all files with a .BN extension to
a floppy.
To execute RTOUT, enter a MUNG command:
.MUNG RTOUT,file
where "file" is the name of the directory listing file. If
no extension is entered, .DI is assumed (this is what DIRECT uses).
To copy all the .PA files on RKB0: to a floppy, type the commands
.DIR PALFIL<RKB0:*.PA=1
.MUNG RTOUT,PALFIL
When the macro gets started, it will ask you to "Enter desired
extension:". At this time, enter the extension (three characters)
that you would like to give to the files to be created on the floppy.
Only the first three characters are significant. A rubout will echo
and delete the last character typed.
When the macro asks you to "Enter input device:", enter the
OS/8 name of the device on which the files are stored. This
device name must be followed by a colon (:). If the device is DSK:,
simply hit return.
For RTOUT to function, both TECO.SV and BATCH.SV must reside
on SYS:. If your copy of TECO does not have all of the latest
patches, RTOUT will most likely fail.
Another macro is provided which provides the converse function
to RTOUT. This macro copies files from a floppy to an OS/8 device.
This macro, RTIN, is quite similar to RTOUT.
To copy all the files from a floppy to an OS/8 device:
.R RTFLOP
*FLOP.DI/L$ (generate a directory listing)
.MUNG RTIN,FLOP (call RTIN)
Enter desired extension:RT (enter the extension)
Enter output device:RKB0: (put the files here)
This copies all files from drive zero to RKB0:, with
an extension of .RT. The directory listing file (FLOP.DI)
could have been edited before the MUNG in order to copy
only some of the files on the floppy.
Error messages
-Bad slash option
The character following a "/" was not one of the
following: I, O, L, Z, D, 1, 0.
-No option flag
No option was specified
-Bad directory
The directory on the floppy has an invalid
structure. (possible an OS/8 directory)
-No Input file
Both input and output files were required, but
no "<" separator character was found.
-Handler fetch failed
An attempt to fetch the OS/8 handler specified
failed. This usually means that a non-existant
device was specified.
-OS/8 I/O Error
An I/O error ocurred reading or writing the OS/8
file.
-Cannot specify RT-11 device
A device specification (e.g. RXA0:) was found
in the RT-11 name. This is illegal. Use /0 and /1
to specify drives.
-Need file name
A file structured OS/8 device was specified for
input or output without giving a file name.
-Out dev full
The OS/8 output device did not have sufficient empty
space for the directory listing.
-OS/8 File overflow
The empty space on the OS/8 device was too small
to hold the output file. SQUISH or try another device.
-File not found
The file specified could not be found
-Segment full (SQUEEZE floppy)
The last open segment of the RT-11 directory is full.
RTFLOP cannot create a new file on this floppy. A
SQUEEZE under RT-11 may fix this.
-No room on floppy
There was not enough room on the floppy for the output
file. SQUEEZE or delete files to create room.
-Floppy I/O error
An input or output error ocurred on the floppy.
Read errors are retried eight times before this message.
Write errors fail immediately.
Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with. I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation.
PDP-8 Home Page  PDP-8 Site Map  PDP-8 Site Search