Input Output on the Xerox 1108 is supported in many ways: keyboard, display, mouse, rigid disk, ethernet, floppy disk, and RS232. This section only covers aspects of the last two: floppy disk and RS232. This documentation describes the Interlisp-D file device ?FLOPPY?, used to interact with floppy drives on Xerox 1108 machines. In general, Interlisp-D can be used to read, write, and otherwise interact with files on Pilot formatted floppy disks through standard Interlisp input/output functions. All familiar operations such as LOAD, OPENFILE, READ, PRINT, READC, GETFILEINFO, SETFILEINFO, GETFILEPTR, SETFILEPTR, etc. work with file device ?FLOPPY?. COPYFILE is commonly used to archive and unarchive files between ?FLOPPY? and other file devices. Files on ?FLOPPY? can be compiled, edited, hardcopied, etc,. just as files may be on all other ordinary file devices. The user should be aware that the occurrence of certain events (i.e., opening the floppy drive door, performing a (LOGOUT), etc.) while a ?FLOPPY? stream is open can result in the files on the floppy being inaccessible. Recovery techniques are available which attempt to repair such damage. See FLOPPY.RESTART and FLOPPY.SCAVENGE described below. (OPENP) can be used to deter-mine if any files are currently open for input or output; (CLOSEALL) will close all open files except T and the current typescript file, if any, and return a list of the files closed. See Section 6.1 of the Interlisp Reference Manual for more information on file manipulation functions. The following functions and capabilities are supported in the current software release. (FLOPPY.FORMAT NAME AUTOCONFIRMFLG SLOWFLG) [Function] This function is used to erase and establish track information on floppies, especially floppies which are brand new. The NAME arg becomes the name of your floppy. It's a good idea to label the outside of your floppies with the same NAME. AUTOCONFIRMFLG controls questioning the user about destroying floppies that appear to contain valid information. If AUTOCONFIRMFLG is T, the user will not be asked to confirm. SLOWFLG determines how thorough a formatting job is to be done on the floppy you format. If SLOWFLG is T, FLOPPY.FORMAT will completely erase your floppy, setting down track information and critical Pilot records on your floppy. When SLOWFLG is left NIL, only Pilot records needed to give your floppy an empty directory are written. Use SLOWFLG = T with brand new floppies. Your floppies should always be 8" double sided/double density soft sectored floppy disks. Floppies are inserted into the floppy drive face up, the edge of the floppy with two 2" long cover holes (one hole per side) going in first. The writeprotect notch will be on the same edge as and to the left of a cover hole as you look down on the floppy from above. (FLOPPY.SET.NAME NAME) [Function] This function resets the NAME put onto a floppy by FLOPPY.FORMAT. (FLOPPY.GET.NAME) [ Function] This function returns the NAME put onto a floppy by FLOPPY.FORMAT or FLOPPY.SET.NAME. (FLOPPY.CAN.READP) [Function] This predicate tests if there is a floppy in the floppy drive. FLOPPY.CAN.READP does not protect against not fully closing the floppy drive door. You may wish to use FLOPPY.WAIT.FOR.FLOPPY (see below). (FLOPPY.CAN.WRITEP) [Function] This predicate tests if there is a write-enabled floppy in the floppy drive. It does not check whether the floppy has been properly formatted. (The floppy drive can only write on floppies whose writeprotect notches are covered with tape.) (FLOPPY.WAIT.FOR.FLOPPY NEWFLG) [Function] When NEWFLG = NIL, this command waits until there is a floppy in the floppy drive before returning. When NEWFLG = T, the function first waits until the existing floppy in the floppy drive, if any, is removed, and then waits for a floppy to be inserted into the drive before returning. (SYSOUT '?FLOPPY?) [Function] SYSOUTs may be created on floppies with the Interlisp SYSOUT function, and later installed on the same or other Xerox 1108s by using the "Installation Utility" floppy distributed with your software set. SYSOUTs may also be taken from other file devices and be put onto floppies through the use of the function FLOPPY.MODE (see below). The user is prompted to insert new floppies as they are needed. It will generally take 3 to 5 floppies to store a sysout. The floppies are automatically formatted and named appropriately. Presently the logical names of the sysout floppies must be "LispSysout#1". "LispSysout#2", etc. See Section 3 for a description of the procedure for installing software from floppies. Note that when you return from this function FLOPPY.MODE may be set to SYSOUT. When this occurs you must use (FLOPPY.MODE 'PILOT) to restore the normal mode of operation for ?FLOPPY?. Note: before writing a sysout to unformatted floppies, or to floppies of suspicious origin, do (FLOPPY.FORMAT NIL NIL T) to ensure the formatting is complete and correct. ( FLOPPY.MODE MODE) [Function] The normal mode of operation for ?FLOPPY? is to be (FLOPPY.MODE 'PILOT). Two other special modes of operation for ?FLOPPY?, SYSOUT and HUGEPILOT, are available. In SYSOUT mode, the user may use COPYFILE to move a sysout off another file device onto floppies. To do this, the user must first set ?FLOPPY? into SYSOUT mode, then do the COPYFILE. For example, (FLOPPY.MODE 'SYSOUT) (COPYFILE '?PHYLUM?<LISP>CURRENT> FULL.SYSOUT '?FLOPPY?) would put the current Interlisp-D FULL.SYSOUT onto floppies. The Installation Utility is then used to load these sysouts onto a Xerox 1108. Similarly, sysouts can be copied off floppies onto another file device using COPYFILE when in SYSOUT mode. It is possible to write and read Pilot huge files across multiple floppies in HUGEPILOT mode (FLOPPY.MODE 'HUGEPILOT). This mode is practically identical to SYSOUT mode, with the exception that the user has control over the names of file and floppies. (FLOPPY.TO.FILE TOFILE) & (FLOPPY.FROM.FILE FROMFILE) These two functions support the ability to copy Pilot floppies. FLOPPY.TO.FILE copies the contents of the current floppy to a file and FLOPPY.FROM.FILE is FLOPPY.TO.FILE's inverse. Typically, you may insert a floppy into the floppy drive, use FLOPPY.TO.FILE to move the contents of the floppy to a file (on a file server or some logical volume of your machine with at least 2500 free pages), remove your floppy, insert a blank floppy, and use FLOPPY.FROM.FILE to move the contents of the file onto the blank floppy. The new floppy will automatically be formatted and given the same name as the original floppy. FLOPPY.FROM.FILE can be used more than once if you would like to make more than one copy. As an alternative to using FLOPPY.SCAVENGE (described below), the TOFILE produced by FLOPPY.TO.FILE can be usefully edited to salvage the contents of a floppy that has been damaged. (FLOPPY.FREE.PAGES) [Function] This function returns the number of unallocated free pages on the current floppy. Pilot floppy files are contiguously represented on floppy disks. If you are going to use your floppy interactively (you are not just doing a simple series of COPYFILEs after a FLOPPY.FORMAT), it is suggested you do not fill the floppy to capacity. Try to keep such a floppy < 75% full. (FLOPPY.COMPACT) [Function] If your floppy is stable--there are no extant ?FLOPPY? streams--FLOPPY.COMPACT may be used to compact your floppy, moving files toward the front of your floppy so that all free blocks on your floppy can be combined into one free block. (FLOPPY.SCAVENGE) [Function] This function attempts to repair a floppy whose critical records have become confused. (FLOPPY.RESTART) [Function] A last resort to try to restart ?FLOPPY? if you think ?FLOPPY? is smashed. FLOPPY.RESTART will recreate all ?FLOPPY? internal globals. Be warned that any outstanding ?FLOPPY? streams will be lost if you do (FLOPPY.RESTART). Try switching floppies or opening and then closing the floppy drive door first.? There are two ports on the Xerox 1108 capable of supporting RS232 communications: the TTYPort (which is standard equipment) , and the RS232C port, (which is the E30 equipment option). Both ports exit the machine chassis at the rear, in female 25-pin D-shell connectors. The E30 option will have a label like: J11 RS232 for its associated connector.The TTYPort will be variously labeled either Printer/DTB or Printer K/B - Terminal However, the correct RS232C interface is only obtained by inserting the extension cable supplied with the E30 kit into the RS232 connector on the machine chassis. If the extension cable is not included with the E30 kit , a straight-through cable should be built with two 25 pin D-shell male connectors. Similarly, the correct interface for the TTYPort can only be obtained by the use of adaptor cables, which will be explained in more detail below. Looking at the RS232C port from the end of the extension cable, it is a standard RS232C configuration for DTE devices (DTE means "Data Terminal Equipment"; the word "terminal" should not invoke the image of a workstation, but rather the terminus of a logical circuit). A DTE device is supposed to terminate in a male connector. A female connector generally implies a DCE configuration (DCE means "Data Communications Equipment"), but many manufacturers of RS232C interfaced devices do not consistently obey this convention. Thus it is ocasionally necessary to wire an adaptor cable of some kind, and there is much lattitude in configuring it. In the normal case, such as using an off-the-shelf modem, the connector on the device will be female, and present a DCE interface. In order to connect two DTE devices, it is necessary to use an adaptor cable which has female connectors on each end; this kind of adaptor is standardly called a "null modem", because it permits the two DTE devices to plug into what they may view as a DCE -- a modem. Two 25-pin, Female D-shell connectors on a moderate length of cable. Pin 1 to pin 1 Pin 2 to pin 3 Pin 3 to pin 2 Pin 4 to pin 5 Pin 5 to pin 4 Pin 6 to pin 20 Pin 7 to pin 7 Pin 20 to pin 6 It may readily be seen that this cable is symmetric, i.e. identical, at both ends. There is no external RS232 cable supplied as standard equipment with the 1108, and it thus becomes necessary for the user to make one of two different kinds of cables depending on his needs. In order to present a true RS232 interface, the following non-symmetric cable must be constructed:? The 1108 end of the cable must be a 25-pin D-shell male connector, with pins 4 and 8 shorted together; do not put any other wiring onto pin 4 or pin 8. The other end should also be a 25-pin D-shell male connector, and the wiring between pins is similar, but not identical, to that of the null modem above: Xerox 1108 side External device side Pin 1 Pin 1 Pin 2 Pin 3 Pin 3 Pin 2 Pin 6 Pin 20 Pin 7 Pin 7 Pin 20 Pin 6 Using this adaptor cable, the TTYPort presents a DTE interface to the world, and may be connected to any modem or other DCE equipment. However, one may wire a cable which includes the "null modem" capability, and so connect the TTYPort directly to a male connector of a VAX, a Xerox 1100, or a properly interfaced DTE connector of another Xerox 1108. Since a "null modem" reverses the same logical circuits that the above adaptor reverses (pins 2-3 and 6-20), then this short-cut cable is wired as follows: Xerox 1108 side External device side Male connector Female conector Pin 1 Pin 1 Pin 2 Pin 2 Pin 3 Pin 3 Pin 6 Pin 6 Pin 7 Pin 7 Pin 20 Pin 20 As before, this cable is non-symmetric and must have pin 4 and 8 shorted together on the 1108 side.? As mentioned above, there is a growing tendency to put female connectors on the chassis of electronic equipment, regardless of whether or not the connetion presents a DCE interface. Generally, this implies that one must build an adaptor cable for such a device; but in practice, it is more useful to combine the adaptions for both the computer side and the device side into one single cable. To connect an 1108 to an Epson FX-80 printer, one may build a variation of the cable called a "short-cut" above, for use from the TTYPort only. The only difference is in the use of a male connector for the printer side. 1108 side Epson FX-80 side Male connector Male connector Pin 1 Pin 1 Pin 2 Pin 2 Pin 3 Pin 3 Pin 6 Pin 6 Pin 7 Pin 7 Pin 20 Pin 20 As before, this cable is non-symmetric and must have pins 4 and 8 shorted together on the 1108 side. To connect to an Epson FX-80 from the RS232C port, the following cable may be used, which differs from a null modem only in that male connectors are used instead of female: Two 25-pin, male D-shell connectors on a moderate length of cable.? Pin 1 to pin 1 Pin 2 to pin 3 Pin 3 to pin 2 Pin 4 to pin 5 Pin 5 to pin 4 Pin 6 to pin 20 Pin 7 to pin 7 Pin 20 to pin 6 It may readily be seen that this cable is symmetric at both ends. This cable will plug directly into the "J11 RS232" connector (rather than into the end of the standard adaptor cable). One may also use a female connector on one end, and thus have a non-symmetric cable which will plug into the end of the standard adaptor cable; this may be more useful if it is difficult to reach the back of the machine. To test for a working RS232 connection between Machine A (a Xerox 1108) and Machine B (a Xerox 1108 or Xerox 1100) by moving a file between them, proceed as follows: 1. Load RS232CHAT.DCOM and RS232FTP.DCOM on both machines 2. Call RS232INIT to set up parameters (see documentation) 3. Do (RS232CHAT) on both machines (you will be prompted for a window) Whatever you type on machine A should be echoed on machine B, and vice versa. To transfer a file from machine A to machine B: 1. On machine A type: (RS232PUTFILE 'XYZ 'TEXT 'MODEM) 2. On machine B type: (RS232GETFILE 'XYZ 'TEXT 'MODEM)? This will transfer file XYZ in "Text" or "ASCII" mode. NOTE: For customers who have a Xerox 1100 as well as a Xerox 1108 (not connected by the Ethernet), a sysout can be transferred from one machine to the other, if there is enough space on the local ?DSK? volume. Vax side: Set baud rate at which files will be transfered on the Vax side using the VMS command SET. For example, to set to 1200 baud, do: -SET TERM TTA1:/SPEED=1200/PERM 1108 side: After loading RS232FTP.DCOM, RS232CHAT. DCOM, initialize with RS232INIT. Example: To communicate with a VAX at 1200 baud, through the RS232C port: VAX side: SET TERM TTA1:/SPEED=1200/PERM 1108 side: (RS232INIT 1200 8 NIL 1 NIL 'RS232C), then (RS232CHAT) and type a <CR>. You should be able to use the Chat window like a VAX teletype terminal. By matching the baud rate on the VAX ( through SET TERM) with that on the 1108 (through RS232INIT) you can use any speed up to 9600 baud. 1. After loading VMS Modem software (available from Xerox on mag tape), and setting the baud rate on the VAX side do either:? a. File from VAX to 1108: 1) Type in the Chat window: $MODEM file.name/SEND/DEV= (port name)/ TEXT or ASCII 2) Type in the TTY window : (RS232GETFILE filename filetype protocol) b. File from 1108 to VAX: 1) Type in the Chat window: $MODEM file.name/REC/DEV= (port name)/TEXT or ASCII 2) Type in the TTY window: (RS232PUTFILE filename filetype protocol) Example: a. You have a file XYZ on the local disk of an 1108 and want to transfer this file to the VAX: 1) Type in the Chat window: $MODEM XYZ/REC/DEV = TTA1:/TEXT 2) Type in TTY window: (RS232PUTFILE '?DSK?XYZ 'TEXT 'MODEM) b. You have a file called TEC.COM stored on the VAX and want to transfer it to an 1108: 1) Type in the Chat window: $MODEM TEC.COM/SEND/DEV = TTA1:/TEXT 2) Type in the TTY window: (RS232GETFILE 'XYZ 'TEXT OR BINARY 'MODEM) To transfer at 9600 baud: SET TERM/PERM/ALT/SPEED=9600 TTA1: ? Instead of opening a chat window , you can use the function (RS232LOGIN HOST USERNAME PASSWORD HOSTSYSTEMTYPE) to login to the VAX. If you supply user name and password to the RS232LOGIN function, you should not attempt type-in until the function has returned NIL. a. To send a file to the VAX , type in the TTY window: (RS232PUTFILE filename filetype protocol remote.command.string) b. To receive a file from the VAX, type in the TTY window: (RS232GETFILE filename filetype protocol remote.command.string) Example: To transfer file XYZ from an 1108 to the VAX, type in the TTY window: (RS232PUTFILE 'XYZ 'TEXT 'MODEM "MODEM XYZ/REC/DEV =TTA1:/ <CR>") To receive file TEC.com from VAX, type in the TTY window: (RS232GETFILE 'TEC.COM 'TEXT 'MODEM "MODEM TEC.COM/SEND/DEV=TTA1:/<CR>") ? (This page intentionally left blank)