; Loading #p"/home/nyef/src/lisp/dise1uc.lisp".

; Loading #p"/home/nyef/src/lisp/aek/E1_eproms/prom_symbols".
; Loading #p"/home/nyef/src/lisp/aek/E1_eproms/prom_symbols".
(LOAD #p"/home/nyef/src/lisp/aek/E1_eproms/prom_symbols")

L-0 ((M-0 TEST-SYNCH) SETZ)
L-1 (JUMP L-58)

L-2 (CALL L-40)
L-3 (NO-OP)
L-4 (POPJ IF-NOT-EQUAL M-ZEROS M-ZEROS)
L-5 (CALL L-40)
L-6 (JUMP-XCT-NEXT L-36)
L-7 (NO-OP)

L-8 (CALL L-40 IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-ONES)
L-9 (JUMP SKIP-NEXT-INSTRUCTION)
L-10 (CALL L-40 IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-ONES)
L-11 (JUMP SKIP-NEXT-INSTRUCTION)
L-12 (CALL L-40 IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-ONES)
L-13 (JUMP SKIP-NEXT-INSTRUCTION)
L-14 (CALL L-40 IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-ONES)
L-15 (JUMP SKIP-NEXT-INSTRUCTION)
L-16 (CALL L-40)
L-17 (NO-OP)

SELFTEST-ERROR (CALL L-40)
L-19 (NO-OP)
L-20 (CALL L-40)
L-21 (NO-OP)
L-22 (CALL L-40)
L-23 (NO-OP)
L-24 (CALL L-40)
L-25 (NO-OP)
L-26 (CALL L-40)
L-27 (NO-OP)

;; Set M-2 (M-ZEROS) and M-1 (all ones?) to known values
L-28 ((M-ZEROS) SETZ)
L-29 ((M-ONES) SETO AND-POPJ)

;; Entry point for chain microloading.
LOAD-MCR-PARTITION ((M-44) SETZ)
L-31 ((A-119) SETZ)

;; parity-trap-enable
L-32 ((M-1) SETM MCR)
L-33 ((M-0 MCR) DPB (BYTE-FIELD 1 13) M-ZEROS M-1)

L-34 (JUMP-XCT-NEXT L-718)
L-35 ((M-24) SETZ)

;; Warm-start handler?
L-36 (CALL L-28)
L-37 ((M-1) DPB (BYTE-FIELD 2 1) M-ONES M-ZEROS)
L-38 (JUMP-XCT-NEXT L-1230)
L-39 ((M-0) SETM LOAD-Q M-1)

L-40 ((M-0) SETCM LOAD-Q MICRO-STACK-DATA-POP)
L-41 (JUMP L-0 IF-BIT-CLEAR (BYTE-FIELD 1 9) MCR)
L-42 ((M-0 MCR) LDB (BYTE-FIELD 6 31) Q-R M-ZEROS AND-POPJ)

SKIP-NEXT-INSTRUCTION ((M-0 MICRO-STACK-DATA) M+1 MICRO-STACK-DATA)
L-44 (POPJ)

L-45 (CALL L-1938)
L-46 (CALL L-1977)
L-47 ((M-21) SETA A-1021)
L-48 ((A-133) LDB (BYTE-FIELD 24 0) M-21 M-ZEROS)
L-49 ((M-49) LDB (BYTE-FIELD 4 8) M-21 M-ZEROS)
L-50 ((M-21) SETA A-1019)
L-51 ((A-141) LDB (BYTE-FIELD 24 0) M-21 M-ZEROS)
L-52 ((M-47) LDB (BYTE-FIELD 4 8) M-21 M-ZEROS)
L-53 ((M-21) SETA A-1020)
L-54 ((A-140) LDB (BYTE-FIELD 24 0) M-21 M-ZEROS)
L-55 ((M-48) LDB (BYTE-FIELD 4 8) M-21 M-ZEROS)
L-56 (CALL L-1381)
L-57 (JUMP L-1400)

L-58 (CALL SELFTEST-ERROR IF-BIT-SET (BYTE-FIELD 1 0) MD)
L-59 (CALL SKIP-NEXT-INSTRUCTION IF-BIT-CLEAR (BYTE-FIELD 1 0) MD)
L-60 (CALL SELFTEST-ERROR)
L-61 ((M-0) SETM MD)
L-62 (CALL SELFTEST-ERROR IF-NOT-EQUAL MD M-0)
L-63 ((M-0) SETM MD)
L-64 (CALL SKIP-NEXT-INSTRUCTION IF-EQUAL MD M-0)
L-65 (CALL SELFTEST-ERROR)
L-66 ((M-ZEROS MD) SETZ LOAD-Q)
L-67 ((M-4 MD) SETZ)
L-68 ((M-5 MD) SETZ)

L-69 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-4 M-5)
L-70 (CALL SELFTEST-ERROR IF-BIT-SET ROTATE-RIGHT (BYTE-FIELD 1 0) Q-R)

L-71 ((M-4) M+1 M-4 AND-SKIP)
L-72 (CALL SELFTEST-ERROR)
L-73 (JUMP L-69 IF-BIT-CLEAR (BYTE-FIELD 1 27) M-4)

L-74 ((M-4) M+1 M-4)
L-75 ((M-5) DPB (BYTE-FIELD 1 15) M-4 M-ZEROS)
L-76 ((M-4) SETZ)
L-77 (JUMP-XCT-NEXT L-69 IF-BIT-CLEAR (BYTE-FIELD 1 0) MD)
L-78 ((M-ONES MD) SETO LOAD-Q)

;;; Enable parity-halt (?)
L-79 ((M-1) SETM MCR)
L-80 ((M-0 MCR) DPB (BYTE-FIELD 1 12) M-ONES M-1)

L-81 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ONES)
L-82 (CALL SKIP-NEXT-INSTRUCTION IF-EQUAL Q-R M-ONES)
L-83 (CALL SELFTEST-ERROR)
L-84 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-ONES M-ONES)

;; ANDCA M-3 M-3 should result in 0, which is what should be in M-2.
;; This feels like some sort of sanity checking on the ALU ops and
;; processor data paths.
L-85 ((M-0 MD) ANDCA LOAD-Q M-ONES M-ONES)
L-86 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ZEROS)
L-87 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-ZEROS M-ZEROS)


L-88 ((M-0 MD) M+A+1 LOAD-Q M-ONES M-ZEROS)
L-89 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ZEROS)
L-90 ((M-0 MD) ADD LOAD-Q M-ONES M-ONES)
L-91 ((M-1) DPB (BYTE-FIELD 31 1) M-ONES M-ZEROS)
L-92 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-1)
L-93 ((M-0 MD) SUB LOAD-Q M-ONES M-ONES)
L-94 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ZEROS)

;; M-4, Q-R = 0.
L-95 ((M-4 MD) SETZ IF-FIXNUM-OVERFLOW LOAD-Q AND-SKIP)
L-96 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ZEROS)

;; MD, Q-R = Q-R + 1.
L-97 ((M-0 MD) M+1 LOAD-Q Q-R)

;; MD = ~Q-R.
L-98 ((M-0 MD) SETCM IF-MEMORY-BUSY Q-R AND-SKIP)

;; VMA = ?? (MD ^ M-3).
L-99 ((M-0 VMA) XOR IF-NUBUS-ERROR OUTPUT-SELECTOR-MIRROR MD M-ONES AND-SKIP)

;; C-PDL-BUFFER-POINTER = ?? (VMA).
L-100 ((M-0 C-PDL-BUFFER-POINTER) SETM NEVER OUTPUT-SELECTOR-MIRROR VMA
       AND-SKIP)

;; M-5 = C-PDL-BUFFER-POINTER.
L-101 ((M-5) DPB IF-MEMORY-BUSY (BYTE-FIELD 0 0) C-PDL-BUFFER-POINTER M-ZEROS
       AND-SKIP)

;; M-6, MD = M-5.
L-102 ((M-6 MD) SETM OUTPUT-SELECTOR-A-BUS M-ZEROS)

;; Botch if !(M-6 & (2**M-4))
L-103 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-4 M-ZEROS)
L-104 (CALL SELFTEST-ERROR IF-BIT-CLEAR ROTATE-RIGHT (BYTE-FIELD 1 0) M-6)

L-105 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-6)

;; M-5 = M-4 - 1.
L-106 ((M-5 MD) ADD M-4 M-ONES)

;; M-4, MD = M-4 + 1.
L-107 ((M-4 MD) M+1 M-4)

L-108 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) MD M-ZEROS)
L-109 (CALL SELFTEST-ERROR IF-BIT-SET ROTATE-RIGHT (BYTE-FIELD 1 0) M-6)

L-110 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-5 M-ZEROS)
L-111 (CALL SELFTEST-ERROR IF-BIT-SET ROTATE-RIGHT (BYTE-FIELD 1 0) M-6)

L-112 (JUMP-XCT-NEXT L-98 IF-BIT-CLEAR (BYTE-FIELD 1 1) Q-R)
L-113 ((M-0 MD) SETCM SHIFT-Q-LEFT Q-R)

L-114 ((M-6 MD) DPB (BYTE-FIELD 1 31) M-ONES M-ZEROS)
L-115 ((M-1 MD) ADD OUTPUT-SELECTOR-RIGHTSHIFT-1 M-6 M-6)

L-116 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-6 M-1)
L-117 (CALL SELFTEST-ERROR IF-GREATER-OR-EQUAL M-6 M-ZEROS)
L-118 (CALL SKIP-NEXT-INSTRUCTION IF-LESS M-6 M-ZEROS)
L-119 (CALL SELFTEST-ERROR)
L-120 (CALL SKIP-NEXT-INSTRUCTION IF-GREATER-OR-EQUAL M-ZEROS M-ZEROS)
L-121 (CALL SELFTEST-ERROR)
L-122 (CALL SKIP-NEXT-INSTRUCTION IF-GREATER-OR-EQUAL M-ZEROS M-ONES)
L-123 (CALL SELFTEST-ERROR)
L-124 (CALL SELFTEST-ERROR IF-LESS M-ZEROS M-ZEROS)
L-125 (CALL SELFTEST-ERROR IF-LESS M-ZEROS M-ONES)
L-126 ((M-0 MD) ANDCM LOAD-Q M-ONES M-ONES)
L-127 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ZEROS)

;; Set M-0, MD, and Q-R to 1.
L-128 ((M-0 MD) M+1 LOAD-Q Q-R)

;; ??
L-129 ((M-0 LOCATION-COUNTER) SETZ OUTPUT-SELECTOR-R-BUS)

;; Simple sanity-check?
L-130 (CALL SELFTEST-ERROR IF-NOT-EQUAL LOCATION-COUNTER M-0)

;; Check if M-0 & #x02000000 is clear.
L-131 (JUMP-XCT-NEXT L-129 IF-BIT-CLEAR (BYTE-FIELD 1 7) M-0)

;; Set M-0, MD to ~LOCATION-COUNTER, and shift Q left, shifting in a 1?
L-132 ((M-0 MD) SETCM SHIFT-Q-LEFT LOCATION-COUNTER)

L-133 ((M-0 LOCATION-COUNTER) IOR M-ONES M-ZEROS)
L-134 ((M-0 MD) ORCA IF-LESS-OR-EQUAL LOAD-Q M-ZEROS M-ONES AND-SKIP)
L-135 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ZEROS)
L-136 ((M-0 MD) M+1 LOAD-Q Q-R)

L-137 ((M-0 MIB) SETM Q-R)
L-138 (JUMP-XCT-NEXT L-142 IF-BIT-SET (BYTE-FIELD 1 0) LOCATION-COUNTER)
L-139 ((M-4) SETM MIB)

L-140 ((M-4) DPB (BYTE-FIELD 16 16) MIB M-ZEROS)
L-141 ((M-4) LDB (BYTE-FIELD 16 16) MIB M-4)

L-142 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-4)
L-143 (JUMP L-148 IF-BIT-SET (BYTE-FIELD 1 1) Q-R)
L-144 (JUMP-XCT-NEXT L-137 IF-BIT-CLEAR (BYTE-FIELD 1 17) Q-R)
L-145 ((M-0 MD) SETO SHIFT-Q-LEFT)
L-146 (JUMP-XCT-NEXT L-137 IF-BIT-SET (BYTE-FIELD 1 0) LOCATION-COUNTER)
L-147 ((M-0 LOCATION-COUNTER) ORCM M-ONES M-ZEROS)

L-148 ((M-0 MD) SETCA LOAD-Q M-0 M-ONES)
L-149 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-ZEROS)
L-150 ((M-0 LOCATION-COUNTER) SETO IF-GREATER M-0 M-0 AND-SKIP)
L-151 ((M-0 MD) M+1 LOAD-Q Q-R)

L-152 ((M-4 MIB) SETM Q-R)
L-153 ((M-0 PDL-BUFFER-POINTER) SETM MIB-ARGUMENT-OFFSET-FIELD)
L-154 ((M-0 PDL-BUFFER-INDEX) SETM PDL-BUFFER-POINTER)
L-155 ((M-0 MICRO-STACK-POINTER) SETM PDL-BUFFER-INDEX)
L-156 (CALL SELFTEST-ERROR IF-NOT-EQUAL MICRO-STACK-POINTER M-4)
L-157 (JUMP-XCT-NEXT L-152 IF-BIT-CLEAR (BYTE-FIELD 1 27) Q-R)
L-158 ((M-0 MD) ANDCB SHIFT-Q-LEFT M-ZEROS M-ZEROS)

L-159 ((M-4 MIB) SETM Q-R)
L-160 ((M-0 PDL-BUFFER-POINTER) SETM MIB-BRANCH-OFFSET-FIELD)
L-161 ((M-0 PDL-BUFFER-INDEX) SETM PDL-BUFFER-POINTER)
L-162 (CALL SELFTEST-ERROR IF-NOT-EQUAL PDL-BUFFER-INDEX M-4)
L-163 (JUMP-XCT-NEXT L-159 IF-BIT-CLEAR (BYTE-FIELD 1 24) Q-R)

L-164 ((M-0 MD) SETO SHIFT-Q-LEFT)
L-165 ((M-0 PDL-BUFFER-POINTER) SETM Q-R)
L-166 ((M-0 PDL-BUFFER-INDEX) SETM PDL-BUFFER-POINTER)
L-167 ((M-0 MD) SETM Q-R)
L-168 (CALL SELFTEST-ERROR IF-NOT-EQUAL PDL-BUFFER-INDEX M-0)
L-169 (CALL SELFTEST-ERROR IF-EQUAL Q-R M-ZEROS)

L-170 ((M-0 VMA) DPB (BYTE-FIELD 1 2) M-ONES M-ZEROS)
L-171 ((M-0) SETZ LOAD-Q)
L-172 ((M-1 MD) DPB (BYTE-FIELD 1 6) M-ONES M-ZEROS)

;; This is an exhaustive check of every single bit of M-Memory from
;; location 4 through 63, in reverse order, finishing with loading
;; their contents with their addresses.
;; This is a walking-1s test, left-to-right.
L-173 ((M-1 MD) ADD M-1 M-ONES)
L-174 ((M-0 MD) SETO SHIFT-Q-RIGHT)
L-175 (CALL SELFTEST-ERROR IF-BIT-CLEAR (BYTE-FIELD 1 1) Q-R)
L-176 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 6 19) M-1 M-ZEROS)
L-177 ((M-0 MD) SETM Q-R)
L-178 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 6 10) M-1 M-ZEROS)
L-179 ((M-0 MD) SETM M-0)
L-180 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-0)
L-181 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-1 M-ZEROS)
L-182 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-0)
L-183 (JUMP-XCT-NEXT L-176 IF-BIT-CLEAR (BYTE-FIELD 1 0) Q-R)
L-184 ((M-0 MD) SETZ SHIFT-Q-RIGHT)
L-185 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 6 19) M-1 M-ZEROS)
L-186 ((M-0 MD) SETM M-1)
L-187 (JUMP L-173 IF-NOT-EQUAL VMA M-1)

;; Loop through M-Memory locations 63 - 4, checking to see if they contain
;; their own addresses, and are equal to the same A-Memory content.
L-188 ((M-1 MD) DPB (BYTE-FIELD 1 6) M-ONES M-ZEROS)
L-189 ((M-1 MD) ADD M-1 M-ONES)
L-190 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 6 10) M-1 M-ZEROS)
L-191 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-0 M-1)
L-192 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-1 M-ZEROS)
L-193 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-1 M-0)
L-194 (JUMP L-189 IF-NOT-EQUAL VMA M-1)

L-195 ((M-1 PDL-BUFFER-POINTER) DPB (BYTE-FIELD 1 10) M-ONES M-ZEROS)
L-196 ((M-1 PDL-BUFFER-POINTER) ADD M-1 M-ONES)
L-197 ((M-0) M+M LOAD-Q M-ONES)

;; This is annoying: L-197 sets Q-R to #xfffffffe, and M-2 is 0.
;; If we skip L-199, A-Memory locations 4 - 1023 must contain
;; the value #xfffffffe, which is demonstrably not the case for
;; at least A-Memory locations 4 - 63. Therefore, we must not
;; skip. Inverting the condition sense if the high bit of the
;; ALU operation code is 1 (indicating an arithmetic or
;; conditional branch) does not work because there is an earlier
;; ABJ with a branch condition of Always which must be taken.
;; Checking for a branch condition of Always is more baroque
;; than I'd believe of almost any hardware designer. If the
;; M-Input of the condition logic is taken from the output of
;; the ALU instead of straight from the M-Bus we get to compare
;; #xffffffff with 0, which still isn't equal. The only way I
;; have found to construe this is to either decrement the
;; A-Source to the comparator, to exclusive or it with
;; #xffffffff or to invert the jump sense when the ALU Carry
;; input is 1. Inverting the jump sense doesn't work because
;; L-232 will call ILLOP if we do.
L-198 ((M-0) M+1 IF-NOT-EQUAL Q-R M-ZEROS AND-SKIP)

;; Some sort of A-Memory and PDL-Buffer test?
;; Best-guess approximation is a walking-0s test, right-to-left.
;; This test leaves tested A-Memory set to its address, and
;; tested PDL-Buffer memory set to its index.
L-199 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 10 19) M-1 M-ZEROS)
L-200 ((M-0) SETM Q-R)
L-201 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-1 M-ZEROS)
L-202 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-0)
L-203 ((M-0 MD) DPB (BYTE-FIELD 1 9) M-ONES M-ZEROS)
L-204 ((M-0 PDL-BUFFER-INDEX) XOR M-1 M-0)
L-205 ((M-0 C-PDL-BUFFER-POINTER) SETM Q-R)
L-206 ((M-0 C-PDL-BUFFER-INDEX) SETM Q-R)
L-207 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-0)
L-208 ((M-0 MD) SETM Q-R)
L-209 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-INDEX M-0)
L-210 (JUMP-XCT-NEXT L-199 IF-BIT-SET (BYTE-FIELD 1 1) Q-R)
L-211 ((M-0 MD) SETZ SHIFT-Q-LEFT)

L-212 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 10 19) M-1 M-ZEROS)
L-213 ((M-0) SETM M-1)
L-214 ((M-0 C-PDL-BUFFER-POINTER) SETM PDL-BUFFER-POINTER)
L-215 (JUMP-XCT-NEXT L-196 IF-NOT-EQUAL VMA M-1)
L-216 ((M-0 C-PDL-BUFFER-INDEX) SETM PDL-BUFFER-INDEX)

;; Loop through PDL-Buffer and A-Memory locations 1023 - 4, checking
;; to see if they contain their own addresses.
L-217 ((M-1 PDL-BUFFER-POINTER) DPB (BYTE-FIELD 1 10) M-ONES M-ZEROS)
L-218 ((M-1 PDL-BUFFER-POINTER) ADD M-1 M-ONES)
L-219 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-1 M-ZEROS)
L-220 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-1 M-0)
L-221 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-1)
L-222 ((M-0 MD) DPB (BYTE-FIELD 1 9) M-ONES M-ZEROS)
L-223 ((M-0 PDL-BUFFER-INDEX) XOR M-1 M-0)
L-224 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-INDEX M-0)
L-225 (JUMP L-218 IF-NOT-EQUAL VMA M-1)

L-226 ((A-114) DPB (BYTE-FIELD 1 13) M-ONES M-ZEROS)
L-227 ((M-4 C-PDL-BUFFER-POINTER) SETZ)
L-228 ((M-7 MD) SETZ)
L-229 ((M-1 MD) DPB (BYTE-FIELD 1 12) M-ONES M-ZEROS)

L-230 ((M-1 MICRO-STACK-POINTER) ADD M-1 M-ONES)
L-231 ((M-0 MD) SETZ LOAD-Q)
L-232 ((M-0 MD) M+1 IF-Q0 LOAD-Q Q-R AND-CALL-ILLOP)
L-233 ((M-0) SETZ IF-NOT-Q0 AND-CALL-TRAP)

L-234 ((M-5 MICRO-STACK-DATA) SETM Q-R)
L-235 ((M-0) SETM IF-TAG-NOT-EQUAL MICRO-STACK-DATA M-5 AND-CALL-BUSERR)
L-236 ((M-0) SETM IF-TAG-NOT-EQUAL MICRO-STACK-DATA M-5 UNUSED-ABJ-VALUE)
L-237 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-0)

L-238 (JUMP L-244 IF-BIT-SET (BYTE-FIELD 1 0) M-7)
L-239 ((M-0 MD) ADD MD A-114)
L-240 ((M-0 VMA-WRITE-MAP-LEVEL-1) SETM Q-R)
L-241 ((M-7) LDB (BYTE-FIELD 1 21) Q-R M-ZEROS)
L-242 ((M-8) DPB (BYTE-FIELD 12 0) MEMORY-MAP-LEVEL-1 M-ZEROS)
L-243 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-8 M-5)

L-244 (JUMP L-257 IF-BIT-SET (BYTE-FIELD 1 0) M-4)
L-245 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-1 M-ZEROS)
L-246 (WRITE-DISPATCH-RAM 0 M-0 M-0)
L-247 ((M-22) DPB (BYTE-FIELD 10 0) M-1 M-ZEROS)
L-248 (CALL SELFTEST-ERROR IF-NOT-EQUAL READ-I-ARG M-22)
L-249 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 20) M-1 M-ZEROS)
L-250 (WRITE-DISPATCH-RAM 0 M-0 M-5)
L-251 ((M-4) LDB (BYTE-FIELD 1 16) Q-R M-ZEROS)
L-252 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 20) M-1 M-ZEROS)
L-253 (READ-DISPATCH-RAM 0 M-0 M-0)
L-254 ((M-6) LDB (BYTE-FIELD 17 0) Q-R M-ZEROS)
L-255 ((M-0) SETM LOAD-Q M-5)
L-256 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-6)

L-257 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 20) M-1 M-ZEROS)
L-258 (WRITE-DISPATCH-RAM 0 M-0 M-1)
L-259 ((M-0 MICRO-STACK-DATA) SETM M-1)
L-260 ((M-8) SETM MD)
L-261 ((M-0 MD) DPB (BYTE-FIELD 12 13) M-1 M-ZEROS)
L-262 ((M-0 VMA-WRITE-MAP-LEVEL-1) SETM M-1)
L-263 ((M-0 MD) SETM M-8)
L-264 (JUMP-XCT-NEXT L-234 IF-BIT-CLEAR (BYTE-FIELD 1 13) Q-R)
L-265 ((M-0) EQV IF-NOT-EQUAL SHIFT-Q-LEFT M-ONES M-ONES AND-CALL-BUSERR)

L-266 (JUMP L-230 IF-NOT-EQUAL M-1 M-ZEROS)

L-267 ((M-1) DPB (BYTE-FIELD 1 10) M-ONES M-ZEROS)
L-268 ((M-1) ADD M-1 M-ONES)
L-269 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 20) M-1 M-ZEROS)
L-270 (READ-DISPATCH-RAM 0 M-0 M-0)
L-271 ((M-0 MD) DPB (BYTE-FIELD 17 0) Q-R M-ZEROS)
L-272 (CALL SELFTEST-ERROR IF-NOT-EQUAL MD M-1)
L-273 ((M-0 MD) DPB (BYTE-FIELD 12 13) M-1 M-ZEROS)
L-274 ((M-0 VMA) LDB (BYTE-FIELD 12 0) MEMORY-MAP-LEVEL-1 M-ZEROS)
L-275 (CALL SELFTEST-ERROR IF-NOT-EQUAL VMA M-1)
L-276 (JUMP L-268 IF-NOT-EQUAL M-1 M-ZEROS)

L-277 ((M-1 MICRO-STACK-POINTER) DPB (BYTE-FIELD 6 0) M-ONES M-ZEROS)
L-278 (CALL SELFTEST-ERROR IF-NOT-EQUAL MICRO-STACK-DATA M-1)
L-279 (JUMP-XCT-NEXT L-278 IF-NOT-EQUAL M-1 M-ZEROS)
L-280 ((M-1 MICRO-STACK-POINTER) ADD M-1 M-ONES)

;; Initialize the level-1 map to a known state.
L-281 (CALL L-461)

;; Something with parity-halt again?
L-282 ((M-4) SETM MCR)
L-283 ((M-0 MCR) DPB (BYTE-FIELD 1 12) M-ZEROS M-4)

L-284 ((M-4 C-PDL-BUFFER-POINTER) SETZ)
L-285 ((M-8 MD) SETZ)
L-286 ((A-115) DPB (BYTE-FIELD 1 8) M-ONES M-ZEROS)
L-287 ((M-5 LOCATION-COUNTER) DPB (BYTE-FIELD 1 11) M-ONES M-ZEROS)
L-288 ((M-1) DPB (BYTE-FIELD 1 14) M-ONES M-ZEROS)
L-289 ((M-1) ADD M-1 M-ONES)
L-290 ((M-0) M+1 LOAD-Q M-ZEROS)

L-291 ((M-23 VMA-WRITE-MAP-LEVEL-2-CONTROL) SETM Q-R)
L-292 ((M-22 VMA-WRITE-MAP-LEVEL-2-ADDRESS) SETM Q-R)
L-293 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-1 M-ZEROS)
L-294 (ACCESS-I-MEM)
L-295 (WRITE-I-MEM M-22 M-23)
L-296 (JUMP L-304 IF-BIT-SET (BYTE-FIELD 1 0) M-4)
L-297 ((M-4) LDB (BYTE-FIELD 1 11) Q-R M-ZEROS)
L-298 ((M-0) DPB (BYTE-FIELD 22 0) MEMORY-MAP-LEVEL-2-ADDRESS M-ZEROS)
L-299 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-0)
L-300 (JUMP L-304 IF-BIT-SET (BYTE-FIELD 1 0) M-8)
L-301 ((M-8) LDB (BYTE-FIELD 1 20) Q-R M-ZEROS)
L-302 ((M-0) DPB (BYTE-FIELD 13 0) MEMORY-MAP-LEVEL-2-CONTROL M-ZEROS)
L-303 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-0)
L-304 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-1 M-ZEROS)
L-305 (ACCESS-I-MEM)
L-306 (READ-I-MEM (M-6))
L-307 ((M-6) SETM M-6)
L-308 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-6)
L-309 ((M-6) SELECTIVE-DEPOSIT (BYTE-FIELD 5 25) M-6 M-ZEROS)
L-310 ((M-6) SETM IF-TAG-NOT-EQUAL Q-R M-6 AND-CALL-BUSERR)
L-311 (JUMP2 L-318 IF-BIT-SET (BYTE-FIELD 1 0) M-5)
L-312 ((M-5) LDB (BYTE-FIELD 1 9) Q-R M-ZEROS)
L-313 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-1 M-ZEROS)
L-314 (ACCESS-I-MEM)
L-315 (READ-I-MEM (M-7))
L-316 ((M-7) DPB (BYTE-FIELD 8 24) M-ZEROS M-7)
L-317 (CALL SELFTEST-ERROR IF-NOT-EQUAL Q-R M-7)

L-318 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-1 M-ZEROS)
L-319 (ACCESS-I-MEM)
L-320 (WRITE-I-MEM M-1 M-1)
L-321 ((M-0 VMA-WRITE-MAP-LEVEL-2-ADDRESS) LDB (BYTE-FIELD 12 24) MD M-ZEROS)
L-322 ((M-0 VMA-WRITE-MAP-LEVEL-2-CONTROL) LDB (BYTE-FIELD 12 24) MD M-ZEROS)
L-323 (JUMP2-XCT-NEXT L-291 IF-BIT-CLEAR (BYTE-FIELD 1 1) Q-R)
L-324 ((M-0) SETO SHIFT-Q-LEFT)
L-325 (JUMP-XCT-NEXT L-289 IF-NOT-EQUAL LOCATION-COUNTER M-1)
L-326 ((M-0 MD) ADD MD A-115)

L-327 ((M-1) DPB (BYTE-FIELD 1 14) M-ONES M-ZEROS)
L-328 ((M-0 MD) SETZ)
L-329 ((M-1) ADD M-1 M-ONES)
L-330 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-1 M-ZEROS)
L-331 (ACCESS-I-MEM)
L-332 (READ-I-MEM (M-9))
L-333 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-9 M-1)

L-334 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-1 M-ZEROS)
L-335 (ACCESS-I-MEM)
L-336 (READ-I-MEM (M-10))
L-337 ((M-10) DPB (BYTE-FIELD 8 24) M-ZEROS M-10)
L-338 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-10 M-1)
L-339 ((M-0) DPB (BYTE-FIELD 22 8) MEMORY-MAP-LEVEL-2-ADDRESS M-ZEROS)
L-340 (CALL SELFTEST-ERROR IF-NOT-EQUAL MD M-0)
L-341 ((M-0) DPB (BYTE-FIELD 13 8) MEMORY-MAP-LEVEL-2-CONTROL M-ZEROS)
L-342 (CALL SELFTEST-ERROR IF-NOT-EQUAL MD M-0)
L-343 ((M-0 MD) ADD MD A-115)
L-344 (JUMP-XCT-NEXT L-329 IF-NOT-EQUAL LOCATION-COUNTER M-1)
L-345 ((M-0 MD) LDB (BYTE-FIELD 20 0) MD M-ZEROS)

;; Mess with the parity-halt-enable flag in the MCR again.
L-346 ((M-4) SETM MCR)
L-347 ((M-0 MCR) DPB (BYTE-FIELD 1 12) M-ONES M-4)

;; Now we check the tag-classifier memory and machinery.
L-348 ((M-7 MD) DPB (BYTE-FIELD 4 0) M-ONES M-ZEROS)
L-349 ((M-8 MD) DPB (BYTE-FIELD 5 0) M-ONES M-ZEROS)
L-350 ((M-13 MD) DPB (BYTE-FIELD 4 0) M-ONES M-ZEROS)
L-351 ((M-10) SETZ)
L-352 (JUMP L-355 IF-NOT-EQUAL M-13 M-7)
L-353 ((M-0 IMOD-LOW) SETM M-8)
L-354 ((M-10 MD) DPB (BYTE-FIELD 1 0) M-ONES M-ZEROS)
L-355 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM M-10)
L-356 (CALL-XCT-NEXT L-451)
L-357 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM M-13)
L-358 (JUMP-XCT-NEXT L-351 IF-NOT-EQUAL M-13 M-ZEROS)
L-359 ((M-13 MD) ADD M-13 M-ONES)
L-360 (CALL L-436)
L-361 (JUMP-XCT-NEXT L-350 IF-NOT-EQUAL M-8 M-ZEROS)
L-362 ((M-8) ADD M-8 M-ONES)
L-363 (JUMP-XCT-NEXT L-349 IF-NOT-EQUAL M-7 M-ZEROS)
L-364 ((M-7) ADD M-7 M-ONES)

;; By this point, most of the memory spaces have been given a workout, with
;; the exception of the high 24 bits of I-Memory and the Level-2 maps.

;; Now we check the behavior of the PDL-Buffer push/pop system.
L-365 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM M-1)
L-366 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETCM M-1)
L-367 (CALL SELFTEST-ERROR IF-EQUAL C-PDL-BUFFER-POINTER M-1)
L-368 (CALL SELFTEST-ERROR IF-EQUAL C-PDL-BUFFER-POINTER-POP M-1)
L-369 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-POINTER-POP M-1)
L-370 ((M-0 C-PDL-BUFFER-INDEX-INCREMENT) SETM M-1)
L-371 ((M-0 C-PDL-BUFFER-INDEX-INCREMENT) SETCM M-1)
L-372 (CALL SELFTEST-ERROR IF-EQUAL C-PDL-BUFFER-INDEX M-1)
L-373 (CALL SELFTEST-ERROR IF-EQUAL C-PDL-BUFFER-INDEX-DECREMENT M-1)
L-374 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-INDEX-DECREMENT M-1)
L-375 ((M-0 C-PDL-BUFFER-POINTER) SETM M-1)
L-376 ((M-0 PDL-BUFFER-POINTER) M+1 PDL-BUFFER-POINTER)
L-377 ((M-0 PDL-BUFFER-POINTER) ADD PDL-BUFFER-POINTER M-ONES)
L-378 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-1)
L-379 ((M-0 C-PDL-BUFFER-INDEX) SETM M-1)
L-380 ((M-0 PDL-BUFFER-INDEX) M+1 PDL-BUFFER-INDEX)
L-381 ((M-0 PDL-BUFFER-INDEX) ADD PDL-BUFFER-INDEX M-ONES)
L-382 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-INDEX M-1)
L-383 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETZ)
L-384 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETO)
L-385 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-POINTER-POP M-ONES)
L-386 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-ZEROS)
L-387 ((M-0 C-PDL-BUFFER-INDEX-INCREMENT) SETZ)
L-388 ((M-0 C-PDL-BUFFER-INDEX-INCREMENT) SETO)
L-389 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-INDEX-DECREMENT M-ONES)
L-390 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-INDEX M-ZEROS)

L-391 ((M-0) ADD LOAD-Q M-ONES M-ONES)
L-392 ((M-0 MD) LDB (BYTE-FIELD 31 31) Q-R M-ONES)
L-393 (CALL SELFTEST-ERROR IF-NOT-EQUAL MD M-ONES)

L-394 ((M-0) SETO LOAD-Q)
L-395 ((M-5 MD) M+1 M-ZEROS)
;; 00000000 + ffffffff = ffffffff, Q is unchanged (ffffffff).
L-396 ((M-0 MD) MULTIPLY-STEP M-ZEROS M-ONES)
;; Q0 != 0, so we subtract. A-Source sign bit is 1, so we reverse addition
;; and subtraction. Or not. Raven doesn't do the reversal that CADR does.
L-397 ((M-0 MD) DIVIDE-STEP MD M-ONES)
L-398 ((M-0 MD) DIVIDE-REMAINDER-CORRECTION-STEP MD M-ONES)
L-399 (CALL SELFTEST-ERROR IF-BIT-CLEAR (BYTE-FIELD 1 0) MD)

L-400 ((M-0) SETZ LOAD-Q)
L-401 ((M-0 MD) MULTIPLY-STEP MD M-ONES)
L-402 ((M-0 MD) DIVIDE-STEP MD M-ONES)
;; If Q0 is 0, increment MD, else leave MD as-is.
L-403 ((M-0 MD) DIVIDE-REMAINDER-CORRECTION-STEP MD M-5)
;; subtract 1 from MD and shift left 1 bit, shifting in a 0 (high bit of Q-R)
;; MD, at this point, should be even?
L-404 ((M-0 MD) DIVIDE-FIRST-STEP MD M-ONES)
;; if !(MD & 2), error
L-405 (CALL SELFTEST-ERROR IF-BIT-CLEAR (BYTE-FIELD 1 31) MD)

L-406 ((M-0 MD) DPB (BYTE-FIELD 1 24) M-ONES M-ZEROS)
L-407 ((M-0 MD) ADD IF-POSITIVE MD M-ZEROS AND-CALL-ILLOP)
L-408 ((M-0 C-PDL-BUFFER-POINTER-PUSH) M-A-1 M-ONES M-ONES)
L-409 ((M-0 MD) ADD IF-NEGATIVE MD M-ZEROS AND-CALL-ILLOP)
L-410 (CALL SELFTEST-ERROR)
L-411 ((M-0 C-PDL-BUFFER-POINTER-PUSH) M+A+1 M-ONES M-ONES)
L-412 ((M-0 MD) SETM MD AND-CALL-TRAP)
L-413 (CALL SELFTEST-ERROR)
L-414 ((M-0 C-PDL-BUFFER-POINTER-PUSH) M-A-1 M-ONES M-ONES)
L-415 ((M-0) SETZ AND-CALL-BUSERR)
L-416 (CALL SELFTEST-ERROR)
L-417 ((M-0) SETZ UNUSED-ABJ-VALUE)
L-418 (CALL SELFTEST-ERROR)
L-419 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETZ)
L-420 ((M-1) DPB (BYTE-FIELD 1 23) M-ONES M-ZEROS)
L-421 ((M-0 MD) ADD IF-NOT-FIXNUM-OVERFLOW M-1 M-1 AND-CALL-ILLOP)
L-422 ((M-1 MD) SUB IF-NOT-FIXNUM-OVERFLOW MD M-1 AND-CALL-ILLOP)
L-423 (CALL L-431)
L-424 (CALL SELFTEST-ERROR IF-EQUAL C-PDL-BUFFER-POINTER M-ONES)
L-425 (CALL-XCT-NEXT L-433)
L-426 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETZ)
L-427 ((M-0 C-PDL-BUFFER-POINTER) TYPED-ALU-OP SETM M-ONES)
L-428 (CALL SELFTEST-ERROR IF-NOT-EQUAL C-PDL-BUFFER-POINTER M-ONES)
L-429 (JUMP L-468)

L-430 (CALL SELFTEST-ERROR)
L-431 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETZ AND-POPJ)
L-432 (CALL SELFTEST-ERROR)
L-433 ((M-0 C-PDL-BUFFER-POINTER-PUSH) DPB (BYTE-FIELD 1 24) M-ONES M-ZEROS
       AND-POPJ-XCT-NEXT)
L-434 ((M-4 C-PDL-BUFFER-POINTER) SETM OUTPUT-SELECTOR-SIGN-EXTEND
       C-PDL-BUFFER-POINTER)
L-435 (CALL SELFTEST-ERROR)

;; Find the position of the last bit set(?) in tag memory.
;; Errors out if none of the bits match.
;; Then checks to see if the position matches that
;; specified in M-8 and M-7, erroring out if it does not.
L-436 ((M-11 MD) DPB (BYTE-FIELD 4 0) M-ONES M-ZEROS)
L-437 ((M-12 MD) DPB (BYTE-FIELD 5 0) M-ONES M-ZEROS)
L-438 ((M-9 MD) DPB (BYTE-FIELD 5 25) M-12 M-ZEROS)
L-439 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 4 10) M-11 M-ZEROS)
L-440 (JUMP L-446 IF-IN-CLASS M-9)
L-441 (JUMP-XCT-NEXT L-438 IF-NOT-EQUAL M-12 M-ZEROS)
L-442 ((M-12 MD) ADD M-12 M-ONES)
L-443 (JUMP-XCT-NEXT L-437 IF-NOT-EQUAL M-11 M-ZEROS)
L-444 ((M-11 MD) ADD M-11 M-ONES)
L-445 (CALL SELFTEST-ERROR)
L-446 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 4 10) M-11 M-ZEROS)
L-447 (CALL SELFTEST-ERROR IF-NOT-IN-CLASS M-9)
L-448 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-12 M-8)
L-449 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-11 M-7)
L-450 (POPJ)

;; Writes Tag-Classifier memory based on top two PDL-BUFFER elements.
;; Push 32 bits of data, followed by a 4-bit address. Iterates over
;; the 32 bits of data from high to low, doing a write-m-tag-classifier
;; with the bit index in the tag field M<29:25>, the bit itself in one
;; of the CDR-Code fields M<30>, and the address in the condition field
;; of the instruction by the grace of IMOD-LOW.
L-451 ((M-23) SETM C-PDL-BUFFER-POINTER-POP)
L-452 ((M-22) DPB (BYTE-FIELD 1 5) M-ONES M-ZEROS)
L-453 ((M-22 IMOD-LOW) ADD M-22 M-ONES)
L-454 ((M-0) LDB ROTATE-RIGHT (BYTE-FIELD 1 0) C-PDL-BUFFER-POINTER M-ZEROS)
L-455 ((M-4) DPB (BYTE-FIELD 1 30) M-0 M-ZEROS)
L-456 ((M-4) DPB (BYTE-FIELD 5 25) M-22 M-4)
L-457 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 4 10) M-23 M-ZEROS)
L-458 ((M-0) SETM WRITE-M-TAG-CLASSIFIER M-4)
L-459 (JUMP L-453 IF-NOT-EQUAL M-22 M-ZEROS)
L-460 ((M-0) SETM C-PDL-BUFFER-POINTER-POP AND-POPJ)

;; Set up a level-1 map for the first 128 pages, all invalid oldspace (?).
L-461 ((M-0 MD) SETZ)
L-462 ((M-0 VMA) DPB (BYTE-FIELD 10 0) M-ONES M-ZEROS)
L-463 ((M-1) DPB (BYTE-FIELD 1 13) M-ONES M-ZEROS)
L-464 ((M-0 VMA-WRITE-MAP-LEVEL-1) M+1 VMA)
L-465 ((M-0 MD) ADD MD M-1)
L-466 (JUMP L-464 IF-BIT-CLEAR (BYTE-FIELD 1 12) MD)
L-467 (POPJ)

L-468 ((A-116) DPB (BYTE-FIELD 1 1) M-ONES M-ZEROS)
L-469 ((A-113) DPB (BYTE-FIELD 1 20) M-ONES M-ZEROS)

;; Point M-6 to the last quarter of the slot space for the CPU.
L-470 ((M-6 MD) LDB (BYTE-FIELD 4 4) MCR M-ONES)
L-471 ((M-6 MD) SETCM M-6)
L-472 ((M-6 MD) DPB (BYTE-FIELD 4 24) M-6 M-ZEROS)
L-473 ((M-6 MD) DPB (BYTE-FIELD 4 28) M-ONES M-6)
L-474 ((M-6 MD) DPB (BYTE-FIELD 2 22) M-ONES M-6)

L-475 ((M-7 MD) ADD M-6 A-113)
L-476 ((M-8 MD) ADD M-7 A-113)
L-477 ((M-0 VMA) DPB (BYTE-FIELD 1 11) M-ONES M-ZEROS)
L-478 ((M-0 MD-WRITE-MAP-LEVEL-1) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-479 ((M-0 VMA) LDB (BYTE-FIELD 22 22) M-6 M-ZEROS)
L-480 ((M-0 MD-WRITE-MAP-LEVEL-2-ADDRESS) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-481 ((M-0 VMA) SETZ)
L-482 ((M-0 MD-WRITE-MAP-LEVEL-2-CONTROL) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-483 ((M-5) DPB (BYTE-FIELD 1 2) M-ONES M-ZEROS)

;; This tests for accesses to a not-present level-1 map.
L-484 ((M-0 MD-START-READ) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-485 (CALL SELFTEST-ERROR IF-NOT-PAGE-FAULT)
L-486 ((M-0 MD-START-WRITE) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-487 (CALL SELFTEST-ERROR IF-NOT-PAGE-FAULT)

L-488 ((M-0 VMA) DPB (BYTE-FIELD 1 9) M-ONES M-ZEROS)
L-489 ((M-0 MD-WRITE-MAP-LEVEL-2-CONTROL) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-490 ((M-10) SETCM M-5)

;; This tests for accesses to a read-only map.
L-491 ((M-0 VMA-START-READ) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-492 (CALL SELFTEST-ERROR IF-PAGE-FAULT)
L-493 ((M-0 MD-START-WRITE) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-494 (CALL SELFTEST-ERROR IF-NOT-PAGE-FAULT)

L-495 ((M-0 VMA) DPB (BYTE-FIELD 2 8) M-ONES M-ZEROS)
L-496 ((M-0 MD-WRITE-MAP-LEVEL-2-CONTROL) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-497 ((M-10) M+1 M-10)

;; This tests for accesses to a read-write map.
L-498 ((M-0 VMA-START-WRITE) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-499 (CALL SELFTEST-ERROR IF-PAGE-FAULT)

L-500 ((M-0 C-PDL-BUFFER-POINTER) SETZ)

;; Test unmapped-read behavior.
;; None of the ABJs in this block may be taken.
L-501 ((M-0 VMA-START-UNMAPPED-READ) LDB (BYTE-FIELD 30 30) M-6 M-ZEROS)
L-502 ((M-12) SETM IF-MEMORY-BUSY MICRO-STACK-POINTER AND-CALL-ILLOP)
L-503 ((M-0 MICRO-STACK-DATA-PUSH) SETZ IF-PAGE-FAULT AND-CALL-TRAP)
L-504 ((M-0 MICRO-STACK-DATA-PUSH) SETO IF-PAGE-FAULT-OR-INTERRUPT-PENDING
       AND-CALL-TRAP)
L-505 ((M-1) SETM IF-PAGE-FAULT-OR-INTERRUPT-PENDING-OR-SEQUENCE-BREAK MCR
       AND-CALL-TRAP)
L-506 ((M-0 MCR) DPB IF-INTERRUPT-PENDING (BYTE-FIELD 1 14) M-ONES M-1
       AND-CALL-TRAP)
L-507 ((M-0) SETZ IF-NOT-PAGE-FAULT-OR-INTERRUPT-PENDING-OR-SEQUENCE-BREAK
       AND-CALL-TRAP)
L-508 ((M-13) LDB (BYTE-FIELD 20 0) MICRO-STACK-DATA-POP M-ONES)
L-509 (CALL SELFTEST-ERROR IF-NOT-EQUAL M-13 M-ONES)
L-510 (CALL SELFTEST-ERROR IF-NOT-EQUAL MICRO-STACK-DATA-POP M-ZEROS)
L-511 (CALL SELFTEST-ERROR IF-NOT-EQUAL MICRO-STACK-POINTER M-12)

;; Enable external memory cycles.
L-512 ((M-4) SETM MCR)
L-513 ((M-4 MCR) DPB (BYTE-FIELD 1 8) M-ONES M-4)
L-514 ((M-4) DPB (BYTE-FIELD 3 0) M-ONES M-ZEROS)

L-515 ((M-0 VMA-START-UNMAPPED-READ) SETM M-6)

L-516 (CALL L-529)

L-517 ((M-1) SETM MCR)
L-518 ((M-0 MCR) DPB (BYTE-FIELD 1 7) M-ONES M-1)
L-519 ((M-4) DPB (BYTE-FIELD 2 0) M-ONES M-ZEROS)

L-520 ((M-0 MD-START-UNMAPPED-READ) SETZ)
L-521 (CALL L-529)
L-522 ((M-0 MD-START-UNMAPPED-BYTE-READ) SETZ)
L-523 (CALL L-529)
L-524 ((M-0 VMA-START-UNMAPPED-READ) SETM M-6)
L-525 (CALL L-529)
L-526 ((M-0 VMA-START-UNMAPPED-BYTE-READ) SETM M-6)
L-527 (CALL L-529)
L-528 (JUMP L-536)

L-529 (CALL SELFTEST-ERROR IF-NOT-MEMORY-BUSY)
L-530 ((M-0 MD) DPB (BYTE-FIELD 8 0) MD M-ZEROS)
L-531 (CALL SELFTEST-ERROR IF-NOT-EQUAL MD M-4)
L-532 (CALL SELFTEST-ERROR IF-NUBUS-ERROR)
L-533 (CALL SKIP-NEXT-INSTRUCTION IF-NOT-NUBUS-ERROR)
L-534 (CALL SELFTEST-ERROR)
L-535 (POPJ)

;; Enable interrupts.
L-536 ((M-1) SETM MCR)
L-537 ((M-0 MCR) DPB (BYTE-FIELD 1 15) M-ONES M-1)

L-538 ((M-11 MD) DPB (BYTE-FIELD 4 0) M-ONES M-ZEROS)
L-539 ((M-1) DPB (BYTE-FIELD 4 2) M-11 M-ZEROS)
L-540 ((M-0 MD) SETO)
L-541 ((M-0 VMA-START-UNMAPPED-WRITE) ADD M-8 M-1)
L-542 (NO-OP)
L-543 ((M-0 MD) SETM MD)
L-544 (NO-OP)
L-545 (NO-OP)
L-546 (CALL SELFTEST-ERROR IF-NO-INTERRUPT-PENDING)
L-547 ((M-0 MD) LDB (BYTE-FIELD 4 16) MCR M-ZEROS)
L-548 (CALL SELFTEST-ERROR IF-NOT-EQUAL MD M-11)
L-549 (JUMP-XCT-NEXT L-539 IF-NOT-EQUAL M-11 A-116)
L-550 ((M-11) ADD M-11 M-ONES)

L-551 ((M-11 MD) DPB (BYTE-FIELD 4 0) M-ONES M-ZEROS)
L-552 ((M-1) DPB (BYTE-FIELD 4 2) M-11 M-ZEROS)
L-553 ((M-0 MD) SETZ)
L-554 ((M-0 VMA-START-UNMAPPED-WRITE) ADD M-8 M-1)
L-555 (NO-OP)
L-556 ((M-0 MD) SETM MD)
L-557 (JUMP-XCT-NEXT L-552 IF-NOT-EQUAL M-11 A-116)
L-558 ((M-11) ADD M-11 M-ONES)

L-559 (NO-OP)
L-560 (NO-OP)
L-561 (CALL SELFTEST-ERROR IF-INTERRUPT-PENDING)

L-562 (CALL L-461)

L-563 ((M-0 VMA-WRITE-MAP-LEVEL-1) SETZ)
L-564 ((M-0 MD) ADD MD M-1)
L-565 (JUMP L-563 IF-BIT-CLEAR (BYTE-FIELD 1 7) MD)
L-566 ((M-0 MD) SETZ)
L-567 ((M-1) DPB (BYTE-FIELD 1 8) M-ONES M-ZEROS)
L-568 ((M-0 VMA-WRITE-MAP-LEVEL-2-CONTROL) SETZ)
L-569 ((M-0 VMA-WRITE-MAP-LEVEL-2-ADDRESS) SETZ)
L-570 ((M-0 MD) ADD MD M-1)
L-571 (JUMP L-568 IF-BIT-CLEAR (BYTE-FIELD 1 12) MD)
L-572 ((M-1 MD) DPB (BYTE-FIELD 4 0) M-ONES M-ZEROS)
L-573 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM M-ZEROS)
L-574 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM M-1)
L-575 (CALL L-451)
L-576 (JUMP-XCT-NEXT L-573 IF-NOT-EQUAL M-1 M-ZEROS)
L-577 ((M-1 MD) ADD M-1 M-ONES)


;; Okay it looks like the CPU diagnostics may now be over with.
;; Again with the parity halt enable...
L-578 ((M-4) SETM MCR)
L-579 ((M-0 MCR) DPB (BYTE-FIELD 1 12) M-ZEROS M-4)

L-580 ((M-1 PDL-BUFFER-POINTER) SETZ)
L-581 ((M-4) DPB (BYTE-FIELD 1 17) M-ONES M-ZEROS)

;; Clear microstack, I-Memory, PDL-Buffer, and dispatch memory.
L-582 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 10 19) M-1 M-ZEROS)
L-583 (NO-OP)
L-584 ((M-4) SETM M-4)
L-585 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETZ)
L-586 ((M-0 MICRO-STACK-DATA-PUSH) SETZ)
L-587 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-1 M-ZEROS)
L-588 (ACCESS-I-MEM)
L-589 (WRITE-I-MEM M-ZEROS M-4)
L-590 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 20) M-1 M-ZEROS)
L-591 (WRITE-DISPATCH-RAM 0 M-0 M-ZEROS)
L-592 ((M-1) M+1 M-1)
L-593 (JUMP L-582 IF-BIT-CLEAR (BYTE-FIELD 1 18) M-1)

L-594 ((M-1) DPB (BYTE-FIELD 1 6) M-ONES M-ZEROS)
L-595 ((M-0 MD) DPB (BYTE-FIELD 1 2) M-ONES M-ZEROS)

;; Clear M-Memory.
L-596 ((M-1) M-A-1 M-1 M-ZEROS)
L-597 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 6 19) M-1 M-ZEROS)
L-598 ((M-0) SETM M-ZEROS)
L-599 (JUMP L-596 IF-NOT-EQUAL MD M-1)

L-600 ((M-ONES MICRO-STACK-POINTER) SETO)
L-601 ((M-0 PDL-BUFFER-INDEX) SETZ)
L-602 ((M-0 PDL-BUFFER-POINTER) SETZ)
L-603 ((M-0 LOCATION-COUNTER) SETZ)
L-604 ((M-0 VMA) SETZ)

;; Final gotcha: setting MCR to 0 can't clear the loop-self-test bit.
L-605 ((M-0 MCR) SETZ)
L-606 (JUMP-XCT-NEXT L-0 IF-BIT-CLEAR (BYTE-FIELD 1 9) MCR)
L-607 ((M-ZEROS MD) SETZ)

;; Now we're really finished with self-tests, right?
;; Turn off the front-panel LEDs.
L-608 ((M-1) SETM MCR)
L-609 ((M-1 MCR) DPB (BYTE-FIELD 9 0) M-ONES M-1)
;; Do something else (what is bit 27?)
L-610 ((M-1 MCR) DPB (BYTE-FIELD 1 27) M-ONES M-1)

L-611 (CALL L-1938)
L-612 ((A-144) DPB (BYTE-FIELD 3 13) M-ONES M-ZEROS)
L-613 ((M-47) SETO)
L-614 ((M-4) SETZ)
L-615 (CALL-XCT-NEXT L-895)
L-616 ((M-5) SETA (A-CONSTANT 16))
L-617 (JUMP L-626 IF-EQUAL M-6 M-ONES)
L-618 (JUMP L-626 IF-GREATER-OR-EQUAL M-6 M-46)
L-619 (CALL-XCT-NEXT L-1904)
L-620 ((M-0 VMA) SETA A-121)
L-621 (JUMP L-624 IF-BIT-CLEAR (BYTE-FIELD 1 30) MD)
L-622 (CALL L-836)
L-623 (JUMP L-692 IF-EQUAL M-ZEROS A-145)
L-624 (JUMP-XCT-NEXT L-615)
L-625 ((M-4) M+1 M-6)
L-626 ((M-4) SETZ)
L-627 (CALL-XCT-NEXT L-895)
L-628 ((M-5) DPB (BYTE-FIELD 1 6) M-ONES M-ZEROS)
L-629 (JUMP L-649 IF-EQUAL M-6 M-ONES)
L-630 (CALL-XCT-NEXT L-1317)
L-631 ((M-21) SETA A-127)
L-632 ((M-14) SETM M-21)
L-633 (CALL-XCT-NEXT L-1904)
L-634 ((M-0 VMA) ADD M-14 A-97)
L-635 (JUMP-XCT-NEXT L-627 IF-NOT-EQUAL MD (A-CONSTANT 1))
L-636 ((M-4) ADD M-6 (A-CONSTANT 1))
L-637 ((A-119) SETO)
L-638 (CALL L-685)
L-639 ((A-141) LDB (BYTE-FIELD 24 0) M-15 M-ZEROS)
L-640 ((M-47) LDB (BYTE-FIELD 8 8) M-15 M-ZEROS)
L-641 (CALL L-685)
L-642 ((A-140) LDB (BYTE-FIELD 24 0) M-15 M-ZEROS)
L-643 ((M-48) LDB (BYTE-FIELD 8 8) M-15 M-ZEROS)
L-644 (CALL L-685)
L-645 ((M-26) LDB (BYTE-FIELD 24 0) M-15 M-ZEROS)
L-646 ((M-25) LDB (BYTE-FIELD 8 8) M-15 M-ZEROS)
L-647 (JUMP-XCT-NEXT L-654)
L-648 ((M-6) SETO)
L-649 ((M-4) SETZ)
L-650 (CALL-XCT-NEXT L-895)
L-651 ((M-5) SETA (A-CONSTANT 8))
L-652 (JUMP-XCT-NEXT L-663 IF-EQUAL M-6 M-ONES)
L-653 ((M-47) SETM M-6)
L-654 (CALL L-1381)
L-655 (JUMP L-662 IF-EQUAL M-ZEROS A-145)
L-656 (JUMP L-659 IF-EQUAL M-ZEROS A-169)
L-657 ((M-52) SETA A-169)
L-658 ((A-169) SETZ)
L-659 ((A-141) SETZ)
L-660 (JUMP-XCT-NEXT L-650)
L-661 ((M-4) ADD M-6 (A-CONSTANT 1))
L-662 (CALL L-752)
L-663 ((M-32) SETA (A-CONSTANT 2))
L-664 ((A-131) SETO)
L-665 ((M-4) SETZ)

L-666 (CALL L-678)
L-667 ((A-118) SETM M-47)
L-668 ((M-47) SETO)
L-669 (CALL L-763)
L-670 ((M-47) SETA A-118)
L-671 (JUMP L-676 IF-EQUAL M-ZEROS A-145)
L-672 (CALL L-758)
L-673 (CALL L-781)
L-674 (JUMP-XCT-NEXT L-666)
L-675 ((M-4) M+1 M-6)

L-676 (CALL L-1977)
L-677 (JUMP L-742)

L-678 (CALL-XCT-NEXT L-895)
L-679 ((M-5) SETA (A-CONSTANT 1))

L-680 ((A-117) SETM M-6)
L-681 ((A-1018) DPB (BYTE-FIELD 4 24) M-6 A-112)
L-682 (POPJ IF-NOT-EQUAL M-6 M-ONES)
L-683 (JUMP-XCT-NEXT L-1239)
L-684 ((A-145) SETA A-150)

L-685 (CALL-XCT-NEXT L-1317)
L-686 ((M-21) SETM M-14)
L-687 ((M-15) LDB (BYTE-FIELD 24 0) M-21 M-ZEROS)
L-688 (CALL-XCT-NEXT L-1904)
L-689 ((M-0 VMA) ADD M-14 (A-CONSTANT 12))
L-690 ((M-15) DPB (BYTE-FIELD 8 24) MD M-15 AND-POPJ-XCT-NEXT)
L-691 ((M-14) ADD M-14 (A-CONSTANT 16))
L-692 (CALL L-726)
L-693 (CALL-XCT-NEXT L-678)
L-694 ((M-4) SETZ)

L-695 ((M-21) DPB (BYTE-FIELD 1 16) M-ONES A-1018)
L-696 ((M-0 VMA-START-UNMAPPED-READ) ADD M-21 (A-CONSTANT 4))
L-697 (NO-OP)
L-698 ((M-31 VMA) SETM MD)
L-699 ((M-0 MD-START-UNMAPPED-WRITE) SETZ)
L-700 (CALL L-726)
L-701 ((M-0 VMA-START-UNMAPPED-READ) ADD M-31 (A-CONSTANT 4))
L-702 (NO-OP)
L-703 ((A-1018) SETM MD)
L-704 ((M-0 VMA-START-UNMAPPED-READ) ADD VMA (A-CONSTANT 4))
L-705 (NO-OP)
L-706 ((A-1019) SETM MD)
L-707 ((M-0 VMA-START-UNMAPPED-READ) ADD VMA (A-CONSTANT 4))
L-708 (NO-OP)
L-709 ((A-1020) SETM MD)
L-710 ((M-0 VMA-START-UNMAPPED-READ) ADD VMA (A-CONSTANT 4))
L-711 (NO-OP)
L-712 ((A-1021) SETM MD)
L-713 ((M-0 VMA-START-UNMAPPED-READ) ADD VMA (A-CONSTANT 4))
L-714 (NO-OP)
L-715 ((A-1022) SETM MD)
L-716 ((A-1016) SETM M-31)
L-717 ((M-24) SETA (A-CONSTANT 1))

L-718 (CALL L-45)
L-719 (CALL L-1287)
L-720 (JUMP L-1216 IF-NOT-EQUAL M-ZEROS A-145)
L-721 (CALL L-1293)
L-722 (JUMP L-1216 IF-NOT-EQUAL M-ZEROS A-145)
L-723 (CALL L-1303)
L-724 (JUMP L-1216 IF-NOT-EQUAL M-ZEROS A-145)
L-725 (JUMP L-1141)
L-726 ((M-14) DPB (BYTE-FIELD 4 24) M-46 A-112)
L-727 ((M-14) DPB (BYTE-FIELD 3 21) M-ONES M-14)
L-728 ((M-15) LDB (BYTE-FIELD 4 16) MCR M-ZEROS)
L-729 (JUMP L-728 IF-GREATER M-15 (A-CONSTANT 2))
L-730 ((M-0 VMA) DPB (BYTE-FIELD 4 2) M-15 M-14)
L-731 ((M-0 MD-START-UNMAPPED-WRITE) SETZ)
L-732 (NO-OP)
L-733 ((M-0 MD) SETM MD)
L-734 (POPJ IF-EQUAL M-15 (A-CONSTANT 2))
L-735 (JUMP L-728)
L-736 ((M-0 MD) SETA A-145)
L-737 (JUMP L-739 IF-NOT-EQUAL MD A-149)
L-738 ((M-0 MD) DPB (BYTE-FIELD 1 31) M-ZEROS A-146)
L-739 ((M-0 VMA-START-UNMAPPED-WRITE) SETM M-31)
L-740 (JUMP L-700)
L-741 (CALL L-752)
L-742 ((M-44) SETZ)
L-743 (CALL-XCT-NEXT L-1327)
L-744 ((A-180) DPB (BYTE-FIELD 1 21) M-ONES M-ZEROS)
L-745 ((M-6) SETZ)
L-746 (CALL L-912)
L-747 (JUMP L-936 IF-EQUAL M-6 M-ONES)
L-748 (CALL L-763)
L-749 (CALL L-1395 IF-EQUAL M-32 (A-CONSTANT 4))
L-750 (JUMP-XCT-NEXT L-746)
L-751 ((M-6) M+1 M-6)
L-752 (CALL-XCT-NEXT L-1398)
L-753 ((A-161) SETA (A-CONSTANT 12))
L-754 (CALL-XCT-NEXT L-758)
L-755 ((M-6) SETM M-46)
L-756 (JUMP-XCT-NEXT L-1334)
L-757 ((A-158) SETA (A-CONSTANT 15))
L-758 (CALL-XCT-NEXT L-1334)
L-759 ((A-158) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 12))
L-760 (CALL-XCT-NEXT L-1368)
L-761 ((A-162) SETM M-6)
L-762 (JUMP L-1330)
L-763 (CALL L-758)
L-764 (CALL L-787)
L-765 (JUMP-XCT-NEXT L-780 IF-NOT-EQUAL M-ZEROS A-145)
L-766 ((A-158) SETA (A-CONSTANT 18))
L-767 (CALL L-836)
L-768 (JUMP-XCT-NEXT L-780 IF-NOT-EQUAL M-ZEROS A-145)
L-769 ((A-158) SETA (A-CONSTANT 19))
L-770 (CALL L-850)
L-771 (JUMP-XCT-NEXT L-780 IF-NOT-EQUAL M-ZEROS A-145)
L-772 ((A-158) SETA (A-CONSTANT 20))
L-773 (CALL L-871 IF-NOT-EQUAL M-32 M-ZEROS)
L-774 (JUMP L-781 IF-NOT-EQUAL M-ZEROS A-145)
L-775 ((M-0 VMA) SETA A-124)
L-776 (CALL-XCT-NEXT L-1908)
L-777 ((M-0 MD) SETZ)
L-778 (JUMP-XCT-NEXT L-1334)
L-779 ((A-158) SETA (A-CONSTANT 25))
L-780 (CALL L-1334)
L-781 ((A-144) SETO)
L-782 (CALL-XCT-NEXT L-1334)
L-783 ((A-158) SETA (A-CONSTANT 22))
L-784 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-6 M-ZEROS)
L-785 ((M-44) DPB (BYTE-FIELD 1 0) M-ONES M-44)
L-786 ((A-145) SETO AND-POPJ)
L-787 (CALL-XCT-NEXT L-1904)
L-788 ((M-0 VMA) SETA A-126)
L-789 (JUMP L-812 IF-NOT-EQUAL MD A-110)
L-790 (CALL-XCT-NEXT L-1904)
L-791 ((M-0 VMA) SETA A-125)
L-792 ((M-0 IMOD-LOW) LDB (BYTE-FIELD 5 0) MD M-ZEROS)
L-793 ((M-18) DPB (BYTE-FIELD 1 0) M-ONES M-ZEROS)
L-794 ((M-1) DPB (BYTE-FIELD 24 2) M-18 M-ZEROS)
L-795 ((M-12) SUB M-ZEROS M-1)
L-796 ((M-18) SUB M-18 (A-CONSTANT 18))
L-797 ((M-45) SETZ)
L-798 (CALL-XCT-NEXT L-1904)
L-799 ((M-0 VMA) DPB (BYTE-FIELD 4 24) M-6 M-12)
L-800 (CALL L-813)
L-801 ((M-12) ADD M-12 (A-CONSTANT 4))
L-802 ((M-18) M-A-1 M-18 M-ZEROS)
L-803 (JUMP L-798 IF-NOT-EQUAL M-18 M-ZEROS)
L-804 (CALL-XCT-NEXT L-1904)
L-805 ((M-0 VMA) DPB (BYTE-FIELD 4 24) M-6 M-12)
L-806 ((M-13) DPB (BYTE-FIELD 8 0) MD M-ZEROS)
L-807 (CALL-XCT-NEXT L-1904)
L-808 ((M-0 VMA) ADD VMA (A-CONSTANT 4))
L-809 ((M-13) DPB (BYTE-FIELD 8 8) MD M-13)
L-810 (JUMP L-812 IF-NOT-EQUAL M-13 M-45)
L-811 ((A-145) SETZ AND-POPJ)
L-812 ((A-145) SETO AND-POPJ)
L-813 ((M-22) DPB (BYTE-FIELD 2 7) M-ONES (A-CONSTANT 19))
L-814 ((M-23) SETA (A-CONSTANT 21))
L-815 ((M-22) DPB (BYTE-FIELD 5 10) M-23 M-22)
L-816 ((M-19) AND M-45 M-22)
L-817 ((M-20) SETZ)
L-818 (JUMP-XCT-NEXT L-821 IF-BIT-CLEAR (BYTE-FIELD 1 0) M-19)
L-819 ((M-19) SETM OUTPUT-SELECTOR-RIGHTSHIFT-1 M-19)
L-820 ((M-20) SETCM M-20)
L-821 (JUMP L-818 IF-NOT-EQUAL M-19 M-ZEROS)
L-822 ((M-45) SETM OUTPUT-SELECTOR-RIGHTSHIFT-1 M-45)
L-823 ((M-45) DPB (BYTE-FIELD 1 15) M-20 M-45)
L-824 ((M-19) LDB (BYTE-FIELD 2 0) MD M-ZEROS)
L-825 ((M-0 MD) LDB (BYTE-FIELD 6 30) MD M-ZEROS)
L-826 ((M-19) DPB (BYTE-FIELD 1 4) MD M-19)
L-827 ((M-0 MD) LDB (BYTE-FIELD 5 31) MD M-ZEROS)
L-828 ((M-19) DPB (BYTE-FIELD 2 7) MD M-19)
L-829 ((M-0 MD) LDB (BYTE-FIELD 3 30) MD M-ZEROS)
L-830 ((M-19) DPB (BYTE-FIELD 1 10) MD M-19)
L-831 ((M-0 MD) LDB (BYTE-FIELD 2 31) MD M-ZEROS)
L-832 ((M-19) DPB (BYTE-FIELD 1 12) MD M-19)
L-833 ((M-0 MD) LDB (BYTE-FIELD 1 31) MD M-ZEROS)
L-834 ((M-19) DPB (BYTE-FIELD 1 14) MD M-19 AND-POPJ-XCT-NEXT)
L-835 ((M-45) XOR M-45 M-19)

L-836 (CALL-XCT-NEXT L-1904)
L-837 ((M-0 VMA) SETA A-121)
L-838 (JUMP L-849 IF-BIT-CLEAR (BYTE-FIELD 1 0) MD)
L-839 ((M-22) DPB (BYTE-FIELD 2 19) M-ONES M-ZEROS)
L-840 (CALL-XCT-NEXT L-1317)
L-841 ((M-21) SETA A-122)
L-842 (CALL-XCT-NEXT L-1904)
L-843 ((M-0 VMA) SETM M-21)
L-844 (JUMP L-848 IF-BIT-CLEAR (BYTE-FIELD 1 0) MD)
L-845 ((M-22) ADD M-ONES M-22)
L-846 (JUMP L-840 IF-NOT-EQUAL M-22 M-ZEROS)
L-847 ((A-145) SETO AND-POPJ)
L-848 (JUMP L-847 IF-BIT-SET (BYTE-FIELD 1 31) MD)
L-849 ((A-145) SETZ AND-POPJ)
L-850 (CALL-XCT-NEXT L-1904)
L-851 ((M-0 VMA) SETA A-121)
L-852 (JUMP L-870 IF-BIT-CLEAR (BYTE-FIELD 1 31) MD)
L-853 ((M-0 MD) SETA A-117)
L-854 ((M-0 MD) DPB (BYTE-FIELD 4 4) MD M-ZEROS)
L-855 ((M-0 VMA) SETA A-124)
L-856 (CALL-XCT-NEXT L-1908)
L-857 ((M-0 VMA) ADD VMA (A-CONSTANT 4))
L-858 ((M-0 VMA) SETA A-124)
L-859 (CALL-XCT-NEXT L-1908)
L-860 ((M-0 MD) SETA (A-CONSTANT 14))
L-861 ((M-22) DPB (BYTE-FIELD 1 19) M-ONES M-ZEROS)
L-862 (CALL-XCT-NEXT L-1904)
L-863 ((M-0 VMA) SETA A-124)
L-864 (JUMP L-869 IF-BIT-CLEAR (BYTE-FIELD 1 29) MD)
L-865 (CALL L-1326)
L-866 (JUMP-XCT-NEXT L-862 IF-GREATER M-22 M-ZEROS)
L-867 ((M-22) ADD M-22 M-ONES)
L-868 ((A-145) SETO AND-POPJ)
L-869 (JUMP L-868 IF-BIT-SET (BYTE-FIELD 1 30) MD)
L-870 ((A-145) SETZ AND-POPJ)
L-871 ((M-0 VMA) SETA A-124)
L-872 (CALL-XCT-NEXT L-1908)
L-873 ((M-0 MD) SETA (A-CONSTANT 4))
L-874 ((M-59) DPB (BYTE-FIELD 4 24) M-6 A-112)
L-875 (CALL-XCT-NEXT L-1317)
L-876 ((M-21) SETA A-123)
L-877 ((DEI-CODE-BASE) SETM M-21)
L-878 ((M-53) SETZ)
L-879 ((A-164) SETZ)
L-880 ((A-165) SETM M-32)
L-881 ((A-166) SETA A-131)
L-882 ((M-12) SETM M-52)

L-883 (CALL-XCT-NEXT L-1453)
L-884 ((M-63) SETZ)

L-885 ((M-52) SETM M-12)
L-886 ((DEI-DS-POINTER) SETM DEI-DS-LOWER-LIMIT)
L-887 ((M-21) SETA A-145)
L-888 (JUMP L-894 IF-EQUAL M-21 A-151)
L-889 (JUMP L-893 IF-NOT-EQUAL M-ZEROS A-145)
L-890 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-53 M-ZEROS)
L-891 ((M-1) SETA M-0)
L-892 (JUMP L-894 IF-BIT-CLEAR (BYTE-FIELD 1 0) M-1)
L-893 ((A-145) SETO AND-POPJ)
L-894 ((A-145) SETZ AND-POPJ)
L-895 (CALL-XCT-NEXT L-903)
L-896 ((M-12) SETZ)
L-897 (POPJ IF-EQUAL M-6 M-ONES)
L-898 (CALL L-787)
L-899 (POPJ IF-EQUAL M-ZEROS A-145)
L-900 (JUMP-XCT-NEXT L-895)
L-901 ((M-4) M+1 M-6)
L-902 ((M-12) SETM M-44)
L-903 ((M-6) SETM M-4)
L-904 (CALL L-912)
L-905 (POPJ IF-EQUAL M-6 M-ONES)
L-906 ((M-21) AND M-13 M-5)
L-907 (JUMP L-910 IF-EQUAL M-21 M-ZEROS)
L-908 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-6 M-ZEROS)
L-909 (POPJ IF-BIT-CLEAR ROTATE-RIGHT (BYTE-FIELD 1 0) M-12)
L-910 (JUMP-XCT-NEXT L-904)
L-911 ((M-6) M+1 M-6)

L-912 (JUMP L-925 IF-GREATER M-6 (A-CONSTANT 15))
L-913 (JUMP L-925 IF-LESS M-6 M-ZEROS)
L-914 (CALL L-926)
L-915 (CALL-XCT-NEXT L-1904)
L-916 ((M-0 VMA) SETA A-120)
L-917 ((M-13) SETM MD)
L-918 (JUMP L-923 IF-NOT-EQUAL M-ZEROS A-173)
L-919 ((M-21) SETA A-123)
L-920 (CALL-XCT-NEXT L-1317)
L-921 ((M-21) ADD M-21 (A-CONSTANT 24))
L-922 ((A-124) SETM M-21 AND-POPJ)
L-923 (JUMP-XCT-NEXT L-912 IF-LESS M-6 (A-CONSTANT 15))
L-924 ((M-6) M+1 M-6)

L-925 ((M-6) SETO AND-POPJ)

L-926 ((M-21) SETCA M-0 A-111)
L-927 ((A-120) DPB (BYTE-FIELD 4 24) M-6 M-21)
L-928 ((A-126) DPB (BYTE-FIELD 1 2) M-ONES A-120)
L-929 ((M-21) SETA A-120)
L-930 ((A-121) ADD M-21 (A-CONSTANT 16))
L-931 ((A-122) ADD M-21 (A-CONSTANT 20))
L-932 ((A-123) ADD M-21 A-96)
L-933 ((M-21) DPB (BYTE-FIELD 3 5) M-ONES A-122)
L-934 ((A-125) DPB (BYTE-FIELD 1 6) M-ZEROS M-21)
L-935 ((A-127) DPB (BYTE-FIELD 1 8) M-ZEROS M-21 AND-POPJ)

L-936 (CALL L-951)
L-937 (JUMP L-955 IF-EQUAL M-47 M-ONES)
L-938 (JUMP-XCT-NEXT L-945 IF-NOT-EQUAL M-ZEROS A-119)
L-939 ((M-6) SETO)
L-940 ((M-4) SETZ)
L-941 (CALL-XCT-NEXT L-895)
L-942 ((M-5) SETA A-96)
L-943 ((M-48) SETM M-6)
L-944 (JUMP L-955 IF-EQUAL M-6 M-ONES)
L-945 (CALL L-1400)
L-946 (JUMP L-957 IF-EQUAL M-ZEROS A-145)
L-947 (CALL L-951)
L-948 ((A-140) SETZ)
L-949 (JUMP-XCT-NEXT L-941)
L-950 ((M-4) ADD M-6 (A-CONSTANT 1))
L-951 ((A-171) SETZ)
L-952 (POPJ IF-EQUAL M-ZEROS A-170)
L-953 ((M-52) SETA A-170)
L-954 ((A-170) SETZ AND-POPJ)
L-955 (JUMP-XCT-NEXT L-1004)
L-956 ((M-24) SETA (A-CONSTANT 2))
L-957 (CALL-XCT-NEXT L-1398)
L-958 ((A-161) SETA (A-CONSTANT 7))
L-959 (CALL L-987)
L-960 (CALL L-1395)
L-961 (CALL-XCT-NEXT L-1334)
L-962 ((A-158) SETA A-96)
L-963 (CALL L-979)
L-964 ((A-144) SETO)
L-965 (JUMP L-1004 IF-EQUAL M-30 M-ONES)
L-966 ((M-30) AND M-30 A-107)
L-967 (CALL L-985)
L-968 (JUMP L-1004 IF-EQUAL M-30 A-100)
L-969 (JUMP L-1004 IF-EQUAL M-30 (A-CONSTANT 13))
L-970 (JUMP L-1016 IF-EQUAL M-30 A-103)
L-971 (JUMP L-1020 IF-EQUAL M-30 A-106)
L-972 (JUMP L-1044 IF-EQUAL M-30 A-104)
L-973 (JUMP L-1014 IF-EQUAL M-30 A-102)
L-974 (JUMP-XCT-NEXT L-741 IF-EQUAL M-30 A-105)
L-975 ((M-32) SETA (A-CONSTANT 2))
L-976 (JUMP-XCT-NEXT L-741 IF-EQUAL M-30 A-101)
L-977 ((M-32) SETA (A-CONSTANT 4))
L-978 (JUMP L-961)
L-979 (CALL L-1408)
L-980 (POPJ IF-NOT-EQUAL M-30 A-111)
L-981 (JUMP L-979 IF-GREATER M-ZEROS A-144)
L-982 (JUMP-XCT-NEXT L-979 IF-LESS M-ZEROS A-144)
L-983 ((A-144) ADD M-ONES A-144)
L-984 ((M-30) SETO AND-POPJ)
L-985 (JUMP-XCT-NEXT L-1398)
L-986 ((A-161) SETM M-30)
L-987 (POPJ IF-EQUAL M-ZEROS A-145)
L-988 ((M-14) SETA A-145)
L-989 ((M-15) SETA A-146)
L-990 (JUMP L-998 IF-EQUAL M-14 A-149)
L-991 (CALL-XCT-NEXT L-1334)
L-992 ((A-158) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 7))
L-993 (JUMP L-1002 IF-LESS-OR-EQUAL M-14 M-ZEROS)
L-994 (JUMP L-1002 IF-GREATER M-14 A-149)
L-995 ((M-21) ADD M-ONES M-14)
L-996 (JUMP-XCT-NEXT L-1334)
L-997 ((A-158) DPB (BYTE-FIELD 8 2) M-21 M-ZEROS)
L-998 (CALL-XCT-NEXT L-1334)
L-999 ((A-158) SETA (A-CONSTANT 12))
L-1000 (JUMP L-995 IF-EQUAL M-15 (A-CONSTANT 4))
L-1001 ((M-14) SETM M-15)
L-1002 (JUMP-XCT-NEXT L-1364)
L-1003 ((A-162) SETM M-14)
L-1004 (CALL L-1251)
L-1005 (JUMP L-1011 IF-EQUAL M-25 M-ONES)
L-1006 ((M-49) SETM M-25)
L-1007 ((A-133) SETM M-26)
L-1008 ((A-1022) SETZ)
L-1009 ((A-1023) SETZ)
L-1010 (JUMP L-1116)
L-1011 (JUMP-XCT-NEXT L-959 IF-NOT-EQUAL M-24 (A-CONSTANT 2))
L-1012 ((A-145) SETA A-147)
L-1013 (JUMP L-1239)
L-1014 (JUMP-XCT-NEXT L-1017)
L-1015 ((A-158) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 15))
L-1016 ((A-158) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 9))
L-1017 (CALL L-1343)
L-1018 (JUMP-XCT-NEXT L-1052)
L-1019 ((A-1022) SETA M-28)
L-1020 (JUMP-XCT-NEXT L-1052)
L-1021 ((A-1022) SETZ)
L-1022 (CALL L-1334)
L-1023 ((A-163) SETZ)
L-1024 ((M-14) SETZ)
L-1025 (CALL L-979)
L-1026 (POPJ IF-EQUAL M-30 (A-CONSTANT 13))
L-1027 (JUMP L-1037 IF-EQUAL M-30 (A-CONSTANT 8))
L-1028 (JUMP L-1043 IF-EQUAL M-30 (A-CONSTANT 27))
L-1029 (JUMP L-1025 IF-LESS M-30 A-96)
L-1030 (JUMP L-1025 IF-GREATER M-30 A-109)
L-1031 (JUMP L-1025 IF-GREATER M-14 (A-CONSTANT 24))
L-1032 (CALL L-985)
L-1033 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-14 M-ZEROS)
L-1034 ((A-163) DPB (BYTE-FIELD 8 0) M-30 A-163)
L-1035 ((M-14) ADD M-14 (A-CONSTANT 8))
L-1036 (JUMP L-1025)
L-1037 (JUMP L-1025 IF-EQUAL M-14 M-ZEROS)
L-1038 (CALL L-1332)
L-1039 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-14 M-ZEROS)
L-1040 ((A-163) DPB (BYTE-FIELD 8 0) M-ZEROS A-163)
L-1041 (JUMP-XCT-NEXT L-1025)
L-1042 ((M-14) SUB M-14 (A-CONSTANT 8))
L-1043 ((A-163) SETO AND-POPJ)
L-1044 (CALL-XCT-NEXT L-1022)
L-1045 ((A-158) DPB (BYTE-FIELD 1 5) M-ONES (A-CONSTANT 11))
L-1046 (JUMP L-959 IF-EQUAL M-ONES A-163)
L-1047 ((A-1022) SETA A-163)
L-1048 (CALL-XCT-NEXT L-1022)
L-1049 ((A-158) DPB (BYTE-FIELD 1 5) M-ONES (A-CONSTANT 15))
L-1050 (JUMP L-959 IF-EQUAL M-ONES A-163)
L-1051 ((A-1023) SETA A-163)

L-1052 (CALL L-1251)
L-1053 (CALL-XCT-NEXT L-1334)
L-1054 ((A-158) SETA (A-CONSTANT 27))
L-1055 ((M-7) SETA A-99)
L-1056 ((M-8) SETA A-1018)
L-1057 ((A-136) SETO)
L-1058 ((M-49) SETZ)
L-1059 (CALL L-1247)
L-1060 (JUMP L-1096 IF-EQUAL M-49 M-ONES)
L-1061 (CALL L-1287)
L-1062 (JUMP L-1094 IF-NOT-EQUAL M-ZEROS A-145)
L-1063 (CALL L-1297)
L-1064 (JUMP L-1094 IF-NOT-EQUAL M-ZEROS A-145)
L-1065 ((M-4) SETZ)
L-1066 (CALL L-1268)
L-1067 (JUMP L-1094 IF-EQUAL M-ONES A-133)
L-1068 ((M-0 MD) DPB (BYTE-FIELD 4 24) M-49 A-133)
L-1069 ((M-0 VMA-START-UNMAPPED-WRITE) SETM M-8)
L-1070 ((M-8) ADD M-8 (A-CONSTANT 4))
L-1071 ((A-161) SETA A-96)
L-1072 (JUMP L-1076 IF-NOT-EQUAL M-25 M-49)
L-1073 (JUMP L-1076 IF-NOT-EQUAL M-26 A-133)
L-1074 ((A-161) DPB (BYTE-FIELD 1 5) M-ONES (A-CONSTANT 10))
L-1075 ((A-136) SUB M-7 A-99)
L-1076 (CALL L-1398)
L-1077 (CALL-XCT-NEXT L-1398)
L-1078 ((A-161) SETM M-7)
L-1079 (CALL-XCT-NEXT L-1334)
L-1080 ((A-158) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 10))
L-1081 (CALL-XCT-NEXT L-1368)
L-1082 ((A-162) SETM M-49)
L-1083 (CALL L-1330)
L-1084 (CALL-XCT-NEXT L-1352)
L-1085 ((A-157) SETA A-135)
L-1086 (CALL L-1330)
L-1087 (CALL-XCT-NEXT L-1366)
L-1088 ((A-162) SETA MCR-ENTRY-ADDRESS)
L-1089 (CALL L-1395)
L-1090 ((M-7) M+1 M-7)
L-1091 (JUMP L-1096 IF-GREATER M-7 A-109)
L-1092 (JUMP-XCT-NEXT L-1066)
L-1093 ((M-4) M+1 M-4)
L-1094 (JUMP-XCT-NEXT L-1059)
L-1095 ((M-49) ADD M-49 (A-CONSTANT 1))
L-1096 (JUMP-XCT-NEXT L-959 IF-EQUAL M-7 A-99)
L-1097 ((A-145) SETA A-147)
L-1098 (CALL-XCT-NEXT L-1334)
L-1099 ((A-158) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 3))
L-1100 (CALL L-979)
L-1101 (JUMP L-959 IF-EQUAL M-30 (A-CONSTANT 27))
L-1102 (JUMP-XCT-NEXT L-1110 IF-EQUAL M-30 (A-CONSTANT 13))
L-1103 ((M-21) SETA A-136)
L-1104 (JUMP L-1106 IF-GREATER M-7 A-108)
L-1105 ((M-30) AND M-30 A-107)
L-1106 (CALL L-985)
L-1107 (JUMP L-1098 IF-GREATER-OR-EQUAL M-30 M-7)
L-1108 (JUMP L-1098 IF-LESS M-30 A-99)
L-1109 ((M-21) SUB M-30 A-99)
L-1110 (JUMP L-1052 IF-EQUAL M-21 M-ONES)

L-1111 ((M-21) DPB (BYTE-FIELD 8 2) M-21 M-ZEROS)
L-1112 ((M-0 VMA-START-UNMAPPED-READ) ADD M-21 A-1018)
L-1113 (NO-OP)
L-1114 ((M-49) LDB (BYTE-FIELD 4 8) MD M-ZEROS)
L-1115 ((A-133) LDB (BYTE-FIELD 24 0) MD M-ZEROS)
L-1116 (CALL L-1287)
L-1117 (JUMP L-1216 IF-NOT-EQUAL M-ZEROS A-145)
L-1118 (CALL L-1293)
L-1119 (JUMP L-1136 IF-EQUAL M-ZEROS A-145)
L-1120 (CALL-XCT-NEXT L-1334)
L-1121 ((A-158) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 13))

L-1122 (CALL L-1293)
L-1123 (JUMP L-1136 IF-EQUAL M-ZEROS A-145)
L-1124 ((M-21) SETA A-145)
L-1125 (JUMP L-1216 IF-NOT-EQUAL M-21 A-149)
L-1126 ((M-21) SETA A-146)
L-1127 (JUMP L-1216 IF-GREATER M-21 (A-CONSTANT 2))
L-1128 (CALL-XCT-NEXT L-1398)
L-1129 ((A-161) DPB (BYTE-FIELD 1 5) M-ONES (A-CONSTANT 14))
L-1130 ((M-14) DPB (BYTE-FIELD 1 12) M-ONES M-ZEROS)
L-1131 (CALL L-1408)
L-1132 (JUMP L-959 IF-EQUAL M-30 (A-CONSTANT 27))
L-1133 (JUMP-XCT-NEXT L-1131 IF-GREATER M-14 M-ZEROS)
L-1134 ((M-14) ADD M-14 M-ONES)
L-1135 (JUMP L-1122)

L-1136 ((A-1019) DPB (BYTE-FIELD 8 24) M-47 A-141)
L-1137 ((A-1020) DPB (BYTE-FIELD 8 24) M-48 A-140)
L-1138 ((A-1021) DPB (BYTE-FIELD 8 24) M-49 A-133)
L-1139 (CALL L-1303)
L-1140 (JUMP L-1216 IF-NOT-EQUAL M-ZEROS A-145)
L-1141 ((A-139) SETZ)
L-1142 ((MCR-SOURCE-ADDRESS) SETA A-132)
L-1143 ((A-138) ADD MCR-SOURCE-ADDRESS A-137)

(DEFSYMBOL *M-MEMORY-SYMBOLS* 4 MCR-DATA)
(DEFSYMBOL *M-MEMORY-SYMBOLS* 5 MCR-TEMP)
(DEFSYMBOL *M-MEMORY-SYMBOLS* 6 MCR-TARGET-ADDRESS)
(DEFSYMBOL *M-MEMORY-SYMBOLS* 7 MCR-BLOCK-LENGTH)

;; This is the entry point for the main dispatch for reading a microload.

;; Parity halt enable.
MICROLOAD-DISPATCH ((M-1) SETM MCR)
L-1145 ((M-0 MCR) DPB (BYTE-FIELD 1 12) M-ZEROS M-1)

;; Grab the next 3 words from the microload, storing them in M-5, M-6, and M-7.
MICROLOAD-READ-BLOCK-HEADER (CALL MICROLOAD-READ-WORD)
L-1147 (CALL-XCT-NEXT MICROLOAD-READ-WORD)
L-1148 ((MCR-TEMP) SETM MCR-DATA)
L-1149 (CALL-XCT-NEXT MICROLOAD-READ-WORD)
L-1150 ((MCR-TARGET-ADDRESS) SETM MCR-DATA)
L-1151 ((MCR-BLOCK-LENGTH) SETM MCR-DATA)

;; This feels like fetch-and-dispatch for MCR block type codes.
L-1152 (JUMP MICROLOAD-LOAD-D-MEMORY IF-EQUAL MCR-TEMP (A-CONSTANT 2))
L-1153 (JUMP MICROLOAD-LOAD-MAIN-MEMORY IF-EQUAL MCR-TEMP (A-CONSTANT 3))
L-1154 (JUMP MICROLOAD-LOAD-A-MEMORY IF-EQUAL MCR-TEMP (A-CONSTANT 4))
L-1155 (JUMP MICROLOAD-LOAD-T-MEMORY IF-EQUAL MCR-TEMP (A-CONSTANT 5))
L-1156 (JUMP MICROLOAD-ERROR IF-NOT-EQUAL MCR-TEMP (A-CONSTANT 1))

;; This is the loop that loads I-Memory for a microload.
;; M-6 is microcode address, M-7 is number of microinstructions to
;; load, A-65 is constant 1.

;; If no more microinstructions to load, exit to look for another block.
MICROLOAD-LOAD-I-MEMORY (JUMP MICROLOAD-DISPATCH IF-EQUAL MCR-BLOCK-LENGTH
                         M-ZEROS)

;; If an exit condition with the microcode address is reached, exit to L-1215?
;; If the target address exceeds 14 bits in length, error?
L-1158 ((MCR-DATA) LDB (BYTE-FIELD 18 18) MCR-TARGET-ADDRESS M-ZEROS)
L-1159 (JUMP MICROLOAD-ERROR IF-NOT-EQUAL MCR-DATA M-ZEROS)

;; Store the next two words from the microload to I-Memory address M-6 and
;; decrement M-7.
L-1160 (CALL-XCT-NEXT MICROLOAD-READ-WORD)
L-1161 ((MCR-BLOCK-LENGTH) SUB MCR-BLOCK-LENGTH (A-CONSTANT 1))
L-1162 (CALL-XCT-NEXT MICROLOAD-READ-WORD)
L-1163 ((MCR-TEMP) SETM MCR-DATA)
L-1164 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) MCR-TARGET-ADDRESS M-ZEROS)
L-1165 (ACCESS-I-MEM)
L-1166 (WRITE-I-MEM MCR-DATA MCR-TEMP)

;; Increment M-6 and loop back to check loop exit conditions.
L-1167 (JUMP-XCT-NEXT MICROLOAD-LOAD-I-MEMORY)
L-1168 ((MCR-TARGET-ADDRESS) ADD MCR-TARGET-ADDRESS (A-CONSTANT 1))

;; Load D-Memory?

MICROLOAD-LOAD-D-MEMORY (JUMP MICROLOAD-DISPATCH IF-EQUAL MCR-BLOCK-LENGTH
                         M-ZEROS)
L-1170 ((MCR-DATA) LDB (BYTE-FIELD 20 20) MCR-TARGET-ADDRESS M-ZEROS)
L-1171 (JUMP MICROLOAD-ERROR IF-NOT-EQUAL MCR-DATA M-ZEROS)
L-1172 (CALL-XCT-NEXT MICROLOAD-READ-WORD)
L-1173 ((MCR-BLOCK-LENGTH) SUB MCR-BLOCK-LENGTH (A-CONSTANT 1))
L-1174 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 20) MCR-TARGET-ADDRESS M-ZEROS)
L-1175 (WRITE-DISPATCH-RAM 0 M-0 MCR-DATA)
L-1176 (JUMP-XCT-NEXT MICROLOAD-LOAD-D-MEMORY)
L-1177 ((MCR-TARGET-ADDRESS) ADD MCR-TARGET-ADDRESS (A-CONSTANT 1))

;; Load T-Memory?

MICROLOAD-LOAD-T-MEMORY (JUMP MICROLOAD-DISPATCH IF-EQUAL MCR-BLOCK-LENGTH
                         M-ZEROS)
L-1179 (CALL MICROLOAD-READ-WORD)
L-1180 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM MCR-DATA)
L-1181 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM MCR-TARGET-ADDRESS)
L-1182 (CALL-XCT-NEXT L-451)
L-1183 ((MCR-TARGET-ADDRESS) M+1 MCR-TARGET-ADDRESS)
L-1184 (JUMP-XCT-NEXT MICROLOAD-LOAD-T-MEMORY)
L-1185 ((MCR-BLOCK-LENGTH) SUB MCR-BLOCK-LENGTH (A-CONSTANT 1))

;; Load Main-Memory (block copy)?

MICROLOAD-LOAD-MAIN-MEMORY (CALL MICROLOAD-READ-WORD)
L-1187 (JUMP L-1200 IF-EQUAL MCR-TARGET-ADDRESS M-ZEROS)
L-1188 ((MCR-BLOCK-LENGTH) DPB (BYTE-FIELD 14 10) MCR-BLOCK-LENGTH M-ZEROS)
L-1189 ((MCR-BLOCK-LENGTH) ADD MCR-BLOCK-LENGTH A-132)
L-1190 ((MCR-DATA) DPB (BYTE-FIELD 22 2) MCR-DATA M-ZEROS)
L-1191 ((MCR-DATA) ADD MCR-DATA A-1018)
L-1192 ((MCR-TARGET-ADDRESS) DPB (BYTE-FIELD 24 8) MCR-TARGET-ADDRESS M-ZEROS)
L-1193 ((M-0 VMA-START-UNMAPPED-READ) SETM MCR-BLOCK-LENGTH)
L-1194 ((MCR-BLOCK-LENGTH) ADD MCR-BLOCK-LENGTH (A-CONSTANT 4))
L-1195 ((M-0 VMA-START-UNMAPPED-WRITE) SETM MCR-DATA)
L-1196 ((MCR-DATA) ADD MCR-DATA (A-CONSTANT 4))
L-1197 (JUMP-XCT-NEXT L-1193 IF-GREATER MCR-TARGET-ADDRESS (A-CONSTANT 1))
L-1198 ((MCR-TARGET-ADDRESS) ADD MCR-TARGET-ADDRESS M-ONES)
L-1199 (JUMP MICROLOAD-DISPATCH)

;; Grab next microload word as microcode entry point and loop back to
;; main dispatch.
L-1200 (CALL MICROLOAD-READ-WORD)
L-1201 (JUMP-XCT-NEXT MICROLOAD-DISPATCH)
L-1202 ((A-139) SETM MCR-DATA)

;; Preload A- and M- Memories to PDL-BUFFER?

;; Set PDL-BUFFER-POINTER to just before the address for the final load.
MICROLOAD-LOAD-A-MEMORY ((M-0 PDL-BUFFER-POINTER) SUB MCR-TARGET-ADDRESS
                         (A-CONSTANT 1))

;; Kick-start the new microcode if no more A- or M- memory to load.
L-1204 (JUMP L-1219 IF-EQUAL MCR-BLOCK-LENGTH M-ZEROS)

;; Error exit check?
L-1205 ((MCR-DATA) LDB (BYTE-FIELD 22 22) MCR-TARGET-ADDRESS M-ZEROS)
L-1206 (JUMP MICROLOAD-ERROR IF-NOT-EQUAL MCR-DATA M-ZEROS)

;; Decrement count and get next word.
L-1207 (CALL-XCT-NEXT MICROLOAD-READ-WORD)
L-1208 ((MCR-BLOCK-LENGTH) SUB MCR-BLOCK-LENGTH (A-CONSTANT 1))

;; Store data into PDL-BUFFER and loop back to check our exit conditions.
L-1209 (JUMP-XCT-NEXT L-1204)
L-1210 ((M-0 C-PDL-BUFFER-POINTER-PUSH) SETM MCR-DATA)

MICROLOAD-READ-WORD (JUMP MICROLOAD-ERROR IF-GREATER-OR-EQUAL
                     MCR-SOURCE-ADDRESS A-138)
;; Some sort of memory fetch. Postincrement reads M-27 by A-68 to M-4.
L-1212 ((M-0 VMA-START-UNMAPPED-READ) SETM MCR-SOURCE-ADDRESS)
L-1213 ((MCR-SOURCE-ADDRESS) ADD MCR-SOURCE-ADDRESS (A-CONSTANT 4)
        AND-POPJ-XCT-NEXT)
L-1214 ((MCR-DATA) SETM MD)

;; An error handler for microload operations?
MICROLOAD-ERROR ((A-145) SETA A-148)
L-1216 (JUMP L-736 IF-EQUAL M-24 (A-CONSTANT 1))
L-1217 (JUMP L-1239 IF-EQUAL M-24 (A-CONSTANT 2))
L-1218 (JUMP L-959)

;; Save off start address for new microload and clear PDL-BUFFER-INDEX for
;; loading A- and M- Memories.
L-1219 ((M-0) SETA LOAD-Q A-139)
L-1220 ((M-0 PDL-BUFFER-INDEX) SETZ)

;; Load part of A- or M- Memory from the PDL buffer, using a 1-1 mapping
;; from PDL-BUFFER-INDEX to A- or M- index.
;; This is presumably the M-Memory load (see exit condition).
L-1221 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 6 19) PDL-BUFFER-INDEX M-ZEROS)
L-1222 ((M-0) SETM C-PDL-BUFFER-INDEX)
L-1223 ((M-0 PDL-BUFFER-INDEX) M+1 PDL-BUFFER-INDEX)
L-1224 (JUMP L-1221 IF-BIT-CLEAR (BYTE-FIELD 1 26) PDL-BUFFER-INDEX)

;; Set top memory location for A-Memory load?
L-1225 ((M-1) SETA A-181)

;; Load part of A- or M- Memory from the PDL buffer, using a 1-1 mapping
;; from PDL-BUFFER-INDEX to A- or M- index.
;; This is presumably the A-Memory load (see exit condition).
L-1226 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) PDL-BUFFER-INDEX M-ZEROS)
L-1227 ((M-0) SETM C-PDL-BUFFER-INDEX)
L-1228 ((M-0 PDL-BUFFER-INDEX) M+1 PDL-BUFFER-INDEX)
L-1229 (JUMP L-1226 IF-LESS PDL-BUFFER-INDEX M-1)

;; Reset M-2 and M-3 to known values.
L-1230 (CALL L-28)

;; MCR local-reset field (?)
L-1231 ((M-1) SETM MCR)
L-1232 ((M-0 MCR) DPB (BYTE-FIELD 1 20) M-ONES M-1)

;; Disable PROM and jump to Q-R.
L-1233 ((M-0 MD) M-A-1 Q-R M-ZEROS)
L-1234 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) MD M-ZEROS)
L-1235 (JUMP-XCT-NEXT L-0)
L-1236 ((M-0 MCR) DPB (BYTE-FIELD 1 11) M-ONES M-1 AND-SKIP)

(DEFSYMBOL *M-MEMORY-SYMBOLS* 4 NIL)
(DEFSYMBOL *M-MEMORY-SYMBOLS* 5 NIL)
(DEFSYMBOL *M-MEMORY-SYMBOLS* 6 NIL)
(DEFSYMBOL *M-MEMORY-SYMBOLS* 7 NIL)

L-1237 (NO-OP)
L-1238 (NO-OP)
L-1239 ((A-1022) SETA A-145)
L-1240 ((A-1023) SETA A-146)
L-1241 (CALL L-987 IF-NOT-EQUAL M-ONES M-47)
L-1242 ((M-21) SETA A-1022)

;; Some sort of final fatal error exit? Set the LEDs and die?
;; L-20 if no CFG roms found?
L-1243 (JUMP L-20 IF-EQUAL M-21 A-150)
L-1244 (JUMP L-22 IF-EQUAL M-21 A-147)
L-1245 (JUMP L-24 IF-EQUAL M-21 A-148)
L-1246 (JUMP L-26)

L-1247 ((M-4) SETM M-49)
L-1248 (CALL-XCT-NEXT L-902)
L-1249 ((M-5) SETA (A-CONSTANT 2))
L-1250 ((M-49) SETM M-6 AND-POPJ)
L-1251 (JUMP L-1253 IF-EQUAL M-ZEROS A-119)
L-1252 (POPJ IF-LESS M-25 (A-CONSTANT 16))
L-1253 ((M-49) SETZ)
L-1254 (CALL L-1247)
L-1255 (POPJ-XCT-NEXT IF-EQUAL M-49 M-ONES)
L-1256 ((M-25) SETM M-49)
L-1257 (JUMP L-1266 IF-BIT-SET (BYTE-FIELD 1 30) M-13)
L-1258 (CALL L-1287)
L-1259 (JUMP L-1266 IF-NOT-EQUAL M-ZEROS A-145)
L-1260 (CALL L-1297)
L-1261 (JUMP L-1266 IF-NOT-EQUAL M-ZEROS A-145)
L-1262 (CALL-XCT-NEXT L-1268)
L-1263 ((M-4) SETZ)
L-1264 (POPJ-XCT-NEXT IF-NOT-EQUAL M-ONES A-133)
L-1265 ((M-26) SETA A-133)
L-1266 (JUMP-XCT-NEXT L-1254)
L-1267 ((M-49) ADD M-49 (A-CONSTANT 1))
L-1268 ((M-19) SETA A-128)
L-1269 ((M-20) SETM M-4)
L-1270 ((MCR-ENTRY-ADDRESS) SETZ)
L-1271 ((M-0 VMA-START-UNMAPPED-READ) SETM M-19)
L-1272 (NO-OP)
L-1273 (POPJ-XCT-NEXT IF-EQUAL MD M-ONES)
L-1274 ((A-133) SETO)
L-1275 ((M-21) LDB (BYTE-FIELD 8 8) MD M-ZEROS)
L-1276 (JUMP-XCT-NEXT L-1284 IF-GREATER M-21 (A-CONSTANT 1))
L-1277 ((M-19) ADD M-19 (A-CONSTANT 4))
L-1278 ((A-133) LDB (BYTE-FIELD 24 0) MD M-ZEROS)
L-1279 ((M-0 VMA-START-UNMAPPED-READ) SETM M-19)
L-1280 (NO-OP)
L-1281 ((A-135) SETM MD)
L-1282 (POPJ IF-EQUAL M-20 M-ZEROS)
L-1283 ((M-20) SUB M-20 (A-CONSTANT 1))
L-1284 ((MCR-ENTRY-ADDRESS) M+A+1 M-ZEROS MCR-ENTRY-ADDRESS)
L-1285 (JUMP-XCT-NEXT L-1271)
L-1286 ((M-19) ADD M-19 (A-CONSTANT 4))
L-1287 (JUMP L-1290 IF-EQUAL M-ZEROS A-171)
L-1288 ((M-52) SETA A-171)
L-1289 ((A-171) SETZ)
L-1290 ((DEI-DS-POINTER) SETM DEI-DS-LOWER-LIMIT)
L-1291 (JUMP-XCT-NEXT L-1428)
L-1292 ((A-165) SETA (A-CONSTANT 2))
L-1293 (CALL-XCT-NEXT DEI-DS-INITIALIZE)
L-1294 ((DEI-DATA-LOW) SETA A-133)
L-1295 (JUMP-XCT-NEXT L-1428)
L-1296 ((A-165) SETA (A-CONSTANT 4))
L-1297 ((DEI-DS-POINTER) SETM DEI-DS-LOWER-LIMIT)
L-1298 (CALL-XCT-NEXT L-1428)
L-1299 ((A-165) SETA (A-CONSTANT 6))
L-1300 (POPJ IF-NOT-EQUAL M-ZEROS A-145)
L-1301 (CALL DEI-DS-POP)
L-1302 ((A-128) SETM DEI-DATA-LOW AND-POPJ)
L-1303 (CALL-XCT-NEXT DEI-DS-INITIALIZE)
L-1304 ((DEI-DATA-LOW) SETA A-132)
L-1305 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1306 ((DEI-DATA-LOW) SETZ)
L-1307 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1308 ((DEI-DATA-LOW) SETA (A-CONSTANT 1))
L-1309 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1310 ((DEI-DATA-LOW) SETA A-1022)
L-1311 (CALL-XCT-NEXT L-1428)
L-1312 ((A-165) SETA (A-CONSTANT 8))
L-1313 (POPJ IF-NOT-EQUAL M-ZEROS A-145)
L-1314 (CALL DEI-DS-POP2)
L-1315 ((A-1022) SETM DEI-DATA-LOW AND-POPJ-XCT-NEXT)
L-1316 ((A-137) SETM DEI-DATA-HIGH)
L-1317 (CALL-XCT-NEXT L-1904)
L-1318 ((M-0 VMA) SETM M-21)
L-1319 ((M-21) DPB (BYTE-FIELD 8 0) MD M-21)
L-1320 (CALL-XCT-NEXT L-1904)
L-1321 ((M-0 VMA) ADD VMA (A-CONSTANT 4))
L-1322 ((M-21) DPB (BYTE-FIELD 8 8) MD M-21)
L-1323 (CALL-XCT-NEXT L-1904)
L-1324 ((M-0 VMA) ADD VMA (A-CONSTANT 4))
L-1325 ((M-21) DPB (BYTE-FIELD 8 16) MD M-21 AND-POPJ)

;; Some sort of delay function.
L-1326 ((A-180) DPB (BYTE-FIELD 5 7) M-ONES M-ZEROS)
L-1327 (JUMP-XCT-NEXT L-1327 IF-LESS M-ZEROS A-180)
L-1328 ((A-180) ADD M-ONES A-180)
L-1329 (POPJ)

L-1330 (JUMP-XCT-NEXT L-1398)
L-1331 ((A-161) SETA A-96)
L-1332 (JUMP-XCT-NEXT L-1398)
L-1333 ((A-161) SETA (A-CONSTANT 8))
L-1334 (CALL L-1343)
L-1335 (CALL-XCT-NEXT L-1352)
L-1336 ((A-157) SETM M-28)
L-1337 (POPJ IF-EQUAL M-ZEROS A-161)
L-1338 (CALL-XCT-NEXT L-1354)
L-1339 ((A-157) SETA A-160)
L-1340 (JUMP-XCT-NEXT L-1334 IF-NOT-EQUAL M-ZEROS A-161)
L-1341 ((A-158) M+A+1 M-ZEROS A-158)
L-1342 (POPJ)

L-1343 ((M-21) SETA A-158)
L-1344 ((M-21) ADD M-21 A-159)
L-1345 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-21 M-ZEROS)
L-1346 (ACCESS-I-MEM)
L-1347 (READ-I-MEM (A-160))
L-1348 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 14 18) M-21 M-ZEROS)
L-1349 (ACCESS-I-MEM)
L-1350 (READ-I-MEM (M-28))
L-1351 ((M-28) SETM M-28 AND-POPJ)

L-1352 ((M-20) SETA (A-CONSTANT 8))

L-1353 (JUMP L-1355)
L-1354 ((M-20) SETA (A-CONSTANT 24))
L-1355 ((M-19) SETA A-96)
L-1356 ((M-21) SETA A-157)
L-1357 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-19 M-ZEROS)
L-1358 ((A-161) LDB (BYTE-FIELD 8 0) M-21 M-ZEROS)
L-1359 (POPJ IF-EQUAL M-ZEROS A-161)
L-1360 (CALL L-1398)
L-1361 (JUMP-XCT-NEXT L-1356 IF-GREATER M-19 M-20)
L-1362 ((M-19) SUB M-19 (A-CONSTANT 8))
L-1363 (POPJ)
L-1364 (JUMP-XCT-NEXT L-1369)
L-1365 ((M-19) SETA (A-CONSTANT 4))
L-1366 (JUMP-XCT-NEXT L-1369)
L-1367 ((M-19) SETA (A-CONSTANT 28))
L-1368 ((M-19) SETA A-96)
L-1369 ((M-21) SETA A-162)
L-1370 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) M-19 M-ZEROS)
L-1371 ((M-20) LDB (BYTE-FIELD 4 0) M-21 M-ZEROS)
L-1372 ((M-21) ADD M-20 A-97)
L-1373 (JUMP L-1376 IF-LESS M-20 (A-CONSTANT 10))
L-1374 ((M-20) SUB M-20 (A-CONSTANT 10))
L-1375 ((M-21) ADD M-20 A-99)
L-1376 (CALL-XCT-NEXT L-1398)
L-1377 ((A-161) SETM M-21)
L-1378 ((M-19) ADD M-19 (A-CONSTANT 4))
L-1379 (JUMP L-1369 IF-LESS-OR-EQUAL M-19 A-96)
L-1380 (POPJ)
L-1381 (POPJ IF-EQUAL M-ONES M-47)
L-1382 (CALL-XCT-NEXT DEI-DS-INITIALIZE)
L-1383 ((DEI-DATA-LOW) SETA A-141)
L-1384 (CALL-XCT-NEXT L-1416)
L-1385 ((A-165) SETA (A-CONSTANT 2))
L-1386 (POPJ IF-NOT-EQUAL M-ZEROS A-145)
L-1387 (CALL DEI-DS-POP2)
L-1388 ((A-142) SETM DEI-DATA-LOW)
L-1389 ((A-143) SETM DEI-DATA-HIGH)
L-1390 ((A-161) SETA (A-CONSTANT 12))
L-1391 (CALL-XCT-NEXT DEI-DS-INITIALIZE)
L-1392 ((DEI-DATA-LOW) SETA A-161)
L-1393 (JUMP-XCT-NEXT L-1416)
L-1394 ((A-165) SETA (A-CONSTANT 4))
L-1395 (CALL-XCT-NEXT L-1398)
L-1396 ((A-161) SETA (A-CONSTANT 13))
L-1397 ((A-161) SETA (A-CONSTANT 10))
L-1398 (POPJ IF-EQUAL M-ONES M-47)
L-1399 (JUMP L-1391)
L-1400 (POPJ IF-EQUAL M-ONES M-48)
L-1401 ((DEI-DATA-LOW) SETA M-47)
L-1402 (CALL-XCT-NEXT DEI-DS-INITIALIZE)
L-1403 ((DEI-DATA-LOW) DPB (BYTE-FIELD 4 24) DEI-DATA-LOW A-141)
L-1404 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1405 ((DEI-DATA-LOW) SETA A-140)
L-1406 (JUMP-XCT-NEXT L-1422)
L-1407 ((A-165) SETA (A-CONSTANT 2))
L-1408 (POPJ-XCT-NEXT IF-EQUAL M-ONES M-48)
L-1409 ((M-30) SETA A-111)
L-1410 ((DEI-DS-POINTER) SETM DEI-DS-LOWER-LIMIT)
L-1411 (CALL-XCT-NEXT L-1422)
L-1412 ((A-165) SETA (A-CONSTANT 4))
L-1413 (POPJ IF-NOT-EQUAL M-ZEROS A-145)
L-1414 (CALL DEI-DS-POP)
L-1415 ((M-30) SETM DEI-DATA-LOW AND-POPJ)
L-1416 ((M-53) SETA A-169)
L-1417 ((A-164) SETA (A-CONSTANT 8))
L-1418 ((A-166) SETO)
L-1419 (CALL-XCT-NEXT L-1434)
L-1420 ((M-21) SETA M-47)
L-1421 ((A-169) SETM M-53 AND-POPJ)
L-1422 ((M-53) SETA A-170)
L-1423 ((A-164) SETA A-96)
L-1424 ((A-166) SETA A-129)
L-1425 (CALL-XCT-NEXT L-1434)
L-1426 ((M-21) SETA M-48)
L-1427 ((A-170) SETM M-53 AND-POPJ)
L-1428 ((M-53) SETA A-171)
L-1429 ((A-164) SETA (A-CONSTANT 2))
L-1430 ((A-166) SETA A-130)
L-1431 (CALL-XCT-NEXT L-1434)
L-1432 ((M-21) SETM M-49)
L-1433 ((A-171) SETM M-53 AND-POPJ)
L-1434 ((M-59) DPB (BYTE-FIELD 4 24) M-21 A-112)
L-1435 ((M-21) DPB (BYTE-FIELD 16 8) M-ONES A-96)
L-1436 ((M-21) ADD M-21 (A-CONSTANT 12))
L-1437 (CALL-XCT-NEXT L-1317)
L-1438 ((M-21) ADD M-59 M-21)
L-1439 ((DEI-CODE-BASE) SETM M-21)

L-1440 (CALL-XCT-NEXT L-1453)
L-1441 ((M-63) SETO)

L-1442 (POPJ IF-NOT-EQUAL M-ZEROS A-145)
L-1443 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-53 M-ZEROS)
L-1444 ((A-146) SETA M-0)
L-1445 (POPJ-XCT-NEXT IF-EQUAL M-ZEROS A-146)
L-1446 ((A-145) SETZ)
L-1447 ((A-145) SETA A-149 AND-POPJ)

L-1448 ((DEI-DS-LOWER-LIMIT) DPB (BYTE-FIELD 1 9) M-ONES M-ZEROS)
L-1449 ((DEI-DS-POINTER) SETM DEI-DS-LOWER-LIMIT)
L-1450 ((M-52) ADD M-ONES A-181)
L-1451 ((DEI-RS-POINTER) SETM M-52)
L-1452 ((A-167) SETZ AND-POPJ)
L-1453 ((M-51) SETM MICRO-STACK-POINTER)
L-1454 ((A-145) SETA A-151)
L-1455 ((M-40) LDB (BYTE-FIELD 24 0) DEI-CODE-BASE M-ONES)
L-1456 (POPJ IF-EQUAL M-ONES M-40)
L-1457 (CALL-XCT-NEXT L-1904)
L-1458 ((M-0 VMA) SETM DEI-CODE-BASE)
L-1459 (POPJ IF-NOT-EQUAL MD (A-CONSTANT 1))
L-1460 (CALL-XCT-NEXT L-1904)
L-1461 ((M-0 VMA) ADD VMA (A-CONSTANT 4))
L-1462 ((DEI-CODE-BASE) ADD VMA (A-CONSTANT 4))
L-1463 ((M-62) SETM MD)
L-1464 ((DEI-INSTRUCTION-POINTER) SETA (A-CONSTANT 1))
L-1465 (JUMP-XCT-NEXT L-1474 IF-EQUAL M-ZEROS A-164)
L-1466 (CALL DEI-OPCODE-FETCH)
L-1467 (POPJ-XCT-NEXT IF-EQUAL MD A-111)
L-1468 ((A-145) SETA (A-CONSTANT 17))
L-1469 (JUMP L-1474 IF-EQUAL MD A-164)
L-1470 (CALL-XCT-NEXT DEI-OPCODE-FETCH)
L-1471 ((DEI-INSTRUCTION-POINTER) ADD DEI-INSTRUCTION-POINTER (A-CONSTANT 2))
L-1472 (JUMP-XCT-NEXT L-1466)
L-1473 ((DEI-INSTRUCTION-POINTER) ADD MD DEI-INSTRUCTION-POINTER)
L-1474 (CALL DEI-OPCODE-FETCH)
L-1475 ((M-54) DPB (BYTE-FIELD 8 0) MD M-ZEROS)
L-1476 (CALL DEI-OPCODE-FETCH)
L-1477 ((M-54) DPB (BYTE-FIELD 8 8) MD M-54)
L-1478 (JUMP L-1481 IF-NOT-EQUAL M-53 M-ZEROS)
L-1479 ((M-53) SETM M-52)
L-1480 ((M-52) SUB M-53 M-54)
L-1481 ((DEI-RS-UPPER-LIMIT) SETM M-52)
L-1482 ((DEI-RS-POINTER) SETM DEI-RS-UPPER-LIMIT)
L-1483 ((M-21) SETM M-53)
L-1484 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) M-21 M-ZEROS)
L-1485 ((M-0) SETO)
L-1486 ((M-21) M-A-1 M-21 M-ZEROS)
L-1487 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) M-21 M-ZEROS)
L-1488 ((M-0) SETM M-59)
L-1489 ((M-21) M-A-1 M-21 M-ZEROS)
L-1490 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) M-21 M-ZEROS)
L-1491 ((M-0) SETA A-166)
L-1492 ((DEI-INSTRUCTION-POINTER) M+A+1 DEI-INSTRUCTION-POINTER A-165)
L-1493 ((A-145) SETZ)


;; Main loop for Diagnostic Engine Interpreter?
;; Fetch a byte
DEI-MAINLOOP (CALL DEI-OPCODE-FETCH)

;; If the high bit of the instruction byte is set, then dispatch on the
;; remaining bits as an instruction.
L-1495 (JUMP DEI-OPCODE-DISPATCH IF-BIT-SET (BYTE-FIELD 1 25) MD)

;; Push our return-pc to the DEI return stack.
L-1496 (CALL-XCT-NEXT DEI-RS-PUSH)
L-1497 ((DEI-DATA-LOW) M+A+1 DEI-INSTRUCTION-POINTER M-ZEROS)

;; Load the next byte in sequence and combine it with the current byte to
;; obtain the start address of the subroutine.
L-1498 ((M-37) DPB (BYTE-FIELD 7 8) MD M-ZEROS)
L-1499 (CALL DEI-OPCODE-FETCH)
L-1500 ((DEI-INSTRUCTION-POINTER) DPB (BYTE-FIELD 8 0) MD M-37)

;; Jump back to the DEI inner interpreter loop.
L-1501 (JUMP DEI-MAINLOOP)

;; Set the low 5 bits of MD to M-41.
DEI-OPCODE-DISPATCH ((DEI-OPCODE-LOW) LDB (BYTE-FIELD 5 0) MD M-ZEROS)
L-1503 ((DEI-OPCODE-HIGH) LDB (BYTE-FIELD 2 27) MD M-ZEROS)

;; Compare M-41 to successive constants from 0 through bob-knows-what as a dispatch table?
;; The low 5 bits of a diagnostic engine code instruction are mostly word-size insensetive. Could this be the dispatch for the diagnostic engine interpreter?

L-1504 (JUMP L-1534 IF-EQUAL DEI-OPCODE-LOW M-ZEROS)
L-1505 (JUMP L-1551 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 1))
L-1506 (JUMP L-1585 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 2))
L-1507 (JUMP L-1630 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 3))
L-1508 (JUMP L-1643 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 4))
L-1509 (JUMP L-1668 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 5))
L-1510 (JUMP L-1683 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 6))
L-1511 (JUMP L-1704 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 7))
L-1512 (JUMP L-1717 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 8))
L-1513 (JUMP L-1727 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 9))
L-1514 (JUMP L-1729 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 10))
L-1515 (JUMP L-1732 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 11))
L-1516 (JUMP L-1742 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 12))
L-1517 (JUMP L-1555 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 13))
L-1518 (JUMP DEI-OP-DPUT IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 16))
L-1519 (JUMP L-1789 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 17))
L-1520 (JUMP L-1789 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 18))
L-1521 (JUMP DEI-OP-DGET IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 20))
L-1522 (JUMP L-1796 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 21))
L-1523 (JUMP L-1796 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 22))
L-1524 (JUMP L-1782 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 23))
L-1525 (JUMP L-1804 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 24))
L-1526 (JUMP L-1804 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 25))
L-1527 (JUMP L-1804 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 26))
L-1528 (JUMP L-1532 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 30))

L-1529 (JUMP L-1876)

DEI-PUSH-AND-NEXT (CALL DEI-DS-PUSH)
L-1531 (JUMP DEI-MAINLOOP)

L-1532 (JUMP-XCT-NEXT DEI-MAINLOOP)
L-1533 ((M-63) SETO)

;; HALT, NOP, RETURN, WAIT instructions.

;; HALT, set a result code and exit (same as return with empty return stack).
L-1534 (JUMP L-1550 IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)

;; NOP, jump to main interpreter loop.
L-1535 (JUMP DEI-MAINLOOP IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))

;; RETURN, handled below.
L-1536 (JUMP L-1546 IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))

;; WAIT, Some sort of timed delay. Delay time proportional to popped TOS value.
L-1537 (CALL DEI-DS-POP)
L-1538 ((DEI-DATA-LOW) ADD DEI-DATA-LOW M-ONES)
L-1539 ((M-21) DPB (BYTE-FIELD 4 4) M-ONES (A-CONSTANT 6))
L-1540 (NO-OP)
L-1541 (JUMP-XCT-NEXT L-1540 IF-NOT-EQUAL M-ZEROS M-21)
L-1542 ((M-21) ADD M-21 M-ONES)
L-1543 (JUMP-XCT-NEXT L-1539 IF-GREATER DEI-DATA-LOW M-ZEROS)
L-1544 ((DEI-DATA-LOW) ADD DEI-DATA-LOW M-ONES)
L-1545 (JUMP DEI-MAINLOOP)

;; If return stack empty, skip to next code block (below).
L-1546 (JUMP L-1550 IF-EQUAL DEI-RS-POINTER DEI-RS-UPPER-LIMIT)

;; Pop return stack to DEI program counter and return to main dispatch loop.
L-1547 (CALL DEI-RS-POP)
L-1548 (JUMP-XCT-NEXT DEI-MAINLOOP)
L-1549 ((DEI-INSTRUCTION-POINTER) SETM DEI-DATA-LOW)

;; set a result code and exit.
L-1550 ((A-145) SETZ AND-POPJ)

;; GOTO, JIFZ, JNB, ILLOP.
L-1551 (JUMP L-1575 IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)
L-1552 (JUMP L-1572 IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))
L-1553 (JUMP L-1580 IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))
L-1554 (JUMP L-1876 IF-NOT-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 3))

;; ILLOP
;; Takes a DS entry and three RS entries. Is some sort of loop construct.
;; DS: loop-change-value <-tos
;; RS: loop-start-address loop-exit-value current-loop-value <-tos
;;
;; DEI-DATA-HIGH: loop-change-value
;; M-35: current-loop-value
;; M-36: loop-exit-value
;; DEI-DATA-LOW: loop-start-address

;; Load up the arguments.
L-1555 (CALL DEI-DS-POP)
L-1556 (CALL-XCT-NEXT DEI-RS-POP)
L-1557 ((DEI-DATA-HIGH) SETM DEI-DATA-LOW)
L-1558 (CALL-XCT-NEXT DEI-RS-POP)
L-1559 ((M-35) SETM DEI-DATA-LOW)
L-1560 (CALL-XCT-NEXT DEI-RS-POP)
L-1561 ((M-36) SETM DEI-DATA-LOW)

;; M-37 = current-loop-value + loop-change-value
L-1562 ((M-37) ADD M-35 DEI-DATA-HIGH)

;; M-38 = loop-exit-value - M-37? (or is it the other way around?)
L-1563 ((M-38) SUB M-36 M-37)

;; M-38 = 0 - M-38 if loop-change-value is negative.
L-1564 (JUMP L-1566 IF-GREATER-OR-EQUAL DEI-DATA-HIGH M-ZEROS)
L-1565 ((M-38) SUB M-ZEROS M-38)

;; Don't loop if M-38 is <= 0.
L-1566 (JUMP L-1571 IF-LESS-OR-EQUAL M-38 M-ZEROS)

;; Reinstate loop with existing loop-start-address and loop-exit-value values, and M-37 in place of current-loop-value.
L-1567 ((DEI-INSTRUCTION-POINTER) SETM DEI-DATA-LOW)
L-1568 ((DEI-RS-POINTER) SUB DEI-RS-POINTER (A-CONSTANT 2))
L-1569 (CALL-XCT-NEXT DEI-RS-PUSH)
L-1570 ((DEI-DATA-LOW) SETM M-37)

;; And exit.
L-1571 (JUMP DEI-MAINLOOP)

;; JIFZ
L-1572 (CALL DEI-DS-POP)
L-1573 (JUMP L-1575 IF-EQUAL DEI-DATA-LOW M-ZEROS)
L-1574 (JUMP L-1583)

;; GOTO
L-1575 (CALL DEI-OPCODE-FETCH)
L-1576 ((M-37) DPB (BYTE-FIELD 7 8) MD M-ZEROS)
L-1577 (CALL DEI-OPCODE-FETCH)
L-1578 ((DEI-INSTRUCTION-POINTER) DPB (BYTE-FIELD 8 0) MD M-37)
L-1579 (JUMP DEI-MAINLOOP)

;; JNB
;; Jump if No Buserr?
L-1580 ((M-63) SETZ)
L-1581 (JUMP-XCT-NEXT L-1575 IF-EQUAL M-ZEROS A-167)
L-1582 ((A-167) SETZ)
L-1583 (JUMP-XCT-NEXT DEI-MAINLOOP)
L-1584 ((DEI-INSTRUCTION-POINTER) ADD DEI-INSTRUCTION-POINTER (A-CONSTANT 2))

;; PLUS, MINUS, TIMES, DIVMOD
L-1585 (CALL DEI-DS-POP2)
L-1586 (JUMP DEI-OP-PLUS IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)
L-1587 (JUMP DEI-OP-MINUS IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))
L-1588 (JUMP DEI-OP-TIMES IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))

;; DIVMOD
DEI-OP-DIVMOD ((M-37) SETM DEI-DATA-HIGH)
L-1590 (JUMP-XCT-NEXT L-1593 IF-GREATER-OR-EQUAL DEI-DATA-HIGH M-ZEROS)
L-1591 ((M-0) SETM LOAD-Q DEI-DATA-HIGH)
L-1592 ((M-0) SUB LOAD-Q M-ZEROS M-37)
L-1593 (JUMP-XCT-NEXT L-1596 IF-GREATER-OR-EQUAL DEI-DATA-LOW M-ZEROS)
L-1594 ((M-38) SETM DEI-DATA-LOW)
L-1595 ((DEI-DATA-LOW) SUB M-ZEROS DEI-DATA-LOW)
L-1596 ((DEI-DATA-HIGH) DIVIDE-FIRST-STEP M-ZEROS DEI-DATA-LOW)
L-1597 ((M-1) SETA A-96)
L-1598 ((DEI-DATA-HIGH) DIVIDE-STEP DEI-DATA-HIGH DEI-DATA-LOW)
L-1599 (JUMP-XCT-NEXT L-1598 IF-GREATER M-1 (A-CONSTANT 2))
L-1600 ((M-1) M-A-1 M-1 M-ZEROS)
L-1601 ((DEI-DATA-HIGH) OPC-DIV SHIFT-Q-LEFT DEI-DATA-HIGH DEI-DATA-LOW)
L-1602 (JUMP-XCT-NEXT L-1605 IF-LESS-OR-EQUAL M-ZEROS M-37)
L-1603 ((DEI-DATA-HIGH) DIVIDE-REMAINDER-CORRECTION-STEP DEI-DATA-HIGH
        DEI-DATA-LOW)
L-1604 ((DEI-DATA-HIGH) SUB M-ZEROS DEI-DATA-HIGH)
L-1605 ((DEI-DATA-LOW) SETM M-38)
L-1606 ((M-37) XOR DEI-DATA-LOW M-37)
L-1607 (JUMP L-1610 IF-LESS-OR-EQUAL M-ZEROS M-37)
L-1608 ((M-37) SETM Q-R)
L-1609 ((M-0) SUB LOAD-Q M-ZEROS M-37)
L-1610 ((M-37) SETM Q-R)
L-1611 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1612 ((DEI-DATA-LOW) SETM DEI-DATA-HIGH)
L-1613 (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1614 ((DEI-DATA-LOW) SETM M-37)

;; TIMES
DEI-OP-TIMES ((M-0) SETM LOAD-Q DEI-DATA-HIGH)
L-1616 ((DEI-DATA-HIGH) MULTIPLY-STEP M-ZEROS DEI-DATA-LOW)
L-1617 ((M-1) SETA A-96)
L-1618 ((DEI-DATA-HIGH) MULTIPLY-STEP DEI-DATA-HIGH DEI-DATA-LOW)
L-1619 (JUMP-XCT-NEXT L-1618 IF-GREATER M-1 (A-CONSTANT 3))
L-1620 ((M-1) M-A-1 M-1 M-ZEROS)
L-1621 (JUMP-XCT-NEXT L-1624 IF-BIT-CLEAR (BYTE-FIELD 1 0) Q-R)
L-1622 ((DEI-DATA-HIGH) MULTIPLY-STEP DEI-DATA-HIGH DEI-DATA-LOW)
L-1623 ((DEI-DATA-HIGH) SUB DEI-DATA-HIGH DEI-DATA-LOW)
L-1624 (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1625 ((DEI-DATA-LOW) SETM Q-R)

;; PLUS
DEI-OP-PLUS (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1627 ((DEI-DATA-LOW) ADD DEI-DATA-LOW DEI-DATA-HIGH)

;; MINUS
DEI-OP-MINUS (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1629 ((DEI-DATA-LOW) SUB DEI-DATA-HIGH DEI-DATA-LOW)

;; NOT, AND, OR, XOR
L-1630 (JUMP DEI-OP-NOT IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)
L-1631 (CALL DEI-DS-POP2)
L-1632 (JUMP DEI-OP-AND IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))
L-1633 (JUMP DEI-OP-OR IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))
DEI-OP-XOR (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1635 ((DEI-DATA-LOW) XOR DEI-DATA-LOW DEI-DATA-HIGH)
DEI-OP-AND (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1637 ((DEI-DATA-LOW) AND DEI-DATA-LOW DEI-DATA-HIGH)
DEI-OP-OR (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1639 ((DEI-DATA-LOW) IOR DEI-DATA-LOW DEI-DATA-HIGH)

DEI-OP-NOT (CALL DEI-DS-POP)
L-1641 (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1642 ((DEI-DATA-LOW) SETCM DEI-DATA-LOW)

;; ROTATE, SHIFT
L-1643 (CALL DEI-DS-POP2)
L-1644 (JUMP DEI-OP-SHIFT IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))
L-1645 (JUMP L-1876 IF-NOT-EQUAL DEI-OPCODE-HIGH M-ZEROS)

DEI-OP-ROTATE ((M-37) SETA A-96)
L-1647 ((M-37) SUB M-37 DEI-DATA-LOW)
L-1648 ((M-38) LDB (BYTE-FIELD 5 0) DEI-DATA-LOW M-ZEROS)
L-1649 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 5) M-38 M-38)
L-1650 ((DEI-DATA-LOW) LDB (BYTE-FIELD 0 0) DEI-DATA-HIGH M-ZEROS)
L-1651 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 5) M-37 M-38)
L-1652 ((DEI-DATA-LOW) DPB (BYTE-FIELD 0 0) DEI-DATA-HIGH DEI-DATA-LOW)
L-1653 (JUMP DEI-PUSH-AND-NEXT)

DEI-OP-SHIFT ((M-37) SETA A-96)
L-1655 (JUMP L-1660 IF-BIT-SET (BYTE-FIELD 1 1) DEI-DATA-LOW)
L-1656 ((M-37) SUB M-37 DEI-DATA-LOW)
L-1657 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 5) M-37 DEI-DATA-LOW)
L-1658 ((DEI-DATA-LOW) DPB (BYTE-FIELD 0 0) DEI-DATA-HIGH M-ZEROS)
L-1659 (JUMP DEI-PUSH-AND-NEXT)

L-1660 ((DEI-DATA-LOW) SUB M-ZEROS DEI-DATA-LOW)
L-1661 ((M-38) SETZ)
L-1662 (JUMP L-1664 IF-BIT-CLEAR (BYTE-FIELD 1 1) DEI-DATA-HIGH)
L-1663 ((M-38) SETO)
L-1664 ((M-37) SUB M-37 DEI-DATA-LOW)
L-1665 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 5) M-37 M-37)
L-1666 ((DEI-DATA-LOW) LDB (BYTE-FIELD 0 0) DEI-DATA-HIGH M-38)
L-1667 (JUMP DEI-PUSH-AND-NEXT)

;; EQUALS, LESS, ULESS
L-1668 (CALL DEI-DS-POP2)
L-1669 ((M-37) SETZ)
L-1670 (JUMP DEI-OP-LESS IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))
L-1671 (JUMP DEI-OP-ULESS IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))
L-1672 (JUMP L-1876 IF-NOT-EQUAL DEI-OPCODE-HIGH M-ZEROS)

DEI-OP-EQUALS (JUMP L-1680 IF-EQUAL DEI-DATA-LOW DEI-DATA-HIGH)
L-1674 (JUMP L-1681)

DEI-OP-LESS (JUMP L-1680 IF-LESS DEI-DATA-HIGH DEI-DATA-LOW)
L-1676 (JUMP L-1681)

DEI-OP-ULESS ((M-38) XOR DEI-DATA-LOW DEI-DATA-HIGH)
L-1678 (JUMP DEI-OP-LESS IF-BIT-CLEAR (BYTE-FIELD 1 1) M-38)
L-1679 (JUMP L-1681 IF-BIT-SET (BYTE-FIELD 1 1) DEI-DATA-HIGH)

L-1680 ((M-37) SETO)
L-1681 (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1682 ((DEI-DATA-LOW) SETM M-37)

;; NOVER, SWAP
L-1683 (JUMP DEI-OP-SWAP IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))
L-1684 (JUMP L-1876 IF-NOT-EQUAL DEI-OPCODE-HIGH M-ZEROS)

DEI-OP-NOVER (CALL DEI-DS-POP)
L-1686 ((M-37) SUB DEI-DS-POINTER DEI-DATA-LOW)
L-1687 ((M-37) M+1 M-37)
L-1688 (JUMP L-1878 IF-LESS-OR-EQUAL M-37 DEI-DS-LOWER-LIMIT)
L-1689 ((DEI-DS-POINTER) M-A-1 DEI-DS-POINTER M-ZEROS)
L-1690 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-37 M-ZEROS)
L-1691 ((DEI-DATA-LOW) SETA M-0)

L-1692 ((M-38) M+1 M-37)
L-1693 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-38 M-ZEROS)
L-1694 ((M-39) SETA M-0)
L-1695 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) M-37 M-ZEROS)
L-1696 ((M-0) SETM M-39)
L-1697 (JUMP-XCT-NEXT L-1692 IF-LESS M-37 DEI-DS-POINTER)
L-1698 ((M-37) M+1 M-37)
L-1699 (JUMP DEI-PUSH-AND-NEXT)

DEI-OP-SWAP (CALL DEI-DS-POP2)
L-1701 (CALL DEI-DS-PUSH)
L-1702 (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1703 ((DEI-DATA-LOW) SETM DEI-DATA-HIGH)

;; PICK, DUP, DROP
L-1704 (CALL DEI-DS-POP)
L-1705 (JUMP DEI-OP-DUP IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 1))
L-1706 (JUMP DEI-OP-DROP IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))
L-1707 (JUMP L-1876 IF-NOT-EQUAL DEI-OPCODE-HIGH M-ZEROS)
DEI-OP-PICK ((M-37) SUB DEI-DS-POINTER DEI-DATA-LOW)
L-1709 ((M-37) M+1 M-37)
L-1710 (JUMP L-1878 IF-LESS-OR-EQUAL M-37 DEI-DS-LOWER-LIMIT)
L-1711 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-37 M-ZEROS)
L-1712 ((DEI-DATA-LOW) SETA M-0)
L-1713 (JUMP DEI-PUSH-AND-NEXT)
DEI-OP-DUP (CALL DEI-DS-PUSH)
L-1715 (JUMP DEI-PUSH-AND-NEXT)
DEI-OP-DROP (JUMP DEI-MAINLOOP)

;; VAL1, VAL2, VAL3, VAL4?
L-1717 (CALL DEI-OPCODE-FETCH)
L-1718 (JUMP-XCT-NEXT L-1721 IF-BIT-CLEAR (BYTE-FIELD 1 25) MD)
L-1719 ((DEI-DATA-LOW) SETZ)
L-1720 ((DEI-DATA-LOW) SETO)
L-1721 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 2 3) DEI-OPCODE-HIGH M-ZEROS)
L-1722 ((DEI-DATA-LOW) DPB (BYTE-FIELD 8 0) MD DEI-DATA-LOW)
L-1723 (JUMP DEI-PUSH-AND-NEXT IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)
L-1724 (CALL DEI-OPCODE-FETCH)
L-1725 (JUMP-XCT-NEXT L-1721)
L-1726 ((DEI-OPCODE-HIGH) M-A-1 DEI-OPCODE-HIGH M-ZEROS)

;; FROMR instruction. Pop return stack to data stack.
L-1727 (CALL DEI-RS-POP)
L-1728 (JUMP DEI-PUSH-AND-NEXT)

;; TOR instruction. Pop data stack to return stack.
L-1729 (CALL DEI-DS-POP)
L-1730 (CALL DEI-RS-PUSH)
L-1731 (JUMP DEI-MAINLOOP)

;; RGET, RGET1, RGET2 instructions. Indexed return stack access.
;; Index 1 is TOS, index 2 is the one below that, etc.
;; For RGET, grab index from data stack.
L-1732 (JUMP L-1739 IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)

;; For RGET1 and RGET2, offset is top 2 bits of instruction - 1.
L-1733 ((DEI-DATA-LOW) M-A-1 DEI-OPCODE-HIGH M-ZEROS)

L-1734 ((DEI-DATA-LOW) ADD DEI-RS-POINTER DEI-DATA-LOW)
L-1735 (JUMP L-1878 IF-GREATER-OR-EQUAL DEI-DATA-LOW DEI-RS-UPPER-LIMIT)
L-1736 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) DEI-DATA-LOW M-ZEROS)
L-1737 ((DEI-DATA-LOW) SETA M-0)
L-1738 (JUMP DEI-PUSH-AND-NEXT)

;; Pull index from data stack for RGET.
L-1739 (CALL DEI-DS-POP)
L-1740 (JUMP-XCT-NEXT L-1734)
L-1741 ((DEI-DATA-LOW) M-A-1 DEI-DATA-LOW M-ZEROS)

L-1742 (JUMP L-1876 IF-NOT-EQUAL DEI-OPCODE-HIGH M-ZEROS)
L-1743 (CALL DEI-DS-POP)
L-1744 (CALL L-1758)
L-1745 (CALL-XCT-NEXT L-1398)
L-1746 ((A-161) SETM DEI-DATA-LOW)
L-1747 ((M-37) SETZ)
L-1748 ((M-38) SUB DEI-DS-LOWER-LIMIT (A-CONSTANT 14))
L-1749 ((M-39) ADD M-37 M-38)
L-1750 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-39 M-ZEROS)
L-1751 ((M-40) SETA M-0)
L-1752 ((M-39) ADD M-37 A-98)
L-1753 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 6 19) M-39 M-ZEROS)
L-1754 ((M-0) SETM M-40)
L-1755 (JUMP-XCT-NEXT L-1749 IF-LESS M-37 (A-CONSTANT 13))
L-1756 ((M-37) M+1 M-37)
L-1757 (JUMP DEI-MAINLOOP)
L-1758 ((M-37) SETZ)
L-1759 ((M-38) ADD M-37 A-98)
L-1760 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) M-38 M-ZEROS)
L-1761 ((M-39) SETA M-0)
L-1762 ((M-38) M+A+1 M-37 DEI-DS-POINTER)
L-1763 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) M-38 M-ZEROS)
L-1764 ((M-0) SETM M-39)
L-1765 (JUMP-XCT-NEXT L-1759 IF-LESS M-37 (A-CONSTANT 13))
L-1766 ((M-37) M+1 M-37)
L-1767 ((DEI-DS-LOWER-LIMIT) M+A+1 DEI-DS-POINTER (A-CONSTANT 14))
L-1768 ((DEI-DS-POINTER) SETM DEI-DS-LOWER-LIMIT)
L-1769 ((M-52) ADD DEI-RS-POINTER M-ONES AND-POPJ)

DEI-OP-DPUT (CALL DEI-DS-POP2)
L-1771 (JUMP L-1878 IF-GREATER-OR-EQUAL DEI-DATA-LOW M-54)
L-1772 ((DEI-DATA-LOW) SUB M-53 DEI-DATA-LOW)
L-1773 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) DEI-DATA-LOW M-ZEROS)
L-1774 ((M-0) SETM DEI-DATA-HIGH)
L-1775 (JUMP DEI-MAINLOOP)

DEI-OP-DGET (CALL DEI-DS-POP)
L-1777 (JUMP L-1878 IF-GREATER-OR-EQUAL DEI-DATA-LOW M-54)
L-1778 ((DEI-DATA-LOW) SUB M-53 DEI-DATA-LOW)
L-1779 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) DEI-DATA-LOW M-ZEROS)
L-1780 ((DEI-DATA-LOW) SETA M-0)
L-1781 (JUMP DEI-PUSH-AND-NEXT)

;; iget
L-1782 (CALL DEI-DS-POP)
L-1783 ((M-37) SETM DEI-INSTRUCTION-POINTER)
L-1784 ((DEI-INSTRUCTION-POINTER) SETM DEI-DATA-LOW)
L-1785 (CALL DEI-OPCODE-FETCH)
L-1786 ((DEI-INSTRUCTION-POINTER) SETM M-37)
L-1787 (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1788 ((DEI-DATA-LOW) SETM MD)

;; nput% and bput%
L-1789 (CALL DEI-DS-POP2)
L-1790 ((M-0 VMA) SETM DEI-DATA-LOW)
L-1791 ((M-0 MD) SETM DEI-DATA-HIGH)
L-1792 (JUMP L-1794 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 17))
L-1793 ((M-0 VMA) LDB (BYTE-FIELD 24 0) VMA M-59)
L-1794 (CALL L-1896)
L-1795 (JUMP L-1843)

;; nget% and bget%
L-1796 (CALL DEI-DS-POP)
L-1797 ((M-0 VMA) SETM DEI-DATA-LOW)
L-1798 (JUMP L-1800 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 21))
L-1799 ((M-0 VMA) LDB (BYTE-FIELD 24 0) VMA M-59)
L-1800 (CALL L-1888)
L-1801 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1802 ((DEI-DATA-LOW) SETM MD)
L-1803 (JUMP L-1843)

L-1804 (CALL DEI-DS-POP)
L-1805 (CALL-XCT-NEXT DEI-DS-POP2)
L-1806 ((M-37) SETM DEI-DATA-LOW)
L-1807 (JUMP L-1811 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 25))
L-1808 ((M-38) SETM DEI-DATA-LOW)
L-1809 (JUMP L-1811 IF-NOT-EQUAL DEI-OPCODE-LOW (A-CONSTANT 26))
L-1810 (CALL DEI-DS-POP)
L-1811 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 5 0) DEI-OPCODE-HIGH M-ZEROS)
L-1812 ((M-39) DPB (BYTE-FIELD 1 0) M-ONES M-ZEROS)
L-1813 (JUMP L-1816 IF-BIT-CLEAR (BYTE-FIELD 1 1) DEI-DATA-HIGH)
L-1814 ((DEI-DATA-HIGH) SUB M-ZEROS DEI-DATA-HIGH)
L-1815 ((M-39) SUB M-ZEROS M-39)
L-1816 ((DEI-DATA-HIGH) M-A-1 DEI-DATA-HIGH M-ZEROS)
L-1817 (JUMP L-1823 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 24))
L-1818 (CALL-XCT-NEXT L-1888)
L-1819 ((M-0 VMA) SETM M-37)
L-1820 (JUMP L-1830 IF-NOT-EQUAL M-ZEROS A-173)
L-1821 (JUMP L-1830 IF-NOT-EQUAL MD DEI-DATA-LOW)
L-1822 (JUMP L-1827 IF-NOT-EQUAL DEI-OPCODE-LOW (A-CONSTANT 26))
L-1823 ((M-0 MD) SETM M-38)
L-1824 (CALL-XCT-NEXT L-1896)
L-1825 ((M-0 VMA) SETM M-37)
L-1826 (JUMP L-1830 IF-NOT-EQUAL M-ZEROS A-173)
L-1827 ((M-37) ADD M-37 M-39)
L-1828 (JUMP-XCT-NEXT L-1817 IF-GREATER DEI-DATA-HIGH M-ZEROS)
L-1829 ((DEI-DATA-HIGH) M-A-1 DEI-DATA-HIGH M-ZEROS)

;; check nubus error if instruction is setmem%
L-1830 (JUMP L-1843 IF-EQUAL DEI-OPCODE-LOW (A-CONSTANT 24))

L-1831 (JUMP L-1834 IF-GREATER-OR-EQUAL DEI-DATA-HIGH M-ZEROS)
L-1832 (JUMP-XCT-NEXT L-1842)
L-1833 ((DEI-DATA-LOW) SETZ)

L-1834 ((M-38) SETM DEI-DATA-LOW)
L-1835 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1836 ((DEI-DATA-LOW) SETM M-37)
L-1837 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1838 ((DEI-DATA-LOW) SETM MD)
L-1839 (CALL-XCT-NEXT DEI-DS-PUSH)
L-1840 ((DEI-DATA-LOW) SETM M-38)
L-1841 ((DEI-DATA-LOW) SETO)
L-1842 (CALL DEI-DS-PUSH)

;; Check for NuBus error on some recent access?
L-1843 (JUMP L-1846 IF-NOT-EQUAL M-ZEROS A-173)
L-1844 (JUMP-XCT-NEXT DEI-MAINLOOP)
L-1845 ((A-167) SETZ)

;; This is the only read of M-63, which is set by the erex DEI instruction.
;; Set A-167 to all ones.
;; Continue on to the next instruction if M-63 is equal to M-ONES.
L-1846 (JUMP-XCT-NEXT DEI-MAINLOOP IF-EQUAL M-63 M-ONES)
L-1847 ((A-167) SETO)

;; Push the current instruction pointer to RS.
L-1848 (CALL-XCT-NEXT DEI-RS-PUSH)
L-1849 ((DEI-DATA-LOW) SETM DEI-INSTRUCTION-POINTER)

;; Push VMA to DS and jump to DEI location 5.
L-1850 ((DEI-INSTRUCTION-POINTER) SETA (A-CONSTANT 5))
L-1851 (JUMP-XCT-NEXT DEI-PUSH-AND-NEXT)
L-1852 ((DEI-DATA-LOW) SETM VMA)

DEI-DS-POP (CALL DEI-DS-POP-INTERNAL)
L-1854 ((DEI-DATA-LOW) SETA A-168 AND-POPJ)

DEI-DS-POP2 (CALL DEI-DS-POP-INTERNAL)
L-1856 ((DEI-DATA-LOW) SETA A-168)
L-1857 (CALL DEI-DS-POP-INTERNAL)
L-1858 ((DEI-DATA-HIGH) SETA A-168 AND-POPJ)

DEI-DS-POP-INTERNAL (JUMP L-1878 IF-EQUAL DEI-DS-POINTER DEI-DS-LOWER-LIMIT)
L-1860 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) DEI-DS-POINTER M-ZEROS)
L-1861 ((A-168) SETA M-0 AND-POPJ-XCT-NEXT)
L-1862 ((DEI-DS-POINTER) M-A-1 DEI-DS-POINTER M-ZEROS)

DEI-DS-INITIALIZE ((DEI-DS-POINTER) SETM DEI-DS-LOWER-LIMIT)
DEI-DS-PUSH ((DEI-DS-POINTER) M+1 DEI-DS-POINTER)
L-1865 (JUMP L-1878 IF-GREATER-OR-EQUAL DEI-DS-POINTER DEI-RS-POINTER)
L-1866 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) DEI-DS-POINTER M-ZEROS
        AND-POPJ-XCT-NEXT)
L-1867 ((M-0) SETM DEI-DATA-LOW)


;; DEI return stack manipulation functions.
;; Note that the return stack is an expand-down stack in A-Memory.
;; M-58 is the RSP, M-56 is the lower bound, and M-57 is the upper bound.

;; Push M-33 to the DEI return stack?
DEI-RS-PUSH ((DEI-RS-POINTER) M-A-1 DEI-RS-POINTER M-ZEROS)
L-1869 (JUMP L-1878 IF-LESS-OR-EQUAL DEI-RS-POINTER DEI-DS-POINTER)
L-1870 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) DEI-RS-POINTER M-ZEROS
        AND-POPJ-XCT-NEXT)
L-1871 ((M-0) SETM DEI-DATA-LOW)

;; Pull M-33 from the DEI return stack?
DEI-RS-POP (JUMP L-1878 IF-GREATER-OR-EQUAL DEI-RS-POINTER DEI-RS-UPPER-LIMIT)
L-1873 ((M-0 IMOD-HIGH) DPB (BYTE-FIELD 10 0) DEI-RS-POINTER M-ZEROS)
L-1874 ((DEI-DATA-LOW) SETA M-0 AND-POPJ-XCT-NEXT)
L-1875 ((DEI-RS-POINTER) M+1 DEI-RS-POINTER)

;; DEI error exit?
L-1876 (JUMP-XCT-NEXT L-1879)
L-1877 ((A-145) SETA (A-CONSTANT 18))

;; DEI error exit?
L-1878 ((A-145) SETA (A-CONSTANT 19))
L-1879 ((M-0 MICRO-STACK-POINTER) SETM M-51)
L-1880 (POPJ)

;; This next block, along with L-1904, looks like some sort of data fetch.
DEI-OPCODE-FETCH ((M-0 VMA) SETM DEI-INSTRUCTION-POINTER)
L-1882 ((M-0 IMOD-LOW) LDB (BYTE-FIELD 2 31) M-62 M-ZEROS)
L-1883 ((M-0 VMA) DPB (BYTE-FIELD 24 0) VMA M-ZEROS)
L-1884 (CALL-XCT-NEXT L-1904)
L-1885 ((M-0 VMA) ADD VMA DEI-CODE-BASE)

L-1886 (JUMP L-26 IF-EQUAL VMA A-172)
L-1887 ((DEI-INSTRUCTION-POINTER) M+1 DEI-INSTRUCTION-POINTER AND-POPJ)

L-1888 (JUMP L-1904 IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)
L-1889 (JUMP-XCT-NEXT L-1911 IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))
L-1890 ((M-29) SETA (A-CONSTANT 2))
L-1891 (CALL-XCT-NEXT L-1911)
L-1892 ((M-0 VMA) IOR VMA (A-CONSTANT 1))
L-1893 ((M-0 VMA) SELECTIVE-DEPOSIT (BYTE-FIELD 31 1) VMA M-ZEROS)
L-1894 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 2 3) VMA M-ZEROS)
L-1895 ((M-0 MD) LDB ROTATE-RIGHT (BYTE-FIELD 16 0) MD M-ZEROS AND-POPJ)
L-1896 (JUMP L-1908 IF-EQUAL DEI-OPCODE-HIGH M-ZEROS)
L-1897 (JUMP-XCT-NEXT L-1911 IF-EQUAL DEI-OPCODE-HIGH (A-CONSTANT 2))
L-1898 ((M-29) SETA (A-CONSTANT 3))
L-1899 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 2 3) VMA M-ZEROS)
L-1900 ((M-0 MD) DPB (BYTE-FIELD 16 0) MD M-ZEROS)
L-1901 (CALL-XCT-NEXT L-1911)
L-1902 ((M-0 VMA) IOR VMA (A-CONSTANT 1))
L-1903 ((M-0 VMA) SELECTIVE-DEPOSIT (BYTE-FIELD 31 1) VMA M-ZEROS AND-POPJ)

L-1904 (CALL-XCT-NEXT L-1911)
L-1905 ((M-29) SETZ)

L-1906 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 2 3) VMA M-ZEROS)
L-1907 ((M-0 MD) LDB ROTATE-RIGHT (BYTE-FIELD 8 0) MD M-ZEROS AND-POPJ)

L-1908 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 2 3) VMA M-ZEROS)
L-1909 ((M-0 MD) DPB (BYTE-FIELD 8 0) MD M-ZEROS)
L-1910 ((M-29) SETA (A-CONSTANT 1))

;; Read/write from NuBus address in VMA with retries
L-1911 (CALL L-1931 IF-NUBUS-ERROR)
L-1912 ((A-175) SETA (A-CONSTANT 16))

L-1913 (JUMP L-1919 IF-BIT-SET (BYTE-FIELD 1 0) M-29)
L-1914 (JUMP L-1917 IF-BIT-SET (BYTE-FIELD 1 31) M-29)
L-1915 ((M-0 VMA-START-UNMAPPED-BYTE-READ) SETM VMA)
L-1916 (JUMP L-1923)

L-1917 ((M-0 VMA-START-UNMAPPED-READ) SETM VMA)
L-1918 (JUMP L-1923)
L-1919 (JUMP L-1922 IF-BIT-SET (BYTE-FIELD 1 31) M-29)
L-1920 ((M-0 VMA-START-UNMAPPED-BYTE-READ) SETM VMA)
L-1921 (JUMP L-1923)
L-1922 ((M-0 VMA-START-UNMAPPED-WRITE) SETM VMA)

L-1923 ((A-173) SETZ)
L-1924 (POPJ IF-NOT-NUBUS-ERROR)
L-1925 ((A-173) SETO)
L-1926 (JUMP L-1930 IF-GREATER-OR-EQUAL M-ZEROS A-175)
L-1927 (CALL L-1326)
L-1928 (JUMP-XCT-NEXT L-1913)
L-1929 ((A-175) ADD M-ONES A-175)
L-1930 ((M-0 MD) SETO AND-POPJ)

L-1931 ((A-178) SETM VMA)
L-1932 ((A-179) SETM MD)
L-1933 ((M-1) DPB (BYTE-FIELD 30 2) M-ONES M-ZEROS)
L-1934 ((M-0 VMA-START-UNMAPPED-BYTE-READ) DPB (BYTE-FIELD 4 24) M-46 M-1)
L-1935 (NO-OP)
L-1936 ((M-0 VMA) SETA A-178 AND-POPJ-XCT-NEXT)
L-1937 ((M-0 MD) SETA A-179)

L-1938 ((M-4 MD) DPB (BYTE-FIELD 1 6) M-ONES M-ZEROS)
L-1939 ((M-0 IMOD-LOW) DPB (BYTE-FIELD 12 19) MD M-ZEROS)
L-1940 ((M-0) SUB MD M-4)
L-1941 (JUMP-XCT-NEXT L-1939 IF-BIT-CLEAR (BYTE-FIELD 1 27) MD)
L-1942 ((M-0 MD) M+1 MD)

L-1943 ((A-96) DPB (BYTE-FIELD 1 5) M-ONES M-ZEROS)
L-1944 ((A-97) DPB (BYTE-FIELD 2 4) M-ONES M-ZEROS)
L-1945 ((A-98) DPB (BYTE-FIELD 2 4) M-ONES (A-CONSTANT 2))
L-1946 ((A-99) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 1))
L-1947 ((A-100) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 4))
L-1948 ((A-101) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 5))
L-1949 ((A-104) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 14))
L-1950 ((A-102) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 7))
L-1951 ((A-103) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 13))
L-1952 ((A-105) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 18))
L-1953 ((A-106) DPB (BYTE-FIELD 1 6) M-ONES (A-CONSTANT 19))
L-1954 ((A-107) DPB (BYTE-FIELD 1 6) M-ONES A-95)
L-1955 ((A-108) DPB (BYTE-FIELD 2 5) M-ONES M-ZEROS)
L-1956 ((A-109) DPB (BYTE-FIELD 6 1) M-ONES M-ZEROS)
L-1957 ((A-110) DPB (BYTE-FIELD 2 6) M-ONES (A-CONSTANT 3))
L-1958 ((A-111) DPB (BYTE-FIELD 8 0) M-ONES M-ZEROS)
L-1959 ((A-112) DPB (BYTE-FIELD 4 28) M-ONES M-ZEROS)
L-1960 ((A-159) DPB (BYTE-FIELD 5 6) M-ONES M-ZEROS)
L-1961 ((A-181) DPB (BYTE-FIELD 7 3) M-ONES M-ZEROS)
L-1962 ((A-144) SETO)
L-1963 ((A-169) SETZ)
L-1964 ((A-170) SETZ)
L-1965 ((A-171) SETZ)
L-1966 ((A-147) SETA (A-CONSTANT 1))
L-1967 ((A-148) SETA (A-CONSTANT 2))
L-1968 ((A-149) SETA (A-CONSTANT 3))
L-1969 ((A-150) SETA (A-CONSTANT 4))
L-1970 ((A-151) SETA (A-CONSTANT 16))
L-1971 ((A-152) SETA (A-CONSTANT 17))
L-1972 ((A-153) SETA (A-CONSTANT 18))
L-1973 ((A-154) SETA (A-CONSTANT 19))
L-1974 ((M-21) LDB (BYTE-FIELD 4 4) MCR M-ZEROS)
L-1975 ((M-46) XOR M-21 (A-CONSTANT 15))
L-1976 (JUMP L-1448)

L-1977 ((M-21) DPB (BYTE-FIELD 1 14) M-ONES M-ZEROS)
L-1978 ((A-131) ADD M-21 A-1018)
L-1979 ((A-129) ADD M-21 A-131)
L-1980 ((A-130) ADD M-21 A-129)
L-1981 ((M-21) DPB (BYTE-FIELD 1 19) M-ONES M-ZEROS)
L-1982 ((A-132) ADD M-21 A-1018 AND-POPJ)

;; Completely bogus beyond here. Possibly before here as well.

L-1983 ((M-0) SETZ IF-BIT-SET OUTPUT-SELECTOR-A-BUS M-0)

;; 3e00  00 4e 4f 20 4f 4e 4c 02  00 49 4e 45 20 44 45 02  |.NO ONL..INE DE.|
;; 3e10  00 56 49 43 45 53 00 06  00 00 00 00 00 00 00 02  |.VICES..........|
;; 3e20  00 42 41 44 20 4d 49 02  00 43 52 4f 4c 4f 41 06  |.BAD MI..CROLOA.|
;; 3e30  00 44 20 46 4f 52 4d 02  00 41 54 00 00 00 00 06  |.D FORM..AT.....|
;; 3e40  00 4d 49 43 52 4f 4c 06  00 4f 41 44 20 4e 4f 06  |.MICROL..OAD NO.|
;; 3e50  00 54 20 46 4f 55 4e 02  00 44 00 00 00 00 00 02  |.T FOUN..D......|
;; 3e60  00 0d 0a 0a 44 45 56 02  00 49 43 45 20 45 52 02  |....DEV..ICE ER.|
;; 3e70  00 52 4f 52 3a 20 00 02  00 54 45 53 54 49 4e 02  |.ROR: ...TESTIN.|
;; 3e80  00 47 20 53 59 53 54 02  00 45 4d 0d 0a 0a 00 02  |.G SYST..EM.....|
;; 3e90  00 52 4f 4d 20 00 00 06  00 53 45 4c 46 20 00 02  |.ROM ....SELF ..|
;; 3ea0  00 4e 55 42 55 53 20 06  00 00 00 00 00 00 00 02  |.NUBUS .........|
;; 3eb0  00 54 45 53 54 53 20 02  00 46 41 49 4c 45 44 02  |.TESTS ..FAILED.|
;; 3ec0  00 0d 0a 00 00 00 00 06  00 70 61 73 73 65 64 06  |.........passed.|
;; 3ed0  00 0d 0a 00 00 00 00 06  00 0c 41 56 41 49 4c 02  |..........AVAIL.|
;; 3ee0  00 41 42 4c 45 20 4c 02  00 4f 41 44 20 44 45 06  |.ABLE L..OAD DE.|
;; 3ef0  00 56 49 43 45 53 0d 02  00 0a 0a 00 00 00 00 02  |.VICES..........|
;; 3f00  00 0d 0a 44 3d 44 65 02  00 66 61 75 6c 74 20 06  |...D=De..fault .|
;; 3f10  00 6c 6f 61 64 2c 20 02  00 4d 3d 4d 65 6e 75 06  |.load, ..M=Menu.|
;; 3f20  00 20 6c 6f 61 64 2c 02  00 20 52 3d 52 65 74 02  |. load,.. R=Ret.|
;; 3f30  00 65 73 74 2c 20 45 02  00 3d 45 78 74 65 6e 06  |.est, E..=Exten.|
;; 3f40  00 64 65 64 20 74 65 06  00 73 74 73 20 3a 20 02  |.ded te..sts : .|
;; 3f50  00 00 00 00 00 00 00 02  00 0d 0a 4d 69 63 72 06  |...........Micr.|
;; 3f60  00 6f 6c 6f 61 64 20 06  00 6e 61 6d 65 20 3a 02  |.oload ..name :.|
;; 3f70  00 20 00 00 00 00 00 06  00 0d 0a 53 79 73 74 06  |. .........Syst.|
;; 3f80  00 65 6d 20 6c 6f 61 06  00 64 20 6e 61 6d 65 06  |.em loa..d name.|
;; 3f90  00 20 3a 20 00 00 00 02  00 0d 0a 53 65 6c 65 06  |. : .......Sele.|
;; 3fa0  00 63 74 20 6c 6f 61 02  00 64 20 64 65 76 69 02  |.ct loa..d devi.|
;; 3fb0  00 63 65 20 3a 20 00 02  00 0d 0a 0a 45 52 52 02  |.ce : ......ERR.|
;; 3fc0  00 4f 52 3a 20 00 00 06  00 42 4f 4f 54 00 00 06  |.OR: ....BOOT...|
;; 3fd0  00 3d 20 53 6c 6f 74 02  00 20 00 00 00 00 00 06  |.= Slot.. ......|
;; 3fe0  00 53 6c 6f 74 20 00 06  00 0d 0a 0a 57 61 69 06  |.Slot ......Wai.|
;; 3ff0  00 74 69 6e 67 20 00 06  00 47 44 4f 53 00 00 06  |.ting ...GDOS...|

;; EOF
