{Begin SubSec Using Interlisp-D on the Xerox 1108} {Title Using Interlisp-D on the Xerox 1108} {Text Interlisp-D runs on the Xerox 1108 as well as the Xerox 1100 and Xerox 1132. Xerox 1108 configurations supported include the Xerox 8011 (10MB SA1000 disk), Xerox 8012 (29MB SA4000 disk), Xerox 8014 (40MB Quantum disk) with memory sizes from 1 MByte to 1.5 MByte. All versions are completely compatible; It is possible to take {it any} Interlisp-D memory image and move it directly from one machine to another. Xerox 1108 Interlisp-D is implemented solely in microcode and Interlisp; it has no Mesa nor BCPL, and its microcode fits in the standard 4K control store. The Xerox 1108 is booted from the disk by a slightly generalized Initial microcode. It can be installed from floppy disks or from a file server. Any Xerox 8010 workstation with sufficient memory and a Pilot Logical Volume with approximately 12000 pages can run Interlisp-D, without disturbing Mesa or Star. {Begin SubSec Installing Interlisp-D with Othello} {Title Installing Interlisp-D with Othello} {Text Othello is the Mesa development environment utility for managing Pilot Volumes as documented in the "Mesa User's Guide" (which can be obtained from the Xerox Office Systems Division). Othello can be used to install Interlisp-D. You must first start by booting the Othello utility on your Xerox 1108. To boot (start) a Xerox 1108, locate the maintenance panel under the floppy drive. Next to the red numbers you will find two buttons, labelled "B Reset" and "Alt B". Press the left boot button, and wait about a minute while diagnostics run until the installed boot program appears. If you want to skip over diagnostics you can do an "Alt-Boot-1", otherwise known as a "One Boot". This is done by pressing both buttons, then releasing the left button. The lights will cycle from 1 to 10 until you let go of the button: these are the boot options. To boot from the hard disk without diagnostics release the right button when 0001 is displayed by the maintenance panel lights. The program you start may be Othello, Star, Tajo or nothing. If you don't get Othello from the hard disk, you may be able to boot Othello from the Ethernet. Try an "Alt-Boot-3" -- i.e., press both buttons, release left button, wait until the lights show 0003, and then release the right button. After a few minutes, you should be in Othello. If you cannot boot from the Ethernet you will need an Othello 10.0 bootable floppy. Insert it into your floppy drive, label side up, close the drive panel, and do an "Alt-Boot-2" (press both buttons, release left button, wait until the lights show 0002, and then release the right button). Othello will display a herald, such as: {lispcode Othello 10.0 of 1-Mar-83 18:06:30 PST Processor = 0AA001EE1H = 25200017347B = 2-852-134-631 Memory size = 1536K bytes = 768K words > Online Drive name: RD0} Type a "carriage return" to the Online command after RD0. If you have never installed Lisp on this machine before, you will need to reconfigure the disk into logical volumes with a Lisp volume sufficient to hold Interlisp-D. Use the "Login" command to log in with your name and password: {lispcode > Login User: Masinter.PA Password: ******} The command: > @[phylum]Fugue>PartitionLisp.othello will configure the disk into two logical volumes, one of 800 pages called Othello, and the rest of the disk in the second volume, Lisp. This command file will also install Othello into the first volume, since partitioning erases the disk. The command file > @[phylum]Fugue>InstallLisp.othello will install [phylum]Fugue>Lisp.SYSOUT onto the Lisp volume and start it. To boot Mesa/Star which was previously installed for booting, do a "One Boot" as described above. From inside Lisp, the (LOGOUT) function will automatically cause a "One Boot", so that it is possible to switch back and forth between Mesa and Lisp without touching the boot button. To remove Lisp from your disk use Othello to reinstall a normal [iris|rain]10.0>basics>SAx000Initial.db and reinstall diagnostics from [iris|rain]10.0>basics>Moonboot.db. The command > @[Phylum]Fugue>InstallDemo.othello is identical to InstallLisp.othello, except that it fetches DEMO.SYSOUT instead of LISP.SYSOUT. To fetch other SYSOUT files of your own making or from file servers other than Phylum, you can edit the .othello command file using your favorite text editor as appropriate. (Please note that only SYSOUTs made from the most recent versions on [phylum]Fugue> can be installed on a Xerox 1108. Chorus or older Fugue versions WILL NOT WORK.) Note: Othello network communication is based on PUPFTP. Presently the 3Mb to 10Mb Gateways will forward PUPs only to explicitly registered Xerox 1108s. A network adminstrator can Xerox 1108s in the gateway tables. (Webster network center or PARC can provide clarification if necessary). The disk utility Othello cannot reach an IFS file server without PUP forwarding by the gateway. Initial microcode is the first phase of booting and overlays itself with either diagnostic microcode in a "zero boot" or with Mesa microcode in an "Alt-Boot-1". We substitute the Lisp memory image for diagnostic microcode and, thereby, have a choice of Lisp or Mesa by zero or one booting. Lisp10SAx000Initial is slightly modified Initial microcode for the SA1000 or SA4000 or Q2040 hard disk that can read boot files larger than 128KB). For users who wish to remain compatible with Mesa 8.0 (Trinity), a Lisp8SAx000Initial.db is available on [phylum]Fugue>. }{End SubSec Installing Interlisp-D with Othello} {Begin SubSec Installing Interlisp-D from Floppy Disks} {Title Installing Interlisp-D from Floppy Disks} {Text Interlisp-D can be saved on floppy disks a way that it can be installed directly from floppies, via the Services Installation Utility (Prometheus). The DEMO system will fit easily on three double-density double-sided floppies. Documentation for making a set of floppies from a SYSOUT file is covered in the file [Phylum]Fugue>MakeLispFloppies.DOC. We will make available upon request sets of floppies for our standard releases. }{End SubSec Installing Interlisp-D from Floppy Disks} {Begin SubSec Keyboard and Mouse} {Title Keyboard and Mouse} {Text On the Xerox 1108, Interlisp-D supports both the two-button and the three-button mouse. The "center" key on the upper left hand side of the terminal is interpreted the same as having the middle mouse button. On the standard Xerox 1108/Star keyboard, the shiftlock is always released by holding down either shift key. Some familiar characters are generated by unfamiliarly labelled keys, as outlined below. CTRL = PROP'S (next to left shift) \ = FONT | = shift-FONT _ = right quote (to the right of ') ^ = shift-right-quote TAB = key with underscored right arrow (=>) ESC = key above tab with right arrow (->) BS = key at upper right with left-arrow (<--) blank-middle = OPEN blank-top = KEYBOARD blank-bottom = STOP Interlisp-D supports arbitrary redefinition of key actions via the KEYACTION function. For example, (KEYACTION 'SUPERSCRIPT '(LOCKDOWN)) (KEYACTION 'SUBSCRIPT '(LOCKUP)) will make touching the "superscript" key turn on caps-lock, and "subscript" turn it off. It is possible to remove the spring-lock from the "lock" key and turn it into an alternative to "control" via (KEYACTION 'LOCK '(CTRLDOWN . CTRLUP)) Also, (KEYACTION 'BS '((1 23 NOLOCKSHIFT))) will make the backspace key (labelled <-- on most 1108 keyboards) generate a control-W when the shift key is held. Alternatively (RAISE 0) will change the case in the "T" terminal table, although programs which create their own terminal tables or do not use a terminal table (e.g., TEDIT) will not be affected. KEYACTION know about all of the keys on the standard 8010 keyboard, with names corresponding to the names printed on them: Keys with common interpretation on 1100/1132 keyboards: (\ | FONT), (LF SAME), (BS <-), (BLANK-MIDDLE OPEN), (BLANK-TOP KEYBOARD), (ESC ESCAPE ->), (TAB =>), (CTRL PROP'S), (DEL DELETE), (BLANK-BOTTOM STOP). new keys: (SKIP NEXT), (UNDO), (MOVE), (MARGINS), (FIND), (AGAIN), (HELP), (DEF'N EXPAND), (CENTER), (BOLD), (ITALICS), (UNDERLINE), (SUPERSCRIPT), (SUBSCRIPT), (LARGER SMALLER), (DEFAULTS) }{End SubSec Keyboard and Mouse} {Begin SubSec Filing} {Title Filing} {Text Restriction: Currently, Interlisp-D on the Xerox 1108 supports only a temporary version of the {lisp {bracket DSK}} device: files stored on {lisp {bracket DSK}} on a Xerox 1108 are ephemeral and do not persist across system reloads. Filing both via Leaf, PUP/FTP and NS filing protocols is supported. Full support for the local disk will be available in a maintenance release. }{End SubSec Filing} {Begin SubSec TeleRaid} {Title TeleRaid} {Text The Xerox 1108 has no Raid debugger (since Raid is written in BCPL), but does provide a low-level "TeleRaid" service when it would otherwise fall into Raid. When the machine is in TeleRaid, it can be debugged from another machine (another Xerox 1108, or an 1100 or 1132), or in some cases the user can issue commands to continue or break into the computation in limited ways. When the maintenance panel of a Xerox 1108 indicates a Lisp-induced halt, pressing the {lisp UNDO} key starts the TeleRaid server. TeleRaid changes the cursor to the TeleRaid cursor, takes over the ethernet controller and keyboard, then waits for commands from either the ethernet or the keyboard. Keyboard commands are given by holding down the command key ({lisp STOP} on the Xerox 1108, or bottom blank on the Xerox 1100 or 1132) and striking another key. As you strike a key, the cursor changes to give feedback about the command you are about to execute; the command is executed when you let go of the key, but if you let go of the command key first, the command is aborted. The commands are as follows: {Begin LabeledList TeleRaid commands} {Indent 10percent} {Label {lisp N}} {Text Like control-N in Raid; Continues the computation.} {Label {lisp D}} {Text Like control-D in Raid; Does a {fn HARDRESET}.} {Label {lisp B}} {Text Causes a break underneath the error. TeleRaid refuses to execute the {lisp B} command if the user is executing in a place (e.g., inside of a garbage collection) where it would be dangerous to allow a user break.} {Label {lisp P}} {Text Displays the machine's Pup host number (decimal) in the maintenance panel (for remote debugging).} {End LabeledList TeleRaid commands} You can put an Xerox 1100 or Xerox 1132 into TeleRaid server mode by giving the {lisp R} command to Raid and thus remotely debug it or make use of TeleRaid's {lisp B} command (nothing corresponding to this command is available in standard Raid). Once a machine is in TeleRaid, then another machine may be used to debug it by calling {lisp (TELERAID {arg HOST})},{index TELERAID Fn} where {arg HOST} is the Pup name or number of the machine running a TeleRaid server. The function {fn TELERAID} is not in the standard Interlisp-D loadup; to load it, you must load the files {lisp READSYS.DCOM}, {lisp RDSYS.DCOM}, {lisp VMEM.DCOM}, and {lisp REMOTEVMEM.DCOM}. The user interface for {fn TELERAID} is similar to that of Raid; type {lisp ?} for an enumeration of commands. }{End SubSec TeleRaid} {Begin SubSec Exiting Interlisp} {Title Exiting Interlisp} {Text On a 1108, {fn LOGOUT} will simulate an "Alt-Boot-1" and will boot the version of Mesa which is installed as your Physical Volume Boot File. }{End SubSec Exiting Interlisp} {Begin SubSec New Functions in Xerox 1108 Interlisp-D} {Title New Functions in Xerox 1108 Interlisp-D} {Text {FnDef {Name SETMAINTPANEL} {Args N} {Text Sets the number in the maintenance panel to be {arg N}. }} {FnDef {Name BEEPON} {Args N} {Text Turns on the tone generator in the keyboard with frequency {arg N}. For example, {lisp (BEEPON 440)} will start a continuous "A". }} {FnDef {Name BEEPOFF} {Args} {Text Turns off the tone generator. }} }{End SubSec New Functions in Xerox 1108 Interlisp-D} {Begin SubSec Xerox 1108 Maintenance Panel Codes} {Title Xerox 1108 Maintenance Panel Codes} {Text There are two types of maintenance panel codes: Progress codes and error codes. Progress codes are placed in the Maintenance Panel at various stages of initialization. Error codes are traps which freeze or blink the error number in the maintenance panel. They are all fatal errors. 0000-0499 boot-time diagnostics 0500-0699 IOP code 0700-0899 Pilot microcode 0900-0999 Pilot 1000-6999 tech-rep diagnostics 7000-8887 Star 8888-8888 MP lamp test 9000-9999 Lisp 0096 Insufficient real memory (<1MByte) for lisp 0200-0299 Booting phase 2 (Initial microcode) 0200 normal booting phase 2 0201 CP error in reading from boot device 0202 null Mesa germ installed in physical volume 0203 broken rigid disk boot chain (possibly intermitant) 0204 Illegal IOP port command 0205 CP Trap (CS parity or double-bit memory error) 0206 null diagnostic microcode in physical volume 0207 null Pilot/Mesa emulator microcode in physical volume 0208 null Mesa germ installed in physical volume 0500-0502 Domino progress codes 0500 StartDomino Domino has started 0501 InitReadTOD Domino starting to read the TOD clock 0502 InitReadTODdone Reading of TOD clock completed (next MP number from Lisp) 0505-0599 Domino error codes 0505 CSParity CS parity error detected 0506 BurdockCPDisabled Burdock attempted to use EtherKludge 0507 CPBurdockDisabled CP attempted to use EtherKludge 0508 IOPBreak An IOP break with no IOP kernel 0509 IllegalIOPIntr Illegal IOP interrupt 0510 BadMapEntry Incorrect vm Map entry in IOP access. 0511 NoCPDmaComplete CP Dma operation failed to complete 0512 NoCPDmaChannel CP Dma channel not specified 0513 ReadCPPortDead CP not responding to Read CPPort 0514 WriteCPPortDead CP not responding to Write CPPort 0520 StackOverflow A task's stack has overflowed 0565 InvToneCmd Invalid keyboard tone generator comnd 0570 InvProcCmd Invalid cmd value in Processor CSB 0571 UnImplCmd Unimplemented cmd in Processor CSB 0572 SetTODError The Time-Of-Day could not be set 0576 LSEPCtlOVR LSEP Control CSB overrun 0580 NoValidCommand Invalid floppy IOCB command 0581 UnImplFloppyCmd Unimplemented floppy IOCB cmd 0582 InvalidEscapeCmd Invalid Escape floppy cmd 0583 CommandTrack Floppy track register is not correct 0584 TrackToBig Floppy track number is too large 0585 BadDmaChannel Couldn't program Floppy Dma 0586 NoDmaEndCount1 External Dma End Count not set 0587 NoDmaEndCount2 Internal Dma End Count not sete8(0,4704)(1,9760) 9000-9299 DLion lisp microcode error detected 9001 Control store parity error 9004 Attempt to reference virtual address >22 bits 9005 double bit memory error or non-existant memory reference 9001 CSParErr Control store parity error 9002 StackErr hardware stack overflow 9003 IBEmptyErr instruction fetch unit empty error 9004 VirtAddrErr Attempt to reference virtual address >22 bits 9005 EmuMemErr double bit memory error or non-existant memory 9013 NegPcError inconsistent PC at FnCall 9014 applyUfn arg to apply not integer 9016 notFreeTrap stack allocation error 9051 BadUfnTable 9120 MiscErr opcode no such register 9121 MiscErr opcode bad 2nd byte 9136 CycleMask bad caller 9129 M1Loc microcode error 9130 M2Loc microcode error 9131 M3Loc microcode error 9048 ReFOvr page fault under page fault 9049 Ghost context switch 9127 PcNegError inconsistent PC at Punt 9300-9399 Lisp error calling \MP.ERROR 9301 \MP.NORPT "No space for Real Page Table" 9302 \MP.INVALIDVMEM 9303 \MP.IOCBPAGE "No place for IOCB page at startup" 9304 \MP.MOB "Map out of bounds" 9305 \MP.INVALIDADDR 9306 \MP.INVALIDVP 9307 \MP.CHAIN.UNAVAIL "Unavailable page on real page chain" 9308 \MP.SELECTLOOP "Loop in \SELECTREALPAGE" 9309 \MP.NEWPAGE "Attempt to allocate already existing page" 9310 \MP.NEWMAPPAGE "\DONEWPAGE failed to allocate new map page" 9311 \MP.BADLOCKED "Locked page occupies a file page needed to lock another" 9312 \MP.CLOCK0 "Arg to CLOCK0 not an integer box" 9313 \MP.RESIDENT "Fault on resident page" 9314 \MP.STACKFAULT "Fault on stack" 9315 \MP.INVALIDVMEM "Vmem inconsistent at startup" 9400-9899 unassigned 9900-9999 Attempt to call Raid or Alto O.S. (BCPL Subr) 9900 \uCodeCheck 9901 was\StackOverflow 9902 \NWWInterrupt 9903 was\PageFault NIL 9904 \StatsOverflow 9905 NOOPSUBR 9906 \BACKGROUNDSUBR 9907 \CHECKBCPLPASSWORD 9908 DISKPARTITION NIL 9909 DSPBOUT (CHARCODE) 9910 \DSPRATE (PARM) 9911 \GATHERSTATS (FID) 9912 \GETPACKETBUFFER NIL 9913 \LISPFINISH 9914 \MOREVMEMFILE (FILEPAGE) 9915 RAID (MESS1 MESS2 FLG) 9916 \READRAWPBI NIL 9917 \WRITERAWPBI (PBI) 9918 SETSCREENCOLOR (FLG) 9919 SHOWDISPLAY (BASE RASTERWIDTH) 9920 \PUPLEVEL1STATE (FLG) 9921 \WRITESTATS (TYPE X1 X2 X3 X4 X5 X6 X7 X8 X9 X10) 9922 \CONTEXTSWITCH 9923 \COPYSYS0SUBR (FID) 9924 \WRITEMAP (VP RP FLAGS) }{End SubSec Xerox 1108 Maintenance Panel Codes} }{End SubSec Using Interlisp-D on the Xerox 1108}