7993 lines
417 KiB
Text
7993 lines
417 KiB
Text
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 1
|
|
DAKADT MAC 19-JAN-77 13:37 DIAGNOSTIC PARAMETERS SEQ 0007
|
|
|
|
1 ;DAKAD
|
|
2
|
|
3
|
|
4
|
|
5 000002 DECVER==2
|
|
6 000000 MCNVER==0
|
|
7
|
|
8 XLIST
|
|
9 LIST
|
|
10 LALL
|
|
11 NAME \MCNVER,\DECVER^
|
|
12
|
|
13 TITLE DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2
|
|
14 ^
|
|
15
|
|
16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE
|
|
17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD.
|
|
18
|
|
19 ;COPYRIGHT 1972,1977
|
|
20 ;DIGITAL EQUIPMENT CORPORATION
|
|
21 ;MARLBORO, MASS. 01752
|
|
22
|
|
23 ;JOHN R. KIRCHOFF
|
|
24 ;DICK MALISKA
|
|
25
|
|
26 000137 LOC 137
|
|
27 000137 000000 000002 MCNVER,,DECVER
|
|
28
|
|
29 NOSYM
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 2
|
|
DAKADT MAC 19-JAN-77 13:37 DIAGNOSTIC PARAMETERS SEQ 0008
|
|
|
|
30 SUBTTL DIAGNOSTIC PARAMETERS
|
|
31
|
|
32 ;PARAMETER DEFINITIONS
|
|
33 000001 EXCASB==1
|
|
34 000001 USRASB==1
|
|
35 000001 PGMEND==1
|
|
36 000100 DEBUG==100
|
|
37
|
|
38 ;FLAG DEFINITIONS
|
|
39 010000 USERF=10000 ;USER MODE FLAG
|
|
40
|
|
41
|
|
42 ;MACROS
|
|
43
|
|
44 ;SPECIAL FEATURE PARAMETERS
|
|
45
|
|
46 030712 SADR1=START
|
|
47 030712 SADR2=START
|
|
48 030712 SADR3=START
|
|
49 030712 SADR4=START
|
|
50 254000 030712 SADR5=JRST START
|
|
51 254000 030712 SADR6=JRST START
|
|
52 254000 030712 SADR7=JRST START
|
|
53 254000 030712 SADR8=JRST START
|
|
54 254000 030712 SADR9=JRST START
|
|
55 254000 030712 SADR10=JRST START
|
|
56 254000 030712 SADR11=JRST START
|
|
57
|
|
58 000000 PAREA0=0
|
|
59 000000 PAREA1=0
|
|
60 000000 PAREA2=0
|
|
61 444253 414400 PAREA3=SIXBIT/DBKAD/
|
|
62 645560 000000 PAREA4=SIXBIT/TMP/
|
|
63 000000 PAREA5=0
|
|
64 000000 PAREA6=0
|
|
65 001000 ITERAT==1000
|
|
66 000001 PGMEND=1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 1
|
|
PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0009
|
|
|
|
67 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977
|
|
68
|
|
69 DEFINE S,<;*********************************************************************>
|
|
70
|
|
71 S^;*********************************************************************^
|
|
72 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
|
|
73 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
|
|
74 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
|
|
75 S^;*********************************************************************^
|
|
76
|
|
77 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
|
|
78 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
|
|
79 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
|
|
80
|
|
81 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
|
|
82 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
|
|
83 010000 DING== 010000 ;RING BELL ON ERROR
|
|
84
|
|
85 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
|
|
86 002000 ERSTOP==002000 ;HALT ON TEST ERROR
|
|
87 001000 PALERS==001000 ;PRINT ALL ERRORS
|
|
88
|
|
89 000400 RELIAB==000400 ;RELIABILITY MODE
|
|
90 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
|
|
91 000100 INHPAG==000100 ;INHIBIT PAGING
|
|
92
|
|
93 000040 MODDVC==000040 ;MODIFY DEVICE CODE
|
|
94 000020 INHCSH==000020 ;INHIBIT CACHE
|
|
95 000010 OPRSEL==000010 ;OPERATOR SELECTION
|
|
96
|
|
97 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
|
|
98
|
|
99 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
|
|
100
|
|
101 ;SWITCH 17 RESERVED !!!
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 2
|
|
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0010
|
|
|
|
102 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977
|
|
103
|
|
104 S^;*********************************************************************^
|
|
105 ;*SPECIAL SUBPROGRAM LINKAGES
|
|
106 S^;*********************************************************************^
|
|
107
|
|
108 027772 FSELNK= 27772 ;FILE SELECT LINK
|
|
109 027773 FRDLNK= 27773 ;FILE READ LINK
|
|
110 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
|
|
111 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
|
|
112 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
|
|
113 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
|
|
114
|
|
115 S^;*********************************************************************^
|
|
116 ;*SPECIAL SUBROUTINE FATAL HALTS
|
|
117 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
|
|
118 S^;*********************************************************************^
|
|
119
|
|
120 ;ADDRESS TAG REASON
|
|
121 ;---------------------
|
|
122
|
|
123 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
|
|
124 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
|
|
125 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
|
|
126 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
|
|
127 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
|
|
128 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
|
|
129 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
|
|
130 ; 1017 EOPERR ;END OF PROGRAM ERROR
|
|
131 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
|
|
132
|
|
133 S^;*********************************************************************^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 3
|
|
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0011
|
|
|
|
134 S^;*********************************************************************^
|
|
135 ;OPERATOR DEFINITIONS (NON-UUO'S)
|
|
136 S^;*********************************************************************^
|
|
137
|
|
138 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
|
|
139 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
|
|
140 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
|
|
141 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
|
|
142 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
|
|
143 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
|
|
144 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
|
|
145 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
|
|
146
|
|
147 S^;*********************************************************************^
|
|
148 ;*SUBROUTINE INITIALIZATION CALL
|
|
149 S^;*********************************************************************^
|
|
150
|
|
151 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
|
|
152
|
|
153 S^;*********************************************************************^
|
|
154 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
|
|
155 S^;*********************************************************************^
|
|
156
|
|
157 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
|
|
158 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
|
|
159
|
|
160 S^;*********************************************************************^
|
|
161 ;*TERMINAL INPUT UUO'S
|
|
162 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
|
|
163 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
|
|
164 S^;*********************************************************************^
|
|
165
|
|
166 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
|
|
167 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
|
|
168 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
|
|
169 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
|
|
170 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
|
|
171 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
|
|
172 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
|
|
173 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
|
|
174 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
|
|
175 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 4
|
|
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0012
|
|
|
|
176 ;*TERMINAL OUTPUT UUO'S.
|
|
177
|
|
178 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
|
|
179 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
|
|
180 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
|
|
181 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
|
|
182 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
|
|
183 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
|
|
184 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
|
|
185 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
|
|
186 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
|
|
187 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
|
|
188 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
|
|
189 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
|
|
190 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
|
|
191 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
|
|
192 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
|
|
193 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
|
|
194 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
|
|
195 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
|
|
196 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
|
|
197 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
|
|
198 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
|
|
199 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
|
|
200 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
|
|
201 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
|
|
202 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
|
|
203 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
|
|
204 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
|
|
205 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
|
|
206 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
|
|
207 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
|
|
208 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
|
|
209 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
|
|
210 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
|
|
211 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
|
|
212 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
|
|
213 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
|
|
214 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
|
|
215 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
|
|
216 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
|
|
217 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
|
|
218 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
|
|
219 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
|
|
220 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
|
|
221 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
|
|
222 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
|
|
223 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
|
|
224 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
|
|
225 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
|
|
226 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
|
|
227 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
|
|
228 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
|
|
229 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
|
|
230 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 4-1
|
|
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0013
|
|
|
|
231 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
|
|
232 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
|
|
233
|
|
234 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
|
|
235
|
|
236 DEFINE PMSG (ARG),<
|
|
237 PSIXM [SIXBIT\ARG'_\]>
|
|
238
|
|
239 DEFINE PMSGF (ARG),<
|
|
240 PSIXMF [SIXBIT\ARG'_\]>
|
|
241
|
|
242 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
|
|
243 ;* CONSERVES CORE OVER ASCIZ
|
|
244
|
|
245 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
|
|
246
|
|
247 ;*CONSOLE SWITCH INPUT UUO.
|
|
248 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
|
|
249 ;* USER MODE.
|
|
250
|
|
251 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
|
|
252
|
|
253 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
|
|
254 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
|
|
255
|
|
256 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
|
|
257 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
|
|
258
|
|
259 ;*KL10 ONLY CACHE OPERATION UUO'S
|
|
260
|
|
261 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
|
|
262 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
|
|
263 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5
|
|
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0014
|
|
|
|
264 ;*END OF PASS/PROGRAM UUOS
|
|
265
|
|
266 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
|
|
267 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
|
|
268
|
|
269 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
|
|
270 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
|
|
271
|
|
272 ;*MEMORY MANAGEMENT UUO'S
|
|
273 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
|
|
274 ;*ADDRESS CONVERSION, ETC...
|
|
275
|
|
276 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
|
|
277 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
|
|
278 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
|
|
279 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
|
|
280 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
|
|
281 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
|
|
282 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
|
|
283
|
|
284 ;*DEVICE CODE MODIFICATION UUO
|
|
285 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
|
|
286 ;*IOT'S TO A DIFFERENT DEVICE CODE.
|
|
287
|
|
288 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
|
|
289 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
|
|
290
|
|
291 030000 IFNDEF MODDVL,<MODDVL==BEGIN>
|
|
292 030000 IFNDEF MODDVU,<MODDVU==BEGIN>
|
|
293
|
|
294 ;*"DIAMON" FILE SELECTION AND READ UUOS
|
|
295
|
|
296 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
|
|
297 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
|
|
298 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
|
|
299 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
|
|
300
|
|
301 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
|
|
302
|
|
303 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
|
|
304
|
|
305 XLIST
|
|
306 IFNDEF KLOLD,<LIST
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6
|
|
PARAM KLM 18-JAN-77 11:38 ERROR HANDLING UUO DEFINITIONS, JAN 18,1977 SEQ 0015
|
|
|
|
307 SUBTTL ERROR HANDLING UUO DEFINITIONS, JAN 18,1977
|
|
308
|
|
309 S^;*********************************************************************^
|
|
310 ;*ERROR HANDLER PARAMETERS
|
|
311 S^;*********************************************************************^
|
|
312
|
|
313 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
|
|
314 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
|
|
315 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
|
|
316 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
|
|
317 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
|
|
318
|
|
319 ;*THE ERROR HANDLER MACROS
|
|
320
|
|
321 ;*A MACRO TO REPORT AN ERROR AND LOOP
|
|
322
|
|
323 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
|
|
324 SALL
|
|
325 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
|
|
326 CORECT,,ACTUAL
|
|
327 [SIXBIT\D'_\],,ERR]
|
|
328 XALL
|
|
329
|
|
330 ERLOOP ADR ;IF ERROR, LOOP TO ADR
|
|
331 >
|
|
332
|
|
333 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP
|
|
334
|
|
335 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
|
|
336 SALL
|
|
337 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
|
|
338 CORECT,,ACTUAL
|
|
339 [SIXBIT\D'_\],,ERR]
|
|
340 XALL >
|
|
341
|
|
342 >;END OF KLOLD CONDITIONAL
|
|
343
|
|
344 XLIST
|
|
345 LIST
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 1
|
|
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0016
|
|
|
|
346 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977
|
|
347
|
|
348 030000 LOC 30000
|
|
349
|
|
350 S^;*********************************************************************^
|
|
351 ;*PROGRAM STARTING ADDRESSES
|
|
352 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
|
|
353 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
|
|
354 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
|
|
355 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
|
|
356 S^;*********************************************************************^
|
|
357
|
|
358 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
|
|
359 030001 254 00 0 00 030712 $START: JRST START ;MODE CHECK STARTING ADDRESS
|
|
360
|
|
361 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
|
|
362
|
|
363 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
|
|
364
|
|
365 030004 254 00 0 00 030712 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
|
|
366
|
|
367 030005 254 00 0 00 030712 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
|
|
368
|
|
369 030006 254 00 0 00 030712 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
|
|
370
|
|
371 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
|
|
372 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
|
|
373
|
|
374 030010 254 00 0 00 030741 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
|
|
375 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
|
|
376 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
|
|
377
|
|
378 030013 254000 030712 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
|
|
379 030014 254000 030712 START2: SADR8 ; "
|
|
380 030015 254000 030712 START3: SADR9 ; "
|
|
381 030016 254000 030712 START4: SADR10 ; "
|
|
382 030017 254000 030712 START5: SADR11 ; "
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 2
|
|
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0017
|
|
|
|
383 S^;*********************************************************************^
|
|
384 ;*PROGRAM FIXED PARAMETER AREA
|
|
385 S^;*********************************************************************^
|
|
386
|
|
387 030020 444253 414400 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
|
|
388 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
|
|
389 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER
|
|
390 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
|
|
391 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS
|
|
392 030025 000000 030725 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
|
|
393 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
|
|
394 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
|
|
395 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
|
|
396 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
|
|
397 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
|
|
398 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
|
|
399 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
|
|
400 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
|
|
401 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
|
|
402
|
|
403 S^;*********************************************************************^
|
|
404 ;*PROGRAM VARIABLE PARAMETER AREA
|
|
405 S^;*********************************************************************^
|
|
406
|
|
407 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
|
|
408 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
|
|
409 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
|
|
410 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
|
|
411 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
|
|
412 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
|
|
413 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
|
|
414 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
|
|
415 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
|
|
416 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
|
|
417 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
|
|
418 030052 000000 000000 ERRPC: 0 ;ERROR PC
|
|
419 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
|
|
420 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
|
|
421 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
|
|
422 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 3
|
|
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0018
|
|
|
|
423 S^;*********************************************************************^
|
|
424 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
|
|
425 S^;*********************************************************************^
|
|
426
|
|
427 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
|
|
428 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
|
|
429 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
|
|
430 030062 254000 030712 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
|
|
431 030063 254000 030712 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
|
|
432 030064 CPOPJ1: ;SKIP RETURN
|
|
433 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
|
|
434 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
|
|
435 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
|
|
436 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
|
|
437 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
|
|
438 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
|
|
439 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
|
|
440 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
|
|
441 030073 255 00 0 00 000000 $USRHL: JFCL ; "
|
|
442 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
|
|
443 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
|
|
444 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
|
|
445 030077 255 00 0 00 000000 RESRT2: JFCL ; "
|
|
446 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
|
|
447 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
|
|
448 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
|
|
449
|
|
450 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
|
|
451 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
|
|
452 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
|
|
453
|
|
454 S^;*********************************************************************^
|
|
455 ;*PROCESSOR CONTROL STORAGE
|
|
456 S^;*********************************************************************^
|
|
457
|
|
458 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
|
|
459 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
|
|
460 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
|
|
461 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
|
|
462 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
|
|
463
|
|
464 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
|
|
465 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
|
|
466
|
|
467 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
|
|
468 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
|
|
469 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
|
|
470 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
|
|
471 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
|
|
472 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
|
|
473 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 4
|
|
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0019
|
|
|
|
474 S^;*********************************************************************^
|
|
475 ;*UUO DISPATCH TABLE
|
|
476 S^;*********************************************************************^
|
|
477 XLIST
|
|
478 LIST
|
|
479 030124 030070 030070 UUODIS: LUUO1,,$UUOER
|
|
480 030125 030070 030070 LUUO3,,LUUO2
|
|
481 030126 030070 030070 LUUO5,,LUUO4
|
|
482 030127 030070 030070 LUUO7,,LUUO6
|
|
483 030130 030070 030070 LUUO11,,LUUO10
|
|
484 030131 030070 030070 LUUO13,,LUUO12
|
|
485 030132 030070 030070 LUUO15,,LUUO14
|
|
486 030133 030070 030070 LUUO17,,LUUO16
|
|
487 030134 030070 030070 LUUO21,,LUUO20
|
|
488 030135 030070 030070 LUUO23,,LUUO22
|
|
489 030136 030070 030070 LUUO25,,LUUO24
|
|
490 030137 030070 030070 LUUO27,,LUUO26
|
|
491 030140 030070 030070 LUUO31,,LUUO30
|
|
492 030141 030070 030070 LUUO33,,LUUO32
|
|
493
|
|
494 S^;*********************************************************************^
|
|
495 ;*MEMORY MANAGMENT STORAGE
|
|
496 S^;*********************************************************************^
|
|
497
|
|
498 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
|
|
499 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
|
|
500 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
|
|
501 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
|
|
502 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
|
|
503
|
|
504 S^;*********************************************************************^
|
|
505 ;*PRINT CONTROL STORAGE
|
|
506 S^;*********************************************************************^
|
|
507
|
|
508 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
|
|
509 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
|
|
510 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
|
|
511 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
|
|
512 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
|
|
513 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
|
|
514 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
|
|
515 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
|
|
516 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
|
|
517 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
|
|
518 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
|
|
519 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
|
|
520 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
|
|
521 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
|
|
522 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
|
|
523 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
|
|
524 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
|
|
525 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
|
|
526 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5
|
|
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0020
|
|
|
|
527 S^;*********************************************************************^
|
|
528 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
|
|
529 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
|
|
530 ;* MOVEI NAME
|
|
531 ;* PNTA ;OR PNTAF
|
|
532 S^;*********************************************************************^
|
|
533
|
|
534 030242 CRLF: ASCII/
|
|
535 030242 015 012 000 000 000 /
|
|
536 030243 CRLF2: ASCII/
|
|
537
|
|
538 030243 015 012 015 012 000 /
|
|
539 030244 054 000 000 000 000 COMMA: ASCII/,/
|
|
540 030245 056 000 000 000 000 PERIOD: ASCII/./
|
|
541 030246 040 000 000 000 000 SPACE: ASCII/ /
|
|
542 030247 011 000 000 000 000 TAB: ASCII/ /
|
|
543 030250 MINUS:
|
|
544 030250 055 000 000 000 000 HYPEN: ASCII/-/
|
|
545 030251 053 000 000 000 000 PLUS: ASCII/+/
|
|
546 030252 052 000 000 000 000 AST: ASCII/*/
|
|
547 030253 100 000 000 000 000 ATSIN: ASCII/@/
|
|
548 030254 050 000 000 000 000 LFP: ASCII/(/
|
|
549 030255 051 000 000 000 000 RTP: ASCII/)/
|
|
550 030256 007 0000000000 BELL: BYTE (7) 007
|
|
551 030257 077 000 000 000 000 QUEST: ASCII/?/
|
|
552 030260 057 000 000 000 000 SLASH: ASCII!/!
|
|
553 030261 044 000 000 000 000 DOLLAR: ASCII/$/
|
|
554 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
|
|
555 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
|
|
556 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
|
|
557
|
|
558 S^;*********************************************************************^
|
|
559 ;*USER MODE OUTPUT FILE INFORMATION
|
|
560 S^;*********************************************************************^
|
|
561
|
|
562 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
|
|
563 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
|
|
564 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
|
|
565 030272 BLOCK 2
|
|
566
|
|
567 S^;*********************************************************************^
|
|
568 ;*DISK UPDATE MODE FILE INFORMATION
|
|
569 S^;*********************************************************************^
|
|
570
|
|
571 030274 $IBUF: BLOCK 3
|
|
572 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
|
|
573 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
|
|
574 030301 BLOCK 2
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6
|
|
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021
|
|
|
|
575 S^;*********************************************************************^
|
|
576 ;*PUSHDOWN LIST CONTROL INFORMATION
|
|
577 S^;*********************************************************************^
|
|
578
|
|
579 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
|
|
580 030304 PLISTS: BLOCK 200
|
|
581 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
|
|
582
|
|
583 S^;*********************************************************************^
|
|
584 ;*POWER LINE CLOCK FREQUENCY FLAG
|
|
585 S^;*********************************************************************^
|
|
586
|
|
587 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
|
|
588
|
|
589 S^;*********************************************************************^
|
|
590 ;*KL10 CACHE CONTROL FLAGS
|
|
591 S^;*********************************************************************^
|
|
592
|
|
593 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
|
|
594 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
|
|
595
|
|
596 S^;*********************************************************************^
|
|
597 ;*NUMBER INPUT DIGIT FLAG
|
|
598 S^;*********************************************************************^
|
|
599
|
|
600 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
|
|
601
|
|
602 S^;*********************************************************************^
|
|
603 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
|
|
604 S^;*********************************************************************^
|
|
605
|
|
606 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
|
|
607
|
|
608 S^;*********************************************************************^
|
|
609 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
|
|
610 S^;*********************************************************************^
|
|
611
|
|
612 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
|
|
613 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
|
|
614 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
|
|
615
|
|
616 S^;*********************************************************************^
|
|
617 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
|
|
618 S^;*********************************************************************^
|
|
619
|
|
620 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 7
|
|
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022
|
|
|
|
621 S^;*********************************************************************^
|
|
622 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
|
|
623 S^;*********************************************************************^
|
|
624
|
|
625 030516 000000 000000 KLTYP: 0
|
|
626
|
|
627 S^;*********************************************************************^
|
|
628 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
|
|
629 S^;*********************************************************************^
|
|
630
|
|
631 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
|
|
632
|
|
633 S^;*********************************************************************^
|
|
634 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
|
|
635 S^;*********************************************************************^
|
|
636
|
|
637 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
|
|
638
|
|
639 S^;*********************************************************************^
|
|
640 ;*"SWITCH" CALL USAGE CONTROL
|
|
641 S^;*********************************************************************^
|
|
642
|
|
643 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
|
|
644
|
|
645 S^;*********************************************************************^
|
|
646 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
|
|
647 S^;*********************************************************************^
|
|
648
|
|
649 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
|
|
650 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
|
|
651
|
|
652 S^;*********************************************************************^
|
|
653 ;*SPECIAL FUTURE EXPANSION ROOM
|
|
654 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF
|
|
655 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE
|
|
656 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE.
|
|
657 S^;*********************************************************************^
|
|
658
|
|
659 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER
|
|
660
|
|
661 S^;*********************************************************************^
|
|
662 ;*END OF FIXED STORAGE
|
|
663 S^;*********************************************************************^
|
|
664
|
|
665 030577 $ENDFX=<PLISTE+100>&<777700>-1
|
|
666 030577 LOC $ENDFX
|
|
667 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 1
|
|
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0023
|
|
|
|
668 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76
|
|
669
|
|
670 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
|
|
671
|
|
672 000000 AC0= 0
|
|
673 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
|
|
674 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS
|
|
675 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
|
|
676 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
|
|
677
|
|
678 ;DTE20 DEVICE CODES
|
|
679
|
|
680 000200 DTE== 200 ;DTE0
|
|
681 000204 DTE0== 204
|
|
682 000204 DTE1== 204
|
|
683 000210 DTE2== 210
|
|
684 000214 DTE3== 214
|
|
685
|
|
686 ;KL10 EPT COMMUNICATION AREA
|
|
687
|
|
688 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
|
|
689 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
|
|
690 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
|
|
691 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
|
|
692
|
|
693 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
|
|
694 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
|
|
695 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
|
|
696 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
|
|
697 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
|
|
698 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
|
|
699 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
|
|
700 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE #
|
|
701 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
|
|
702 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
|
|
703 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
|
|
704
|
|
705 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 2
|
|
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024
|
|
|
|
706 ;SPECIAL "FIXED" REASSIGNMENTS
|
|
707
|
|
708 030600 $$LOC=. ;SAVE CURRENT LOCATION
|
|
709
|
|
710 030000 LOC 30000
|
|
711 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START
|
|
712 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS
|
|
713
|
|
714 000440 LOC 440
|
|
715 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD"
|
|
716 000443 LOC 443
|
|
717 000443 254 00 0 00 030636 $STM: JRST $SPEC ;SIMPLE RUN CONTROL
|
|
718
|
|
719 030057 LOC 30057
|
|
720 030057 254 00 0 00 030641 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND"
|
|
721
|
|
722 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP
|
|
723
|
|
724 000420 LOC 420
|
|
725 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL
|
|
726 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW
|
|
727 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW
|
|
728 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3
|
|
729 000424 000000 000000 $$424: 0 ;MMUO
|
|
730 000425 000000 000000 $$425: 0 ;MMUO PC
|
|
731 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT
|
|
732 000427 254 04 0 00 000427 $$427: HALT .
|
|
733 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S
|
|
734 000431 000000 000427 $$431: 427
|
|
735 000432 000000 000427 $$432: 427
|
|
736 000433 000000 000427 $$433: 427
|
|
737 000434 000000 000427 $$434: 427
|
|
738 000435 000000 000427 $$435: 427
|
|
739 000436 000000 000427 $$436: 427
|
|
740 000437 000000 000427 $$437: 427
|
|
741
|
|
742 000500 LOC 500
|
|
743 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD
|
|
744 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC
|
|
745 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC
|
|
746 000503 254 04 0 00 000503 $$503: HALT .
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 3
|
|
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025
|
|
|
|
747 030600 LOC $$LOC ;RESET CURRENT LOCATION
|
|
748
|
|
749 ;SPECIAL STARTUP SEQUENCE
|
|
750
|
|
751 030600 402 00 0 00 030037 $$START:SETZM USER
|
|
752 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ?
|
|
753 030602 603 00 0 00 010000 TLNE 0,USERF
|
|
754 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD
|
|
755 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ?
|
|
756 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC
|
|
757 030606 332 00 0 00 030037 SKIPE USER
|
|
758 030607 254 00 0 00 030712 JRST START ;USER MODE, DON'T NEED CPU TYPE
|
|
759
|
|
760 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ?
|
|
761 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER
|
|
762 030612 402 00 0 00 030516 SETZM KLTYP
|
|
763 030613 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10
|
|
764 030614 200 01 0 00 034442 MOVE 1,[1,,1]
|
|
765 030615 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS
|
|
766 030616 316 01 0 00 034442 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10
|
|
767 030617 254 00 0 00 030712 JRST START ;KI10, NO ADDITIONAL SETUP
|
|
768
|
|
769 030620 7 000 20 0 00 010040 $STKL: CONO APR,10040 ;SET BBD NOT BIT
|
|
770 030621 7 000 24 0 00 000000 CONI APR,0
|
|
771 030622 7 000 20 0 00 020040 CONO APR,20040 ;CLEAR BBD NOT BIT
|
|
772 030623 606 00 0 00 000040 TRNN 0,40 ;IF SET, KL10
|
|
773 030624 350 00 0 00 030516 AOS KLTYP ;IF NOT, BBD
|
|
774 030625 402 00 0 00 000444 SETZM $DTFLG
|
|
775 030626 402 00 0 00 000445 SETZM $DTCLK
|
|
776 030627 200 00 0 00 000453 MOVE $DTOPR ;GET DTE #
|
|
777 030630 436 00 0 00 030670 ORM $$DTE0 ;INSERT IN DTE I/O INSTS
|
|
778 030631 436 00 0 00 030672 ORM $$DTE1
|
|
779 030632 436 00 0 00 030704 ORM $$DTE2
|
|
780 030633 436 00 0 00 030706 ORM $$DTE3
|
|
781 030634 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG
|
|
782 030635 254 00 0 00 030712 JRST START
|
|
783
|
|
784 030636 200 00 0 00 034443 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL
|
|
785 030637 202 00 0 00 030643 MOVEM $SPB1
|
|
786 030640 254 00 0 00 030712 JRST START
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 4
|
|
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026
|
|
|
|
787 ;SPECIAL "BEGEND" ROUTINE
|
|
788
|
|
789 030641 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT
|
|
790 030642 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT
|
|
791 030643 336 00 0 00 030037 $SPB1: SKIPN USER
|
|
792 030644 254 00 0 00 030652 JRST $SPBEX ;EXEC MODE
|
|
793
|
|
794 030645 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ?
|
|
795 030646 254 00 0 00 030741 JRST STARTA ;NO, KEEP RUNNING
|
|
796 030647 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ?
|
|
797 030650 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR
|
|
798 030651 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON"
|
|
799
|
|
800 030652 332 00 0 00 030041 $SPBEX: SKIPE KLFLG
|
|
801 030653 254 00 0 00 030660 JRST $SPBKL ;KL10 & EXEC
|
|
802 030654 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT
|
|
803 030655 332 00 0 00 030024 SKIPE ITRCNT
|
|
804 030656 254 00 0 00 030741 JRST STARTA ;NOT COMPLETED YET
|
|
805 030657 254 00 1 00 030012 JRST @RETURN ;DONE
|
|
806
|
|
807 030660 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT
|
|
808 030661 254 00 0 00 030676 JRST $SPKLD ;KL10, EXEC & COMPLETED
|
|
809
|
|
810 030662 335 00 0 00 030043 SKIPGE MONCTL
|
|
811 030663 254 00 0 00 030741 JRST STARTA ;"DIAMON" CONTROL
|
|
812 030664 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS
|
|
813 030665 202 00 0 00 000451 MOVEM 0,$DTCMD
|
|
814 030666 402 00 0 00 000444 SETZM $DTFLG
|
|
815 030667 336 00 0 00 030516 SKIPN KLTYP
|
|
816 030670 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11
|
|
817 030671 332 00 0 00 030516 SKIPE KLTYP
|
|
818 030672 7 200 20 0 00 010000 $$DTE1: CONO DTE,10000
|
|
819 030673 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS
|
|
820 030674 254 00 0 00 030673 JRST .-1
|
|
821 030675 254 00 0 00 030741 JRST STARTA ;KEEP RUNNING
|
|
822
|
|
823 ;SPECIAL KL10 COMPLETED ROUTINE
|
|
824
|
|
825 030676 332 00 0 00 030044 $SPKLD: SKIPE MONTEN
|
|
826 030677 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON"
|
|
827
|
|
828 030700 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION
|
|
829 030701 202 00 0 00 000451 MOVEM 0,$DTCMD
|
|
830 030702 402 00 0 00 000444 SETZM $DTFLG
|
|
831 030703 336 00 0 00 030516 SKIPN KLTYP
|
|
832 030704 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11
|
|
833 030705 332 00 0 00 030516 SKIPE KLTYP
|
|
834 030706 7 200 20 0 00 010000 $$DTE3: CONO DTE,10000
|
|
835 030707 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN
|
|
836 030710 254 00 0 00 030707 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM
|
|
837 030711 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 1
|
|
DAKADM MAC 19-JAN-77 13:41 DIAGNOSTIC PARAMETERS SEQ 0027
|
|
|
|
838 SUBTTL DIAGNOSTIC PARAMETERS
|
|
839
|
|
840 ;ACCUMULATOR ASSIGNMENTS
|
|
841
|
|
842 ;CONTROL WORDS
|
|
843
|
|
844 400000 AROV=400000 ;ARITHMETIC OVERFLOW
|
|
845 200000 CRY0=200000 ;CARRY 0
|
|
846 100000 CRY1=100000 ;CARRY 1
|
|
847 040000 FOV=40000 ;FLOATING OVERFLOW
|
|
848 020000 BIS=20000 ;BYTE INTERRUPT
|
|
849 010000 USERF=10000 ;USER MODE FLAG
|
|
850 004000 EXIOT=4000 ;USER PRIV I/O FLAG
|
|
851 000100 FXU=100 ;FLOATING UNDERFLOW
|
|
852 000040 DCK=40 ;DIVIDE CHECK
|
|
853
|
|
854
|
|
855 ;MACROS
|
|
856
|
|
857 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1)
|
|
858 ; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION
|
|
859
|
|
860 DEFINE STOP (A)<
|
|
861 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
862 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
863 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
864 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
865 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1>
|
|
866
|
|
867 ; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG
|
|
868
|
|
869 DEFINE SFLAG (A)<
|
|
870 MOVSI 1,A
|
|
871 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
872 JRST 2,.+1(1) ;SET A FLAG>
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 2
|
|
DAKADM MAC 19-JAN-77 13:41 DIAGNOSTIC SECTION SEQ 0028
|
|
|
|
873 SUBTTL DIAGNOSTIC SECTION
|
|
874
|
|
875 030712 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD
|
|
876 030713 265 00 0 00 030714 JSP 0,.+1 ;GET FLAGS
|
|
877 030714 603 00 0 00 010000 TLNE USERF ;IN USER MODE?
|
|
878 030715 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD
|
|
879 030716 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE?
|
|
880 030717 402 00 0 00 030037 SETZM USER ;YES, CLEAR USER CONTROL WORD
|
|
881 030720 336 00 0 00 030037 SKIPN USER
|
|
882 030721 254 00 0 00 030742 JRST C00
|
|
883 030722 331 00 0 00 030043 SKIPL MONCTL
|
|
884 030723 051 03 0 00 030725 TTCALL 3,PGMNAM ;MENTION OUR NAME
|
|
885 030724 254 00 0 00 030741 JRST STARTA
|
|
886
|
|
887 030725 PGMNAM: ASCIZ/
|
|
888 030725 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) [DAKAD]
|
|
889 030726 055 061 060 040 113
|
|
890 030727 101 061 060 040 102
|
|
891 030730 101 123 111 103 040
|
|
892 030731 111 116 123 124 122
|
|
893 030732 125 103 124 111 117
|
|
894 030733 116 040 104 111 101
|
|
895 030734 107 116 117 123 124
|
|
896 030735 111 103 040 050 064
|
|
897 030736 051 040 133 104 101
|
|
898 030737 113 101 104 135 015
|
|
899 030740 012 000 000 000 000 /
|
|
900
|
|
901 ;BASIC INSTRUCTION TEST (3)
|
|
902 ;THE TEST IS DESIGNED FOR INITIAL DEBUGGING OF
|
|
903 ;PROCESSOR HARDWARE AND TO DETECT (SOLID) FAILURES
|
|
904 ;IN THE FIELD.
|
|
905
|
|
906 030741 254 00 0 00 030742 STARTA: JRST .+1
|
|
907 030742 C00:
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 3
|
|
DAKADM MAC 19-JAN-77 13:41 DIAGNOSTIC SECTION SEQ 0029
|
|
|
|
908 ;TESTING BEGINS HERE
|
|
909
|
|
910 ;IF ANY LOADING PROBLEMS OCCUR, START PROGRAM HERE.
|
|
911
|
|
912 ;NOTE: AN "*" IN THE COMMENT FIELD OF AN INSTRUCTION INDICATES THAT
|
|
913 ; IT IS THE TESTED INSTRUCTION.
|
|
914
|
|
915 SUBTTL TEST OF AC HARDWARE AND INDEX REGISTERS
|
|
916
|
|
917 ;**********
|
|
918
|
|
919 ;THIS TEST VERIFIES THAT AC1 IS ACCESSABLE
|
|
920 ;IN THIS CASE, AC1 IS PRELOADED WITH 1.
|
|
921 ;C(AC1) IS THEN CHECKED FOR A1. THIS TEST PASSES IF C(AC1)=1.
|
|
922 ;IF THIS TEST FAILS, THE AC HARDWARE IS PROBABLY FAULTY
|
|
923
|
|
924 030742 400 00 0 00 000000 C100: SETZ ;CLEAR AC0
|
|
925 030743 201 01 0 00 000001 MOVEI 1,1 ;PRELOAD AC1 WITH 1
|
|
926 030744 302 01 0 00 000001 CAIE 1,1 ;PASS IF C(AC1)=1
|
|
927 STOP^
|
|
928 030745 254 04 0 00 030746 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
929 030746 324 00 0 00 030747 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
930 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
931 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
932 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
933
|
|
934 ;**********
|
|
935
|
|
936 ;THIS TEST VERIFIES THAT AC2 IS ACCESSABLE.
|
|
937 ;IN THIS CASE, AC2 IS PRELOADED WITH 2.
|
|
938 ;C(AC2) IS THEN CHECKED FOR 2. THIS TEST PASSES IF C(AC2)=2.
|
|
939 ;IF THIS TEST FAILS, THE AC HARDWARE IS PROBABLY FAULTY
|
|
940
|
|
941 030747 201 02 0 00 000002 C200: MOVEI 2,2 ;PRELOAD AC2 WITH 2
|
|
942 030750 302 02 0 00 000002 CAIE 2,2 ;PASS IF C(AC2)=2
|
|
943 STOP^
|
|
944 030751 254 04 0 00 030752 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
945 030752 324 00 0 00 030753 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
946 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
947 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
948 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
949
|
|
950 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0030
|
|
|
|
951 ;THIS TEST VERIFIES THAT AC4 IS ACCESSABLE.
|
|
952 ;IN THIS CASE, AC4 IS PRELOADED WITH 4.
|
|
953 ;C(AC4) IS THEN CHECKED FOR 4. THIS TEST PASSES IF C(AC4)=4.
|
|
954 ;IF THIS TEST FAILS, THE AC HARDWARE IS PROBABLY FAULTY
|
|
955
|
|
956 030753 201 04 0 00 000004 C300: MOVEI 4,4 ;PRELOAD AC4 WITH 4
|
|
957 030754 302 04 0 00 000004 CAIE 4,4 ;PASS IF C(AC4)=4
|
|
958 STOP^
|
|
959 030755 254 04 0 00 030756 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
960 030756 324 00 0 00 030757 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
961 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
962 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
963 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
964
|
|
965 ;**********
|
|
966
|
|
967 ;THIS TEST VERIFIES THAT AC10 IS ACCESSABLE.
|
|
968 ;IN THIS CASE, AC10 IS PRELOADED WITH 10.
|
|
969 ;C(AC10) IS THEN CHECKED FOR 10. THIS TEST PASSES IF C(AC10)=10.
|
|
970 ;IF THIS TEST FAILS, THE AC HARDWARE IS PROBABLY FAULTY
|
|
971
|
|
972 030757 201 10 0 00 000010 C400: MOVEI 10,10 ;PRELOAD AC10 WITH 10
|
|
973 030760 302 10 0 00 000010 CAIE 10,10 ;PASS IF C(AC10)=10
|
|
974 STOP^
|
|
975 030761 254 04 0 00 030762 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
976 030762 324 00 0 00 030763 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
977 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
978 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
979 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
980
|
|
981 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0031
|
|
|
|
982 000500 SN=500
|
|
983 777777 777777 ZZ=-1
|
|
984
|
|
985 ;THIS TEST VERIFIES THAT ALL ACS EXIST
|
|
986 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
987 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
988 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
989
|
|
990 C500: REPEAT ^D16,
|
|
991 < ZZ=ZZ+1
|
|
992 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR>
|
|
993 000000 ZZ=ZZ+1
|
|
994 030763 201 00 0 00 000000 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
995 000001 ZZ=ZZ+1
|
|
996 030764 201 01 0 00 000001 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
997 000002 ZZ=ZZ+1
|
|
998 030765 201 02 0 00 000002 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
999 000003 ZZ=ZZ+1
|
|
1000 030766 201 03 0 00 000003 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1001 000004 ZZ=ZZ+1
|
|
1002 030767 201 04 0 00 000004 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1003 000005 ZZ=ZZ+1
|
|
1004 030770 201 05 0 00 000005 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1005 000006 ZZ=ZZ+1
|
|
1006 030771 201 06 0 00 000006 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1007 000007 ZZ=ZZ+1
|
|
1008 030772 201 07 0 00 000007 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1009 000010 ZZ=ZZ+1
|
|
1010 030773 201 10 0 00 000010 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1011 000011 ZZ=ZZ+1
|
|
1012 030774 201 11 0 00 000011 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1013 000012 ZZ=ZZ+1
|
|
1014 030775 201 12 0 00 000012 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1015 000013 ZZ=ZZ+1
|
|
1016 030776 201 13 0 00 000013 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1017 000014 ZZ=ZZ+1
|
|
1018 030777 201 14 0 00 000014 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1019 000015 ZZ=ZZ+1
|
|
1020 031000 201 15 0 00 000015 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1021 000016 ZZ=ZZ+1
|
|
1022 031001 201 16 0 00 000016 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1023 000017 ZZ=ZZ+1
|
|
1024 031002 201 17 0 00 000017 MOVEI ZZ,ZZ ;PRELOAD EACH AC WITH ITS ADDR
|
|
1025 PAGE
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0032
|
|
|
|
1026 000020 ZZ=20
|
|
1027
|
|
1028 REPEAT ^D16,<
|
|
1029 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1030 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1031 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1032 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1033
|
|
1034 SN=SN+1
|
|
1035 ZZ=ZZ-1
|
|
1036 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1037 STOP
|
|
1038 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1039
|
|
1040 ;**********
|
|
1041 >
|
|
1042
|
|
1043 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1044 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1045 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1046 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1047
|
|
1048 000501 SN=SN+1
|
|
1049 000017 ZZ=ZZ-1
|
|
1050 031003 302 17 0 00 000017 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1051 STOP^
|
|
1052 031004 254 04 0 00 031005 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1053 031005 324 00 0 00 031006 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1054 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1055 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1056 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1057 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1058
|
|
1059 ;**********
|
|
1060
|
|
1061
|
|
1062 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1063 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1064 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1065 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1066
|
|
1067 000502 SN=SN+1
|
|
1068 000016 ZZ=ZZ-1
|
|
1069 031006 302 16 0 00 000016 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1070 STOP^
|
|
1071 031007 254 04 0 00 031010 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1072 031010 324 00 0 00 031011 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1076 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1077
|
|
1078 ;**********
|
|
1079
|
|
1080
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0033
|
|
|
|
1081 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1082 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1083 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1084 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1085
|
|
1086 000503 SN=SN+1
|
|
1087 000015 ZZ=ZZ-1
|
|
1088 031011 302 15 0 00 000015 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1089 STOP^
|
|
1090 031012 254 04 0 00 031013 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1091 031013 324 00 0 00 031014 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1092 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1093 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1094 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1095 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1096
|
|
1097 ;**********
|
|
1098
|
|
1099
|
|
1100 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1101 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1102 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1103 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1104
|
|
1105 000504 SN=SN+1
|
|
1106 000014 ZZ=ZZ-1
|
|
1107 031014 302 14 0 00 000014 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1108 STOP^
|
|
1109 031015 254 04 0 00 031016 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1110 031016 324 00 0 00 031017 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1111 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1112 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1113 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1114 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1115
|
|
1116 ;**********
|
|
1117
|
|
1118
|
|
1119 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1120 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1121 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1122 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1123
|
|
1124 000505 SN=SN+1
|
|
1125 000013 ZZ=ZZ-1
|
|
1126 031017 302 13 0 00 000013 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1127 STOP^
|
|
1128 031020 254 04 0 00 031021 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1129 031021 324 00 0 00 031022 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1130 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1131 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1132 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1133 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1134
|
|
1135 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0034
|
|
|
|
1136
|
|
1137
|
|
1138 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1139 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1140 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1141 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1142
|
|
1143 000506 SN=SN+1
|
|
1144 000012 ZZ=ZZ-1
|
|
1145 031022 302 12 0 00 000012 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1146 STOP^
|
|
1147 031023 254 04 0 00 031024 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1148 031024 324 00 0 00 031025 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1149 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1150 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1151 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1152 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1153
|
|
1154 ;**********
|
|
1155
|
|
1156
|
|
1157 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1158 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1159 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1160 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1161
|
|
1162 000507 SN=SN+1
|
|
1163 000011 ZZ=ZZ-1
|
|
1164 031025 302 11 0 00 000011 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1165 STOP^
|
|
1166 031026 254 04 0 00 031027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1167 031027 324 00 0 00 031030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1171 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1172
|
|
1173 ;**********
|
|
1174
|
|
1175
|
|
1176 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1177 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1178 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1179 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1180
|
|
1181 000510 SN=SN+1
|
|
1182 000010 ZZ=ZZ-1
|
|
1183 031030 302 10 0 00 000010 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1184 STOP^
|
|
1185 031031 254 04 0 00 031032 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1186 031032 324 00 0 00 031033 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1187 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1188 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1189 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1190 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0035
|
|
|
|
1191
|
|
1192 ;**********
|
|
1193
|
|
1194
|
|
1195 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1196 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1197 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1198 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1199
|
|
1200 000511 SN=SN+1
|
|
1201 000007 ZZ=ZZ-1
|
|
1202 031033 302 07 0 00 000007 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1203 STOP^
|
|
1204 031034 254 04 0 00 031035 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1205 031035 324 00 0 00 031036 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1206 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1207 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1208 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1209 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1210
|
|
1211 ;**********
|
|
1212
|
|
1213
|
|
1214 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1215 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1216 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1217 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1218
|
|
1219 000512 SN=SN+1
|
|
1220 000006 ZZ=ZZ-1
|
|
1221 031036 302 06 0 00 000006 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1222 STOP^
|
|
1223 031037 254 04 0 00 031040 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1224 031040 324 00 0 00 031041 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1225 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1226 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1227 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1228 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1229
|
|
1230 ;**********
|
|
1231
|
|
1232
|
|
1233 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1234 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1235 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1236 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1237
|
|
1238 000513 SN=SN+1
|
|
1239 000005 ZZ=ZZ-1
|
|
1240 031041 302 05 0 00 000005 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1241 STOP^
|
|
1242 031042 254 04 0 00 031043 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1243 031043 324 00 0 00 031044 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1244 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1245 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0036
|
|
|
|
1246 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1247 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1248
|
|
1249 ;**********
|
|
1250
|
|
1251
|
|
1252 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1253 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1254 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1255 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1256
|
|
1257 000514 SN=SN+1
|
|
1258 000004 ZZ=ZZ-1
|
|
1259 031044 302 04 0 00 000004 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1260 STOP^
|
|
1261 031045 254 04 0 00 031046 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1262 031046 324 00 0 00 031047 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1263 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1264 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1265 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1266 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1267
|
|
1268 ;**********
|
|
1269
|
|
1270
|
|
1271 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1272 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1273 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1274 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1275
|
|
1276 000515 SN=SN+1
|
|
1277 000003 ZZ=ZZ-1
|
|
1278 031047 302 03 0 00 000003 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1279 STOP^
|
|
1280 031050 254 04 0 00 031051 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1281 031051 324 00 0 00 031052 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1282 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1283 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1284 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1285 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1286
|
|
1287 ;**********
|
|
1288
|
|
1289
|
|
1290 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1291 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1292 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1293 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1294
|
|
1295 000516 SN=SN+1
|
|
1296 000002 ZZ=ZZ-1
|
|
1297 031052 302 02 0 00 000002 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1298 STOP^
|
|
1299 031053 254 04 0 00 031054 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1300 031054 324 00 0 00 031055 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 5-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0037
|
|
|
|
1301 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1302 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1303 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1304 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1305
|
|
1306 ;**********
|
|
1307
|
|
1308
|
|
1309 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1310 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1311 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1312 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1313
|
|
1314 000517 SN=SN+1
|
|
1315 000001 ZZ=ZZ-1
|
|
1316 031055 302 01 0 00 000001 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1317 STOP^
|
|
1318 031056 254 04 0 00 031057 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1319 031057 324 00 0 00 031060 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1320 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1321 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1322 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1323 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1324
|
|
1325 ;**********
|
|
1326
|
|
1327
|
|
1328 ;THIS TEST VERIFIES THAT ALL ACS EXIST.
|
|
1329 ;FIRST, EACH AC IS PRELOADED WITH ITS OWN ADDRESS;
|
|
1330 ;THEN, THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1331 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS
|
|
1332
|
|
1333 000520 SN=SN+1
|
|
1334 000000 ZZ=ZZ-1
|
|
1335 031060 302 00 0 00 000000 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1336 STOP^
|
|
1337 031061 254 04 0 00 031062 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1338 031062 324 00 0 00 031063 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1339 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1340 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1341 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1342 ;IN CASE OF FAILURE, LOOP TO C500 ADDRESS
|
|
1343
|
|
1344 ;**********
|
|
1345
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0038
|
|
|
|
1346 000600 SN=600
|
|
1347 000000 ZZ=0
|
|
1348
|
|
1349 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1350 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1351 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS; THEN THE CONTENTS OF EACH
|
|
1352 ;AC IS CHECKED FOR ITS ADDRESS. IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1353
|
|
1354 C600: REPEAT ^D15,
|
|
1355 < ZZ=ZZ+1
|
|
1356 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1357 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.>
|
|
1358 000001 ZZ=ZZ+1
|
|
1359 031063 201 00 0 00 000001 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1360 031064 202 00 0 00 000001 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1361 000002 ZZ=ZZ+1
|
|
1362 031065 201 00 0 00 000002 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1363 031066 202 00 0 00 000002 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1364 000003 ZZ=ZZ+1
|
|
1365 031067 201 00 0 00 000003 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1366 031070 202 00 0 00 000003 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1367 000004 ZZ=ZZ+1
|
|
1368 031071 201 00 0 00 000004 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1369 031072 202 00 0 00 000004 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1370 000005 ZZ=ZZ+1
|
|
1371 031073 201 00 0 00 000005 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1372 031074 202 00 0 00 000005 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1373 000006 ZZ=ZZ+1
|
|
1374 031075 201 00 0 00 000006 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1375 031076 202 00 0 00 000006 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1376 000007 ZZ=ZZ+1
|
|
1377 031077 201 00 0 00 000007 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1378 031100 202 00 0 00 000007 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1379 000010 ZZ=ZZ+1
|
|
1380 031101 201 00 0 00 000010 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1381 031102 202 00 0 00 000010 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1382 000011 ZZ=ZZ+1
|
|
1383 031103 201 00 0 00 000011 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1384 031104 202 00 0 00 000011 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1385 000012 ZZ=ZZ+1
|
|
1386 031105 201 00 0 00 000012 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1387 031106 202 00 0 00 000012 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1388 000013 ZZ=ZZ+1
|
|
1389 031107 201 00 0 00 000013 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1390 031110 202 00 0 00 000013 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1391 000014 ZZ=ZZ+1
|
|
1392 031111 201 00 0 00 000014 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1393 031112 202 00 0 00 000014 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1394 000015 ZZ=ZZ+1
|
|
1395 031113 201 00 0 00 000015 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1396 031114 202 00 0 00 000015 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1397 000016 ZZ=ZZ+1
|
|
1398 031115 201 00 0 00 000016 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1399 031116 202 00 0 00 000016 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1400 000017 ZZ=ZZ+1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0039
|
|
|
|
1401 031117 201 00 0 00 000017 MOVEI ZZ ;PRELOAD EACH AC WITH ITS ADDRESS
|
|
1402 031120 202 00 0 00 000017 MOVEM ZZ ;BY REFERENCING EACH AC AS MEMORY.
|
|
1403
|
|
1404 000020 ZZ=20
|
|
1405
|
|
1406 REPEAT ^D15,<
|
|
1407 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1408 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1409 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1410 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1411 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1412
|
|
1413 SN=SN+1
|
|
1414 ZZ=ZZ-1
|
|
1415 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1416 STOP
|
|
1417 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1418
|
|
1419 ;**********
|
|
1420 >
|
|
1421
|
|
1422 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1423 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1424 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1425 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1426 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1427
|
|
1428 000601 SN=SN+1
|
|
1429 000017 ZZ=ZZ-1
|
|
1430 031121 302 17 0 00 000017 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1431 STOP^
|
|
1432 031122 254 04 0 00 031123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1433 031123 324 00 0 00 031124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1434 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1435 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1436 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1437 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1438
|
|
1439 ;**********
|
|
1440
|
|
1441
|
|
1442 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1443 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1444 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1445 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1446 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1447
|
|
1448 000602 SN=SN+1
|
|
1449 000016 ZZ=ZZ-1
|
|
1450 031124 302 16 0 00 000016 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1451 STOP^
|
|
1452 031125 254 04 0 00 031126 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1453 031126 324 00 0 00 031127 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1454 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1455 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0040
|
|
|
|
1456 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1457 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1458
|
|
1459 ;**********
|
|
1460
|
|
1461
|
|
1462 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1463 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1464 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1465 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1466 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1467
|
|
1468 000603 SN=SN+1
|
|
1469 000015 ZZ=ZZ-1
|
|
1470 031127 302 15 0 00 000015 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1471 STOP^
|
|
1472 031130 254 04 0 00 031131 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1473 031131 324 00 0 00 031132 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1474 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1475 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1476 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1477 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1478
|
|
1479 ;**********
|
|
1480
|
|
1481
|
|
1482 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1483 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1484 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1485 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1486 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1487
|
|
1488 000604 SN=SN+1
|
|
1489 000014 ZZ=ZZ-1
|
|
1490 031132 302 14 0 00 000014 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1491 STOP^
|
|
1492 031133 254 04 0 00 031134 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1493 031134 324 00 0 00 031135 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 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1498
|
|
1499 ;**********
|
|
1500
|
|
1501
|
|
1502 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1503 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1504 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1505 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1506 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1507
|
|
1508 000605 SN=SN+1
|
|
1509 000013 ZZ=ZZ-1
|
|
1510 031135 302 13 0 00 000013 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0041
|
|
|
|
1511 STOP^
|
|
1512 031136 254 04 0 00 031137 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1513 031137 324 00 0 00 031140 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1514 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1515 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1516 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1517 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1518
|
|
1519 ;**********
|
|
1520
|
|
1521
|
|
1522 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1523 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1524 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1525 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1526 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1527
|
|
1528 000606 SN=SN+1
|
|
1529 000012 ZZ=ZZ-1
|
|
1530 031140 302 12 0 00 000012 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1531 STOP^
|
|
1532 031141 254 04 0 00 031142 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1533 031142 324 00 0 00 031143 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1534 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1535 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1536 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1537 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1538
|
|
1539 ;**********
|
|
1540
|
|
1541
|
|
1542 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1543 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1544 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1545 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1546 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1547
|
|
1548 000607 SN=SN+1
|
|
1549 000011 ZZ=ZZ-1
|
|
1550 031143 302 11 0 00 000011 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1551 STOP^
|
|
1552 031144 254 04 0 00 031145 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1553 031145 324 00 0 00 031146 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1554 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1555 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1556 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1557 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1558
|
|
1559 ;**********
|
|
1560
|
|
1561
|
|
1562 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1563 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1564 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1565 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0042
|
|
|
|
1566 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1567
|
|
1568 000610 SN=SN+1
|
|
1569 000010 ZZ=ZZ-1
|
|
1570 031146 302 10 0 00 000010 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1571 STOP^
|
|
1572 031147 254 04 0 00 031150 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1573 031150 324 00 0 00 031151 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1574 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1575 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1576 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1577 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1578
|
|
1579 ;**********
|
|
1580
|
|
1581
|
|
1582 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1583 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1584 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1585 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1586 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1587
|
|
1588 000611 SN=SN+1
|
|
1589 000007 ZZ=ZZ-1
|
|
1590 031151 302 07 0 00 000007 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1591 STOP^
|
|
1592 031152 254 04 0 00 031153 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1593 031153 324 00 0 00 031154 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1594 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1595 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1596 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1597 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1598
|
|
1599 ;**********
|
|
1600
|
|
1601
|
|
1602 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1603 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1604 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1605 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1606 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1607
|
|
1608 000612 SN=SN+1
|
|
1609 000006 ZZ=ZZ-1
|
|
1610 031154 302 06 0 00 000006 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1611 STOP^
|
|
1612 031155 254 04 0 00 031156 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1613 031156 324 00 0 00 031157 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1614 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1615 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1616 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1617 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1618
|
|
1619 ;**********
|
|
1620
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0043
|
|
|
|
1621
|
|
1622 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1623 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1624 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1625 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1626 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1627
|
|
1628 000613 SN=SN+1
|
|
1629 000005 ZZ=ZZ-1
|
|
1630 031157 302 05 0 00 000005 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1631 STOP^
|
|
1632 031160 254 04 0 00 031161 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1633 031161 324 00 0 00 031162 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1634 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1635 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1636 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1637 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1638
|
|
1639 ;**********
|
|
1640
|
|
1641
|
|
1642 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1643 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1644 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1645 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1646 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1647
|
|
1648 000614 SN=SN+1
|
|
1649 000004 ZZ=ZZ-1
|
|
1650 031162 302 04 0 00 000004 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1651 STOP^
|
|
1652 031163 254 04 0 00 031164 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1653 031164 324 00 0 00 031165 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 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1658
|
|
1659 ;**********
|
|
1660
|
|
1661
|
|
1662 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1663 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1664 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1665 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1666 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1667
|
|
1668 000615 SN=SN+1
|
|
1669 000003 ZZ=ZZ-1
|
|
1670 031165 302 03 0 00 000003 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1671 STOP^
|
|
1672 031166 254 04 0 00 031167 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1673 031167 324 00 0 00 031170 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1674 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1675 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 6-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0044
|
|
|
|
1676 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1677 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1678
|
|
1679 ;**********
|
|
1680
|
|
1681
|
|
1682 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1683 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1684 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1685 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1686 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1687
|
|
1688 000616 SN=SN+1
|
|
1689 000002 ZZ=ZZ-1
|
|
1690 031170 302 02 0 00 000002 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1691 STOP^
|
|
1692 031171 254 04 0 00 031172 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1693 031172 324 00 0 00 031173 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1694 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1695 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1696 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1697 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1698
|
|
1699 ;**********
|
|
1700
|
|
1701
|
|
1702 ;THIS TEST VERIFIES THAT AN ADDRESS WITHIN THE AC RANGE MAY BE ACCESSED AS
|
|
1703 ;EITHER AN AC OR A MEMORY LOCATION AND THAT EITHER REFERENCE REFERS TO THE
|
|
1704 ;SAME HARDWARE. EACH AC IS PRELOADED WITH ITS ADDRESS
|
|
1705 ;THEN THE CONTENTS OF EACH AC IS CHECKED FOR ITS ADDRESS.
|
|
1706 ;IF ANY AC DOES NOT CONTAIN ITS ADDRESS, THIS TEST FAILS.
|
|
1707
|
|
1708 000617 SN=SN+1
|
|
1709 000001 ZZ=ZZ-1
|
|
1710 031173 302 01 0 00 000001 CAIE ZZ,ZZ ;CHECK THAT EACH AC CONTAINS ITS OWN ADDRESS
|
|
1711 STOP^
|
|
1712 031174 254 04 0 00 031175 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1713 031175 324 00 0 00 031176 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1714 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1715 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1716 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1717 ;IN CASE OF FAILURE, LOOP TO C600 ADDRESS
|
|
1718
|
|
1719 ;**********
|
|
1720
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 7
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0045
|
|
|
|
1721 000700 SN=700
|
|
1722 000000 ZZ=0
|
|
1723
|
|
1724 C700: REPEAT ^D15,<
|
|
1725 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1726 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1727 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1728 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1729
|
|
1730 SN=SN+1
|
|
1731 ZZ=ZZ+1
|
|
1732 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1733 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1734 STOP
|
|
1735
|
|
1736 ;**********
|
|
1737 >
|
|
1738
|
|
1739 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1740 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1741 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1742 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1743
|
|
1744 000701 SN=SN+1
|
|
1745 000001 ZZ=ZZ+1
|
|
1746 031176 201 01 0 00 000001 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1747 031177 302 01 0 01 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1748 STOP^
|
|
1749 031200 254 04 0 00 031201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1750 031201 324 00 0 00 031202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1751 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1752 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1753 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1754
|
|
1755 ;**********
|
|
1756
|
|
1757
|
|
1758 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1759 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1760 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1761 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1762
|
|
1763 000702 SN=SN+1
|
|
1764 000002 ZZ=ZZ+1
|
|
1765 031202 201 02 0 00 000002 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1766 031203 302 02 0 02 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1767 STOP^
|
|
1768 031204 254 04 0 00 031205 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1769 031205 324 00 0 00 031206 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1770 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1771 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1772 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1773
|
|
1774 ;**********
|
|
1775
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 7-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0046
|
|
|
|
1776
|
|
1777 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1778 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1779 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1780 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1781
|
|
1782 000703 SN=SN+1
|
|
1783 000003 ZZ=ZZ+1
|
|
1784 031206 201 03 0 00 000003 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1785 031207 302 03 0 03 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1786 STOP^
|
|
1787 031210 254 04 0 00 031211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1788 031211 324 00 0 00 031212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1789 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1790 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1791 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1792
|
|
1793 ;**********
|
|
1794
|
|
1795
|
|
1796 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1797 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1798 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1799 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1800
|
|
1801 000704 SN=SN+1
|
|
1802 000004 ZZ=ZZ+1
|
|
1803 031212 201 04 0 00 000004 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1804 031213 302 04 0 04 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1805 STOP^
|
|
1806 031214 254 04 0 00 031215 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1807 031215 324 00 0 00 031216 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1808 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1809 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1810 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1811
|
|
1812 ;**********
|
|
1813
|
|
1814
|
|
1815 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1816 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1817 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1818 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1819
|
|
1820 000705 SN=SN+1
|
|
1821 000005 ZZ=ZZ+1
|
|
1822 031216 201 05 0 00 000005 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1823 031217 302 05 0 05 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1824 STOP^
|
|
1825 031220 254 04 0 00 031221 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1826 031221 324 00 0 00 031222 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1827 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1828 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1829 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1830
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 7-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0047
|
|
|
|
1831 ;**********
|
|
1832
|
|
1833
|
|
1834 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1835 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1836 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1837 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1838
|
|
1839 000706 SN=SN+1
|
|
1840 000006 ZZ=ZZ+1
|
|
1841 031222 201 06 0 00 000006 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1842 031223 302 06 0 06 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1843 STOP^
|
|
1844 031224 254 04 0 00 031225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1845 031225 324 00 0 00 031226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1846 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1847 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1848 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1849
|
|
1850 ;**********
|
|
1851
|
|
1852
|
|
1853 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1854 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1855 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1856 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1857
|
|
1858 000707 SN=SN+1
|
|
1859 000007 ZZ=ZZ+1
|
|
1860 031226 201 07 0 00 000007 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1861 031227 302 07 0 07 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1862 STOP^
|
|
1863 031230 254 04 0 00 031231 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1864 031231 324 00 0 00 031232 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1865 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1866 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1867 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1868
|
|
1869 ;**********
|
|
1870
|
|
1871
|
|
1872 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1873 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1874 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1875 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1876
|
|
1877 000710 SN=SN+1
|
|
1878 000010 ZZ=ZZ+1
|
|
1879 031232 201 10 0 00 000010 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1880 031233 302 10 0 10 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1881 STOP^
|
|
1882 031234 254 04 0 00 031235 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1883 031235 324 00 0 00 031236 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
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 7-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0048
|
|
|
|
1886 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1887
|
|
1888 ;**********
|
|
1889
|
|
1890
|
|
1891 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1892 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1893 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1894 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1895
|
|
1896 000711 SN=SN+1
|
|
1897 000011 ZZ=ZZ+1
|
|
1898 031236 201 11 0 00 000011 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1899 031237 302 11 0 11 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1900 STOP^
|
|
1901 031240 254 04 0 00 031241 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1902 031241 324 00 0 00 031242 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
|
|
1910 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1911 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1912 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1913 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1914
|
|
1915 000712 SN=SN+1
|
|
1916 000012 ZZ=ZZ+1
|
|
1917 031242 201 12 0 00 000012 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1918 031243 302 12 0 12 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1919 STOP^
|
|
1920 031244 254 04 0 00 031245 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1921 031245 324 00 0 00 031246 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
|
|
1926 ;**********
|
|
1927
|
|
1928
|
|
1929 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1930 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1931 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1932 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1933
|
|
1934 000713 SN=SN+1
|
|
1935 000013 ZZ=ZZ+1
|
|
1936 031246 201 13 0 00 000013 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1937 031247 302 13 0 13 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1938 STOP^
|
|
1939 031250 254 04 0 00 031251 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1940 031251 324 00 0 00 031252 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 7-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0049
|
|
|
|
1941 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1942 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1943 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1944
|
|
1945 ;**********
|
|
1946
|
|
1947
|
|
1948 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1949 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1950 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1951 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1952
|
|
1953 000714 SN=SN+1
|
|
1954 000014 ZZ=ZZ+1
|
|
1955 031252 201 14 0 00 000014 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1956 031253 302 14 0 14 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1957 STOP^
|
|
1958 031254 254 04 0 00 031255 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1959 031255 324 00 0 00 031256 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1960 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1961 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1962 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1963
|
|
1964 ;**********
|
|
1965
|
|
1966
|
|
1967 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1968 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1969 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1970 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1971
|
|
1972 000715 SN=SN+1
|
|
1973 000015 ZZ=ZZ+1
|
|
1974 031256 201 15 0 00 000015 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1975 031257 302 15 0 15 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1976 STOP^
|
|
1977 031260 254 04 0 00 031261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1978 031261 324 00 0 00 031262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1979 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1980 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
1981 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
1982
|
|
1983 ;**********
|
|
1984
|
|
1985
|
|
1986 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
1987 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
1988 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
1989 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
1990
|
|
1991 000716 SN=SN+1
|
|
1992 000016 ZZ=ZZ+1
|
|
1993 031262 201 16 0 00 000016 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
1994 031263 302 16 0 16 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
1995 STOP^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 7-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0050
|
|
|
|
1996 031264 254 04 0 00 031265 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
1997 031265 324 00 0 00 031266 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
1998 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
1999 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2000 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2001
|
|
2002 ;**********
|
|
2003
|
|
2004
|
|
2005 ;THIS TEST VERIFIES THAT THE INDEX REGISTERS ARE ACCESSABLE.
|
|
2006 ;FIRST, AN INDEX REGISTER IS PRELOADED WITH ITS ADDRESS; THEN,
|
|
2007 ;IT IS REFERENCED AS AN INDEX REGISTER. IF IT CONTAINS ITS ADDRESS, THIS TEST PASSES.
|
|
2008 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER.
|
|
2009
|
|
2010 000717 SN=SN+1
|
|
2011 000017 ZZ=ZZ+1
|
|
2012 031266 201 17 0 00 000017 MOVEI ZZ,ZZ ;PRELOAD INDEX REGISTER WITH ITS ADDRESS
|
|
2013 031267 302 17 0 17 000000 CAIE ZZ,(ZZ) ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2014 STOP^
|
|
2015 031270 254 04 0 00 031271 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2016 031271 324 00 0 00 031272 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2017 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2018 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2019 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2020
|
|
2021 ;**********
|
|
2022
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 8
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0051
|
|
|
|
2023 001000 SN=1000
|
|
2024 000000 ZZ=0
|
|
2025
|
|
2026 C1000: REPEAT ^D15,<
|
|
2027 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2028 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2029 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2030 .
|
|
2031 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2032 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2033
|
|
2034 SN=SN+1
|
|
2035 ZZ=ZZ+1
|
|
2036 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2037 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2038 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2039 STOP
|
|
2040
|
|
2041 ;**********
|
|
2042 >
|
|
2043
|
|
2044 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2045 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2046 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2047 .
|
|
2048 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2049 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2050
|
|
2051 001001 SN=SN+1
|
|
2052 000001 ZZ=ZZ+1
|
|
2053 031272 201 01 0 00 000001 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2054 031273 505 01 0 00 000001 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2055 031274 312 01 0 01 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2056 STOP^
|
|
2057 031275 254 04 0 00 031276 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2058 031276 324 00 0 00 031277 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2059 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2060 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2061 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2062
|
|
2063 ;**********
|
|
2064
|
|
2065
|
|
2066 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2067 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2068 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2069 .
|
|
2070 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2071 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2072
|
|
2073 001002 SN=SN+1
|
|
2074 000002 ZZ=ZZ+1
|
|
2075 031277 201 02 0 00 000002 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2076 031300 505 02 0 00 000002 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2077 031301 312 02 0 02 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 8-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0052
|
|
|
|
2078 STOP^
|
|
2079 031302 254 04 0 00 031303 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2080 031303 324 00 0 00 031304 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2081 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2082 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2083 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2084
|
|
2085 ;**********
|
|
2086
|
|
2087
|
|
2088 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2089 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2090 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2091 .
|
|
2092 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2093 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2094
|
|
2095 001003 SN=SN+1
|
|
2096 000003 ZZ=ZZ+1
|
|
2097 031304 201 03 0 00 000003 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2098 031305 505 03 0 00 000003 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2099 031306 312 03 0 03 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2100 STOP^
|
|
2101 031307 254 04 0 00 031310 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2102 031310 324 00 0 00 031311 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2103 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2104 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2105 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2106
|
|
2107 ;**********
|
|
2108
|
|
2109
|
|
2110 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2111 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2112 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2113 .
|
|
2114 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2115 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2116
|
|
2117 001004 SN=SN+1
|
|
2118 000004 ZZ=ZZ+1
|
|
2119 031311 201 04 0 00 000004 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2120 031312 505 04 0 00 000004 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2121 031313 312 04 0 04 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2122 STOP^
|
|
2123 031314 254 04 0 00 031315 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2124 031315 324 00 0 00 031316 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2125 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2126 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2127 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2128
|
|
2129 ;**********
|
|
2130
|
|
2131
|
|
2132 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 8-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0053
|
|
|
|
2133 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2134 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2135 .
|
|
2136 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2137 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2138
|
|
2139 001005 SN=SN+1
|
|
2140 000005 ZZ=ZZ+1
|
|
2141 031316 201 05 0 00 000005 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2142 031317 505 05 0 00 000005 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2143 031320 312 05 0 05 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2144 STOP^
|
|
2145 031321 254 04 0 00 031322 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2146 031322 324 00 0 00 031323 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2147 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2148 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2149 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2150
|
|
2151 ;**********
|
|
2152
|
|
2153
|
|
2154 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2155 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2156 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2157 .
|
|
2158 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2159 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2160
|
|
2161 001006 SN=SN+1
|
|
2162 000006 ZZ=ZZ+1
|
|
2163 031323 201 06 0 00 000006 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2164 031324 505 06 0 00 000006 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2165 031325 312 06 0 06 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2166 STOP^
|
|
2167 031326 254 04 0 00 031327 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2168 031327 324 00 0 00 031330 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2169 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2170 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2171 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2172
|
|
2173 ;**********
|
|
2174
|
|
2175
|
|
2176 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2177 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2178 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2179 .
|
|
2180 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2181 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2182
|
|
2183 001007 SN=SN+1
|
|
2184 000007 ZZ=ZZ+1
|
|
2185 031330 201 07 0 00 000007 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2186 031331 505 07 0 00 000007 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2187 031332 312 07 0 07 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 8-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0054
|
|
|
|
2188 STOP^
|
|
2189 031333 254 04 0 00 031334 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2190 031334 324 00 0 00 031335 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2191 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2192 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2193 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2194
|
|
2195 ;**********
|
|
2196
|
|
2197
|
|
2198 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2199 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2200 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2201 .
|
|
2202 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2203 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2204
|
|
2205 001010 SN=SN+1
|
|
2206 000010 ZZ=ZZ+1
|
|
2207 031335 201 10 0 00 000010 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2208 031336 505 10 0 00 000010 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2209 031337 312 10 0 10 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2210 STOP^
|
|
2211 031340 254 04 0 00 031341 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2212 031341 324 00 0 00 031342 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2213 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2214 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2215 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2216
|
|
2217 ;**********
|
|
2218
|
|
2219
|
|
2220 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2221 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2222 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2223 .
|
|
2224 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2225 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2226
|
|
2227 001011 SN=SN+1
|
|
2228 000011 ZZ=ZZ+1
|
|
2229 031342 201 11 0 00 000011 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2230 031343 505 11 0 00 000011 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2231 031344 312 11 0 11 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2232 STOP^
|
|
2233 031345 254 04 0 00 031346 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2234 031346 324 00 0 00 031347 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
|
|
2242 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 8-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0055
|
|
|
|
2243 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2244 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2245 .
|
|
2246 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2247 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2248
|
|
2249 001012 SN=SN+1
|
|
2250 000012 ZZ=ZZ+1
|
|
2251 031347 201 12 0 00 000012 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2252 031350 505 12 0 00 000012 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2253 031351 312 12 0 12 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2254 STOP^
|
|
2255 031352 254 04 0 00 031353 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2256 031353 324 00 0 00 031354 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2257 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2258 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2259 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2260
|
|
2261 ;**********
|
|
2262
|
|
2263
|
|
2264 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2265 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2266 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2267 .
|
|
2268 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2269 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2270
|
|
2271 001013 SN=SN+1
|
|
2272 000013 ZZ=ZZ+1
|
|
2273 031354 201 13 0 00 000013 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2274 031355 505 13 0 00 000013 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2275 031356 312 13 0 13 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2276 STOP^
|
|
2277 031357 254 04 0 00 031360 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2278 031360 324 00 0 00 031361 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2279 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2280 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2281 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2282
|
|
2283 ;**********
|
|
2284
|
|
2285
|
|
2286 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2287 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2288 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2289 .
|
|
2290 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2291 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2292
|
|
2293 001014 SN=SN+1
|
|
2294 000014 ZZ=ZZ+1
|
|
2295 031361 201 14 0 00 000014 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2296 031362 505 14 0 00 000014 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2297 031363 312 14 0 14 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 8-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0056
|
|
|
|
2298 STOP^
|
|
2299 031364 254 04 0 00 031365 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2300 031365 324 00 0 00 031366 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2301 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2302 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2303 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2304
|
|
2305 ;**********
|
|
2306
|
|
2307
|
|
2308 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2309 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2310 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2311 .
|
|
2312 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2313 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2314
|
|
2315 001015 SN=SN+1
|
|
2316 000015 ZZ=ZZ+1
|
|
2317 031366 201 15 0 00 000015 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2318 031367 505 15 0 00 000015 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2319 031370 312 15 0 15 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2320 STOP^
|
|
2321 031371 254 04 0 00 031372 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2322 031372 324 00 0 00 031373 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2323 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2324 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2325 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2326
|
|
2327 ;**********
|
|
2328
|
|
2329
|
|
2330 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
2331 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2332 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2333 .
|
|
2334 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2335 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2336
|
|
2337 001016 SN=SN+1
|
|
2338 000016 ZZ=ZZ+1
|
|
2339 031373 201 16 0 00 000016 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2340 031374 505 16 0 00 000016 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2341 031375 312 16 0 16 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2342 STOP^
|
|
2343 031376 254 04 0 00 031377 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2344 031377 324 00 0 00 031400 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2345 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2346 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2347 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2348
|
|
2349 ;**********
|
|
2350
|
|
2351
|
|
2352 ;THIS TEST VERIFIES THAT ALL INDEX REGISTERS INDEX CORRECTLY.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 8-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AC HARDWARE AND INDEX REGISTERS SEQ 0057
|
|
|
|
2353 ;FIRST, BOTH HALVES OF THE INDEX REGISTER ARE PRELOADED WITH ITS ADDRESS.
|
|
2354 ;THEN, THE INDEX REGISTER IS REFERENCED. IT IS THEN CHECKED FOR ITS ADDRESS IN BOTH HALVES
|
|
2355 .
|
|
2356 ;IF IT CONTAINS ITS ADDRESS IN BOTH HALVES THIS TEST PASSES.
|
|
2357 ;THIS TEST IS REPEATED 15 TIMES IN ORDER TO TEST EACH INDEX REGISTER
|
|
2358
|
|
2359 001017 SN=SN+1
|
|
2360 000017 ZZ=ZZ+1
|
|
2361 031400 201 17 0 00 000017 MOVEI ZZ,ZZ ;PRELOAD BOTH HALVES OF INDEX REG WITH ITS ADDRESS
|
|
2362 031401 505 17 0 00 000017 HRLI ZZ,ZZ ;PASS IF INDEX REGISTER CONTAINS ITS ADDRESS
|
|
2363 031402 312 17 0 17 000000 CAME ZZ,(ZZ) ;IN BOTH HALVES
|
|
2364 STOP^
|
|
2365 031403 254 04 0 00 031404 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2366 031404 324 00 0 00 031405 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2367 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2368 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2369 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2370
|
|
2371 ;**********
|
|
2372
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0058
|
|
|
|
2373 SUBTTL TEST OF INDEX REGISTER ADDRESSING
|
|
2374
|
|
2375 ;**********
|
|
2376
|
|
2377 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2378 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2379 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2380 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A 0,
|
|
2381 ;THE FINAL RESULT IN AC3 SHOULD BE 0. IF C(AC3)=0, THIS TEST PASSES.
|
|
2382
|
|
2383 031405 476 00 0 00 000003 C1100: SETOM 3 ;PRELOAD AC3 WITH -1,,1
|
|
2384 031406 402 00 0 00 000001 SETZM 1 ;PRELOAD AC1 WITH 0
|
|
2385 031407 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER 2 WITH 1
|
|
2386 031410 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2387 031411 332 00 0 00 000003 SKIPE 3 ;TEST INDEXING
|
|
2388 STOP^
|
|
2389 031412 254 04 0 00 031413 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2390 031413 324 00 0 00 031414 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2391 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2392 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2393 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2394
|
|
2395 ;**********
|
|
2396
|
|
2397 001200 SN=1200
|
|
2398 000000 ZZ=0
|
|
2399
|
|
2400 C1200: REPEAT ^D18,<
|
|
2401 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2402 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2403 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2404 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2405 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2406 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2407
|
|
2408 SN=SN+1
|
|
2409 ZZ=ZZ+ZZ
|
|
2410 IFE ZZ,<ZZ=1>
|
|
2411 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2412 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2413 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2414 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2415 CAIE 3,ZZ ;TEST INDEXING
|
|
2416 STOP
|
|
2417
|
|
2418 ;**********
|
|
2419 >
|
|
2420
|
|
2421 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2422 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2423 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2424 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2425 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2426 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2427
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0059
|
|
|
|
2428 001201 SN=SN+1
|
|
2429 000000 ZZ=ZZ+ZZ
|
|
2430 000001 IFE ZZ,<ZZ=1>
|
|
2431 031414 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2432 031415 201 01 0 00 000001 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2433 031416 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2434 031417 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2435 031420 302 03 0 00 000001 CAIE 3,ZZ ;TEST INDEXING
|
|
2436 STOP^
|
|
2437 031421 254 04 0 00 031422 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2438 031422 324 00 0 00 031423 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2439 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2440 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2441 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2442
|
|
2443 ;**********
|
|
2444
|
|
2445
|
|
2446 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2447 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2448 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2449 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2450 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2451 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2452
|
|
2453 001202 SN=SN+1
|
|
2454 000002 ZZ=ZZ+ZZ
|
|
2455 IFE ZZ,<ZZ=1>
|
|
2456 031423 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2457 031424 201 01 0 00 000002 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2458 031425 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2459 031426 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2460 031427 302 03 0 00 000002 CAIE 3,ZZ ;TEST INDEXING
|
|
2461 STOP^
|
|
2462 031430 254 04 0 00 031431 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2463 031431 324 00 0 00 031432 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2464 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2465 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2466 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2467
|
|
2468 ;**********
|
|
2469
|
|
2470
|
|
2471 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2472 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2473 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2474 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2475 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2476 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2477
|
|
2478 001203 SN=SN+1
|
|
2479 000004 ZZ=ZZ+ZZ
|
|
2480 IFE ZZ,<ZZ=1>
|
|
2481 031432 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2482 031433 201 01 0 00 000004 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0060
|
|
|
|
2483 031434 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2484 031435 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2485 031436 302 03 0 00 000004 CAIE 3,ZZ ;TEST INDEXING
|
|
2486 STOP^
|
|
2487 031437 254 04 0 00 031440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2488 031440 324 00 0 00 031441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2489 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2490 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2491 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2492
|
|
2493 ;**********
|
|
2494
|
|
2495
|
|
2496 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2497 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2498 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2499 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2500 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2501 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2502
|
|
2503 001204 SN=SN+1
|
|
2504 000010 ZZ=ZZ+ZZ
|
|
2505 IFE ZZ,<ZZ=1>
|
|
2506 031441 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2507 031442 201 01 0 00 000010 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2508 031443 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2509 031444 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2510 031445 302 03 0 00 000010 CAIE 3,ZZ ;TEST INDEXING
|
|
2511 STOP^
|
|
2512 031446 254 04 0 00 031447 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2513 031447 324 00 0 00 031450 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2514 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2515 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2516 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2517
|
|
2518 ;**********
|
|
2519
|
|
2520
|
|
2521 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2522 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2523 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2524 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2525 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2526 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2527
|
|
2528 001205 SN=SN+1
|
|
2529 000020 ZZ=ZZ+ZZ
|
|
2530 IFE ZZ,<ZZ=1>
|
|
2531 031450 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2532 031451 201 01 0 00 000020 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2533 031452 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2534 031453 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2535 031454 302 03 0 00 000020 CAIE 3,ZZ ;TEST INDEXING
|
|
2536 STOP^
|
|
2537 031455 254 04 0 00 031456 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0061
|
|
|
|
2538 031456 324 00 0 00 031457 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2539 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2540 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2541 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2542
|
|
2543 ;**********
|
|
2544
|
|
2545
|
|
2546 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2547 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2548 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2549 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2550 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2551 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2552
|
|
2553 001206 SN=SN+1
|
|
2554 000040 ZZ=ZZ+ZZ
|
|
2555 IFE ZZ,<ZZ=1>
|
|
2556 031457 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2557 031460 201 01 0 00 000040 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2558 031461 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2559 031462 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2560 031463 302 03 0 00 000040 CAIE 3,ZZ ;TEST INDEXING
|
|
2561 STOP^
|
|
2562 031464 254 04 0 00 031465 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2563 031465 324 00 0 00 031466 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2564 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2565 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2566 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2567
|
|
2568 ;**********
|
|
2569
|
|
2570
|
|
2571 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2572 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2573 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2574 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2575 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2576 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2577
|
|
2578 001207 SN=SN+1
|
|
2579 000100 ZZ=ZZ+ZZ
|
|
2580 IFE ZZ,<ZZ=1>
|
|
2581 031466 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2582 031467 201 01 0 00 000100 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2583 031470 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2584 031471 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2585 031472 302 03 0 00 000100 CAIE 3,ZZ ;TEST INDEXING
|
|
2586 STOP^
|
|
2587 031473 254 04 0 00 031474 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2588 031474 324 00 0 00 031475 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
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0062
|
|
|
|
2593 ;**********
|
|
2594
|
|
2595
|
|
2596 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2597 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2598 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2599 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2600 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2601 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2602
|
|
2603 001210 SN=SN+1
|
|
2604 000200 ZZ=ZZ+ZZ
|
|
2605 IFE ZZ,<ZZ=1>
|
|
2606 031475 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2607 031476 201 01 0 00 000200 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2608 031477 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2609 031500 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2610 031501 302 03 0 00 000200 CAIE 3,ZZ ;TEST INDEXING
|
|
2611 STOP^
|
|
2612 031502 254 04 0 00 031503 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2613 031503 324 00 0 00 031504 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
|
|
2621 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2622 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2623 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2624 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2625 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2626 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2627
|
|
2628 001211 SN=SN+1
|
|
2629 000400 ZZ=ZZ+ZZ
|
|
2630 IFE ZZ,<ZZ=1>
|
|
2631 031504 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2632 031505 201 01 0 00 000400 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2633 031506 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2634 031507 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2635 031510 302 03 0 00 000400 CAIE 3,ZZ ;TEST INDEXING
|
|
2636 STOP^
|
|
2637 031511 254 04 0 00 031512 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2638 031512 324 00 0 00 031513 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2639 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2640 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2641 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2642
|
|
2643 ;**********
|
|
2644
|
|
2645
|
|
2646 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2647 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0063
|
|
|
|
2648 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2649 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2650 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2651 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2652
|
|
2653 001212 SN=SN+1
|
|
2654 001000 ZZ=ZZ+ZZ
|
|
2655 IFE ZZ,<ZZ=1>
|
|
2656 031513 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2657 031514 201 01 0 00 001000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2658 031515 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2659 031516 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2660 031517 302 03 0 00 001000 CAIE 3,ZZ ;TEST INDEXING
|
|
2661 STOP^
|
|
2662 031520 254 04 0 00 031521 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2663 031521 324 00 0 00 031522 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2664 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2665 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2666 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2667
|
|
2668 ;**********
|
|
2669
|
|
2670
|
|
2671 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2672 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2673 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2674 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2675 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2676 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2677
|
|
2678 001213 SN=SN+1
|
|
2679 002000 ZZ=ZZ+ZZ
|
|
2680 IFE ZZ,<ZZ=1>
|
|
2681 031522 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2682 031523 201 01 0 00 002000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2683 031524 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2684 031525 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2685 031526 302 03 0 00 002000 CAIE 3,ZZ ;TEST INDEXING
|
|
2686 STOP^
|
|
2687 031527 254 04 0 00 031530 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2688 031530 324 00 0 00 031531 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2689 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2690 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2691 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2692
|
|
2693 ;**********
|
|
2694
|
|
2695
|
|
2696 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2697 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2698 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2699 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2700 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2701 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2702
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0064
|
|
|
|
2703 001214 SN=SN+1
|
|
2704 004000 ZZ=ZZ+ZZ
|
|
2705 IFE ZZ,<ZZ=1>
|
|
2706 031531 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2707 031532 201 01 0 00 004000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2708 031533 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2709 031534 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2710 031535 302 03 0 00 004000 CAIE 3,ZZ ;TEST INDEXING
|
|
2711 STOP^
|
|
2712 031536 254 04 0 00 031537 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2713 031537 324 00 0 00 031540 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2714 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2715 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2716 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2717
|
|
2718 ;**********
|
|
2719
|
|
2720
|
|
2721 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2722 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2723 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2724 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2725 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2726 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2727
|
|
2728 001215 SN=SN+1
|
|
2729 010000 ZZ=ZZ+ZZ
|
|
2730 IFE ZZ,<ZZ=1>
|
|
2731 031540 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2732 031541 201 01 0 00 010000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2733 031542 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2734 031543 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2735 031544 302 03 0 00 010000 CAIE 3,ZZ ;TEST INDEXING
|
|
2736 STOP^
|
|
2737 031545 254 04 0 00 031546 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2738 031546 324 00 0 00 031547 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2739 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2740 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2741 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2742
|
|
2743 ;**********
|
|
2744
|
|
2745
|
|
2746 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2747 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2748 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2749 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2750 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2751 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2752
|
|
2753 001216 SN=SN+1
|
|
2754 020000 ZZ=ZZ+ZZ
|
|
2755 IFE ZZ,<ZZ=1>
|
|
2756 031547 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2757 031550 201 01 0 00 020000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-7
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0065
|
|
|
|
2758 031551 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2759 031552 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2760 031553 302 03 0 00 020000 CAIE 3,ZZ ;TEST INDEXING
|
|
2761 STOP^
|
|
2762 031554 254 04 0 00 031555 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2763 031555 324 00 0 00 031556 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2764 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2765 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2766 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2767
|
|
2768 ;**********
|
|
2769
|
|
2770
|
|
2771 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2772 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2773 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2774 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2775 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2776 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2777
|
|
2778 001217 SN=SN+1
|
|
2779 040000 ZZ=ZZ+ZZ
|
|
2780 IFE ZZ,<ZZ=1>
|
|
2781 031556 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2782 031557 201 01 0 00 040000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2783 031560 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2784 031561 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2785 031562 302 03 0 00 040000 CAIE 3,ZZ ;TEST INDEXING
|
|
2786 STOP^
|
|
2787 031563 254 04 0 00 031564 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2788 031564 324 00 0 00 031565 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
|
|
2793 ;**********
|
|
2794
|
|
2795
|
|
2796 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2797 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2798 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2799 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2800 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2801 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2802
|
|
2803 001220 SN=SN+1
|
|
2804 100000 ZZ=ZZ+ZZ
|
|
2805 IFE ZZ,<ZZ=1>
|
|
2806 031565 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2807 031566 201 01 0 00 100000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2808 031567 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2809 031570 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2810 031571 302 03 0 00 100000 CAIE 3,ZZ ;TEST INDEXING
|
|
2811 STOP^
|
|
2812 031572 254 04 0 00 031573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-8
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0066
|
|
|
|
2813 031573 324 00 0 00 031574 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
|
|
2818 ;**********
|
|
2819
|
|
2820
|
|
2821 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2822 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2823 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2824 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2825 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2826 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2827
|
|
2828 001221 SN=SN+1
|
|
2829 200000 ZZ=ZZ+ZZ
|
|
2830 IFE ZZ,<ZZ=1>
|
|
2831 031574 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2832 031575 201 01 0 00 200000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2833 031576 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2834 031577 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2835 031600 302 03 0 00 200000 CAIE 3,ZZ ;TEST INDEXING
|
|
2836 STOP^
|
|
2837 031601 254 04 0 00 031602 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2838 031602 324 00 0 00 031603 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2839 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2840 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2841 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2842
|
|
2843 ;**********
|
|
2844
|
|
2845
|
|
2846 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2847 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2848 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2849 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2850 ;FLOATING 1. THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2851 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2852
|
|
2853 001222 SN=SN+1
|
|
2854 400000 ZZ=ZZ+ZZ
|
|
2855 IFE ZZ,<ZZ=1>
|
|
2856 031603 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2857 031604 201 01 0 00 400000 MOVEI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2858 031605 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2859 031606 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2860 031607 302 03 0 00 400000 CAIE 3,ZZ ;TEST INDEXING
|
|
2861 STOP^
|
|
2862 031610 254 04 0 00 031611 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2863 031611 324 00 0 00 031612 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2864 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2865 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2866 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2867
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 9-9
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0067
|
|
|
|
2868 ;**********
|
|
2869
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0068
|
|
|
|
2870 001300 SN=1300
|
|
2871 000000 ZZ=0
|
|
2872
|
|
2873 C1300: REPEAT ^D18,<
|
|
2874 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2875 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2876 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2877 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2878 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2879 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2880
|
|
2881 SN=SN+1
|
|
2882 ZZ=ZZ+ZZ
|
|
2883 IFE ZZ,<ZZ=1>
|
|
2884 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2885 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2886 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2887 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2888 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
2889 STOP
|
|
2890
|
|
2891 ;**********
|
|
2892 >
|
|
2893
|
|
2894 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2895 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2896 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2897 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2898 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2899 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2900
|
|
2901 001301 SN=SN+1
|
|
2902 000000 ZZ=ZZ+ZZ
|
|
2903 000001 IFE ZZ,<ZZ=1>
|
|
2904 031612 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2905 031613 205 01 0 00 000001 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2906 031614 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2907 031615 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2908 031616 312 03 0 00 034444 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
2909 STOP^
|
|
2910 031617 254 04 0 00 031620 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2911 031620 324 00 0 00 031621 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2912 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2913 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2914 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2915
|
|
2916 ;**********
|
|
2917
|
|
2918
|
|
2919 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2920 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2921 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2922 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2923 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2924 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0069
|
|
|
|
2925
|
|
2926 001302 SN=SN+1
|
|
2927 000002 ZZ=ZZ+ZZ
|
|
2928 IFE ZZ,<ZZ=1>
|
|
2929 031621 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2930 031622 205 01 0 00 000002 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2931 031623 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2932 031624 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2933 031625 312 03 0 00 034445 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
2934 STOP^
|
|
2935 031626 254 04 0 00 031627 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2936 031627 324 00 0 00 031630 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2937 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2938 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2939 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2940
|
|
2941 ;**********
|
|
2942
|
|
2943
|
|
2944 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2945 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2946 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2947 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2948 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2949 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2950
|
|
2951 001303 SN=SN+1
|
|
2952 000004 ZZ=ZZ+ZZ
|
|
2953 IFE ZZ,<ZZ=1>
|
|
2954 031630 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
2955 031631 205 01 0 00 000004 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2956 031632 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2957 031633 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2958 031634 312 03 0 00 034446 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
2959 STOP^
|
|
2960 031635 254 04 0 00 031636 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2961 031636 324 00 0 00 031637 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2962 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2963 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2964 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2965
|
|
2966 ;**********
|
|
2967
|
|
2968
|
|
2969 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2970 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2971 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2972 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2973 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2974 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
2975
|
|
2976 001304 SN=SN+1
|
|
2977 000010 ZZ=ZZ+ZZ
|
|
2978 IFE ZZ,<ZZ=1>
|
|
2979 031637 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0070
|
|
|
|
2980 031640 205 01 0 00 000010 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
2981 031641 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
2982 031642 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
2983 031643 312 03 0 00 034447 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
2984 STOP^
|
|
2985 031644 254 04 0 00 031645 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
2986 031645 324 00 0 00 031646 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
2987 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
2988 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
2989 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
2990
|
|
2991 ;**********
|
|
2992
|
|
2993
|
|
2994 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
2995 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
2996 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
2997 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
2998 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
2999 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3000
|
|
3001 001305 SN=SN+1
|
|
3002 000020 ZZ=ZZ+ZZ
|
|
3003 IFE ZZ,<ZZ=1>
|
|
3004 031646 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3005 031647 205 01 0 00 000020 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3006 031650 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3007 031651 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3008 031652 312 03 0 00 034450 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3009 STOP^
|
|
3010 031653 254 04 0 00 031654 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3011 031654 324 00 0 00 031655 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3012 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3013 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3014 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3015
|
|
3016 ;**********
|
|
3017
|
|
3018
|
|
3019 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3020 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3021 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3022 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3023 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3024 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3025
|
|
3026 001306 SN=SN+1
|
|
3027 000040 ZZ=ZZ+ZZ
|
|
3028 IFE ZZ,<ZZ=1>
|
|
3029 031655 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3030 031656 205 01 0 00 000040 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3031 031657 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3032 031660 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3033 031661 312 03 0 00 034451 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3034 STOP^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0071
|
|
|
|
3035 031662 254 04 0 00 031663 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3036 031663 324 00 0 00 031664 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3037 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3038 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3039 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3040
|
|
3041 ;**********
|
|
3042
|
|
3043
|
|
3044 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3045 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3046 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3047 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3048 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3049 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3050
|
|
3051 001307 SN=SN+1
|
|
3052 000100 ZZ=ZZ+ZZ
|
|
3053 IFE ZZ,<ZZ=1>
|
|
3054 031664 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3055 031665 205 01 0 00 000100 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3056 031666 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3057 031667 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3058 031670 312 03 0 00 034452 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3059 STOP^
|
|
3060 031671 254 04 0 00 031672 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3061 031672 324 00 0 00 031673 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3062 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3063 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3064 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3065
|
|
3066 ;**********
|
|
3067
|
|
3068
|
|
3069 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3070 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3071 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3072 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3073 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3074 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3075
|
|
3076 001310 SN=SN+1
|
|
3077 000200 ZZ=ZZ+ZZ
|
|
3078 IFE ZZ,<ZZ=1>
|
|
3079 031673 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3080 031674 205 01 0 00 000200 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3081 031675 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3082 031676 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3083 031677 312 03 0 00 034453 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3084 STOP^
|
|
3085 031700 254 04 0 00 031701 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3086 031701 324 00 0 00 031702 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3087 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3088 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3089 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0072
|
|
|
|
3090
|
|
3091 ;**********
|
|
3092
|
|
3093
|
|
3094 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3095 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3096 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3097 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3098 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3099 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3100
|
|
3101 001311 SN=SN+1
|
|
3102 000400 ZZ=ZZ+ZZ
|
|
3103 IFE ZZ,<ZZ=1>
|
|
3104 031702 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3105 031703 205 01 0 00 000400 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3106 031704 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3107 031705 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3108 031706 312 03 0 00 034454 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3109 STOP^
|
|
3110 031707 254 04 0 00 031710 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3111 031710 324 00 0 00 031711 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
|
|
3116 ;**********
|
|
3117
|
|
3118
|
|
3119 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3120 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3121 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3122 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3123 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3124 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3125
|
|
3126 001312 SN=SN+1
|
|
3127 001000 ZZ=ZZ+ZZ
|
|
3128 IFE ZZ,<ZZ=1>
|
|
3129 031711 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3130 031712 205 01 0 00 001000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3131 031713 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3132 031714 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3133 031715 312 03 0 00 034455 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3134 STOP^
|
|
3135 031716 254 04 0 00 031717 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3136 031717 324 00 0 00 031720 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3137 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3138 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3139 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3140
|
|
3141 ;**********
|
|
3142
|
|
3143
|
|
3144 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0073
|
|
|
|
3145 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3146 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3147 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3148 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3149 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3150
|
|
3151 001313 SN=SN+1
|
|
3152 002000 ZZ=ZZ+ZZ
|
|
3153 IFE ZZ,<ZZ=1>
|
|
3154 031720 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3155 031721 205 01 0 00 002000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3156 031722 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3157 031723 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3158 031724 312 03 0 00 034456 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3159 STOP^
|
|
3160 031725 254 04 0 00 031726 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3161 031726 324 00 0 00 031727 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3162 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3163 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3164 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3165
|
|
3166 ;**********
|
|
3167
|
|
3168
|
|
3169 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3170 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3171 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3172 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3173 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3174 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3175
|
|
3176 001314 SN=SN+1
|
|
3177 004000 ZZ=ZZ+ZZ
|
|
3178 IFE ZZ,<ZZ=1>
|
|
3179 031727 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3180 031730 205 01 0 00 004000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3181 031731 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3182 031732 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3183 031733 312 03 0 00 034457 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3184 STOP^
|
|
3185 031734 254 04 0 00 031735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3186 031735 324 00 0 00 031736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3187 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3188 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3189 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3190
|
|
3191 ;**********
|
|
3192
|
|
3193
|
|
3194 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3195 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3196 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3197 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3198 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3199 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0074
|
|
|
|
3200
|
|
3201 001315 SN=SN+1
|
|
3202 010000 ZZ=ZZ+ZZ
|
|
3203 IFE ZZ,<ZZ=1>
|
|
3204 031736 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3205 031737 205 01 0 00 010000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3206 031740 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3207 031741 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3208 031742 312 03 0 00 034460 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3209 STOP^
|
|
3210 031743 254 04 0 00 031744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3211 031744 324 00 0 00 031745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3212 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3213 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3214 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3215
|
|
3216 ;**********
|
|
3217
|
|
3218
|
|
3219 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3220 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3221 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3222 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3223 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3224 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3225
|
|
3226 001316 SN=SN+1
|
|
3227 020000 ZZ=ZZ+ZZ
|
|
3228 IFE ZZ,<ZZ=1>
|
|
3229 031745 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3230 031746 205 01 0 00 020000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3231 031747 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3232 031750 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3233 031751 312 03 0 00 034461 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3234 STOP^
|
|
3235 031752 254 04 0 00 031753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3236 031753 324 00 0 00 031754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3237 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3238 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3239 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3240
|
|
3241 ;**********
|
|
3242
|
|
3243
|
|
3244 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3245 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3246 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3247 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3248 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3249 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3250
|
|
3251 001317 SN=SN+1
|
|
3252 040000 ZZ=ZZ+ZZ
|
|
3253 IFE ZZ,<ZZ=1>
|
|
3254 031754 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-7
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0075
|
|
|
|
3255 031755 205 01 0 00 040000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3256 031756 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3257 031757 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3258 031760 312 03 0 00 034462 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3259 STOP^
|
|
3260 031761 254 04 0 00 031762 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3261 031762 324 00 0 00 031763 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
|
|
3266 ;**********
|
|
3267
|
|
3268
|
|
3269 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3270 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3271 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3272 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3273 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3274 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3275
|
|
3276 001320 SN=SN+1
|
|
3277 100000 ZZ=ZZ+ZZ
|
|
3278 IFE ZZ,<ZZ=1>
|
|
3279 031763 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3280 031764 205 01 0 00 100000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3281 031765 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3282 031766 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3283 031767 312 03 0 00 034463 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3284 STOP^
|
|
3285 031770 254 04 0 00 031771 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3286 031771 324 00 0 00 031772 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3287 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3288 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3289 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3290
|
|
3291 ;**********
|
|
3292
|
|
3293
|
|
3294 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3295 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3296 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3297 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3298 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3299 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3300
|
|
3301 001321 SN=SN+1
|
|
3302 200000 ZZ=ZZ+ZZ
|
|
3303 IFE ZZ,<ZZ=1>
|
|
3304 031772 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3305 031773 205 01 0 00 200000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3306 031774 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3307 031775 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3308 031776 312 03 0 00 034464 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3309 STOP^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 10-8
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0076
|
|
|
|
3310 031777 254 04 0 00 032000 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3311 032000 324 00 0 00 032001 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3312 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3313 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3314 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3315
|
|
3316 ;**********
|
|
3317
|
|
3318
|
|
3319 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3320 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3321 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3322 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3323 ;FLOATING 1, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 1.
|
|
3324 ;IF C(AC3)=A FLOATING 1, THIS TEST PASSES.
|
|
3325
|
|
3326 001322 SN=SN+1
|
|
3327 400000 ZZ=ZZ+ZZ
|
|
3328 IFE ZZ,<ZZ=1>
|
|
3329 032001 476 00 0 00 000003 SETOM 3 ;PRELOAD AC3 WITH -1,,-1
|
|
3330 032002 205 01 0 00 400000 MOVSI 1,ZZ ;PRELOAD AC1 WITH FLOATING 1
|
|
3331 032003 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3332 032004 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3333 032005 312 03 0 00 034465 CAME 3,[ZZ,,0] ;TEST INDEXING
|
|
3334 STOP^
|
|
3335 032006 254 04 0 00 032007 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3336 032007 324 00 0 00 032010 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3337 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3338 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3339 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3340
|
|
3341 ;**********
|
|
3342
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0077
|
|
|
|
3343 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3344 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3345 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3346 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH -1,,-1,
|
|
3347 ;THE FINAL RESULT IN AC3 SHOULD BE -1,,-1. IF C(AC3)=-1,,-1, THIS TEST PASSES.
|
|
3348
|
|
3349 032010 402 00 0 00 000003 C1400: SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3350 032011 476 00 0 00 000001 SETOM 1 ;PRELOAD AC1 WITH -1,,-1
|
|
3351 032012 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3352 032013 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3353 032014 312 03 0 00 034466 CAME 3,[-1,,-1] ;TEST INDEXING
|
|
3354 STOP^
|
|
3355 032015 254 04 0 00 032016 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3356 032016 324 00 0 00 032017 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3357 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3358 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3359 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3360
|
|
3361 ;**********
|
|
3362
|
|
3363 001500 SN=1500
|
|
3364 000000 ZZ=0
|
|
3365
|
|
3366 C1500: REPEAT ^D18,<
|
|
3367 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3368 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3369 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3370 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3371 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3372 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3373
|
|
3374 SN=SN+1
|
|
3375 ZZ=<ZZ+ZZ+1>&777777
|
|
3376 IFE <ZZ-1>,<ZZ=777776>
|
|
3377 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3378 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3379 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3380 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3381 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3382 STOP
|
|
3383
|
|
3384 ;**********
|
|
3385 >
|
|
3386
|
|
3387 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3388 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3389 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3390 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3391 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3392 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3393
|
|
3394 001501 SN=SN+1
|
|
3395 000001 ZZ=<ZZ+ZZ+1>&777777
|
|
3396 777776 IFE <ZZ-1>,<ZZ=777776>
|
|
3397 032017 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0078
|
|
|
|
3398 032020 561 01 0 00 777776 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3399 032021 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3400 032022 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3401 032023 312 03 0 00 034467 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3402 STOP^
|
|
3403 032024 254 04 0 00 032025 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3404 032025 324 00 0 00 032026 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
|
|
3409 ;**********
|
|
3410
|
|
3411
|
|
3412 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3413 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3414 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3415 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3416 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3417 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3418
|
|
3419 001502 SN=SN+1
|
|
3420 777775 ZZ=<ZZ+ZZ+1>&777777
|
|
3421 IFE <ZZ-1>,<ZZ=777776>
|
|
3422 032026 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3423 032027 561 01 0 00 777775 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3424 032030 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3425 032031 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3426 032032 312 03 0 00 034470 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3427 STOP^
|
|
3428 032033 254 04 0 00 032034 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3429 032034 324 00 0 00 032035 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3430 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3431 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3432 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3433
|
|
3434 ;**********
|
|
3435
|
|
3436
|
|
3437 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3438 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3439 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3440 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3441 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3442 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3443
|
|
3444 001503 SN=SN+1
|
|
3445 777773 ZZ=<ZZ+ZZ+1>&777777
|
|
3446 IFE <ZZ-1>,<ZZ=777776>
|
|
3447 032035 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3448 032036 561 01 0 00 777773 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3449 032037 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3450 032040 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3451 032041 312 03 0 00 034471 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3452 STOP^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0079
|
|
|
|
3453 032042 254 04 0 00 032043 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3454 032043 324 00 0 00 032044 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3455 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3456 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3457 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3458
|
|
3459 ;**********
|
|
3460
|
|
3461
|
|
3462 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3463 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3464 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3465 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3466 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3467 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3468
|
|
3469 001504 SN=SN+1
|
|
3470 777767 ZZ=<ZZ+ZZ+1>&777777
|
|
3471 IFE <ZZ-1>,<ZZ=777776>
|
|
3472 032044 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3473 032045 561 01 0 00 777767 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3474 032046 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3475 032047 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3476 032050 312 03 0 00 034472 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3477 STOP^
|
|
3478 032051 254 04 0 00 032052 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3479 032052 324 00 0 00 032053 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3480 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3481 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3482 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3483
|
|
3484 ;**********
|
|
3485
|
|
3486
|
|
3487 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3488 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3489 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3490 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3491 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3492 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3493
|
|
3494 001505 SN=SN+1
|
|
3495 777757 ZZ=<ZZ+ZZ+1>&777777
|
|
3496 IFE <ZZ-1>,<ZZ=777776>
|
|
3497 032053 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3498 032054 561 01 0 00 777757 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3499 032055 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3500 032056 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3501 032057 312 03 0 00 034473 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3502 STOP^
|
|
3503 032060 254 04 0 00 032061 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3504 032061 324 00 0 00 032062 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^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0080
|
|
|
|
3508
|
|
3509 ;**********
|
|
3510
|
|
3511
|
|
3512 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3513 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3514 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3515 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3516 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3517 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3518
|
|
3519 001506 SN=SN+1
|
|
3520 777737 ZZ=<ZZ+ZZ+1>&777777
|
|
3521 IFE <ZZ-1>,<ZZ=777776>
|
|
3522 032062 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3523 032063 561 01 0 00 777737 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3524 032064 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3525 032065 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3526 032066 312 03 0 00 034474 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3527 STOP^
|
|
3528 032067 254 04 0 00 032070 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3529 032070 324 00 0 00 032071 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3530 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3531 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3532 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3533
|
|
3534 ;**********
|
|
3535
|
|
3536
|
|
3537 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3538 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3539 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3540 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3541 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3542 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3543
|
|
3544 001507 SN=SN+1
|
|
3545 777677 ZZ=<ZZ+ZZ+1>&777777
|
|
3546 IFE <ZZ-1>,<ZZ=777776>
|
|
3547 032071 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3548 032072 561 01 0 00 777677 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3549 032073 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3550 032074 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3551 032075 312 03 0 00 034475 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3552 STOP^
|
|
3553 032076 254 04 0 00 032077 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3554 032077 324 00 0 00 032100 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 ;**********
|
|
3560
|
|
3561
|
|
3562 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0081
|
|
|
|
3563 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3564 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3565 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3566 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3567 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3568
|
|
3569 001510 SN=SN+1
|
|
3570 777577 ZZ=<ZZ+ZZ+1>&777777
|
|
3571 IFE <ZZ-1>,<ZZ=777776>
|
|
3572 032100 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3573 032101 561 01 0 00 777577 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3574 032102 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3575 032103 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3576 032104 312 03 0 00 034476 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3577 STOP^
|
|
3578 032105 254 04 0 00 032106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3579 032106 324 00 0 00 032107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3580 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3581 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3582 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3583
|
|
3584 ;**********
|
|
3585
|
|
3586
|
|
3587 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3588 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3589 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3590 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3591 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3592 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3593
|
|
3594 001511 SN=SN+1
|
|
3595 777377 ZZ=<ZZ+ZZ+1>&777777
|
|
3596 IFE <ZZ-1>,<ZZ=777776>
|
|
3597 032107 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3598 032110 561 01 0 00 777377 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3599 032111 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3600 032112 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3601 032113 312 03 0 00 034477 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3602 STOP^
|
|
3603 032114 254 04 0 00 032115 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3604 032115 324 00 0 00 032116 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3605 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3606 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3607 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3608
|
|
3609 ;**********
|
|
3610
|
|
3611
|
|
3612 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3613 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3614 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3615 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3616 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3617 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0082
|
|
|
|
3618
|
|
3619 001512 SN=SN+1
|
|
3620 776777 ZZ=<ZZ+ZZ+1>&777777
|
|
3621 IFE <ZZ-1>,<ZZ=777776>
|
|
3622 032116 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3623 032117 561 01 0 00 776777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3624 032120 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3625 032121 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3626 032122 312 03 0 00 034500 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3627 STOP^
|
|
3628 032123 254 04 0 00 032124 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3629 032124 324 00 0 00 032125 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3630 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3631 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3632 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3633
|
|
3634 ;**********
|
|
3635
|
|
3636
|
|
3637 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3638 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3639 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3640 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3641 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3642 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3643
|
|
3644 001513 SN=SN+1
|
|
3645 775777 ZZ=<ZZ+ZZ+1>&777777
|
|
3646 IFE <ZZ-1>,<ZZ=777776>
|
|
3647 032125 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3648 032126 561 01 0 00 775777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3649 032127 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3650 032130 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3651 032131 312 03 0 00 034501 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3652 STOP^
|
|
3653 032132 254 04 0 00 032133 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3654 032133 324 00 0 00 032134 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
|
|
3659 ;**********
|
|
3660
|
|
3661
|
|
3662 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3663 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3664 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3665 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3666 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3667 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3668
|
|
3669 001514 SN=SN+1
|
|
3670 773777 ZZ=<ZZ+ZZ+1>&777777
|
|
3671 IFE <ZZ-1>,<ZZ=777776>
|
|
3672 032134 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0083
|
|
|
|
3673 032135 561 01 0 00 773777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3674 032136 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3675 032137 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3676 032140 312 03 0 00 034502 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3677 STOP^
|
|
3678 032141 254 04 0 00 032142 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3679 032142 324 00 0 00 032143 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3680 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3681 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3682 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3683
|
|
3684 ;**********
|
|
3685
|
|
3686
|
|
3687 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3688 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3689 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3690 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3691 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3692 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3693
|
|
3694 001515 SN=SN+1
|
|
3695 767777 ZZ=<ZZ+ZZ+1>&777777
|
|
3696 IFE <ZZ-1>,<ZZ=777776>
|
|
3697 032143 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3698 032144 561 01 0 00 767777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3699 032145 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3700 032146 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3701 032147 312 03 0 00 034503 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3702 STOP^
|
|
3703 032150 254 04 0 00 032151 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3704 032151 324 00 0 00 032152 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3705 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3706 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3707 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3708
|
|
3709 ;**********
|
|
3710
|
|
3711
|
|
3712 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3713 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3714 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3715 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3716 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3717 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3718
|
|
3719 001516 SN=SN+1
|
|
3720 757777 ZZ=<ZZ+ZZ+1>&777777
|
|
3721 IFE <ZZ-1>,<ZZ=777776>
|
|
3722 032152 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3723 032153 561 01 0 00 757777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3724 032154 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3725 032155 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3726 032156 312 03 0 00 034504 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3727 STOP^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-7
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0084
|
|
|
|
3728 032157 254 04 0 00 032160 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3729 032160 324 00 0 00 032161 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3730 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3731 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3732 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3733
|
|
3734 ;**********
|
|
3735
|
|
3736
|
|
3737 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3738 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3739 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3740 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3741 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3742 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3743
|
|
3744 001517 SN=SN+1
|
|
3745 737777 ZZ=<ZZ+ZZ+1>&777777
|
|
3746 IFE <ZZ-1>,<ZZ=777776>
|
|
3747 032161 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3748 032162 561 01 0 00 737777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3749 032163 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3750 032164 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3751 032165 312 03 0 00 034505 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3752 STOP^
|
|
3753 032166 254 04 0 00 032167 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3754 032167 324 00 0 00 032170 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3755 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3756 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3757 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3758
|
|
3759 ;**********
|
|
3760
|
|
3761
|
|
3762 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3763 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3764 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3765 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3766 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3767 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3768
|
|
3769 001520 SN=SN+1
|
|
3770 677777 ZZ=<ZZ+ZZ+1>&777777
|
|
3771 IFE <ZZ-1>,<ZZ=777776>
|
|
3772 032170 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3773 032171 561 01 0 00 677777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3774 032172 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3775 032173 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3776 032174 312 03 0 00 034506 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3777 STOP^
|
|
3778 032175 254 04 0 00 032176 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3779 032176 324 00 0 00 032177 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3780 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3781 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3782 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 11-8
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0085
|
|
|
|
3783
|
|
3784 ;**********
|
|
3785
|
|
3786
|
|
3787 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3788 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3789 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3790 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3791 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3792 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3793
|
|
3794 001521 SN=SN+1
|
|
3795 577777 ZZ=<ZZ+ZZ+1>&777777
|
|
3796 IFE <ZZ-1>,<ZZ=777776>
|
|
3797 032177 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3798 032200 561 01 0 00 577777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3799 032201 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3800 032202 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3801 032203 312 03 0 00 034507 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3802 STOP^
|
|
3803 032204 254 04 0 00 032205 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3804 032205 324 00 0 00 032206 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3805 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3806 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3807 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3808
|
|
3809 ;**********
|
|
3810
|
|
3811
|
|
3812 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3813 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3814 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3815 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3816 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3817 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3818
|
|
3819 001522 SN=SN+1
|
|
3820 377777 ZZ=<ZZ+ZZ+1>&777777
|
|
3821 IFE <ZZ-1>,<ZZ=777776>
|
|
3822 032206 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3823 032207 561 01 0 00 377777 HRROI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3824 032210 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3825 032211 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3826 032212 312 03 0 00 034510 CAME 3,[-1,,ZZ] ;TEST INDEXING
|
|
3827 STOP^
|
|
3828 032213 254 04 0 00 032214 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3829 032214 324 00 0 00 032215 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3830 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3831 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3832 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3833
|
|
3834 ;**********
|
|
3835
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0086
|
|
|
|
3836 001600 SN=1600
|
|
3837 000000 ZZ=0
|
|
3838
|
|
3839 C1600: REPEAT ^D18,<
|
|
3840 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3841 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3842 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3843 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3844 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3845 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3846
|
|
3847 SN=SN+1
|
|
3848 ZZ=<ZZ+ZZ+1>&777777
|
|
3849 IFE <ZZ-1>,<ZZ=777776>
|
|
3850 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3851 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3852 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3853 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3854 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
3855 STOP
|
|
3856
|
|
3857 ;**********
|
|
3858 >
|
|
3859
|
|
3860 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3861 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3862 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3863 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3864 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3865 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3866
|
|
3867 001601 SN=SN+1
|
|
3868 000001 ZZ=<ZZ+ZZ+1>&777777
|
|
3869 777776 IFE <ZZ-1>,<ZZ=777776>
|
|
3870 032215 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3871 032216 525 01 0 00 777776 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3872 032217 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3873 032220 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3874 032221 312 03 0 00 034511 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
3875 STOP^
|
|
3876 032222 254 04 0 00 032223 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3877 032223 324 00 0 00 032224 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 ;**********
|
|
3883
|
|
3884
|
|
3885 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3886 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3887 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3888 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3889 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3890 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0087
|
|
|
|
3891
|
|
3892 001602 SN=SN+1
|
|
3893 777775 ZZ=<ZZ+ZZ+1>&777777
|
|
3894 IFE <ZZ-1>,<ZZ=777776>
|
|
3895 032224 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3896 032225 525 01 0 00 777775 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3897 032226 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3898 032227 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3899 032230 312 03 0 00 034512 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
3900 STOP^
|
|
3901 032231 254 04 0 00 032232 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3902 032232 324 00 0 00 032233 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3903 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3904 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3905 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3906
|
|
3907 ;**********
|
|
3908
|
|
3909
|
|
3910 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3911 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3912 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3913 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3914 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3915 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3916
|
|
3917 001603 SN=SN+1
|
|
3918 777773 ZZ=<ZZ+ZZ+1>&777777
|
|
3919 IFE <ZZ-1>,<ZZ=777776>
|
|
3920 032233 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3921 032234 525 01 0 00 777773 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3922 032235 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3923 032236 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3924 032237 312 03 0 00 034513 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
3925 STOP^
|
|
3926 032240 254 04 0 00 032241 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3927 032241 324 00 0 00 032242 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3928 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3929 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3930 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3931
|
|
3932 ;**********
|
|
3933
|
|
3934
|
|
3935 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3936 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3937 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3938 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3939 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3940 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3941
|
|
3942 001604 SN=SN+1
|
|
3943 777767 ZZ=<ZZ+ZZ+1>&777777
|
|
3944 IFE <ZZ-1>,<ZZ=777776>
|
|
3945 032242 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0088
|
|
|
|
3946 032243 525 01 0 00 777767 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3947 032244 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3948 032245 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3949 032246 312 03 0 00 034514 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
3950 STOP^
|
|
3951 032247 254 04 0 00 032250 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3952 032250 324 00 0 00 032251 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3953 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3954 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3955 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3956
|
|
3957 ;**********
|
|
3958
|
|
3959
|
|
3960 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3961 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3962 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3963 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3964 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3965 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3966
|
|
3967 001605 SN=SN+1
|
|
3968 777757 ZZ=<ZZ+ZZ+1>&777777
|
|
3969 IFE <ZZ-1>,<ZZ=777776>
|
|
3970 032251 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3971 032252 525 01 0 00 777757 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3972 032253 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3973 032254 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3974 032255 312 03 0 00 034515 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
3975 STOP^
|
|
3976 032256 254 04 0 00 032257 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
3977 032257 324 00 0 00 032260 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
3978 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
3979 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
3980 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
3981
|
|
3982 ;**********
|
|
3983
|
|
3984
|
|
3985 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
3986 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
3987 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
3988 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
3989 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
3990 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
3991
|
|
3992 001606 SN=SN+1
|
|
3993 777737 ZZ=<ZZ+ZZ+1>&777777
|
|
3994 IFE <ZZ-1>,<ZZ=777776>
|
|
3995 032260 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
3996 032261 525 01 0 00 777737 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
3997 032262 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
3998 032263 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
3999 032264 312 03 0 00 034516 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4000 STOP^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0089
|
|
|
|
4001 032265 254 04 0 00 032266 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4002 032266 324 00 0 00 032267 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4003 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4004 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4005 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4006
|
|
4007 ;**********
|
|
4008
|
|
4009
|
|
4010 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4011 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4012 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4013 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4014 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4015 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4016
|
|
4017 001607 SN=SN+1
|
|
4018 777677 ZZ=<ZZ+ZZ+1>&777777
|
|
4019 IFE <ZZ-1>,<ZZ=777776>
|
|
4020 032267 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4021 032270 525 01 0 00 777677 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4022 032271 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4023 032272 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4024 032273 312 03 0 00 034517 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4025 STOP^
|
|
4026 032274 254 04 0 00 032275 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4027 032275 324 00 0 00 032276 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4028 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4029 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4030 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4031
|
|
4032 ;**********
|
|
4033
|
|
4034
|
|
4035 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4036 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4037 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4038 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4039 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4040 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4041
|
|
4042 001610 SN=SN+1
|
|
4043 777577 ZZ=<ZZ+ZZ+1>&777777
|
|
4044 IFE <ZZ-1>,<ZZ=777776>
|
|
4045 032276 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4046 032277 525 01 0 00 777577 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4047 032300 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4048 032301 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4049 032302 312 03 0 00 034520 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4050 STOP^
|
|
4051 032303 254 04 0 00 032304 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4052 032304 324 00 0 00 032305 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4053 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4054 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4055 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0090
|
|
|
|
4056
|
|
4057 ;**********
|
|
4058
|
|
4059
|
|
4060 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4061 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4062 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4063 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4064 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4065 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4066
|
|
4067 001611 SN=SN+1
|
|
4068 777377 ZZ=<ZZ+ZZ+1>&777777
|
|
4069 IFE <ZZ-1>,<ZZ=777776>
|
|
4070 032305 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4071 032306 525 01 0 00 777377 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4072 032307 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4073 032310 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4074 032311 312 03 0 00 034521 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4075 STOP^
|
|
4076 032312 254 04 0 00 032313 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4077 032313 324 00 0 00 032314 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4078 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4079 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4080 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4081
|
|
4082 ;**********
|
|
4083
|
|
4084
|
|
4085 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4086 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4087 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4088 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4089 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4090 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4091
|
|
4092 001612 SN=SN+1
|
|
4093 776777 ZZ=<ZZ+ZZ+1>&777777
|
|
4094 IFE <ZZ-1>,<ZZ=777776>
|
|
4095 032314 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4096 032315 525 01 0 00 776777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4097 032316 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4098 032317 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4099 032320 312 03 0 00 034522 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4100 STOP^
|
|
4101 032321 254 04 0 00 032322 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4102 032322 324 00 0 00 032323 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4103 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4104 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4105 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4106
|
|
4107 ;**********
|
|
4108
|
|
4109
|
|
4110 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0091
|
|
|
|
4111 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4112 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4113 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4114 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4115 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4116
|
|
4117 001613 SN=SN+1
|
|
4118 775777 ZZ=<ZZ+ZZ+1>&777777
|
|
4119 IFE <ZZ-1>,<ZZ=777776>
|
|
4120 032323 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4121 032324 525 01 0 00 775777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4122 032325 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4123 032326 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4124 032327 312 03 0 00 034523 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4125 STOP^
|
|
4126 032330 254 04 0 00 032331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4127 032331 324 00 0 00 032332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4128 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4129 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4130 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4131
|
|
4132 ;**********
|
|
4133
|
|
4134
|
|
4135 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4136 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4137 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4138 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4139 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4140 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4141
|
|
4142 001614 SN=SN+1
|
|
4143 773777 ZZ=<ZZ+ZZ+1>&777777
|
|
4144 IFE <ZZ-1>,<ZZ=777776>
|
|
4145 032332 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4146 032333 525 01 0 00 773777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4147 032334 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4148 032335 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4149 032336 312 03 0 00 034524 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4150 STOP^
|
|
4151 032337 254 04 0 00 032340 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4152 032340 324 00 0 00 032341 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4153 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4154 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4155 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4156
|
|
4157 ;**********
|
|
4158
|
|
4159
|
|
4160 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4161 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4162 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4163 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4164 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4165 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0092
|
|
|
|
4166
|
|
4167 001615 SN=SN+1
|
|
4168 767777 ZZ=<ZZ+ZZ+1>&777777
|
|
4169 IFE <ZZ-1>,<ZZ=777776>
|
|
4170 032341 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4171 032342 525 01 0 00 767777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4172 032343 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4173 032344 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4174 032345 312 03 0 00 034525 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4175 STOP^
|
|
4176 032346 254 04 0 00 032347 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4177 032347 324 00 0 00 032350 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4178 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4179 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4180 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4181
|
|
4182 ;**********
|
|
4183
|
|
4184
|
|
4185 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4186 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4187 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4188 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4189 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4190 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4191
|
|
4192 001616 SN=SN+1
|
|
4193 757777 ZZ=<ZZ+ZZ+1>&777777
|
|
4194 IFE <ZZ-1>,<ZZ=777776>
|
|
4195 032350 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4196 032351 525 01 0 00 757777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4197 032352 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4198 032353 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4199 032354 312 03 0 00 034526 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4200 STOP^
|
|
4201 032355 254 04 0 00 032356 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4202 032356 324 00 0 00 032357 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4203 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4204 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4205 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4206
|
|
4207 ;**********
|
|
4208
|
|
4209
|
|
4210 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4211 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4212 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4213 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4214 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4215 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4216
|
|
4217 001617 SN=SN+1
|
|
4218 737777 ZZ=<ZZ+ZZ+1>&777777
|
|
4219 IFE <ZZ-1>,<ZZ=777776>
|
|
4220 032357 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-7
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0093
|
|
|
|
4221 032360 525 01 0 00 737777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4222 032361 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4223 032362 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4224 032363 312 03 0 00 034527 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4225 STOP^
|
|
4226 032364 254 04 0 00 032365 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4227 032365 324 00 0 00 032366 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4228 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4229 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4230 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4231
|
|
4232 ;**********
|
|
4233
|
|
4234
|
|
4235 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4236 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4237 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4238 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4239 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4240 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4241
|
|
4242 001620 SN=SN+1
|
|
4243 677777 ZZ=<ZZ+ZZ+1>&777777
|
|
4244 IFE <ZZ-1>,<ZZ=777776>
|
|
4245 032366 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4246 032367 525 01 0 00 677777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4247 032370 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4248 032371 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4249 032372 312 03 0 00 034530 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4250 STOP^
|
|
4251 032373 254 04 0 00 032374 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4252 032374 324 00 0 00 032375 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4253 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4254 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4255 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4256
|
|
4257 ;**********
|
|
4258
|
|
4259
|
|
4260 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4261 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4262 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4263 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4264 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4265 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4266
|
|
4267 001621 SN=SN+1
|
|
4268 577777 ZZ=<ZZ+ZZ+1>&777777
|
|
4269 IFE <ZZ-1>,<ZZ=777776>
|
|
4270 032375 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4271 032376 525 01 0 00 577777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4272 032377 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4273 032400 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4274 032401 312 03 0 00 034531 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4275 STOP^
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 12-8
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0094
|
|
|
|
4276 032402 254 04 0 00 032403 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4277 032403 324 00 0 00 032404 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4278 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4279 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4280 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4281
|
|
4282 ;**********
|
|
4283
|
|
4284
|
|
4285 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4286 ;IN THIS TEST, A MOVE INSTRUCTION USING INDEXING IS EXECUTED. THE MOVE INSTRUCTION
|
|
4287 ;SHOULD PLACE THE CONTENTS OF THE LOCATION SPECIFIED BY INDEX REGISTER 2 INTO AC3.
|
|
4288 ;SINCE INDEX REGISTER 2 WAS PRELOADED WITH A 1 AND AC1 WAS PRELOADED WITH A
|
|
4289 ;FLOATING 0, THE FINAL RESULT IN AC3 SHOULD BE A FLOATING 0.
|
|
4290 ;IF C(AC3)=A FLOATING 0, THIS TEST PASSES.
|
|
4291
|
|
4292 001622 SN=SN+1
|
|
4293 377777 ZZ=<ZZ+ZZ+1>&777777
|
|
4294 IFE <ZZ-1>,<ZZ=777776>
|
|
4295 032404 402 00 0 00 000003 SETZM 3 ;PRELOAD AC3 WITH 0
|
|
4296 032405 525 01 0 00 377777 HRLOI 1,ZZ ;PRELOAD AC1 WITH FLOATING 0
|
|
4297 032406 201 02 0 00 000001 MOVEI 2,1 ;SETUP INDEX REGISTER
|
|
4298 032407 200 03 0 02 000000 MOVE 3,(2) ;*FWT FROM INDEXED LOCATION
|
|
4299 032410 312 03 0 00 034532 CAME 3,[ZZ,,-1] ;TEST INDEXING
|
|
4300 STOP^
|
|
4301 032411 254 04 0 00 032412 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4302 032412 324 00 0 00 032413 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4303 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4304 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4305 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4306
|
|
4307 ;**********
|
|
4308
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0095
|
|
|
|
4309 ;VERIFY INDEXING WHERE 'E' IS NON-ZERO
|
|
4310
|
|
4311 001700 SN=1700
|
|
4312 777777 777777 ZZ=-1
|
|
4313 777777 777770 XX=-10
|
|
4314
|
|
4315 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4316 ;IN THIS TEST, THE INDEX REG IS SET-UP WITH MOVEI ZZ+1,ZZ-XX,
|
|
4317 ;WHERE ZZ+1 IS THE INDEX REG. THE AC IS PRELOADED WITH ITS OWN ADDRESS, 0,,ZZ.
|
|
4318 ;CAIE IS USED TO TEST THE INDEXING OPERATION.
|
|
4319 ;IF THE RESULT IN C(AC)=XX+C(ZZ+1 - RIGHT), THIS TEST PASSES.
|
|
4320 ;XX+C(ZZ+1 - RIGHT) SHOULD = ZZ.
|
|
4321
|
|
4322 C1700: REPEAT ^D15,
|
|
4323 <SN=SN+1
|
|
4324 ZZ=ZZ+1
|
|
4325 XX=XX+3
|
|
4326 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4327 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4328 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4329 STOP
|
|
4330
|
|
4331 ;**********
|
|
4332 >
|
|
4333 001701 SN=SN+1
|
|
4334 000000 ZZ=ZZ+1
|
|
4335 777777 777773 XX=XX+3
|
|
4336 032413 201 01 0 00 000005 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4337 032414 201 00 0 00 000000 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4338 032415 302 00 0 01 777773 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4339 STOP^
|
|
4340 032416 254 04 0 00 032417 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4341 032417 324 00 0 00 032420 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4342 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4343 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4344 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4345
|
|
4346 ;**********
|
|
4347
|
|
4348 001702 SN=SN+1
|
|
4349 000001 ZZ=ZZ+1
|
|
4350 777777 777776 XX=XX+3
|
|
4351 032420 201 02 0 00 000003 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4352 032421 201 01 0 00 000001 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4353 032422 302 01 0 02 777776 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4354 STOP^
|
|
4355 032423 254 04 0 00 032424 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4356 032424 324 00 0 00 032425 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4357 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4358 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4359 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4360
|
|
4361 ;**********
|
|
4362
|
|
4363 001703 SN=SN+1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0096
|
|
|
|
4364 000002 ZZ=ZZ+1
|
|
4365 000001 XX=XX+3
|
|
4366 032425 201 03 0 00 000001 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4367 032426 201 02 0 00 000002 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4368 032427 302 02 0 03 000001 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4369 STOP^
|
|
4370 032430 254 04 0 00 032431 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4371 032431 324 00 0 00 032432 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4372 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4373 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4374 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4375
|
|
4376 ;**********
|
|
4377
|
|
4378 001704 SN=SN+1
|
|
4379 000003 ZZ=ZZ+1
|
|
4380 000004 XX=XX+3
|
|
4381 032432 201 04 0 00 777777 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4382 032433 201 03 0 00 000003 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4383 032434 302 03 0 04 000004 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4384 STOP^
|
|
4385 032435 254 04 0 00 032436 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4386 032436 324 00 0 00 032437 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4387 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4388 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4389 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4390
|
|
4391 ;**********
|
|
4392
|
|
4393 001705 SN=SN+1
|
|
4394 000004 ZZ=ZZ+1
|
|
4395 000007 XX=XX+3
|
|
4396 032437 201 05 0 00 777775 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4397 032440 201 04 0 00 000004 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4398 032441 302 04 0 05 000007 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4399 STOP^
|
|
4400 032442 254 04 0 00 032443 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4401 032443 324 00 0 00 032444 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4402 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4403 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4404 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4405
|
|
4406 ;**********
|
|
4407
|
|
4408 001706 SN=SN+1
|
|
4409 000005 ZZ=ZZ+1
|
|
4410 000012 XX=XX+3
|
|
4411 032444 201 06 0 00 777773 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4412 032445 201 05 0 00 000005 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4413 032446 302 05 0 06 000012 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4414 STOP^
|
|
4415 032447 254 04 0 00 032450 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4416 032450 324 00 0 00 032451 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4417 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4418 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-2
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0097
|
|
|
|
4419 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4420
|
|
4421 ;**********
|
|
4422
|
|
4423 001707 SN=SN+1
|
|
4424 000006 ZZ=ZZ+1
|
|
4425 000015 XX=XX+3
|
|
4426 032451 201 07 0 00 777771 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4427 032452 201 06 0 00 000006 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4428 032453 302 06 0 07 000015 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4429 STOP^
|
|
4430 032454 254 04 0 00 032455 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4431 032455 324 00 0 00 032456 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4432 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4433 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4434 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4435
|
|
4436 ;**********
|
|
4437
|
|
4438 001710 SN=SN+1
|
|
4439 000007 ZZ=ZZ+1
|
|
4440 000020 XX=XX+3
|
|
4441 032456 201 10 0 00 777767 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4442 032457 201 07 0 00 000007 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4443 032460 302 07 0 10 000020 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4444 STOP^
|
|
4445 032461 254 04 0 00 032462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4446 032462 324 00 0 00 032463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4447 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4448 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4449 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4450
|
|
4451 ;**********
|
|
4452
|
|
4453 001711 SN=SN+1
|
|
4454 000010 ZZ=ZZ+1
|
|
4455 000023 XX=XX+3
|
|
4456 032463 201 11 0 00 777765 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4457 032464 201 10 0 00 000010 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4458 032465 302 10 0 11 000023 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4459 STOP^
|
|
4460 032466 254 04 0 00 032467 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4461 032467 324 00 0 00 032470 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4462 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4463 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4464 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4465
|
|
4466 ;**********
|
|
4467
|
|
4468 001712 SN=SN+1
|
|
4469 000011 ZZ=ZZ+1
|
|
4470 000026 XX=XX+3
|
|
4471 032470 201 12 0 00 777763 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4472 032471 201 11 0 00 000011 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4473 032472 302 11 0 12 000026 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-3
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0098
|
|
|
|
4474 STOP^
|
|
4475 032473 254 04 0 00 032474 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4476 032474 324 00 0 00 032475 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4477 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4478 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4479 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4480
|
|
4481 ;**********
|
|
4482
|
|
4483 001713 SN=SN+1
|
|
4484 000012 ZZ=ZZ+1
|
|
4485 000031 XX=XX+3
|
|
4486 032475 201 13 0 00 777761 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4487 032476 201 12 0 00 000012 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4488 032477 302 12 0 13 000031 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4489 STOP^
|
|
4490 032500 254 04 0 00 032501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4491 032501 324 00 0 00 032502 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4492 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4493 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4494 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4495
|
|
4496 ;**********
|
|
4497
|
|
4498 001714 SN=SN+1
|
|
4499 000013 ZZ=ZZ+1
|
|
4500 000034 XX=XX+3
|
|
4501 032502 201 14 0 00 777757 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4502 032503 201 13 0 00 000013 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4503 032504 302 13 0 14 000034 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4504 STOP^
|
|
4505 032505 254 04 0 00 032506 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4506 032506 324 00 0 00 032507 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4507 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4508 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4509 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4510
|
|
4511 ;**********
|
|
4512
|
|
4513 001715 SN=SN+1
|
|
4514 000014 ZZ=ZZ+1
|
|
4515 000037 XX=XX+3
|
|
4516 032507 201 15 0 00 777755 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4517 032510 201 14 0 00 000014 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4518 032511 302 14 0 15 000037 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4519 STOP^
|
|
4520 032512 254 04 0 00 032513 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4521 032513 324 00 0 00 032514 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4522 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4523 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4524 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4525
|
|
4526 ;**********
|
|
4527
|
|
4528 001716 SN=SN+1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-4
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0099
|
|
|
|
4529 000015 ZZ=ZZ+1
|
|
4530 000042 XX=XX+3
|
|
4531 032514 201 16 0 00 777753 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4532 032515 201 15 0 00 000015 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4533 032516 302 15 0 16 000042 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4534 STOP^
|
|
4535 032517 254 04 0 00 032520 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4536 032520 324 00 0 00 032521 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4537 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4538 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4539 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4540
|
|
4541 ;**********
|
|
4542
|
|
4543 001717 SN=SN+1
|
|
4544 000016 ZZ=ZZ+1
|
|
4545 000045 XX=XX+3
|
|
4546 032521 201 17 0 00 777751 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4547 032522 201 16 0 00 000016 MOVEI ZZ,ZZ ;PRELOAD AC WITH 0,,ZZ
|
|
4548 032523 302 16 0 17 000045 CAIE ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4549 STOP^
|
|
4550 032524 254 04 0 00 032525 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4551 032525 324 00 0 00 032526 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4552 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4553 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4554 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4555
|
|
4556 ;**********
|
|
4557
|
|
4558 PAGE
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-5
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0100
|
|
|
|
4559 002000 SN=2000
|
|
4560 777777 777777 ZZ=-1
|
|
4561 777777 777760 XX=-20
|
|
4562
|
|
4563 ;THIS TEST VERIFIES THAT INDEX REGISTER ADDRESSING FUNCTIONS CORRECTLY.
|
|
4564 ;IN THIS TEST, THE INDEX REG IS SET-UP WITH MOVEI ZZ+1,ZZ-XX,
|
|
4565 ;WHERE ZZ+1 IS THE INDEX REG. INDEXING IS TESTED BY LOADING
|
|
4566 ;THE AC VIA MOVEI ZZ,XX(ZZ+1), WHERE XX+C(ZZ+1)=ZZ.
|
|
4567 ;IF THE RESULT IN THE AC EQUALS 0,,ZZ, THIS TEST PASSES.
|
|
4568
|
|
4569 C2000: REPEAT ^D15,
|
|
4570 <SN=SN+1
|
|
4571 ZZ=ZZ+1
|
|
4572 XX=XX+5
|
|
4573 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4574 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4575 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4576 STOP
|
|
4577
|
|
4578 ;**********
|
|
4579 >
|
|
4580 002001 SN=SN+1
|
|
4581 000000 ZZ=ZZ+1
|
|
4582 777777 777765 XX=XX+5
|
|
4583 032526 201 01 0 00 000013 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4584 032527 201 00 0 01 777765 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4585 032530 302 00 0 00 000000 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4586 STOP^
|
|
4587 032531 254 04 0 00 032532 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4588 032532 324 00 0 00 032533 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4589 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4590 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4591 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4592
|
|
4593 ;**********
|
|
4594
|
|
4595 002002 SN=SN+1
|
|
4596 000001 ZZ=ZZ+1
|
|
4597 777777 777772 XX=XX+5
|
|
4598 032533 201 02 0 00 000007 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4599 032534 201 01 0 02 777772 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4600 032535 302 01 0 00 000001 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4601 STOP^
|
|
4602 032536 254 04 0 00 032537 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4603 032537 324 00 0 00 032540 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4604 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4605 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4606 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4607
|
|
4608 ;**********
|
|
4609
|
|
4610 002003 SN=SN+1
|
|
4611 000002 ZZ=ZZ+1
|
|
4612 777777 777777 XX=XX+5
|
|
4613 032540 201 03 0 00 000003 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-6
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0101
|
|
|
|
4614 032541 201 02 0 03 777777 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4615 032542 302 02 0 00 000002 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4616 STOP^
|
|
4617 032543 254 04 0 00 032544 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4618 032544 324 00 0 00 032545 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4619 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4620 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4621 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4622
|
|
4623 ;**********
|
|
4624
|
|
4625 002004 SN=SN+1
|
|
4626 000003 ZZ=ZZ+1
|
|
4627 000004 XX=XX+5
|
|
4628 032545 201 04 0 00 777777 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4629 032546 201 03 0 04 000004 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4630 032547 302 03 0 00 000003 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4631 STOP^
|
|
4632 032550 254 04 0 00 032551 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4633 032551 324 00 0 00 032552 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4634 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4635 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4636 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4637
|
|
4638 ;**********
|
|
4639
|
|
4640 002005 SN=SN+1
|
|
4641 000004 ZZ=ZZ+1
|
|
4642 000011 XX=XX+5
|
|
4643 032552 201 05 0 00 777773 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4644 032553 201 04 0 05 000011 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4645 032554 302 04 0 00 000004 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4646 STOP^
|
|
4647 032555 254 04 0 00 032556 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4648 032556 324 00 0 00 032557 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4649 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4650 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4651 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4652
|
|
4653 ;**********
|
|
4654
|
|
4655 002006 SN=SN+1
|
|
4656 000005 ZZ=ZZ+1
|
|
4657 000016 XX=XX+5
|
|
4658 032557 201 06 0 00 777767 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4659 032560 201 05 0 06 000016 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4660 032561 302 05 0 00 000005 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4661 STOP^
|
|
4662 032562 254 04 0 00 032563 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4663 032563 324 00 0 00 032564 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4664 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4665 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4666 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4667
|
|
4668 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-7
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0102
|
|
|
|
4669
|
|
4670 002007 SN=SN+1
|
|
4671 000006 ZZ=ZZ+1
|
|
4672 000023 XX=XX+5
|
|
4673 032564 201 07 0 00 777763 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4674 032565 201 06 0 07 000023 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4675 032566 302 06 0 00 000006 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4676 STOP^
|
|
4677 032567 254 04 0 00 032570 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4678 032570 324 00 0 00 032571 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4679 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4680 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4681 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4682
|
|
4683 ;**********
|
|
4684
|
|
4685 002010 SN=SN+1
|
|
4686 000007 ZZ=ZZ+1
|
|
4687 000030 XX=XX+5
|
|
4688 032571 201 10 0 00 777757 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4689 032572 201 07 0 10 000030 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4690 032573 302 07 0 00 000007 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4691 STOP^
|
|
4692 032574 254 04 0 00 032575 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4693 032575 324 00 0 00 032576 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4694 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4695 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4696 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4697
|
|
4698 ;**********
|
|
4699
|
|
4700 002011 SN=SN+1
|
|
4701 000010 ZZ=ZZ+1
|
|
4702 000035 XX=XX+5
|
|
4703 032576 201 11 0 00 777753 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4704 032577 201 10 0 11 000035 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4705 032600 302 10 0 00 000010 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4706 STOP^
|
|
4707 032601 254 04 0 00 032602 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4708 032602 324 00 0 00 032603 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4709 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4710 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4711 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4712
|
|
4713 ;**********
|
|
4714
|
|
4715 002012 SN=SN+1
|
|
4716 000011 ZZ=ZZ+1
|
|
4717 000042 XX=XX+5
|
|
4718 032603 201 12 0 00 777747 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4719 032604 201 11 0 12 000042 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4720 032605 302 11 0 00 000011 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4721 STOP^
|
|
4722 032606 254 04 0 00 032607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4723 032607 324 00 0 00 032610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-8
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0103
|
|
|
|
4724 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4725 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4726 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4727
|
|
4728 ;**********
|
|
4729
|
|
4730 002013 SN=SN+1
|
|
4731 000012 ZZ=ZZ+1
|
|
4732 000047 XX=XX+5
|
|
4733 032610 201 13 0 00 777743 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4734 032611 201 12 0 13 000047 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4735 032612 302 12 0 00 000012 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4736 STOP^
|
|
4737 032613 254 04 0 00 032614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4738 032614 324 00 0 00 032615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4739 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4740 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4741 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4742
|
|
4743 ;**********
|
|
4744
|
|
4745 002014 SN=SN+1
|
|
4746 000013 ZZ=ZZ+1
|
|
4747 000054 XX=XX+5
|
|
4748 032615 201 14 0 00 777737 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4749 032616 201 13 0 14 000054 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4750 032617 302 13 0 00 000013 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4751 STOP^
|
|
4752 032620 254 04 0 00 032621 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4753 032621 324 00 0 00 032622 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
|
|
4758 ;**********
|
|
4759
|
|
4760 002015 SN=SN+1
|
|
4761 000014 ZZ=ZZ+1
|
|
4762 000061 XX=XX+5
|
|
4763 032622 201 15 0 00 777733 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4764 032623 201 14 0 15 000061 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4765 032624 302 14 0 00 000014 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4766 STOP^
|
|
4767 032625 254 04 0 00 032626 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4768 032626 324 00 0 00 032627 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4769 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4770 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4771 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4772
|
|
4773 ;**********
|
|
4774
|
|
4775 002016 SN=SN+1
|
|
4776 000015 ZZ=ZZ+1
|
|
4777 000066 XX=XX+5
|
|
4778 032627 201 16 0 00 777727 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 13-9
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INDEX REGISTER ADDRESSING SEQ 0104
|
|
|
|
4779 032630 201 15 0 16 000066 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4780 032631 302 15 0 00 000015 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4781 STOP^
|
|
4782 032632 254 04 0 00 032633 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4783 032633 324 00 0 00 032634 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4784 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4785 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4786 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4787
|
|
4788 ;**********
|
|
4789
|
|
4790 002017 SN=SN+1
|
|
4791 000016 ZZ=ZZ+1
|
|
4792 000073 XX=XX+5
|
|
4793 032634 201 17 0 00 777723 MOVEI ZZ+1,ZZ-XX ;SETUP INDEX REGISTER
|
|
4794 032635 201 16 0 17 000073 MOVEI ZZ,XX(ZZ+1) ;*TEST INDEXING
|
|
4795 032636 302 16 0 00 000016 CAIE ZZ,ZZ ;PASS IF C(AC)=0,,ADDRESS OF AC
|
|
4796 STOP^
|
|
4797 032637 254 04 0 00 032640 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4798 032640 324 00 0 00 032641 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4799 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4800 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4801 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4802
|
|
4803 ;**********
|
|
4804
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 14
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF EXCH INSTRUCTION SEQ 0105
|
|
|
|
4805 SUBTTL TEST OF EXCH INSTRUCTION
|
|
4806
|
|
4807 ;**********
|
|
4808
|
|
4809 ;THIS TEST VERIFIES THAT EXCH MOVES C(E) INTO AC AND
|
|
4810 ;MOVES C(AC) INTO E.
|
|
4811 ;IN THIS CASE, AC=E=0 AND C(AC)=C(E). HENCE, THE FINAL RESULT
|
|
4812 ;IN AC0 SHOULD BE 0. IF C(AC)=0, THE TEST PASSES.
|
|
4813
|
|
4814 032641 400 00 0 00 000000 C2100: SETZ ;PRELOAD AC,E WITH 0
|
|
4815 032642 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 0 INTO AC0
|
|
4816 032643 332 00 0 00 000000 SKIPE ;PASS IF C(AC0)=0
|
|
4817 STOP^
|
|
4818 032644 254 04 0 00 032645 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4819 032645 324 00 0 00 032646 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4820 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4821 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4822 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4823
|
|
4824 ;**********
|
|
4825
|
|
4826 ;THIS TEST VERIFIES THAT EXCH MOVES C(E) INTO AC AND
|
|
4827 ;MOVES C(AC) INTO E.
|
|
4828 ;IN THIS CASE, AC=E=-1,,-1 AND C(AC)=C(E). HENCE, THE FINAL RESULT
|
|
4829 ;IN AC0 SHOULD BE -1,,-1. IF C(AC)=-1,,-1, THE TEST PASSES.
|
|
4830
|
|
4831 032646 474 00 0 00 000000 C2200: SETO ;PRELOAD AC,E WITH -1,,-1
|
|
4832 032647 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE -1,,-1 INTO AC0
|
|
4833 032650 312 00 0 00 034466 CAME [-1] ;PASS IF C(AC0)=-1,,-1
|
|
4834 STOP^
|
|
4835 032651 254 04 0 00 032652 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4836 032652 324 00 0 00 032653 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4837 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4838 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4839 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4840
|
|
4841 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 15
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF EXCH INSTRUCTION SEQ 0106
|
|
|
|
4842 ;THIS TEST VERIFIES THAT EXCH MOVES C(E) INTO AC AND
|
|
4843 ;MOVES C(AC) INTO E.
|
|
4844 ;IN THIS CASE, C(AC)=-1,,0 AND C(E)=0,,-1. HENCE, THE FINAL RESULT
|
|
4845 ;IN THE AC SHOULD BE 0,,-1 AND THE RESULT IN E SHOULD BE -1,,0,
|
|
4846 ;IF THESE RESULTS OCCUR, THE TEST PASSES.
|
|
4847
|
|
4848 032653 205 00 0 00 777777 C2400: MOVSI -1 ;PRELOAD AC WITH -1,,0
|
|
4849 032654 201 01 0 00 777777 MOVEI 1,-1 ;PRELOAD E WITH 0,,-1
|
|
4850 032655 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD PLACE 0,,-1 INTO THE AC AND -1,,0 INTO E
|
|
4851 032656 312 01 0 00 034533 CAME 1,[-1,,0] ;PASS IF C(E)=-1,,0
|
|
4852 STOP^
|
|
4853 032657 254 04 0 00 032660 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4854 032660 324 00 0 00 032661 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4855 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4856 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4857 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4858 032661 312 00 0 00 034534 C2410: CAME 0,[0,,-1] ;PASS IF C(AC)=0,,-1
|
|
4859 STOP^
|
|
4860 032662 254 04 0 00 032663 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4861 032663 324 00 0 00 032664 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4862 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4863 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4864 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4865
|
|
4866 ;**********
|
|
4867
|
|
4868 ;THIS TEST VERIFIES THAT EXCH MOVES C(E) INTO AC AND
|
|
4869 ;MOVES C(AC) INTO E.
|
|
4870 ;IN THIS CASE, C(AC)=0,,-1 AND C(E)=-1,,0. HENCE, THE FINAL RESULT
|
|
4871 ;IN THE AC SHOULD BE -1,,0 AND THE RESULT IN E SHOULD BE 0,,-1.
|
|
4872 ;IF THESE RESULTS OCCUR, THE TEST PASSES.
|
|
4873
|
|
4874 032664 201 00 0 00 777777 C2700: MOVEI -1 ;PRELOAD AC WITH 0,,-1
|
|
4875 032665 205 01 0 00 777777 MOVSI 1,-1 ;PRELOAD E WITH -1,,0
|
|
4876 032666 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD PLACE -1,,0 INTO THE AC AND 0,,-1 INTO E
|
|
4877 032667 302 01 0 00 777777 CAIE 1,-1 ;PASS IF C(E)=0,,-1
|
|
4878 STOP^
|
|
4879 032670 254 04 0 00 032671 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4880 032671 324 00 0 00 032672 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4881 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4882 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4883 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4884 032672 312 00 0 00 034533 C2710: CAME ,[XWD -1,0] ;PASS IF C(AC)=-1,,0
|
|
4885 STOP^
|
|
4886 032673 254 04 0 00 032674 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4887 032674 324 00 0 00 032675 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4888 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4889 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4890 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4891
|
|
4892 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 16
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF EXCH INSTRUCTION SEQ 0107
|
|
|
|
4893 ;THIS TEST IS A RELIABILITY CHECK OF EXCH.
|
|
4894 ;FIRST, AC, E ARE PRELOADED WITH 252525,,252525. THERE, EXCH IS
|
|
4895 ;EXECUTED 7 TIMES. THE AC IS THEN CHECKED FOR 252525,,252525.
|
|
4896 ;IF C(AC)=C(E)=252525,,252525, THIS TEST PASSES.
|
|
4897 ;IN THIS TEST AC=E=AC0
|
|
4898
|
|
4899 032675 200 00 0 00 034535 C3000: MOVE [252525252525] ;PRELOAD AC,E WITH 252525,,252525
|
|
4900 REPEAT 7,
|
|
4901 < EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0>
|
|
4902 032676 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0
|
|
4903 032677 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0
|
|
4904 032700 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0
|
|
4905 032701 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0
|
|
4906 032702 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0
|
|
4907 032703 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0
|
|
4908 032704 250 00 0 00 000000 EXCH ;*EXCH SHOULD PLACE 252525,,252525 INTO AC0
|
|
4909 032705 312 00 0 00 034535 CAME [252525252525] ;PASS IF C(AC0)=252525,,252525
|
|
4910 STOP^
|
|
4911 032706 254 04 0 00 032707 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4912 032707 324 00 0 00 032710 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4913 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4914 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4915 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4916
|
|
4917 ;**********
|
|
4918 PAGE
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 16-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF EXCH INSTRUCTION SEQ 0108
|
|
|
|
4919 ;THIS TEST VERIFIES THAT EXCH MOVES C(AC) INTO E AND C(E) INTO THE AC.
|
|
4920 ;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. EXCH IS EXECUTED 7 TIMES; THEN,
|
|
4921 ;THE AC IS CHECKED FOR -1,,-1 AND E IS CHECKED FOR 0. IF EITHER OF THESE
|
|
4922 ;RESULTS ARE NOT FOUND, THIS TEST FAILS.
|
|
4923
|
|
4924 032710 400 00 0 00 000000 C3100: SETZ ;PRELOAD AC WITH 0
|
|
4925 032711 474 01 0 00 000000 SETO 1,0 ;PRELOAD E WITH -1,,-1
|
|
4926 REPEAT 7,
|
|
4927 < EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)>
|
|
4928 032712 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)
|
|
4929 032713 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)
|
|
4930 032714 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)
|
|
4931 032715 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)
|
|
4932 032716 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)
|
|
4933 032717 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)
|
|
4934 032720 250 00 0 00 000001 EXCH 1 ;*EXCH SHOULD EXCHANGE C(AC) AND C(E)
|
|
4935 032721 312 00 0 00 034466 CAME [-1] ;PASS IF C(AC)=-1,,-1
|
|
4936 STOP^
|
|
4937 032722 254 04 0 00 032723 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4938 032723 324 00 0 00 032724 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 032724 312 01 0 00 034536 C3110: CAME 1,[0] ;PASS IF C(E)=0
|
|
4943 STOP^
|
|
4944 032725 254 04 0 00 032726 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4945 032726 324 00 0 00 032727 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4946 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4947 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4948 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4949
|
|
4950 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 17
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MOVEM INSTRUCTION SEQ 0109
|
|
|
|
4951 SUBTTL TEST OF MOVEM INSTRUCTION
|
|
4952
|
|
4953 ;THIS TEST VERIFIES THAT MOVEM PLACES C(AC) INTO E AND DOES NOT MODIFY C(AC)
|
|
4954 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN AC AND E SHOULD
|
|
4955 ;BE -1,,-1. IF C(AC) AND C(E)=-1,,-1, THIS TEST PASSES
|
|
4956
|
|
4957 032727 474 00 0 00 000000 C3200: SETO ;PRELOAD AC WITH -1,,-1
|
|
4958 032730 400 01 0 00 000000 SETZ 1,0 ;PRELOAD E WITH 0
|
|
4959 032731 202 00 0 00 000001 MOVEM 1 ;*MOVEM SHOULD PLACE -1,,-1 INTO E
|
|
4960 032732 312 01 0 00 034466 CAME 1,[-1] ;PASS IF C(E)=-1,,-1
|
|
4961 STOP^
|
|
4962 032733 254 04 0 00 032734 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4963 032734 324 00 0 00 032735 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4964 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4965 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4966 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4967 032735 312 00 0 00 034466 C3210: CAME 0,[-1] ;PASS IF C(AC)=-1,,-1
|
|
4968 STOP^
|
|
4969 032736 254 04 0 00 032737 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4970 032737 324 00 0 00 032740 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4971 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4972 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4973 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4974
|
|
4975 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 18
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0110
|
|
|
|
4976 SUBTTL TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS
|
|
4977
|
|
4978 ;**********
|
|
4979
|
|
4980 ;THIS TEST VERIFIES THAT JFCL 17,.+1 ALWAYS RETURNS TO THE NEXT SEQUENTIAL INSTRUCTION
|
|
4981 ;IF JFCL SKIPS THE NEXT INSTRUCTION, THIS TEST FAILS
|
|
4982
|
|
4983 032740 200 00 0 00 034537 C3300: MOVE [HALT .+3] ;THIS INSTRUCTION SHOULD NOT AFFECT THE TEST
|
|
4984 032741 255 17 0 00 032742 JFCL 17,.+1 ;*JFCL SHOULD RETURN TO NEXT SEQUENTIAL INSTRUCTION
|
|
4985 032742 304 00 0 00 000000 CAIA ;SKIP HALT INSTRUCTION IF JFCL PASSES
|
|
4986 STOP^
|
|
4987 032743 254 04 0 00 032744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
4988 032744 324 00 0 00 032745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
4989 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
4990 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
4991 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
4992
|
|
4993 ;**********
|
|
4994
|
|
4995 ;THIS TEST VERIFIES THAT JFCL 17,.+1 ALWAYS CLEARS THE CRY0 FLAG.
|
|
4996 ;ADDI IS USED TO SET CRY0. THEN, JFCL 17,.+1 IS EXECUTED TO CLEAR CRY0.
|
|
4997 ;JFCL 4,.+2 IS EXECUTED TO DETERMINE WHETHER CRY0 WAS RESET BY THE PREVIOUS JFCL.
|
|
4998 ;THIS TEST FAILS IF JFCL 17,.+1 DID NOT CLEAR CRY0
|
|
4999
|
|
5000 032745 200 00 0 00 034466 C3400: MOVE [-1] ;PRELOAD AC WITH -1,,-1
|
|
5001 032746 271 00 0 00 000001 ADDI 1 ;SET CRY0 FLAG
|
|
5002 032747 255 17 0 00 032750 JFCL 17,.+1 ;*CLEAR ARITHMETIC FLAGS
|
|
5003 032750 255 04 0 00 032752 JFCL 4,.+2 ;PASS IF CRY0 WAS RESET BY PREVIOUS INSTRUCTION
|
|
5004 032751 334 00 0 00 000000 SKIPA ;SKIP HALT IF CRY0 WAS CLEARED
|
|
5005 STOP^
|
|
5006 032752 254 04 0 00 032753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5007 032753 324 00 0 00 032754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5008 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5009 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5010 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5011
|
|
5012 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 19
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0111
|
|
|
|
5013 ;THIS TEST VERIFIES THAT JFCL 17,.+1 ALWAYS CLEARS THE CRY1 FLAG.
|
|
5014 ;ADDI IS USED TO SET CRY1. THEN, JFCL 17,.+1 IS EXECUTED TO CLEAR CRY1.
|
|
5015 ;JFCL 4,.+2 IS EXECUTED TO DETERMINE WHETHER CRY1 WAS RESET BY THE PREVIOUS JFCL.
|
|
5016 ;THIS TEST FAILS IF JFCL 17,.+1 DID NOT CLEAR CRY1
|
|
5017
|
|
5018 032754 200 00 0 00 034466 C3500: MOVE [-1] ;PRELOAD AC WITH -1,,-1
|
|
5019 032755 271 00 0 00 000001 ADDI 1 ;SET CRY1 FLAG
|
|
5020 032756 255 17 0 00 032757 JFCL 17,.+1 ;*CLEAR ARITHMETIC FLAGS
|
|
5021 032757 255 02 0 00 032761 JFCL 2,.+2 ;PASS IF CRY1 WAS RESET BY PREVIOUS INSTRUCTION
|
|
5022 032760 334 00 0 00 000000 SKIPA ;SKIP HALT IF CRY1 WAS CLEARED
|
|
5023 STOP^
|
|
5024 032761 254 04 0 00 032762 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5025 032762 324 00 0 00 032763 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5026 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5027 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5028 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5029
|
|
5030 ;**********
|
|
5031
|
|
5032 ;THIS TEST VERIFIES THAT JFCL 17,.+1 ALWAYS CLEARS THE AROV FLAG.
|
|
5033 ;ADDI IS USED TO SET AROV. THEN, JFCL 17,.+1 IS EXECUTED TO CLEAR AROV.
|
|
5034 ;JFCL 4,.+2 IS EXECUTED TO DETERMINE WHETHER AROV WAS RESET BY THE PREVIOUS JFCL.
|
|
5035 ;THIS TEST FAILS IF JFCL 17,.+1 DID NOT CLEAR AROV
|
|
5036
|
|
5037 032763 205 00 0 00 400000 C3600: MOVSI 400000 ;PRELOAD AC WITH -1,,-1
|
|
5038 032764 270 00 0 00 034465 ADD [XWD 400000,0] ;SET AROV FLAG
|
|
5039 032765 255 17 0 00 032766 JFCL 17,.+1 ;*CLEAR ARITHMETIC FLAGS
|
|
5040 032766 255 10 0 00 032770 JFCL 10,.+2 ;PASS IF AROV WAS RESET BY PREVIOUS INSTRUCTION
|
|
5041 032767 334 00 0 00 000000 SKIPA ;SKIP HALT IF AROV WAS CLEARED
|
|
5042 STOP^
|
|
5043 032770 254 04 0 00 032771 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5044 032771 324 00 0 00 032772 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5045 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5046 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5047 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5048
|
|
5049 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 20
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0112
|
|
|
|
5050 ;THIS TEST VERIFIES THAT JFCL 0, IS A NO-OP.
|
|
5051 ;IN THIS TEST, ADD IS USED TO SET CRY0. THEN JFCL 0,.+2 IS EXECUTED.
|
|
5052 ;IF JFCL 0,.+2 DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES
|
|
5053
|
|
5054 032772 205 00 0 00 400000 C3700: MOVSI 400000 ;PRELOAD AC WITH MOST NEGATIVE NUMBER
|
|
5055 032773 270 00 0 00 034466 ADD [-1] ;SET CRY0 FLAG
|
|
5056 032774 255 00 0 00 032776 JFCL .+2 ;*JFCL SHOULD RETURN TO NEXT SEQUENTIAL INSTRUCTION
|
|
5057 032775 334 00 0 00 000000 SKIPA ;PASS IF JFCL DID NOT SKIP
|
|
5058 STOP^
|
|
5059 032776 254 04 0 00 032777 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5060 032777 324 00 0 00 033000 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5061 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5062 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5063 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5064
|
|
5065 ;**********
|
|
5066
|
|
5067 ;THIS TEST VERIFIES THAT JFCL 0, IS A NO-OP.
|
|
5068 ;IN THIS TEST, ADD IS USED TO SET CRY1. THEN JFCL 0,.+2 IS EXECUTED.
|
|
5069 ;IF JFCL 0,.+2 DOES NOT SKIP THE NEXT INSTRUCTION, THIS TEST PASSES
|
|
5070
|
|
5071 033000 205 00 0 00 200000 C4000: MOVSI 200000 ;PRELOAD AC WITH MOST NEGATIVE NUMBER
|
|
5072 033001 270 00 0 00 034464 ADD [XWD 200000,0] ;SET CRY1 FLAG
|
|
5073 033002 255 00 0 00 033004 JFCL .+2 ;*JFCL SHOULD RETURN TO NEXT SEQUENTIAL INSTRUCTION
|
|
5074 033003 334 00 0 00 000000 SKIPA ;PASS IF JFCL DID NOT SKIP
|
|
5075 STOP^
|
|
5076 033004 254 04 0 00 033005 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5077 033005 324 00 0 00 033006 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5078 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5079 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5080 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5081
|
|
5082 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 21
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0113
|
|
|
|
5083 ;THIS TEST VERIFIES THAT ADDI HAS THE ABILITY TO SET AN ARITHMETIC FLAG AND
|
|
5084 ;THAT 'JFCL 17,.+2' JUMPS WHENEVER ANY ARITHMETIC FLAG IS SET.
|
|
5085 ;IN THIS TEST, ADDI SHOULD SET CRY0 AND CRY1. THEN, JFCL SHOULD SKIP
|
|
5086 ;BECAUSE A FLAG WAS SET BY ADDI
|
|
5087 ;IF THIS TEST FAILS, ADDI COULD HAVE FAILED TO SET A FLAG OR
|
|
5088 ;JFCL COULD HAVE FAILED TO JUMP WHEN A FLAG WAS SET
|
|
5089
|
|
5090 033006 200 00 0 00 034466 C4100: MOVE [-1] ;PRELOAD AC WITH ALL ONES
|
|
5091 033007 271 00 0 00 000001 ADDI 1 ;*ADDI SHOULD SET CRY0/1 FLAGS
|
|
5092 033010 255 17 0 00 033012 JFCL 17,.+2 ;*JFCL SHOULD JUMP BECAUSE FLAGS ARE SET
|
|
5093 STOP^
|
|
5094 033011 254 04 0 00 033012 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5095 033012 324 00 0 00 033013 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5096 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5097 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5098 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5099
|
|
5100 ;**********
|
|
5101
|
|
5102 ;THIS TEST VERIFIES THAT CAI DOES NOT CLEAR ANY ARITHMETIC FLAGS.
|
|
5103 ;FIRST, CRY0 AND CRY1 ARE SET BY ADDI; THEN CAI IS EXECUTED.
|
|
5104 ;JFCL SHOULD JUMP BECAUSE FLAGS ARE SET. IF JFCL DOES NOT JUMP,
|
|
5105 ;THE FLAGS WERE CLEARED BY CAI. HENCE, CAI FAILED
|
|
5106
|
|
5107 033013 200 00 0 00 034466 C4200: MOVE [-1] ;PRELOAD AC WITH -1,,-1
|
|
5108 033014 271 00 0 00 000001 ADDI 1 ;SET CYR0/1 FLAGS
|
|
5109 033015 300 17 0 00 000017 CAI 17,17 ;*CAI SHOULD NOT CLEAR FLAGS
|
|
5110 033016 255 17 0 00 033020 JFCL 17,.+2 ;PASS IF CAI CLEARED FLAGS
|
|
5111 STOP^
|
|
5112 033017 254 04 0 00 033020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5113 033020 324 00 0 00 033021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5114 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5115 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5116 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5117
|
|
5118 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 22
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0114
|
|
|
|
5119 ;THIS TEST VERIFIES THAT ADDI HAS THE ABILITY TO SET AN ARITHMETIC FLAG AND
|
|
5120 ;THAT 'JFCL 17,.+2' JUMPS WHENEVER ANY ARITHMETIC FLAG IS SET.
|
|
5121 ;IN THIS TEST, ADDI SHOULD SET CRY0 AND CRY1. THEN JFCL SHOULD SKIP
|
|
5122 ;BECAUSE A FLAG WAS SET BY ADDI
|
|
5123 ;IF THIS TEST FAILS, ADDI COULD HAVE FAILED TO SET A FLAG OR
|
|
5124 ;JFCL COULD HAVE FAILED TO JUMP WHEN A FLAG WAS SET
|
|
5125
|
|
5126 033021 200 00 0 00 034466 C4300: MOVE [-1] ;PRELOAD AC WITH ALL ONES
|
|
5127 033022 271 00 0 00 000001 ADDI 1 ;*ADDI SHOULD SET CRY1 FLAGS
|
|
5128 033023 255 02 0 00 033025 JFCL 2,.+2 ;*JFCL SHOULD JUMP BECAUSE CRY1 FLAG IS SET
|
|
5129 STOP^
|
|
5130 033024 254 04 0 00 033025 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5131 033025 324 00 0 00 033026 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5132 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5133 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5134 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5135
|
|
5136 ;**********
|
|
5137
|
|
5138 ;THIS TEST VERIFIES THAT ADDI HAS THE ABILITY TO SET AN ARITHMETIC FLAG AND
|
|
5139 ;THAT 'JFCL 17,.+2' JUMPS WHENEVER ANY ARITHMETIC FLAG IS SET.
|
|
5140 ;IN THIS TEST, ADDI SHOULD SET CRY0 AND CRY1. THEN, JFCL SHOULD SKIP
|
|
5141 ;BECAUSE A FLAG WAS SET BY ADDI
|
|
5142 ;IF THIS TEST FAILS, ADDI COULD HAVE FAILED TO SET A FLAG OR
|
|
5143 ;JFCL COULD HAVE FAILED TO JUMP WHEN A FLAG WAS SET
|
|
5144
|
|
5145 033026 200 00 0 00 034466 C4400: MOVE [-1] ;PRELOAD AC WITH ALL ONES
|
|
5146 033027 271 00 0 00 000001 ADDI 1 ;*ADDI SHOULD SET CRY0 FLAG
|
|
5147 033030 255 04 0 00 033032 JFCL 4,.+2 ;*JFCL SHOULD JUMP BECAUSE CRY0 FLAG IS SET
|
|
5148 STOP^
|
|
5149 033031 254 04 0 00 033032 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5150 033032 324 00 0 00 033033 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5151 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5152 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5153 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5154
|
|
5155 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 23
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0115
|
|
|
|
5156 ;THIS TEST VERIFIES THAT ADDI HAS THE ABILITY TO SET AN ARITHMETIC FLAG AND
|
|
5157 ;THAT 'JFCL 17,.+2' JUMPS WHENEVER ANY ARITHMETIC FLAG IS SET.
|
|
5158 ;BECAUSE A FLAG WAS SET BY ADD
|
|
5159 ;IF THIS TEST FAILS, ADDI COULD HAVE FAILED TO SET A FLAG OR
|
|
5160 ;JFCL COULD HAVE FAILED TO JUMP WHEN A FLAG WAS SET
|
|
5161
|
|
5162 033033 205 00 0 00 400000 C4500: MOVSI 400000 ;PRELOAD AC WITH ALL ONES
|
|
5163 033034 270 00 0 00 034465 ADD [XWD 400000,0] ;*ADD SHOULD SET AROV FLAG
|
|
5164 033035 255 10 0 00 033037 JFCL 10,.+2 ;*JFCL SHOULD JUMP BECAUSE AROV FLAG IS SET
|
|
5165 STOP^
|
|
5166 033036 254 04 0 00 033037 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5167 033037 324 00 0 00 033040 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5171
|
|
5172 ;**********
|
|
5173
|
|
5174 ;THIS TEST VERIFIES THAT JFCL 17,.+1 ALWAYS CLEARS THE FLOATING OVERFLOW FLAG (FOV).
|
|
5175 ;FIRST JFCL 17,.+1 IS EXECUTED TO CLEAR FOV. THEN, JFCL 1,.+2 IS EXECUTED TO DETERMINE
|
|
5176 ;WHETHER FOV WAS CLEARED. IF FOV WAS CLEAR, THIS TEST PASSES
|
|
5177
|
|
5178 033040 255 17 0 00 033041 C4600: JFCL 17,.+1 ;*CLEAR ARITHMETIC FLAGS
|
|
5179 033041 255 01 0 00 033043 JFCL 1,.+2 ;PASS IF FOV WAS CLEARED
|
|
5180 033042 334 00 0 00 000000 SKIPA ;SKIP HALT IF TEST PASSED
|
|
5181 STOP^
|
|
5182 033043 254 04 0 00 033044 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5183 033044 324 00 0 00 033045 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
|
|
5188 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 24
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0116
|
|
|
|
5189 ;THIS TEST VERIFIES THAT JFCL 13, DOES NOT RESET CRY0.
|
|
5190 ;FIRST CRY0 AND CRY1 ARE SET BY ADDI; THEN, JFCL 13,.+2 IS EXECUTED
|
|
5191 ;TO CLEAR ALL ARITHMETIC FLAGS EXCEPT CRY0.
|
|
5192 ;THIS TEST PASSES IF JFCL 13,.+1 DID NOT RESET CRY0.
|
|
5193
|
|
5194 033045 200 00 0 00 034466 C4700: MOVE [-1] ;RELOAD AC WITH -1,,-1
|
|
5195 033046 271 00 0 00 000001 ADDI 1 ;SET CRY0/1
|
|
5196 033047 255 13 0 00 033050 JFCL 13,.+1 ;*JFCL 13, SHOULD NOT RESET CRY0
|
|
5197 033050 255 04 0 00 033052 JFCL 4,.+2 ;FAIL IF CRY 0 WAS RESET
|
|
5198 STOP^
|
|
5199 033051 254 04 0 00 033052 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5200 033052 324 00 0 00 033053 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5201 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5202 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5203 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5204
|
|
5205 ;**********
|
|
5206
|
|
5207 ;THIS TEST VERIFIES THAT JFCL 15, DOES NOT RESET CRY1.
|
|
5208 ;FIRST CRY0 AND CRY1 ARE SET BY ADDI; THEN, JFCL15,.+2 IS EXECUTED
|
|
5209 ;TO CLEAR ALL ARITHMETIC FLAGS EXCEPT CRY1.
|
|
5210 ;THIS TEST PASSES IF JFCL 15,.+1 DID NOT RESET CRY1.
|
|
5211
|
|
5212 033053 200 00 0 00 034466 C5000: MOVE [-1] ;PRELOAD AC WITH -1,,-1
|
|
5213 033054 271 00 0 00 000001 ADDI 1 ;SET CRY0/1
|
|
5214 033055 255 15 0 00 033056 JFCL 15,.+1 ;*JFCL15, SHOULD NOT RESET CRY0
|
|
5215 033056 255 02 0 00 033060 JFCL 2,.+2 ;FAIL IF CRY1 WAS RESET
|
|
5216 STOP^
|
|
5217 033057 254 04 0 00 033060 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5218 033060 324 00 0 00 033061 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
|
|
5223 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 25
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0117
|
|
|
|
5224 ;THIS TEST VERIFIES THAT JFCL 17, DOES NOT RESET AROV.
|
|
5225 ;FIRST AROV IS SET BY ADD; THEN, JFCL 17,.+2 IS EXECUTED
|
|
5226 ;TO CLEAR ALL ARITHMETIC FLAGS EXCEPT AROV.
|
|
5227 ;THIS TEST PASSES IF JFCL 17,.+1 DID NOT RESET AROV.
|
|
5228
|
|
5229 033061 205 00 0 00 400000 C5100: MOVSI 400000 ;PRELOAD AC WITH -1,,-1
|
|
5230 033062 270 00 0 00 034465 ADD [XWD 400000,0] ;SET AROV
|
|
5231 033063 255 07 0 00 033064 JFCL 7,.+1 ;*JFCL 17, SHOULD NOT RESET AROV
|
|
5232 033064 255 10 0 00 033066 JFCL 10,.+2 ;FAIL IF AROV WAS RESET
|
|
5233 STOP^
|
|
5234 033065 254 04 0 00 033066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5235 033066 324 00 0 00 033067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5236 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5237 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5238 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5239
|
|
5240 ;**********
|
|
5241
|
|
5242 ;THIS TEST VERIFIES THAT ADD OF 0 TO 0 WILL NOT SET AROV.
|
|
5243 ;FIRST, ALL FLAGS ARE RESET, THEN 0 IS ADDED TO 0 VIA ADD.
|
|
5244 ;AROV IS THEN CHECKED. IF AROV IS SET, THIS TEST FAILS.
|
|
5245
|
|
5246 033067 255 17 0 00 033070 C5200: JFCL 17,.+1 ;RESET ARITHMETIC FLAGS
|
|
5247 033070 400 00 0 00 000000 SETZ ;PRELOAD AC,E WITH 0
|
|
5248 033071 270 00 0 00 000000 ADD ;*ADD SHOULD NOT SET AROV
|
|
5249 033072 255 10 0 00 033074 JFCL 10,.+2 ;PASS IF AROV WAS RESET
|
|
5250 033073 334 00 0 00 000000 SKIPA ;SKIP HALT IF ADD PASSED
|
|
5251 STOP^
|
|
5252 033074 254 04 0 00 033075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5253 033075 324 00 0 00 033076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5254 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5255 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5256 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5257
|
|
5258 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 26
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0118
|
|
|
|
5259 ;THIS TEST VERIFIES THAT ADD OF 0 TO 0 WILL NOT SET CRY0.
|
|
5260 ;FIRST, ALL FLAGS ARE RESET, THEN 0 IS ADDED TO 0 VIA ADD.
|
|
5261 ;CRY0 IS THEN CHECKED. IF CRY0 IS SET, THIS TEST FAILS.
|
|
5262
|
|
5263
|
|
5264 033076 400 00 0 00 000000 C5300: SETZ ;RESET ARITHMETIC FLAGS
|
|
5265 033077 255 17 0 00 033100 JFCL 17,.+1 ;PRELOAD AC,E WITH 0
|
|
5266 033100 270 00 0 00 000000 ADD ;*ADD SHOULD NOT SET CRY0
|
|
5267 033101 255 04 0 00 033103 JFCL 4,.+2 ;PASS IF CRY0 WAS RESET
|
|
5268 033102 334 00 0 00 000000 SKIPA ;SKIP HALT IF ADD PASSED
|
|
5269 STOP^
|
|
5270 033103 254 04 0 00 033104 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5271 033104 324 00 0 00 033105 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5272 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5273 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5274 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5275
|
|
5276 ;**********
|
|
5277
|
|
5278 ;THIS TEST VERIFIES THAT ADD OF 0 TO 0 WILL NOT SET CRY1.
|
|
5279 ;FIRST, ALL FLAGS ARE RESET, THEN 0 IS ADDED TO 0 VIA ADD.
|
|
5280 ;CRY1 IS THEN CHECKED. IF CRY1 IS SET, THIS TEST FAILS.
|
|
5281
|
|
5282 033105 400 00 0 00 000000 C5400: SETZ ;RESET ARITHMETIC FLAGS
|
|
5283 033106 255 17 0 00 033107 JFCL 17,.+1 ;PRELOAD AC,E WITH 0
|
|
5284 033107 270 00 0 00 000000 ADD ;*ADD SHOULD NOT SET CRY1
|
|
5285 033110 255 02 0 00 033112 JFCL 2,.+2 ;PASS IF CRY1 WAS RESET
|
|
5286 033111 334 00 0 00 000000 SKIPA ;SKIP HALT IF ADD PASSED
|
|
5287 STOP^
|
|
5288 033112 254 04 0 00 033113 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5289 033113 324 00 0 00 033114 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5290 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5291 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5292 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5293
|
|
5294 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 27
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0119
|
|
|
|
5295 ;THIS TEST VERIFIES THAT THE 30X AND THE 31X INSTRUCTION GROUPS DO NOT AFFECT
|
|
5296 ;THE ARITHMETIC FLAGS. FIRST, THE FLAGS ARE CLEARED AND AC0 IS CLEARED; THEN, CAI
|
|
5297 ;AND CAM ARE EXECUTED. THE FLAGS ARE THEN CHECKED. IF ANY OF THE FLAGS ARE SET,
|
|
5298 ;THIS TEST FAILS AND CAI OR CAM IS CONSIDERED TO HAVE ERRONEOUSLY SET THE FLAGS
|
|
5299
|
|
5300 033114 255 17 0 00 033115 C5500: JFCL 17,.+1 ;CLEAR ALL FLAGS
|
|
5301 033115 400 00 0 00 000000 SETZ ;CLEAR AC,0
|
|
5302 033116 300 00 0 00 000000 CAI ;*CAI SHOULD NOT SET ANY ARITHMETIC FLAG
|
|
5303 033117 310 00 0 00 034466 CAM [-1] ;*CAM SHOULD NOT SET ANY ARITHMETIC FLAG
|
|
5304 033120 255 17 0 00 033122 JFCL 17,.+2 ;FAIL IF ANY FLAG WAS SET
|
|
5305 033121 334 00 0 00 000000 SKIPA ;SKIP HALT IF TEST PASSED
|
|
5306 STOP^
|
|
5307 033122 254 04 0 00 033123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5308 033123 324 00 0 00 033124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5309 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5310 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5311 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5312
|
|
5313 ;**********
|
|
5314
|
|
5315 ;THIS TEST VERIFIES THAT THE BOOLEAN INSTRUCTION GROUPS DO NOT AFFECT
|
|
5316 ;THE ARITHMETIC FLAGS. FIRST THE FLAGS ARE CLEARED AND AC0 IS CLEARED; THEN, XOR [0]
|
|
5317 ;AND XOR [-1] ARE EXECUTED. THE FLAGS ARE THEN CHECKED. IF ANY OF THE FLAGS ARE SET,
|
|
5318 ;THIS TEST FAILS AND XOR IS CONSIDERED TO HAVE ERRONEOUSLY SET THE FLAGS
|
|
5319
|
|
5320 033124 255 17 0 00 033125 C5600: JFCL 17,.+1 ;CLEAR ALL FLAGS
|
|
5321 033125 474 00 0 00 000000 SETO ;CLEAR AC,0
|
|
5322 033126 430 00 0 00 034536 XOR [0] ;*XOR SHOULD NOT SET ANY ARITHMETIC FLAG
|
|
5323 033127 430 00 0 00 034466 XOR [-1] ;*XOR SHOULD NOT SET ANY ARITHMETIC FLAG
|
|
5324 033130 255 17 0 00 033132 JFCL 17,.+2 ;FAIL IF ANY FLAG WAS SET
|
|
5325 033131 334 00 0 00 000000 SKIPA ;SKIP HALT IF TEST PASSED
|
|
5326 STOP^
|
|
5327 033132 254 04 0 00 033133 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5328 033133 324 00 0 00 033134 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5329 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5330 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5331 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5332
|
|
5333 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 28
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0120
|
|
|
|
5334 ;THIS TEST VERIFIES THAT THE AOBJX INSTRUCTION GROUP DOES DO NOT AFFECT
|
|
5335 ;THE ARITHMETIC FLAGS. FIRST THE FLAGS ARE CLEARED AND AC0 IS CLEARED; THEN, AOBJN
|
|
5336 ;AND AOBJP ARE EXECUTED. THE FLAGS ARE THEN CHECKED. IF ANY OF THE FLAGS ARE SET,
|
|
5337 ;THIS TEST FAILS AND AOBJN OR AOBJP IS CONSIDERED TO HAVE ERRONEOUSLY SET THE FLAGS
|
|
5338
|
|
5339 033134 474 00 0 00 000000 C5700: SETO ;CLEAR ALL FLAGS
|
|
5340 033135 255 17 0 00 033136 JFCL 17,.+1 ;CLEAR AC,0
|
|
5341 033136 253 00 0 00 033137 AOBJN .+1 ;*AOBJN SHOULD NOT SET ANY ARITHMETIC ARITHMETIC
|
|
5342 033137 252 00 0 00 033140 AOBJP .+1 ;*AOBJP SHOULD NOT SET ANY ARITHMETIC FLAG
|
|
5343 033140 255 17 0 00 033142 JFCL 17,.+2 ;FAIL IF ANY FLAG WAS SET
|
|
5344 033141 334 00 0 00 000000 SKIPA ;SKIP HALT IF TST PASSED
|
|
5345 STOP^
|
|
5346 033142 254 04 0 00 033143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5347 033143 324 00 0 00 033144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5348 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5349 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5350 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5351
|
|
5352 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 29
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JFCL INSTRUCTION AND ARITHMETIC FLAGS SEQ 0121
|
|
|
|
5353 ;THIS TEST VERIFIES THAT SKIP DOES NOT AFFECT THE FLAGS.
|
|
5354 ;FIRST, THE ARITHMETIC FLAGS ARE CLEARED; THEN, SKIP IS EXECUTED.
|
|
5355 ;IF SKIP SETS AROV, CRYO, CRY1 OR FOV, THIS TEST FAILS.
|
|
5356
|
|
5357 033144 255 17 0 00 033145 C5701: JFCL 17,.+1 ;CLEAR ALL FLAGS
|
|
5358 033145 330 00 0 00 034466 SKIP 0,[-1] ;*SKIP SHOULD NOT SET ANY FLAGS
|
|
5359 033146 255 17 0 00 033150 JFCL 17,.+2 ;FAIL IF ANY FLAG IS SET
|
|
5360 033147 334 00 0 00 000000 SKIPA ;PASS IF NO FLAG IS SET
|
|
5361 STOP^
|
|
5362 033150 254 04 0 00 033151 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5363 033151 324 00 0 00 033152 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5364 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5365 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5366 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5367
|
|
5368 ;**********
|
|
5369
|
|
5370 ;THIS TEST VERIFIES THAT JUMP DOES NOT AFFECT THE FLAGS.
|
|
5371 ;FIRST, THE ARITHMETIC FLAGS ARE CLEARED; THEN, JUMP IS EXECUTED.
|
|
5372 ;IF JUMP SETS AROV, CRYO, CRY1 OR FOV, THIS TEST FAILS.
|
|
5373
|
|
5374 033152 255 17 0 00 033153 C5702: JFCL 17,.+1 ;CLEAR ALL FLAGS
|
|
5375 033153 320 00 0 00 034466 JUMP 0,[-1] ;*JUMP SHOULD NOT SET ANY FLAGS
|
|
5376 033154 255 17 0 00 033156 JFCL 17,.+2 ;FAIL IF ANY FLAG IS SET
|
|
5377 033155 334 00 0 00 000000 SKIPA ;PASS IF NO FLAG IS SET
|
|
5378 STOP^
|
|
5379 033156 254 04 0 00 033157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5380 033157 324 00 0 00 033160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5381 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5382 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5383 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5384
|
|
5385 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 30
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS SEQ 0122
|
|
|
|
5386 SUBTTL TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS
|
|
5387
|
|
5388 ;**********
|
|
5389
|
|
5390 ;THIS TEST VERIFIES THAT 'JRST, 0' DOES NOT SET ANY FLAGS.
|
|
5391 ;FIRST THE ARITHMETIC FLAGS ARE RESET; THEN, 'JRST 0,.+1' IS EXECUTED
|
|
5392 ;THE AROV,CRY0 AND CRY1 FLAGS ARE THEN CHECKED. IF ANY
|
|
5393 ;OF THESE FLAGS ARE SET, THIS TEST FAILS
|
|
5394
|
|
5395 033160 255 17 0 00 033161 C6000: JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5396 033161 254 00 0 00 033162 JRST .+1 ;*JRST SHOULD NOT SET ANY FLAGS
|
|
5397 033162 255 16 0 00 033164 JFCL 16,.+2 ;PASS IF NO FLAGS ARE SET
|
|
5398 033163 334 00 0 00 000000 SKIPA ;SKIP HALT IF JRST PASSES
|
|
5399 STOP^
|
|
5400 033164 254 04 0 00 033165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5401 033165 324 00 0 00 033166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5402 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5403 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5404 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5405
|
|
5406 ;**********
|
|
5407
|
|
5408 ;THIS TEST VERIFIES THAT 'MOVE 2,2' DOES NOT SET ANY FLAGS.
|
|
5409 ;FIRST, THE ARITHMETIC FLAGS ARE RESET; THEN, 'MOVE 2,2' IS EXECUTED.
|
|
5410 ;THE FOV,AROV,CRY0 AND CRY1 FLAGS ARE THEN CHECKED. IF ANY
|
|
5411 ;OF THESE FLAGS ARE SET, THIS TEST FAILS
|
|
5412
|
|
5413 033166 255 17 0 00 033167 C6100: JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5414 033167 200 02 0 00 000002 MOVE 2,2 ;*MOVE SHOULD NOT SET ANY FLAGS
|
|
5415 033170 255 17 0 00 033172 JFCL 17,.+2 ;PASS IF NO FLAGS ARE SET
|
|
5416 033171 334 00 0 00 000000 SKIPA ;SKIP HALT IF MOVE PASSED
|
|
5417 STOP^
|
|
5418 033172 254 04 0 00 033173 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5419 033173 324 00 0 00 033174 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5420 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5421 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5422 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5423
|
|
5424 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 31
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS SEQ 0123
|
|
|
|
5425 ;THIS TEST VERIFIES THAT JRST 2,.+1(1) WILL SET THE ARITHMETIC FLAG
|
|
5426 ;SPECIFIED IN AC1. IN THIS CASE, AC1 SPECIFIES THE CRY0 FLAG.
|
|
5427 ;FIRST, ALL FLAGS ARE RESET; THEN AC1 IS SET TO SPECIFY CRY0.
|
|
5428 ;NEXT, JRST 2,.+1(1) IS EXECUTED TO SET CRY0. CRY0 IS THEN CHECKED. IF
|
|
5429 ;CRY0 IS SET, THIS TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5430
|
|
5431 033174 255 17 0 00 033175 C6200: JFCL 17,.+1 ;CLEAR ALL FLAGS
|
|
5432 SFLAG CRY0 ^;SET CRY0 FLAG
|
|
5433
|
|
5434 033175 205 01 0 00 200000 MOVSI 1,CRY0
|
|
5435 033176 255 17 0 00 033177 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5436 033177 254 02 0 01 033200 JRST 2,.+1(1) ;SET CRY0 FLAG
|
|
5437 033200 255 04 0 00 033202 JFCL 4,.+2 ;PASS IF CRY0 IS SET
|
|
5438 STOP^
|
|
5439 033201 254 04 0 00 033202 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5440 033202 324 00 0 00 033203 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5441 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5442 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5443 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5444
|
|
5445 ;**********
|
|
5446
|
|
5447 ;THIS TEST VERIFIES THAT JRST 2,.+(1) WILL SET THE ARITHMETIC FLAG
|
|
5448 ;SPECIFIED IN AC1. IN THIS CASE, AC1 CONTAIN 0. HENCE, JRST 2,.+1(1)
|
|
5449 ;SHOULD RESET THE ARITHMETIC FLAGS. FIRST, THE CRY0/1, FLAGS ARE SET BY ADDI;
|
|
5450 ;THEN THE FLAGS SHOULD BE CLEARED BY JRST 2,.+1. IF CRY1 WAS CLEARED, THE
|
|
5451 ;TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5452
|
|
5453 033203 200 00 0 00 034466 C6300: MOVE [-1] ;PRELOAD AC0 WITH -1,,-1
|
|
5454 033204 271 00 0 00 000001 ADDI 1 ;SET CRY0/1 FLAGS
|
|
5455 SFLAG 0 ^;RESET ALL ARITHMETIC FLAGS
|
|
5456
|
|
5457 033205 205 01 0 00 000000 MOVSI 1,0
|
|
5458 033206 255 17 0 00 033207 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5459 033207 254 02 0 01 033210 JRST 2,.+1(1) ;SET 0 FLAG
|
|
5460 033210 255 02 0 00 033212 JFCL 2,.+2 ;PASS IF CRY1 IS RESET
|
|
5461 033211 334 00 0 00 000000 SKIPA ;SKIP HALT INSTRUCTION IF TEST PASSED
|
|
5462 STOP^
|
|
5463 033212 254 04 0 00 033213 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5464 033213 324 00 0 00 033214 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5465 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5466 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5467 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5468
|
|
5469 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 32
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS SEQ 0124
|
|
|
|
5470
|
|
5471 ;THIS TEST VERIFIES THAT JRST 2,.+(1) WILL SET THE ARITHMETIC FLAG
|
|
5472 ;SPECIFIED IN AC1. IN THIS CASE, AC1 CONTAIN 0. HENCE, JRST 2,.+1(1)
|
|
5473 ;SHOULD RESET THE ARITHMETIC FLAGS. FIRST, THE CRY0/1, FLAGS ARE SET BY ADD
|
|
5474 ;THEN THE FLAGS SHOULD BE CLEARED BY JRST 2,.+1. IF AROV WAS CLEARED, THE
|
|
5475 ;TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5476
|
|
5477 033214 205 00 0 00 400000 C6400: MOVSI 400000 ;PRELOAD AC0 WITH -1,,-1
|
|
5478 033215 270 00 0 00 034466 ADD [-1] ;SET CRY0 AND AROV FLAGS
|
|
5479 SFLAG 0 ^;RESET ALL ARITHMETIC FLAGS
|
|
5480
|
|
5481 033216 205 01 0 00 000000 MOVSI 1,0
|
|
5482 033217 255 17 0 00 033220 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5483 033220 254 02 0 01 033221 JRST 2,.+1(1) ;SET 0 FLAG
|
|
5484 033221 255 10 0 00 033223 JFCL 10,.+2 ;PASS IF AROV IS RESET
|
|
5485 033222 334 00 0 00 000000 SKIPA ;SKIP HALT INSTRUCTION IF TEST PASSED
|
|
5486 STOP^
|
|
5487 033223 254 04 0 00 033224 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5488 033224 324 00 0 00 033225 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5489 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5490 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5491 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5492
|
|
5493 ;**********
|
|
5494
|
|
5495 ;THIS TEST VERIFIES THAT JRST 2,.+1(1) WILL SET THE ARITHMETIC FLAG
|
|
5496 ;SPECIFIED IN AC1. IN THIS CASE, AC1 SPECIFIES THE AROV FLAG.
|
|
5497 ;FIRST, ALL FLAGS ARE RESET; THEN AC1 SET TO SPECIFY AROV.
|
|
5498 ;NEXT, JRST 2,.+1(1) IS EXECUTED TO SET AROV. AROV IS THEN CHECKED. IF
|
|
5499 ;AROV IS SET, THIS TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5500
|
|
5501 033225 C6500: SFLAG AROV ^;SET AROV FLAG
|
|
5502
|
|
5503 033225 205 01 0 00 400000 MOVSI 1,AROV
|
|
5504 033226 255 17 0 00 033227 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5505 033227 254 02 0 01 033230 JRST 2,.+1(1) ;SET AROV FLAG
|
|
5506 033230 255 10 0 00 033232 JFCL 10,.+2 ;PASS IF AROV WAS SET
|
|
5507 STOP^
|
|
5508 033231 254 04 0 00 033232 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5509 033232 324 00 0 00 033233 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5510 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5511 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5512 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5513
|
|
5514 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 33
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS SEQ 0125
|
|
|
|
5515 ;THIS TEST VERIFIES THAT JRST 2,.+1(1) WILL SET THE ARITHMETIC FLAG
|
|
5516 ;SPECIFIED IN AC1. IN THIS CASE, AC1 SPECIFIES THE CRY1 FLAG.
|
|
5517 ;FIRST, ALL FLAGS ARE RESET; THEN AC1 SET TO SPECIFY CRY1.
|
|
5518 ;NEXT, JRST 2,.+1(1) IS EXECUTED TO SET CRY1. CRY1 IS THEN CHECKED. IF
|
|
5519 ;CRY1 IS SET, THIS TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5520
|
|
5521 033233 C6600: SFLAG CRY1 ^;SET CRY1 FLAG
|
|
5522
|
|
5523 033233 205 01 0 00 100000 MOVSI 1,CRY1
|
|
5524 033234 255 17 0 00 033235 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5525 033235 254 02 0 01 033236 JRST 2,.+1(1) ;SET CRY1 FLAG
|
|
5526 033236 255 02 0 00 033240 JFCL 2,.+2 ;PASS IF CRY1 WAS SET
|
|
5527 STOP^
|
|
5528 033237 254 04 0 00 033240 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5529 033240 324 00 0 00 033241 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5530 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5531 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5532 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5533
|
|
5534 ;**********
|
|
5535
|
|
5536 ;THIS TEST VERIFIES THAT JRST 2,.+1(1) WILL SET THE ARITHMETIC FLAG
|
|
5537 ;SPECIFIED IN AC1. IN THIS CASE, AC1 SPECIFIES THE FOV FLAG.
|
|
5538 ;FIRST, ALL FLAGS ARE RESET; THEN AC1 SET TO SPECIFY FOV.
|
|
5539 ;NEXT, JRST 2,.+1(1) IS EXECUTED TO SET FOV. FOV IS THEN CHECKED. IF
|
|
5540 ;FOV IS SET, THIS TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5541
|
|
5542 033241 C6700: SFLAG FOV ^;SET FOV FLAG
|
|
5543
|
|
5544 033241 205 01 0 00 040000 MOVSI 1,FOV
|
|
5545 033242 255 17 0 00 033243 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5546 033243 254 02 0 01 033244 JRST 2,.+1(1) ;SET FOV FLAG
|
|
5547 033244 255 01 0 00 033246 JFCL 1,.+2 ;PASS IF FOV WAS SET
|
|
5548 STOP^
|
|
5549 033245 254 04 0 00 033246 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5550 033246 324 00 0 00 033247 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5551 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5552 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5553 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5554
|
|
5555 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 34
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS SEQ 0126
|
|
|
|
5556 ;THIS TEST VERIFIES THAT JFCL 0, SHOULD NEVER JUMP.
|
|
5557 ;FIRST, FOV IS SET VIA JRST2, ;THEN JFCL 0,
|
|
5558 ;IS EXECUTED. IF JFCL 0, DOES NOT SKIP, THIS TEST PASSES
|
|
5559
|
|
5560 033247 C7000: SFLAG FOV ^;SET FOV FLAG
|
|
5561
|
|
5562 033247 205 01 0 00 040000 MOVSI 1,FOV
|
|
5563 033250 255 17 0 00 033251 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5564 033251 254 02 0 01 033252 JRST 2,.+1(1) ;SET FOV FLAG
|
|
5565 033252 255 00 0 00 033254 JFCL ,.+2 ;*JFCL SHOULD NOT JUMP
|
|
5566 033253 334 00 0 00 000000 SKIPA ;PASS IF JFCL DID NOT JUMP
|
|
5567 STOP^
|
|
5568 033254 254 04 0 00 033255 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5569 033255 324 00 0 00 033256 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5570 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5571 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5572 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5573
|
|
5574 ;**********
|
|
5575
|
|
5576 ;THIS TEST VERIFIES THAT JRST 2,.+1(1) WILL SET THE ARITHMETIC FLAG
|
|
5577 ;SPECIFIED IN AC1. IN THIS CASE, AC1 CONTAINS 0. HENCE, JRST 2,.+1(1)
|
|
5578 ;SHOULD RESET THE ARITHMETIC FLAGS. FIRST, THE CRY0, FLAG IS SET BY JRST 2,.+1(1)
|
|
5579 ;WITH C(AC1)=CRY0. THEN, THE FLAGS SHOULD BE CLEARED BY JRST 2,.+1 WITH C(AC1)=0.
|
|
5580 ;IF CRY0 WAS CLEARED, THE TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5581
|
|
5582 033256 C7100: SFLAG CRY0 ^;SET CRY0 FLAGS
|
|
5583
|
|
5584 033256 205 01 0 00 200000 MOVSI 1,CRY0
|
|
5585 033257 255 17 0 00 033260 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5586 033260 254 02 0 01 033261 JRST 2,.+1(1) ;SET CRY0 FLAG
|
|
5587 033261 400 01 0 00 000000 SETZ 1, ;SETUP MASK TO CLEAR ARITHMETIC FLAGS
|
|
5588 033262 254 02 0 01 033263 JRST 2,.+1(1) ;*RESET ARITHMETIC FLAGS
|
|
5589 033263 255 04 0 00 033265 JFCL 4,.+2 ;PASS IF CRY0 FLAG WAS RESET
|
|
5590 033264 334 00 0 00 000000 SKIPA ;SKIP HALT INSTRUCTION IF TEST PSSED
|
|
5591 STOP^
|
|
5592 033265 254 04 0 00 033266 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5593 033266 324 00 0 00 033267 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5594 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5595 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5596 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5597
|
|
5598 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 35
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JRST INSTRUCTION AND ARITHMETIC FLAGS SEQ 0127
|
|
|
|
5599 ;THIS TEST VERIFIES THAT JRST 2,.+1(1) WILL SET THE ARITHMETIC FLAG
|
|
5600 ;SPECIFIED IN AC1. IN THIS CASE, AC1 CONTAINS 0. HENCE, JRST 2,.+1(1)
|
|
5601 ;SHOULD RESET THE ARITHMETIC FLAGS. FIRST, THE FOV, FLAG IS SET BY JRST 2,.+1(1)
|
|
5602 ;WITH C(AC1)=FOV. THEN, THE FLAGS SHOULD BE CLEARED BY JRST 2,.+1 WITH C(AC1)=0.
|
|
5603 ;IF FOV WAS CLEARED, THE TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5604
|
|
5605 033267 C7200: SFLAG FOV ^;SET FOV FLAG
|
|
5606
|
|
5607 033267 205 01 0 00 040000 MOVSI 1,FOV
|
|
5608 033270 255 17 0 00 033271 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5609 033271 254 02 0 01 033272 JRST 2,.+1(1) ;SET FOV FLAG
|
|
5610 033272 400 01 0 00 000000 SETZ 1, ;SETUP MASK TO CLEAR ARITHMETIC FLAGS,
|
|
5611 033273 254 02 0 01 033274 JRST 2,.+1(1) ;*RESET ARITHMETIC FLAGS
|
|
5612 033274 255 01 0 00 033276 JFCL 1,.+2 ;PASS IF FOV FLAG WAS RESET
|
|
5613 033275 334 00 0 00 000000 SKIPA ;SKIP HALT INSTRUCTION IF TEST PSSED
|
|
5614 STOP^
|
|
5615 033276 254 04 0 00 033277 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5616 033277 324 00 0 00 033300 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5617 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5618 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5619 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5620
|
|
5621 ;**********
|
|
5622
|
|
5623 ;THIS TEST VERIFIES THAT JRST 2,.+1(1) WILL SET THE ARITHMETIC FLAG
|
|
5624 ;SPECIFIED IN AC1. IN THIS CASE, AC1 CONTAINS 0. HENCE, JRST 2,.+1(1)
|
|
5625 ;SHOULD RESET THE ARITHMETIC FLAGS. FIRST, THE ARITHMETIC FLAGS ARE RESET BY
|
|
5626 ;JFCL 17,.+1. THEN, THE FLAGS SHOULD BE CLEARED BY JRST 2,.+1.
|
|
5627 ;IF ALL THE ARITHMETIC FLAGS WERE CLEARED,
|
|
5628 ;THE TEST PASSES. OTHERWISE, JRST 2,.+1 IS FAULTY
|
|
5629
|
|
5630 033300 255 17 0 00 033301 C7300: JFCL 17,.+1 ;CLEAR FLAGS
|
|
5631 033301 400 01 0 00 000000 SETZ 1, ;SETUP MASK TO CLEAR ARITMETIC FLAGS
|
|
5632 033302 254 02 0 01 033303 JRST 2,.+1(1) ;*RESET ARITHMETIC FLAGS
|
|
5633 033303 255 17 0 00 033305 JFCL 17,.+2 ;PASS IF ALL FLAGS ARE RESET
|
|
5634 033304 334 00 0 00 000000 SKIPA ;SKIP HALT INSTRUCTION IF TEST PASSED
|
|
5635 STOP^
|
|
5636 033305 254 04 0 00 033306 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5637 033306 324 00 0 00 033307 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5638 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5639 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5640 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5641
|
|
5642 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 36
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JSP INSTRUCTION SEQ 0128
|
|
|
|
5643 SUBTTL TEST OF JSP INSTRUCTION
|
|
5644
|
|
5645 ;**********
|
|
5646
|
|
5647 ;THIS TEST VERIFIES THAT JSP ALWAYS STORES THE FLAGS AND PC IN THE AC.
|
|
5648 ;IN THIS CASE, THE FLAGS ARE RESET; THEN, JSP IS EXECUTED. THE AC IS THEN
|
|
5649 ;CHECKED FOR ITS CONTENTS NON-ZERO. IF C(AC)=0, IT INDICATES
|
|
5650 ;THAT NEITHER THE FLAGS NOR THE PC WAS SAVED. HENCE, THIS TEST FAILS.
|
|
5651
|
|
5652 033307 403 00 0 00 000001 C7400: SETZB 1 ;CLEAR AC AND SETUP MASK TO RESET FLAGS
|
|
5653 033310 254 02 0 01 033311 JRST 2,.+1(1) ;RESET FLAGS
|
|
5654 033311 265 00 0 00 033312 JSP .+1 ;*JSP SHOULD STORE FLAGS AND PC IN THE AC
|
|
5655 033312 336 00 0 00 000000 SKIPN ;PASS IF C(AC) IS NON-ZERO
|
|
5656 STOP ^;IT DID NOT STORE ANY FLAGS OR PC
|
|
5657
|
|
5658 033313 254 04 0 00 033314 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5659 033314 324 00 0 00 033315 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5660 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5661 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5662 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1
|
|
5663
|
|
5664 ;**********
|
|
5665
|
|
5666 ;THIS TEST VERIFIES THAT JSP ALWAYS STORES THE PC IN THE RIGHT HALF OF THE AC.
|
|
5667 ;IN THIS CASE, THE AC IS CLEARED, THEN, JSP IS EXECUTED. THE RIGHT HALF OF
|
|
5668 ;THE AC IS THEN CHECKED FOR ITS CONTENTS NON-ZERO. IF C(AC RIGHT HALF)
|
|
5669 ;IS NON-ZERO, IT INDICATED THAT THE PC WAS SAVED; AND THIS TEST PASSES.
|
|
5670
|
|
5671 033315 400 00 0 00 000000 C7500: SETZ ;CLEAN AC
|
|
5672 033316 265 00 0 00 033317 JSP .+1 ;*JSP SHOULD STORE THE PC IN THE AC
|
|
5673 033317 606 00 0 00 777777 TRNN -1 ;PASS IF C(AC) IN NON-ZERO
|
|
5674 STOP^
|
|
5675 033320 254 04 0 00 033321 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5676 033321 324 00 0 00 033322 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5677 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5678 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5679 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5680
|
|
5681 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 37
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JSP INSTRUCTION SEQ 0129
|
|
|
|
5682 ;THIS TEST VERIFIES THAT JSP ALWAYS STORES THE FLAGS IN THE LEFT HALF OF THE AC.
|
|
5683 ;FIST, THE AC IS CLEARED; THEN, SOME FLAGS ARE SET AND JSP IS EXECUTED.
|
|
5684 ;THE LEFT HALF OF THE AC IS CHECKED FOR ITS CONTENTS NON-ZERO TO DETERMINE
|
|
5685 ;WHETHER THE FLAGS WERE SAVED. IF C(AC-LEFT) IS NON-ZERO, THIS TEST PASSES
|
|
5686
|
|
5687 033322 402 00 0 00 000000 C7600: SETZM 0 ;CLEAR AC
|
|
5688 033323 205 01 0 00 740000 MOVSI 1,740000 ;SET UP MASK TO SET FLAGS
|
|
5689 033324 254 02 0 01 033325 JRST 2,.+1(1) ;SET SOME ARITHMETIC FLAGS
|
|
5690 033325 265 00 0 00 033326 JSP .+1 ;*JSP SHOULD STORE FLAGS IN THE AC
|
|
5691 033326 607 00 0 00 777777 TLNN -1 ;PASS IF C(AC) IS NON-ZERO
|
|
5692 STOP^
|
|
5693 033327 254 04 0 00 033330 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5694 033330 324 00 0 00 033331 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5695 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5696 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5697 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5698
|
|
5699 ;**********
|
|
5700
|
|
5701 ;THIS TEST VERIFIES THAT JSP ALWAYS STORES THE FLAGS IN THE LEFT HALF OF THE AC.
|
|
5702 ;FIRST, THE AC IS CLEARED; THEN, THE AROV FLAG IS SET AND JSP IS EXECUTED.
|
|
5703 ;THEN, THE AROV FLAG BIT OF
|
|
5704 ;THE LEFT HALF OF THE AC IS CHECKED FOR ITS CONTENTS NON-ZERO TO DETERMINE
|
|
5705 ;WHETHER THE AROV FLAG WAS SAVED. IF THE AROV FLAG BIT OF THE AC IS SET, THIS TEST PASSES
|
|
5706
|
|
5707 033331 402 00 0 00 000000 C7700: SETZM 0 ;CLEAR THE AC
|
|
5708 SFLAG AROV ^;SET AROV FLAG
|
|
5709
|
|
5710 033332 205 01 0 00 400000 MOVSI 1,AROV
|
|
5711 033333 255 17 0 00 033334 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5712 033334 254 02 0 01 033335 JRST 2,.+1(1) ;SET AROV FLAG
|
|
5713 033335 265 00 0 00 033336 JSP .+1 ;*JSP SHOULD SAVE THE FLAGS IN THE AC-LEFT
|
|
5714 033336 607 00 0 00 400000 TLNN AROV ;PASS IF AROV WAS SAVED
|
|
5715 STOP^
|
|
5716 033337 254 04 0 00 033340 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5717 033340 324 00 0 00 033341 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5718 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5719 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5720 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5721
|
|
5722 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 38
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JSP INSTRUCTION SEQ 0130
|
|
|
|
5723 ;THIS TEST VERIFIES THAT JSP ALWAYS STORES THE FLAGS IN THE LEFT HALF OF THE AC.
|
|
5724 ;FIRST, THE AC IS CLEARED; THEN, THE CRY0 FLAG IS SET AND JSP IS EXECUTED.
|
|
5725 ;THEN, THE CRY0 FLAG BIT OF
|
|
5726 ;THE LEFT HALF OF THE AC IS CHECKED FOR ITS CONTENTS NON-ZERO TO DETERMINE
|
|
5727 ;WHETHER THE CRY0 FLAG WAS SAVED. IF THE CRY0 FLAG BIT OF THE AC IS SET, THIS TEST PASSES
|
|
5728
|
|
5729 033341 402 00 0 00 000000 C10000: SETZM 0 ;CLEAR THE AC
|
|
5730 SFLAG CRY0 ^;SET CRY0 FLAG
|
|
5731
|
|
5732 033342 205 01 0 00 200000 MOVSI 1,CRY0
|
|
5733 033343 255 17 0 00 033344 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5734 033344 254 02 0 01 033345 JRST 2,.+1(1) ;SET CRY0 FLAG
|
|
5735 033345 265 00 0 00 033346 JSP .+1 ;*JSP SHOULD SAVE THE FLAGS IN THE AC-LEFT
|
|
5736 033346 607 00 0 00 200000 TLNN CRY0 ;PASS IF CRY0 WAS SAVED
|
|
5737 STOP^
|
|
5738 033347 254 04 0 00 033350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5739 033350 324 00 0 00 033351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5740 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5741 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5742 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5743
|
|
5744 ;**********
|
|
5745
|
|
5746 ;THIS TEST VERIFIES THAT JSP ALWAYS STORES THE FLAGS IN THE LEFT HALF OF THE AC.
|
|
5747 ;FIRST, THE AC IS CLEARED; THEN, THE CRY1 FLAG IS SET AND JSP IS EXECUTED.
|
|
5748 ;THEN, THE CRY1 FLAG BIT OF
|
|
5749 ;THE LEFT HALF OF THE AC IS CHECKED FOR ITS CONTENTS NON-ZERO TO DETERMINE
|
|
5750 ;WHETHER THE FLAG WAS SAVED. IF THE CRY1 FLAG BIT OF THE AC IS SET, THIS TEST PASSES
|
|
5751
|
|
5752 033351 400 00 0 00 000000 C10100: SETZ ;CLEAR AC
|
|
5753 SFLAG CRY1 ^;SET CRY1 FLAG
|
|
5754
|
|
5755 033352 205 01 0 00 100000 MOVSI 1,CRY1
|
|
5756 033353 255 17 0 00 033354 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5757 033354 254 02 0 01 033355 JRST 2,.+1(1) ;SET CRY1 FLAG
|
|
5758 033355 265 00 0 00 033356 JSP .+1 ;*JSP SHOULD SAVE THE FLAGS IN THE AC-LEFT
|
|
5759 033356 607 00 0 00 100000 TLNN CRY1 ;PASS IF AROV WAS SAVED
|
|
5760 STOP^
|
|
5761 033357 254 04 0 00 033360 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5762 033360 324 00 0 00 033361 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5763 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5764 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5765 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5766
|
|
5767 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 39
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JSP INSTRUCTION SEQ 0131
|
|
|
|
5768 ;THIS TEST VERIFIES THAT JSP ALWAYS STORES THE FLAGS IN THE LEFT HALF OF THE AC.
|
|
5769 ;FRIST, THE AC IS CLEARED; THEN, THE FOV FLAG IS SET AND JSP IS EXECUTED.
|
|
5770 ;THEN, THE FOV FLAG BIT OF THE LEFT HALF OF THE AC IS CHECKED FOR
|
|
5771 ;ITS CONTENTS NON-ZERO TO DETERMINE WHETHER THE FOV FLAG WAS SAVED.
|
|
5772 ;IF THE FOV FLAG BIT OF THE AC IS SET, THIS TEST PASSES
|
|
5773
|
|
5774 033361 400 00 0 00 000000 C10200: SETZ ;CLEAR THE AC
|
|
5775 SFLAG FOV ^;SET FOV FLAG
|
|
5776
|
|
5777 033362 205 01 0 00 040000 MOVSI 1,FOV
|
|
5778 033363 255 17 0 00 033364 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5779 033364 254 02 0 01 033365 JRST 2,.+1(1) ;SET FOV FLAG
|
|
5780 033365 265 00 0 00 033366 JSP .+1 ;*JSP SHOULD SAVE THE FLAGS IN THE AC-LEFT
|
|
5781 033366 607 00 0 00 040000 TLNN FOV ;PASS IF FOV WAS SAVED
|
|
5782 STOP^
|
|
5783 033367 254 04 0 00 033370 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5784 033370 324 00 0 00 033371 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5785 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5786 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5787 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5788
|
|
5789 ;**********
|
|
5790
|
|
5791 ;THIS TEST VERIFIES THAT JSP WILL STORE ONLY FLAGS THAT EXIST.
|
|
5792 ;I.E. RESET FLAGS WILL NOT BE SET IN THE AC. ONLY FLAGS THAT ARE
|
|
5793 ;CLEARABLE BY JRSTF WILL BE CHECKED HERE. FIRST ALL CLEARABLE
|
|
5794 ;FLAGS ARE RESET BY JRSTF; THEN JSP IS EXECUTED. THE AC IS THEN CHECKED.
|
|
5795 ;IF ANY CLEARABLE FLAGS ARE SET IN THE AC, THIS TEST FAILS.
|
|
5796
|
|
5797 033371 C10300: SFLAG 0 ^;CLEAR ALL CLEARABLE FLAGS
|
|
5798
|
|
5799 033371 205 01 0 00 000000 MOVSI 1,0
|
|
5800 033372 255 17 0 00 033373 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
5801 033373 254 02 0 01 033374 JRST 2,.+1(1) ;SET 0 FLAG
|
|
5802 033374 265 00 0 00 033375 JSP .+1 ;*JSP SHOULD NOT STORE CLEARABLE FALGS
|
|
5803 033375 603 00 0 00 761777 TLNE 761777 ;FAIL IF ANY CLEARABLE FLAG IS SET
|
|
5804 STOP^
|
|
5805 033376 254 04 0 00 033377 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5806 033377 324 00 0 00 033400 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5807 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5808 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5809 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5810
|
|
5811 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 40
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JSP INSTRUCTION SEQ 0132
|
|
|
|
5812 ;THIS TEST VERIFIES THAT JSP ALWAYS JUMPS.
|
|
5813 ;IN THIS TEST, JSP .+2 IS EXECUTED. IF JSP JUMPS, THE TEST PASSES;
|
|
5814 ;OTHERWISE, THIS TEST HALTS
|
|
5815
|
|
5816 033400 265 00 0 00 033402 C10400: JSP .+2 ;*JSP SHOULD ALWAYS JUMP
|
|
5817 STOP^
|
|
5818 033401 254 04 0 00 033402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5819 033402 324 00 0 00 033403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5820 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5821 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5822 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5823
|
|
5824 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 41
|
|
DAKADM MAC 19-JAN-77 13:41 TEST JRST INSTRUCTION SEQ 0133
|
|
|
|
5825 SUBTTL TEST JRST INSTRUCTION
|
|
5826
|
|
5827 ;**********
|
|
5828
|
|
5829 ;THIS TEST VERIFIES THAT JRST ALWAYS JUMPS.
|
|
5830 ;IN THIS TEST, JRST .+2 IS EXECUTED. IF JRST JUMPS, THE TEST PASSES;
|
|
5831 ;OTHERWISE, THIS TEST HALTS
|
|
5832
|
|
5833 033403 254 00 0 00 033405 C10500: JRST .+2 ;*JRST 0, SHOULD ALWAYS JUMP
|
|
5834 STOP^
|
|
5835 033404 254 04 0 00 033405 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5836 033405 324 00 0 00 033406 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5837 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5838 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5839 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5840
|
|
5841 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 42
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOBJX INSTRUCTIONS SEQ 0134
|
|
|
|
5842 SUBTTL TEST OF AOBJX INSTRUCTIONS
|
|
5843
|
|
5844 ;**********
|
|
5845
|
|
5846 ;THIS TEST VERIFIES THAT AOBJN ALWAYS ADDS 1 TO BOTH HALVES OF THE AC.
|
|
5847 ;FIRST, THE AC IS CLEARED; THEN, AOBJN IS EXECUTED AND THE AC IS CHECKED
|
|
5848 ;FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES.
|
|
5849
|
|
5850 033406 400 00 0 00 000000 C11200: SETZ ;CLEAR THE AC
|
|
5851 033407 253 00 0 00 033410 AOBJN .+1 ;*AOBJN SHOULD ADD 1 TO BOTH HALVES OF THE AC
|
|
5852 033410 312 00 0 00 034442 CAME [XWD 1,1] ;PASS IF C(AC)=1,,1
|
|
5853 STOP^
|
|
5854 033411 254 04 0 00 033412 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5855 033412 324 00 0 00 033413 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5856 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5857 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5858 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5859
|
|
5860 ;**********
|
|
5861
|
|
5862 ;THIS TEST VERIFIES THAT AOBJP ALWAYS ADDS 1 TO BOTH HALVES OF THE AC.
|
|
5863 ;FIRST, THE AC IS CLEARED; THEN AOBJP IS EXECUTED AND THE AC IS CHECKED
|
|
5864 ;FOR 1,,1. IF C(AC)=1,,1, THIS TEST PASSES.
|
|
5865
|
|
5866 033413 200 00 0 00 034540 C11300: MOVE [XWD 377777,377777] ;PRELOAD AC WITH 377777,,377777
|
|
5867 033414 252 00 0 00 033415 AOBJP .+1 ;*AOBJP SHOULD ADD, TO BOTH HALVES OF THE AC
|
|
5868 033415 312 00 0 00 034541 CAME [XWD 400000,400000] ;PASS IF C(AC)=400000,400000
|
|
5869 STOP^
|
|
5870 033416 254 04 0 00 033417 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5871 033417 324 00 0 00 033420 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5872 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5873 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5874 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5875
|
|
5876 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 43
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOBJX INSTRUCTIONS SEQ 0135
|
|
|
|
5877 ;THIS TEST VERIFIES THAT AOBJN WILL NOT JUMP WHEN C(AC) IS POSITIVE
|
|
5878 ;FIRST, THE AC IS CLEARED; AND AOBJN IS EXECUTED. AOBJN SHOULD NOT JUMP
|
|
5879 ;BECAUSE C(AC) IS POSITIVE. IF AOBJN JUMPS, THIS TEST FAILS
|
|
5880
|
|
5881 033420 400 00 0 00 000000 C11400: SETZ ;CLEAR THE AC
|
|
5882 033421 253 00 0 00 033423 AOBJN .+2 ;*AOBJN SHOULD NOT JUMP WHEN C(AC) IS POSITIVE
|
|
5883 033422 334 00 0 00 000000 SKIPA ;PASS IF AOBJN DOES NOT JUMP
|
|
5884 STOP^
|
|
5885 033423 254 04 0 00 033424 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5886 033424 324 00 0 00 033425 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5887 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5888 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5889 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5890
|
|
5891 ;**********
|
|
5892
|
|
5893 ;THIS TEST VERIFIES THAT AOBJP WILL JUMP WHEN C(AC) IS POSITIVE
|
|
5894 ;FIRST, THE AC IS CLEARED; AND AOBJP IS EXECUTED. AOBJP SHOULD JUMP
|
|
5895 ;BECAUSE C(AC) IS POSITIVE. IF AOBJP DOES NOT JUMP, THIS TEST FAILS
|
|
5896
|
|
5897 033425 400 00 0 00 000000 C11500: SETZ ;CLEAR THE AC
|
|
5898 033426 252 00 0 00 033430 AOBJP .+2 ;*AOBJP SHOULD JUMP BECAUSE C(AC) IS POSITIVE
|
|
5899 STOP^
|
|
5900 033427 254 04 0 00 033430 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5901 033430 324 00 0 00 033431 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5902 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5903 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5904 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5905
|
|
5906 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 44
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOBJX INSTRUCTIONS SEQ 0136
|
|
|
|
5907 ;THIS TEST VERIFIES THAT AOBJN WILL JUMP WHEN C(AC) IS NEGATIVE
|
|
5908 ;FIRST, THE AC IS PRELOADED WITH 400000,,0; AND AOBJN IS EXECUTED. AOBJN SHOULD JUMP
|
|
5909 ;BECAUSE C(AC) IS NEGATIVE. IF AOBJN DOES NOT JUMP, THIS TEST FAILS
|
|
5910
|
|
5911 033431 200 00 0 00 034541 C11600: MOVE [XWD 400000,400000] ;PRELOAD AC WITH 400000,,400000
|
|
5912 033432 253 00 0 00 033434 AOBJN .+2 ;*AOBJN SHOULD JUMP BECAUSE C(AC) IS NEGATIVE
|
|
5913 STOP^
|
|
5914 033433 254 04 0 00 033434 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5915 033434 324 00 0 00 033435 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5916 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5917 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5918 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5919
|
|
5920 ;**********
|
|
5921
|
|
5922 ;THIS TEST VERIFIES THAT AOBJP WILL NOT JUMP WHEN C(AC) IS NEGATIVE. FIRST,
|
|
5923 ;THE AC IS PRELOADED WITH 400000,,0; AND AOBJP IS EXECUTED. AOBJP SHOULD NOT JUMP
|
|
5924 ;BECAUSE C(AC) IS NEGATIVE. IF AOBJP JUMPS, THIS TEST FAILS
|
|
5925
|
|
5926 033435 200 00 0 00 034541 C11700: MOVE [XWD 400000,400000] ;PRELOAD AC WITH 400000,,400000
|
|
5927 033436 252 00 0 00 033440 AOBJP .+2 ;*AOBJP SHOULD NOT JUMP BECAUSE C(AC) IS NEGATIVE
|
|
5928 033437 334 00 0 00 000000 SKIPA ;PASS IF AOBJP DOES NOT JUMP
|
|
5929 STOP^
|
|
5930 033440 254 04 0 00 033441 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5931 033441 324 00 0 00 033442 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5932 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5933 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5934 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5935
|
|
5936 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 45
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOBJX INSTRUCTIONS SEQ 0137
|
|
|
|
5937 ;THIS TEST VERIFIES THAT THERE IS A CARRY FROM BIT 18 TO BIT 17 OF THE AC ON AOBJN.
|
|
5938 ;THE AC IS PRELOADED WITH -1,,-1; THEN AOBJN IS EXECUTED. AOBJN SHOULD ADD ONE
|
|
5939 ;TO BOTH HALVES OF THE AC, GENERATING A CARRY FROM BIT 18 TO BIT 17. IF A
|
|
5940 ;CARRY WAS GENERATED, THIS TEST PASSES
|
|
5941
|
|
5942 033442 474 00 0 00 000000 C12000: SETO ;PRELOAD AC WITH -1,, -1
|
|
5943 033443 253 00 0 00 033444 AOBJN .+1 ;*AOBJN SHOULD GENERATE A CARRY FROM BIT 18 TO 17
|
|
5944 033444 312 00 0 00 034444 CAME [1,,0] ;PASS IF C(AC)=1,,0 (CARRY WAS GENERATED)
|
|
5945 STOP^
|
|
5946 033445 254 04 0 00 033446 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5947 033446 324 00 0 00 033447 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5948 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5949 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5950 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5951
|
|
5952 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 46
|
|
DAKADM MAC 19-JAN-77 13:41 TEST SETTING OF ARITHMETIC FLAGS VIA MOVNX AND MOVMX SEQ 0138
|
|
|
|
5953 SUBTTL TEST SETTING OF ARITHMETIC FLAGS VIA MOVNX AND MOVMX
|
|
5954
|
|
5955 ;THIS TEST VERIFIES THAT MOVNI SETS CRY0 AND CRY1 FLAGS ONLY WHEN THE DATA IS 0.
|
|
5956 ;FIRST, THE ARITHMETIC FLAGS ARE RESET; THEN, MOVNI IS EXECUTED WITH DATA OF ZEROS.
|
|
5957 ;THE ARITHMETIC FLAGS ARE CHECKED.
|
|
5958 ; CRY0/1 ARE SET AND AROV AND FOV RESET, THIS TEST PASSES.
|
|
5959
|
|
5960 033447 255 17 0 00 033450 C12100: JFCL 17,.+1 ;CLEAR FLAGS
|
|
5961 033450 211 00 0 00 000000 MOVNI 0 ;* MOVNI 0 SHOULD SET CRY0/1
|
|
5962 033451 255 04 0 00 033453 JCRY0 .+2 ;PASS IF CRY0 IS SET
|
|
5963 STOP^
|
|
5964 033452 254 04 0 00 033453 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5965 033453 324 00 0 00 033454 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5966 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5967 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5968 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5969 033454 255 02 0 00 033456 JCRY1 .+2 ;PASS IF CRY1 IS SET
|
|
5970 STOP^
|
|
5971 033455 254 04 0 00 033456 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5972 033456 324 00 0 00 033457 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5973 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5974 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5975 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5976 033457 255 10 0 00 033461 JOV .+2 ;PASS IF AROV RESET
|
|
5977 033460 334 00 0 00 000000 SKIPA
|
|
5978 STOP^
|
|
5979 033461 254 04 0 00 033462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5980 033462 324 00 0 00 033463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5981 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5982 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5983 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5984 033463 255 01 0 00 033465 JFOV .+2 ;PASS IF FOV RESET
|
|
5985 033464 334 00 0 00 000000 SKIPA
|
|
5986 STOP^
|
|
5987 033465 254 04 0 00 033466 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
5988 033466 324 00 0 00 033467 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
5989 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
5990 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
5991 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
5992
|
|
5993 ;**********
|
|
5994
|
|
5995 ;THIS TEST VERIFIES THAT MOVN WILL NOT SET ARITHMETIC FLAGS WHEN THE DATA IS -1,,-1.
|
|
5996 ;FIRST, THE FLAGS ARE RESET; THEN, MOVN [-1,,-1] IS EXECUTED.
|
|
5997 ;THE ARITHMETIC FLAGS ARE CHECKED.
|
|
5998 ;IF ANY ARITHMETIC FLAG IS SET, THIS TEST FAILS.
|
|
5999
|
|
6000 033467 255 17 0 00 033470 C12200: JFCL 17,.+1 ;CLEAR FLAGS
|
|
6001 033470 210 00 0 00 034466 MOVN [-1] ;*MOVN [-1,,-1] SHOULD SET ARITHMETIC FLAGS
|
|
6002 033471 255 17 0 00 033473 JFCL 17,.+2 ;FAIL IF AN ARITHMETIC FLAG IS SET
|
|
6003 033472 334 00 0 00 000000 SKIPA ;SKIP HALT INSTRUCTION IF MOVN PASSED.
|
|
6004 STOP^
|
|
6005 033473 254 04 0 00 033474 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6006 033474 324 00 0 00 033475 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6007 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 46-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST SETTING OF ARITHMETIC FLAGS VIA MOVNX AND MOVMX SEQ 0139
|
|
|
|
6008 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6009 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6010
|
|
6011 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 47
|
|
DAKADM MAC 19-JAN-77 13:41 TEST SETTING OF ARITHMETIC FLAGS VIA MOVNX AND MOVMX SEQ 0140
|
|
|
|
6012 ;THIS TEST VERIFIES THAT MOVN WILL SET THE AROV AND
|
|
6013 ;CRY1 FLAGS ONLY WHEN THE DATA IS 400000,,0
|
|
6014 ;FIRST, THE FLAGS ARE RESET; THEN, MOVN [400000,,0] IS EXECUTED.
|
|
6015 ;THE ARITHMETIC FLAGS ARE CHECKED.
|
|
6016 ;IF AROV AND CRY1 ARE SET AND CRY0 AND FOV ARE RESET, THIS TEST PASSES.
|
|
6017
|
|
6018 033475 255 17 0 00 033476 C12300: JFCL 17,.+1 ;CLEAR ARITHMETIC FLAGS
|
|
6019 033476 210 00 0 00 034465 MOVN [XWD 400000,0] ;*MOVN [400000,,0] SHOULD SET AROV AND CRY1 ONLY
|
|
6020 033477 255 10 0 00 033501 JOV .+2 ;PASS IF AROV IS SET
|
|
6021 STOP^
|
|
6022 033500 254 04 0 00 033501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6023 033501 324 00 0 00 033502 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6024 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6025 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6026 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6027 033502 255 02 0 00 033504 JCRY1 .+2 ;PASS IF CRY0 IS SET
|
|
6028 STOP^
|
|
6029 033503 254 04 0 00 033504 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6030 033504 324 00 0 00 033505 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6031 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6032 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6033 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6034 033505 255 04 0 00 033507 JCRY0 .+2 ;PASS IF CRY0 IS RESET
|
|
6035 033506 334 00 0 00 000000 SKIPA
|
|
6036 STOP^
|
|
6037 033507 254 04 0 00 033510 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6038 033510 324 00 0 00 033511 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6039 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6040 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6041 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6042 033511 255 01 0 00 033513 JFOV .+2 ;PASS IF FOV IS RESET
|
|
6043 033512 334 00 0 00 000000 SKIPA
|
|
6044 STOP^
|
|
6045 033513 254 04 0 00 033514 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6046 033514 324 00 0 00 033515 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6047 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6048 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6049 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6050
|
|
6051 ;**********
|
|
6052
|
|
6053 ;THIS TEST VERIFIES THAT MOVM WILL SET THE AROV AND
|
|
6054 ;CRY1 FLAGS ONLY WHEN THE DATA IS 400000,,0
|
|
6055 ;FIRST, THE FLAGS ARE RESET; THEN, MOVM [400000,,0] IS EXECUTED.
|
|
6056 ;THE ARITHMETIC FLAGS ARE CHECKED.
|
|
6057 ;IF AROV AND CRY1 ARE SET AND CRY0 AND FOV ARE RESET, THIS TEST PASSES.
|
|
6058
|
|
6059 033515 255 17 0 00 033516 C12301: JFCL 17,.+1 ;CLEAR ARITHMETIC FLAGS
|
|
6060 033516 214 00 0 00 034465 MOVM [XWD 400000,0] ;*MOVM [400000,,0] SHOULD SET AROV AND CRY1 ONLY
|
|
6061 033517 255 10 0 00 033521 JOV .+2 ;PASS IF AROV IS SET
|
|
6062 STOP^
|
|
6063 033520 254 04 0 00 033521 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6064 033521 324 00 0 00 033522 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6065 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6066 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 47-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST SETTING OF ARITHMETIC FLAGS VIA MOVNX AND MOVMX SEQ 0141
|
|
|
|
6067 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6068 033522 255 02 0 00 033524 JCRY1 .+2 ;PASS IF CRY0 IS SET
|
|
6069 STOP^
|
|
6070 033523 254 04 0 00 033524 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6071 033524 324 00 0 00 033525 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6072 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6073 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6074 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6075 033525 255 04 0 00 033527 JCRY0 .+2 ;PASS IF CRY0 IS RESET
|
|
6076 033526 334 00 0 00 000000 SKIPA
|
|
6077 STOP^
|
|
6078 033527 254 04 0 00 033530 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6079 033530 324 00 0 00 033531 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6083 033531 255 01 0 00 033533 JFOV .+2 ;PASS IF FOV IS RESET
|
|
6084 033532 334 00 0 00 000000 SKIPA
|
|
6085 STOP^
|
|
6086 033533 254 04 0 00 033534 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6087 033534 324 00 0 00 033535 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6088 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6089 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6090 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6091
|
|
6092 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 48
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOS AND SOS INSTRUCTIONS SEQ 0142
|
|
|
|
6093 SUBTTL TEST OF AOS AND SOS INSTRUCTIONS
|
|
6094
|
|
6095 ;**********
|
|
6096
|
|
6097 ;THIS TEST VERIFIES THAT AOS ADDS 1 TO MEMORY AND DOES NOT SKIP.
|
|
6098 ;FIRST, E IS CLEARED; THEN, AOS IS EXECUTED. NEXT E IS CHECKED FOR 1.
|
|
6099 ;IF C(E) IS NOT 1 OR AOS SKIPPED, THIS TEST FAILS
|
|
6100
|
|
6101 033535 400 00 0 00 000000 C12600: SETZ ;CLEAR E
|
|
6102 033536 350 00 0 00 000000 AOS ;*AOS SHOULD ADD 1 TO C(E) AND NOT SKIP
|
|
6103 033537 302 00 0 00 000001 CAIE 1 ;PASS IF C(E)=0,,1 ANDAOS DID NOT SKIP
|
|
6104 STOP^
|
|
6105 033540 254 04 0 00 033541 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6106 033541 324 00 0 00 033542 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6107 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6108 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6109 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6110
|
|
6111 ;**********
|
|
6112
|
|
6113 ;THIS TEST VERIFIES THAT AOS ADDS 1 TO MEMORY AND DOES NOT SKIP.
|
|
6114 ;FIRST, E IS PRELOADED WITH -1,,-1; THEN, AOS IS EXECUTED. NEXT E IS CHECKED FOR 0.
|
|
6115 ;IF C(E) IS NOT 0 OR AOS SKIPPED, THIS TEST FAILS
|
|
6116
|
|
6117 033542 474 00 0 00 000000 C12700: SETO ;PRELOAD E WITH -1,,-1
|
|
6118 033543 350 00 0 00 000000 AOS ;*AOS SHOULD ADD 1 TO C(E) AND NOT SKIP
|
|
6119 033544 302 00 0 00 000000 CAIE ;PASS IF C(E)=0,,0 AND AOS DID NOT SKIP
|
|
6120 STOP^
|
|
6121 033545 254 04 0 00 033546 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6122 033546 324 00 0 00 033547 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6123 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6124 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6125 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6126
|
|
6127 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 49
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOS AND SOS INSTRUCTIONS SEQ 0143
|
|
|
|
6128 ;THIS TEST VERIFIES THAT SOS SUBTRACTS 1 FROM MEMORY AND DOES NOT SKIP.
|
|
6129 ;FIRST, E IS CLEARED; THEN, SOS IS EXECUTED. NEXT E IS CHECKED FOR -1,,-1.
|
|
6130 ;IF C(E) IS NOT -1,,-1 OR SOS SKIPPED, THIS TEST FAILS
|
|
6131
|
|
6132 033547 400 00 0 00 000000 C13100: SETZ ;CLEAR E
|
|
6133 033550 370 00 0 00 000000 SOS ;*SOS SHOULD SUBTRACT 1 FROM C(E) AND NOT SKIP
|
|
6134 033551 312 00 0 00 034466 CAME [-1] ;PASS IF C(E)=-1,,-1 AND SOS DID NOT SKIP
|
|
6135 STOP^
|
|
6136 033552 254 04 0 00 033553 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6137 033553 324 00 0 00 033554 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6138 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6139 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6140 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6141
|
|
6142 ;**********
|
|
6143
|
|
6144 ;THIS TEST VERIFIES THAT SOS SUBTRACTS 1 FROM MEMORY AND DOES NOT SKIP.
|
|
6145 ;FIRST, E IS PRELOADED WITH A; THEN, SOS IS EXECUTED. NEXT E IS CHECKED FOR 0.
|
|
6146 ;IF C(E) IS NOT 0 OR SOS SKIPPED, THIS TEST FAILS
|
|
6147
|
|
6148 033554 201 00 0 00 000001 C13200: MOVEI 1 ;PRELOAD E WITH 1
|
|
6149 033555 370 00 0 00 000000 SOS ;*SOS SHOULD SUBTRACT 1 FROM C(E) AND DID NOT SKIP
|
|
6150 033556 302 00 0 00 000000 CAIE 0 ;PASS IF C(E)=0 AND SOS DID NOT SKIP
|
|
6151 STOP^
|
|
6152 033557 254 04 0 00 033560 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6153 033560 324 00 0 00 033561 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6154 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6155 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6156 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6157
|
|
6158 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 50
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOS AND SOS INSTRUCTIONS SEQ 0144
|
|
|
|
6159 ;THIS TEST VERIFIES THAT SOS SETS CRY0/1 FLAGS IF C(E) IS A NON-ZERO NUMBER OTHER
|
|
6160 ;THAN 400000,,0. IN THIS CASE, C(E)=1. FIRST THE FLAGS ARE RESET; THEN
|
|
6161 ;SOS IS EXECUTED. THE FLAGS ARE CHECKED. IF CRY0 AND CRY1 ARE SET
|
|
6162 ;AND AROV AND FOV ARE RESET, THIS TEST PASSES.
|
|
6163
|
|
6164 033561 255 17 0 00 033562 C13300: JFCL 17,.+1 ;RESET ARITHMETIC FLAGS
|
|
6165 033562 201 00 0 00 000001 MOVEI 1 ;PRELOAD E WITH 1
|
|
6166 033563 370 00 0 00 000000 SOS ;*SOS SHOULD SET CRY0/1
|
|
6167 033564 255 04 0 00 033566 JCRY0 .+2 ;PASS IF CRY0 IS SET
|
|
6168 STOP^
|
|
6169 033565 254 04 0 00 033566 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6170 033566 324 00 0 00 033567 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6171 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6172 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6173 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6174 033567 255 02 0 00 033571 JCRY1 .+2 ;PASS IF CRY1 IS SET
|
|
6175 STOP^
|
|
6176 033570 254 04 0 00 033571 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6177 033571 324 00 0 00 033572 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6178 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6179 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6180 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6181 033572 255 10 0 00 033574 JOV .+2 ;PASS IF AROV IS RESET
|
|
6182 033573 334 00 0 00 000000 SKIPA
|
|
6183 STOP^
|
|
6184 033574 254 04 0 00 033575 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6185 033575 324 00 0 00 033576 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6186 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6187 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6188 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6189 033576 255 01 0 00 033600 JFOV .+2 ;PASS IF FOV IS RESET
|
|
6190 033577 334 00 0 00 000000 SKIPA
|
|
6191 STOP^
|
|
6192 033600 254 04 0 00 033601 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6193 033601 324 00 0 00 033602 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6194 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6195 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6196 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6197
|
|
6198 ;**********
|
|
6199
|
|
6200 ;THIS TEST VERIFIES THAT AOS SETS CRY0 AND CRY1 FLAG IF C(E) IS -1,,-1
|
|
6201 ;FIRST THE FLAGS ARE RESET; THEN
|
|
6202 ;AOS IS EXECUTED. THE FLAGS ARE CHECKED.
|
|
6203 ;IF CRY0 AND CRY1 ARE SET AND AROV AND FOV ARE RESET, THIS TEST PASSES.
|
|
6204
|
|
6205 033602 255 17 0 00 033603 C13400: JFCL 17,.+1 ;RESET ARITHMETIC FLAGS
|
|
6206 033603 474 00 0 00 000000 SETO ;PRELOAD E WITH 1
|
|
6207 033604 350 00 0 00 000000 AOS ;*AOS SHOULD SET CRY0 AND CRY1
|
|
6208 033605 255 04 0 00 033607 JCRY0 .+2 ;PASS IF CRY0 IS SET
|
|
6209 STOP^
|
|
6210 033606 254 04 0 00 033607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6211 033607 324 00 0 00 033610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6212 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6213 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 50-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOS AND SOS INSTRUCTIONS SEQ 0145
|
|
|
|
6214 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6215 033610 255 02 0 00 033612 JCRY1 .+2 ;PASS IF CRY1 IS SET
|
|
6216 STOP^
|
|
6217 033611 254 04 0 00 033612 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6218 033612 324 00 0 00 033613 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6222 033613 255 10 0 00 033615 JOV .+2 ;PASS IF AROV IS RESET
|
|
6223 033614 334 00 0 00 000000 SKIPA
|
|
6224 STOP^
|
|
6225 033615 254 04 0 00 033616 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6226 033616 324 00 0 00 033617 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6227 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6228 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6229 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6230 033617 255 01 0 00 033621 JFOV .+2 ;PASS IF FOV IS RESET
|
|
6231 033620 334 00 0 00 000000 SKIPA
|
|
6232 STOP^
|
|
6233 033621 254 04 0 00 033622 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6234 033622 324 00 0 00 033623 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6235 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6236 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6237 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6238
|
|
6239 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 51
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INTERACTION OF JFCL, JRST, AND JSP WITH ARITHMETIC FLAGS SEQ 0146
|
|
|
|
6240 SUBTTL TEST OF INTERACTION OF JFCL, JRST, AND JSP WITH ARITHMETIC FLAGS
|
|
6241
|
|
6242 ;**********
|
|
6243
|
|
6244 ;THIS TEST VERIFIES THAT JFCL 1, WILL ALWAYS CLEAR FOV FLAG.
|
|
6245 ;FIRST, FOV IS SET VIA JRST 2, ;THEN JFCL 1,.+1 IS EXECUTED TO CLEAR FOV.
|
|
6246 ;IF FOV WAS CLEARED, THIS TEST PASSES.
|
|
6247
|
|
6248 033623 C13600: SFLAG FOV ^;SET FOV FLAG
|
|
6249
|
|
6250 033623 205 01 0 00 040000 MOVSI 1,FOV
|
|
6251 033624 255 17 0 00 033625 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
6252 033625 254 02 0 01 033626 JRST 2,.+1(1) ;SET FOV FLAG
|
|
6253 033626 255 01 0 00 033627 JFCL 1,.+1 ;*JFCL SHOULD RESET FOV
|
|
6254 033627 255 01 0 00 033631 JFCL 1,.+2 ;PASS IF FOV IS RESET
|
|
6255 033630 334 00 0 00 000000 SKIPA ;SKIP HALT IF JFCL 1,.+1 PASSED
|
|
6256 STOP^
|
|
6257 033631 254 04 0 00 033632 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6258 033632 324 00 0 00 033633 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6259 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6260 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6261 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6262
|
|
6263 ;**********
|
|
6264
|
|
6265 ;THIS TEST VERIFIES THAT JRST 2, CAN SET FXU AND JSP CAN SAVE FXU IN THE AC.
|
|
6266 ;FIRST, FXU IS SET VIA JRST 2, ;THEN, JSP IS EXECUTED. THE AC IS CHECKED
|
|
6267 ;FOR FXU. IF FXU IS SET, THIS TEST PASSES; OTHERWISE, EITHER JRST 2, OR JSP FAILED.
|
|
6268
|
|
6269 033633 C13700: SFLAG FXU ^;*SET FXU FLAG
|
|
6270
|
|
6271 033633 205 01 0 00 000100 MOVSI 1,FXU
|
|
6272 033634 255 17 0 00 033635 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
6273 033635 254 02 0 01 033636 JRST 2,.+1(1) ;SET FXU FLAG
|
|
6274 033636 265 00 0 00 033637 JSP .+1 ;*STORE FXU FLAG IN AC
|
|
6275 033637 607 00 0 00 000100 TLNN FXU ;PASS IF FXU IS SET IN THE AC
|
|
6276 STOP^
|
|
6277 033640 254 04 0 00 033641 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6278 033641 324 00 0 00 033642 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6279 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6280 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6281 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6282
|
|
6283 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 52
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INTERACTION OF JFCL, JRST, AND JSP WITH ARITHMETIC FLAGS SEQ 0147
|
|
|
|
6284 ;THIS TEST VERIFIES THAT JRST 2, CAN RESET FXU AND JSP CAN SAVE FXU IN THE AC.
|
|
6285 ;FIRST, FXU IS SET; THEN, FXU IS RESET VIA JRST 2,. NEXT, JSP IS EXECUTED; AND
|
|
6286 ;THE AC IS CHECKED FOR FXU RESET. IF FXU IS RESET IN THE AC, THIS TEST PASSES;
|
|
6287 ;OTHERWISE, JRST 2, FAILED TO CLEAR FXU OR JSP STORED FXU INCORECTLY.
|
|
6288
|
|
6289 033642 C14000: SFLAG FXU ^;SET FXU FLAG
|
|
6290
|
|
6291 033642 205 01 0 00 000100 MOVSI 1,FXU
|
|
6292 033643 255 17 0 00 033644 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
6293 033644 254 02 0 01 033645 JRST 2,.+1(1) ;SET FXU FLAG
|
|
6294 SFLAG ^;*RESET FXU FLAG
|
|
6295
|
|
6296 033645 205 01 0 00 000000 MOVSI 1,
|
|
6297 033646 255 17 0 00 033647 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
6298 033647 254 02 0 01 033650 JRST 2,.+1(1) ;SET FLAG
|
|
6299 033650 265 00 0 00 033651 JSP .+1 ;*STORE FXU FLAG IN THE AC
|
|
6300 033651 603 00 0 00 000100 TLNE FXU ;PASS IF FXU IS RESET IN THE AC
|
|
6301 STOP^
|
|
6302 033652 254 04 0 00 033653 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6303 033653 324 00 0 00 033654 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6304 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6305 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6306 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6307
|
|
6308 ;**********
|
|
6309
|
|
6310 ;THIS TEST VERIFIES THAT JRST 2, CAN SET DCK AND JSP CAN SAVE DCK IN THE AC.
|
|
6311 ;FIRST, DCK IS SET VIA JRST 2, ;THEN JSP IS EXECUTED. THE AC IS CHECKED
|
|
6312 ;FOR DCK. IF DCK IS SET, THIS TEST PASSES, OTHERWISE JRST 2, OR JSP FAILED.
|
|
6313
|
|
6314 033654 C14100: SFLAG DCK ^;*SET DCK FLAG
|
|
6315
|
|
6316 033654 205 01 0 00 000040 MOVSI 1,DCK
|
|
6317 033655 255 17 0 00 033656 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
6318 033656 254 02 0 01 033657 JRST 2,.+1(1) ;SET DCK FLAG
|
|
6319 033657 265 00 0 00 033660 JSP .+1 ;*STORE FXU FLAG IN AC
|
|
6320 033660 607 00 0 00 000040 TLNN DCK ;PASS IF FXU IS SET IN THE AC
|
|
6321 STOP^
|
|
6322 033661 254 04 0 00 033662 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6323 033662 324 00 0 00 033663 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6324 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6325 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6326 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6327
|
|
6328 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 53
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF INTERACTION OF JFCL, JRST, AND JSP WITH ARITHMETIC FLAGS SEQ 0148
|
|
|
|
6329 ;THIS TEST VERIFIES THAT JRST 2, CAN RESET DCK AND JSP CAN SAVE DCK IN THE AC.
|
|
6330 ;FIRST, FXU IS SET; THEN, DCK IS RESET VIA JRST 2,. NEXT, JSP IS EXPECTED; AND
|
|
6331 ;THE AC IS CHECKED FOR DCK RESET. IF DCK IS RESET IN THE AC, THIS TEST PASSES;
|
|
6332 ;OTHERWISE, JRST 2, FAILED TO CLEAR DCK OR JSP STORED DCK INCORRECTLY.
|
|
6333
|
|
6334 033663 C14200: SFLAG DCK ^;SET DCK FLAG
|
|
6335
|
|
6336 033663 205 01 0 00 000040 MOVSI 1,DCK
|
|
6337 033664 255 17 0 00 033665 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
6338 033665 254 02 0 01 033666 JRST 2,.+1(1) ;SET DCK FLAG
|
|
6339 SFLAG ^;*RESET DCK FLAG
|
|
6340
|
|
6341 033666 205 01 0 00 000000 MOVSI 1,
|
|
6342 033667 255 17 0 00 033670 JFCL 17,.+1 ;RESET ALL FLAGS
|
|
6343 033670 254 02 0 01 033671 JRST 2,.+1(1) ;SET FLAG
|
|
6344 033671 265 00 0 00 033672 JSP .+1 ;*STORE DCK FLAG IN THE AC
|
|
6345 033672 603 00 0 00 000040 TLNE DCK ;PASS IF DCK IS RESET IN THE AC
|
|
6346 STOP^
|
|
6347 033673 254 04 0 00 033674 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6348 033674 324 00 0 00 033675 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6349 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6350 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6351 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6352
|
|
6353 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 54
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JUMPX INSTRUCTIONS SEQ 0149
|
|
|
|
6354 SUBTTL TEST OF JUMPX INSTRUCTIONS
|
|
6355
|
|
6356 ;**********
|
|
6357
|
|
6358 ;THIS TEST VERIFIES THAT JUMPL IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6359 ;C(AC) IS NEGATIVE. IN THIS TEST, THE AC CONTAINS -1,,-1. HENCE,
|
|
6360 ;JUMPL SHOULD JUMP. IF JUMPL JUMPS, THIS TEST PASSES.
|
|
6361
|
|
6362 033675 474 00 0 00 000000 C14500: SETO ;PRELOAD AC WITH -1,,-1
|
|
6363 033676 321 00 0 00 033700 JUMPL .+2 ;*JUMPL SHOULD JUMP BECAUSE C(AC) IS NEGATIVE
|
|
6364 STOP^
|
|
6365 033677 254 04 0 00 033700 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6366 033700 324 00 0 00 033701 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6367 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6368 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6369 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6370
|
|
6371 ;**********
|
|
6372
|
|
6373 ;THIS TEST VERIFIES THAT JUMPL IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6374 ;C(AC) IS NEGATIVE. IN THIS TEST, THE AC CONTAINS 0. HENCE,
|
|
6375 ;JUMPL SHOULD NOT JUMP. IF JUMPL DOES NOT JUMP, THIS TEST PASSES.
|
|
6376
|
|
6377 033701 400 00 0 00 000000 C14600: SETZ ;PRELOAD AC WITH 0
|
|
6378 033702 321 00 0 00 033704 JUMPL .+2 ;*JUMPL SHOULD NOT JUMP
|
|
6379 033703 334 00 0 00 000000 SKIPA ;PASS IF JUMPL DOES NOT JUMP
|
|
6380 STOP^
|
|
6381 033704 254 04 0 00 033705 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6382 033705 324 00 0 00 033706 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6383 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6384 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6385 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6386
|
|
6387 ;**********
|
|
6388
|
|
6389 ;THIS TEST VERIFIES THAT JUMPE IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6390 ;C(AC)=0. IN THIS TEST, THE AC CONTAINS 0. HENCE,
|
|
6391 ;JUMPE SHOULD JUMP. IF JUMPE JUMPS, THIS TEST PASSES.
|
|
6392
|
|
6393 033706 400 00 0 00 000000 C14700: SETZ ;PRELOAD AC WITH 0
|
|
6394 033707 322 00 0 00 033711 JUMPE .+2 ;*JUMPE SHOULD JUMP
|
|
6395 STOP^
|
|
6396 033710 254 04 0 00 033711 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6397 033711 324 00 0 00 033712 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6398 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6399 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6400 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6401
|
|
6402 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 55
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JUMPX INSTRUCTIONS SEQ 0150
|
|
|
|
6403 ;THIS TEST VERIFIES THAT JUMPN IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6404 ;C(AC) IS NON-ZERO. IN THIS TEST, THE AC CONTAINS 1. HENCE,
|
|
6405 ;JUMPN SHOULD JUMP. IF JUMPN JUMPS, THIS TEST PASSES.
|
|
6406
|
|
6407 033712 201 00 0 00 000001 C15000: MOVEI 1 ;PRELOAD AC WITH 1
|
|
6408 033713 326 00 0 00 033715 JUMPN .+2 ;*JUMPN SHOULD JUMP
|
|
6409 STOP^
|
|
6410 033714 254 04 0 00 033715 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6411 033715 324 00 0 00 033716 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6412 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6413 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6414 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6415
|
|
6416 ;**********
|
|
6417
|
|
6418 ;THIS TEST VERIFIES THAT JUMPE IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6419 ;C(AC)=0. IN THIS TEST, THE AC CONTAINS 2. HENCE,
|
|
6420 ;JUMPL SHOULD NOT JUMP. IF JUMPE DOES NOT JUMP, THIS TEST PASSES.
|
|
6421
|
|
6422 033716 201 00 0 00 000002 C15100: MOVEI 2 ;PRELOAD AC WITH 2
|
|
6423 033717 322 00 0 00 033721 JUMPE .+2 ;*JUMPE SHOULD NOT JUMP
|
|
6424 033720 334 00 0 00 000000 SKIPA ;PASS IF JUMPE DID NOT JUMP
|
|
6425 STOP^
|
|
6426 033721 254 04 0 00 033722 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6427 033722 324 00 0 00 033723 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6428 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6429 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6430 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6431
|
|
6432 ;**********
|
|
6433
|
|
6434 ;THIS TEST VERIFIES THAT JUMPN IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6435 ;C(AC) IS NON-ZERO. IN THIS TEST, THE AC CONTAINS 0. HENCE,
|
|
6436 ;JUMPN SHOULD NOT JUMP. IF JUMPN DOES NOT JUMP, THIS TEST PASSES.
|
|
6437
|
|
6438 033723 400 00 0 00 000000 C15200: SETZ ;PRELOAD AC WITH 0
|
|
6439 033724 326 00 0 00 033726 JUMPN .+2 ;*JUMPN SHOULD NOT JUMP
|
|
6440 033725 334 00 0 00 000000 SKIPA ;PASS IF JUMPN DID NOT JUMP
|
|
6441 STOP^
|
|
6442 033726 254 04 0 00 033727 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6443 033727 324 00 0 00 033730 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6444 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6445 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6446 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6447
|
|
6448 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 56
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF JUMPX INSTRUCTIONS SEQ 0151
|
|
|
|
6449 ;THIS TEST VERIFIES THAT JUMPG IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6450 ;C(AC) IS GREATER THAN 0. IN THIS TEST, THE AC CONTAINS 1. HENCE,
|
|
6451 ;JUMPG SHOULD JUMP. IF JUMPG JUMPS, THIS TEST PASSES.
|
|
6452
|
|
6453 033730 201 00 0 00 000001 C15300: MOVEI 1 ;PRELOAD AC WITH 1
|
|
6454 033731 327 00 0 00 033733 JUMPG .+2 ;*JUMPG SHOULD JUMP
|
|
6455 STOP^
|
|
6456 033732 254 04 0 00 033733 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6457 033733 324 00 0 00 033734 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6458 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6459 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6460 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6461
|
|
6462 ;**********
|
|
6463
|
|
6464 ;THIS TEST VERIFIES THAT JUMPG IS DATA DEPENDENT. IT WILL JUMP IF AND ONLY IF
|
|
6465 ;C(AC) IS GREATER THAN 0. IN THIS TEST, THE AC CONTAINS -1,,0. HENCE,
|
|
6466 ;JUMPG SHOULD NOT JUMP. IF JUMPG DOES NOT JUMP, THIS TEST PASSES.
|
|
6467
|
|
6468 033734 205 00 0 00 777777 C15400: MOVSI -1 ;PRELOAD AC WITH -1,,0
|
|
6469 033735 327 00 0 00 033737 JUMPG .+2 ;*JUMPG SHOULD NOT JUMP
|
|
6470 033736 334 00 0 00 000000 SKIPA ;PASS IF JUMPG DID NOT JUMP
|
|
6471 STOP^
|
|
6472 033737 254 04 0 00 033740 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6473 033740 324 00 0 00 033741 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6474 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6475 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6476 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6477
|
|
6478 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 57
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOJ AND SOJ INSTRUCTIONS SEQ 0152
|
|
|
|
6479 SUBTTL TEST OF AOJ AND SOJ INSTRUCTIONS
|
|
6480
|
|
6481 ;**********
|
|
6482
|
|
6483 ;THIS TEST VERIFIES THAT AOJ ADDS 1 TO THE AC AND DOES NOT JUMP.
|
|
6484 ;FIRST, THE AC IS PRELOADED WITH 0; THEN, AOJ IS EXECUTED. NEXT, THE
|
|
6485 ;AC IS CHECKED FOR 1. IF C(AC) IS NOT 1 OR AOJ SKIPPED, THIS TEST FAILS.
|
|
6486
|
|
6487 033741 400 00 0 00 000000 C15500: SETZ ;PRELOAD AC WITH 0
|
|
6488 033742 340 00 0 00 033744 AOJ .+2 ;*AOJ SHOULD ADD 1 TO THE AC AND NOT JUMP
|
|
6489 033743 302 00 0 00 000001 CAIE 1 ;PASS IF C(AC)=1 AND AOJ DID NOT JUMP
|
|
6490 STOP^
|
|
6491 033744 254 04 0 00 033745 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6492 033745 324 00 0 00 033746 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6493 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6494 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6495 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6496
|
|
6497 ;**********
|
|
6498
|
|
6499 ;THIS TEST VERIFIES THAT AOJ ADDS 1 TO THE AC AND DOES NOT JUMP.
|
|
6500 ;FIRST, THE AC IS PRELOADED WITH -1,,-1; THEN, AOJ IS EXECUTED. NEXT, THE
|
|
6501 ;AC IS CHECKED FOR 0. IF C(AC) IS NOT 0 OR AOJ SKIPPED, THIS TEST FAILS.
|
|
6502
|
|
6503 033746 474 00 0 00 000000 C15600: SETO ;PRELOAD AC WITH 0
|
|
6504 033747 340 00 0 00 033751 AOJ .+2 ;*AOJ SHOULD ADD 1 TO THE AC AND NOT JUMP
|
|
6505 033750 302 00 0 00 000000 CAIE 0 ;PASS IF C(AC)=1 AND AOJ DID NOT JUMP
|
|
6506 STOP^
|
|
6507 033751 254 04 0 00 033752 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6508 033752 324 00 0 00 033753 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6509 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6510 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6511 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6512
|
|
6513 ;**********
|
|
6514
|
|
6515 ;THIS TEST VERIFIES THAT SOJ SUBTRACTS 1 FROM THE AC AND DOES NOT JUMP.
|
|
6516 ;FIRST, THE AC IS PRELOADED WITH 0; THEN, SOJ IS EXECUTED. NEXT, THE
|
|
6517 ;AC IS CHECKED FOR -1,,-1. IF C(AC) IS NOT -1,,-1 OR SOJ SKIPPED, THIS TEST FAILS.
|
|
6518
|
|
6519 033753 400 00 0 00 000000 C15700: SETZ ;PRELOAD AC WITH 0
|
|
6520 033754 360 00 0 00 033756 SOJ .+2 ;*SOJ SHOULD SUBTRACT 1 FROM THE AC AND NOT JUMP
|
|
6521 033755 312 00 0 00 034466 CAME [-1] ;PASS IF C(AC)=-1,,-1 AND SOJ DID NOT JUMP
|
|
6522 STOP^
|
|
6523 033756 254 04 0 00 033757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6524 033757 324 00 0 00 033760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6525 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6526 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6527 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6528
|
|
6529 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 58
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOJ AND SOJ INSTRUCTIONS SEQ 0153
|
|
|
|
6530 ;THIS TEST VERIFIES THAT SOJ SUBTRACTS 1 FROM THE AC AND DOES NOT JUMP.
|
|
6531 ;FIRST, THE AC IS PRELOADED WITH -1,,-1; THEN, SOJ IS EXECUTED. NEXT, THE
|
|
6532 ;AC IS CHECKED FOR -1,,-2. IF C(AC) IS NOT -1,,-2 OR SOJ SKIPPED, THIS TEST FAILS.
|
|
6533
|
|
6534 033760 474 00 0 00 000000 C16000: SETO ;PRELOAD AC WITH -1,,-1
|
|
6535 033761 360 00 0 00 033763 SOJ .+2 ;*SOJ SHOULD SUBTRACT 1 FROM THE AC AND NOT JUMP
|
|
6536 033762 312 00 0 00 034467 CAME [-2] ;PASS IF C(AC)=-1,,-2 AND SOJ DID NOT JUMP
|
|
6537 STOP^
|
|
6538 033763 254 04 0 00 033764 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6539 033764 324 00 0 00 033765 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6540 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6541 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6542 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6543
|
|
6544 ;**********
|
|
6545
|
|
6546 ;THIS TEST VERIFIES THAT SOJ SUBTRACTS 1 FROM THE AC AND DOES NOT JUMP.
|
|
6547 ;FIRST, THE AC IS PRELOADED WITH 0,,1; THEN, SOJ IS EXECUTED. NEXT, THE
|
|
6548 ;AC IS CHECKED FOR 0. IF C(AC) IS NOT 0 OR SOJ SKIPPED, THIS TEST FAILS.
|
|
6549
|
|
6550 033765 201 00 0 00 000001 C16100: MOVEI 1 ;PRELOAD AC WITH 1
|
|
6551 033766 360 00 0 00 033770 SOJ .+2 ;*SOJ SHOULD SUBTRACT 1 FROM THE AC AND NOT JUMP
|
|
6552 033767 302 00 0 00 000000 CAIE 0 ;PASS IF C(AC)=0 AND SOJ DID NOT JUMP
|
|
6553 STOP^
|
|
6554 033770 254 04 0 00 033771 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6555 033771 324 00 0 00 033772 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6556 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6557 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6558 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6559
|
|
6560 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 59
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOJ AND SOJ INSTRUCTIONS SEQ 0154
|
|
|
|
6561 ;THIS TEST VERIFIES THAT SOJ AC, FOLLOWED BY AOJ AC, HAS NO NET EFFECT ON C(AC).
|
|
6562 ;IN THIS CASE, THE AC IS PRELOADED WITH 0; THEN, SOJ AC, FOLLOWED BY AOJ.
|
|
6563 ;AC, IS REPEATED 7 TIMES. THE AC IS THEN CHECKED FOR ITS ORIGINAL CONTENTS, 0.
|
|
6564 ;IF C(AC)=0, THIS TEST PASSES; OTHERWISE AOJ OR SOJ FAILED.
|
|
6565
|
|
6566 000017 C16200: AC=17
|
|
6567 033772 400 17 0 00 000000 SETZ AC, ;PRELOAD AC WITH 0
|
|
6568 REPEAT ^D10,<
|
|
6569 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6570 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC>
|
|
6571
|
|
6572 033773 360 17 0 00 033773 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6573 033774 340 17 0 00 033774 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6574
|
|
6575 033775 360 17 0 00 033775 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6576 033776 340 17 0 00 033776 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6577
|
|
6578 033777 360 17 0 00 033777 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6579 034000 340 17 0 00 034000 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6580
|
|
6581 034001 360 17 0 00 034001 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6582 034002 340 17 0 00 034002 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6583
|
|
6584 034003 360 17 0 00 034003 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6585 034004 340 17 0 00 034004 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6586
|
|
6587 034005 360 17 0 00 034005 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6588 034006 340 17 0 00 034006 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6589
|
|
6590 034007 360 17 0 00 034007 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6591 034010 340 17 0 00 034010 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6592
|
|
6593 034011 360 17 0 00 034011 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6594 034012 340 17 0 00 034012 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6595
|
|
6596 034013 360 17 0 00 034013 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6597 034014 340 17 0 00 034014 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6598
|
|
6599 034015 360 17 0 00 034015 SOJ AC,. ;*SOJ SHOULD SUBTRACT 1 FROM THE AC
|
|
6600 034016 340 17 0 00 034016 AOJ AC,. ;*AOJ SHOULD ADD 1 TO THE AC
|
|
6601 034017 332 00 0 00 000017 SKIPE AC ;PASS IF C(AC) IS UNCHANGED. I.E. C(AC)=0
|
|
6602 STOP^
|
|
6603 034020 254 04 0 00 034021 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6604 034021 324 00 0 00 034022 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6605 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6606 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6607 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6608
|
|
6609 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 60
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOJ AND SOJ INSTRUCTIONS SEQ 0155
|
|
|
|
6610 ;THIS TEST VERIFIES THAT SOJ SETS CRY0/1 FLAGS IF C(E) IS A NON-ZERO NUMBER OTHER
|
|
6611 ;THAN 400000,,0. IN THIS CASE, C(E)=1. FIRST THE FLAGS ARE RESET; THEN
|
|
6612 ;SOJ IS EXECUTED. THE FLAGS ARE CHECKED. IF CRY0 AND CRY1 ARE SET
|
|
6613 ;AND AROV AND FOV ARE RESET, THIS TEST PASSES.
|
|
6614
|
|
6615 034022 255 17 0 00 034023 C16201: JFCL 17,.+1 ;RESET ARITHMETIC FLAGS
|
|
6616 034023 201 00 0 00 000001 MOVEI 1 ;PRELOAD E WITH 1
|
|
6617 034024 360 00 0 00 000000 SOJ ;*SOJ SHOULD SET CRY0/1
|
|
6618 034025 255 04 0 00 034027 JCRY0 .+2 ;PASS IF CRY0 IS SET
|
|
6619 STOP^
|
|
6620 034026 254 04 0 00 034027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6621 034027 324 00 0 00 034030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6622 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6623 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6624 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6625 034030 255 02 0 00 034032 JCRY1 .+2 ;PASS IF CRY1 IS SET
|
|
6626 STOP^
|
|
6627 034031 254 04 0 00 034032 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6628 034032 324 00 0 00 034033 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6629 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6630 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6631 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6632 034033 255 10 0 00 034035 JOV .+2 ;PASS IF AROV IS RESET
|
|
6633 034034 334 00 0 00 000000 SKIPA
|
|
6634 STOP^
|
|
6635 034035 254 04 0 00 034036 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6636 034036 324 00 0 00 034037 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6637 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6638 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6639 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6640 034037 255 01 0 00 034041 JFOV .+2 ;PASS IF FOV IS RESET
|
|
6641 034040 334 00 0 00 000000 SKIPA
|
|
6642 STOP^
|
|
6643 034041 254 04 0 00 034042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6644 034042 324 00 0 00 034043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6645 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6646 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6647 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6648
|
|
6649 ;**********
|
|
6650
|
|
6651 ;THIS TEST VERIFIES THAT AOJ SETS CRY0 AND CRY1 FLAG IF C(E) IS -1,,-1
|
|
6652 ;FIRST THE FLAGS ARE RESET; THEN
|
|
6653 ;AOJ IS EXECUTED. THE FLAGS ARE CHECKED.
|
|
6654 ;IF CRY0 AND CRY1 ARE SET AND AROV AND FOV ARE RESET, THIS TEST PASSES.
|
|
6655
|
|
6656 034043 255 17 0 00 034044 C16202: JFCL 17,.+1 ;RESET ARITHMETIC FLAGS
|
|
6657 034044 474 00 0 00 000000 SETO ;PRELOAD E WITH 1
|
|
6658 034045 340 00 0 00 000000 AOJ ;*AOJ SHOULD SET CRY0 AND CRY1
|
|
6659 034046 255 04 0 00 034050 JCRY0 .+2 ;PASS IF CRY0 IS SET
|
|
6660 STOP^
|
|
6661 034047 254 04 0 00 034050 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6662 034050 324 00 0 00 034051 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6663 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6664 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 60-1
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF AOJ AND SOJ INSTRUCTIONS SEQ 0156
|
|
|
|
6665 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6666 034051 255 02 0 00 034053 JCRY1 .+2 ;PASS IF CRY1 IS SET
|
|
6667 STOP^
|
|
6668 034052 254 04 0 00 034053 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6669 034053 324 00 0 00 034054 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6670 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6671 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6672 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6673 034054 255 10 0 00 034056 JOV .+2 ;PASS IF AROV IS RESET
|
|
6674 034055 334 00 0 00 000000 SKIPA
|
|
6675 STOP^
|
|
6676 034056 254 04 0 00 034057 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6677 034057 324 00 0 00 034060 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6678 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6679 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6680 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6681 034060 255 01 0 00 034062 JFOV .+2 ;PASS IF FOV IS RESET
|
|
6682 034061 334 00 0 00 000000 SKIPA
|
|
6683 STOP^
|
|
6684 034062 254 04 0 00 034063 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6685 034063 324 00 0 00 034064 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6686 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6687 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6688 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6689
|
|
6690 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 61
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0157
|
|
|
|
6691 SUBTTL TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS
|
|
6692
|
|
6693 ;**********
|
|
6694
|
|
6695 ;THIS TEST VERIFIES THAT ADDM DOES NOT MODIFY C(AC)
|
|
6696 ;BOTH AC AND E ARE PRELOADED WITH -1,,-1. THEN ADDM IS EXECUTED.
|
|
6697 ;THIS TEST PASSES IF C(AC) ARE UNCHANGED
|
|
6698
|
|
6699 034064 477 00 0 00 000001 C16400: SETOB 1 ;PRELOAD AC, E WITH -1,,-1
|
|
6700 034065 272 00 0 00 000001 ADDM 1 ;*ADDM SHOULD NOT AFFECT C(AC)
|
|
6701 034066 312 00 0 00 034466 CAME [-1] ;PASS IF C(AC) IS UNMODIFIED BY ADDM
|
|
6702 STOP^
|
|
6703 034067 254 04 0 00 034070 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6704 034070 324 00 0 00 034071 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6705 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6706 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6707 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6708
|
|
6709 ;**********
|
|
6710
|
|
6711 ;THIS TEST VERIFIES THAT HRREM DOES NOT MODIFY C(AC)
|
|
6712 ;THE AC IS PRELOADED WITH 0,,-1. THEN HRRM IS EXECUTED.
|
|
6713 ;THIS TEST PASSES IF C(AC) ARE UNCHANGED
|
|
6714
|
|
6715 034071 201 00 0 00 777777 C16500: MOVEI -1 ;PRELOAD AC WITH 0,,-1
|
|
6716 034072 572 00 0 00 000001 HRREM 1 ;*HRRM SHOULD NOT AFFECT C(AC)
|
|
6717 034073 302 00 0 00 777777 CAIE -1 ;PASS IF C(AC) IS UNMODIFIED BY HRRM
|
|
6718 STOP^
|
|
6719 034074 254 04 0 00 034075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6720 034075 324 00 0 00 034076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6721 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6722 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6723 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6724
|
|
6725 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 62
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0158
|
|
|
|
6726 ;THIS TEST VERIFIES THAT MOVSM DOES NOT MODIFY C(AC)
|
|
6727 ;THE AC IS PRELOADED WITH 0,,-1. THEN MOVSM IS EXECUTED.
|
|
6728 ;THIS TEST PASSES IF C(AC) ARE UNCHANGED
|
|
6729
|
|
6730 034076 201 00 0 00 777777 C16600: MOVEI -1 ;PRELOAD AC WITH 0,,-1
|
|
6731 034077 206 00 0 00 000001 MOVSM 1 ;*MOVSM SHOULD NOT AFFECT C(AC)
|
|
6732 034100 302 00 0 00 777777 CAIE -1 ;PASS IF C(AC) IS UNMODIFIED BY MOVSM
|
|
6733 STOP^
|
|
6734 034101 254 04 0 00 034102 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6735 034102 324 00 0 00 034103 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6736 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6737 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6738 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6739
|
|
6740 ;**********
|
|
6741
|
|
6742 ;THIS TEST VERIFIES THAT XORM DOES NOT MODIFY C(AC)
|
|
6743 ;BOTH AC AND E ARE PRELOADED WITH -1,,-1. THEN XORM IS EXECUTED.
|
|
6744 ;THIS TEST PASSES IF C(AC) ARE UNCHANGED
|
|
6745
|
|
6746 034103 477 00 0 00 000001 C16700: SETOB 1 ;PRELOAD AC, E WITH -1,,-1
|
|
6747 034104 432 00 0 00 000001 XORM 1 ;*XORM SHOULD NOT AFFECT C(AC)
|
|
6748 034105 312 00 0 00 034466 CAME [-1] ;PASS IF C(AC) IS UNMODIFIED BY XORM
|
|
6749 STOP^
|
|
6750 034106 254 04 0 00 034107 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6751 034107 324 00 0 00 034110 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6752 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6753 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6754 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6755
|
|
6756 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 63
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0159
|
|
|
|
6757 ;THIS TEST VERIFIES THAT ADDB ADDS C(AC) TO C(E) AND PLACES THE
|
|
6758 ;RESULT IN BOTH AC AND E. IN THIS TEST, BOTH AC AND E ARE PRELOADED
|
|
6759 ;WITH -1,,-1, THEN, ADDB IS EXECUTED. C(AC) IS THEN COMPARED TO C(E);
|
|
6760 ;AND C(AC) IS THEN COMPARED TO -2. IF BOTH OF THESE COMPARISONS SUCCEED, THIS
|
|
6761 ;TEST PASSES; OTHERWISE, ADDB FAILED
|
|
6762
|
|
6763 034110 477 00 0 00 000001 C17000: SETOB 1 ;PRELOAD AC, E WITH -1,,-1
|
|
6764 034111 273 00 0 00 000001 ADDB 1 ;*ADDB SHOULD ADD C(AC) TO C(E) AND PLACE RESULT
|
|
6765 ;INTO BOTH AC AND E
|
|
6766 034112 312 00 0 00 000001 CAME 1 ;PASS IF C(AC)=C(E)
|
|
6767 STOP^
|
|
6768 034113 254 04 0 00 034114 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6769 034114 324 00 0 00 034115 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6770 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6771 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6772 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6773 034115 312 00 0 00 034467 CAME [-2] ;PASS IF C(AC)=-2
|
|
6774 STOP^
|
|
6775 034116 254 04 0 00 034117 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6776 034117 324 00 0 00 034120 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6777 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6778 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6779 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6780
|
|
6781 ;**********
|
|
6782
|
|
6783 ;THIS TEST VERIFIES THAT ADDM ADDS C(AC) TO C(E) AND PLACES THE RESULT IN E
|
|
6784 ;IN THIS CASE, AC, E ARE BOTH PRELOADED WITH -1; THEN, ADDM IS EXECUTED.
|
|
6785 ;E IS THEN CHECKED FOR -2. IF C(E)=-2, THIS TEST PASSES; OTHERWISE, ADDM FAILED
|
|
6786
|
|
6787 034120 477 00 0 00 000001 C17100: SETOB 1 ;PRELOAD AC, E WITH -1,,-1
|
|
6788 034121 272 00 0 00 000001 ADDM 1 ;*ADDM SHOULD ADD C(AC) TO C(E)
|
|
6789 034122 312 01 0 00 034467 CAME 1,[-2] ;PASS IF C(E)=-2
|
|
6790 STOP^
|
|
6791 034123 254 04 0 00 034124 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6792 034124 324 00 0 00 034125 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6793 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6794 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6795 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6796
|
|
6797 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 64
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0160
|
|
|
|
6798 ;THIS TEST VERIFIES THAT HLLOS PLACES ONES ON THE RIGHT HALF OF E
|
|
6799 ;BUT DOES NOT AFFECT THE LEFT HALF OF E. IN THIS CASE,
|
|
6800 ;E IS PRELOADED WITH 0; THE, HLLOS IS EXECUTED. THE RESULT
|
|
6801 ;IN E SHOULD BE 0,,-1. IF C(E)=0,,-1, THIS TEST PASSES
|
|
6802
|
|
6803 034125 402 00 0 00 000001 C17200: SETZM 1 ;PRELOAD E WITH 0
|
|
6804 034126 523 00 0 00 000001 HLLOS 1 ;*HLLOS SHOULD PLACE 0,,-1 INTO E
|
|
6805 034127 302 01 0 00 777777 CAIE 1,-1 ;PASS IF C(E)=0,,-1
|
|
6806 STOP^
|
|
6807 034130 254 04 0 00 034131 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6808 034131 324 00 0 00 034132 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6809 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6810 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6811 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6812
|
|
6813 ;**********
|
|
6814
|
|
6815 ;THIS TEST VERIFIES THAT MOVSS SWAPS BOTHS HALVES OF E AND
|
|
6816 ;PLACES THE RESULT IN E. IN THIS CASE, E IS PRELOADED WITH
|
|
6817 ;-1,,0; THEN, MOVSS IS EXECUTED. THE RESULT IN E SHOULD BE 0,,-1.
|
|
6818 ;IF C(E)=0,,-1, THIS TEST PASSES
|
|
6819
|
|
6820 034132 205 01 0 00 777777 C17300: MOVSI 1,-1 ;PRELOAD E WITH -1,,0
|
|
6821 034133 207 00 0 00 000001 MOVSS 1 ;*MOVSS SHOULD PLACE 0,,-1 INTO E
|
|
6822 034134 302 01 0 00 777777 CAIE 1,-1 ;PASS IF C(E)=0,,-1
|
|
6823 STOP^
|
|
6824 034135 254 04 0 00 034136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6825 034136 324 00 0 00 034137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6826 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6827 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6828 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6829
|
|
6830 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 65
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0161
|
|
|
|
6831 ;THIS TEST VERIFIES THAT AOS ADDS ONE TO MEMORY BUT DOES NOT SKIP
|
|
6832 ;FIRST, E IS PRELOADED WITH -1,-1; THEN, AOS IS EXECUTED. NEXT, E IS CHECKED FOR 0.
|
|
6833 ;IF C(E) IS NOT 0 OR AOS SKIPPED, THIS TEST FAILS
|
|
6834
|
|
6835 034137 477 00 0 00 000001 C17400: SETOB 1 ;PRELOAD E WITH -1,,-1
|
|
6836 034140 350 00 0 00 000001 AOS 1 ;*AOS SHOULD ADD TO C(E) AND NOT SKIP
|
|
6837 034141 302 01 0 00 000000 CAIE 1,0 ;PASS IF C(E)=0,,0 AND AOS DID NOT SKIP
|
|
6838 STOP^
|
|
6839 034142 254 04 0 00 034143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6840 034143 324 00 0 00 034144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6841 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6842 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6843 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6844
|
|
6845 ;**********
|
|
6846
|
|
6847 ;THIS TEST VERIFIES THAT HRLM PLACES C(AC-RIGHT) INTO E-LEFT AND DOES
|
|
6848 ;NOT MODIFY E-RIGHT. IN THIS CASE, AC IS PRELOADED WITH 0 AND E IS PRELOADED
|
|
6849 ;WITH -1,,-1. THEN, HRLM IS EXECUTED. E IS THEN CHECKED FOR 0,,-1. IF
|
|
6850 ;C(E)=0,,-1, THIS TEST PASSES
|
|
6851
|
|
6852 034144 400 00 0 00 000000 C17500: SETZ ;PRELOAD AC WITH 0
|
|
6853 034145 474 01 0 00 000000 SETO 1, ;PRELOAD E WITH -1,,-1
|
|
6854 034146 506 00 0 00 000001 HRLM 1 ;*HRLM SHOULD PLACE 0,,-1 INTO E
|
|
6855 034147 302 01 0 00 777777 CAIE 1,-1 ;PASS IF C(E)=0,,-1
|
|
6856 STOP^
|
|
6857 034150 254 04 0 00 034151 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6858 034151 324 00 0 00 034152 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6859 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6860 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6861 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6862
|
|
6863 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 66
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0162
|
|
|
|
6864 ;THIS TEST VERIFIES THAT HRRS DOES NOT MODIFY E
|
|
6865 ;E IS PRELOADED WITH 0 AND AC IS PRELOADED WITH -1,,-1.
|
|
6866 ;HRRS IS EXECUTED; THEN E IS CHECKED. IF C(E) DOES
|
|
6867 ;NOT CHANGE, THIS TEST PASSES
|
|
6868
|
|
6869 034152 474 00 0 00 000000 C17600: SETO ;PRELOAD AC WITH -1,,-1
|
|
6870 034153 400 01 0 00 000000 SETZ 1, ;PRELOAD E WITH 0,,0
|
|
6871 034154 543 00 0 00 000001 HRRS 1 ;*HRRS SHOULD PLACE 0,,0 INTO E
|
|
6872 034155 332 00 0 00 000001 SKIPE 1
|
|
6873 STOP^
|
|
6874 034156 254 04 0 00 034157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6875 034157 324 00 0 00 034160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6876 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6877 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6878 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6879
|
|
6880 ;**********
|
|
6881
|
|
6882 ;THIS TEST VERIFIES THAT HRRZM PLACES C(AC-RIGHT) INTO E-RIGHT AND PLACES
|
|
6883 ;ZEROS INTO E-LEFT. IN THIS CASE, AC=E=AC1 AND C(AC)=C(E)=-1,,0. HRRZM
|
|
6884 ;IS EXECUTED AND AC1 IS CHECKED FOR 0. IF AC1=0, THIS TEST PASSES.
|
|
6885
|
|
6886 034160 474 00 0 00 000000 C17700: SETO ;PRELOAD AC0 WITH -1,,-1
|
|
6887 034161 205 01 0 00 777777 MOVSI 1,-1 ;PRELOAD AC1 WITH -1,,0
|
|
6888 034162 552 01 0 00 000001 HRRZM 1,1 ;*HRRZM SHOULD PLACE 0 INTO AC1
|
|
6889 034163 332 00 0 00 000001 SKIPE 1 ;PASS IF C(AC1)=0
|
|
6890 STOP^
|
|
6891 034164 254 04 0 00 034165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6892 034165 324 00 0 00 034166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6893 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6894 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6895 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6896
|
|
6897 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 67
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0163
|
|
|
|
6898 ;THIS TEST VERIFIES THAT JFCL 17,.+1 NEVER JUMPS AND DOES NOT MODIFY C(AC0).
|
|
6899 ;FIRST, AC0 IS PRELOADED; THEN, JFCL IS EXECUTED. IF AC0 IS MODIFIED
|
|
6900 ;OR JFCL SKIPS, THIS TEST FAILS
|
|
6901
|
|
6902 034166 400 00 0 00 000000 C20000: SETZ ;CLEAR AC0
|
|
6903 034167 255 17 0 00 034170 JFCL 17,.+1 ;*JFCL SHOULD NOT JUMP OR MODIFY C(AC0).
|
|
6904 034170 332 00 0 00 000000 SKIPE ;PASS IF C(AC0)=0 AND JFCL DID NOT JUMP
|
|
6905 STOP^
|
|
6906 034171 254 04 0 00 034172 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6907 034172 324 00 0 00 034173 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6908 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6909 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6910 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6911
|
|
6912 ;**********
|
|
6913
|
|
6914 ;THIS TEST VERIFIES THAT XORM PERFORMS THE LOGICAL EXCLUSIVE OR FUNCTION
|
|
6915 ;BETWEEN C(AC) AND C(E) AND PLACES THE RESULT INTO E
|
|
6916 ;IN THIS CASE, AC AND E ARE PRELOADED WITH -1,,-1; THEN, XORM IS
|
|
6917 ;EXECUTED. IF THE RESULT IN E IS 0, THE TEST PASSES
|
|
6918
|
|
6919 034173 477 00 0 00 000001 C20100: SETOB 1 ;PRELOAD AC,E WITH -1,,-1
|
|
6920 034174 432 00 0 00 000001 XORM 1 ;*XORM SHOULD PLACE 0 INTO E
|
|
6921 034175 302 01 0 00 000000 CAIE 1,0 ;PASS IF C(E)=0
|
|
6922 STOP^
|
|
6923 034176 254 04 0 00 034177 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6924 034177 324 00 0 00 034200 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6925 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6926 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6927 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6928
|
|
6929 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 68
|
|
DAKADM MAC 19-JAN-77 13:41 TEST OF MEMORY, BOTH AND SELF MODE INSTRUCTIONS SEQ 0164
|
|
|
|
6930 ;THIS TEST VERIFIES THAT SETZB PLACES ZEROS INTO BOTH AC AND E.
|
|
6931 ;AFTER SETZB IS EXECUTED, BOTH AC AND E ARE CHECKED
|
|
6932 ;FOR 0. IF EITHER AC OR E CONTAINS ANY ONES, THIS TEST FAILS
|
|
6933
|
|
6934 034200 403 00 0 00 000001 C20200: SETZB 1 ;*SETZB SHOULD PLACE ZEROES IN BOTH AC AND E
|
|
6935 034201 316 00 0 00 034536 CAMN [0] ;FAIL IF C(AC) IS NON-ZERO
|
|
6936 034202 312 00 0 00 000001 CAME 1 ;FAIL IF C(E) IS NON-ZERO
|
|
6937 STOP^
|
|
6938 034203 254 04 0 00 034204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6939 034204 324 00 0 00 034205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6940 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6941 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6942 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6943
|
|
6944 ;**********
|
|
6945
|
|
6946 ;THIS TEST VERIFIES THAT SETAB PLACES C(AC) INTO BOTH AC AND E.
|
|
6947 ;FIRST, AC IS PRELOADED WITH -1,,-1 AND E IS PRELOADED WITH 0;
|
|
6948 ;THEN, SETAB IS EXECUTED. BOTH AC AND E ARE CHECKED FOR -1,,-1
|
|
6949 ;IF EITHER AC OR E CONTAIN ANY ZEROS, THIS TEST FAILS.
|
|
6950
|
|
6951 034205 400 01 0 00 000000 C20300: SETZ 1, ;PRELOAD E WITH 0
|
|
6952 034206 474 00 0 00 000000 SETO ;PRELOAD AC WITH -1,,-1
|
|
6953 034207 427 00 0 00 000001 SETAB 1 ;*SETAB SHOULD PLACE -1,,-1 INTO BOTH AC AND E
|
|
6954 034210 316 00 0 00 034466 CAMN [-1] ;FAIL IF C(AC) IS NOT -1,-1
|
|
6955 034211 312 00 0 00 000001 CAME 1 ;FAIL IF C(E) IS NOT -1,,-1
|
|
6956 STOP^
|
|
6957 034212 254 04 0 00 034213 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6958 034213 324 00 0 00 034214 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6959 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6960 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6961 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6962
|
|
6963 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 69
|
|
DAKADM MAC 19-JAN-77 13:41 XCT INSTRUCTION - BASIC TESTS SEQ 0165
|
|
|
|
6964 SUBTTL XCT INSTRUCTION - BASIC TESTS
|
|
6965
|
|
6966 ;**********
|
|
6967
|
|
6968 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE THE INSTRUCTION SPECIFIED BY C(E)
|
|
6969 ;IN THIS CASE, C(E) SPECIFIES A MOVEI INSTRUCTION
|
|
6970 ;AFTER EXECUTING MOVEI, CONTROL SHOULD RETURN TO
|
|
6971 ;THE NEXT SEQUENTIAL INSTRUCTION FOLLOWING XCT.
|
|
6972 ;THIS TEST PASSES IF CONTROL RETURNS TO THE NEXT SEQUENTIAL INSTRUCTION FOLLOWING XCT
|
|
6973
|
|
6974 034214 403 00 0 00 000001 C20400: SETZB 1 ;CLEAR AC0 AND AC1
|
|
6975 034215 256 00 0 00 034542 XCT [MOVEI 1,.+2] ;*XCT SHOULD RETURN CONTROL TO NEXT INSTRUCTION
|
|
6976 034216 334 00 0 00 000000 SKIPA
|
|
6977 STOP^
|
|
6978 034217 254 04 0 00 034220 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6979 034220 324 00 0 00 034221 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6980 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6981 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6982 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
6983
|
|
6984 ;**********
|
|
6985
|
|
6986 ;THIS TEST VERIFIES THAT XCT WILL EXECUTE THE INSTRUCTION SPECIFIED BY C(E)
|
|
6987 ;IN THIS CASE, C(E) SPECIFIES A MOVEI INSTRUCTION.
|
|
6988 ;AFTER EXECUTING MOVEI, THE AC SPECIFIED BY MOVEI IS CHECKED FOR
|
|
6989 ;0,,1 (THE EXPECTED RESULT). IF C(AC)=0,,1, THIS TEST PASSES
|
|
6990
|
|
6991 034221 403 00 0 00 000001 C20500: SETZB 1 ;CLEAR AC
|
|
6992 034222 256 00 0 00 034543 XCT [MOVEI 1,1] ;*XCT OF MOVEI SHOULD PLACE 1 IN THE AC
|
|
6993 034223 302 01 0 00 000001 CAIE 1,1 ;PASS IF C(AC)=1
|
|
6994 STOP^
|
|
6995 034224 254 04 0 00 034225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
6996 034225 324 00 0 00 034226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
6997 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
6998 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
6999 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7000
|
|
7001 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 70
|
|
DAKADM MAC 19-JAN-77 13:41 XCT INSTRUCTION - BASIC TESTS SEQ 0166
|
|
|
|
7002 ;THIS TEST VERIFIES THAT A NEST OF XCT INSTRUCTIONS WILL EXECUTE
|
|
7003 ;THE INSTRUCTION SPECIFIED BY THE MOST NESTED XCT AND RETURN CONTROL TO
|
|
7004 ;THE NEXT SEQUENTIAL INSTRUCTION FOLLOWING THE FIRST XCT.
|
|
7005 ;IN THIS CASE, THE EXECUTED INSTRUCTION IS MOVEI. AFTER EXECUTING THE MOVEI,
|
|
7006 ;C(AC) IS CHECKED FOR 0,,-1 (THE EXPECTED RESULT). IF C(AC)=0,,-1, THIS TEST PASSES
|
|
7007
|
|
7008 034226 403 00 0 00 000001 C20600: SETZB 1 ;CLEAR AC
|
|
7009 034227 256 00 0 00 034550 XCT [XCT[XCT[XCT[XCT[MOVEI 1,-1]]]]] ;*NESTED XCT OF MOVEI
|
|
7010 ;SHOULD PLACE 0,,-1 INTO AC
|
|
7011 034230 302 01 0 00 777777 CAIE 1,-1 ;PASS IF C(AC)=0,,-1
|
|
7012 STOP^
|
|
7013 034231 254 04 0 00 034232 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7014 034232 324 00 0 00 034233 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7015 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7016 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7017 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7018
|
|
7019 ;**********
|
|
7020
|
|
7021 ;THIS TEST VERIFIES THAT XCT WILL NOT MODIFY AN AC WHICH IS NOT SPECIFIED BY THE
|
|
7022 ;EXECUTED INSTRUCTION. IN THIS CASE, AC0 IS CLEARED AND THEN CHECKED FOR ZERO AFTER
|
|
7023 ;THE XCT INSTRUCTION IS EXECUTED. AC0 SHOULD NOT BE MODIFIED.
|
|
7024
|
|
7025 034233 403 00 0 00 000001 C20700: SETZB 1 ;CLEAR AC0,AC1
|
|
7026 034234 256 00 0 00 034551 XCT [MOVE 1,[-1]] ;*XCT SHOULD NOT MODIFY AC0
|
|
7027 034235 332 00 0 00 000000 SKIPE ;PASS IF AC0 WAS NOT MODIFIED
|
|
7028 STOP^
|
|
7029 034236 254 04 0 00 034237 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7030 034237 324 00 0 00 034240 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7031 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7032 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7033 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7034
|
|
7035 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 71
|
|
DAKADM MAC 19-JAN-77 13:41 XCT INSTRUCTION - BASIC TESTS SEQ 0167
|
|
|
|
7036 ;THIS TEST VERIFIES THAT XCT OF SKIPA SHOULD RETURN CONTROL TO THE
|
|
7037 ;SECOND SEQUENTIAL INSTRUCTION FOLLOWING XCT
|
|
7038
|
|
7039 034240 256 00 0 00 034552 C21000: XCT [SKIPA] ;XCT OF SKIPA SHOULD RETURN CONTROL TO .+2
|
|
7040 STOP^
|
|
7041 034241 254 04 0 00 034242 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7042 034242 324 00 0 00 034243 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7043 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7044 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7045 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7046
|
|
7047 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 72
|
|
DAKADM MAC 19-JAN-77 13:41 INDIRECT ADDRESSING - BASIC TESTS SEQ 0168
|
|
|
|
7048 SUBTTL INDIRECT ADDRESSING - BASIC TESTS
|
|
7049
|
|
7050 ;**********
|
|
7051
|
|
7052 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING WORKS WHEN BOTH E AND @E
|
|
7053 ;ARE WITHIN THE AC RANGE.
|
|
7054 ;THE INSTRUCTION SPECIFYING INDIRECT ADDRESSING IS A MOVE.
|
|
7055 ;AFTER MOVE IS EXECUTED, C(AC) IS CHECKED FOR 0,
|
|
7056 ;THE INITIAL CONTENTS OF THE INDIRECT ADDRESS
|
|
7057
|
|
7058 034243 476 00 0 00 000001 C21100: SETOM 1 ;PRELOAD AC WITH -1,,-1
|
|
7059 034244 201 07 0 00 000003 MOVEI 7,3 ;SETUP DIRECT ADDRESS WITH INDIRECT ADDRESS
|
|
7060 034245 402 00 0 00 000003 SETZM 3 ;PRELOAD INDIRECT ADDRESS WITH 0
|
|
7061 034246 200 01 1 00 000007 MOVE 1,@7 ;*FWT FROM INDIRECT ADDRESSS SHOULD
|
|
7062 ;PLACE 0 INTO THE AC
|
|
7063 034247 332 00 0 00 000001 SKIPE 1 ;PASS IF C(AC)=0
|
|
7064 STOP^
|
|
7065 034250 254 04 0 00 034251 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7066 034251 324 00 0 00 034252 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7067 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7068 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7069 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7070
|
|
7071 ;**********
|
|
7072
|
|
7073 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING WORKS WHEN BOTH E AND @E
|
|
7074 ;ARE WITHIN THE AC RANGE.
|
|
7075 ;THE INSTRUCTION SPECIFYING INDIRECT ADDRESSING IS A MOVE.
|
|
7076 ;AFTER MOVE IS EXECUTED, C(AC) IS CHECKED FOR -1,,-1,
|
|
7077 ;THE INITIAL CONTENTS OF THE INDIRECT ADDRESS
|
|
7078
|
|
7079 034252 402 00 0 00 000001 C21200: SETZM 1 ;PRELOAD AC WITH -1,,-1
|
|
7080 034253 201 07 0 00 000003 MOVEI 7,3 ;SETUP DIRECT ADDRESS WITH INDIRECT ADDRESS
|
|
7081 034254 476 00 0 00 000003 SETOM 3 ;PRELOAD INDIRECT ADDRESS WITH -1,,-1
|
|
7082 034255 200 01 1 00 000007 MOVE 1,@7 ;*FWT FROM INDIRECT ADDRESS SHOULD
|
|
7083 ;PLACE -1,,-1 INTO THE AC
|
|
7084 034256 312 01 0 00 034466 CAME 1,[-1,,-1] ;PASS IF C(AC)=-1,,-1
|
|
7085 STOP^
|
|
7086 034257 254 04 0 00 034260 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7087 034260 324 00 0 00 034261 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7088 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7089 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7090 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7091
|
|
7092 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 73
|
|
DAKADM MAC 19-JAN-77 13:41 INDIRECT ADDRESSING - BASIC TESTS SEQ 0169
|
|
|
|
7093 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING WORKS WHEN BOTH E AND @E
|
|
7094 ;ARE WITHIN THE AC RANGE.
|
|
7095 ;THE INSTRUCTION SPECIFYING INDIRECT ADDRESSING IS A MOVE.
|
|
7096 ;AFTER MOVE IS EXECUTED, C(AC) IS CHECKED FOR 707070,,707070,
|
|
7097 ;THE INITIAL CONTENTS OF THE INDIRECT ADDRESS
|
|
7098
|
|
7099 034261 402 00 0 00 000001 C21300: SETZM 1 ;PRELOAD AC WITH 0
|
|
7100 034262 201 07 0 00 000003 MOVEI 7,3 ;SETUP DIRECT ADDRESS WITH INDIRECT ADDRESS
|
|
7101 034263 200 03 0 00 034553 MOVE 3,[707070,,707070] ;PRELOAD INDIRECT ADDRESS WITH 707070,,707070
|
|
7102 034264 200 01 1 00 000007 MOVE 1,@7 ;*FWT FROM INDIRECT ADDRESS SHOULD
|
|
7103 ;PLACE 707070,,707070 INTO THE AC
|
|
7104 034265 312 01 0 00 034553 CAME 1,[707070,,707070] ;PASS IF C(AC)=707070,,707070
|
|
7105 STOP^
|
|
7106 034266 254 04 0 00 034267 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7107 034267 324 00 0 00 034270 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7108 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7109 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7110 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7111
|
|
7112 ;**********
|
|
7113
|
|
7114 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING WORKS WHEN E IS WITHIN THE AC RANGE
|
|
7115 ;AND @E IS BEYOND THE AC RANGE.
|
|
7116 ;THE INSTRUCTION SPECIFYING INDIRECT ADDRESSING IS A MOVE.
|
|
7117 ;AFTER MOVE IS EXECUTED, C(AC) IS CHECKED FOR 707070,,707070,
|
|
7118 ;THE INITIAL CONTENTS OF THE INDIRECT ADDRESS
|
|
7119
|
|
7120 034270 254 00 0 00 034272 C21400: JRST .+2
|
|
7121 034271 707070 707070 XWD 707070,707070 ;INDIRECT ADDRESS AND ITS DATA
|
|
7122 034272 402 00 0 00 000001 SETZM 1 ;PRELOAD AC WITH 0
|
|
7123 034273 201 07 0 00 034271 MOVEI 7,C21400+1 ;SETUP DIRECT ADDRESS WITH INDIRECT ADDRESS
|
|
7124 034274 200 01 1 00 000007 MOVE 1,@7 ;*FWT FROM INDIRECT ADDRESS SHOULD
|
|
7125 ;PLACE 707070,,707070 INTO AC
|
|
7126 034275 312 01 0 00 034271 CAME 1,C21400+1 ;PASS IF C(AC)=707070,,707070
|
|
7127 STOP^
|
|
7128 034276 254 04 0 00 034277 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7129 034277 324 00 0 00 034300 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7130 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7131 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7132 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7133
|
|
7134 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 74
|
|
DAKADM MAC 19-JAN-77 13:41 INDIRECT ADDRESSING - BASIC TESTS SEQ 0170
|
|
|
|
7135 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING WORKS WHEN BOTH E AND @E
|
|
7136 ;ARE BEYOND THE AC RANGE.
|
|
7137 ;THE INSTRUCTION SPECIFYING INDIRECT ADDRESSING IS A MOVE.
|
|
7138 ;AFTER MOVE IS EXECUTED, C(AC) IS CHECKED FOR 202020,,202020,
|
|
7139 ;THE INITIAL CONTENTS OF THE INDIRECT ADDRESS
|
|
7140
|
|
7141 034300 254 00 0 00 034303 C21500: JRST .+3
|
|
7142 034301 000000 034302 .+1 ;DIRECT ADDRESS AND ITS DATA
|
|
7143 034302 202020 202020 XWD 202020,202020 ;INDIRECT ADDRESS AND ITS DATA
|
|
7144 034303 402 00 0 00 000001 SETZM 1 ;PRELOAD AC WITH 0
|
|
7145 034304 200 01 1 00 034301 MOVE 1,@C21500+1 ;*FWT FROM INDIRECT ADDRESS SHOULD
|
|
7146 ;PLACE 202020,,202020 INTO AC
|
|
7147 034305 312 01 0 00 034302 CAME 1,C21500+2 ;PASS IF C(AC)=202020,,202020
|
|
7148 STOP^
|
|
7149 034306 254 04 0 00 034307 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7150 034307 324 00 0 00 034310 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7151 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7152 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7153 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7154
|
|
7155 ;**********
|
|
7156
|
|
7157 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING WORKS WHEN BOTH E AND @E
|
|
7158 ;ARE BEYOND THE AC RANGE.
|
|
7159 ;THE INSTRUCTION SPECIFYING INDIRECT ADDRESSING IS A CAME.
|
|
7160
|
|
7161 034310 254 00 0 00 034313 C21600: JRST .+3
|
|
7162 034311 000000 034312 .+1 ;DIRECT ADDRESS AND ITS DATA
|
|
7163 034312 272727 272727 XWD 272727,272727 ;INDIRECT ADDRESS AND ITS DATA
|
|
7164 034313 200 01 0 00 034312 MOVE 1,C21600+2 ;PRELOAD AC
|
|
7165 034314 312 01 1 00 034311 CAME 1,@C21600+1 ;*CAME OF DATA FROM INDIRECT ADDRESS - NON-AC RANGE
|
|
7166 STOP^
|
|
7167 034315 254 04 0 00 034316 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7168 034316 324 00 0 00 034317 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7169 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7170 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7171 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7172
|
|
7173 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 75
|
|
DAKADM MAC 19-JAN-77 13:41 INDIRECT ADDRESSING - BASIC TESTS SEQ 0171
|
|
|
|
7174 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING WORKS WHEN E IS WITHIN THE AC RANGE
|
|
7175 ;AND @E IS BEYOND THE AC RANGE.
|
|
7176 ;THE INSTRUCTION SPECIFYING INDIRECT ADDRESSING IS A CAME.
|
|
7177
|
|
7178 034317 254 00 0 00 034321 C21700: JRST .+2
|
|
7179 034320 252525 252525 XWD 252525,252525 ;INDIRECT ADDRESS AND ITS DATA
|
|
7180 034321 201 07 0 00 034320 MOVEI 7,C21700+1 ;SETUP DIRECT ADDRESS WITH INDIRECT ADDRESS
|
|
7181 034322 200 01 0 00 034320 MOVE 1,C21700+1 ;SETUP AC
|
|
7182 034323 312 01 1 00 000007 CAME 1,@7 ;*CAME IF DATA FROM INDIRECT ADDRESS - AC RANGE
|
|
7183 STOP^
|
|
7184 034324 254 04 0 00 034325 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7185 034325 324 00 0 00 034326 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7186 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7187 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7188 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7189
|
|
7190 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 76
|
|
DAKADM MAC 19-JAN-77 13:41 TEST INDIRECT ADDRESSING WITH INDEXING SEQ 0172
|
|
|
|
7191 SUBTTL TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7192
|
|
7193 ;SETUP INDEX REGISTERS
|
|
7194
|
|
7195 034326 201 01 0 00 777774 MOVEI 1,-4
|
|
7196 034327 201 03 0 00 000002 MOVEI 3,2
|
|
7197 034330 201 04 0 00 000010 MOVEI 4,10
|
|
7198 034331 201 05 0 00 000001 MOVEI 5,1
|
|
7199 034332 201 06 0 00 000005 MOVEI 6,5
|
|
7200 034333 201 07 0 00 000007 MOVEI 7,7
|
|
7201 034334 201 10 0 00 000004 MOVEI 10,4
|
|
7202 034335 201 11 0 00 777772 MOVEI 11,-6
|
|
7203 034336 201 12 0 00 000005 MOVEI 12,5
|
|
7204 034337 201 13 0 00 000002 MOVEI 13,2
|
|
7205
|
|
7206 034340 254 00 0 00 034371 JRST C22000 ;RESUME TEST
|
|
7207
|
|
7208 ;INDIRECT ADDRESSING/INDEXING TEST TABLE
|
|
7209
|
|
7210 ;;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;;
|
|
7211
|
|
7212 ;DO NOT MODIFY THIS TABLE OR TESTS C21700 THRU C22600 INDEPENDENTLY !
|
|
7213
|
|
7214 ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;;
|
|
7215
|
|
7216 034341 000003 034344 E217: E217A(3)
|
|
7217 034342 000020 034347 E220: @E220A
|
|
7218 034343 220220 220220 E220B: 220220,,220220
|
|
7219 034344 000020 034351 E217A: @E221A ;E221-4
|
|
7220 034345 221221 221221 E221B: 221221,,221221
|
|
7221 034346 217217 217217 E222A: 217217,,217217 ;E217A+2
|
|
7222 034347 000000 034343 E220A: E220B
|
|
7223 034350 000000 034350 E221: E221
|
|
7224 034351 000000 034345 E221A: E221B
|
|
7225 034352 000000 034350 E222: E221
|
|
7226 034353 223223 223223 E223A: 223223,,223223
|
|
7227 034354 000004 034354 E224A: E224A(4) ;E223-6
|
|
7228 034355 222222 222222 222222,,222222 ;E222A+7
|
|
7229 034356 000000 034356 E225: E225
|
|
7230 034357 000007 034346 E222A(7) ;E222+5
|
|
7231 034360 000020 034363 @E225A ;E225+2
|
|
7232 034361 225225 225225 E225B: 225225,,225225
|
|
7233 034362 000000 034362 E223: E223
|
|
7234 034363 000000 034361 E225A: E225B
|
|
7235 034364 224224 224224 224224,,224224 ;E224A+10
|
|
7236 034365 226226 226226 E226B: 226226,,226226
|
|
7237 034366 000000 034353 E223A ;E223+4
|
|
7238 034367 000025 034367 E226A: @E226A(5) ;E223+5
|
|
7239 034370 000000 034365 E226B ;E226A+1
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 77
|
|
DAKADM MAC 19-JAN-77 13:41 TEST INDIRECT ADDRESSING WITH INDEXING SEQ 0173
|
|
|
|
7240 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7241 LY.
|
|
7242 ;IN THIS CASE, MOVE 2,@E217 IS TESTED WHERE C(E217)=E217A(3) AND C(3)=0,,2.
|
|
7243 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E217A+2)=217217,,217217
|
|
7244
|
|
7245 034371 476 00 0 00 000002 C22000: SETOM 2 ;INITIALIZE AC
|
|
7246 034372 200 02 1 00 034341 MOVE 2,@E217 ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7247 034373 312 02 0 00 034346 CAME 2,E217A+2 ;PASS IF C(AC)=217217,,217217
|
|
7248 STOP^
|
|
7249 034374 254 04 0 00 034375 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7250 034375 324 00 0 00 034376 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7251 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7252 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7253 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7254
|
|
7255 ;**********
|
|
7256
|
|
7257 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7258 LY.
|
|
7259 ;IN THIS CASE, MOVE 2,@E220 IS TESTED WHERE C(E220)=@E220A AND C(E220A)=E220B.
|
|
7260 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E220B)=220220,,220220
|
|
7261
|
|
7262 034376 402 00 0 00 000002 C22100: SETZM 2 ;INITIALIZE AC
|
|
7263 034377 200 02 1 00 034342 MOVE 2,@E220 ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7264 034400 312 02 0 00 034343 CAME 2,E220B ;PASS IF C(AC)=220220,,220220
|
|
7265 STOP^
|
|
7266 034401 254 04 0 00 034402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7267 034402 324 00 0 00 034403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7268 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7269 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7270 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7271
|
|
7272 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 78
|
|
DAKADM MAC 19-JAN-77 13:41 TEST INDIRECT ADDRESSING WITH INDEXING SEQ 0174
|
|
|
|
7273 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7274 LY.
|
|
7275 ;IN THIS CASE,E221(1) 2,@E217 IS TESTED WHERE C(1)=-4 AND E221-4=E217A
|
|
7276 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E217A)=@E221A=20,,E221A
|
|
7277
|
|
7278 034403 476 00 0 00 000002 C22200: SETOM 2 ;INITIALIZE AC
|
|
7279 034404 200 02 0 01 034350 MOVE 2,E221(1) ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7280 034405 312 02 0 00 034344 CAME 2,E217A ;PASS IF C(AC)=@E221A=20,,E221A
|
|
7281 STOP^
|
|
7282 034406 254 04 0 00 034407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7283 034407 324 00 0 00 034410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7284 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7285 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7286 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7287
|
|
7288 ;**********
|
|
7289
|
|
7290 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7291 LY.
|
|
7292 ;IN THIS CASE, MOVE 2,E222(6) IS TESTED WHERE C(6)=5
|
|
7293 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E222+5)=E222A(7)=7,,E222A
|
|
7294
|
|
7295 034410 402 00 0 00 000002 C22300: SETZM 2 ;INITIALIZE AC
|
|
7296 034411 200 02 0 06 034352 MOVE 2,E222(6) ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7297 034412 312 02 0 00 034357 CAME 2,E222+5 ;PASS IF C(AC)=E222A(7)=7,,E222A
|
|
7298 STOP^
|
|
7299 034413 254 04 0 00 034414 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7300 034414 324 00 0 00 034415 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7301 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7302 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7303 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7304
|
|
7305 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 79
|
|
DAKADM MAC 19-JAN-77 13:41 TEST INDIRECT ADDRESSING WITH INDEXING SEQ 0175
|
|
|
|
7306 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7307 LY.
|
|
7308 ;IN THIS CASE, MOVE 2,@E223(10) IS TESTED WHERE C(10)=4 AND C(E223+4)=E223A
|
|
7309 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E223A)=223223,,223223
|
|
7310
|
|
7311 034415 476 00 0 00 000002 C22400: SETOM 2 ;INITIALIZE AC
|
|
7312 034416 200 02 1 10 034362 MOVE 2,@E223(10) ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7313 034417 312 02 0 00 034353 CAME 2,E223A ;PASS IF C(AC)=223223,,223223
|
|
7314 STOP^
|
|
7315 034420 254 04 0 00 034421 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7316 034421 324 00 0 00 034422 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7317 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7318 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7319 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7320
|
|
7321 ;**********
|
|
7322
|
|
7323 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7324 LY.
|
|
7325 ;IN THIS CASE, MOVE 2,@E223(11) IS TESTED WHERE C(11)=-6, C(E223-6)=E224A(4) AND C(4)=10
|
|
7326 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E224A+10)=224224,,224224
|
|
7327
|
|
7328 034422 402 00 0 00 000002 C22500: SETZM 2 ;INITIALIZE AC
|
|
7329 034423 200 02 1 11 034362 MOVE 2,@E223(11) ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7330 034424 312 02 0 00 034364 CAME 2,E224A+10 ;PASS IF C(AC)=224224,,224224
|
|
7331 STOP^
|
|
7332 034425 254 04 0 00 034426 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7333 034426 324 00 0 00 034427 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7334 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7335 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7336 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7337
|
|
7338 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 80
|
|
DAKADM MAC 19-JAN-77 13:41 TEST INDIRECT ADDRESSING WITH INDEXING SEQ 0176
|
|
|
|
7339 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7340 LY.
|
|
7341 ;IN THIS CASE, MOVE 2,@E225(13) IS TESTED WHERE C(13)=2, C(E225+2)=@E225A
|
|
7342 ;AND C(E225A)=E225B
|
|
7343 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E225B)=225225,,225225
|
|
7344
|
|
7345 034427 476 00 0 00 000002 C22600: SETOM 2 ;INITIALIZE AC
|
|
7346 034430 200 02 1 13 034356 MOVE 2,@E225(13) ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7347 034431 312 02 0 00 034361 CAME 2,E225B ;PASS IF C(AC)=225225,,225225
|
|
7348 STOP^
|
|
7349 034432 254 04 0 00 034433 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7350 034433 324 00 0 00 034434 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7351 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7352 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7353 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7354
|
|
7355 ;**********
|
|
7356
|
|
7357 ;THIS TEST VERIFIES THAT INDIRECT ADDRESSING IN COMBINATION WITH INDEXING FUNCTIONS CORRECT
|
|
7358 LY.
|
|
7359 ;IN THIS CASE, MOVE 2,@E223(12) IS TESTED WHERE C(12)=5, C(E223+5)=@E226A(5),
|
|
7360 ;C(5)=1 AND C(E226A+1)=E226B
|
|
7361 ;HENCE, THE RESULT IN THE AC SHOULD BE C(E226B)=226226,,226226
|
|
7362
|
|
7363 034434 402 00 0 00 000002 C22700: SETZM 2 ;INITIALIZE AC
|
|
7364 034435 200 02 1 12 034362 MOVE 2,@E223(12) ;TEST INDIRECT ADDRESSING WITH INDEXING
|
|
7365 034436 312 02 0 00 034365 CAME 2,E226B ;PASS IF C(AC)=226226,,226226
|
|
7366 STOP^
|
|
7367 034437 254 04 0 00 034440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
|
|
7368 034440 324 00 0 00 034441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1)
|
|
7369 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST
|
|
7370 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR
|
|
7371 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^
|
|
7372
|
|
7373 ;**********
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 81
|
|
DAKADM MAC 19-JAN-77 13:41 TEST INDIRECT ADDRESSING WITH INDEXING SEQ 0177
|
|
|
|
7374
|
|
7375 034441 254 00 0 00 030057 JRST BEGEND
|
|
7376 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977
|
|
7377
|
|
7378 ;PROGRAM LITERALS
|
|
7379
|
|
7380 XLIST
|
|
7381 IFNDEF $LPAPER,<LIST>
|
|
7382 034442 LIT
|
|
7383 034442 000001 000001
|
|
7384 034443 254 00 0 00 030741
|
|
7385 034444 000001 000000
|
|
7386 034445 000002 000000
|
|
7387 034446 000004 000000
|
|
7388 034447 000010 000000
|
|
7389 034450 000020 000000
|
|
7390 034451 000040 000000
|
|
7391 034452 000100 000000
|
|
7392 034453 000200 000000
|
|
7393 034454 000400 000000
|
|
7394 034455 001000 000000
|
|
7395 034456 002000 000000
|
|
7396 034457 004000 000000
|
|
7397 034460 010000 000000
|
|
7398 034461 020000 000000
|
|
7399 034462 040000 000000
|
|
7400 034463 100000 000000
|
|
7401 034464 200000 000000
|
|
7402 034465 400000 000000
|
|
7403 034466 777777 777777
|
|
7404 034467 777777 777776
|
|
7405 034470 777777 777775
|
|
7406 034471 777777 777773
|
|
7407 034472 777777 777767
|
|
7408 034473 777777 777757
|
|
7409 034474 777777 777737
|
|
7410 034475 777777 777677
|
|
7411 034476 777777 777577
|
|
7412 034477 777777 777377
|
|
7413 034500 777777 776777
|
|
7414 034501 777777 775777
|
|
7415 034502 777777 773777
|
|
7416 034503 777777 767777
|
|
7417 034504 777777 757777
|
|
7418 034505 777777 737777
|
|
7419 034506 777777 677777
|
|
7420 034507 777777 577777
|
|
7421 034510 777777 377777
|
|
7422 034511 777776 777777
|
|
7423 034512 777775 777777
|
|
7424 034513 777773 777777
|
|
7425 034514 777767 777777
|
|
7426 034515 777757 777777
|
|
7427 034516 777737 777777
|
|
7428 034517 777677 777777
|
|
DAKAD PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (4) 0,2 MACRO %52(537) 14:33 19-JAN-77 PAGE 1
|
|
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0178
|
|
|
|
7429 034520 777577 777777
|
|
7430 034521 777377 777777
|
|
7431 034522 776777 777777
|
|
7432 034523 775777 777777
|
|
7433 034524 773777 777777
|
|
7434 034525 767777 777777
|
|
7435 034526 757777 777777
|
|
7436 034527 737777 777777
|
|
7437 034530 677777 777777
|
|
7438 034531 577777 777777
|
|
7439 034532 377777 777777
|
|
7440 034533 777777 000000
|
|
7441 034534 000000 777777
|
|
7442 034535 252525 252525
|
|
7443 034536 000000 000000
|
|
7444 034537 254 04 0 00 032743
|
|
7445 034540 377777 377777
|
|
7446 034541 400000 400000
|
|
7447 034542 201 01 0 00 034217
|
|
7448 034543 201 01 0 00 000001
|
|
7449 034544 201 01 0 00 777777
|
|
7450 034545 256 00 0 00 034544
|
|
7451 034546 256 00 0 00 034545
|
|
7452 034547 256 00 0 00 034546
|
|
7453 034550 256 00 0 00 034547
|
|
7454 034551 200 01 0 00 034466
|
|
7455 034552 334 00 0 00 000000
|
|
7456 034553 707070 707070
|
|
7457 LIST
|
|
7458 034554 000000 000000 ENDSLD: 0
|
|
7459
|
|
7460 IFDEF DEBUG,<
|
|
7461 034555 PATCH: BLOCK DEBUG ;PATCHING AREA
|
|
7462 >
|
|
7463
|
|
7464 ;PROGRAM VARIABLES
|
|
7465 034655 VAR
|
|
7466
|
|
7467 IFDEF PGMEND,<
|
|
7468 034655 000000 000000 END: 0
|
|
7469 030000 END BEGIN >
|
|
|
|
NO ERRORS DETECTED
|
|
|
|
PROGRAM BREAK IS 000000
|
|
ABSLUTE BREAK IS 034656
|
|
CPU TIME USED 00:28.911
|
|
|
|
11K CORE USED
|