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