:TITLE[MPCodes];	*Definitions for maintenance panel codes.
			*for InitialAlto.Eb and Alto.Eb (Initial.Eb
			*MP codes not documented here)
			*Last edited by Fiala 13 January 1981

MC[StartMapInit,144];		*100d (debugging only)
  MC[NotEnoughMemory,145];	  *101d (.ls. 512 functional storage pages)
  MC[BadMap,146];		  *102d (debugging only)

%InitialAlto.Eb will show the final MP code displayed by Initial for about
0.5 seconds, and then show StartDeviceInit for about 0.5 seconds; MP codes
between StartDeviceInit and the number of good pages will normally flash
past too quickly to view.
%
MC[StartDeviceInit,150];	*104d
				*+1 (=105d started display init)
				*+1 (=106d finish loading or flushing CSL
				*	keyboard overlay)
				*+1 (=107d ordinarily, 105d when debugging
				*	with Midas--finished display init)
MC[StartDiskBoot,156];		*110d
  MC[NoDiskStatus,157];		  *111d
  MC[BadBoot,160];		  *112d
MC[StartEtherBoot,162];		*114d

%Maintenance panel will show the number of pages found to be good after the
Ethernet breath-of-life packet has been received successfully or after the
disk boot record has been read.  For perfect storage boards, the MP will
show 96K/256 pages/board which is 384 x number of storage boards
(i.e., 768, 1152, 1536, 1920, 2304, or 2688).
%

*Error Codes for Fault.Mc
MC[RMCSCrash,170];	*120d to 135d RM or CS parity error possibly in
			*combination with other errors.  MP code is 120d
			*plus:	1  if MC1 or MC2 error
			*	2  if RM parity error
			*	4  if CS parity error
			*	8  if Stack overflow or underflow

%The following codes imply that there was no RM or CS parity error.
Many of the following codes show a multiple of 20d + the task number
responsible for the error; e.g., if an MC1 error occurred on a reference
by task N, the code would be X+N.  NOTE: The codes which have the pipe task
added to them are offset by 15d because of the microcode's algorithm--the
comments are correct, however.
%
MC[MOBCrash,214];	*140d + current task.  Map Out of Bounds (Mesa handles
			*these itself, so should only occur for Alto emulator)
MC[H4PECrash,240];	*160d + current task.  H4PE (Not Ethernet input task)
MC[LPCrash,264];	*180d + current task.  Some fault when preceding mi
			*was a LoadPage (Indicates microcode bug--report it).

*The following codes imply that there was no RM, CS, H4PE, or MOB error
MC[MC2Crash,327];	*200d + pipe task.  MC2 error (Double bit failure or
			*microcode bug or single bit failure if specially
			*enabled)
MC[MC22Crash,165];	*117d 2 MC2 errors

*The following codes imply no RM, CS, H4PE, MOB, or MC2 errors in combination
MC[MC1Crash,353];	*220d + pipe task.  MC1 fault (Page fault or write
			*protect fault; Mesa emulator handles these itself,
			*so this code should only occur for Alto emulator)

MC[BrkPCrash,360];	*240d + current task.  SetFault (i.e., breakpoint)
			*by task, interpreted as follows:
			* 0 emulator
			* 1 unused (bad wakeup)
			* 2 unused (bad wakeup)
			* 3 unused (bad wakeup)
			* 4 unused (bad wakeup)
			* 5 color display controller
			* 6 ethernet output
			* 7 ethernet input
			*10 SA4000 controller
			*11 unused (bad wakeup)
			*12 display controller
			*13 unused (bad wakeup)
			*14 unused (bad wakeup)
			*15 unused (bad wakeup)
			*16 timer (bad timer wakeup)
			*17 fault

*The following codes imply that no other errors occurred in combination
MC[eoCrash,163];	*115d Unexpected Ethernet output wakeup
MC[StkCrash,167];	*119d Stack over/underflow
MC[NStkCrash,210];	*(StkCrash & 377) xor 377b for software