pcjs/apps/pdp10/diags/ka10/dakae/DAKAE.LST.txt

5687 lines
314 KiB
Text

DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1
DAKAET MAC 21-Dec-78 14:28 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0007
1 ;DAKAE
2
3
4
5 000003 DECVER==3
6 000000 MCNVER==0
7
8 XLIST
9 LIST
10 LALL
11 NAME \MCNVER,\DECVER^
12
13 TITLE DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3
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,1978
20 ;DIGITAL EQUIPMENT CORPORATION
21 ;MARLBORO, MASS. 01752
22
23 ;DICK MALISKA
24 ;JOHN R. KIRCHOFF
25 ;BILL SCORZELLI
26
27 000137 LOC 137
28 000137 000000 000003 MCNVER,,DECVER
29
30 NOSYM
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2
DAKAET MAC 21-Dec-78 14:28 DIAGNOSTIC PARAMETERS SEQ 0008
31 SUBTTL DIAGNOSTIC PARAMETERS
32
33 ;PARAMETER DEFINITIONS
34 000001 EXCASB==1
35 000001 USRASB==1
36 000001 PGMEND==1
37 000100 DEBUG==100
38
39 ;FLAG DEFINITIONS
40 010000 USERF=10000 ;USER MODE FLAG
41
42
43 ;MACROS
44
45 ;SPECIAL FEATURE PARAMETERS
46
47 030674 SADR1=START
48 030674 SADR2=START
49 030674 SADR3=START
50 030674 SADR4=START
51 254000 030674 SADR5=JRST START
52 254000 030674 SADR6=JRST START
53 254000 030674 SADR7=JRST START
54 254000 030674 SADR8=JRST START
55 254000 030674 SADR9=JRST START
56 254000 030674 SADR10=JRST START
57 254000 030674 SADR11=JRST START
58
59 000000 PAREA0=0
60 000000 PAREA1=0
61 000000 PAREA2=0
62 444153 414500 PAREA3=SIXBIT/DAKAE/
63 645560 000000 PAREA4=SIXBIT/TMP/
64 000000 PAREA5=0
65 000000 PAREA6=0
66 001000 ITERAT==1000
67 000001 PGMEND==1
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3
DAKAET MAC 21-Dec-78 14:28 DIAGNOSTIC PARAMETERS SEQ 0009
68 SUBTTL DIAGNOSTIC PARAMETERS
69
70 ;ACCUMULATOR ASSIGNMENTS
71
72 ;CONTROL WORDS
73
74 400000 AROV=400000 ;ARITHMETIC OVERFLOW
75 200000 CRY0=200000 ;CARRY 0
76 100000 CRY1=100000 ;CARRY 1
77 040000 FOV=40000 ;FLOATING OVERFLOW
78 020000 BIS=20000 ;BYTE INTERRUPT
79 010000 USERF=10000 ;USER MODE FLAG
80 004000 EXIOT=4000 ;USER PRIV I/O FLAG
81 000100 FXU=100 ;FLOATING UNDERFLOW
82 000040 DCK=40 ;DIVIDE CHECK
83
84
85 ;MACROS
86
87 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1)
88 ; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION
89
90 DEFINE STOP (A)<
91 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
92 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
93 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
94 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
95 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1>
96
97 ; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG
98
99 DEFINE SFLAG (A)<
100 MOVSI 1,A
101 JFCL 17,.+1 ;RESET ALL FLAGS
102 JRST 2,.+1(1) ;SET A FLAG>
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1
PARAM KLM 1-Aug-77 08:33 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977 SEQ 0010
103 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, AUG 1,1977
104
105 DEFINE S,<;*********************************************************************>
106
107 S^;*********************************************************************^
108 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
109 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
110 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
111 S^;*********************************************************************^
112
113 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
114 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
115 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
116
117 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
118 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
119 010000 DING== 010000 ;RING BELL ON ERROR
120
121 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
122 002000 ERSTOP==002000 ;HALT ON TEST ERROR
123 001000 PALERS==001000 ;PRINT ALL ERRORS
124
125 000400 RELIAB==000400 ;RELIABILITY MODE
126 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
127 000100 INHPAG==000100 ;INHIBIT PAGING
128
129 000040 MODDVC==000040 ;MODIFY DEVICE CODE
130 000020 INHCSH==000020 ;INHIBIT CACHE
131 000010 OPRSEL==000010 ;OPERATOR SELECTION
132
133 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
134
135 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
136
137 ;SWITCH 17 RESERVED !!!
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0011
138 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
139
140 S^;*********************************************************************^
141 ;*SPECIAL SUBPROGRAM LINKAGES
142 S^;*********************************************************************^
143
144 027772 FSELNK= 27772 ;FILE SELECT LINK
145 027773 FRDLNK= 27773 ;FILE READ LINK
146 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
147 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
148 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
149 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
150
151 S^;*********************************************************************^
152 ;*SPECIAL SUBROUTINE FATAL HALTS
153 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
154 S^;*********************************************************************^
155
156 ;ADDRESS TAG REASON
157 ;---------------------
158
159 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
160 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
161 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
162 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
163 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
164 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
165 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
166 ; 1017 EOPERR ;END OF PROGRAM ERROR
167 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
168
169 S^;*********************************************************************^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0012
170 S^;*********************************************************************^
171 ;OPERATOR DEFINITIONS (NON-UUO'S)
172 S^;*********************************************************************^
173
174 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
175 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
176 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
177 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
178 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
179 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
180 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
181 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
182
183 S^;*********************************************************************^
184 ;*SUBROUTINE INITIALIZATION CALL
185 S^;*********************************************************************^
186
187 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
188
189 S^;*********************************************************************^
190 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
191 S^;*********************************************************************^
192
193 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
194 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
195
196 S^;*********************************************************************^
197 ;*TERMINAL INPUT UUO'S
198 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
199 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
200 S^;*********************************************************************^
201
202 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
203 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
204 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
205 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
206 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
207 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
208 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
209 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
210 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
211 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
212 037500 000003 OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0013
213 ;*TERMINAL OUTPUT UUO'S.
214
215 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
216 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
217 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
218 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
219 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
220 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
221 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
222 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
223 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
224 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
225 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
226 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
227 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
228 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
229 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
230 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
231 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
232 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
233 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
234 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
235 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
236 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
237 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
238 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
239 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
240 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
241 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
242 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
243 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
244 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
245 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
246 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
247 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
248 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
249 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
250 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
251 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
252 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
253 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
254 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
255 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
256 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 5
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0014
257 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
258 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
259 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
260 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
261 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
262 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
263 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
264 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
265 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
266 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
267 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
268 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
269 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
270
271 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
272
273 DEFINE PMSG (ARG),<
274 PSIXM [SIXBIT\ARG'_\]>
275
276 DEFINE PMSGF (ARG),<
277 PSIXMF [SIXBIT\ARG'_\]>
278
279 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
280 ;* CONSERVES CORE OVER ASCIZ
281
282 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
283
284 ;*CONSOLE SWITCH INPUT UUO.
285 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
286 ;* USER MODE.
287
288 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
289
290 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
291 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
292
293 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
294 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
295
296 ;*KL10 ONLY CACHE OPERATION UUO'S
297
298 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
299 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
300 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 6
PARAM KLM 1-Aug-77 08:33 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976 SEQ 0015
301 ;*END OF PASS/PROGRAM UUOS
302
303 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
304 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
305
306 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
307 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
308
309 ;*MEMORY MANAGEMENT UUO'S
310 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
311 ;*ADDRESS CONVERSION, ETC...
312
313 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
314 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
315 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
316 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
317 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
318 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
319 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
320
321 ;*DEVICE CODE MODIFICATION UUO
322 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
323 ;*IOT'S TO A DIFFERENT DEVICE CODE.
324
325 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
326 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
327
328 030000 IFNDEF MODDVL,<MODDVL==BEGIN>
329 030000 IFNDEF MODDVU,<MODDVU==BEGIN>
330
331 ;*"DIAMON" FILE SELECTION AND READ UUOS
332
333 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
334 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
335 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
336 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
337
338 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
339
340 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
341
342 XLIST
343 IFNDEF KLOLD,<LIST
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 7
PARAM KLM 1-Aug-77 08:33 ERROR HANDLING UUO DEFINITIONS, JAN 5,1976 SEQ 0016
344 SUBTTL ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
345
346 S^;*********************************************************************^
347 ;*ERROR HANDLER PARAMETERS
348 S^;*********************************************************************^
349
350 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
351 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
352 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
353 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
354 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
355
356 ;*THE ERROR HANDLER MACROS
357
358 ;*A MACRO TO REPORT AN ERROR AND LOOP
359
360 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
361 SALL
362 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
363 CORECT,,ACTUAL
364 [SIXBIT\D'_\],,ERR]
365 XALL
366 ERLOOP ADR ;IF ERROR, LOOP TO ADR
367 >
368
369 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP
370
371 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
372 SALL
373 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
374 CORECT,,ACTUAL
375 [SIXBIT\D'_\],,ERR]
376 XALL>
377
378 >;END OF KLOLD CONDITIONAL
379
380 XLIST
381 LIST
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0017
382 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977
383
384 030000 LOC 30000
385
386 S^;*********************************************************************^
387 ;*PROGRAM STARTING ADDRESSES
388 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
389 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
390 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
391 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
392 S^;*********************************************************************^
393
394 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
395 030001 254 00 0 00 030674 $START: JRST START ;MODE CHECK STARTING ADDRESS
396
397 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
398
399 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
400
401 030004 254 00 0 00 030674 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
402
403 030005 254 00 0 00 030674 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
404
405 030006 254 00 0 00 030674 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
406
407 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
408 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
409
410 030010 254 00 0 00 030723 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
411 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
412 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
413
414 030013 254000 030674 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
415 030014 254000 030674 START2: SADR8 ; "
416 030015 254000 030674 START3: SADR9 ; "
417 030016 254000 030674 START4: SADR10 ; "
418 030017 254000 030674 START5: SADR11 ; "
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0018
419 S^;*********************************************************************^
420 ;*PROGRAM FIXED PARAMETER AREA
421 S^;*********************************************************************^
422
423 030020 444153 414500 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
424 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
425 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER
426 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
427 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS
428 030025 000000 030707 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
429 030026 000000 000003 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
430 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
431 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
432 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
433 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
434 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
435 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
436 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
437 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
438
439 S^;*********************************************************************^
440 ;*PROGRAM VARIABLE PARAMETER AREA
441 S^;*********************************************************************^
442
443 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
444 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
445 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
446 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
447 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
448 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
449 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
450 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
451 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
452 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
453 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
454 030052 000000 000000 ERRPC: 0 ;ERROR PC
455 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
456 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
457 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
458 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0019
459 S^;*********************************************************************^
460 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
461 S^;*********************************************************************^
462
463 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
464 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
465 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
466 030062 254000 030674 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
467 030063 254000 030674 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
468 030064 CPOPJ1: ;SKIP RETURN
469 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
470 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
471 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
472 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
473 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
474 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
475 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
476 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
477 030073 255 00 0 00 000000 $USRHL: JFCL ; "
478 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
479 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
480 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
481 030077 255 00 0 00 000000 RESRT2: JFCL ; "
482 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
483 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
484 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
485
486 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
487 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
488 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
489
490 S^;*********************************************************************^
491 ;*PROCESSOR CONTROL STORAGE
492 S^;*********************************************************************^
493
494 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
495 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
496 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
497 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
498 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
499
500 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
501 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
502
503 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
504 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
505 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
506 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
507 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
508 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
509 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0020
510 S^;*********************************************************************^
511 ;*UUO DISPATCH TABLE
512 S^;*********************************************************************^
513 XLIST
514 LIST
515 030124 030070 030070 UUODIS: LUUO1,,$UUOER
516 030125 030070 030070 LUUO3,,LUUO2
517 030126 030070 030070 LUUO5,,LUUO4
518 030127 030070 030070 LUUO7,,LUUO6
519 030130 030070 030070 LUUO11,,LUUO10
520 030131 030070 030070 LUUO13,,LUUO12
521 030132 030070 030070 LUUO15,,LUUO14
522 030133 030070 030070 LUUO17,,LUUO16
523 030134 030070 030070 LUUO21,,LUUO20
524 030135 030070 030070 LUUO23,,LUUO22
525 030136 030070 030070 LUUO25,,LUUO24
526 030137 030070 030070 LUUO27,,LUUO26
527 030140 030070 030070 LUUO31,,LUUO30
528 030141 030070 030070 LUUO33,,LUUO32
529
530 S^;*********************************************************************^
531 ;*MEMORY MANAGMENT STORAGE
532 S^;*********************************************************************^
533
534 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
535 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
536 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
537 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
538 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
539
540 S^;*********************************************************************^
541 ;*PRINT CONTROL STORAGE
542 S^;*********************************************************************^
543
544 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
545 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
546 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
547 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
548 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
549 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
550 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
551 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
552 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
553 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
554 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
555 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
556 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
557 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
558 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
559 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
560 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
561 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
562 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 5
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0021
563 S^;*********************************************************************^
564 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
565 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
566 ;* MOVEI NAME
567 ;* PNTA ;OR PNTAF
568 S^;*********************************************************************^
569
570 030242 CRLF: ASCII/
571 030242 015 012 000 000 000 /
572 030243 CRLF2: ASCII/
573
574 030243 015 012 015 012 000 /
575 030244 054 000 000 000 000 COMMA: ASCII/,/
576 030245 056 000 000 000 000 PERIOD: ASCII/./
577 030246 040 000 000 000 000 SPACE: ASCII/ /
578 030247 011 000 000 000 000 TAB: ASCII/ /
579 030250 MINUS:
580 030250 055 000 000 000 000 HYPEN: ASCII/-/
581 030251 053 000 000 000 000 PLUS: ASCII/+/
582 030252 052 000 000 000 000 AST: ASCII/*/
583 030253 100 000 000 000 000 ATSIN: ASCII/@/
584 030254 050 000 000 000 000 LFP: ASCII/(/
585 030255 051 000 000 000 000 RTP: ASCII/)/
586 030256 007 0000000000 BELL: BYTE (7) 007
587 030257 077 000 000 000 000 QUEST: ASCII/?/
588 030260 057 000 000 000 000 SLASH: ASCII!/!
589 030261 044 000 000 000 000 DOLLAR: ASCII/$/
590 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
591 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
592 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
593
594 S^;*********************************************************************^
595 ;*USER MODE OUTPUT FILE INFORMATION
596 S^;*********************************************************************^
597
598 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
599 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
600 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
601 030272 BLOCK 2
602
603 S^;*********************************************************************^
604 ;*DISK UPDATE MODE FILE INFORMATION
605 S^;*********************************************************************^
606
607 030274 $IBUF: BLOCK 3
608 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
609 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
610 030301 BLOCK 2
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 6
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0022
611 S^;*********************************************************************^
612 ;*PUSHDOWN LIST CONTROL INFORMATION
613 S^;*********************************************************************^
614
615 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
616 030304 PLISTS: BLOCK 200
617 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
618
619 S^;*********************************************************************^
620 ;*POWER LINE CLOCK FREQUENCY FLAG
621 S^;*********************************************************************^
622
623 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
624
625 S^;*********************************************************************^
626 ;*KL10 CACHE CONTROL FLAGS
627 S^;*********************************************************************^
628
629 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
630 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
631
632 S^;*********************************************************************^
633 ;*NUMBER INPUT DIGIT FLAG
634 S^;*********************************************************************^
635
636 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
637
638 S^;*********************************************************************^
639 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
640 S^;*********************************************************************^
641
642 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
643
644 S^;*********************************************************************^
645 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
646 S^;*********************************************************************^
647
648 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
649 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
650 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
651
652 S^;*********************************************************************^
653 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
654 S^;*********************************************************************^
655
656 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 7
FIXED KLM 19-Jul-77 16:36 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JULY 19,1977 SEQ 0023
657 S^;*********************************************************************^
658 ;*USER MODE MONITOR TYPE FLAG
659 S^;*********************************************************************^
660
661 030516 000000 000000 MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
662
663 S^;*********************************************************************^
664 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
665 S^;*********************************************************************^
666
667 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
668
669 S^;*********************************************************************^
670 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
671 S^;*********************************************************************^
672
673 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
674
675 S^;*********************************************************************^
676 ;*"SWITCH" CALL USAGE CONTROL
677 S^;*********************************************************************^
678
679 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
680
681 S^;*********************************************************************^
682 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
683 S^;*********************************************************************^
684
685 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
686 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
687
688 S^;*********************************************************************^
689 ;*SM10 (KS-10) PROCESSOR TYPE FLAG
690 S^;*********************************************************************^
691
692 030524 000000 000000 SM10: 0 ;IF -1 THIS IS A KS-10
693
694 S^;*********************************************************************^
695 ;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
696 S^;*********************************************************************^
697
698 030525 000000 000000 SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
699
700 S^;*********************************************************************^
701 ;*SPECIAL FUTURE EXPANSION ROOM
702 S^;*********************************************************************^
703
704 S^;*********************************************************************^
705 ;*END OF FIXED STORAGE
706 S^;*********************************************************************^
707
708 030577 LOC 30577
709 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1
SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024
710 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76
711
712 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
713
714 000000 AC0= 0
715 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
716 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS
717 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
718 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
719
720 ;DTE20 DEVICE CODES
721
722 000200 DTE== 200 ;DTE0
723 000204 DTE0== 204
724 000204 DTE1== 204
725 000210 DTE2== 210
726 000214 DTE3== 214
727
728 ;KL10 EPT COMMUNICATION AREA
729
730 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
731 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
732 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
733 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
734
735 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
736 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
737 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
738 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
739 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
740 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
741 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
742 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE #
743 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
744 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
745 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
746
747 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2
SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025
748 ;SPECIAL "FIXED" REASSIGNMENTS
749
750 030600 $$LOC=. ;SAVE CURRENT LOCATION
751
752 030000 LOC 30000
753 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START
754 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS
755
756 000440 LOC 440
757 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD"
758 000443 LOC 443
759 000443 254 00 0 00 030626 $STM: JRST $SPEC ;SIMPLE RUN CONTROL
760
761 030057 LOC 30057
762 030057 254 00 0 00 030631 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND"
763
764 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP
765
766 000420 LOC 420
767 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL
768 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW
769 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW
770 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3
771 000424 000000 000000 $$424: 0 ;MMUO
772 000425 000000 000000 $$425: 0 ;MMUO PC
773 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT
774 000427 254 04 0 00 000427 $$427: HALT .
775 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S
776 000431 000000 000427 $$431: 427
777 000432 000000 000427 $$432: 427
778 000433 000000 000427 $$433: 427
779 000434 000000 000427 $$434: 427
780 000435 000000 000427 $$435: 427
781 000436 000000 000427 $$436: 427
782 000437 000000 000427 $$437: 427
783
784 000500 LOC 500
785 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD
786 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC
787 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC
788 000503 254 04 0 00 000503 $$503: HALT .
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3
SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026
789 030600 LOC $$LOC ;RESET CURRENT LOCATION
790
791 ;SPECIAL STARTUP SEQUENCE
792
793 030600 402 00 0 00 030037 $$START:SETZM USER
794 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ?
795 030602 603 00 0 00 010000 TLNE 0,USERF
796 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD
797 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ?
798 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC
799 030606 332 00 0 00 030037 SKIPE USER
800 030607 254 00 0 00 030674 JRST START ;USER MODE, DON'T NEED CPU TYPE
801
802 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ?
803 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER
804 030612 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10
805 030613 200 01 0 00 033460 MOVE 1,[1,,1]
806 030614 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS
807 030615 316 01 0 00 033460 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10
808 030616 254 00 0 00 030674 JRST START ;KI10, NO ADDITIONAL SETUP
809
810 030617 402 00 0 00 000444 $STKL: SETZM $DTFLG
811 030620 402 00 0 00 000445 SETZM $DTCLK
812 030621 200 00 0 00 000453 MOVE $DTOPR ;GET DTE #
813 030622 436 00 0 00 030657 ORM $$DTE0 ;INSERT IN DTE I/O INSTS
814 030623 436 00 0 00 030670 ORM $$DTE2
815 030624 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG
816 030625 254 00 0 00 030674 JRST START
817
818 030626 200 00 0 00 033461 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL
819 030627 202 00 0 00 030633 MOVEM $SPB1
820 030630 254 00 0 00 030674 JRST START
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4
SPCCPU KLM 24-Oct-78 08:57 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0027
821 ;SPECIAL "BEGEND" ROUTINE
822
823 030631 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT
824 030632 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT
825 030633 336 00 0 00 030037 $SPB1: SKIPN USER
826 030634 254 00 0 00 030642 JRST $SPBEX ;EXEC MODE
827
828 030635 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ?
829 030636 254 00 0 00 030723 JRST STARTA ;NO, KEEP RUNNING
830 030637 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ?
831 030640 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR
832 030641 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON"
833
834 030642 332 00 0 00 030041 $SPBEX: SKIPE KLFLG
835 030643 254 00 0 00 030650 JRST $SPBKL ;KL10 & EXEC
836 030644 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT
837 030645 332 00 0 00 030024 SKIPE ITRCNT
838 030646 254 00 0 00 030723 JRST STARTA ;NOT COMPLETED YET
839 030647 254 00 1 00 030012 JRST @RETURN ;DONE
840
841 030650 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT
842 030651 254 00 0 00 030663 JRST $SPKLD ;KL10, EXEC & COMPLETED
843
844 030652 335 00 0 00 030043 SKIPGE MONCTL
845 030653 254 00 0 00 030723 JRST STARTA ;"DIAMON" CONTROL
846 030654 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS
847 030655 202 00 0 00 000451 MOVEM 0,$DTCMD
848 030656 402 00 0 00 000444 SETZM $DTFLG
849 030657 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11
850 030660 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS
851 030661 254 00 0 00 030660 JRST .-1
852 030662 254 00 0 00 030723 JRST STARTA ;KEEP RUNNING
853
854 ;SPECIAL KL10 COMPLETED ROUTINE
855
856 030663 332 00 0 00 030044 $SPKLD: SKIPE MONTEN
857 030664 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON"
858
859 030665 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION
860 030666 202 00 0 00 000451 MOVEM 0,$DTCMD
861 030667 402 00 0 00 000444 SETZM $DTFLG
862 030670 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11
863 030671 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN
864 030672 254 00 0 00 030671 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM
865 030673 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT.
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 1
DAKAEM MAC 28-Dec-78 13:35 DIAGNOSTIC SECTION SEQ 0028
866 SUBTTL DIAGNOSTIC SECTION
867
868 030674 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD
869 030675 265 00 0 00 030676 JSP 0,.+1 ;GET FLAGS
870 030676 603 00 0 00 010000 TLNE USERF ;IN USER MODE?
871 030677 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD
872 030700 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE?
873 030701 402 00 0 00 030037 SETZM USER ;YES, CLEAR USER CONTROL WORD
874 030702 336 00 0 00 030037 SKIPN USER
875 030703 254 00 0 00 030723 JRST STARTA
876 030704 331 00 0 00 030043 SKIPL MONCTL
877 030705 051 03 0 00 030707 TTCALL 3,PGMNAM ;MENTION OUR NAME
878 030706 254 00 0 00 030723 JRST STARTA
879
880 030707 PGMNAM: ASCIZ/
881 030707 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) [DAKAE]
882 030710 055 061 060 040 113
883 030711 101 061 060 040 102
884 030712 101 123 111 103 040
885 030713 111 116 123 124 122
886 030714 125 103 124 111 117
887 030715 116 040 104 111 101
888 030716 107 116 117 123 124
889 030717 111 103 040 050 065
890 030720 051 040 133 104 101
891 030721 113 101 105 135 015
892 030722 012 000 000 000 000 /
893
894
895 ;THE TEST IS DESIGNED FOR INITIAL DEBUGGING OF
896 ;PROCESSOR HARDWARE AND TO DETECT (SOLID) FAILURES
897 ;IN THE FIELD.
898
899 030723 254 00 0 00 030724 STARTA: JRST .+1
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 2
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0029
900 SUBTTL TEST OF JSR INSTRUCTION
901
902 ;**********
903
904 ;THIS TEST VERIFIES THAT JSR STORES THE FLAGS AND PC IN LOCATION E.
905 ;IN THIS CASE, E IS CLEARED, CRY0 IS SET AND JSR IS EXECUTED.
906 ;NEXT, E IS CHECKED FOR ITS CONTENTS NON-ZERO. IF C(E) IS NON-ZERO,
907 ;THIS TEST PASSES.
908
909 030724 C23000: SFLAG CRY0 ^;SET CRY0 FLAG
910
911 030724 205 01 0 00 200000 MOVSI 1,CRY0
912 030725 255 17 0 00 030726 JFCL 17,.+1 ;RESET ALL FLAGS
913 030726 254 02 0 01 030727 JRST 2,.+1(1) ;SET CRY0 FLAG
914 030727 402 00 0 00 030731 SETZM .+2 ;PRELOAD E WITH 0
915 030730 264 00 0 00 030731 JSR .+1 ;*JSR SHOULD PLACE FLAGS AND PC INTO AC
916 030731 000000 000000 0 ;E: PRESET TO 0, SHOULD RECEIVE FLAGS AND PC FROM JSR
917 030732 336 00 0 00 030731 SKIPN .-1 ;PASS IF C(E) IS NON-ZERO.
918 STOP^
919 030733 254 04 0 00 030734 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
920 030734 324 00 0 00 030735 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
921 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
922 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
923 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
924
925 ;**********
926
927 ;THIS TEST VERIFIES THAT JSR IGNORES THE AC FIELD;
928 ;HENCE, IT DOES NOT MODIFY THE SPECIFIED AC.
929 ;IN THIS CASE, CRY0 IS SET. THE AC IS PRELOADED WITH -1,,-1 AND JSR IS EXECUTED.
930 ;THE AC IS THEN CHECKED. IF C(AC)=-1,,-1, THIS TEST PASSES.
931
932 030735 C23100: SFLAG CRY0 ^;SET CRY0
933
934 030735 205 01 0 00 200000 MOVSI 1,CRY0
935 030736 255 17 0 00 030737 JFCL 17,.+1 ;RESET ALL FLAGS
936 030737 254 02 0 01 030740 JRST 2,.+1(1) ;SET CRY0 FLAG
937 030740 474 01 0 00 000000 SETO 1, ;PRELOAD AC WITH -1,,-1
938 030741 264 01 0 00 030742 JSR 1,.+1 ;*JSR SHOULD NOT MODIFY THE AC
939 030742 000000 000000 0 ;STORE PC + FLAGS HERE
940 030743 312 01 0 00 033462 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1
941 STOP^
942 030744 254 04 0 00 030745 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
943 030745 324 00 0 00 030746 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
944 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
945 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
946 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
947
948 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 3
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0030
949 ;THIS TEST VERIFIES THAT JSR STORES THE FLAGS IN E-LEFT HALF.
950 ;IN THIS TEST, CRY0 IS SET, E IS CLEARED AND JSR IS EXECUTED.
951 ;NEXT, C(E-LEFT) ARE PLACED INTO AC0 AND AC0 IS CHECKED FOR ITS CONTENTS NON-ZERO.
952 ;IF C(AC0) ARE NON-ZERO, THIS TEST PASSES.
953
954 030746 C23200: SFLAG CRY0 ^;SET CRY0
955
956 030746 205 01 0 00 200000 MOVSI 1,CRY0
957 030747 255 17 0 00 030750 JFCL 17,.+1 ;RESET ALL FLAGS
958 030750 254 02 0 01 030751 JRST 2,.+1(1) ;SET CRY0 FLAG
959 030751 402 00 0 00 030753 SETZM .+2 ;CLEAR E
960 030752 264 00 0 00 030753 JSR .+1 ;*JSR SHOULD STORE FLAGS IN E
961 030753 000000 000000 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST)
962 030754 510 00 0 00 030753 HLLZ .-1 ;PUT FLAGS INTO AC0
963 030755 336 00 0 00 000000 SKIPN ;PASS IF C(AC0) NON-ZERO
964 STOP^
965 030756 254 04 0 00 030757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
966 030757 324 00 0 00 030760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
967 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
968 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
969 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
970
971 ;**********
972
973 ;THIS TEST VERIFIES THAT JSR TRANSFERS CONTROL TO E+1.
974 ;IN THIS CASE, CRY0 IS SET AND E AND AC0 CLEARED; THEN, JSR IS EXECUTED.
975 ;IF JSR RESUMES CONTROL AT E INSTEAD OF E+1, AC0 WILL BE MODIFIED;
976 ;HENCE, THE TEST WILL FAIL WHEN AC0 IS CHECKED FOR 0 BECAUSE
977 ;C(E) IS DECODED AS A MOVE INSTRUCTION.
978
979 030760 C23300: SFLAG CRY0 ^;SET CRY0
980
981 030760 205 01 0 00 200000 MOVSI 1,CRY0
982 030761 255 17 0 00 030762 JFCL 17,.+1 ;RESET ALL FLAGS
983 030762 254 02 0 01 030763 JRST 2,.+1(1) ;SET CRY0 FLAG
984 030763 403 00 0 00 030765 SETZB .+2 ;CLEAR AC0 AND E
985 030764 264 00 0 00 030765 JSR .+1 ;*JSR SHOULD RESUME CONTROL AT E+1
986 030765 000000 000000 0 ;STORE FLAGS HERE (CRY0 MAKES THIS A MOVE INST)
987 030766 332 00 0 00 000000 SKIPE 0 ;PASS IF C(AC0)=0
988 STOP^
989 030767 254 04 0 00 030770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
990 030770 324 00 0 00 030771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
991 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
992 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
993 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
994
995 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 4
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0031
996 ;THIS TEST VERIFIES THAT JSR JUMPS TO E+1
997 ;IN THIS CASE, AC0 IS CLEARED AND CRY0 IS SET; THEN, JSR .+2 IS EXECUTED.
998 ;IF JSR DID NOT JUMP, ONES ARE LOADED WITH AC0; AND THE TEST FAILS.
999 ;OTHERWISE, AC0 REMAINS CLEAR AND THE TEST PASSES
1000
1001 030771 C23400: SFLAG CRY0 ^;SET CRY0
1002
1003 030771 205 01 0 00 200000 MOVSI 1,CRY0
1004 030772 255 17 0 00 030773 JFCL 17,.+1 ;RESET ALL FLAGS
1005 030773 254 02 0 01 030774 JRST 2,.+1(1) ;SET CRY0 FLAG
1006 030774 400 00 0 00 000000 SETZ ;CLEAR AC0
1007 030775 264 00 0 00 030777 JSR .+2 ;*JSR SHOULD JUMP
1008 030776 474 00 0 00 000000 SETO ;LOAD AC0 WITH ONES IF JSR FAILED TO JUMP
1009 030777 000000 000000 0 ;STORE FLAGS HERE
1010 031000 332 00 0 00 000000 SKIPE ;PASS IF JSR JUMPED CORRECTLY
1011 STOP^
1012 031001 254 04 0 00 031002 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1013 031002 324 00 0 00 031003 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1014 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1015 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1016 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1017
1018 ;**********
1019
1020 ;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC
1021 ;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION.
1022 ;THIS TEST WILL FAIL IF JSR STORES E INSTEAD OF PC IN E - RIGHT HALF.
1023 ;IN CASE OF FAILURE, AR PC EN AT ET2 WAS FAULTY.
1024
1025 031003 C23500: SFLAG 0 ^;CLEAR ALL FLAGS
1026
1027 031003 205 01 0 00 000000 MOVSI 1,0
1028 031004 255 17 0 00 031005 JFCL 17,.+1 ;RESET ALL FLAGS
1029 031005 254 02 0 01 031006 JRST 2,.+1(1) ;SET 0 FLAG
1030 031006 264 00 0 00 031010 JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT
1031 031007 254 04 0 00 031007 HALT . ;JSR SHOULD SKIP OVER THIS HALT
1032 031010 000000 000000 0 ;STORE FLAGS AND PC HERE
1033 031011 550 00 0 00 031010 HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0
1034 031012 306 00 0 00 031010 CAIN .-2 ;FAIL IF C(AC0)=E
1035 STOP^
1036 031013 254 04 0 00 031014 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1037 031014 324 00 0 00 031015 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1038 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1039 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1040 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1041
1042 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 5
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSR INSTRUCTION SEQ 0032
1043 ;THIS TEST VERIFIES THAT JSR STORES THE PC IN E - RIGHT HALF. THE PC
1044 ;IS ONE GREATER THAN THE LOCATION OF THE JSR INSTRUCTION.
1045 ;THIS TEST WILL PASS IF JSR STORES PC IN E - RIGHT HALF.
1046
1047 031015 264 00 0 00 031017 C23600: JSR .+2 ;*JSR SHOULD STORE PC+1 IN E - RIGHT
1048 031016 254 04 0 00 031016 HALT . ;JSR SHOULD SKIP OVER THIS HALT
1049 031017 000000 000000 0 ;STORE FLAGS AND PC HERE
1050 031020 550 00 0 00 031017 HRRZ .-1 ;PUT STORED CONTENTS OF E - RIGHT INTO AC0
1051 031021 302 00 0 00 031016 CAIE C23600+1 ;PASS IF C(AC0)=C23600+1 [PC]
1052 STOP^
1053 031022 254 04 0 00 031023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1054 031023 324 00 0 00 031024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1055 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1056 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1057 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1058
1059 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 6
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0033
1060 SUBTTL TEST OF JSA INSTRUCTION
1061
1062 ;**********
1063
1064 ;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1.
1065 ;IN THIS TEST, AC1 IS CLEARED AND A CAM 0,0 IS LOADED
1066 ;INTO THE AC OF THE JSA INSTRUCTION.
1067 ;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH ONES. AC1 IS CHECKED FOR ZEROS.
1068 ;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP.
1069
1070 031024 400 01 0 00 000000 C23700: SETZ 1, ;CLEAR AC1
1071 031025 200 00 0 00 033463 MOVE [CAM] ;LOAD CAM INTO AC0
1072 031026 266 00 0 00 031030 JSA .+2 ;*JSA SHOULD JUMP TO E+1
1073 031027 474 00 0 00 000001 SETO 1 ;JSA SHOULD JUMP OVER THIS INSTRUCTION
1074 031030 000000 000000 0 ;PASS IF JSA JUMPED
1075 031031 332 00 0 00 000001 SKIPE 1
1076 STOP^
1077 031032 254 04 0 00 031033 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1078 031033 324 00 0 00 031034 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1079 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1080 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1081 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1082
1083 ;**********
1084
1085 ;THIS TEST VERIFIES THAT JSA JUMPS TO LOCATION E+1.
1086 ;IN THIS TEST, AC1 IS CLEARED AND A MOVEI 1,1234 IS LOADED
1087 ;INTO THE AC OF THE JSA INSTRUCTION.
1088 ;IF JSA DOES NOT JUMP, AC1 WILL BE LOADED WITH 0,,1234. AC1 IS CHECKED FOR ZEROS.
1089 ;IF C(AC1)=0, THE TEST PASSES; OTHERWISE, THIS TEST FAILS BECAUSE JSA DID NOT JUMP.
1090
1091 031034 400 01 0 00 000000 C24000: SETZ 1, ;CLEAR AC1
1092 031035 200 00 0 00 033464 MOVE [MOVEI 1,1234] ;LOAD MOVEI 1,1234 INTO AC
1093 031036 266 00 0 00 031037 JSA .+1 ;*JSA SHOULD JUMP TO E+1
1094 031037 000000 000000 0 ;JSA SHOULD JUMP OVER THIS LOCATION
1095 031040 306 01 0 00 001234 CAIN 1,1234 ;FAIL IF JSA DID NOT JUMP OVER PREVIOUS INSTRUCTION
1096 STOP^
1097 031041 254 04 0 00 031042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1098 031042 324 00 0 00 031043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1099 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1100 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1101 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1102
1103 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 7
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0034
1104 ;THIS TEST VERIFIES THAT JSA LOADS PC OF LOC OF JSA+1 INTO AC RIGHT.
1105 ;THIS TEST WILL FAIL IF JSA LOADS E INTO AC RIGHT INSTEAD OF PC.
1106
1107 031043 266 00 0 00 031045 C24100: JSA .+2 ;*JSA SHOULD LOAD PC INTO AC RIGHT
1108 031044 254 04 0 00 031044 HALT . ;JSA SHOULD JUMP OVER THIS LOCATION
1109 031045 000000 000000 0 ;JSA SHOULD JUMP OVER THIS LOCATION
1110 031046 552 00 0 00 000001 HRRZM 1 ;PUT C(AC-RIGHT) INTO AC1
1111 031047 306 01 0 00 031045 CAIN 1,.-2 ;FAIL IF E WAS LOADED INTO AC-RIGHT INSTEAD OF PC
1112 STOP^
1113 031050 254 04 0 00 031051 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1114 031051 324 00 0 00 031052 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1115 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1116 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1117 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1118
1119 ;**********
1120
1121 ;THIS TEST VERIFIES THAT JSA PLACES C(AC) INTO E
1122 ;THIS TEST WILL FAIL IF EITHER 0,,E OR 0,,PC IS LOADED
1123 ;INTO E INSTEAD OF C(AC)
1124
1125 031052 403 00 0 00 031054 C24200: SETZB .+2 ;CLEAR AC,E
1126 031053 266 00 0 00 031054 JSA .+1 ;*JSA SHOULD LOAD C(AC) [ZEROS] INTO E
1127 031054 000000 000000 0 ;JSA SHOULD PLACE ZEROS HERE
1128 031055 200 01 0 00 031054 MOVE 1,.-1 ;SAVE C(AC)
1129 031056 306 01 0 00 031054 CAIN 1,.-2 ;FAIL IF JSA LOADED 0,,E OR 0,,PC INTO E
1130 STOP^
1131 031057 254 04 0 00 031060 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1132 031060 324 00 0 00 031061 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 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 8
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0035
1138 ;THIS TEST VERIFIES THAT JSA PLACES PC INTO AC-RIGHT
1139 ;THIS TEST WILL FAIL IF PC IS NOT LOADED INTO AC-RIGHT
1140
1141 031061 201 00 0 00 777777 C24300: MOVEI -1 ;PRELOAD AC WITH 0,,-1
1142 031062 266 00 0 00 031063 JSA .+1 ;*JSA SHOULD PLACE E,,PC INTO THE AC
1143 031063 000000 000000 0 ;JSA SHOULD PLACE C(AC) HERE
1144 031064 606 00 0 00 777777 TRNN -1 ;FAIL IF AR LT AR RT EN FAILED
1145 STOP^
1146 031065 254 04 0 00 031066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1147 031066 324 00 0 00 031067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1148 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1149 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1150 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1151
1152 ;**********
1153
1154 ;THIS TEST VERIFIES THAT JSA PLACES THE PC OF THE LOCATION OF JSA+1 IN AC-RIGHT
1155 ;THIS TEST FAILS IF A PC WAS NOT LOADED INTO AC RIGHT
1156
1157 031067 400 00 0 00 000000 C24400: SETZ ;CLEAR AC
1158 031070 266 00 0 00 031071 JSA .+1 ;*JSA SHOULD LOAD PC INTO AC - RIGHT
1159 031071 000000 000000 0 ;JSA SHOULD PLACE C(AC) HERE
1160 031072 606 00 0 00 777777 TRNN -1 ;PASS IF AC - RIGHT IS NON-ZERO
1161 STOP^
1162 031073 254 04 0 00 031074 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1163 031074 324 00 0 00 031075 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1164 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1165 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1166 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1167
1168 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 9
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0036
1169 ;THIS TEST VERIFIES THAT JSA PLACES IN AC-LEFT
1170 ;THIS TEST FAILS IF JSA LOADS PC INSTEAD OF E INTO AC-LEFT
1171
1172 031075 266 00 0 00 031077 C24500: JSA .+2 ;*JSA SHOULD LOAD E INTO AC-LEFT
1173 031076 254 04 0 00 031076 HALT . ;JSA SHOULD JUMP OVER THIS INSTRUCTION
1174 031077 000000 000000 0 ;E:
1175 031100 556 00 0 00 000001 HLRZM 1 ;SAVE C(AC - LEFT)
1176 031101 306 01 0 00 031076 CAIN 1,.-3 ;FAIL IF JSA LOADED PC INSTEAD OF E INTO AC-LEFT
1177 STOP^
1178 031102 254 04 0 00 031103 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1179 031103 324 00 0 00 031104 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1180 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1181 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1182 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1183
1184 ;**********
1185
1186 ;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC
1187 ;FIRST, THE AC IS PRELOADED WITH -1,,-1; THEN, JSA IS EXECUTED.
1188 ;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES
1189
1190 031104 474 00 0 00 000000 C24600: SETO ;PRELOAD AC WITH -1,,-1
1191 031105 266 00 0 00 031107 JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC
1192 031106 254 04 0 00 031106 HALT . ;JSA SHOULD JUMP OVER HERE, PC:
1193 031107 000000 000000 0 ;JSA SHOULD STORE C(AC) HERE, E:
1194 031110 312 00 0 00 033465 CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC
1195 STOP^
1196 031111 254 04 0 00 031112 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1197 031112 324 00 0 00 031113 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1198 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1199 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1200 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1201
1202 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 10
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0037
1203 ;THIS TEST VERIFIES THAT JSA LOADS E,,PC INTO THE AC
1204 ;FIRST, THE AC IS PRELOADED WITH 0 JSA IS EXECUTED.
1205 ;THE AC IS CHECKED FOR E,,PC. IF C(AC)=E,,PC, THIS TEST PASSES
1206
1207 031113 400 00 0 00 000000 C24700: SETZ ;PRELOAD AC WITH 0
1208 031114 266 00 0 00 031116 JSA .+2 ;*JSA SHOULD PLACE E,,PC INTO THE AC
1209 031115 254 04 0 00 031115 HALT . ;JSA SHOULD JUMP OVER HERE, PC:
1210 031116 000000 000000 0 ;JSA SHOULD STORE C(AC) HERE, E:
1211 031117 312 00 0 00 033466 CAME [XWD .-1,.-2] ;PASS IF C(AC)=E,,PC
1212 STOP^
1213 031120 254 04 0 00 031121 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1214 031121 324 00 0 00 031122 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1215 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1216 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1217 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1218
1219 ;**********
1220
1221 ;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E.
1222 ;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES;
1223 ;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0,
1224 ;THIS TEST PASSES.
1225
1226 031122 400 00 0 00 000000 C25000: SETZ ;CLEAR AC
1227 031123 476 00 0 00 031125 SETOM .+2 ;PRELOAD E WITH -1,,-1
1228 031124 266 00 0 00 031125 JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E
1229 031125 000000 000000 0 ;E: SHOULD GET C(AC) FROM JSA
1230 031126 332 00 0 00 031125 SKIPE .-1 ;PASS IF C(E)=0
1231 STOP^
1232 031127 254 04 0 00 031130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1233 031130 324 00 0 00 031131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1234 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1235 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1236 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1237
1238 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 11
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0038
1239 ;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E.
1240 ;AC IS FIRST PRELOADED WITH -1,,-1 AND E IS CLEARED;
1241 ;THEN, JSA IS EXECUTED. E IS CHECKED FOR -1,,-1. IF C(E)=-1,,-1,
1242 ;THIS TEST PASSES.
1243
1244 031131 477 00 0 00 000001 C25100: SETOB 1 ;PRELOAD AC -1,,-1
1245 031132 402 00 0 00 031134 SETZM .+2 ;PRELOAD E WITH 0
1246 031133 266 00 0 00 031134 JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E
1247 031134 000000 000000 0 ;E: SHOULD GET C(AC) FROM JSA
1248 031135 312 01 0 00 031134 CAME 1,.-1 ;PASS IF C(E)=-1,,-1
1249 STOP^
1250 031136 254 04 0 00 031137 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1251 031137 324 00 0 00 031140 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1252 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1253 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1254 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1255
1256 ;**********
1257
1258 ;THIS TEST VERIFIES THAT JSA LOADS C(AC) INTO E.
1259 ;AC IS FIRST CLEARED AND E IS PRELOADED WITH ONES;
1260 ;THEN JSA IS EXECUTED. E IS CHECKED FOR ZEROS. IF C(E)=0,
1261 ;THIS TEST PASSES.
1262
1263 031140 201 00 0 00 777777 C25200: MOVEI -1 ;PRELOAD AC WITH 0,,-1
1264 031141 266 00 0 00 031142 JSA .+1 ;*JSA SHOULD PLACE C(AC) INTO E
1265 031142 000000 000000 0 ;E: SHOULD GET C(AC) FROM JSA
1266 031143 200 01 0 00 031142 MOVE 1,.-1 ;PASS IF C(E)=0,,-1
1267 031144 302 01 0 00 777777 CAIE 1,-1
1268 STOP^
1269 031145 254 04 0 00 031146 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1270 031146 324 00 0 00 031147 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1271 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1272 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1273 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1274
1275 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 12
DAKAEM MAC 28-Dec-78 13:35 TEST OF JSA INSTRUCTION SEQ 0039
1276 ;THIS TEST VERIFIES THAT JSA DOES NOT MODIFY AC+1
1277 ;IN THIS TEST, AC+1 IS PRELOADED WITH -1,,-1; THEN JSA IS EXECUTED
1278 ;AC+1 IS THEN CHECKED FOR ITS ORIGINAL CONTENTS, -1,,-1.
1279 ;IF C(AC+1)=-1,,-1, THIS TEST PASSES
1280
1281 031147 476 00 0 00 000001 C25300: SETOM 1 ;PRELOAD AC+1 WITH -1,,-1
1282 031150 266 00 0 00 031151 JSA .+1 ;*JSA SHOULD NOT MODIFY AC+1
1283 031151 310 00 0 00 000000 CAM ;JSA SHOULD JUMP OVER THIS, E:PC:
1284 031152 312 01 0 00 033462 CAME 1,[-1] ;PASS IF AC+1 WAS NOT MODIFIED BY JSA
1285 STOP^
1286 031153 254 04 0 00 031154 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1287 031154 324 00 0 00 031155 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1288 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1289 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1290 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1291
1292 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 13
DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0040
1293 SUBTTL TEST OF JRA INSTRUCTION
1294
1295 ;**********
1296
1297 ;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E
1298 ;THIS TEST FAILS IF JRA DOES NOT JUMP TO E.
1299
1300 031155 200 00 0 00 033467 C25400: MOVE [JRST .+4] ;PRELOAD AC0 WITH JRST .+4
1301 031156 205 01 0 00 031160 MOVSI 1,.+2 ;PRELOAD AC WITH E,,0
1302 031157 267 01 0 00 031160 JRA 1,.+1 ;*JRA SHOULD JUMP TO NEXT INSTRUCTION
1303 031160 334 00 0 00 000000 SKIPA ;PASS IF JRA JUMPS TO E
1304 STOP^
1305 031161 254 04 0 00 031162 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1306 031162 324 00 0 00 031163 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1307 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1308 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1309 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1310
1311 ;**********
1312
1313 ;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E
1314 ;THIS TEST FAILS IF JRA DOES NOT JUMP TO E.
1315
1316 031163 205 00 0 00 031166 C25500: MOVSI .+3 ;PRELOAD AC WITH E+1
1317 031164 267 00 0 00 031165 JRA .+1 ;*JRA SHOULD JUMP TO NEXT SEQUENTIAL INSTRUCTION
1318 031165 334 00 0 00 000000 SKIPA ;PASS IF JRA JUMPS TO E
1319 STOP^
1320 031166 254 04 0 00 031167 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1321 031167 324 00 0 00 031170 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1322 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1323 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1324 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1325
1326 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 14
DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0041
1327 ;THIS TEST VERIFIES THAT JRA TRANSFERS CONTROL TO LOCATION E
1328 ;THIS TEST FAILS IF JRA DOES NOT JUMP TO E.
1329
1330 031170 403 00 0 00 000001 C25600: SETZB 1 ;PRELOAD AC0, AC1 WITH ZEROS
1331 031171 267 00 0 00 031173 JRA .+2 ;*JRA SHOULD JUMP OVER NEXT SEQUENTIAL INSTRUCTION
1332 031172 474 01 0 00 000000 SETO 1, ;LOAD AC1 WITH ONES IF JRA DOES NOT JUMP
1333 031173 332 00 0 00 000001 SKIPE 1 ;PASS IF JRA JUMPED
1334 STOP^
1335 031174 254 04 0 00 031175 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1336 031175 324 00 0 00 031176 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1337 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1338 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1339 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1340
1341 ;**********
1342
1343 ;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC AND JUMPS TO E
1344 ;THIS TEST FAILS IF JRA JUMPS TO E+1 OR DOES NOT LOAD THE AC CORRECTLY.
1345
1346 031176 400 00 0 00 000000 C25700: SETZ ;CLEAR AC
1347 031177 267 00 0 00 031200 JRA .+1 ;*JRA SHOULD PLACE 0 INTO THE AC AND JUMP .+1
1348 031200 332 00 0 00 000000 SKIPE ;PASS IF AC WAS LOADED CORRECTLY
1349 ;AND JRA JUMPED CORRECTLY.
1350 STOP^
1351 031201 254 04 0 00 031202 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1352 031202 324 00 0 00 031203 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1353 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1354 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1355 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1356
1357 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 15
DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0042
1358 ;THIS TEST VERIFIES THAT JRA PLACES C(C(AC-LEFT)) INTO THE AC
1359 ;FIRST, THE AC IS PRELOADED WITH 1,,2 AND AC1 AND AC2 ARE
1360 ;INITIALIZED WITH THEIR RESPECTIVE ADDRESSES; JRA IS EXECUTED, AND
1361 ;THE AC IS CHECKED FOR 0,,1, THE ORIGINAL C(C(AC-LEFT)). IF C(AC)=0,,1,
1362 ;THIS TEST PASSES
1363
1364 031203 200 00 0 00 033470 C26200: MOVE [XWD 1,2] ;PRELOAD AC WITH 1,,2
1365 031204 201 01 0 00 000001 MOVEI 1,1 ;INITIALIZE AC1 WITH 0,,1
1366 031205 201 02 0 00 000002 MOVEI 2,2 ;INITIALIZE AC2 WITH 0,,2
1367 031206 267 00 0 00 031207 JRA .+1 ;*JRA SHOULD PLACE 0,,1 INTO THE AC
1368 031207 302 00 0 00 000001 CAIE 1 ;PASS IF C(AC)=0,,1
1369 STOP^
1370 031210 254 04 0 00 031211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1371 031211 324 00 0 00 031212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1372 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1373 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1374 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1375
1376 ;**********
1377
1378 ;THIS TEST VERIFIES THAT JRA CAN RESTORE AC0 FROM AC0 WHEN AC0 IS THE
1379 ;SPECIFIED AC AND C(AC0-LEFT)=0.
1380 ;FIRST, AC0 IS PRELOADED AND JRA IS EXECUTED. THEN, AC0 IS CHECKED FOR
1381 ;ITS INITIAL CONTENTS. IF THE RESULT IN AC0, IS CORRECT, THIS TEST PASSES.
1382
1383 031212 551 00 0 00 033471 C26300: HRRZI [135531,,246642] ;PRELOAD AC0 WITH 0,, LITERAL ADDRESS
1384 031213 267 00 0 00 031214 JRA .+1 ;*JRA SHOULD PLACE C(AC0) INTO AC0
1385 031214 302 00 0 00 033471 CAIE [135531,,246642] ;PASS IF JRA PLACED C(AC0) INTO AC0
1386 STOP^
1387 031215 254 04 0 00 031216 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1388 031216 324 00 0 00 031217 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1389 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1390 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1391 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1392
1393 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 16
DAKAEM MAC 28-Dec-78 13:35 TEST OF JRA INSTRUCTION SEQ 0043
1394 ;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE
1395 ;SPECIFIED AC.
1396 ;FIRST, AC0 IS PRELOADED WITH [LITERAL ADDRESS ,,0] AND JRA IS EXECUTED. THEN,
1397 ;AC0 IS CHECKED FOR THE SPECIFIED LITERAL, 135246,,246135. IF
1398 ;C(AC0)=135246,,246135, THE TEST PASSES.
1399
1400 031217 515 00 0 00 033472 C26400: HRLZI [135246,,246135] ;PRELOAD AC0 WITH [LITERAL ADDRESS ,,0]
1401 031220 267 00 0 00 031221 JRA .+1 ;*JRA SHOULD PLACE 135246,,246135 INTO AC0
1402 031221 312 00 0 00 033472 CAME [135246,,246135];PASS IF C(AC0)=135246,,246135
1403 STOP^
1404 031222 254 04 0 00 031223 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1405 031223 324 00 0 00 031224 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1406 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1407 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1408 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1409
1410 ;**********
1411
1412 ;THIS TEST VERIFIES THAT JRA CAN RESOTRE AC0 FROM MEMORY WHEN AC0 IS THE
1413 ;SPECIFIED AC.
1414 ;FIRST, AC0 IS PRELOADED WITH [-1,, ADDRESS OF JCA INSTRUCTION] AND JRA IS EXECUTED.
1415 ;THEN, AC0 IS CHECKED FOR THE JRA INSTRUCTION. IF
1416 ;C(AC0)= THE JRA INSTRUCTION, THE TEST PASSES.
1417
1418 031224 525 00 0 00 031225 C26500: HRLOI .+1 ;PRELOAD AC WITH -1,, ADDRESS OF JRA INSTRUCTION
1419 031225 267 00 0 00 031226 JRA .+1 ;*JRA SHOULD PLACE ITSELF INTO AC0
1420 031226 312 00 0 00 031225 CAME .-1 ;PASS IF AC CONTAINS JRA INSTRUCTION
1421 STOP^
1422 031227 254 04 0 00 031230 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1423 031230 324 00 0 00 031231 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1424 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1425 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1426 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1427
1428 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 17
DAKAEM MAC 28-Dec-78 13:35 TESTS OF BIS FLAG SEQ 0044
1429 SUBTTL TESTS OF BIS FLAG
1430
1431 ;**********
1432
1433 ;THIS TEST VERIFIES THAT JRST 2, CAN CLEAR BIS
1434 ;FIRST, BIS IS SET VIA JRST 2, ;THEN, BIS IS CLEARED VIA JRST 2,.
1435 ;THE FLAGS ARE SAVED AND BIS IS CHECKED. THIS TEST PASSES IF BIS IS RESET;
1436 ;OTHERWISE JRST 2, FAILED TO RESET BIS.
1437
1438 031231 C26600: SFLAG BIS ^;SET BIS FLAG
1439
1440 031231 205 01 0 00 020000 MOVSI 1,BIS
1441 031232 255 17 0 00 031233 JFCL 17,.+1 ;RESET ALL FLAGS
1442 031233 254 02 0 01 031234 JRST 2,.+1(1) ;SET BIS FLAG
1443 SFLAG ^;*RESET BIS FLAG
1444
1445 031234 205 01 0 00 000000 MOVSI 1,
1446 031235 255 17 0 00 031236 JFCL 17,.+1 ;RESET ALL FLAGS
1447 031236 254 02 0 01 031237 JRST 2,.+1(1) ;SET FLAG
1448 031237 265 00 0 00 031240 JSP .+1 ;SAVE FLAGS
1449 031240 603 00 0 00 020037 TLNE BIS+37 ;PASS IF BIS FLAG IS RESET
1450 STOP^
1451 031241 254 04 0 00 031242 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1452 031242 324 00 0 00 031243 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1453 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1454 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1455 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1456
1457 ;**********
1458
1459 ;THIS TEST VERIFIES THAT JRST 2, CAN SET BIS.
1460 ;FIRST, BIS IS SET VIA JRST 2, AND THE FLAGS ARE SAVED.
1461 ;BIS IS THEN CHECKED. IF BIS IS SET, THIS TEST PASSES.
1462
1463 031243 C26700: SFLAG BIS ^;*SET BIS FLAG VIA JRST
1464
1465 031243 205 01 0 00 020000 MOVSI 1,BIS
1466 031244 255 17 0 00 031245 JFCL 17,.+1 ;RESET ALL FLAGS
1467 031245 254 02 0 01 031246 JRST 2,.+1(1) ;SET BIS FLAG
1468 031246 265 00 0 00 031247 JSP .+1 ;SAVE FLAGS
1469 031247 607 00 0 00 020000 TLNN BIS ;PASS IF BIS FLAG IS SET
1470 STOP^
1471 031250 254 04 0 00 031251 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1472 031251 324 00 0 00 031252 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1473 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1474 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1475 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1476
1477 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 18
DAKAEM MAC 28-Dec-78 13:35 TESTS OF BIS FLAG SEQ 0045
1478 ;THIS TEST VERIFIES THAT JSR ALWAYS RESETS BIS.
1479 ;FIRST BIS IS SET; THEN JSR IS EXECUTED. THE FLAGS ARE
1480 ;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSR, THIS TEST PASSES.
1481
1482 031252 C27000: SFLAG BIS ^;SET BIS
1483
1484 031252 205 01 0 00 020000 MOVSI 1,BIS
1485 031253 255 17 0 00 031254 JFCL 17,.+1 ;RESET ALL FLAGS
1486 031254 254 02 0 01 031255 JRST 2,.+1(1) ;SET BIS FLAG
1487 031255 264 00 0 00 031256 JSR .+1 ;*JSR SHOULD RESET BIS
1488 031256 000000 000000 0 ;JSR SAVES FLAGS HERE
1489 031257 265 00 0 00 031260 JSP .+1 ;SAVE FLAGS
1490 031260 603 00 0 00 020000 TLNE BIS ;PASS IF BIS FLAG IS RESET
1491 STOP^
1492 031261 254 04 0 00 031262 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1493 031262 324 00 0 00 031263 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1494 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1495 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1496 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1497
1498 ;**********
1499
1500 ;THIS TEST VERIFIES THAT JSP ALWAYS RESETS BIS.
1501 ;FIRST BIS IS SET; THEN JSP IS EXECUTED. THE FLAGS ARE
1502 ;THEN SAVED AND CHECKED. IF BIS WAS RESET VIA JSP, THIS TEST PASSES.
1503
1504 031263 C27001: SFLAG BIS ^;SET BIS
1505
1506 031263 205 01 0 00 020000 MOVSI 1,BIS
1507 031264 255 17 0 00 031265 JFCL 17,.+1 ;RESET ALL FLAGS
1508 031265 254 02 0 01 031266 JRST 2,.+1(1) ;SET BIS FLAG
1509 031266 265 00 0 00 031267 JSP .+1 ;*JSP SHOULD RESET BIS
1510 031267 265 00 0 00 031270 JSP .+1 ;SAVE FLAGS
1511 031270 603 00 0 00 020000 TLNE BIS ;PASS IF BIS FLAG IS RESET
1512 STOP^
1513 031271 254 04 0 00 031272 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1514 031272 324 00 0 00 031273 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 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 19
DAKAEM MAC 28-Dec-78 13:35 TESTS OF BIS FLAG SEQ 0046
1520 ;THIS TEST VERIFIES THAT THE BITS IN POSITIONS 8, 9 AND 10 ARE CLEARABLE.
1521 ;FIRST, THE ARITHMETIC FLAGS ARE CLEARED;
1522 ;THEN, BITS 8, 9 AND 10 OF THE PC-WORD IS EXAMINED.
1523 ;IF ANY OF THESE BITS ARE SET, THIS TEST FAILS BECAUSE THEY SHOULD BE CLEAR.
1524
1525 031273 C27100: SFLAG ^;CLEAR ARITHMETIC FLAGS
1526
1527 031273 205 01 0 00 000000 MOVSI 1,
1528 031274 255 17 0 00 031275 JFCL 17,.+1 ;RESET ALL FLAGS
1529 031275 254 02 0 01 031276 JRST 2,.+1(1) ;SET FLAG
1530 031276 265 00 0 00 031277 JSP .+1 ;SAVE FLAGS
1531 031277 603 00 0 00 001600 TLNE 1600 ;PASS IF THESE BITS ARE CLEAR
1532 STOP^
1533 031300 254 04 0 00 031301 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1534 031301 324 00 0 00 031302 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1535 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1536 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1537 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1538
1539 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 20
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0047
1540 SUBTTL TEST OF MSCL FWT INSTRUCTIONS
1541
1542 ;**********
1543
1544 ;THIS TEST VERIFIES THAT MOVEM PLACES C(AC) INTO E AND DOES
1545 ;NOT MODIFY C(AC).
1546 ;IN THIS CASE, C(AC)=252525,,252525 ANS C(E)=707070,,707070.
1547 ;HENCE, THE RESULT IN E SHOULD BE 252525,,252525.
1548 ;THE AC IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS
1549 ;FOUND IN THE AC, IT WAS CLOBBERED BY MOVEM, AND THIS TEST FAILS.
1550 ;E IS CHECKED FOR 252525,,252525. IF ANY OTHER NUMBER IS FOUND
1551 ;IN E, IT WAS UPDATED INCORRECTLY BY MOVEM.
1552
1553 031302 200 00 0 00 033473 C50000: MOVE [252525,,252525] ;PRELOAD AC WITH 252525,,252525
1554 031303 200 01 0 00 033474 MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070
1555 031304 202 00 0 00 000001 MOVEM 0,1 ;*MOVEM SHOULD PLACE 252525,,252525
1556 ;INTO E AND NOT AFFECT THE AC
1557 031305 312 00 0 00 033473 CAME 0,[252525,,252525] ;PASS IF C(AC) IS NOT CLOBBERED
1558 STOP^
1559 031306 254 04 0 00 031307 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1560 031307 324 00 0 00 031310 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 031310 312 01 0 00 033473 CAME 1,[252525,,252525] ;PASS IF E WAS UPDATED CORRECTLY
1565 STOP^
1566 031311 254 04 0 00 031312 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1567 031312 324 00 0 00 031313 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1568 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1569 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1570 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1571
1572 ;**********
1573
1574 ;THIS TEST VERIFIES THAT MOVES PLACES C(E) INTO THE AC IF AC IS NON-ZERO.
1575 ;IN THIS CASE, C(AC)=707070,,707070 AND C(E)=123456,,123456. HENCE, BOTH
1576 ;THE AC AND E SHOULD CONTAIN 123456,,123456 AFTER MOVES IS EXECUTED.
1577 ;BOTH AC AND E ARE CHECKED FOR 123456,,123456. IF EITHER AC OR E
1578 ;CONTAIN A DIFFERENT RESULT, THIS TEST FAILS
1579
1580 031313 200 02 0 00 033474 C50100: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
1581 031314 200 01 0 00 033475 MOVE 1,[123456,,123456] ;PRELOAD E WITH 123456,,123456
1582 031315 203 02 0 00 000001 MOVES 2,1 ;*MOVES SHOULD PLACE 123456,,123456
1583 ;INTO BOTH AC AND E
1584 031316 312 02 0 00 033475 CAME 2,[123456,,123456] ;PASS IF C(AC)=123456,,123456
1585 STOP^
1586 031317 254 04 0 00 031320 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1587 031320 324 00 0 00 031321 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1588 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1589 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1590 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1591 031321 312 01 0 00 033475 CAME 1,[123456,,123456] ;PASS IF C(E)=123456,,123456
1592 STOP^
1593 031322 254 04 0 00 031323 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1594 031323 324 00 0 00 031324 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 20-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0048
1595 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1596 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1597 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1598
1599 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 21
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0049
1600 ;THIS TEST VERIFIES THAT MOVES IS A NO-OP IF AC=0
1601 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=707070,,707070
1602 ;AFTER MOVES IS EXECUTED, AC AND E ARE CHECKED FOR THEIR ORIGINAL DATA.
1603 ;IF EITHER C(AC) OR C(E) CHANGED AS A RESULT OF MOVES, THIS TEST FAILS.
1604
1605 031324 200 01 0 00 033474 C50110: MOVE 1,[707070,,707070] ;PRELOAD E WITH 707070,,707070
1606 031325 474 00 0 00 000000 SETO ;PRELOAD AC WITH -1,,-1
1607 031326 203 00 0 00 000001 MOVES 0,1 ;*MOVES SHOULD FUNCTION AS A NO-OP
1608 031327 312 00 0 00 033462 CAME 0,[-1,,-1] ;PASS IF C(AC) WAS NOT MODIFIED
1609 STOP^
1610 031330 254 04 0 00 031331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1611 031331 324 00 0 00 031332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1612 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1613 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1614 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1615 031332 312 01 0 00 033474 CAME 1,[707070,,707070] ;PASS IF C(E) WAS NOT MODIFIED
1616 STOP^
1617 031333 254 04 0 00 031334 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1618 031334 324 00 0 00 031335 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1619 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1620 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1621 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1622
1623 ;**********
1624
1625 ;THIS TEST VERIFIES THAT MOVSI LOADS THE WORD E,0 INTO THE AC.
1626 ;IN THIS CASE, C(AC)=707070,,707070 AND E=0,,-1.
1627 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,0.
1628 ;THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
1629
1630 031335 200 01 0 00 033474 C50200: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
1631 031336 205 01 0 00 777777 MOVSI 1,-1 ;*MOVSI SHOULD PLACE -1,,0 INTO THE AC
1632 031337 312 01 0 00 033476 CAME 1,[-1,,0] ;PASS IF C(AC)=1,,0
1633 STOP^
1634 031340 254 04 0 00 031341 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1635 031341 324 00 0 00 031342 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1636 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1637 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1638 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1639
1640 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 22
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0050
1641 ;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC)
1642 ;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3.
1643 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT
1644 ;IN E SHOULD BE 0,,1
1645
1646 031342 474 01 0 00 000000 C50300: SETO 1, ;PRELOAD AC WITH -1,,-1
1647 031343 200 02 0 00 033477 MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3
1648 031344 212 01 0 00 000002 MOVNM 1,2 ;*MOVNM SHOULD PLACE 0,,1 INTO E
1649 ;AND NOT AFFTECT C(AC)
1650 031345 312 01 0 00 033462 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1
1651 STOP^
1652 031346 254 04 0 00 031347 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1653 031347 324 00 0 00 031350 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1654 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1655 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1656 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1657 031350 302 02 0 00 000001 CAIE 2,1 ;PASS IF C(E)=0,,1
1658 STOP^
1659 031351 254 04 0 00 031352 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1660 031352 324 00 0 00 031353 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1661 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1662 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1663 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1664
1665 ;**********
1666
1667 ;THIS TEST VERIFIES THAT MOVNM PLACES THE NEGATIVE OF C(AC)
1668 ;INTO E. IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-3.
1669 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1 AND THE RESULT
1670 ;IN E SHOULD BE 0,,1
1671
1672 031353 474 01 0 00 000000 C50301: SETO 1, ;PRELOAD AC WITH -1,,-1
1673 031354 200 02 0 00 033477 MOVE 2,[-1,,-3] ;PRELOAD E WITH -1,,-3
1674 031355 202 02 0 00 031367 MOVEM 2,E50301
1675 031356 212 01 0 00 031367 MOVNM 1,E50301 ;*MOVNM SHOULD PLACE 0,,1 INTO E
1676 ;AND NOT AFFTECT C(AC)
1677 031357 312 01 0 00 033462 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1
1678 STOP^
1679 031360 254 04 0 00 031361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1680 031361 324 00 0 00 031362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1681 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1682 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1683 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1684 031362 200 02 0 00 031367 MOVE 2,E50301
1685 031363 302 02 0 00 000001 CAIE 2,1 ;PASS IF C(E)=0,,1
1686 STOP^
1687 031364 254 04 0 00 031365 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1688 031365 324 00 0 00 031366 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1689 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1690 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1691 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1692
1693 031366 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST
1694 031367 000000 000000 E50301: 0 ;TESTED MEMORY LOCATION
1695
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 22-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0051
1696 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 23
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0052
1697 ;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E
1698 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0,
1699 ;C(AC)=0 AND C(E)=0,,1
1700 ;HENCE, THE RESULT IN THE AC SHOULD BE 0
1701 ;AND THE RESULT IN E SHOULD BE -1,,-1
1702
1703 031370 400 00 0 00 000000 C50400: SETZ ;CLEAR AC
1704 031371 201 02 0 00 000001 MOVEI 2,1 ;PRELOAD E WITH 0,,1
1705 031372 213 00 0 00 000002 MOVNS 0,2 ;*MOVNS SHOULD PLACE -1,,-1 INTO E
1706 ;AND SHOULD NOT AFFECT THE AC
1707 031373 332 00 0 00 000000 SKIPE ;PASS IF THE AC IS UNALTERED
1708 STOP^
1709 031374 254 04 0 00 031375 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1710 031375 324 00 0 00 031376 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1714 031376 312 02 0 00 033462 CAME 2,[-1] ;PASS IF C(E)=-1,,-1
1715 STOP^
1716 031377 254 04 0 00 031400 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1717 031400 324 00 0 00 031401 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1718 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1719 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1720 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1721
1722 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 24
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0053
1723 ;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E
1724 ;AND INTO THE AC IF THE AC IS NON-ZO. IN THIS CASE, AC=0,
1725 ;C(AC)=0 AND C(E)=0,,1
1726 ;HENCE, THE RESULT IN THE AC SHOULD BE 0
1727 ;AND THE RESULT IN E SHOULD BE -1,,-1
1728
1729 031401 400 00 0 00 000000 C50401: SETZ ;CLEAR AC
1730 031402 201 02 0 00 000001 MOVEI 2,1 ;PRELOAD E WITH 0,,1
1731 031403 202 02 0 00 031415 MOVEM 2,E50401
1732 031404 213 00 0 00 031415 MOVNS 0,E50401 ;*MOVNS SHOULD PLACE -1,,-1 INTO E
1733 ;AND SHOULD NOT AFFECT THE AC
1734 031405 332 00 0 00 000000 SKIPE ;PASS IF THE AC IS UNALTERED
1735 STOP^
1736 031406 254 04 0 00 031407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1737 031407 324 00 0 00 031410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1738 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1739 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1740 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1741 031410 200 02 0 00 031415 MOVE 2,E50401
1742 031411 312 02 0 00 033462 CAME 2,[-1] ;PASS IF C(E)=-1,,-1
1743 STOP^
1744 031412 254 04 0 00 031413 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1745 031413 324 00 0 00 031414 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1746 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1747 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1748 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1749
1750 031414 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST
1751 031415 000000 000000 E50401: 0 ;TESTED MEMORY LOCATION
1752
1753 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 25
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0054
1754 ;THIS TEST VERIFIES THAT MOVNS PLACES THE NEGATIVE OF C(E) INTO E
1755 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1,
1756 ;C(AC=0 AND C(E)=3
1757 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,3
1758 ;AND THE RESULT IN E SHOULD BE -1,,3.
1759
1760 031416 400 01 0 00 000000 C50410: SETZ 1, ;CLEAR AC
1761 031417 201 02 0 00 000003 MOVEI 2,3 ;PRELOAD WITH 0,,3
1762 031420 213 01 0 00 000002 MOVNS 1,2 ;*MOVNS SHOULD PLACE -1,,-3 INTO E
1763 ;AND -1,,-3 INTO THE AC
1764 031421 312 01 0 00 033477 CAME 1,[-1,,-3] ;PASS IF C(AC)=-1,,-3
1765 STOP^
1766 031422 254 04 0 00 031423 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1767 031423 324 00 0 00 031424 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1768 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1769 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1770 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1771 031424 312 02 0 00 033477 CAME 2,[-1,,-3] ;PASS IF C(E)=-1,,-3
1772 STOP^
1773 031425 254 04 0 00 031426 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1774 031426 324 00 0 00 031427 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1775 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1776 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1777 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1778
1779 ;**********
1780
1781 ;THIS TEST VERIFIES THAT MOVMI MOVES THE WORD 0,,E INTO THE AC.
1782 ;IN THIS CASE, C(AC)=0 AND E=0,,-2. HENCE, THE RESULT IN THE AC
1783 ;SHOULD BE 0,,-2.
1784
1785 031427 400 01 0 00 000000 C50500: SETZ 1, ;CLEAR AC
1786 031430 215 01 0 00 777776 MOVMI 1,-2 ;*MOVMI SHOULD PLACE 0,,-2 INTO AC
1787 031431 302 01 0 00 777776 CAIE 1,-2 ;PASS IF C(AC)=0,,-2
1788 STOP^
1789 031432 254 04 0 00 031433 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1790 031433 324 00 0 00 031434 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1791 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1792 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1793 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1794
1795 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 26
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0055
1796 ;THIS TEST VERIFIES THAT MOVM MOVES THE MAGNITUDE OF C(E) NTO THE AC.
1797 ;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-2. HENCE, THE RESULT IN THE AC
1798 ;SHOULD BE 0,,2.
1799
1800 031434 400 01 0 00 000000 C50501: SETZ 1, ;CLEAR AC
1801 031435 200 03 0 00 033500 MOVE 3,[-2] ;PRELOAD E WITH -1,,-2
1802 031436 214 01 0 00 000003 MOVM 1,3 ;*MOVM SHOULD PLACE 0,,2 INTO AC
1803 031437 302 01 0 00 000002 CAIE 1,2 ;PASS IF C(AC)=0,,2
1804 STOP^
1805 031440 254 04 0 00 031441 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1806 031441 324 00 0 00 031442 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1807 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1808 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1809 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1810
1811 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 27
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0056
1812 ;THIS TEST VERIFIES THAT MOVMM PLACES THE MAGNITUDE OF C(AC)
1813 ;INTO E. IN THIS CASE, C(AC)=-1,,-2 AND C(E)=0. HENCE, THE
1814 ;RESULT IN E SHOULD BE 0,,2 AND C(AC) SHOULD REMAIN UNCHANGED.
1815
1816 031442 200 01 0 00 033500 C50600: MOVE 1,[-1,,-2] ;PRELOAD AC WITH -1,,-2
1817 031443 400 02 0 00 000000 SETZ 2, ;CLEAR E
1818 031444 216 01 0 00 000002 MOVMM 1,2 ;*MOVMM SHOULD PLACE 0,,2 INTO E
1819 ;AND SHOULD NOT CHANGE C(AC)
1820 031445 312 01 0 00 033500 CAME 1,[-1,,-2] ;PASS IF C(AC) IS NOT ALTERED
1821 STOP^
1822 031446 254 04 0 00 031447 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1823 031447 324 00 0 00 031450 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1824 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1825 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1826 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1827 031450 302 02 0 00 000002 CAIE 2,2 ;PASS IF C(E)=0,,2
1828 STOP^
1829 031451 254 04 0 00 031452 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1830 031452 324 00 0 00 031453 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1831 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1832 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1833 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1834
1835 ;**********
1836
1837 ;THIS TEST VERIFIES THAT MONMS PLACES THE MAGNITUDE OF C(E) INTO E
1838 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=0, C(AC)=0
1839 ;AND C(E)=-1,,-2.
1840 ;HENCE, THE RESULT IN THE AC SHOULD BE 0 AND THE RESULT IN
1841 ;E SHOULD BE 0,,2.
1842
1843 031453 400 00 0 00 000000 C50700: SETZ ;CLEAR AC
1844 031454 200 02 0 00 033500 MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-1
1845 031455 217 00 0 00 000002 MOVMS 0,2 ;*MOVMS SHOULD PLACE 0,,1 INTO E
1846 ;AND SHOULD NOT CHANGE C(AC)
1847 031456 332 00 0 00 000000 SKIPE ;PASS IF C(AC) IS UNALTERED
1848 STOP^
1849 031457 254 04 0 00 031460 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1850 031460 324 00 0 00 031461 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1851 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1852 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1853 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1854 031461 302 02 0 00 000002 CAIE 2,2 ;PASS IF C(E)=0,,2
1855 STOP^
1856 031462 254 04 0 00 031463 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1857 031463 324 00 0 00 031464 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1858 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1859 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1860 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1861
1862 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 28
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL FWT INSTRUCTIONS SEQ 0057
1863 ;THIS TEST VERIFIES THAT MOVMS PLACES THE MAGNITUDE OF C(E) INTO E
1864 ;AND INTO THE AC IF THE AC IS NON-ZERO. IN THIS CASE, AC=1, C(AC)=-1,,-1
1865 ;AND C(E)=-1,,-2.
1866 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,2 AND THE RESULT
1867 ;IN E SHOULD BE 0,,2.
1868
1869 031464 474 01 0 00 000000 C50710: SETO 1, ;PRELOAD AC WITH -1,,-1
1870 031465 200 02 0 00 033500 MOVE 2,[-1,,-2] ;PRELOAD E WITH -1,,-2
1871 031466 217 01 0 00 000002 MOVMS 1,2 ;*MOVMS SHOULD PLACE 0,,2 INTO E
1872 ;AND SHOULD PLACE 0,,2 INTO THE AC
1873 031467 302 01 0 00 000002 CAIE 1,2 ;PASS IF C(AC)=0,,2
1874 STOP^
1875 031470 254 04 0 00 031471 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1876 031471 324 00 0 00 031472 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1877 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1878 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1879 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1880 031472 302 02 0 00 000002 CAIE 2,2 ;PASS IF C(E)=0,,2
1881 STOP^
1882 031473 254 04 0 00 031474 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1883 031474 324 00 0 00 031475 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1884 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1885 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1886 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1887
1888 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 29
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL ADD/SUB INSTRUCTIONS SEQ 0058
1889 SUBTTL TEST OF MSCL ADD/SUB INSTRUCTIONS
1890
1891 ;**********
1892
1893 ;THIS TEST VERIFIES THAT SUBI SUBTRACTS THE WORD 0,,E FROM C(AC)
1894 ;AND PLACES THE RESULT INTO THE AC. IN THIS CASE, C(AC)=70 AND
1895 ;E=0,,2. HENCE, THE RESULT IN THE AC SHOULD BE 66.
1896
1897 031475 201 01 0 00 000070 C51000: MOVEI 1,70 ;PRELOAD AC WITH 70
1898 031476 275 01 0 00 000002 SUBI 1,2 ;*SUBI SHOULD PLACE 66 INTO AC
1899 031477 302 01 0 00 000066 CAIE 1,66 ;PASS IF C(AC)=66
1900 STOP^
1901 031500 254 04 0 00 031501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1902 031501 324 00 0 00 031502 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 SUBM SUBTRACTS C(E) FROM C(AC) AND
1910 ;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE,
1911 ;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND
1912 ;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY.
1913
1914 031502 201 01 0 00 000100 C51100: MOVEI 1,100 ;PRELOAD AC WITH 0,,100
1915 031503 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH 0,,37
1916 031504 276 01 0 00 000002 SUBM 1,2 ;*SUBM SHOULD PLACE
1917 ;0,,41 INTO E AND NOT CHANGE C(AC)
1918 031505 302 01 0 00 000100 CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED
1919 STOP^
1920 031506 254 04 0 00 031507 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1921 031507 324 00 0 00 031510 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 031510 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41
1926 STOP^
1927 031511 254 04 0 00 031512 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1928 031512 324 00 0 00 031513 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 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 30
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL ADD/SUB INSTRUCTIONS SEQ 0059
1934 ;THIS TEST VERIFIES THAT SUBM SUBTRACTS C(E) FROM C(AC) AND
1935 ;PLACES THE RESULT INTO E. THE AC IS UNAFFECTED. IN THIS CASE,
1936 ;C(AC)=100 AND C(E)=37. HENCE, THE RESULTS IN AC AND
1937 ;E SHOULD BE 0,,100 AND 0,,41 RESPECTIVELY.
1938
1939 031513 201 01 0 00 000100 C51101: MOVEI 1,100 ;PRELOAD AC WITH 0,,100
1940 031514 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH 0,,37
1941 031515 202 02 0 00 031527 MOVEM 2,E51101
1942 031516 276 01 0 00 031527 SUBM 1,E51101 ;*SUBM SHOULD PLACE
1943 ;0,,41 INTO E AND NOT CHANGE C(AC)
1944 031517 302 01 0 00 000100 CAIE 1,100 ;PASS IF C(AC) IS UNCHANGED
1945 STOP^
1946 031520 254 04 0 00 031521 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1947 031521 324 00 0 00 031522 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1948 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1949 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1950 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1951 031522 200 02 0 00 031527 MOVE 2,E51101
1952 031523 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41
1953 STOP^
1954 031524 254 04 0 00 031525 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1955 031525 324 00 0 00 031526 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1956 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1957 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1958 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1959
1960 031526 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST
1961 031527 000000 000000 E51101: 0 ;TEST WORD MEMORY
1962
1963 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 31
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL ADD/SUB INSTRUCTIONS SEQ 0060
1964 ;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND
1965 ;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE,
1966 ;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH
1967 ;AC AND E SHOULD BE 0,,41.
1968
1969 031530 201 01 0 00 000100 C51200: MOVEI 1,100 ;PRELOAD AC WITH 0,,100
1970 031531 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH O,,37
1971 031532 277 01 0 00 000002 SUBB 1,2 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E
1972 031533 302 01 0 00 000041 CAIE 1,41 ;PASS IF C(AC)=0,,41
1973 STOP^
1974 031534 254 04 0 00 031535 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1975 031535 324 00 0 00 031536 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1976 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1977 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1978 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1979 031536 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41
1980 STOP^
1981 031537 254 04 0 00 031540 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
1982 031540 324 00 0 00 031541 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
1983 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
1984 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
1985 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
1986
1987 ;**********
1988
1989 ;THIS TEST VERIFIES THAT SUBB SUBTRACTS C(E) FROM C(AC) AND
1990 ;PLACES THE RESULT INTO BOTH AC AND E. IN THIS CASE,
1991 ;C(AC)=0,,100 AND C(E)=0,,37. HENCE, THE RESULT IN BOTH
1992 ;AC AND E SHOULD BE 0,,41.
1993
1994 031541 201 01 0 00 000100 C51201: MOVEI 1,100 ;PRELOAD AC WITH 0,,100
1995 031542 201 02 0 00 000037 MOVEI 2,37 ;PRELOAD E WITH O,,37
1996 031543 202 02 0 00 031555 MOVEM 2,E51201
1997 031544 277 01 0 00 031555 SUBB 1,E51201 ;*SUBB SHOULD PLACE 0,,41 INTO BOTH AC AND E
1998 031545 302 01 0 00 000041 CAIE 1,41 ;PASS IF C(AC)=0,,41
1999 STOP^
2000 031546 254 04 0 00 031547 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2001 031547 324 00 0 00 031550 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2002 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2003 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2004 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2005 031550 200 02 0 00 031555 MOVE 2,E51201
2006 031551 302 02 0 00 000041 CAIE 2,41 ;PASS IF C(E)=0,,41
2007 STOP^
2008 031552 254 04 0 00 031553 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2009 031553 324 00 0 00 031554 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2010 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2011 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2012 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2013
2014 031554 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST
2015 031555 000000 000000 E51201: 0 ;TEST WORD MEMORY
2016
2017 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 32
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0061
2018 SUBTTL TEST OF MSCL CAIX INSTRUCTIONS
2019
2020 ;**********
2021
2022 ;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND
2023 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E.
2024 ;IN THIS CASE, C(AC)=0,,1 AND E=0,,2
2025 ;HENCE, CAIL SHOULD SKIP THE NEXT INSTRUCTION.
2026 ;IF CAIL SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES
2027
2028 031556 201 01 0 00 000001 C51300: MOVEI 1,1 ;PRELOAD AC WITH 0,,1
2029 031557 301 01 0 00 000002 CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION
2030 STOP^
2031 031560 254 04 0 00 031561 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2032 031561 324 00 0 00 031562 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2033 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2034 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2035 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2036
2037 ;**********
2038
2039 ;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND
2040 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E.
2041 ;IN THIS CASE, C(AC)=0,,2 AND E=0,,2.
2042 ;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION.
2043 ;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES.
2044
2045 031562 201 01 0 00 000002 C51310: MOVEI 1,2 ;PRELOAD AC WITH 0,,2
2046 031563 301 01 0 00 000002 CAIL 1,2 ;*CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION
2047 031564 334 00 0 00 000000 SKIPA ;PASS IF CAIL DOES NOT SKIP
2048 STOP^
2049 031565 254 04 0 00 031566 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2050 031566 324 00 0 00 031567 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2051 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2052 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2053 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2054
2055 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 33
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0062
2056 ;THIS TEST VERIFIES THAT CAIL COMPARES C(AC) WITH E AND
2057 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN E
2058 ;IN THIS CASE, C(AC)=0,,3 AND E=0,,2
2059 ;HENCE, CAIL SHOULD NOT SKIP THE NEXT INSTRUCTION.
2060 ;IF CAIL DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES.
2061
2062 031567 201 01 0 00 000003 C51320: MOVEI 1,3 ;PRELOAD AC WITH 0,,3
2063 031570 301 01 0 00 000002 CAIL 1,2 ;*CAIL SHOULD SKIP THE NEXT INSTRUCTION
2064 031571 334 00 0 00 000000 SKIPA ;PASS IF CAIL DOES NOT SKIP
2065 STOP^
2066 031572 254 04 0 00 031573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2067 031573 324 00 0 00 031574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2068 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2069 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2070 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2071
2072 ;**********
2073
2074 ;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND
2075 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E
2076 ;IN THIS CASE, C(AC)=-1,,-1 AND E=0
2077 ;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION
2078 ;IF CAILE SKIPS THE NEXT INSTRUCTION, THE TEST PASSES
2079
2080 031574 474 01 0 00 000000 C51400: SETO 1, ;PRELOAD AC WITH -1,,-1
2081 031575 303 01 0 00 000000 CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION
2082 STOP^
2083 031576 254 04 0 00 031577 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2084 031577 324 00 0 00 031600 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2085 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2086 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2087 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2088
2089 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 34
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0063
2090 ;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND
2091 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E
2092 ;IN THIS CASE, C(AC)=0 AND E=0
2093 ;HENCE, CAILE SHOULD SKIP THE NEXT INSTRUCTION.
2094 ;IF CAILE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES.
2095
2096 031600 400 01 0 00 000000 C51410: SETZ 1, ;PRELOAD AC WITH 0
2097 031601 303 01 0 00 000000 CAILE 1,0 ;*CAILE SHOULD SKIP THE NEXT INSTRUCTION.
2098 STOP^
2099 031602 254 04 0 00 031603 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2100 031603 324 00 0 00 031604 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2101 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2102 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2103 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2104
2105 ;**********
2106
2107 ;THIS TEST VERIFIES THAT CAILE COMPARES C(AC) WITH E AND
2108 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO E
2109 ;IN THIS CASE, C(AC)=0,,1 AND E=0
2110 ;HENCE, CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION.
2111 ;IF CAILE DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES
2112
2113 031604 201 01 0 00 000001 C51420: MOVEI 1,1 ;PRELOAD AC WITH 0,,1
2114 031605 303 01 0 00 000000 CAILE 1,0 ;*CAILE SHOULD NOT SKIP THE NEXT INSTRUCTION
2115 031606 334 00 0 00 000000 SKIPA ;PASS IF CAILE DOES NOT SKIP
2116 STOP^
2117 031607 254 04 0 00 031610 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2118 031610 324 00 0 00 031611 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2119 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2120 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2121 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2122
2123 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 35
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0064
2124 ;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS
2125 ;SKIPS THE NEXT INSTRUCTION
2126 ;IN THIS CASE, C(AC)=-1,,-1 AND E=0
2127 ;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION
2128 ;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES
2129
2130 031611 474 01 0 00 000000 C51500: SETO 1, ;PRELOAD AC WITH -1,,-1
2131 031612 304 01 0 00 000000 CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION
2132 STOP^
2133 031613 254 04 0 00 031614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2134 031614 324 00 0 00 031615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2135 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2136 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2137 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2138
2139 ;**********
2140
2141 ;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS
2142 ;SKIPS THE NEXT INSTRUCTION
2143 ;IN THIS CASE, C(AC)=0 AND E=0
2144 ;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION.
2145 ;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES
2146
2147 031615 400 01 0 00 000000 C51510: SETZ 1, ;PRELOAD AC WITH 0
2148 031616 304 01 0 00 000000 CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION
2149 STOP^
2150 031617 254 04 0 00 031620 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2151 031620 324 00 0 00 031621 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 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 36
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0065
2157 ;THIS TEST VERIFIES THAT CAIA COMPARES C(AC) WITH E AND ALWAYS
2158 ;SKIPS THE NEXT INSTRUCTION
2159 ;IN THIS CASE, C(AC)=0,,1 AND E=0
2160 ;HENCE, CAIA SHOULD SKIP THE NEXT INSTRUCTION.
2161 ;IF CAIA SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES.
2162
2163 031621 201 01 0 00 000001 C51520: MOVEI 1,1 ;PRELOAD AC WITH 0,,1
2164 031622 304 01 0 00 000000 CAIA 1,0 ;*CAIA SHOULD SKIP THE NEXT INSTRUCTION
2165 STOP^
2166 031623 254 04 0 00 031624 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2167 031624 324 00 0 00 031625 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2171
2172 ;**********
2173
2174 ;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND
2175 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E.
2176 ;IN THIS CASE, C(AC)=0,,5 AND E=0,,6
2177 ;HENCE, CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION.
2178 ;IF CAIGE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES
2179
2180 031625 201 02 0 00 000005 C51600: MOVEI 2,5 ;PRELOAD AC WITH 0,,5
2181 031626 305 02 0 00 000006 CAIGE 2,6 ;*CAIGE SHOULD NOT SKIP THE NEXT INSTRUCTION
2182 031627 334 00 0 00 000000 SKIPA ;PASS IF CAIGE DOES NOT SKIP
2183 STOP^
2184 031630 254 04 0 00 031631 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2185 031631 324 00 0 00 031632 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2186 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2187 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2188 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2189
2190 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 37
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0066
2191 ;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND
2192 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E
2193 ;IN THIS CASE, C(AC)=0,,6 AND E=0,,6
2194 ;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION.
2195 ;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES.
2196
2197 031632 201 02 0 00 000006 C51610: MOVEI 2,6 ;PRELOAD AC WITH 0,,6
2198 031633 305 00 0 00 000000 CAIGE ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION
2199 STOP^
2200 031634 254 04 0 00 031635 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2201 031635 324 00 0 00 031636 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2202 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2203 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2204 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2205
2206 ;**********
2207
2208 ;THIS TEST VERIFIES THAT CAIGE COMPARES C(AC) WITH E AND
2209 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN OR EQUAL TO E.
2210 ;IN THIS CASE, C(AC)=0,,7 AND E=0,,6
2211 ;HENCE, CAIGE SHOULD SKIP THE NEXT INSTRUCTION.
2212 ;IF CAIGE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES
2213
2214 031636 201 02 0 00 000007 C51620: MOVEI 2,7 ;PRELOAD AC WITH 0,,7
2215 031637 305 02 0 00 000006 CAIGE 2,6 ;*CAIGE SHOULD SKIP THE NEXT INSTRUCTION
2216 STOP^
2217 031640 254 04 0 00 031641 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2218 031641 324 00 0 00 031642 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
2223 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 38
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0067
2224 ;THIS TEST VERIRIES THAT CAIN COMPARES C(AC) WITH E AND
2225 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E.
2226 ;IN THIS CASE, C(AC)=0 AND E=0,,1
2227 ;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION.
2228 ;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES.
2229
2230 031642 400 06 0 00 000000 C51700: SETZ 6, ;PRELOAD AC WITH 0
2231 031643 306 06 0 00 000001 CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION
2232 STOP^
2233 031644 254 04 0 00 031645 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2234 031645 324 00 0 00 031646 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2235 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2236 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2237 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2238
2239 ;**********
2240
2241 ;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND
2242 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E.
2243 ;IN THIS CASE, C(AC)=0,,1 AND E=0,,1
2244 ;HENCE, CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION.
2245 ;IF CAIN DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES
2246
2247 031646 200 06 0 00 000001 C51710: MOVE 6,1 ;PRELOAD AC WITH 0,,1
2248 031647 306 06 0 00 000001 CAIN 6,1 ;*CAIN SHOULD NOT SKIP THE NEXT INSTRUCTION
2249 031650 334 00 0 00 000000 SKIPA ;PASS IF CAIN SKIPS
2250 STOP^
2251 031651 254 04 0 00 031652 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2252 031652 324 00 0 00 031653 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2253 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2254 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2255 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2256
2257 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 39
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0068
2258 ;THIS TEST VERIFIES THAT CAIN COMPARES C(AC) WITH E AND
2259 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS NOT EQUAL TO E.
2260 ;IN THIS CASE, C(AC)=0,,2 AND E=0,,1
2261 ;HENCE, CAIN SHOULD SKIP THE NEXT INSTRUCTION.
2262 ;IF CAIN SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES
2263
2264 031653 201 06 0 00 000002 C51720: MOVEI 6,2 ;PRELOAD AC WITH
2265 031654 306 06 0 00 000001 CAIN 6,1 ;*CAIN SHOULD SKIP THE NEXT INSTRUCTION
2266 STOP^
2267 031655 254 04 0 00 031656 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2268 031656 324 00 0 00 031657 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2269 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2270 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2271 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2272
2273 ;**********
2274
2275 ;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND
2276 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E.
2277 ;IN THIS CASE, C(AC)=0,,2 AND E=0,,3.
2278 ;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION.
2279 ;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES
2280
2281 031657 201 11 0 00 000002 C52000: MOVEI 11,2 ;PRELOAD AC WITH 0,,2
2282 031660 307 11 0 00 000003 CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION
2283 031661 334 00 0 00 000000 SKIPA ;PASS IF CAIG DID NOT SKIP
2284 STOP^
2285 031662 254 04 0 00 031663 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2286 031663 324 00 0 00 031664 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2287 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2288 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2289 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2290
2291 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 40
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAIX INSTRUCTIONS SEQ 0069
2292 ;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND
2293 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E.
2294 ;IN THIS CASE, C(AC)=0,,3 AND E=0,,3.
2295 ;HENCE, CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION.
2296 ;IF CAIG DOES NOT SKIP THE NEXT INSTRUCTION, THE TEST PASSES.
2297
2298 031664 201 11 0 00 000003 C52010: MOVEI 11,3 ;PRELOAD AC WITH 0,,3
2299 031665 307 11 0 00 000003 CAIG 11,3 ;*CAIG SHOULD NOT SKIP THE NEXT INSTRUCTION
2300 031666 334 00 0 00 000000 SKIPA ;PASS IF CAIG DID NOT SKIP
2301 STOP^
2302 031667 254 04 0 00 031670 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2303 031670 324 00 0 00 031671 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2304 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2305 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2306 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2307
2308 ;**********
2309
2310 ;THIS TEST VERIFIES THAT CAIG COMPARES C(AC) WITH E AND
2311 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN E.
2312 ;IN THIS CASE, C(AC)=0,,4 AND E=0,,3.
2313 ;HENCE, CAIG SHOULD SKIP THE NEXT INSTRUCTION.
2314 ;IF CAIG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES.
2315
2316 031671 201 11 0 00 000004 C52020: MOVEI 11,4 ;PRELOAD AC WITH 0,,4
2317 031672 307 11 0 00 000003 CAIG 11,3 ;*CAIG SHOULD SKIP THE NEXT INSTRUCTION
2318 STOP^
2319 031673 254 04 0 00 031674 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2320 031674 324 00 0 00 031675 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2321 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2322 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2323 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2324
2325 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 41
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAMX INSTRUCTIONS SEQ 0070
2326 SUBTTL TEST OF MSCL CAMX INSTRUCTIONS
2327
2328 ;**********
2329
2330 ;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND
2331 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAT OR EQUAL TO C(E).
2332 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0
2333 ;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION.
2334 ;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES.
2335
2336 031675 474 01 0 00 000000 C52100: SETO 1, ;PRELOAD AC WITH -1,,-1
2337 031676 400 02 0 00 000000 SETZ 2, ;PRELOAD E WITH 0
2338 031677 313 01 0 00 000002 CAMLE 1,2 ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION
2339 STOP^
2340 031700 254 04 0 00 031701 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2341 031701 324 00 0 00 031702 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2342 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2343 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2344 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2345
2346 ;**********
2347
2348 ;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND
2349 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E).
2350 ;IN THIS CASE, C(AC)=0 AND C(E)=0
2351 ;HENCE, CAMLE SHOULD SKIP THE NEXT INSTRUCTION.
2352 ;IF CAMLE SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES
2353
2354 031702 400 01 0 00 000000 C52110: SETZ 1, ;CLEAR AC
2355 031703 313 01 0 00 033501 CAMLE 1,[0] ;*CAMLE SHOULD SKIP THE NEXT INSTRUCTION
2356 STOP^
2357 031704 254 04 0 00 031705 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2358 031705 324 00 0 00 031706 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2359 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2360 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2361 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2362
2363 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 42
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAMX INSTRUCTIONS SEQ 0071
2364 ;THIS TEST VERIFIES THAT CAMLE COMPARES C(AC) WITH C(E) AND
2365 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS LESS THAN OR EQUAL TO C(E).
2366 ;IN THIS CASE, C(AC)=0,,1 AND C(E)=0
2367 ;HENCE, CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION.
2368 ;IF CAMLE DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES.
2369
2370 031706 201 01 0 00 000001 C52120: MOVEI 1,1 ;PRELOAD AC WITH 0,,1
2371 031707 400 02 0 00 000000 SETZ 2, ;PRELOAD E WITH 0
2372 031710 313 01 0 00 000002 CAMLE 1,2 ;*CAMLE SHOULD NOT SKIP THE NEXT INSTRUCTION
2373 031711 334 00 0 00 000000 SKIPA ;PASS IF CAMLE DOES NOT SKIP
2374 STOP^
2375 031712 254 04 0 00 031713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2376 031713 324 00 0 00 031714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2377 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2378 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2379 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2380
2381 ;**********
2382
2383 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND
2384 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E).
2385 ;IN THIS CASE, C(AC)=-1,,-2 AND C(E)=-1,,-1.
2386 ;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION.
2387 ;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES.
2388
2389 031714 561 10 0 00 777776 C52200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2
2390 031715 317 10 0 00 033462 CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION.
2391 031716 334 00 0 00 000000 SKIPA ;PASS IF CAMG DOES NOT SKIP
2392 STOP^
2393 031717 254 04 0 00 031720 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2394 031720 324 00 0 00 031721 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2395 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2396 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2397 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2398 ;**********
2399
2400 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND
2401 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E).
2402 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-2.
2403 ;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION.
2404
2405 031721 561 10 0 00 777777 C52205: HRROI 10,-1 ;PRELOAD AC WITH -1,,-1
2406 031722 317 10 0 00 033500 CAMG 10,[-1,,-2] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION.
2407 STOP^
2408 031723 254 04 0 00 031724 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2409 031724 324 00 0 00 031725 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2410 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2411 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2412 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2413 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 43
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL CAMX INSTRUCTIONS SEQ 0072
2414 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND
2415 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E).
2416 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-1.
2417 ;HENCE, CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION.
2418 ;IF CAMG DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES.
2419 031725 474 10 0 00 000000 C52210: SETO 10, ;PRELOAD AC WITH -1,,-1.
2420 031726 317 10 0 00 033462 CAMG 10,[-1,,-1] ;*CAMG SHOULD NOT SKIP THE NEXT INSTRUCTION
2421 031727 334 00 0 00 000000 SKIPA ;PASS IF CAMG DOES NOT SKIP
2422 STOP^
2423 031730 254 04 0 00 031731 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2424 031731 324 00 0 00 031732 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2425 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2426 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2427 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2428
2429 ;**********
2430
2431 ;THIS TEST VERIFIES THAT CAMG COMPARES C(AC) WITH C(E) AND
2432 ;SKIPS THE NEXT INSTRUCTION IF C(AC) IS GREATER THAN C(E).
2433 ;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1.
2434 ;HENCE, CAMG SHOULD SKIP THE NEXT INSTRUCTION.
2435 ;IF CAMG SKIPS THE NEXT INSTRUCTION, THIS TEST PASSES.
2436
2437 031732 400 10 0 00 000000 C52220: SETZ 10, ;PRELOAD AC WITH 0
2438 031733 317 10 0 00 033462 CAMG 10,[-1,,-1] ;*CAMG SHOULD SKIP THE NEXT INSTRUCTION
2439 STOP^
2440 031734 254 04 0 00 031735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2441 031735 324 00 0 00 031736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2442 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2443 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2444 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2445
2446 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 44
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL JUMPX INSTRUCTIONS SEQ 0073
2447 SUBTTL TEST OF MSCL JUMPX INSTRUCTIONS
2448
2449 ;**********
2450
2451 ;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND
2452 ;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR
2453 ;EQUAL TO 0. IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPLE SHOULD JUMP.
2454
2455 031736 474 17 0 00 000000 C52300: SETO 17, ;PRELOAD AC WITH -1,,-1
2456 031737 323 17 0 00 031741 JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP
2457 STOP^
2458 031740 254 04 0 00 031741 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2459 031741 324 00 0 00 031742 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2460 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2461 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2462 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2463
2464 ;**********
2465
2466 ;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND
2467 ;JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR
2468 ;EQUAL TO 0. IN THIS CASE, C(AC)=0. HENCE, JUMPLE SHOULD JUMP.
2469
2470 031742 400 17 0 00 000000 C52310: SETZ 17, ;PRELOAD AC WITH 0
2471 031743 323 17 0 00 031745 JUMPLE 17,.+2 ;*JUMPLE SHOULD JUMP
2472 STOP^
2473 031744 254 04 0 00 031745 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2474 031745 324 00 0 00 031746 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2475 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2476 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2477 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2478
2479 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 45
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL JUMPX INSTRUCTIONS SEQ 0074
2480 ;THIS TEST VERIFIES THAT JUMPLE COMPARES C(AC) WITH 0 AND JUMPS
2481 ;TO THE LOCATION SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO
2482 ;0. IN THIS CASE, C(AC)=0,,1. HENCE, JUMPLE SHOULD NOT JUMP.
2483
2484 031746 201 17 0 00 000001 C52320: MOVEI 17,1 ;PRELOAD AC WITH 0,,1
2485 031747 320 17 0 00 031751 JUMP 17,.+2 ;*JUMPLE SHOULD NOT JUMP
2486 031750 334 00 0 00 000000 SKIPA ;PASS IF JUMPLE DOES NOT JUMP
2487 STOP^
2488 031751 254 04 0 00 031752 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2489 031752 324 00 0 00 031753 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2490 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2491 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2492 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2493
2494 ;**********
2495
2496 ;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO
2497 ;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0.
2498 ;IN THIS CASE, C(AC)=-1,,-1. HENCE, JUMPGE SHOULD NOT JUMP.
2499
2500 031753 474 16 0 00 000000 C52400: SETO 16, ;PRELOAD AC WITH -1,,-1
2501 031754 325 16 0 00 031756 JUMPGE 16,.+2 ;*JUMPGE SHOULD NOT JUMP
2502 031755 334 00 0 00 000000 SKIPA ;PASS IF JUMPGE DOES NOT JUMP
2503 STOP^
2504 031756 254 04 0 00 031757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2505 031757 324 00 0 00 031760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2506 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2507 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2508 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2509
2510 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 46
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL JUMPX INSTRUCTIONS SEQ 0075
2511 ;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH O AND JUMPS TO
2512 ;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0.
2513 ;IN THIS CASE, C(AC)=0. HENCE, JUMPGE SHOULD JUMP.
2514
2515 031760 400 16 0 00 000000 C52410: SETZ 16, ;PRELOAD AC WITH 0
2516 031761 325 16 0 00 031763 JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP
2517 STOP^
2518 031762 254 04 0 00 031763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2519 031763 324 00 0 00 031764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2520 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2521 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2522 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2523
2524 ;**********
2525
2526 ;THIS TEST VERIFIES THAT JUMPGE COMPARES C(AC) WITH 0 AND JUMPS TO
2527 ;THE LOCATION SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0.
2528 ;IN THIS CASE, C(AC)=0,,1. HENCE, JUMPGE SHOULD JUMP.
2529
2530 031764 201 16 0 00 000001 C52420: MOVEI 16,1 ;PRELOAD AC WITH 0,,1
2531 031765 325 16 0 00 031767 JUMPGE 16,.+2 ;*JUMPGE SHOULD JUMP
2532 STOP^
2533 031766 254 04 0 00 031767 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2534 031767 324 00 0 00 031770 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2535 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2536 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2537 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2538
2539 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 47
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0076
2540 SUBTTL TEST OF MSCL AOJX INSTRUCTIONS
2541
2542 ;**********
2543
2544 ;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND PLACES
2545 ;THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED
2546 ;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC)
2547 ;IS LESS THAN 0. IN THIS CASE, C(AC)=-1,,-2 BEFORE INCREMENTING.
2548 ;HENCE, AOJL SHOULD JUMP.
2549
2550 031770 561 15 0 00 777776 C52500: HRROI 15,-2 ;PRELOAD AC WITH -1,,-2
2551 031771 341 15 0 00 031773 AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC) AND JUMP
2552 STOP^
2553 031772 254 04 0 00 031773 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2554 031773 324 00 0 00 031774 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2555 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2556 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2557 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2558 031774 312 15 0 00 033462 CAME 15,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY
2559 STOP^
2560 031775 254 04 0 00 031776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2561 031776 324 00 0 00 031777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2562 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2563 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2564 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2565
2566 ;**********
2567
2568 ;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND
2569 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2570 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2571 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0.
2572 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING
2573 ;HENCE, AOJ SHOULD NOT JUMP
2574
2575 031777 474 15 0 00 000000 C52510: SETO 15, ;PRELOAD AC WITH
2576 032000 341 15 0 00 032002 AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC)
2577 ;AND NOT JUMP
2578 032001 334 00 0 00 000000 SKIPA ;PASS IF AOJL DID NOT JUMP
2579 STOP^
2580 032002 254 04 0 00 032003 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2581 032003 324 00 0 00 032004 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2582 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2583 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2584 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2585 032004 302 15 0 00 000000 CAIE 15,0 ;PASS IF C(AC) INCREMENTED CORRECTLY
2586 STOP^
2587 032005 254 04 0 00 032006 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2588 032006 324 00 0 00 032007 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2589 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2590 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2591 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2592
2593 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 48
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0077
2594 ;THIS TEST VERIFIES THAT AOJL INCREMENTS C(AC) BY 0,,1 AND
2595 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2596 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2597 ;SPECIFIED BY E IF C(AC) IS 0 BEFORE INCREMENTING
2598 ;HENCE, AOJL SHOULD NOT JUMP
2599
2600 032007 400 15 0 00 000000 C52520: SETZ 15, ;PRELOAD AC WITH 0
2601 032010 341 15 0 00 032012 AOJL 15,.+2 ;*AOJL SHOULD ADD 0,,1 TO C(AC)
2602 ;AND NOT JUMP
2603 032011 334 00 0 00 000000 SKIPA ;PASS IF AOJL DID NOT JUMP
2604 STOP^
2605 032012 254 04 0 00 032013 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2606 032013 324 00 0 00 032014 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2607 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2608 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2609 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2610 032014 302 15 0 00 000001 CAIE 15,1 ;PASS IF C(AC) INCREMENTED CORRECTLY
2611 STOP^
2612 032015 254 04 0 00 032016 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2613 032016 324 00 0 00 032017 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2614 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2615 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2616 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2617
2618 ;**********
2619
2620 ;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND
2621 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2622 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2623 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0
2624 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING
2625 ;HENCE, AOJE SHOULD NOT JUMP
2626
2627 032017 561 14 0 00 777776 C52600: HRROI 14,-2 ;PRELOAD AC WITH -1,,-2
2628 032020 342 14 0 00 032022 AOJE 14,.+2 ;*AOJE SHOULD ADD 0,,1 TO C(AC)
2629 ;AND NOT JUMP
2630 032021 334 00 0 00 000000 SKIPA ;PASS IF AOJE DID NOT JUMP
2631 STOP^
2632 032022 254 04 0 00 032023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2633 032023 324 00 0 00 032024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2634 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2635 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2636 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2637 032024 312 14 0 00 033462 CAME 14,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY
2638 STOP^
2639 032025 254 04 0 00 032026 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2640 032026 324 00 0 00 032027 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2641 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2642 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2643 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2644
2645 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 49
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0078
2646 ;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND
2647 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2648 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2649 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0.
2650 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING.
2651 ;HENCE, AOJE SHOULD JUMP
2652
2653 032027 474 14 0 00 000000 C52610: SETO 14, ;PRELOAD AC WITH -1,,-1
2654 032030 342 14 0 00 032032 AOJE 14,.+2 ;*AOJ SHOULD ADD 0,,1 TO C(AC)
2655 ;AND JUMP
2656 STOP^
2657 032031 254 04 0 00 032032 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2658 032032 324 00 0 00 032033 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2659 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2660 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2661 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2662 032033 302 14 0 00 000000 CAIE 14,0 ;PASS IF C(AC) INCREMENTED CORRECTLY
2663 STOP^
2664 032034 254 04 0 00 032035 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2665 032035 324 00 0 00 032036 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2666 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2667 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2668 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2669
2670 ;**********
2671
2672 ;THIS TEST VERIFIES THAT AOJE INCREMENTS C(AC) BY 0,,1 AND
2673 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2674 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2675 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0.
2676 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING
2677 ;HENCE, AOJE SHOULD NOT JUMP
2678
2679 032036 400 14 0 00 000000 C52620: SETZ 14, ;PRELOAD AC WITH 0
2680 032037 342 14 0 00 032041 AOJE 14,.+2 ;*AOJE SHOULD ADD 0,11 TO C(AC)
2681 ;AND NOT JUMP
2682 032040 334 00 0 00 000000 SKIPA ;PASS IF AOJE DID NOT JUMP
2683 STOP^
2684 032041 254 04 0 00 032042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2685 032042 324 00 0 00 032043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2686 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2687 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2688 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2689 032043 302 14 0 00 000001 CAIE 14,1 ;PASS IF C(AC) INCREMENTED CORRECTLY
2690 STOP^
2691 032044 254 04 0 00 032045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2692 032045 324 00 0 00 032046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2693 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2694 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2695 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2696
2697 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 50
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0079
2698 ;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND
2699 ;PLACES THE RESULT BACK INTO TLE$EC. THE RESULT IN THE AC IS
2700 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2701 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0.
2702 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING
2703 ;HENCE, AOJLE SHOULD
2704
2705 032046 561 13 0 00 777776 C52700: HRROI 13,-2 ;PRELOAD AC WITH -1,,-2
2706 032047 343 13 0 00 032051 AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC)
2707 ;AND JUMP
2708 STOP^
2709 032050 254 04 0 00 032051 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2710 032051 324 00 0 00 032052 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2714 032052 312 13 0 00 033462 CAME 13,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY
2715 STOP^
2716 032053 254 04 0 00 032054 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2717 032054 324 00 0 00 032055 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2718 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2719 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2720 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2721
2722 ;**********
2723
2724 ;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND
2725 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2726 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2727 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0
2728 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING
2729 ;HENCE, AOJLE SHOULD JUMP.
2730
2731 032055 474 13 0 00 000000 C52710: SETO 13, ;PRELOAD AC WITH -1,,-1
2732 032056 343 13 0 00 032060 AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC)
2733 ;AND JUMP
2734 STOP^
2735 032057 254 04 0 00 032060 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2736 032060 324 00 0 00 032061 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2737 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2738 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2739 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2740 032061 302 13 0 00 000000 CAIE 13,0 ;PASS IF C(AC) INCREMENTED CORRECTLY
2741 STOP^
2742 032062 254 04 0 00 032063 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2743 032063 324 00 0 00 032064 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2744 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2745 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2746 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2747
2748 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 51
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0080
2749 ;THIS TEST VERIFIES THAT AOJLE INCREMENTS C(AC) BY 0,,1 AND
2750 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2751 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2752 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0.
2753 ;IN THIS CASE, C(AC) IS 0
2754 ;HENCE, AOJLE SHOULD NOT JUMP.
2755
2756 032064 400 13 0 00 000000 C52720: SETZ 13, ;PRELOAD AC WITH 0
2757 032065 343 13 0 00 032067 AOJLE 13,.+2 ;*AOJLE SHOULD ADD 0,,1 TO C(AC)
2758 ;AND NOT JUMP
2759 032066 334 00 0 00 000000 SKIPA ;PASS IF AOJLE DID NOT JUMP
2760 STOP^
2761 032067 254 04 0 00 032070 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2762 032070 324 00 0 00 032071 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2763 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2764 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2765 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2766 032071 302 13 0 00 000001 CAIE 13,1 ;PASS IF C(AC) INCREMENTED CORRECTLY
2767 STOP^
2768 032072 254 04 0 00 032073 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2769 032073 324 00 0 00 032074 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2770 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2771 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2772 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2773
2774 ;**********
2775
2776 ;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND
2777 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2778 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION
2779 ;SPECIFIED BY E.
2780 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING
2781 ;HENCE, AOJA SHOULD JUMP
2782
2783 032074 561 12 0 00 777776 C53000: HRROI 12,-2 ;PRELOAD AC WITH -1,,-2
2784 032075 344 12 0 00 032077 AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC)
2785 ;AND JUMP
2786 STOP^
2787 032076 254 04 0 00 032077 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2788 032077 324 00 0 00 032100 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2789 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2790 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2791 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2792 032100 312 12 0 00 033462 CAME 12,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY
2793 STOP^
2794 032101 254 04 0 00 032102 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2795 032102 324 00 0 00 032103 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2796 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2797 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2798 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2799
2800 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 52
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0081
2801 ;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND
2802 ;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS
2803 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION
2804 ;SPECIFIED BY E.
2805 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING
2806 ;HENCE, AOJA SHOULD JUMP
2807
2808 032103 474 12 0 00 000000 C53010: SETO 12, ;PRELOAD AC WITH -1,,-1
2809 032104 344 12 0 00 032106 AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC)
2810 ;AND JUMP
2811 STOP^
2812 032105 254 04 0 00 032106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2813 032106 324 00 0 00 032107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2814 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2815 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2816 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2817 032107 302 12 0 00 000000 CAIE 12,0 ;PASS IF C(AC) INCREMENTED CORRECTLY
2818 STOP^
2819 032110 254 04 0 00 032111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2820 032111 324 00 0 00 032112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2821 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2822 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2823 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2824
2825 ;**********
2826
2827 ;THIS TEST VERIFIES THAT AOJA INCREMENTS C(AC) BY 0,,1 AND
2828 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2829 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION
2830 ;SPECIFIED BY E.
2831 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING
2832 ;HENCE, AOJA SHOULD JUMP
2833
2834 032112 400 12 0 00 000000 C53020: SETZ 12, ;PRELOAD AC WITH 0
2835 032113 344 12 0 00 032115 AOJA 12,.+2 ;*AOJA SHOULD ADD 0,,1 TO C(AC)
2836 ;AND JUMP
2837 STOP^
2838 032114 254 04 0 00 032115 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2839 032115 324 00 0 00 032116 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2840 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2841 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2842 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2843 032116 302 12 0 00 000001 CAIE 12,1 ;PASS IF C(AC) INCREMENTED CORRECTLY
2844 STOP^
2845 032117 254 04 0 00 032120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2846 032120 324 00 0 00 032121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2847 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2848 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2849 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2850
2851 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 53
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0082
2852 ;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND
2853 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2854 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2855 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0
2856 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING
2857 ;HENCE, AOJGE SHOULD NOT JUMP
2858
2859 032121 561 11 0 00 777776 C53100: HRROI 11,-2 ;PRELOAD AC WITH -1,,-2
2860 032122 345 11 0 00 032124 AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC)
2861 ;AND NOT JUMP
2862 032123 334 00 0 00 000000 SKIPA ;PASS IF AOJGE DID NOT JUMP
2863 STOP^
2864 032124 254 04 0 00 032125 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2865 032125 324 00 0 00 032126 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2866 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2867 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2868 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2869 032126 312 11 0 00 033462 CAME 11,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY
2870 STOP^
2871 032127 254 04 0 00 032130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2872 032130 324 00 0 00 032131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2873 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2874 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2875 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2876
2877 ;**********
2878
2879 ;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND
2880 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2881 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2882 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0.
2883 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING
2884 ;HENCE, AOJ SHOULD JUMP
2885
2886 032131 474 11 0 00 000000 C53110: SETO 11, ;PRELOAD AC WITH -1,,-1
2887 032132 345 11 0 00 032134 AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC)
2888 ;AND JUMP
2889 STOP^
2890 032133 254 04 0 00 032134 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2891 032134 324 00 0 00 032135 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2892 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2893 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2894 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2895 032135 302 11 0 00 000000 CAIE 11,0 ;PASS IF C(AC) INCREMENTED CORRECTLY
2896 STOP^
2897 032136 254 04 0 00 032137 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2898 032137 324 00 0 00 032140 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2899 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2900 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2901 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2902
2903 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 54
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0083
2904 ;THIS TEST VERIFIES THAT AOJGE INCREMENTS C(AC) BY 0,,1 AND
2905 ;PLACES THE RESULT BACK INTO AC. THE RESULT IN THE AC IS
2906 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2907 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0
2908 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING
2909 ;HENCE, AOJGE SHOULD JUMP
2910
2911 032140 400 11 0 00 000000 C53120: SETZ 11, ;PRELOAD AC WITH 0
2912 032141 345 11 0 00 032143 AOJGE 11,.+2 ;*AOJGE SHOULD ADD 0,,1 TO C(AC)
2913 ;AND JUMP
2914 STOP^
2915 032142 254 04 0 00 032143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2916 032143 324 00 0 00 032144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2917 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2918 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2919 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2920 032144 302 11 0 00 000001 CAIE 11,1 ;PASS IF C(AC) INCREMENTED CORRECTLY
2921 STOP^
2922 032145 254 04 0 00 032146 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2923 032146 324 00 0 00 032147 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2924 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2925 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2926 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2927
2928 ;**********
2929
2930 ;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND
2931 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2932 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2933 ;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0.
2934 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INCREMENTING
2935 ;HENCE, AOJN SHOULD JUMP
2936
2937 032147 561 10 0 00 777776 C53200: HRROI 10,-2 ;PRELOAD AC WITH -1,,-2
2938 032150 346 10 0 00 032152 AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC)
2939 ;AND JUMP
2940 STOP^
2941 032151 254 04 0 00 032152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2942 032152 324 00 0 00 032153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2943 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2944 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2945 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2946 032153 312 10 0 00 033462 CAME 10,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY
2947 STOP^
2948 032154 254 04 0 00 032155 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2949 032155 324 00 0 00 032156 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2950 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2951 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2952 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2953
2954 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 55
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0084
2955 ;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND
2956 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2957 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2958 ;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0.
2959 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING
2960 ;HENCE, AOJ SHOULD NOT JUMP.
2961
2962 032156 474 10 0 00 000000 C53210: SETO 10, ;PRELOAD AC WITH -1,,-1
2963 032157 346 10 0 00 032161 AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC)
2964 ;AND NOT JUMP
2965 032160 334 00 0 00 000000 SKIPA ;PASS IF AOJN DID NOT JUMP
2966 STOP^
2967 032161 254 04 0 00 032162 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2968 032162 324 00 0 00 032163 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2972 032163 302 10 0 00 000000 CAIE 10,0 ;PASS IF C(AC) INCREMENTED CORRRECTLY
2973 STOP^
2974 032164 254 04 0 00 032165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2975 032165 324 00 0 00 032166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2976 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2977 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2978 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2979
2980 ;**********
2981
2982 ;THIS TEST VERIFIES THAT AOJN INCREMENTS C(AC) BY 0,,1 AND
2983 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
2984 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
2985 ;SPECIFIED BY E IF C(AC) IS NOT EQUAL TO 0.
2986 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING
2987 ;HENCE, AOJN SHOULD JUMP.
2988
2989 032166 400 10 0 00 000000 C53220: SETZ 10, ;PRELOAD AC WITH 0
2990 032167 346 10 0 00 032171 AOJN 10,.+2 ;*AOJN SHOULD ADD 0,,1 TO C(AC)
2991 ;AND JUMP
2992 STOP^
2993 032170 254 04 0 00 032171 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
2994 032171 324 00 0 00 032172 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
2995 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
2996 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
2997 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
2998 032172 302 10 0 00 000001 CAIE 10,1 ;PASS IF C(AC) INCREMENTED CORRECTLY
2999 STOP^
3000 032173 254 04 0 00 032174 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3001 032174 324 00 0 00 032175 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3002 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3003 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3004 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3005
3006 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 56
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0085
3007 ;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND
3008 ;PLACES THE RESULT BACK INTO THE AC. THE REAULT IN THE AC IS
3009 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3010 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0
3011 ;IN THIS CASE, C(AC) IS -1,,-2 BEFORE INC
3012 ;HENCE, AOJG SHOULD NOT JUMP
3013
3014 032175 561 07 0 00 777776 C53300: HRROI 7,-2 ;PRELOAD AC WITH -1,,-2
3015 032176 347 07 0 00 032200 AOJG 7,.+2 ;*AOJG SHOULD ADD 0,11 TO C(AC)
3016 ;AND NOT JUMP
3017 032177 334 00 0 00 000000 SKIPA ;PASS IF AOJG DID NOT JUMP
3018 STOP^
3019 032200 254 04 0 00 032201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3020 032201 324 00 0 00 032202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3021 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3022 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3023 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3024 032202 312 07 0 00 033462 CAME 7,[-1] ;PASS IF C(AC) INCREMENTED CORRECTLY
3025 STOP^
3026 032203 254 04 0 00 032204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3027 032204 324 00 0 00 032205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3028 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3029 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3030 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3031
3032 ;**********
3033
3034 ;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND
3035 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
3036 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3037 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0.
3038 ;IN THIS CASE, C(AC) IS -1,,-1 BEFORE INCREMENTING
3039 ;HENCE, AOJG SHOULD NOT JUMP.
3040
3041 032205 474 07 0 00 000000 C53310: SETO 7, ;PRELOAD AC WITH -1,,-1
3042 032206 347 07 0 00 032210 AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC)
3043 ;AND NOT JUMP
3044 032207 334 00 0 00 000000 SKIPA ;PASS IF AOJG DID NOT JUMP
3045 STOP^
3046 032210 254 04 0 00 032211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3047 032211 324 00 0 00 032212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3048 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3049 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3050 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3051 032212 302 07 0 00 000000 CAIE 7,0 ;PASS IF C(AC) INCREMENTED CORRECTLY
3052 STOP^
3053 032213 254 04 0 00 032214 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3054 032214 324 00 0 00 032215 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3055 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3056 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3057 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3058
3059 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 57
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOJX INSTRUCTIONS SEQ 0086
3060 ;THIS TEST VERIFIES THAT AOJG INCREMENTS C(AC) BY 0,,1 AND
3061 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
3062 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3063 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0.
3064 ;IN THIS CASE, C(AC) IS 0 BEFORE INCREMENTING
3065 ;HENCE, AOJG SHOULD JUMP
3066
3067 032215 400 07 0 00 000000 C53320: SETZ 7, ;PRELOAD AC WITH 0
3068 032216 347 07 0 00 032220 AOJG 7,.+2 ;*AOJG SHOULD ADD 0,,1 TO C(AC)
3069 ;AND JUMP
3070 STOP^
3071 032217 254 04 0 00 032220 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3072 032220 324 00 0 00 032221 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3076 032221 302 07 0 00 000001 CAIE 7,1 ;PASS IF C(AC) INCREMENTED CORRECTLY
3077 STOP^
3078 032222 254 04 0 00 032223 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3079 032223 324 00 0 00 032224 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3083
3084 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 58
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0087
3085 SUBTTL TEST OF MSCL AOSX INSTRUCTIONS
3086
3087 ;**********
3088
3089 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES
3090 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3091 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0
3092 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3093 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2
3094 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE
3095 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
3096 ;RESPECTIVELY.
3097
3098 032224 200 06 0 00 033474 C53400: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3099 032225 561 07 0 00 777776 HRROI 7,-2 ;PRELOAD E WITH -1,,-2
3100 032226 351 06 0 00 000007 AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E),
3101 ;UPDATE AC AND SKIP
3102 STOP^
3103 032227 254 04 0 00 032230 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3104 032230 324 00 0 00 032231 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3105 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3106 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3107 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3108 032231 312 07 0 00 033462 CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY
3109 STOP^
3110 032232 254 04 0 00 032233 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3111 032233 324 00 0 00 032234 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3112 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3113 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3114 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3115 032234 312 06 0 00 033462 CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3116 STOP^
3117 032235 254 04 0 00 032236 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3118 032236 324 00 0 00 032237 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3119 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3120 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3121 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3122
3123 ;**********
3124
3125 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES
3126 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3127 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0
3128 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3129 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-2
3130 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD SKIP ; AND THE
3131 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
3132 ;RESPECTIVELY.
3133
3134 032237 200 06 0 00 033474 C53401: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3135 032240 561 07 0 00 777776 HRROI 7,-2 ;PRELOAD E WITH -1,,-2
3136 032241 202 07 0 00 032255 MOVEM 7,E53401
3137 032242 351 06 0 00 032255 AOSL 6,E53401 ;*AOSL SHOULD ADD 0,,1 TO C(E),
3138 ;UPDATE AC AND SKIP
3139 STOP^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 58-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0088
3140 032243 254 04 0 00 032244 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3141 032244 324 00 0 00 032245 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3142 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3143 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3144 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3145 032245 200 07 0 00 032255 MOVE 7,E53401
3146 032246 312 07 0 00 033462 CAME 7,[-1] ;PASS IF E INCREMENTED CORRECTLY
3147 STOP^
3148 032247 254 04 0 00 032250 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3149 032250 324 00 0 00 032251 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3150 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3151 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3152 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3153 032251 312 06 0 00 033462 CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3154 STOP^
3155 032252 254 04 0 00 032253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3156 032253 324 00 0 00 032254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3157 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3158 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3159 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3160
3161 032254 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST
3162 032255 000000 000000 E53401: 0 ;TEST WORD MEMORY
3163
3164 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 59
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0089
3165 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES
3166 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3167 ;THE NEXT INSTRUCTION IF C(E) ISLESS THAN 0
3168 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3169 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=-1,,-1
3170 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE
3171 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
3172 ;RESPECTIVELY.
3173
3174 032256 200 06 0 00 033474 C53410: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3175 032257 474 07 0 00 000000 SETO 7, ;PRELOAD E WITH -1,,-1
3176 032260 351 06 0 00 000007 AOSL 6,7 ;*AOSL SHOULD ADD 00,1 TO C(E)
3177 ;UPDATE AC AND NOT SKIP
3178 032261 334 00 0 00 000000 SKIPA ;PASS IF AOSL DID NOT SKIP
3179 STOP^
3180 032262 254 04 0 00 032263 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3181 032263 324 00 0 00 032264 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3182 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3183 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3184 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3185 032264 312 07 0 00 033501 CAME 7,[0] ;PASS IF E INCREMENTED CORRECTLY
3186 STOP^
3187 032265 254 04 0 00 032266 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3188 032266 324 00 0 00 032267 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3189 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3190 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3191 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3192 032267 312 06 0 00 033501 CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3193 STOP^
3194 032270 254 04 0 00 032271 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3195 032271 324 00 0 00 032272 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3196 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3197 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3198 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3199
3200 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 60
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0090
3201 ;THIS TEST VERIFIES THAT AOSL INCREMENTS C(E) BY 0,,1 AND PLACES
3202 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3203 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0.
3204 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3205 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0
3206 ;BEFORE INCREMENTING. HENCE, AOSL SHOULD NOT SKIP; AND THE
3207 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
3208 ;RESPECTIVELY
3209
3210 032272 200 06 0 00 033474 C53420: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3211 032273 400 07 0 00 000000 SETZ 7, ;PRELOAD E WITH 0
3212 032274 351 06 0 00 000007 AOSL 6,7 ;*AOSL SHOULD ADD 0,,1 TO C(E).
3213 ;UPDATE AC AND NOT SKIP
3214 032275 334 00 0 00 000000 SKIPA ;PASS IF AOSL DID NOT SKIP
3215 STOP^
3216 032276 254 04 0 00 032277 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3217 032277 324 00 0 00 032300 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3221 032300 312 07 0 00 033502 CAME 7,[1] ;PASS IF E INCREMENTED CORRECTLY
3222 STOP^
3223 032301 254 04 0 00 032302 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3224 032302 324 00 0 00 032303 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3225 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3226 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3227 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3228 032303 312 06 0 00 033502 CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3229 STOP^
3230 032304 254 04 0 00 032305 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3231 032305 324 00 0 00 032306 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3232 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3233 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3234 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3235
3236 ;**********
3237
3238 ;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES
3239 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3240 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0.
3241 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3242 ;IN THIS CASE, AC=5, C(AC)=707070,,707070AND C(E)=-1,,-2
3243 ;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE
3244 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
3245 ;RESPECTIVELY.
3246
3247 032306 200 05 0 00 033474 C53500: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3248 032307 561 06 0 00 777776 HRROI 6,-2 ;PRELOAD E WITH -1,,-2
3249 032310 352 05 0 00 000006 AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E),
3250 ;UPDATE AC AND NOT SKIP
3251 032311 334 00 0 00 000000 SKIPA ;PASS IF AOSE DID NOT SKIP
3252 STOP^
3253 032312 254 04 0 00 032313 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3254 032313 324 00 0 00 032314 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3255 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 60-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0091
3256 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3257 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3258 032314 312 06 0 00 033462 CAME 6,[-1] ;PASS IF E INCREMENTED CORRECTLY
3259 STOP^
3260 032315 254 04 0 00 032316 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3261 032316 324 00 0 00 032317 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3262 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3263 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3264 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3265 032317 312 05 0 00 033462 CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3266 STOP^
3267 032320 254 04 0 00 032321 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3268 032321 324 00 0 00 032322 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3269 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3270 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3271 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3272
3273 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 61
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0092
3274 ;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES
3275 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3276 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0
3277 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3278 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=-1,,-1
3279 ;BEFORE INCREMENTING. HENCE, AOSE SHOULD SKIP; AND THE
3280 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
3281 ;RESPECTIVELY.
3282
3283 032322 200 05 0 00 033474 C53510: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3284 032323 474 06 0 00 000000 SETO 6, ;PRELOAD E WITH -1,,-1
3285 032324 352 05 0 00 000006 AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E),
3286 ;UPDATE AC AND SKIP
3287 STOP^
3288 032325 254 04 0 00 032326 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3289 032326 324 00 0 00 032327 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3290 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3291 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3292 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3293 032327 312 06 0 00 033501 CAME 6,[0] ;PASS IF E INCREMENTED CORRECTLY
3294 STOP^
3295 032330 254 04 0 00 032331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3296 032331 324 00 0 00 032332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3297 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3298 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3299 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3300 032332 312 05 0 00 033501 CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3301 STOP^
3302 032333 254 04 0 00 032334 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3303 032334 324 00 0 00 032335 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3304 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3305 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3306 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3307
3308 ;**********
3309
3310 ;THIS TEST VERIFIES THAT AOSE INCREMENTS C(E) BY 0,,1 AND PLACES
3311 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3312 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0
3313 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3314 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(AC)=0
3315 ;BEFORE INCREMENTING. HENCE, AOSE SHOULD NOT SKIP; AND THE
3316 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
3317 ;RESPECTIVELY.
3318
3319 032335 200 05 0 00 033474 C53520: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3320 032336 400 06 0 00 000000 SETZ 6, ;PRELOAD E WITH 0
3321 032337 352 05 0 00 000006 AOSE 5,6 ;*AOSE SHOULD ADD 0,,1 TO C(E),
3322 ;UPDATE AC AND NOT SKIP
3323 032340 334 00 0 00 000000 SKIPA ;PASS IF AOSE DID NOT SKIP
3324 STOP^
3325 032341 254 04 0 00 032342 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3326 032342 324 00 0 00 032343 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3327 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3328 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 61-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0093
3329 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3330 032343 312 06 0 00 033502 CAME 6,[1] ;PASS IF E INCREMENTED CORRECTLY
3331 STOP^
3332 032344 254 04 0 00 032345 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3333 032345 324 00 0 00 032346 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3334 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3335 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3336 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3337 032346 312 05 0 00 033502 CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3338 STOP^
3339 032347 254 04 0 00 032350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3340 032350 324 00 0 00 032351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3341 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3342 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3343 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3344
3345 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 62
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0094
3346 ;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES
3347 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3348 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO0
3349 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3350 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-2
3351 ;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE
3352 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
3353 ;RESPECTIVELY.
3354
3355 032351 200 04 0 00 033474 C53600: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3356 032352 561 05 0 00 777776 HRROI 5,-2 ;PRELOAD E WITH -1,,-2
3357 032353 353 04 0 00 000005 AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E),
3358 ;UPDATE AC AND SKIP ZERO
3359 STOP^
3360 032354 254 04 0 00 032355 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3361 032355 324 00 0 00 032356 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3362 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3363 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3364 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3365 032356 312 05 0 00 033462 CAME 5,[-1] ;PASS IF E INCREMENTED CORRECTLY
3366 STOP^
3367 032357 254 04 0 00 032360 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3368 032360 324 00 0 00 032361 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3369 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3370 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3371 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3372 032361 312 04 0 00 033462 CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3373 STOP^
3374 032362 254 04 0 00 032363 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3375 032363 324 00 0 00 032364 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3376 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3377 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3378 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3379
3380 ;**********
3381
3382 ;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES
3383 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3384 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0.
3385 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3386 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=-1,,-1
3387 ;BEFORE INCREMENTING. HENCE, AOSLE SHOULD SKIP; AND THE
3388 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
3389 ;RESPECTIVELY.
3390
3391 032364 200 04 0 00 033474 C53610: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3392 032365 476 05 0 00 000000 SETOM 5, ;PRELOAD E WITH -1,,-1
3393 032366 353 04 0 00 000005 AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E)
3394 ;UPDATE AC AND SKIP
3395 STOP^
3396 032367 254 04 0 00 032370 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3397 032370 324 00 0 00 032371 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3398 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3399 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3400 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 62-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0095
3401 032371 312 05 0 00 033501 CAME 5,[0] ;PASS IF E INCREMENTED CORRECTLY
3402 STOP^
3403 032372 254 04 0 00 032373 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3404 032373 324 00 0 00 032374 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3405 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3406 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3407 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3408 032374 312 04 0 00 033501 CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3409 STOP^
3410 032375 254 04 0 00 032376 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3411 032376 324 00 0 00 032377 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3412 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3413 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3414 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3415
3416 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 63
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0096
3417 ;THIS TEST VERIFIES THAT AOSLE INCREMENTS C(E) BY 0,,1 AND PLACES
3418 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3419 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0
3420 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3421 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0
3422 ;BEFORE INCREMENTING. HENCE, AOSLE SHOULD NOT SKIP ; AND THE
3423 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
3424 ;RESPECTIVELY.
3425
3426 032377 200 04 0 00 033474 C53620: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3427 032400 400 00 0 00 000005 SETZ 5 ;PRELOAD E WITH 0
3428 032401 353 04 0 00 000005 AOSLE 4,5 ;*AOSLE SHOULD ADD 0,,1 TO C(E)
3429 ;UPDATE AC AND NOT SKIP
3430 032402 334 00 0 00 000000 SKIPA ;PASS IF AOSLE DID NOT SKIP
3431 STOP^
3432 032403 254 04 0 00 032404 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3433 032404 324 00 0 00 032405 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3434 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3435 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3436 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3437 032405 312 05 0 00 033502 CAME 5,[1] ;PASS IF E INCREMENTED CORRECTLY
3438 STOP^
3439 032406 254 04 0 00 032407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3440 032407 324 00 0 00 032410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3441 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3442 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3443 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3444 032410 312 04 0 00 033502 CAME 4,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3445 STOP^
3446 032411 254 04 0 00 032412 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3447 032412 324 00 0 00 032413 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3451
3452 ;**********
3453
3454 ;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES
3455 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS
3456 ;THE NEXT INSTRUCTION.
3457 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3458 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-2
3459 ;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE
3460 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
3461 ;RESPECTIVELY.
3462
3463 032413 200 03 0 00 033474 C53700: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3464 032414 561 04 0 00 777776 HRROI 4,-2 ;PRELOAD E WITH -1,,-2
3465 032415 354 03 0 00 000004 AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E),
3466 ;UPDATE AC AND SKIP
3467 STOP^
3468 032416 254 04 0 00 032417 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3469 032417 324 00 0 00 032420 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3470 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3471 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 63-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0097
3472 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3473 032420 312 04 0 00 033462 CAME 4,[-1] ;PASS IF E INCREMENTED CORRECTLY
3474 STOP^
3475 032421 254 04 0 00 032422 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3476 032422 324 00 0 00 032423 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3477 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3478 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3479 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3480 032423 312 03 0 00 033462 CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3481 STOP^
3482 032424 254 04 0 00 032425 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3483 032425 324 00 0 00 032426 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3484 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3485 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3486 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3487
3488 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 64
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0098
3489 ;THIS TEST VERIFIES THAT AOSA INCREMENTS C(E) BY 0,,1 AND PLACES
3490 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS
3491 ;THE NEXT INSTRUCTION.
3492 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3493 ;;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=-1,,-1
3494 ;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP AND THE
3495 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
3496 ;RESPECTIVELY
3497
3498 032426 200 03 0 00 033474 C53710: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3499 032427 474 04 0 00 000000 SETO 4, ;PRELOAD E WITH -1,,-1
3500 032430 354 03 0 00 000004 AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E),
3501 ;UPDATE AC AND SKIP
3502 STOP^
3503 032431 254 04 0 00 032432 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3504 032432 324 00 0 00 032433 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3505 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3506 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3507 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3508 032433 312 04 0 00 033501 CAME 4,[0] ;PASS IF E INCREMENTED CORRECTLY
3509 STOP^
3510 032434 254 04 0 00 032435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3511 032435 324 00 0 00 032436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3512 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3513 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3514 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3515 032436 312 03 0 00 033501 CAME 3,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3516 STOP^
3517 032437 254 04 0 00 032440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3518 032440 324 00 0 00 032441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3519 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3520 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3521 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3522
3523 ;**********
3524
3525 ;THIS TEST VERIFIES THAT AOS INCREMENTS C(E) BY 0,,1 AND PLACES
3526 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS
3527 ;THE NEXT INSTRUCTION.
3528 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3529 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0
3530 ;BEFORE INCREMENTING. HENCE, AOSA SHOULD SKIP ; AND THE
3531 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
3532 ;RESPECTIVELY
3533
3534 032441 200 03 0 00 033474 C53720: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3535 032442 400 04 0 00 000000 SETZ 4, ;PRELOAD E WITH 0
3536 032443 354 03 0 00 000004 AOSA 3,4 ;*AOSA SHOULD ADD 0,,1 TO C(E),
3537 ;UPDATE AC AND SKIP
3538 STOP^
3539 032444 254 04 0 00 032445 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3540 032445 324 00 0 00 032446 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3541 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3542 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3543 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 64-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0099
3544 032446 312 04 0 00 033502 CAME 4,[1] ;PASS IF E INCREMENTED CORRECTLY
3545 STOP^
3546 032447 254 04 0 00 032450 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3547 032450 324 00 0 00 032451 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3548 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3549 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3550 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3551 032451 312 03 0 00 033502 CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3552 STOP^
3553 032452 254 04 0 00 032453 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3554 032453 324 00 0 00 032454 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3555 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3556 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3557 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3558
3559 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 65
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0100
3560 ;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES
3561 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3562 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0
3563 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3564 ;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-2
3565 ;BEFORE INCREMENTING. HENCE, AOSGE SHOULD NOT SKIP; AND THE
3566 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
3567 ;RESPECTIVELY
3568
3569 032454 200 02 0 00 033474 C54000: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3570 032455 561 03 0 00 777776 HRROI 3,-2 ;PRELOAD E WITH -1,,-2
3571 032456 355 02 0 00 000003 AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E),
3572 ;UPDATE AC AND NOT SKIP
3573 032457 334 00 0 00 000000 SKIPA ;PASS IF AOSGE DID NOT SKIP
3574 STOP^
3575 032460 254 04 0 00 032461 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3576 032461 324 00 0 00 032462 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3577 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3578 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3579 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3580 032462 312 03 0 00 033462 CAME 3,[-1] ;PASS IF E INCREMENTED CORRECTLY
3581 STOP^
3582 032463 254 04 0 00 032464 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3583 032464 324 00 0 00 032465 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3584 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3585 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3586 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3587 032465 312 02 0 00 033462 CAME 2,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3588 STOP^
3589 032466 254 04 0 00 032467 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3590 032467 324 00 0 00 032470 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3591 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3592 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3593 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3594
3595 ;**********
3596
3597 ;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES
3598 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3599 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0
3600 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3601 ;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=-1,,-1
3602 ;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE
3603 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
3604 ;RESPECTIVELY
3605
3606 032470 200 02 0 00 033474 C54010: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3607 032471 474 03 0 00 000000 SETO 3, ;PRELOAD E WITH 0
3608 032472 355 02 0 00 000003 AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E),
3609 ;UPDATE AC AND SKIP
3610 STOP^
3611 032473 254 04 0 00 032474 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3612 032474 324 00 0 00 032475 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3613 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3614 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 65-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0101
3615 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3616 032475 312 03 0 00 033501 CAME 3,[0] ;PASS IF E INCREMENTED CORRECTLY
3617 STOP^
3618 032476 254 04 0 00 032477 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3619 032477 324 00 0 00 032500 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3620 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3621 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3622 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3623 032500 312 02 0 00 033501 CAME 2,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3624 STOP^
3625 032501 254 04 0 00 032502 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3626 032502 324 00 0 00 032503 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3627 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3628 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3629 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3630
3631 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 66
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0102
3632 ;THIS TEST VERIFIES THAT AOSGE INCREMENTS C(E) BY 0,,1 AND PLACES
3633 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3634 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0
3635 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3636 ;IN THIS CASE, AC=2, C(AC)=707070,,707070 AND C(E)=0
3637 ;BEFORE INCREMENTING. HENCE, AOSGE SHOULD SKIP; AND THE
3638 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
3639 ;RESPECTIVELY
3640
3641 032503 200 02 0 00 033474 C54020: MOVE 2,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3642 032504 400 03 0 00 000000 SETZ 3, ;PRELOAD E WITH 0
3643 032505 355 02 0 00 000003 AOSGE 2,3 ;*AOSGE SHOULD ADD 0,,1 TO C(E),
3644 ;UPDATE AC AND SKIP
3645 STOP^
3646 032506 254 04 0 00 032507 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3647 032507 324 00 0 00 032510 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3648 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3649 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3650 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3651 032510 312 03 0 00 033502 CAME 3,[1] ;PASS IF E INCREMENTED CORRECTLY
3652 STOP^
3653 032511 254 04 0 00 032512 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3654 032512 324 00 0 00 032513 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3655 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3656 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3657 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3658 032513 312 02 0 00 033502 CAME 2,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3659 STOP^
3660 032514 254 04 0 00 032515 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3661 032515 324 00 0 00 032516 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3662 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3663 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3664 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3665
3666 ;**********
3667
3668 ;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES
3669 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3670 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO.
3671 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3672 ;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-2
3673 ;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE
3674 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
3675 ;RESPECTIVELY
3676
3677 032516 200 01 0 00 033474 C54100: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3678 032517 561 02 0 00 777776 HRROI 2,-2 ;PRELOAD E WITH -1,,-2
3679 032520 356 01 0 00 000002 AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E),
3680 ;UPDATE AC AND SKIP
3681 STOP^
3682 032521 254 04 0 00 032522 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3683 032522 324 00 0 00 032523 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3684 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3685 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3686 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 66-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0103
3687 032523 312 02 0 00 033462 CAME 2,[-1] ;PASS IF E INCREMENTED CORRECTLY
3688 STOP^
3689 032524 254 04 0 00 032525 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3690 032525 324 00 0 00 032526 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3691 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3692 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3693 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3694 032526 312 01 0 00 033462 CAME 1,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3695 STOP^
3696 032527 254 04 0 00 032530 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3697 032530 324 00 0 00 032531 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3698 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3699 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3700 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3701
3702 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 67
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0104
3703 ;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES
3704 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3705 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO
3706 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3707 ;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=-1,,-1
3708 ;BEFORE INCREMENTING. HENCE, AOSN SHOULD NOT SKIP; AND THE
3709 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
3710 ;RESPECTIVELY
3711
3712 032531 200 01 0 00 033474 C54110: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3713 032532 474 02 0 00 000000 SETO 2, ;PRELOAD E WITH -1,,-1
3714 032533 356 01 0 00 000002 AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E),
3715 ;UPDATE AC AND NOT SKIP
3716 032534 334 00 0 00 000000 SKIPA ;PASS IF AOSN DID NOT SKIP
3717 STOP^
3718 032535 254 04 0 00 032536 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3719 032536 324 00 0 00 032537 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3720 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3721 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3722 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3723 032537 312 02 0 00 033501 CAME 2,[0] ;PASS IF E INCREMENTED CORRECTLY
3724 STOP^
3725 032540 254 04 0 00 032541 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3726 032541 324 00 0 00 032542 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3727 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3728 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3729 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3730 032542 312 01 0 00 033501 CAME 1,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3731 STOP^
3732 032543 254 04 0 00 032544 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3733 032544 324 00 0 00 032545 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3737
3738 ;**********
3739
3740 ;THIS TEST VERIFIES THAT AOSN INCREMENTS C(E) BY 0,,1 AND PLACES
3741 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3742 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO
3743 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3744 ;IN THIS CASE, AC=1, C(AC)=707070,,707070 AND C(E)=0
3745 ;BEFORE INCREMENTING. HENCE, AOSN SHOULD SKIP; AND THE
3746 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
3747 ;RESPECTIVELY
3748
3749 032545 200 01 0 00 033474 C54120: MOVE 1,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3750 032546 400 02 0 00 000000 SETZ 2, ;PRELOAD E WITH 0
3751 032547 356 01 0 00 000002 AOSN 1,2 ;*AOSN SHOULD ADD 0,,1 TO C(E),
3752 ;UPDATE AC AND SKIP
3753 STOP^
3754 032550 254 04 0 00 032551 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3755 032551 324 00 0 00 032552 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3756 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3757 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 67-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0105
3758 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3759 032552 312 02 0 00 033502 CAME 2,[1] ;PASS IF E INCREMENTED CORRECTLY
3760 STOP^
3761 032553 254 04 0 00 032554 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3762 032554 324 00 0 00 032555 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3763 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3764 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3765 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3766 032555 312 01 0 00 033502 CAME 1,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
3767 STOP^
3768 032556 254 04 0 00 032557 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3769 032557 324 00 0 00 032560 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3770 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3771 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3772 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3773
3774 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 68
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0106
3775 ;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES
3776 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3777 ;THE NEST INSTRUCTION IF C(E) IS GREATER THAN 0
3778 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3779 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-2
3780 ;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE
3781 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1
3782 ;RESPECTIVELY
3783
3784 032560 200 00 0 00 033474 C54200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3785 032561 561 01 0 00 777776 HRROI 1,-2 ;PRELOAD E WITH -1,,-2
3786 032562 357 00 0 00 000001 AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E),
3787 ;AND NOT SKIP
3788 032563 334 00 0 00 000000 SKIPA ;PASS IF AOSG DID NOT SKIP
3789 STOP^
3790 032564 254 04 0 00 032565 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3791 032565 324 00 0 00 032566 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3792 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3793 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3794 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3795 032566 312 01 0 00 033462 CAME 1,[-1] ;PASS IF E INCREMENTED CORRECTLY
3796 STOP^
3797 032567 254 04 0 00 032570 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3798 032570 324 00 0 00 032571 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3799 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3800 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3801 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3802 032571 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED
3803 STOP^
3804 032572 254 04 0 00 032573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3805 032573 324 00 0 00 032574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3806 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3807 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3808 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3809
3810 ;**********
3811
3812 ;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES
3813 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3814 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0
3815 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3816 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=-1,,-1
3817 ;BEFORE INCREMENTING. HENCE, AOSG SHOULD NOT SKIP; AND THE
3818 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0
3819 ;RESPECTIVELY
3820
3821 032574 200 00 0 00 033474 C54210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3822 032575 474 01 0 00 000000 SETO 1, ;PRELOAD E WITH -1,,-1
3823 032576 357 00 0 00 000001 AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E),
3824 ;AND NOT SKIP
3825 032577 334 00 0 00 000000 SKIPA ;PASS IF AOSG DID NOT SKIP
3826 STOP^
3827 032600 254 04 0 00 032601 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3828 032601 324 00 0 00 032602 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3829 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 68-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0107
3830 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3831 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3832 032602 312 01 0 00 033501 CAME 1,[0] ;PASS IF E INCREMENTED CORRECTLY
3833 STOP^
3834 032603 254 04 0 00 032604 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3835 032604 324 00 0 00 032605 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3836 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3837 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3838 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3839 032605 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED
3840 STOP^
3841 032606 254 04 0 00 032607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3842 032607 324 00 0 00 032610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3843 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3844 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3845 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3846
3847 ;***********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 69
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL AOSX INSTRUCTIONS SEQ 0108
3848 ;THIS TEST VERIFIES THAT AOSG INCREMENTS C(E) BY 0,,1 AND PLACES
3849 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
3850 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0
3851 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
3852 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0
3853 ;BEFORE INCREMENTING. HENCE, AOSG SHOULD SKIP; AND THE
3854 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1
3855 ;RESPECTIVELY
3856
3857 032610 200 00 0 00 033474 C54220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
3858 032611 400 01 0 00 000000 SETZ 1, ;PRELOAD E WITH 0
3859 032612 357 00 0 00 000001 AOSG 0,1 ;*AOSG SHOULD ADD 0,,1 TO C(E),
3860 ;AND SKIP
3861 STOP^
3862 032613 254 04 0 00 032614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3863 032614 324 00 0 00 032615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3864 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3865 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3866 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3867 032615 312 01 0 00 033502 CAME 1,[1] ;PASS IF E INCREMENTED CORRECTLY
3868 STOP^
3869 032616 254 04 0 00 032617 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3870 032617 324 00 0 00 032620 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3871 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3872 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3873 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3874 032620 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED
3875 STOP^
3876 032621 254 04 0 00 032622 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3877 032622 324 00 0 00 032623 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3878 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3879 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3880 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3881
3882 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 70
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0109
3883 SUBTTL TEST OF MSCL SOJX INSTRUCTIONS
3884
3885 ;**********
3886
3887 ;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND
3888 ;PLACES THE RESTULT BACK INTO THE AC. THE RESULT IN THE AC IS
3889 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3890 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0.
3891 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJL
3892 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1
3893
3894 032623 201 17 0 00 000000 C54300: MOVEI 17,0 ;PRELOAD AC WITH 0
3895 032624 361 17 0 00 032626 SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC)
3896 ;AND JUMP
3897 STOP^
3898 032625 254 04 0 00 032626 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3899 032626 324 00 0 00 032627 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3900 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3901 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3902 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3903 032627 312 17 0 00 033462 CAME 17,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY
3904 STOP^
3905 032630 254 04 0 00 032631 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3906 032631 324 00 0 00 032632 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3907 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3908 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3909 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3910
3911 ;***********
3912
3913 ;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND
3914 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
3915 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3916 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0.
3917 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJL
3918 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0.
3919
3920 032632 201 17 0 00 000001 C54310: MOVEI 17,1 ;PRELOAD AC WITH 0,,1
3921 032633 361 17 0 00 032635 SOJL 17,.+2 ;*SOJL SHOULD SUBTRACT 0,,1 FROM C(AC)
3922 032634 334 00 0 00 000000 SKIPA ;PASS IF SOJL DID NOT JUMP
3923 STOP^
3924 032635 254 04 0 00 032636 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3925 032636 324 00 0 00 032637 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3926 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3927 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3928 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3929 032637 312 17 0 00 033501 CAME 17,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY
3930 STOP^
3931 032640 254 04 0 00 032641 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3932 032641 324 00 0 00 032642 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3933 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3934 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3935 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3936
3937 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 71
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0110
3938 ;THIS TEST VERIFIES THAT SOJL DECREMENTS C(AC) BY 0,,1 AND
3939 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
3940 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3941 ;SPECIFIED BY E IF C(AC) IS LESS THAN 0
3942 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJ
3943 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1
3944
3945 032642 201 17 0 00 000002 C54320: MOVEI 17,2 ;PRELOAD AC WITH 0,,2
3946 032643 361 17 0 00 032645 SOJL 17,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC)
3947 ;AND NOT JUMP.
3948 032644 334 00 0 00 000000 SKIPA ;PASS IF SOJL DID NOT JUMP
3949 STOP^
3950 032645 254 04 0 00 032646 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3951 032646 324 00 0 00 032647 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3952 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3953 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3954 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3955 032647 312 17 0 00 033502 CAME 17,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY
3956 STOP^
3957 032650 254 04 0 00 032651 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3958 032651 324 00 0 00 032652 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3959 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3960 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3961 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3962
3963 ;**********
3964
3965 ;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND
3966 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
3967 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3968 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0.
3969 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJE
3970 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1
3971
3972 032652 201 16 0 00 000000 C54400: MOVEI 16,0 ;PRELOAD AC WITH 0
3973 032653 362 16 0 00 032655 SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC)
3974 ;AND NOT JUMP.
3975 032654 334 00 0 00 000000 SKIPA ;PASS IF SOJE DID NOT JUMP
3976 STOP^
3977 032655 254 04 0 00 032656 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3978 032656 324 00 0 00 032657 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3979 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3980 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3981 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3982 032657 312 16 0 00 033462 CAME 16,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY
3983 STOP^
3984 032660 254 04 0 00 032661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
3985 032661 324 00 0 00 032662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
3986 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
3987 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
3988 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
3989
3990 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 72
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0111
3991 ;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND
3992 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
3993 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
3994 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0
3995 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJ
3996 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0
3997
3998 032662 201 16 0 00 000001 C54410: MOVEI 16,1 ;PRELOAD AC WITH 0,,1
3999 032663 362 16 0 00 032665 SOJE 16,.+2 ;*SOJE SHOULD SUBTRACT 0,,1 FROM C(AC)
4000 ;AND JUMP
4001 STOP^
4002 032664 254 04 0 00 032665 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4003 032665 324 00 0 00 032666 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4004 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4005 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4006 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4007 032666 312 16 0 00 033501 CAME 16,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY
4008 STOP^
4009 032667 254 04 0 00 032670 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4010 032670 324 00 0 00 032671 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4011 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4012 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4013 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4014
4015 ;**********
4016
4017 ;THIS TEST VERIFIES THAT SOJE DECREMENTS C(AC) BY 0,,1 AND
4018 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4019 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4020 ;SPECIFIED BY E IF C(AC) IS EQUAL TO 0.
4021 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJE
4022 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1
4023
4024 032671 201 16 0 00 000002 C54420: MOVEI 16,2 ;PRELOAD AC WITH 0,,2
4025 032672 362 16 0 00 032674 SOJE 16,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC)
4026 ;AND NOT JUMP.
4027 032673 334 00 0 00 000000 SKIPA ;PASS IF SOJE DID NOT JUMP
4028 STOP^
4029 032674 254 04 0 00 032675 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4030 032675 324 00 0 00 032676 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4031 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4032 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4033 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4034 032676 312 16 0 00 033502 CAME 16,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4035 STOP^
4036 032677 254 04 0 00 032700 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4037 032700 324 00 0 00 032701 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4038 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4039 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4040 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4041
4042 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 73
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0112
4043 ;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND
4044 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4045 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4046 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0
4047 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJLE
4048 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1
4049
4050 032701 201 15 0 00 000000 C54500: MOVEI 15,0 ;PRELOAD AC WITH 0
4051 032702 363 15 0 00 032704 SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC)
4052 ;AND JUMP
4053 STOP^
4054 032703 254 04 0 00 032704 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4055 032704 324 00 0 00 032705 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4056 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4057 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4058 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4059 032705 312 15 0 00 033462 CAME 15,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4060 STOP^
4061 032706 254 04 0 00 032707 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4062 032707 324 00 0 00 032710 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4063 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4064 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4065 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4066
4067 ;**********
4068
4069 ;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND
4070 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4071 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4072 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUALTO 0.
4073 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJLE
4074 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0
4075
4076 032710 201 15 0 00 000001 C54510: MOVEI 15,1 ;PRELOAD AC WITH 0,,1
4077 032711 363 15 0 00 032713 SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC)
4078 ;AND JUMP
4079 STOP^
4080 032712 254 04 0 00 032713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4081 032713 324 00 0 00 032714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4082 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4083 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4084 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4085 032714 312 15 0 00 033501 CAME 15,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY
4086 STOP^
4087 032715 254 04 0 00 032716 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4088 032716 324 00 0 00 032717 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4089 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4090 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4091 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4092
4093 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 74
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0113
4094 ;THIS TEST VERIFIES THAT SOJLE DECREMENTS C(AC) BY 0,,1 AND
4095 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4096 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4097 ;SPECIFIED BY E IF C(AC) IS LESS THAN OR EQUAL TO 0.
4098 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJLE
4099 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1
4100
4101 032717 201 15 0 00 000002 C54520: MOVEI 15,2 ;PRELOAD AC WITH 0,,2
4102 032720 363 15 0 00 032722 SOJLE 15,.+2 ;*SOJLE SHOULD SUBTRACT 0,,1 FROM C(AC)
4103 ;AND NOT JUMP
4104 032721 334 00 0 00 000000 SKIPA ;PASS IF SOJLE DID NOT JUMP
4105 STOP^
4106 032722 254 04 0 00 032723 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4107 032723 324 00 0 00 032724 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4108 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4109 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4110 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4111 032724 312 15 0 00 033502 CAME 15,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4112 STOP^
4113 032725 254 04 0 00 032726 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4114 032726 324 00 0 00 032727 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4115 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4116 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4117 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4118
4119 ;**********
4120
4121 ;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND
4122 ;PLACES THE RESULT INTO THE AC. THE RESULT IN THE AC IS
4123 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION
4124 ;SPECIFIED BY E
4125 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJA
4126 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1
4127
4128 032727 201 14 0 00 000000 C54600: MOVEI 14,0 ;PRELOAD AC WITH 0
4129 032730 364 14 0 00 032732 SOJA 14,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC)
4130 ;AND JUMP
4131 STOP^
4132 032731 254 04 0 00 032732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4133 032732 324 00 0 00 032733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4134 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4135 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4136 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4137 032733 312 14 0 00 033462 CAME 14,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4138 STOP^
4139 032734 254 04 0 00 032735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4140 032735 324 00 0 00 032736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4141 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4142 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4143 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4144
4145 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 75
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0114
4146 ;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND
4147 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4148 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION
4149 ;SPECIFIED BY E
4150 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJA
4151 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0
4152
4153 032736 201 14 0 00 000001 C54610: MOVEI 14,1 ;PRELOAD AC WITH 0,,1
4154 032737 364 14 0 00 032741 SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC)
4155 ;AND JUMP
4156 STOP^
4157 032740 254 04 0 00 032741 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4158 032741 324 00 0 00 032742 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4159 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4160 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4161 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4162 032742 312 14 0 00 033501 CAME 14,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY
4163 STOP^
4164 032743 254 04 0 00 032744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4165 032744 324 00 0 00 032745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4166 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4167 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4168 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4169
4170 ;**********
4171
4172 ;THIS TEST VERIFIES THAT SOJA DECREMENTS C(AC) BY 0,,1 AND
4173 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4174 ;COMPARED TO 0 AND THE PROGRAM ALWAYS JUMPS TO THE LOCATION
4175 ;SPECIFIED BY E
4176 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJA
4177 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1
4178
4179 032745 201 14 0 00 000002 C54620: MOVEI 14,2 ;PRELOAD AC WITH 0,,2
4180 032746 364 14 0 00 032750 SOJA 14,.+2 ;*SOJA SHOULD SUBTRACT 0,,1 FROM C(AC)
4181 ;AND JUMP
4182 STOP^
4183 032747 254 04 0 00 032750 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4184 032750 324 00 0 00 032751 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4185 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4186 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4187 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4188 032751 312 14 0 00 033502 CAME 14,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4189 STOP^
4190 032752 254 04 0 00 032753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4191 032753 324 00 0 00 032754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4192 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4193 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4194 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4195
4196 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 76
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0115
4197 ;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND
4198 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4199 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4200 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0
4201 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE, SOJGE
4202 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1
4203
4204 032754 201 13 0 00 000000 C54700: MOVEI 13,0 ;PRELOAD A C WITH 0
4205 032755 365 13 0 00 032757 SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT 0,,1 FROM C(AC)
4206 ;AND NOT JUMP
4207 032756 334 00 0 00 000000 SKIPA ;PASS IF SOJGE DID NOT JUMP
4208 STOP^
4209 032757 254 04 0 00 032760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4210 032760 324 00 0 00 032761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4211 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4212 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4213 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4214 032761 312 13 0 00 033462 CAME 13,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4215 STOP^
4216 032762 254 04 0 00 032763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4217 032763 324 00 0 00 032764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4221
4222 ;**********
4223
4224 ;THIS TEST VERIFIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND
4225 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4226 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4227 ;SPECIFIED BY E IF C(AC) IS GREATER THAN OR EQUAL TO 0
4228 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJGE
4229 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0
4230
4231 032764 201 13 0 00 000001 C54710: MOVEI 13,1 ;PRELOAD AC WITH 0,,1
4232 032765 365 13 0 00 032767 SOJGE 13,.+2 ;*SOJ SHOULD SUBTRACT 0,,1 FROM C(AC)
4233 ;AND JUMP
4234 STOP^
4235 032766 254 04 0 00 032767 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4236 032767 324 00 0 00 032770 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4237 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4238 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4239 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4240 032770 312 13 0 00 033501 CAME 13,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY
4241 STOP^
4242 032771 254 04 0 00 032772 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4243 032772 324 00 0 00 032773 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4244 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4245 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4246 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4247
4248 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 77
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0116
4249 ;THIS TEST VERIRIES THAT SOJGE DECREMENTS C(AC) BY 0,,1 AND PLACES THE
4250 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS COMPARED
4251 ;TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED BY E IF C(AC IS
4252 ;GREATER THAN OR EQUAL TO 0. IN THIS CASE, C(AC = 0,,2 BEFORE
4253 ;DECREMENTING. HENCE, SOJGE SHOULD JUMP AND THE RESULT IN THE AC SHOULD
4254 ;BE 0,,1.
4255
4256 032773 201 13 0 00 000002 C54720: MOVEI 13,2 ;PRELOAD AC WITH 0,,2
4257 032774 365 13 0 00 032776 SOJGE 13,.+2 ;*SOJGE SHOULD SUBTRACT0,,1 FROM C(AC)
4258 ;AND JUMP.
4259 STOP^
4260 032775 254 04 0 00 032776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4261 032776 324 00 0 00 032777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4262 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4263 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4264 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4265 032777 312 13 0 00 033502 CAME 13,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4266 STOP^
4267 033000 254 04 0 00 033001 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4268 033001 324 00 0 00 033002 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4269 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4270 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4271 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4272
4273 ;**********
4274
4275 ;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND
4276 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4277 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4278 ;SPECIFIED BY E IF C(AC) IS NON-ZERO.
4279 ;IN THIS CASE, C(AC)=0 BEFORE DECREMENTING. HENCE,SOJN
4280 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1.
4281
4282 033002 201 12 0 00 000000 C55000: MOVEI 12,0 ;PRELOAD AC WITH 0
4283 033003 366 12 0 00 033005 SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC)
4284 ;AND JUMP.
4285 STOP^
4286 033004 254 04 0 00 033005 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4287 033005 324 00 0 00 033006 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4288 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4289 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4290 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4291 033006 312 12 0 00 033462 CAME 12,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4292 STOP^
4293 033007 254 04 0 00 033010 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4294 033010 324 00 0 00 033011 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4295 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4296 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4297 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4298
4299 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 78
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0117
4300 ;THIS TEST VERIRIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND
4301 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4302 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION SPECIFIED
4303 ;BY E IF C(AC) IS NON-ZERO.
4304 ;IN THIS CASE, C(AC) = 0,,1 BEFORE DECREMENTING. HENCE, SOJN
4305 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0.
4306
4307 033011 201 12 0 00 000001 C55010: MOVEI 12,1 ;PRELOAD AC WITH 0,,1
4308 033012 366 12 0 00 033014 SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC)
4309 ;AND NOT JUMP.
4310 033013 334 00 0 00 000000 SKIPA ;PASS IF SOJN DID NOT JUMP
4311 STOP^
4312 033014 254 04 0 00 033015 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4313 033015 324 00 0 00 033016 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4314 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4315 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4316 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4317 033016 312 12 0 00 033501 CAME 12,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY
4318 STOP^
4319 033017 254 04 0 00 033020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4320 033020 324 00 0 00 033021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4321 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4322 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4323 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4324
4325 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 79
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0118
4326 ;THIS TEST VERIFIES THAT SOJN DECREMENTS C(AC) BY 0,,1 AND
4327 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4328 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4329 ;SPECIFIED BY E IF C(AC) IS NON-ZERO.
4330 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJN
4331 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1.
4332
4333 033021 201 12 0 00 000002 C55020: MOVEI 12,2 ;PRELOAD AC WITH 0,,2
4334 033022 366 12 0 00 033024 SOJN 12,.+2 ;*SOJN SHOULD SUBTRACT 0,,1 FROM C(AC)
4335 ;AND JUMP.
4336 STOP^
4337 033023 254 04 0 00 033024 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4338 033024 324 00 0 00 033025 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4339 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4340 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4341 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4342 033025 312 12 0 00 033502 CAME 12,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4343 STOP^
4344 033026 254 04 0 00 033027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4345 033027 324 00 0 00 033030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4346 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4347 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4348 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4349
4350 ;**********
4351
4352 ;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND
4353 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4354 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4355 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0.
4356 ;IN THIS CASE, C(AC) = 0 BEFORE DECREMENTING. HENCE, SOJG
4357 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE -1,,-1.
4358
4359 033030 201 11 0 00 000000 C55100: MOVEI 11,0 ;PRELOAD AC WITH 0
4360 033031 367 11 0 00 033033 SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC)
4361 ;AND NOT JUMP.
4362 033032 334 00 0 00 000000 SKIPA ;PASS IF SOJG DID NOT JUMP
4363 STOP^
4364 033033 254 04 0 00 033034 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4365 033034 324 00 0 00 033035 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4366 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4367 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4368 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4369 033035 312 11 0 00 033462 CAME 11,[-1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4370 STOP^
4371 033036 254 04 0 00 033037 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4372 033037 324 00 0 00 033040 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4373 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4374 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4375 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4376
4377 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 80
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOJX INSTRUCTIONS SEQ 0119
4378 ;THIS TEST VERIRIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND
4379 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4380 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4381 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0.
4382 ;IN THIS CASE, C(AC)=0,,1 BEFORE DECREMENTING. HENCE, SOJG
4383 ;SHOULD NOT JUMP AND THE RESULT IN THE AC SHOULD BE 0.
4384
4385 033040 201 11 0 00 000001 C55110: MOVEI 11,1 ;PRELOAD AC WITH 0,,1
4386 033041 367 11 0 00 033043 SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT 0,,1 FROM C(AC)
4387 ;AND NOT JUMP.
4388 033042 334 00 0 00 000000 SKIPA ;PASS IF SOJG DID NOT JUMP
4389 STOP^
4390 033043 254 04 0 00 033044 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4391 033044 324 00 0 00 033045 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4392 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4393 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4394 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4395 033045 312 11 0 00 033501 CAME 11,[0] ;PASS IF C(AC) DECREMENTED CORRECTLY
4396 STOP^
4397 033046 254 04 0 00 033047 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4398 033047 324 00 0 00 033050 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4399 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4400 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4401 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4402
4403 ;**********
4404
4405 ;THIS TEST VERIFIES THAT SOJG DECREMENTS C(AC) BY 0,,1 AND
4406 ;PLACES THE RESULT BACK INTO THE AC. THE RESULT IN THE AC IS
4407 ;COMPARED TO 0 AND THE PROGRAM JUMPS TO THE LOCATION
4408 ;SPECIFIED BY E IF C(AC) IS GREATER THAN 0.
4409 ;IN THIS CASE, C(AC)=0,,2 BEFORE DECREMENTING. HENCE, SOJG
4410 ;SHOULD JUMP AND THE RESULT IN THE AC SHOULD BE 0,,1.
4411
4412 033050 201 11 0 00 000002 C55120: MOVEI 11,2 ;PRELOAD AC WITH 0,,2
4413 033051 367 11 0 00 033053 SOJG 11,.+2 ;*SOJG SHOULD SUBTRACT O,,1 FROM C(AC)
4414 ;AND JUMP.
4415 STOP^
4416 033052 254 04 0 00 033053 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4417 033053 324 00 0 00 033054 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4418 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4419 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4420 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4421 033054 312 11 0 00 033502 CAME 11,[1] ;PASS IF C(AC) DECREMENTED CORRECTLY
4422 STOP^
4423 033055 254 04 0 00 033056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4424 033056 324 00 0 00 033057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4425 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4426 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4427 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4428
4429 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 81
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0120
4430 SUBTTL TEST OF MSCL SOSX INSTRUCTIONS
4431
4432 ;**********
4433
4434 ;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES
4435 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4436 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0.
4437 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4438 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0
4439 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD SKIP; AND THE
4440 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND -1,,-1
4441 ;RESPECTIVELY.
4442
4443 033057 200 00 0 00 033474 C55200: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4444 033060 201 01 0 00 000000 MOVEI 1,0 ;PRELOAD E WITH 0
4445 033061 371 00 0 00 000001 SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E)
4446 ;AND SKIP
4447 STOP^
4448 033062 254 04 0 00 033063 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4449 033063 324 00 0 00 033064 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4450 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4451 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4452 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4453 033064 312 01 0 00 033462 CAME 1,[-1] ;PASS IF E DECREMENTED CORRECTLY
4454 STOP^
4455 033065 254 04 0 00 033066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4456 033066 324 00 0 00 033067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4457 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4458 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4459 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4460 033067 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED
4461 STOP^
4462 033070 254 04 0 00 033071 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4463 033071 324 00 0 00 033072 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4464 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4465 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4466 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4467
4468 ;**********
4469
4470 ;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES
4471 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4472 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0.
4473 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4474 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1
4475 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE
4476 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0
4477 ;RESPECTIVELY.
4478
4479 033072 200 00 0 00 033474 C55210: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4480 033073 201 01 0 00 000001 MOVEI 1,1 ;PRELOAD E WITH 0,,1
4481 033074 371 00 0 00 000001 SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E),
4482 ;AND NOT SKIP.
4483 033075 334 00 0 00 000000 SKIPA ;PASS IF SOSL DID NOT SKIP
4484 STOP^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 81-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0121
4485 033076 254 04 0 00 033077 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4486 033077 324 00 0 00 033100 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4487 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4488 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4489 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4490 033100 312 01 0 00 033501 CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY
4491 STOP^
4492 033101 254 04 0 00 033102 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4493 033102 324 00 0 00 033103 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4494 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4495 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4496 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4497 033103 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED
4498 STOP^
4499 033104 254 04 0 00 033105 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4500 033105 324 00 0 00 033106 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4501 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4502 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4503 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4504
4505 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 82
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0122
4506 ;THIS TEST VERIFIES THAT SOSL DECREMENTS C(E) BY 0,,1 AND PLACES
4507 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4508 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0.
4509 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4510 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E)=0,,1
4511 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE
4512 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0
4513 ;RESPECTIVELY.
4514
4515 033106 200 00 0 00 033474 C55211: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4516 033107 201 01 0 00 000001 MOVEI 1,1 ;PRELOAD E WITH 0,,1
4517 033110 202 01 0 00 033125 MOVEM 1,E55211
4518 033111 371 00 0 00 033125 SOSL 0,E55211 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E),
4519 ;AND NOT SKIP.
4520 033112 334 00 0 00 000000 SKIPA ;PASS IF SOSL DID NOT SKIP
4521 STOP^
4522 033113 254 04 0 00 033114 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4523 033114 324 00 0 00 033115 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4524 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4525 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4526 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4527 033115 200 01 0 00 033125 MOVE 1,E55211
4528 033116 312 01 0 00 033501 CAME 1,[0] ;PASS IF E DECREMENTED CORRECTLY
4529 STOP^
4530 033117 254 04 0 00 033120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4531 033120 324 00 0 00 033121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4532 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4533 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4534 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4535 033121 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF C(AC) WAS NOT MODIFIED
4536 STOP^
4537 033122 254 04 0 00 033123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4538 033123 324 00 0 00 033124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4539 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4540 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4541 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4542
4543 033124 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST
4544 033125 000000 000000 E55211: 0 ;TEST WORD MEMORY
4545
4546 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 83
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0123
4547 ;THIS TEST VERIFIES THAT SOS DECREMENTS C(E) BY 0,,1 AND PLACES
4548 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4549 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN 0.
4550 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4551 ;IN THIS CASE, AC=0, C(AC)=707070,,707070 AND C(E) 0,,2
4552 ;BEFORE INCREMENTING. HENCE, SOSL SHOULD NOT SKIP; AND THE
4553 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0,,1
4554 ;RESPECTIVELY.
4555
4556 033126 200 00 0 00 033474 C55220: MOVE 0,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4557 033127 201 01 0 00 000002 MOVEI 1,2 ;PRELOAD E WITH 0,,2
4558 033130 371 00 0 00 000001 SOSL 0,1 ;*SOSL SHOULD SUBTRACT 0,,1 FROM C(E),
4559 ;AND NOT SKIP
4560
4561 033131 334 00 0 00 000000 SKIPA ;PASS IF SOSL DID NOT SKIP
4562 STOP^
4563 033132 254 04 0 00 033133 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4564 033133 324 00 0 00 033134 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4565 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4566 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4567 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4568 033134 312 01 0 00 033502 CAME 1,[1] ;PASS IF E DECREMENTED CORRECTLY
4569 STOP^
4570 033135 254 04 0 00 033136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4571 033136 324 00 0 00 033137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4572 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4573 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4574 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4575 033137 312 00 0 00 033474 CAME 0,[707070,,707070] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4576 STOP^
4577 033140 254 04 0 00 033141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4578 033141 324 00 0 00 033142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4579 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4580 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4581 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4582
4583 ;**********
4584
4585 ;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES
4586 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4587 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0
4588 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4589 ;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0
4590 ;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE
4591 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
4592 ;RESPECTIVELY.
4593
4594 033142 200 10 0 00 033474 C55300: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4595 033143 201 11 0 00 000000 MOVEI 11,0 ;PRELOAD E WITH 0
4596 033144 372 10 0 00 000011 SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E),
4597 ;UPDATE AC AND NOT SKIP
4598
4599 033145 334 00 0 00 000000 SKIPA ;PASS IF SOSE DID NOT SKIP
4600 STOP^
4601 033146 254 04 0 00 033147 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 83-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0124
4602 033147 324 00 0 00 033150 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4603 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4604 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4605 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4606 033150 312 11 0 00 033462 CAME 11,[-1] ;PASS IF E DECREMENTED CORRECTLY
4607 STOP^
4608 033151 254 04 0 00 033152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4609 033152 324 00 0 00 033153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4610 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4611 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4612 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4613 033153 312 10 0 00 033462 CAME 10,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4614 STOP^
4615 033154 254 04 0 00 033155 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4616 033155 324 00 0 00 033156 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4617 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4618 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4619 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4620
4621 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 84
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0125
4622 ;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,,1 AND PLACES
4623 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4624 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0
4625 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4626 ;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,1
4627 ;BEFORE INCREMENTING. HENCE, SOSE SHOULD SKIP ; AND THE
4628 ;FINAL RESULTS IN AC AND E SHOULD BE 707070,,707070 AND 0
4629 ;RESPECTIVELY.
4630
4631 033156 200 10 0 00 033474 C55310: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4632 033157 201 11 0 00 000001 MOVEI 11,1 ;PRELOAD E WITH 0,,1
4633 033160 372 10 0 00 000011 SOSE 10,11 ;*SOS SHOULD SUBTRACT 0,,1 FROM C(E)
4634 ;UPDATE AC AND SKIP
4635 STOP^
4636 033161 254 04 0 00 033162 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4637 033162 324 00 0 00 033163 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4638 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4639 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4640 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4641 033163 312 11 0 00 033501 CAME 11,[0] ;PASS IF E DECREMENTED CORRECTLY
4642 STOP^
4643 033164 254 04 0 00 033165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4644 033165 324 00 0 00 033166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4645 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4646 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4647 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4648 033166 312 10 0 00 033501 CAME 10,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4649 STOP^
4650 033167 254 04 0 00 033170 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4651 033170 324 00 0 00 033171 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4652 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4653 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4654 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4655
4656 ;**********
4657
4658 ;THIS TEST VERIFIES THAT SOSE DECREMENTS C(E) BY 0,11 AND PLACES
4659 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4660 ;THE NEXT INSTRUCTION IF C(E) IS EQUAL TO 0.
4661 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4662 ;IN THIS CASE, AC=10, C(AC)=707070,,707070 AND C(E)=0,,2
4663 ;BEFORE INCREMENTING. HENCE, SOSE SHOULD NOT SKIP ; AND THE
4664 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
4665 ;RESPECTIVELY.
4666
4667 033171 200 10 0 00 033474 C55320: MOVE 10,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4668 033172 201 11 0 00 000002 MOVEI 11,2 ;PRELOAD E WITH 0,,2
4669 033173 372 10 0 00 000011 SOSE 10,11 ;*SOSE SHOULD SUBTRACT 0,,1 FROM C(E),
4670 ;UPDATE AC AND NOT SKIP
4671
4672 033174 334 00 0 00 000000 SKIPA ;PASS IF SOSE DID NOT SKIP
4673 STOP^
4674 033175 254 04 0 00 033176 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4675 033176 324 00 0 00 033177 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4676 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 84-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0126
4677 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4678 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4679 033177 312 11 0 00 033502 CAME 11,[1] ;PASS IF E DECREMENTED CORRECTLY
4680 STOP^
4681 033200 254 04 0 00 033201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4682 033201 324 00 0 00 033202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4683 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4684 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4685 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4686 033202 312 10 0 00 033502 CAME 10,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4687 STOP^
4688 033203 254 04 0 00 033204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4689 033204 324 00 0 00 033205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4690 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4691 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4692 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4693
4694 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 85
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0127
4695 ;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES
4696 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4697 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0.
4698 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4699 ;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0
4700 ;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE
4701 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
4702 ;RESPECTIVELY.
4703
4704 033205 200 07 0 00 033474 C55400: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4705 033206 201 10 0 00 000000 MOVEI 10,0 ;PRELOAD E WITH 0
4706 033207 373 07 0 00 000010 SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E),
4707 ;UPDATE AC AND SKIP
4708 STOP^
4709 033210 254 04 0 00 033211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4710 033211 324 00 0 00 033212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4714 033212 312 10 0 00 033462 CAME 10,[-1] ;PASS IF E DECREMENTED CORRECTLY
4715 STOP^
4716 033213 254 04 0 00 033214 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4717 033214 324 00 0 00 033215 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4718 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4719 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4720 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4721 033215 312 07 0 00 033462 CAME 7,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4722 STOP^
4723 033216 254 04 0 00 033217 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4724 033217 324 00 0 00 033220 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4725 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4726 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4727 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4728
4729 ;**********
4730
4731 ;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES
4732 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4733 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0.
4734 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4735 ;IN THIS CASE, AC=7, C(AC)=070707,,070707 AND C(E)=0,,1
4736 ;BEFORE INCREMENTING. HENCE, SOSLE SHOULD SKIP ; AND THE
4737 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
4738 ;RESPECTIVELY.
4739
4740 033220 200 07 0 00 033474 C55410: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4741 033221 201 10 0 00 000001 MOVEI 10,1 ;PRELOAD E WITH 0,,1
4742 033222 373 07 0 00 000010 SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E),
4743 ;UPDATE AC AND SKIP
4744 STOP^
4745 033223 254 04 0 00 033224 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4746 033224 324 00 0 00 033225 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4747 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4748 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4749 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 85-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0128
4750 033225 312 10 0 00 033501 CAME 10,[0] ;PASS IF E DECREMENTED CORRECTLY
4751 STOP^
4752 033226 254 04 0 00 033227 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4753 033227 324 00 0 00 033230 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4754 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4755 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4756 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4757 033230 312 07 0 00 033501 CAME 7,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4758 STOP^
4759 033231 254 04 0 00 033232 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4760 033232 324 00 0 00 033233 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4761 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4762 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4763 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4764
4765 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 86
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0129
4766 ;THIS TEST VERIFIES THAT SOSLE DECREMENTS C(E) BY 0,,1 AND PLACES
4767 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4768 ;THE NEXT INSTRUCTION IF C(E) IS LESS THAN OR EQUAL TO 0.
4769 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4770 ;IN THIS CASE, AC=7, C(AC)=707070,,707070 AND C(E)=0,,2
4771 ;BEFORE INCREMENTING. HENCE, SOSLE SHOULD NOT SKIP; AND THE
4772 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
4773 ;RESPECTIVELY.
4774
4775 033233 200 07 0 00 033474 C55420: MOVE 7,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4776 033234 201 10 0 00 000002 MOVEI 10,2 ;PRELOAD E WITH 0,,2
4777 033235 373 07 0 00 000010 SOSLE 7,10 ;*SOSLE SHOULD SUBTRACT 0,,1 FROM C(E),
4778 ;UPDATE AC AND NOT SKIP
4779 033236 334 00 0 00 000000 SKIPA ;PASS IF SOSLE DID NOT SKIP
4780 STOP^
4781 033237 254 04 0 00 033240 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4782 033240 324 00 0 00 033241 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4783 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4784 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4785 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4786 033241 312 10 0 00 033502 CAME 10,[1] ;PASS IF E DECREMENTED CORRECTLY
4787 STOP^
4788 033242 254 04 0 00 033243 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4789 033243 324 00 0 00 033244 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4790 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4791 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4792 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4793 033244 312 07 0 00 033502 CAME 7,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4794 STOP^
4795 033245 254 04 0 00 033246 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4796 033246 324 00 0 00 033247 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4797 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4798 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4799 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4800
4801 ;**********
4802
4803 ;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES
4804 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS
4805 ;THE NEXT INSTRUCTION.
4806 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4807 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0
4808 ;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE
4809 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
4810 ;RESPECTIVELY.
4811
4812 033247 200 06 0 00 033474 C55500: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4813 033250 201 07 0 00 000000 MOVEI 7,0 ;PRELOAD E WITH 0
4814 033251 374 06 0 00 000007 SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E),
4815 ;UPDATE AC AND SKIP
4816 STOP^
4817 033252 254 04 0 00 033253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4818 033253 324 00 0 00 033254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4819 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4820 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 86-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0130
4821 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4822 033254 312 07 0 00 033462 CAME 7,[-1] ;PASS IF E DECREMENTED CORRECTLY
4823 STOP^
4824 033255 254 04 0 00 033256 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4825 033256 324 00 0 00 033257 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4826 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4827 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4828 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4829 033257 312 06 0 00 033462 CAME 6,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4830 STOP^
4831 033260 254 04 0 00 033261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4832 033261 324 00 0 00 033262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4833 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4834 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4835 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4836
4837 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 87
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0131
4838 ;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES
4839 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS
4840 ;THE NEXT INSTRUCTION.
4841 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THEAC.
4842 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,1
4843 ;BEFORE INCREMENTING. HENCE, SOSA SHOULD BE 0 AND 0
4844 ;RESPECTIVELY.
4845
4846 033262 200 06 0 00 033474 C55510: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4847 033263 201 07 0 00 000001 MOVEI 7,1 ;PRELOAD E WITH 0,,1
4848 033264 374 06 0 00 000007 SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E),
4849 ;UPDATE AC AND SKIP
4850 STOP^
4851 033265 254 04 0 00 033266 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4852 033266 324 00 0 00 033267 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4853 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4854 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4855 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4856 033267 312 07 0 00 033501 CAME 7,[0] ;PASS IF E DECREMENTED CORRECTLY
4857 STOP^
4858 033270 254 04 0 00 033271 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4859 033271 324 00 0 00 033272 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4860 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4861 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4862 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4863 033272 312 06 0 00 033501 CAME 6,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4864 STOP^
4865 033273 254 04 0 00 033274 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4866 033274 324 00 0 00 033275 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4867 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4868 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4869 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4870
4871 ;**********
4872
4873 ;THIS TEST VERIFIES THAT SOSA DECREMENTS C(E) BY 0,,1 AND PLACES
4874 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND ALWAYS SKIPS
4875 ;THE NEXT INSTRUCTION.
4876 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4877 ;IN THIS CASE, AC=6, C(AC)=707070,,707070 AND C(E)=0,,2
4878 ;BEFORE INCREMENTING. HENCE, SOSA SHOULD SKIP ; AND THE
4879 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
4880 ;RESPECTIVELY.
4881
4882 033275 200 06 0 00 033474 C55520: MOVE 6,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4883 033276 201 07 0 00 000002 MOVEI 7,2 ;PRELOAD E WITH 0,,2
4884 033277 374 06 0 00 000007 SOSA 6,7 ;*SOSA SHOULD SUBTRACT 0,,1 FROM C(E),
4885 ;UPDATE AC AND SKIP
4886 STOP^
4887 033300 254 04 0 00 033301 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4888 033301 324 00 0 00 033302 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4889 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4890 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4891 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4892 033302 312 07 0 00 033502 CAME 7,[1] ;PASS IF E DECREMENTED CORRECTLY
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 87-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0132
4893 STOP^
4894 033303 254 04 0 00 033304 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4895 033304 324 00 0 00 033305 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4896 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4897 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4898 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4899 033305 312 06 0 00 033502 CAME 6,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4900 STOP^
4901 033306 254 04 0 00 033307 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4902 033307 324 00 0 00 033310 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4903 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4904 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4905 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4906
4907 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 88
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0133
4908 ;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES
4909 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4910 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0.
4911 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4912 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0
4913 ;BEFORE INCREMENTING. HENCE, SOSGE SHOULD NOT SKIP ; AND THE
4914 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
4915 ;RESPECTIVELY.
4916
4917 033310 200 05 0 00 033474 C55600: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4918 033311 201 06 0 00 000000 MOVEI 6,0 ;PRELOAD E WITH 0
4919 033312 375 05 0 00 000006 SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E),
4920 ;UPDATE AC AND NOT SKIP
4921 033313 334 00 0 00 000000 SKIPA ;PASS IF SOSGE DID NOT SKIP
4922 STOP^
4923 033314 254 04 0 00 033315 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4924 033315 324 00 0 00 033316 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4925 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4926 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4927 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4928 033316 312 06 0 00 033462 CAME 6,[-1] ;PASS IF E DECREMENTED CORRECTLY
4929 STOP^
4930 033317 254 04 0 00 033320 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4931 033320 324 00 0 00 033321 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4932 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4933 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4934 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4935 033321 312 05 0 00 033462 CAME 5,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4936 STOP^
4937 033322 254 04 0 00 033323 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4938 033323 324 00 0 00 033324 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4939 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4940 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4941 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4942
4943 ;**********
4944
4945 ;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES
4946 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4947 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0.
4948 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4949 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,1
4950 ;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE
4951 ;FINAL RESULTS IN ACAND E SHOULD BE 0 AND 0
4952 ;RESPECTIVELY.
4953
4954 033324 200 05 0 00 033474 C55610: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4955 033325 201 06 0 00 000001 MOVEI 6,1 ;PRELOAD E WITH 0,,1
4956 033326 375 05 0 00 000006 SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E),
4957 ;UPDATE AC AND SKIP
4958 STOP^
4959 033327 254 04 0 00 033330 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4960 033330 324 00 0 00 033331 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4961 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4962 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 88-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0134
4963 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4964 033331 312 06 0 00 033501 CAME 6,[0] ;PASS IF E DECREMENTED CORRECTLY
4965 STOP^
4966 033332 254 04 0 00 033333 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4967 033333 324 00 0 00 033334 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4968 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4969 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4970 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4971 033334 312 05 0 00 033501 CAME 5,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
4972 STOP^
4973 033335 254 04 0 00 033336 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4974 033336 324 00 0 00 033337 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4975 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4976 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4977 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4978
4979 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 89
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0135
4980 ;THIS TEST VERIFIES THAT SOSGE DECREMENTS C(E) BY 0,,1 AND PLACES
4981 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
4982 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN OR EQUAL TO 0
4983 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
4984 ;IN THIS CASE, AC=5, C(AC)=707070,,707070 AND C(E)=0,,2
4985 ;BEFORE INCREMENTING. HENCE, SOSGE SHOULD SKIP ; AND THE
4986 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
4987 ;RESPECTIVELY.
4988
4989 033337 200 05 0 00 033474 C55620: MOVE 5,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
4990 033340 201 06 0 00 000002 MOVEI 6,2 ;PRELOAD E WITH 0,,2
4991 033341 375 05 0 00 000006 SOSGE 5,6 ;*SOSGE SHOULD SUBTRACT 0,,1 FROM C(E),
4992 ;UPDATE AC AND SKIP
4993 STOP^
4994 033342 254 04 0 00 033343 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
4995 033343 324 00 0 00 033344 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
4996 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
4997 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
4998 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
4999 033344 312 06 0 00 033502 CAME 6,[1] ;PASS IF E DECREMENTED CORRECTLY
5000 STOP^
5001 033345 254 04 0 00 033346 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5002 033346 324 00 0 00 033347 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5003 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5004 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5005 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5006 033347 312 05 0 00 033502 CAME 5,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
5007 STOP^
5008 033350 254 04 0 00 033351 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5009 033351 324 00 0 00 033352 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5010 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5011 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5012 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5013
5014 ;**********
5015
5016 ;THIS TEST VERIFIES SOSN DECREMENTS C(E) BY 0,,1 AND PLACES
5017 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
5018 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO
5019 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
5020 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0
5021 ;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE
5022 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
5023 ;RESPECTIVELY.
5024
5025 033352 200 04 0 00 033474 C55700: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
5026 033353 201 05 0 00 000000 MOVEI 5,0 ;PRELOAD E WITH 0
5027 033354 376 04 0 00 000005 SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E),
5028 ;UPDATE AC AND SKIP
5029 STOP^
5030 033355 254 04 0 00 033356 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5031 033356 324 00 0 00 033357 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5032 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5033 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5034 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 89-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0136
5035 033357 312 05 0 00 033462 CAME 5,[-1] ;PASS IF E DECREMENTED CORRECTLY
5036 STOP^
5037 033360 254 04 0 00 033361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5038 033361 324 00 0 00 033362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5039 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5040 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5041 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5042 033362 312 04 0 00 033462 CAME 4,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
5043 STOP^
5044 033363 254 04 0 00 033364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5045 033364 324 00 0 00 033365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5046 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5047 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5048 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5049
5050 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 90
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0137
5051 ;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES
5052 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
5053 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO
5054 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC
5055 ;IN THIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,1
5056 ;BEFORE INCREMENTING. HENCE, SOSN SHOULD NOT SKIP ; AND THE
5057 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
5058 ;RESPECTIVELY.
5059
5060 033365 200 04 0 00 033474 C55710: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
5061 033366 201 05 0 00 000001 MOVEI 5,1 ;PRELOAD E WITH 0,,1
5062 033367 376 04 0 00 000005 SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E),
5063 ;UPDATE AC AND NOT SKIP
5064 033370 334 00 0 00 000000 SKIPA ;PASS IF SOSN DID NOT SKIP
5065 STOP^
5066 033371 254 04 0 00 033372 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5067 033372 324 00 0 00 033373 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5068 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5069 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5070 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5071 033373 312 05 0 00 033501 CAME 5,[0] ;PASS IF E DECREMENTED CORRECTLY
5072 STOP^
5073 033374 254 04 0 00 033375 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5074 033375 324 00 0 00 033376 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5075 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5076 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5077 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5078 033376 312 04 0 00 033501 CAME 4,[0] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
5079 STOP^
5080 033377 254 04 0 00 033400 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5081 033400 324 00 0 00 033401 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5082 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5083 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5084 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5085
5086 ;**********
5087
5088 ;THIS TEST VERIFIES THAT SOSN DECREMENTS C(E) BY 0,,1 AND PLACES
5089 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
5090 ;THE NEXT INSTRUCTION IF C(E) IS NON-ZERO
5091 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
5092 ;INtTHIS CASE, AC=4, C(AC)=707070,,707070 AND C(E)=0,,2
5093 ;BEFORE INCREMENTING. HENCE, SOSN SHOULD SKIP ; AND THE
5094 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 0,,1
5095 ;RESPECTIVELY
5096
5097 033401 200 04 0 00 033474 C55720: MOVE 4,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
5098 033402 201 05 0 00 000002 MOVEI 5,2 ;PRELOAD E WITH 0,,2
5099 033403 376 04 0 00 000005 SOSN 4,5 ;*SOSN SHOULD SUBTRACT 0,,1 FROM C(E),
5100 ;UPDATE AC AND SKIP
5101 STOP^
5102 033404 254 04 0 00 033405 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5103 033405 324 00 0 00 033406 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5104 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5105 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 90-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0138
5106 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5107 033406 312 05 0 00 033502 CAME 5,[1] ;PASS IF E DECREMENTED CORRECTLY
5108 STOP^
5109 033407 254 04 0 00 033410 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5110 033410 324 00 0 00 033411 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5111 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5112 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5113 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5114 033411 312 04 0 00 033502 CAME 4,[1] ;PASS IF ACWAS UPDATED IF AC NON-ZERO
5115 STOP^
5116 033412 254 04 0 00 033413 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5117 033413 324 00 0 00 033414 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5118 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5119 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5120 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5121
5122 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 91
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0139
5123 ;THIS TEST VERIFIESTHAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES
5124 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
5125 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0
5126 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
5127 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0
5128 ;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE
5129 ;FINAL RESULTS IN AC AND E SHOULD BE -1,,-1 AND -1,,-1
5130 ;RESPECTIVELY.
5131
5132 033414 200 03 0 00 033474 C56000: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
5133 033415 201 04 0 00 000000 MOVEI 4,0 ;PRELOAD E WITH 0
5134 033416 377 03 0 00 000004 SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E),
5135 ;UPDATE AC AND NOT SKIP
5136 033417 334 00 0 00 000000 SKIPA ;PASS IF SOSG DID NOT SKIP
5137 STOP^
5138 033420 254 04 0 00 033421 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5139 033421 324 00 0 00 033422 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5140 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5141 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5142 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5143 033422 312 04 0 00 033462 CAME 4,[-1] ;PASS IF E DECREMENTED CORRECTLY
5144 STOP^
5145 033423 254 04 0 00 033424 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5146 033424 324 00 0 00 033425 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5147 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5148 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5149 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5150 033425 312 03 0 00 033462 CAME 3,[-1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
5151 STOP^
5152 033426 254 04 0 00 033427 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5153 033427 324 00 0 00 033430 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5154 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5155 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5156 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5157
5158 ;**********
5159
5160 ;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES
5161 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
5162 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0.
5163 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
5164 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,1
5165 ;BEFORE INCREMENTING. HENCE, SOSG SHOULD NOT SKIP ; AND THE
5166 ;FINAL RESULTS IN AC AND E SHOULD BE 0 AND 0
5167 ;RESPECTIVELY.
5168
5169 033430 200 03 0 00 033474 C56010: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
5170 033431 201 04 0 00 000001 MOVEI 4,1 ;PRELOAD E WITH 0,,1
5171 033432 377 03 0 00 000004 SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E),
5172 ;UPDATE AC AND NOT SKIP
5173 033433 334 00 0 00 000000 SKIPA ;PASS IF SOSG DID NOT SKIP
5174 STOP^
5175 033434 254 04 0 00 033435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5176 033435 324 00 0 00 033436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 91-1
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0140
5178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5180 033436 312 04 0 00 033501 CAME 4,[0] ;PASS IF E DECREMENTED CORRECTLY
5181 STOP^
5182 033437 254 04 0 00 033440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5183 033440 324 00 0 00 033441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5184 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5185 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5186 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5187 033441 312 03 0 00 033501 CAME 3,[0] ;PASS IF AC WAS UPDATED IS AC NON-ZERO
5188 STOP^
5189 033442 254 04 0 00 033443 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5190 033443 324 00 0 00 033444 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5191 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5192 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5193 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5194
5195 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 92
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0141
5196 ;THIS TEST VERIFIES THAT SOSG DECREMENTS C(E) BY 0,,1 AND PLACES
5197 ;THE RESULT INTO E. THE RESULT IN E IS COMPARED TO 0 AND SKIPS
5198 ;THE NEXT INSTRUCTION IF C(E) IS GREATER THAN 0
5199 ;IF THE AC IS NON-ZERO, THE RESULT IS ALSO PLACED INTO THE AC.
5200 ;IN THIS CASE, AC=3, C(AC)=707070,,707070 AND C(E)=0,,2
5201 ;BEFORE INCREMENTING. HENCE, SOSG SHOULD SKIP ; AND THE
5202 ;FINAL RESULTS IN AC AND E SHOULD BE 0,,1 AND 011,
5203 ;RESPECTIVELY.
5204
5205 033444 200 03 0 00 033474 C56020: MOVE 3,[707070,,707070] ;PRELOAD AC WITH 707070,,707070
5206 033445 201 04 0 00 000002 MOVEI 4,2 ;PRELOAD E WITH 0,,2
5207 033446 377 03 0 00 000004 SOSG 3,4 ;*SOSG SHOULD SUBTRACT 0,,1 FROM C(E),
5208 ;UPDATE AC AND SKIP
5209 STOP^
5210 033447 254 04 0 00 033450 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5211 033450 324 00 0 00 033451 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5212 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5213 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5214 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5215 033451 312 04 0 00 033502 CAME 4,[1] ;PASS IF E DECREMENTED CORRECTLY
5216 STOP^
5217 033452 254 04 0 00 033453 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5218 033453 324 00 0 00 033454 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5222 033454 312 03 0 00 033502 CAME 3,[1] ;PASS IF AC WAS UPDATED IF AC NON-ZERO
5223 STOP^
5224 033455 254 04 0 00 033456 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
5225 033456 324 00 0 00 033457 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
5226 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
5227 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
5228 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
5229
5230 ;**********
DAKAE PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (5) 0,3 MACRO %53(1020) 13:36 28-Dec-78 Page 93
DAKAEM MAC 28-Dec-78 13:35 TEST OF MSCL SOSX INSTRUCTIONS SEQ 0142
5231
5232 033457 254 00 0 00 030057 JRST BEGEND
5233 SUBTTL *STOR* RESERVED STORAGE, JULY 19,1977
5234
5235 ;PROGRAM LITERALS
5236
5237 XLIST
5238 IFNDEF $LPAPER,<LIST>
5239 033460 LIT
5240 033460 000001 000001
5241 033461 254 00 0 00 030723
5242 033462 777777 777777
5243 033463 310 00 0 00 000000
5244 033464 201 01 0 00 001234
5245 033465 031107 031106
5246 033466 031116 031115
5247 033467 254 00 0 00 031161
5248 033470 000001 000002
5249 033471 135531 246642
5250 033472 135246 246135
5251 033473 252525 252525
5252 033474 707070 707070
5253 033475 123456 123456
5254 033476 777777 000000
5255 033477 777777 777775
5256 033500 777777 777776
5257 033501 000000 000000
5258 033502 000000 000001
5259 LIST
5260 033503 000000 000000 ENDSLD: 0
5261
5262 IFDEF DEBUG,<
5263 033504 PATCH: BLOCK DEBUG ;PATCHING AREA
5264 >
5265
5266 ;PROGRAM VARIABLES
5267 033604 VAR
5268
5269 IFDEF PGMEND,<
5270 033604 000000 000000 END: 0
5271 030000 END BEGIN >
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 033605
CPU TIME USED 00:18.474
20P CORE USED