 filed on [rose]<lisp>fugue6>doc>MPcodes.bravo				(635)\1f1i46f0I7f9b7.  MP Code Summaryc\f9bThere are two types of Maintenance Panel codes: progress codes and error codes.  Progress codes are placed in the Maintenance Panel at various stages of initialization.  Error codes are traps which freeze or blink the error number in the maintenance panel.  All errors except the 9000-range errors are fatal.All MP codes less than 9000 are generated by non-Lisp programs implemented directly in microcode or in Mesa, a high-level programming language in use at Xerox.  MP codes from 9000 to 9999 are generated by an error in the Lisp system code.Summary of MP code rangesBlank MP to 0099: Pre-boot diagnostics0300-0399 Boot diagnostics0600-0699 Memory diagnostics0400-0499 Utility (Real time clock, etc.) diagnostics0700-0799 Disk diagnostics (written in microcode)0900-0999 Pilot OS 1000-1199 Disk Fault Analysis (10MB)1300-1499 Disk Fault Analysis (42MB)1600-1799 Disk Fault Analysis (29MB)8888-8888 MP lamp test9000-9999 LispBoot-time errors0096	Insufficient real memory (<1MByte) for Lisp0149	Usually right after power-on.  Disk not ready.  Safe and effective to 0-boot from this state.  0200-0299 Booting phase 2 (Initial microcode)0200	normal booting phase 20201	CP error in reading from boot device0202	null Mesa germ installed in physical volume0203	broken rigid disk boot chain (possibly intermittent)0204	Illegal IOP port command0205	CP Trap (CS parity or double-bit memory error)0206	null diagnostic microcode in physical volume0207	null Pilot/Mesa emulator microcode in physical volume0208	null Mesa germ installed in physical volume0217	Inconsistent Virtual Memory.  Requires re-installation or try another partition.0500-0502 Domino progress codes0500	StartDomino	Domino has started0501	InitReadTOD	Domino starting to read the TOD clock0502	InitReadTODdone	Reading of TOD clock completed (next MP number from Lisp)0505-0599 Domino error codes0505	CSParity	CS parity error detected0506	BurdockCPDisabled	Burdock attempted to use EtherKludge0507	CPBurdockDisabled	CP attempted to use EtherKludge0508	IOPBreak	An IOP break with no IOP kernel0509	IllegalIOPIntr	Illegal IOP interrupt0510	BadMapEntry	Incorrect vm Map entry in IOP access.0511	NoCPDmaComplete	CP Dma operation failed to complete0512	NoCPDmaChannel	CP Dma channel not specified0513	ReadCPPortDead	CP not responding to Read CPPort0514	WriteCPPortDead	CP not responding to Write CPPort0520	StackOverflow	A task's stack has overflowed0565	InvToneCmd	Invalid keyboard tone generator comnd0570	InvProcCmd	Invalid cmd value in Processor CSB0571	UnImplCmd	Unimplemented cmd in Processor CSB0572	SetTODError	The Time-Of-Day could not be set 0576	LSEPCtlOVR	LSEP Control CSB overrun0580	NoValidCommand	Invalid floppy IOCB command0581	UnImplFloppyCmd	Unimplemented floppy IOCB cmd0582	InvalidEscapeCmd	Invalid Escape floppy cmd0583	CommandTrack	Floppy track register is not correct0584	TrackToBig	Floppy track number is too large0585	BadDmaChannel	Couldn't program Floppy Dma0586	NoDmaEndCount1	External Dma End Count not set0587	NoDmaEndCount2	Internal Dma End Count not set0900-0999 Pilot codes0915	Pilot breakpoint.  If 0915 occurs during the installation of the software, the problem could be a bad page on the rigid disk, the system cannot read the floppy disk, or a hardware failure.  Try running ALAG. If ALAG passes and Media Scan shows no new bad pages, the floppy disk (software installation) is suspect.0937	Trying to find out the time and date.  Will hang in this state if no time server is responding, and the time has not been set on the machine since power-up.  Time can be set from within Interlisp (with SETTIME), by 2-booting the Installation Utility floppy, or by 5-booting the EI Fixed Disk Diagnostics floppy.)0981	Trying to discover Ethernet pup host number.  Will hang in this state if non-Lisp code tries to perform Pup operations and no Pup ID Server responds.9000-9299 Interlisp-D microcode error detectedMost of these errors are indicative of some serious problem, probably hardware, and usually fatal (but try ^D if you can't TeleRaid).  The main exception is 9004 see description of code 9304.9001	CSParErr	Control store parity error9002	StackErr	hardware stack overflow9003	IBEmptyErr	instruction fetch unit empty error9004	VirtAddrErr	Attempt to reference virtual address >22 bits9005	EmuMemErr	double bit memory error or non-existent memory9013	NegPcError	inconsistent PC at FnCall9014	applyUfn	arg to apply not integer9016	notFreeTrap	stack allocation error9024	Page fault in the page fault handler.9048	ReFOvr page fault under page fault9049	Ghost context switch9051	BadUfnTable 9120	MiscErr	opcode no such register9121	MiscErr	opcode bad 2nd byte9127	PcNegError	inconsistent PC at Punt9136	CycleMask	bad caller9129	M1Loc	microcode error9130	M2Loc	microcode error9131	M3Loc	microcode error9300-9399 Lisp system code error (call to \MP.ERROR)These codes generally indicate an error state in Lisp system code that cannot be handled in the break package.  Most are "should never happen" cases that indicate a serious error; but some (in particular, 9305 and 9318) may be much less serious.  If possible, use TeleRaid to find out more information (press the Undo key to enter the TeleRaid server (cursor changes into "TeleRaid"), and run the TeleRaid user from another machine).  Even if you can't TeleRaid from another machine, several of these codes you can convert into a Lisp break if the state of the system is reasonably consistent and the error occurred under user code (rather than, say, the garbage collector): type ^B to the TeleRaid server. Summary of TeleRaid server commands:^B	attempt to enter Break.  If error is in a special system context, will change cursor to "CANT", indicating refusal to enter break. ^D	perform Hard Resetclear stack, flush all non-restartable processes.^N	continue from error.  This is usually not possible, except for code 9318, or when you got a 9915 error by typing ^C while the Raid interrupt was enabled.^P	display Pup host number (in decimal) in maintenance panel.9302	Invalid Vmem: attempt to boot an image that is not a valid Lisp sysout, or which is inconsistent from having some, but not all, of its dirty pages written.  Can happen if you boot instead of calling LOGOUT.  Usually caught sooner as code 0217.9303	No place for IOCB page at startup; should never happen.9304	Map out of bounds: attempt to use a pointer larger than the virtual address space of the machine.  Usually means garbage was fetched from somewhere that should have contained a pointer.  This usually appears as code 9004 instead. 9305	Invalid address: attempt to use a pointer that does not refer to an existing (allocated) part of virtual memory.  Usually means garbage was fetched from somewhere that should have contained a pointer.  This error can often be converted to a break with the ^B TeleRaid command.9306	Invalid virtual page.  Usually caught sooner, as a 9004. 9307	Unavailable page on real page chain: inconsistent state in page fault handler.9308	Loop in \SELECTREALPAGE: inconsistent state in page fault handler.9309	Attempt to allocate already existing page (from call to \NEWPAGE).9310	\DONEWPAGE failed to allocate new map page9311	Locked page occupies a file page needed to lock another: bad state in virtual memory system.9312	Arg to CLOCK0 not an integer box.9313	Fault on resident page: processor took a page fault for a page that appears to be resident.9314	PageFault on stack: shouldn't happen, as stack is resident.9318	Error in uninterruptable system code: an error that ordinarily would enter a break (e.g., a type test failure), but in a piece of code that should not be user-interruptable.  This is generally a sign that some datum used by system code has been smashed, but this is not always fatal.  Should you not have a wizard handy to diagnose the error with TeleRaid, you can type ^N after entering the TeleRaid server; Lisp will go ahead and attempt to enter a the break anyway, from which (if it succeeds) you might be able to glean more information about the problem.9400-9899 unassigned9900-9924 Attempt to call Raid or Alto O.S. The only one that is likely to ever occur is 9915, call to RAID.  Note that if you have the Raid interrupt enabled (by default on ^C), you will get a 9915 error by typing that interrupt character.9905	NOOPSUBR9906	\BACKGROUNDSUBR9907	\CHECKBCPLPASSWORD9908	DISKPARTITION9909	DSPBOUT9910	\DSPRATE9911	\GATHERSTATS9912	\GETPACKETBUFFER 9913	\LISPFINISH9914	\MOREVMEMFILE9915	RAID9916	\READRAWPBI 9917	\WRITERAWPBI9918	SETSCREENCOLOR9919	SHOWDISPLAY9920	\PUPLEVEL1STATE9921	\WRITESTATS9922	\CONTEXTSWITCH9923	\COPYSYS0SUBR9924	\WRITEMAP\553b25B370b17B151b46B504b32B171b29B1209b22B793b47B915b53B680b2B65b2B134b2B71b2B156b2B2093b21B1b45B