Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/mcode0.lst
There are no other files named mcode0.lst in the archive.
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 1
MCODE0	MAC	17-Oct-88 14:28	

     1			000000		EDIT=0
     2			000001		VERSION=1
     3
     4					XLIST
     5					LIST
     6
     7
     8
     9
    10					TITLE	MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1
    11
    12
    13
    14					^
    15
    16						COMMENT	^
    17
    18					MCODE0 IS A MICRO-CODE DIAGNOSTIC OF THE DX20 MICRO-PROCESSOR.
    19
    20					THIS MICRO-DIAGNOSTIC IS THE FIRST PROGRAM OF ANY SIGNIFICANT SIZE
    21					TO BE RUN BY THE DX20 MICRO-PROCESSOR.  IT'S PURPOSE IS TO ESTABLISH
    22					CONFIDENCE IN THE RELIABILITY OF THE MICRO-PROCESSOR.
    23
    24					THIS TEST IS NOT DESIGNED TO FIND ANY HARDWARE FAULTS IN THE DX20 EXCEPT
    25					IN THE AREAS OF TIMING AND INSTRUCTION INTERACTION.  ALL INSTRUCTIONS
    26					HAVE BEEN FUNCTIONALLY TESTED PRIOR TO THE RUNNING OF THIS MICRO-
    27					DIAGNOSTIC.
    28
    29					THIS MICRO-DIAGNOSTIC IS COMPOSED OF SEVERAL ROUTINES WHICH EXECUTE A
    30					A SIMPLE PLAY ON NUMBERS AND THEN CHECK THE RESULT.  THE INDIVIDUAL
    31					ROUTINES WERE KEPT SIMPLE SO THAT THE FUNCTION UNDER TEST CAN BE
    32					EASILY IDENTIFIED.
    33
    34					SINCE NO METHOD OF HALTING THE MICRO-PROCESSOR IS PROVIDED IN HARDWARE,
    35					THE FOLLOWING METHOD OF HALTING HAS BEEN IMPLEMENTED FOR THIS TEST:
    36						AC7 HAS BEEN LOADED WITH ALL ZEROS, INCLUDING THE PARITY
    37						  BIT (EVEN PARITY).
    38						THE INSTRUCTION <MOV AC7> IS EXECUTED TO READ AC7, DETECT THE
    39						  BAD (EVEN) PARITY AND HALT.
    40						THE MICRO-PROCESSOR HALTS WITH THE <MOV AC7> INSTRUCTION IN THE
    41						  IR, ALU A-INPUT PARITY ERROR BIT SET IN DRIVE REGISTER 37
    42						  (DXDR7) AND THE PC CONTAINING ONE GREATER THAN THE ADDRESS OF
    43						  THE CRAM LOCATION CONTAINING THE INSTRUCTION.
    44
    45						E.G. IF A <MOV AC7> INSTRUCTION IS EXECUTED FROM CRAM LOCATION 2
    46						  THE MICRO-PROCESSOR WILL STOP WITH:
    47							PC CONTAINING 0003	;HALT ADDRESS +1
    48							IR CONTAINING 060170	;MOV AC7
    49							DXDR7 CONTAINING 004000	;ALU A-INPUT PARITY ERROR
    50
    51
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 2
MCODE0	MAC	17-Oct-88 14:28	

    52					THESE HALT INSTRUCTIONS <MOV AC7> ARE SCATTERED THROUGHOUT THE CRAM.
    53					A CONDITIONAL JUMP INSTRUCTION NORMALLY PRECEEDS THE HALT SO THAT IF
    54					THE CODE IS BEING EXECUTED PROPERLY THE HALT INSTRUCTION SHOULD NOT
    55					BE EXECUTED.  THE HALT INSTRUCTIONS HAVE BEEN INDENTED 2 PLACES TO
    56					INDICATE THE INSTRUCTION IS NOT NORMALLY EXECUTED.
    57
    58						E.G.	JMPZ	.+2		;SKIP OVER HALT IF Z IS SET
    59							  MOV	AC7		;  HALT ON PARITY ERROR IN AC7
    60							LDBR	0		;LOAD ZEROS INTO BR
    61
    62						  IF THE Z BIT IS SET, THE <JMPZ .+2> INSTRUCTION WILL CAUSE THE
    63						  <LDBR 0> INSTRUCTION TO BE EXECUTED NEXT. (THE <MOV AC7>
    64						  INSTRUCTION TO BE SKIPPED.)
    65
    66					ONLY ONE <MOV AC7> INSTRUCTION SHOULD BE EXECUTED NORMALLY.  THIS
    67					INSTRUCTION IS IN CRAM LOCATION 3776.  THE SUCCESSFUL COMPLETION OF
    68					THIS TEST IS INDICATED BY THE MICRO-PROCESSOR HALTING ON AN ALU A-INPUT
    69					PARITY ERROR WITH THE PC CONTAINING 3777.
    70
    71					IF THE MICRO-PROCESSOR HALTS FOR ANY REASON OTHER THAN BECAUSE IT
    72					EXECUTED THE HALT INSTRUCTION IN LOCATION 3776, AN ERROR IS REPORTED.
    73					LOOPING ON ERROR WILL CAUSE THE MICRO-PROCESSOR TO BE RESTARTED AT
    74					CRAM LOCATION 1.  THE ERROR REPORT SHOULD BE ANALYZED TO DETERMINE THE
    75					PC AT THE TIME OF THE HALT AND THE REASON FOR THE HALT:
    76						FROM DRIVE REGISTER 37 (DXDR7):
    77						  ALU A-INPUT PARITY ERROR
    78						  ALU B-INPUT PARITY ERROR
    79						  IR PARITY ERROR
    80						  STACK OVER/UNDER FLOW ERROR
    81						FROM DRIVE REGISTER 2 (DXERR):
    82						  UBUS PARITY ERROR
    83						NONE OF THE ABOVE ERRORS:
    84						  TIME-OUT ERROR IN MICRO-PROCESSOR
    85
    86					IF NECESSARY, THE CONSOLE PACKAGE CAN BE USED TO ALTER CONTROL OF
    87					THE MICRO-PROCESSOR LOOP AND TO EXAMINE MORE REGISTERS.
    88					^
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 3
MCODE0	MAC	17-Oct-88 14:28	

    89					;MASSBUS INTERFACE REGISTER ASSIGNMENTS
    90
    91			000000			MPSCR0=	0	;STATUS AND CONTROL REGISTER 1
    92			000001			MPSCR1=	1	;STATUS AND CONTROL REGISTER 2
    93			000002			MPECR=	2	;ERROR CODE REGISTER
    94			000003			MPDTR=	3	;DRIVE TYPE REGISTER
    95			000004			MPHVR=	4	;HARDWARE VERSION REGISTER
    96			000005			MPDB0=	5	;DATA BUFFER REGISTER 0
    97			000006			MPDB1=	6	;DATA BUFFER REGISTER 1
    98			000007			MPDB2=	7	;DATA BUFFER REGISTER 2
    99			000010			MPGP0= 10	;GENERAL PURPOSE REGISTERS
   100			000011			MPGP1= 11
   101			000012			MPGP2= 12
   102			000013			MPGP3= 13
   103			000014			MPGP4= 14
   104			000015			MPGP5= 15
   105			000016			MPGP6= 16
   106			000017			MPGP7= 17
   107			000020			MPGP10=20
   108			000021			MPGP11=21
   109			000022			MPGP12=22
   110			000023			MPGP13=23
   111			000024			MPGP14=24
   112			000025			MPGP15=25
   113			000026			MPGP16=26
   114			000027			MPGP17=27
   115
   116			000036			MPSTAT=36	;MICRO-PROCESSOR STATUS REGISTER
   117			000037			IOSEL= 37	;I/O SELECT REGISTER
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 4
MCODE0	MAC	17-Oct-88 14:28	

   118						SEARCH	DX20CA			;READ IN CROSS-ASSEMBLER
   119						.INIT	^			;INITIALIZE
   120
   121						SALL
   122	000000	0 002000 01 0000 
   123
   124
   125					;*TEST THAT A JMP INSTRUCTION CAN JUMP
   126
   127	000001	0 100003 4 0 0003 	START:	JMP	.+2			;SKIP OVER HALT
   128	000002	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   129
   130					;*TEST THAT JMPZ CAN JUMP CONDITIONALLY ON THE Z BIT
   131
   132	000003	0 000000 0 0 0 000 		NOP				;A NOP INSTRUCTION CLEARS Z
   133	000004	0 114006 4 6 0006 		JMPZ	.+2			;SHOULD NOT JUMP
   134	000005	0 100007 4 0 0007 		JMP	.+2			;SKIP OVER HALT
   135	000006	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   136	000007	0 002377 0 1 0 377 		LDBR	-1			;SET Z
   137	000010	0 114012 4 6 0012 		JMPZ	.+2			;SKIP OVER HALT
   138	000011	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   139
   140					;*SELECT MEMORY ADDRESS 0.
   141					;*CHECK ON OSB INSTRUCTION
   142
   143	000012	0 001000 0 0 2 000 		LDMAR	0			;SELECT MEMORY LOCATION 0
   144	000013	0 000400 0 0 1 000 		LDMARX	0
   145	000014	0 002000 0 1 0 000 		LDBR	0			;PUT A ZERO IN BR
   146	000015	0 072011 3 5 0 00 11 		MOVB	AC0			;PUT A ZERO IN AC0
   147	000016	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE, PUT RESULT IN MEMORY
   148	000017	0 114021 4 6 0021 		JMPZ	.+2			;RESULT SHOULD HAVE BEEN -1
   149	000020	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   150	000021	0 002377 0 1 0 377 		LDBR	-1			;PUT A -1 INTO BR
   151	000022	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE, PUT RESULT IN MEMORY
   152	000023	0 114025 4 6 0025 		JMPZ	.+2			;RESULT SHOULD NOT HAVE BEEN -1
   153	000024	0 100026 4 0 0026 		JMP	.+2			;Z SHOULD NOT BE SET
   154	000025	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   155	000026	0 062010 3 1 0 00 10 		MOV	AC0,BR			;MOVE ZEROS FROM AC TO BR
   156	000027	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE, PUT RESULT IN MEMORY
   157	000030	0 114032 4 6 0032 		JMPZ	.+2			;RESULT SHOULD BE ZERO
   158	000031	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   159
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 5
MCODE0	MAC	17-Oct-88 14:28	

   160					;*CHECK JMP ON BR BIT CONDITIONS
   161
   162	000032	0 002001 0 1 0 001 		LDBR	1			;SET BR BIT 0
   163	000033	0 104035 4 2 0035 		JMPB0	.+2			;JMP ON BR BIT 0
   164	000034	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   165	000035	0 002376 0 1 0 376 		LDBR	376			;SET ALL BUT BIT 0
   166	000036	0 104040 4 2 0040 		JMPB0	.+2			;JMP ON BIT ZERO
   167	000037	0 100041 4 0 0041 		JMP	.+2			;SHOULD NOT HAVE JUMPED
   168	000040	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   169	000041	0 002020 0 1 0 020 		LDBR	20			;SET BR BIT 4
   170	000042	0 106044 4 3 0044 		JMPB4	.+2			;JMP ON BIT 4
   171	000043	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   172	000044	0 002357 0 1 0 357 		LDBR	357			;SET ALL BUT BIT 4
   173	000045	0 106047 4 3 0047 		JMPB4	.+2			;JMP ON BIT 4
   174	000046	0 100050 4 0 0050 		JMP	.+2			;SHOULD NOT HAVE JUMPED
   175	000047	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   176	000050	0 002200 0 1 0 200 		LDBR	200			;SET BR BIT 7
   177	000051	0 110053 4 4 0053 		JMPB7	.+2			;JMP ON BIT 7
   178	000052	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   179	000053	0 002177 0 1 0 177 		LDBR	177			;SET ALL BUT BIT 7
   180	000054	0 110056 4 4 0056 		JMPB7	.+2			;JMPON BIT 7
   181	000055	0 100057 4 0 0057 		JMP	.+2			;SHOULD NOT HAVE JUMPED
   182	000056	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   183
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 6
MCODE0	MAC	17-Oct-88 14:28	

   184					;*CHECK OSM INSTRUCTION
   185
   186	000057	0 002377 0 1 0 377 		LDBR	-1			;SET ALL BITS IN BR
   187	000060	0 072011 3 5 0 00 11 		MOVB	AC0			;PUT BITS IN AC0
   188	000061	0 010377 0 4 0 377 		LDMEM	-1			;SET ALL BITS IN MEMORY LOC 0
   189	000062	0 042017 2 1 0 00 17 		OSM	AC0,BR			;COMPARE MEM WITH AC0, PUT RESULT IN BR
   190	000063	0 114065 4 6 0065 		JMPZ	.+2			;SHOULD JUMP
   191	000064	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   192	000065	0 010000 0 4 0 000 		LDMEM	0			;LOAD ZEROS INTO MEMORY
   193	000066	0 042017 2 1 0 00 17 		OSM	AC0,BR			;COMPARE MEM WITH AC0, PUT RESULT IN BR
   194	000067	0 114071 4 6 0071 		JMPZ	.+2			;SHOULD NOT JMP
   195	000070	0 100072 4 0 0072 		JMP	.+2			;SKIP OVER HALT
   196	000071	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   197
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 7
MCODE0	MAC	17-Oct-88 14:28	

   198					;*CHECK SUBTRACT FUNCTION WHILE FLOATING A ONE BIT THROUGH THE BR
   199
   200	000072	0 002000 0 1 0 000 		LDBR	0			;LOAD ZEROS INTO BR
   201	000073	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE ZEROS INTO AC0
   202	000074	0 002001 0 1 0 001 		LDBR	1			;LOAD BR WITH 1
   203	000075	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT TO MEM
   204	000076	0 114100 4 6 0100 		JMPZ	.+2			;SHOULD NOT COMPARE
   205	000077	0 100101 4 0 0101 		JMP	.+2			;SKIP OVER HALT
   206	000100	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   207	000101	0 002002 0 1 0 002 		LDBR	2			;LOAD BR WITH 2
   208	000102	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   209	000103	0 114105 4 6 0105 		JMPZ	.+2			;SHOULD NOT COMPARE
   210	000104	0 100106 4 0 0106 		JMP	.+2			;SKIP OVER HALT
   211	000105	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   212	000106	0 002004 0 1 0 004 		LDBR	4			;LOAD BR WITH 4
   213	000107	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   214	000110	0 114112 4 6 0112 		JMPZ	.+2			;SHOULD NOT COMPARE
   215	000111	0 100113 4 0 0113 		JMP	.+2			;SKIP OVER HALT
   216	000112	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   217	000113	0 002010 0 1 0 010 		LDBR	10			;LOAD BR WITH 10
   218	000114	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   219	000115	0 114117 4 6 0117 		JMPZ	.+2			;SHOULD NOT COMPARE
   220	000116	0 100120 4 0 0120 		JMP	.+2			;SKIP OVER HALT
   221	000117	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   222	000120	0 002020 0 1 0 020 		LDBR	20			;LOAD BR WITH 20
   223	000121	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   224	000122	0 114124 4 6 0124 		JMPZ	.+2			;SHOULD NOT COMPARE
   225	000123	0 100125 4 0 0125 		JMP	.+2			;SKIP OVER HALT
   226	000124	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   227	000125	0 002040 0 1 0 040 		LDBR	40			;LOAD BR WITH 40
   228	000126	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   229	000127	0 114131 4 6 0131 		JMPZ	.+2			;SHOULD NOT COMPARE
   230	000130	0 100132 4 0 0132 		JMP	.+2			;SKIP OVER HALT
   231	000131	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   232	000132	0 002100 0 1 0 100 		LDBR	100			;LOAD BR WITH 100
   233	000133	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   234	000134	0 114136 4 6 0136 		JMPZ	.+2			;SHOULD NOT COMPARE
   235	000135	0 100137 4 0 0137 		JMP	.+2			;SKIP OVER HALT
   236	000136	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   237	000137	0 002200 0 1 0 200 		LDBR	200			;LOAD BR WITH 200
   238	000140	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   239	000141	0 114143 4 6 0143 		JMPZ	.+2			;SHOULD NOT COMPARE
   240	000142	0 100144 4 0 0144 		JMP	.+2			;SKIP OVER HALT
   241	000143	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   242
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 8
MCODE0	MAC	17-Oct-88 14:28	

   243					;*CHECK MOVMEM INSTRUCTION
   244
   245	000144	0 010377 0 4 0 377 		LDMEM	-1			;LOAD MEM WITH -1
   246	000145	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE FROM MEM TO AC0
   247	000146	0 042017 2 1 0 00 17 		OSM	AC0,BR			;COMPARE MEM AND AC0, PUT RESULT IN BR
   248	000147	0 114151 4 6 0151 		JMPZ	.+2			;SKIP IF COMPARED
   249	000150	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   250	000151	0 010022 0 4 0 022 		LDMEM	22			;LOAD MEM WITH 22
   251	000152	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE FROM MEM TO AC0
   252	000153	0 042017 2 1 0 00 17 		OSM	AC0,BR			;COMPARE MEM AND AC0, PUT RESULT IN BR
   253	000154	0 114156 4 6 0156 		JMPZ	.+2			;SKIP IF COMPARED
   254	000155	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   255
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 9
MCODE0	MAC	17-Oct-88 14:28	

   256					;*CHECK INCREMENT FUNCTION
   257
   258					;INCREMENT 0 TO 1 AND PUT IN MEMORY
   259
   260	000156	0 002000 0 1 0 000 		LDBR	0			;LOAD BR WITH 0
   261	000157	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE ZEROS TO AC0
   262	000160	0 070003 3 4 0 00 03 		INC	AC0,MEM			;INCREMENT DATA IN AC0, PUT RESULT IN MEM
   263	000161	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   264	000162	0 114164 4 6 0164 		JMPZ	.+2			;SHOULD COMPARE, INC SHOULD NOT CHANGE AC0
   265	000163	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   266
   267					;INCREMENT 0 TO 1 AND RETURN RESULT TO AC
   268
   269	000164	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0, PUT RESULT IN AC0
   270	000165	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   271	000166	0 114170 4 6 0170 		JMPZ	.+2			;SHOULD NOT COMPARE
   272	000167	0 100171 4 0 0171 		JMP	.+2			;INCR SHOULD HAVE CHANGED AC0
   273	000170	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   274	000171	0 002001 0 1 0 001 		LDBR	1			;SET UP EXPECTED RESULT OF INCR
   275	000172	0 070017 3 4 0 00 17 		OSB	AC0,MEM			;COMPARE BR AND AC0, PUT RESULT IN MEM
   276	000173	0 114175 4 6 0175 		JMPZ	.+2			;SHOULD COMPARE
   277	000174	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   278
   279					;INCREMENT 1 TO 2
   280
   281	000175	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   282	000176	0 002002 0 1 0 002 		LDBR	2			;SET UP EXPECTED RESULT
   283	000177	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   284	000200	0 114202 4 6 0202 		JMPZ	.+2			;SKIP IF COMPARED
   285	000201	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   286
   287					;INCREMENT 3 TO 4
   288
   289	000202	0 010003 0 4 0 003 		LDMEM	3			;PUT A 3 IN MEM
   290	000203	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE TO AC0
   291	000204	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   292	000205	0 002004 0 1 0 004 		LDBR	4			;SET UP EXPECTED RESULT
   293	000206	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   294	000207	0 114211 4 6 0211 		JMPZ	.+2			;SKIP IF COMPARED
   295	000210	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   296
   297					;INCREMENT 7 TO 10
   298
   299	000211	0 010007 0 4 0 007 		LDMEM	7			;LOAD A 7 INTO MEM
   300	000212	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE TO AC0
   301	000213	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   302	000214	0 002010 0 1 0 010 		LDBR	10			;SET UP EXPECTED RESULT
   303	000215	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   304	000216	0 114220 4 6 0220 		JMPZ	.+2			;SKIP IF COMPARED
   305	000217	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   306
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 10
MCODE0	MAC	17-Oct-88 14:28	

   307					;INCREMENT 17 TO 20
   308
   309	000220	0 010017 0 4 0 017 		LDMEM	17			;LOAD A 17 INTO MEM
   310	000221	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE TO AC0
   311	000222	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   312	000223	0 002020 0 1 0 020 		LDBR	20			;SET UP EXPECTED RESULT
   313	000224	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   314	000225	0 114227 4 6 0227 		JMPZ	.+2			;SKIP IF COMPARED
   315	000226	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   316
   317					;INCREMENT 37 TO 40
   318
   319	000227	0 010037 0 4 0 037 		LDMEM	37			;LOAD A 37 INTO MEM
   320	000230	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE TO AC0
   321	000231	0 072003 3 5 0 00 03 		INCR	AC0			;INCRMENT AC0
   322	000232	0 002040 0 1 0 040 		LDBR	40			;SET UP EXPECTED RESULT
   323	000233	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   324	000234	0 114236 4 6 0236 		JMPZ	.+2			;SKIP IF COMPARED
   325	000235	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   326
   327					;INCREMENT 77 TO 100
   328
   329	000236	0 010077 0 4 0 077 		LDMEM	77			;LOAD A 77 INTO MEM
   330	000237	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE TO AC0
   331	000240	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   332	000241	0 002100 0 1 0 100 		LDBR	100			;SET UP EXPECTED RESULT
   333	000242	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   334	000243	0 114245 4 6 0245 		JMPZ	.+2			;SKIP IF COMPARED
   335	000244	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   336
   337					;INCREMENT 177 TO 200
   338
   339	000245	0 010177 0 4 0 177 		LDMEM	177			;LOAD A 177 INTO MEM
   340	000246	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE TO AC0
   341	000247	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   342	000250	0 002200 0 1 0 200 		LDBR	200			;SET UP EXPECTED RESULT
   343	000251	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   344	000252	0 114254 4 6 0254 		JMPZ	.+2			;SKIP IF COMPARED
   345	000253	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   346
   347					;INCREMENT 377 TO 0
   348
   349	000254	0 010377 0 4 0 377 		LDMEM	377			;LOAD A 377 INTO MEM
   350	000255	0 052011 2 5 0 00 11 		MOVMEM	AC0			;MOVE TO AC0
   351	000256	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   352	000257	0 002000 0 1 0 000 		LDBR	0			;SET UP EXPECTED RESULT
   353	000260	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   354	000261	0 114263 4 6 0263 		JMPZ	.+2			;SKIP IF COMPARED
   355	000262	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   356
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 11
MCODE0	MAC	17-Oct-88 14:28	

   357					;*CHECK DECREMENT FUNCTION
   358
   359					;DECREMENT 0 TO -1
   360
   361	000263	0 002000 0 1 0 000 		LDBR	0			;LOAD A 0 INTO BR
   362	000264	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   363	000265	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   364	000266	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   365	000267	0 114271 4 6 0271 		JMPZ	.+2			;DECR SHOULD HAVE CHANGED AC0
   366	000270	0 100272 4 0 0272 		JMP	.+2			;BR AND AC0 SHOULD NOT COMPARE
   367	000271	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   368	000272	0 010377 0 4 0 377 		LDMEM	-1			;SET UP EXPECTED RESULT
   369	000273	0 040017 2 0 0 00 17 		OSM	AC0			;COMPARE MEM AND AC0
   370	000274	0 114276 4 6 0276 		JMPZ	.+2			;SKIP IF COMPARED
   371	000275	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   372
   373					;DECREMENT 2 TO 1
   374
   375	000276	0 002001 0 1 0 001 		LDBR	1			;LOAD BR WITH 1
   376	000277	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   377	000300	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   378	000301	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   379	000302	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   380	000303	0 114305 4 6 0305 		JMPZ	.+2			;SKIP IF COMPARED	
   381	000304	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   382
   383					;DECREMENT 4 TO 3
   384
   385	000305	0 002003 0 1 0 003 		LDBR	3			;LOAD BR WITH 3
   386	000306	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   387	000307	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   388	000310	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   389	000311	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   390	000312	0 114314 4 6 0314 		JMPZ	.+2			;SKIP IF COMPARED
   391	000313	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   392
   393					;DECREMENT 10 TO 7
   394
   395	000314	0 002007 0 1 0 007 		LDBR	7			;LOAD BR WITH 7
   396	000315	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   397	000316	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   398	000317	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   399	000320	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   400	000321	0 114323 4 6 0323 		JMPZ	.+2			;SKIP IF COMPARED
   401	000322	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   402
   403					;DECREMENT 20 TO 17
   404
   405	000323	0 002017 0 1 0 017 		LDBR	17			;LOAD BR WITH 17
   406	000324	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   407	000325	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   408	000326	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   409	000327	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   410	000330	0 114332 4 6 0332 		JMPZ	.+2			;SKIP IF COMPARED
   411	000331	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 11-1
MCODE0	MAC	17-Oct-88 14:28	

   412
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 12
MCODE0	MAC	17-Oct-88 14:28	

   413					;DECREMENT 40 TO 37
   414
   415	000332	0 002037 0 1 0 037 		LDBR	37			;LOAD BR WITH 37
   416	000333	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   417	000334	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   418	000335	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   419	000336	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   420	000337	0 100341 4 0 0341 		JMP	.+2			;SKIP IF COMPARED
   421	000340	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   422
   423					;DECREMENT 100 TO 77
   424
   425	000341	0 002077 0 1 0 077 		LDBR	77			;LOAD BR WITH 77
   426	000342	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   427	000343	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   428	000344	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   429	000345	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   430	000346	0 100350 4 0 0350 		JMP	.+2			;SKIP IF NOT COMPARED
   431	000347	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   432
   433					;DECREMENT 200 TO 177
   434
   435	000350	0 002177 0 1 0 177 		LDBR	177			;LOAD BR WITH 177
   436	000351	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   437	000352	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   438	000353	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0
   439	000354	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE BR AND AC0
   440	000355	0 114357 4 6 0357 		JMPZ	.+2			;SKIP IF COMPARED
   441	000356	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   442
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 13
MCODE0	MAC	17-Oct-88 14:28	

   443					;*CHECK CARRY FLAG
   444
   445	000357	0 002377 0 1 0 377 		LDBR	-1			;LOAD BR WITH -1
   446	000360	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   447	000361	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0
   448	000362	0 112364 4 5 0364 		JMPC	.+2			;JMP IF CARRY SET
   449	000363	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   450	000364	0 002000 0 1 0 000 		LDBR	0			;LOAD BR WITH ZEROS, SHOULD NOT CHANGE CARRY BIT
   451	000365	0 112367 4 5 0367 		JMPC	.+2			;JMP IF CARRY STILL SET
   452	000366	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   453	000367	0 072003 3 5 0 00 03 		INCR	AC0			;INCREMENT AC0 TO A 1, SHOULD CLEAR CARRY BIT
   454	000370	0 112372 4 5 0372 		JMPC	.+2			;JMP IF CARRY SET
   455	000371	0 100373 4 0 0373 		JMP	.+2			;IT SHOULD NOT BE SET
   456	000372	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   457	000373	0 002000 0 1 0 000 		LDBR	0			;LOAD BR WITH 0, SHOULD NOT CHANGE CARRY BIT
   458	000374	0 112376 4 5 0376 		JMPC	.+2			;JMP IF CARRY SET
   459	000375	0 100377 4 0 0377 		JMP	.+2			;IT SHOULD NOT BE SET
   460	000376	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   461	000377	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0 TO A 0
   462	000400	0 112402 4 5 0402 		JMPC	.+2			;JMP IF CARRY IS SET
   463	000401	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   464	000402	0 072007 3 5 0 00 07 		DECR	AC0			;DECREMENT AC0 TO -1
   465	000403	0 112405 4 5 0405 		JMPC	.+2			;JMP IF CARRY SET
   466	000404	0 100406 4 0 0406 		JMP	.+2			;IT SHOULD NOT BE SET
   467	000405	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   468
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 14
MCODE0	MAC	17-Oct-88 14:28	

   469					;*CHECK AC 0 THROUGH 6
   470
   471					;PUT A 0 IN AC0
   472
   473	000406	0 002000 0 1 0 000 		LDBR	0			;CLEAR BR
   474	000407	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
   475
   476					;PUT A 1 IN AC1
   477
   478	000410	0 062003 3 1 0 00 03 		INC	AC0,BR			;INCREMENT TO 1, PUT IN BR
   479	000411	0 072031 3 5 0 01 11 		MOVB	AC1			;PUT THE 1 IN AC1
   480	000412	0 060037 3 0 0 01 17 		OSB	AC1			;COMPARE BR AND AC1
   481	000413	0 114415 4 6 0415 		JMPZ	.+2			;SKIP IF A MATCH
   482	000414	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   483
   484					;PUT A 2 IN AC2
   485
   486	000415	0 062023 3 1 0 01 03 		INC	AC1,BR			;INCREMENT TO 2, PUT IN BR
   487	000416	0 072051 3 5 0 02 11 		MOVB	AC2			;PUT THE 2 IN AC2
   488	000417	0 060057 3 0 0 02 17 		OSB	AC2			;COMPARE BR AND AC2
   489	000420	0 114422 4 6 0422 		JMPZ	.+2			;SKIP IF A MATCH
   490	000421	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   491
   492					;PUT A 3 IN AC3
   493
   494	000422	0 062043 3 1 0 02 03 		INC	AC2,BR			;INCREMENT TO 3, PUT IN BR
   495	000423	0 072071 3 5 0 03 11 		MOVB	AC3			;PUT THE 3 IN AC3
   496	000424	0 060077 3 0 0 03 17 		OSB	AC3			;COMPARE AC3 AND BR
   497	000425	0 114427 4 6 0427 		JMPZ	.+2			;SKIP IF A MATCH
   498	000426	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   499
   500					;PUT A 4 IN AC4
   501
   502	000427	0 062063 3 1 0 03 03 		INC	AC3,BR			;INCREMENT TO 4, PUT IN BR
   503	000430	0 072111 3 5 0 04 11 		MOVB	AC4			;PUT THE 4 IN AC4
   504	000431	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE AC4 AND BR
   505	000432	0 114434 4 6 0434 		JMPZ	.+2			;SKIP IF A MACTH
   506	000433	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   507
   508					;PUT A 5 IN AC5
   509
   510	000434	0 062103 3 1 0 04 03 		INC	AC4,BR			;INCREMENT TO 5, PUT IN BR
   511	000435	0 072131 3 5 0 05 11 		MOVB	AC5			;PUT THE 5 IN AC5
   512	000436	0 060137 3 0 0 05 17 		OSB	AC5			;COMPARE AC5 AND BR
   513	000437	0 114441 4 6 0441 		JMPZ	.+2			;SKIP IF A MATCH
   514	000440	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   515
   516					;PUT A 6 IN AC6
   517
   518	000441	0 062123 3 1 0 05 03 		INC	AC5,BR			;INCREMENT TO 6, PUT IN BR
   519	000442	0 072151 3 5 0 06 11 		MOVB	AC6			;PUT THE 6 IN AC6
   520	000443	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE AC6 AND BR
   521	000444	0 114446 4 6 0446 		JMPZ	.+2			;SKIP IF A MATCH
   522	000445	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   523
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 15
MCODE0	MAC	17-Oct-88 14:28	

   524					;CHECK AC6 FOR 6
   525
   526	000446	0 010006 0 4 0 006 		LDMEM	6			;PUT A 6 IN MEMORY
   527	000447	0 040157 2 0 0 06 17 		OSM	AC6			;COMPARE  WITH AC6
   528	000450	0 114452 4 6 0452 		JMPZ	.+2			;SKIP IF A MATCH
   529	000451	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   530
   531					;CHECK AC5 FOR 5
   532
   533	000452	0 070147 3 4 0 06 07 		DEC	AC6,MEM			;DECREMENT THE 6 TO 5, PUT IN MEM
   534	000453	0 040137 2 0 0 05 17 		OSM	AC5			;COMPARE WITH AC5
   535	000454	0 114456 4 6 0456 		JMPZ	.+2			;SKIP IF A MATCH
   536	000455	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   537
   538					;CHECK AC4 FOR 4
   539
   540	000456	0 070127 3 4 0 05 07 		DEC	AC5,MEM			;DECREMENT TO 4, PUT IN MEM
   541	000457	0 040117 2 0 0 04 17 		OSM	AC4			;COMPARE WITH AC4
   542	000460	0 114462 4 6 0462 		JMPZ	.+2			;SKIP IF A MATCH
   543	000461	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   544
   545					;CHECK AC3 FOR 3
   546
   547	000462	0 070107 3 4 0 04 07 		DEC	AC4,MEM			;DECREMENT TO 3, PUT IN MEM
   548	000463	0 040077 2 0 0 03 17 		OSM	AC3			;COMPARE WITH AC3
   549	000464	0 114466 4 6 0466 		JMPZ	.+2			;SKIP IF A  MATCH
   550	000465	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   551
   552					;CHECK AC2 FOR 2
   553
   554	000466	0 070067 3 4 0 03 07 		DEC	AC3,MEM			;DECREMENT TO A 2, PUT IN MEM
   555	000467	0 040057 2 0 0 02 17 		OSM	AC2			;COMPARE WITH AC2
   556	000470	0 114472 4 6 0472 		JMPZ	.+2			;SKIP IF A MATCH
   557	000471	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   558
   559					;CHECK AC1 FOR 1
   560
   561	000472	0 070047 3 4 0 02 07 		DEC	AC2,MEM			;DECREMENT TO A 1, PUT IN MEM
   562	000473	0 040037 2 0 0 01 17 		OSM	AC1			;COMPARE WITH AC1
   563	000474	0 114476 4 6 0476 		JMPZ	.+2			;SKIP IF A MATCH
   564	000475	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   565
   566					;CHECK AC0 FOR 0
   567
   568	000476	0 070027 3 4 0 01 07 		DEC	AC1,MEM			;DECREMENT TO A 0, PUT IN MEM
   569	000477	0 040017 2 0 0 00 17 		OSM	AC0			;COMPARE WITH AC0
   570	000500	0 114502 4 6 0502 		JMPZ	.+2			;SKIP IF A MATCH
   571	000501	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   572
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 16
MCODE0	MAC	17-Oct-88 14:28	

   573					;*CHECK ADC INSTRUCTION
   574
   575	000502	0 002376 0 1 0 376 		LDBR	-2			;PUT A -2 INTO BR
   576	000503	0 072071 3 5 0 03 11 		MOVB	AC3			;MOVE TO AC3
   577	000504	0 072063 3 5 0 03 03 		INCR	AC3			;INCREMENT TO -1 TO CLEAR CARRY BIT
   578	000505	0 062064 3 1 0 03 04 		ADC	AC3,BR			;ADD CARRY TO AC3, PUT RESULT IN BR
   579	000506	0 114510 4 6 0510 		JMPZ	.+2			;SKIP IF RESULT WAS -1, CARRY WAS 0
   580	000507	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   581	000510	0 072063 3 5 0 03 03 		INCR	AC3			;INCREMENT AC3 TO 0, SETS THE CARRY BIT
   582	000511	0 072064 3 5 0 03 04 		ADCR	AC3			;ADD CARRY TO AC3
   583	000512	0 002001 0 1 0 001 		LDBR	1			;SET UP BR WITH EXPECTED VALUE OF 1
   584	000513	0 060077 3 0 0 03 17 		OSB	AC3			;COMPARE BR AND AC3
   585	000514	0 114516 4 6 0516 		JMPZ	.+2			;SKIP IF A MATCH
   586	000515	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   587
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 17
MCODE0	MAC	17-Oct-88 14:28	

   588					;*CHECK ADB AND SHL INSTRUCTIONS
   589
   590					;ADD 1 + 1
   591
   592	000516	0 002001 0 1 0 001 		LDBR	1			;LOAD A 1 IN BR
   593	000517	0 072131 3 5 0 05 11 		MOVB	AC5			;MOVE TO AC5
   594	000520	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   595	000521	0 112523 4 5 0523 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   596	000522	0 100524 4 0 0524 		JMP	.+2			;IT SHOULD NOT BE SET
   597	000523	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   598
   599					;SHIFT A 1 LEFT
   600
   601	000524	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   602	000525	0 112527 4 5 0527 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   603	000526	0 100530 4 0 0530 		JMP	.+2			;IT SHOULD NOT BE SET
   604	000527	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   605
   606					;COMPARE RESULTS FOR 2
   607
   608	000530	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 2
   609	000531	0 114533 4 6 0533 		JMPZ	.+2			;SKIP IF THEY MATCH
   610	000532	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   611
   612					;ADD 2 + 2
   613
   614	000533	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   615	000534	0 112536 4 5 0536 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   616	000535	0 100537 4 0 0537 		JMP	.+2			;IT SHOULD NOT BE SET
   617	000536	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   618
   619					;SHIFT A 2 LEFT
   620
   621	000537	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   622	000540	0 112542 4 5 0542 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   623	000541	0 100543 4 0 0543 		JMP	.+2			;IT SHOULD NOT BE SET
   624	000542	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   625
   626					;COMPARE RESULTS FOR A 4
   627
   628	000543	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 4
   629	000544	0 114546 4 6 0546 		JMPZ	.+2			;SKIP IF THEY MATCH
   630	000545	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   631
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 18
MCODE0	MAC	17-Oct-88 14:28	

   632					;ADD 4 + 4
   633
   634	000546	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   635	000547	0 112551 4 5 0551 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   636	000550	0 100552 4 0 0552 		JMP	.+2			;IT SHOULD NOT BE SET
   637	000551	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   638
   639					;SHIFT A 4 LEFT
   640
   641	000552	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   642	000553	0 112555 4 5 0555 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   643	000554	0 100556 4 0 0556 		JMP	.+2			;IT SHOULD NOT BE SET
   644	000555	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   645
   646					;COMPARE RESULTS FOR A 10
   647
   648	000556	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 10
   649	000557	0 114561 4 6 0561 		JMPZ	.+2			;SKIP IF THEY MATCH
   650	000560	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   651
   652					;ADD 10 + 10
   653
   654	000561	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   655	000562	0 112564 4 5 0564 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   656	000563	0 100565 4 0 0565 		JMP	.+2			;IT SHOULD NOT BE SET
   657	000564	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   658
   659					;SHIFT A 10 LEFT
   660
   661	000565	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   662	000566	0 112570 4 5 0570 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   663	000567	0 100571 4 0 0571 		JMP	.+2			;IT SHOULD NOT BE SET
   664	000570	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   665
   666					;COMPARE RESULTS FOR A 20
   667
   668	000571	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 20
   669	000572	0 114574 4 6 0574 		JMPZ	.+2			;SKIP IF THEY MATCH
   670	000573	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   671
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 19
MCODE0	MAC	17-Oct-88 14:28	

   672					;ADD 20 + 20
   673
   674	000574	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   675	000575	0 112577 4 5 0577 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   676	000576	0 100600 4 0 0600 		JMP	.+2			;IT SHOULD NOT BE SET
   677	000577	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   678
   679					;SHIFT A 20 LEFT
   680
   681	000600	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   682	000601	0 112603 4 5 0603 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   683	000602	0 100604 4 0 0604 		JMP	.+2			;IT SHOULD NOT BE SET
   684	000603	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   685
   686					;COMPARE RESULTS FOR A 40
   687
   688	000604	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 40
   689	000605	0 114607 4 6 0607 		JMPZ	.+2			;SKIP IF THEY MATCH
   690	000606	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   691
   692					;ADD 40 + 40
   693
   694	000607	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   695	000610	0 112612 4 5 0612 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   696	000611	0 100613 4 0 0613 		JMP	.+2			;IT SHOULD NOT BE SET
   697	000612	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   698
   699					;SHIFT A 40 LEFT
   700
   701	000613	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   702	000614	0 112616 4 5 0616 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   703	000615	0 100617 4 0 0617 		JMP	.+2			;IT SHOULD NOT BE SET
   704	000616	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   705
   706					;COMPARE RESULTS FOR A 100
   707
   708	000617	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 100
   709	000620	0 114622 4 6 0622 		JMPZ	.+2			;SKIP IF THEY MATCH
   710	000621	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   711
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 20
MCODE0	MAC	17-Oct-88 14:28	

   712					;ADD 100 + 100
   713
   714	000622	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   715	000623	0 112625 4 5 0625 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   716	000624	0 100626 4 0 0626 		JMP	.+2			;IT SHOULD NOT BE SET
   717	000625	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   718
   719					;SHIFT A 100 LEFT
   720
   721	000626	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   722	000627	0 112631 4 5 0631 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   723	000630	0 100632 4 0 0632 		JMP	.+2			;IT SHOULD NOT BE SET
   724	000631	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   725
   726					;COMPARE RESULTS FOR A 200
   727
   728	000632	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 200
   729	000633	0 114635 4 6 0635 		JMPZ	.+2			;SKIP IF THEY MATCH
   730	000634	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   731
   732					;ADD 200 + 200
   733
   734	000635	0 062120 3 1 0 05 00 		ADB	AC5,BR			;ADD AC5 AND BR, PUT IN BR
   735	000636	0 112640 4 5 0640 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   736	000637	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   737
   738					;SHIFT A 200 LEFT
   739
   740	000640	0 072125 3 5 0 05 05 		SHLR	AC5			;SHIFT AC5 LEFT ONE PLACE
   741	000641	0 112643 4 5 0643 		JMPC	.+2			;CHECK IF THE CARRY BIT SET
   742	000642	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   743
   744					;COMPARE RESULTS FOR A 0
   745
   746	000643	0 060137 3 0 0 05 17 		OSB	AC5			;NOW AC5 AND BR SHOULD CONTAIN A 0
   747	000644	0 114646 4 6 0646 		JMPZ	.+2			;SKIP IF THEY MATCH
   748	000645	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   749
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 21
MCODE0	MAC	17-Oct-88 14:28	

   750					;*CHECK ADBC INSTRUCTION
   751
   752	000646	0 002377 0 1 0 377 		LDBR	-1			;LOAD BR WITH A -1
   753	000647	0 072051 3 5 0 02 11 		MOVB	AC2			;MOVE TO AC2
   754	000650	0 072043 3 5 0 02 03 		INCR	AC2			;INCREMENT AC2 TO 0 TO SET CARRY
   755	000651	0 002333 0 1 0 333 		LDBR	333			;LOAD BR WITH A 333
   756	000652	0 072041 3 5 0 02 01 		ADBCR	AC2			;ADD BR AND CARRY TO AC2
   757	000653	0 002334 0 1 0 334 		LDBR	334			;SET UP BR WITH EXPECTED VALUE OF 334
   758	000654	0 060057 3 0 0 02 17 		OSB	AC2			;COMPARE AC2 AND BR
   759	000655	0 114657 4 6 0657 		JMPZ	.+2			;SKIP IF A MATCH
   760	000656	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   761
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 22
MCODE0	MAC	17-Oct-88 14:28	

   762					;*CHECK TWOS COMPLIMENT SUBTRACT FUNCTION
   763
   764					;SUBTRACT 12 FROM 207, CHECK FOR RESULT OF 175
   765
   766	000657	0 002207 0 1 0 207 		LDBR	207			;GET A 207
   767	000660	0 072011 3 5 0 00 11 		MOVB	AC0			;PUT IN AC0
   768	000661	0 002012 0 1 0 012 		LDBR	12			;GET A 12
   769	000662	0 070016 3 4 0 00 16 		TSB	AC0,MEM			;SUBTRACT BR FROM AC0, PUT RESULT IN MEM
   770	000663	0 052031 2 5 0 01 11 		MOVMEM	AC1			;MOVE RESULT TO AC1
   771	000664	0 010175 0 4 0 175 		LDMEM	175			;SET UP EXPECTED RESULT IN MEM
   772	000665	0 112667 4 5 0667 		JMPC	.+2			;SKIP IF CARRY BIT SET IN SUBTRACT
   773	000666	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   774	000667	0 040037 2 0 0 01 17 		OSM	AC1			;COMPARE RESULT IN AC1 WITH MEM
   775	000670	0 114672 4 6 0672 		JMPZ	.+2			;SKIP IF A MATCH
   776	000671	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   777
   778					;SUBTRACT 24 FROM 207, CHECK FOR RESULT OF 163
   779
   780	000672	0 002024 0 1 0 024 		LDBR	24			;GET A 24
   781	000673	0 070016 3 4 0 00 16 		TSB	AC0,MEM			;SUBTRACT BR FROM AC0, PUT RESULT IN MEM
   782	000674	0 052031 2 5 0 01 11 		MOVMEM	AC1			;MOVE RESULT TO AC1
   783	000675	0 010163 0 4 0 163 		LDMEM	163			;SET UP EXPECTED RESULT IN MEM
   784	000676	0 112700 4 5 0700 		JMPC	.+2			;SKIP IF CARRY BIT SET IN SUBTRACT
   785	000677	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   786	000700	0 040037 2 0 0 01 17 		OSM	AC1			;COMPARE RESULT IN AC1 WITH MEM
   787	000701	0 114703 4 6 0703 		JMPZ	.+2			;SKIP IF A MATCH
   788	000702	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   789
   790					;SUBTRACT 50 FROM 207, CHECK FOR RESULT OF 137
   791
   792	000703	0 002050 0 1 0 050 		LDBR	50			;GET A 50
   793	000704	0 070016 3 4 0 00 16 		TSB	AC0,MEM			;SUBTRACT BR FROM AC0, PUT RESULT IN MEM
   794	000705	0 052031 2 5 0 01 11 		MOVMEM	AC1			;MOVE RESULT TO AC1
   795	000706	0 010137 0 4 0 137 		LDMEM	137			;SET UP EXPECTED RESULT IN MEM
   796	000707	0 112711 4 5 0711 		JMPC	.+2			;SKIP IF CARRY BIT SET IN SUBTRACT
   797	000710	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   798	000711	0 040037 2 0 0 01 17 		OSM	AC1			;COMPARE RESULT IN AC1 WITH MEM
   799	000712	0 114714 4 6 0714 		JMPZ	.+2			;SKIP IF A MATCH
   800	000713	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   801
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 23
MCODE0	MAC	17-Oct-88 14:28	

   802					;SUBTRACT 120 FROM 207, CHECK FOR RESULT OF 67
   803
   804	000714	0 002120 0 1 0 120 		LDBR	120			;GET A 120
   805	000715	0 070016 3 4 0 00 16 		TSB	AC0,MEM			;SUBTRACT BR FROM AC0, PUT RESULT IN MEM
   806	000716	0 052031 2 5 0 01 11 		MOVMEM	AC1			;MOVE RESULT TO MEM
   807	000717	0 010067 0 4 0 067 		LDMEM	67			;SET UP EXPECTED RESULT IN MEM
   808	000720	0 112722 4 5 0722 		JMPC	.+2			;SKIP IF A CARRY BIT SET IN SUBTRACT
   809	000721	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   810	000722	0 040037 2 0 0 01 17 		OSM	AC1			;COMPARE RESULT IN AC1 WITH MEM
   811	000723	0 114725 4 6 0725 		JMPZ	.+2			;SKIP IF A MATCH
   812	000724	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   813
   814					;SUBTRACT 240 FROM 207, CHECK FOR RESULT OF -31
   815
   816	000725	0 002240 0 1 0 240 		LDBR	240			;GET A 240
   817	000726	0 070016 3 4 0 00 16 		TSB	AC0,MEM			;SUBTRACT BR FROM AC0, PUT RESULT IN MEM
   818	000727	0 052031 2 5 0 01 11 		MOVMEM	AC1			;MOVE RESULT TO AC1
   819	000730	0 010347 0 4 0 347 		LDMEM	-31			;SET UP EXPECTED RESULT IN MEM
   820	000731	0 112733 4 5 0733 		JMPC	.+2			;SKIP IF A CARRY BIT SET IN SUBTRACT
   821	000732	0 100734 4 0 0734 		JMP	.+2			;CARRY SHOULD NOT HAVE SET
   822	000733	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   823	000734	0 040037 2 0 0 01 17 		OSM	AC1			;COMPARE RESULT IN AC1 WITH MEM
   824	000735	0 114737 4 6 0737 		JMPZ	.+2			;SKIP IF A MATCH
   825	000736	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   826
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 24
MCODE0	MAC	17-Oct-88 14:28	

   827					;*TEST SHR INSTRUCTION
   828
   829					;SHIFT A 252 RIGHT, CHECK FOR RESULT OF 125
   830
   831	000737	0 002252 0 1 0 252 		LDBR	252			;LOAD BR WITH A 252
   832	000740	0 014000 0 6 0 000 		SHR				;SHIFT BR RIGHT ONE PLACE
   833	000741	0 010125 0 4 0 125 		LDMEM	125			;LOAD MEM WITH EXPECTED RESULT
   834	000742	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   835	000743	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   836	000744	0 114746 4 6 0746 		JMPZ	.+2			;SKIP IF A MATCH
   837	000745	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   838
   839					;SHIFT A 125 RIGHT, CHECK FOR RESULT OF 52
   840
   841	000746	0 014000 0 6 0 000 		SHR				;SHIFT BR RIGHT ONE PLACE
   842	000747	0 010052 0 4 0 052 		LDMEM	52			;LOAD MEM WITH EXPECTED RESULT
   843	000750	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   844	000751	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   845	000752	0 114754 4 6 0754 		JMPZ	.+2			;SKIP IF A MATCH
   846	000753	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   847
   848					;SHIFT A 52 RIGHT, CHECK FOR RESULT OF 25
   849
   850	000754	0 014000 0 6 0 000 		SHR				;SHIFT BR RIGHT ONE PLACE
   851	000755	0 010025 0 4 0 025 		LDMEM	25			;LOAD MEM WITH EXPECTED RESULT
   852	000756	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   853	000757	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   854	000760	0 114762 4 6 0762 		JMPZ	.+2			;SKIP IF A MATCH
   855	000761	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   856
   857					;SHIFT A 25 RIGHT, CHECK FOR RESUTLT OF 12
   858
   859	000762	0 014000 0 6 0 000 		SHR				;SHIFT BR RIGHT ONE PLACE
   860	000763	0 010012 0 4 0 012 		LDMEM	12			;LOAD MEM WITH EXPECTED RESULT
   861	000764	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   862	000765	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   863	000766	0 114770 4 6 0770 		JMPZ	.+2			;SKIP IF A MATCH
   864	000767	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   865
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 25
MCODE0	MAC	17-Oct-88 14:28	

   866					;SHIFT A 12 RIGHT AND SET BR 7, CHECK FOR RESULT OF 205
   867
   868	000770	0 014001 0 6 0 001 		SHR	1			;SHIFT BR RIGHT ONE PLACE AND SET BIT 7
   869	000771	0 010205 0 4 0 205 		LDMEM	205			;LOAD MEM WITH EXPECTED RESULT
   870	000772	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   871	000773	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   872	000774	0 114776 4 6 0776 		JMPZ	.+2			;SKIP IF A MATCH
   873	000775	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   874
   875					;SHIFT A 205 RIGHT AND SET BR 7, CHECK FOR A RESULT OF 302
   876
   877	000776	0 014001 0 6 0 001 		SHR	1			;SHIFT BR RIGHT ONE PLACE AND SET BIT 7
   878	000777	0 010302 0 4 0 302 		LDMEM	302			;LOAD MEM WITH EXPECTED RESULT
   879	001000	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   880	001001	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   881	001002	0 115004 4 6 1004 		JMPZ	.+2			;SKIP IF A MATCH
   882	001003	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   883
   884					;SHIFT A 302 RIGHT AND SET BR 7, CHECK FOR RESULT OF 341
   885
   886	001004	0 014001 0 6 0 001 		SHR	1			;SHIFT BR RIGHT ONE PLACE AND SET BIT 7
   887	001005	0 010341 0 4 0 341 		LDMEM	341			;LOAD MEM WITH EXPECTED RESULT
   888	001006	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   889	001007	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   890	001010	0 115012 4 6 1012 		JMPZ	.+2			;SKIP IF A MATCH
   891	001011	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   892
   893					;SHIFT A 341 RIGHT AND SET BR 7, CHECK FOR RESULT OF 360
   894
   895	001012	0 014001 0 6 0 001 		SHR	1			;SHIFT BR RIGHT ONE PLACE AND SET BIT 7
   896	001013	0 010360 0 4 0 360 		LDMEM	360			;LOAD MEM WITH EXPECTED RESULT
   897	001014	0 052151 2 5 0 06 11 		MOVMEM	AC6			;MOVE TO AC6
   898	001015	0 060157 3 0 0 06 17 		OSB	AC6			;COMPARE RESULT IN BR WITH AC6
   899	001016	0 115020 4 6 1020 		JMPZ	.+2			;SKIP IF A MATCH
   900	001017	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   901
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 26
MCODE0	MAC	17-Oct-88 14:28	

   902					;*TEST LOGICAL ALU FUNCTIONS
   903
   904					;AND 0 WITH 0, CHECK FOR RESULT OF 0
   905
   906	001020	0 002000 0 1 0 000 		LDBR	0			;LOAD ZEROS INTO BR
   907	001021	0 072111 3 5 0 04 11 		MOVB	AC4			;AND INTO AC4
   908	001022	0 070113 3 4 0 04 13 		LANDB	AC4,MEM			;AND BR WITH AC4, PUT RESULT IN MEM
   909	001023	0 040117 2 0 0 04 17 		OSM	AC4			;COMPARE RESULT FOR ZEROS
   910	001024	0 115026 4 6 1026 		JMPZ	.+2			;SKIP IF A MATCH
   911	001025	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   912
   913					;OR 0 WITH 0, CHECK FOR RESULT OF 0
   914
   915	001026	0 070114 3 4 0 04 14 		LORB	AC4,MEM			;OR AC4 WITH BR, PUT RESULT IN MEM
   916	001027	0 040117 2 0 0 04 17 		OSM	AC4			;COMPARE RESULT FOR ZEROS
   917	001030	0 115032 4 6 1032 		JMPZ	.+2			;SKIP IF A HALT
   918	001031	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   919
   920					;XOR 0 WITH 0, CHECK FOR RESULT OF 0
   921
   922	001032	0 070115 3 4 0 04 15 		LXORB	AC4,MEM			;XOR AC4 WITH BR, PUT RESULT IN MEM
   923	001033	0 040117 2 0 0 04 17 		OSM	AC4			;COMPARE RESULT FOR ZEROS
   924	001034	0 115036 4 6 1036 		JMPZ	.+2			;SKIP IF A MATCH
   925	001035	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   926
   927					;OR 0 WITH NOT 0, CHECK FOR RESULT OF -1
   928
   929	001036	0 070112 3 4 0 04 12 		LORCB	AC4,MEM			;OR AC4 WITH COMP OF BR, PUT IN MEM
   930	001037	0 115041 4 6 1041 		JMPZ	.+2			;SKIP IF RESULT WAS -1
   931	001040	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   932

MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 27
MCODE0	MAC	17-Oct-88 14:28	

   933					;AND 0 WITH -1, CHECK FOR RESULT OF 0
   934
   935	001041	0 002000 0 1 0 000 		LDBR	0			;LOAD ZEROS INTO BR
   936	001042	0 072131 3 5 0 05 11 		MOVB	AC5			;MOVE TO AC5
   937	001043	0 002377 0 1 0 377 		LDBR	-1			;LOAD ONES INTO BR
   938	001044	0 070133 3 4 0 05 13 		LANDB	AC5,MEM			;AND AC5 WITH BR, PUT RESULT IN MEM
   939	001045	0 040137 2 0 0 05 17 		OSM	AC5			;COMPARE RESULT FOR ZEROS
   940	001046	0 115050 4 6 1050 		JMPZ	.+2			;SKIP IF A MATCH
   941	001047	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   942
   943					;OR 0 WITH -1, CHECK FOR RESULT OF -1
   944
   945	001050	0 070134 3 4 0 05 14 		LORB	AC5,MEM			;OR AC5 WITH BR, PUT RESULT IN MEM
   946	001051	0 115053 4 6 1053 		JMPZ	.+2			;SKIP IF RESULT WAS -1
   947	001052	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   948
   949					;OR 0 WITH NOT -1, CHECK FOR RESULT OF 0
   950
   951	001053	0 070132 3 4 0 05 12 		LORCB	AC5,MEM			;OR AC5 WITH COMP OF BR, PUT IN MEM
   952	001054	0 040137 2 0 0 05 17 		OSM	AC5			;COMPARE RESULT WITH ZEROS
   953	001055	0 115057 4 6 1057 		JMPZ	.+2			;SKIP IF A MATCH
   954	001056	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   955
   956					;XOR 0 WITH -1, CHECK FOR RESULT OF -1
   957
   958	001057	0 070135 3 4 0 05 15 		LXORB	AC5,MEM			;XOR AC5 WITH BR, PUT RESULT IN MEM
   959	001060	0 115062 4 6 1062 		JMPZ	.+2			;SKIP IF RESULT WAS -1
   960	001061	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   961
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 28
MCODE0	MAC	17-Oct-88 14:28	

   962					;AND -1 WITH 0, CHECK FOR RESULT OF 0
   963
   964	001062	0 002377 0 1 0 377 		LDBR	-1			;LOAD ONES INTO BR
   965	001063	0 072151 3 5 0 06 11 		MOVB	AC6			;MOVE TO AC6
   966	001064	0 002000 0 1 0 000 		LDBR	0			;LOAD ZEROS INTO BR
   967	001065	0 072011 3 5 0 00 11 		MOVB	AC0			;ALSO PUT IN AC0
   968	001066	0 070153 3 4 0 06 13 		LANDB	AC6,MEM			;AND AC6 WITH BR, PUT RESULT IN MEM
   969	001067	0 040017 2 0 0 00 17 		OSM	AC0			;COMPARE RESULT FOR ZEROS
   970	001070	0 115072 4 6 1072 		JMPZ	.+2			;SKIP IF A MATCH
   971	001071	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   972
   973					;OR -1 WITH 0, CHECK FOR RESULT OF -1
   974
   975	001072	0 070154 3 4 0 06 14 		LORB	AC6,MEM			;OR AC6 WITH BR, PUT RESULT IN MEM
   976	001073	0 115075 4 6 1075 		JMPZ	.+2			;SKIP IF RESULT WAS -1
   977	001074	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   978
   979					;OR -1 WITH NOT 0, CHECK FOR RESULT OF -1
   980
   981	001075	0 070152 3 4 0 06 12 		LORCB	AC6,MEM			;OR AC6 WITH COMP OF BR, PUT IN MEM
   982	001076	0 115100 4 6 1100 		JMPZ	.+2			;SKIP IF RESULT WAS -1
   983	001077	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   984
   985					;XOR -1 WITH 0, CHECK FOR RESULT OF -1
   986
   987	001100	0 070155 3 4 0 06 15 		LXORB	AC6,MEM			;XOR AC6 WITH BR, PUT RESULT IN MEM
   988	001101	0 115103 4 6 1103 		JMPZ	.+2			;SKIP IF RESULT WAS -1
   989	001102	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
   990
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 29
MCODE0	MAC	17-Oct-88 14:28	

   991					;AND -1 WITH -1, CHECK FOR RESULT OF -1
   992
   993	001103	0 002000 0 1 0 000 		LDBR	0			;LOAD ZEROS INTO BR
   994	001104	0 072011 3 5 0 00 11 		MOVB	AC0			;PUT INTO AC0
   995	001105	0 002377 0 1 0 377 		LDBR	-1			;LOAD ONES INTO BR
   996	001106	0 072031 3 5 0 01 11 		MOVB	AC1			;PUT IN AC1
   997	001107	0 070033 3 4 0 01 13 		LANDB	AC1,MEM			;AND AC1 WITH BR, PUT RESULT IN MEM
   998	001110	0 115112 4 6 1112 		JMPZ	.+2			;SKIP IF RESULT WAS -1
   999	001111	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1000
  1001					;OR -1 WITH -1, CHECK FOR RESULT OF -1
  1002
  1003	001112	0 070034 3 4 0 01 14 		LORB	AC1,MEM			;OR AC1 WITH BR, PUT RESULT IN MEM
  1004	001113	0 115115 4 6 1115 		JMPZ	.+2			;SKIP IF RESULT WAS -1
  1005	001114	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1006
  1007					;OR -1 WITH NOT -1, CHECK FOR RESULT OF -1
  1008
  1009	001115	0 070032 3 4 0 01 12 		LORCB	AC1,MEM			;OR AC1 WITH COMP OF BR, PUT IN MEM
  1010	001116	0 115120 4 6 1120 		JMPZ	.+2			;SKIP IF RESULT WAS -1
  1011	001117	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1012
  1013					;XOR -1 WITH -1, CHECK FOR RESULT OF 0
  1014
  1015	001120	0 070035 3 4 0 01 15 		LXORB	AC1,MEM			;XOR AC1 WITH BR, PUT RESULT IN MEM
  1016	001121	0 040017 2 0 0 00 17 		OSM	AC0			;COMPARE RESULT FOR ZEROS
  1017	001122	0 115124 4 6 1124 		JMPZ	.+2			;SKIP IF A MATCH
  1018	001123	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1019
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 30
MCODE0	MAC	17-Oct-88 14:28	

  1020					;AND 256 WITH 105, CHECK FOR RESULT OF 4
  1021
  1022	001124	0 002256 0 1 0 256 		LDBR	256			;LOAD BR WITH A 256
  1023	001125	0 072051 3 5 0 02 11 		MOVB	AC2			;MOVE TO AC2
  1024	001126	0 002105 0 1 0 105 		LDBR	105			;LOAD BR WITH A 105
  1025	001127	0 070053 3 4 0 02 13 		LANDB	AC2,MEM			;AND AC2 WITH BR, PUT RESULT IN MEM
  1026	001130	0 052071 2 5 0 03 11 		MOVMEM	AC3			;MOVE RESULT TO AC3
  1027	001131	0 010004 0 4 0 004 		LDMEM	4			;SET UP EXPECTED RESULT IN MEM
  1028	001132	0 040077 2 0 0 03 17 		OSM	AC3			;COMPARE RESULT
  1029	001133	0 115135 4 6 1135 		JMPZ	.+2			;SKIP IF A MATCH
  1030	001134	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1031
  1032					;OR 256 WITH 105, CHECK FOR RESULT OF 357
  1033
  1034	001135	0 070054 3 4 0 02 14 		LORB	AC2,MEM			;OR AC2 WITH BR, PUT RESULT IN MEM
  1035	001136	0 052071 2 5 0 03 11 		MOVMEM	AC3			;MOVE RESULT TO AC3
  1036	001137	0 010357 0 4 0 357 		LDMEM	357			;SET UP EXPECTED RESULT IN MEM
  1037	001140	0 040077 2 0 0 03 17 		OSM	AC3			;COMPARE RESULT
  1038	001141	0 115143 4 6 1143 		JMPZ	.+2			;SKIP IF A MATCH
  1039	001142	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1040
  1041					;OR 256 WITH NOT 105, CHECK FOR RESULT OF 276
  1042
  1043	001143	0 070052 3 4 0 02 12 		LORCB	AC2,MEM			;OR AC2 WITH COMP OF BR, PUT IN MEM
  1044	001144	0 052071 2 5 0 03 11 		MOVMEM	AC3			;MOVE RESULT TO AC3
  1045	001145	0 010276 0 4 0 276 		LDMEM	276			;SET UP EXPECTED RESULT IN MEM
  1046	001146	0 040077 2 0 0 03 17 		OSM	AC3			;COMPARE RESULT
  1047	001147	0 115151 4 6 1151 		JMPZ	.+2			;SKIP IF A MATCH
  1048	001150	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1049
  1050					;XOR 256 WITH 105, CHECK FOR RESULT OF 353
  1051
  1052	001151	0 070055 3 4 0 02 15 		LXORB	AC2,MEM			;XOR AC2 WITH BR, PUT RESULT IN MEM
  1053	001152	0 052071 2 5 0 03 11 		MOVMEM	AC3			;MOVE RESULT TO AC3
  1054	001153	0 010353 0 4 0 353 		LDMEM	353			;SET UP EXPECTED RESULT IN MEM
  1055	001154	0 040077 2 0 0 03 17 		OSM	AC3			;COMPARE RESULT
  1056	001155	0 115157 4 6 1157 		JMPZ	.+2			;SKIP IF A MATCH
  1057	001156	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1058
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 31
MCODE0	MAC	17-Oct-88 14:28	

  1059					;*CHECK JUMP TO SUBROUTINE AND RETURN INSTRUCTIONS
  1060
  1061	001157	0 002000 0 1 0 000 		LDBR	0			;LOAD BR WITH A ZERO
  1062	001160	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
  1063	001161	0 117167 4 7 1167 		JMPSUB	COMPAC			;GO TO SUBROUTINE WHICH SHOULD VERITY THAT AC0
  1064										;CONTAINS A ZERO, THEN CHANGES IT
  1065										;TO -1 BEFORE RETURNING
  1066	001162	0 002377 0 1 0 377 	SUBT1R:	LDBR	-1			;SUBROUTINE SHOULD RETURN HERE
  1067	001163	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE AC0 WITH A -1 IN BR
  1068	001164	0 115166 4 6 1166 		JMPZ	.+2			;SKIP IF AC0 IS NOW A -1
  1069	001165	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1070	001166	0 101177 4 0 1177 		JMP	SUBT2			;GO AROUND THE SUBROUTINE
  1071
  1072	001167	0 002000 0 1 0 000 	COMPAC:	LDBR	0			;LOAD A ZERO INTO BR
  1073	001170	0 060017 3 0 0 00 17 		OSB	AC0			;COMPARE WITH AC0
  1074	001171	0 115173 4 6 1173 		JMPZ	.+2			;SKIP IF AC0 WAS ZERO
  1075	001172	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1076	001173	0 002377 0 1 0 377 		LDBR	-1			;GET A -1
  1077	001174	0 072011 3 5 0 00 11 		MOVB	AC0			;PUT IT INTO AC0
  1078	001175	0 016000 0 7 0 000 		RETURN				;RETURN TO SUBT1R
  1079	001176	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1080
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 32
MCODE0	MAC	17-Oct-88 14:28	

  1081	001177	0 002017 0 1 0 017 	SUBT2:	LDBR	17			;LOAD BR WITH A 17
  1082	001200	0 072051 3 5 0 02 11 		MOVB	AC2			;MOVE TO AC2
  1083	001201	0 117207 4 7 1207 		JMPSUB	COMPA2			;GO TO  SUBTN WHICH SHOULD VERITY THAT AC2
  1084										;CONTAINS A 17, THEN CHANGES IT
  1085										;TO 360 BEFORE RETURNING
  1086	001202	0 002360 0 1 0 360 	SUBT2R:	LDBR	360			;SUBROUTINE SHOULD RETURN HERE
  1087	001203	0 060057 3 0 0 02 17 		OSB	AC2			;COMPARE AC2 WITH A 360 IN BR
  1088	001204	0 115206 4 6 1206 		JMPZ	.+2			;SKIP IF AC2 IS NOW A 360
  1089	001205	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1090	001206	0 101217 4 0 1217 		JMP	SUBT3			;GO AROUND THE SUBROUTINE
  1091
  1092	001207	0 002017 0 1 0 017 	COMPA2:	LDBR	17			;LOAD A 17 INTO BR
  1093	001210	0 060057 3 0 0 02 17 		OSB	AC2			;COMPARE WITH AC2
  1094	001211	0 115213 4 6 1213 		JMPZ	.+2			;SKIP IF AC2 WAS 17
  1095	001212	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1096	001213	0 002360 0 1 0 360 		LDBR	360			;GET A 360
  1097	001214	0 072051 3 5 0 02 11 		MOVB	AC2			;PUT IT INTO AC2
  1098	001215	0 016000 0 7 0 000 		RETURN				;RETURN TO SUBT2R
  1099	001216	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1100
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 33
MCODE0	MAC	17-Oct-88 14:28	

  1101					;*CHECK THAT 15 SUBROUTINES CAN BE NESTED
  1102
  1103					;FLOW IS AS FOLLOWS:
  1104					; MAIN: LOAD 0 INTO AC4, GO TO SUB1
  1105					;   SUB1: CHECK AC4 FOR 0, LOAD 1, GO TO SUB2
  1106					;     SUB2: CHECK AC4 FOR 1, LOAD 2, GO TO SUB3
  1107					;       SUB3: CHECK AC4 FOR 2, LOAD 3, GO TO SUB4
  1108					;         SUB4: CHECK AC4 FOR 3, LOAD 4, GO TO SUB5
  1109					;	    SUB5: CHECK AC4 FOR 4, LOAD 5, GO TO SUB6
  1110					;	      SUB6: CHECK AC4 FOR 5, LOAD 6, GO TO SUB7
  1111					;		SUB7: CHECK AC4 FOR 6, LOAD 7, GO TO SUB10
  1112					;		  SUB10: CHECK AC4 FOR 7, LOAD 10, GO TO SUB11
  1113					;		    SUB11: CHECK AC4 FOR 10, LOAD 11, GO TO SUB12
  1114					;		      SUB12: CHECK AC4 FOR 11, LOAD 12, GO TO SUB13
  1115					;			SUB13: CHECK AC4 FOR 12, LOAD 13, GO TO SUB14
  1116					;			  SUB14: CHECK AC4 FOR 13, LOAD 14, GO TO SUB15
  1117					;			    SUB15: CHECK AC4 FOR 14, LOAD 15, GO TO SUB16
  1118					;			      SUB16: CHECK AC4 FOR 15, LOAD 16, GO TO SUB17
  1119					;				SUB17: CHECK AC4 FOR 16, LOAD 117, RETURN
  1120					;			      SUB16: CHECK AC4 FOR 117, LOAD 116, RETURN
  1121					;			    SUB15: CHECK AC4 FOR 116, LOAD 115, RETURN
  1122					;			  SUB14: CHECK AC4 FOR 115, LOAD 114, RETURN
  1123					;			SUB13: CHECK AC4 FOR 114, LOAD 113, RETURN
  1124					;		      SUB12: CHECK AC4 FOR 113, LOAD 112, RETURN
  1125					;		    SUB11: CHECK AC4 FOR 112, LOAD 111, RETURN
  1126					;		  SUB10: CHECK AC4 FOR 111, LOAD 110, RETURN
  1127					;		SUB7: CHECK AC4 FOR 110, LOAD 107, RETURN
  1128					;	      SUB6: CHECK AC4 FOR 107, LOAD 106, RETURN
  1129					;	    SUB5: CHECK AC4 FOR 106, LOAD 105, RETURN
  1130					;	  SUB4: CHECK AC4 FOR 105, LOAD 104, RETURN
  1131					;	SUB3: CHECK AC4 FOR 104, LOAD 103, RETURN
  1132					;     SUB2: CHECK AC4 FOR 103, LOAD 102, RETURN
  1133					;   SUB1: CHECK AC4 FOR 102, LOAD 101, RETURN
  1134					; MAIN: CHECK AC4 FOR 101
  1135					;END OF TEST
  1136
  1137	001217	0 002000 0 1 0 000 	SUBT3:	LDBR	0			;LOAD BR WITH 0
  1138	001220	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1139	001221	0 117227 4 7 1227 		JMPSUB	SUB1			;GO TO SUBROUTINE 1
  1140	001222	0 002101 0 1 0 101 	SUB0R:	LDBR	101			;ON RETURN, AC4 SHOULD CONTAIN 101
  1141	001223	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE IT
  1142	001224	0 115226 4 6 1226 		JMPZ	.+2			;SKIP IF MATCH
  1143	001225	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1144	001226	0 101561 4 0 1561 		JMP	IOTST			;GO ON TO THE I/O TESTING
  1145
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 34
MCODE0	MAC	17-Oct-88 14:28	

  1146	001227	0 002000 0 1 0 000 	SUB1:	LDBR	0			;CHECK THAT AC4 CONTAINS A 0
  1147	001230	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1148	001231	0 115233 4 6 1233 		JMPZ	.+2			;SKIP IF A MATCH
  1149	001232	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1150	001233	0 002001 0 1 0 001 		LDBR	1			;LOAD BR WITH A 1
  1151	001234	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1152	001235	0 117246 4 7 1246 		JMPSUB	SUB2			;GO TO SUBROUTINE 2
  1153	001236	0 002102 0 1 0 102 	SUB1R:	LDBR	102			;ON RETURN, AC4 SHOULD CONTAIN A 102
  1154	001237	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1155	001240	0 115242 4 6 1242 		JMPZ	.+2			;SKIP IF A MATCH
  1156	001241	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1157	001242	0 002101 0 1 0 101 		LDBR	101			;LOAD BR WITH A 101
  1158	001243	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1159	001244	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB0R
  1160	001245	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1161
  1162	001246	0 002001 0 1 0 001 	SUB2:	LDBR	1			;CHECK THAT AC4 CONTAINS A 1
  1163	001247	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1164	001250	0 115252 4 6 1252 		JMPZ	.+2			;SKIP IF A MATCH
  1165	001251	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1166	001252	0 002002 0 1 0 002 		LDBR	2			;LOAD BR WITH A 2
  1167	001253	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1168	001254	0 117265 4 7 1265 		JMPSUB	SUB3			;GO TO SUBROUTINE 3
  1169	001255	0 002103 0 1 0 103 	SUB2R:	LDBR	103			;ON RETURN, AC4 SHOULD CONTAIN A 103
  1170	001256	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1171	001257	0 115261 4 6 1261 		JMPZ	.+2			;SKIP IF A MATCH
  1172	001260	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1173	001261	0 002102 0 1 0 102 		LDBR	102			;LOAD BR WITH A 102
  1174	001262	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1175	001263	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB1R
  1176	001264	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1177
  1178	001265	0 002002 0 1 0 002 	SUB3:	LDBR	2			;CHECK THAT AC4 CONTAINS A 2
  1179	001266	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1180	001267	0 115271 4 6 1271 		JMPZ	.+2			;SKIP IF A MATCH
  1181	001270	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1182	001271	0 002003 0 1 0 003 		LDBR	3			;LOAD BR WITH A 3
  1183	001272	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1184	001273	0 117304 4 7 1304 		JMPSUB	SUB4			;GO TO SUBROUTINE 4
  1185	001274	0 002104 0 1 0 104 	SUB3R:	LDBR	104			;ON RETURN, AC4 SHOULD CONTAIN A 104
  1186	001275	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1187	001276	0 115300 4 6 1300 		JMPZ	.+2			;SKIP IF A MATCH
  1188	001277	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1189	001300	0 002103 0 1 0 103 		LDBR	103			;LOAD BR WITH A 103
  1190	001301	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1191	001302	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB2R
  1192	001303	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1193
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 35
MCODE0	MAC	17-Oct-88 14:28	

  1194	001304	0 002003 0 1 0 003 	SUB4:	LDBR	3			;CHECK THAT AC4 CONTAINS A 3
  1195	001305	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1196	001306	0 115310 4 6 1310 		JMPZ	.+2			;SKIP IF A MATCH
  1197	001307	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1198	001310	0 002004 0 1 0 004 		LDBR	4			;LOAD BR WITH A 4
  1199	001311	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1200	001312	0 117323 4 7 1323 		JMPSUB	SUB5			;GO TO SUBROUTINE 5
  1201	001313	0 002105 0 1 0 105 	SUB4R:	LDBR	105			;ON RETURN, AC4 SHOULD CONTAIN A 105
  1202	001314	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1203	001315	0 115317 4 6 1317 		JMPZ	.+2			;SKIP IF A MATCH
  1204	001316	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1205	001317	0 002104 0 1 0 104 		LDBR	104			;LOAD BR WITH A 104
  1206	001320	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1207	001321	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB3R
  1208	001322	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1209
  1210	001323	0 002004 0 1 0 004 	SUB5:	LDBR	4			;CHECK THAT AC4 CONTAINS A 4
  1211	001324	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1212	001325	0 115327 4 6 1327 		JMPZ	.+2			;SKIP IF A MATCH
  1213	001326	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1214	001327	0 002005 0 1 0 005 		LDBR	5			;LOAD BR WITH A 5
  1215	001330	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1216	001331	0 117342 4 7 1342 		JMPSUB	SUB6			;GO TO SUBROUTINE 6
  1217	001332	0 002106 0 1 0 106 	SUB5R:	LDBR	106			;ON RETURN, AC4 SHOULD CONTAIN A 106
  1218	001333	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1219	001334	0 115336 4 6 1336 		JMPZ	.+2			;SKIP IF A MATCH
  1220	001335	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1221	001336	0 002105 0 1 0 105 		LDBR	105			;LOAD BR WITH A 105
  1222	001337	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1223	001340	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB4R
  1224	001341	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1225
  1226	001342	0 002005 0 1 0 005 	SUB6:	LDBR	5			;CHECK THAT AC4 CONTAINS A 5
  1227	001343	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1228	001344	0 115346 4 6 1346 		JMPZ	.+2			;SKIP IF A MATCH
  1229	001345	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1230	001346	0 002006 0 1 0 006 		LDBR	6			;LOAD BR WITH A 6
  1231	001347	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1232	001350	0 117361 4 7 1361 		JMPSUB	SUB7			;GO TO SUBROUTINE 7
  1233	001351	0 002107 0 1 0 107 	SUB6R:	LDBR	107			;ON RETURN, AC4 SHOULD CONTAIN A 107
  1234	001352	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1235	001353	0 115355 4 6 1355 		JMPZ	.+2			;SKIP IF A MATCH
  1236	001354	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1237	001355	0 002106 0 1 0 106 		LDBR	106			;LOAD BR WITH A 106
  1238	001356	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1239	001357	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB5R
  1240	001360	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1241
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 36
MCODE0	MAC	17-Oct-88 14:28	

  1242	001361	0 002006 0 1 0 006 	SUB7:	LDBR	6			;CHECK THAT AC4 CONTAINS A 6
  1243	001362	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1244	001363	0 115365 4 6 1365 		JMPZ	.+2			;SKIP IF A MATCH
  1245	001364	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1246	001365	0 002007 0 1 0 007 		LDBR	7			;LOAD BR WITH A 7
  1247	001366	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1248	001367	0 117400 4 7 1400 		JMPSUB	SUB10			;GO TO SUBROUTINE 10
  1249	001370	0 002110 0 1 0 110 	SUB7R:	LDBR	110			;ON RETURN, AC4 SHOULD CONTAIN A 110
  1250	001371	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1251	001372	0 115374 4 6 1374 		JMPZ	.+2			;SKIP IF A MATCH
  1252	001373	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1253	001374	0 002107 0 1 0 107 		LDBR	107			;LOAD BR WITH A 107
  1254	001375	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1255	001376	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB6R
  1256	001377	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1257
  1258	001400	0 002007 0 1 0 007 	SUB10:	LDBR	7			;CHECK THAT AC4 CONTAINS A 7
  1259	001401	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1260	001402	0 115404 4 6 1404 		JMPZ	.+2			;SKIP IF A MATCH
  1261	001403	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1262	001404	0 002010 0 1 0 010 		LDBR	10			;LOAD BR WITH A 10
  1263	001405	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1264	001406	0 117417 4 7 1417 		JMPSUB	SUB11			;GO TO SUBROUTINE 11
  1265	001407	0 002111 0 1 0 111 	SUB10R:	LDBR	111			;ON RETURN, AC4 SHOULD CONTAIN A 111
  1266	001410	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1267	001411	0 115413 4 6 1413 		JMPZ	.+2			;SKIP IF A MATCH
  1268	001412	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1269	001413	0 002110 0 1 0 110 		LDBR	110			;LOAD BR WITH A 110
  1270	001414	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1271	001415	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB7R
  1272	001416	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1273
  1274	001417	0 002010 0 1 0 010 	SUB11:	LDBR	10			;CHECK THAT AC4 CONTAINS A 10
  1275	001420	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1276	001421	0 115423 4 6 1423 		JMPZ	.+2			;SKIP IF A MATCH
  1277	001422	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1278	001423	0 002011 0 1 0 011 		LDBR	11			;LOAD BR WITH A 11
  1279	001424	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1280	001425	0 117436 4 7 1436 		JMPSUB	SUB12			;GO TO SUBROUTINE 12
  1281	001426	0 002112 0 1 0 112 	SUB11R:	LDBR	112			;ON RETURN, AC4 SHOULD CONTAIN A 112
  1282	001427	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1283	001430	0 115432 4 6 1432 		JMPZ	.+2			;SKIP IF A MATCH
  1284	001431	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1285	001432	0 002111 0 1 0 111 		LDBR	111			;LOAD BR WITH A 111
  1286	001433	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1287	001434	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB10R
  1288	001435	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1289
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 37
MCODE0	MAC	17-Oct-88 14:28	

  1290	001436	0 002011 0 1 0 011 	SUB12:	LDBR	11			;CHECK THAT AC4 CONTAINS A 11
  1291	001437	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1292	001440	0 115442 4 6 1442 		JMPZ	.+2			;SKIP IF A MATCH
  1293	001441	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1294	001442	0 002012 0 1 0 012 		LDBR	12			;LOAD BR WITH A 12
  1295	001443	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1296	001444	0 117455 4 7 1455 		JMPSUB	SUB13			;GO TO SUBROUTINE 13
  1297	001445	0 002113 0 1 0 113 	SUB12R:	LDBR	113			;ON RETURN, AC4 SHOULD CONTAIN A 113
  1298	001446	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1299	001447	0 115451 4 6 1451 		JMPZ	.+2			;SKIP IF A MATCH
  1300	001450	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1301	001451	0 002112 0 1 0 112 		LDBR	112			;LOAD BR WITH A 112
  1302	001452	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1303	001453	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB11R
  1304	001454	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1305
  1306	001455	0 002012 0 1 0 012 	SUB13:	LDBR	12			;CHECK THAT AC4 CONTAINS A 12
  1307	001456	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1308	001457	0 115461 4 6 1461 		JMPZ	.+2			;SKIP IF A MATCH
  1309	001460	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1310	001461	0 002013 0 1 0 013 		LDBR	13			;LOAD BR WITH A 13
  1311	001462	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1312	001463	0 117474 4 7 1474 		JMPSUB	SUB14			;GO TO SUBROUTINE 14
  1313	001464	0 002114 0 1 0 114 	SUB13R:	LDBR	114			;ON RETURN, AC4 SHOULD CONTAIN A 114
  1314	001465	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1315	001466	0 115470 4 6 1470 		JMPZ	.+2			;SKIP IF A MATCH
  1316	001467	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1317	001470	0 002113 0 1 0 113 		LDBR	113			;LOAD BR WITH A 113
  1318	001471	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1319	001472	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB12R
  1320	001473	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1321
  1322	001474	0 002013 0 1 0 013 	SUB14:	LDBR	13			;CHECK THAT AC4 CONTAINS A 13
  1323	001475	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1324	001476	0 115500 4 6 1500 		JMPZ	.+2			;SKIP IF A MATCH
  1325	001477	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1326	001500	0 002014 0 1 0 014 		LDBR	14			;LOAD BR WITH A 14
  1327	001501	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1328	001502	0 117513 4 7 1513 		JMPSUB	SUB15			;GO TO SUBROUTINE 15
  1329	001503	0 002115 0 1 0 115 	SUB14R:	LDBR	115			;ON RETURN, AC4 SHOULD CONTAIN A 115
  1330	001504	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1331	001505	0 115507 4 6 1507 		JMPZ	.+2			;SKIP IF A MATCH
  1332	001506	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1333	001507	0 002114 0 1 0 114 		LDBR	114			;LOAD BR WITH A 114
  1334	001510	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1335	001511	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB13R
  1336	001512	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1337
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 38
MCODE0	MAC	17-Oct-88 14:28	

  1338	001513	0 002014 0 1 0 014 	SUB15:	LDBR	14			;CHECK THAT AC4 CONTAINS A 14
  1339	001514	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1340	001515	0 115517 4 6 1517 		JMPZ	.+2			;SKIP IF A MATCH
  1341	001516	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1342	001517	0 002015 0 1 0 015 		LDBR	15			;LOAD BR WITH A 15
  1343	001520	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1344	001521	0 117532 4 7 1532 		JMPSUB	SUB16			;GO TO SUBROUTINE 16
  1345	001522	0 002116 0 1 0 116 	SUB15R:	LDBR	116			;ON RETURN, AC4 SHOULD CONTAIN A 116
  1346	001523	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1347	001524	0 115526 4 6 1526 		JMPZ	.+2			;SKIP IF A MATCH
  1348	001525	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1349	001526	0 002115 0 1 0 115 		LDBR	115			;LOAD BR WITH A 115
  1350	001527	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1351	001530	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB14R
  1352	001531	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1353
  1354	001532	0 002015 0 1 0 015 	SUB16:	LDBR	15			;CHECK THAT AC4 CONTAINS A 15
  1355	001533	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1356	001534	0 115536 4 6 1536 		JMPZ	.+2			;SKIP IF A MATCH
  1357	001535	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1358	001536	0 002016 0 1 0 016 		LDBR	16			;LOAD BR WITH A 16
  1359	001537	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1360	001540	0 117551 4 7 1551 		JMPSUB	SUB17			;GO TO SUBROUTINE 17
  1361	001541	0 002117 0 1 0 117 	SUB16R:	LDBR	117			;ON RETURN, AC4 SHOULD CONTAIN A 117
  1362	001542	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1363	001543	0 115545 4 6 1545 		JMPZ	.+2			;SKIP IF A MATCH
  1364	001544	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1365	001545	0 002116 0 1 0 116 		LDBR	116			;LOAD BR WITH A 116
  1366	001546	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1367	001547	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB15R
  1368	001550	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1369
  1370	001551	0 002016 0 1 0 016 	SUB17:	LDBR	16			;CHECK THAT AC4 CONTAINS A 16
  1371	001552	0 060117 3 0 0 04 17 		OSB	AC4			;COMPARE
  1372	001553	0 115555 4 6 1555 		JMPZ	.+2			;SKIP IF A MATCH
  1373	001554	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1374	001555	0 002117 0 1 0 117 		LDBR	117			;LOAD BR WITH A 117
  1375	001556	0 072111 3 5 0 04 11 		MOVB	AC4			;MOVE TO AC4
  1376	001557	0 016000 0 7 0 000 		RETURN				;RETURN TO SUB16R
  1377	001560	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1378
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 39
MCODE0	MAC	17-Oct-88 14:28	

  1379					;*CHECK THAT STATUS REGISTER CAN BE READ
  1380
  1381					;CLEAR THE Z BIT, CHECK FOR Z BIT TO BE CLEAR IN STATUS REGISTER
  1382
  1383	001561	0 002000 0 1 0 000 	IOTST:	LDBR	0			;CLEAR THE BR
  1384	001562	0 122016 5 1 0 00 16 		DATI	MPSTAT,BR		;READ THE STATUS REGISTER
  1385	001563	0 014000 0 6 0 000 		SHR				;SHIFT THE BR RIGHT
  1386	001564	0 107566 4 3 1566 		JMPB4	.+2			;SKIP IF Z BIT IS SET
  1387	001565	0 101567 4 0 1567 		JMP	.+2			;IT SHOULD NOT BE
  1388	001566	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1389
  1390					;SET THE Z BIT, CHECK FOR Z BIT TO BE SET IN STATUS REGISTER
  1391
  1392	001567	0 002377 0 1 0 377 		LDBR	-1			;LOAD BR WITH A -1 TO SET Z BIT
  1393	001570	0 122016 5 1 0 00 16 		DATI	MPSTAT,BR		;READ THE STATUS REGISTER
  1394	001571	0 014000 0 6 0 000 		SHR				;SHIFT THE BR RIGHT
  1395	001572	0 107574 4 3 1574 		JMPB4	.+2			;SKIP IF Z BIT IS SET
  1396	001573	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1397
  1398					;CLEAR THE CARRY BIT, CHECK FOR CARRY TO BE CLEAR IN STATUS REGISTER
  1399
  1400	001574	0 002000 0 1 0 000 		LDBR	0			;LOAD BR WITH 0
  1401	001575	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
  1402	001576	0 060003 3 0 0 00 03 		INC	AC0			;INCREMENT AC0 TO CLEAR THE C BIT
  1403	001577	0 122016 5 1 0 00 16 		DATI	MPSTAT,BR		;READ THE STATUS REGISTER
  1404	001600	0 107602 4 3 1602 		JMPB4	.+2			;SKIP IF C BIT IS SET
  1405	001601	0 101603 4 0 1603 		JMP	.+2			;IT SHOULD NOT BE
  1406	001602	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1407
  1408					;SET THE CARRY BIT, CHECK FOR CARRY TO BE SET IN STATUS REGISTER
  1409
  1410	001603	0 002377 0 1 0 377 		LDBR	-1			;LOAD BR WITH -1
  1411	001604	0 072011 3 5 0 00 11 		MOVB	AC0			;MOVE TO AC0
  1412	001605	0 060003 3 0 0 00 03 		INC	AC0			;INCREMENT AC0 TO SET C BIT
  1413	001606	0 122016 5 1 0 00 16 		DATI	MPSTAT,BR		;READ THE STATUS REGISTER
  1414	001607	0 107611 4 3 1611 		JMPB4	.+2			;SKIP IF C BIT IS SET
  1415	001610	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1416
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 40
MCODE0	MAC	17-Oct-88 14:28	

  1417					;*CHECK I/O SELECT REGISTER
  1418
  1419					;WRITE 0 INTO I/O SELECT REGISTER, READ AND CHECK FOR 0
  1420
  1421	001611	0 002000 0 1 0 000 		LDBR	0			;LOAD BR WITH ZEROS
  1422	001612	0 066371 3 3 0 17 11 		MOVB	IOSEL			;WRITE INTO I/O SELECT REGISTER
  1423	001613	0 132057 5 5 0 02 17 		DATI	IOSEL,AC2		;READ BACK INTO AC2
  1424	001614	0 060057 3 0 0 02 17 		OSB	AC2			;COMPARE WITH DATA WRITTEN
  1425	001615	0 115617 4 6 1617 		JMPZ	.+2			;SKIP IF A MATCH
  1426	001616	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1427
  1428					;WRITE 77 INTO STATUS REGISTER, READ AND CHECK FOR 77
  1429
  1430	001617	0 002077 0 1 0 077 		LDBR	77			;LOAD BR WITH 77
  1431	001620	0 066371 3 3 0 17 11 		MOVB	IOSEL			;WRITE INTO I/O SELECT REGISTER
  1432	001621	0 132057 5 5 0 02 17 		DATI	IOSEL,AC2		;READ BACK INTO AC2
  1433	001622	0 060057 3 0 0 02 17 		OSB	AC2			;COMPARE WITH DATA WRITTEN
  1434	001623	0 115625 4 6 1625 		JMPZ	.+2			;SKIP IF A MATCH
  1435	001624	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1436
  1437					;WRITE 152 INTO STATUS REGISTER, READ AD CHECK FOR 152
  1438
  1439	001625	0 002152 0 1 0 152 		LDBR	152			;LOAD BR WITH 152
  1440	001626	0 066371 3 3 0 17 11 		MOVB	IOSEL			;WRITE INTO I/O SELECT REGISTER
  1441	001627	0 132057 5 5 0 02 17 		DATI	IOSEL,AC2		;READ BACK INTO AC2
  1442	001630	0 060057 3 0 0 02 17 		OSB	AC2			;COMPARE WITH DATA WRITTEN
  1443	001631	0 115633 4 6 1633 		JMPZ	.+2			;SKIP IF A MATCH
  1444	001632	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1445
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 41
MCODE0	MAC	17-Oct-88 14:28	

  1446					;*CHECK STACK POINTER RESET IN I/O SELECT REGISTER
  1447
  1448					;PUSH 15 ADDRESSES ONTO THE STACK
  1449
  1450	001633	0 002100 0 1 0 100 		LDBR	100			;GET A 100
  1451	001634	0 066371 3 3 0 17 11 		MOVB	IOSEL			;RESET THE STACK POINTER
  1452	001635	0 002000 0 1 0 000 		LDBR	0			;CLEAR BR
  1453	001636	0 066371 3 3 0 17 11 		MOVB	IOSEL			;CLEAR THE RESET BIT
  1454	001637	0 117640 4 7 1640 		JMPSUB	.+1			;JUMP TO SUBROUTINES TO FILL THE STACK
  1455	001640	0 117641 4 7 1641 		JMPSUB	.+1			;  DO IT 15 TIMES
  1456	001641	0 117642 4 7 1642 		JMPSUB	.+1
  1457	001642	0 117643 4 7 1643 		JMPSUB	.+1
  1458	001643	0 117644 4 7 1644 		JMPSUB	.+1
  1459	001644	0 117645 4 7 1645 		JMPSUB	.+1
  1460	001645	0 117646 4 7 1646 		JMPSUB	.+1
  1461	001646	0 117647 4 7 1647 		JMPSUB	.+1
  1462	001647	0 117650 4 7 1650 		JMPSUB	.+1
  1463	001650	0 117651 4 7 1651 		JMPSUB	.+1
  1464	001651	0 117652 4 7 1652 		JMPSUB	.+1
  1465	001652	0 117653 4 7 1653 		JMPSUB	.+1
  1466	001653	0 117654 4 7 1654 		JMPSUB	.+1
  1467	001654	0 117655 4 7 1655 		JMPSUB	.+1
  1468	001655	0 117656 4 7 1656 		JMPSUB	.+1			;THESE JMPSUB INSTRUCTIONS SHOULD FILL THE STACK
  1469										;BUT SHOULD NOT OVERFLOW THE STACK
  1470
  1471					;RESET THE STACK POINTER
  1472
  1473	001656	0 002100 0 1 0 100 		LDBR	100			;RESET THE STACK POINTER AGAIN
  1474	001657	0 066371 3 3 0 17 11 		MOVB	IOSEL
  1475	001660	0 002000 0 1 0 000 		LDBR	0
  1476	001661	0 066371 3 3 0 17 11 		MOVB	IOSEL			;NOW STACK SHOULD BE EMPTY
  1477
  1478					;NOW PUSH 3 MORE ADDRESSES ONTO THE STACK
  1479
  1480	001662	0 117663 4 7 1663 		JMPSUB	.+1			;NOW MORE JMPSUB INSTRUCTIONS
  1481	001663	0 117664 4 7 1664 		JMPSUB	.+1			;SHOULD BE PERMISSABLE AND
  1482	001664	0 117665 4 7 1665 		JMPSUB	.+1			;SHOULD NOT OVERFLOW THE STACK
  1483
  1484	001665	0 002100 0 1 0 100 		LDBR	100			;RESET THE STACK POINTER AGAIN
  1485	001666	0 066371 3 3 0 17 11 		MOVB	IOSEL
  1486	001667	0 002000 0 1 0 000 		LDBR	0
  1487	001670	0 066371 3 3 0 17 11 		MOVB	IOSEL			;CLEAR THE RESET BIT
  1488
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 42
MCODE0	MAC	17-Oct-88 14:28	

  1489					;*CHECK WRITING AND READING MPGP0
  1490
  1491					;WRITE 0 INTO MPGP0, READ AND CHECK FOR 0
  1492
  1493	001671	0 002011 0 1 0 011 		LDBR	11			;SELECT THE MASSBUS INTERFACE
  1494	001672	0 066371 3 3 0 17 11 		MOVB	IOSEL			;FOR INPUT AND OUTPUT
  1495	001673	0 002000 0 1 0 000 		LDBR	0			;GET A ZERO
  1496	001674	0 064211 3 2 0 10 11 		MOVB	MPGP0			;WRITE INTO GP REG 0
  1497	001675	0 032070 1 5 0 03 10 		DATI	MPGP0,AC3		;READ REG BACK INTO AC3
  1498	001676	0 060077 3 0 0 03 17 		OSB	AC3			;COMPARE AC3 WITH DATA WRITTEN
  1499	001677	0 115701 4 6 1701 		JMPZ	.+2			;SKIP IF A MATCH
  1500	001700	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1501
  1502					;WRITE 125 INTO MPGP0, READ AND CHECK FOR 125
  1503
  1504	001701	0 002125 0 1 0 125 		LDBR	125			;GET A 125
  1505	001702	0 064211 3 2 0 10 11 		MOVB	MPGP0			;WRITE INTO GP REG 0
  1506	001703	0 032070 1 5 0 03 10 		DATI	MPGP0,AC3		;READ REG BACK INTO AC3
  1507	001704	0 060077 3 0 0 03 17 		OSB	AC3			;COMPARE AC3 WITH DATA WRITTEN
  1508	001705	0 115707 4 6 1707 		JMPZ	.+2			;SKIP IF A MATCH
  1509	001706	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1510
  1511					;WRITE 252 INTO MPGP0, READ AND CHECK FOR 252
  1512
  1513	001707	0 002252 0 1 0 252 		LDBR	252			;GET A 252
  1514	001710	0 064211 3 2 0 10 11 		MOVB	MPGP0			;WRITE INTO GP REG 0
  1515	001711	0 032070 1 5 0 03 10 		DATI	MPGP0,AC3		;READ REG BACK INTO AC3
  1516	001712	0 060077 3 0 0 03 17 		OSB	AC3			;COMPARE AC3 WITH DATA WRITTEN
  1517	001713	0 115715 4 6 1715 		JMPZ	.+2			;SKIP IF A MATCH
  1518	001714	0 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1519
  1520
  1521
  1522					;SKIP OVER THE NEXT CRAM LOCATIONS AND CONTINUE IN NEXT 1K BANK
  1523
  1524	001715	0 002000 0 1 0 000 		JUMP	2000			;JUMP TO LOCATION 2000
  1525	001716	0 160231 7 0 0 11 11 
  1526
  1527
  1528					;ALL UNUSED CRAM LOCATIONS ARE FILLED WITH A MOV AC7 INSTRUCTION
  1529					;TO STOP THE MICRO-PROCESSOR IF IT SHOULD GET LOST
  1530
  1531						XLIST
  1532						LIST
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 43
MCODE0	MAC	17-Oct-88 14:28	

  1533					;*CHECK DATI/O INSTRUCTION
  1534
  1535					;WRITE A 2 IN MPGP0
  1536					;MOVE FROM MPGP0 TO MPGP1
  1537					;CHECK MPGP1 FOR A 2
  1538
  1539	002000	1 002011 0 1 0 011 		LDBR	11			;SELECT MASSBUS INTERFACE
  1540	002001	1 066371 3 3 0 17 11 		MOVB	IOSEL			;FOR INPUT AND OUTPUT
  1541	002002	1 002002 0 1 0 002 		LDBR	2			;GET A 2
  1542	002003	1 064211 3 2 0 10 11 		MOVB	MPGP0			;WRITE INTO GP REG 0
  1543	002004	1 024230 1 2 0 11 10 		DATI	MPGP0,MPGP1		;COPY DATA FROM REG 0 TO REG 1
  1544	002005	1 032151 1 5 0 06 11 		DATI	MPGP1,AC6		;READ THE DATA IN MPGP1
  1545	002006	1 060157 3 0 0 06 17 		OSB	AC6			;COMPARE AC6 WITH DATA WRITTEN
  1546	002007	1 114011 4 6 0011 		JMPZ	.+2			;SKIP IF A MATCH
  1547	002010	1 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1548
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 44
MCODE0	MAC	17-Oct-88 14:28	

  1549					;*CHECK MULTIPLE DATI/O INSTRUCTIONS
  1550
  1551					;WRITE A 73 IN MPGP0
  1552					;MOVE FROM MPGP0 TO MPGP1, THEN FROM MPGP1 TO MPGP2, ETC. UNTIL
  1553					;  MPGP17 IS WRITTEN
  1554					;CHECK MPGP17 FOR A 73
  1555	002011	1 002011 0 1 0 011 		LDBR	11			;SELECT MASSBUS INTERFACE
  1556	002012	1 066371 3 3 0 17 11 		MOVB	IOSEL			;FOR INPUT AND OUTPUT
  1557	002013	1 002073 0 1 0 073 		LDBR	73			;GET A 73
  1558	002014	1 064211 3 2 0 10 11 		MOVB	MPGP0			;WRITE INTO GP REG 0
  1559	002015	1 116032 4 7 0032 		JMPSUB	FILLGP			;FILL ALL GP REGISTERS WITH DATA FROM REG 0
  1560	002016	1 132047 5 5 0 02 07 		DATI	MPGP17,AC2		;READ DATA IN GP REG 17
  1561	002017	1 060057 3 0 0 02 17 		OSB	AC2			;COMPARE WITH DATA 73 IN BR
  1562	002020	1 114022 4 6 0022 		JMPZ	.+2			;SKIP IF A MATCH
  1563	002021	1 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1564
  1565					;WRITE A 304 IN MPGP0
  1566					;MOVE FROM MPGP0 TO MPGP1, THEN FROM MPGP1 TO MPGP2, ETC. UNTIL
  1567					;  MPGP17 IS WRITTEN
  1568					;CHECK MPGP17 FOR A 304
  1569
  1570	002022	1 002304 0 1 0 304 		LDBR	304			;GET A 304
  1571	002023	1 064211 3 2 0 10 11 		MOVB	MPGP0			;WRITE INTO GP REG 0
  1572	002024	1 116032 4 7 0032 		JMPSUB	FILLGP			;FILL ALL GP REGISTERS WITH DATA FROM REG 0
  1573	002025	1 132047 5 5 0 02 07 		DATI	MPGP17,AC2		;READ DATA IN GP REG 17
  1574	002026	1 060057 3 0 0 02 17 		OSB	AC2			;COMPARE WITH DATA 304 IN BR
  1575	002027	1 114031 4 6 0031 		JMPZ	.+2			;SKIP IF A MATCH
  1576	002030	1 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1577	002031	1 100052 4 0 0052 		JMP	RESTST			;GO AROUND THE SUBROUTINE
  1578
  1579	002032	1 024230 1 2 0 11 10 	FILLGP:	DATI	MPGP0,MPGP1		;COPY DATA FROM REG 0 TO REG 1
  1580	002033	1 024251 1 2 0 12 11 		DATI	MPGP1,MPGP2		;COPY DATA FROM REG 1 TO REG 2
  1581	002034	1 024272 1 2 0 13 12 		DATI	MPGP2,MPGP3		;COPY DATA FROM REG 2 TO REG 3
  1582	002035	1 024313 1 2 0 14 13 		DATI	MPGP3,MPGP4		;COPY DATA FROM REG 3 TO REG 4
  1583	002036	1 024334 1 2 0 15 14 		DATI	MPGP4,MPGP5		;COPY DATA FROM REG 4 TO REG 5
  1584	002037	1 024355 1 2 0 16 15 		DATI	MPGP5,MPGP6		;COPY DATA FROM REG 5 TO REG 6
  1585	002040	1 024376 1 2 0 17 16 		DATI	MPGP6,MPGP7		;COPY DATA FROM REG 6 TO REG 7
  1586	002041	1 026017 1 3 0 00 17 		DATI	MPGP7,MPGP10		;COPY DATA FROM REG 7 TO REG 10
  1587	002042	1 126020 5 3 0 01 00 		DATI	MPGP10,MPGP11		;COPY DATA FROM REG 10 TO REG 11
  1588	002043	1 126041 5 3 0 02 01 		DATI	MPGP11,MPGP12		;COPY DATA FROM REG 11 TO REG 12
  1589	002044	1 126062 5 3 0 03 02 		DATI	MPGP12,MPGP13		;COPY DATA FROM REG 12 TO REG 13
  1590	002045	1 126103 5 3 0 04 03 		DATI	MPGP13,MPGP14		;COPY DATA FROM REG 13 TO REG 14
  1591	002046	1 126124 5 3 0 05 04 		DATI	MPGP14,MPGP15		;COPY DATA FROM REG 14 TO REG 15
  1592	002047	1 126145 5 3 0 06 05 		DATI	MPGP15,MPGP16		;COPY DATA FROM REG 15 TO REG 16
  1593	002050	1 126166 5 3 0 07 06 		DATI	MPGP16,MPGP17		;COPY DATA FROM REG 16 TO REG 17
  1594	002051	1 016000 0 7 0 000 		RETURN
  1595
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 45
MCODE0	MAC	17-Oct-88 14:28	

  1596					;*CHECK INITIALIZE IN I/O SELECT REGISTER
  1597
  1598					;SET ATTENTION IN MPSCR1
  1599					;RESET THE DX20 USING I/O SELECT REGISTER
  1600					;CHECK THAT ATTENTION IS CLEAR
  1601
  1602	002052	1 002011 0 1 0 011 	RESTST:	LDBR	11			;SELECT MASSBUS INTERFACE
  1603	002053	1 066371 3 3 0 17 11 		MOVB	IOSEL			;FOR INPUT AND OUTPUT
  1604	002054	1 002200 0 1 0 200 		LDBR	200			;SET ATA BIT
  1605	002055	1 064031 3 2 0 01 11 		MOVB	MPSCR1			;BIT 7 IN REGISTER 1
  1606	002056	1 032101 1 5 0 04 01 		DATI	MPSCR1,AC4		;READ INTO AC4
  1607	002057	1 110061 4 4 0061 		JMPB7	.+2			;SKIP IF AT A BIT IS SET
  1608	002060	1 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1609	002061	1 002200 0 1 0 200 		LDBR	200			;INITIALIZE THE INTERFACE
  1610	002062	1 066371 3 3 0 17 11 		MOVB	IOSEL			;SET INIT IN REG 37
  1611	002063	1 002011 0 1 0 011 		LDBR	11			;SELECT MASSBUS INTERFACE AGAIN
  1612	002064	1 066371 3 3 0 17 11 		MOVB	IOSEL			;FOR INPUT AND OUTPUT
  1613	002065	1 032101 1 5 0 04 01 		DATI	MPSCR1,AC4		;READ REGISTER 1 AGAIN
  1614	002066	1 110070 4 4 0070 		JMPB7	.+2			;SKIP IF ATA BIT IS STILL SET
  1615	002067	1 100071 4 0 0071 		JMP	.+2			;SHOULD NOT SKIP, INIT SHOULD HAVE CLEARED ATA
  1616	002070	1 060170 3 0 0 07 10 		  MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1617
MCODE0 - DX20 MICRO-PROCESSOR DIAGNOSTIC  VERSION 0,1	MACRO %53B(1252) 15:22  6-Mar-89 Page 46
MCODE0	MAC	17-Oct-88 14:28	

  1618					;*END OF MICRO-DIAGNOSTIC, HALT WITH PC CONTAINING 3777
  1619
  1620	002071	1 101776 4 0 1776 		JMP	3776			;GO TO END
  1621
  1622					;ALL UNUSED CRAM LOCATIONS ARE FILLED WITH A MOV AC7 INSTRUCTION
  1623					;TO STOP THE MICRO-PROCESSOR IF IT SHOULD GET LOST
  1624
  1625						XLIST
  1626						LIST
  1627
  1628	003776	1 060170 3 0 0 07 10 		MOV	AC7			;  HALT ON PARITY ERROR IN AC7
  1629										;THIS HALT IS THE NORMAL END OF THE PROGRAM
  1630
  1631	003777	1 060170 3 0 0 07 10 		MOV	AC7			;UNSUED LOCATION
  1632
  1633						.END
  1634
  1635						END

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 004000
CPU TIME USED 02:10.655

31P CORE USED

AC0	   146	   147	   151	   155	   156	   187	   189	   193	   201	   203	   208	   213	   218	   223
	   228	   233	   238	   246	   247	   251	   252	   261	   262	   263	   269	   270	   275	   281
	   283	   290	   291	   293	   300	   301	   303	   310	   311	   313	   320	   321	   323	   330
	   331	   333	   340	   341	   343	   350	   351	   353	   362	   363	   364	   369	   376	   377
	   378	   379	   386	   387	   388	   389	   396	   397	   398	   399	   406	   407	   408	   409
	   416	   417	   418	   419	   426	   427	   428	   429	   436	   437	   438	   439	   446	   447
	   453	   461	   464	   474	   478	   569	   767	   769	   781	   793	   805	   817	   967	   969
	   994	  1016	  1062	  1067	  1073	  1077	  1401	  1402	  1411	  1412
AC1	   479	   480	   486	   562	   568	   770	   774	   782	   786	   794	   798	   806	   810	   818
	   823	   996	   997	  1003	  1009	  1015
AC2	   487	   488	   494	   555	   561	   753	   754	   756	   758	  1023	  1025	  1034	  1043	  1052
	  1082	  1087	  1093	  1097	  1423	  1424	  1432	  1433	  1441	  1442	  1560	  1561	  1573	  1574
AC3	   495	   496	   502	   548	   554	   576	   577	   578	   581	   582	   584	  1026	  1028	  1035
	  1037	  1044	  1046	  1053	  1055	  1497	  1498	  1506	  1507	  1515	  1516
AC4	   503	   504	   510	   541	   547	   907	   908	   909	   915	   916	   922	   923	   929	  1138
	  1141	  1147	  1151	  1154	  1158	  1163	  1167	  1170	  1174	  1179	  1183	  1186	  1190	  1195
	  1199	  1202	  1206	  1211	  1215	  1218	  1222	  1227	  1231	  1234	  1238	  1243	  1247	  1250
	  1254	  1259	  1263	  1266	  1270	  1275	  1279	  1282	  1286	  1291	  1295	  1298	  1302	  1307
	  1311	  1314	  1318	  1323	  1327	  1330	  1334	  1339	  1343	  1346	  1350	  1355	  1359	  1362
	  1366	  1371	  1375	  1606	  1613
AC5	   511	   512	   518	   534	   540	   593	   594	   601	   608	   614	   621	   628	   634	   641
	   648	   654	   661	   668	   674	   681	   688	   694	   701	   708	   714	   721	   728	   734
	   740	   746	   936	   938	   939	   945	   951	   952	   958
AC6	   519	   520	   527	   533	   834	   835	   843	   844	   852	   853	   861	   862	   870	   871
	   879	   880	   888	   889	   897	   898	   965	   968	   975	   981	   987	  1544	  1545
AC7	   128	   135	   138	   149	   154	   158	   164	   168	   171	   175	   178	   182	   191	   196
	   206	   211	   216	   221	   226	   231	   236	   241	   249	   254	   265	   273	   277	   285
	   295	   305	   315	   325	   335	   345	   355	   367	   371	   381	   391	   401	   411	   421
	   431	   441	   449	   452	   456	   460	   463	   467	   482	   490	   498	   506	   514	   522
	   529	   536	   543	   550	   557	   564	   571	   580	   586	   597	   604	   610	   617	   624
	   630	   637	   644	   650	   657	   664	   670	   677	   684	   690	   697	   704	   710	   717
	   724	   730	   736	   742	   748	   760	   773	   776	   785	   788	   797	   800	   809	   812
	   822	   825	   837	   846	   855	   864	   873	   882	   891	   900	   911	   918	   925	   931
	   941	   947	   954	   960	   971	   977	   983	   989	   999	  1005	  1011	  1018	  1030	  1039
	  1048	  1057	  1069	  1075	  1079	  1089	  1095	  1099	  1143	  1149	  1156	  1160	  1165	  1172
	  1176	  1181	  1188	  1192	  1197	  1204	  1208	  1213	  1220	  1224	  1229	  1236	  1240	  1245
	  1252	  1256	  1261	  1268	  1272	  1277	  1284	  1288	  1293	  1300	  1304	  1309	  1316	  1320
	  1325	  1332	  1336	  1341	  1348	  1352	  1357	  1364	  1368	  1373	  1377	  1388	  1396	  1406
	  1415	  1426	  1435	  1444	  1500	  1509	  1518	  1532	  1547	  1563	  1576	  1608	  1616	  1626
	  1628	  1631
COMPA2	  1083	  1092#
COMPAC	  1063	  1072#
EDIT	     1#	     5	   122
FILLGP	  1559	  1572	  1579#
IOSEL	   117#	  1422	  1423	  1431	  1432	  1440	  1441	  1451	  1453	  1474	  1476	  1485	  1487	  1494
	  1540	  1556	  1603	  1610	  1612
IOTST	  1144	  1383#
MPDB0	    96#
MPDB1	    97#
MPDB2	    98#
MPDTR	    94#
MPECR	    93#
MPGP0	    99#	  1496	  1497	  1505	  1506	  1514	  1515	  1542	  1543	  1558	  1571	  1579
MPGP1	   100#	  1543	  1544	  1579	  1580
MPGP10	   107#	  1586	  1587
MPGP11	   108#	  1587	  1588
MPGP12	   109#	  1588	  1589
MPGP13	   110#	  1589	  1590
MPGP14	   111#	  1590	  1591
MPGP15	   112#	  1591	  1592
MPGP16	   113#	  1592	  1593
MPGP17	   114#	  1560	  1573	  1593
MPGP2	   101#	  1580	  1581
MPGP3	   102#	  1581	  1582
MPGP4	   103#	  1582	  1583
MPGP5	   104#	  1583	  1584
MPGP6	   105#	  1584	  1585
MPGP7	   106#	  1585	  1586
MPHVR	    95#
MPSCR0	    91#
MPSCR1	    92#	  1605	  1606	  1613
MPSTAT	   116#	  1384	  1393	  1403	  1413
RESTST	  1577	  1602#
START	   127#
SUB0R	  1140#
SUB1	  1139	  1146#
SUB10	  1248	  1258#
SUB10R	  1265#
SUB11	  1264	  1274#
SUB11R	  1281#
SUB12	  1280	  1290#
SUB12R	  1297#
SUB13	  1296	  1306#
SUB13R	  1313#
SUB14	  1312	  1322#
SUB14R	  1329#
SUB15	  1328	  1338#
SUB15R	  1345#
SUB16	  1344	  1354#
SUB16R	  1361#
SUB17	  1360	  1370#
SUB1R	  1153#
SUB2	  1152	  1162#
SUB2R	  1169#
SUB3	  1168	  1178#
SUB3R	  1185#
SUB4	  1184	  1194#
SUB4R	  1201#
SUB5	  1200	  1210#
SUB5R	  1217#
SUB6	  1216	  1226#
SUB6R	  1233#
SUB7	  1232	  1242#
SUB7R	  1249#
SUBT1R	  1066#
SUBT2	  1070	  1081#
SUBT2R	  1086#
SUBT3	  1090	  1137#
VERSIO	     2#	     5	   122

ADB	   594	   614	   634	   654	   674	   694	   714	   734
ADBCR	   756
ADC	   578
ADCR	   582
DATI	  1384	  1393	  1403	  1413	  1423	  1432	  1441	  1497	  1506	  1515	  1543	  1544	  1560	  1573
	  1579	  1580	  1581	  1582	  1583	  1584	  1585	  1586	  1587	  1588	  1589	  1590	  1591	  1592
	  1593	  1606	  1613
DEC	   533	   540	   547	   554	   561	   568
DECR	   363	   378	   388	   398	   408	   418	   428	   438	   461	   464
INC	   262	   478	   486	   494	   502	   510	   518	  1402	  1412
INCR	   269	   281	   291	   301	   311	   321	   331	   341	   351	   377	   387	   397	   407	   417
	   427	   437	   447	   453	   577	   581	   754
JMP	   127	   134	   153	   167	   174	   181	   195	   205	   210	   215	   220	   225	   230	   235
	   240	   272	   366	   420	   430	   455	   459	   466	   596	   603	   616	   623	   636	   643
	   656	   663	   676	   683	   696	   703	   716	   723	   821	  1070	  1090	  1144	  1387	  1405
	  1525	  1577	  1615	  1620
JMPB0	   163	   166
JMPB4	   170	   173	  1386	  1395	  1404	  1414
JMPB7	   177	   180	  1607	  1614
JMPC	   448	   451	   454	   458	   462	   465	   595	   602	   615	   622	   635	   642	   655	   662
	   675	   682	   695	   702	   715	   722	   735	   741	   772	   784	   796	   808	   820
JMPSUB	  1063	  1083	  1139	  1152	  1168	  1184	  1200	  1216	  1232	  1248	  1264	  1280	  1296	  1312
	  1328	  1344	  1360	  1454	  1455	  1456	  1457	  1458	  1459	  1460	  1461	  1462	  1463	  1464
	  1465	  1466	  1467	  1468	  1480	  1481	  1482	  1559	  1572
JMPZ	   133	   137	   148	   152	   157	   190	   194	   204	   209	   214	   219	   224	   229	   234
	   239	   248	   253	   264	   271	   276	   284	   294	   304	   314	   324	   334	   344	   354
	   365	   370	   380	   390	   400	   410	   440	   481	   489	   497	   505	   513	   521	   528
	   535	   542	   549	   556	   563	   570	   579	   585	   609	   629	   649	   669	   689	   709
	   729	   747	   759	   775	   787	   799	   811	   824	   836	   845	   854	   863	   872	   881
	   890	   899	   910	   917	   924	   930	   940	   946	   953	   959	   970	   976	   982	   988
	   998	  1004	  1010	  1017	  1029	  1038	  1047	  1056	  1068	  1074	  1088	  1094	  1142	  1148
	  1155	  1164	  1171	  1180	  1187	  1196	  1203	  1212	  1219	  1228	  1235	  1244	  1251	  1260
	  1267	  1276	  1283	  1292	  1299	  1308	  1315	  1324	  1331	  1340	  1347	  1356	  1363	  1372
	  1425	  1434	  1443	  1499	  1508	  1517	  1546	  1562	  1575
JUMP	  1524
LANDB	   908	   938	   968	   997	  1025
LDBR	   136	   145	   150	   162	   165	   169	   172	   176	   179	   186	   200	   202	   207	   212
	   217	   222	   227	   232	   237	   260	   274	   282	   292	   302	   312	   322	   332	   342
	   352	   361	   375	   385	   395	   405	   415	   425	   435	   445	   450	   457	   473	   575
	   583	   592	   752	   755	   757	   766	   768	   780	   792	   804	   816	   831	   906	   935
	   937	   964	   966	   993	   995	  1022	  1024	  1061	  1066	  1072	  1076	  1081	  1086	  1092
	  1096	  1137	  1140	  1146	  1150	  1153	  1157	  1162	  1166	  1169	  1173	  1178	  1182	  1185
	  1189	  1194	  1198	  1201	  1205	  1210	  1214	  1217	  1221	  1226	  1230	  1233	  1237	  1242
	  1246	  1249	  1253	  1258	  1262	  1265	  1269	  1274	  1278	  1281	  1285	  1290	  1294	  1297
	  1301	  1306	  1310	  1313	  1317	  1322	  1326	  1329	  1333	  1338	  1342	  1345	  1349	  1354
	  1358	  1361	  1365	  1370	  1374	  1383	  1392	  1400	  1410	  1421	  1430	  1439	  1450	  1452
	  1473	  1475	  1484	  1486	  1493	  1495	  1504	  1513	  1524	  1539	  1541	  1555	  1557	  1570
	  1602	  1604	  1609	  1611
LDMAR	   143
LDMARX	   144
LDMEM	   188	   192	   245	   250	   289	   299	   309	   319	   329	   339	   349	   368	   526	   771
	   783	   795	   807	   819	   833	   842	   851	   860	   869	   878	   887	   896	  1027	  1036
	  1045	  1054
LORB	   915	   945	   975	  1003	  1034
LORCB	   929	   951	   981	  1009	  1043
LXORB	   922	   958	   987	  1015	  1052
MOV	   128	   135	   138	   149	   154	   155	   158	   164	   168	   171	   175	   178	   182	   191
	   196	   206	   211	   216	   221	   226	   231	   236	   241	   249	   254	   265	   273	   277
	   285	   295	   305	   315	   325	   335	   345	   355	   367	   371	   381	   391	   401	   411
	   421	   431	   441	   449	   452	   456	   460	   463	   467	   482	   490	   498	   506	   514
	   522	   529	   536	   543	   550	   557	   564	   571	   580	   586	   597	   604	   610	   617
	   624	   630	   637	   644	   650	   657	   664	   670	   677	   684	   690	   697	   704	   710
	   717	   724	   730	   736	   742	   748	   760	   773	   776	   785	   788	   797	   800	   809
	   812	   822	   825	   837	   846	   855	   864	   873	   882	   891	   900	   911	   918	   925
	   931	   941	   947	   954	   960	   971	   977	   983	   989	   999	  1005	  1011	  1018	  1030
	  1039	  1048	  1057	  1069	  1075	  1079	  1089	  1095	  1099	  1143	  1149	  1156	  1160	  1165
	  1172	  1176	  1181	  1188	  1192	  1197	  1204	  1208	  1213	  1220	  1224	  1229	  1236	  1240
	  1245	  1252	  1256	  1261	  1268	  1272	  1277	  1284	  1288	  1293	  1300	  1304	  1309	  1316
	  1320	  1325	  1332	  1336	  1341	  1348	  1352	  1357	  1364	  1368	  1373	  1377	  1388	  1396
	  1406	  1415	  1426	  1435	  1444	  1500	  1509	  1518	  1532	  1547	  1563	  1576	  1608	  1616
	  1626	  1628	  1631
MOVB	   146	   187	   201	   261	   362	   376	   386	   396	   406	   416	   426	   436	   446	   474
	   479	   487	   495	   503	   511	   519	   576	   593	   753	   767	   907	   936	   965	   967
	   994	   996	  1023	  1062	  1077	  1082	  1097	  1138	  1151	  1158	  1167	  1174	  1183	  1190
	  1199	  1206	  1215	  1222	  1231	  1238	  1247	  1254	  1263	  1270	  1279	  1286	  1295	  1302
	  1311	  1318	  1327	  1334	  1343	  1350	  1359	  1366	  1375	  1401	  1411	  1422	  1431	  1440
	  1451	  1453	  1474	  1476	  1485	  1487	  1494	  1496	  1505	  1514	  1540	  1542	  1556	  1558
	  1571	  1603	  1605	  1610	  1612
MOVMEM	   246	   251	   290	   300	   310	   320	   330	   340	   350	   770	   782	   794	   806	   818
	   834	   843	   852	   861	   870	   879	   888	   897	  1026	  1035	  1044	  1053
NAME	     5#	     5
NOP	   132
OSB	   147	   151	   156	   203	   208	   213	   218	   223	   228	   233	   238	   263	   270	   275
	   283	   293	   303	   313	   323	   333	   343	   353	   364	   379	   389	   399	   409	   419
	   429	   439	   480	   488	   496	   504	   512	   520	   584	   608	   628	   648	   668	   688
	   708	   728	   746	   758	   835	   844	   853	   862	   871	   880	   889	   898	  1067	  1073
	  1087	  1093	  1141	  1147	  1154	  1163	  1170	  1179	  1186	  1195	  1202	  1211	  1218	  1227
	  1234	  1243	  1250	  1259	  1266	  1275	  1282	  1291	  1298	  1307	  1314	  1323	  1330	  1339
	  1346	  1355	  1362	  1371	  1424	  1433	  1442	  1498	  1507	  1516	  1545	  1561	  1574
OSM	   189	   193	   247	   252	   369	   527	   534	   541	   548	   555	   562	   569	   774	   786
	   798	   810	   823	   909	   916	   923	   939	   952	   969	  1016	  1028	  1037	  1046	  1055
RETURN	  1078	  1098	  1159	  1175	  1191	  1207	  1223	  1239	  1255	  1271	  1287	  1303	  1319	  1335
	  1351	  1367	  1376	  1594
SHLR	   601	   621	   641	   661	   681	   701	   721	   740
SHR	   832	   841	   850	   859	   868	   877	   886	   895	  1385	  1394
TSB	   769	   781	   793	   805	   817
.END	  1633
.INIT	   119