pcjs/apps/pdp10/diags/ka10/dakag/DAKAG.LST.txt

3126 lines
169 KiB
Text

DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1
DAKAGT MAC 19-JAN-77 16:54 DIAGNOSTIC PARAMETERS SEQ 0007
1 ;DAKAG
2
3
4
5 000002 DECVER==2
6 000000 MCNVER==0
7
8 XLIST
9 LIST
10 LALL
11 NAME \MCNVER,\DECVER^
12
13 TITLE DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2
14 ^
15
16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE
17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD.
18
19 ;COPYRIGHT 1972,1977
20 ;DIGITAL EQUIPMENT CORPORATION
21 ;MARLBORO, MASS. 01752
22
23 ;JOHN R. KIRCHOFF
24 ;DICK MALISKA
25
26 000137 LOC 137
27 000137 000000 000002 MCNVER,,DECVER
28
29 NOSYM
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2
DAKAGT MAC 19-JAN-77 16:54 DIAGNOSTIC PARAMETERS SEQ 0008
30 SUBTTL DIAGNOSTIC PARAMETERS
31
32 ;PARAMETER DEFINITIONS
33 000001 EXCASB==1
34 000001 USRASB==1
35 000001 PGMEND==1
36 000100 DEBUG==100
37
38 ;FLAG DEFINITIONS
39 010000 USERF=10000 ;USER MODE FLAG
40
41
42 ;MACROS
43
44 ;SPECIAL FEATURE PARAMETERS
45
46 030712 SADR1=START
47 030712 SADR2=START
48 030712 SADR3=START
49 030712 SADR4=START
50 254000 030712 SADR5=JRST START
51 254000 030712 SADR6=JRST START
52 254000 030712 SADR7=JRST START
53 254000 030712 SADR8=JRST START
54 254000 030712 SADR9=JRST START
55 254000 030712 SADR10=JRST START
56 254000 030712 SADR11=JRST START
57
58 000000 PAREA0=0
59 000000 PAREA1=0
60 000000 PAREA2=0
61 444153 414700 PAREA3=SIXBIT/DAKAG/
62 645560 000000 PAREA4=SIXBIT/TMP/
63 000000 PAREA5=0
64 000000 PAREA6=0
65 001000 ITERAT==1000
66 000001 PGMEND==1
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3
DAKAGT MAC 19-JAN-77 16:54 DIAGNOSTIC PARAMETERS SEQ 0009
67 SUBTTL DIAGNOSTIC PARAMETERS
68
69 ;ACCUMULATOR ASSIGNMENTS
70
71 ;CONTROL WORDS
72
73 400000 AROV=400000 ;ARITHMETIC OVERFLOW
74 200000 CRY0=200000 ;CARRY 0
75 100000 CRY1=100000 ;CARRY 1
76 040000 FOV=40000 ;FLOATING OVERFLOW
77 020000 BIS=20000 ;BYTE INTERRUPT
78 010000 USERF=10000 ;USER MODE FLAG
79 004000 EXIOT=4000 ;USER PRIV I/O FLAG
80 000100 FXU=100 ;FLOATING UNDERFLOW
81 000040 DCK=40 ;DIVIDE CHECK
82
83
84 ;MACROS
85
86 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1)
87 ; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION
88
89 DEFINE STOP (A)<
90 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
91 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
92 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
93 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
94 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1>
95
96 ; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG
97
98 DEFINE SFLAG (A)<
99 MOVSI 1,A
100 JFCL 17,.+1 ;RESET ALL FLAGS
101 JRST 2,.+1(1) ;SET A FLAG>
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1
PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0010
102 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977
103
104 DEFINE S,<;*********************************************************************>
105
106 S^;*********************************************************************^
107 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
108 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
109 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
110 S^;*********************************************************************^
111
112 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
113 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
114 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
115
116 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
117 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
118 010000 DING== 010000 ;RING BELL ON ERROR
119
120 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
121 002000 ERSTOP==002000 ;HALT ON TEST ERROR
122 001000 PALERS==001000 ;PRINT ALL ERRORS
123
124 000400 RELIAB==000400 ;RELIABILITY MODE
125 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
126 000100 INHPAG==000100 ;INHIBIT PAGING
127
128 000040 MODDVC==000040 ;MODIFY DEVICE CODE
129 000020 INHCSH==000020 ;INHIBIT CACHE
130 000010 OPRSEL==000010 ;OPERATOR SELECTION
131
132 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
133
134 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
135
136 ;SWITCH 17 RESERVED !!!
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0011
137 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977
138
139 S^;*********************************************************************^
140 ;*SPECIAL SUBPROGRAM LINKAGES
141 S^;*********************************************************************^
142
143 027772 FSELNK= 27772 ;FILE SELECT LINK
144 027773 FRDLNK= 27773 ;FILE READ LINK
145 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
146 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
147 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
148 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
149
150 S^;*********************************************************************^
151 ;*SPECIAL SUBROUTINE FATAL HALTS
152 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
153 S^;*********************************************************************^
154
155 ;ADDRESS TAG REASON
156 ;---------------------
157
158 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
159 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
160 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
161 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
162 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
163 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
164 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
165 ; 1017 EOPERR ;END OF PROGRAM ERROR
166 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
167
168 S^;*********************************************************************^
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0012
169 S^;*********************************************************************^
170 ;OPERATOR DEFINITIONS (NON-UUO'S)
171 S^;*********************************************************************^
172
173 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
174 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
175 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
176 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
177 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
178 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
179 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
180 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
181
182 S^;*********************************************************************^
183 ;*SUBROUTINE INITIALIZATION CALL
184 S^;*********************************************************************^
185
186 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
187
188 S^;*********************************************************************^
189 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
190 S^;*********************************************************************^
191
192 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
193 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
194
195 S^;*********************************************************************^
196 ;*TERMINAL INPUT UUO'S
197 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
198 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
199 S^;*********************************************************************^
200
201 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
202 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
203 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
204 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
205 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
206 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
207 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
208 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
209 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
210 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0013
211 ;*TERMINAL OUTPUT UUO'S.
212
213 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
214 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
215 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
216 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
217 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
218 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
219 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
220 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
221 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
222 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
223 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
224 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
225 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
226 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
227 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
228 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
229 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
230 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
231 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
232 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
233 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
234 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
235 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
236 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
237 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
238 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
239 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
240 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
241 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
242 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
243 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
244 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
245 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
246 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
247 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
248 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
249 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
250 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
251 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
252 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
253 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
254 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
255 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
256 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
257 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
258 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
259 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
260 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
261 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
262 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
263 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
264 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
265 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4-1
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0014
266 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
267 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
268
269 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
270
271 DEFINE PMSG (ARG),<
272 PSIXM [SIXBIT\ARG'_\]>
273
274 DEFINE PMSGF (ARG),<
275 PSIXMF [SIXBIT\ARG'_\]>
276
277 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
278 ;* CONSERVES CORE OVER ASCIZ
279
280 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
281
282 ;*CONSOLE SWITCH INPUT UUO.
283 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
284 ;* USER MODE.
285
286 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
287
288 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
289 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
290
291 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
292 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
293
294 ;*KL10 ONLY CACHE OPERATION UUO'S
295
296 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
297 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
298 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 5
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0015
299 ;*END OF PASS/PROGRAM UUOS
300
301 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
302 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
303
304 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
305 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
306
307 ;*MEMORY MANAGEMENT UUO'S
308 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
309 ;*ADDRESS CONVERSION, ETC...
310
311 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
312 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
313 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
314 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
315 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
316 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
317 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
318
319 ;*DEVICE CODE MODIFICATION UUO
320 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
321 ;*IOT'S TO A DIFFERENT DEVICE CODE.
322
323 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
324 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
325
326 030000 IFNDEF MODDVL,<MODDVL==BEGIN>
327 030000 IFNDEF MODDVU,<MODDVU==BEGIN>
328
329 ;*"DIAMON" FILE SELECTION AND READ UUOS
330
331 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
332 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
333 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
334 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
335
336 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
337
338 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
339
340 XLIST
341 IFNDEF KLOLD,<LIST
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 6
PARAM KLM 18-JAN-77 11:38 ERROR HANDLING UUO DEFINITIONS, JAN 18,1977 SEQ 0016
342 SUBTTL ERROR HANDLING UUO DEFINITIONS, JAN 18,1977
343
344 S^;*********************************************************************^
345 ;*ERROR HANDLER PARAMETERS
346 S^;*********************************************************************^
347
348 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
349 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
350 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
351 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
352 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
353
354 ;*THE ERROR HANDLER MACROS
355
356 ;*A MACRO TO REPORT AN ERROR AND LOOP
357
358 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
359 SALL
360 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
361 CORECT,,ACTUAL
362 [SIXBIT\D'_\],,ERR]
363 XALL
364
365 ERLOOP ADR ;IF ERROR, LOOP TO ADR
366 >
367
368 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP
369
370 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
371 SALL
372 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
373 CORECT,,ACTUAL
374 [SIXBIT\D'_\],,ERR]
375 XALL >
376
377 >;END OF KLOLD CONDITIONAL
378
379 XLIST
380 LIST
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0017
381 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977
382
383 030000 LOC 30000
384
385 S^;*********************************************************************^
386 ;*PROGRAM STARTING ADDRESSES
387 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
388 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
389 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
390 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
391 S^;*********************************************************************^
392
393 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
394 030001 254 00 0 00 030712 $START: JRST START ;MODE CHECK STARTING ADDRESS
395
396 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
397
398 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
399
400 030004 254 00 0 00 030712 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
401
402 030005 254 00 0 00 030712 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
403
404 030006 254 00 0 00 030712 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
405
406 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
407 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
408
409 030010 254 00 0 00 030741 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
410 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
411 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
412
413 030013 254000 030712 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
414 030014 254000 030712 START2: SADR8 ; "
415 030015 254000 030712 START3: SADR9 ; "
416 030016 254000 030712 START4: SADR10 ; "
417 030017 254000 030712 START5: SADR11 ; "
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0018
418 S^;*********************************************************************^
419 ;*PROGRAM FIXED PARAMETER AREA
420 S^;*********************************************************************^
421
422 030020 444153 414700 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
423 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
424 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER
425 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
426 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS
427 030025 000000 030725 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
428 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
429 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
430 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
431 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
432 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
433 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
434 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
435 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
436 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
437
438 S^;*********************************************************************^
439 ;*PROGRAM VARIABLE PARAMETER AREA
440 S^;*********************************************************************^
441
442 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
443 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
444 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
445 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
446 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
447 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
448 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
449 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
450 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
451 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
452 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
453 030052 000000 000000 ERRPC: 0 ;ERROR PC
454 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
455 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
456 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
457 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0019
458 S^;*********************************************************************^
459 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
460 S^;*********************************************************************^
461
462 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
463 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
464 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
465 030062 254000 030712 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
466 030063 254000 030712 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
467 030064 CPOPJ1: ;SKIP RETURN
468 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
469 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
470 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
471 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
472 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
473 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
474 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
475 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
476 030073 255 00 0 00 000000 $USRHL: JFCL ; "
477 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
478 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
479 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
480 030077 255 00 0 00 000000 RESRT2: JFCL ; "
481 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
482 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
483 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
484
485 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
486 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
487 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
488
489 S^;*********************************************************************^
490 ;*PROCESSOR CONTROL STORAGE
491 S^;*********************************************************************^
492
493 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
494 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
495 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
496 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
497 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
498
499 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
500 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
501
502 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
503 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
504 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
505 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
506 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
507 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
508 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0020
509 S^;*********************************************************************^
510 ;*UUO DISPATCH TABLE
511 S^;*********************************************************************^
512 XLIST
513 LIST
514 030124 030070 030070 UUODIS: LUUO1,,$UUOER
515 030125 030070 030070 LUUO3,,LUUO2
516 030126 030070 030070 LUUO5,,LUUO4
517 030127 030070 030070 LUUO7,,LUUO6
518 030130 030070 030070 LUUO11,,LUUO10
519 030131 030070 030070 LUUO13,,LUUO12
520 030132 030070 030070 LUUO15,,LUUO14
521 030133 030070 030070 LUUO17,,LUUO16
522 030134 030070 030070 LUUO21,,LUUO20
523 030135 030070 030070 LUUO23,,LUUO22
524 030136 030070 030070 LUUO25,,LUUO24
525 030137 030070 030070 LUUO27,,LUUO26
526 030140 030070 030070 LUUO31,,LUUO30
527 030141 030070 030070 LUUO33,,LUUO32
528
529 S^;*********************************************************************^
530 ;*MEMORY MANAGMENT STORAGE
531 S^;*********************************************************************^
532
533 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
534 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
535 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
536 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
537 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
538
539 S^;*********************************************************************^
540 ;*PRINT CONTROL STORAGE
541 S^;*********************************************************************^
542
543 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
544 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
545 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
546 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
547 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
548 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
549 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
550 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
551 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
552 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
553 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
554 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
555 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
556 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
557 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
558 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
559 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
560 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
561 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 5
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021
562 S^;*********************************************************************^
563 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
564 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
565 ;* MOVEI NAME
566 ;* PNTA ;OR PNTAF
567 S^;*********************************************************************^
568
569 030242 CRLF: ASCII/
570 030242 015 012 000 000 000 /
571 030243 CRLF2: ASCII/
572
573 030243 015 012 015 012 000 /
574 030244 054 000 000 000 000 COMMA: ASCII/,/
575 030245 056 000 000 000 000 PERIOD: ASCII/./
576 030246 040 000 000 000 000 SPACE: ASCII/ /
577 030247 011 000 000 000 000 TAB: ASCII/ /
578 030250 MINUS:
579 030250 055 000 000 000 000 HYPEN: ASCII/-/
580 030251 053 000 000 000 000 PLUS: ASCII/+/
581 030252 052 000 000 000 000 AST: ASCII/*/
582 030253 100 000 000 000 000 ATSIN: ASCII/@/
583 030254 050 000 000 000 000 LFP: ASCII/(/
584 030255 051 000 000 000 000 RTP: ASCII/)/
585 030256 007 0000000000 BELL: BYTE (7) 007
586 030257 077 000 000 000 000 QUEST: ASCII/?/
587 030260 057 000 000 000 000 SLASH: ASCII!/!
588 030261 044 000 000 000 000 DOLLAR: ASCII/$/
589 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
590 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
591 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
592
593 S^;*********************************************************************^
594 ;*USER MODE OUTPUT FILE INFORMATION
595 S^;*********************************************************************^
596
597 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
598 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
599 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
600 030272 BLOCK 2
601
602 S^;*********************************************************************^
603 ;*DISK UPDATE MODE FILE INFORMATION
604 S^;*********************************************************************^
605
606 030274 $IBUF: BLOCK 3
607 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
608 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
609 030301 BLOCK 2
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 6
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022
610 S^;*********************************************************************^
611 ;*PUSHDOWN LIST CONTROL INFORMATION
612 S^;*********************************************************************^
613
614 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
615 030304 PLISTS: BLOCK 200
616 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
617
618 S^;*********************************************************************^
619 ;*POWER LINE CLOCK FREQUENCY FLAG
620 S^;*********************************************************************^
621
622 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
623
624 S^;*********************************************************************^
625 ;*KL10 CACHE CONTROL FLAGS
626 S^;*********************************************************************^
627
628 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
629 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
630
631 S^;*********************************************************************^
632 ;*NUMBER INPUT DIGIT FLAG
633 S^;*********************************************************************^
634
635 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
636
637 S^;*********************************************************************^
638 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
639 S^;*********************************************************************^
640
641 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
642
643 S^;*********************************************************************^
644 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
645 S^;*********************************************************************^
646
647 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
648 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
649 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
650
651 S^;*********************************************************************^
652 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
653 S^;*********************************************************************^
654
655 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 7
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023
656 S^;*********************************************************************^
657 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
658 S^;*********************************************************************^
659
660 030516 000000 000000 KLTYP: 0
661
662 S^;*********************************************************************^
663 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
664 S^;*********************************************************************^
665
666 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
667
668 S^;*********************************************************************^
669 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
670 S^;*********************************************************************^
671
672 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
673
674 S^;*********************************************************************^
675 ;*"SWITCH" CALL USAGE CONTROL
676 S^;*********************************************************************^
677
678 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
679
680 S^;*********************************************************************^
681 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
682 S^;*********************************************************************^
683
684 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
685 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
686
687 S^;*********************************************************************^
688 ;*SPECIAL FUTURE EXPANSION ROOM
689 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF
690 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE
691 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE.
692 S^;*********************************************************************^
693
694 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER
695
696 S^;*********************************************************************^
697 ;*END OF FIXED STORAGE
698 S^;*********************************************************************^
699
700 030577 $ENDFX=<PLISTE+100>&<777700>-1
701 030577 LOC $ENDFX
702 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024
703 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76
704
705 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
706
707 000000 AC0= 0
708 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
709 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS
710 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
711 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
712
713 ;DTE20 DEVICE CODES
714
715 000200 DTE== 200 ;DTE0
716 000204 DTE0== 204
717 000204 DTE1== 204
718 000210 DTE2== 210
719 000214 DTE3== 214
720
721 ;KL10 EPT COMMUNICATION AREA
722
723 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
724 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
725 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
726 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
727
728 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
729 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
730 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
731 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
732 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
733 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
734 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
735 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE #
736 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
737 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
738 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
739
740 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025
741 ;SPECIAL "FIXED" REASSIGNMENTS
742
743 030600 $$LOC=. ;SAVE CURRENT LOCATION
744
745 030000 LOC 30000
746 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START
747 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS
748
749 000440 LOC 440
750 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD"
751 000443 LOC 443
752 000443 254 00 0 00 030636 $STM: JRST $SPEC ;SIMPLE RUN CONTROL
753
754 030057 LOC 30057
755 030057 254 00 0 00 030641 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND"
756
757 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP
758
759 000420 LOC 420
760 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL
761 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW
762 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW
763 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3
764 000424 000000 000000 $$424: 0 ;MMUO
765 000425 000000 000000 $$425: 0 ;MMUO PC
766 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT
767 000427 254 04 0 00 000427 $$427: HALT .
768 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S
769 000431 000000 000427 $$431: 427
770 000432 000000 000427 $$432: 427
771 000433 000000 000427 $$433: 427
772 000434 000000 000427 $$434: 427
773 000435 000000 000427 $$435: 427
774 000436 000000 000427 $$436: 427
775 000437 000000 000427 $$437: 427
776
777 000500 LOC 500
778 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD
779 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC
780 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC
781 000503 254 04 0 00 000503 $$503: HALT .
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026
782 030600 LOC $$LOC ;RESET CURRENT LOCATION
783
784 ;SPECIAL STARTUP SEQUENCE
785
786 030600 402 00 0 00 030037 $$START:SETZM USER
787 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ?
788 030602 603 00 0 00 010000 TLNE 0,USERF
789 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD
790 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ?
791 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC
792 030606 332 00 0 00 030037 SKIPE USER
793 030607 254 00 0 00 030712 JRST START ;USER MODE, DON'T NEED CPU TYPE
794
795 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ?
796 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER
797 030612 402 00 0 00 030516 SETZM KLTYP
798 030613 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10
799 030614 200 01 0 00 032223 MOVE 1,[1,,1]
800 030615 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS
801 030616 316 01 0 00 032223 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10
802 030617 254 00 0 00 030712 JRST START ;KI10, NO ADDITIONAL SETUP
803
804 030620 7 000 20 0 00 010040 $STKL: CONO APR,10040 ;SET BBD NOT BIT
805 030621 7 000 24 0 00 000000 CONI APR,0
806 030622 7 000 20 0 00 020040 CONO APR,20040 ;CLEAR BBD NOT BIT
807 030623 606 00 0 00 000040 TRNN 0,40 ;IF SET, KL10
808 030624 350 00 0 00 030516 AOS KLTYP ;IF NOT, BBD
809 030625 402 00 0 00 000444 SETZM $DTFLG
810 030626 402 00 0 00 000445 SETZM $DTCLK
811 030627 200 00 0 00 000453 MOVE $DTOPR ;GET DTE #
812 030630 436 00 0 00 030670 ORM $$DTE0 ;INSERT IN DTE I/O INSTS
813 030631 436 00 0 00 030672 ORM $$DTE1
814 030632 436 00 0 00 030704 ORM $$DTE2
815 030633 436 00 0 00 030706 ORM $$DTE3
816 030634 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG
817 030635 254 00 0 00 030712 JRST START
818
819 030636 200 00 0 00 032224 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL
820 030637 202 00 0 00 030643 MOVEM $SPB1
821 030640 254 00 0 00 030712 JRST START
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0027
822 ;SPECIAL "BEGEND" ROUTINE
823
824 030641 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT
825 030642 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT
826 030643 336 00 0 00 030037 $SPB1: SKIPN USER
827 030644 254 00 0 00 030652 JRST $SPBEX ;EXEC MODE
828
829 030645 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ?
830 030646 254 00 0 00 030741 JRST STARTA ;NO, KEEP RUNNING
831 030647 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ?
832 030650 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR
833 030651 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON"
834
835 030652 332 00 0 00 030041 $SPBEX: SKIPE KLFLG
836 030653 254 00 0 00 030660 JRST $SPBKL ;KL10 & EXEC
837 030654 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT
838 030655 332 00 0 00 030024 SKIPE ITRCNT
839 030656 254 00 0 00 030741 JRST STARTA ;NOT COMPLETED YET
840 030657 254 00 1 00 030012 JRST @RETURN ;DONE
841
842 030660 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT
843 030661 254 00 0 00 030676 JRST $SPKLD ;KL10, EXEC & COMPLETED
844
845 030662 335 00 0 00 030043 SKIPGE MONCTL
846 030663 254 00 0 00 030741 JRST STARTA ;"DIAMON" CONTROL
847 030664 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS
848 030665 202 00 0 00 000451 MOVEM 0,$DTCMD
849 030666 402 00 0 00 000444 SETZM $DTFLG
850 030667 336 00 0 00 030516 SKIPN KLTYP
851 030670 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11
852 030671 332 00 0 00 030516 SKIPE KLTYP
853 030672 7 200 20 0 00 010000 $$DTE1: CONO DTE,10000
854 030673 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS
855 030674 254 00 0 00 030673 JRST .-1
856 030675 254 00 0 00 030741 JRST STARTA ;KEEP RUNNING
857
858 ;SPECIAL KL10 COMPLETED ROUTINE
859
860 030676 332 00 0 00 030044 $SPKLD: SKIPE MONTEN
861 030677 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON"
862
863 030700 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION
864 030701 202 00 0 00 000451 MOVEM 0,$DTCMD
865 030702 402 00 0 00 000444 SETZM $DTFLG
866 030703 336 00 0 00 030516 SKIPN KLTYP
867 030704 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11
868 030705 332 00 0 00 030516 SKIPE KLTYP
869 030706 7 200 20 0 00 010000 $$DTE3: CONO DTE,10000
870 030707 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN
871 030710 254 00 0 00 030707 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM
872 030711 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT.
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1
DAKAGM MAC 19-JAN-77 17:37 DIAGNOSTIC SECTION SEQ 0028
873 SUBTTL DIAGNOSTIC SECTION
874
875 030712 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD
876 030713 265 00 0 00 030714 JSP 0,.+1 ;GET FLAGS
877 030714 603 00 0 00 010000 TLNE USERF ;IN USER MODE?
878 030715 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD
879 030716 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE?
880 030717 402 00 0 00 030037 SETZM USER ;YES, CLEAR USER CONTROL WORD
881 030720 336 00 0 00 030037 SKIPN USER
882 030721 254 00 0 00 030741 JRST STARTA
883 030722 331 00 0 00 030043 SKIPL MONCTL
884 030723 051 03 0 00 030725 TTCALL 3,PGMNAM ;MENTION OUR NAME
885 030724 254 00 0 00 030741 JRST STARTA
886
887 030725 PGMNAM: ASCIZ/
888 030725 015 012 120 104 120 PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (7) [DAKAG]
889 030726 055 061 060 040 113
890 030727 111 061 060 040 102
891 030730 101 123 111 103 040
892 030731 111 116 123 124 122
893 030732 125 103 124 111 117
894 030733 116 040 104 111 101
895 030734 107 116 117 123 124
896 030735 111 103 040 050 067
897 030736 051 040 133 104 101
898 030737 113 101 107 135 015
899 030740 012 000 000 000 000 /
900
901 030741 254 00 0 00 030742 STARTA: JRST .+1
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 2
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0029
902 SUBTTL TEST OF PUSH INSTRUCTION
903
904 ;**********
905
906 ;THIS TEST VERIFIES THAT PUSH DECODES CORRECTLY.
907 ;IF PUSH DECODES AS PUSHJ, THIS TEST FAILS.
908
909 030742 400 02 0 00 000000 C27200: SETZ 2, ;CLEAR AC
910 030743 261 02 0 00 030745 PUSH 2,.+2 ;*PUSH SHOULD NOT JUMP
911 030744 334 00 0 00 000000 SKIPA ;PASS IF PUSH DID NOT JUMP
912 STOP^
913 030745 254 04 0 00 030746 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
914 030746 324 00 0 00 030747 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
915 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
916 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
917 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
918
919 ;**********
920
921 ;THIS TEST VERIFIES THAT PUSH DOES NOT MODIFY C(E).
922 ;CLEAR E AND AC; THEN, EXECUTE PUSH.
923 ;CHECK E FOR ORIGINAL CONTENTS ,0.
924 ;PASS IF C(E)=0.
925
926 030747 403 00 0 00 000002 C27300: SETZB 2 ;CLEAR AC,E
927 030750 261 02 0 00 000000 PUSH 2, ;*PUSH SHOULD NOT ALTER C(E)
928 030751 332 00 0 00 000000 SKIPE ;PASS IF C(E)=0,,0
929 STOP^
930 030752 254 04 0 00 030753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
931 030753 324 00 0 00 030754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
932 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
933 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
934 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
935
936 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 3
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0030
937 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC.
938 ;FIRST THE AC IS CLEARED; THEN PUSH IS EXECUTED.
939 ;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES.
940
941 030754 400 02 0 00 000000 C27400: SETZ 2, ;CLEAR AC
942 030755 261 02 0 00 030756 PUSH 2,.+1 ;*PUSH SHOULD ADD 1,,1 TO C(AC)
943 030756 312 02 0 00 032223 CAME 2,[XWD 1,1] ;PASS IF C(AC)=1,,1
944 STOP^
945 030757 254 04 0 00 030760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
946 030760 324 00 0 00 030761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
947 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
948 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
949 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
950
951 ;**********
952
953 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)).
954 ;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED.
955 ;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR THE INITIAL VALUE, 0.
956 ;IF C(AC0)=0, THIS TEST PASSES
957
958 030761 403 00 0 00 000002 C27500: SETZB 2 ;CLEAR AC AND AC0
959 030762 261 02 0 00 032225 PUSH 2,[16541320] ;*PUSH SHOULD NOT MODIFY C(AC0)
960 030763 332 00 0 00 000000 SKIPE ;PASS IF C(AC0)=0
961 STOP^
962 030764 254 04 0 00 030765 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
963 030765 324 00 0 00 030766 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
964 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
965 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
966 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
967
968 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 4
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0031
969 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC BEFORE MODIFYING C(C(AC-RIGHT)).
970 ;FIRST, THE AC AND AC0 ARE ZEROED; THEN PUSH IS EXECUTED.
971 ;C(C(AC-RIGHT)) [BEFORE AC UPDATING] (AC0) IS CHECKED FOR
972 ;IF C(AC0)IS NOT EQUAL TO E, THIS TEST PASSES
973
974 030766 403 01 0 00 000002 C27600: SETZB 1,2 ;CLEAR AC AND AC0
975 030767 261 02 0 00 030770 PUSH 2,.+1 ;*PUSH SHOULD NOT MODIFY C(AC0)
976 030770 306 00 0 00 030770 CAIN . ;FAIL IF C(AC0)=E
977 STOP^
978 030771 254 04 0 00 030772 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
979 030772 324 00 0 00 030773 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
980 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
981 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
982 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
983
984 ;**********
985
986 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO
987 ;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC AND THE LOCATION SPECIFIED
988 ;BY UPDATING C(AC-RIGHT) ARE CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1.
989 ;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE
990 ;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES.
991
992 030773 403 01 0 00 000002 C27700: SETZB 1,2 ;CLEAR AC, C(AC-RIGHT)
993 030774 261 02 0 00 032226 PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC1
994 030775 312 01 0 00 032226 CAME 1,[-1] ;PASS IF C(1)=-1,,-1
995 STOP^
996 030776 254 04 0 00 030777 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
997 030777 324 00 0 00 031000 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
998 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
999 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1000 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1001
1002 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 5
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0032
1003 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO
1004 ;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE, AC
1005 ;IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=0.
1006 ;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR 0, THE
1007 ;ORIGINAL C(E). IF C(C(AC-RIGHT))=0, THIS TEST PASSES.
1008
1009 031000 402 00 0 00 000002 C30000: SETZM 2 ;CLEAR AC
1010 031001 261 02 0 00 032227 PUSH 2,[0] ;*PUSH SHOULD PLACE 0 INTO AC1
1011 031002 332 00 0 00 000001 SKIPE 1 ;PASS IF C(1)=0
1012 STOP^
1013 031003 254 04 0 00 031004 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1014 031004 324 00 0 00 031005 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1015 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1016 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1017 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1018
1019 ;**********
1020
1021 ;THIS TEST VERIFIES THAT PUSH ADDS 1,,1 TO THE AC; THEN, MOVES C(E) INTO
1022 ;THE LOCATION SPECIFIED BY C(AC-RIGHT). IN THIS CASE,
1023 ;AC IS PRELOADED WITH 0,,-1, AND THE LOCATION SPECIFIED
1024 ;BY UPDATING C(AC-RIGHT) IS CLEARED; THEN, PUSH IS EXECUTED WITH C(E)=-1,,-1.
1025 ;THE LOCATION SPECIFIED BY C(AC-RIGHT) IS THEN CHECKED FOR -1,,-1, THE
1026 ;ORIGINAL C(E). IF C(C(AC-RIGHT))=-1,,-1, THIS TEST PASSES.
1027
1028 031005 201 02 0 00 777777 C30100: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1
1029 031006 400 00 0 00 000000 SETZ ;CLEAR AC, C(AC-RIGHT)
1030 031007 261 02 0 00 032226 PUSH 2,[-1] ;*PUSH SHOULD PLACE -1,,-1 INTO AC0
1031 031010 312 00 0 00 032226 CAME [-1] ;PASS IF C(0)=-1,,-1
1032 STOP^
1033 031011 254 04 0 00 031012 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1034 031012 324 00 0 00 031013 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1035 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1036 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1037 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1038
1039 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 6
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSH INSTRUCTION SEQ 0033
1040 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM AC BIT 18 TO BIT 17 OF THE AC ON PUSH.
1041 ;THE AC IS PRELOADED WITH 0,,-1; THEN PUSH IS EXECUTED. PUSH SHOULD ADD ONE TO BOTH
1042 ;HALVES OF THE AC, GENERATING A CARRY FROM BIT 18 TO BIT 17. IF A CARRY WAS GENERATED,
1043 ;THIS TEST PASSES.
1044
1045 031013 201 02 0 00 777777 C30101: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1
1046 031014 261 02 0 00 000000 PUSH 2,0 ;*PUSH SHOULD GENERATE A CARRY FROM BIT 18 TO BIT 17
1047 031015 312 02 0 00 032230 CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED)
1048 STOP^
1049 031016 254 04 0 00 031017 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1050 031017 324 00 0 00 031020 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1051 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1052 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1053 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1054
1055 ;*************
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 7
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0034
1056 SUBTTL TEST OF PUSHJ INSTRUCTION
1057
1058 ;**********
1059
1060 ;THIS TEST VERIFIES THAT PUSHJ TRANSFERS CONTROL TO THE LOCATION ADDRESSED BY E.
1061 ;IF PUSHJ DOES NOT JUMP, THIS TEST FAILS
1062
1063 031020 C30200: SFLAG CRY0 ^;SETS CRY0 FLAG
1064
1065 031020 205 01 0 00 200000 MOVSI 1,CRY0
1066 031021 255 17 0 00 031022 JFCL 17,.+1 ;RESET ALL FLAGS
1067 031022 254 02 0 01 031023 JRST 2,.+1(1) ;SET CRY0 FLAG
1068 031023 400 00 0 00 000000 SETZ ;CLEAR AC
1069 031024 260 00 0 00 031026 PUSHJ .+2 ;*PUSHJ SHOULD JUMP TO LOCATION E
1070 STOP^
1071 031025 254 04 0 00 031026 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1072 031026 324 00 0 00 031027 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1076
1077 ;**********
1078
1079 ;THIS TEST VERIFIES THAT PUSHJ DOES NOT MODIFY C(PC) WHERE PC IS ONE GREATER
1080 ;THAN THE LOCATION OF THE PUSHJ INSTRUCTION.
1081 ;IF PUSHJ MODIFIES C(PC), THIS TEST FAILS
1082
1083 031027 C30300: SFLAG CRY0 ^;SET CRY0
1084
1085 031027 205 01 0 00 200000 MOVSI 1,CRY0
1086 031030 255 17 0 00 031031 JFCL 17,.+1 ;RESET ALL FLAGS
1087 031031 254 02 0 01 031032 JRST 2,.+1(1) ;SET CRY0 FLAG
1088 031032 403 01 0 00 031034 SETZB 1,.+2 ;CLEAR C(AC-RIGHT) AND C(PC)
1089 031033 260 00 0 00 031036 PUSHJ .+3 ;*PUSHJ SHOULD NOT MODIFY C(PC)
1090 031034 000000 000000 0 ;THIS LOCATION SHOULD NOT BE MODIFIED BY PUSHJ
1091 031035 310 00 0 00 000000 CAM ;PUSHJ SHOULD JUMP OVER THIS LOCATION
1092 031036 332 00 0 00 031034 SKIPE .-2 ;PASS IF PUSHJ DID NOT MODIFY C(PC)
1093 STOP^
1094 031037 254 04 0 00 031040 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1095 031040 324 00 0 00 031041 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1096 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1097 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1098 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1099
1100 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 8
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0035
1101 ;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN E
1102 ;IF PUSHJ STORED IN E, THIS TEST FAILS
1103
1104 031041 C30400: SFLAG CRY0 ^;SET CRY0
1105
1106 031041 205 01 0 00 200000 MOVSI 1,CRY0
1107 031042 255 17 0 00 031043 JFCL 17,.+1 ;RESET ALL FLAGS
1108 031043 254 02 0 01 031044 JRST 2,.+1(1) ;SET CRY0 FLAG
1109 031044 403 00 0 00 000001 SETZB 1 ;CLEAR AC AND C(AC-RIGHT
1110 031045 260 00 0 00 031046 PUSHJ .+1 ;*PUSHJ SHOULD NOT STORE IN E
1111 031046 200 02 0 00 031046 MOVE 2,. ;SAVE C(E)
1112 031047 312 02 0 00 031046 CAME 2,.-1 ;FAIL IF PUSHJ STORED IN E
1113 STOP^
1114 031050 254 04 0 00 031051 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1115 031051 324 00 0 00 031052 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1116 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1117 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1118 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1119
1120 ;**********
1121
1122 ;THIS TEST VERIFIES THAT PUSHJ DOES NOT STORE IN LOC 0
1123 ;PUSHJ SHOULD STORE PC IN C(AC-RIGHT) - LOCATION 2.
1124 ;IF PUSHJ STORES IN LOCATION 0, THIS TEST FAILS
1125
1126 031052 201 02 0 00 000001 C30500: MOVEI 2,1 ;PRELOAD AC WITH 0,,1
1127 031053 400 00 0 00 000000 SETZ 0 ;CLEAR 0
1128 031054 260 02 0 00 031055 PUSHJ 2,.+1 ;*PUSHJ SHOULD NOT STORE IN LOCATION 0
1129 031055 332 00 0 00 000000 SKIPE ;FAIL IF PUSHJ STORED IN LOCATION 0
1130 STOP^
1131 031056 254 04 0 00 031057 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1132 031057 324 00 0 00 031060 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1133 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1134 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1135 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1136
1137 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 9
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0036
1138 ;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN THE LOCATION SPECIFIED
1139 ;BY C(AC-RIGHT) AFTER INCREMENTING AC.
1140 ;IN THIS TEST, AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED.
1141 ;C(C(AC-RIGHT))IS THEN COMPARED TO ZERO. IF C(C(AC-RIGHT)) IS NON-ZERO,
1142 ;A PC WAS STORED AND THIS TEST PASSES.
1143
1144 031060 403 00 0 00 000001 C30600: SETZB 1 ;CLEAR AC, C(AC-RIGHT)
1145 031061 260 00 0 00 031063 PUSHJ .+2 ;*PUSHJ SHOULD STORE PC IN RIGHT HALF OF C(AC-RIGHT)
1146 031062 254 04 0 00 031062 HALT . ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION
1147 031063 405 01 0 00 777777 ANDI 1,-1 ;SAVE C(C(AC-RIGHT))
1148 031064 306 01 0 00 031063 CAIN 1,.-1 ;FAIL IF PC WAS NOT STORED IN C(AC-RIGHT)
1149 STOP^
1150 031065 254 04 0 00 031066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1151 031066 324 00 0 00 031067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1152 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1153 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1154 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1155
1156 ;**********
1157
1158 ;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC
1159 ;THE AC IS CLEARED AND PUSHJ IS EXECUTED
1160 ;AC IS CHECKED FOR 1,,1 IF C(AC)=1,,1, THIS TEST PASSES
1161
1162 031067 400 00 0 00 000000 C31000: SETZ ;CLEAR AC
1163 031070 260 00 0 00 031071 PUSHJ .+1 ;*PUSHJ SHOULD PLACE 1,,1 INTO THE AC
1164 031071 312 00 0 00 032223 CAME [1,,1] ;PASS IF C(AC)=1,,1
1165 STOP^
1166 031072 254 04 0 00 031073 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1167 031073 324 00 0 00 031074 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1171
1172 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 10
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0037
1173 ;THIS TEST VERIFIES THAT PUSHJ STORES THE FLAGS IN LEFT HALF OF C(AC-RIGHT)
1174 ;FIRST, CRY0 IS SET AND AC AND C(AC-RIGHT) ARE CLEARED; THEN, PUSHJ IS EXECUTED.
1175 ;C(C(AC-RIGHT)) IS THEN CHECKED FOR CRY0. IF CRY0 IS SET, THIS TEST PASSES.
1176
1177 031074 C31100: SFLAG CRY0 ^;SET CRY0
1178
1179 031074 205 01 0 00 200000 MOVSI 1,CRY0
1180 031075 255 17 0 00 031076 JFCL 17,.+1 ;RESET ALL FLAGS
1181 031076 254 02 0 01 031077 JRST 2,.+1(1) ;SET CRY0 FLAG
1182 031077 403 00 0 00 000001 SETZB 1 ;CLEAR AC AND C(AC-RIGHT)
1183 031100 260 00 0 00 031101 PUSHJ .+1 ;*PUSHJ SHOULD STORE FLAGS IN LEFT HALF OF C(AC-RIGHT)
1184 031101 607 01 0 00 200000 TLNN 1,CRY0 ;PASS IF CRY0 STORED CORRECTLY
1185 STOP^
1186 031102 254 04 0 00 031103 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1187 031103 324 00 0 00 031104 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1188 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1189 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1190 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1191
1192 ;**********
1193
1194 ;THIS TEST VERIFIES THAT PUSHJ ADDS 1,,1 TO THE AC
1195 ;THE AC IS PRELOADED WITH 0,,1 AND PUSHJ IS EXECUTED
1196 ;AC IS CHECKED FOR 1,,2 IF C(AC)=1,,2, THIS TEST PASSES
1197
1198 031104 201 01 0 00 000001 C31400: MOVEI 1,1 ;PRELOAD AC WITH 0,,1
1199 031105 260 01 0 00 031107 PUSHJ 1,.+2 ;*PUSHJ SHOULD PLACE 1,,2 INTO THE AC
1200 031106 254 04 0 00 000000 HALT ;PUSHJ SHOULD JUMP OVER THIS INSTRUCTION
1201 031107 312 01 0 00 032231 CAME 1,[XWD 1,2] ;PASS IF AC WAS INCREMENTED CORRECTLY
1202 STOP^
1203 031110 254 04 0 00 031111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1204 031111 324 00 0 00 031112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1205 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1206 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1207 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1208
1209 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 11
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0038
1210 ;THIS TEST VERIFIES THAT PUSHJ STORES THE PC IN RIGHT HALF OF C(AC-RIGHT)
1211 ;THIS TEST PASSES IF THE PC WAS STORED CORRECTLY.
1212
1213 031112 201 01 0 00 000001 C31500: MOVEI 1,1 ;PLACE 0,,1 INTO AC
1214 031113 260 01 0 00 031115 PUSHJ 1,.+2 ;*PUSHJ SHOULD STORE .+1 INTO RIGHT HALF OF C(AC-RIGHT)
1215 031114 254 04 0 00 000000 HALT ;PUSHJ SHOULD JUMP OVER THIS PC
1216 031115 405 02 0 00 777777 ANDI 2,-1 ;SAVE RIGHT HALF OF C(AC-RIGHT)
1217 031116 302 02 0 00 031114 CAIE 2,.-2 ;PASS IF PC STORED CORRECTLY
1218 STOP^
1219 031117 254 04 0 00 031120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1220 031120 324 00 0 00 031121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1221 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1222 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1223 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1224
1225 ;**********
1226
1227 ;THIS TEST VERIFIES THAT PUSHJ ALWAYS RESETS BIS.
1228 ;FIRST BIS IS SET; THEN PUSHJ IS EXECUTED. THE FLAGS ARE
1229 ;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA PUSHJ, THIS TEST PASSES.
1230
1231 031121 C31501: SFLAG BIS ^;SET BIS
1232
1233 031121 205 01 0 00 020000 MOVSI 1,BIS
1234 031122 255 17 0 00 031123 JFCL 17,.+1 ;RESET ALL FLAGS
1235 031123 254 02 0 01 031124 JRST 2,.+1(1) ;SET BIS FLAG
1236 031124 400 00 0 00 000000 SETZ ;CLEAR AC
1237 031125 260 00 0 00 031126 PUSHJ .+1 ;*PUSHJ SHOULD RESET BIS
1238 031126 265 00 0 00 031127 JSP .+1 ;SAVE FLAGS
1239 031127 603 00 0 00 020000 TLNE BIS ;PASS IF BIS FLAG IS RESET
1240 STOP^
1241 031130 254 04 0 00 031131 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1242 031131 324 00 0 00 031132 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1243 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1244 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1245 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1246
1247 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 12
DAKAGM MAC 19-JAN-77 17:37 TEST OF PUSHJ INSTRUCTION SEQ 0039
1248 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON PUSHJ.
1249 ;THE AC IS PRELOADED WITH 0,,-1; THEN PUSHJ IS EXECUTED. PUSHJ SHOULD ADD ONE TO
1250 ;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17. IF A
1251 ;CARRY WAS GENERATED, THE TEST PASSES.
1252
1253 031132 201 02 0 00 777777 C31502: MOVEI 2,-1 ;PRELOAD AC WITH 0,,-1
1254 031133 260 02 0 00 031134 PUSHJ 2,.+1 ;*PUSHJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17
1255 031134 312 02 0 00 032230 CAME 2,[2,,0] ;PASS IF C(AC)=2,,0 (CARRY WAS GENERATED)
1256 STOP^
1257 031135 254 04 0 00 031136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1258 031136 324 00 0 00 031137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1259 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1260 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1261 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1262
1263 ;****************
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 13
DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0040
1264 SUBTTL TEST OF POP INSTRUCTION
1265
1266 ;**********
1267
1268 ;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC
1269 ;THE AC IS PRELOADED WITH 1,,1; THEN, POP IS EXECUTED.
1270 ;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
1271
1272 031137 200 00 0 00 032223 C31600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1
1273 031140 262 00 0 00 000001 POP 1 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC
1274 031141 332 00 0 00 000000 SKIPE ;PASS IF AC WAS DECREMENTED CORRECTLY
1275 STOP^
1276 031142 254 04 0 00 031143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1277 031143 324 00 0 00 031144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1278 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1279 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1280 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1281
1282 ;**********
1283
1284 ;THIS TEST VERIFIES THAT POP SUBTRACTS 1,,1 FROM THE AC
1285 ;THE AC IS PRELOADED WITH 2,,2; THEN, POP IS EXECUTED.
1286 ;THE AC IS CHECKED FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES.
1287
1288 031144 200 00 0 00 032232 C31700: MOVE [XWD 2,2] ;PRELOAD AC WITH E,,E WHERE E=2
1289 031145 201 02 0 00 000005 MOVEI 2,5 ;PRELOAD 2 WITH 0,,5
1290 031146 262 00 0 00 000002 POP 2 ;*POP SHOULD SUBTRACT 1,,1 FROM THE AC
1291 031147 312 00 0 00 032223 CAME [1,,1] ;PASS IF AC WAS DECREMENTED CORRECTLY
1292 STOP^
1293 031150 254 04 0 00 031151 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1294 031151 324 00 0 00 031152 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1295 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1296 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1297 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1298
1299 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 14
DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0041
1300 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E
1301 ;IN THIS CASE, AC=0 AND AC IS PRELOADED WITH 2,,2; E=2 AND IS PRELOADED WITH 0.
1302 ;POP IS THEN EXECUTED. POP SHOULD PLACE 0 INTO E. IF C(E)=0, THIS TEST PASSES.
1303
1304 031152 200 00 0 00 032232 C32300: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2
1305 031153 402 00 0 00 000002 SETZM 2 ;CLEAR E AND C(AC-RIGHT)
1306 031154 262 00 0 00 000002 POP 2 ;*POP SHOULD PLACE 0 INTO E
1307 031155 332 00 0 00 000002 SKIPE 2 ;PASS IF C(E)=0
1308 STOP^
1309 031156 254 04 0 00 031157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1310 031157 324 00 0 00 031160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1311 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1312 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1313 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1314
1315 ;**********
1316
1317 ;THIS TEST VERIFIES THAT POP DOES NOT MODIFY C(C(AC-RIGHT)-1).
1318 ;THIS TEST FAILS IF C(C(AC-RIGHT)-1) IS MODIFIED BY POP.
1319
1320 031160 200 00 0 00 032232 C32400: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2
1321 031161 201 02 0 00 000017 MOVEI 2,17 ;PRELOAD 2 WITH 0,,17
1322 031162 402 00 0 00 000001 SETZM 1 ;CLEAR C(C(AC-RIGHT)-1)
1323 031163 262 00 0 00 000002 POP 2 ;*POP SHOULD NOT MODIFY C(C(AC-RIGHT)-1)
1324 031164 332 00 0 00 000001 SKIPE 1 ;PASS IF C(C(AC-RIGHT)-1) WAS UNALTERED
1325 STOP^
1326 031165 254 04 0 00 031166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1327 031166 324 00 0 00 031167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1328 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1329 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1330 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1331
1332 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 15
DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0042
1333 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E.
1334 ;IN THIS CASE, AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,3.
1335 ;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,3 [C(C(AC-RIGHT))] .
1336 ;IF C(E)=0,,3, THIS TEST PASSES.
1337
1338 031167 200 00 0 00 032232 C32500: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2
1339 031170 201 02 0 00 000003 MOVEI 2,3 ;PRELOAD C(AC-RIGHT) WITH 0,,3
1340 031171 402 00 0 00 000003 SETZM 3 ;CLEAR E
1341 031172 262 00 0 00 000003 POP 3 ;*POP SHOULD PLACE 0,,3 INTO E
1342 031173 302 03 0 00 000003 CAIE 3,3 ;PASS IF C(E)=0,,3
1343 STOP^
1344 031174 254 04 0 00 031175 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1345 031175 324 00 0 00 031176 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1346 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1347 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1348 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1349
1350 ;**********
1351
1352 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE,
1353 ;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH 0,,17.
1354 ;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR 0,,17 [C(C(AC-RIGHT))] .
1355 ;IF C(E)=0,,17, THIS TEST PASSES.
1356
1357 031176 402 00 0 00 000002 C32600: SETZM 2 ;CLEAR E
1358 031177 200 00 0 00 032232 MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2
1359 031200 201 02 0 00 000017 MOVEI 2,17 ;PRELOAD C(AC-RIGHT) WITH 0,,17
1360 031201 262 00 0 00 000002 POP 2 ;*POP SHOULD PLACE 0,,17 INTO E
1361 031202 302 02 0 00 000017 CAIE 2,17 ;PASS IF C(E)=0,,17
1362 STOP^
1363 031203 254 04 0 00 031204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1364 031204 324 00 0 00 031205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1365 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1366 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1367 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1368
1369 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 16
DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0043
1370 ;THIS TEST VERIFIES THAT POP STORES C(C(AC-RIGHT)) INTO E. IN THIS CASE,
1371 ;AC IS PRELOADED WITH 2,,2 AND AC2 [C(AC-RIGHT)] IS PRELOADED WITH -1,,-1.
1372 ;E IS CLEARED AND POP IS EXECUTED. E IS THEN CHECKED FOR -1,,-1 [C(C(AC-RIGHT))] .
1373 ;IF C(E)=0,,3, THIS TEST PASSES.
1374
1375 031205 200 00 0 00 032232 C33100: MOVE [XWD 2,2] ;PRELOAD AC WITH 2,,2
1376 031206 476 00 0 00 000002 SETOM 2 ;PRELOAD C(AC-RIGHT) WITH -1,,-1
1377 031207 402 00 0 00 000003 SETZM 3 ;CLEAR E
1378 031210 262 00 0 00 000003 POP 3 ;*POP SHOULD PLACE -1,,-1 INTO E
1379 031211 312 03 0 00 032226 CAME 3,[-1] ;PASS IF C(E)=-1,,-1
1380 STOP^
1381 031212 254 04 0 00 031213 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1382 031213 324 00 0 00 031214 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1383 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1384 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1385 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1386
1387 ;**********
1388
1389 ;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC.
1390 ;IN THIS CASE, THE AC IS PRELOADED WITH 1,,17; E=1 AND E IS PRELOADED WITH 0;
1391 ;C(AC-RIGHT) IS PRELOADED WITH -1,,-1; AND POP IS EXECUTED. POP SHOULD PLACE -1,,-1
1392 ;INTO E AND 0,,16 INTO AC. IF AC AND E ARE UPDATED CORRECTLY, THIS TEST PASSES.
1393
1394 031214 200 00 0 00 032233 C33300: MOVE [XWD 1,17] ;PRELOAD AC WITH 1,,17
1395 031215 402 00 0 00 000001 SETZM 1 ;PRELOAD E WITH 0
1396 031216 476 00 0 00 000017 SETOM 17 ;PRELOAD C(AC-RIGHT) WITH 1,,1
1397 031217 262 00 0 00 000001 POP 1 ;*POP SHOULD PLACE -1,,-1 INTO E AND 0,,16 INTO AC
1398 031220 312 01 0 00 032226 CAME 1,[-1] ;PASS IF C(E)=-1,,-1
1399 STOP^
1400 031221 254 04 0 00 031222 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1401 031222 324 00 0 00 031223 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1402 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1403 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1404 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1405 031223 302 00 0 00 000016 C33310: CAIE 16 ;PASS IF C(AC)=0,,16
1406 STOP^
1407 031224 254 04 0 00 031225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1408 031225 324 00 0 00 031226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1409 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1410 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1411 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1412
1413 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 17
DAKAGM MAC 19-JAN-77 17:37 TEST OF POP INSTRUCTION SEQ 0044
1414 ;THIS TEST VERIFIES THAT POP PLACES C(C(AC-RIGHT)) INTO E AND ADDS 1,,1 TO AC
1415 ;IN THIS CASE, THE AC IS PRELOADED WITH -1,,0; E=17
1416 ;C(AC-RIGHT) IS PRELOADED WITH 0; AND POP IS EXECUTED. POP SHOULD PLACE 0
1417 ;INTO E. IF AC IS UPDATED CORRECTLY, THIS TEST PASSES.
1418
1419 031226 205 01 0 00 777777 C33400: MOVSI 1,-1 ;PRELOAD AC WITH -1,,0
1420 031227 400 00 0 00 000000 SETZ ;CLEAR C(AC-RIGHT)
1421 031230 262 01 0 00 000017 POP 1,17 ;*POP SHOULD PLACE 0 INTO E
1422 031231 332 00 0 00 000017 SKIPE 17 ;PASS IF C(E)=0
1423 STOP^
1424 031232 254 04 0 00 031233 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1425 031233 324 00 0 00 031234 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1426 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1427 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1428 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1429
1430 ;**********
1431
1432 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POP.
1433 ;THE AC IS PRELOADED WITH 2,,0; THEN POP IS EXECUTED. POP SHOULD SUBTRACT ONE FROM
1434 ;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17.
1435 ;IF A CARRY WAS GENERATED, THIS TEST PASSES.
1436
1437 031234 515 02 0 00 000002 C33401: HRLZI 2,2 ;PRELOAD AC WITH 2,,0
1438 031235 262 02 0 00 000000 POP 2,0 ;*POP SHOULD GENERATE A CARRY FROM BIT18 TO BIT17
1439 031236 302 02 0 00 777777 CAIE 2,-1 ;PASS IF C(AC) = 0,,-1 (CARRY WAS GENERATED)
1440 STOP^
1441 031237 254 04 0 00 031240 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1442 031240 324 00 0 00 031241 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1443 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1444 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1445 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1446
1447 ;************
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 18
DAKAGM MAC 19-JAN-77 17:37 TEST OF POPJ INSTRUCTION SEQ 0045
1448 SUBTTL TEST OF POPJ INSTRUCTION
1449
1450 ;**********
1451
1452 ;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF
1453 ;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC.
1454 ;THIS TEST PASSES IF POPJ JUMPS CORRECTLY.
1455
1456 031241 200 00 0 00 032223 C33500: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1
1457 031242 201 01 0 00 031245 MOVEI 1,.+3 ;PRELOAD C(AC-RIGHT) WITH .+3
1458 031243 263 00 0 00 031245 POPJ .+2 ;*POPJ SHOULD JUMP TO LOCATION
1459 ;ADDRESSED BY C(C(AC-RIGHT))
1460 STOP^
1461 031244 254 04 0 00 031245 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1462 031245 324 00 0 00 031246 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1463 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1464 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1465 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1466
1467 ;**********
1468
1469 ;THIS TEST VERIFIES THAT POPJ SUBTRACTS 1,,1 FROM THE AC
1470 ;THIS AC IS PRELOADED WITH 1,,1; THEN,POPJ IS EXECUTED.
1471 ;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
1472
1473 031246 200 00 0 00 032223 C33600: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1
1474 031247 201 01 0 00 031251 MOVEI 1,.+2 ;PRELOAD C(AC-NIGHT)WITH .+2
1475 031250 263 00 0 00 031251 POPJ .+1 ;*POPJ SHOULD SUBTRACT 1,,1 FROM AC
1476 031251 312 00 0 00 032227 CAME [0] ;PASS IF C(AC)=0
1477 STOP^
1478 031252 254 04 0 00 031253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1479 031253 324 00 0 00 031254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1480 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1481 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1482 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1483
1484 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 19
DAKAGM MAC 19-JAN-77 17:37 TEST OF POPJ INSTRUCTION SEQ 0046
1485 ;THIS TEST VERIFIES THAT POPJ JUMPS TO THE LOCATION ADDRESSED BY RIGHT HALF OF
1486 ;C(C(AC-RIGHT)) BEFORE POPJ DECREMENTED THE AC.
1487 ;THIS TEST PASSES IF POPJ JUMPS CORRECTLY.
1488
1489 031254 200 00 0 00 032223 C33700: MOVE [XWD 1,1] ;PRELOAD AC WITH 1,,1
1490 031255 201 01 0 00 031257 MOVEI 1,.+2 ;PRELOAD C(AC-RIGHT) WITH C33700+3
1491
1492 031256 263 00 0 00 031260 POPJ .+2 ;*POPJ SHOULD JUMP TO C33700+3
1493 031257 334 00 0 00 000000 SKIPA ;PASS IF POPJ JUMPED CORRECTLY
1494 STOP^
1495 031260 254 04 0 00 031261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1496 031261 324 00 0 00 031262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1497 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1498 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1499 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1500
1501 ;**********
1502
1503 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT18 TO BIT17 OF THE AC ON POPJ.
1504 ;THE AC IS PRELOADED WITH 2,,0; THEN POPJ IS EXECUTED POPJ SHOULD SUBTRACT ONE FROM
1505 ;BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT18 TO BIT17.
1506 ;IF A CARRY WAS GENERATED, THIS TEST PASSES.
1507
1508 031262 515 02 0 00 000002 C33701: HRLZI 2,2 ;PRELOAD AC WITH 2,,0
1509 031263 201 00 0 00 031265 MOVEI 0,.+2 ;PRELOAD RH(AC) WITH C33701: +3
1510 031264 263 02 0 00 000000 POPJ 2,0 ;*POPJ SHOULD GENERATE A CARRY FROM BIT18 TO BIT17
1511 031265 302 02 0 00 777777 CAIE 2,-1 ;PASS IF C(AC)=0,,-1 (CARRY WAS GENERATED)
1512 STOP^
1513 031266 254 04 0 00 031267 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1514 031267 324 00 0 00 031270 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1515 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1516 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1517 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1518
1519 ;*************
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 20
DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0047
1520 SUBTTL XCT INSTRUCTION - ADDITIONAL TESTS
1521
1522 ;**********
1523
1524 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE
1525 ;TO THE LOCATION OF THE XCT.
1526
1527 031270 477 00 0 00 000001 C34000: SETOB 1
1528 031271 256 00 0 00 032234 XCT [CAME 0,1] ;*CAME SHOULD SKIP TO C34000+3
1529 STOP^
1530 031272 254 04 0 00 031273 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1531 031273 324 00 0 00 031274 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1532 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1533 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1534 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1535
1536 ;**********
1537
1538 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE
1539 ;TO THE LOCATION OF THE XCT.
1540
1541 031274 477 00 0 00 000001 C34100: SETOB 1
1542 031275 256 00 0 00 032236 XCT [XCT[XCT[CAME 0,1]]] ;*CAME SHOULD SKIP TO C34100+3
1543 STOP^
1544 031276 254 04 0 00 031277 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1545 031277 324 00 0 00 031300 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1546 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1547 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1548 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1549
1550 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 21
DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0048
1551 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS
1552 ;SPECIFIED BY THE JUMP.
1553
1554 031300 256 00 0 00 032237 C34200: XCT [JRST .+4] ;*JRST SHOULD JUMP TO C34200+4
1555
1556 031301 254 04 0 00 000000 HALT ;JRST SHOULD JUMP OVER THIS LOCATION
1557 031302 254 04 0 00 000000 HALT ;JRST SHOULD JUMP OVER THIS LOCATION
1558 STOP^
1559 031303 254 04 0 00 031304 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1560 031304 324 00 0 00 031305 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1561 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1562 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1563 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1564
1565 ;**********
1566
1567 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS
1568 ;SPECIFIED BY THE JUMP AND THAT WHEN THE PC IS SAVED IT CONTAINS AN
1569 ;ADDRESS ONE GREATER THAN THE LOCATION OF FIRST XCT OF THE CHAIN.
1570
1571 031305 402 00 0 00 000003 C34300: SETZM 3 ;CLEAR AC OF JSP
1572 031306 256 00 0 00 032242 XCT [XCT[XCT[JSP 3,.+3]]] ;*JSP SHOULD JUMP TO C34300+4 AND
1573 031307 254 04 0 00 000000 HALT ;THE SAVED PC SHOULD BE C 34300+2
1574 031310 254 04 0 00 000000 HALT ;PASS IF JSP JUMPED CORRECTLY
1575 031311 620 03 0 00 031307 TRZ 3,.-2 ;AND SAVED PC=C34300+2
1576 031312 602 03 0 00 777777 TRNE 3,-1
1577 STOP^
1578 031313 254 04 0 00 031314 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1579 031314 324 00 0 00 031315 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1580 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1581 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1582 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1583
1584 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 22
DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0049
1585 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE
1586 ;TO THE LOCATION OF THE XCT.
1587 ;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION
1588 ;FOLLOWING XCT SHOULD BE EXECUTED AFTER 'CAME' IS EXECUTED.
1589
1590 031315 403 00 0 00 000000 C34400: SETZB 0 ;SET-UP AC,E SO THAT
1591 031316 476 00 0 00 000001 SETOM 1 ;CAME WILL NOT SKIP
1592 031317 256 00 0 00 032234 XCT [CAME 0,1] ;*CAME SHOULD CAUSE EXECUTION
1593 ;OF INSTRUCTION FOLLOWING XCT
1594 031320 254 00 0 00 031322 JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED
1595 STOP^
1596 031321 254 04 0 00 031322 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1597 031322 324 00 0 00 031323 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1598 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1599 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1600 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1601
1602 ;**********
1603
1604 ;THIS TEST VERIFIES INDEXING FOR XCT OF AN ADD INSTRUCTION
1605 ;C(4)=10, AND C(6)=3, SO THE RESULT IN 6 (THE AC) SHOULD BE 16
1606 ;C(11)=13
1607
1608 031323 201 04 0 00 000010 C34500: MOVEI 4,10 ;PRELOAD INDEX REG WITH 10
1609 031324 201 11 0 00 000013 MOVEI 11,13 ;PRELOAD EFFECTIVE ADDRESS WITH 13
1610 031325 201 06 0 00 000003 MOVEI 6,3 ;PRELOAD AC WITH 3
1611 031326 256 00 0 00 032243 XCT [ADD 6,1(4)] ;*ADD SHOULD PLACE 16 IN AC
1612 031327 302 06 0 00 000016 CAIE 6,16 ;PASS IF C(AC)=16
1613 STOP^
1614 031330 254 04 0 00 031331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1615 031331 324 00 0 00 031332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1616 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1617 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1618 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1619
1620 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 23
DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0050
1621 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE
1622 ;TO THE LOCATION OF THE XCT
1623 ;IN THIS CASE, NO SKIP SHOULD OCCUR ;HENCE, THE INSTRUCTION
1624 ;FOLLOWING XCT SHOULD BE EXECUTED AFTER CAME IS EXECUTED.
1625
1626 031332 402 00 0 00 000002 C34600: SETZM 2 ;SETUP E SO THAT SKIPL WILL NOT SKIP
1627 031333 256 00 0 00 032244 XCT [SKIPL 1,2] ;*SKIPL SHOULD CAUSE INSTRUCTION
1628 ;OF FOLLOWING INSTRUCTION
1629 031334 254 00 0 00 031336 JRST .+2 ;PASS IF THIS INSTRUCTION IS EXECUTED.
1630 STOP^
1631 031335 254 04 0 00 031336 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1632 031336 324 00 0 00 031337 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1633 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1634 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1635 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1636 031337 332 00 0 00 000001 C34610: SKIPE 1 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL
1637 ;PLACED 0 INTO AC1
1638 STOP^
1639 031340 254 04 0 00 031341 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1640 031341 324 00 0 00 031342 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1641 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1642 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1643 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1644
1645 ;**********
1646
1647 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A SKIP INSTRUCTION, THE SKIP IS RELATIVE
1648 ;TO THE LOCATION OF THE XCT.
1649
1650 031342 476 00 0 00 000006 C34700: SETOM 6 ;SETUP E SO THAT SKIPL WILL SKIP
1651 031343 256 00 0 00 032245 XCT [SKIPL 3,6] ;*SKIPL SHOULD SKIP TO C34700+3
1652 STOP^
1653 031344 254 04 0 00 031345 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1654 031345 324 00 0 00 031346 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1655 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1656 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1657 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1658 031346 331 00 0 00 000003 C34710: SKIPL 3 ;*SKIPE SHOULD SKIP BECAUSE XCT OF SKIPL
1659 ;PLACED 0 INTO AC1
1660 STOP^
1661 031347 254 04 0 00 031350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1662 031350 324 00 0 00 031351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1663 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1664 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1665 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1666
1667 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 24
DAKAGM MAC 19-JAN-77 17:37 XCT INSTRUCTION - ADDITIONAL TESTS SEQ 0051
1668 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS
1669 ;SPECIFIED BY THE JUMP.
1670 ;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN
1671
1672 031351 200 03 0 00 032246 C35000: MOVE 3,[-2,,5] ;SETUP AC SO THAT AOBJN WILL JUMP
1673 031352 256 00 0 00 032247 XCT [AOBJN 3,.+3] ;*JUMP SHOULD BE TO C35000+4
1674 031353 254 04 0 00 000000 HALT ;JUMP OVER THIS INSTRUCTION
1675 031354 254 04 0 00 000000 HALT ;JUMP OVER THIS INSTRUCTION
1676 031355 312 03 0 00 032250 CAME 3,[-1,,6] ;PASS IF C(AC)=-1,,6 AND AOBJN JUMPED
1677 STOP^
1678 031356 254 04 0 00 031357 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1679 031357 324 00 0 00 031360 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1680 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1681 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1682 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1683
1684 ;**********
1685
1686 ;THIS TEST VERIFIES THAT IF AN XCT EXECUTES A JUMP, PROGRAM FLOW IS ALTERED AS
1687 ;SPECIFIED BY THE JUMP.
1688 ;THIS TEST ALSO VERIFIES CORRECT UPDATING OF THE AC FOR AOBJN
1689
1690 031360 200 03 0 00 032250 C35100: MOVE 3,[-1,,6] ;SETUP AC SO THAT AOBJN WILL NOT JUMP
1691 031361 256 00 0 00 032251 XCT [AOBJN 3,.+2] ;*AOBJN SHOULD NOT JUMP
1692 031362 312 03 0 00 032252 CAME 3,[0,,7] ;PASS IF AOBJN DID NOT JUMP AND C(AC)=0,,7
1693 STOP^
1694 031363 254 04 0 00 031364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1695 031364 324 00 0 00 031365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1696 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1697 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1698 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1699
1700 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 25
DAKAGM MAC 19-JAN-77 17:37 TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING SEQ 0052
1701 SUBTTL TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING
1702
1703 ;**********
1704
1705 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION
1706 ;FROM AN INDIRECTLY ADDRESSED LOCATION
1707
1708 031365 403 00 0 00 000002 C35200: SETZB 2
1709 031366 254 00 0 00 031371 JRST .+3
1710 031367 000000 031370 .+1
1711 031370 476 00 0 00 000002 SETOM 2 ;THIS INSTRUCTION SHOULD BE EXECUTED
1712 031371 256 00 1 00 031367 XCT @.-2
1713 031372 312 02 0 00 032226 CAME 2,[-1,,-1] ;PASS IF 'SETOM 2' WAS EXECUTED
1714 STOP^
1715 031373 254 04 0 00 031374 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1716 031374 324 00 0 00 031375 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1717 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1718 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1719 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1720
1721 ;**********
1722
1723 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION
1724 ;FROM AN INDEXED LOCATION
1725
1726 031375 201 04 0 00 031376 C35300: MOVEI 4,.+1
1727 031376 254 00 0 00 031400 JRST .+2
1728 031377 302 04 0 00 031376 CAIE 4,.-1 ;THIS INSTRUCTION SHOULD BE EXECUTED
1729 031400 256 00 0 04 000001 XCT 1(4)
1730 STOP ^;PASS IF 'CAIE 4,,-1' WAS EXECUTED
1731
1732 031401 254 04 0 00 031402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1733 031402 324 00 0 00 031403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1
1737
1738 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 26
DAKAGM MAC 19-JAN-77 17:37 TEST XCT INSTRUCTION WITH INDIRECT ADDRESSING AND INDEXING SEQ 0053
1739 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INSTRUCTION
1740 ;FROM AN INDIRECTLY ADDRESSED AND INDEXED LOCATION
1741
1742 031403 402 00 0 00 000005 C35400: SETZM 5
1743 031404 201 03 0 00 031407 MOVEI 3,.+3
1744 031405 254 00 0 00 031407 JRST .+2
1745 031406 201 05 0 00 031411 MOVEI 5,.+3
1746 031407 256 00 1 03 777777 XCT @-1(3)
1747 031410 254 00 0 00 031412 JRST .+2
1748 031411 476 00 0 00 000005 SETOM 5 ;THIS INSTRUCTION SHOULD BE EXECUTED
1749 031412 312 05 0 00 032226 CAME 5,[-1,,-1] ;PASS IF 'SETOM 5' WAS EXECUTED
1750 STOP^
1751 031413 254 04 0 00 031414 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1752 031414 324 00 0 00 031415 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1753 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1754 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1755 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1756
1757 ;**********
1758
1759 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE AN INDIRECTLY ADDRESSED
1760 ;AND INDEXED INSTRUCTION
1761
1762 031415 402 00 0 00 000003 C35500: SETZM 3
1763 031416 201 10 0 00 000003 MOVEI 10,3
1764 031417 254 00 0 00 031424 JRST .+5
1765 031420 254 04 0 00 000000 HALT
1766 031421 254 04 0 00 000000 HALT
1767 031422 200 03 1 10 031420 MOVE 3,@.-2(10) ;THIS INSTRUCTION SHOULD BE EXECUTED
1768 031423 254 04 0 00 032253 HALT [0,,707070]
1769 031424 256 00 0 00 031422 XCT .-2
1770 031425 302 03 0 00 707070 CAIE 3,707070 ;PASS IF 'MOVE 3,@.-2(10)' WAS EXECUTED
1771 STOP^
1772 031426 254 04 0 00 031427 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1773 031427 324 00 0 00 031430 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1774 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1775 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1776 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1777
1778 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 27
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0054
1779 SUBTTL TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER
1780
1781 ;**********
1782
1783 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1784 ;IN THIS CASE, 0,,0 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS
1785 ;SO THAT FINAL C(AC)=0,,0.
1786 ;C(AC+1) SHOULD NOT BE AFFECTED.
1787
1788 031430 200 00 0 00 032227 C35600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0
1789 031431 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1790 031432 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 0,,0 RIGHT 3 BIT POSITIONS
1791 031433 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0
1792 STOP^
1793 031434 254 04 0 00 031435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1794 031435 324 00 0 00 031436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1795 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1796 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1797 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1798 031436 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1799 STOP^
1800 031437 254 04 0 00 031440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1801 031440 324 00 0 00 031441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1802 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1803 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1804 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1805
1806 ;**********
1807
1808 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1809 ;IN THIS CASE, -1,,-1 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS
1810 ;SO THAT FINAL C(AC)=-1,,-1.
1811 ;C(AC+1) SHOULD NOT BE AFFECTED.
1812
1813 031441 200 00 0 00 032226 C35700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH 0,,0
1814 031442 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1815 031443 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE -1,,-1 RIGHT 3 BIT POSITIONS
1816 031444 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1
1817 STOP^
1818 031445 254 04 0 00 031446 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1819 031446 324 00 0 00 031447 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1820 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1821 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1822 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1823 031447 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1824 STOP^
1825 031450 254 04 0 00 031451 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1826 031451 324 00 0 00 031452 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1827 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1828 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1829 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1830
1831 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 28
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0055
1832 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1833 ;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS
1834 ;SO THAT FINAL C(AC)=525252,,525252.
1835 ;C(AC+1) SHOULD NOT BE AFFECTED.
1836
1837 031452 200 00 0 00 032255 C36000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525
1838 031453 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1839 031454 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 252525,,252525
1840 ;RIGHT 3 BIT POSITIONS
1841 031455 312 00 0 00 032256 CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252
1842 STOP^
1843 031456 254 04 0 00 031457 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1844 031457 324 00 0 00 031460 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1845 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1846 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1847 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1848 031460 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1849 STOP^
1850 031461 254 04 0 00 031462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1851 031462 324 00 0 00 031463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1852 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1853 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1854 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1855
1856 ;**********
1857
1858 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1859 ;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS
1860 ;SO THAT FINAL C(AC)=252525,,252525.
1861 ;C(AC+1) SHOULD NOT BE AFFECTED.
1862
1863 031463 200 00 0 00 032256 C36100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252
1864 031464 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1865 031465 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 525252,,525252
1866 ;RIGHT 3 BIT POSITIONS
1867 031466 312 00 0 00 032255 CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525
1868 STOP^
1869 031467 254 04 0 00 031470 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1870 031470 324 00 0 00 031471 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1871 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1872 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1873 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1874 031471 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1875 STOP^
1876 031472 254 04 0 00 031473 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1877 031473 324 00 0 00 031474 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1878 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1879 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1880 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1881
1882 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 29
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0056
1883 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1884 ;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS
1885 ;SO THAT FINAL C(AC)=023070,,360370.
1886 ;C(AC+1) SHOULD NOT BE AFFECTED.
1887
1888 031474 200 00 0 00 032257 C36200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700
1889 031475 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1890 031476 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 230703,,603700
1891 ;RIGHT 3 BIT POSITIONS
1892 031477 312 00 0 00 032260 CAME 0,[023070,,360370] ;PASS IF C(AC)=023070,,360370
1893 STOP^
1894 031500 254 04 0 00 031501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1895 031501 324 00 0 00 031502 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1896 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1897 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1898 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1899 031502 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1900 STOP^
1901 031503 254 04 0 00 031504 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1902 031504 324 00 0 00 031505 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1903 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1904 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1905 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1906
1907 ;**********
1908
1909 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1910 ;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED RIGHT 3 BIT POSITIONS
1911 ;SO THAT FINAL C(AC)=200760,,360706.
1912 ;C(AC+1) SHOULD NOT BE AFFECTED.
1913
1914 031505 200 00 0 00 032261 C36300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062
1915 031506 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1916 031507 241 00 0 00 777775 ROT 0,-3 ;*ROT SHOULD ROTATE 007603,,607062
1917 ;RIGHT 3 BIT POSITIONS
1918 031510 312 00 0 00 032262 CAME 0,[200760,,360706] ;PASS IF C(AC)=200760,,360706
1919 STOP^
1920 031511 254 04 0 00 031512 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1921 031512 324 00 0 00 031513 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1922 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1923 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1924 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1925 031513 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1926 STOP^
1927 031514 254 04 0 00 031515 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1928 031515 324 00 0 00 031516 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1929 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1930 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1931 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1932
1933 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 30
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0057
1934 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1935 ;IN THIS CASE, 0,,0 SHOULD BE ROTATED LEFT 15 BIT POSITIONS
1936 ;SO THAT FINAL C(AC)=0,,0.
1937 ;C(AC+1) SHOULD NOT BE AFFECTED.
1938
1939 031516 200 02 0 00 032227 C36400: MOVE 2,[0,,0] ;PRELOAD AC WITH 0,,0
1940 031517 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1941 031520 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 0,,0 LEFT 15 BIT POSITIONS
1942 031521 312 02 0 00 032227 CAME 2,[0,,0] ;PASS IF C(AC)=0,,0
1943 STOP^
1944 031522 254 04 0 00 031523 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1945 031523 324 00 0 00 031524 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1946 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1947 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1948 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1949 031524 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1950 STOP^
1951 031525 254 04 0 00 031526 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1952 031526 324 00 0 00 031527 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1953 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1954 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1955 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1956
1957 ;**********
1958
1959 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1960 ;IN THIS CASE, -1,,-1 SHOULD BE ROTATED LEFT 15 BIT POSITIONS
1961 ;SO THAT FINAL C(AC)=-1,,-1.
1962 ;C(AC+1) SHOULD NOT BE AFFECTED.
1963
1964 031527 200 02 0 00 032226 C36500: MOVE 2,[-1,,-1] ;PRELOAD AC WITH -1,,-1
1965 031530 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1966 031531 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE -1,,-1 LEFT 15 BIT POSITIONS
1967 031532 312 02 0 00 032226 CAME 2,[-1,,-1] ;PASS IF C(AC)=-1,,-1
1968 STOP^
1969 031533 254 04 0 00 031534 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1970 031534 324 00 0 00 031535 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1971 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1972 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1973 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1974 031535 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
1975 STOP^
1976 031536 254 04 0 00 031537 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1977 031537 324 00 0 00 031540 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1978 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1979 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1980 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1981
1982 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 31
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0058
1983 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
1984 ;IN THIS CASE, 252525,,252525 SHOULD BE ROTATED LEFT 15 BIT POSITIONS
1985 ;SO THAT FINAL C(AC)=525252,,525252.
1986 ;C(AC+1) SHOULD NOT BE AFFECTED.
1987
1988 031540 200 02 0 00 032255 C36600: MOVE 2,[252525,,252525] ;PRELOAD AC WITH 252525,,252525
1989 031541 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
1990 031542 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 252525,,252525
1991 ;LEFT 15 BIT POSITIONS
1992 031543 312 02 0 00 032256 CAME 2,[525252,,525252] ;PASS IF C(AC)=525252,,525252
1993 STOP^
1994 031544 254 04 0 00 031545 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1995 031545 324 00 0 00 031546 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1996 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1997 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1998 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1999 031546 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2000 STOP^
2001 031547 254 04 0 00 031550 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2002 031550 324 00 0 00 031551 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2003 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2004 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2005 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2006
2007 ;**********
2008
2009 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
2010 ;IN THIS CASE, 525252,,525252 SHOULD BE ROTATED LEFT 15 BIT POSITIONS
2011 ;SO THAT FINAL C(AC)=252525,,252525.
2012 ;C(AC+1) SHOULD NOT BE AFFECTED.
2013
2014 031551 200 02 0 00 032256 C36700: MOVE 2,[525252,,525252] ;PRELOAD AC WITH 525252,,525252
2015 031552 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2016 031553 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 525252,,525252
2017 ;LEFT 15 BIT POSITIONS
2018 031554 312 02 0 00 032255 CAME 2,[252525,,252525] ;PASS IF C(AC)=252525,,252525
2019 STOP^
2020 031555 254 04 0 00 031556 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2021 031556 324 00 0 00 031557 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2022 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2023 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2024 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2025 031557 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2026 STOP^
2027 031560 254 04 0 00 031561 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2028 031561 324 00 0 00 031562 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2029 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2030 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2031 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2032
2033 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 32
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0059
2034 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
2035 ;IN THIS CASE, 230703,,603700 SHOULD BE ROTATED LEFT 15 BIT POSITIONS
2036 ;SO THAT FINAL C(AC)074076,,004616.
2037 ;C(AC+1) SHOULD NOT BE AFFECTED.
2038
2039 031562 200 02 0 00 032257 C37000: MOVE 2,[230703,,603700] ;PRELOAD AC WITH 230703,,603700
2040 031563 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2041 031564 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 230703,,603700
2042 ;LEFT 15 BIT POSITIONS
2043 031565 312 02 0 00 032263 CAME 2,[074076,,004616] ;PASS IF C(AC)074076,,004616
2044 STOP^
2045 031566 254 04 0 00 031567 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2046 031567 324 00 0 00 031570 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2047 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2048 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2049 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2050 031570 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2051 STOP^
2052 031571 254 04 0 00 031572 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2053 031572 324 00 0 00 031573 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2054 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2055 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2056 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2057
2058 ;**********
2059
2060 ;THIS TEST VERIFIES THAT A ROT INSTRUCTION FUNCTIONS CORRECTLY.
2061 ;IN THIS CASE, 007603,,607062 SHOULD BE ROTATED LEFT 15 BIT POSITIONS
2062 ;SO THAT FINAL C(AC)074161,,440174.
2063 ;C(AC+1) SHOULD NOT BE AFFECTED.
2064
2065 031573 200 02 0 00 032261 C37100: MOVE 2,[007603,,607062] ;PRELOAD AC WITH 007603,,607062
2066 031574 200 03 0 00 032254 MOVE 3,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2067 031575 241 02 0 00 000015 ROT 2,15 ;*ROT SHOULD ROTATE 007603,,607062
2068 ;LEFT 15 BIT POSITIONS
2069 031576 312 02 0 00 032264 CAME 2,[074161,,440174] ;PASS IF C(AC)074161,,440174
2070 STOP^
2071 031577 254 04 0 00 031600 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2072 031600 324 00 0 00 031601 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2076 031601 312 03 0 00 032254 CAME 3,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2077 STOP^
2078 031602 254 04 0 00 031603 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2079 031603 324 00 0 00 031604 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2083
2084 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 33
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0060
2085 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2086 ;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 3 BIT POSITIONS
2087 ;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0
2088
2089 031604 200 00 0 00 032227 C37200: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0
2090 031605 200 01 0 00 032227 MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0
2091 031606 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 3 BIT POSITIONS
2092 031607 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0
2093 STOP^
2094 031610 254 04 0 00 031611 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2095 031611 324 00 0 00 031612 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2096 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2097 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2098 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2099 031612 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0
2100 STOP^
2101 031613 254 04 0 00 031614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2102 031614 324 00 0 00 031615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2103 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2104 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2105 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2106
2107 ;**********
2108
2109 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2110 ;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 3 BIT POSITIONS
2111 ;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1
2112
2113 031615 200 00 0 00 032226 C37300: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1
2114 031616 200 01 0 00 032226 MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1
2115 031617 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE -1,,-1
2116 ;-1,,-1 LEFT 3 BIT POSITIONS
2117 031620 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1
2118 STOP^
2119 031621 254 04 0 00 031622 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2120 031622 324 00 0 00 031623 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2121 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2122 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2123 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2124 031623 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1
2125 STOP^
2126 031624 254 04 0 00 031625 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2127 031625 324 00 0 00 031626 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2128 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2129 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2130 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2131
2132 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 34
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0061
2133 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2134 ;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 3 BIT POSITIONS
2135 ;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252
2136
2137 031626 200 00 0 00 032255 C37400: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525
2138 031627 200 01 0 00 032255 MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525
2139 031630 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 252525,,252525
2140 ;252525,,252525 LEFT 3 BIT POSITIONS
2141 031631 312 00 0 00 032256 CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252
2142 STOP^
2143 031632 254 04 0 00 031633 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2144 031633 324 00 0 00 031634 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2145 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2146 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2147 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2148 031634 312 01 0 00 032256 CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252
2149 STOP^
2150 031635 254 04 0 00 031636 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2151 031636 324 00 0 00 031637 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2152 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2153 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2154 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2155
2156 ;**********
2157
2158 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2159 ;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 3 BIT POSITIONS
2160 ;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525
2161
2162 031637 200 00 0 00 032256 C37500: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252
2163 031640 200 01 0 00 032256 MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252
2164 031641 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 525252,,525252
2165 ;525252,,525252 LEFT 3 BIT POSITIONS
2166 031642 312 00 0 00 032255 CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525
2167 STOP^
2168 031643 254 04 0 00 031644 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2169 031644 324 00 0 00 031645 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2170 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2171 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2172 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2173 031645 312 01 0 00 032255 CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525
2174 STOP^
2175 031646 254 04 0 00 031647 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2176 031647 324 00 0 00 031650 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2180
2181 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 35
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0062
2182 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2183 ;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 3 BIT POSITIONS
2184 ;SO THAT FINAL C(AC)=307036,,37007 AND FINAL C(AC+1)=700376,,003772
2185
2186 031650 200 00 0 00 032257 C37600: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700
2187 031651 200 01 0 00 032265 MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377
2188 031652 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 230703,,603700
2189 ;770037,,600377 LEFT 3 BIT POSITIONS
2190 031653 312 00 0 00 032266 CAME 0,[307036,,037007] ;PASS IF C(AC)=307036,,37007
2191 STOP^
2192 031654 254 04 0 00 031655 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2193 031655 324 00 0 00 031656 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2194 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2195 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2196 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2197 031656 312 01 0 00 032267 CAME 1,[700376,,003772] ;PASS IF C(AC+1)=700376,,003772
2198 STOP^
2199 031657 254 04 0 00 031660 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2200 031660 324 00 0 00 031661 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2201 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2202 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2203 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2204
2205 ;**********
2206
2207 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2208 ;IN THIS CASE, 776003,,760077 007603,,607062 SHOULD BE ROTATED LEFT 3 BIT POSITIONS
2209 ;SO THAT FINAL C(AC)=760037,,600770 AND FINAL C(AC+1)=076036,,070627
2210
2211 031661 200 00 0 00 032270 C37700: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077
2212 031662 200 01 0 00 032261 MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062
2213 031663 245 00 0 00 000003 ROTC 0,3 ;*ROTC SHOULD ROTATE 776003,,760077
2214 ;007603,,607062 LEFT 3 BIT POSITIONS
2215 031664 312 00 0 00 032271 CAME 0,[760037,,600770] ;PASS IF C(AC)=076036,,070627
2216 STOP^
2217 031665 254 04 0 00 031666 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2218 031666 324 00 0 00 031667 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2222 031667 312 01 0 00 032272 CAME 1,[076036,,070627] ;PASS IF C(AC+1)=760037,,600770
2223 STOP^
2224 031670 254 04 0 00 031671 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2225 031671 324 00 0 00 031672 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2226 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2227 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2228 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2229
2230 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 36
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0063
2231 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2232 ;IN THIS CASE, 0,,0 0,,0 SHOULD BE ROTATED LEFT 7 BIT POSITIONS
2233 ;SO THAT FINAL C(AC)=0,,0 AND FINAL C(AC+1)=0,,0
2234
2235 031672 200 00 0 00 032227 C40000: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0
2236 031673 200 01 0 00 032227 MOVE 1,[0,,0] ;PRELOAD AC+1 WITH 0,,0
2237 031674 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 0,,0 0,,0 LEFT 7 BIT POSITIONS
2238 031675 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0
2239 STOP^
2240 031676 254 04 0 00 031677 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2241 031677 324 00 0 00 031700 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2242 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2243 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2244 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2245 031700 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC+1)=0,,0
2246 STOP^
2247 031701 254 04 0 00 031702 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2248 031702 324 00 0 00 031703 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2249 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2250 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2251 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2252
2253 ;**********
2254
2255 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2256 ;IN THIS CASE, -1,,-1 -1,,-1 SHOULD BE ROTATED LEFT 7 BIT POSITIONS
2257 ;SO THAT FINAL C(AC)=-1,,-1 AND FINAL C(AC+1)=-1,,-1
2258
2259 031703 200 00 0 00 032226 C40100: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1
2260 031704 200 01 0 00 032226 MOVE 1,[-1,,-1] ;PRELOAD AC+1 WITH -1,,-1
2261 031705 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE -1,,-1
2262 ;-1,,-1 LEFT 7 BIT POSITIONS
2263 031706 312 00 0 00 032226 CAME 0,[-1,,-1] ;PASS IF C(AC)=-1,,-1
2264 STOP^
2265 031707 254 04 0 00 031710 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2266 031710 324 00 0 00 031711 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2267 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2268 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2269 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2270 031711 312 01 0 00 032226 CAME 1,[-1,,-1] ;PASS IF C(AC+1)=-1,,-1
2271 STOP^
2272 031712 254 04 0 00 031713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2273 031713 324 00 0 00 031714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2274 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2275 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2276 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2277
2278 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 37
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0064
2279 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2280 ;IN THIS CASE, 252525,,252525 252525,,252525 SHOULD BE ROTATED LEFT 7 BIT POSITIONS
2281 ;SO THAT FINAL C(AC)=525252,,525252 AND FINAL C(AC+1)=525252,,525252
2282
2283 031714 200 00 0 00 032255 C40200: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525
2284 031715 200 01 0 00 032255 MOVE 1,[252525,,252525] ;PRELOAD AC+1 WITH 252525,,252525
2285 031716 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 252525,,252525
2286 ;252525,,252525 LEFT 7 BIT POSITIONS
2287 031717 312 00 0 00 032256 CAME 0,[525252,,525252] ;PASS IF C(AC)=525252,,525252
2288 STOP^
2289 031720 254 04 0 00 031721 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2290 031721 324 00 0 00 031722 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2291 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2292 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2293 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2294 031722 312 01 0 00 032256 CAME 1,[525252,,525252] ;PASS IF C(AC+1)=525252,,525252
2295 STOP^
2296 031723 254 04 0 00 031724 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2297 031724 324 00 0 00 031725 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2298 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2299 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2300 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2301
2302 ;**********
2303
2304 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2305 ;IN THIS CASE, 525252,,525252 525252,,525252 SHOULD BE ROTATED LEFT 7 BIT POSITIONS
2306 ;SO THAT FINAL C(AC)=252525,,252525 AND FINAL C(AC+1)=252525,,252525
2307
2308 031725 200 00 0 00 032256 C40300: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252
2309 031726 200 01 0 00 032256 MOVE 1,[525252,,525252] ;PRELOAD AC+1 WITH 525252,,525252
2310 031727 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 525252,,525252
2311 ;525252,,525252 LEFT 7 BIT POSITIONS
2312 031730 312 00 0 00 032255 CAME 0,[252525,,252525] ;PASS IF C(AC)=252525,,252525
2313 STOP^
2314 031731 254 04 0 00 031732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2315 031732 324 00 0 00 031733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2316 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2317 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2318 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2319 031733 312 01 0 00 032255 CAME 1,[252525,,252525] ;PASS IF C(AC+1)=252525,,252525
2320 STOP^
2321 031734 254 04 0 00 031735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2322 031735 324 00 0 00 031736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2323 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2324 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2325 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2326
2327 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 38
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0065
2328 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2329 ;IN THIS CASE, 230703,,603700 770037,,600377 SHOULD BE ROTATED LEFT 7 BIT POSITIONS
2330 ;SO THAT FINAL C(AC)=160740,,760176 AND FINAL C(AC+1)=007740,,077646
2331
2332 031736 200 00 0 00 032257 C40400: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700
2333 031737 200 01 0 00 032265 MOVE 1,[770037,,600377] ;PRELOAD AC+1 WITH 770037,,600377
2334 031740 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 230703,,603700
2335 ;770037,,600377 LEFT 7 BIT POSITIONS
2336 031741 312 00 0 00 032273 CAME 0,[160740,,760176] ;PASS IF C(AC)=160740,,760176
2337 STOP^
2338 031742 254 04 0 00 031743 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2339 031743 324 00 0 00 031744 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2340 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2341 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2342 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2343 031744 312 01 0 00 032274 CAME 1,[007740,,077646] ;PASS IF C(AC+1)=007740,,077646
2344 STOP^
2345 031745 254 04 0 00 031746 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2346 031746 324 00 0 00 031747 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2347 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2348 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2349 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2350
2351 ;**********
2352
2353 ;THIS TEST VERIFIES THAT A ROTC INSTRUCTION FUNCTIONS CORRECTLY.
2354 ;IN THIS CASE, 776003,,760077 007603,,607063 SHOULD BE ROTATED LEFT 7 BIT POSITIONS
2355 ;SO THAT FINAL C(AC)=400774,,017610 AND FINAL C(AC+1)=740741,,614577
2356
2357 031747 200 00 0 00 032270 C40500: MOVE 0,[776003,,760077] ;PRELOAD AC WITH 776003,,760077
2358 031750 200 01 0 00 032261 MOVE 1,[007603,,607062] ;PRELOAD AC+1 WITH 007603,,607062
2359 031751 245 00 0 00 000007 ROTC 0,7 ;*ROTC SHOULD ROTATE 776003,,760077
2360 ;007603,,607062 LEFT 7 BIT POSITIONS
2361 031752 312 00 0 00 032275 CAME 0,[400774,,017601] ;PASS IF C(AC)=400774,,017601
2362 STOP^
2363 031753 254 04 0 00 031754 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2364 031754 324 00 0 00 031755 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2365 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2366 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2367 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2368 031755 312 01 0 00 032276 CAME 1,[740741,,614577] ;PASS IF C(AC+1)=740741,,614577
2369 STOP^
2370 031756 254 04 0 00 031757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2371 031757 324 00 0 00 031760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2372 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2373 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2374 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2375
2376 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 39
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0066
2377 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2378 ;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2379 ;SO THAT FINAL C(AC)=0,,0.
2380 ;C(AC+1) SHOULD NOT BE AFFECTED
2381
2382 031760 200 00 0 00 032227 C40600: MOVE 0,[0,,0] ;PRELOAD AC WITH 0,,0
2383 031761 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2384 031762 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0
2385 ;RIGHT 33 OCTAL BIT POSITIONS
2386 031763 312 00 0 00 032227 CAME 0,[0,,0] ;PASS IF C(AC)=0,,0
2387 STOP^
2388 031764 254 04 0 00 031765 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2389 031765 324 00 0 00 031766 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2390 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2391 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2392 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2393 031766 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2394 STOP^
2395 031767 254 04 0 00 031770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2396 031770 324 00 0 00 031771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2397 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2398 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2399 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2400
2401 ;**********
2402
2403 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2404 ;IN -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2405 ;SO THAT FINAL C(AC)=0,,777.
2406 ;C(AC+1) SHOULD NOT BE AFFECTED
2407
2408 031771 200 00 0 00 032226 C40700: MOVE 0,[-1,,-1] ;PRELOAD AC WITH -1,,-1
2409 031772 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2410 031773 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1
2411 ;RIGHT 33 OCTAL BIT POSITIONS
2412 031774 312 00 0 00 032277 CAME 0,[0,777] ;PASS IF C(AC)=0,,777
2413 STOP^
2414 031775 254 04 0 00 031776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2415 031776 324 00 0 00 031777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2416 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2417 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2418 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2419 031777 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2420 STOP^
2421 032000 254 04 0 00 032001 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2422 032001 324 00 0 00 032002 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2423 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2424 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2425 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2426
2427 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 40
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0067
2428 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2429 ;IN 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2430 ;SO THAT FINAL C(AC)=0,,252.
2431 ;C(AC+1) SHOULD NOT BE AFFECTED
2432
2433 032002 200 00 0 00 032255 C41000: MOVE 0,[252525,,252525] ;PRELOAD AC WITH 252525,,252525
2434 032003 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2435 032004 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525
2436 ;RIGHT 33 OCTAL BIT POSITIONS
2437 032005 312 00 0 00 032300 CAME 0,[0,,252] ;PASS IF C(AC)=0,,252
2438 STOP^
2439 032006 254 04 0 00 032007 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2440 032007 324 00 0 00 032010 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2441 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2442 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2443 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2444 032010 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2445 STOP^
2446 032011 254 04 0 00 032012 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2447 032012 324 00 0 00 032013 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2451
2452 ;**********
2453
2454 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2455 ;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2456 ;SO THAT FINAL C(AC)=0,,525.
2457 ;C(AC+1) SHOULD NOT BE AFFECTED
2458
2459 032013 200 00 0 00 032256 C41100: MOVE 0,[525252,,525252] ;PRELOAD AC WITH 525252,,525252
2460 032014 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2461 032015 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252
2462 ;RIGHT 33 OCTAL BIT POSITIONS
2463 032016 312 00 0 00 032301 CAME 0,[0,,525] ;PASS IF C(AC)=0,,525
2464 STOP^
2465 032017 254 04 0 00 032020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2466 032020 324 00 0 00 032021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2467 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2468 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2469 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2470 032021 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2471 STOP^
2472 032022 254 04 0 00 032023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2473 032023 324 00 0 00 032024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2474 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2475 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2476 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2477
2478 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 41
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0068
2479 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2480 ;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2481 ;SO THAT FINAL C(AC)=0,,230.
2482 ;C(AC+1) SHOULD NOT BE AFFECTED
2483
2484 032024 200 00 0 00 032257 C41200: MOVE 0,[230703,,603700] ;PRELOAD AC WITH 230703,,603700
2485 032025 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2486 032026 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700
2487 ;RIGHT 33 OCTAL BIT POSITIONS
2488 032027 312 00 0 00 032302 CAME 0,[0,,230] ;PASS IF C(AC)=230703,,603700
2489 STOP^
2490 032030 254 04 0 00 032031 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2491 032031 324 00 0 00 032032 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2492 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2493 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2494 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2495 032032 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2496 STOP^
2497 032033 254 04 0 00 032034 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2498 032034 324 00 0 00 032035 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2499 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2500 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2501 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2502
2503 ;**********
2504
2505 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2506 ;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2507 ;SO THAT FINAL C(AC)=0,,7.
2508 ;C(AC+1) SHOULD NOT BE AFFECTED
2509
2510 032035 200 00 0 00 032261 C41300: MOVE 0,[007603,,607062] ;PRELOAD AC WITH 007603,,607062
2511 032036 200 01 0 00 032254 MOVE 1,[172737,,405060] ;PRELOAD AC+1 WITH 172737,,405060
2512 032037 242 00 0 00 777745 LSH 0,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,6070062
2513 ;RIGHT 33 OCTAL BIT POSITIONS
2514 032040 312 00 0 00 032252 CAME 0,[0,,7] ;PASS IF C(AC)=0,,7
2515 STOP^
2516 032041 254 04 0 00 032042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2517 032042 324 00 0 00 032043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2518 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2519 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2520 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2521 032043 312 01 0 00 032254 CAME 1,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2522 STOP^
2523 032044 254 04 0 00 032045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2524 032045 324 00 0 00 032046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2525 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2526 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2527 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2528
2529 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 42
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0069
2530 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2531 ;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS
2532 ;SO THAT FINAL C(AC)=0,,0.
2533 ;C(AC+1) SHOULD NOT BE AFFECTED
2534
2535 032046 200 01 0 00 032227 C41400: MOVE 1,[0,,0] ;PRELOAD AC WITH 0,,0
2536 032047 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2537 032050 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 0,,0
2538 ;RIGHT 27 OCTAL BIT POSITIONS
2539 032051 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC)=0,,0
2540 STOP^
2541 032052 254 04 0 00 032053 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2542 032053 324 00 0 00 032054 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2543 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2544 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2545 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2546 032054 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2547 STOP^
2548 032055 254 04 0 00 032056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2549 032056 324 00 0 00 032057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2550 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2551 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2552 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2553
2554 ;**********
2555
2556 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2557 ;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS
2558 ;SO THAT FINAL C(AC)=0,,17777.
2559 ;C(AC+1) SHOULD NOT BE AFFECTED
2560
2561 032057 200 01 0 00 032226 C41500: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1
2562 032060 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2563 032061 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1
2564 ;RIGHT 27 OCTAL BIT POSITIONS
2565 032062 312 01 0 00 032303 CAME 1,[0,,17777] ;PASS IF C(AC)=0,17777
2566 STOP^
2567 032063 254 04 0 00 032064 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2568 032064 324 00 0 00 032065 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2569 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2570 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2571 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2572 032065 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2573 STOP^
2574 032066 254 04 0 00 032067 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2575 032067 324 00 0 00 032070 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2576 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2577 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2578 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2579
2580 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 43
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0070
2581 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2582 ;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS
2583 ;SO THAT FINAL C(AC)=0,,5252.
2584 ;C(AC+1) SHOULD NOT BE AFFECTED
2585
2586 032070 200 01 0 00 032255 C41600: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525
2587 032071 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2588 032072 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525
2589 ;RIGHT 27 OCTAL BIT POSITIONS
2590 032073 312 01 0 00 032304 CAME 1,[0,,5252] ;PASS IF C(AC)=0,,5252
2591 STOP^
2592 032074 254 04 0 00 032075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2593 032075 324 00 0 00 032076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2594 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2595 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2596 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2597 032076 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2598 STOP^
2599 032077 254 04 0 00 032100 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2600 032100 324 00 0 00 032101 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2601 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2602 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2603 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2604
2605 ;**********
2606
2607 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2608 ;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS
2609 ;SO THAT FINAL C(AC)=0,,12525.
2610 ;C(AC+1) SHOULD NOT BE AFFECTED
2611
2612 032101 200 01 0 00 032256 C41700: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252
2613 032102 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2614 032103 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252
2615 ;RIGHT 27 OCTAL BIT POSITIONS
2616 032104 312 01 0 00 032305 CAME 1,[0,,12525] ;PASS IF C(AC)=0,,12525
2617 STOP^
2618 032105 254 04 0 00 032106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2619 032106 324 00 0 00 032107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2620 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2621 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2622 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2623 032107 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2624 STOP^
2625 032110 254 04 0 00 032111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2626 032111 324 00 0 00 032112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2627 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2628 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2629 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2630
2631 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 44
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0071
2632 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2633 ;IN THIS CASE, 230703,602700 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS
2634 ;SO THAT FINAL C(AC)=0,,4616.
2635 ;C(AC+1) SHOULD NOT BE AFFECTED
2636
2637 032112 200 01 0 00 032257 C42000: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,603700
2638 032113 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2639 032114 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700
2640 ;RIGHT 27 OCTAL BIT POSITIONS
2641 032115 312 01 0 00 032306 CAME 1,[0,,4616] ;PASS IF C(AC)=0,,4616
2642 STOP^
2643 032116 254 04 0 00 032117 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2644 032117 324 00 0 00 032120 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2645 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2646 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2647 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2648 032120 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2649 STOP^
2650 032121 254 04 0 00 032122 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2651 032122 324 00 0 00 032123 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2652 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2653 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2654 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2655
2656 ;**********
2657
2658 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2659 ;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 27 OCTAL BIT POSITIONS
2660 ;SO THAT FINAL C(AC)=0,,174.
2661 ;C(AC+1) SHOULD NOT BE AFFECTED
2662
2663 032123 200 01 0 00 032261 C42100: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062
2664 032124 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2665 032125 242 01 0 00 777751 LSH 1,-27 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062
2666 ;RIGHT 27 OCTAL BIT POSITIONS
2667 032126 312 01 0 00 032307 CAME 1,[0,,174] ;PASS IF C(AC)=0,,174
2668 STOP^
2669 032127 254 04 0 00 032130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2670 032130 324 00 0 00 032131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2671 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2672 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2673 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2674 032131 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2675 STOP^
2676 032132 254 04 0 00 032133 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2677 032133 324 00 0 00 032134 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2678 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2679 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2680 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2681
2682 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 45
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0072
2683 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2684 ;IN THIS CASE, 0,,0 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2685 ;SO THAT FINAL C(AC)=0,,0.
2686 ;C(AC+1) SHOULD NOT BE AFFECTED
2687
2688 032134 200 01 0 00 032227 C42200: MOVE 1,[0,0] ;PRELOAD AC WITH 0,,0
2689 032135 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2690 032136 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 0,,0
2691 ;RIGHT 33 OCTAL BIT POSITIONS
2692 032137 312 01 0 00 032227 CAME 1,[0,,0] ;PASS IF C(AC)=0,,0
2693 STOP^
2694 032140 254 04 0 00 032141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2695 032141 324 00 0 00 032142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2696 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2697 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2698 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2699 032142 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2700 STOP^
2701 032143 254 04 0 00 032144 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2702 032144 324 00 0 00 032145 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2703 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2704 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2705 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2706
2707 ;**********
2708
2709 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2710 ;IN THIS CASE, -1,,-1 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2711 ;SO THAT FINAL C(AC)=0,,777.
2712 ;C(AC+1) SHOULD NOT BE AFFECTED
2713
2714 032145 200 01 0 00 032226 C42300: MOVE 1,[-1,,-1] ;PRELOAD AC WITH -1,,-1
2715 032146 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2716 032147 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT -1,,-1
2717 ;RIGHT 33 OCTAL BIT POSITIONS
2718 032150 312 01 0 00 032277 CAME 1,[0,,777] ;PASS IF C(AC)=0,,777
2719 STOP^
2720 032151 254 04 0 00 032152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2721 032152 324 00 0 00 032153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2722 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2723 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2724 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2725 032153 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2726 STOP^
2727 032154 254 04 0 00 032155 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2728 032155 324 00 0 00 032156 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2729 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2730 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2731 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2732
2733 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 46
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0073
2734 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2735 ;IN THIS CASE, 252525,,252525 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2736 ;SO THAT FINAL C(AC)=0,,252.
2737 ;C(AC+1) SHOULD NOT BE AFFECTED
2738
2739 032156 200 01 0 00 032255 C42400: MOVE 1,[252525,,252525] ;PRELOAD AC WITH 252525,,252525
2740 032157 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2741 032160 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 252525,,252525
2742 ;RIGHT 33 OCTAL BIT POSITIONS
2743 032161 312 01 0 00 032300 CAME 1,[0,,252] ;PASS IF C(AC)=0,,252
2744 STOP^
2745 032162 254 04 0 00 032163 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2746 032163 324 00 0 00 032164 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2747 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2748 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2749 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2750 032164 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2751 STOP^
2752 032165 254 04 0 00 032166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2753 032166 324 00 0 00 032167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2754 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2755 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2756 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2757
2758 ;**********
2759
2760 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2761 ;IN THIS CASE, 525252,,525252 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2762 ;SO THAT FINAL C(AC)=0,,525.
2763 ;C(AC+1) SHOULD NOT BE AFFECTED
2764
2765 032167 200 01 0 00 032256 C42500: MOVE 1,[525252,,525252] ;PRELOAD AC WITH 525252,,525252
2766 032170 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2767 032171 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 525252,,525252
2768 ;RIGHT 33 OCTAL BIT POSITIONS
2769 032172 312 01 0 00 032301 CAME 1,[0,,525] ;PASS IF C(AC)=0,525
2770 STOP^
2771 032173 254 04 0 00 032174 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2772 032174 324 00 0 00 032175 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2773 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2774 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2775 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2776 032175 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2777 STOP^
2778 032176 254 04 0 00 032177 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2779 032177 324 00 0 00 032200 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2780 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2781 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2782 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2783
2784 ;**********
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 47
DAKAGM MAC 19-JAN-77 17:37 TEST OF SHIFT/ROTATE INSTRUCTIONS USED IN THE ERROR HANDLER SEQ 0074
2785 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2786 ;IN THIS CASE, 230703,,603700 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2787 ;SO THAT FINAL C(AC)=0,,230.
2788 ;C(AC+1) SHOULD NOT BE AFFECTED
2789
2790 032200 200 01 0 00 032257 C42600: MOVE 1,[230703,,603700] ;PRELOAD AC WITH 230703,,603700
2791 032201 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2792 032202 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 230703,,603700
2793 ;RIGHT 33 OCTAL BIT POSITIONS
2794 032203 312 01 0 00 032302 CAME 1,[0,,230] ;PASS IF C(AC)=0,,230
2795 STOP^
2796 032204 254 04 0 00 032205 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2797 032205 324 00 0 00 032206 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2798 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2799 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2800 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2801 032206 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2802 STOP^
2803 032207 254 04 0 00 032210 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2804 032210 324 00 0 00 032211 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2805 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2806 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2807 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2808
2809 ;**********
2810
2811 ;THIS TEST VERIFIES THAT THE LSH INSTRUCTION FUNCTIONS CORRECTLY
2812 ;IN THIS CASE, 007603,,607062 SHOULD BE LOGICALLY SHIFTED RIGHT 33 OCTAL BIT POSITIONS
2813 ;SO THAT FINAL C(AC)=0,,7.
2814 ;C(AC+1) SHOULD NOT BE AFFECTED
2815
2816 032211 200 01 0 00 032261 C42700: MOVE 1,[007603,,607062] ;PRELOAD AC WITH 007603,,607062
2817 032212 200 02 0 00 032254 MOVE 2,[172737,,405060] ;PRELOAD C(AC+1) WITH 172737,,405060
2818 032213 242 01 0 00 777745 LSH 1,-33 ;*LSH SHOULD LOGICALLY SHIFT 007603,,607062
2819 ;RIGHT 33 OCTAL BIT POSITIONS
2820 032214 312 01 0 00 032252 CAME 1,[0,,7] ;PASS IF C(AC)=0,,7
2821 STOP^
2822 032215 254 04 0 00 032216 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2823 032216 324 00 0 00 032217 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2824 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2825 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2826 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2827 032217 312 02 0 00 032254 CAME 2,[172737,,405060] ;PASS IF C(AC+1) NOT AFFECTED
2828 STOP^
2829 032220 254 04 0 00 032221 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2830 032221 324 00 0 00 032222 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2831 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2832 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2833 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2834
2835 032222 254 00 0 00 030057 JRST BEGEND ;REPEAT TEST
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0075
2836 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977
2837
2838 ;PROGRAM LITERALS
2839
2840 XLIST
2841 IFNDEF $LPAPER,<LIST>
2842 032223 LIT
2843 032223 000001 000001
2844 032224 254 00 0 00 030741
2845 032225 000016 541320
2846 032226 777777 777777
2847 032227 000000 000000
2848 032230 000002 000000
2849 032231 000001 000002
2850 032232 000002 000002
2851 032233 000001 000017
2852 032234 312 00 0 00 000001
2853 032235 256 00 0 00 032234
2854 032236 256 00 0 00 032235
2855 032237 254 00 0 00 031304
2856 032240 265 03 0 00 031311
2857 032241 256 00 0 00 032240
2858 032242 256 00 0 00 032241
2859 032243 270 06 0 04 000001
2860 032244 331 01 0 00 000002
2861 032245 331 03 0 00 000006
2862 032246 777776 000005
2863 032247 253 03 0 00 031355
2864 032250 777777 000006
2865 032251 253 03 0 00 031363
2866 032252 000000 000007
2867 032253 000000 707070
2868 032254 172737 405060
2869 032255 252525 252525
2870 032256 525252 525252
2871 032257 230703 603700
2872 032260 023070 360370
2873 032261 007603 607062
2874 032262 200760 360706
2875 032263 074076 004616
2876 032264 074161 440174
2877 032265 770037 600377
2878 032266 307036 037007
2879 032267 700376 003772
2880 032270 776003 760077
2881 032271 760037 600770
2882 032272 076036 070627
2883 032273 160740 760176
2884 032274 007740 077646
2885 032275 400774 017601
2886 032276 740741 614577
2887 032277 000000 000777
2888 032300 000000 000252
2889 032301 000000 000525
2890 032302 000000 000230
DAKAG PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (7) 0,2 MACRO %52(537) 10:20 20-JAN-77 PAGE 1-1
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0076
2891 032303 000000 017777
2892 032304 000000 005252
2893 032305 000000 012525
2894 032306 000000 004616
2895 032307 000000 000174
2896 LIST
2897 032310 000000 000000 ENDSLD: 0
2898
2899 IFDEF DEBUG,<
2900 032311 PATCH: BLOCK DEBUG ;PATCHING AREA
2901 >
2902
2903 ;PROGRAM VARIABLES
2904 032411 VAR
2905
2906 IFDEF PGMEND,<
2907 032411 000000 000000 END: 0
2908 030000 END BEGIN >
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
ABSLUTE BREAK IS 032412
CPU TIME USED 00:13.678
10K CORE USED