Using 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 Structure(Also see Section 13.4 "Disk Maintenance")Finally 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 # rt* ~sB "? O  W TE! F Q x>Y Maxc 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! bus*+!*+ [u#s*+*+# us!*+# *+ **+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*+ VDuTys*+R*+P*+%O KuIs*+H*+!FH*+D}*+B*+@$*+?-=S.;0 8u6Ks/4*+2*+0 -zu+s*+)*+(*+&O*+ "u!s*+H*+}*+4 69 J TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN 6"1'=,?0j/3 1JMaxcOps12.Bravo RWeaver.PAApril 20, 1984 2:00 PM