Maxc Operationsby Edward R. Fiala, Charles M. Geschke, Edward Taft, and Ronald L. WeaverMaxc Document 18.7January 1, 1982This document describes many of the commonly used procedures for Maxc operation, as well as anumber of uncommon procedures used during system debugging and maintenance. This isintended primarily as a reference document for system personnel. However, in the absence ofsystem personnel, any user should be able to restart Maxc from a Tenex crash using the procedureoutlined in Section 2.XEROXPALO ALTO RESEARCH CENTER3333 Coyote Hill Road / Palo Alto / California 94304 Qp J#qXI Cc A 9,1 7T 6A 4:!? 2p$"r$ qX$HsF4N =4PMaxc OperationsTable of ContentsiSectionPage1.Introduction11.1Overview of the Maxc System11.2A Word on Terminals and Consoles22.Tenex Crashes33.Power Up104.Power Down115.Loading the PDP-10 Emulator126.Starting Tenex137.Stopping Tenex148.AltIO168.1.Calling AltIO168.2.AltIO Commands179.Maxc2 Midas Operation209.1.Starting Midas209.2.Midas Display209.3.Midas Command Menu219.4.Keyboard239.5.Command Files249.6.Loading Programs269.7.Dumping Microprograms279.8.Tenex Microcode279.9.Power On-Off279.10.Testing Through the Maintenance Interface2910.Operating Tenex Microcode from Midas3111.Interpreting Checker Failures3312.Using Micro-Exec3412.1.Tenex Disk Structure3412.2.Micro-Exec Command Descriptions3512.3.Micro-Exec Command Summary4013.Hardware Diagnostic and Maintenance Procedures4213.1.Running Microprocessor Diagnostics4213.2.Running PDP-10 Diagnostics4413.3.Memory Maintenance4513.4.Disk Maintenance4713.5.TM49 fti:uX H)t_vA [q CY CX C T C Q+B` M B` JGB` F B` Cc B` ?B`>& B`<\ B` 8B`7 B`5U B`3 B`1 B`/ B`.* B`,_ B`* B`( B`' )B` #$B` B` B` B` B`J B` .B`  "B`C B`x B`  B`  B` 98]o(Table of ContentsMaxc Operationsii13.6.MemBash4913.7.SMIDiag4913.8.AITest4914.Recovery from Checkdsk Errors5015.Bsys Operation5315.1.Backup Procedures5315.2.Incremental Dumps5415.3.Full Dumps5515.4.Full Backup to Tape5715.5.Continuing Interrupted Dumps5715.6.Restoring Files from Backup5715.7.Restoring the Entire File System5815.8.Archive Procedures5915.9.Organization of the Archive Tapes6015.10.Archiving Files to Tape6015.11.Retrieving Files from Tape6216.Contents of the Alto Disk6417.Software Maintenance Procedures6517.1.Midas6517.2.AltIO6517.3.TM, MemBash, SMIDiag, Alto Microcode6617.4.Tenex and Diagnostic Microcode6617.5.Tenex6618.Local Memory Chip Charts6719.Creating and Destroying Maxc Accounts6819.1.Obtaining a Maxc Account6819.2.General Information About Maxc Directories6819.3.The EcCREATE AND EcPRINT Commands7219.4.Creating a Maxc Directory7519.5Editing the Grapevine Data Base7719.6.Changing the Password and Other Modifications to Directories7819.7.Destroying a Maxc Account7919.8.Operations on MESSAGE.TXT Files8019.9.Reinstantiating a Destroyed Directory8119.10.Retrieving Archived Files for Defunct Directories8219.11.Printing Accounting Information8220.Miscellaneous Maxc Room Procedures8320.1.Updating the Arpanet Host Name Table8320.2.Periodic deletion of SYSTEM files8420.3.Changing PARC-GUEST Password8420.4Before doing a FORCED ARCHIVE84)fuX;ti _q B`]K B`[ B` XXB` T B`R B`Q B`O= B`Mr B`K B`I B`H B`FH B`D} !B`B B`@ B` =vB` :B`89 B`6o B`4 $B`2 B`1 B` -B` *+%B`(` B`& *B`$ %5$ %5$ B`" B`! B`H , , , and are used to stand for the carriagereturn, line feed, space, and escape keys.1.1 Overview of the Maxc SystemFrom a user terminal, Maxc looks like a PDP-10 running the Tenex operating system. However,this is mostly an illusion. Maxc is really a PARC-constructed microprocessor which emulates thecomplete user-mode PDP-10 instruction set, as well as some privileged instructions, equivalents forthe BBN pager operations, and an additional instruction set for Interlisp. The Tenex system hasbeen considerably modified to account for the many differences between Maxc and a PDP-10,particularly in the area of input/output.The system consists of the following major components:A.The Maxc microprocessor itself. Besides performing PDP-10 emulation, Maxc also directlycontrols the disks.B.A 384K-word by 48-bit MOS memory system, with hardware built in for correcting single-biterrors in any word and detecting (though not correcting) double errors.C.Up to eight disk drives, each connected to its own controller inside Maxc.D.The Maxc system I/O controller is an Alto, which provides Maxc access to the Alto's ownmonitor, a Diablo printer and the Ethernet and the IMP interface supporting Maxc's connection tothe ARPA Network.The Alto also performs a number of other important functions relating to system initialization anddebugging. It has direct access to Maxc's main memory (through a separate memory port) andindirect access to all of the internal microprocessor registers and memories. It can load microcodeinto Maxc's writable control store, and can command Maxc to start and stop execution, single step,and perform a number of other useful operations.The Maxc system operates under the control of a large complex of support software, most of whichis described in this document. These programs are described here, in approximately the order theywould be used if one were to bring up the system from scratch. fpi>q Gp#^rX [:s,1 Yo> W': U< RhU P6( N* Ka2- II?rI * G* Br ?As\ =vO ;:) 9C 8K 6K) 2X6 /h29 - *+2-, (`G $2XJ !}2L K  u"@ J U E K0 R  V D> =\IntroductionMaxc Operations2When first booted, Maxc's Alto runs under the control of the standard Alto operating system andhas a number of the usual Alto subsystems on its disk.Assuming the necessary files have been loaded onto the Alto disk, the next program to be run isMidas. Midas is the loader and debugger for Maxc microprograms. It has a large number ofcommands for examining and changing microprocessor registers and memories and for starting,stopping, and single-stepping the microprocessor. Most of its capabilities are used only duringdebugging; in the normal course of events, it is used only to load the PDP-10 microcode intoMaxc, and it then passes control to AltIO.AltIO is the program in control of the Alto while Tenex is running on Maxc, and contains all thenecessary I/O drivers for communicating between Maxc and the peripherals connected to the Alto.AltIO also has a command decoder, by means of which the operator may examine and changememory, start and stop the Maxc microprocessor, and perform a number of other operations.One important AltIO operation is to boot into Maxc main memory and start a PDP-10 programcalled Micro-Exec. Micro-Exec has commands for performing a large variety of stand-alone Maxcoperations, such as setting up the disk configuration, copying disk packs, and (most important)loading Tenex from disk and starting it.Most of the rest of this document is devoted to explaining the above operations in much moredetail.1.2.A Word on Terminals and ConsolesThe Alto's controlling terminal is, of course, the monitor labelled "Maxc Alto". When the Alto isrunning the control program AltIO, the display is split into two main windows. The upper windowis the command window for AltIO itself, whereas the lower window is the emulated Maxccontrolling terminal. Keyboard input is directed to the window in which the blinking cursorappears; this may be changed by striking the middle or bottom unmarked key on the right side ofthe keyboard. The Maxc log is a Diablo printer.Ordinarily the screen is black; it will turn on when you type something on the keyboard.Note: Subsequent sections discuss commands that you may have to type to various systems. If youscrew up, the following table gives standard conventions for deleting the previous character orprevious command typed:Delete CharDelete CommandExecutiveBS or AcDELMidasBS or AcDELAltIOBS or AcDELThe TI-700 terminals in the room are connected to the Alto DLS, which is not directly a part of theMaxc system.)fq ;pi _sJ ]K6 Y-2 XZ VD< Ty` R+2 P* Mr T K4+ I? HY DB BM A O ?A( ;!; : 51r2X 1sb /M .*< ,_1+ *N (0 %XX !tsT  R Q ? +i ms!-m! -!-  Xc U  >YMaxc OperationsTenex Crashes32.TENEX CRASHESIf a Maxc-Tenex maintainer is available at PARC, inform him of the crash and normally he willtake over. You should try the office numbers of the maintainers, even at odd hours, because theywork at irregular hours. Otherwise, be brave and read on.If you have not already done so, you should first familiarize yourself with the material in theIntroduction to this manual (Section 1). There is a map of the machine room posted on thebulletin board, and most of the equipment is labelled.There are obvious problems in attempting to describe what to do when a system crashes. Thissection simply outlines a few simple procedures whose purposes are twofold: (1) to collect dataabout the crash for subsequent analysis and (2) to restart the machine quickly, with as little statelost as is possible.Begin by checking the log book and the whiteboard for any special instructions before proceedingwith the following. The last few log book entries may describe a crash like the one that has justoccurred. This may suggest a restart procedure for you to follow.You should append a log entry to the logbook with your name, the date and time, a statement thatMaxc crashed, and any other information that you discover while following the procedures below.Recent error typeouts (e.g., memory parity error messages) should be cut out and taped in thelogbook or copied from the display into the log if relevant.Look carefully at the upper and lower windows on the Maxc Alto. (Type an "A" or something to activatethe display.) The upper window will show the "flashing-register" display and error messages fromAltIO; the lower window serves as a console teletype. Look at the Maxc2 logging terminal, aDiablo printer located behind the Maxc2 Alto console.Maxc Alto failures are generally manifested by an Alto Swat call or by the Alto hanging someplace.If it hangs, then the flashing-register display will not be updating TODCLK and none of the otherregisters in the flashing-register display will be being updated either.The upper window will show error messages from Tenex. The logging terminal will have numerousmessages typed out by Tenex before it crashed. The "flashing register" display shows the namesand contents of several Tenex core locations that are frequently updated during normal operation.For example, TODCLK contains the time-of-day, which is updated by AltIO; this register should begetting updated regularly by AltIO, if AltIO hasn't crashed. The Tenex scheduler will be frequentlyupdating the NBRUN-NBPROC word if Tenex is running normally.Information about the crash may be apparent to you when you read the print out on these. Thelogging terminal may have BUGCHK messages from Tenex; frequently the BUGCHK messages areirrelevant to the crash, but sometimes they are interesting. The log is normally filled with messagesabout network failures of various types and recoverable disk errors such as:**PUPSRV date time FTP: Server timed out ...***IMPBUG 8599 Header ...*DSKERR: ...These messages are usually irrelevant to the crash, so don't be overly concerned about them.However, if the crash is caused by a network jamup of some kind, the BUGCHK messages on thelogging terminal may give a clue to the nature of the problem (for Ethernet or ARPA networkfailures). fpi=SqXGp"]r& ZfsU XR W^: T3[ R2( Q+6 MD L{G J^ Is FHtEs DN C@B @ t!s >I = A ;< 8]-u% 6sI 5U\ 35 0ts." /!4- -H *rP (=" 'i5, %M $a&> "< ;" .X Q &LX, fJ  P ^B  >\x9Tenex CrashesMaxc Operations4When system personnel are not present, Tenex is generally left in a mode in which it attemptsrecovery from Tenex-detected errors. Thus most crashes handled by non-system people will be of amore obscure (relative to Tenex) nature. The following paragraphs describe some of the morecommon crashes and suggested recovery procedures.Your first objective in dealing with a crash is to determine what kind of failure caused the crash.To do this you will look at various symptoms and try to classify the failure. The following areplausible reasons for crashes:a. Ethernet problems occasionally cause Tenex to be inaccessible, even though Tenex has notcrashed. In this case, there will be no BUGHLT message from Tenex, no "Microcode halt"message from AltIO, and the flashing registers will be updating normally. This situation is normallyaccompanied by numerous network-related BUGCHK messages on the logging terminal. You candetermine whether or not this has occurred by typing control-C to the lower window of the Alto; ifTenex responds to control-C with a login message, then you know that it is still alive, and youshould find someone to fix the Ethernet. (If the cursor is not flashing in the lower window, youhave to type the bottom unmarked key at the right of the Alto keyboard before typing control-C.).b. Software or firmware bugs have been rare, usually related to the ARPA, Ether, and MCAnetworks, and these bugs generally manifest themselves only when the network hardware ismalfunctioning in some way. However, a Tenex BUGHLT or microprocessor hanging conditionmight be caused by a software/firmware bug.c. Disk drive or disk controller failures are frequent causes of crashes. These might be manifestedby one of the disk drives going into select-lock (a red light on the disk control panel turns on whenthis occurs.). Building power glitches might also cause this. A disk drive/controller failure willnormally show the symptom of a BUGHLT message in the lower window of the Alto. Disk failuresare discussed below.d. Main memory failures are generally manifested by a failure message from AltIO. Garden varietyuncorrectable double errors may result in the Tenex parity error sweep being invoked for a crashautorestart, and this may in turn be followed by a microprocessor halt as discussed below. Memorycabinet power supplies sometimes turn off due to shorts or other hardware failures, manifested byone of the four power supply lights on a memory cabinet turning off. An assortment of symptomsfor various memory failures are discussed below.e. Microprocessor failures are generally manifested by microprocessor halts, by peculiar TenexBUGHLT's, or by the microprocessor hanging. If the microprocessor hangs, the TODCLK item inthe flashing-register display will generally be updating normally (TODCLK is updated by AltIO,not Tenex), but other flashing-register display items will be unchanging. This could also occurwhen the core image of Tenex is smashed in some strange way.The various symptoms which imply one or another of these kinds of failures are discussed below.A. BUGHLT or BUGCHK: A message of the formBUGHLT at 73550$8B>>BUGADR BUGHLT/ CAI UUOH+4types out on the Maxc console. This occurs when the monitor is in debug mode, which shouldnever be the case unless system maintainers are present. However, if you cannot find one, set theDBUGSW and DCHKSW cells to zero and proceed from the breakpoint:)fqX ;pi _s] ]E \W Z1 W^X UM TV Q+tsG ON N#O LP KJ I"= HN Fa Ats7 @[E >G =S+ :'t&s' 8W 7 V 5] 4 0tsJ /hE -Z ,_01 *C )W0 &,ts( $B #$A ! U < X_ 2rsn C= C ;@ >[=Maxc OperationsTenex Crashes5DBUGSW/10DCHKSW/10PTenex will recover from the error if possible, else restart automatically with no further interventionrequiredSometimes Tenex will hang in the autorestart code which follows a "BUGHLT at nnnnnn" message.This may be indicated by TODCLK in the Tenex register display updating normally but nothingelse happening. In this case, lookup the message associated with the BUGHLT in theBUGSTRINGS.MAXC2 listing on the table. This frequently is caused by a disk or microprocessorhardware problem. Unless something more creative occurs to you when you read the BUGHLTmessage, try the "Last Resort" procedure in paragraph I below.B."Trouble with System Pack nnn" prints out on the Maxc console, followed by "Type M tomove pack, R to resume". This is caused by a disk unit going offline or failing in some equallycatastrophic way. If the source of the problem is obvious (e.g. someone switched the unit offaccidentally), rectify the problem, wait for the unit to be online (green light lit), and type "R" onthe Maxc console. In other cases, it is usually better to move the pack to a free drive (if there isone--frequently the only free drive has a Bsys backup pack mounted on it, which you may remove).After waiting for the new drive to be online, type "M" followed by the letter corresponding to thedrive you have moved the pack to (A through H). Tenex should now resume automatically.Sometimes disk units have gone into select lock without any apparent reason (e.g., after a buildingpower glitch). This can be cured sometimes by powering down the unit, letting it stop, thenpowering up again. After powering down the front panel switches and waiting for the disk unit tostop, you may have to turn off the AC power switch in back in order to clear select lock. If thedisk unit does not stop when you power down the front switch, do not turn off the AC power inback because the heads may not have retracted, and you will destroy the disk pack by poweringdown. We have had several failures like this.If moving the pack doesn't succeed in restarting Tenex, or if another crash occurs later, you willhave to restart by booting Micro-Exec. Then you will have to tell Micro-Exec what the new diskconfiguration is. This is done by using "Print.Disk.Configuration" and "Set.Disk.Configuration"commands as discussed in the Micro-Exec section of this document.If by unfortunate chance the drive that fails is the first one in the old configuration, then Micro-Exec will be in the first save area on that drive, and you will have to boot it by typing nB to AltIOas discussed in the AltIO section. This is a little different from the normal boot procedure whichdefaults the drive for booting to drive A.C."Micro Breakpoint" prints out in the AltIO command window. This message means that themicroprocessor hit a breakpoint, which is usually caused either by Tenex executing a HALTinstruction or by the microcode detecting some serious internal inconsistency.The only known HALT instructions in Tenex are associated with catastrophic disk errors, and amessage such asIRREC. READ ERROR IN DIRECTORY--BEWARE OF DISK WRITE FAILURETROUBLE WITH DISK PACK 000211is typed out on the Maxc console. Errors of this nature should be handled only by knowledgablesystem people, since the Tenex file system may be endangered. fpi=SqXGp^#_s^_]];.][\ X.8 V S7& R"= P !; ON M; L> G?2rs2 EP D7I BY A.S ?:& >&M <W 9wJ 7!; 6ot,! 4s] 3g t s ts 1./ 0_. -37+ +P *+"> (A %|0ts* #O "sC * 2rs> 8! N W e:X< _ = $ >]L`Tenex CrashesMaxc Operations6A "Micro Breakpoint" not accompanied by a printed message on the Maxc console is usually due toa microprogram-detected inconsistency. Perform the following procedure:1.Enter Midas by typing the following on the Alto keyboard:Strike the middle unmarked key.#3301P(to "un-protect" NVIO/AltIO):M...OK.(to enter Midas)2.Write down the contents of the following registers displayed by Midas:NPC IMA P Q STK 0 PC PISTAT F INSTR3.Execute the "Compare" command in the command menu (you must confirm it withReturn). If this prints "No errors" or "1 errors on Midas.Errors" then the microcode isok, so continue at step 6 below. Otherwise, exit to the Alto Executive with "Exit", issuethe command "Type Midas.Errors", and write down anything interesting. (Themicrocode legitimately clobbers SM location IODEND, so if this is the only error inMidas.Errors then nothing is wrong.) If there are any real errors, most likely a bipolarmemory chip has failed, and attempts to restart the system will probably be unsuccessfuluntil the chip is replaced. Notify a hardware maintainer.4.Type the commands "21;G" (which should end up within a few seconds at IMA=30),followed by "25;G", which checks the correctness of the microcode. If IMA=30, themicrocode is ok and you should go on to step 6. If IMA=20, the microcode isincorrect. Write down the contents of LM 10. If you are ambitious, consult Section 13for information on interpreting Checker failures. Run appropriate microprocessordiagnostics if you are familiar with them.5.Successively select the menu items "Run-Program" and "Tenload" using the left mousebutton.6.Attempt to "soft-restart" Tenex as follows:1Select menu items "AltIO", "Dont-Go", "Do-It". Then type::140Go [confirm] .If this is successful, Tenex will within a minute or so broadcast the message "Maxcresumed from service interruption" to all terminals. If not, follow the instructions in"Last Resort" (paragraph I below).D."Bipolar Memory Parity Error". Handle as in case C, except that interpreting the Checkerfailure is an especially desirable thing to do. Perform a "LMPEscan" before doing step 3, and writedown any errors reported. If bipolar memory parity errors keep occurring, notify a hardwaremaintainer, since it is necessary to change a bipolar memory chip.E."Fatal Memory Error, Maxc Stopped" on Alto console. This indicates that the memory is verysick, and a hardware maintainer should be notified.------------------------------1Note that it is generally possible to "soft-restart" Tenex even after running microprocessor diagnostics such as DGBASISandDGIML (but not DGM or DGMR, which are memory diagnostics).)fqX ;pi _s1. ]H)ZfX9W;U[U`U"T3tSUT3SWT3")QFM3)J$'I-<G=F$!D"1C$5A:@:)<=;eC9'%8]-*665U*)2)sM0)-z+.v*NsX:(t(s9( (sW(%7$4$"" 2rs 0 @^ ? 8B e2r"s9 3 :v :> 2= =Z VMaxc OperationsTenex Crashes7"Main memory error: DE q" where q = J, K, L, or M indicates a main memory storage problemin the indicated memory quadrant."Maxc halted with memory bus parity error" indicates a problem in the logic for generating orsending parity from the memory to the processor or in receiving parity by the processor, or intransmitting one of the data bits between the memory and the processor. It is normal for this tooccur in conjunction with a "Main memory error.""DIP in Q" (where Q = J, K, L, or M) means that the parity of the data on the bus from the portto the processor was incorrect. This will happen in conjunction with a "DE in Q" and isn'tsignificant in this case. In other cases it indicates a hardware problem in the port or in thetransmission path from the port into the processor.You should check the power supply lights before embarking on any other action. Enter the machineroom and locate the bank of logic racks. You will see the Maxc2 Alto (there is a sign on it). To itsright will be the cabinet containing the processor and port (labelled "Maxc2 processor"). The twopower lights at the bottom of the cabinet should be lit.To the right of the processor are memory cabinets. The right-most four lights at the bottom of eachmemory cabinet should be lit. (The two lights to the left of these are insignificant).If any of the power lights is not lit there are three possibilities: the light has burned out; someelectrical short has legitimately invoked the safety circuits and shut down the supply; or a glitch hasinvoked the safety circuits, but the hardware is ok (frequent source of failures). Because there maybe an electrical failure, you should notify a maintainer if possible. However, if you can't find one,hope that nothing fatal has occurred and proceed as follows:First, put the system disk drives in Read-Only mode; it is necessary to do this before power downuntil after power up. Then, power down processor, port, and memory, as discussed in the PowerDown section. This is done by running a program. Do not turn off any hardware switches. Thenpower up the processor, port, and memory as discussed in the Power Up section starting at step F.Note: You have to power down Maxc before powering up again.If this succeeds in getting the power supplies on again, try the cold start procedure for restartingTenex as discussed in Paragraph I. If it does not succeed, then the hardware is broken and has tobe fixed.If the lights are all on, and if you can't locate a hardware maintainer, you should restart Tenex fromscratch. If the failure is a double error caused by failure of storage components, then the restartprocedure will zone out the bad storage region so that Tenex will not use that area and the failurewill not reoccur. If the failure is more serious, such that the memory is unusable, then the hardrestart will fail and the hardware will have to be fixed. Paragraph J below discusses the hard restartprocedure.F. Alto crash. If the Alto has fallen into Swat (the message "Swat" followed by a number and adate appears at the top of the screen), record in the log book the information below the lowest lineof squiggles. Then press the boot button on the back of the Alto keyboard. Then issue thecommands:AltIO/H 140Go [confirm] .This should result in a Tenex "soft restart", as in Paragraph C, step 6. fpi=SqXGp _s N ]! ZfA X5) W^)8 U0 R U Q+U OI N#3 JtNs IsW G X Fk8 C@N AW >[ = c ;G :V 8< 5UG 3G 2L_ 0Y -tsX7 *rI (@" 'i $>U "d !612 Z .Z  ~r sQ '= v5& pX 9C  WC H 6 =[;DTenex CrashesMaxc Operations8G."Disk needs fixing" message from CHECKDSK. When Tenex autorestarts following aBUGHLT, it first runs the BSYS verify and CHECKDSK programs to determine whether or notthe file system has been damaged by the crash. If either of these programs detects a problem, itwill abort the autorestart. Fixing these problems is hazardous and should ordinarily be attemptedonly by a system maintainer. The procedures for recovering from CHECKDSK failures arediscussed in a later section (Section 14).H.No response from Tenex; i.e., no error messages have typed out and none of the abovealternatives seems to apply, but nothing happens when you type control-C on the Maxc console.This type of crash is particularly hard to diagnose unless sufficient information is recorded.First, note the numbers at the top of the Alto screen, and note whether any of them are changingover time.Second, enter Midas by typing the following on the Alto keyboard:Strike the middle unmarked key.#3301P(to "un-protect" NVIO/AltIO):M...OK.(to enter Midas)(If the message "Unclean Micro Stop" prints out, note this as well.)Now continue by carrying out the instructions given earlier beginning at paragraph C, step 2.I.Last resort. It may happen that a crash does not fall into one of the above categories or thatthe restart procedure fails. In this case, the following procedure will always succeed if all thehardware is working:1.Boot the Alto.2.Type the command:MIDAS TENGO 3.Wait about 30 seconds while the microcode loads and AltIO and Micro-Exec are started.Micro-Exec will execute an automatic "Go" command, after which you should enter dateand time if Tenex requests it. Generally, you can ignore bad-chip messages printed outduring memory testing--the regions of storage affected by bad chips are mapped out byTenex. Save the printout in the log book, however.If this doesn't work, try to find any one of the people listed below at PARC. If none of them isaround and the hour is between 9 AM and midnight, call one of the system maintainers. Ifbetween midnight and 9 AM, don't bother, but leave a message on the telephone recording sayingthat the machine will be down until morning. Instructions for recording messages are posted in theback room.People to notify: (use phone list on wall beside phone)Software and general system operationTaftGeneral, Tenex, and AltIOFialaGeneral, microcode, Midas, TenexBoggsGeneralGeschkeGeneral)fqX ;pi a's2r s% _9 ^R \U [I Yu s T2rs5 S<9$ Q^ N6* M IXAFE-[DE-"CtCRUCCRWC" @~D =S] 82r sO 6,ts 5x)2L )/!+X)(),'F8%K $>U"3 R  C 4* -6 ~ SrXs')(%x  p )>\5Maxc OperationsTenex Crashes9HardwareFialaMicroprocessorLampsonMicroprocessorOvertonMemories and DisksMcCreightDisksYearyAltoThackerAlmost anythingTaftWhen any of the above aren't available fpi=SqXGp)_s[ Zf XW^UTVR& R:UDPower UpMaxc Operations103. POWER UPA.First look over the system and make sure it is put together. Ignore scope probes dangling frompins, but at any other appearance of inoperativeness, give up or get some knowledgeable person tohelp.B.Make sure the proper disk packs are mounted. The labels are on the top of the pack. 3-by-5cards with the currently mounted pack numbers are supposed to be posted on each drive. Otherpacks are in a yellow cabinet in the machine room and should also have cards identifying them.C.Turn on the disk units. Two switches need to be turned on for each unit. One of them is inback and inside the cabinet and is labelled "AC power on". It should be turned on first.(Normally it is left on.) Then turn on the obvious switch on the front panel. Two minutes willelapse before the green light goes on. The read-only switches on the control panel should also beoff.1D.Turn on Alto power by pressing in the circuit breaker on the front panel. Load the diskcartridge labelled "Maxc2" into the disk drive under the Alto and flip the switch to "Run". Makesure the Alto monitor and the Diablo printer are turned on.E.Turn on the microprocessor fan, two microprocessor power supplies, and all memory powersupply switches in front of Maxc. (Normally these are left switched on. The power supplies areturned on and off under program control.)F.Assuming the Alto disk is loaded with the correct contents, DC power to the Maxc processorand memories may be turned on by this procedure. (The next section describes loading the Novadisk from tape.)Boot the Alto and run the Midas subsystem. With the left mouse button, successively select themenu items "Power On", "Both", and "Do-It".------------------------------1Note that if a unit is selected, the read-only restriction will remain in force until it is deselected. This is indicated by the read-only light on the panel. Don't worry if the read-only light remains on, since the unit will be deselected by firmware later on andthe read-only light will go off at that time. However, be sure the read-only switch is in the off position.)fqX;pi %UbrX ^s2.1 \K [ W2\ UG T> P2I N: MF K>>$ IsJt Fs2 L D7O Bl; >28 =/N ;e) 72Z 6(D 4^20 R /!+ t 2Futh *lF >](Maxc OperationsPower Down114. POWER DOWNYou should not power down the processor or the memories by pulling plugs or throwing switchessince this sudden shut down can damage components. Only resort to this drastic action in anemergency (e.g., fire or when the Alto is broken so that the program for powering down cannot beexecuted). If you do have to turn power off manually, try to turn all four switches for eachparticular memory cabinet off as sumultaneously as possible.The front panel switches for the disk drives should be turned off before powering down themicroprocessor.After powering down the disks, then shut off the microprocessor and memories as follows:Power is turned off by running Midas and selecting the "Power-Off" and "Both" menu items.Temporarily (as of 10/22/79), Midas cannot turn off the Port power supply. To turn it on and offyou must throw the front-panel switch labelled "Port on-off."When you power off, the two red lights on the processor and the four red lights on each memorywill shut off. The fans will continue to run and should be left on for at least 15 minutes. You maythen turn them off by pulling out their plugs in the backs of the cabinets, or by turning off theappropriate circuit breakers in the back room.It is possible to turn the processor and memories on and off independently. If only the processorneeds to be turned off, it is best to leave the memories on so as to avoid shortening the life of thestorage chips.The choice of turning ON or OFF the processor or memories independently may be made bymeans of the subsidiary menus for the "Power-On" and "Power-Off" commands.To totally turn off disks, turn off the front panel switches first. Do not turn off AC power (inback) until the pack has stopped turning, else the drive may stop with the heads still extended!Unless you are going to work on the disk drive, powering off the AC power in back is not required.If the Alto won't run, then you will have to power Maxc down manually. It is very important toturn off all Maxc power supplies before turning off the Alto power. To do this, first turn off theMaxc disk drives via the switches on the front panel. Then turn off the four power supply switcheson each memory cabinet. Turn the four switches on each cabinet off as nearly simultaneously asyou can to avoid possible problems in the power safety circuitry. After you have powered down thememory cabinets, turn off the processor and port power supplies.Finally, turn off the Alto disk, and when it stops the Alto processor. If the processor is going to bepowered off for a long time, you should also power down the Alto display.For most repairs to the Maxc processor, it is not necessary to power down the Alto. However, ifyou are going to disturb the PMAINT, KMEMI, or PMEMI cards in the processor, it is imperativethat you power down the Alto (after powering down Maxc). It should be ok to leave the Altorunning when other processor cards are pulled. fpi=SqXFp#](r Ys ts@ WB V!8( TVts!' R< O6$ MO IXX Fk$5 DK B= ?dW =G ;4- :. 6H 4N 2 /7 -J *Na (L &b #GN="#G F"#G !&!} !&#!}6! M 7 t sts R@  Z I S L ,/ D. >\.Loading The PDP-10 EmulatorMaxc Operations125. LOADING THE PDP-10 EMULATORAssuming system power has been turned on and the Alto is at command level (Alto Executive), onemay load the microcode and start Tenex by means of the single command:MIDAS TENGOMidas will run through the TENGO command file which loads the microcode, displays some junkon the screen, and starts up Tenex. This takes about a minute.After loading the microprocessor, TENGO resets the machine (21;G) and checks the microcode(25;G). The microprocessor may crash (IMA=20) if there were any failures detected duringloading. LM 10 will contain the address of the incorrect word (if only one word was clobbered).1Note the values of LM 10 and IMA in the log and call system maintainers if the microprocessorcrashes. If you cannot get the system maintainers, get out of Midas (by selecting "Exit" with themouse) and repeat MIDAS TENGO, since hardware flakiness has been known to cause loads to failspuriously and you may be lucky on the second try.If the load succeeds, AltIO is started, which in turn boots in Micro-Exec from one of the Maxcdisks. The following message is printed out on the Maxc console:Micro-Exec, Ver *Micro-Exec immediately executes an automatic "Go" command, which causes Tenex to be loadedfrom disk and started. Further procedures are described in the next section.If it is desired to load the microcode without starting AltIO or Micro-Exec, use the TENLOADcommand file instead of TENGO; i.e. type:MIDAS TENLOAD TENLOAD is identical to TENGO except that it does not start AltIO, Micro-Exec, or Tenex, butrather leaves control in Midas.To start AltIO and boot in Micro-Exec (without starting Tenex), select "AltIO", "Boot-MExec", and"Do-It" with the mouse.The MEXECGO command file combines the effect of TENLOAD followed by starting AltIO andbooting in Micro-Exec.Note: The above procedure only works when Micro-Exec is on save area 1 of disk unit A. This isnormally the case. However, during periods when disk controllers are being checked out or whenthere has been hardware flakiness with disk controllers, MEXEC may not be on unit A. In thiscase it is probably on another disk drive. You should follow the procedure discussed in "CallingAltIO" in order to boot Micro-Exec from another drive.------------------------------1Checker failure interpretation is discussed in more detail in section 11.)fqX;pi u](rX Ys_ XxFUM R"A P? Mr., KI J#GJt Hs] GR E? D2 @X ?dA<8,: 7: 6M 2P 1U*.* *)3 ){ &OY $ !!5  usB lZ T d6, 6 t eFI >TVMaxc OperationsStarting Tenex136. STARTING TENEXThe current Micro-Exec normally has been setup to have the current disk configuration. If youdoubt this, type:Print.Disk.Configuration (P D C)and it will print out the current disk configuration. Compare this to the numbers on the mounteddisk packs. If you are confident, type:GOwhich will first run a brief (~30 second) memory test, then boot in Tenex from the disk and start itrunning.If the disk configuration printed does not agree with the actual then type:Set.Disk.Configuration (S D C)which asks for parameters via the same format used in print.disk.configuration.After setting the correct disk configuration you must write MicroExec to area 1 by typing:Write.Micro.Exec.To.Area 1(W M E T A.1)Now you may type:GOTenex may ask for the date and time. (The prompt specifies the format.) Please be careful to enterthis correctly. If Tenex asks you to reconfirm your typein, you probably blew it and you should hit"Del" and try again. (But if you are really sure you typed the correct date and time, confirm withcarriage return).Tenex then runs the Bsys and Checkdsk programs to verify the consistency of the file system. Thistakes about 15 minutes (the time is proportional to the number of files in the entire system), at theend of which is broadcast the message "Tenex in operation" if all is well. If any uncorrectableerrors have been detected, the message "Tenex not available: Disk needs fixing" will be broadcast.If this occurs, you should attempt to notify system personnel. As a last resort, consult Section 18for information on fixing errors of this sort.If Tenex was last taken down in an orderly fashion (as opposed to crashing), it is not reallynecessary to run Bsys and Checkdsk (though it will never hurt to do so). The running of theseprograms may be bypassed (saving 15 minutes) by the following procedure:1.Load the microcode using the MEXECGO command file, as described at the end of theprevious section. This causes Micro-Exec to be started on Maxc. fpi' ,4 O 31 /. O 8& (H 2Q @ >ZgStopping TenexMaxc Operations142.Manually run the Micro-Exec memory test (so that Tenex will be informed of solidly failingregions of memory that it shouldn't use):*Test.Memory.Fast (T M F)3.Read in Tenex without starting it:*Read.Tenex.From.Area 0 (R T F A 0)4.Enter Exec DDT, turn on the "Checkdsk bypass" switch, and start Tenex:*EDDT EDDTCHKBYP/ 0 1 SYSGO1G7. STOPPING TENEXIn order to give users adequate notice and to protect files on disk, Tenex should ordinarily bestopped in the following manner.As long as possible before the scheduled downtime (preferably 24 hours or more), notify users by(optionally) putting a notice in the login message, setting the system downtime cell, and recording atelephone message.A.To put a notice in the login message,1 login as yourself and:@SNDMSG To: SYSTEM cc: Subject: Scheduled downtime Message:(An appropriate message giving date, time, and reason)^ZQ,S,?,carriage-return: SYSTEM -- ok@------------------------------1Do this only if the downtime is of unusual nature or duration. You must be a member of the "System" group to send messagesto SYSTEM.)fqX ;pi  _r2? ]K)YY YX Vg2"RRR O2F2LKL2JG2H%H|H%.H|2F[ F #>sX ;ArO 9w 6` 4:;* 2p .2X%/t.r+8+5 !+ )K)j) ''~'&, %6&,$a"6 u  ~7 l  Ut F{ g  D=[Maxc OperationsStopping Tenex15B.To set the system downtime cell, you must be a wheel or a maintenance person:@ENABLE (only if you are a wheel)!HALT, (do not omit the comma)[Superpassword:] GUESS !!AT mm/dd/yy hh:mm (date&time system going down)!!UNTIL mm/dd/yy hh:mm (date&time coming back up)!!DUE (TO REASON) reason (type ? for list) !!!C.To record a telephone message, go to the recording telephone (next to the Imp in the backroom) and follow the instructions posted there.The system will automatically start notifying users of the impending downtime beginning one hourbefore it is to occur. When the zero hour arrives, all jobs will be forcibly logged out except any joblogged in on the Maxc controlling terminal, new logins will be prevented, and "ShutdownComplete" will type out on the Maxc console. If there are now no jobs logged in, Tenex willshortly hit a BUGCHK (EDDT breakpoint) at SWHLT1, at which point Tenex is properly halted.If there is a job logged in on the Maxc controlling terminal, it will be necessary to halt Tenexmanually. To do this (for which you must be a wheel):@ENABLE !QUIT .Halt Tenex.Wait for the EDDT breakpoint at SWHLT1. A message such as "$8B>>CHKADR BUGCHK/SWHLT1" should be printed out. At this point it is safe to un-protect the NVIO/AltIO console("3301P") and return control to Midas ("M"). fpi1Put the 40-bit number n into the current location. The first 4 bits input are the last 4bits of the memory. Thus one can think of Maxc as a 36-bit machine (like the PDP-10), right adjusted in a 40-bit field, rather than a 36-bit machine left adjusted in a 40-bit word as is actually the case.This command is only legal after a command which prints out a Maxc memorylocation.1(lf means linefeed). Change the current location to the current location plus 1, andprint out the (new) current location. fpiAuqFp _r [s'; YK XH VDK Ty9 Qb O=%8 MrF K? I Fk9 D-2 A.:$ ?d"< =<$ ;G 8]: 6+5 45 1U1t1UsP/S-3X*S(=S&$aS" F X &t&s?[MD!T =  t sI  M% >]AltIOMaxc Operations18n1Equivalent to n, , .^1Change the current location to the current location minus 1, and print out the(new) current location.n^1Equivalent to n, , .1Change the current location to the location pointed to by the current location. Printout its contents.B1Boot Micro-Exec from Save Area 1 of physical disk unit A.nB1Boot Micro-Exec from Save Area 1 of physical disk unit n (0=A, 1=B, etc.) Theparameter n is remembered for subsequent "B" commands without arguments.DToggle on or off a switch causing typeout on the Maxc controlling terminal (thebottom display window) to be copied to the Diablo printer. This switch is normallyoff, but turning it on is useful when debugging Tenex or doing memory maintenance.EPrint out the current state of Maxc's PDP-10 emulator. This includes the programcounter and all the accumulators. This command may be issued only when Maxc isstopped.nG1Go to Maxc location n. Precisely: stop the Maxc microprocessor (cleanly if possible),then tell it to begin executing PDP-10 instructions at Maxc main memory location n.GGo to the starting address of the currently loaded Maxc program, which is pointed toby Maxc memory location 7.H1Halt Maxc (cleanly if possible).LPrompt for a filename (default extension .SAV), then interpret that file as a PDP-10"save"-format (not "ssave") file and load it into Maxc memory. The program'sstarting address is stored in location 7 so that a "Go" command without argumentswill start the program. The file is expected to be in the 36-bit binary format definedby FTP. Retrieving a PDP-10 "save"-format file using the FTP program will causesuch a file to be created.M1Halt Maxc (cleanly if possible) and return control to Midas. Midas is resumed inwhatever state it was in when control was last transferred to AltIO from Midas. Thisis true even if AltIO has been exited and other Alto programs run in the meantime.nM1Go to Microprocessor location n. (If you use this command, you had better knowwhat you are doing.)P1Protect NVIO. The herald becomes a number sign (#); only those commands thatexamine memory (and other state varibles) are legal.)fq;pi  ^s_9t^sX/ [:[t[:sFYo UVtUsX/ RStRs6P MOMtLMOsX8 IJjtIIs0HH D)&BJA > =Q;G: 67t6;)6s!444 1UI / ,,t+,sX (M&,!%A#G0'!}H @t@s* 6-U@u:4 9t9sOU9Hn ts @24 [+(Y)YY)YY)YY)YY) UXX RERtQREs?PzJN@L IsJtIIssX2 FFtEFsB BQ ?''=S ?;< ;A<,Maxc2 Midas OperationMaxc Operations209. MAXC2 MIDAS OPERATIONMidas is the loader/debugger used for the Maxc2 microprocessor. It has features for directly testingthe Maxc2 hardware through the maintenance interface, for loading/dumping microprogramsassembled by Micro, and for examining and modifying the storage in the microprocessor. It cancontrol the microprocessor and memory power supplies, configure the memory, and enable/disablethe various memory error correction-detection stuff. It also has a command for calling AltIO, theI/O program used by Tenex.9.1. Starting MidasTo start Midas, simply say "Midas" to the executive or, more generally, "Midas com-file".Midas command files have the extension ".Midas". Generally, there is one command file for eachof the hardware diagnostics, with the same name as the diagnostic, e.g.:dgbasic.mbthe diagnostic;dgbasic.midasthe command file;midas dgbasicto the Executive executes the command file.These command files load the diagnostic into the microprocessor and display various registers whichare of interest when the microprogram is in use.In addition, there are the following command files:midas/iinitializes (should be executed whenever any Midas files move orchange, or when a new Alto Operating System is installed).midas/rcontinues with the symbol table and display saved at the last call toAltIO.midassimply fires up Midas.midas tenloadloads the Tenex microcode.midas tengoloads Tenex microcode and calls AltIO to start Tenex.midas mexecgoloads Tenex microcode and calls AltIO to start MicroExec.midas initloads new Tenex microcode and sets checksums.midas debugloads some special symbols for use with "Constructed-Test" (seebelow).If you are already running Midas, and you want to switch microprograms, you can bug the "Run-program" menu item and then bug the name of the command file in the subsidiary menu whichcomes up. The "loader" menu item simply initializes a new Midas. "debug" is used to prepare forthe "Constructed-test" stuff discussed later.9.2. Midas DisplayAt the top of the Midas display are a number of register name-value menus. Below these are thename of the last microprogram loaded, the command comment line, the command menu, and the)fqX;pi `rX ]Ks?& [*- YZ W5) V!J TV Mr J#sY FE DHAu X? = + :nK 80 51X318/:.*1,_*( ' 5%5 9#j -! ! cW 7"  S - Cr sH %4 >]LMaxc OperationsMaxc2 Midas Operation21input text line. When you move the mouse around, the menu item selected (if any) turns black.Note that mouse actions execute when you release the mouse button, so you can move the mousearound with the button depressed without causing damage. If the mouse position does not selectany screen item, nothing happens when the button is released.Register areas are of different sizes. Smaller areas are already filled in with various microprocessorregisters when you fire-up Midas. The unused ones at the right and bottom left of the display areappropriate for 36-bit stuff, but only the bottom right items are large enough for IM (instructionmemory) stuff.To display a new item, type its name, move the mouse to one of the register name areas, and push-and-release the left (or top) mouse button.If the command line is empty, the selected register area will be cleared when the button is released.When you push the right (bottom) mouse button over a name area in which an address is displayed,a subsidiary menu appears as follows:A+1 A-1"A+1" increments the address, displaying the next location. "A-1" decrements the address.Releasing the middle button over an address item shows alternate forms of printout on thecommand comment line. If the input text line is non-empty, it will first display that item.Releasing the left button over a value item, evaluates the input text and stores the value (or 0 if notext typed) in the selected register. The input text is limited to octal numbers with interspersedspaces permitted for readability.Releasing the middle button over a value item shows an alternate display of the value on thecommand comment line. The alternate for IMA, NPC, and STK values is the nearest IM addresstag less-equal to the value+offset (the value is also put on the input text line, so you can examinethat location in the display area if you want to). For DM, DM1, and DM2 words, the alternate isthree IM addresses with offsets and one flag. For IM the alternate is a symbolic printout of themicroinstruction.Releasing the right button over a value item appends the text of the value to the input text line.9.3. Midas Command MenuFor the command menu, all mouse buttons are presently equivalent (this may change). For mostcommon commands, equivalent input text sequences carry out the same action, as given below.The general philosophy on mixing keyboard and mouse button control is that, when possible, acommand involving some typing is carried out completely at the keyboard, whereas commandsinvolving mouse buttons are carried out completely with the mouse. fpi6KqXFp _s5) ]Kts, [O Y= VD9. Ty?# Rb P MrP K+ H6Xe D9' B%? <XZ 8U 6\ 3gZ 1V /! ,_X *A (5/ 'D %5Y #j Xb 8r sJ [ C H B B >[^Maxc2 Midas OperationMaxc Operations22Many of the commands are executed in overlays. When these get executed, the register display willturn black (the code for overlays resides where the display bit buffers would otherwise be). Duringloading and during execution of command files, the display is turned off to make the machine runfaster.Many of the commands put up a succession of subsidiary menus with assorted options as discussedbelow.The long-running commands normally display an "Abort" menu item. When this is bugged orwhen control-C is typed, the action terminates.InputKeyboardMenu ItemComments;QExitQuit to Executive.FileRead-CmdsExecute command file (default extension ".Midas").Show-CmdsShow equivalent command file text for selected menuitems.FileWrite-CmdsWrite subsequent commands on file.;AAltIOCall AltIO with options (terminates command file).Run-ProgramRun selected microprogram (restricted use in commandfiles).Files;LLoadLoad .MB files.FilesLoadSymsLoad only addresses from .MB files.File;DDump2Dump compacted .MB file using the .MB file(s) of theprevious load to control what's dumped.File;CCompare2Compare microprocessor data to data specified in .MBfile--compare file must have been created by Dump.Addr=Print value of an address (illegal in command file).IMaddr;BBreakInsert breakpoint. (Restarting from the breakpoint willsucceed in all situations except when a memory write orread-modify-write has been given and MDR not yetloaded with the correct data or when the disk controlleris active.)[IMaddr];KKill-BreakRemove break at address (at IMA if nothing typed).[IMaddr];GGo1Start at address (continue at IMA/NPC if nothingtyped).)fqX;pi  _sJ ]K\ [=# Y VDU Ty QK O=/ KrX'FHYs'F D'F2Au'F3'F? <8 'F"8'F25U 'F4'F3 0'F ,'F# )4)u'F)4s4'F'i' #$u'F#s4'F"-2 'F4 I'F8'F~8'F0'F8'F  'F2 ; u'F ;s0'F p| )=\Maxc OperationsMaxc2 Midas Operation23InputKeyboardMenu ItemComments[IMaddr];PGo1Same as ;G (mnemonic "Proceed", provided forcompatibility with Maxc1 Midas).[IMaddr]:StepSingle-step at address (at IMA/NPC if nothing typed).See caveats on breakpoints above.[IMaddr];RRepeat-Go1Go at address, repeat endlessly after halts.[IMaddr];SRepeat-Step1Repeatedly step at address.LMPEscanScan all local memories (IM, SM, DM, DM1, DM2) forparity errors.Power-On1Turn on power (see below).Power-Off1Turn off power (see below).LDRaddrsConstructed-Test1(see below).Test1Test register or memory (see below).Field-Loop1For scoping (see below).Test-All1Test everything (see below).1 Requires preceding "TimeOut" command in command file.2 Requires confirmation with , "Y", or "." (or by preceding "Confirm" command in command file).9.4. KeyboardThere are a number of characters which are legal symbol constituents in microprograms but whichwill cause trouble for Midas when they appear in addresses.Lower case typein is converted to upper case by Midas, so avoid lower case characters inmicroprogram identifiers. I recommend writing microprograms with the shift-lock key depressed.Avoid "=" in identifiers. "+" and "-" are ok so long as the following character (if any) is a letter.Typing ahead is legal until the character you type would cause execution of a command. After thatMidas will flush input and blink at you until the current command finishes.At the end of a command the input text typed for that command is displayed on the input text line.This text remains valid and can be used as the argument for another mouse action. However, ifyou type any character (except control-A or backspace), the old input will be flushed beforeinserting the new character. fpi6KqXFp _r'F [s\1u'F[s,'FY Vg'F5'FT! Q+Qu'FQ+s, M NFu'FMsJG'F2'FH| E Eu'FE sAB%u'FAs >&>u'F>&s :;Au'F:s$7B 7u'F7Bs34]u'F3s 1u0suF5 --3sXuFY &sr #s_ !6; !7 &9 /f b K &< M 7%  >\2 Maxc2 Midas OperationMaxc Operations24Keyboard editting characters are as follows:control-Adelete last characterbackspacedelete last charactercontrol-Qclear text linedelclear text lineOther special keyboard characters are as follows:control-Caborts the current actioncontrol-Zaborts a command filecontrol-Dturns on the displaycontrol-Oturns off the displayThe interrupt characters above are ineffective during loading, dumping, or comparing, whichtypically take between 2 and 15 seconds. Indefinite duration commands, such as "Go", "Test", etc.always monitor the keyboard, so control-C can be used to terminate them.Control-Z, control-D, and control-O are intended for use during command files. However, thesecharacters do not take effect until the command file executes a command such as "Go" whichmonitors the keyboard. There is no way to abort a command file and give control back to Midassafely except during a "Go" or other long-running command. This is not expected to be a problembecause commands are executed quickly.After interrupting a "Go" with control-C or control-Z, proceeding with ";P" or ";G" will succeedexcept when the conditions discussed earlier for breakpoints apply.Although command menu items "Step", "Go", "Break", "Kill-Break", "Repeat-Step", and "Repeat-Go" are provided, you will normally find it more convenient to execute these from the keyboardusing the alternate command characters.9.5. Command FilesCommand files have default extension ".Midas". They are normally executed by typing "Midascom-file" to the executive or by bugging the name of a command file from the subsidiary menu putup by "Run-program". However, you can also execute a command file by typing a file name andbugging "Read-cmds" in the command menu.To find out what text should be put in command files, you can bug the "Show-Cmds" item in thecommand menu. This will cause the command file text for each command to be displayed on thecommand comment line as the mouse selects it (you don't have to execute the command to see theequivalent text). This text is complete except that the mouse button which executes the commandisn't shown unless you depress the mouse button. Usually the text "L " precedes the text given by"Show-Cmds", indicating that the left (or top) button was pressed and released to carry out thecommand. "M " precedes a middle-button command and "R " a right-button (or bottom-button)command. The name of the command is followed by a blank, then the command line text, andfinally a carriage return. To terminate "Show-Cmds", bug "Conceal-Cmds" (this only appears inthe command menu when "Show-Cmds" is in progress).)fqX;pi  `sX,]K[YW Ty1QO=MrK H65& Fk)9 DH A.I ?dO => ;$< :& 6L 4C 1U\ /U -' 'r #s4' !` = .( V I '^ \K 9) Q 6$ 2 L gC 2 V U=]Maxc OperationsMaxc2 Midas Operation25You can prepare a command file (default extension ".Midas") by typing a file name and bugging"Write-cmds". This causes text for subsequent commands to be put on the file. When you aredone with this, bug "Stop-Write-Cmds" to close the file. ("Stop-Write-Cmds" only appears in thecommand menu when a command file is being written.) You will probably want to edit out yourgoofs with Bravo after the command file is written.For command files associated with big programs, the symbol table is not entirely in core, so youmay want to sort the command-file addresses in reverse-alphabetical order to minimize symbol-tableswapping. Currently, Midas has barely enough symbol table space to hold all of the Tenexmicrocode's addresses, so none of the symbol blocks have to be swapped. However, this maychange if more features are added to Midas or to the Tenex microcode.Command files can be nested several levels (limited by the size of sysZone which must be bigenough to accommodate OpenFile and buffers for the command files already open). However,there are the following restrictions:(1)"AltIO" terminates command files (i.e., upon return to Midas from AltIO the command file willnot be continued).(2)"Run-Program" is illegal except in the top level command file. ("Run-Program" resets Midas,then calls "Read-Cmds". This reset operation smashes the symbol table, the display, and the stackback to their initial state. Hence, if you were to execute "Run-Program" from a subsidiarycommand file, that command file would be continued, but the higher level ones would not, and thesysZone buffers for the higher level command files would not be released.)Extra s can be used in a command file for punctuation, and ";" can be used at the beginning ofa line or after the last character of a command to begin a comment. The comment is terminated by.Since Midas builds a table of file pointers during its initialization, when you edit an existingcommand file or .MB file, you should reinitialize Midas by typing "Midas/I". When you add newcommand files or .MB files you should update the "Midas.Programs" file appropriately and do"Midas/I". The form of "Midas.Programs" is discussed later.There are a number of commands which can never occur when Midas is run interactively, butwhich are useful in command files. These are as follows:Text ArgMenu ItemCommentsOctal no.SkipVEqlSkip the next command if the selected value menu item equalsthe value of the text arg.Octal no.SkipVGrSkip the next command if the selected menu item's value isgreater than the text arg.Octal no.SkipVLsSkip the next command if the selected menu item's value isless than the text arg.Octal no.SkipSkip N following commands, where N is the 16-bit value ofthe text arg. fpi6KqXFp `s;" ^:" ]((8 []W Y3 V!@ TVI RC P3' NE KU I2' Gt s D}2A B ?A2N =vJ ;T 9;% 8J 4-5 2a 1 -O +V *[ (=< $; #9 rX" ss"s<"R s"s:" s"s%" gs"s"  U=]-Maxc2 Midas OperationMaxc Operations26Octal no.BackSkipReset to byte 1 of the command file, then skip.Octal no.ReturnReturn out of current command file and skip N commands inthe calling command file (if any), where N is the 16-bit valueof the text arg.DisplayOnTurn on the display, so that effects of subsequent commands canbe observed. The display is initially off for a command file.DisplayOffTurn off the display.Octal no.TimeOutArgument is a 32-bit octal number of milliseconds after whichto abort the immediately following command, if it has notfinished by then. This is intended for use before "Go",which might hang indefinitely. If the timeout occurs Midaswill skip the command after the "Go". TimeOut also turns onthe display, which is necessary because the machinery whichchecks for timeouts is only active with the display on.ConfirmSupply confirmation for the command which follows (whichshould be one of the commands requiring confirmation).File nameOpenOutputOpen an output file (default extension ".Report") on whichtext can be written.CloseOutputClose the output file.[text]WriteMessageWrite the contents of the input text buffer on the output file.Note that if any text follows the WriteMessage, that text up tobut not including the is what gets written. However, if immediately follows WriteMessage, then the contents ofthe input text buffer left by the previous command are whatgets written. "~" is translated into .textShow-ErrorDisplay the text arg on the command line, turn on the displayif it was off, and query with "Abort" and "Continue" menuitems.The "right-button" value action allows the current values of any register to be appended to theinput text buffer. This can be used in conjunction with WriteMessage to output various parts of themachine state to the output file.9.6. Loading ProgramsThe "Run-program" command is a short method of executing the most common command files--those which load a microprogram and fix up the display for that program.)fqX;pi  _sXs"s/ [s"s3"Y""XTs"sX?"R>O`s "s Ks"s#"J#1"HY8"F;"D%"B5"A.7=s"s1";6 8s "s&"63Cs "sX /s "s?"."",<6"*r&"(!"&+ #js "s-"!%" cG ] !  r s8 H =[Maxc OperationsMaxc2 Midas Operation27You can also load a program by typing a file name (default extension ".mb") and bugging "Load"in the command menu. However, this should rarely be necessary because all of the microprogramsappear in the menu put up by "Run-program", which additionally reinitializes Midas.It is a poor idea to do a "Load" when another microprogram has already been loaded because thiswill merge symbols from the new load into those already in the symbol table. In addition to beingvery slow, this may overrun the size of the symbol table on the disk (no provision is made forexpanding the symbol table beyond its maximum size).It is also a good idea to assemble microprograms as a single .MB file. Although Midas can loadmultiple .MB files (typed as a list separated by commas), this will cause additional fragmentation ofthe symbol table and thrashing while blocks are swapped in and out.These recommendations follow because Midas takes advantage of alphabetical address ordering in.MB files to pack its symbol buffers nearly full. But when subsequent files are loaded the symbolbuffers will be fragmented to about half-full, symbol buffer swapping will result, and the symbolsearches will be longer.9.7. Dumping MicroprogramsAfter assembling a microprogram, it is a good idea to load and dump it from Midas. Dumpingdeletes all forward reference fixups left by Micro and compacts both data and addresses to use lessdisk space and load more quickly later. Also, undumped .MB files cannot be used with "Compare"because of forward references.Note that only those memory words loaded by the original microprogram are dumped, so youcannot patch unused locations, dump the program, and expect the patches to survive.9.8. Tenex MicrocodeWhen a new release of the Tenex microcode is made, it must be loaded into the microprocessor, thechecksums set, and then dumped onto SYS2. To carry out this initialization, type "Midas init" tothe executive.After dumping, SYS2;C can be used to compare the microstore against its correct contentswhenever the checker program (INIT;G) fails. This is a good way of locating bad storage chipsafter a crash or verifying that the storage is OK before loading some other microprogram.9.9. Power On-OffThe "Power-On" menu item allows the microprocessor, port, and memory to be powered on andtested in various ways. The first "Power-On" subsidiary menu shows the following: fpi6KqXFp _s'7 ]KM [S XF VDL Ty'7 R4 O=N Mre KC H6:$ FkQ DZ B <r 8s:! 6): 5P 3C /!7 .S 'Fr #sH " 7* ? ; <" 8Y wr s9 ;R | =[Maxc2 Midas OperationMaxc Operations28ProcessorTurn on processor and port power only.MemoryTurn on memory and port power only and configure memory.BothTurn on port, processor, and memory cabinets' power.Test-Port-&-ProcessorRepeatedly execute the maintenance interface operations forturning on port and processor power (for debugging powercontrol hardware).Test-Memory-CabinetQuery for a memory cabinet number, then repeatedly executethe I/O instructions for powering on the memory cabinet.After the processor is turned on, the local memories (IM, SM, DM, DM1, DM2) are zeroed toprevent parity errors from occurring.When "Memory" or "Both" is bugged, another subsidiary menu will come up showing the variousoptions for enabling/disabling error correction, core-zeroing, and FER on memory errors. Fornormal use by Tenex, let the default action take place for all of these options, and immediately bugthe "do-it" menu item.Power on takes about 15 seconds because the power supplies take a while to stabilize. After power-on the interrupt system is cleared and the flag register is zeroed.The right-most four nine-bit bytes in CONFIG (appears on the Midas display) control the memoryconfiguration as follows:bits 0-8represent quadrant Jbits 9-17represent quadrant Kbits 18-26represent quadrant Lbits 27-35represent quadrant MA "1" in the byte enables cabinet 0, "2" cabinet 1, "4" cabinet 2, ..., "200" cabinet 7. Hence,CONFIG might be set as follows:3003003003All four quadrants active in cabinets 0 and 1 (would result in 256Kfour-quadrant configuration)17017017017All four quadrants active in cabinets 0-3 (would result in 512K four-quadrant configuration)3000003003Quadrant K disabled, but cabinets 0 and 1 active (would result in128K two-quadrant configuration avoiding quadrant K)Memory power-on does a catastrophic memory reset. This may occasionally clobber memory words,but this complete reset has been required to unhang the memory on several occasions, due toproblems which have not been fixed.)fqX;pi _s"X&["8X2"4T","R ."Q+M"'"K8 H|= F% C@:! Au] ?P = :nc 8C 51W 3g/.* ,_  *  '#00 %X! C  7 m 04 1^ f[ # T=YMaxc OperationsMaxc2 Midas Operation29The first "Power-Off" subsidiary menu is analogous to the "Power-On" menu. Note that the portpower will remain on unless you bug "both" because neither the memory nor the processor isoperable without the port power being on.Please be mindful of the following terrible danger: The microprocessor, port, and memory powermust be turned off before powering down the Alto. When this rule was violated on two occasions,numerous Alto MI chips were clobbered, apparently due to power transients from the cable.To make repairs to the microprocessor, it is sufficient to turn only the processor power off, providedthat neither the PMEMI, KMEMI, nor PMAINT cards are disturbed. For all other maintenance,power down "Both". If you want to remove the PMAINT card, power off the Maxc processor andmemory first, then the Alto disk, and finally, the Alto processor.9.10. Testing Through the Maintenance Interface"Test", "Constructed-Test", and "Test-All" allow the microprocessor to be tested from the Altothrough the maintenance interface. Data patterns for the test are determined from the firstsubsidiary menu, as follows:ZEROESAll-zeroes dataONESAll-ones dataCYC136-bit word of all zeroes with a single-one bit cycled left oneposition each iterationCYC036-bit cycled zero in word of onesRANDOM48-bit random numbersSEQUENTIAL0, 1, ..., sequential numbersALTZOAlternating all-ones and all-zeroes patternsALT-SHOULD-BEAlternating contents of SHOULD-BE with its ones-complementTesting is controlled/described by five addresses on the display as follows:LOW-HIGH(For memory tests only) contains in bits 0-17 the lowestmemory address tested and in bits 18-35 the highest addresstested. Memory tests begin at the low address and seq-uentially test each address up to the high address, then loop.LOOP-COUNTThe number of successful iterations of the test prior to failureor prior to aborting from the keyboard or with the mouse.SHOULD-BEWhat the data should have been.DATA-WASWhat the data actually was.BITS-CHECKEDMask of bits checked (see below).LOW-HIGH delimits the maximum address range. If the memory you select has fewer words thanHIGH, then the maximum for that memory is used. This means that the last address tested for amemory test is as follows (assuming LOW-HIGH is left at its normal maximum value):IMLOOP-COUNT mod 10000 (octal)SMLOOP-COUNT mod 1000 fpi6KqXFp _sD ]KI [) X#tsr VD"s/ TyY Qf O=M MrD KB Dr0 AusC ?R =:n"X8" 6"?"53C""1y"/ "-",, ": (L%5"("#j+"!"! "("@u"" "! n-. ^ R g X   X U=]Maxc2 Midas OperationMaxc Operations30DMLOOP-COUNT mod 1000DM1LOOP-COUNT mod 1000DM2LOOP-COUNT mod 1000RMLOOP-COUNT mod 40LMLOOP-COUNT mod 40STKLOOP-COUNT mod 14"Test-All" automatically loads BITS-CHECKED with a full-sized comparison mask prior to testingeach item. It tests each register 250 times and makes 4 passes through each memory. It is a goodidea to run "Test-All" whenever the hardware is in a suspicious state."Test", after showing the data-pattern menu, shows a menu of register and memory names, andexecutes a test of the one you select until the test fails or you halt the test from the keyboard."Test" masks the current contents of BITS-CHECKED with the maximum-sized mask for theregister or memory being tested. If you previously tested a small register, then you have tomanually load BITS-CHECKED with a full-sized mask before testing a big register. If you don'twant to check all the bits in a register, then clear the bits you don't want to check in BITS-CHECKED."Constructed-test" should only be used when the "debug" command file has been loaded. Thisrequires a sophisticated understanding of the hardware and of the innards of Midas and is notrecommended for novices. Midas makes use of a number of microinstructions while reading,writing, starting, and stopping the microprocessor. "Constructed-test" allows these microinstructionsto be executed in non-standard sequences to beat on particular hardware problems through themaintenance interface. When using "Constructed-Test", a list of LDR addresses is typed (seeDEBUG.MC for the instructions) separated by commas. If only one LDR address is typed, themaintenance interface's BR register is loaded once with the selected data pattern, then the LDRinstruction is repeatedly executed for a scope loop. When two, three, etc., up to six LDR addressesare typed, a test loop occurs whereby BR is loaded with the next data pattern, the list ofinstructions is executed, and then BR is read back and compared against the data under control ofBITS-CHECKED. The loop stops when (data-read-back xor data-sent-out) & BITS-CHECKED isnon-zero."Field-Loop" exercises signal decoding for particular fields of the microinstruction for scope loops.A microinstruction is fabricated from a no-op microinstruction in which the field selected from thefirst subsidiary menu is replaced by various values. The second subsidiary menu allows the value inthe selected field to be incremented, decremented, and shifted.)fqX;pi _s X]K [ Y W V!  RV P[ OF K,/ ID H6 FHL D}@ BA @ =v!: ; S 9.+ 8f 6K\ 4F 2< 0#< /!K -V7# +2/ )E ' $&? "_ d %? >I-Maxc OperationsOperating Tenex Microcode from Midas3110. OPERATING TENEX MICROCODE FROM MIDASA.Reset is accomplished by typing21;Gto Midas. The effect of this is to put the machine in monitor mode, to clear the interrupt system,the APR, the processor flags and the disk system. However, Nova peripherals aren't affected, norare the accumulators or PC affected. If AltIO is called after RESET the processor will start at itsstarting address (pointed to by absolute location 7).B.Starting at an arbitrary PDP-10 location n is accomplished by changing the contents of PC(which is on the display) to n and then typingREMAPPC:(Midas types out the value m of REMAPPC)"AltIO", "Do-It"C.The PDP-10 accumulators are LM 0, LM 1, ..., LM 17 and can be examined and changed inthe usual way from Midas.D.The PDP-10 flags are in the left-most 13 bits of the F-register on the display. If you changethese from Midas, don't change the other 23 bits of F.These and other interesting bits of F are as follows:BitDefinition0Overflow1Carry 02Carry 13Floating overflow4Byte increment suppress5User mode6PARC mode (replaces PDP-10 user I/O mode)7Call from monitor (see JSYS, UMOVE, and Pager addendums to PDP-10 SystemReference Manual)8-10Machine mode (0=PDP-10, 1=Byte Lisp)11Floating underflow12No divide13Pushdown overflow14XCT015XCT116XCT217XCT318Incompatible19PI system is active20PI cycle in progress21MONALT - Temporary flag used by map loading microcode22THIRDPT - Temporary flag used by map loading microcode fpi-3qXFp_r) \12sX UMF S@! Q.6 O5 L{r2s)(LL$L{ JJZJG? ?X0F)G? Et Br2sU @7 N#Maxc OperationsInterpreting Checker Failures3311. INTERPRETING CHECKER FAILURESThe microcode Checker is normally run whenever Tenex is started or restarted, and may be runmanually by issuing the Midas command "25;G". Checker failures are characterized by:a)IMA=20b)STK 0 = RETN (type "RETN=" to verify this)c)a value in LM 10 between 0 and 77777.To interpret a Checker failure, the following guidelines are offered:a)If LM 10 contains 0, all SM, DM, DM1, DM2, and IM registers containing constantswere verified to be correct, but some LM or RM constant or other processor operationfailed. See the microinstruction at [STK 0]-1 in the Checker listing to determine what'swrong.b)If LM 10 does not contain 0, it contains the logical "or" of all addresses containingincorrect values, where00000-07777Instruction memory (IM) bits 0-3510000-17777Instruction memory (IM) bits 36-7120000-23777Dispatch memory (DM) 0-377724000-24777Scratch memory (SM) 0-777Since these memories are composed of chips which span 400 or 2000 (octal) bits andsince the normal failure mode is complete chip failure, it will seldom be true that thenumber in LM 10 is the address of a single failure. For total chip failures, the logical"or" of the addresses will wind up in LM 10. Note that on the old bipolar boards, chipsare interleaved so that a chip hits every fourth address. The value in register LPGRT3is the complement of the wrong bits in the word if there was only a single error.c)On Maxc2, one can obtain additional information by invoking "LMPE-Scan" to find thebipolar memory locations containing parity errors, and by invoking "Compare"1 tocompare the current memory contents with the file from which the control memory wasloaded. (Note that it is normal for "Compare" to find one error at location IODEND.)d)Run the DGIMH and DGIML micro-diagnostics for further error information.------------------------------1"Compare" (Ref. Section 2, par. C.3.) produces a list of errors on file Midas.Error. From the Alto executive issue thecommand "Type Midas.Errors". The number associated with each error is a 36 bit word numbered from left to right bit0 through bit 35. These bit numbers correspond to the bit numbers identified in the bipolar memory card chip maps(Figures 1, 2 & 3). fpi3gq XFpA_r" \1sG ZfUCVCSX*CP% LECI-KGbDE5$CC@[U><8 "X!:n ""8 "6 "452W0C/!C-V0'+QC(;&OL&t&Os$O"UCHH @t &Z [3A m  =QNUsing Micro-ExecMaxc Operations3412. USING MICRO-EXECMicro-Exec is a stand-alone Maxc program used to maintain and start up the Maxc Tenex system.A few overall remarks on its structure will be helpful before describing the specific facilitiesavailable.Micro-Exec is normally loaded by the MEXECGO Midas command file (see Section 5) from Maxcdisk unit A. Micro-Exec loads into the high portion of the first 128K of memory, starting at350000. All references to "core" in Micro-Exec commands refer to the range 20-to-347777. (Theprogram which boots in Micro-Exec runs in 347000-347777 and saves the previous contents of theACs in 347760-347777.)Micro-Exec has a sophisticated command interpreter which allows editing, questioning, promptingfor parameters -- what we in the biz call "Dwimified-Middle-English". Commands take the form ofa sequence of words separated by periods. E.g.:initialize.disk.packorinitialize.tape.At any point in typing a string, you may type and the interpreter will complete as much asis unambiguous. Similarly, at any point you may type "?" and all the possible completions of thatcommand will be listed. Once you are familiar with commands, you will find it convenient toabreviate them by entering the first letter of each word followed by a space. For example, I D P isan abbreviation for "initialize.disk.pack".Many of the commands require parameters before the command execution begins. Typing anescape will prompt you with a brief description of the parameter (e.g., (octal number) or (packnumber)). Typing escape a second time will furnish the default value of that parameter if there isone. Some commands require confirmation (with carriage return or period).Micro-Exec is capable of running in user mode under Tenex as well as stand-alone. Micro-Execmay be accessed under Tenex by running the subsystem MEXEC, and it requires enabled "wheel"or "operator" privileges. All commands may be executed either stand-alone or in user mode exceptwhere noted otherwise.12.1. Tenex Disk StructureFinally a few words on the disk structure of the Maxc-Tenex system will be helpful for thefollowing command descriptions. A disk configuration is defined by establishing a correspondencebetween (1) logical units (Tenex), (2) pack numbers, and (3) disk drives (i.e., controllers). Thecurrent disk configuration is usually the default configuration on the current Micro-Exec save area(usually area 1 on physical unit 0). Logical units are identified by digits 0 thru n-1 (for an n-packTenex). Packs are labeled with octal numbers starting at 100. Drives are labelled alphabeticallystarting with A. For example, the "print.disk.configuration" command might type:)fqX;pi !_rX \1s(5 ZfU X U*O S_,1 QZ OE M J_ HO F0C A? <6- :E 8N 78, 5U+ 1L 0B .MK ,J )-0 'F= %|J # r ~sB "? O  W TE! F Q x>YMaxc OperationsUsing Micro-Exec35Number of units: 2---------------Unit--------Pack Number0.B1021.A107At present there are 20 "Save Areas" allocated in the disk structure, but outside the Tenex filesystem. Each save area consists of four track cylinders (i.e., 240 (decimal) pages). A directory ofsave areas is posted on the control room wall.A mechanism has been provided for maintaining a simple file system on a single save area, forstorage of small programs such as PDP-10 diagnostics. At present, save area 2 is assignedpermanently for this purpose. All instances of the word "program" in command names refer toprograms stored in this manner. Sometimes disk packs are moved from one drive to another, sothat drive can be freed for maintenance. When this is done, the procedures for automaticallystarting Tenex or booting the Micro-Exec may not work and some of the issues are discussed here.First, the command files which start Micro-Exec or Tenex from Midas expect to find Micro-Exec onsave area 1 of disk drive 0 and Tenex on save area 0 of disk drive 0. If the pack containing theseareas is moved to some drive other than 0, these command files won't work. In this case, you mustboot Micro-Exec by hand from AltIO rather than relying on the MEXECGO or TENGO Midascommand files to do this for you (see the chapters on AltIO for how to do this). After starting upMicro-Exec (and setting the disk configuration, if necessary), you can do a "Go" command to startTenex.Secondly, the various methods for starting Tenex from Micro-Exec require that Micro-Exec knowthe correct disk configuration. If the configuration has changed since Micro-Exec was written onthe same area, the configuration must be correctly entered into Micro-Exec ("Set.Disk.Config-uration" discussed below) before starting Tenex. "Write.Micro.Exec.to.area.1" can be used to storeMicro-Exec on its same area with a correct disk configuration.12.2. Micro-Exec Command DescriptionsIn the following descriptions, a (C) means confirmation is required. In commands that read from orwrite to disk, the number following the command indicates the error retry count used; "default"means that the retry count may be overridden by the count specified in the"set.disk.error.retry.count" command. If not specified, the retry count is 20 and is unaffected by the"set.disk.error.retry.count" command.briefDisables extended typeout of disk error status bits.check.next.tape.file (stand-alone only)Checksums next file on tape and types entry point on console.clear.core (C)Zeros locations 20 through 347777 and 400000 through 777777. fpi9qX Fp_s]K&["Y" VD$< TyC" R. O=N MrJ K8$ I> H6' FHP D}R BE @N ?= =SF ;a 9 6KX 4B 2%8 0R /!> (`r& $sc #$ R !Y!) H % RX4 =K=  < @ >ZDUsing Micro-ExecMaxc Operations36compare.disk.packs Compares the contents of the specified packs and reports discrepancies (usually usedafter a pack-to-pack copy).copy.pack.to.pack (C) (default 20)Does a bit-by-bit copy of data from first pack onto second pack.copy.quadruple (C) (stand-alone only)Simultaneously copies the first pack onto the second pack and the third pack onto thefourth pack.ddtEnters DDT for debugging Micro-Exec. Re-enter Micro-Exec by 20$G.debug.disk.controller (C) (stand-alone only)Permits checking out the disk controller hardware without using a real disk. Thisrequires connecting the write cable of to the read cable of andconnecting a pulse generator to simulate sector pulses.dismount.auxiliary.packRemoves auxiliary pack from disk structure.dump.core.to.area Dumps locations 20 through 347777 on . Registers are saved at 347760 whenMicro-Exec is booted in. This command is used to save crashes for later analysis.dump.core.to.file (user mode only)Dumps locations 20 through 347777 on (default extension .SAV).dump.program (C)Dumps the (small) program presently in core onto the current program save area(usually 2) with the given name (5 or fewer characters). If a program already exists bythat name, it is overwritten. The program in core should conform to PDP-10conventions: the LH of location JOBCOR (133) should contain the highest locationloaded with code, and the RH of JOBSA (120) should contain the starting address.dump.save.areas.to.auxiliary.pack (C)Copies all the save areas from the currently configured file system onto the auxiliarypack. The save areas are arranged as if the auxiliary pack constituted a one-pack filesystem; hence, the last 4*20 = 80 (decimal) tracks on the pack are overwritten.eddtEnters Exec DDT if Tenex is in core. Re-enter Micro-Exec by typing 20$G.erase.program Deletes the named program on the current program save area.)fqX;pi f _s^_^_](8[] WXW^WW^WU@ RQRQRQRQRPQN KaIXB F$EF$EF$D7BBl,ABlABl@~7 = ;AX+ 76$,4:R 0X-.I +)<'H&,;$aH"4 %%ZH  MP SXI L;  (default 0)Reads pages at random on the specified pack, reporting any device-detected errors(checksum, etc.) but not actually looking at the data. The pack is not written on.exercise.disk.specific (default 0)Prompts for a list of disk addresses, which it then cycles through repeatedly, readingeach specified page as explained above.find.chip.for.address
Translates the supplied memory address and bit number into a physical memory chiplocation.
is a 21-bit octal number, and is one of "Bit n","Tag n", "Check n", or "Parity" (abbreviations allowed), where n is a decimal number.Data bits are numbered 0-35, tag bits 0-3, and check bits 1, 2, 4, 8, 16, and 32.go (stand-alone only)Executes a "test.memory.fast", then loads Tenex from area 0 and starts it at SYSGO1.goto
Starts whatever is in memory at the specified address.initialize.area.for.programs (C)Initializes the "directory" of the current program save area (usually 2).initialize.disk.pack (C) (default 0)Initializes the auxiliary pack by: (1) writing headers, using the pack number entered inthe mount.auxiliary.pack command, (2) writing random data on the entire pack, and(3) checking the data and printing discrepancies. An error retry count of zero is usedthroughout. Pages in which errors are detected are recorded in the bad spot list onpage zero of the pack.initialize.tape (C) (stand-alone only)Rewinds tape to load point, writes a boot header, and waits at the end of the boot header.install.new.micro.exec (C)Transfers a new version of Micro-Exec (loaded via a previous "load.dump.from.area")to its runtime location, and starts it up.load.dump.from.area Loads core from specified area (inverse of dump.core.to.area).load.dump.from.file (user mode only)Loads core from specified file (inverse of dump.core.to.file).load.program Loads into memory the specified program from the current program save area (usually 2).load.save.areas.from.auxiliary.pack (C)Loads all save areas onto the currently configured file system from the auxiliary pack,which must previously have been written by dump.save.areas.to.auxiliary.pack. fpi9qX Fp _s']K6[,' X)VDATy' Q0O=*'MrCKMIQ FkXDT A. ?d6 ;:'I 6$4:3 91UW/9- *NX5(Z %#G3!}*  X@> /> W U' N M y<]Using Micro-ExecMaxc Operations38loop.on.specified.disk.page Continuously reads the specified disk page ignoring errors (useful for disk tune-ups).The bell is rung for each error detected.mount.auxiliary.pack Identifies auxiliary (i.e., extra-Tenex) pack to disk configuration. Certain commandssuch as initialize.disk.pack are valid only for the auxiliary pack. Note that there canbe at most one auxiliary pack known to Micro-Exec at a given time. In user mode,one should be careful to "dismount.auxiliary.pack" before leaving Micro-Exec to avoidconfusion.print.disk.configurationPrints disk configuration in the format illustrated above.print.disk.error.countPrints the total number of disk errors (both recovered and unrecovered) since Micro-Exec was started.print.program.directoryPrints the name and size (pages) of each program in the current program save area(usually save area 2).quit (user mode only)Returns control to the Tenex Exec.read.specified.disk.page (default 20)Reads specified page into buffer at location BUF.read.tape.to.core (stand-alone only)Reads tape into core starting at location 20.read.tenex.from.area Loads Tenex from specified area and checks its "fingerprint".read.tenex.from.file (user mode only)Loads Tenex from the specified file (default extension .SAV).read.tenex.from.tape (stand-alone only)Loads Tenex from tape and checks its "fingerprint".reset.disk.error.countrewind.tape (stand-alone only)run.diagnostic.program Loads and starts the named program from the current program save area, assumingthat the program conforms to the conventions for controlling PDP-10 diagnostics.The diagnostic is run for one complete pass, and then control returns to Micro-Exec.)fqX;pi  _s:]K:[) X"VDDTyIRQP KO KIX: FkDTB ?d=0!; 8]X6" 3 D1U1 -3,- (&= #j0!= .6c3  -  %CFx< ;: g<[Maxc OperationsUsing Micro-Exec39run.program Loads and starts the named program from the current program save area.scan.disk.pack.for.errors (default 0)Scans pack, counting soft errors, and reporting non-recoverable errors to console.set.disk.configuration (stand-alone only)Sets disk configuration; asks for parameters via the same format used inprint.disk.configuration.set.disk.error.retry.countOverrides the default disk error retry count in certain commands.set.disk.timeout (stand-alone only)Sets the disk timeout interval (seconds), at the end of which Micro-Exec will reportthat it has timed out.set.program.save.area Declares the program save area to be used for subsequent program operations("run.program", etc.) Default area is 2.silent (C)Completely turns off disk error typeouts (useful for setting up scope loops forhardware debugging).start.tenex.from.area (C) (stand-alone only)Reads Tenex from the specified area and starts it at SYSGO1.test.memory.fast (stand-alone only)Runs a quick (~30 second) memory checkout and summarizes errors found. Alsobuilds a map of bad memory for communication to Tenex.test.memory.slow (stand-alone only)Runs a thorough (~8-minute) memory test and summarizes errors found.test.memory.verbose (stand-alone only)Same as "test.memory.slow", but errors are printed out individually rather than onlysummarized.test.memory.write.fast (stand-alone only)Undoes the effect of test.memory.write.slow.test.memory.write.slow (stand-alone only)Sets a mode flag that causes subsequent runs of the memory test to write data intomemory using a more conservative (but slower) method than usual. Try thiscommand if the memory test crashes due to "fatal error from wrong place in code".verboseReinstates full disk error typeout. fpi9qX Fp _s]KF Y,XR T)RIQ MKA HY4F6D AR?K=) :K 806 3CX31y< .#,<3*r6 'X#%5D !&2". X), )RJ )(  X# <]oUsing Micro-ExecMaxc Operations40verify.disk.test.pattern (default 0)Reads the auxiliary pack and verifies the data written by a previous "initialize.disk.pack"or "write.disk.test.pattern", reporting any discrepancies (up to a maximum of 5 per page).write.core.to.tape (stand-alone only)Writes core from 20 to 347777 onto tape.write.disk.test.pattern (default 0)Writes random data on all pages of the auxiliary pack, then rereads and verifies it,reporting any discrepancies (up to a maximum of 5 per page).write.micro.exec.to.area (C)Writes a bootable (via NVIO "B" and "S" commands) copy of the currently runningMicro-Exec to the specified area. (Ordinarily Micro-Exec is kept on save area 1.)write.micro.exec.to.tape (stand-alone only)write.specified.disk.page (C) (default 20)Writes page from memory location BUF to specified disk page.write.tenex.to.area (C)After checking "fingerprint", writes Tenex core image to specified area.write.tenex.to.file (user mode only)After checking "fingerprint", writes Tenex core image to specified file (defaultextension .SAV).write.tenex.to.tape (C) (stand-alone only)After checking "fingerprint", writes Tenex core image to specified tape.A more compact summary of Micro-Exec commands is given in the following table:12.3. Micro-Exec Command SummaryDisk Configuration Commandsset.disk.configurationprint.disk.configurationmount.auxiliary.pack dismount.auxiliary.packDisk Pack Copy and Compare Commandsinitialize.disk.packcompare.disk.packs copy.pack.to.pack copy.quadruple scan.disk.pack.for.errors Save Area and Other Commandsdump.save.areas.to.auxiliary.packload.save.areas.from.auxiliary.packdump.core.to.area load.dump.from.area write.micro.exec.to.area install.new.microexec)fqX;pi  _sX$]K[[Z X4VD( R#Q GO=< K#J'(H6R DX: ARI?< <:KH 6/5P3C /X9.H *N #r! bts*+!*+ [t#s*+*+# ts!*+# *+ **+l <](Maxc OperationsUsing Micro-Exec41goto
clear.coreddteddtread.tenex.from.area write.tenex.to.area start.tenex.from.area goProgram Save Area Commandsset.program.save.area initialize.area.for.programsdump.program erase.program print.program.directoryrun.diagnostic.program run.program Disk Test Commandsreset.disk.error.countset.disk.error.retry.countprint.disk.error.countset.disk.timeout write.disk.test.patternverify.disk.test.patternexercise.disk.random exercise.disk.specific briefverbosedebug.disk.controller silentread.specified.disk.page write.specified.disk.page loop.on.specified.disk.page Memory Test Commandsfind.chip.for.address
test.memory.fasttest.memory.slowtest.memory.write.fasttest.memory.write.slowtest.memory.verboseTape Unit Commandsinitialize.tape rewind.tape read.tape.to.core write.core.to.tape read.tenex.from.tape write.tenex.to.tape write.micro.exec.to.tape check.next.tape.file User Mode Commandsdump.core.to.file load.dump.from.file read.tenex.from.file write.tenex.to.file load.program quit fpi9qX Fp_s *+ ]K*+[*+Y*+ VDtTys*+R*+P*+%O KtIs*+H*+!FH*+D}*+B*+@$*+?-=S.;0 8t6Ks/4*+2*+0 -zt+s*+)*+(*+&O*+ "t!s*+H*+}*+4 69 JHardware Diagnostic and Maintenance ProceduresMaxc Operations4213. HARDWARE DIAGNOSTIC and MAINTENANCE PROCEDURESThis section discusses operation of various hardware diagnostic software and firmware.Microprocessor diagnostics are normally used to isolate suspected failures of the microprocessor orport hardware. Micro-Exec memory and disk testing commands are generally used to isolatesuspected failures of disk units and main storage modules.The microprocessor diagnostics require that a small nucleus of the microprocessor and its interfaceto the Alto be working, before meaningful failure diagnosis can take place. When a failure hasoccurred in this essential nucleus, the Midas "Test-All" command and SMIDiag.run are used toisolate the failure.MemBash and TM have been used to check out memory reference interference problems andfailures in the Alto memory interface.13.1. Running Microprocessor DiagnosticsThe microprocessor diagnostics are normally kept on the Alto disk.You must obtain the notebook labelled "Microprocessor Diagnostics" or "Maxc Diagnostics" inorder to do any useful debugging. However, the diagnostics all fall into a common pattern and theycan usually be run in a simple-minded way without understanding too much about what theprograms are really doing. The following generalizations may be helpful.Associated with each of the diagnostics described below is a command file whose name is the sameas that of the diagnostic. If you type to Nova DOS or to the Alto Executive:MIDAS diagname Midas will load the diagnostic and show registers pertinent to the diagnostic's operation on thedisplay. You may wish to set some parameters before starting a diagnostic (for example, the lowand high addresses for a memory test). However, the values as loaded are reasonable for thoroughtesting.When you are ready, type START;G to start the diagnostic. (DGM has two alternate startingaddresses for interrupt system testing.) The diagnostic will halt after one pass at IMA=20 (DGIMLis the only exception to this rule: it breaks at 3200 on Maxc1 and 7200 on Maxc2). This meansthat no failures were detected. To repeat, type ;P to Midas. To loop indefinitely, delete thebreakpoint at 20 by typing 20;K and then ;P. All of the diagnostics except DGM loop in less thantwo seconds, so something is wrong if the machine hangs in the loop.A breakpoint at any location except 20 indicates that an error was detected. The most commonerror breakpoint is at 25 or 26, the comparison error breakpoint. The location in the diagnosticfrom which the comparison routine was called is displayed at STK 0. You can get Midas to tellyou the nearest label by selecting the value to the right of "STK 0" with the middle mouse button.Following the .LS listing is the diagnostic listing, which contains general operating instructions incomments preceding the program itself. DBEG0 is assembled or loaded ahead of some diagnostics,)fqX.;pi A_rX3 \1s^4_" Zf` X? V: S_>% QS O@ M J; H& BrX) >sB ;E 9T?$ 7? 5I 2LQ 0M-X )"> '` & ># $> 9! T 7#< l#< -4 D e] a L M ;+: p'8 ~ )>\Maxc OperationsHardware Diagnostic and Maintenance Procedures43so its listing and .LS file may also be relevant. Some diagnostics INSERT other files or areassembled from several sources, so you may have to look a bit to find the relevant listings. Whentracing an error, find the tag nearest the address in STK 0 (if the breakpoint is at IMA=26) orIMA (if the breakpoint is elsewhere) and read the comments there from the listing.If the breakpoint is at IMA=26, the diagnostic may be resumed from the point of error by thecommand ;P, which will return to the caller of the compare routine (this usually works butnot always).The diagnostic names and what they test are listed below:DGBASIC.MBMost basic diagnostic. Does not use the main memory, the inter-rupt system or the P-register input multiplexors. Tests everthingthing except the SM, DM, DM1, DM2, LM, and RM memoriesfirst, then tests these memories and the F-register. Cycle time < 1second.DGP.MBTests the P-register inputs and a few afterthoughts fromDGBASIC.MB. Cycle time < 1 second.DGALU.MBTests an assortment of P-register, Q-register, and ALU operationsusing random numbers. Cycle time < 1 second.DGM.MBTests the memory interfaces. There are alternate entry points atSTART and XSTART for interrupt system testing. Be sure to readthe listing comments before starting at XSTART. Cycle time ~ 20minutes to test each 128K of main memory; correspondingly less ifthe address range is restricted. Note: After running DGM, youhave to go through the "Power Up" procedure before running thePDP-10 microcode again, because certain low core locations thatmust be zero are not left zero by DGM. This will cause animmediate NVIO punt, if you forget to do this.DGI.MBTests the interrupt system and repeats parts of DGBASIC and DGPaffected by interrupts. Cycle time < 1 second.DGIML/DGIMH.MBTests the SM, DM, DM1, DM2, and MP memories using randomnumbers, then the instruction memory (IM) first by using each ofthe 72 patterns of a single 0 in a field of 1's, then the 72 patterns ofa single 1 in a field of 0's, then random numbers. DGIML runs inthe top of IM and tests the memory below it, while DGIMH runsin the bottom of IM and tests the memory above it. Cycle time < 3seconds.Alternate starting addresses exist to test only IM, only MP, or onlySM/DM/DM1/DM2 (which are physically a single memory).There are a number of special loops for repeating test sequencesthat have provoked failures in the past. fpi'qX&Fp _s'6 ]K9) [A YR VDV Ty: R O=X9K $J 7H66Fk-DA.8?d#;6 :'-6$4%3 '1U*/"ts-(+?*+*(`.$%#$/  +/+R)"%/5 1 ( =\2-Hardware Diagnostic and Maintenance ProceduresMaxc Operations44DGRL.MBTests the right register bank (RM) and the left register bank (LM)using random numbers. Cycle time < 1 second.DGMR.MBTests the main memory using random numbers. Cycle time ~ 5seconds. Note: After running DGMR, you have to go through the"Power Up" procedure before running the PDP-10 microcode toclear several low core locations that must be zeroed but are smashedby DGMR.DGREG.MBTests assorted registers with random numbers. Like DGALU,DGREG is a reliability diagnostic that supplements the basic testsin DGBASIC and DGP. Cycle time < 1 second.13.2. Running PDP-10 DiagnosticsPDP-10 instruction diagnostics 0A through 0N and 0R may be run on Maxc either in stand-alonemode or under Tenex. We use them only for checking out new PDP-10 emulator microcode andnot for hardware diagnosis (which is what they were originally intended for). Some of them havebeen patched to account for Maxc incompatibilities.There are two methods of running PDP-10 diagnostics stand-alone. The more convenient is to runthem from Micro-Exec by means of the "run.diagnostic.program" command. However, if themicrocode is working so poorly that Micro-Exec won't run, the other method is to load them fromthe Alto using AltIO's "Load" command.Running diagnostics from Micro-Exec is simple. All the diagnostics that will run on Maxc arestored as programs on save area 2. They may be listed out by the "Print.Program.Directory"command. To execute a single pass of a given diagnostic, type:*Run.Diagnostic.Program Control returns to Micro-Exec when the diagnostic is finished. To make the program loop forever,type:*Goto 4000 The iteration count (a decrementing negative number) may be displayed by examining Maxclocation 1. To abort this, you have to either reboot Micro-Exec or halt the microprocessor withAltIO "H" command and then restart Micro-Exec with "20G."Running diagnostics using DMPLD or AltIO is somewhat messier. This procedure should be usedonly when, due to hardware or microcode problems, it is impossible to run the diagnostics fromMicro-Exec.The procedure is as follows:1)Retrieve the diagnostics from the DIAGNOSTICS> directory on Ivy using FTP. Onlya few diagnostics will fit on the Alto disk at once.)fqX.;pi ams&_-\1"Zf tsX'V*UQ:O6 M+ G?rX! CsM BD @7[ >m3 :[ 90@ 7f=" 5& 2)#: 0_6% .?+"*+"X* '&; %"s" K"s 4# 7E l9 = 0B e X 2P 4  p=\Maxc OperationsHardware Diagnostic and Maintenance Procedures452)Load the PDP-10 microcode by means of the "MIDAS TENLOAD" command.3)Enter AltIO by selecting the "AltIO", "Dont-Go", and "Do-It" menu items.4)Load the selected diagnostic into Maxc memory by means of AltIO's "Load" command. Thenmake sure all the patches have been made.5)Start the diagnostic by issuing the "Go" command.On Ivy, the DIAGNOSTICS> directory contains all the PDP-10 diagnostics, along with aset of RUNFILs for running them in user mode under Tenex (note that diagnostic 0D cannot berun in user mode). The script named .RUNFIL will cause the specifieddiagnostic to be started and run forever (type control-B to stop). Additionally, there are commandfiles BASIC.RUNFIL and RELIABILITY.RUNFIL which execute one pass of diagnostics 0A-0Hand 0I-0N respectively.13.3. Memory MaintenanceMemory maintenance is scheduled periodically every 3 months or so to replace storage ic's thathave failed. Because the memory is error-corrected, the system can be operated with a number ofbad components, so memory maintenance is not scheduled until the number of failures becomessignificant.The procedure for doing this is as follows:1) Schedule the system down using the procedure discussed in "Stopping Tenex."2) At the appointed time, the system will halt; then unprotect AltIO with 3301P.3) Boot MicroExec with the AltIO "B" command.4) Run "Test.Memory.Slow" as discussed below. You want to get output on paper; you shouldissue the "Diablo Printer On" command to AltIO before starting the test.5) Power down the system as discussed in the "Power Down" section. It is possible to power-offonly the memory (so you don't have to turn off the disks).6) Pull the cards affected by bad chips and mark the bad ic's with a magic marker; interpret theoutput of "Test.Memory.Slow" as discussed below. Record the serial numbers of the boards pulledfrom each position and attempt to restore the cards to their original positions after repair.7) Replace the bad 1103 ic's or, if that isn't possible, use the spare memory cards in the rack abovethe Maxc2 Alto. (Refer to Appendix A for diagrams showing memory board and chip locations.)8) Restore the repaired cards to their original positions (if using a spare card, mark the bad cardwith the complete failure information using a piece of paper and scotch tape). fpi'qX&Fp _s2B [2H X22-* Vg) R2X1 O< M'4 KC J#[ HY? F ?r <\sA :#= 8S 6 3X+ 0N ,P )4- %&4 #H G : IB ~00 ] BS wq s7 /4 ;N Z =[Hardware Diagnostic and Maintenance ProceduresMaxc Operations469) Power up the system as discussed in the "Power Up" section.10) Reload the microcode and restart AltIO and MicroExec using "Midas MExecGo," as discussedin the "Loading the PDP-10 Emulator" section; repeat Test.Memory.Slow to see if the repairs havebeen successful.11) If everything is ok, restart Tenex.Memory maintenance is performed with the aid of Micro-Exec.1 After loading the microcode andstarting up Micro-Exec, simply type:*Test.Memory.Slow This requires about 6 minutes to test all 384K of memory. All data, tag, and parity bit failurescause an error count to be accumulated for the affected chip. The physical location of each chipwith errors is reported at the end of testing each memory cabinet, along with the pages affected andthe error count. Every word in memory is tested 82 times using various patterns, so every chip iswritten into and read from 83968 times. Hence, a total chip failure will generate on the order of40000 errors (since it will yield the wrong value approximately half the time), while a solid singlebit failure will generate on the order of 40 errors.Conclusively diagnosed check bit failures are also reported in this manner. For check bit failuresthat Micro-Exec cannot diagnose (due to an insufficient sample or lack of any obviously failing bitpattern), information is printed out as to the frequency of zeroes and ones in the correct values ofeach check bit. Since the check bits can't actually be read, the best that can be done is to deducewhich check bit is failing on the basis of these frequencies.The "Test.Memory.Verbose" command does everything that "Test.Memory.Slow" does, but alsoprints out the address, error type, correct data, incorrect data, and exclusive or for every error. Forcheck bit failures, the correct data and the computed Hamming code are printed out. Thiscommand will generate reams of output unless the memory is pretty clean to begin with.If the diagnostic crashes due to "fatal error from wrong place in code", one should re-boot Micro-Exec and issue the "Test.Memory.Write.Slow" command before running the memory test. This setsa mode switch that forces Micro-Exec to use a more conservative (but slower) method of writingdata into the memory under test.To obtain hardcopy of the memory error printout, issue the "Diablo Copy On" command in theAltIO command window before starting the memory test.Because of error correction, Tenex can run ok with bad bits and even bad cards in the memorysystem. Exception: a double error in pages 0 to about 217 will prevent Tenex from running. Non-hardware-maintainers should ordinarily not attempt to repair the memory system. However, thefollowing instructions for locating failures reported by Test.Memory.Slow (or Test.Memory.Fast) areprovided, just in case.------------------------------1There is also a Maxc memory diagnostic called TMEM which runs on the Nova, but it does not test memory asthoroughly, does not find bad check bits, and requires the use of a second program, PER, to analyze failures. Theseprograms are therefore not documented here.)fqX.;pi  amsX> ] N \1O Zf VX' S;TuSs! Q$NFM NFX Ja I W G? Y EtF CH AU @4 <): :M 9 ;ts 7BF 5x= 2X 0;Q .q$5 ,V )4L 'iY %-1 # bS 5 &\ [H 2+ ,7  ]u LJ c g+ L =[,Maxc OperationsHardware Diagnostic and Maintenance Procedures47The error printout is of the form:Quad q Cab c Card d Col h Row r Pages 1360-1367 bit 14, 10 errorswhere q is J, K, L, or M; c is 0 to 3; d is 1 to 16; h is 0 to 11; and r is 0 to 7.The cabinets are numbered consecutively 0, 1, 2, ... starting with the one next to the processor. Thequadrants are each represented by a row of 16 cards starting at the top of the cabinet, so J is thetop row, then K, then L, and M is the bottom row. In each row the cards are numbered 1 to 16starting at the left as you look from the back of the cabinet. (Ref. Figure 4, Appendix.)If you hold the cards with the ic's up, edge connector toward you, the storage chips form an arrayof 12 columns by 8 rows starting with 0,,0 in the lower right corner. The other parts on the boardare 12 address drivers on the left and right and 6 sense amps and other stuff next to the edgeconnector. (Ref. Figure 5, Appendix.)In an emergency, you can replace a card with one of the spares in the unused rack above theMaxc2 Alto. If you have to do this, be sure to attach the error printout and a note about where thecard came from to the card you remove; leave the card on the table in the Maxc room so systemmaintainers can find it.13.4. Disk MaintenanceMicro-Exec is used to diagnose most disk problems. The assortment of commands for doing thisare discussed in the Micro-Exec section. Two microdiagnostic programs called DSKD and EXAMare also available. However, these programs are only of interest to Ed McCreight--they are notintended for operation by novices.Micro-Exec reports disk addresses in the following format:0FFPPPHHCCCSwhere:FF = function (04 = read, 10 = write)PPP = pack numberHH = head numberCCC = cylinder numberS = sector numberBasic test procedures are as follows:a)Scanning a system pack for errors:*Scan.Disk.Pack.For.Errors fpi'qX&Fp _s"[B X2S TV Rc Q+L O`Fr qs KM J#F HYX Fr qs CV ARO ?,1 = 6r 3s P 1-. /W .*" *:'F # bX%8 %CT"9!f =YpHardware Diagnostic and Maintenance ProceduresMaxc Operations48This prints out both soft and hard errors, and provides no way of telling which errors arehard. To find only hard errors:*Set.Disk.Error.Retry.Count 20*Scan.Disk.Pack.For.Errors b)Writing and verifying a test pack: (Note that pack 100 is reserved exclusively for thispurpose.)*Mount.Auxiliary.Pack *Write.Disk.Test.Pattern (Writes and verifies test pattern)*Verify.Disk.Test.Pattern (Verifies already written test pattern)*Dismount.Auxiliary.Pack (when done)c)Observing disk data on a scope:*Loop.On.Specified.Disk.Page This repeatedly reads a single page, blinking the screen whenever an error is detected.Type DEL to terminate.Following Tenex file system crashes, where fatal read errors in directories have occurred, thefollowing general methods help to isolate the cause of the failure.1. Turn on the "Read-Only" switches for all the system disk packs.2. Use Micro-Exec S.D.P.F.E to find out which drives/packs/controllers are causing trouble. If aparticular pack suffers many failures, but the others seem ok, it is likely that the common controlleris ok, but that something is wrong with either the unit controller or disk drive that is experiencingthe failures. If the failures are confined to a particular head, it is likely that that head is misalignedor broken.3. If a pack produces many irrecoverable read errors on one drive, try mounting it on another driveand using S.D.P.F.E. If it can be read ok on the other drive, then it is likely that there is somefailure in the read electronics of the original unit controller or disk drive; otherwise, it is likely thatthere is a failure in the write electronics of the original controller/drive.4. Try writing a test pattern on a test disk pack on a good drive (Pack 100 usually used for thispurpose because it does not have any bad spots.). Then mount the pack on the suspect drive anduse S.D.P.F.E to see if it can be read correctly. If it cannot be read correctly, you have furtherindication of a read electronics failure; if it can be read correctly, then you have furtherconfirmation of a write electronics or head failure.5. If you determine that a particular drive/controller combination is broken, you can determinewhether it is the drive or controller by recabling the suspect controller to a working drive and thesuspect drive to a working controller. (Refer to last two paragraphs in section 12.1 for a discussion ofwhat to do if the disk configuration is changed.))fqX.;pi  amsA _9\19Zf!CV MU*9Q#9O@9N#F9LX)CH9Et; BH @7 <O :C 7XC 4_ 2L&@ 07. .+@ , ){d '>% %f $M ZT A B!  O 04 ` L )t(srt ^1  =ZMaxc OperationsHardware Diagnostic and Maintenance Procedures4913.5. TMTM is a Maxc memory diagnostic that runs on the Alto. It is used for basic debugging of thememory system, or when the memory is too sick to support Maxc programs such as Micro-Exec.TM is documented separately in a memo entitled "The Maxc2 Memory Test Program and OtherFolklore", by Larry Clark.13.6. MemBashMemBash is an Alto program that beats on the Alto/Maxc memory interface while monitoring thestate of the Maxc processor. It is intended to be run at the same time as a Maxc main memorymicro-diagnostic (DGM or DGMR) to provoke problems that arise under conditions of memorycontention.The Maxc micro-diagnostic should first be loaded using Midas and the end-of-test breakpoint at 20removed by typing "20;K". Then exit Midas, start up MemBash, and issue the "Go" command.The program runs until any key is struck.If any error occurs (in the processor, memory, or Alto memory interface), the state of the memorysystem and all the memory interfaces is displayed. The processor is then restarted at the beginningof the micro-diagnostic.The Alto memory operations executed by MemBash are ordinarily sequential reads through the first256K of memory. The "Alto Operation" command may be used to select write or RMW operationsor to specify that the Alto beat on a single memory location.MemBash may be exited by means of the "Quit" command.13.7. SMIDiagThis program is a diagnostic for the Alto System Maintenance Interface (SMI). Its operation is verysimple, and one should step through the various available commands using the "?" feature.There are two main tests, one for the address register and the other for the data register. In eithertest, one may use data patterns consisting of all zeroes, all ones, alternating ones and zeros, orrandom data. Important: Before running the address test with random data, it is necessary todisconnect the SMI cable to Maxc and install a terminator on the Alto interface.13.8. AITestAlto-IMP interface test. fpi'qX&Fp _r [s/- Y(2 XW VD Or Ls,0 JGB H|: F C@@! AuY ?) <8 U :nD 8 51Z 3g1* 1= .*X5 'ir #sM "-/* H T & t s2 [P r )sX >Y)Recovery from Checkdsk ErrorsMaxc Operations5014. RECOVERY FROM CHECKDSK ERRORSAs explained in Section 6, when Tenex is restarted, whether initially or due to an auto-restart after acrash, the programs Bsys and Checkdsk are run to verify the consistency of the file system. If eitherof these programs detects errors which cannot be corrected automatically, the message "Tenex notavailable: Disk needs fixing" is broadcast to all terminals instead of the usual "Tenex in operation"message, and logins are prohibited from all terminals except the two in the Maxc room.The following procedures require wheel or operator status and are intended principally for referenceby system personnel. With some assistance from a user in the Maxc room, a system maintainer canperform these procedures from a home terminal. Only in extreme circumstances should non-systempersonnel attempt any of these procedures.Errors detected by Bsys (which are usually reflected by some further errors detected by Checkdsk)indicate inconsistencies in the structure of user file directories. Fixing these requires a fairlyintimate knowledge of the Tenex directory structure; this should be left to system personnel.Information about the structure of directories may be found in the Tenex Monitor Manual, sectionVII, pages 2-5. Other helpful information is available in the Bsys manual, pages 33-36. Copies ofboth these documents are kept in the Maxc room book case.Checkdsk errors come in a number of guises. For each file with errors, data will be printed as inthe following example:(NOTE: Before looking at CheckDsk errors you may have to do a "Diablo Copy ON" in the upper AltIO window to get hard copy output of the error messages; then Boot Micro-Exec, Start Tenex.)MESSAGE.COPY;3Filename40050172166 MDA 0} List of errors140050172170 MDA 63}1 PTE} Error2 MDA} summaryIf there are many errors in a single file, Checkdsk will print out only the first few, followed by thesummary. Study the output carefully.First, note that "NOT IN BT" errors have been corrected by Checkdsk, so don't worry about them.If these were the only errors that occurred, Checkdsk wouldn't have complained and the systemwould have flown on.The other kinds of errors reported by Checkdsk are more serious:MDAMultiply-assigned disk addressIDAIllegal disk addressPTEPage table errorMDA errors are the only ones that cause Tenex to prohibit users from logging in, since further fileactivity is likely to make the damage spread.Note that you will have to use some judgment in discriminating between garbaged page tablesand real MDA errors. A file with a garbaged page table will have an enormous error count (in the)fqX;pi _rX" \1se Zf_ XI V14 UV Q&> O/1 M_ L5* H*7 F,7 E-)5 CcB AQ ?9 <\,6 :t48+-7B 3s*+2X*+0;*+.q*+,*+ )4K 'i% ##us "-V b X@~ w Y - ;$us/ p] t )>\Maxc OperationsRecovery from Checkdsk Errors51hundreds) with many categories of errors (IDA, MDA, PTE, etc). This is frequently caused by anuntimely Tenex crash occurring between directory update and page table update during new filecreation, so that the page table for the file will not have been written on the disk yet and whateverwas on that page before will be interpreted as a page table. This type of error may result in manyother files getting bogus MDA errors because some of the entries in the garbaged page table looklike valid disk addresses that happen already to be assigned.For further confirmation that the problem is a garbaged (unwritten) page table, a QFD of thefilename should reveal that it was created within a minute or two before the time of the last systemcrash. Such a file should be deleted using the following procedure:@ENABLE password !CONNECT !DELETE !EXPUNGE !This procedure causes the bad file to be expunged from the directory. A number of valid addressespossibly in use by other files may be deallocated, but don't worry about this. The system willgenerate a number of BUGCHKs for illegal disk addresses, but don't worry about this either. (Besure DCHKSW is set to zero, however, to prevent the system from breakpointing on these errors).Run Checkdsk again after performing this surgery to make sure you did it right and that there isnothing else wrong. Checkdsk will reallocate pages incorrectly deallocated by the precedingprocedure and will type out "NOT IN BT" for these.!CONNECT SYSTEM !CHECKDSK REBUILD BIT TABLE? NSCAN FOR DISK ADDRESSES? N(This currently takes about 15 minutes).After all files with garbaged page tables have been eliminated (if there were any), any further errorsare considerably more serious, particularly MDA errors. MDA stands for multiply-allocated diskaddress, meaning that a particular page has somehow been assigned to more than one file. Foreach such error, Checkdsk has printed out the second file owning the page that it encountered in itsscan of the file system; you do not yet know the name of the other owner of that page. Henceyou should follow this procedure:!CONNECT !COPY GARBAGE !DELETE !EXPUNGE !RENAME GARBAGE Repeat this procedure for all affected files. You should be careful to type the in full, including version number, so you don't mistakenly fix up the wrong file.Next, re-run Checkdsk as explained above. While running, Checkdsk will type out a number of fpi2)qXFp _sA ]K O [23 YI WusK V!= R.. PT ODK8KQiKXIQII&HQGHFHQE FH D} A "@ ?A_ =v@ ;/0 9A 8? 6K22Q22X1Q0 1 /D"."/D-z(-#"-z *( &"D $8' #A !6.us k-1 !/Q#/X7dQ +d%QCTQx  Q'  Y Q V": f >]mRecovery from Checkdsk ErrorsMaxc Operations52NOT IN BT errors whose disk addresses correspond to the disk addresses in the original MDAerror printouts; the filenames typed out will be those of the other owners of the pages that weremultiply assigned. It may not be obvious which owner of a page has the correct copy (a QFD ofthe filenames will include the write dates, which may give some indication; i.e. the file with thenewer write date is more likely to have the correct data), but you have done the best that can bedone by giving non-conflicting copies to everybody involved. Use SNDMSG to notify all userswho have (potentially) lost files. Both the original MDA and the final NOT IN BT files areinvolved in the loss.When you have pieced the filesystem back together to what you believe is a reasonable state, youshould open the system to users by the following procedure:!QUIT ./FACTSW[ 500000,,0 400000,,0 ABORT.^!LOGOUT LOGOUT JOB ......After you type control-C, the auto-jobs should start logging in, and shortly thereafter "Tenex inoperation" will be broadcast.)fqX;pi  _sJ ]K7u s [G YY W:' V!A TV[ R O9' MO;IQIrIXH/GHE\FH !EVFH D&D} B@/@@?Q> ? =S;1; 8<% 6KX 6=2Maxc OperationsBSYS Operation5315. BSYS OPERATIONThis section describes normal operating procedures for backup and archiving by means of BSYS.Further information on BSYS commands may be obtained from the document "BSYS - TenexBackup System" by Smokey Wallace, a copy of which is kept in the Maxc room book case.One should be aware of what procedures can and cannot be performed simultaneously. Only onedump of any kind (incremental or full dump, archiving, or backup to tape) can be in progress at atime. However, it is ok to perform archive retrieval (or retrieval of files from backup) at the sametime as a dump.15.1. Backup ProceduresA full dump of the file system is performed approximately once a month, and incremental dumpsevery weekday, onto disk packs mounted on auxiliary drives. At present, the backup packs consistof three sets of packs for full dumps and enough packs for incremental dumps to last about amonth. Successive full dumps alternate between the three sets of full dump packs, and theincremental dump packs are then recycled until they are all rewritten with data more recent thanthe last full dump, at which point it is necessary to perform another full dump. This procedureensures that (1) if the file system is wiped out, it will be possible to restore it to its state at the timeof the last incremental dump, and (2) if a user loses a file and notices its loss within one month, itwill be recoverable.Immediately following a full dump, the last set on which a full dump was performed will be rotatedwith the third set of full dump packs which are stored in Bldg. 37 (Ginn Building) archive area as afire safe set. This will provide protection in the event of disaster. There will always be two fulldump sets in the Maxc room (the most recent and the third most recent) and the second mostrecent will be the fire safe set.In addition to full and incremental dumps, a full backup to tapes is performed once every threemonths and the tapes stored in Building 34. This provides additional backup in case of acatastrophe such as a fire in the machine room.BSYS is organized around the use of tapes as the backup medium. Disk packs have been interfacedto BSYS at a very low level, with the result that most of BSYS still thinks it is dealing with tapes.The backup packs are laid out in a manner that allows several logical "tapes" to be stored on eachone. Every such "tape" has a "tape number" (just as with real tapes) whose format is "xxxyy",where xxx is the pack number and yy is the logical "tape" number (or "dump number") on thatpack. Hence, "Parc tape number 21402" means the second dump on pack number 214.When a full dump is performed, each pack contains a single logical "tape", since every pack exceptthe last is completely filled by its respective portion of the full dump. An incremental dump, onthe other hand, typically fills somewhat less than one pack. Hence it is possible to writeincremental dumps for several successive days onto a single pack. When a pack becomes full, thelast incremental dump will usually be split between the last logical "tape" on that pack and the first"tape" on the next pack. This is ok since each "tape" has its own directory and is completely self-contained. (However, the last incremental dump pack should not be allowed to overflow forobvious reasons.) fpi:qX Fp"`r ]KsA [+) YU VD5' TyA Re P J#rX Fs O D3. CL AR3' ?[ =M ;V :' [ 8] 4+7 3 d 1Ut s8 /; -t *Ns,3 (E &/ #G` !}>' E 9% R RP  W :( K< B Q K E V >]2BSYS OperationMaxc Operations54A record of usage of full and incremental dump packs is posted on the Maxc room bulletin board.It should be kept up to date.15.2.Incremental DumpsEvery working day, an incremental dump should be performed, preferably during periods of lightMaxc load (e.g. before 8 am or after 5 pm). The procedure is as follows.1.Consult the "Incremental Dumps" chart to determine the pack currently being used forincremental dumps. Mount that pack on any free drive. Wait for it to be on-line before startingBSYS.2.Login as someone with "wheel" or "operator" capabilities and execute the following procedure(user typein is underlined):@ENABLE password !CONNECT BSYS !BSYS TENEX BSYS 4.03 23-MAY-75*INCREMENTAL DUMP (CHANGED FILES) Dump since t&d? No Entire file system? Yes 3.You will now be asked to "Enter backup device (mtan:, dpkn:)". Here you should enterDPKn, where n is the unit number (drive A is unit 0, B is unit 1, ... H is unit 7). Then you will beasked for the pack number. When you supply this, BSYS will attempt a Tenex "Mount" of thepack. Assuming this is successful, one or more of the following things will happen:a)"Pack has no home block. Do you want to initialize the home block?" This should happenonly for a freshly-initialized pack, i.e. one that has not been used for backup before. Since all ourbackup packs have been used many times, you should not see this question.b)"Home block type is xxxxx. Do you want to initialize the home block?" The mounted packhas been used for some other purpose and should probably not be used as a backup pack. (This isespecially true if xxxxx is "TENEX"!)c)"n dumps already written on this pack", followed by a list of the dates and times of the dumps,followed by "Do you want to overwrite these dumps?" If you are appending to the pack that wasused in the previous day's incremental dump (i.e. the most recent date printed out is yesterday), youshould answer "No". If you are recycling a pack from the previous month (i.e. the dates printedare on the order of a month ago), you should answer "Yes".d)If the number of free pages on the pack is less than 2000 and you answered "No" to thequestion about overwriting existing dumps, BSYS will say "Insufficient room for more dumps" andwill ask you to mount another pack (on the same drive). The reason for this check is to ensure thatit will be possible to write the file DIRECTORY on the first logical "tape" of thisdump.)fqX ;pi  _sA ]K XrX UMs^ SI P26 NFH L{ I 2R G?C8CviCXBQA B@7Q?Q@7>m<[^RMaxc OperationsBSYS Operation554.BSYS will then ask "Listing to file:". We keep incremental dump listings on the BSYSdirectory in files named BSYS/mm-dd-yy.INC, where mm-dd-yy is today's date. So you shouldrespond with, for example, "BSYS/7-25-75.INC".5.Finally, BSYS will ask you to "Enter tape id:". You should respond with the same string asyou gave for the listing filename, e.g. "BSYS/7-25-75.INC".6.The dump should now proceed. BSYS prints a summary of files and pages dumped for eachdirectory (more detailed information is sent to the listing file).7.If the pack becomes full, BSYS will once again request you to "Enter backup device (dpkn:,mtan:)". You should dismount the pack, mount the next incremental dump pack, and repeat step 3above. In this case, you should always answer "Yes" to the question "Do you want to overwritethese dumps?" since you are recycling an old incremental dump pack. Be sure to update the charton the bulletin board.8.When the incremental dump is finished, BSYS will type an asterisk. The last step of the dailybackup procedure is to do an "Expunge" on all directories:*QUIT !DISCUSE SYSTEM TOTAL: 6679 PAGES LEFT, 129401 USED!EXPFILES [Long pause while expunges are done]!DISCUSE SYSTEM TOTAL: 9475 PAGES LEFT, 126705 USED!9.Tear off the listing and put it in the filing cabinet. (Fanfold to 8.5" x 11" for filing.)10.Occasionally you should delete obsolete incremental dump listing files, i.e., ones for dumps thathave been overwritten. This is most conveniently done using the program DELBSYSINC (on theBSYS directory). It requests a date and deletes all files of the form BSYS/mm-dd-yy.INC in whichmm-dd-yy is earlier than the date specified.15.3. Full DumpsThe full dump procedure takes 6 to 8 hours depending on load, so it is usually run during the day(unless you plan to be at Parc all night anyway).1.Consult the "Full Dumps" chart and select the least recently used set of full dump packs. Besure to update the chart. Mount the first pack on any free drive. Wait for it to be on-line beforestarting BSYS.2.Login as someone with "wheel" or "operator" capabilities and execute the following procedure(user typein is underlined): fpi:qX Fp _s2/& ]K1) [2 X2)2 VD? R2< QB M2D KB JD H6(8 Fk B2T A.:==er=X;Q; ; :'+8]Q8 8] 6$4Q4p 4 2+12 -28uF# *Ns2J (H &Q $, .r sF 1 23* 6.  x2R  g=[BSYS OperationMaxc Operations56@ENABLE password !CONNECT BSYS !BSYS TENEX BSYS 4.03 23-MAY-75*FULL DUMP (ENTIRE FILE SYSTEM) 3.You will now be asked to "Enter backup device (mtan:, dpkn:)". Here you should enterDPKn, where n is the unit number (drive A is unit 0, B is unit 1, ... H is unit 7). Then you will beasked for the pack number. When you supply this, BSYS will attempt a Tenex "Mount" of thepack. Assuming this is successful, one or more of the following things will happen:a)"Pack has no home block. Do you want to initialize the home block?" This should happenonly for a freshly-initialized pack, i.e. one that has not been used for backup before. Since all ourbackup packs have been used many times, you should not see this question.b)"Home block type is xxxxx. Do you want to initialize the home block?" The mounted packhas been used for some other purpose and should probably not be used as a backup pack. (This isespecially true if xxxxx is "TENEX"!)c)"n dumps already written on this pack", followed by a list of the dates and times of the dumps,followed by "Do you want to overwrite these dumps?" The dates printed out should beaproximately two months old. Since you are re-using a full dump pack, you should answer "Yes"to this question.4.BSYS will then ask "Listing to file:". We keep full dump listings on the BSYS directory infiles named BSYS/mm-dd-yy.FULL, where mm-dd-yy is today's date. So you should respond with,for example, "BSYS/7-25-75.FULL".5.Finally, BSYS will ask you to "Enter tape id:". You should respond with the same string asyou gave for the listing filename, e.g. "BSYS/7-25-75.FULL".6.The dump should now proceed. BSYS prints a summary of files and pages dumped for eachdirectory (more detailed information is sent to the listing file).7.When the pack becomes full, BSYS will once again request you to "Enter backup device(dpkn:, mtan:)". You should dismount the pack, mount the next full dump pack, and repeat step 3above.8.When the full dump is finished, BSYS will type an asterisk. The last step of the monthlybackup procedure is to do an "Expunge" on all directories:*QUIT !DISCUSE SYSTEM TOTAL: 6679 PAGES LEFT, 129401 USED!EXPFILES [Long pause while expunges are done]!DISCUSE SYSTEM TOTAL: 9475 PAGES LEFT, 126705 USED!)fqX ;pi _s8^i_X]KQ\ ]K[Q[)Q[YWWW0W~W Ty25 RE P M OT K2J I:, HI D2"6 B8( A % =2'8 ;T :'7 89 42X 29# 12% -2)2 +@ (2< &B #G2** !})7  @21( u:rX9Q 9 n+QM  $Q   D+ y  2=]RMaxc OperationsBSYS Operation579.Tear off the listing and put it in the filing cabinet. (Fanfold to 8.5" x 11" for filing.)10.Delete the listing file for the full dump that has just been overwritten.15.4. Full Backup to TapeThe procedure for backup to tape, performed quarterly, is identical to the full dump procedure withthe following exceptions:1.The first command issued to BSYS should be "BACKUP" rather than "FULL".2.The answer to "Enter backup device (mtan:, dpkn:)" should be MTS:MAGGIE.n, where n isthe tape unit on which the backup tape is mounted.3.The listing file should be BSYS/mm-dd-yy.BACKUP. After completion of the dump, this fileshould be printed in a small font (Gacha6R90) and then deleted.15.5. Continuing Interrupted DumpsBSYS records its state at the beginning of each logical "tape". If Maxc crashes in the middle of adump, this information may be used to restart the dump at the appropriate point. The procedure isas follows:1.Do not change packs or tapes, even if the dump began on a pack or tape different from the onecurrently mounted. (Exception: If BSYS already asked for a new tape or pack before the crashoccurred, change tapes or packs first.)2.Start BSYS and issue the "Continue Dump" command. Your responses to the questions "Enterbackup device" and the ones that follow should be the same as the answers you most recently gaveto the same questions.3.BSYS will print "Restarting at user xxxxx" and resume the dump (incremental, full, or backup).15.6. Restoring Files from BackupIndividual files may be restored from backup packs by the following procedure.1.Determine where the file was written, by poking around in the listing files (.FULL and .INC).When you have located in the listing file the name of the file to be restored, go up to the top of thepage to find the "Parc tape number", which will be in the form xxxyy, where xxx is the packnumber and yy the dump number as previously explained.2.Mount the pack so determined on an auxiliary drive. fpi:qX Fp _s28uF# [s2XI Tr QqsR O L52XG H2*tsts F2 C2I A? :rX# 7s W 5%< 3 02tsG .(6 ,' ){2E '.t s % "s2#; rX" AsN 2] $B :T o6 2X3 >\UBSYS OperationMaxc Operations583.Go through the following dialogue (xxx and yy are the numbers determined above):@ENABLE password !BSYS TENEX-BSYS 4.03 25-MAY-75*RESTORE FILES (FROM TAPE) Enter backup device (mtan:, dpkn:) DPKn Mount pack number: xxx Pack xxx mountedn dumps already written on this pack[Listing of dump numbers and dates]nnn free pagesEnter dump # yy Listing to file: TTY: Mounting tape directory4.BSYS will now prompt you with "Restore DPKn:", to which you should respond with the fullfilename to be restored (including directory). Editing and recognition may be used and "*" mayappear in any field; however, BSYS's filename logic is not as good as Tenex's, and you should becareful to specify a complete filename (including version) before hitting carriage return.5.After restoring the specified file(s), BSYS will again prompt with "Restore DPKn:", and furtherfiles in the same dump on the same pack may be restored. When you have no more files torestore, hit Delete.15.7. Restoring the Entire File SystemThis is the procedure to be followed if the file system has been wiped out and it is necessary torestore it from backup.1.Load Tenex using Micro-Exec, go into EDDT, set DBUGSW to 2, and start the system atSYSLOD. To the question "Do you really want to clobber the disc by re-initializing?" answer "Y".After some amount of churning and various error messages ("No SYSJOB", "No EXEC", etc.) youwill end up in the Mini-Exec.2.A copy of BSYS is kept on Save Area 4, so to load and start it:.Load program from area 4..Start.TENEX-BSYS 4.03 25-MAY-75*3.Consult the summary from the most recent incremental dump to determine the logical "tape"on which that dump started. This is in the form xxxyy, where xxx is the pack number and yy thedump number on that pack. Mount the pack. Note that this might not be the current incrementaldump pack. (If there have been no incremental dumps since the most recent full dump, then justmount the first pack of that full dump.))fqX ;pi  _s2XP[8[Mi[YQYQYXVDUVD,U~VDTy$)T"TyR RXRPO$MO#K I Ic6IG{G%GF$ B2X @ Q ?C =SZ 92W 8O 6K /rX' ,sQ *N &2$/ %\ #GW !}  2X?/B"B/wwW9 2F T 26t) gsts= ts U>]LMaxc OperationsBSYS Operation594.Go through the following dialogue:*RESTORE FILES (FROM TAPE) Enter backup device (mtan:, dpkn:) DPKn Mount pack number: xxx Pack xxx mountedn dumps already written on this pack[Listing of dump numbers and dates]nnn free pagesEnter dump # yy Listing to file: NIL: Mounting tape directoryRestore DPKn: <*>*.*;* Create users? Yes Creating users...Bypass restore checks? No 5.BSYS first obtains a copy of the DIRECTORY that was written in this dump. Thisdirectory is used to control what files get restored from this and all other backup packs, and is alsoused to restore the correct file attributes. This is why it is important that the first dump restored bethe first logical "tape" of the most recent incremental dump.6.BSYS now restores all appropriate files from the dump, then asks "More tapes?" to which youshould answer "Y". You should now specify the previous dump on the same pack, or the lastdump on the previous pack. You must restore all the dumps on each of the most recent full dumppacks and on each of the incremental dump packs more recent than the last full dump. It isessential that the incremental dumps be restored in reverse chronological order, and that allincremental dumps be restored before any full dump.7.When all files have been restored, answer "N" to "More tapes?"; then give the "Quit"command to exit BSYS and the Mini-Exec "Halt Tenex" command to stop the system. Now reloadand start Tenex in the normal fashion.BSYS also has a "RELOAD DIRECTORIES" command that may be used to restore the entirecontents of one or more user directories from backup, but less than the entire system. You shouldstart by reloading the first pack of the most recent incremental dump, just as for the full restore.15.8. Archive ProceduresWhen users request that files be archived, the files are simply marked for archiving. Twice a week(generally on Monday and Thursday), BSYS is run to archive these files onto two different tapesand then delete the files from disk (if appropriate). At any given moment, there are two "current"archive tapes. Files from successive weeks are appended onto these tapes until they become full.The tapes then have their write rings removed and are kept "forever", and new tapes are used forfurther requests. fpi:qX Fp _s2"[[M[,[M~[Y$)YYX WXVDTy$R#P O N6OMO{LMOKI ZIcI G GGuG~GF$DZ!VD"DZ#D~DZ @27 ?>( =SI ;= 82S 6KQ 4 t s% 2I 0ts? /!3 +26 )C (& $@ "b !d RrX sC /0 KE 8) E  >ZgOBSYS OperationMaxc Operations60The effect of archiving a file twice is obtained by simply running the archive system twice, oncewith the first "current" tape mounted and once with the second. Generally, both tapes will end upcontaining the same information. However, occasionally a user will make a new request betweenthe first archive run and the second. In this case, the file gets archived for the first time on thesecond tape and for the second time on the first tape next week. Hence the archive tapes may notbe simply copies of each other.When a user requests that an archived file be retrieved, the retrieval request is recorded in twoplaces. File RETRIEVE-REQUESTS.TXT is a human-readable text file containing allrelevant information (filename, tape numbers, requesting user, etc.) This file is deleted once aweek. File RETRIEVE-REQUESTS.BINARY contains the same information in a formreadable by BSYS. Every working day, BSYS is run to process accumulated retrieval requests andrestore archived files from tape to disk.15.9. Organization of the Archive TapesThe archive tapes are consecutively numbered starting at 700.1 First and second archive tapes arepaired. Each tape is labelled with an identifier such as "BSYS/7-21-75.ARC/1" or "BSYS/7-21-75.ARC/2", where the date specified is the starting date for that tape, and the trailing digitdistinguishes the first archive tape from the second. When an archive tape is full, the date onwhich it became full is also written on the label, and the write ring is removed. (Actually, weusually do this before the tape has become completely full so as to avoid having archive runs splitacross two tapes. However, no harm arises if this occurs.)The tape is also marked with the tape unit on which it was written. When possible, files should beappended to a tape using the same drive on which the tape was first written, and first and secondarchive tapes should be written on different drives.The archive tapes are located in tape cabinets situated in the Maxc control room. Primary tapes arein the cabinets on the east wall and backup tapes are in the cabinets on the west wall.15.10. Archiving Files to TapeTwice a week (preferably Monday and Thursday), the following procedure should be followed to write filesonto the archive tapes. User typein is underlined.1.If the newest "first archive" tape (marked ".ARC/1") is not full (i.e. has no ending date), makesure there is a write ring in it and mount it on the drive noted on the label. If it is full, mount thefirst unused tape on unit 0 (if possible).2.Login as yourself (assuming you are a wheel or operator; otherwise login as SYSTEM) and gothrough this dialogue:------------------------------1Tape number 999 was used on 6-28-79. At this point old tapes were scrounged up and the sequential numberingsystem went to pot. Tapes numbered 671 through 687 cover the period 6-28-79 to 8-28-79. Tapes numbered 039through 540 cover the period 9-2-79 to 6-26-80. At this point new tapes were purchased and put into use. They arenumbered from 1001 and continue consecutively.)fqX ;pi  _sN ]J \ P ZCP Xx#> V S<-4 Qq.* OB M9 L*5 JG) E-rX( As=BIvAs$ ?] >&G <\` :2. 8=& 6; 3Y 1Z /4 ,d *W %rX "-s us5 b3 27) &:. [* 2S  v L39 D( 3@ . * =]L(Maxc OperationsBSYS Operation61@ENABLE password !BSYS TENEX BSYS 4.03 23-MAY-75*ARCHIVE (USER FILES) Archival period (days) = 999999 Listing only? No Listing to file: LPT: Entire file system? Yes List for users? Yes Preface with special message? No Enter backup device (mtan:, dpkn:) MTS:MAGGIE.n where n is unit no.Density (n=800, p=1600): P3.BSYS will now ask "New tape?". If you have mounted a new tape, answer "Yes"; BSYS willthen ask you to supply the tape number. Otherwise, answer "No"; BSYS will ask you to verifythat there is a write ring in the mounted tape.4.BSYS will now space to the end of the used portion of the tape (if any) and start writing newfiles.5.If the tape becomes full, BSYS will rewind it and again ask "Enter backup device (mtan:,dpkn:)". You should label the tape as full, remove its write ring, and put it away. Then mount thefirst unused tape (NOT the "second" archive tape) on the same drive, and go through thisprocedure:Enter backup device (mtan:, dpkn:) MTS:MAGGIE.n where n is unit no.Density (n=800, p=1600): PNew tape? Yes Really?? Yes Parc tape number: nnnn Be sure to label the new tape properly.6.When the archive run is finished, BSYS will report the number of files and pages archived.Dismount the archive tape and put it away.7.Repeat the entire procedure (steps 2-6) to write the "second" archive tape, using the tapemarked ".ARC/2" if you append to an existing tape, and using tape unit 3 if possible. If thesecond archive tape becomes full and you get to step 5, be careful to use another new tape tocontinue archiving on. That is, don't append to the new archive tape written on during the firstarchive.8.If either archive tape is almost full (less than 1/2 inch of unused tape thickness on the reel),mark both tapes as full and remove their write rings before putting them away.9.Go to the Clover room, collect the two listings, and store them in the tape cabinet. At the end ofeach month bind the listings into a book using the Cheshire 750 Binder. fpi:qX Fp_s8^i_]KQ\Q]K[YY_0Y( Y_~YW#WW V! U"V!U~V!TV{STVRR4R!wR4~RPZPjPPj~PN%vN"N'N~NM,$)L M, 3lLM,t4*LM,s=Sts Ka$NK Ka G29 F$> DZ/ @2G ? ;2*. 9#A 8ts 6K 2X$)2 2 3l22t4*22s=Sts 1$N01/D ./D:.~/D-z-#-z-#~-z++X+ (=' $2@ #* 2? K :ts /O d 2G (N 2Xc G >ZgBSYS OperationMaxc Operations62Normally, we archive only those files specifically marked by users for archiving. However, it isoccasionally necessary to perform "forced" archiving of all files not referenced within the last n days(n is generally 90). The procedure for forced archiving is identical to the normal archivingprocedure with the following exceptions:1.The reply to "Archival period (days) =" should be 90 (or whatever interval is being used)rather than 999999.2.The reply to "Preface with special message?" should be "Yes". BSYS will then give control toSNDMSG, to which you should type an appropriate explanatory message, such as "This archiveincludes all files not referenced in the past 90 days. New users will find useful informationpertaining to how the archive system works by reading the file [Maxc]Archive-System.Doc.",followed by control-Z.CAUTIONIf the system crashes during Archive, restart Tenex and type ContinueDump to Bsys. If the crash occurred while writing a tape and thedirectory has not been written, then remount that tape to continue thedump. If it has written the Archive Directory and was waiting for anew tape to be mounted then mount the new tape and the continuationwill be correct.15.11. Retrieving Files from TapeThe following procedure should be executed once every working day to retrieve files from thearchive tapes.1.Login as yourself (assuming you are a wheel or operator; otherwise login as SYSTEM) and gothrough this dialogue:@ENABLE password !BSYS TENEX BSYS 4.03 23-MAY-75*RETRIEVE (ARCHIVED FILES) Process retrieval requests for all users? Yes 2.BSYS now sorts through all pending retrieval requests and tells you which tapes to mount:Mount Parc tape number nnnEnter backup device (mtan:, dpkn:) MTS:MAGGIE.n where n is unit no.Density (n=800, p=1600) P[Following question asked only the first time]Listing to file: TTY: 3.BSYS automatically restores all requested files from the mounted tapes, and automaticallynotifies users via SNDMSG. When BSYS is done, it prints an asterisk.)fqX ;pi  _s U ]KKts [ts[ Y( VD21( Ty Q2T O= P Mr^ K*5 I FFkrs)D:B5A 4?A!"=v 6rX" 3CsS 1y .2S ,<(8(si(X'Q&Q'%5#j##j,#~#j!**!I!-!I~! .2Y$)  3lt4*s=Sts '#'\.{:%  2: UE =YPMaxc OperationsBSYS Operation63If anything goes wrong during the retrieval process, it is possible to retrieve files from the secondarchive tape. You may first have to issue an Interrogate command for the files that were notretrieved from the first tape. Then run BSYS Retrieve in the normal way, but when it asks you tomount the first archive tape, mount the second one instead. BSYS will tell you that you mountedthe wrong tape, but will go ahead anyway, if you tell it to. (Second archive tapes not found in tapecabinets are stored in boxes in the Maxc machine room behind Maxc1 disk drives.) fpi:qX Fp _sO ]KT [U YI W?t V!OsX U=1FContents of the Alto DiskMaxcOperations6416. CONTENTS OF THE ALTO DISKThe following files are ordinarily kept on the Maxc2 Alto's disk, in addition to standard Altosubsystems.Maxc-related filesMICRO.RUNMicrocode assemblerMIDAS.RUNMicrocode loader/debuggerMIDAS.*Various auxiliary files needed by MidasSYS2.MBPDP-10 emulator microcodeTENLOAD.MIDASMidas commands to load microcodeINIT.MIDASMidas commands to load and dump newly-assembledmicrocodeMEXECGO.MIDASMidas commands to load microcode, start Micro-ExecTENGO.MIDASMidas commands to load microcode, start TenexALTIO.RUNNova I/O control programTM.RUNMaxc memory diagnostic (runs on Alto)MEMBASH.RUNMaxc memory contention exercisorSMIDIAG.RUNAlto System Maintenance Interface diagnosticMicroprocessor diagnostics and command filesDGBASIC.MBDGBASIC.MIDASDGP.MBDGP.MIDASDGALU.MBDGALU.MIDASDGIMH.MBDGIMH.MIDASDGIML.MBDGIML.MIDASDGRL.MBDGRL.MIDASDGI.MBDGI.MIDASDGM.MBDGM.MIDASDGMR.MBDGMR.MIDASDGREG.MBDGREG.MIDASDBEG.MBThe current microprocessor diagnostic sources are ordinarily kept on the Maxc2 Alto disk as well.)fqX;p )_r \1s;# Zf VXS"Q"O"'N#"LX "J "/"HF "2E- "-Cc"A"%? "> ", :,7 " 5U"3" 1" /" .*" ,_"*"(" '" %5 !a( !|=FMaxc OperationsSoftware Maintenance Procedures6517. SOFTWARE MAINTENANCE PROCEDURESThis section outlines maintenance procedures for selected pieces of software that are in fact stillmaintained at all. The primary intent is to document the location of the sources and to identify thecurrent maintainers.17.1. MidasThe current sources for Midas are kept on the "Maxc2 Midas" Alto disk (maintained by Fiala).Reasonably current sources are also kept on [IVY] or [MAXC2] directories:MSOURCES.DM along with MIDAS.RUN, LOADER.MB, and DEBUG.MB. The various Midascommand files are kept on DGSOURCES.DM along with the sources for the microdiagnostics.Before initializing Midas on a new disk, be sure that you have the following files ready:Midas.Programs(see below)Gacha10.alThe font Midas usesMidas.MidasThe initialization command fileMidas.Programs contains a list of file names separated by blanks, commas, or carriage-returns. Thenames must be typed in UPPER-CASE. This list serves two purposes. First, file pointers are builtfor all of the names to speed up OpenFile. Next, the list of names for the "Run-Program"command menu is built. If the file name contains no extension, then hint FP's will be built forboth name.MB and name.MIDAS and name will be put in the "Run-Program" menu. (However,the hint FP's are not built unless the file exists, and the file name will not be put in the "Run-Program" menu unless name.MIDAS exists.) If the file name contains an extension, then it will beput in the quick OpenFile table, but won't appear in the "Run-Program" menu.Midas creates and uses the following files:Midas.State~40 pagesBuilt for quick init by Midas/IMidas.Resume~40 pagesBuilt before calling AltIO for resumeMidas.FixUps2 pagesBuilt when external fixups occur in .MB files beingloaded (Current microcode never uses this.)Midas.Errors2 pagesWritten when "Compare" failsMidas.SymTab100 pagesWritten when symbol table overflows core buffersAltogether this is about 200 disk pages. It is desirable to do this with a pretty clean disk, so thatthe files wind up contiguous on the disk and near to each other.17.2. AltIOAltIO is maintained by Taft using an Alto disk labelled "AltIO/Maxc2". Backup copies of thesource and command files are kept in a single dump-format file ALTIO.DM on Ivy. fpi0qXFpa`r$ ]KsU [U Y RrX Os)3 MU K; J#5" FXYC@  Au ?  <8^ :nO 8< 6` 5; 3CJ 1yQ /L ,<X+ ( I' & I'% $a I'3'"+ b IX' . I'0 a @ 1rX s!; U  >[^Software Maintenance ProceduresMaxc Operations66AltIO may be compiled and loaded by executing the command files CompileAltIO.cm andLoadAltIO.cm respectively. AltIO makes use of a number of other Alto software packages availablefrom the directory. These packages are listed in LoadAltIO.cm.17.3. TM, MemBash, SMIDiag, Alto MicrocodeThese pieces of software are kept as dump-format files in the directory on Ivy. The filesare TM.dm, MemBash.dm, SMIDiag.dm, and MaxcAltoCode23.dm. They are compiled and loadedby means of command files whose names follow the conventions used for AltIO.17.4. Tenex and Diagnostic MicrocodeSources for Maxc1 and Maxc2 Tenex microcode are maintained on the "Maxc1/2 TenexMicrocode" Alto disk by Fiala. Sources for Maxc1 and Maxc2 microdiagnostics are maintained onthe "Maxc1/2 Microdiagnostics" Alto disk by Fiala.These are backed up by Alto dump files stored on the IVY directory. Common sourcesare used for both Maxc1 and Maxc2 with conditional assemblies used for parts of the microcodethat are different on the two systems.Cross reference listings of Tenex microcode sources are obtained by FTPing the sources to theMaxc2 ERF directory and doing RUNFIL CRREF.RUNFIL, which uses MCROSS to produce thecross reference listing. The same procedure is used for microdiagnostic sources except that theDCRREF.RUNFIL command file is used.17.5. TenexThe Tenex system for Maxc2 is generated from a set of sources maintained on Maxc2 in the <134>directory (for Tenex version 1.34).The RUNFIL script LOADMAXC2.RUN may be used to assemble and load the new version ofTenex. Most of the source files are assembled for the system yielding .REL files with extensions.2RL. Some of the assemblies do not depend on any system parameters. When changes are madeto any system parameters in PARAMS.MAC or PROLOG.MAC, all the .2RL files should bedeleted to force reassembly of them.The result of assembling and loading a new Tenex is a file called MAXC2.SAV, plus some auxiliaryfiles whose extensions are .MAXC2. The bug string file and loader map are also printed on Clover;these should be placed next to the log book in the Maxc room.After loading a new Tenex for Maxc2, all that is necessary is to run Micro-Exec and installMAXC2.SAV on an unused save area (e.g., 19) for stand-alone checkout. The "Read.Tenex.From.-File" and "Write.Tenex.To.Area" commands should be used for this purpose.)fqX;pi  _s1" ]K01 [F TrX+ QNs01 OA ML FrX% Cs5 A'7 ?2 <J :2+ 8& 5xB 36 1Q 0# )WrX %sH $# &- N J I9 ~$  V B7+ w= > ;E pI )>\Maxc OperationsLocal Memory Chip Charts6718. LOCAL MEMORY CHIP CHARTSThe most common cause of hardware problems in Maxc is failure of the storage chips used in theprocessor's local memories (LM, RM, IM, SM, DM, and MAP). Once the addresses and bitnumber(s) of the failures have been determined (by means of the micro-diagnostics DGRL orDGIML/DGIMH), the chips may be located by means of the information in this section.The chips used in LM and RM are either Intel 3101A or TI 74S289, which are 16-word by 4-bitmemories. They are located on the three ALUA boards, each one of which provides a 12-bit sliceof the 36-bit Maxc ALU. In the following table, the top three rows show the card slot number as afunction of the machine and bit number, and the main matrix below it yields the chip position onthat card as a function of the memory name and address within the memory.CardBitsSlot2/230-34-78-11Memory &2/2112-1516-1920-23Address2/1924-2728-3132-35LM 0-17442464LM 20-37452565RM 0-17553575RM 20-37543474Figures 1, 2 & 3 in the Appendix show the storage chip layouts for the old and new bipolar memorycards used in the microprocessor. Old bipolar cards are used in only the MAP slot; new bipolarcards are used in all other positions.If it is necessary to replace an entire card, one should be aware that not all the bipolar cards aredirectly interchangeable. In particular, old bipolar cards in four of the IM slots have had pullupresistors removed and cannot be interchanged with cards in the other slots. New bipolar cards usedin IM slots have different pullup resistor chips (680 ohms) than are used in SM/DM slots (330ohms); these must be changed if cards are substituted. fpi4qXFp_r \1s!= Zf6 X2' VS S_U Q-2 O>$ M;% L5I!H(`!F!C(`-5~AX!(`-5~?!(`-5~<(`-5~:(`-5~8(`-5~7(`-5 3rsrsrsrsA 14, 0& ,_ *): )P 'FR %|7 %5=BCreating and Destroying Maxc AccountsMaxc Operations6819. CREATING AND DESTROYING MAXC ACCOUNTS19.1. Obtaining a Maxc AccountMaxc directories are requested via a directory-request form obtainable from [Ivy] directory.The following forms are available:MaxcFilesOnly.Press (Figure 7, Appendix)This form requests the creation of a Files-Only directory.PARegistryAppl.Press (Figure 8, Appendix)This form requests the creation of a Grapevine, Ivy or Maxc account.It is for CSL, SDD, SCA and other PARC employees only.MaxcNon-XeroxLogin.Press (Figure 9, Appendix)This form requests a Maxc login account for Non-Xerox employees orXerox employees not at PARC or Palo Alto SDD.The top part of a directory application is filled out by the applicant and his supervisor. The formthen migrates to Ron Cude (SDD), Larry Masinter or Alan Bell (SCA), or Ron Weaver (other) whodoes the following:Verifies that the directory name is not in conflict with an existing directory and that the passwordis reasonably unguessable;Approves the directory request and fills in the desired directory parameters on the form;Ordinarily the account administrators forward the form to Ron Weaver who authorizes and createsthe account, then passes the form on to Kathi Anderson, who is in charge of maintaining the Maxcaccount file. On rare occasions it may be necessary (because of time restraints) for an administratorto create an account. On such occasions the administrator is asked to notify Ron Weaver of suchcreation and to make certain that all files specified in section 19.4.2 are correctly edited..The various steps in creating a Maxc directory are discussed below. After the directory is created,the application form goes to Kathi Anderson who adds the name to appropriate distribution lists,notifies Lynn Harrington for updating the phone list, then files the form.19.2. General Information About Maxc DirectoriesPasswordsInitial passwords are required to be unpronounceable and relatively unguessable. However, there isnothing to prevent the user from changing his password later, so we can't guarantee this. We donot permit passwords for "regular" directories (as opposed to message-only directories) to be knownto more than one person; this guards the system against unauthorized access.Upper and lower case characters are equivalent for passwords, so it is not necessary to be carefulabout case while entering passwords.)fqX%;pi .arX* Z W^s$? U"R"Xr qsPW:Nr qsLDJ6I-r qsGbBE- B%_ @[M >;Xd9T5Y 2p_ 0L .42 -W +E]BI 'D & ` $>J }rX1  t sP =# K :L .4 $ t >\UMaxc OperationsCreating and Destroying Maxc Accounts69User groups and Directory groupsTenex file and directory protection distinguishes between three classes of access:self (someone logged into or connected to the directory);same group (someone logged into a directory in the same group);others.Putting a user's login directory into a User Group allows him to access other directories in thatgroup in the same group mode.Putting a directory into a Directory Group allows other users in that group access in the same groupmode.Directories are usually setup so that new files created in that directory will permit total owneraccess, read-only same-group access, and no access to others. Most new directories are assigned tothe Computer-research user group and directory group. There are many exceptions.A list of the current groups is supposed to be kept in GROUP-LIST.NUMBERSand was as follows on 4 October 1979:0Computer-research13Pogos1System14Nova2Mesa15PARC3Secretaries16XMS-users4Lisp17User-Sciences5Understander18ITG6Bliss19Mesa-users7Inter-Network20Reyes8Customer Programming21SSL Group Leaders and Secretaries9University MPC22JDS10Alto23University Grant11Parcpub24CSL12GraphicsMost Xerox user directories are put in the Computer-research directory and in no other groups.File ProtectionThe file protection assigned a directory is the default protection of new files created in thatdirectory. The file protection is an 18-bit number divided into three 6-bit groups. This numberbreaks down into three fields, identical in format, each of which can be regarded as containing twooctal digits or six binary bits. The first 6-bits define owner protection, second same-groupprotection, and third general-public protection. The interpretation of the bits in a group is asfollows:B0Read contents of fileB1Write onto fileB2Execute program stored in file fpi,qXFp _t [sRX2X9Vg?T Q+K O` t s KZt J#s Fa D(; CQ ?(+ =%:n&s)8&s)6&s)5 &s)3C&s) 1y &s)/&s) - &s),X&s)!*N &s)(&s)&&s)$ !}^  tX s7( ,5 E 9? n5, 2X g J U=]-Creating and Destroying Maxc AccountsMaxc Operations70B3Append to fileB4Access per page tableB5--Setting a bit to 1 permits the action; setting it 0 denies the action. Taking these six bits as a twodigit octal number, some common values are: 77, which permits full access; 52, which protects afile from modification but permits other functions; and 00, which denies everything. [Refer toFigure 6, Appendix for correct values corresponding to boxes on Files-only account request form.]Directory ProtectionIn addition to specifying the access allowed to file contents, Tenex allows directory contents to beprotected similarly. The directory protection word is composed of three 6-bit fields, one field eachfor "self", "group", and "others" similar to the file protection word. The bits have meaning asfollows:B0If off, completely prevents use of the directory in any wayB1Files may be opened subject to file protectionB2Owner functions permitted (including CONNECT) without passwordB3Files may be added to the directoryB4--B5--Directory protection can only be changed by someone with WHEEL status. Some common valuesof Directory protection are: 776060, which permits the owner to do everything, other users to read-write files according to file protection; 777760 permits the owner and same group to do everything,others to read-write according to protection (typically used for files-only directories); 777700 permitsowner and same group everything, general public nothing (typically used for files-only directoriesthat one doesn't want non-group people to see); 777060 permits owner everything, same groupconnect access (typically used for files-only directories in the Computer-research group, where youwant everyone to be able to connect but not to be able inadvertently to clobber files while notconnected). [Refer to Figure 6, Appendix for correct values corresponding to boxes on Files-onlyaccount request form.]Disk LimitPresently, message-only directories are assigned a disk limit of 50 which is enforced.Regular directories are assigned a disk limit that varies according to the organization: CSL, 1000pages; SCA, 750 pages; SDD, ASM, and other, 250 pages. This varies when special needs arepresent. Disk limits for regular directories are not "enforced", which means that file storage inthese directories can exceed allocation without difficulties (except an annoying "over allocation"message from Tenex) until total free storage in the system falls below 2000 disk pages. When freestorage is below this, attempts to write new files into directories over allocation are denied.Project GroupThe project group to which a directory is assigned classifies it for the accounting software, whichsummarizes CPU utilization, file storage use, etc. according to these groups.)fqX%;pi _sX ]K[ XG VDM Ty7( Rr qtsN O=tX Ks40 J32 H600 FkBX;A..?d>=#;: 6= 4+9 203 12@( /hY -D +_ *1. (= r qts7 &s #tX sV L R< W <& P (_ tX Dsc yM 2=]&Maxc OperationsCreating and Destroying Maxc Accounts71The current project groups are ADL, Administration, Administration-not-on-phone-list, AMDS/NY,ASM/ES, ASM/PA, ASM/Rank-Xerox-Sweden, Computer-Research, CSL, CSL-Consultants, CSL-Files-only, CSL-Summer, CSL-Temporary, CSL-University-Grant, CSL-Visiting-Scientist, ED/LA,EES, EES-Files-Only, EOS/Pasadena, GSL, ICL, ICL-Consultants, ISL, ISL-Consultants, ISL-Files-Only, ISL-Summer, JDS, Legal, Lisp-Files-Only, Non-Xerox, Old-NonPARC, OSL, OSL-Consultants, PARC, PARC-Files-Only, PD/LA, PSD/ES, SCA-B32-CIS, SCA-B32-CIS-Consultants,SCA-B32-CIS-Files-Only, SCA-B32-CIS-Summer, SCA-B32-LRG, SCA-B32-LRG-Consultants,SCA-B32-LRG-Files-Only, SCA-B32-LRG-Summer, SCA-B35-VLSI, SCA-B35-VLSI-Consultants,SCA-B35-VLSI-Files-Only, SCA-B35-VLSI-Summer, SCA-Unknown, SDD, SDD-Files-Only,SDD/LA, SDD-Mesa, Shugart, Tenex, Undesignated-Summer-Students, Versatec, Webster,XCS/LA and Xerox. Directories are attached to these projects by editing thePROJECTLIST file.The PROJECTLIST file is used by the MAXC-ACCT subsystem discussed later. It is importantthat this file be updated correctly, but Tenex will run correctly even when this file is invalid orincomplete.The format of a group in the PROJECTLIST file is as follows:CSL:AIS, ALISP, ..., WINOGRAD, YEARY;i.e., the group name followed by a ":", the list of directory names in alphabetical order separated by"," and terminated by ";".Files-only DirectoriesFiles-only directories are created when needed, usually to hold files needed by a number ofdifferent users working on a common project. Tenex does not allow login to files-only directories.Each files-only directory is represented by a line in the ARCHIVE-FILES-ONLY.TXTfile of the form:OWNER,FILEDIRECTORYwhere OWNER is the login directory name of the person responsible for FILEDIRECTORY.ARCHIVE-FILES-ONLY.TXT is needed by the archive system to direct messages aboutarchive traffic to OWNER. By convention, the entries in ARCHIVE-FILES-ONLY.TXT are inalphabetical order by owner, and where there are several files-only directories for a single owner,these are also in alphabetical order.ARCHIVE-FILES-ONLY.TXT is also used by the HOGS program, discussed below, toassociate disk usage of files-only directories with the login account for the person responsible for thestorage.For ease of looking up the owner of a Files-Only directory I have created the fileARCHIVE-FILES-ONLY-ALPHA.TXT which list directories alphabetically in the formFILEDIRECTORY,OWNER fpi,qXFp _s#; ]K> [&5 Y^ WSKT V!? TV8 R9 P? NyzA M,: Ka GZ F$ U DZ @X<=v;! 89R 6o 2tX /s? -I +(0 *+& #G"2 !}W )- 03 % 7 `  D%E- J  g >[Creating and Destroying Maxc AccountsMaxc Operations72Login DirectoriesEach login directory is represented by a line in the file UACHK.TXT. The standardentry in this file is as follows:ACCOUNTANT:1*,BACKGROUNDThis line controls the pie slice scheduling groups accessible to the directory. The "1*" means thatthe default login pie slice is the numerically named account number 1; the ",BACKGROUND"means that after login, the user can change his pie slice to the low priority BACKGROUND slice.Nearly all directories are represented by a UACHK.TXT entry in the above format. However, afew directories for people who maintain the hardware or do other special stuff, may be allowed toaccess some other slices. For example:SYSTEM:1*,BACKGROUND,SERVICE,MAINT,ARPANET,220100This allows the directory to change its scheduling slice to BACKGROUND, SERVICE,MAINT, ARPANET, or 220100.The UACHK.TXT file is compiled into a big accounting matrix which is stored onUACHK.FILE during the procedure for creating or destroying directories.Message UserMessage-only users have very limited access to subsystems and have enforced disk limits. Thesubsystems accessible to message-only users are specified in SUBSYSTEMS.directory-name, if it exists, or in SUBSYSTEMS.DEFAULT, if no special file exists for thedirectory. It is required that subsystem names in these files be in alphabetical order.SUBSYSTEMS.DEFAULT presently contains the following:EFTP.SAVARCVER.SAVDELVER.SAVMSG.SAVPLZFIX.SAVPRESS.SAVREADMAIL.SAVSEE.SAVSNDMSG.SAVXMS.SAVIf a special SUBSYSTEMS.directoryname file is created for a message-only directory, itwill generally contain all of these files plus the extra ones that are added for the directory.19.3. The EcCREATE and EcPRINT CommandsDirectories are created and destroyed using the Tenex Executive's EcCREATE command (i.e.,CREATE), which has subcommands that allow properties of the directory to be)fqX%;pi  ctX ` s&6 ^B!Z W^O U.* SM PWF NO L'IP1 E,- D @RS0 >O ;etX 7s+2 6(9! 4^> 2/0G 0<-V +)'&,$a" 7 5) _ :rX : : s+U  V >\UMaxc OperationsCreating and Destroying Maxc Accounts73specified. The various subcommands for EcCREATE are discussed here, and then examples wheredirectories are actually created and destroyed are given in the following sections. The currentproperties of any directory can be observed by using the EcPRINT command. User encryptedpassword is printed out as two octal numbers by using the "verbose" form of the ^E Printcommand (that is, "^EPrint dirName Verbose"). You must have enabled your WHEEL orOPERATOR status to execute CREATE or PRINT.CREATE and its subcommands:!EcCREATE username [NEW] (password) password, [SUPERPASSWORD] GUESSThe default parameters of a new directory are as follows:DISK limit = 750 pages (not enforced)DEFAULT file protection = 775200PROTECTION of directory = 776060USER group number = 0 (Computer-Research)DIRECTORY group number = 0 (Computer-Research)NUMBER of directory = next unused numberno special capabilitiesdoes not have a mailbox (i.e., has no MESSAGE.TXT file)If the directory is not supposed to be in the Computer-Research user group or directorygroup, you will have to remove it from this group using the NOT DIRECTORY and/orNOT USER subcommands below.!!ABORT= Cc!!NUMBER dirnumberfor setting directory number. When creating a newdirectory on Maxc2, the directory number is defaultedto the next unused number. 1!!FILESmakes a files-only directory!!MESSAGEmakes a file-access-only directory!!MAINTENANCEa capability--subset of WHEEL/OPERATORcapabilities!!OPERATORa capability!!WHEELa capability------------------------------1 When you run out of directory numbers (highest possible = 1777), you can reset the last-used directorynumber, as follows:@enable!quit./1[ 0call mapdirxlstdno[ 10.^!This resets the last-used directory number to 10. Be sure to do this on both Maxc1 and Maxc2. Subsequently,new directories you create will re-use directory numbers of directories that once existed but have been deleted. fpi,qXFp `s)am` _$< ]()]]( [],, Y E W+ TVPQqPX.OK9H6%FkDB)A .?A(=v;789W6oP412'1/h'/'-"'+,_u*s'(='"&s '&'$ " ' !' u:-~\ : x D^ &J y=]Creating and Destroying Maxc AccountsMaxc Operations74!!DEFAULT (file) PROTECTION 6-char octal number sets the default fileprotection for directory!!DIRECTORY groupnumberargument is one of the directory group numbers givenearlier--repeat this subcommand for multiple directorygroups!!SECONDARY groupnumberargument is one of the directory group numbers givenearlier--repeat this subcommand for multiple directorygroups!!USER groupnumberargument is one of the directory group numbers givenearlier--repeat this command for multiple directorygroups!!DISK limitinpagessets disk limit!!ENFORCEcauses disk limit to be enforced!!PROTECTION (of directory) dirprotec sets directory protection!!LISTprints the status of the directory as EcPRINT woulddo if the CREATE command were terminated now!!MAILBOX1Permits MESSAGE.TXT file to be created. This will beissued on Maxc2 only when a MAXC mailbox site isspecifically requested, with justification. In otherwords, if there is no valid reason for a user to have amailbox site on Maxc2, then his mailbox will be on oneor more of the Grapevine servers. In creating a newaccount the default is NO MAILBOX.!!NOT DIRECTORY groupnumremoves the directory from a directory group!!NOT SECONDARY groupnumremoves the directory from a secondary directorygroup!!NOT ENFORCEdon't enforce disk limit!!NOT FILESnot a files-only directory!!NOT MAINTENANCEturns off the MAINTENANCE capability!!NOT MESSAGEturns off the message-only restriction!!NOT OPERATORturns off the OPERATOR capability!!NOT USER groupnumremoves the directory from a user group!!NOT WHEELturns off the WHEEL capability!!PASSWORDfor changing password!!ENCRYPTED (password)Sets password, using encrypted form (two octalnumbers) as input.!!KILLkills or deletes the directoryUnused subcommands:!!ABSOLUTE!!ALPHANUMERIC!!MODE!!NAMEfor changing directory names--unimplemented!!REPEATobsolete------------------------------1Only has effect when creating a new directory. Has no effect when used on an established directory. MSGFIX must be used onestablished directories to create or delete mailboxes.)fqX%;pi _s ^_X^ W_ :']K['4'Y6'WV!'4'TV6'RP'4'N3'M,Ka'I'G zGuG8]E''FkE 'D,BIBu'BIs5'@~0'>5'<7';7'9T4'7"5',3'0'2)0_ '. ','$* '&)4 '!'i''% '# '" '.' ?t'  1'+f' u gF| 62 <](Maxc OperationsCreating and Destroying Maxc Accounts75!!RETENTIONunimplemented!!CONFIDENTIALa capability!!NETWIZARDa capability!!PRIVILEGES octalnumsetting capabilities in octal!!SPECIAL19.4. Creating a Maxc DirectoryYou have to be a WHEEL or OPERATOR to create or destroy a Maxc directory, change thepassword, or do other kinds of directory maintenance.1. Enable yourself and connect to the ACCOUNTS directory on Maxc2. Then do a WHO or LDand make sure that none of the other users who diddle with the accounting are at that time alsomodifying the accounting files. They would be connected to the ACCOUNTS or SYSTEMdirectory, if they were doing this.2. For login and file-access-only directories (as opposed to files-only directories) edit UACHK.TXTto contain the new directory name. For files-only directories edit ARCHIVE-FILES-ONLY.TXT and ARCHIVE-FILES-ONLY-ALPHA.TXT to contain the new directoryname. For all directories edit -PROJECTLIST to contain the directory in theappropriate places. If you are creating a number of directories, you can do the edits for all of thedirectories at once, which saves time.For some message-only directories, additional subsystems will be specified; these will require thecreation of a SUBSYSTEMS.username file which should include the contents ofSUBSYSTEMS.DEFAULT plus the additional subsystem names. We follow theconvention of preserving alphabetical ordering of the names in each section of these files.3. EcCREATE the directory on Maxc2 using one of the following examples as a prototype:File-access-only directory:!EcCREATE username [NEW] password, (Don't omit the ",") [SUPERPASSWORD] GUESS!!MESSAGEMakes message-only directory!!DISK 50Sets the disk limit to 50 pages!!ENFORCEEnforce the disk limit!!LISTList the properties of the directory and make sure thatall the parameters are setup as desired!!Execute the CREATE with properties as setup [CONFIRM]Files-only account:!EcCREATE username [NEW] password, (Don't omit the ",") [SUPERPASSWORD] GUESS!!FILESMakes files-only directory fpi,qXFp_s ' ]K ' [ ' Y'W Q+r Ms9 K5 H|"6 F R D: C# ?S =#7 <N :K L 841 6& 3CV 1y4 / @ -[ *rX**rQ 't#s$#:! '. 'c ' '7'''+9 tUsU:  'R y=]Creating and Destroying Maxc AccountsMaxc Operations76!!LISTList the properties of the directory and make sure thatall the parameters are setup as desired!!Execute the CREATE with properties as setup [CONFIRM]Regular directory:!EcCREATE username [NEW] password, (Don't omit the ",") [SUPERPASSWORD] GUESS!DISK 1000Sets the disk limit to 1000 pages!!LISTList the properties of the directory and make sure thatall the parameters are setup as desired!!Execute the CREATE with properties as setup [CONFIRM]4. After creating the directory you should print the parameters of the directory and write down thedirectory number, which you will need shortly:!EcPRINT username [SUPERPASSWORD] GUESSDISK LIMIT 1000WHEELALPHANUMERIC ACCOUNTSDIRECTORY NUMBER 15Write down this number for laterDEFAULT FILE PROTECTION 500000775200DIRECTORY PROTECTION 500000776060USER GROUPS: 0, 1DIRECTORY GROUPS: 0, 15. If you are creating a number of directories at once, you should carry out a EcCREATE sequencefor each of them at this time.6. Next, you have to reinitialize the accounts on Maxc2 as shown below:!RUNFIL UACHK.RUNFILReads UACHK.TXT and creates UACHK.FILE onthe connected directory (you are still connected to) [This step is necessary for message-only and regular directories but is not needed forfiles-only directories.]--Check for any error messages before continuing--!EcINITIALIZE ACCOUNTSRenames UACHK.FILE onto the directory and installs it as the current accountingmatrix [This step is necessary for message-only andregular directories but is not needed for files-onlydirectories.])fqX%;pi _s 'X7']K'['+YL UtRhsRRh:PN '!M '7'K>'Is'+G D7+9 Bl.>?>X=/;e976't4:s$2p!0. +iC ++i ) &,H"' ' &'%'Z.'X29'$'''L%' r :=ZMaxc OperationsCreating and Destroying Maxc Accounts77Note that if you have a number of Maxc directories to create at once, you can insert all the namesinto the UACHK.TXT, PROJECTLIST, and ARCHIVE-FILES-ONLY during the same edittingsession. Then you can EcCREATE all the directories. Then you do the RUNFIL andINITIALIZE ACCOUNTS of the files just once.19.5. Editing the Grapevine Data BaseThe Grapevine data base must be edited to contain the correct directory name and password for allnew Maxc accounts. It must also be edited to delete the directory name for all Maxc accounts thatare destroyed. To do this you should have version 6T15 or later of Laurel so you can run programMaintain, the Grapevine Registration Server Maintenance Program.Run Laurel and bug "Run" in the lower command menue. Type Maintain and control willpass to the Grapevine Registration Server Maintenance Program. A typical session follows:Creating a Mailbox:Grapevine Registration Server Maintenance ProgramVersion of 16-Mar-81 19:33:19Login RName.PA . . . okGV: Create Individual : Name.pa with password: password . . . done- -> Add Mailbox at server: Cabernet.ms for individual: Name.pa . . . doneGV: Add Mailbox to server: Zinfandel.ms for individual: Name.pa . . . doneGV: Type Entry for R-Name: Name.pa . . . done, type=individualConnect-site:Forwarding: nullMailbox-sites: maxcGV: Quit [Confirem] YesEnd of MessageDeleting a Mailbox:GV: Delete Individual: Name.pa [Confirm] Yes . . . done- -> Remove All memberships in registry: pa for R-Name: Name.paMail Forwarding:GV: Add Mailbox at server: Maxc for individual: NewName.pa . . . 3#14#51 . . . doneGV: Remove Mailbox at server: Maxc from individual: OldName.pa . . . 3#14#51 . . . doneGV: Add Forwarding to destination: NewName.pa for individual: OldName.pa . . . 3#14#51 . . . doneGV:Note: If NewName is to be forwarded to some location such as @CMU or @USC-ISIBthen this should be included as part of the NewName followed by .ARPAGATEWAY.Type "?" to see available commands.GV: ? Commands are:Add Forwarding, Add Friend, Add List of Members, Add Mailbox, Add Member, Add Owner, Create Group,Create Individual, Delete Group, Delete Individual, Initialize New Name, Login, Modify All Occurrences, Quit,Remove All Memberships, Remove Friend, Remove Forwarding, Remove Mailbox, Remove Member, RemoveOwner, Set Connect-site, Set Decimal Password, Set Password, Set Remark, Set Server, Type All Groups, Type fpi,qXFp _sM ]KP [] [[]  - Y+ Rr& O`s10 MG K2/ J@ F N DZ AurX)>&uF1)<u)9u)897897i89 7"89v789u(s7(89v,789u )6.66v/66u )5x5!5x5!5x5!55xv0t5!5xu )434734v!34u)2 )1U)/).qw..qu\..q),v ){rX)&,uF%&,%i&, o%"&,v%&,u %%&, )$u)"$.#$ *$."$v.$.$u !6r) uF   vi u(2 v . u)SSSv!CSu+Sv 1cSu)IINI 2Iv &Iu0?Iv 6Iu))sX ts>)v,ts 5 v (r#)uBr )4.) ;m) A) yY V=]fCreating and Destroying Maxc AccountsMaxc Operations78Details, Type Entry, Type Members, Verify All Groups, Verify Group, Verify NameGV:Creating List of Mailboxes:GV: Type Entry for R-Name: Individuals.pa . . . done, type = groupRemarks: Individuals.paMembers: AHenderson.pa, ABell.pa, - - -- - - etc.GV: Type Entry for R-Name: Individuals.es . . . done, type = groupRemarks: Individuals.esMembers: Abagaz.es, Abe.es, - - -- - - etc.GV: Quit [Confirm] YesYou may use PUT to move the Maintain typescript to some file (e.g. Maintain.TypeScript) and useBravo to make a hardcopy.19.6. Changing the Password and Other Modifications to DirectoriesThe EcCREATE command is also used to modify parameters for an existing directory. When usedin this way, directory parameters are initially defaulted to the current parameters of the directory, soonly those items being changed need be typed as subcommands.Note: It is illegal to change the directory number or the name of the directory in this way. To dothis it is necessary to destroy and recreate the directory and copy files manually.When using CREATE in this way you omit typing the password, so that you don't have to be toldthe password of the directory in order to change its parameters. For example:!EcCREATE olddirectoryname,(Don't omit the ",") [SUPERPASSWORD] GUESS!!NOT USER 0Remove from Computer-research user group!!USER 1Add to System group!!NOT DIRECTORY 0!!DIRECTORY 1!!PASSWORD xglot1Change the password!! [CONFIRM])fqX%;pi )_9uO)] ZrX)WuFW*W7W*WW*W )V!)T')S_ )QQQ7QQQ}Q )P)O=!)M )L{L$L{ L$L{ I-sP Gb @rXC =/s==/@ ;e/9 9< 6(B" 4^S 01, /!N+,<+X')('(&O '$" '%Z  =JMaxc OperationsCreating and Destroying Maxc Accounts7919.7. Destroying a Maxc AccountMaxc directories are destroyed after either an explicit request from a Maxc directory owner (rare),after the sign out procedure that occurs when someone leaves PARC, or when we find out by someother means that a directory is dead. Ron Weaver is notified when someone leaves PARC, and heeither destroys the Maxc directory (most desirable) or converts it to files-only (less desirable buthard to avoid if there are too many still-useful files archived out of the directory). Directories forusers outside PARC may become dead, but we have no convenient method of automatic discovery.Prior to destruction, the directory owner should delete unnecessary files and rename useful onesinto the directory of a coworker. Users are sometimes sloppy about cleaning up their directories, sothe person who is going to kill the directory should, as a safety measure, delete obsolete versions offiles and archive current versions as follows:!CONNECT olddirectory!DELVER!ARCHIVE FILE *.*;*---prints out what is going to be archived---!DELETE *.*;*---deletes archived files, but not those about to be archived---Then wait for the twice-weekly archiving run to take place. After that, all information about fileswill be contained in the archive directory, and you can continue with the procedures discussedbelow. If the directory does not have an archive directory, this safety procedure cannot befollowed.The person who is about to destroy the directory should list one copy of the archive directory beforedestruction, as follows:!CONNECT olddirectory!INTERROGATE *.*;*,!!EVERYTHING!!LPT!!This copy is stapled to the original directory application and filed in the CSL dead directory file.When a directory is destroyed, any files remaining in it will be deleted. It is less automatic toretrieve archived files belonging to a deleted directory. Retaining a listing of the archive directoryis a new practice, so directories destroyed before 19 April 1978 can readily be accessed only byrecreating the directory.The procedure for destroying a directory involves retrieving the original directory request form fromour files (Kathi Anderson), marking it as destroyed, and refiling. For PARC directories, the formshould also be considered for destroying IVY IFS directories for the person who is departing, if thatis appropriate.To destroy a Maxc directory, proceed as follows:1. Login to Maxc2, enable yourself, and connect to the directory. Do a LD or fpi,qXFp _r [sS ZfR X=! W^E UC$ TVD Q+T ON N#Z L.I-XGb EC-B@7@ <;) :J 90H 7f 3,t( 2) s .X,+")W' $d (: :- O I G  #? BO w X0 M  L=\Creating and Destroying Maxc AccountsMaxc Operations80 WHO to verify that none of the other account maintainers are possibly modifying the accountinformation at that time.2. Edit the accounting files to remove the directory being destroyed. PROJECTLIST has to beeditted for all directories, UACHK.TXT for login directories, and ARCHIVE-FILES-ONLY.TXT and ARHCIVE-FILES-ONLY-ALPHA.TXT for files-only directories.SUBSYSTEMS.old-directory (if it exists) has to be archived for message-only directories.3. After removing the appropriate entries from these files, destroy the directory with the followingdialog:!EcCREATE olddirectory, (Don't omit the ",") [SUPERPASSWORD] GUESS!!KILL!! [CONFIRM]If you have a number of directories to destroy, you can delete all of them at this time, and then dothe stuff below just once for all of them.!RUNFIL COMMANDS FROM : UACHK.RUNFIL!EcINITIALIZE ACCOUNTS!For each directory destroyed, a history of the directory is left in DELETED-USER-PARAMETERS.directoryname(directorynumber), and if it has any archived files, the archivedirectory is moved to DELETED-ARCHIVE-DIRECTORY.directoryname(directory-number). Also, don't forget to edit the Grapevine Data Base (Section 19.5.)19.8. Operations on MESSAGE.TXT FilesIt is sometimes necessary to create a mailbox in a directory that doesn't have one, to delete amailbox. Since MESSAGE.TXT files have a funny "permanent" attribute that can't be set orcleared by any Exec commands, you have to create and destroy mailboxes using the MSGFIXsubsystem, which requires that you enable yourself. It has commands for creating and deletingmailboxes (i.e., MESSAGE.TXT files). When a mailbox is deleted, its contents are copies into a filecalled OLDMESSAGE.TXT. The command sequences to MSGFIX are as follows:!MSGFIX*Create MESSAGE.TXT for directory: DIRNAME *Q!to create a mailbox, or:!MSGFIX*Delete MESSAGE.TXT in directory: DIRNAME *Q!to delete a mailbox.)fqX%;pi  ams= _ \1] Zf< XI1J V` QD! OLXLLXX/JH FE- AR ?*<X-:;:8 5U< 34 $ 1@ /L ,r& )s%: 'F> %|L #H !$@ GQv5 &&X!+M & ~'~ TQ5T V*V   ^ * >](1Maxc OperationsCreating and Destroying Maxc Accounts81It sometimes happens that a MESSAGE.TXT file has an excessive number of pages because the filehas not been truncated for some reason. This can be remedied by using the following safe andsimple procedure:!CONN dirname!RENAME MESSAGE.TXT FOO!APPEND FOO MESSAGE.TXT!DELETE FOOIn the case of a race occurring, the order of the old and new messages gets reversed, but nomessages are lost. Note that MESSAGE.TXT files acquire extra pages only when manipulated byMSG, so only MSG users (never Laurel users) should suffer this problem.When a MESSAGE.TXT file suffers a disk error, the recovery procedure is:!CONN dirname!RENAME MESSAGE.TXT BADMESSAGE.TXT!TECO*;YInput File: BADMESSAGE.TXT(unexpected daya error interrupt)*;UOutput File: BADMESSAGE.TXT*Then tell the user that BADMESSAGE.TXT may be retrieved for examination with Bravo orwhatever. The bad data should NOT be put back into MESSAGE.TXT, as that might cause theinternal structure of MESSAGE.TXT to be ruined.19.9. Reinstantiating a Destroyed DirectorySometimes a person whose Maxc directory has been killed needs to have that directory recreated.This could be done by creating a brand new directory, but it is usually more convenient to recreatethe directory from the information that was saved when it was previously destroyed.The way to do this is to retrieve DELETED-USER-PARAMETERS.DIRNAME-(DIRNUMBER) and DELETED-ARCHIVE-DIRECTORY.DIRNAME(DIRNUM-BER) from archival storage (i.e., they will usually have been archived by the time that you want torecreate the directory); in some cases the DELETED-ARCHIVE-DIRECTORY file won't exist.Then recreate the directory from these two files, as follows:!EcRECREATE DIRNAME[SUPERPASSWORD] GUESSThis recreation procedure only works if the directory number has not been reassigned to some newdirectory in the interim. If it has been reassigned then you must treat the creation as if it were anew directory. Rename the old Archive-Directory as follows: fpi,qXFp _s,2 ]K> [XXVDTyR O=*2 Mr)3 KG H6HDXB&A.?d=;!:896o 2&/ 12%3 /h/ (rX, %5s'8 #j9* !S . ? c4 F I =X U+5 L <" y>]Creating and Destroying Maxc AccountsMaxc Operations82RenameDELETED-ARCHIVE-DIRECTORY.DirName(DirNumber)(to be) Vc(DEL)]ARCHIVE-DIRECTORY[.;1Then add DIRNAME to PROJECTLIST and either UACHK.TXT or ARCHIVE-FILES-ONLY.TXT just as though a brand new directory were being created, and carry out theother procedures associated with creating a new directory.If the directory should have a MESSAGE.TXT file, then you should create the MESSAGE.TXT filewith MSGFIX as discussed in the previous section.19.10. Retrieving Archived Files for Defunct DirectoriesThe easiest way to do this is to recreate the directory as discussed in the previous section, and thenretrieve the files from archival storage in the normal way.An alternative method of retrieving archived files from defunct directories is to find out on whattape the file is archived, and use the BSYS "Single File" command to copy it from the tape to adisk file in some existing directory. Unless the archive directory for the deleted directory was listedprior to destruction, the tape containing a particular archived file will generally be unknown.Directories destroyed after 19 April 1978 have a listing of the archive directory on file in the CSLdead directory file.19.11. Printing Accounting InformationRunning USERAC.SAV will produce a printout of all the information on all thedirectories (requires enabled wheel status). The various options for this subsystem will be revealedwhen you type "H" as a subcommand.The accounting printout periodically posted on the CSL bulletin board is obtained by connecting tothe directory and running MAXC-ACCT, which renames thefact files from the directory into and churns through all the fact filesover the time period selected.RUNFIL HOGS.RUN will produce an output file named HOGS.DATE that showsthe disk storage in use and the storage tied up by obsolete versions of files or files unreferenced in90 days.)fqX%;pi ^@_s%/^l_t55^y_s5^_tMsMaxc OperationsMiscellaneous Maxc Room Procedures8320. MISCELLANEOUS MAXC ROOM PROCEDURES20.1. Updating the Arpanet Host Name TableThe Arpanet host name table is distributed periodically and has to be retrieved and installedmanually on Maxc. The person who maintains the table sends a message (see below) whenever hemakes a change (typically once every 2-3 weeks).Sample message- - - - - - - - - - - - - - - - - - - - - -Mail-from: Arpanet host SRI-CSL rcvd at 12-JUL-81 0953-PDTDate: 12 Jul 1981 0918-PDTSender: GEOFF at SRI-CSLSubject: New Host Table Available (;316).From: the tty of Geoffrey S. GoodfellowReply-To: Geoff at SRI-CSLTo: Host-Name-Table-Update-Distribution-List:Message-ID: <[SRI-CSL]12-Jul-81 19:18:40.GEOFF>There is a new version of the T(w)enex stile host table available as:[SRI-CSL]HSTNAM.TXTYou may FTP it by using user ANONYMOUS, password FOO.- - - - - - - - - - - - - - - - - - - - - -The procedure is to use FTP to retrieve the file, login on Maxc2, enable and connect toSYSTEM, then initialize hosts. A typical typescript follows:@FTP PARC-MAXC FTP User process 4(33)*SRI-CSL Connection opened. Assuming 36-bit connections, Paged transfers. *< SRI-CSL FTP Service 2.9.1 %29116 at Wed 15-Jul-81 09:10-PDT*LOGIN ANONYMOUS FOO *< User ANONYMOUS logged in at Wed 15-Jul-81 09:13-PDT, job 13 *GET HSTNAM.TXT(or as announced) to local-file HOST-NAME/DESCRIPTOR-FILE.TXT[New version] < Retrieve of HSTNAM.TXT;nnn started. < Transfer completed. *DISCONNECT *^C @ENABLE password !CONN SYSTEM!^E INITIALIZE HOSTS(takes a few seconds)! fpi,q XFpar' Z+2Ws? V!5( T0 Qq NF+K>:IH6F)E-'CB%-@/=E<9 56+22A 1U=.*9-.*,!+"*+" )(.&?%$%#?" !n" +  /#  ) B /~ "ts}  uu9F3t~smR mR'e` =S(Miscellaneous Maxc Room ProceduresMaxc Operations8420.2. Periodic deletion of SYSTEM filesEvery two weeks or so obsolete versions of files in the directory should be deleted asfollows: @CONN SYSTEM@DELVERDelete oldest? YesDelete 2nd newest? YesFile(s): *.*files * *@UNDELETE JOBPMF.;*files * *@LOGO20.3. Changing PARC-GUEST PasswordAt the beginning of each month the password should be changed and the filePARC-GUEST.PASSWORD should be edited to show the new password. (Hint: Versionnumber of file PARC-GUEST.PASSWORD corresponds to month.) 20.4. Before doing a FORCED ARCHIVEBefore doing a FORCED ARCHIVE on Maxc2 do the following:!ARCHIVE FILE *.*;*,!!DON'T DELETE!!where =, , , , , , , , , , , , , , , , .Use Laurel to chat to Maxc and then use ForcedArchive.Cm (which is an ARCHIVE DON'TDELETE sequence of command lines) to archive any unarachived files in these directories.For ease of reference in Archive listing the account numbers for the above directories are asfollows:26, 34, 141, 156, 351, 353, 357, 360, 372, 410, 445, 476, 477, 766, 1030, 1537. )fqX";pi  _r( [sJ YVg9V VgT9TFWT RR{RQPQO=N5O=(Mr(K(IH9GH(FH(D}(B@9@@ :'rX# 6sR 4,u 3 >0s ,_rX$ (s8 %|ts # ! ts/Q62)2'> \X2V O? =XVMaxc OperationsMiscellaneous Maxc Room Procedures8520.5. IMP Deadlock ProblemRef: Taft's note in Maxc1 Log Book dated 30 July 1977. 1.@Login2.@Enable3.!Quit4../5.NetOn/-1<06.NetFre 2[ nnnnn (if nnnnn is less than 30000 then set NCPLCK to -1)7.NCPLCK/-18.NetFre 2[ nnnnn (verify n is greater than 30000)9.(repeat step 7 & 8 until nnnnn is greater than 30000)10.NetOn/ 0<-1(truns net back on)11.^PABORT12..EXEC13.!LOGOIf unable to login:1.#3301P2..B . . . ok.3.*GOIf reams and reams of messages about the IMP are coming out on the Maxc2 log, login and enable.Then type:^E CYCLEThis cycles the IMP driver OFF and ON again and may clear the problem. Do not use thisindescriminately as it does disconnect all users.20.6.Deleting an ]ARCHIVE-DIRECTORY[!NOT PERPETUAL ^V{DEL}]ARCHIVE-DIRECTORY[!DELETE ^V{DEL}]ARCHIVE-DIRECTORY[ fpi,q XFp _r[s6;X2(Vg(T(TFTR(R{RQ(PQ" P.QO=(NXO= tsN~O='ts*Mr(MMrMMrK(KQXK tsKQ~K'tsI'tsH(GH" GH'FH(EFHD}(D&D}B(B[6B=S9(9f97(777W76((5<6( 2J 0 , *"5 (1 !rtststsh >OX HELVETICA TIMESROMAN LOGO TIMESROMAN TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN TIMESROMAN TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN  Z ' 0 9A JQS,Ya g%mrw|<  61 =?$+1 :4?F)KS[@_ hov} <J    #(,< : FXqm8;;.;g;z@Z;TXr q|)?PL@(@(@DrM @(@(@D3@(@(@Dwi] Z  =W  " %Q)QiQiP nPPYAE PL#B"*iG "*iA !OiO%1)Mi19KZ%+*iH%')Fi'Yk9AZ%!yYt-97Է*i4Ի$ij/2Z/Z#MaxcOperations0-20.PressRWeaver30-Dec-81 12:16:46 PST/