pcjs/apps/pdp10/diags/ka10/dakal/DAKAL.LST.txt

18052 lines
867 KiB
Text

DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1
DAKALT MAC 20-JAN-77 11:19 DIAGNOSTIC PARAMETERS SEQ 0011
1 ;DAKAL
2
3
4 000000 MCNVER==0
5 000002 DECVER==2
6
7
8 XLIST
9 LIST
10 LALL
11
12 NAME \MCNVER,\DECVER^
13
14 TITLE DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2
15 ^
16
17 ;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE)
18
19 ;COPYRIGHT 1975,1977
20 ;DIGITAL EQUIPMENT CORPORATION
21 ;MARLBORO, MASS. 01752
22
23 ;JOHN R. KIRCHOFF
24
25 000137 LOC 137
26 000137 000000 000002 MCNVER,,DECVER
27
28 .DIRECTIVE .OKOVL
29 NOSYM
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2
DAKALT MAC 20-JAN-77 11:19 DIAGNOSTIC PARAMETERS SEQ 0012
30 SUBTTL DIAGNOSTIC PARAMETERS
31
32 ;OPERATOR DEFINITIONS
33
34 001000 000000 OPDEF ER1 [1B8]
35 002000 000000 OPDEF ER2 [2B8]
36 003000 000000 OPDEF ER3 [3B8]
37 004000 000000 OPDEF ER4 [4B8]
38 005000 000000 OPDEF ER5 [5B8]
39 006000 000000 OPDEF ER6 [6B8]
40 007000 000000 OPDEF ER7 [7B8]
41 010000 000000 OPDEF ER10 [10B8]
42 011000 000000 OPDEF ER11 [11B8]
43 012000 000000 OPDEF ER12 [12B8]
44 013000 000000 OPDEF ER13 [13B8]
45
46 044422 LUUO1=ERRMES
47 044422 LUUO2=ERRMES
48 044422 LUUO3=ERRMES
49 044422 LUUO4=ERRMES
50 044422 LUUO5=ERRMES
51 044422 LUUO6=ERRMES
52 044422 LUUO7=ERRMES
53 044422 LUUO10=ERRMES
54 044422 LUUO11=ERRMES
55 044422 LUUO12=ERRMES
56 044422 LUUO13=ERRMES
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3
DAKALT MAC 20-JAN-77 11:19 DIAGNOSTIC PARAMETERS SEQ 0013
57 ;SUBROUTINE ASSEMBLY DEFINITIONS
58
59 000040 DEBUG=40
60 000001 EXCASB=1
61 000001 USRASB=1
62 000001 KA10=1
63 000001 KLOLD==1
64 000001 PGMEND=1
65 000001 ERDIAG=1
66
67 ;SPECIAL FEATURE DEFINITIONS
68
69 030000 SADR1=BEGIN
70 030000 SADR2=BEGIN
71 030000 SADR3=BEGIN
72 030000 SADR4=BEGIN
73 254000 030000 SADR5=JRST BEGIN
74 254000 030000 SADR6=JRST BEGIN
75 254000 030000 SADR7=JRST BEGIN
76 254000 030000 SADR8=JRST BEGIN
77 254000 030000 SADR9=JRST BEGIN
78 254000 030000 SADR10=JRST BEGIN
79 254000 030000 SADR11=JRST BEGIN
80
81 ;SPECIAL FEATURE PARAMETERS
82
83 000000 PAREA0=0
84 000000 PAREA1=0
85 000000 PAREA2=0
86 444153 415400 PAREA3=SIXBIT/DAKAL/
87 645560 000000 PAREA4=SIXBIT/TMP/
88 000000 PAREA5=0
89 000000 PAREA6=0
90 001000 ITERAT==1000
91
92 ;MACROS
93
94 DEFINE SAVEAC (A,B)<
95 MOVEI AC+2,. ;SAVE TEST PC
96 MOVEM AC+2,TESTPC
97 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
98 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 4
DAKALT MAC 20-JAN-77 11:19 DIAGNOSTIC PARAMETERS SEQ 0014
99 DEFINE MOP1 (T,A1,A2,EE,R1,R2)<
100 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND
101 ;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
102 ;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY.
103 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
104
105 F'T'0: AA1=A1 ;INITIAL C(AC)
106 MOVE AC,[A1] ;PRELOAD AC (MULTIPLIER)
107 AA2=A2 ;INITIAL C(AC+1)
108 MOVE AC+1,[A2] ;PRELOAD AC+1
109 AEE=EE ;INITIAL C(E)
110 MOVE E,[EE] ;PRELOAD E (MULTIPLICAND)
111 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
112 AR1=R1 ;EXPECTED RESULT IN AC
113 CAME AC,[R1] ;IS HIGH PRODUCT CORRECT?
114 ER3 AC,T'1 ;HIGH PRODUCT FAILED
115 AR2=R2 ;EXPECTED RESULT IN AC+1
116 CAME AC+1,[R2] ;IS LOW PRODUCT CORRECT?
117 ER4 AC+1,T'2 ;LOW PRODUCT FAILED
118 AEE=EE ;INITIAL C(E)
119 CAME E,[EE] ;WAS C(E) CLOBBERED?
120 ER5 E,T'3 ;C(E) WAS CLOBBERED
121 JUMPL AC+2,F'T'0 ;LOOP ON ERROR SWITCH>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1
PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0015
122 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977
123
124 DEFINE S,<;*********************************************************************>
125
126 S^;*********************************************************************^
127 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
128 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
129 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
130 S^;*********************************************************************^
131
132 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
133 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
134 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
135
136 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
137 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
138 010000 DING== 010000 ;RING BELL ON ERROR
139
140 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
141 002000 ERSTOP==002000 ;HALT ON TEST ERROR
142 001000 PALERS==001000 ;PRINT ALL ERRORS
143
144 000400 RELIAB==000400 ;RELIABILITY MODE
145 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
146 000100 INHPAG==000100 ;INHIBIT PAGING
147
148 000040 MODDVC==000040 ;MODIFY DEVICE CODE
149 000020 INHCSH==000020 ;INHIBIT CACHE
150 000010 OPRSEL==000010 ;OPERATOR SELECTION
151
152 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
153
154 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
155
156 ;SWITCH 17 RESERVED !!!
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0016
157 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977
158
159 S^;*********************************************************************^
160 ;*SPECIAL SUBPROGRAM LINKAGES
161 S^;*********************************************************************^
162
163 027772 FSELNK= 27772 ;FILE SELECT LINK
164 027773 FRDLNK= 27773 ;FILE READ LINK
165 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
166 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
167 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
168 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
169
170 S^;*********************************************************************^
171 ;*SPECIAL SUBROUTINE FATAL HALTS
172 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
173 S^;*********************************************************************^
174
175 ;ADDRESS TAG REASON
176 ;---------------------
177
178 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
179 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
180 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
181 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
182 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
183 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
184 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
185 ; 1017 EOPERR ;END OF PROGRAM ERROR
186 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
187
188 S^;*********************************************************************^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0017
189 S^;*********************************************************************^
190 ;OPERATOR DEFINITIONS (NON-UUO'S)
191 S^;*********************************************************************^
192
193 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
194 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
195 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
196 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
197 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
198 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
199 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
200 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
201
202 S^;*********************************************************************^
203 ;*SUBROUTINE INITIALIZATION CALL
204 S^;*********************************************************************^
205
206 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
207
208 S^;*********************************************************************^
209 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
210 S^;*********************************************************************^
211
212 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
213 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
214
215 S^;*********************************************************************^
216 ;*TERMINAL INPUT UUO'S
217 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
218 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
219 S^;*********************************************************************^
220
221 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
222 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
223 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
224 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
225 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
226 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
227 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
228 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
229 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
230 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 4
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0018
231 ;*TERMINAL OUTPUT UUO'S.
232
233 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
234 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
235 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
236 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
237 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
238 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
239 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
240 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
241 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
242 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
243 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
244 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
245 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
246 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
247 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
248 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
249 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
250 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
251 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
252 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
253 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
254 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
255 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
256 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
257 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
258 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
259 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
260 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
261 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
262 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
263 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
264 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
265 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
266 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
267 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
268 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
269 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
270 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
271 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
272 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
273 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
274 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
275 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
276 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
277 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
278 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
279 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
280 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
281 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
282 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
283 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
284 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
285 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 4-1
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019
286 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
287 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
288
289 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
290
291 DEFINE PMSG (ARG),<
292 PSIXM [SIXBIT\ARG'_\]>
293
294 DEFINE PMSGF (ARG),<
295 PSIXMF [SIXBIT\ARG'_\]>
296
297 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
298 ;* CONSERVES CORE OVER ASCIZ
299
300 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
301
302 ;*CONSOLE SWITCH INPUT UUO.
303 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
304 ;* USER MODE.
305
306 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
307
308 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
309 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
310
311 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
312 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
313
314 ;*KL10 ONLY CACHE OPERATION UUO'S
315
316 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
317 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
318 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020
319 ;*END OF PASS/PROGRAM UUOS
320
321 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
322 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
323
324 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
325 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
326
327 ;*MEMORY MANAGEMENT UUO'S
328 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
329 ;*ADDRESS CONVERSION, ETC...
330
331 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
332 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
333 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
334 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
335 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
336 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
337 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
338
339 ;*DEVICE CODE MODIFICATION UUO
340 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
341 ;*IOT'S TO A DIFFERENT DEVICE CODE.
342
343 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
344 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
345
346 030000 IFNDEF MODDVL,<MODDVL==BEGIN>
347 030000 IFNDEF MODDVU,<MODDVU==BEGIN>
348
349 ;*"DIAMON" FILE SELECTION AND READ UUOS
350
351 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
352 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
353 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
354 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
355
356 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
357
358 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
359
360 XLIST
361 LIST
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021
362 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977
363
364 030000 LOC 30000
365
366 S^;*********************************************************************^
367 ;*PROGRAM STARTING ADDRESSES
368 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
369 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
370 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
371 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
372 S^;*********************************************************************^
373
374 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
375 030001 254 00 0 00 030616 $START: JRST START ;MODE CHECK STARTING ADDRESS
376
377 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
378
379 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
380
381 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
382
383 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
384
385 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
386
387 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
388 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
389
390 030010 254 00 0 00 030621 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
391 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
392 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
393
394 030013 254000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
395 030014 254000 030000 START2: SADR8 ; "
396 030015 254000 030000 START3: SADR9 ; "
397 030016 254000 030000 START4: SADR10 ; "
398 030017 254000 030000 START5: SADR11 ; "
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022
399 S^;*********************************************************************^
400 ;*PROGRAM FIXED PARAMETER AREA
401 S^;*********************************************************************^
402
403 030020 444153 415400 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
404 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
405 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER
406 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
407 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS
408 030025 000000 030602 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
409 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
410 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
411 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
412 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
413 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
414 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
415 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
416 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
417 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
418
419 S^;*********************************************************************^
420 ;*PROGRAM VARIABLE PARAMETER AREA
421 S^;*********************************************************************^
422
423 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
424 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
425 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
426 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
427 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
428 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
429 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
430 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
431 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
432 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
433 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
434 030052 000000 000000 ERRPC: 0 ;ERROR PC
435 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
436 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
437 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
438 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023
439 S^;*********************************************************************^
440 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
441 S^;*********************************************************************^
442
443 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
444 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
445 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
446 030062 254000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
447 030063 254000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
448 030064 CPOPJ1: ;SKIP RETURN
449 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
450 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
451 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
452 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
453 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
454 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
455 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
456 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
457 030073 255 00 0 00 000000 $USRHL: JFCL ; "
458 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
459 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
460 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
461 030077 255 00 0 00 000000 RESRT2: JFCL ; "
462 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
463 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
464 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
465
466 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
467 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
468 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
469
470 S^;*********************************************************************^
471 ;*PROCESSOR CONTROL STORAGE
472 S^;*********************************************************************^
473
474 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
475 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
476 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
477 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
478 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
479
480 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
481 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
482
483 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
484 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
485 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
486 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
487 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
488 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
489 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 4
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024
490 S^;*********************************************************************^
491 ;*UUO DISPATCH TABLE
492 S^;*********************************************************************^
493 XLIST
494 LIST
495 030124 044422 030070 UUODIS: LUUO1,,$UUOER
496 030125 044422 044422 LUUO3,,LUUO2
497 030126 044422 044422 LUUO5,,LUUO4
498 030127 044422 044422 LUUO7,,LUUO6
499 030130 044422 044422 LUUO11,,LUUO10
500 030131 044422 044422 LUUO13,,LUUO12
501 030132 030070 030070 LUUO15,,LUUO14
502 030133 030070 030070 LUUO17,,LUUO16
503 030134 030070 030070 LUUO21,,LUUO20
504 030135 030070 030070 LUUO23,,LUUO22
505 030136 030070 030070 LUUO25,,LUUO24
506 030137 030070 030070 LUUO27,,LUUO26
507 030140 030070 030070 LUUO31,,LUUO30
508 030141 030070 030070 LUUO33,,LUUO32
509
510 S^;*********************************************************************^
511 ;*MEMORY MANAGMENT STORAGE
512 S^;*********************************************************************^
513
514 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
515 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
516 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
517 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
518 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
519
520 S^;*********************************************************************^
521 ;*PRINT CONTROL STORAGE
522 S^;*********************************************************************^
523
524 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
525 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
526 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
527 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
528 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
529 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
530 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
531 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
532 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
533 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
534 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
535 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
536 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
537 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
538 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
539 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
540 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
541 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
542 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025
543 S^;*********************************************************************^
544 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
545 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
546 ;* MOVEI NAME
547 ;* PNTA ;OR PNTAF
548 S^;*********************************************************************^
549
550 030242 CRLF: ASCII/
551 030242 015 012 000 000 000 /
552 030243 CRLF2: ASCII/
553
554 030243 015 012 015 012 000 /
555 030244 054 000 000 000 000 COMMA: ASCII/,/
556 030245 056 000 000 000 000 PERIOD: ASCII/./
557 030246 040 000 000 000 000 SPACE: ASCII/ /
558 030247 011 000 000 000 000 TAB: ASCII/ /
559 030250 MINUS:
560 030250 055 000 000 000 000 HYPEN: ASCII/-/
561 030251 053 000 000 000 000 PLUS: ASCII/+/
562 030252 052 000 000 000 000 AST: ASCII/*/
563 030253 100 000 000 000 000 ATSIN: ASCII/@/
564 030254 050 000 000 000 000 LFP: ASCII/(/
565 030255 051 000 000 000 000 RTP: ASCII/)/
566 030256 007 0000000000 BELL: BYTE (7) 007
567 030257 077 000 000 000 000 QUEST: ASCII/?/
568 030260 057 000 000 000 000 SLASH: ASCII!/!
569 030261 044 000 000 000 000 DOLLAR: ASCII/$/
570 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
571 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
572 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
573
574 S^;*********************************************************************^
575 ;*USER MODE OUTPUT FILE INFORMATION
576 S^;*********************************************************************^
577
578 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
579 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
580 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
581 030272 BLOCK 2
582
583 S^;*********************************************************************^
584 ;*DISK UPDATE MODE FILE INFORMATION
585 S^;*********************************************************************^
586
587 030274 $IBUF: BLOCK 3
588 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
589 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
590 030301 BLOCK 2
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026
591 S^;*********************************************************************^
592 ;*PUSHDOWN LIST CONTROL INFORMATION
593 S^;*********************************************************************^
594
595 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
596 030304 PLISTS: BLOCK 200
597 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
598
599 S^;*********************************************************************^
600 ;*POWER LINE CLOCK FREQUENCY FLAG
601 S^;*********************************************************************^
602
603 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
604
605 S^;*********************************************************************^
606 ;*KL10 CACHE CONTROL FLAGS
607 S^;*********************************************************************^
608
609 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
610 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
611
612 S^;*********************************************************************^
613 ;*NUMBER INPUT DIGIT FLAG
614 S^;*********************************************************************^
615
616 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
617
618 S^;*********************************************************************^
619 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
620 S^;*********************************************************************^
621
622 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
623
624 S^;*********************************************************************^
625 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
626 S^;*********************************************************************^
627
628 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
629 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
630 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
631
632 S^;*********************************************************************^
633 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
634 S^;*********************************************************************^
635
636 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027
637 S^;*********************************************************************^
638 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
639 S^;*********************************************************************^
640
641 030516 000000 000000 KLTYP: 0
642
643 S^;*********************************************************************^
644 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
645 S^;*********************************************************************^
646
647 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
648
649 S^;*********************************************************************^
650 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
651 S^;*********************************************************************^
652
653 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
654
655 S^;*********************************************************************^
656 ;*"SWITCH" CALL USAGE CONTROL
657 S^;*********************************************************************^
658
659 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
660
661 S^;*********************************************************************^
662 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
663 S^;*********************************************************************^
664
665 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
666 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
667
668 S^;*********************************************************************^
669 ;*SPECIAL FUTURE EXPANSION ROOM
670 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF
671 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE
672 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE.
673 S^;*********************************************************************^
674
675 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER
676
677 S^;*********************************************************************^
678 ;*END OF FIXED STORAGE
679 S^;*********************************************************************^
680
681 030577 $ENDFX=<PLISTE+100>&<777700>-1
682 030577 LOC $ENDFX
683 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION SEQ 0028
684 SUBTTL DIAGNOSTIC SECTION
685
686 030600 037 05 0 00 000002 EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE
687 030601 000000 030600 EXIT
688
689 030602 PGMNAM: ASCIZ/
690 030602 015 012 120 104 120 PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) [DAKAL]
691 030603 055 061 060 040 040
692 030604 113 111 061 060 040
693 030605 102 101 123 111 103
694 030606 040 111 116 123 124
695 030607 122 125 103 124 111
696 030610 117 116 040 104 111
697 030611 101 107 116 117 123
698 030612 124 111 103 040 050
699 030613 061 062 051 040 133
700 030614 104 101 113 101 114
701 030615 135 015 012 000 000 /
702
703 030616 265 00 0 00 030011 START: PGMINT
704 030617 200 00 0 00 044613 MOVE [ASCIZ/AL/]
705 030620 202 00 0 00 044535 MOVEM TLET ;INITIALIZE TEST LETTER
706
707 030621 254 00 0 00 030622 STARTA: JRST F00 ;GO PERFORM DIAGNOSTIC
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0029
708 SUBTTL MAIN TESTING
709
710 003000 ADR=3000
711 000014 F00: AC=14
712 000012 E=<AC-2>&17
713 525252 525252 N1=525252525252
714 252525 252525 N2=252525252525
715 SAVEAC (1,1)^
716 030622 201 16 0 00 030622 MOVEI AC+2,. ;SAVE TEST PC
717 030623 202 16 0 00 030051 MOVEM AC+2,TESTPC
718 030624 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
719 030625 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
720 000044 WW=^D36
721 000000 XX=0
722
723 REPEAT ^D36,<
724 ADR=ADR+1
725 WW=WW-1
726 XX=XX+XX
727 IFE XX,<XX=1>
728
729 ;MULTIPLY A FLOATING 1 BY 1010...101010
730 V1=N1
731 V2=N1*XX
732 IFL XX,<V3=N2+1>
733 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
734 MOP1 (\ADR,V1,0,XX,V3,V2)>
735
736 003001 ADR=ADR+1
737 000043 WW=WW-1
738 000000 XX=XX+XX
739 000001 IFE XX,<XX=1>
740
741 ;MULTIPLY A FLOATING 1 BY 1010...101010
742 525252 525252 V1=N1
743 525252 525252 V2=N1*XX
744 IFL XX,<V3=N2+1>
745 777777 777777 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
746 MOP1 (\ADR,V1,0,XX,V3,V2)^
747 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
748 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
749 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
750 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
751
752 525252 525252 F30010: AA1=V1 ;INITIAL C(AC)
753 030626 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
754 000000 AA2=0 ;INITIAL C(AC+1)
755 030627 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
756 000001 AEE=XX ;INITIAL C(E)
757 030630 200 12 0 00 044616 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
758 030631 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
759 777777 777777 AR1=V3 ;EXPECTED RESULT IN AC
760 030632 312 14 0 00 044617 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
761 030633 003 14 0 00 030011 ER3 AC,30011 ;HIGH PRODUCT FAILED
762 525252 525252 AR2=V2 ;EXPECTED RESULT IN AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0030
763 030634 312 15 0 00 044614 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
764 030635 004 15 0 00 030012 ER4 AC+1,30012 ;LOW PRODUCT FAILED
765 000001 AEE=XX ;INITIAL C(E)
766 030636 312 12 0 00 044616 CAME E,[XX] ;WAS C(E) CLOBBERED?
767 030637 005 12 0 00 030013 ER5 E,30013 ;C(E) WAS CLOBBERED
768 030640 321 16 0 00 030626 JUMPL AC+2,F30010 ;LOOP ON ERROR SWITCH^
769
770 003002 ADR=ADR+1
771 000042 WW=WW-1
772 000002 XX=XX+XX
773 IFE XX,<XX=1>
774
775 ;MULTIPLY A FLOATING 1 BY 1010...101010
776 525252 525252 V1=N1
777 652525 252524 V2=N1*XX
778 IFL XX,<V3=N2+1>
779 777777 777776 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
780 MOP1 (\ADR,V1,0,XX,V3,V2)^
781 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
782 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
783 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
784 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
785
786 525252 525252 F30020: AA1=V1 ;INITIAL C(AC)
787 030641 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
788 000000 AA2=0 ;INITIAL C(AC+1)
789 030642 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
790 000002 AEE=XX ;INITIAL C(E)
791 030643 200 12 0 00 044620 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
792 030644 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
793 777777 777776 AR1=V3 ;EXPECTED RESULT IN AC
794 030645 312 14 0 00 044621 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
795 030646 003 14 0 00 030021 ER3 AC,30021 ;HIGH PRODUCT FAILED
796 652525 252524 AR2=V2 ;EXPECTED RESULT IN AC+1
797 030647 312 15 0 00 044622 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
798 030650 004 15 0 00 030022 ER4 AC+1,30022 ;LOW PRODUCT FAILED
799 000002 AEE=XX ;INITIAL C(E)
800 030651 312 12 0 00 044620 CAME E,[XX] ;WAS C(E) CLOBBERED?
801 030652 005 12 0 00 030023 ER5 E,30023 ;C(E) WAS CLOBBERED
802 030653 321 16 0 00 030641 JUMPL AC+2,F30020 ;LOOP ON ERROR SWITCH^
803
804 003003 ADR=ADR+1
805 000041 WW=WW-1
806 000004 XX=XX+XX
807 IFE XX,<XX=1>
808
809 ;MULTIPLY A FLOATING 1 BY 1010...101010
810 525252 525252 V1=N1
811 525252 525250 V2=N1*XX
812 IFL XX,<V3=N2+1>
813 777777 777775 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
814 MOP1 (\ADR,V1,0,XX,V3,V2)^
815 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
816 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
817 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0031
818 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
819
820 525252 525252 F30030: AA1=V1 ;INITIAL C(AC)
821 030654 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
822 000000 AA2=0 ;INITIAL C(AC+1)
823 030655 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
824 000004 AEE=XX ;INITIAL C(E)
825 030656 200 12 0 00 044623 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
826 030657 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
827 777777 777775 AR1=V3 ;EXPECTED RESULT IN AC
828 030660 312 14 0 00 044624 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
829 030661 003 14 0 00 030031 ER3 AC,30031 ;HIGH PRODUCT FAILED
830 525252 525250 AR2=V2 ;EXPECTED RESULT IN AC+1
831 030662 312 15 0 00 044625 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
832 030663 004 15 0 00 030032 ER4 AC+1,30032 ;LOW PRODUCT FAILED
833 000004 AEE=XX ;INITIAL C(E)
834 030664 312 12 0 00 044623 CAME E,[XX] ;WAS C(E) CLOBBERED?
835 030665 005 12 0 00 030033 ER5 E,30033 ;C(E) WAS CLOBBERED
836 030666 321 16 0 00 030654 JUMPL AC+2,F30030 ;LOOP ON ERROR SWITCH^
837
838 003004 ADR=ADR+1
839 000040 WW=WW-1
840 000010 XX=XX+XX
841 IFE XX,<XX=1>
842
843 ;MULTIPLY A FLOATING 1 BY 1010...101010
844 525252 525252 V1=N1
845 652525 252520 V2=N1*XX
846 IFL XX,<V3=N2+1>
847 777777 777772 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
848 MOP1 (\ADR,V1,0,XX,V3,V2)^
849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
850 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
851 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
853
854 525252 525252 F30040: AA1=V1 ;INITIAL C(AC)
855 030667 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
856 000000 AA2=0 ;INITIAL C(AC+1)
857 030670 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
858 000010 AEE=XX ;INITIAL C(E)
859 030671 200 12 0 00 044626 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
860 030672 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
861 777777 777772 AR1=V3 ;EXPECTED RESULT IN AC
862 030673 312 14 0 00 044627 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
863 030674 003 14 0 00 030041 ER3 AC,30041 ;HIGH PRODUCT FAILED
864 652525 252520 AR2=V2 ;EXPECTED RESULT IN AC+1
865 030675 312 15 0 00 044630 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
866 030676 004 15 0 00 030042 ER4 AC+1,30042 ;LOW PRODUCT FAILED
867 000010 AEE=XX ;INITIAL C(E)
868 030677 312 12 0 00 044626 CAME E,[XX] ;WAS C(E) CLOBBERED?
869 030700 005 12 0 00 030043 ER5 E,30043 ;C(E) WAS CLOBBERED
870 030701 321 16 0 00 030667 JUMPL AC+2,F30040 ;LOOP ON ERROR SWITCH^
871
872 003005 ADR=ADR+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0032
873 000037 WW=WW-1
874 000020 XX=XX+XX
875 IFE XX,<XX=1>
876
877 ;MULTIPLY A FLOATING 1 BY 1010...101010
878 525252 525252 V1=N1
879 525252 525240 V2=N1*XX
880 IFL XX,<V3=N2+1>
881 777777 777765 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
882 MOP1 (\ADR,V1,0,XX,V3,V2)^
883 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
884 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
885 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
886 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
887
888 525252 525252 F30050: AA1=V1 ;INITIAL C(AC)
889 030702 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
890 000000 AA2=0 ;INITIAL C(AC+1)
891 030703 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
892 000020 AEE=XX ;INITIAL C(E)
893 030704 200 12 0 00 044631 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
894 030705 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
895 777777 777765 AR1=V3 ;EXPECTED RESULT IN AC
896 030706 312 14 0 00 044632 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
897 030707 003 14 0 00 030051 ER3 AC,30051 ;HIGH PRODUCT FAILED
898 525252 525240 AR2=V2 ;EXPECTED RESULT IN AC+1
899 030710 312 15 0 00 044633 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
900 030711 004 15 0 00 030052 ER4 AC+1,30052 ;LOW PRODUCT FAILED
901 000020 AEE=XX ;INITIAL C(E)
902 030712 312 12 0 00 044631 CAME E,[XX] ;WAS C(E) CLOBBERED?
903 030713 005 12 0 00 030053 ER5 E,30053 ;C(E) WAS CLOBBERED
904 030714 321 16 0 00 030702 JUMPL AC+2,F30050 ;LOOP ON ERROR SWITCH^
905
906 003006 ADR=ADR+1
907 000036 WW=WW-1
908 000040 XX=XX+XX
909 IFE XX,<XX=1>
910
911 ;MULTIPLY A FLOATING 1 BY 1010...101010
912 525252 525252 V1=N1
913 652525 252500 V2=N1*XX
914 IFL XX,<V3=N2+1>
915 777777 777752 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
916 MOP1 (\ADR,V1,0,XX,V3,V2)^
917 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
918 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
919 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
920 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
921
922 525252 525252 F30060: AA1=V1 ;INITIAL C(AC)
923 030715 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
924 000000 AA2=0 ;INITIAL C(AC+1)
925 030716 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
926 000040 AEE=XX ;INITIAL C(E)
927 030717 200 12 0 00 044634 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0033
928 030720 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
929 777777 777752 AR1=V3 ;EXPECTED RESULT IN AC
930 030721 312 14 0 00 044635 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
931 030722 003 14 0 00 030061 ER3 AC,30061 ;HIGH PRODUCT FAILED
932 652525 252500 AR2=V2 ;EXPECTED RESULT IN AC+1
933 030723 312 15 0 00 044636 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
934 030724 004 15 0 00 030062 ER4 AC+1,30062 ;LOW PRODUCT FAILED
935 000040 AEE=XX ;INITIAL C(E)
936 030725 312 12 0 00 044634 CAME E,[XX] ;WAS C(E) CLOBBERED?
937 030726 005 12 0 00 030063 ER5 E,30063 ;C(E) WAS CLOBBERED
938 030727 321 16 0 00 030715 JUMPL AC+2,F30060 ;LOOP ON ERROR SWITCH^
939
940 003007 ADR=ADR+1
941 000035 WW=WW-1
942 000100 XX=XX+XX
943 IFE XX,<XX=1>
944
945 ;MULTIPLY A FLOATING 1 BY 1010...101010
946 525252 525252 V1=N1
947 525252 525200 V2=N1*XX
948 IFL XX,<V3=N2+1>
949 777777 777725 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
950 MOP1 (\ADR,V1,0,XX,V3,V2)^
951 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
952 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
953 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
954 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
955
956 525252 525252 F30070: AA1=V1 ;INITIAL C(AC)
957 030730 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
958 000000 AA2=0 ;INITIAL C(AC+1)
959 030731 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
960 000100 AEE=XX ;INITIAL C(E)
961 030732 200 12 0 00 044637 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
962 030733 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
963 777777 777725 AR1=V3 ;EXPECTED RESULT IN AC
964 030734 312 14 0 00 044640 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
965 030735 003 14 0 00 030071 ER3 AC,30071 ;HIGH PRODUCT FAILED
966 525252 525200 AR2=V2 ;EXPECTED RESULT IN AC+1
967 030736 312 15 0 00 044641 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
968 030737 004 15 0 00 030072 ER4 AC+1,30072 ;LOW PRODUCT FAILED
969 000100 AEE=XX ;INITIAL C(E)
970 030740 312 12 0 00 044637 CAME E,[XX] ;WAS C(E) CLOBBERED?
971 030741 005 12 0 00 030073 ER5 E,30073 ;C(E) WAS CLOBBERED
972 030742 321 16 0 00 030730 JUMPL AC+2,F30070 ;LOOP ON ERROR SWITCH^
973
974 003010 ADR=ADR+1
975 000034 WW=WW-1
976 000200 XX=XX+XX
977 IFE XX,<XX=1>
978
979 ;MULTIPLY A FLOATING 1 BY 1010...101010
980 525252 525252 V1=N1
981 652525 252400 V2=N1*XX
982 IFL XX,<V3=N2+1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0034
983 777777 777652 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
984 MOP1 (\ADR,V1,0,XX,V3,V2)^
985 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
986 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
987 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
988 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
989
990 525252 525252 F30100: AA1=V1 ;INITIAL C(AC)
991 030743 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
992 000000 AA2=0 ;INITIAL C(AC+1)
993 030744 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
994 000200 AEE=XX ;INITIAL C(E)
995 030745 200 12 0 00 044642 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
996 030746 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
997 777777 777652 AR1=V3 ;EXPECTED RESULT IN AC
998 030747 312 14 0 00 044643 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
999 030750 003 14 0 00 030101 ER3 AC,30101 ;HIGH PRODUCT FAILED
1000 652525 252400 AR2=V2 ;EXPECTED RESULT IN AC+1
1001 030751 312 15 0 00 044644 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1002 030752 004 15 0 00 030102 ER4 AC+1,30102 ;LOW PRODUCT FAILED
1003 000200 AEE=XX ;INITIAL C(E)
1004 030753 312 12 0 00 044642 CAME E,[XX] ;WAS C(E) CLOBBERED?
1005 030754 005 12 0 00 030103 ER5 E,30103 ;C(E) WAS CLOBBERED
1006 030755 321 16 0 00 030743 JUMPL AC+2,F30100 ;LOOP ON ERROR SWITCH^
1007
1008 003011 ADR=ADR+1
1009 000033 WW=WW-1
1010 000400 XX=XX+XX
1011 IFE XX,<XX=1>
1012
1013 ;MULTIPLY A FLOATING 1 BY 1010...101010
1014 525252 525252 V1=N1
1015 525252 525000 V2=N1*XX
1016 IFL XX,<V3=N2+1>
1017 777777 777525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1018 MOP1 (\ADR,V1,0,XX,V3,V2)^
1019 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1020 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1021 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1022 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1023
1024 525252 525252 F30110: AA1=V1 ;INITIAL C(AC)
1025 030756 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1026 000000 AA2=0 ;INITIAL C(AC+1)
1027 030757 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1028 000400 AEE=XX ;INITIAL C(E)
1029 030760 200 12 0 00 044645 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1030 030761 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1031 777777 777525 AR1=V3 ;EXPECTED RESULT IN AC
1032 030762 312 14 0 00 044646 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1033 030763 003 14 0 00 030111 ER3 AC,30111 ;HIGH PRODUCT FAILED
1034 525252 525000 AR2=V2 ;EXPECTED RESULT IN AC+1
1035 030764 312 15 0 00 044647 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1036 030765 004 15 0 00 030112 ER4 AC+1,30112 ;LOW PRODUCT FAILED
1037 000400 AEE=XX ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0035
1038 030766 312 12 0 00 044645 CAME E,[XX] ;WAS C(E) CLOBBERED?
1039 030767 005 12 0 00 030113 ER5 E,30113 ;C(E) WAS CLOBBERED
1040 030770 321 16 0 00 030756 JUMPL AC+2,F30110 ;LOOP ON ERROR SWITCH^
1041
1042 003012 ADR=ADR+1
1043 000032 WW=WW-1
1044 001000 XX=XX+XX
1045 IFE XX,<XX=1>
1046
1047 ;MULTIPLY A FLOATING 1 BY 1010...101010
1048 525252 525252 V1=N1
1049 652525 252000 V2=N1*XX
1050 IFL XX,<V3=N2+1>
1051 777777 777252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1052 MOP1 (\ADR,V1,0,XX,V3,V2)^
1053 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1054 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1055 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1056 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1057
1058 525252 525252 F30120: AA1=V1 ;INITIAL C(AC)
1059 030771 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1060 000000 AA2=0 ;INITIAL C(AC+1)
1061 030772 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1062 001000 AEE=XX ;INITIAL C(E)
1063 030773 200 12 0 00 044650 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1064 030774 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1065 777777 777252 AR1=V3 ;EXPECTED RESULT IN AC
1066 030775 312 14 0 00 044651 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1067 030776 003 14 0 00 030121 ER3 AC,30121 ;HIGH PRODUCT FAILED
1068 652525 252000 AR2=V2 ;EXPECTED RESULT IN AC+1
1069 030777 312 15 0 00 044652 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1070 031000 004 15 0 00 030122 ER4 AC+1,30122 ;LOW PRODUCT FAILED
1071 001000 AEE=XX ;INITIAL C(E)
1072 031001 312 12 0 00 044650 CAME E,[XX] ;WAS C(E) CLOBBERED?
1073 031002 005 12 0 00 030123 ER5 E,30123 ;C(E) WAS CLOBBERED
1074 031003 321 16 0 00 030771 JUMPL AC+2,F30120 ;LOOP ON ERROR SWITCH^
1075
1076 003013 ADR=ADR+1
1077 000031 WW=WW-1
1078 002000 XX=XX+XX
1079 IFE XX,<XX=1>
1080
1081 ;MULTIPLY A FLOATING 1 BY 1010...101010
1082 525252 525252 V1=N1
1083 525252 524000 V2=N1*XX
1084 IFL XX,<V3=N2+1>
1085 777777 776525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1086 MOP1 (\ADR,V1,0,XX,V3,V2)^
1087 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1088 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1089 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1090 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1091
1092 525252 525252 F30130: AA1=V1 ;INITIAL C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0036
1093 031004 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1094 000000 AA2=0 ;INITIAL C(AC+1)
1095 031005 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1096 002000 AEE=XX ;INITIAL C(E)
1097 031006 200 12 0 00 044653 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1098 031007 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1099 777777 776525 AR1=V3 ;EXPECTED RESULT IN AC
1100 031010 312 14 0 00 044654 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1101 031011 003 14 0 00 030131 ER3 AC,30131 ;HIGH PRODUCT FAILED
1102 525252 524000 AR2=V2 ;EXPECTED RESULT IN AC+1
1103 031012 312 15 0 00 044655 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1104 031013 004 15 0 00 030132 ER4 AC+1,30132 ;LOW PRODUCT FAILED
1105 002000 AEE=XX ;INITIAL C(E)
1106 031014 312 12 0 00 044653 CAME E,[XX] ;WAS C(E) CLOBBERED?
1107 031015 005 12 0 00 030133 ER5 E,30133 ;C(E) WAS CLOBBERED
1108 031016 321 16 0 00 031004 JUMPL AC+2,F30130 ;LOOP ON ERROR SWITCH^
1109
1110 003014 ADR=ADR+1
1111 000030 WW=WW-1
1112 004000 XX=XX+XX
1113 IFE XX,<XX=1>
1114
1115 ;MULTIPLY A FLOATING 1 BY 1010...101010
1116 525252 525252 V1=N1
1117 652525 250000 V2=N1*XX
1118 IFL XX,<V3=N2+1>
1119 777777 775252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1120 MOP1 (\ADR,V1,0,XX,V3,V2)^
1121 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1122 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1123 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1124 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1125
1126 525252 525252 F30140: AA1=V1 ;INITIAL C(AC)
1127 031017 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1128 000000 AA2=0 ;INITIAL C(AC+1)
1129 031020 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1130 004000 AEE=XX ;INITIAL C(E)
1131 031021 200 12 0 00 044656 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1132 031022 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1133 777777 775252 AR1=V3 ;EXPECTED RESULT IN AC
1134 031023 312 14 0 00 044657 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1135 031024 003 14 0 00 030141 ER3 AC,30141 ;HIGH PRODUCT FAILED
1136 652525 250000 AR2=V2 ;EXPECTED RESULT IN AC+1
1137 031025 312 15 0 00 044660 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1138 031026 004 15 0 00 030142 ER4 AC+1,30142 ;LOW PRODUCT FAILED
1139 004000 AEE=XX ;INITIAL C(E)
1140 031027 312 12 0 00 044656 CAME E,[XX] ;WAS C(E) CLOBBERED?
1141 031030 005 12 0 00 030143 ER5 E,30143 ;C(E) WAS CLOBBERED
1142 031031 321 16 0 00 031017 JUMPL AC+2,F30140 ;LOOP ON ERROR SWITCH^
1143
1144 003015 ADR=ADR+1
1145 000027 WW=WW-1
1146 010000 XX=XX+XX
1147 IFE XX,<XX=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0037
1148
1149 ;MULTIPLY A FLOATING 1 BY 1010...101010
1150 525252 525252 V1=N1
1151 525252 520000 V2=N1*XX
1152 IFL XX,<V3=N2+1>
1153 777777 772525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1154 MOP1 (\ADR,V1,0,XX,V3,V2)^
1155 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1156 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1157 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1158 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1159
1160 525252 525252 F30150: AA1=V1 ;INITIAL C(AC)
1161 031032 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1162 000000 AA2=0 ;INITIAL C(AC+1)
1163 031033 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1164 010000 AEE=XX ;INITIAL C(E)
1165 031034 200 12 0 00 044661 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1166 031035 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1167 777777 772525 AR1=V3 ;EXPECTED RESULT IN AC
1168 031036 312 14 0 00 044662 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1169 031037 003 14 0 00 030151 ER3 AC,30151 ;HIGH PRODUCT FAILED
1170 525252 520000 AR2=V2 ;EXPECTED RESULT IN AC+1
1171 031040 312 15 0 00 044663 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1172 031041 004 15 0 00 030152 ER4 AC+1,30152 ;LOW PRODUCT FAILED
1173 010000 AEE=XX ;INITIAL C(E)
1174 031042 312 12 0 00 044661 CAME E,[XX] ;WAS C(E) CLOBBERED?
1175 031043 005 12 0 00 030153 ER5 E,30153 ;C(E) WAS CLOBBERED
1176 031044 321 16 0 00 031032 JUMPL AC+2,F30150 ;LOOP ON ERROR SWITCH^
1177
1178 003016 ADR=ADR+1
1179 000026 WW=WW-1
1180 020000 XX=XX+XX
1181 IFE XX,<XX=1>
1182
1183 ;MULTIPLY A FLOATING 1 BY 1010...101010
1184 525252 525252 V1=N1
1185 652525 240000 V2=N1*XX
1186 IFL XX,<V3=N2+1>
1187 777777 765252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1188 MOP1 (\ADR,V1,0,XX,V3,V2)^
1189 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1190 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1191 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1192 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1193
1194 525252 525252 F30160: AA1=V1 ;INITIAL C(AC)
1195 031045 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1196 000000 AA2=0 ;INITIAL C(AC+1)
1197 031046 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1198 020000 AEE=XX ;INITIAL C(E)
1199 031047 200 12 0 00 044664 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1200 031050 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1201 777777 765252 AR1=V3 ;EXPECTED RESULT IN AC
1202 031051 312 14 0 00 044665 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0038
1203 031052 003 14 0 00 030161 ER3 AC,30161 ;HIGH PRODUCT FAILED
1204 652525 240000 AR2=V2 ;EXPECTED RESULT IN AC+1
1205 031053 312 15 0 00 044666 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1206 031054 004 15 0 00 030162 ER4 AC+1,30162 ;LOW PRODUCT FAILED
1207 020000 AEE=XX ;INITIAL C(E)
1208 031055 312 12 0 00 044664 CAME E,[XX] ;WAS C(E) CLOBBERED?
1209 031056 005 12 0 00 030163 ER5 E,30163 ;C(E) WAS CLOBBERED
1210 031057 321 16 0 00 031045 JUMPL AC+2,F30160 ;LOOP ON ERROR SWITCH^
1211
1212 003017 ADR=ADR+1
1213 000025 WW=WW-1
1214 040000 XX=XX+XX
1215 IFE XX,<XX=1>
1216
1217 ;MULTIPLY A FLOATING 1 BY 1010...101010
1218 525252 525252 V1=N1
1219 525252 500000 V2=N1*XX
1220 IFL XX,<V3=N2+1>
1221 777777 752525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1222 MOP1 (\ADR,V1,0,XX,V3,V2)^
1223 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1224 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1225 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1226 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1227
1228 525252 525252 F30170: AA1=V1 ;INITIAL C(AC)
1229 031060 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1230 000000 AA2=0 ;INITIAL C(AC+1)
1231 031061 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1232 040000 AEE=XX ;INITIAL C(E)
1233 031062 200 12 0 00 044667 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1234 031063 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1235 777777 752525 AR1=V3 ;EXPECTED RESULT IN AC
1236 031064 312 14 0 00 044670 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1237 031065 003 14 0 00 030171 ER3 AC,30171 ;HIGH PRODUCT FAILED
1238 525252 500000 AR2=V2 ;EXPECTED RESULT IN AC+1
1239 031066 312 15 0 00 044671 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1240 031067 004 15 0 00 030172 ER4 AC+1,30172 ;LOW PRODUCT FAILED
1241 040000 AEE=XX ;INITIAL C(E)
1242 031070 312 12 0 00 044667 CAME E,[XX] ;WAS C(E) CLOBBERED?
1243 031071 005 12 0 00 030173 ER5 E,30173 ;C(E) WAS CLOBBERED
1244 031072 321 16 0 00 031060 JUMPL AC+2,F30170 ;LOOP ON ERROR SWITCH^
1245
1246 003020 ADR=ADR+1
1247 000024 WW=WW-1
1248 100000 XX=XX+XX
1249 IFE XX,<XX=1>
1250
1251 ;MULTIPLY A FLOATING 1 BY 1010...101010
1252 525252 525252 V1=N1
1253 652525 200000 V2=N1*XX
1254 IFL XX,<V3=N2+1>
1255 777777 725252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1256 MOP1 (\ADR,V1,0,XX,V3,V2)^
1257 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0039
1258 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1259 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1260 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1261
1262 525252 525252 F30200: AA1=V1 ;INITIAL C(AC)
1263 031073 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1264 000000 AA2=0 ;INITIAL C(AC+1)
1265 031074 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1266 100000 AEE=XX ;INITIAL C(E)
1267 031075 200 12 0 00 044672 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1268 031076 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1269 777777 725252 AR1=V3 ;EXPECTED RESULT IN AC
1270 031077 312 14 0 00 044673 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1271 031100 003 14 0 00 030201 ER3 AC,30201 ;HIGH PRODUCT FAILED
1272 652525 200000 AR2=V2 ;EXPECTED RESULT IN AC+1
1273 031101 312 15 0 00 044674 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1274 031102 004 15 0 00 030202 ER4 AC+1,30202 ;LOW PRODUCT FAILED
1275 100000 AEE=XX ;INITIAL C(E)
1276 031103 312 12 0 00 044672 CAME E,[XX] ;WAS C(E) CLOBBERED?
1277 031104 005 12 0 00 030203 ER5 E,30203 ;C(E) WAS CLOBBERED
1278 031105 321 16 0 00 031073 JUMPL AC+2,F30200 ;LOOP ON ERROR SWITCH^
1279
1280 003021 ADR=ADR+1
1281 000023 WW=WW-1
1282 200000 XX=XX+XX
1283 IFE XX,<XX=1>
1284
1285 ;MULTIPLY A FLOATING 1 BY 1010...101010
1286 525252 525252 V1=N1
1287 525252 400000 V2=N1*XX
1288 IFL XX,<V3=N2+1>
1289 777777 652525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1290 MOP1 (\ADR,V1,0,XX,V3,V2)^
1291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1292 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1293 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1295
1296 525252 525252 F30210: AA1=V1 ;INITIAL C(AC)
1297 031106 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1298 000000 AA2=0 ;INITIAL C(AC+1)
1299 031107 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1300 200000 AEE=XX ;INITIAL C(E)
1301 031110 200 12 0 00 044675 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1302 031111 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1303 777777 652525 AR1=V3 ;EXPECTED RESULT IN AC
1304 031112 312 14 0 00 044676 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1305 031113 003 14 0 00 030211 ER3 AC,30211 ;HIGH PRODUCT FAILED
1306 525252 400000 AR2=V2 ;EXPECTED RESULT IN AC+1
1307 031114 312 15 0 00 044677 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1308 031115 004 15 0 00 030212 ER4 AC+1,30212 ;LOW PRODUCT FAILED
1309 200000 AEE=XX ;INITIAL C(E)
1310 031116 312 12 0 00 044675 CAME E,[XX] ;WAS C(E) CLOBBERED?
1311 031117 005 12 0 00 030213 ER5 E,30213 ;C(E) WAS CLOBBERED
1312 031120 321 16 0 00 031106 JUMPL AC+2,F30210 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0040
1313
1314 003022 ADR=ADR+1
1315 000022 WW=WW-1
1316 400000 XX=XX+XX
1317 IFE XX,<XX=1>
1318
1319 ;MULTIPLY A FLOATING 1 BY 1010...101010
1320 525252 525252 V1=N1
1321 652525 000000 V2=N1*XX
1322 IFL XX,<V3=N2+1>
1323 777777 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1324 MOP1 (\ADR,V1,0,XX,V3,V2)^
1325 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1326 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1327 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1328 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1329
1330 525252 525252 F30220: AA1=V1 ;INITIAL C(AC)
1331 031121 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1332 000000 AA2=0 ;INITIAL C(AC+1)
1333 031122 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1334 400000 AEE=XX ;INITIAL C(E)
1335 031123 200 12 0 00 044700 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1336 031124 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1337 777777 525252 AR1=V3 ;EXPECTED RESULT IN AC
1338 031125 312 14 0 00 044701 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1339 031126 003 14 0 00 030221 ER3 AC,30221 ;HIGH PRODUCT FAILED
1340 652525 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1341 031127 312 15 0 00 044702 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1342 031130 004 15 0 00 030222 ER4 AC+1,30222 ;LOW PRODUCT FAILED
1343 400000 AEE=XX ;INITIAL C(E)
1344 031131 312 12 0 00 044700 CAME E,[XX] ;WAS C(E) CLOBBERED?
1345 031132 005 12 0 00 030223 ER5 E,30223 ;C(E) WAS CLOBBERED
1346 031133 321 16 0 00 031121 JUMPL AC+2,F30220 ;LOOP ON ERROR SWITCH^
1347
1348 003023 ADR=ADR+1
1349 000021 WW=WW-1
1350 000001 000000 XX=XX+XX
1351 IFE XX,<XX=1>
1352
1353 ;MULTIPLY A FLOATING 1 BY 1010...101010
1354 525252 525252 V1=N1
1355 525252 000000 V2=N1*XX
1356 IFL XX,<V3=N2+1>
1357 777777 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1358 MOP1 (\ADR,V1,0,XX,V3,V2)^
1359 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1360 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1361 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1362 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1363
1364 525252 525252 F30230: AA1=V1 ;INITIAL C(AC)
1365 031134 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1366 000000 AA2=0 ;INITIAL C(AC+1)
1367 031135 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0041
1368 000001 000000 AEE=XX ;INITIAL C(E)
1369 031136 200 12 0 00 044703 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1370 031137 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1371 777777 252525 AR1=V3 ;EXPECTED RESULT IN AC
1372 031140 312 14 0 00 044704 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1373 031141 003 14 0 00 030231 ER3 AC,30231 ;HIGH PRODUCT FAILED
1374 525252 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1375 031142 312 15 0 00 044705 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1376 031143 004 15 0 00 030232 ER4 AC+1,30232 ;LOW PRODUCT FAILED
1377 000001 000000 AEE=XX ;INITIAL C(E)
1378 031144 312 12 0 00 044703 CAME E,[XX] ;WAS C(E) CLOBBERED?
1379 031145 005 12 0 00 030233 ER5 E,30233 ;C(E) WAS CLOBBERED
1380 031146 321 16 0 00 031134 JUMPL AC+2,F30230 ;LOOP ON ERROR SWITCH^
1381
1382 003024 ADR=ADR+1
1383 000020 WW=WW-1
1384 000002 000000 XX=XX+XX
1385 IFE XX,<XX=1>
1386
1387 ;MULTIPLY A FLOATING 1 BY 1010...101010
1388 525252 525252 V1=N1
1389 652524 000000 V2=N1*XX
1390 IFL XX,<V3=N2+1>
1391 777776 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1392 MOP1 (\ADR,V1,0,XX,V3,V2)^
1393 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1394 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1395 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1396 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1397
1398 525252 525252 F30240: AA1=V1 ;INITIAL C(AC)
1399 031147 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1400 000000 AA2=0 ;INITIAL C(AC+1)
1401 031150 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1402 000002 000000 AEE=XX ;INITIAL C(E)
1403 031151 200 12 0 00 044706 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1404 031152 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1405 777776 525252 AR1=V3 ;EXPECTED RESULT IN AC
1406 031153 312 14 0 00 044707 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1407 031154 003 14 0 00 030241 ER3 AC,30241 ;HIGH PRODUCT FAILED
1408 652524 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1409 031155 312 15 0 00 044710 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1410 031156 004 15 0 00 030242 ER4 AC+1,30242 ;LOW PRODUCT FAILED
1411 000002 000000 AEE=XX ;INITIAL C(E)
1412 031157 312 12 0 00 044706 CAME E,[XX] ;WAS C(E) CLOBBERED?
1413 031160 005 12 0 00 030243 ER5 E,30243 ;C(E) WAS CLOBBERED
1414 031161 321 16 0 00 031147 JUMPL AC+2,F30240 ;LOOP ON ERROR SWITCH^
1415
1416 003025 ADR=ADR+1
1417 000017 WW=WW-1
1418 000004 000000 XX=XX+XX
1419 IFE XX,<XX=1>
1420
1421 ;MULTIPLY A FLOATING 1 BY 1010...101010
1422 525252 525252 V1=N1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0042
1423 525250 000000 V2=N1*XX
1424 IFL XX,<V3=N2+1>
1425 777775 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1426 MOP1 (\ADR,V1,0,XX,V3,V2)^
1427 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1428 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1429 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1430 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1431
1432 525252 525252 F30250: AA1=V1 ;INITIAL C(AC)
1433 031162 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1434 000000 AA2=0 ;INITIAL C(AC+1)
1435 031163 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1436 000004 000000 AEE=XX ;INITIAL C(E)
1437 031164 200 12 0 00 044711 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1438 031165 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1439 777775 252525 AR1=V3 ;EXPECTED RESULT IN AC
1440 031166 312 14 0 00 044712 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1441 031167 003 14 0 00 030251 ER3 AC,30251 ;HIGH PRODUCT FAILED
1442 525250 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1443 031170 312 15 0 00 044713 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1444 031171 004 15 0 00 030252 ER4 AC+1,30252 ;LOW PRODUCT FAILED
1445 000004 000000 AEE=XX ;INITIAL C(E)
1446 031172 312 12 0 00 044711 CAME E,[XX] ;WAS C(E) CLOBBERED?
1447 031173 005 12 0 00 030253 ER5 E,30253 ;C(E) WAS CLOBBERED
1448 031174 321 16 0 00 031162 JUMPL AC+2,F30250 ;LOOP ON ERROR SWITCH^
1449
1450 003026 ADR=ADR+1
1451 000016 WW=WW-1
1452 000010 000000 XX=XX+XX
1453 IFE XX,<XX=1>
1454
1455 ;MULTIPLY A FLOATING 1 BY 1010...101010
1456 525252 525252 V1=N1
1457 652520 000000 V2=N1*XX
1458 IFL XX,<V3=N2+1>
1459 777772 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1460 MOP1 (\ADR,V1,0,XX,V3,V2)^
1461 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1462 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1463 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1464 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1465
1466 525252 525252 F30260: AA1=V1 ;INITIAL C(AC)
1467 031175 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1468 000000 AA2=0 ;INITIAL C(AC+1)
1469 031176 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1470 000010 000000 AEE=XX ;INITIAL C(E)
1471 031177 200 12 0 00 044714 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1472 031200 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1473 777772 525252 AR1=V3 ;EXPECTED RESULT IN AC
1474 031201 312 14 0 00 044715 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1475 031202 003 14 0 00 030261 ER3 AC,30261 ;HIGH PRODUCT FAILED
1476 652520 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1477 031203 312 15 0 00 044716 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0043
1478 031204 004 15 0 00 030262 ER4 AC+1,30262 ;LOW PRODUCT FAILED
1479 000010 000000 AEE=XX ;INITIAL C(E)
1480 031205 312 12 0 00 044714 CAME E,[XX] ;WAS C(E) CLOBBERED?
1481 031206 005 12 0 00 030263 ER5 E,30263 ;C(E) WAS CLOBBERED
1482 031207 321 16 0 00 031175 JUMPL AC+2,F30260 ;LOOP ON ERROR SWITCH^
1483
1484 003027 ADR=ADR+1
1485 000015 WW=WW-1
1486 000020 000000 XX=XX+XX
1487 IFE XX,<XX=1>
1488
1489 ;MULTIPLY A FLOATING 1 BY 1010...101010
1490 525252 525252 V1=N1
1491 525240 000000 V2=N1*XX
1492 IFL XX,<V3=N2+1>
1493 777765 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1494 MOP1 (\ADR,V1,0,XX,V3,V2)^
1495 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1496 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1497 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1498 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1499
1500 525252 525252 F30270: AA1=V1 ;INITIAL C(AC)
1501 031210 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1502 000000 AA2=0 ;INITIAL C(AC+1)
1503 031211 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1504 000020 000000 AEE=XX ;INITIAL C(E)
1505 031212 200 12 0 00 044717 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1506 031213 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1507 777765 252525 AR1=V3 ;EXPECTED RESULT IN AC
1508 031214 312 14 0 00 044720 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1509 031215 003 14 0 00 030271 ER3 AC,30271 ;HIGH PRODUCT FAILED
1510 525240 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1511 031216 312 15 0 00 044721 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1512 031217 004 15 0 00 030272 ER4 AC+1,30272 ;LOW PRODUCT FAILED
1513 000020 000000 AEE=XX ;INITIAL C(E)
1514 031220 312 12 0 00 044717 CAME E,[XX] ;WAS C(E) CLOBBERED?
1515 031221 005 12 0 00 030273 ER5 E,30273 ;C(E) WAS CLOBBERED
1516 031222 321 16 0 00 031210 JUMPL AC+2,F30270 ;LOOP ON ERROR SWITCH^
1517
1518 003030 ADR=ADR+1
1519 000014 WW=WW-1
1520 000040 000000 XX=XX+XX
1521 IFE XX,<XX=1>
1522
1523 ;MULTIPLY A FLOATING 1 BY 1010...101010
1524 525252 525252 V1=N1
1525 652500 000000 V2=N1*XX
1526 IFL XX,<V3=N2+1>
1527 777752 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1528 MOP1 (\ADR,V1,0,XX,V3,V2)^
1529 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1530 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1531 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1532 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0044
1533
1534 525252 525252 F30300: AA1=V1 ;INITIAL C(AC)
1535 031223 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1536 000000 AA2=0 ;INITIAL C(AC+1)
1537 031224 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1538 000040 000000 AEE=XX ;INITIAL C(E)
1539 031225 200 12 0 00 044722 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1540 031226 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1541 777752 525252 AR1=V3 ;EXPECTED RESULT IN AC
1542 031227 312 14 0 00 044723 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1543 031230 003 14 0 00 030301 ER3 AC,30301 ;HIGH PRODUCT FAILED
1544 652500 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1545 031231 312 15 0 00 044724 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1546 031232 004 15 0 00 030302 ER4 AC+1,30302 ;LOW PRODUCT FAILED
1547 000040 000000 AEE=XX ;INITIAL C(E)
1548 031233 312 12 0 00 044722 CAME E,[XX] ;WAS C(E) CLOBBERED?
1549 031234 005 12 0 00 030303 ER5 E,30303 ;C(E) WAS CLOBBERED
1550 031235 321 16 0 00 031223 JUMPL AC+2,F30300 ;LOOP ON ERROR SWITCH^
1551
1552 003031 ADR=ADR+1
1553 000013 WW=WW-1
1554 000100 000000 XX=XX+XX
1555 IFE XX,<XX=1>
1556
1557 ;MULTIPLY A FLOATING 1 BY 1010...101010
1558 525252 525252 V1=N1
1559 525200 000000 V2=N1*XX
1560 IFL XX,<V3=N2+1>
1561 777725 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1562 MOP1 (\ADR,V1,0,XX,V3,V2)^
1563 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1564 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1565 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1566 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1567
1568 525252 525252 F30310: AA1=V1 ;INITIAL C(AC)
1569 031236 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1570 000000 AA2=0 ;INITIAL C(AC+1)
1571 031237 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1572 000100 000000 AEE=XX ;INITIAL C(E)
1573 031240 200 12 0 00 044725 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1574 031241 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1575 777725 252525 AR1=V3 ;EXPECTED RESULT IN AC
1576 031242 312 14 0 00 044726 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1577 031243 003 14 0 00 030311 ER3 AC,30311 ;HIGH PRODUCT FAILED
1578 525200 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1579 031244 312 15 0 00 044727 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1580 031245 004 15 0 00 030312 ER4 AC+1,30312 ;LOW PRODUCT FAILED
1581 000100 000000 AEE=XX ;INITIAL C(E)
1582 031246 312 12 0 00 044725 CAME E,[XX] ;WAS C(E) CLOBBERED?
1583 031247 005 12 0 00 030313 ER5 E,30313 ;C(E) WAS CLOBBERED
1584 031250 321 16 0 00 031236 JUMPL AC+2,F30310 ;LOOP ON ERROR SWITCH^
1585
1586 003032 ADR=ADR+1
1587 000012 WW=WW-1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0045
1588 000200 000000 XX=XX+XX
1589 IFE XX,<XX=1>
1590
1591 ;MULTIPLY A FLOATING 1 BY 1010...101010
1592 525252 525252 V1=N1
1593 652400 000000 V2=N1*XX
1594 IFL XX,<V3=N2+1>
1595 777652 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1596 MOP1 (\ADR,V1,0,XX,V3,V2)^
1597 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1598 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1599 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1600 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1601
1602 525252 525252 F30320: AA1=V1 ;INITIAL C(AC)
1603 031251 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1604 000000 AA2=0 ;INITIAL C(AC+1)
1605 031252 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1606 000200 000000 AEE=XX ;INITIAL C(E)
1607 031253 200 12 0 00 044730 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1608 031254 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1609 777652 525252 AR1=V3 ;EXPECTED RESULT IN AC
1610 031255 312 14 0 00 044731 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1611 031256 003 14 0 00 030321 ER3 AC,30321 ;HIGH PRODUCT FAILED
1612 652400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1613 031257 312 15 0 00 044732 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1614 031260 004 15 0 00 030322 ER4 AC+1,30322 ;LOW PRODUCT FAILED
1615 000200 000000 AEE=XX ;INITIAL C(E)
1616 031261 312 12 0 00 044730 CAME E,[XX] ;WAS C(E) CLOBBERED?
1617 031262 005 12 0 00 030323 ER5 E,30323 ;C(E) WAS CLOBBERED
1618 031263 321 16 0 00 031251 JUMPL AC+2,F30320 ;LOOP ON ERROR SWITCH^
1619
1620 003033 ADR=ADR+1
1621 000011 WW=WW-1
1622 000400 000000 XX=XX+XX
1623 IFE XX,<XX=1>
1624
1625 ;MULTIPLY A FLOATING 1 BY 1010...101010
1626 525252 525252 V1=N1
1627 525000 000000 V2=N1*XX
1628 IFL XX,<V3=N2+1>
1629 777525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1630 MOP1 (\ADR,V1,0,XX,V3,V2)^
1631 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1632 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1633 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1634 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1635
1636 525252 525252 F30330: AA1=V1 ;INITIAL C(AC)
1637 031264 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1638 000000 AA2=0 ;INITIAL C(AC+1)
1639 031265 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1640 000400 000000 AEE=XX ;INITIAL C(E)
1641 031266 200 12 0 00 044733 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1642 031267 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0046
1643 777525 252525 AR1=V3 ;EXPECTED RESULT IN AC
1644 031270 312 14 0 00 044734 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1645 031271 003 14 0 00 030331 ER3 AC,30331 ;HIGH PRODUCT FAILED
1646 525000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1647 031272 312 15 0 00 044735 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1648 031273 004 15 0 00 030332 ER4 AC+1,30332 ;LOW PRODUCT FAILED
1649 000400 000000 AEE=XX ;INITIAL C(E)
1650 031274 312 12 0 00 044733 CAME E,[XX] ;WAS C(E) CLOBBERED?
1651 031275 005 12 0 00 030333 ER5 E,30333 ;C(E) WAS CLOBBERED
1652 031276 321 16 0 00 031264 JUMPL AC+2,F30330 ;LOOP ON ERROR SWITCH^
1653
1654 003034 ADR=ADR+1
1655 000010 WW=WW-1
1656 001000 000000 XX=XX+XX
1657 IFE XX,<XX=1>
1658
1659 ;MULTIPLY A FLOATING 1 BY 1010...101010
1660 525252 525252 V1=N1
1661 652000 000000 V2=N1*XX
1662 IFL XX,<V3=N2+1>
1663 777252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1664 MOP1 (\ADR,V1,0,XX,V3,V2)^
1665 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1666 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1667 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1668 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1669
1670 525252 525252 F30340: AA1=V1 ;INITIAL C(AC)
1671 031277 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1672 000000 AA2=0 ;INITIAL C(AC+1)
1673 031300 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1674 001000 000000 AEE=XX ;INITIAL C(E)
1675 031301 200 12 0 00 044736 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1676 031302 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1677 777252 525252 AR1=V3 ;EXPECTED RESULT IN AC
1678 031303 312 14 0 00 044737 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1679 031304 003 14 0 00 030341 ER3 AC,30341 ;HIGH PRODUCT FAILED
1680 652000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1681 031305 312 15 0 00 044740 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1682 031306 004 15 0 00 030342 ER4 AC+1,30342 ;LOW PRODUCT FAILED
1683 001000 000000 AEE=XX ;INITIAL C(E)
1684 031307 312 12 0 00 044736 CAME E,[XX] ;WAS C(E) CLOBBERED?
1685 031310 005 12 0 00 030343 ER5 E,30343 ;C(E) WAS CLOBBERED
1686 031311 321 16 0 00 031277 JUMPL AC+2,F30340 ;LOOP ON ERROR SWITCH^
1687
1688 003035 ADR=ADR+1
1689 000007 WW=WW-1
1690 002000 000000 XX=XX+XX
1691 IFE XX,<XX=1>
1692
1693 ;MULTIPLY A FLOATING 1 BY 1010...101010
1694 525252 525252 V1=N1
1695 524000 000000 V2=N1*XX
1696 IFL XX,<V3=N2+1>
1697 776525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0047
1698 MOP1 (\ADR,V1,0,XX,V3,V2)^
1699 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1700 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1701 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1702 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1703
1704 525252 525252 F30350: AA1=V1 ;INITIAL C(AC)
1705 031312 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1706 000000 AA2=0 ;INITIAL C(AC+1)
1707 031313 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1708 002000 000000 AEE=XX ;INITIAL C(E)
1709 031314 200 12 0 00 044741 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1710 031315 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1711 776525 252525 AR1=V3 ;EXPECTED RESULT IN AC
1712 031316 312 14 0 00 044742 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1713 031317 003 14 0 00 030351 ER3 AC,30351 ;HIGH PRODUCT FAILED
1714 524000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1715 031320 312 15 0 00 044743 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1716 031321 004 15 0 00 030352 ER4 AC+1,30352 ;LOW PRODUCT FAILED
1717 002000 000000 AEE=XX ;INITIAL C(E)
1718 031322 312 12 0 00 044741 CAME E,[XX] ;WAS C(E) CLOBBERED?
1719 031323 005 12 0 00 030353 ER5 E,30353 ;C(E) WAS CLOBBERED
1720 031324 321 16 0 00 031312 JUMPL AC+2,F30350 ;LOOP ON ERROR SWITCH^
1721
1722 003036 ADR=ADR+1
1723 000006 WW=WW-1
1724 004000 000000 XX=XX+XX
1725 IFE XX,<XX=1>
1726
1727 ;MULTIPLY A FLOATING 1 BY 1010...101010
1728 525252 525252 V1=N1
1729 650000 000000 V2=N1*XX
1730 IFL XX,<V3=N2+1>
1731 775252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1732 MOP1 (\ADR,V1,0,XX,V3,V2)^
1733 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1734 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1735 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1736 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1737
1738 525252 525252 F30360: AA1=V1 ;INITIAL C(AC)
1739 031325 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1740 000000 AA2=0 ;INITIAL C(AC+1)
1741 031326 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1742 004000 000000 AEE=XX ;INITIAL C(E)
1743 031327 200 12 0 00 044744 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1744 031330 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1745 775252 525252 AR1=V3 ;EXPECTED RESULT IN AC
1746 031331 312 14 0 00 044745 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1747 031332 003 14 0 00 030361 ER3 AC,30361 ;HIGH PRODUCT FAILED
1748 650000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1749 031333 312 15 0 00 044746 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1750 031334 004 15 0 00 030362 ER4 AC+1,30362 ;LOW PRODUCT FAILED
1751 004000 000000 AEE=XX ;INITIAL C(E)
1752 031335 312 12 0 00 044744 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0048
1753 031336 005 12 0 00 030363 ER5 E,30363 ;C(E) WAS CLOBBERED
1754 031337 321 16 0 00 031325 JUMPL AC+2,F30360 ;LOOP ON ERROR SWITCH^
1755
1756 003037 ADR=ADR+1
1757 000005 WW=WW-1
1758 010000 000000 XX=XX+XX
1759 IFE XX,<XX=1>
1760
1761 ;MULTIPLY A FLOATING 1 BY 1010...101010
1762 525252 525252 V1=N1
1763 520000 000000 V2=N1*XX
1764 IFL XX,<V3=N2+1>
1765 772525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1766 MOP1 (\ADR,V1,0,XX,V3,V2)^
1767 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1768 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1769 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1770 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1771
1772 525252 525252 F30370: AA1=V1 ;INITIAL C(AC)
1773 031340 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1774 000000 AA2=0 ;INITIAL C(AC+1)
1775 031341 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1776 010000 000000 AEE=XX ;INITIAL C(E)
1777 031342 200 12 0 00 044747 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1778 031343 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1779 772525 252525 AR1=V3 ;EXPECTED RESULT IN AC
1780 031344 312 14 0 00 044750 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1781 031345 003 14 0 00 030371 ER3 AC,30371 ;HIGH PRODUCT FAILED
1782 520000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1783 031346 312 15 0 00 044751 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1784 031347 004 15 0 00 030372 ER4 AC+1,30372 ;LOW PRODUCT FAILED
1785 010000 000000 AEE=XX ;INITIAL C(E)
1786 031350 312 12 0 00 044747 CAME E,[XX] ;WAS C(E) CLOBBERED?
1787 031351 005 12 0 00 030373 ER5 E,30373 ;C(E) WAS CLOBBERED
1788 031352 321 16 0 00 031340 JUMPL AC+2,F30370 ;LOOP ON ERROR SWITCH^
1789
1790 003040 ADR=ADR+1
1791 000004 WW=WW-1
1792 020000 000000 XX=XX+XX
1793 IFE XX,<XX=1>
1794
1795 ;MULTIPLY A FLOATING 1 BY 1010...101010
1796 525252 525252 V1=N1
1797 640000 000000 V2=N1*XX
1798 IFL XX,<V3=N2+1>
1799 765252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1800 MOP1 (\ADR,V1,0,XX,V3,V2)^
1801 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1802 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1803 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1804 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1805
1806 525252 525252 F30400: AA1=V1 ;INITIAL C(AC)
1807 031353 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0049
1808 000000 AA2=0 ;INITIAL C(AC+1)
1809 031354 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1810 020000 000000 AEE=XX ;INITIAL C(E)
1811 031355 200 12 0 00 044752 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1812 031356 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1813 765252 525252 AR1=V3 ;EXPECTED RESULT IN AC
1814 031357 312 14 0 00 044753 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1815 031360 003 14 0 00 030401 ER3 AC,30401 ;HIGH PRODUCT FAILED
1816 640000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1817 031361 312 15 0 00 044754 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1818 031362 004 15 0 00 030402 ER4 AC+1,30402 ;LOW PRODUCT FAILED
1819 020000 000000 AEE=XX ;INITIAL C(E)
1820 031363 312 12 0 00 044752 CAME E,[XX] ;WAS C(E) CLOBBERED?
1821 031364 005 12 0 00 030403 ER5 E,30403 ;C(E) WAS CLOBBERED
1822 031365 321 16 0 00 031353 JUMPL AC+2,F30400 ;LOOP ON ERROR SWITCH^
1823
1824 003041 ADR=ADR+1
1825 000003 WW=WW-1
1826 040000 000000 XX=XX+XX
1827 IFE XX,<XX=1>
1828
1829 ;MULTIPLY A FLOATING 1 BY 1010...101010
1830 525252 525252 V1=N1
1831 500000 000000 V2=N1*XX
1832 IFL XX,<V3=N2+1>
1833 752525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1834 MOP1 (\ADR,V1,0,XX,V3,V2)^
1835 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1836 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1837 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1838 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1839
1840 525252 525252 F30410: AA1=V1 ;INITIAL C(AC)
1841 031366 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1842 000000 AA2=0 ;INITIAL C(AC+1)
1843 031367 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1844 040000 000000 AEE=XX ;INITIAL C(E)
1845 031370 200 12 0 00 044755 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1846 031371 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1847 752525 252525 AR1=V3 ;EXPECTED RESULT IN AC
1848 031372 312 14 0 00 044756 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1849 031373 003 14 0 00 030411 ER3 AC,30411 ;HIGH PRODUCT FAILED
1850 500000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1851 031374 312 15 0 00 044757 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1852 031375 004 15 0 00 030412 ER4 AC+1,30412 ;LOW PRODUCT FAILED
1853 040000 000000 AEE=XX ;INITIAL C(E)
1854 031376 312 12 0 00 044755 CAME E,[XX] ;WAS C(E) CLOBBERED?
1855 031377 005 12 0 00 030413 ER5 E,30413 ;C(E) WAS CLOBBERED
1856 031400 321 16 0 00 031366 JUMPL AC+2,F30410 ;LOOP ON ERROR SWITCH^
1857
1858 003042 ADR=ADR+1
1859 000002 WW=WW-1
1860 100000 000000 XX=XX+XX
1861 IFE XX,<XX=1>
1862
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0050
1863 ;MULTIPLY A FLOATING 1 BY 1010...101010
1864 525252 525252 V1=N1
1865 600000 000000 V2=N1*XX
1866 IFL XX,<V3=N2+1>
1867 725252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1868 MOP1 (\ADR,V1,0,XX,V3,V2)^
1869 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1870 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1871 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1872 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1873
1874 525252 525252 F30420: AA1=V1 ;INITIAL C(AC)
1875 031401 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1876 000000 AA2=0 ;INITIAL C(AC+1)
1877 031402 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1878 100000 000000 AEE=XX ;INITIAL C(E)
1879 031403 200 12 0 00 044760 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1880 031404 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1881 725252 525252 AR1=V3 ;EXPECTED RESULT IN AC
1882 031405 312 14 0 00 044761 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1883 031406 003 14 0 00 030421 ER3 AC,30421 ;HIGH PRODUCT FAILED
1884 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1885 031407 312 15 0 00 044762 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1886 031410 004 15 0 00 030422 ER4 AC+1,30422 ;LOW PRODUCT FAILED
1887 100000 000000 AEE=XX ;INITIAL C(E)
1888 031411 312 12 0 00 044760 CAME E,[XX] ;WAS C(E) CLOBBERED?
1889 031412 005 12 0 00 030423 ER5 E,30423 ;C(E) WAS CLOBBERED
1890 031413 321 16 0 00 031401 JUMPL AC+2,F30420 ;LOOP ON ERROR SWITCH^
1891
1892 003043 ADR=ADR+1
1893 000001 WW=WW-1
1894 200000 000000 XX=XX+XX
1895 IFE XX,<XX=1>
1896
1897 ;MULTIPLY A FLOATING 1 BY 1010...101010
1898 525252 525252 V1=N1
1899 400000 000000 V2=N1*XX
1900 IFL XX,<V3=N2+1>
1901 652525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1902 MOP1 (\ADR,V1,0,XX,V3,V2)^
1903 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1904 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1905 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1906 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1907
1908 525252 525252 F30430: AA1=V1 ;INITIAL C(AC)
1909 031414 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1910 000000 AA2=0 ;INITIAL C(AC+1)
1911 031415 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1912 200000 000000 AEE=XX ;INITIAL C(E)
1913 031416 200 12 0 00 044763 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1914 031417 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1915 652525 252525 AR1=V3 ;EXPECTED RESULT IN AC
1916 031420 312 14 0 00 044764 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1917 031421 003 14 0 00 030431 ER3 AC,30431 ;HIGH PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2-22
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0051
1918 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1919 031422 312 15 0 00 044765 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1920 031423 004 15 0 00 030432 ER4 AC+1,30432 ;LOW PRODUCT FAILED
1921 200000 000000 AEE=XX ;INITIAL C(E)
1922 031424 312 12 0 00 044763 CAME E,[XX] ;WAS C(E) CLOBBERED?
1923 031425 005 12 0 00 030433 ER5 E,30433 ;C(E) WAS CLOBBERED
1924 031426 321 16 0 00 031414 JUMPL AC+2,F30430 ;LOOP ON ERROR SWITCH^
1925
1926 003044 ADR=ADR+1
1927 000000 WW=WW-1
1928 400000 000000 XX=XX+XX
1929 IFE XX,<XX=1>
1930
1931 ;MULTIPLY A FLOATING 1 BY 1010...101010
1932 525252 525252 V1=N1
1933 000000 V2=N1*XX
1934 252525 252526 IFL XX,<V3=N2+1>
1935 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
1936 MOP1 (\ADR,V1,0,XX,V3,V2)^
1937 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
1938 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1939 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
1940 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1941
1942 525252 525252 F30440: AA1=V1 ;INITIAL C(AC)
1943 031427 200 14 0 00 044614 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
1944 000000 AA2=0 ;INITIAL C(AC+1)
1945 031430 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
1946 400000 000000 AEE=XX ;INITIAL C(E)
1947 031431 200 12 0 00 044765 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1948 031432 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1949 252525 252526 AR1=V3 ;EXPECTED RESULT IN AC
1950 031433 312 14 0 00 044766 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
1951 031434 003 14 0 00 030441 ER3 AC,30441 ;HIGH PRODUCT FAILED
1952 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
1953 031435 312 15 0 00 044615 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
1954 031436 004 15 0 00 030442 ER4 AC+1,30442 ;LOW PRODUCT FAILED
1955 400000 000000 AEE=XX ;INITIAL C(E)
1956 031437 312 12 0 00 044765 CAME E,[XX] ;WAS C(E) CLOBBERED?
1957 031440 005 12 0 00 030443 ER5 E,30443 ;C(E) WAS CLOBBERED
1958 031441 321 16 0 00 031427 JUMPL AC+2,F30440 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0052
1959 000014 AC=14
1960 000012 E=<AC-2>&17
1961 SAVEAC (1,1)^
1962 031442 201 16 0 00 031442 MOVEI AC+2,. ;SAVE TEST PC
1963 031443 202 16 0 00 030051 MOVEM AC+2,TESTPC
1964 031444 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
1965 031445 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
1966
1967 000044 WW=^D36
1968
1969 000000 XX=0
1970
1971 REPEAT ^D35,< ;LAST CASE DIFFERENT
1972 ADR=ADR+1
1973 WW=WW-1
1974 XX=XX+XX
1975 IFE XX,<XX=1>
1976
1977 ;MULTIPLY 0101...0101 BY A FLOATING 1
1978 V1=N2
1979 V2=N2*XX
1980 IFG XX,<V3=<N2_<-WW>>>
1981 IFL XX,<V3=N1+1>
1982 MOP1 (\ADR,XX,0,V1,V3,V2)>
1983 ;LAST CASE DIFFERENT
1984 003045 ADR=ADR+1
1985 000043 WW=WW-1
1986 000000 XX=XX+XX
1987 000001 IFE XX,<XX=1>
1988
1989 ;MULTIPLY 0101...0101 BY A FLOATING 1
1990 252525 252525 V1=N2
1991 252525 252525 V2=N2*XX
1992 000000 IFG XX,<V3=<N2_<-WW>>>
1993 IFL XX,<V3=N1+1>
1994 MOP1 (\ADR,XX,0,V1,V3,V2)^
1995 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
1996 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1997 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
1998 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1999
2000 000001 F30450: AA1=XX ;INITIAL C(AC)
2001 031446 200 14 0 00 044616 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2002 000000 AA2=0 ;INITIAL C(AC+1)
2003 031447 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2004 252525 252525 AEE=V1 ;INITIAL C(E)
2005 031450 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2006 031451 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2007 000000 AR1=V3 ;EXPECTED RESULT IN AC
2008 031452 312 14 0 00 044615 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2009 031453 003 14 0 00 030451 ER3 AC,30451 ;HIGH PRODUCT FAILED
2010 252525 252525 AR2=V2 ;EXPECTED RESULT IN AC+1
2011 031454 312 15 0 00 044767 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2012 031455 004 15 0 00 030452 ER4 AC+1,30452 ;LOW PRODUCT FAILED
2013 252525 252525 AEE=V1 ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0053
2014 031456 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2015 031457 005 12 0 00 030453 ER5 E,30453 ;C(E) WAS CLOBBERED
2016 031460 321 16 0 00 031446 JUMPL AC+2,F30450 ;LOOP ON ERROR SWITCH^
2017 ;LAST CASE DIFFERENT
2018 003046 ADR=ADR+1
2019 000042 WW=WW-1
2020 000002 XX=XX+XX
2021 IFE XX,<XX=1>
2022
2023 ;MULTIPLY 0101...0101 BY A FLOATING 1
2024 252525 252525 V1=N2
2025 125252 525252 V2=N2*XX
2026 000001 IFG XX,<V3=<N2_<-WW>>>
2027 IFL XX,<V3=N1+1>
2028 MOP1 (\ADR,XX,0,V1,V3,V2)^
2029 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2030 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2031 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2032 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2033
2034 000002 F30460: AA1=XX ;INITIAL C(AC)
2035 031461 200 14 0 00 044620 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2036 000000 AA2=0 ;INITIAL C(AC+1)
2037 031462 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2038 252525 252525 AEE=V1 ;INITIAL C(E)
2039 031463 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2040 031464 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2041 000001 AR1=V3 ;EXPECTED RESULT IN AC
2042 031465 312 14 0 00 044616 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2043 031466 003 14 0 00 030461 ER3 AC,30461 ;HIGH PRODUCT FAILED
2044 125252 525252 AR2=V2 ;EXPECTED RESULT IN AC+1
2045 031467 312 15 0 00 044770 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2046 031470 004 15 0 00 030462 ER4 AC+1,30462 ;LOW PRODUCT FAILED
2047 252525 252525 AEE=V1 ;INITIAL C(E)
2048 031471 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2049 031472 005 12 0 00 030463 ER5 E,30463 ;C(E) WAS CLOBBERED
2050 031473 321 16 0 00 031461 JUMPL AC+2,F30460 ;LOOP ON ERROR SWITCH^
2051 ;LAST CASE DIFFERENT
2052 003047 ADR=ADR+1
2053 000041 WW=WW-1
2054 000004 XX=XX+XX
2055 IFE XX,<XX=1>
2056
2057 ;MULTIPLY 0101...0101 BY A FLOATING 1
2058 252525 252525 V1=N2
2059 252525 252524 V2=N2*XX
2060 000002 IFG XX,<V3=<N2_<-WW>>>
2061 IFL XX,<V3=N1+1>
2062 MOP1 (\ADR,XX,0,V1,V3,V2)^
2063 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2064 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2065 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2066 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2067
2068 000004 F30470: AA1=XX ;INITIAL C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0054
2069 031474 200 14 0 00 044623 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2070 000000 AA2=0 ;INITIAL C(AC+1)
2071 031475 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2072 252525 252525 AEE=V1 ;INITIAL C(E)
2073 031476 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2074 031477 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2075 000002 AR1=V3 ;EXPECTED RESULT IN AC
2076 031500 312 14 0 00 044620 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2077 031501 003 14 0 00 030471 ER3 AC,30471 ;HIGH PRODUCT FAILED
2078 252525 252524 AR2=V2 ;EXPECTED RESULT IN AC+1
2079 031502 312 15 0 00 044771 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2080 031503 004 15 0 00 030472 ER4 AC+1,30472 ;LOW PRODUCT FAILED
2081 252525 252525 AEE=V1 ;INITIAL C(E)
2082 031504 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2083 031505 005 12 0 00 030473 ER5 E,30473 ;C(E) WAS CLOBBERED
2084 031506 321 16 0 00 031474 JUMPL AC+2,F30470 ;LOOP ON ERROR SWITCH^
2085 ;LAST CASE DIFFERENT
2086 003050 ADR=ADR+1
2087 000040 WW=WW-1
2088 000010 XX=XX+XX
2089 IFE XX,<XX=1>
2090
2091 ;MULTIPLY 0101...0101 BY A FLOATING 1
2092 252525 252525 V1=N2
2093 125252 525250 V2=N2*XX
2094 000005 IFG XX,<V3=<N2_<-WW>>>
2095 IFL XX,<V3=N1+1>
2096 MOP1 (\ADR,XX,0,V1,V3,V2)^
2097 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2098 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2099 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2100 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2101
2102 000010 F30500: AA1=XX ;INITIAL C(AC)
2103 031507 200 14 0 00 044626 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2104 000000 AA2=0 ;INITIAL C(AC+1)
2105 031510 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2106 252525 252525 AEE=V1 ;INITIAL C(E)
2107 031511 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2108 031512 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2109 000005 AR1=V3 ;EXPECTED RESULT IN AC
2110 031513 312 14 0 00 044772 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2111 031514 003 14 0 00 030501 ER3 AC,30501 ;HIGH PRODUCT FAILED
2112 125252 525250 AR2=V2 ;EXPECTED RESULT IN AC+1
2113 031515 312 15 0 00 044773 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2114 031516 004 15 0 00 030502 ER4 AC+1,30502 ;LOW PRODUCT FAILED
2115 252525 252525 AEE=V1 ;INITIAL C(E)
2116 031517 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2117 031520 005 12 0 00 030503 ER5 E,30503 ;C(E) WAS CLOBBERED
2118 031521 321 16 0 00 031507 JUMPL AC+2,F30500 ;LOOP ON ERROR SWITCH^
2119 ;LAST CASE DIFFERENT
2120 003051 ADR=ADR+1
2121 000037 WW=WW-1
2122 000020 XX=XX+XX
2123 IFE XX,<XX=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0055
2124
2125 ;MULTIPLY 0101...0101 BY A FLOATING 1
2126 252525 252525 V1=N2
2127 252525 252520 V2=N2*XX
2128 000012 IFG XX,<V3=<N2_<-WW>>>
2129 IFL XX,<V3=N1+1>
2130 MOP1 (\ADR,XX,0,V1,V3,V2)^
2131 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2132 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2133 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2134 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2135
2136 000020 F30510: AA1=XX ;INITIAL C(AC)
2137 031522 200 14 0 00 044631 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2138 000000 AA2=0 ;INITIAL C(AC+1)
2139 031523 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2140 252525 252525 AEE=V1 ;INITIAL C(E)
2141 031524 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2142 031525 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2143 000012 AR1=V3 ;EXPECTED RESULT IN AC
2144 031526 312 14 0 00 044774 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2145 031527 003 14 0 00 030511 ER3 AC,30511 ;HIGH PRODUCT FAILED
2146 252525 252520 AR2=V2 ;EXPECTED RESULT IN AC+1
2147 031530 312 15 0 00 044775 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2148 031531 004 15 0 00 030512 ER4 AC+1,30512 ;LOW PRODUCT FAILED
2149 252525 252525 AEE=V1 ;INITIAL C(E)
2150 031532 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2151 031533 005 12 0 00 030513 ER5 E,30513 ;C(E) WAS CLOBBERED
2152 031534 321 16 0 00 031522 JUMPL AC+2,F30510 ;LOOP ON ERROR SWITCH^
2153 ;LAST CASE DIFFERENT
2154 003052 ADR=ADR+1
2155 000036 WW=WW-1
2156 000040 XX=XX+XX
2157 IFE XX,<XX=1>
2158
2159 ;MULTIPLY 0101...0101 BY A FLOATING 1
2160 252525 252525 V1=N2
2161 125252 525240 V2=N2*XX
2162 000025 IFG XX,<V3=<N2_<-WW>>>
2163 IFL XX,<V3=N1+1>
2164 MOP1 (\ADR,XX,0,V1,V3,V2)^
2165 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2166 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2167 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2168 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2169
2170 000040 F30520: AA1=XX ;INITIAL C(AC)
2171 031535 200 14 0 00 044634 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2172 000000 AA2=0 ;INITIAL C(AC+1)
2173 031536 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2174 252525 252525 AEE=V1 ;INITIAL C(E)
2175 031537 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2176 031540 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2177 000025 AR1=V3 ;EXPECTED RESULT IN AC
2178 031541 312 14 0 00 044776 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0056
2179 031542 003 14 0 00 030521 ER3 AC,30521 ;HIGH PRODUCT FAILED
2180 125252 525240 AR2=V2 ;EXPECTED RESULT IN AC+1
2181 031543 312 15 0 00 044777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2182 031544 004 15 0 00 030522 ER4 AC+1,30522 ;LOW PRODUCT FAILED
2183 252525 252525 AEE=V1 ;INITIAL C(E)
2184 031545 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2185 031546 005 12 0 00 030523 ER5 E,30523 ;C(E) WAS CLOBBERED
2186 031547 321 16 0 00 031535 JUMPL AC+2,F30520 ;LOOP ON ERROR SWITCH^
2187 ;LAST CASE DIFFERENT
2188 003053 ADR=ADR+1
2189 000035 WW=WW-1
2190 000100 XX=XX+XX
2191 IFE XX,<XX=1>
2192
2193 ;MULTIPLY 0101...0101 BY A FLOATING 1
2194 252525 252525 V1=N2
2195 252525 252500 V2=N2*XX
2196 000052 IFG XX,<V3=<N2_<-WW>>>
2197 IFL XX,<V3=N1+1>
2198 MOP1 (\ADR,XX,0,V1,V3,V2)^
2199 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2200 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2201 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2202 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2203
2204 000100 F30530: AA1=XX ;INITIAL C(AC)
2205 031550 200 14 0 00 044637 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2206 000000 AA2=0 ;INITIAL C(AC+1)
2207 031551 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2208 252525 252525 AEE=V1 ;INITIAL C(E)
2209 031552 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2210 031553 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2211 000052 AR1=V3 ;EXPECTED RESULT IN AC
2212 031554 312 14 0 00 045000 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2213 031555 003 14 0 00 030531 ER3 AC,30531 ;HIGH PRODUCT FAILED
2214 252525 252500 AR2=V2 ;EXPECTED RESULT IN AC+1
2215 031556 312 15 0 00 045001 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2216 031557 004 15 0 00 030532 ER4 AC+1,30532 ;LOW PRODUCT FAILED
2217 252525 252525 AEE=V1 ;INITIAL C(E)
2218 031560 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2219 031561 005 12 0 00 030533 ER5 E,30533 ;C(E) WAS CLOBBERED
2220 031562 321 16 0 00 031550 JUMPL AC+2,F30530 ;LOOP ON ERROR SWITCH^
2221 ;LAST CASE DIFFERENT
2222 003054 ADR=ADR+1
2223 000034 WW=WW-1
2224 000200 XX=XX+XX
2225 IFE XX,<XX=1>
2226
2227 ;MULTIPLY 0101...0101 BY A FLOATING 1
2228 252525 252525 V1=N2
2229 125252 525200 V2=N2*XX
2230 000125 IFG XX,<V3=<N2_<-WW>>>
2231 IFL XX,<V3=N1+1>
2232 MOP1 (\ADR,XX,0,V1,V3,V2)^
2233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0057
2234 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2235 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2237
2238 000200 F30540: AA1=XX ;INITIAL C(AC)
2239 031563 200 14 0 00 044642 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2240 000000 AA2=0 ;INITIAL C(AC+1)
2241 031564 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2242 252525 252525 AEE=V1 ;INITIAL C(E)
2243 031565 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2244 031566 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2245 000125 AR1=V3 ;EXPECTED RESULT IN AC
2246 031567 312 14 0 00 045002 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2247 031570 003 14 0 00 030541 ER3 AC,30541 ;HIGH PRODUCT FAILED
2248 125252 525200 AR2=V2 ;EXPECTED RESULT IN AC+1
2249 031571 312 15 0 00 045003 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2250 031572 004 15 0 00 030542 ER4 AC+1,30542 ;LOW PRODUCT FAILED
2251 252525 252525 AEE=V1 ;INITIAL C(E)
2252 031573 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2253 031574 005 12 0 00 030543 ER5 E,30543 ;C(E) WAS CLOBBERED
2254 031575 321 16 0 00 031563 JUMPL AC+2,F30540 ;LOOP ON ERROR SWITCH^
2255 ;LAST CASE DIFFERENT
2256 003055 ADR=ADR+1
2257 000033 WW=WW-1
2258 000400 XX=XX+XX
2259 IFE XX,<XX=1>
2260
2261 ;MULTIPLY 0101...0101 BY A FLOATING 1
2262 252525 252525 V1=N2
2263 252525 252400 V2=N2*XX
2264 000252 IFG XX,<V3=<N2_<-WW>>>
2265 IFL XX,<V3=N1+1>
2266 MOP1 (\ADR,XX,0,V1,V3,V2)^
2267 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2268 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2269 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2270 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2271
2272 000400 F30550: AA1=XX ;INITIAL C(AC)
2273 031576 200 14 0 00 044645 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2274 000000 AA2=0 ;INITIAL C(AC+1)
2275 031577 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2276 252525 252525 AEE=V1 ;INITIAL C(E)
2277 031600 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2278 031601 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2279 000252 AR1=V3 ;EXPECTED RESULT IN AC
2280 031602 312 14 0 00 045004 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2281 031603 003 14 0 00 030551 ER3 AC,30551 ;HIGH PRODUCT FAILED
2282 252525 252400 AR2=V2 ;EXPECTED RESULT IN AC+1
2283 031604 312 15 0 00 045005 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2284 031605 004 15 0 00 030552 ER4 AC+1,30552 ;LOW PRODUCT FAILED
2285 252525 252525 AEE=V1 ;INITIAL C(E)
2286 031606 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2287 031607 005 12 0 00 030553 ER5 E,30553 ;C(E) WAS CLOBBERED
2288 031610 321 16 0 00 031576 JUMPL AC+2,F30550 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0058
2289 ;LAST CASE DIFFERENT
2290 003056 ADR=ADR+1
2291 000032 WW=WW-1
2292 001000 XX=XX+XX
2293 IFE XX,<XX=1>
2294
2295 ;MULTIPLY 0101...0101 BY A FLOATING 1
2296 252525 252525 V1=N2
2297 125252 525000 V2=N2*XX
2298 000525 IFG XX,<V3=<N2_<-WW>>>
2299 IFL XX,<V3=N1+1>
2300 MOP1 (\ADR,XX,0,V1,V3,V2)^
2301 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2302 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2303 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2304 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2305
2306 001000 F30560: AA1=XX ;INITIAL C(AC)
2307 031611 200 14 0 00 044650 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2308 000000 AA2=0 ;INITIAL C(AC+1)
2309 031612 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2310 252525 252525 AEE=V1 ;INITIAL C(E)
2311 031613 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2312 031614 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2313 000525 AR1=V3 ;EXPECTED RESULT IN AC
2314 031615 312 14 0 00 045006 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2315 031616 003 14 0 00 030561 ER3 AC,30561 ;HIGH PRODUCT FAILED
2316 125252 525000 AR2=V2 ;EXPECTED RESULT IN AC+1
2317 031617 312 15 0 00 045007 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2318 031620 004 15 0 00 030562 ER4 AC+1,30562 ;LOW PRODUCT FAILED
2319 252525 252525 AEE=V1 ;INITIAL C(E)
2320 031621 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2321 031622 005 12 0 00 030563 ER5 E,30563 ;C(E) WAS CLOBBERED
2322 031623 321 16 0 00 031611 JUMPL AC+2,F30560 ;LOOP ON ERROR SWITCH^
2323 ;LAST CASE DIFFERENT
2324 003057 ADR=ADR+1
2325 000031 WW=WW-1
2326 002000 XX=XX+XX
2327 IFE XX,<XX=1>
2328
2329 ;MULTIPLY 0101...0101 BY A FLOATING 1
2330 252525 252525 V1=N2
2331 252525 252000 V2=N2*XX
2332 001252 IFG XX,<V3=<N2_<-WW>>>
2333 IFL XX,<V3=N1+1>
2334 MOP1 (\ADR,XX,0,V1,V3,V2)^
2335 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2336 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2337 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2338 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2339
2340 002000 F30570: AA1=XX ;INITIAL C(AC)
2341 031624 200 14 0 00 044653 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2342 000000 AA2=0 ;INITIAL C(AC+1)
2343 031625 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0059
2344 252525 252525 AEE=V1 ;INITIAL C(E)
2345 031626 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2346 031627 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2347 001252 AR1=V3 ;EXPECTED RESULT IN AC
2348 031630 312 14 0 00 045010 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2349 031631 003 14 0 00 030571 ER3 AC,30571 ;HIGH PRODUCT FAILED
2350 252525 252000 AR2=V2 ;EXPECTED RESULT IN AC+1
2351 031632 312 15 0 00 045011 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2352 031633 004 15 0 00 030572 ER4 AC+1,30572 ;LOW PRODUCT FAILED
2353 252525 252525 AEE=V1 ;INITIAL C(E)
2354 031634 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2355 031635 005 12 0 00 030573 ER5 E,30573 ;C(E) WAS CLOBBERED
2356 031636 321 16 0 00 031624 JUMPL AC+2,F30570 ;LOOP ON ERROR SWITCH^
2357 ;LAST CASE DIFFERENT
2358 003060 ADR=ADR+1
2359 000030 WW=WW-1
2360 004000 XX=XX+XX
2361 IFE XX,<XX=1>
2362
2363 ;MULTIPLY 0101...0101 BY A FLOATING 1
2364 252525 252525 V1=N2
2365 125252 524000 V2=N2*XX
2366 002525 IFG XX,<V3=<N2_<-WW>>>
2367 IFL XX,<V3=N1+1>
2368 MOP1 (\ADR,XX,0,V1,V3,V2)^
2369 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2370 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2371 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2372 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2373
2374 004000 F30600: AA1=XX ;INITIAL C(AC)
2375 031637 200 14 0 00 044656 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2376 000000 AA2=0 ;INITIAL C(AC+1)
2377 031640 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2378 252525 252525 AEE=V1 ;INITIAL C(E)
2379 031641 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2380 031642 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2381 002525 AR1=V3 ;EXPECTED RESULT IN AC
2382 031643 312 14 0 00 045012 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2383 031644 003 14 0 00 030601 ER3 AC,30601 ;HIGH PRODUCT FAILED
2384 125252 524000 AR2=V2 ;EXPECTED RESULT IN AC+1
2385 031645 312 15 0 00 045013 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2386 031646 004 15 0 00 030602 ER4 AC+1,30602 ;LOW PRODUCT FAILED
2387 252525 252525 AEE=V1 ;INITIAL C(E)
2388 031647 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2389 031650 005 12 0 00 030603 ER5 E,30603 ;C(E) WAS CLOBBERED
2390 031651 321 16 0 00 031637 JUMPL AC+2,F30600 ;LOOP ON ERROR SWITCH^
2391 ;LAST CASE DIFFERENT
2392 003061 ADR=ADR+1
2393 000027 WW=WW-1
2394 010000 XX=XX+XX
2395 IFE XX,<XX=1>
2396
2397 ;MULTIPLY 0101...0101 BY A FLOATING 1
2398 252525 252525 V1=N2
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0060
2399 252525 250000 V2=N2*XX
2400 005252 IFG XX,<V3=<N2_<-WW>>>
2401 IFL XX,<V3=N1+1>
2402 MOP1 (\ADR,XX,0,V1,V3,V2)^
2403 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2404 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2405 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2406 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2407
2408 010000 F30610: AA1=XX ;INITIAL C(AC)
2409 031652 200 14 0 00 044661 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2410 000000 AA2=0 ;INITIAL C(AC+1)
2411 031653 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2412 252525 252525 AEE=V1 ;INITIAL C(E)
2413 031654 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2414 031655 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2415 005252 AR1=V3 ;EXPECTED RESULT IN AC
2416 031656 312 14 0 00 045014 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2417 031657 003 14 0 00 030611 ER3 AC,30611 ;HIGH PRODUCT FAILED
2418 252525 250000 AR2=V2 ;EXPECTED RESULT IN AC+1
2419 031660 312 15 0 00 045015 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2420 031661 004 15 0 00 030612 ER4 AC+1,30612 ;LOW PRODUCT FAILED
2421 252525 252525 AEE=V1 ;INITIAL C(E)
2422 031662 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2423 031663 005 12 0 00 030613 ER5 E,30613 ;C(E) WAS CLOBBERED
2424 031664 321 16 0 00 031652 JUMPL AC+2,F30610 ;LOOP ON ERROR SWITCH^
2425 ;LAST CASE DIFFERENT
2426 003062 ADR=ADR+1
2427 000026 WW=WW-1
2428 020000 XX=XX+XX
2429 IFE XX,<XX=1>
2430
2431 ;MULTIPLY 0101...0101 BY A FLOATING 1
2432 252525 252525 V1=N2
2433 125252 520000 V2=N2*XX
2434 012525 IFG XX,<V3=<N2_<-WW>>>
2435 IFL XX,<V3=N1+1>
2436 MOP1 (\ADR,XX,0,V1,V3,V2)^
2437 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2438 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2439 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2440 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2441
2442 020000 F30620: AA1=XX ;INITIAL C(AC)
2443 031665 200 14 0 00 044664 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2444 000000 AA2=0 ;INITIAL C(AC+1)
2445 031666 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2446 252525 252525 AEE=V1 ;INITIAL C(E)
2447 031667 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2448 031670 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2449 012525 AR1=V3 ;EXPECTED RESULT IN AC
2450 031671 312 14 0 00 045016 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2451 031672 003 14 0 00 030621 ER3 AC,30621 ;HIGH PRODUCT FAILED
2452 125252 520000 AR2=V2 ;EXPECTED RESULT IN AC+1
2453 031673 312 15 0 00 045017 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0061
2454 031674 004 15 0 00 030622 ER4 AC+1,30622 ;LOW PRODUCT FAILED
2455 252525 252525 AEE=V1 ;INITIAL C(E)
2456 031675 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2457 031676 005 12 0 00 030623 ER5 E,30623 ;C(E) WAS CLOBBERED
2458 031677 321 16 0 00 031665 JUMPL AC+2,F30620 ;LOOP ON ERROR SWITCH^
2459 ;LAST CASE DIFFERENT
2460 003063 ADR=ADR+1
2461 000025 WW=WW-1
2462 040000 XX=XX+XX
2463 IFE XX,<XX=1>
2464
2465 ;MULTIPLY 0101...0101 BY A FLOATING 1
2466 252525 252525 V1=N2
2467 252525 240000 V2=N2*XX
2468 025252 IFG XX,<V3=<N2_<-WW>>>
2469 IFL XX,<V3=N1+1>
2470 MOP1 (\ADR,XX,0,V1,V3,V2)^
2471 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2472 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2473 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2474 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2475
2476 040000 F30630: AA1=XX ;INITIAL C(AC)
2477 031700 200 14 0 00 044667 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2478 000000 AA2=0 ;INITIAL C(AC+1)
2479 031701 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2480 252525 252525 AEE=V1 ;INITIAL C(E)
2481 031702 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2482 031703 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2483 025252 AR1=V3 ;EXPECTED RESULT IN AC
2484 031704 312 14 0 00 045020 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2485 031705 003 14 0 00 030631 ER3 AC,30631 ;HIGH PRODUCT FAILED
2486 252525 240000 AR2=V2 ;EXPECTED RESULT IN AC+1
2487 031706 312 15 0 00 045021 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2488 031707 004 15 0 00 030632 ER4 AC+1,30632 ;LOW PRODUCT FAILED
2489 252525 252525 AEE=V1 ;INITIAL C(E)
2490 031710 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2491 031711 005 12 0 00 030633 ER5 E,30633 ;C(E) WAS CLOBBERED
2492 031712 321 16 0 00 031700 JUMPL AC+2,F30630 ;LOOP ON ERROR SWITCH^
2493 ;LAST CASE DIFFERENT
2494 003064 ADR=ADR+1
2495 000024 WW=WW-1
2496 100000 XX=XX+XX
2497 IFE XX,<XX=1>
2498
2499 ;MULTIPLY 0101...0101 BY A FLOATING 1
2500 252525 252525 V1=N2
2501 125252 500000 V2=N2*XX
2502 052525 IFG XX,<V3=<N2_<-WW>>>
2503 IFL XX,<V3=N1+1>
2504 MOP1 (\ADR,XX,0,V1,V3,V2)^
2505 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2506 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2507 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2508 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0062
2509
2510 100000 F30640: AA1=XX ;INITIAL C(AC)
2511 031713 200 14 0 00 044672 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2512 000000 AA2=0 ;INITIAL C(AC+1)
2513 031714 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2514 252525 252525 AEE=V1 ;INITIAL C(E)
2515 031715 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2516 031716 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2517 052525 AR1=V3 ;EXPECTED RESULT IN AC
2518 031717 312 14 0 00 045022 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2519 031720 003 14 0 00 030641 ER3 AC,30641 ;HIGH PRODUCT FAILED
2520 125252 500000 AR2=V2 ;EXPECTED RESULT IN AC+1
2521 031721 312 15 0 00 045023 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2522 031722 004 15 0 00 030642 ER4 AC+1,30642 ;LOW PRODUCT FAILED
2523 252525 252525 AEE=V1 ;INITIAL C(E)
2524 031723 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2525 031724 005 12 0 00 030643 ER5 E,30643 ;C(E) WAS CLOBBERED
2526 031725 321 16 0 00 031713 JUMPL AC+2,F30640 ;LOOP ON ERROR SWITCH^
2527 ;LAST CASE DIFFERENT
2528 003065 ADR=ADR+1
2529 000023 WW=WW-1
2530 200000 XX=XX+XX
2531 IFE XX,<XX=1>
2532
2533 ;MULTIPLY 0101...0101 BY A FLOATING 1
2534 252525 252525 V1=N2
2535 252525 200000 V2=N2*XX
2536 125252 IFG XX,<V3=<N2_<-WW>>>
2537 IFL XX,<V3=N1+1>
2538 MOP1 (\ADR,XX,0,V1,V3,V2)^
2539 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2540 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2541 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2542 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2543
2544 200000 F30650: AA1=XX ;INITIAL C(AC)
2545 031726 200 14 0 00 044675 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2546 000000 AA2=0 ;INITIAL C(AC+1)
2547 031727 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2548 252525 252525 AEE=V1 ;INITIAL C(E)
2549 031730 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2550 031731 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2551 125252 AR1=V3 ;EXPECTED RESULT IN AC
2552 031732 312 14 0 00 045024 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2553 031733 003 14 0 00 030651 ER3 AC,30651 ;HIGH PRODUCT FAILED
2554 252525 200000 AR2=V2 ;EXPECTED RESULT IN AC+1
2555 031734 312 15 0 00 045025 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2556 031735 004 15 0 00 030652 ER4 AC+1,30652 ;LOW PRODUCT FAILED
2557 252525 252525 AEE=V1 ;INITIAL C(E)
2558 031736 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2559 031737 005 12 0 00 030653 ER5 E,30653 ;C(E) WAS CLOBBERED
2560 031740 321 16 0 00 031726 JUMPL AC+2,F30650 ;LOOP ON ERROR SWITCH^
2561 ;LAST CASE DIFFERENT
2562 003066 ADR=ADR+1
2563 000022 WW=WW-1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0063
2564 400000 XX=XX+XX
2565 IFE XX,<XX=1>
2566
2567 ;MULTIPLY 0101...0101 BY A FLOATING 1
2568 252525 252525 V1=N2
2569 125252 400000 V2=N2*XX
2570 252525 IFG XX,<V3=<N2_<-WW>>>
2571 IFL XX,<V3=N1+1>
2572 MOP1 (\ADR,XX,0,V1,V3,V2)^
2573 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2574 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2575 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2576 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2577
2578 400000 F30660: AA1=XX ;INITIAL C(AC)
2579 031741 200 14 0 00 044700 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2580 000000 AA2=0 ;INITIAL C(AC+1)
2581 031742 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2582 252525 252525 AEE=V1 ;INITIAL C(E)
2583 031743 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2584 031744 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2585 252525 AR1=V3 ;EXPECTED RESULT IN AC
2586 031745 312 14 0 00 045026 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2587 031746 003 14 0 00 030661 ER3 AC,30661 ;HIGH PRODUCT FAILED
2588 125252 400000 AR2=V2 ;EXPECTED RESULT IN AC+1
2589 031747 312 15 0 00 045027 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2590 031750 004 15 0 00 030662 ER4 AC+1,30662 ;LOW PRODUCT FAILED
2591 252525 252525 AEE=V1 ;INITIAL C(E)
2592 031751 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2593 031752 005 12 0 00 030663 ER5 E,30663 ;C(E) WAS CLOBBERED
2594 031753 321 16 0 00 031741 JUMPL AC+2,F30660 ;LOOP ON ERROR SWITCH^
2595 ;LAST CASE DIFFERENT
2596 003067 ADR=ADR+1
2597 000021 WW=WW-1
2598 000001 000000 XX=XX+XX
2599 IFE XX,<XX=1>
2600
2601 ;MULTIPLY 0101...0101 BY A FLOATING 1
2602 252525 252525 V1=N2
2603 252525 000000 V2=N2*XX
2604 525252 IFG XX,<V3=<N2_<-WW>>>
2605 IFL XX,<V3=N1+1>
2606 MOP1 (\ADR,XX,0,V1,V3,V2)^
2607 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2608 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2609 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2610 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2611
2612 000001 000000 F30670: AA1=XX ;INITIAL C(AC)
2613 031754 200 14 0 00 044703 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2614 000000 AA2=0 ;INITIAL C(AC+1)
2615 031755 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2616 252525 252525 AEE=V1 ;INITIAL C(E)
2617 031756 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2618 031757 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0064
2619 525252 AR1=V3 ;EXPECTED RESULT IN AC
2620 031760 312 14 0 00 045030 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2621 031761 003 14 0 00 030671 ER3 AC,30671 ;HIGH PRODUCT FAILED
2622 252525 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2623 031762 312 15 0 00 045031 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2624 031763 004 15 0 00 030672 ER4 AC+1,30672 ;LOW PRODUCT FAILED
2625 252525 252525 AEE=V1 ;INITIAL C(E)
2626 031764 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2627 031765 005 12 0 00 030673 ER5 E,30673 ;C(E) WAS CLOBBERED
2628 031766 321 16 0 00 031754 JUMPL AC+2,F30670 ;LOOP ON ERROR SWITCH^
2629 ;LAST CASE DIFFERENT
2630 003070 ADR=ADR+1
2631 000020 WW=WW-1
2632 000002 000000 XX=XX+XX
2633 IFE XX,<XX=1>
2634
2635 ;MULTIPLY 0101...0101 BY A FLOATING 1
2636 252525 252525 V1=N2
2637 125252 000000 V2=N2*XX
2638 000001 252525 IFG XX,<V3=<N2_<-WW>>>
2639 IFL XX,<V3=N1+1>
2640 MOP1 (\ADR,XX,0,V1,V3,V2)^
2641 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2642 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2643 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2644 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2645
2646 000002 000000 F30700: AA1=XX ;INITIAL C(AC)
2647 031767 200 14 0 00 044706 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2648 000000 AA2=0 ;INITIAL C(AC+1)
2649 031770 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2650 252525 252525 AEE=V1 ;INITIAL C(E)
2651 031771 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2652 031772 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2653 000001 252525 AR1=V3 ;EXPECTED RESULT IN AC
2654 031773 312 14 0 00 045032 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2655 031774 003 14 0 00 030701 ER3 AC,30701 ;HIGH PRODUCT FAILED
2656 125252 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2657 031775 312 15 0 00 045033 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2658 031776 004 15 0 00 030702 ER4 AC+1,30702 ;LOW PRODUCT FAILED
2659 252525 252525 AEE=V1 ;INITIAL C(E)
2660 031777 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2661 032000 005 12 0 00 030703 ER5 E,30703 ;C(E) WAS CLOBBERED
2662 032001 321 16 0 00 031767 JUMPL AC+2,F30700 ;LOOP ON ERROR SWITCH^
2663 ;LAST CASE DIFFERENT
2664 003071 ADR=ADR+1
2665 000017 WW=WW-1
2666 000004 000000 XX=XX+XX
2667 IFE XX,<XX=1>
2668
2669 ;MULTIPLY 0101...0101 BY A FLOATING 1
2670 252525 252525 V1=N2
2671 252524 000000 V2=N2*XX
2672 000002 525252 IFG XX,<V3=<N2_<-WW>>>
2673 IFL XX,<V3=N1+1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0065
2674 MOP1 (\ADR,XX,0,V1,V3,V2)^
2675 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2676 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2677 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2678 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2679
2680 000004 000000 F30710: AA1=XX ;INITIAL C(AC)
2681 032002 200 14 0 00 044711 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2682 000000 AA2=0 ;INITIAL C(AC+1)
2683 032003 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2684 252525 252525 AEE=V1 ;INITIAL C(E)
2685 032004 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2686 032005 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2687 000002 525252 AR1=V3 ;EXPECTED RESULT IN AC
2688 032006 312 14 0 00 045034 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2689 032007 003 14 0 00 030711 ER3 AC,30711 ;HIGH PRODUCT FAILED
2690 252524 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2691 032010 312 15 0 00 045035 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2692 032011 004 15 0 00 030712 ER4 AC+1,30712 ;LOW PRODUCT FAILED
2693 252525 252525 AEE=V1 ;INITIAL C(E)
2694 032012 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2695 032013 005 12 0 00 030713 ER5 E,30713 ;C(E) WAS CLOBBERED
2696 032014 321 16 0 00 032002 JUMPL AC+2,F30710 ;LOOP ON ERROR SWITCH^
2697 ;LAST CASE DIFFERENT
2698 003072 ADR=ADR+1
2699 000016 WW=WW-1
2700 000010 000000 XX=XX+XX
2701 IFE XX,<XX=1>
2702
2703 ;MULTIPLY 0101...0101 BY A FLOATING 1
2704 252525 252525 V1=N2
2705 125250 000000 V2=N2*XX
2706 000005 252525 IFG XX,<V3=<N2_<-WW>>>
2707 IFL XX,<V3=N1+1>
2708 MOP1 (\ADR,XX,0,V1,V3,V2)^
2709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2710 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2711 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2713
2714 000010 000000 F30720: AA1=XX ;INITIAL C(AC)
2715 032015 200 14 0 00 044714 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2716 000000 AA2=0 ;INITIAL C(AC+1)
2717 032016 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2718 252525 252525 AEE=V1 ;INITIAL C(E)
2719 032017 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2720 032020 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2721 000005 252525 AR1=V3 ;EXPECTED RESULT IN AC
2722 032021 312 14 0 00 045036 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2723 032022 003 14 0 00 030721 ER3 AC,30721 ;HIGH PRODUCT FAILED
2724 125250 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2725 032023 312 15 0 00 045037 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2726 032024 004 15 0 00 030722 ER4 AC+1,30722 ;LOW PRODUCT FAILED
2727 252525 252525 AEE=V1 ;INITIAL C(E)
2728 032025 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0066
2729 032026 005 12 0 00 030723 ER5 E,30723 ;C(E) WAS CLOBBERED
2730 032027 321 16 0 00 032015 JUMPL AC+2,F30720 ;LOOP ON ERROR SWITCH^
2731 ;LAST CASE DIFFERENT
2732 003073 ADR=ADR+1
2733 000015 WW=WW-1
2734 000020 000000 XX=XX+XX
2735 IFE XX,<XX=1>
2736
2737 ;MULTIPLY 0101...0101 BY A FLOATING 1
2738 252525 252525 V1=N2
2739 252520 000000 V2=N2*XX
2740 000012 525252 IFG XX,<V3=<N2_<-WW>>>
2741 IFL XX,<V3=N1+1>
2742 MOP1 (\ADR,XX,0,V1,V3,V2)^
2743 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2744 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2745 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2746 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2747
2748 000020 000000 F30730: AA1=XX ;INITIAL C(AC)
2749 032030 200 14 0 00 044717 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2750 000000 AA2=0 ;INITIAL C(AC+1)
2751 032031 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2752 252525 252525 AEE=V1 ;INITIAL C(E)
2753 032032 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2754 032033 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2755 000012 525252 AR1=V3 ;EXPECTED RESULT IN AC
2756 032034 312 14 0 00 045040 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2757 032035 003 14 0 00 030731 ER3 AC,30731 ;HIGH PRODUCT FAILED
2758 252520 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2759 032036 312 15 0 00 045041 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2760 032037 004 15 0 00 030732 ER4 AC+1,30732 ;LOW PRODUCT FAILED
2761 252525 252525 AEE=V1 ;INITIAL C(E)
2762 032040 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2763 032041 005 12 0 00 030733 ER5 E,30733 ;C(E) WAS CLOBBERED
2764 032042 321 16 0 00 032030 JUMPL AC+2,F30730 ;LOOP ON ERROR SWITCH^
2765 ;LAST CASE DIFFERENT
2766 003074 ADR=ADR+1
2767 000014 WW=WW-1
2768 000040 000000 XX=XX+XX
2769 IFE XX,<XX=1>
2770
2771 ;MULTIPLY 0101...0101 BY A FLOATING 1
2772 252525 252525 V1=N2
2773 125240 000000 V2=N2*XX
2774 000025 252525 IFG XX,<V3=<N2_<-WW>>>
2775 IFL XX,<V3=N1+1>
2776 MOP1 (\ADR,XX,0,V1,V3,V2)^
2777 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2778 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2779 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2780 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2781
2782 000040 000000 F30740: AA1=XX ;INITIAL C(AC)
2783 032043 200 14 0 00 044722 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0067
2784 000000 AA2=0 ;INITIAL C(AC+1)
2785 032044 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2786 252525 252525 AEE=V1 ;INITIAL C(E)
2787 032045 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2788 032046 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2789 000025 252525 AR1=V3 ;EXPECTED RESULT IN AC
2790 032047 312 14 0 00 045042 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2791 032050 003 14 0 00 030741 ER3 AC,30741 ;HIGH PRODUCT FAILED
2792 125240 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2793 032051 312 15 0 00 045043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2794 032052 004 15 0 00 030742 ER4 AC+1,30742 ;LOW PRODUCT FAILED
2795 252525 252525 AEE=V1 ;INITIAL C(E)
2796 032053 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2797 032054 005 12 0 00 030743 ER5 E,30743 ;C(E) WAS CLOBBERED
2798 032055 321 16 0 00 032043 JUMPL AC+2,F30740 ;LOOP ON ERROR SWITCH^
2799 ;LAST CASE DIFFERENT
2800 003075 ADR=ADR+1
2801 000013 WW=WW-1
2802 000100 000000 XX=XX+XX
2803 IFE XX,<XX=1>
2804
2805 ;MULTIPLY 0101...0101 BY A FLOATING 1
2806 252525 252525 V1=N2
2807 252500 000000 V2=N2*XX
2808 000052 525252 IFG XX,<V3=<N2_<-WW>>>
2809 IFL XX,<V3=N1+1>
2810 MOP1 (\ADR,XX,0,V1,V3,V2)^
2811 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2812 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2813 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2814 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2815
2816 000100 000000 F30750: AA1=XX ;INITIAL C(AC)
2817 032056 200 14 0 00 044725 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2818 000000 AA2=0 ;INITIAL C(AC+1)
2819 032057 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2820 252525 252525 AEE=V1 ;INITIAL C(E)
2821 032060 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2822 032061 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2823 000052 525252 AR1=V3 ;EXPECTED RESULT IN AC
2824 032062 312 14 0 00 045044 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2825 032063 003 14 0 00 030751 ER3 AC,30751 ;HIGH PRODUCT FAILED
2826 252500 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2827 032064 312 15 0 00 045045 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2828 032065 004 15 0 00 030752 ER4 AC+1,30752 ;LOW PRODUCT FAILED
2829 252525 252525 AEE=V1 ;INITIAL C(E)
2830 032066 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2831 032067 005 12 0 00 030753 ER5 E,30753 ;C(E) WAS CLOBBERED
2832 032070 321 16 0 00 032056 JUMPL AC+2,F30750 ;LOOP ON ERROR SWITCH^
2833 ;LAST CASE DIFFERENT
2834 003076 ADR=ADR+1
2835 000012 WW=WW-1
2836 000200 000000 XX=XX+XX
2837 IFE XX,<XX=1>
2838
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0068
2839 ;MULTIPLY 0101...0101 BY A FLOATING 1
2840 252525 252525 V1=N2
2841 125200 000000 V2=N2*XX
2842 000125 252525 IFG XX,<V3=<N2_<-WW>>>
2843 IFL XX,<V3=N1+1>
2844 MOP1 (\ADR,XX,0,V1,V3,V2)^
2845 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2846 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2847 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2848 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2849
2850 000200 000000 F30760: AA1=XX ;INITIAL C(AC)
2851 032071 200 14 0 00 044730 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2852 000000 AA2=0 ;INITIAL C(AC+1)
2853 032072 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2854 252525 252525 AEE=V1 ;INITIAL C(E)
2855 032073 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2856 032074 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2857 000125 252525 AR1=V3 ;EXPECTED RESULT IN AC
2858 032075 312 14 0 00 045046 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2859 032076 003 14 0 00 030761 ER3 AC,30761 ;HIGH PRODUCT FAILED
2860 125200 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2861 032077 312 15 0 00 045047 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2862 032100 004 15 0 00 030762 ER4 AC+1,30762 ;LOW PRODUCT FAILED
2863 252525 252525 AEE=V1 ;INITIAL C(E)
2864 032101 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2865 032102 005 12 0 00 030763 ER5 E,30763 ;C(E) WAS CLOBBERED
2866 032103 321 16 0 00 032071 JUMPL AC+2,F30760 ;LOOP ON ERROR SWITCH^
2867 ;LAST CASE DIFFERENT
2868 003077 ADR=ADR+1
2869 000011 WW=WW-1
2870 000400 000000 XX=XX+XX
2871 IFE XX,<XX=1>
2872
2873 ;MULTIPLY 0101...0101 BY A FLOATING 1
2874 252525 252525 V1=N2
2875 252400 000000 V2=N2*XX
2876 000252 525252 IFG XX,<V3=<N2_<-WW>>>
2877 IFL XX,<V3=N1+1>
2878 MOP1 (\ADR,XX,0,V1,V3,V2)^
2879 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2880 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2881 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2882 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2883
2884 000400 000000 F30770: AA1=XX ;INITIAL C(AC)
2885 032104 200 14 0 00 044733 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2886 000000 AA2=0 ;INITIAL C(AC+1)
2887 032105 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2888 252525 252525 AEE=V1 ;INITIAL C(E)
2889 032106 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2890 032107 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2891 000252 525252 AR1=V3 ;EXPECTED RESULT IN AC
2892 032110 312 14 0 00 045050 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2893 032111 003 14 0 00 030771 ER3 AC,30771 ;HIGH PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0069
2894 252400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2895 032112 312 15 0 00 045051 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2896 032113 004 15 0 00 030772 ER4 AC+1,30772 ;LOW PRODUCT FAILED
2897 252525 252525 AEE=V1 ;INITIAL C(E)
2898 032114 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2899 032115 005 12 0 00 030773 ER5 E,30773 ;C(E) WAS CLOBBERED
2900 032116 321 16 0 00 032104 JUMPL AC+2,F30770 ;LOOP ON ERROR SWITCH^
2901 ;LAST CASE DIFFERENT
2902 003100 ADR=ADR+1
2903 000010 WW=WW-1
2904 001000 000000 XX=XX+XX
2905 IFE XX,<XX=1>
2906
2907 ;MULTIPLY 0101...0101 BY A FLOATING 1
2908 252525 252525 V1=N2
2909 125000 000000 V2=N2*XX
2910 000525 252525 IFG XX,<V3=<N2_<-WW>>>
2911 IFL XX,<V3=N1+1>
2912 MOP1 (\ADR,XX,0,V1,V3,V2)^
2913 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2914 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2915 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2916 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2917
2918 001000 000000 F31000: AA1=XX ;INITIAL C(AC)
2919 032117 200 14 0 00 044736 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2920 000000 AA2=0 ;INITIAL C(AC+1)
2921 032120 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2922 252525 252525 AEE=V1 ;INITIAL C(E)
2923 032121 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2924 032122 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2925 000525 252525 AR1=V3 ;EXPECTED RESULT IN AC
2926 032123 312 14 0 00 045052 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2927 032124 003 14 0 00 031001 ER3 AC,31001 ;HIGH PRODUCT FAILED
2928 125000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2929 032125 312 15 0 00 045053 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2930 032126 004 15 0 00 031002 ER4 AC+1,31002 ;LOW PRODUCT FAILED
2931 252525 252525 AEE=V1 ;INITIAL C(E)
2932 032127 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2933 032130 005 12 0 00 031003 ER5 E,31003 ;C(E) WAS CLOBBERED
2934 032131 321 16 0 00 032117 JUMPL AC+2,F31000 ;LOOP ON ERROR SWITCH^
2935 ;LAST CASE DIFFERENT
2936 003101 ADR=ADR+1
2937 000007 WW=WW-1
2938 002000 000000 XX=XX+XX
2939 IFE XX,<XX=1>
2940
2941 ;MULTIPLY 0101...0101 BY A FLOATING 1
2942 252525 252525 V1=N2
2943 252000 000000 V2=N2*XX
2944 001252 525252 IFG XX,<V3=<N2_<-WW>>>
2945 IFL XX,<V3=N1+1>
2946 MOP1 (\ADR,XX,0,V1,V3,V2)^
2947 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2948 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0070
2949 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2950 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2951
2952 002000 000000 F31010: AA1=XX ;INITIAL C(AC)
2953 032132 200 14 0 00 044741 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2954 000000 AA2=0 ;INITIAL C(AC+1)
2955 032133 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2956 252525 252525 AEE=V1 ;INITIAL C(E)
2957 032134 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2958 032135 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2959 001252 525252 AR1=V3 ;EXPECTED RESULT IN AC
2960 032136 312 14 0 00 045054 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2961 032137 003 14 0 00 031011 ER3 AC,31011 ;HIGH PRODUCT FAILED
2962 252000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2963 032140 312 15 0 00 045055 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2964 032141 004 15 0 00 031012 ER4 AC+1,31012 ;LOW PRODUCT FAILED
2965 252525 252525 AEE=V1 ;INITIAL C(E)
2966 032142 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
2967 032143 005 12 0 00 031013 ER5 E,31013 ;C(E) WAS CLOBBERED
2968 032144 321 16 0 00 032132 JUMPL AC+2,F31010 ;LOOP ON ERROR SWITCH^
2969 ;LAST CASE DIFFERENT
2970 003102 ADR=ADR+1
2971 000006 WW=WW-1
2972 004000 000000 XX=XX+XX
2973 IFE XX,<XX=1>
2974
2975 ;MULTIPLY 0101...0101 BY A FLOATING 1
2976 252525 252525 V1=N2
2977 124000 000000 V2=N2*XX
2978 002525 252525 IFG XX,<V3=<N2_<-WW>>>
2979 IFL XX,<V3=N1+1>
2980 MOP1 (\ADR,XX,0,V1,V3,V2)^
2981 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
2982 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2983 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
2984 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2985
2986 004000 000000 F31020: AA1=XX ;INITIAL C(AC)
2987 032145 200 14 0 00 044744 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2988 000000 AA2=0 ;INITIAL C(AC+1)
2989 032146 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
2990 252525 252525 AEE=V1 ;INITIAL C(E)
2991 032147 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
2992 032150 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2993 002525 252525 AR1=V3 ;EXPECTED RESULT IN AC
2994 032151 312 14 0 00 045056 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
2995 032152 003 14 0 00 031021 ER3 AC,31021 ;HIGH PRODUCT FAILED
2996 124000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
2997 032153 312 15 0 00 045057 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
2998 032154 004 15 0 00 031022 ER4 AC+1,31022 ;LOW PRODUCT FAILED
2999 252525 252525 AEE=V1 ;INITIAL C(E)
3000 032155 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
3001 032156 005 12 0 00 031023 ER5 E,31023 ;C(E) WAS CLOBBERED
3002 032157 321 16 0 00 032145 JUMPL AC+2,F31020 ;LOOP ON ERROR SWITCH^
3003 ;LAST CASE DIFFERENT
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0071
3004 003103 ADR=ADR+1
3005 000005 WW=WW-1
3006 010000 000000 XX=XX+XX
3007 IFE XX,<XX=1>
3008
3009 ;MULTIPLY 0101...0101 BY A FLOATING 1
3010 252525 252525 V1=N2
3011 250000 000000 V2=N2*XX
3012 005252 525252 IFG XX,<V3=<N2_<-WW>>>
3013 IFL XX,<V3=N1+1>
3014 MOP1 (\ADR,XX,0,V1,V3,V2)^
3015 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
3016 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3017 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
3018 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3019
3020 010000 000000 F31030: AA1=XX ;INITIAL C(AC)
3021 032160 200 14 0 00 044747 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3022 000000 AA2=0 ;INITIAL C(AC+1)
3023 032161 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3024 252525 252525 AEE=V1 ;INITIAL C(E)
3025 032162 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
3026 032163 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3027 005252 525252 AR1=V3 ;EXPECTED RESULT IN AC
3028 032164 312 14 0 00 045060 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3029 032165 003 14 0 00 031031 ER3 AC,31031 ;HIGH PRODUCT FAILED
3030 250000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3031 032166 312 15 0 00 045061 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3032 032167 004 15 0 00 031032 ER4 AC+1,31032 ;LOW PRODUCT FAILED
3033 252525 252525 AEE=V1 ;INITIAL C(E)
3034 032170 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
3035 032171 005 12 0 00 031033 ER5 E,31033 ;C(E) WAS CLOBBERED
3036 032172 321 16 0 00 032160 JUMPL AC+2,F31030 ;LOOP ON ERROR SWITCH^
3037 ;LAST CASE DIFFERENT
3038 003104 ADR=ADR+1
3039 000004 WW=WW-1
3040 020000 000000 XX=XX+XX
3041 IFE XX,<XX=1>
3042
3043 ;MULTIPLY 0101...0101 BY A FLOATING 1
3044 252525 252525 V1=N2
3045 120000 000000 V2=N2*XX
3046 012525 252525 IFG XX,<V3=<N2_<-WW>>>
3047 IFL XX,<V3=N1+1>
3048 MOP1 (\ADR,XX,0,V1,V3,V2)^
3049 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
3050 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3051 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
3052 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3053
3054 020000 000000 F31040: AA1=XX ;INITIAL C(AC)
3055 032173 200 14 0 00 044752 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3056 000000 AA2=0 ;INITIAL C(AC+1)
3057 032174 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3058 252525 252525 AEE=V1 ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0072
3059 032175 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
3060 032176 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3061 012525 252525 AR1=V3 ;EXPECTED RESULT IN AC
3062 032177 312 14 0 00 045062 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3063 032200 003 14 0 00 031041 ER3 AC,31041 ;HIGH PRODUCT FAILED
3064 120000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3065 032201 312 15 0 00 045063 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3066 032202 004 15 0 00 031042 ER4 AC+1,31042 ;LOW PRODUCT FAILED
3067 252525 252525 AEE=V1 ;INITIAL C(E)
3068 032203 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
3069 032204 005 12 0 00 031043 ER5 E,31043 ;C(E) WAS CLOBBERED
3070 032205 321 16 0 00 032173 JUMPL AC+2,F31040 ;LOOP ON ERROR SWITCH^
3071 ;LAST CASE DIFFERENT
3072 003105 ADR=ADR+1
3073 000003 WW=WW-1
3074 040000 000000 XX=XX+XX
3075 IFE XX,<XX=1>
3076
3077 ;MULTIPLY 0101...0101 BY A FLOATING 1
3078 252525 252525 V1=N2
3079 240000 000000 V2=N2*XX
3080 025252 525252 IFG XX,<V3=<N2_<-WW>>>
3081 IFL XX,<V3=N1+1>
3082 MOP1 (\ADR,XX,0,V1,V3,V2)^
3083 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
3084 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3085 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
3086 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3087
3088 040000 000000 F31050: AA1=XX ;INITIAL C(AC)
3089 032206 200 14 0 00 044755 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3090 000000 AA2=0 ;INITIAL C(AC+1)
3091 032207 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3092 252525 252525 AEE=V1 ;INITIAL C(E)
3093 032210 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
3094 032211 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3095 025252 525252 AR1=V3 ;EXPECTED RESULT IN AC
3096 032212 312 14 0 00 045064 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3097 032213 003 14 0 00 031051 ER3 AC,31051 ;HIGH PRODUCT FAILED
3098 240000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3099 032214 312 15 0 00 045065 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3100 032215 004 15 0 00 031052 ER4 AC+1,31052 ;LOW PRODUCT FAILED
3101 252525 252525 AEE=V1 ;INITIAL C(E)
3102 032216 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
3103 032217 005 12 0 00 031053 ER5 E,31053 ;C(E) WAS CLOBBERED
3104 032220 321 16 0 00 032206 JUMPL AC+2,F31050 ;LOOP ON ERROR SWITCH^
3105 ;LAST CASE DIFFERENT
3106 003106 ADR=ADR+1
3107 000002 WW=WW-1
3108 100000 000000 XX=XX+XX
3109 IFE XX,<XX=1>
3110
3111 ;MULTIPLY 0101...0101 BY A FLOATING 1
3112 252525 252525 V1=N2
3113 100000 000000 V2=N2*XX
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0073
3114 052525 252525 IFG XX,<V3=<N2_<-WW>>>
3115 IFL XX,<V3=N1+1>
3116 MOP1 (\ADR,XX,0,V1,V3,V2)^
3117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
3118 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3119 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
3120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3121
3122 100000 000000 F31060: AA1=XX ;INITIAL C(AC)
3123 032221 200 14 0 00 044760 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3124 000000 AA2=0 ;INITIAL C(AC+1)
3125 032222 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3126 252525 252525 AEE=V1 ;INITIAL C(E)
3127 032223 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
3128 032224 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3129 052525 252525 AR1=V3 ;EXPECTED RESULT IN AC
3130 032225 312 14 0 00 045066 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3131 032226 003 14 0 00 031061 ER3 AC,31061 ;HIGH PRODUCT FAILED
3132 100000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3133 032227 312 15 0 00 044760 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3134 032230 004 15 0 00 031062 ER4 AC+1,31062 ;LOW PRODUCT FAILED
3135 252525 252525 AEE=V1 ;INITIAL C(E)
3136 032231 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
3137 032232 005 12 0 00 031063 ER5 E,31063 ;C(E) WAS CLOBBERED
3138 032233 321 16 0 00 032221 JUMPL AC+2,F31060 ;LOOP ON ERROR SWITCH^
3139 ;LAST CASE DIFFERENT
3140 003107 ADR=ADR+1
3141 000001 WW=WW-1
3142 200000 000000 XX=XX+XX
3143 IFE XX,<XX=1>
3144
3145 ;MULTIPLY 0101...0101 BY A FLOATING 1
3146 252525 252525 V1=N2
3147 200000 000000 V2=N2*XX
3148 125252 525252 IFG XX,<V3=<N2_<-WW>>>
3149 IFL XX,<V3=N1+1>
3150 MOP1 (\ADR,XX,0,V1,V3,V2)^
3151 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
3152 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3153 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
3154 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3155
3156 200000 000000 F31070: AA1=XX ;INITIAL C(AC)
3157 032234 200 14 0 00 044763 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3158 000000 AA2=0 ;INITIAL C(AC+1)
3159 032235 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3160 252525 252525 AEE=V1 ;INITIAL C(E)
3161 032236 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
3162 032237 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3163 125252 525252 AR1=V3 ;EXPECTED RESULT IN AC
3164 032240 312 14 0 00 044770 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3165 032241 003 14 0 00 031071 ER3 AC,31071 ;HIGH PRODUCT FAILED
3166 200000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3167 032242 312 15 0 00 044763 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3168 032243 004 15 0 00 031072 ER4 AC+1,31072 ;LOW PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3-22
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0074
3169 252525 252525 AEE=V1 ;INITIAL C(E)
3170 032244 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
3171 032245 005 12 0 00 031073 ER5 E,31073 ;C(E) WAS CLOBBERED
3172 032246 321 16 0 00 032234 JUMPL AC+2,F31070 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0075
3173 003110 ADR=ADR+1
3174 ;MULTIPLY A 1010...1010 BY A 400000,,0
3175 400000 000000 XX=400000000000
3176 252525 252525 V1=252525252525
3177
3178 MOP1 (\ADR,XX,0,V1,V1,0)^
3179 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
3180 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3181 ;AND E AGAINST [V1], [0] AND [V1] RESPECTIVELY.
3182 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3183
3184 400000 000000 F31100: AA1=XX ;INITIAL C(AC)
3185 032247 200 14 0 00 044765 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3186 000000 AA2=0 ;INITIAL C(AC+1)
3187 032250 200 15 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3188 252525 252525 AEE=V1 ;INITIAL C(E)
3189 032251 200 12 0 00 044767 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
3190 032252 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3191 252525 252525 AR1=V1 ;EXPECTED RESULT IN AC
3192 032253 312 14 0 00 044767 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
3193 032254 003 14 0 00 031101 ER3 AC,31101 ;HIGH PRODUCT FAILED
3194 000000 AR2=0 ;EXPECTED RESULT IN AC+1
3195 032255 312 15 0 00 044615 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
3196 032256 004 15 0 00 031102 ER4 AC+1,31102 ;LOW PRODUCT FAILED
3197 252525 252525 AEE=V1 ;INITIAL C(E)
3198 032257 312 12 0 00 044767 CAME E,[V1] ;WAS C(E) CLOBBERED?
3199 032260 005 12 0 00 031103 ER5 E,31103 ;C(E) WAS CLOBBERED
3200 032261 321 16 0 00 032247 JUMPL AC+2,F31100 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0076
3201 000013 AC=13
3202 000011 E=<AC-2>&17
3203 SAVEAC (1,1)^
3204 032262 201 15 0 00 032262 MOVEI AC+2,. ;SAVE TEST PC
3205 032263 202 15 0 00 030051 MOVEM AC+2,TESTPC
3206 032264 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
3207 032265 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
3208 000044 WW=^D36
3209 000000 XX=0
3210
3211 REPEAT ^D36,<
3212 ADR=ADR+1
3213 WW=WW-1
3214 XX=XX+XX
3215 IFE XX,<XX=1>
3216
3217 ;MULTIPLY A FLOATING 1 BY 0101...0101
3218 V1=N2
3219 V2=N2*XX
3220 IFG XX,<V3=<N2_<-WW>>>
3221 IFL XX,<V3=N1+1>
3222 MOP1 (\ADR,V1,0,XX,V3,V2)>
3223
3224 003111 ADR=ADR+1
3225 000043 WW=WW-1
3226 000000 XX=XX+XX
3227 000001 IFE XX,<XX=1>
3228
3229 ;MULTIPLY A FLOATING 1 BY 0101...0101
3230 252525 252525 V1=N2
3231 252525 252525 V2=N2*XX
3232 000000 IFG XX,<V3=<N2_<-WW>>>
3233 IFL XX,<V3=N1+1>
3234 MOP1 (\ADR,V1,0,XX,V3,V2)^
3235 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3236 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3237 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3238 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3239
3240 252525 252525 F31110: AA1=V1 ;INITIAL C(AC)
3241 032266 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3242 000000 AA2=0 ;INITIAL C(AC+1)
3243 032267 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3244 000001 AEE=XX ;INITIAL C(E)
3245 032270 200 11 0 00 044616 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3246 032271 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3247 000000 AR1=V3 ;EXPECTED RESULT IN AC
3248 032272 312 13 0 00 044615 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3249 032273 003 13 0 00 031111 ER3 AC,31111 ;HIGH PRODUCT FAILED
3250 252525 252525 AR2=V2 ;EXPECTED RESULT IN AC+1
3251 032274 312 14 0 00 044767 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3252 032275 004 14 0 00 031112 ER4 AC+1,31112 ;LOW PRODUCT FAILED
3253 000001 AEE=XX ;INITIAL C(E)
3254 032276 312 11 0 00 044616 CAME E,[XX] ;WAS C(E) CLOBBERED?
3255 032277 005 11 0 00 031113 ER5 E,31113 ;C(E) WAS CLOBBERED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0077
3256 032300 321 15 0 00 032266 JUMPL AC+2,F31110 ;LOOP ON ERROR SWITCH^
3257
3258 003112 ADR=ADR+1
3259 000042 WW=WW-1
3260 000002 XX=XX+XX
3261 IFE XX,<XX=1>
3262
3263 ;MULTIPLY A FLOATING 1 BY 0101...0101
3264 252525 252525 V1=N2
3265 125252 525252 V2=N2*XX
3266 000001 IFG XX,<V3=<N2_<-WW>>>
3267 IFL XX,<V3=N1+1>
3268 MOP1 (\ADR,V1,0,XX,V3,V2)^
3269 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3270 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3271 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3272 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3273
3274 252525 252525 F31120: AA1=V1 ;INITIAL C(AC)
3275 032301 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3276 000000 AA2=0 ;INITIAL C(AC+1)
3277 032302 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3278 000002 AEE=XX ;INITIAL C(E)
3279 032303 200 11 0 00 044620 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3280 032304 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3281 000001 AR1=V3 ;EXPECTED RESULT IN AC
3282 032305 312 13 0 00 044616 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3283 032306 003 13 0 00 031121 ER3 AC,31121 ;HIGH PRODUCT FAILED
3284 125252 525252 AR2=V2 ;EXPECTED RESULT IN AC+1
3285 032307 312 14 0 00 044770 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3286 032310 004 14 0 00 031122 ER4 AC+1,31122 ;LOW PRODUCT FAILED
3287 000002 AEE=XX ;INITIAL C(E)
3288 032311 312 11 0 00 044620 CAME E,[XX] ;WAS C(E) CLOBBERED?
3289 032312 005 11 0 00 031123 ER5 E,31123 ;C(E) WAS CLOBBERED
3290 032313 321 15 0 00 032301 JUMPL AC+2,F31120 ;LOOP ON ERROR SWITCH^
3291
3292 003113 ADR=ADR+1
3293 000041 WW=WW-1
3294 000004 XX=XX+XX
3295 IFE XX,<XX=1>
3296
3297 ;MULTIPLY A FLOATING 1 BY 0101...0101
3298 252525 252525 V1=N2
3299 252525 252524 V2=N2*XX
3300 000002 IFG XX,<V3=<N2_<-WW>>>
3301 IFL XX,<V3=N1+1>
3302 MOP1 (\ADR,V1,0,XX,V3,V2)^
3303 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3304 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3305 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3306 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3307
3308 252525 252525 F31130: AA1=V1 ;INITIAL C(AC)
3309 032314 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3310 000000 AA2=0 ;INITIAL C(AC+1)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0078
3311 032315 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3312 000004 AEE=XX ;INITIAL C(E)
3313 032316 200 11 0 00 044623 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3314 032317 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3315 000002 AR1=V3 ;EXPECTED RESULT IN AC
3316 032320 312 13 0 00 044620 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3317 032321 003 13 0 00 031131 ER3 AC,31131 ;HIGH PRODUCT FAILED
3318 252525 252524 AR2=V2 ;EXPECTED RESULT IN AC+1
3319 032322 312 14 0 00 044771 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3320 032323 004 14 0 00 031132 ER4 AC+1,31132 ;LOW PRODUCT FAILED
3321 000004 AEE=XX ;INITIAL C(E)
3322 032324 312 11 0 00 044623 CAME E,[XX] ;WAS C(E) CLOBBERED?
3323 032325 005 11 0 00 031133 ER5 E,31133 ;C(E) WAS CLOBBERED
3324 032326 321 15 0 00 032314 JUMPL AC+2,F31130 ;LOOP ON ERROR SWITCH^
3325
3326 003114 ADR=ADR+1
3327 000040 WW=WW-1
3328 000010 XX=XX+XX
3329 IFE XX,<XX=1>
3330
3331 ;MULTIPLY A FLOATING 1 BY 0101...0101
3332 252525 252525 V1=N2
3333 125252 525250 V2=N2*XX
3334 000005 IFG XX,<V3=<N2_<-WW>>>
3335 IFL XX,<V3=N1+1>
3336 MOP1 (\ADR,V1,0,XX,V3,V2)^
3337 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3338 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3339 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3340 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3341
3342 252525 252525 F31140: AA1=V1 ;INITIAL C(AC)
3343 032327 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3344 000000 AA2=0 ;INITIAL C(AC+1)
3345 032330 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3346 000010 AEE=XX ;INITIAL C(E)
3347 032331 200 11 0 00 044626 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3348 032332 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3349 000005 AR1=V3 ;EXPECTED RESULT IN AC
3350 032333 312 13 0 00 044772 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3351 032334 003 13 0 00 031141 ER3 AC,31141 ;HIGH PRODUCT FAILED
3352 125252 525250 AR2=V2 ;EXPECTED RESULT IN AC+1
3353 032335 312 14 0 00 044773 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3354 032336 004 14 0 00 031142 ER4 AC+1,31142 ;LOW PRODUCT FAILED
3355 000010 AEE=XX ;INITIAL C(E)
3356 032337 312 11 0 00 044626 CAME E,[XX] ;WAS C(E) CLOBBERED?
3357 032340 005 11 0 00 031143 ER5 E,31143 ;C(E) WAS CLOBBERED
3358 032341 321 15 0 00 032327 JUMPL AC+2,F31140 ;LOOP ON ERROR SWITCH^
3359
3360 003115 ADR=ADR+1
3361 000037 WW=WW-1
3362 000020 XX=XX+XX
3363 IFE XX,<XX=1>
3364
3365 ;MULTIPLY A FLOATING 1 BY 0101...0101
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0079
3366 252525 252525 V1=N2
3367 252525 252520 V2=N2*XX
3368 000012 IFG XX,<V3=<N2_<-WW>>>
3369 IFL XX,<V3=N1+1>
3370 MOP1 (\ADR,V1,0,XX,V3,V2)^
3371 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3372 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3373 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3374 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3375
3376 252525 252525 F31150: AA1=V1 ;INITIAL C(AC)
3377 032342 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3378 000000 AA2=0 ;INITIAL C(AC+1)
3379 032343 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3380 000020 AEE=XX ;INITIAL C(E)
3381 032344 200 11 0 00 044631 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3382 032345 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3383 000012 AR1=V3 ;EXPECTED RESULT IN AC
3384 032346 312 13 0 00 044774 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3385 032347 003 13 0 00 031151 ER3 AC,31151 ;HIGH PRODUCT FAILED
3386 252525 252520 AR2=V2 ;EXPECTED RESULT IN AC+1
3387 032350 312 14 0 00 044775 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3388 032351 004 14 0 00 031152 ER4 AC+1,31152 ;LOW PRODUCT FAILED
3389 000020 AEE=XX ;INITIAL C(E)
3390 032352 312 11 0 00 044631 CAME E,[XX] ;WAS C(E) CLOBBERED?
3391 032353 005 11 0 00 031153 ER5 E,31153 ;C(E) WAS CLOBBERED
3392 032354 321 15 0 00 032342 JUMPL AC+2,F31150 ;LOOP ON ERROR SWITCH^
3393
3394 003116 ADR=ADR+1
3395 000036 WW=WW-1
3396 000040 XX=XX+XX
3397 IFE XX,<XX=1>
3398
3399 ;MULTIPLY A FLOATING 1 BY 0101...0101
3400 252525 252525 V1=N2
3401 125252 525240 V2=N2*XX
3402 000025 IFG XX,<V3=<N2_<-WW>>>
3403 IFL XX,<V3=N1+1>
3404 MOP1 (\ADR,V1,0,XX,V3,V2)^
3405 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3406 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3407 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3408 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3409
3410 252525 252525 F31160: AA1=V1 ;INITIAL C(AC)
3411 032355 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3412 000000 AA2=0 ;INITIAL C(AC+1)
3413 032356 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3414 000040 AEE=XX ;INITIAL C(E)
3415 032357 200 11 0 00 044634 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3416 032360 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3417 000025 AR1=V3 ;EXPECTED RESULT IN AC
3418 032361 312 13 0 00 044776 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3419 032362 003 13 0 00 031161 ER3 AC,31161 ;HIGH PRODUCT FAILED
3420 125252 525240 AR2=V2 ;EXPECTED RESULT IN AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0080
3421 032363 312 14 0 00 044777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3422 032364 004 14 0 00 031162 ER4 AC+1,31162 ;LOW PRODUCT FAILED
3423 000040 AEE=XX ;INITIAL C(E)
3424 032365 312 11 0 00 044634 CAME E,[XX] ;WAS C(E) CLOBBERED?
3425 032366 005 11 0 00 031163 ER5 E,31163 ;C(E) WAS CLOBBERED
3426 032367 321 15 0 00 032355 JUMPL AC+2,F31160 ;LOOP ON ERROR SWITCH^
3427
3428 003117 ADR=ADR+1
3429 000035 WW=WW-1
3430 000100 XX=XX+XX
3431 IFE XX,<XX=1>
3432
3433 ;MULTIPLY A FLOATING 1 BY 0101...0101
3434 252525 252525 V1=N2
3435 252525 252500 V2=N2*XX
3436 000052 IFG XX,<V3=<N2_<-WW>>>
3437 IFL XX,<V3=N1+1>
3438 MOP1 (\ADR,V1,0,XX,V3,V2)^
3439 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3440 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3441 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3442 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3443
3444 252525 252525 F31170: AA1=V1 ;INITIAL C(AC)
3445 032370 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3446 000000 AA2=0 ;INITIAL C(AC+1)
3447 032371 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3448 000100 AEE=XX ;INITIAL C(E)
3449 032372 200 11 0 00 044637 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3450 032373 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3451 000052 AR1=V3 ;EXPECTED RESULT IN AC
3452 032374 312 13 0 00 045000 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3453 032375 003 13 0 00 031171 ER3 AC,31171 ;HIGH PRODUCT FAILED
3454 252525 252500 AR2=V2 ;EXPECTED RESULT IN AC+1
3455 032376 312 14 0 00 045001 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3456 032377 004 14 0 00 031172 ER4 AC+1,31172 ;LOW PRODUCT FAILED
3457 000100 AEE=XX ;INITIAL C(E)
3458 032400 312 11 0 00 044637 CAME E,[XX] ;WAS C(E) CLOBBERED?
3459 032401 005 11 0 00 031173 ER5 E,31173 ;C(E) WAS CLOBBERED
3460 032402 321 15 0 00 032370 JUMPL AC+2,F31170 ;LOOP ON ERROR SWITCH^
3461
3462 003120 ADR=ADR+1
3463 000034 WW=WW-1
3464 000200 XX=XX+XX
3465 IFE XX,<XX=1>
3466
3467 ;MULTIPLY A FLOATING 1 BY 0101...0101
3468 252525 252525 V1=N2
3469 125252 525200 V2=N2*XX
3470 000125 IFG XX,<V3=<N2_<-WW>>>
3471 IFL XX,<V3=N1+1>
3472 MOP1 (\ADR,V1,0,XX,V3,V2)^
3473 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3474 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3475 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0081
3476 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3477
3478 252525 252525 F31200: AA1=V1 ;INITIAL C(AC)
3479 032403 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3480 000000 AA2=0 ;INITIAL C(AC+1)
3481 032404 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3482 000200 AEE=XX ;INITIAL C(E)
3483 032405 200 11 0 00 044642 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3484 032406 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3485 000125 AR1=V3 ;EXPECTED RESULT IN AC
3486 032407 312 13 0 00 045002 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3487 032410 003 13 0 00 031201 ER3 AC,31201 ;HIGH PRODUCT FAILED
3488 125252 525200 AR2=V2 ;EXPECTED RESULT IN AC+1
3489 032411 312 14 0 00 045003 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3490 032412 004 14 0 00 031202 ER4 AC+1,31202 ;LOW PRODUCT FAILED
3491 000200 AEE=XX ;INITIAL C(E)
3492 032413 312 11 0 00 044642 CAME E,[XX] ;WAS C(E) CLOBBERED?
3493 032414 005 11 0 00 031203 ER5 E,31203 ;C(E) WAS CLOBBERED
3494 032415 321 15 0 00 032403 JUMPL AC+2,F31200 ;LOOP ON ERROR SWITCH^
3495
3496 003121 ADR=ADR+1
3497 000033 WW=WW-1
3498 000400 XX=XX+XX
3499 IFE XX,<XX=1>
3500
3501 ;MULTIPLY A FLOATING 1 BY 0101...0101
3502 252525 252525 V1=N2
3503 252525 252400 V2=N2*XX
3504 000252 IFG XX,<V3=<N2_<-WW>>>
3505 IFL XX,<V3=N1+1>
3506 MOP1 (\ADR,V1,0,XX,V3,V2)^
3507 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3508 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3509 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3510 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3511
3512 252525 252525 F31210: AA1=V1 ;INITIAL C(AC)
3513 032416 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3514 000000 AA2=0 ;INITIAL C(AC+1)
3515 032417 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3516 000400 AEE=XX ;INITIAL C(E)
3517 032420 200 11 0 00 044645 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3518 032421 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3519 000252 AR1=V3 ;EXPECTED RESULT IN AC
3520 032422 312 13 0 00 045004 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3521 032423 003 13 0 00 031211 ER3 AC,31211 ;HIGH PRODUCT FAILED
3522 252525 252400 AR2=V2 ;EXPECTED RESULT IN AC+1
3523 032424 312 14 0 00 045005 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3524 032425 004 14 0 00 031212 ER4 AC+1,31212 ;LOW PRODUCT FAILED
3525 000400 AEE=XX ;INITIAL C(E)
3526 032426 312 11 0 00 044645 CAME E,[XX] ;WAS C(E) CLOBBERED?
3527 032427 005 11 0 00 031213 ER5 E,31213 ;C(E) WAS CLOBBERED
3528 032430 321 15 0 00 032416 JUMPL AC+2,F31210 ;LOOP ON ERROR SWITCH^
3529
3530 003122 ADR=ADR+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0082
3531 000032 WW=WW-1
3532 001000 XX=XX+XX
3533 IFE XX,<XX=1>
3534
3535 ;MULTIPLY A FLOATING 1 BY 0101...0101
3536 252525 252525 V1=N2
3537 125252 525000 V2=N2*XX
3538 000525 IFG XX,<V3=<N2_<-WW>>>
3539 IFL XX,<V3=N1+1>
3540 MOP1 (\ADR,V1,0,XX,V3,V2)^
3541 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3542 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3543 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3544 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3545
3546 252525 252525 F31220: AA1=V1 ;INITIAL C(AC)
3547 032431 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3548 000000 AA2=0 ;INITIAL C(AC+1)
3549 032432 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3550 001000 AEE=XX ;INITIAL C(E)
3551 032433 200 11 0 00 044650 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3552 032434 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3553 000525 AR1=V3 ;EXPECTED RESULT IN AC
3554 032435 312 13 0 00 045006 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3555 032436 003 13 0 00 031221 ER3 AC,31221 ;HIGH PRODUCT FAILED
3556 125252 525000 AR2=V2 ;EXPECTED RESULT IN AC+1
3557 032437 312 14 0 00 045007 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3558 032440 004 14 0 00 031222 ER4 AC+1,31222 ;LOW PRODUCT FAILED
3559 001000 AEE=XX ;INITIAL C(E)
3560 032441 312 11 0 00 044650 CAME E,[XX] ;WAS C(E) CLOBBERED?
3561 032442 005 11 0 00 031223 ER5 E,31223 ;C(E) WAS CLOBBERED
3562 032443 321 15 0 00 032431 JUMPL AC+2,F31220 ;LOOP ON ERROR SWITCH^
3563
3564 003123 ADR=ADR+1
3565 000031 WW=WW-1
3566 002000 XX=XX+XX
3567 IFE XX,<XX=1>
3568
3569 ;MULTIPLY A FLOATING 1 BY 0101...0101
3570 252525 252525 V1=N2
3571 252525 252000 V2=N2*XX
3572 001252 IFG XX,<V3=<N2_<-WW>>>
3573 IFL XX,<V3=N1+1>
3574 MOP1 (\ADR,V1,0,XX,V3,V2)^
3575 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3576 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3577 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3578 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3579
3580 252525 252525 F31230: AA1=V1 ;INITIAL C(AC)
3581 032444 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3582 000000 AA2=0 ;INITIAL C(AC+1)
3583 032445 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3584 002000 AEE=XX ;INITIAL C(E)
3585 032446 200 11 0 00 044653 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0083
3586 032447 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3587 001252 AR1=V3 ;EXPECTED RESULT IN AC
3588 032450 312 13 0 00 045010 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3589 032451 003 13 0 00 031231 ER3 AC,31231 ;HIGH PRODUCT FAILED
3590 252525 252000 AR2=V2 ;EXPECTED RESULT IN AC+1
3591 032452 312 14 0 00 045011 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3592 032453 004 14 0 00 031232 ER4 AC+1,31232 ;LOW PRODUCT FAILED
3593 002000 AEE=XX ;INITIAL C(E)
3594 032454 312 11 0 00 044653 CAME E,[XX] ;WAS C(E) CLOBBERED?
3595 032455 005 11 0 00 031233 ER5 E,31233 ;C(E) WAS CLOBBERED
3596 032456 321 15 0 00 032444 JUMPL AC+2,F31230 ;LOOP ON ERROR SWITCH^
3597
3598 003124 ADR=ADR+1
3599 000030 WW=WW-1
3600 004000 XX=XX+XX
3601 IFE XX,<XX=1>
3602
3603 ;MULTIPLY A FLOATING 1 BY 0101...0101
3604 252525 252525 V1=N2
3605 125252 524000 V2=N2*XX
3606 002525 IFG XX,<V3=<N2_<-WW>>>
3607 IFL XX,<V3=N1+1>
3608 MOP1 (\ADR,V1,0,XX,V3,V2)^
3609 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3610 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3611 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3612 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3613
3614 252525 252525 F31240: AA1=V1 ;INITIAL C(AC)
3615 032457 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3616 000000 AA2=0 ;INITIAL C(AC+1)
3617 032460 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3618 004000 AEE=XX ;INITIAL C(E)
3619 032461 200 11 0 00 044656 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3620 032462 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3621 002525 AR1=V3 ;EXPECTED RESULT IN AC
3622 032463 312 13 0 00 045012 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3623 032464 003 13 0 00 031241 ER3 AC,31241 ;HIGH PRODUCT FAILED
3624 125252 524000 AR2=V2 ;EXPECTED RESULT IN AC+1
3625 032465 312 14 0 00 045013 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3626 032466 004 14 0 00 031242 ER4 AC+1,31242 ;LOW PRODUCT FAILED
3627 004000 AEE=XX ;INITIAL C(E)
3628 032467 312 11 0 00 044656 CAME E,[XX] ;WAS C(E) CLOBBERED?
3629 032470 005 11 0 00 031243 ER5 E,31243 ;C(E) WAS CLOBBERED
3630 032471 321 15 0 00 032457 JUMPL AC+2,F31240 ;LOOP ON ERROR SWITCH^
3631
3632 003125 ADR=ADR+1
3633 000027 WW=WW-1
3634 010000 XX=XX+XX
3635 IFE XX,<XX=1>
3636
3637 ;MULTIPLY A FLOATING 1 BY 0101...0101
3638 252525 252525 V1=N2
3639 252525 250000 V2=N2*XX
3640 005252 IFG XX,<V3=<N2_<-WW>>>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0084
3641 IFL XX,<V3=N1+1>
3642 MOP1 (\ADR,V1,0,XX,V3,V2)^
3643 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3644 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3645 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3646 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3647
3648 252525 252525 F31250: AA1=V1 ;INITIAL C(AC)
3649 032472 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3650 000000 AA2=0 ;INITIAL C(AC+1)
3651 032473 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3652 010000 AEE=XX ;INITIAL C(E)
3653 032474 200 11 0 00 044661 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3654 032475 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3655 005252 AR1=V3 ;EXPECTED RESULT IN AC
3656 032476 312 13 0 00 045014 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3657 032477 003 13 0 00 031251 ER3 AC,31251 ;HIGH PRODUCT FAILED
3658 252525 250000 AR2=V2 ;EXPECTED RESULT IN AC+1
3659 032500 312 14 0 00 045015 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3660 032501 004 14 0 00 031252 ER4 AC+1,31252 ;LOW PRODUCT FAILED
3661 010000 AEE=XX ;INITIAL C(E)
3662 032502 312 11 0 00 044661 CAME E,[XX] ;WAS C(E) CLOBBERED?
3663 032503 005 11 0 00 031253 ER5 E,31253 ;C(E) WAS CLOBBERED
3664 032504 321 15 0 00 032472 JUMPL AC+2,F31250 ;LOOP ON ERROR SWITCH^
3665
3666 003126 ADR=ADR+1
3667 000026 WW=WW-1
3668 020000 XX=XX+XX
3669 IFE XX,<XX=1>
3670
3671 ;MULTIPLY A FLOATING 1 BY 0101...0101
3672 252525 252525 V1=N2
3673 125252 520000 V2=N2*XX
3674 012525 IFG XX,<V3=<N2_<-WW>>>
3675 IFL XX,<V3=N1+1>
3676 MOP1 (\ADR,V1,0,XX,V3,V2)^
3677 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3678 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3679 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3680 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3681
3682 252525 252525 F31260: AA1=V1 ;INITIAL C(AC)
3683 032505 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3684 000000 AA2=0 ;INITIAL C(AC+1)
3685 032506 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3686 020000 AEE=XX ;INITIAL C(E)
3687 032507 200 11 0 00 044664 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3688 032510 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3689 012525 AR1=V3 ;EXPECTED RESULT IN AC
3690 032511 312 13 0 00 045016 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3691 032512 003 13 0 00 031261 ER3 AC,31261 ;HIGH PRODUCT FAILED
3692 125252 520000 AR2=V2 ;EXPECTED RESULT IN AC+1
3693 032513 312 14 0 00 045017 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3694 032514 004 14 0 00 031262 ER4 AC+1,31262 ;LOW PRODUCT FAILED
3695 020000 AEE=XX ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0085
3696 032515 312 11 0 00 044664 CAME E,[XX] ;WAS C(E) CLOBBERED?
3697 032516 005 11 0 00 031263 ER5 E,31263 ;C(E) WAS CLOBBERED
3698 032517 321 15 0 00 032505 JUMPL AC+2,F31260 ;LOOP ON ERROR SWITCH^
3699
3700 003127 ADR=ADR+1
3701 000025 WW=WW-1
3702 040000 XX=XX+XX
3703 IFE XX,<XX=1>
3704
3705 ;MULTIPLY A FLOATING 1 BY 0101...0101
3706 252525 252525 V1=N2
3707 252525 240000 V2=N2*XX
3708 025252 IFG XX,<V3=<N2_<-WW>>>
3709 IFL XX,<V3=N1+1>
3710 MOP1 (\ADR,V1,0,XX,V3,V2)^
3711 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3712 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3713 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3714 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3715
3716 252525 252525 F31270: AA1=V1 ;INITIAL C(AC)
3717 032520 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3718 000000 AA2=0 ;INITIAL C(AC+1)
3719 032521 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3720 040000 AEE=XX ;INITIAL C(E)
3721 032522 200 11 0 00 044667 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3722 032523 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3723 025252 AR1=V3 ;EXPECTED RESULT IN AC
3724 032524 312 13 0 00 045020 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3725 032525 003 13 0 00 031271 ER3 AC,31271 ;HIGH PRODUCT FAILED
3726 252525 240000 AR2=V2 ;EXPECTED RESULT IN AC+1
3727 032526 312 14 0 00 045021 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3728 032527 004 14 0 00 031272 ER4 AC+1,31272 ;LOW PRODUCT FAILED
3729 040000 AEE=XX ;INITIAL C(E)
3730 032530 312 11 0 00 044667 CAME E,[XX] ;WAS C(E) CLOBBERED?
3731 032531 005 11 0 00 031273 ER5 E,31273 ;C(E) WAS CLOBBERED
3732 032532 321 15 0 00 032520 JUMPL AC+2,F31270 ;LOOP ON ERROR SWITCH^
3733
3734 003130 ADR=ADR+1
3735 000024 WW=WW-1
3736 100000 XX=XX+XX
3737 IFE XX,<XX=1>
3738
3739 ;MULTIPLY A FLOATING 1 BY 0101...0101
3740 252525 252525 V1=N2
3741 125252 500000 V2=N2*XX
3742 052525 IFG XX,<V3=<N2_<-WW>>>
3743 IFL XX,<V3=N1+1>
3744 MOP1 (\ADR,V1,0,XX,V3,V2)^
3745 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3746 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3747 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3748 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3749
3750 252525 252525 F31300: AA1=V1 ;INITIAL C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0086
3751 032533 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3752 000000 AA2=0 ;INITIAL C(AC+1)
3753 032534 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3754 100000 AEE=XX ;INITIAL C(E)
3755 032535 200 11 0 00 044672 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3756 032536 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3757 052525 AR1=V3 ;EXPECTED RESULT IN AC
3758 032537 312 13 0 00 045022 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3759 032540 003 13 0 00 031301 ER3 AC,31301 ;HIGH PRODUCT FAILED
3760 125252 500000 AR2=V2 ;EXPECTED RESULT IN AC+1
3761 032541 312 14 0 00 045023 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3762 032542 004 14 0 00 031302 ER4 AC+1,31302 ;LOW PRODUCT FAILED
3763 100000 AEE=XX ;INITIAL C(E)
3764 032543 312 11 0 00 044672 CAME E,[XX] ;WAS C(E) CLOBBERED?
3765 032544 005 11 0 00 031303 ER5 E,31303 ;C(E) WAS CLOBBERED
3766 032545 321 15 0 00 032533 JUMPL AC+2,F31300 ;LOOP ON ERROR SWITCH^
3767
3768 003131 ADR=ADR+1
3769 000023 WW=WW-1
3770 200000 XX=XX+XX
3771 IFE XX,<XX=1>
3772
3773 ;MULTIPLY A FLOATING 1 BY 0101...0101
3774 252525 252525 V1=N2
3775 252525 200000 V2=N2*XX
3776 125252 IFG XX,<V3=<N2_<-WW>>>
3777 IFL XX,<V3=N1+1>
3778 MOP1 (\ADR,V1,0,XX,V3,V2)^
3779 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3780 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3781 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3782 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3783
3784 252525 252525 F31310: AA1=V1 ;INITIAL C(AC)
3785 032546 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3786 000000 AA2=0 ;INITIAL C(AC+1)
3787 032547 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3788 200000 AEE=XX ;INITIAL C(E)
3789 032550 200 11 0 00 044675 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3790 032551 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3791 125252 AR1=V3 ;EXPECTED RESULT IN AC
3792 032552 312 13 0 00 045024 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3793 032553 003 13 0 00 031311 ER3 AC,31311 ;HIGH PRODUCT FAILED
3794 252525 200000 AR2=V2 ;EXPECTED RESULT IN AC+1
3795 032554 312 14 0 00 045025 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3796 032555 004 14 0 00 031312 ER4 AC+1,31312 ;LOW PRODUCT FAILED
3797 200000 AEE=XX ;INITIAL C(E)
3798 032556 312 11 0 00 044675 CAME E,[XX] ;WAS C(E) CLOBBERED?
3799 032557 005 11 0 00 031313 ER5 E,31313 ;C(E) WAS CLOBBERED
3800 032560 321 15 0 00 032546 JUMPL AC+2,F31310 ;LOOP ON ERROR SWITCH^
3801
3802 003132 ADR=ADR+1
3803 000022 WW=WW-1
3804 400000 XX=XX+XX
3805 IFE XX,<XX=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0087
3806
3807 ;MULTIPLY A FLOATING 1 BY 0101...0101
3808 252525 252525 V1=N2
3809 125252 400000 V2=N2*XX
3810 252525 IFG XX,<V3=<N2_<-WW>>>
3811 IFL XX,<V3=N1+1>
3812 MOP1 (\ADR,V1,0,XX,V3,V2)^
3813 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3814 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3815 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3816 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3817
3818 252525 252525 F31320: AA1=V1 ;INITIAL C(AC)
3819 032561 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3820 000000 AA2=0 ;INITIAL C(AC+1)
3821 032562 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3822 400000 AEE=XX ;INITIAL C(E)
3823 032563 200 11 0 00 044700 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3824 032564 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3825 252525 AR1=V3 ;EXPECTED RESULT IN AC
3826 032565 312 13 0 00 045026 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3827 032566 003 13 0 00 031321 ER3 AC,31321 ;HIGH PRODUCT FAILED
3828 125252 400000 AR2=V2 ;EXPECTED RESULT IN AC+1
3829 032567 312 14 0 00 045027 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3830 032570 004 14 0 00 031322 ER4 AC+1,31322 ;LOW PRODUCT FAILED
3831 400000 AEE=XX ;INITIAL C(E)
3832 032571 312 11 0 00 044700 CAME E,[XX] ;WAS C(E) CLOBBERED?
3833 032572 005 11 0 00 031323 ER5 E,31323 ;C(E) WAS CLOBBERED
3834 032573 321 15 0 00 032561 JUMPL AC+2,F31320 ;LOOP ON ERROR SWITCH^
3835
3836 003133 ADR=ADR+1
3837 000021 WW=WW-1
3838 000001 000000 XX=XX+XX
3839 IFE XX,<XX=1>
3840
3841 ;MULTIPLY A FLOATING 1 BY 0101...0101
3842 252525 252525 V1=N2
3843 252525 000000 V2=N2*XX
3844 525252 IFG XX,<V3=<N2_<-WW>>>
3845 IFL XX,<V3=N1+1>
3846 MOP1 (\ADR,V1,0,XX,V3,V2)^
3847 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3848 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3849 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3850 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3851
3852 252525 252525 F31330: AA1=V1 ;INITIAL C(AC)
3853 032574 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3854 000000 AA2=0 ;INITIAL C(AC+1)
3855 032575 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3856 000001 000000 AEE=XX ;INITIAL C(E)
3857 032576 200 11 0 00 044703 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3858 032577 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3859 525252 AR1=V3 ;EXPECTED RESULT IN AC
3860 032600 312 13 0 00 045030 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0088
3861 032601 003 13 0 00 031331 ER3 AC,31331 ;HIGH PRODUCT FAILED
3862 252525 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3863 032602 312 14 0 00 045031 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3864 032603 004 14 0 00 031332 ER4 AC+1,31332 ;LOW PRODUCT FAILED
3865 000001 000000 AEE=XX ;INITIAL C(E)
3866 032604 312 11 0 00 044703 CAME E,[XX] ;WAS C(E) CLOBBERED?
3867 032605 005 11 0 00 031333 ER5 E,31333 ;C(E) WAS CLOBBERED
3868 032606 321 15 0 00 032574 JUMPL AC+2,F31330 ;LOOP ON ERROR SWITCH^
3869
3870 003134 ADR=ADR+1
3871 000020 WW=WW-1
3872 000002 000000 XX=XX+XX
3873 IFE XX,<XX=1>
3874
3875 ;MULTIPLY A FLOATING 1 BY 0101...0101
3876 252525 252525 V1=N2
3877 125252 000000 V2=N2*XX
3878 000001 252525 IFG XX,<V3=<N2_<-WW>>>
3879 IFL XX,<V3=N1+1>
3880 MOP1 (\ADR,V1,0,XX,V3,V2)^
3881 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3882 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3883 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3884 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3885
3886 252525 252525 F31340: AA1=V1 ;INITIAL C(AC)
3887 032607 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3888 000000 AA2=0 ;INITIAL C(AC+1)
3889 032610 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3890 000002 000000 AEE=XX ;INITIAL C(E)
3891 032611 200 11 0 00 044706 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3892 032612 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3893 000001 252525 AR1=V3 ;EXPECTED RESULT IN AC
3894 032613 312 13 0 00 045032 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3895 032614 003 13 0 00 031341 ER3 AC,31341 ;HIGH PRODUCT FAILED
3896 125252 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3897 032615 312 14 0 00 045033 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3898 032616 004 14 0 00 031342 ER4 AC+1,31342 ;LOW PRODUCT FAILED
3899 000002 000000 AEE=XX ;INITIAL C(E)
3900 032617 312 11 0 00 044706 CAME E,[XX] ;WAS C(E) CLOBBERED?
3901 032620 005 11 0 00 031343 ER5 E,31343 ;C(E) WAS CLOBBERED
3902 032621 321 15 0 00 032607 JUMPL AC+2,F31340 ;LOOP ON ERROR SWITCH^
3903
3904 003135 ADR=ADR+1
3905 000017 WW=WW-1
3906 000004 000000 XX=XX+XX
3907 IFE XX,<XX=1>
3908
3909 ;MULTIPLY A FLOATING 1 BY 0101...0101
3910 252525 252525 V1=N2
3911 252524 000000 V2=N2*XX
3912 000002 525252 IFG XX,<V3=<N2_<-WW>>>
3913 IFL XX,<V3=N1+1>
3914 MOP1 (\ADR,V1,0,XX,V3,V2)^
3915 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0089
3916 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3917 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3918 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3919
3920 252525 252525 F31350: AA1=V1 ;INITIAL C(AC)
3921 032622 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3922 000000 AA2=0 ;INITIAL C(AC+1)
3923 032623 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3924 000004 000000 AEE=XX ;INITIAL C(E)
3925 032624 200 11 0 00 044711 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3926 032625 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3927 000002 525252 AR1=V3 ;EXPECTED RESULT IN AC
3928 032626 312 13 0 00 045034 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3929 032627 003 13 0 00 031351 ER3 AC,31351 ;HIGH PRODUCT FAILED
3930 252524 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3931 032630 312 14 0 00 045035 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3932 032631 004 14 0 00 031352 ER4 AC+1,31352 ;LOW PRODUCT FAILED
3933 000004 000000 AEE=XX ;INITIAL C(E)
3934 032632 312 11 0 00 044711 CAME E,[XX] ;WAS C(E) CLOBBERED?
3935 032633 005 11 0 00 031353 ER5 E,31353 ;C(E) WAS CLOBBERED
3936 032634 321 15 0 00 032622 JUMPL AC+2,F31350 ;LOOP ON ERROR SWITCH^
3937
3938 003136 ADR=ADR+1
3939 000016 WW=WW-1
3940 000010 000000 XX=XX+XX
3941 IFE XX,<XX=1>
3942
3943 ;MULTIPLY A FLOATING 1 BY 0101...0101
3944 252525 252525 V1=N2
3945 125250 000000 V2=N2*XX
3946 000005 252525 IFG XX,<V3=<N2_<-WW>>>
3947 IFL XX,<V3=N1+1>
3948 MOP1 (\ADR,V1,0,XX,V3,V2)^
3949 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3950 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3951 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3952 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3953
3954 252525 252525 F31360: AA1=V1 ;INITIAL C(AC)
3955 032635 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3956 000000 AA2=0 ;INITIAL C(AC+1)
3957 032636 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3958 000010 000000 AEE=XX ;INITIAL C(E)
3959 032637 200 11 0 00 044714 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3960 032640 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3961 000005 252525 AR1=V3 ;EXPECTED RESULT IN AC
3962 032641 312 13 0 00 045036 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3963 032642 003 13 0 00 031361 ER3 AC,31361 ;HIGH PRODUCT FAILED
3964 125250 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3965 032643 312 14 0 00 045037 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
3966 032644 004 14 0 00 031362 ER4 AC+1,31362 ;LOW PRODUCT FAILED
3967 000010 000000 AEE=XX ;INITIAL C(E)
3968 032645 312 11 0 00 044714 CAME E,[XX] ;WAS C(E) CLOBBERED?
3969 032646 005 11 0 00 031363 ER5 E,31363 ;C(E) WAS CLOBBERED
3970 032647 321 15 0 00 032635 JUMPL AC+2,F31360 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0090
3971
3972 003137 ADR=ADR+1
3973 000015 WW=WW-1
3974 000020 000000 XX=XX+XX
3975 IFE XX,<XX=1>
3976
3977 ;MULTIPLY A FLOATING 1 BY 0101...0101
3978 252525 252525 V1=N2
3979 252520 000000 V2=N2*XX
3980 000012 525252 IFG XX,<V3=<N2_<-WW>>>
3981 IFL XX,<V3=N1+1>
3982 MOP1 (\ADR,V1,0,XX,V3,V2)^
3983 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
3984 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3985 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
3986 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3987
3988 252525 252525 F31370: AA1=V1 ;INITIAL C(AC)
3989 032650 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
3990 000000 AA2=0 ;INITIAL C(AC+1)
3991 032651 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
3992 000020 000000 AEE=XX ;INITIAL C(E)
3993 032652 200 11 0 00 044717 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
3994 032653 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3995 000012 525252 AR1=V3 ;EXPECTED RESULT IN AC
3996 032654 312 13 0 00 045040 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
3997 032655 003 13 0 00 031371 ER3 AC,31371 ;HIGH PRODUCT FAILED
3998 252520 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
3999 032656 312 14 0 00 045041 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4000 032657 004 14 0 00 031372 ER4 AC+1,31372 ;LOW PRODUCT FAILED
4001 000020 000000 AEE=XX ;INITIAL C(E)
4002 032660 312 11 0 00 044717 CAME E,[XX] ;WAS C(E) CLOBBERED?
4003 032661 005 11 0 00 031373 ER5 E,31373 ;C(E) WAS CLOBBERED
4004 032662 321 15 0 00 032650 JUMPL AC+2,F31370 ;LOOP ON ERROR SWITCH^
4005
4006 003140 ADR=ADR+1
4007 000014 WW=WW-1
4008 000040 000000 XX=XX+XX
4009 IFE XX,<XX=1>
4010
4011 ;MULTIPLY A FLOATING 1 BY 0101...0101
4012 252525 252525 V1=N2
4013 125240 000000 V2=N2*XX
4014 000025 252525 IFG XX,<V3=<N2_<-WW>>>
4015 IFL XX,<V3=N1+1>
4016 MOP1 (\ADR,V1,0,XX,V3,V2)^
4017 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4018 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4019 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4020 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4021
4022 252525 252525 F31400: AA1=V1 ;INITIAL C(AC)
4023 032663 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4024 000000 AA2=0 ;INITIAL C(AC+1)
4025 032664 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0091
4026 000040 000000 AEE=XX ;INITIAL C(E)
4027 032665 200 11 0 00 044722 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4028 032666 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4029 000025 252525 AR1=V3 ;EXPECTED RESULT IN AC
4030 032667 312 13 0 00 045042 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4031 032670 003 13 0 00 031401 ER3 AC,31401 ;HIGH PRODUCT FAILED
4032 125240 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4033 032671 312 14 0 00 045043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4034 032672 004 14 0 00 031402 ER4 AC+1,31402 ;LOW PRODUCT FAILED
4035 000040 000000 AEE=XX ;INITIAL C(E)
4036 032673 312 11 0 00 044722 CAME E,[XX] ;WAS C(E) CLOBBERED?
4037 032674 005 11 0 00 031403 ER5 E,31403 ;C(E) WAS CLOBBERED
4038 032675 321 15 0 00 032663 JUMPL AC+2,F31400 ;LOOP ON ERROR SWITCH^
4039
4040 003141 ADR=ADR+1
4041 000013 WW=WW-1
4042 000100 000000 XX=XX+XX
4043 IFE XX,<XX=1>
4044
4045 ;MULTIPLY A FLOATING 1 BY 0101...0101
4046 252525 252525 V1=N2
4047 252500 000000 V2=N2*XX
4048 000052 525252 IFG XX,<V3=<N2_<-WW>>>
4049 IFL XX,<V3=N1+1>
4050 MOP1 (\ADR,V1,0,XX,V3,V2)^
4051 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4052 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4053 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4054 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4055
4056 252525 252525 F31410: AA1=V1 ;INITIAL C(AC)
4057 032676 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4058 000000 AA2=0 ;INITIAL C(AC+1)
4059 032677 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4060 000100 000000 AEE=XX ;INITIAL C(E)
4061 032700 200 11 0 00 044725 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4062 032701 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4063 000052 525252 AR1=V3 ;EXPECTED RESULT IN AC
4064 032702 312 13 0 00 045044 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4065 032703 003 13 0 00 031411 ER3 AC,31411 ;HIGH PRODUCT FAILED
4066 252500 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4067 032704 312 14 0 00 045045 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4068 032705 004 14 0 00 031412 ER4 AC+1,31412 ;LOW PRODUCT FAILED
4069 000100 000000 AEE=XX ;INITIAL C(E)
4070 032706 312 11 0 00 044725 CAME E,[XX] ;WAS C(E) CLOBBERED?
4071 032707 005 11 0 00 031413 ER5 E,31413 ;C(E) WAS CLOBBERED
4072 032710 321 15 0 00 032676 JUMPL AC+2,F31410 ;LOOP ON ERROR SWITCH^
4073
4074 003142 ADR=ADR+1
4075 000012 WW=WW-1
4076 000200 000000 XX=XX+XX
4077 IFE XX,<XX=1>
4078
4079 ;MULTIPLY A FLOATING 1 BY 0101...0101
4080 252525 252525 V1=N2
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0092
4081 125200 000000 V2=N2*XX
4082 000125 252525 IFG XX,<V3=<N2_<-WW>>>
4083 IFL XX,<V3=N1+1>
4084 MOP1 (\ADR,V1,0,XX,V3,V2)^
4085 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4086 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4087 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4088 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4089
4090 252525 252525 F31420: AA1=V1 ;INITIAL C(AC)
4091 032711 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4092 000000 AA2=0 ;INITIAL C(AC+1)
4093 032712 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4094 000200 000000 AEE=XX ;INITIAL C(E)
4095 032713 200 11 0 00 044730 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4096 032714 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4097 000125 252525 AR1=V3 ;EXPECTED RESULT IN AC
4098 032715 312 13 0 00 045046 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4099 032716 003 13 0 00 031421 ER3 AC,31421 ;HIGH PRODUCT FAILED
4100 125200 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4101 032717 312 14 0 00 045047 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4102 032720 004 14 0 00 031422 ER4 AC+1,31422 ;LOW PRODUCT FAILED
4103 000200 000000 AEE=XX ;INITIAL C(E)
4104 032721 312 11 0 00 044730 CAME E,[XX] ;WAS C(E) CLOBBERED?
4105 032722 005 11 0 00 031423 ER5 E,31423 ;C(E) WAS CLOBBERED
4106 032723 321 15 0 00 032711 JUMPL AC+2,F31420 ;LOOP ON ERROR SWITCH^
4107
4108 003143 ADR=ADR+1
4109 000011 WW=WW-1
4110 000400 000000 XX=XX+XX
4111 IFE XX,<XX=1>
4112
4113 ;MULTIPLY A FLOATING 1 BY 0101...0101
4114 252525 252525 V1=N2
4115 252400 000000 V2=N2*XX
4116 000252 525252 IFG XX,<V3=<N2_<-WW>>>
4117 IFL XX,<V3=N1+1>
4118 MOP1 (\ADR,V1,0,XX,V3,V2)^
4119 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4120 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4121 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4122 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4123
4124 252525 252525 F31430: AA1=V1 ;INITIAL C(AC)
4125 032724 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4126 000000 AA2=0 ;INITIAL C(AC+1)
4127 032725 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4128 000400 000000 AEE=XX ;INITIAL C(E)
4129 032726 200 11 0 00 044733 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4130 032727 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4131 000252 525252 AR1=V3 ;EXPECTED RESULT IN AC
4132 032730 312 13 0 00 045050 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4133 032731 003 13 0 00 031431 ER3 AC,31431 ;HIGH PRODUCT FAILED
4134 252400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4135 032732 312 14 0 00 045051 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0093
4136 032733 004 14 0 00 031432 ER4 AC+1,31432 ;LOW PRODUCT FAILED
4137 000400 000000 AEE=XX ;INITIAL C(E)
4138 032734 312 11 0 00 044733 CAME E,[XX] ;WAS C(E) CLOBBERED?
4139 032735 005 11 0 00 031433 ER5 E,31433 ;C(E) WAS CLOBBERED
4140 032736 321 15 0 00 032724 JUMPL AC+2,F31430 ;LOOP ON ERROR SWITCH^
4141
4142 003144 ADR=ADR+1
4143 000010 WW=WW-1
4144 001000 000000 XX=XX+XX
4145 IFE XX,<XX=1>
4146
4147 ;MULTIPLY A FLOATING 1 BY 0101...0101
4148 252525 252525 V1=N2
4149 125000 000000 V2=N2*XX
4150 000525 252525 IFG XX,<V3=<N2_<-WW>>>
4151 IFL XX,<V3=N1+1>
4152 MOP1 (\ADR,V1,0,XX,V3,V2)^
4153 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4154 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4155 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4156 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4157
4158 252525 252525 F31440: AA1=V1 ;INITIAL C(AC)
4159 032737 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4160 000000 AA2=0 ;INITIAL C(AC+1)
4161 032740 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4162 001000 000000 AEE=XX ;INITIAL C(E)
4163 032741 200 11 0 00 044736 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4164 032742 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4165 000525 252525 AR1=V3 ;EXPECTED RESULT IN AC
4166 032743 312 13 0 00 045052 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4167 032744 003 13 0 00 031441 ER3 AC,31441 ;HIGH PRODUCT FAILED
4168 125000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4169 032745 312 14 0 00 045053 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4170 032746 004 14 0 00 031442 ER4 AC+1,31442 ;LOW PRODUCT FAILED
4171 001000 000000 AEE=XX ;INITIAL C(E)
4172 032747 312 11 0 00 044736 CAME E,[XX] ;WAS C(E) CLOBBERED?
4173 032750 005 11 0 00 031443 ER5 E,31443 ;C(E) WAS CLOBBERED
4174 032751 321 15 0 00 032737 JUMPL AC+2,F31440 ;LOOP ON ERROR SWITCH^
4175
4176 003145 ADR=ADR+1
4177 000007 WW=WW-1
4178 002000 000000 XX=XX+XX
4179 IFE XX,<XX=1>
4180
4181 ;MULTIPLY A FLOATING 1 BY 0101...0101
4182 252525 252525 V1=N2
4183 252000 000000 V2=N2*XX
4184 001252 525252 IFG XX,<V3=<N2_<-WW>>>
4185 IFL XX,<V3=N1+1>
4186 MOP1 (\ADR,V1,0,XX,V3,V2)^
4187 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4188 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4189 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4190 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0094
4191
4192 252525 252525 F31450: AA1=V1 ;INITIAL C(AC)
4193 032752 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4194 000000 AA2=0 ;INITIAL C(AC+1)
4195 032753 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4196 002000 000000 AEE=XX ;INITIAL C(E)
4197 032754 200 11 0 00 044741 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4198 032755 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4199 001252 525252 AR1=V3 ;EXPECTED RESULT IN AC
4200 032756 312 13 0 00 045054 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4201 032757 003 13 0 00 031451 ER3 AC,31451 ;HIGH PRODUCT FAILED
4202 252000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4203 032760 312 14 0 00 045055 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4204 032761 004 14 0 00 031452 ER4 AC+1,31452 ;LOW PRODUCT FAILED
4205 002000 000000 AEE=XX ;INITIAL C(E)
4206 032762 312 11 0 00 044741 CAME E,[XX] ;WAS C(E) CLOBBERED?
4207 032763 005 11 0 00 031453 ER5 E,31453 ;C(E) WAS CLOBBERED
4208 032764 321 15 0 00 032752 JUMPL AC+2,F31450 ;LOOP ON ERROR SWITCH^
4209
4210 003146 ADR=ADR+1
4211 000006 WW=WW-1
4212 004000 000000 XX=XX+XX
4213 IFE XX,<XX=1>
4214
4215 ;MULTIPLY A FLOATING 1 BY 0101...0101
4216 252525 252525 V1=N2
4217 124000 000000 V2=N2*XX
4218 002525 252525 IFG XX,<V3=<N2_<-WW>>>
4219 IFL XX,<V3=N1+1>
4220 MOP1 (\ADR,V1,0,XX,V3,V2)^
4221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4222 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4223 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4225
4226 252525 252525 F31460: AA1=V1 ;INITIAL C(AC)
4227 032765 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4228 000000 AA2=0 ;INITIAL C(AC+1)
4229 032766 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4230 004000 000000 AEE=XX ;INITIAL C(E)
4231 032767 200 11 0 00 044744 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4232 032770 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4233 002525 252525 AR1=V3 ;EXPECTED RESULT IN AC
4234 032771 312 13 0 00 045056 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4235 032772 003 13 0 00 031461 ER3 AC,31461 ;HIGH PRODUCT FAILED
4236 124000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4237 032773 312 14 0 00 045057 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4238 032774 004 14 0 00 031462 ER4 AC+1,31462 ;LOW PRODUCT FAILED
4239 004000 000000 AEE=XX ;INITIAL C(E)
4240 032775 312 11 0 00 044744 CAME E,[XX] ;WAS C(E) CLOBBERED?
4241 032776 005 11 0 00 031463 ER5 E,31463 ;C(E) WAS CLOBBERED
4242 032777 321 15 0 00 032765 JUMPL AC+2,F31460 ;LOOP ON ERROR SWITCH^
4243
4244 003147 ADR=ADR+1
4245 000005 WW=WW-1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0095
4246 010000 000000 XX=XX+XX
4247 IFE XX,<XX=1>
4248
4249 ;MULTIPLY A FLOATING 1 BY 0101...0101
4250 252525 252525 V1=N2
4251 250000 000000 V2=N2*XX
4252 005252 525252 IFG XX,<V3=<N2_<-WW>>>
4253 IFL XX,<V3=N1+1>
4254 MOP1 (\ADR,V1,0,XX,V3,V2)^
4255 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4256 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4257 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4258 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4259
4260 252525 252525 F31470: AA1=V1 ;INITIAL C(AC)
4261 033000 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4262 000000 AA2=0 ;INITIAL C(AC+1)
4263 033001 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4264 010000 000000 AEE=XX ;INITIAL C(E)
4265 033002 200 11 0 00 044747 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4266 033003 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4267 005252 525252 AR1=V3 ;EXPECTED RESULT IN AC
4268 033004 312 13 0 00 045060 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4269 033005 003 13 0 00 031471 ER3 AC,31471 ;HIGH PRODUCT FAILED
4270 250000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4271 033006 312 14 0 00 045061 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4272 033007 004 14 0 00 031472 ER4 AC+1,31472 ;LOW PRODUCT FAILED
4273 010000 000000 AEE=XX ;INITIAL C(E)
4274 033010 312 11 0 00 044747 CAME E,[XX] ;WAS C(E) CLOBBERED?
4275 033011 005 11 0 00 031473 ER5 E,31473 ;C(E) WAS CLOBBERED
4276 033012 321 15 0 00 033000 JUMPL AC+2,F31470 ;LOOP ON ERROR SWITCH^
4277
4278 003150 ADR=ADR+1
4279 000004 WW=WW-1
4280 020000 000000 XX=XX+XX
4281 IFE XX,<XX=1>
4282
4283 ;MULTIPLY A FLOATING 1 BY 0101...0101
4284 252525 252525 V1=N2
4285 120000 000000 V2=N2*XX
4286 012525 252525 IFG XX,<V3=<N2_<-WW>>>
4287 IFL XX,<V3=N1+1>
4288 MOP1 (\ADR,V1,0,XX,V3,V2)^
4289 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4290 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4291 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4292 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4293
4294 252525 252525 F31500: AA1=V1 ;INITIAL C(AC)
4295 033013 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4296 000000 AA2=0 ;INITIAL C(AC+1)
4297 033014 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4298 020000 000000 AEE=XX ;INITIAL C(E)
4299 033015 200 11 0 00 044752 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4300 033016 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0096
4301 012525 252525 AR1=V3 ;EXPECTED RESULT IN AC
4302 033017 312 13 0 00 045062 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4303 033020 003 13 0 00 031501 ER3 AC,31501 ;HIGH PRODUCT FAILED
4304 120000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4305 033021 312 14 0 00 045063 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4306 033022 004 14 0 00 031502 ER4 AC+1,31502 ;LOW PRODUCT FAILED
4307 020000 000000 AEE=XX ;INITIAL C(E)
4308 033023 312 11 0 00 044752 CAME E,[XX] ;WAS C(E) CLOBBERED?
4309 033024 005 11 0 00 031503 ER5 E,31503 ;C(E) WAS CLOBBERED
4310 033025 321 15 0 00 033013 JUMPL AC+2,F31500 ;LOOP ON ERROR SWITCH^
4311
4312 003151 ADR=ADR+1
4313 000003 WW=WW-1
4314 040000 000000 XX=XX+XX
4315 IFE XX,<XX=1>
4316
4317 ;MULTIPLY A FLOATING 1 BY 0101...0101
4318 252525 252525 V1=N2
4319 240000 000000 V2=N2*XX
4320 025252 525252 IFG XX,<V3=<N2_<-WW>>>
4321 IFL XX,<V3=N1+1>
4322 MOP1 (\ADR,V1,0,XX,V3,V2)^
4323 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4324 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4325 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4326 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4327
4328 252525 252525 F31510: AA1=V1 ;INITIAL C(AC)
4329 033026 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4330 000000 AA2=0 ;INITIAL C(AC+1)
4331 033027 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4332 040000 000000 AEE=XX ;INITIAL C(E)
4333 033030 200 11 0 00 044755 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4334 033031 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4335 025252 525252 AR1=V3 ;EXPECTED RESULT IN AC
4336 033032 312 13 0 00 045064 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4337 033033 003 13 0 00 031511 ER3 AC,31511 ;HIGH PRODUCT FAILED
4338 240000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4339 033034 312 14 0 00 045065 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4340 033035 004 14 0 00 031512 ER4 AC+1,31512 ;LOW PRODUCT FAILED
4341 040000 000000 AEE=XX ;INITIAL C(E)
4342 033036 312 11 0 00 044755 CAME E,[XX] ;WAS C(E) CLOBBERED?
4343 033037 005 11 0 00 031513 ER5 E,31513 ;C(E) WAS CLOBBERED
4344 033040 321 15 0 00 033026 JUMPL AC+2,F31510 ;LOOP ON ERROR SWITCH^
4345
4346 003152 ADR=ADR+1
4347 000002 WW=WW-1
4348 100000 000000 XX=XX+XX
4349 IFE XX,<XX=1>
4350
4351 ;MULTIPLY A FLOATING 1 BY 0101...0101
4352 252525 252525 V1=N2
4353 100000 000000 V2=N2*XX
4354 052525 252525 IFG XX,<V3=<N2_<-WW>>>
4355 IFL XX,<V3=N1+1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0097
4356 MOP1 (\ADR,V1,0,XX,V3,V2)^
4357 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4358 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4359 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4360 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4361
4362 252525 252525 F31520: AA1=V1 ;INITIAL C(AC)
4363 033041 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4364 000000 AA2=0 ;INITIAL C(AC+1)
4365 033042 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4366 100000 000000 AEE=XX ;INITIAL C(E)
4367 033043 200 11 0 00 044760 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4368 033044 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4369 052525 252525 AR1=V3 ;EXPECTED RESULT IN AC
4370 033045 312 13 0 00 045066 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4371 033046 003 13 0 00 031521 ER3 AC,31521 ;HIGH PRODUCT FAILED
4372 100000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4373 033047 312 14 0 00 044760 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4374 033050 004 14 0 00 031522 ER4 AC+1,31522 ;LOW PRODUCT FAILED
4375 100000 000000 AEE=XX ;INITIAL C(E)
4376 033051 312 11 0 00 044760 CAME E,[XX] ;WAS C(E) CLOBBERED?
4377 033052 005 11 0 00 031523 ER5 E,31523 ;C(E) WAS CLOBBERED
4378 033053 321 15 0 00 033041 JUMPL AC+2,F31520 ;LOOP ON ERROR SWITCH^
4379
4380 003153 ADR=ADR+1
4381 000001 WW=WW-1
4382 200000 000000 XX=XX+XX
4383 IFE XX,<XX=1>
4384
4385 ;MULTIPLY A FLOATING 1 BY 0101...0101
4386 252525 252525 V1=N2
4387 200000 000000 V2=N2*XX
4388 125252 525252 IFG XX,<V3=<N2_<-WW>>>
4389 IFL XX,<V3=N1+1>
4390 MOP1 (\ADR,V1,0,XX,V3,V2)^
4391 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4392 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4393 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4394 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4395
4396 252525 252525 F31530: AA1=V1 ;INITIAL C(AC)
4397 033054 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4398 000000 AA2=0 ;INITIAL C(AC+1)
4399 033055 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4400 200000 000000 AEE=XX ;INITIAL C(E)
4401 033056 200 11 0 00 044763 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4402 033057 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4403 125252 525252 AR1=V3 ;EXPECTED RESULT IN AC
4404 033060 312 13 0 00 044770 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4405 033061 003 13 0 00 031531 ER3 AC,31531 ;HIGH PRODUCT FAILED
4406 200000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4407 033062 312 14 0 00 044763 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4408 033063 004 14 0 00 031532 ER4 AC+1,31532 ;LOW PRODUCT FAILED
4409 200000 000000 AEE=XX ;INITIAL C(E)
4410 033064 312 11 0 00 044763 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 5-22
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0098
4411 033065 005 11 0 00 031533 ER5 E,31533 ;C(E) WAS CLOBBERED
4412 033066 321 15 0 00 033054 JUMPL AC+2,F31530 ;LOOP ON ERROR SWITCH^
4413
4414 003154 ADR=ADR+1
4415 000000 WW=WW-1
4416 400000 000000 XX=XX+XX
4417 IFE XX,<XX=1>
4418
4419 ;MULTIPLY A FLOATING 1 BY 0101...0101
4420 252525 252525 V1=N2
4421 400000 000000 V2=N2*XX
4422 IFG XX,<V3=<N2_<-WW>>>
4423 525252 525253 IFL XX,<V3=N1+1>
4424 MOP1 (\ADR,V1,0,XX,V3,V2)^
4425 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [V1],[0] AND
4426 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4427 ;AND E AGAINST [V3], [V2] AND [XX] RESPECTIVELY.
4428 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4429
4430 252525 252525 F31540: AA1=V1 ;INITIAL C(AC)
4431 033067 200 13 0 00 044767 MOVE AC,[V1] ;PRELOAD AC (MULTIPLIER)
4432 000000 AA2=0 ;INITIAL C(AC+1)
4433 033070 200 14 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
4434 400000 000000 AEE=XX ;INITIAL C(E)
4435 033071 200 11 0 00 044765 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4436 033072 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4437 525252 525253 AR1=V3 ;EXPECTED RESULT IN AC
4438 033073 312 13 0 00 045067 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
4439 033074 003 13 0 00 031541 ER3 AC,31541 ;HIGH PRODUCT FAILED
4440 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
4441 033075 312 14 0 00 044765 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
4442 033076 004 14 0 00 031542 ER4 AC+1,31542 ;LOW PRODUCT FAILED
4443 400000 000000 AEE=XX ;INITIAL C(E)
4444 033077 312 11 0 00 044765 CAME E,[XX] ;WAS C(E) CLOBBERED?
4445 033100 005 11 0 00 031543 ER5 E,31543 ;C(E) WAS CLOBBERED
4446 033101 321 15 0 00 033067 JUMPL AC+2,F31540 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0099
4447 000012 AC=12
4448 000010 E=<AC-2>&17
4449 SAVEAC (1,1)^
4450 033102 201 14 0 00 033102 MOVEI AC+2,. ;SAVE TEST PC
4451 033103 202 14 0 00 030051 MOVEM AC+2,TESTPC
4452 033104 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
4453 033105 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
4454 000000 XX=0
4455
4456 REPEAT ^D36,<
4457 ADR=ADR+1
4458 XX=XX+XX
4459 IFE XX,<XX=1>
4460
4461 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4462 V1=XX*XX
4463 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4464 IFL XX,<V2=XX*XX>
4465 MOP1 (\ADR,XX,-1,XX,V2,V1)>
4466
4467 003155 ADR=ADR+1
4468 000000 XX=XX+XX
4469 000001 IFE XX,<XX=1>
4470
4471 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4472 000001 V1=XX*XX
4473 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4474 IFL XX,<V2=XX*XX>
4475 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4476 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4477 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4478 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4479 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4480
4481 000001 F31550: AA1=XX ;INITIAL C(AC)
4482 033106 200 12 0 00 044616 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4483 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4484 033107 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4485 000001 AEE=XX ;INITIAL C(E)
4486 033110 200 10 0 00 044616 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4487 033111 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4488 000000 AR1=V2 ;EXPECTED RESULT IN AC
4489 033112 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4490 033113 003 12 0 00 031551 ER3 AC,31551 ;HIGH PRODUCT FAILED
4491 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
4492 033114 312 13 0 00 044616 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4493 033115 004 13 0 00 031552 ER4 AC+1,31552 ;LOW PRODUCT FAILED
4494 000001 AEE=XX ;INITIAL C(E)
4495 033116 312 10 0 00 044616 CAME E,[XX] ;WAS C(E) CLOBBERED?
4496 033117 005 10 0 00 031553 ER5 E,31553 ;C(E) WAS CLOBBERED
4497 033120 321 14 0 00 033106 JUMPL AC+2,F31550 ;LOOP ON ERROR SWITCH^
4498
4499 003156 ADR=ADR+1
4500 000002 XX=XX+XX
4501 IFE XX,<XX=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0100
4502
4503 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4504 000004 V1=XX*XX
4505 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4506 IFL XX,<V2=XX*XX>
4507 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4508 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4509 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4510 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4511 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4512
4513 000002 F31560: AA1=XX ;INITIAL C(AC)
4514 033121 200 12 0 00 044620 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4515 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4516 033122 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4517 000002 AEE=XX ;INITIAL C(E)
4518 033123 200 10 0 00 044620 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4519 033124 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4520 000000 AR1=V2 ;EXPECTED RESULT IN AC
4521 033125 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4522 033126 003 12 0 00 031561 ER3 AC,31561 ;HIGH PRODUCT FAILED
4523 000004 AR2=V1 ;EXPECTED RESULT IN AC+1
4524 033127 312 13 0 00 044623 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4525 033130 004 13 0 00 031562 ER4 AC+1,31562 ;LOW PRODUCT FAILED
4526 000002 AEE=XX ;INITIAL C(E)
4527 033131 312 10 0 00 044620 CAME E,[XX] ;WAS C(E) CLOBBERED?
4528 033132 005 10 0 00 031563 ER5 E,31563 ;C(E) WAS CLOBBERED
4529 033133 321 14 0 00 033121 JUMPL AC+2,F31560 ;LOOP ON ERROR SWITCH^
4530
4531 003157 ADR=ADR+1
4532 000004 XX=XX+XX
4533 IFE XX,<XX=1>
4534
4535 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4536 000020 V1=XX*XX
4537 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4538 IFL XX,<V2=XX*XX>
4539 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4540 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4541 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4542 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4543 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4544
4545 000004 F31570: AA1=XX ;INITIAL C(AC)
4546 033134 200 12 0 00 044623 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4547 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4548 033135 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4549 000004 AEE=XX ;INITIAL C(E)
4550 033136 200 10 0 00 044623 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4551 033137 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4552 000000 AR1=V2 ;EXPECTED RESULT IN AC
4553 033140 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4554 033141 003 12 0 00 031571 ER3 AC,31571 ;HIGH PRODUCT FAILED
4555 000020 AR2=V1 ;EXPECTED RESULT IN AC+1
4556 033142 312 13 0 00 044631 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0101
4557 033143 004 13 0 00 031572 ER4 AC+1,31572 ;LOW PRODUCT FAILED
4558 000004 AEE=XX ;INITIAL C(E)
4559 033144 312 10 0 00 044623 CAME E,[XX] ;WAS C(E) CLOBBERED?
4560 033145 005 10 0 00 031573 ER5 E,31573 ;C(E) WAS CLOBBERED
4561 033146 321 14 0 00 033134 JUMPL AC+2,F31570 ;LOOP ON ERROR SWITCH^
4562
4563 003160 ADR=ADR+1
4564 000010 XX=XX+XX
4565 IFE XX,<XX=1>
4566
4567 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4568 000100 V1=XX*XX
4569 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4570 IFL XX,<V2=XX*XX>
4571 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4572 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4573 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4574 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4575 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4576
4577 000010 F31600: AA1=XX ;INITIAL C(AC)
4578 033147 200 12 0 00 044626 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4579 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4580 033150 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4581 000010 AEE=XX ;INITIAL C(E)
4582 033151 200 10 0 00 044626 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4583 033152 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4584 000000 AR1=V2 ;EXPECTED RESULT IN AC
4585 033153 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4586 033154 003 12 0 00 031601 ER3 AC,31601 ;HIGH PRODUCT FAILED
4587 000100 AR2=V1 ;EXPECTED RESULT IN AC+1
4588 033155 312 13 0 00 044637 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4589 033156 004 13 0 00 031602 ER4 AC+1,31602 ;LOW PRODUCT FAILED
4590 000010 AEE=XX ;INITIAL C(E)
4591 033157 312 10 0 00 044626 CAME E,[XX] ;WAS C(E) CLOBBERED?
4592 033160 005 10 0 00 031603 ER5 E,31603 ;C(E) WAS CLOBBERED
4593 033161 321 14 0 00 033147 JUMPL AC+2,F31600 ;LOOP ON ERROR SWITCH^
4594
4595 003161 ADR=ADR+1
4596 000020 XX=XX+XX
4597 IFE XX,<XX=1>
4598
4599 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4600 000400 V1=XX*XX
4601 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4602 IFL XX,<V2=XX*XX>
4603 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4604 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4605 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4606 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4607 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4608
4609 000020 F31610: AA1=XX ;INITIAL C(AC)
4610 033162 200 12 0 00 044631 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4611 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0102
4612 033163 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4613 000020 AEE=XX ;INITIAL C(E)
4614 033164 200 10 0 00 044631 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4615 033165 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4616 000000 AR1=V2 ;EXPECTED RESULT IN AC
4617 033166 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4618 033167 003 12 0 00 031611 ER3 AC,31611 ;HIGH PRODUCT FAILED
4619 000400 AR2=V1 ;EXPECTED RESULT IN AC+1
4620 033170 312 13 0 00 044645 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4621 033171 004 13 0 00 031612 ER4 AC+1,31612 ;LOW PRODUCT FAILED
4622 000020 AEE=XX ;INITIAL C(E)
4623 033172 312 10 0 00 044631 CAME E,[XX] ;WAS C(E) CLOBBERED?
4624 033173 005 10 0 00 031613 ER5 E,31613 ;C(E) WAS CLOBBERED
4625 033174 321 14 0 00 033162 JUMPL AC+2,F31610 ;LOOP ON ERROR SWITCH^
4626
4627 003162 ADR=ADR+1
4628 000040 XX=XX+XX
4629 IFE XX,<XX=1>
4630
4631 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4632 002000 V1=XX*XX
4633 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4634 IFL XX,<V2=XX*XX>
4635 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4636 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4637 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4638 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4639 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4640
4641 000040 F31620: AA1=XX ;INITIAL C(AC)
4642 033175 200 12 0 00 044634 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4643 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4644 033176 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4645 000040 AEE=XX ;INITIAL C(E)
4646 033177 200 10 0 00 044634 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4647 033200 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4648 000000 AR1=V2 ;EXPECTED RESULT IN AC
4649 033201 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4650 033202 003 12 0 00 031621 ER3 AC,31621 ;HIGH PRODUCT FAILED
4651 002000 AR2=V1 ;EXPECTED RESULT IN AC+1
4652 033203 312 13 0 00 044653 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4653 033204 004 13 0 00 031622 ER4 AC+1,31622 ;LOW PRODUCT FAILED
4654 000040 AEE=XX ;INITIAL C(E)
4655 033205 312 10 0 00 044634 CAME E,[XX] ;WAS C(E) CLOBBERED?
4656 033206 005 10 0 00 031623 ER5 E,31623 ;C(E) WAS CLOBBERED
4657 033207 321 14 0 00 033175 JUMPL AC+2,F31620 ;LOOP ON ERROR SWITCH^
4658
4659 003163 ADR=ADR+1
4660 000100 XX=XX+XX
4661 IFE XX,<XX=1>
4662
4663 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4664 010000 V1=XX*XX
4665 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4666 IFL XX,<V2=XX*XX>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0103
4667 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4668 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4669 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4670 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4671 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4672
4673 000100 F31630: AA1=XX ;INITIAL C(AC)
4674 033210 200 12 0 00 044637 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4675 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4676 033211 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4677 000100 AEE=XX ;INITIAL C(E)
4678 033212 200 10 0 00 044637 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4679 033213 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4680 000000 AR1=V2 ;EXPECTED RESULT IN AC
4681 033214 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4682 033215 003 12 0 00 031631 ER3 AC,31631 ;HIGH PRODUCT FAILED
4683 010000 AR2=V1 ;EXPECTED RESULT IN AC+1
4684 033216 312 13 0 00 044661 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4685 033217 004 13 0 00 031632 ER4 AC+1,31632 ;LOW PRODUCT FAILED
4686 000100 AEE=XX ;INITIAL C(E)
4687 033220 312 10 0 00 044637 CAME E,[XX] ;WAS C(E) CLOBBERED?
4688 033221 005 10 0 00 031633 ER5 E,31633 ;C(E) WAS CLOBBERED
4689 033222 321 14 0 00 033210 JUMPL AC+2,F31630 ;LOOP ON ERROR SWITCH^
4690
4691 003164 ADR=ADR+1
4692 000200 XX=XX+XX
4693 IFE XX,<XX=1>
4694
4695 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4696 040000 V1=XX*XX
4697 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4698 IFL XX,<V2=XX*XX>
4699 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4700 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4701 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4702 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4703 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4704
4705 000200 F31640: AA1=XX ;INITIAL C(AC)
4706 033223 200 12 0 00 044642 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4707 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4708 033224 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4709 000200 AEE=XX ;INITIAL C(E)
4710 033225 200 10 0 00 044642 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4711 033226 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4712 000000 AR1=V2 ;EXPECTED RESULT IN AC
4713 033227 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4714 033230 003 12 0 00 031641 ER3 AC,31641 ;HIGH PRODUCT FAILED
4715 040000 AR2=V1 ;EXPECTED RESULT IN AC+1
4716 033231 312 13 0 00 044667 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4717 033232 004 13 0 00 031642 ER4 AC+1,31642 ;LOW PRODUCT FAILED
4718 000200 AEE=XX ;INITIAL C(E)
4719 033233 312 10 0 00 044642 CAME E,[XX] ;WAS C(E) CLOBBERED?
4720 033234 005 10 0 00 031643 ER5 E,31643 ;C(E) WAS CLOBBERED
4721 033235 321 14 0 00 033223 JUMPL AC+2,F31640 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0104
4722
4723 003165 ADR=ADR+1
4724 000400 XX=XX+XX
4725 IFE XX,<XX=1>
4726
4727 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4728 200000 V1=XX*XX
4729 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4730 IFL XX,<V2=XX*XX>
4731 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4732 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4733 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4734 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4735 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4736
4737 000400 F31650: AA1=XX ;INITIAL C(AC)
4738 033236 200 12 0 00 044645 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4739 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4740 033237 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4741 000400 AEE=XX ;INITIAL C(E)
4742 033240 200 10 0 00 044645 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4743 033241 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4744 000000 AR1=V2 ;EXPECTED RESULT IN AC
4745 033242 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4746 033243 003 12 0 00 031651 ER3 AC,31651 ;HIGH PRODUCT FAILED
4747 200000 AR2=V1 ;EXPECTED RESULT IN AC+1
4748 033244 312 13 0 00 044675 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4749 033245 004 13 0 00 031652 ER4 AC+1,31652 ;LOW PRODUCT FAILED
4750 000400 AEE=XX ;INITIAL C(E)
4751 033246 312 10 0 00 044645 CAME E,[XX] ;WAS C(E) CLOBBERED?
4752 033247 005 10 0 00 031653 ER5 E,31653 ;C(E) WAS CLOBBERED
4753 033250 321 14 0 00 033236 JUMPL AC+2,F31650 ;LOOP ON ERROR SWITCH^
4754
4755 003166 ADR=ADR+1
4756 001000 XX=XX+XX
4757 IFE XX,<XX=1>
4758
4759 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4760 000001 000000 V1=XX*XX
4761 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4762 IFL XX,<V2=XX*XX>
4763 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4764 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4765 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4766 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4767 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4768
4769 001000 F31660: AA1=XX ;INITIAL C(AC)
4770 033251 200 12 0 00 044650 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4771 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4772 033252 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4773 001000 AEE=XX ;INITIAL C(E)
4774 033253 200 10 0 00 044650 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4775 033254 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4776 000000 AR1=V2 ;EXPECTED RESULT IN AC
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0105
4777 033255 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4778 033256 003 12 0 00 031661 ER3 AC,31661 ;HIGH PRODUCT FAILED
4779 000001 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
4780 033257 312 13 0 00 044703 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4781 033260 004 13 0 00 031662 ER4 AC+1,31662 ;LOW PRODUCT FAILED
4782 001000 AEE=XX ;INITIAL C(E)
4783 033261 312 10 0 00 044650 CAME E,[XX] ;WAS C(E) CLOBBERED?
4784 033262 005 10 0 00 031663 ER5 E,31663 ;C(E) WAS CLOBBERED
4785 033263 321 14 0 00 033251 JUMPL AC+2,F31660 ;LOOP ON ERROR SWITCH^
4786
4787 003167 ADR=ADR+1
4788 002000 XX=XX+XX
4789 IFE XX,<XX=1>
4790
4791 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4792 000004 000000 V1=XX*XX
4793 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4794 IFL XX,<V2=XX*XX>
4795 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4796 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4797 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4798 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4799 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4800
4801 002000 F31670: AA1=XX ;INITIAL C(AC)
4802 033264 200 12 0 00 044653 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4803 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4804 033265 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4805 002000 AEE=XX ;INITIAL C(E)
4806 033266 200 10 0 00 044653 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4807 033267 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4808 000000 AR1=V2 ;EXPECTED RESULT IN AC
4809 033270 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4810 033271 003 12 0 00 031671 ER3 AC,31671 ;HIGH PRODUCT FAILED
4811 000004 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
4812 033272 312 13 0 00 044711 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4813 033273 004 13 0 00 031672 ER4 AC+1,31672 ;LOW PRODUCT FAILED
4814 002000 AEE=XX ;INITIAL C(E)
4815 033274 312 10 0 00 044653 CAME E,[XX] ;WAS C(E) CLOBBERED?
4816 033275 005 10 0 00 031673 ER5 E,31673 ;C(E) WAS CLOBBERED
4817 033276 321 14 0 00 033264 JUMPL AC+2,F31670 ;LOOP ON ERROR SWITCH^
4818
4819 003170 ADR=ADR+1
4820 004000 XX=XX+XX
4821 IFE XX,<XX=1>
4822
4823 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4824 000020 000000 V1=XX*XX
4825 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4826 IFL XX,<V2=XX*XX>
4827 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4828 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4829 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4830 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4831 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0106
4832
4833 004000 F31700: AA1=XX ;INITIAL C(AC)
4834 033277 200 12 0 00 044656 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4835 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4836 033300 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4837 004000 AEE=XX ;INITIAL C(E)
4838 033301 200 10 0 00 044656 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4839 033302 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4840 000000 AR1=V2 ;EXPECTED RESULT IN AC
4841 033303 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4842 033304 003 12 0 00 031701 ER3 AC,31701 ;HIGH PRODUCT FAILED
4843 000020 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
4844 033305 312 13 0 00 044717 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4845 033306 004 13 0 00 031702 ER4 AC+1,31702 ;LOW PRODUCT FAILED
4846 004000 AEE=XX ;INITIAL C(E)
4847 033307 312 10 0 00 044656 CAME E,[XX] ;WAS C(E) CLOBBERED?
4848 033310 005 10 0 00 031703 ER5 E,31703 ;C(E) WAS CLOBBERED
4849 033311 321 14 0 00 033277 JUMPL AC+2,F31700 ;LOOP ON ERROR SWITCH^
4850
4851 003171 ADR=ADR+1
4852 010000 XX=XX+XX
4853 IFE XX,<XX=1>
4854
4855 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4856 000100 000000 V1=XX*XX
4857 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4858 IFL XX,<V2=XX*XX>
4859 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4860 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4861 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4862 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4863 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4864
4865 010000 F31710: AA1=XX ;INITIAL C(AC)
4866 033312 200 12 0 00 044661 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4867 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4868 033313 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4869 010000 AEE=XX ;INITIAL C(E)
4870 033314 200 10 0 00 044661 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4871 033315 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4872 000000 AR1=V2 ;EXPECTED RESULT IN AC
4873 033316 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4874 033317 003 12 0 00 031711 ER3 AC,31711 ;HIGH PRODUCT FAILED
4875 000100 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
4876 033320 312 13 0 00 044725 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4877 033321 004 13 0 00 031712 ER4 AC+1,31712 ;LOW PRODUCT FAILED
4878 010000 AEE=XX ;INITIAL C(E)
4879 033322 312 10 0 00 044661 CAME E,[XX] ;WAS C(E) CLOBBERED?
4880 033323 005 10 0 00 031713 ER5 E,31713 ;C(E) WAS CLOBBERED
4881 033324 321 14 0 00 033312 JUMPL AC+2,F31710 ;LOOP ON ERROR SWITCH^
4882
4883 003172 ADR=ADR+1
4884 020000 XX=XX+XX
4885 IFE XX,<XX=1>
4886
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0107
4887 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4888 000400 000000 V1=XX*XX
4889 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4890 IFL XX,<V2=XX*XX>
4891 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4892 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4893 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4894 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4895 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4896
4897 020000 F31720: AA1=XX ;INITIAL C(AC)
4898 033325 200 12 0 00 044664 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4899 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4900 033326 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4901 020000 AEE=XX ;INITIAL C(E)
4902 033327 200 10 0 00 044664 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4903 033330 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4904 000000 AR1=V2 ;EXPECTED RESULT IN AC
4905 033331 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4906 033332 003 12 0 00 031721 ER3 AC,31721 ;HIGH PRODUCT FAILED
4907 000400 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
4908 033333 312 13 0 00 044733 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4909 033334 004 13 0 00 031722 ER4 AC+1,31722 ;LOW PRODUCT FAILED
4910 020000 AEE=XX ;INITIAL C(E)
4911 033335 312 10 0 00 044664 CAME E,[XX] ;WAS C(E) CLOBBERED?
4912 033336 005 10 0 00 031723 ER5 E,31723 ;C(E) WAS CLOBBERED
4913 033337 321 14 0 00 033325 JUMPL AC+2,F31720 ;LOOP ON ERROR SWITCH^
4914
4915 003173 ADR=ADR+1
4916 040000 XX=XX+XX
4917 IFE XX,<XX=1>
4918
4919 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4920 002000 000000 V1=XX*XX
4921 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4922 IFL XX,<V2=XX*XX>
4923 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4924 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4925 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4926 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4927 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4928
4929 040000 F31730: AA1=XX ;INITIAL C(AC)
4930 033340 200 12 0 00 044667 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4931 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4932 033341 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4933 040000 AEE=XX ;INITIAL C(E)
4934 033342 200 10 0 00 044667 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4935 033343 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4936 000000 AR1=V2 ;EXPECTED RESULT IN AC
4937 033344 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4938 033345 003 12 0 00 031731 ER3 AC,31731 ;HIGH PRODUCT FAILED
4939 002000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
4940 033346 312 13 0 00 044741 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4941 033347 004 13 0 00 031732 ER4 AC+1,31732 ;LOW PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0108
4942 040000 AEE=XX ;INITIAL C(E)
4943 033350 312 10 0 00 044667 CAME E,[XX] ;WAS C(E) CLOBBERED?
4944 033351 005 10 0 00 031733 ER5 E,31733 ;C(E) WAS CLOBBERED
4945 033352 321 14 0 00 033340 JUMPL AC+2,F31730 ;LOOP ON ERROR SWITCH^
4946
4947 003174 ADR=ADR+1
4948 100000 XX=XX+XX
4949 IFE XX,<XX=1>
4950
4951 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4952 010000 000000 V1=XX*XX
4953 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4954 IFL XX,<V2=XX*XX>
4955 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4956 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4957 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4958 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4959 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4960
4961 100000 F31740: AA1=XX ;INITIAL C(AC)
4962 033353 200 12 0 00 044672 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4963 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4964 033354 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
4965 100000 AEE=XX ;INITIAL C(E)
4966 033355 200 10 0 00 044672 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4967 033356 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4968 000000 AR1=V2 ;EXPECTED RESULT IN AC
4969 033357 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4970 033360 003 12 0 00 031741 ER3 AC,31741 ;HIGH PRODUCT FAILED
4971 010000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
4972 033361 312 13 0 00 044747 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
4973 033362 004 13 0 00 031742 ER4 AC+1,31742 ;LOW PRODUCT FAILED
4974 100000 AEE=XX ;INITIAL C(E)
4975 033363 312 10 0 00 044672 CAME E,[XX] ;WAS C(E) CLOBBERED?
4976 033364 005 10 0 00 031743 ER5 E,31743 ;C(E) WAS CLOBBERED
4977 033365 321 14 0 00 033353 JUMPL AC+2,F31740 ;LOOP ON ERROR SWITCH^
4978
4979 003175 ADR=ADR+1
4980 200000 XX=XX+XX
4981 IFE XX,<XX=1>
4982
4983 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
4984 040000 000000 V1=XX*XX
4985 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
4986 IFL XX,<V2=XX*XX>
4987 MOP1 (\ADR,XX,-1,XX,V2,V1)^
4988 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4989 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4990 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
4991 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4992
4993 200000 F31750: AA1=XX ;INITIAL C(AC)
4994 033366 200 12 0 00 044675 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4995 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4996 033367 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0109
4997 200000 AEE=XX ;INITIAL C(E)
4998 033370 200 10 0 00 044675 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
4999 033371 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5000 000000 AR1=V2 ;EXPECTED RESULT IN AC
5001 033372 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5002 033373 003 12 0 00 031751 ER3 AC,31751 ;HIGH PRODUCT FAILED
5003 040000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5004 033374 312 13 0 00 044755 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5005 033375 004 13 0 00 031752 ER4 AC+1,31752 ;LOW PRODUCT FAILED
5006 200000 AEE=XX ;INITIAL C(E)
5007 033376 312 10 0 00 044675 CAME E,[XX] ;WAS C(E) CLOBBERED?
5008 033377 005 10 0 00 031753 ER5 E,31753 ;C(E) WAS CLOBBERED
5009 033400 321 14 0 00 033366 JUMPL AC+2,F31750 ;LOOP ON ERROR SWITCH^
5010
5011 003176 ADR=ADR+1
5012 400000 XX=XX+XX
5013 IFE XX,<XX=1>
5014
5015 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5016 200000 000000 V1=XX*XX
5017 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5018 IFL XX,<V2=XX*XX>
5019 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5020 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5021 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5022 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5023 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5024
5025 400000 F31760: AA1=XX ;INITIAL C(AC)
5026 033401 200 12 0 00 044700 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5027 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5028 033402 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5029 400000 AEE=XX ;INITIAL C(E)
5030 033403 200 10 0 00 044700 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5031 033404 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5032 000000 AR1=V2 ;EXPECTED RESULT IN AC
5033 033405 312 12 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5034 033406 003 12 0 00 031761 ER3 AC,31761 ;HIGH PRODUCT FAILED
5035 200000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5036 033407 312 13 0 00 044763 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5037 033410 004 13 0 00 031762 ER4 AC+1,31762 ;LOW PRODUCT FAILED
5038 400000 AEE=XX ;INITIAL C(E)
5039 033411 312 10 0 00 044700 CAME E,[XX] ;WAS C(E) CLOBBERED?
5040 033412 005 10 0 00 031763 ER5 E,31763 ;C(E) WAS CLOBBERED
5041 033413 321 14 0 00 033401 JUMPL AC+2,F31760 ;LOOP ON ERROR SWITCH^
5042
5043 003177 ADR=ADR+1
5044 000001 000000 XX=XX+XX
5045 IFE XX,<XX=1>
5046
5047 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5048 000000 V1=XX*XX
5049 000002 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5050 IFL XX,<V2=XX*XX>
5051 MOP1 (\ADR,XX,-1,XX,V2,V1)^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0110
5052 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5053 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5054 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5055 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5056
5057 000001 000000 F31770: AA1=XX ;INITIAL C(AC)
5058 033414 200 12 0 00 044703 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5059 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5060 033415 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5061 000001 000000 AEE=XX ;INITIAL C(E)
5062 033416 200 10 0 00 044703 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5063 033417 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5064 000002 AR1=V2 ;EXPECTED RESULT IN AC
5065 033420 312 12 0 00 044620 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5066 033421 003 12 0 00 031771 ER3 AC,31771 ;HIGH PRODUCT FAILED
5067 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5068 033422 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5069 033423 004 13 0 00 031772 ER4 AC+1,31772 ;LOW PRODUCT FAILED
5070 000001 000000 AEE=XX ;INITIAL C(E)
5071 033424 312 10 0 00 044703 CAME E,[XX] ;WAS C(E) CLOBBERED?
5072 033425 005 10 0 00 031773 ER5 E,31773 ;C(E) WAS CLOBBERED
5073 033426 321 14 0 00 033414 JUMPL AC+2,F31770 ;LOOP ON ERROR SWITCH^
5074
5075 003200 ADR=ADR+1
5076 000002 000000 XX=XX+XX
5077 IFE XX,<XX=1>
5078
5079 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5080 000000 V1=XX*XX
5081 000010 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5082 IFL XX,<V2=XX*XX>
5083 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5084 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5085 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5086 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5087 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5088
5089 000002 000000 F32000: AA1=XX ;INITIAL C(AC)
5090 033427 200 12 0 00 044706 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5091 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5092 033430 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5093 000002 000000 AEE=XX ;INITIAL C(E)
5094 033431 200 10 0 00 044706 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5095 033432 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5096 000010 AR1=V2 ;EXPECTED RESULT IN AC
5097 033433 312 12 0 00 044626 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5098 033434 003 12 0 00 032001 ER3 AC,32001 ;HIGH PRODUCT FAILED
5099 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5100 033435 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5101 033436 004 13 0 00 032002 ER4 AC+1,32002 ;LOW PRODUCT FAILED
5102 000002 000000 AEE=XX ;INITIAL C(E)
5103 033437 312 10 0 00 044706 CAME E,[XX] ;WAS C(E) CLOBBERED?
5104 033440 005 10 0 00 032003 ER5 E,32003 ;C(E) WAS CLOBBERED
5105 033441 321 14 0 00 033427 JUMPL AC+2,F32000 ;LOOP ON ERROR SWITCH^
5106
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0111
5107 003201 ADR=ADR+1
5108 000004 000000 XX=XX+XX
5109 IFE XX,<XX=1>
5110
5111 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5112 000000 V1=XX*XX
5113 000040 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5114 IFL XX,<V2=XX*XX>
5115 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5116 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5117 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5118 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5119 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5120
5121 000004 000000 F32010: AA1=XX ;INITIAL C(AC)
5122 033442 200 12 0 00 044711 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5123 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5124 033443 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5125 000004 000000 AEE=XX ;INITIAL C(E)
5126 033444 200 10 0 00 044711 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5127 033445 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5128 000040 AR1=V2 ;EXPECTED RESULT IN AC
5129 033446 312 12 0 00 044634 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5130 033447 003 12 0 00 032011 ER3 AC,32011 ;HIGH PRODUCT FAILED
5131 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5132 033450 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5133 033451 004 13 0 00 032012 ER4 AC+1,32012 ;LOW PRODUCT FAILED
5134 000004 000000 AEE=XX ;INITIAL C(E)
5135 033452 312 10 0 00 044711 CAME E,[XX] ;WAS C(E) CLOBBERED?
5136 033453 005 10 0 00 032013 ER5 E,32013 ;C(E) WAS CLOBBERED
5137 033454 321 14 0 00 033442 JUMPL AC+2,F32010 ;LOOP ON ERROR SWITCH^
5138
5139 003202 ADR=ADR+1
5140 000010 000000 XX=XX+XX
5141 IFE XX,<XX=1>
5142
5143 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5144 000000 V1=XX*XX
5145 000200 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5146 IFL XX,<V2=XX*XX>
5147 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5148 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5149 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5150 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5151 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5152
5153 000010 000000 F32020: AA1=XX ;INITIAL C(AC)
5154 033455 200 12 0 00 044714 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5155 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5156 033456 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5157 000010 000000 AEE=XX ;INITIAL C(E)
5158 033457 200 10 0 00 044714 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5159 033460 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5160 000200 AR1=V2 ;EXPECTED RESULT IN AC
5161 033461 312 12 0 00 044642 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0112
5162 033462 003 12 0 00 032021 ER3 AC,32021 ;HIGH PRODUCT FAILED
5163 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5164 033463 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5165 033464 004 13 0 00 032022 ER4 AC+1,32022 ;LOW PRODUCT FAILED
5166 000010 000000 AEE=XX ;INITIAL C(E)
5167 033465 312 10 0 00 044714 CAME E,[XX] ;WAS C(E) CLOBBERED?
5168 033466 005 10 0 00 032023 ER5 E,32023 ;C(E) WAS CLOBBERED
5169 033467 321 14 0 00 033455 JUMPL AC+2,F32020 ;LOOP ON ERROR SWITCH^
5170
5171 003203 ADR=ADR+1
5172 000020 000000 XX=XX+XX
5173 IFE XX,<XX=1>
5174
5175 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5176 000000 V1=XX*XX
5177 001000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5178 IFL XX,<V2=XX*XX>
5179 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5180 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5181 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5182 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5183 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5184
5185 000020 000000 F32030: AA1=XX ;INITIAL C(AC)
5186 033470 200 12 0 00 044717 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5187 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5188 033471 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5189 000020 000000 AEE=XX ;INITIAL C(E)
5190 033472 200 10 0 00 044717 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5191 033473 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5192 001000 AR1=V2 ;EXPECTED RESULT IN AC
5193 033474 312 12 0 00 044650 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5194 033475 003 12 0 00 032031 ER3 AC,32031 ;HIGH PRODUCT FAILED
5195 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5196 033476 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5197 033477 004 13 0 00 032032 ER4 AC+1,32032 ;LOW PRODUCT FAILED
5198 000020 000000 AEE=XX ;INITIAL C(E)
5199 033500 312 10 0 00 044717 CAME E,[XX] ;WAS C(E) CLOBBERED?
5200 033501 005 10 0 00 032033 ER5 E,32033 ;C(E) WAS CLOBBERED
5201 033502 321 14 0 00 033470 JUMPL AC+2,F32030 ;LOOP ON ERROR SWITCH^
5202
5203 003204 ADR=ADR+1
5204 000040 000000 XX=XX+XX
5205 IFE XX,<XX=1>
5206
5207 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5208 000000 V1=XX*XX
5209 004000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5210 IFL XX,<V2=XX*XX>
5211 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5212 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5213 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5214 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5215 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5216
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0113
5217 000040 000000 F32040: AA1=XX ;INITIAL C(AC)
5218 033503 200 12 0 00 044722 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5219 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5220 033504 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5221 000040 000000 AEE=XX ;INITIAL C(E)
5222 033505 200 10 0 00 044722 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5223 033506 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5224 004000 AR1=V2 ;EXPECTED RESULT IN AC
5225 033507 312 12 0 00 044656 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5226 033510 003 12 0 00 032041 ER3 AC,32041 ;HIGH PRODUCT FAILED
5227 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5228 033511 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5229 033512 004 13 0 00 032042 ER4 AC+1,32042 ;LOW PRODUCT FAILED
5230 000040 000000 AEE=XX ;INITIAL C(E)
5231 033513 312 10 0 00 044722 CAME E,[XX] ;WAS C(E) CLOBBERED?
5232 033514 005 10 0 00 032043 ER5 E,32043 ;C(E) WAS CLOBBERED
5233 033515 321 14 0 00 033503 JUMPL AC+2,F32040 ;LOOP ON ERROR SWITCH^
5234
5235 003205 ADR=ADR+1
5236 000100 000000 XX=XX+XX
5237 IFE XX,<XX=1>
5238
5239 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5240 000000 V1=XX*XX
5241 020000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5242 IFL XX,<V2=XX*XX>
5243 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5244 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5245 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5246 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5247 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5248
5249 000100 000000 F32050: AA1=XX ;INITIAL C(AC)
5250 033516 200 12 0 00 044725 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5251 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5252 033517 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5253 000100 000000 AEE=XX ;INITIAL C(E)
5254 033520 200 10 0 00 044725 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5255 033521 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5256 020000 AR1=V2 ;EXPECTED RESULT IN AC
5257 033522 312 12 0 00 044664 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5258 033523 003 12 0 00 032051 ER3 AC,32051 ;HIGH PRODUCT FAILED
5259 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5260 033524 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5261 033525 004 13 0 00 032052 ER4 AC+1,32052 ;LOW PRODUCT FAILED
5262 000100 000000 AEE=XX ;INITIAL C(E)
5263 033526 312 10 0 00 044725 CAME E,[XX] ;WAS C(E) CLOBBERED?
5264 033527 005 10 0 00 032053 ER5 E,32053 ;C(E) WAS CLOBBERED
5265 033530 321 14 0 00 033516 JUMPL AC+2,F32050 ;LOOP ON ERROR SWITCH^
5266
5267 003206 ADR=ADR+1
5268 000200 000000 XX=XX+XX
5269 IFE XX,<XX=1>
5270
5271 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0114
5272 000000 V1=XX*XX
5273 100000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5274 IFL XX,<V2=XX*XX>
5275 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5276 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5277 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5278 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5279 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5280
5281 000200 000000 F32060: AA1=XX ;INITIAL C(AC)
5282 033531 200 12 0 00 044730 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5283 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5284 033532 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5285 000200 000000 AEE=XX ;INITIAL C(E)
5286 033533 200 10 0 00 044730 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5287 033534 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5288 100000 AR1=V2 ;EXPECTED RESULT IN AC
5289 033535 312 12 0 00 044672 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5290 033536 003 12 0 00 032061 ER3 AC,32061 ;HIGH PRODUCT FAILED
5291 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5292 033537 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5293 033540 004 13 0 00 032062 ER4 AC+1,32062 ;LOW PRODUCT FAILED
5294 000200 000000 AEE=XX ;INITIAL C(E)
5295 033541 312 10 0 00 044730 CAME E,[XX] ;WAS C(E) CLOBBERED?
5296 033542 005 10 0 00 032063 ER5 E,32063 ;C(E) WAS CLOBBERED
5297 033543 321 14 0 00 033531 JUMPL AC+2,F32060 ;LOOP ON ERROR SWITCH^
5298
5299 003207 ADR=ADR+1
5300 000400 000000 XX=XX+XX
5301 IFE XX,<XX=1>
5302
5303 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5304 000000 V1=XX*XX
5305 400000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5306 IFL XX,<V2=XX*XX>
5307 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5308 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5309 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5310 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5311 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5312
5313 000400 000000 F32070: AA1=XX ;INITIAL C(AC)
5314 033544 200 12 0 00 044733 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5315 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5316 033545 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5317 000400 000000 AEE=XX ;INITIAL C(E)
5318 033546 200 10 0 00 044733 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5319 033547 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5320 400000 AR1=V2 ;EXPECTED RESULT IN AC
5321 033550 312 12 0 00 044700 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5322 033551 003 12 0 00 032071 ER3 AC,32071 ;HIGH PRODUCT FAILED
5323 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5324 033552 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5325 033553 004 13 0 00 032072 ER4 AC+1,32072 ;LOW PRODUCT FAILED
5326 000400 000000 AEE=XX ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0115
5327 033554 312 10 0 00 044733 CAME E,[XX] ;WAS C(E) CLOBBERED?
5328 033555 005 10 0 00 032073 ER5 E,32073 ;C(E) WAS CLOBBERED
5329 033556 321 14 0 00 033544 JUMPL AC+2,F32070 ;LOOP ON ERROR SWITCH^
5330
5331 003210 ADR=ADR+1
5332 001000 000000 XX=XX+XX
5333 IFE XX,<XX=1>
5334
5335 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5336 000000 V1=XX*XX
5337 000002 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5338 IFL XX,<V2=XX*XX>
5339 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5340 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5341 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5342 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5343 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5344
5345 001000 000000 F32100: AA1=XX ;INITIAL C(AC)
5346 033557 200 12 0 00 044736 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5347 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5348 033560 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5349 001000 000000 AEE=XX ;INITIAL C(E)
5350 033561 200 10 0 00 044736 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5351 033562 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5352 000002 000000 AR1=V2 ;EXPECTED RESULT IN AC
5353 033563 312 12 0 00 044706 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5354 033564 003 12 0 00 032101 ER3 AC,32101 ;HIGH PRODUCT FAILED
5355 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5356 033565 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5357 033566 004 13 0 00 032102 ER4 AC+1,32102 ;LOW PRODUCT FAILED
5358 001000 000000 AEE=XX ;INITIAL C(E)
5359 033567 312 10 0 00 044736 CAME E,[XX] ;WAS C(E) CLOBBERED?
5360 033570 005 10 0 00 032103 ER5 E,32103 ;C(E) WAS CLOBBERED
5361 033571 321 14 0 00 033557 JUMPL AC+2,F32100 ;LOOP ON ERROR SWITCH^
5362
5363 003211 ADR=ADR+1
5364 002000 000000 XX=XX+XX
5365 IFE XX,<XX=1>
5366
5367 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5368 000000 V1=XX*XX
5369 000010 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5370 IFL XX,<V2=XX*XX>
5371 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5372 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5373 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5374 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5375 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5376
5377 002000 000000 F32110: AA1=XX ;INITIAL C(AC)
5378 033572 200 12 0 00 044741 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5379 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5380 033573 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5381 002000 000000 AEE=XX ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0116
5382 033574 200 10 0 00 044741 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5383 033575 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5384 000010 000000 AR1=V2 ;EXPECTED RESULT IN AC
5385 033576 312 12 0 00 044714 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5386 033577 003 12 0 00 032111 ER3 AC,32111 ;HIGH PRODUCT FAILED
5387 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5388 033600 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5389 033601 004 13 0 00 032112 ER4 AC+1,32112 ;LOW PRODUCT FAILED
5390 002000 000000 AEE=XX ;INITIAL C(E)
5391 033602 312 10 0 00 044741 CAME E,[XX] ;WAS C(E) CLOBBERED?
5392 033603 005 10 0 00 032113 ER5 E,32113 ;C(E) WAS CLOBBERED
5393 033604 321 14 0 00 033572 JUMPL AC+2,F32110 ;LOOP ON ERROR SWITCH^
5394
5395 003212 ADR=ADR+1
5396 004000 000000 XX=XX+XX
5397 IFE XX,<XX=1>
5398
5399 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5400 000000 V1=XX*XX
5401 000040 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5402 IFL XX,<V2=XX*XX>
5403 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5404 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5405 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5406 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5407 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5408
5409 004000 000000 F32120: AA1=XX ;INITIAL C(AC)
5410 033605 200 12 0 00 044744 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5411 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5412 033606 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5413 004000 000000 AEE=XX ;INITIAL C(E)
5414 033607 200 10 0 00 044744 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5415 033610 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5416 000040 000000 AR1=V2 ;EXPECTED RESULT IN AC
5417 033611 312 12 0 00 044722 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5418 033612 003 12 0 00 032121 ER3 AC,32121 ;HIGH PRODUCT FAILED
5419 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5420 033613 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5421 033614 004 13 0 00 032122 ER4 AC+1,32122 ;LOW PRODUCT FAILED
5422 004000 000000 AEE=XX ;INITIAL C(E)
5423 033615 312 10 0 00 044744 CAME E,[XX] ;WAS C(E) CLOBBERED?
5424 033616 005 10 0 00 032123 ER5 E,32123 ;C(E) WAS CLOBBERED
5425 033617 321 14 0 00 033605 JUMPL AC+2,F32120 ;LOOP ON ERROR SWITCH^
5426
5427 003213 ADR=ADR+1
5428 010000 000000 XX=XX+XX
5429 IFE XX,<XX=1>
5430
5431 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5432 000000 V1=XX*XX
5433 000200 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5434 IFL XX,<V2=XX*XX>
5435 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5436 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0117
5437 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5438 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5439 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5440
5441 010000 000000 F32130: AA1=XX ;INITIAL C(AC)
5442 033620 200 12 0 00 044747 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5443 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5444 033621 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5445 010000 000000 AEE=XX ;INITIAL C(E)
5446 033622 200 10 0 00 044747 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5447 033623 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5448 000200 000000 AR1=V2 ;EXPECTED RESULT IN AC
5449 033624 312 12 0 00 044730 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5450 033625 003 12 0 00 032131 ER3 AC,32131 ;HIGH PRODUCT FAILED
5451 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5452 033626 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5453 033627 004 13 0 00 032132 ER4 AC+1,32132 ;LOW PRODUCT FAILED
5454 010000 000000 AEE=XX ;INITIAL C(E)
5455 033630 312 10 0 00 044747 CAME E,[XX] ;WAS C(E) CLOBBERED?
5456 033631 005 10 0 00 032133 ER5 E,32133 ;C(E) WAS CLOBBERED
5457 033632 321 14 0 00 033620 JUMPL AC+2,F32130 ;LOOP ON ERROR SWITCH^
5458
5459 003214 ADR=ADR+1
5460 020000 000000 XX=XX+XX
5461 IFE XX,<XX=1>
5462
5463 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5464 000000 V1=XX*XX
5465 001000 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5466 IFL XX,<V2=XX*XX>
5467 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5468 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5469 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5470 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5471 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5472
5473 020000 000000 F32140: AA1=XX ;INITIAL C(AC)
5474 033633 200 12 0 00 044752 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5475 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5476 033634 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5477 020000 000000 AEE=XX ;INITIAL C(E)
5478 033635 200 10 0 00 044752 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5479 033636 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5480 001000 000000 AR1=V2 ;EXPECTED RESULT IN AC
5481 033637 312 12 0 00 044736 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5482 033640 003 12 0 00 032141 ER3 AC,32141 ;HIGH PRODUCT FAILED
5483 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5484 033641 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5485 033642 004 13 0 00 032142 ER4 AC+1,32142 ;LOW PRODUCT FAILED
5486 020000 000000 AEE=XX ;INITIAL C(E)
5487 033643 312 10 0 00 044752 CAME E,[XX] ;WAS C(E) CLOBBERED?
5488 033644 005 10 0 00 032143 ER5 E,32143 ;C(E) WAS CLOBBERED
5489 033645 321 14 0 00 033633 JUMPL AC+2,F32140 ;LOOP ON ERROR SWITCH^
5490
5491 003215 ADR=ADR+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0118
5492 040000 000000 XX=XX+XX
5493 IFE XX,<XX=1>
5494
5495 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5496 000000 V1=XX*XX
5497 004000 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5498 IFL XX,<V2=XX*XX>
5499 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5500 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5501 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5502 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5503 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5504
5505 040000 000000 F32150: AA1=XX ;INITIAL C(AC)
5506 033646 200 12 0 00 044755 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5507 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5508 033647 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5509 040000 000000 AEE=XX ;INITIAL C(E)
5510 033650 200 10 0 00 044755 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5511 033651 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5512 004000 000000 AR1=V2 ;EXPECTED RESULT IN AC
5513 033652 312 12 0 00 044744 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5514 033653 003 12 0 00 032151 ER3 AC,32151 ;HIGH PRODUCT FAILED
5515 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5516 033654 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5517 033655 004 13 0 00 032152 ER4 AC+1,32152 ;LOW PRODUCT FAILED
5518 040000 000000 AEE=XX ;INITIAL C(E)
5519 033656 312 10 0 00 044755 CAME E,[XX] ;WAS C(E) CLOBBERED?
5520 033657 005 10 0 00 032153 ER5 E,32153 ;C(E) WAS CLOBBERED
5521 033660 321 14 0 00 033646 JUMPL AC+2,F32150 ;LOOP ON ERROR SWITCH^
5522
5523 003216 ADR=ADR+1
5524 100000 000000 XX=XX+XX
5525 IFE XX,<XX=1>
5526
5527 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5528 000000 V1=XX*XX
5529 020000 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5530 IFL XX,<V2=XX*XX>
5531 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5532 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5533 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5534 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5535 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5536
5537 100000 000000 F32160: AA1=XX ;INITIAL C(AC)
5538 033661 200 12 0 00 044760 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5539 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5540 033662 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5541 100000 000000 AEE=XX ;INITIAL C(E)
5542 033663 200 10 0 00 044760 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5543 033664 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5544 020000 000000 AR1=V2 ;EXPECTED RESULT IN AC
5545 033665 312 12 0 00 044752 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5546 033666 003 12 0 00 032161 ER3 AC,32161 ;HIGH PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0119
5547 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5548 033667 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5549 033670 004 13 0 00 032162 ER4 AC+1,32162 ;LOW PRODUCT FAILED
5550 100000 000000 AEE=XX ;INITIAL C(E)
5551 033671 312 10 0 00 044760 CAME E,[XX] ;WAS C(E) CLOBBERED?
5552 033672 005 10 0 00 032163 ER5 E,32163 ;C(E) WAS CLOBBERED
5553 033673 321 14 0 00 033661 JUMPL AC+2,F32160 ;LOOP ON ERROR SWITCH^
5554
5555 003217 ADR=ADR+1
5556 200000 000000 XX=XX+XX
5557 IFE XX,<XX=1>
5558
5559 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5560 000000 V1=XX*XX
5561 100000 000000 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5562 IFL XX,<V2=XX*XX>
5563 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5564 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5565 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5566 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5567 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5568
5569 200000 000000 F32170: AA1=XX ;INITIAL C(AC)
5570 033674 200 12 0 00 044763 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5571 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5572 033675 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5573 200000 000000 AEE=XX ;INITIAL C(E)
5574 033676 200 10 0 00 044763 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5575 033677 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5576 100000 000000 AR1=V2 ;EXPECTED RESULT IN AC
5577 033700 312 12 0 00 044760 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5578 033701 003 12 0 00 032171 ER3 AC,32171 ;HIGH PRODUCT FAILED
5579 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5580 033702 312 13 0 00 044615 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5581 033703 004 13 0 00 032172 ER4 AC+1,32172 ;LOW PRODUCT FAILED
5582 200000 000000 AEE=XX ;INITIAL C(E)
5583 033704 312 10 0 00 044763 CAME E,[XX] ;WAS C(E) CLOBBERED?
5584 033705 005 10 0 00 032173 ER5 E,32173 ;C(E) WAS CLOBBERED
5585 033706 321 14 0 00 033674 JUMPL AC+2,F32170 ;LOOP ON ERROR SWITCH^
5586
5587 003220 ADR=ADR+1
5588 400000 000000 XX=XX+XX
5589 IFE XX,<XX=1>
5590
5591 ;MULTIPLY A FLOATING 1 BY ITSELF FOR A SQUARE PRODUCT
5592 400000 000000 V1=XX*XX
5593 IFG XX,<V2=<<<XX_-22>*<XX_-22>>_1>>
5594 400000 000000 IFL XX,<V2=XX*XX>
5595 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5596 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5597 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5598 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5599 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5600
5601 400000 000000 F32200: AA1=XX ;INITIAL C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 6-21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0120
5602 033707 200 12 0 00 044765 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5603 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5604 033710 200 13 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5605 400000 000000 AEE=XX ;INITIAL C(E)
5606 033711 200 10 0 00 044765 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5607 033712 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5608 400000 000000 AR1=V2 ;EXPECTED RESULT IN AC
5609 033713 312 12 0 00 044765 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5610 033714 003 12 0 00 032201 ER3 AC,32201 ;HIGH PRODUCT FAILED
5611 400000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
5612 033715 312 13 0 00 044765 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5613 033716 004 13 0 00 032202 ER4 AC+1,32202 ;LOW PRODUCT FAILED
5614 400000 000000 AEE=XX ;INITIAL C(E)
5615 033717 312 10 0 00 044765 CAME E,[XX] ;WAS C(E) CLOBBERED?
5616 033720 005 10 0 00 032203 ER5 E,32203 ;C(E) WAS CLOBBERED
5617 033721 321 14 0 00 033707 JUMPL AC+2,F32200 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0121
5618 000011 AC=11
5619 000007 E=<AC-2>&17
5620 SAVEAC (1,1)^
5621 033722 201 13 0 00 033722 MOVEI AC+2,. ;SAVE TEST PC
5622 033723 202 13 0 00 030051 MOVEM AC+2,TESTPC
5623 033724 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
5624 033725 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
5625 000000 XX=0
5626
5627 REPEAT ^D36,<
5628 ADR=ADR+1
5629 XX=XX+XX+1
5630 IFE <XX-1>,<XX=-2>
5631
5632 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5633 V1=XX*XX
5634 IFE <XX&1B1>,<V2A=1>
5635 IFN <XX&1B1>,<V2A=0>
5636 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5637 IFG XX,<V2=XX-1>
5638 MOP1 (\ADR,XX,-1,XX,V2,V1)>
5639
5640 003221 ADR=ADR+1
5641 000001 XX=XX+XX+1
5642 777777 777776 IFE <XX-1>,<XX=-2>
5643
5644 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5645 000004 V1=XX*XX
5646 IFE <XX&1B1>,<V2A=1>
5647 000000 IFN <XX&1B1>,<V2A=0>
5648 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5649 IFG XX,<V2=XX-1>
5650 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5651 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5652 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5653 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5654 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5655
5656 777777 777776 F32210: AA1=XX ;INITIAL C(AC)
5657 033726 200 11 0 00 044621 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5658 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5659 033727 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5660 777777 777776 AEE=XX ;INITIAL C(E)
5661 033730 200 07 0 00 044621 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5662 033731 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5663 000000 AR1=V2 ;EXPECTED RESULT IN AC
5664 033732 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5665 033733 003 11 0 00 032211 ER3 AC,32211 ;HIGH PRODUCT FAILED
5666 000004 AR2=V1 ;EXPECTED RESULT IN AC+1
5667 033734 312 12 0 00 044623 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5668 033735 004 12 0 00 032212 ER4 AC+1,32212 ;LOW PRODUCT FAILED
5669 777777 777776 AEE=XX ;INITIAL C(E)
5670 033736 312 07 0 00 044621 CAME E,[XX] ;WAS C(E) CLOBBERED?
5671 033737 005 07 0 00 032213 ER5 E,32213 ;C(E) WAS CLOBBERED
5672 033740 321 13 0 00 033726 JUMPL AC+2,F32210 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0122
5673
5674 003222 ADR=ADR+1
5675 777777 777775 XX=XX+XX+1
5676 IFE <XX-1>,<XX=-2>
5677
5678 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5679 000011 V1=XX*XX
5680 IFE <XX&1B1>,<V2A=1>
5681 000000 IFN <XX&1B1>,<V2A=0>
5682 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5683 IFG XX,<V2=XX-1>
5684 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5685 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5686 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5687 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5688 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5689
5690 777777 777775 F32220: AA1=XX ;INITIAL C(AC)
5691 033741 200 11 0 00 044624 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5692 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5693 033742 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5694 777777 777775 AEE=XX ;INITIAL C(E)
5695 033743 200 07 0 00 044624 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5696 033744 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5697 000000 AR1=V2 ;EXPECTED RESULT IN AC
5698 033745 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5699 033746 003 11 0 00 032221 ER3 AC,32221 ;HIGH PRODUCT FAILED
5700 000011 AR2=V1 ;EXPECTED RESULT IN AC+1
5701 033747 312 12 0 00 045070 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5702 033750 004 12 0 00 032222 ER4 AC+1,32222 ;LOW PRODUCT FAILED
5703 777777 777775 AEE=XX ;INITIAL C(E)
5704 033751 312 07 0 00 044624 CAME E,[XX] ;WAS C(E) CLOBBERED?
5705 033752 005 07 0 00 032223 ER5 E,32223 ;C(E) WAS CLOBBERED
5706 033753 321 13 0 00 033741 JUMPL AC+2,F32220 ;LOOP ON ERROR SWITCH^
5707
5708 003223 ADR=ADR+1
5709 777777 777773 XX=XX+XX+1
5710 IFE <XX-1>,<XX=-2>
5711
5712 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5713 000031 V1=XX*XX
5714 IFE <XX&1B1>,<V2A=1>
5715 000000 IFN <XX&1B1>,<V2A=0>
5716 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5717 IFG XX,<V2=XX-1>
5718 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5719 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5720 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5721 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5722 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5723
5724 777777 777773 F32230: AA1=XX ;INITIAL C(AC)
5725 033754 200 11 0 00 045071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5726 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5727 033755 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0123
5728 777777 777773 AEE=XX ;INITIAL C(E)
5729 033756 200 07 0 00 045071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5730 033757 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5731 000000 AR1=V2 ;EXPECTED RESULT IN AC
5732 033760 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5733 033761 003 11 0 00 032231 ER3 AC,32231 ;HIGH PRODUCT FAILED
5734 000031 AR2=V1 ;EXPECTED RESULT IN AC+1
5735 033762 312 12 0 00 045072 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5736 033763 004 12 0 00 032232 ER4 AC+1,32232 ;LOW PRODUCT FAILED
5737 777777 777773 AEE=XX ;INITIAL C(E)
5738 033764 312 07 0 00 045071 CAME E,[XX] ;WAS C(E) CLOBBERED?
5739 033765 005 07 0 00 032233 ER5 E,32233 ;C(E) WAS CLOBBERED
5740 033766 321 13 0 00 033754 JUMPL AC+2,F32230 ;LOOP ON ERROR SWITCH^
5741
5742 003224 ADR=ADR+1
5743 777777 777767 XX=XX+XX+1
5744 IFE <XX-1>,<XX=-2>
5745
5746 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5747 000121 V1=XX*XX
5748 IFE <XX&1B1>,<V2A=1>
5749 000000 IFN <XX&1B1>,<V2A=0>
5750 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5751 IFG XX,<V2=XX-1>
5752 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5753 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5754 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5755 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5756 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5757
5758 777777 777767 F32240: AA1=XX ;INITIAL C(AC)
5759 033767 200 11 0 00 045073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5760 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5761 033770 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5762 777777 777767 AEE=XX ;INITIAL C(E)
5763 033771 200 07 0 00 045073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5764 033772 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5765 000000 AR1=V2 ;EXPECTED RESULT IN AC
5766 033773 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5767 033774 003 11 0 00 032241 ER3 AC,32241 ;HIGH PRODUCT FAILED
5768 000121 AR2=V1 ;EXPECTED RESULT IN AC+1
5769 033775 312 12 0 00 045074 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5770 033776 004 12 0 00 032242 ER4 AC+1,32242 ;LOW PRODUCT FAILED
5771 777777 777767 AEE=XX ;INITIAL C(E)
5772 033777 312 07 0 00 045073 CAME E,[XX] ;WAS C(E) CLOBBERED?
5773 034000 005 07 0 00 032243 ER5 E,32243 ;C(E) WAS CLOBBERED
5774 034001 321 13 0 00 033767 JUMPL AC+2,F32240 ;LOOP ON ERROR SWITCH^
5775
5776 003225 ADR=ADR+1
5777 777777 777757 XX=XX+XX+1
5778 IFE <XX-1>,<XX=-2>
5779
5780 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5781 000441 V1=XX*XX
5782 IFE <XX&1B1>,<V2A=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0124
5783 000000 IFN <XX&1B1>,<V2A=0>
5784 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5785 IFG XX,<V2=XX-1>
5786 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5787 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5788 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5789 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5790 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5791
5792 777777 777757 F32250: AA1=XX ;INITIAL C(AC)
5793 034002 200 11 0 00 045075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5794 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5795 034003 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5796 777777 777757 AEE=XX ;INITIAL C(E)
5797 034004 200 07 0 00 045075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5798 034005 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5799 000000 AR1=V2 ;EXPECTED RESULT IN AC
5800 034006 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5801 034007 003 11 0 00 032251 ER3 AC,32251 ;HIGH PRODUCT FAILED
5802 000441 AR2=V1 ;EXPECTED RESULT IN AC+1
5803 034010 312 12 0 00 045076 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5804 034011 004 12 0 00 032252 ER4 AC+1,32252 ;LOW PRODUCT FAILED
5805 777777 777757 AEE=XX ;INITIAL C(E)
5806 034012 312 07 0 00 045075 CAME E,[XX] ;WAS C(E) CLOBBERED?
5807 034013 005 07 0 00 032253 ER5 E,32253 ;C(E) WAS CLOBBERED
5808 034014 321 13 0 00 034002 JUMPL AC+2,F32250 ;LOOP ON ERROR SWITCH^
5809
5810 003226 ADR=ADR+1
5811 777777 777737 XX=XX+XX+1
5812 IFE <XX-1>,<XX=-2>
5813
5814 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5815 002101 V1=XX*XX
5816 IFE <XX&1B1>,<V2A=1>
5817 000000 IFN <XX&1B1>,<V2A=0>
5818 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5819 IFG XX,<V2=XX-1>
5820 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5821 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5822 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5823 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5824 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5825
5826 777777 777737 F32260: AA1=XX ;INITIAL C(AC)
5827 034015 200 11 0 00 045077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5828 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5829 034016 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5830 777777 777737 AEE=XX ;INITIAL C(E)
5831 034017 200 07 0 00 045077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5832 034020 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5833 000000 AR1=V2 ;EXPECTED RESULT IN AC
5834 034021 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5835 034022 003 11 0 00 032261 ER3 AC,32261 ;HIGH PRODUCT FAILED
5836 002101 AR2=V1 ;EXPECTED RESULT IN AC+1
5837 034023 312 12 0 00 045100 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0125
5838 034024 004 12 0 00 032262 ER4 AC+1,32262 ;LOW PRODUCT FAILED
5839 777777 777737 AEE=XX ;INITIAL C(E)
5840 034025 312 07 0 00 045077 CAME E,[XX] ;WAS C(E) CLOBBERED?
5841 034026 005 07 0 00 032263 ER5 E,32263 ;C(E) WAS CLOBBERED
5842 034027 321 13 0 00 034015 JUMPL AC+2,F32260 ;LOOP ON ERROR SWITCH^
5843
5844 003227 ADR=ADR+1
5845 777777 777677 XX=XX+XX+1
5846 IFE <XX-1>,<XX=-2>
5847
5848 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5849 010201 V1=XX*XX
5850 IFE <XX&1B1>,<V2A=1>
5851 000000 IFN <XX&1B1>,<V2A=0>
5852 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5853 IFG XX,<V2=XX-1>
5854 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5855 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5856 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5857 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5858 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5859
5860 777777 777677 F32270: AA1=XX ;INITIAL C(AC)
5861 034030 200 11 0 00 045101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5862 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5863 034031 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5864 777777 777677 AEE=XX ;INITIAL C(E)
5865 034032 200 07 0 00 045101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5866 034033 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5867 000000 AR1=V2 ;EXPECTED RESULT IN AC
5868 034034 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5869 034035 003 11 0 00 032271 ER3 AC,32271 ;HIGH PRODUCT FAILED
5870 010201 AR2=V1 ;EXPECTED RESULT IN AC+1
5871 034036 312 12 0 00 045102 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5872 034037 004 12 0 00 032272 ER4 AC+1,32272 ;LOW PRODUCT FAILED
5873 777777 777677 AEE=XX ;INITIAL C(E)
5874 034040 312 07 0 00 045101 CAME E,[XX] ;WAS C(E) CLOBBERED?
5875 034041 005 07 0 00 032273 ER5 E,32273 ;C(E) WAS CLOBBERED
5876 034042 321 13 0 00 034030 JUMPL AC+2,F32270 ;LOOP ON ERROR SWITCH^
5877
5878 003230 ADR=ADR+1
5879 777777 777577 XX=XX+XX+1
5880 IFE <XX-1>,<XX=-2>
5881
5882 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5883 040401 V1=XX*XX
5884 IFE <XX&1B1>,<V2A=1>
5885 000000 IFN <XX&1B1>,<V2A=0>
5886 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5887 IFG XX,<V2=XX-1>
5888 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5889 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5890 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5891 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5892 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0126
5893
5894 777777 777577 F32300: AA1=XX ;INITIAL C(AC)
5895 034043 200 11 0 00 045103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5896 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5897 034044 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5898 777777 777577 AEE=XX ;INITIAL C(E)
5899 034045 200 07 0 00 045103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5900 034046 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5901 000000 AR1=V2 ;EXPECTED RESULT IN AC
5902 034047 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5903 034050 003 11 0 00 032301 ER3 AC,32301 ;HIGH PRODUCT FAILED
5904 040401 AR2=V1 ;EXPECTED RESULT IN AC+1
5905 034051 312 12 0 00 045104 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5906 034052 004 12 0 00 032302 ER4 AC+1,32302 ;LOW PRODUCT FAILED
5907 777777 777577 AEE=XX ;INITIAL C(E)
5908 034053 312 07 0 00 045103 CAME E,[XX] ;WAS C(E) CLOBBERED?
5909 034054 005 07 0 00 032303 ER5 E,32303 ;C(E) WAS CLOBBERED
5910 034055 321 13 0 00 034043 JUMPL AC+2,F32300 ;LOOP ON ERROR SWITCH^
5911
5912 003231 ADR=ADR+1
5913 777777 777377 XX=XX+XX+1
5914 IFE <XX-1>,<XX=-2>
5915
5916 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5917 201001 V1=XX*XX
5918 IFE <XX&1B1>,<V2A=1>
5919 000000 IFN <XX&1B1>,<V2A=0>
5920 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5921 IFG XX,<V2=XX-1>
5922 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5923 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5924 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5925 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5926 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5927
5928 777777 777377 F32310: AA1=XX ;INITIAL C(AC)
5929 034056 200 11 0 00 045105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5930 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5931 034057 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5932 777777 777377 AEE=XX ;INITIAL C(E)
5933 034060 200 07 0 00 045105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5934 034061 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5935 000000 AR1=V2 ;EXPECTED RESULT IN AC
5936 034062 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5937 034063 003 11 0 00 032311 ER3 AC,32311 ;HIGH PRODUCT FAILED
5938 201001 AR2=V1 ;EXPECTED RESULT IN AC+1
5939 034064 312 12 0 00 045106 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5940 034065 004 12 0 00 032312 ER4 AC+1,32312 ;LOW PRODUCT FAILED
5941 777777 777377 AEE=XX ;INITIAL C(E)
5942 034066 312 07 0 00 045105 CAME E,[XX] ;WAS C(E) CLOBBERED?
5943 034067 005 07 0 00 032313 ER5 E,32313 ;C(E) WAS CLOBBERED
5944 034070 321 13 0 00 034056 JUMPL AC+2,F32310 ;LOOP ON ERROR SWITCH^
5945
5946 003232 ADR=ADR+1
5947 777777 776777 XX=XX+XX+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0127
5948 IFE <XX-1>,<XX=-2>
5949
5950 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5951 000001 002001 V1=XX*XX
5952 IFE <XX&1B1>,<V2A=1>
5953 000000 IFN <XX&1B1>,<V2A=0>
5954 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5955 IFG XX,<V2=XX-1>
5956 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5957 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5958 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5959 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5960 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5961
5962 777777 776777 F32320: AA1=XX ;INITIAL C(AC)
5963 034071 200 11 0 00 045107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5964 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5965 034072 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
5966 777777 776777 AEE=XX ;INITIAL C(E)
5967 034073 200 07 0 00 045107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
5968 034074 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5969 000000 AR1=V2 ;EXPECTED RESULT IN AC
5970 034075 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
5971 034076 003 11 0 00 032321 ER3 AC,32321 ;HIGH PRODUCT FAILED
5972 000001 002001 AR2=V1 ;EXPECTED RESULT IN AC+1
5973 034077 312 12 0 00 045110 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
5974 034100 004 12 0 00 032322 ER4 AC+1,32322 ;LOW PRODUCT FAILED
5975 777777 776777 AEE=XX ;INITIAL C(E)
5976 034101 312 07 0 00 045107 CAME E,[XX] ;WAS C(E) CLOBBERED?
5977 034102 005 07 0 00 032323 ER5 E,32323 ;C(E) WAS CLOBBERED
5978 034103 321 13 0 00 034071 JUMPL AC+2,F32320 ;LOOP ON ERROR SWITCH^
5979
5980 003233 ADR=ADR+1
5981 777777 775777 XX=XX+XX+1
5982 IFE <XX-1>,<XX=-2>
5983
5984 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
5985 000004 004001 V1=XX*XX
5986 IFE <XX&1B1>,<V2A=1>
5987 000000 IFN <XX&1B1>,<V2A=0>
5988 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
5989 IFG XX,<V2=XX-1>
5990 MOP1 (\ADR,XX,-1,XX,V2,V1)^
5991 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5992 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5993 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
5994 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5995
5996 777777 775777 F32330: AA1=XX ;INITIAL C(AC)
5997 034104 200 11 0 00 045111 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5998 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5999 034105 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6000 777777 775777 AEE=XX ;INITIAL C(E)
6001 034106 200 07 0 00 045111 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6002 034107 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0128
6003 000000 AR1=V2 ;EXPECTED RESULT IN AC
6004 034110 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6005 034111 003 11 0 00 032331 ER3 AC,32331 ;HIGH PRODUCT FAILED
6006 000004 004001 AR2=V1 ;EXPECTED RESULT IN AC+1
6007 034112 312 12 0 00 045112 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6008 034113 004 12 0 00 032332 ER4 AC+1,32332 ;LOW PRODUCT FAILED
6009 777777 775777 AEE=XX ;INITIAL C(E)
6010 034114 312 07 0 00 045111 CAME E,[XX] ;WAS C(E) CLOBBERED?
6011 034115 005 07 0 00 032333 ER5 E,32333 ;C(E) WAS CLOBBERED
6012 034116 321 13 0 00 034104 JUMPL AC+2,F32330 ;LOOP ON ERROR SWITCH^
6013
6014 003234 ADR=ADR+1
6015 777777 773777 XX=XX+XX+1
6016 IFE <XX-1>,<XX=-2>
6017
6018 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6019 000020 010001 V1=XX*XX
6020 IFE <XX&1B1>,<V2A=1>
6021 000000 IFN <XX&1B1>,<V2A=0>
6022 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6023 IFG XX,<V2=XX-1>
6024 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6025 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6026 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6027 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6028 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6029
6030 777777 773777 F32340: AA1=XX ;INITIAL C(AC)
6031 034117 200 11 0 00 045113 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6032 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6033 034120 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6034 777777 773777 AEE=XX ;INITIAL C(E)
6035 034121 200 07 0 00 045113 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6036 034122 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6037 000000 AR1=V2 ;EXPECTED RESULT IN AC
6038 034123 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6039 034124 003 11 0 00 032341 ER3 AC,32341 ;HIGH PRODUCT FAILED
6040 000020 010001 AR2=V1 ;EXPECTED RESULT IN AC+1
6041 034125 312 12 0 00 045114 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6042 034126 004 12 0 00 032342 ER4 AC+1,32342 ;LOW PRODUCT FAILED
6043 777777 773777 AEE=XX ;INITIAL C(E)
6044 034127 312 07 0 00 045113 CAME E,[XX] ;WAS C(E) CLOBBERED?
6045 034130 005 07 0 00 032343 ER5 E,32343 ;C(E) WAS CLOBBERED
6046 034131 321 13 0 00 034117 JUMPL AC+2,F32340 ;LOOP ON ERROR SWITCH^
6047
6048 003235 ADR=ADR+1
6049 777777 767777 XX=XX+XX+1
6050 IFE <XX-1>,<XX=-2>
6051
6052 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6053 000100 020001 V1=XX*XX
6054 IFE <XX&1B1>,<V2A=1>
6055 000000 IFN <XX&1B1>,<V2A=0>
6056 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6057 IFG XX,<V2=XX-1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0129
6058 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6059 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6060 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6061 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6062 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6063
6064 777777 767777 F32350: AA1=XX ;INITIAL C(AC)
6065 034132 200 11 0 00 045115 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6066 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6067 034133 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6068 777777 767777 AEE=XX ;INITIAL C(E)
6069 034134 200 07 0 00 045115 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6070 034135 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6071 000000 AR1=V2 ;EXPECTED RESULT IN AC
6072 034136 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6073 034137 003 11 0 00 032351 ER3 AC,32351 ;HIGH PRODUCT FAILED
6074 000100 020001 AR2=V1 ;EXPECTED RESULT IN AC+1
6075 034140 312 12 0 00 045116 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6076 034141 004 12 0 00 032352 ER4 AC+1,32352 ;LOW PRODUCT FAILED
6077 777777 767777 AEE=XX ;INITIAL C(E)
6078 034142 312 07 0 00 045115 CAME E,[XX] ;WAS C(E) CLOBBERED?
6079 034143 005 07 0 00 032353 ER5 E,32353 ;C(E) WAS CLOBBERED
6080 034144 321 13 0 00 034132 JUMPL AC+2,F32350 ;LOOP ON ERROR SWITCH^
6081
6082 003236 ADR=ADR+1
6083 777777 757777 XX=XX+XX+1
6084 IFE <XX-1>,<XX=-2>
6085
6086 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6087 000400 040001 V1=XX*XX
6088 IFE <XX&1B1>,<V2A=1>
6089 000000 IFN <XX&1B1>,<V2A=0>
6090 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6091 IFG XX,<V2=XX-1>
6092 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6093 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6094 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6095 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6096 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6097
6098 777777 757777 F32360: AA1=XX ;INITIAL C(AC)
6099 034145 200 11 0 00 045117 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6100 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6101 034146 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6102 777777 757777 AEE=XX ;INITIAL C(E)
6103 034147 200 07 0 00 045117 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6104 034150 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6105 000000 AR1=V2 ;EXPECTED RESULT IN AC
6106 034151 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6107 034152 003 11 0 00 032361 ER3 AC,32361 ;HIGH PRODUCT FAILED
6108 000400 040001 AR2=V1 ;EXPECTED RESULT IN AC+1
6109 034153 312 12 0 00 045120 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6110 034154 004 12 0 00 032362 ER4 AC+1,32362 ;LOW PRODUCT FAILED
6111 777777 757777 AEE=XX ;INITIAL C(E)
6112 034155 312 07 0 00 045117 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0130
6113 034156 005 07 0 00 032363 ER5 E,32363 ;C(E) WAS CLOBBERED
6114 034157 321 13 0 00 034145 JUMPL AC+2,F32360 ;LOOP ON ERROR SWITCH^
6115
6116 003237 ADR=ADR+1
6117 777777 737777 XX=XX+XX+1
6118 IFE <XX-1>,<XX=-2>
6119
6120 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6121 002000 100001 V1=XX*XX
6122 IFE <XX&1B1>,<V2A=1>
6123 000000 IFN <XX&1B1>,<V2A=0>
6124 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6125 IFG XX,<V2=XX-1>
6126 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6127 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6128 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6129 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6130 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6131
6132 777777 737777 F32370: AA1=XX ;INITIAL C(AC)
6133 034160 200 11 0 00 045121 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6134 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6135 034161 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6136 777777 737777 AEE=XX ;INITIAL C(E)
6137 034162 200 07 0 00 045121 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6138 034163 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6139 000000 AR1=V2 ;EXPECTED RESULT IN AC
6140 034164 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6141 034165 003 11 0 00 032371 ER3 AC,32371 ;HIGH PRODUCT FAILED
6142 002000 100001 AR2=V1 ;EXPECTED RESULT IN AC+1
6143 034166 312 12 0 00 045122 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6144 034167 004 12 0 00 032372 ER4 AC+1,32372 ;LOW PRODUCT FAILED
6145 777777 737777 AEE=XX ;INITIAL C(E)
6146 034170 312 07 0 00 045121 CAME E,[XX] ;WAS C(E) CLOBBERED?
6147 034171 005 07 0 00 032373 ER5 E,32373 ;C(E) WAS CLOBBERED
6148 034172 321 13 0 00 034160 JUMPL AC+2,F32370 ;LOOP ON ERROR SWITCH^
6149
6150 003240 ADR=ADR+1
6151 777777 677777 XX=XX+XX+1
6152 IFE <XX-1>,<XX=-2>
6153
6154 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6155 010000 200001 V1=XX*XX
6156 IFE <XX&1B1>,<V2A=1>
6157 000000 IFN <XX&1B1>,<V2A=0>
6158 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6159 IFG XX,<V2=XX-1>
6160 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6161 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6162 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6163 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6164 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6165
6166 777777 677777 F32400: AA1=XX ;INITIAL C(AC)
6167 034173 200 11 0 00 045123 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0131
6168 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6169 034174 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6170 777777 677777 AEE=XX ;INITIAL C(E)
6171 034175 200 07 0 00 045123 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6172 034176 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6173 000000 AR1=V2 ;EXPECTED RESULT IN AC
6174 034177 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6175 034200 003 11 0 00 032401 ER3 AC,32401 ;HIGH PRODUCT FAILED
6176 010000 200001 AR2=V1 ;EXPECTED RESULT IN AC+1
6177 034201 312 12 0 00 045124 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6178 034202 004 12 0 00 032402 ER4 AC+1,32402 ;LOW PRODUCT FAILED
6179 777777 677777 AEE=XX ;INITIAL C(E)
6180 034203 312 07 0 00 045123 CAME E,[XX] ;WAS C(E) CLOBBERED?
6181 034204 005 07 0 00 032403 ER5 E,32403 ;C(E) WAS CLOBBERED
6182 034205 321 13 0 00 034173 JUMPL AC+2,F32400 ;LOOP ON ERROR SWITCH^
6183
6184 003241 ADR=ADR+1
6185 777777 577777 XX=XX+XX+1
6186 IFE <XX-1>,<XX=-2>
6187
6188 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6189 040000 400001 V1=XX*XX
6190 IFE <XX&1B1>,<V2A=1>
6191 000000 IFN <XX&1B1>,<V2A=0>
6192 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6193 IFG XX,<V2=XX-1>
6194 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6195 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6196 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6197 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6198 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6199
6200 777777 577777 F32410: AA1=XX ;INITIAL C(AC)
6201 034206 200 11 0 00 045125 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6202 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6203 034207 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6204 777777 577777 AEE=XX ;INITIAL C(E)
6205 034210 200 07 0 00 045125 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6206 034211 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6207 000000 AR1=V2 ;EXPECTED RESULT IN AC
6208 034212 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6209 034213 003 11 0 00 032411 ER3 AC,32411 ;HIGH PRODUCT FAILED
6210 040000 400001 AR2=V1 ;EXPECTED RESULT IN AC+1
6211 034214 312 12 0 00 045126 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6212 034215 004 12 0 00 032412 ER4 AC+1,32412 ;LOW PRODUCT FAILED
6213 777777 577777 AEE=XX ;INITIAL C(E)
6214 034216 312 07 0 00 045125 CAME E,[XX] ;WAS C(E) CLOBBERED?
6215 034217 005 07 0 00 032413 ER5 E,32413 ;C(E) WAS CLOBBERED
6216 034220 321 13 0 00 034206 JUMPL AC+2,F32410 ;LOOP ON ERROR SWITCH^
6217
6218 003242 ADR=ADR+1
6219 777777 377777 XX=XX+XX+1
6220 IFE <XX-1>,<XX=-2>
6221
6222 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0132
6223 200001 000001 V1=XX*XX
6224 IFE <XX&1B1>,<V2A=1>
6225 000000 IFN <XX&1B1>,<V2A=0>
6226 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6227 IFG XX,<V2=XX-1>
6228 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6229 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6230 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6231 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6232 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6233
6234 777777 377777 F32420: AA1=XX ;INITIAL C(AC)
6235 034221 200 11 0 00 045127 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6236 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6237 034222 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6238 777777 377777 AEE=XX ;INITIAL C(E)
6239 034223 200 07 0 00 045127 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6240 034224 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6241 000000 AR1=V2 ;EXPECTED RESULT IN AC
6242 034225 312 11 0 00 044615 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6243 034226 003 11 0 00 032421 ER3 AC,32421 ;HIGH PRODUCT FAILED
6244 200001 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6245 034227 312 12 0 00 045130 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6246 034230 004 12 0 00 032422 ER4 AC+1,32422 ;LOW PRODUCT FAILED
6247 777777 377777 AEE=XX ;INITIAL C(E)
6248 034231 312 07 0 00 045127 CAME E,[XX] ;WAS C(E) CLOBBERED?
6249 034232 005 07 0 00 032423 ER5 E,32423 ;C(E) WAS CLOBBERED
6250 034233 321 13 0 00 034221 JUMPL AC+2,F32420 ;LOOP ON ERROR SWITCH^
6251
6252 003243 ADR=ADR+1
6253 777776 777777 XX=XX+XX+1
6254 IFE <XX-1>,<XX=-2>
6255
6256 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6257 000002 000001 V1=XX*XX
6258 IFE <XX&1B1>,<V2A=1>
6259 000000 IFN <XX&1B1>,<V2A=0>
6260 000002 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6261 IFG XX,<V2=XX-1>
6262 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6263 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6264 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6265 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6266 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6267
6268 777776 777777 F32430: AA1=XX ;INITIAL C(AC)
6269 034234 200 11 0 00 045131 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6270 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6271 034235 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6272 777776 777777 AEE=XX ;INITIAL C(E)
6273 034236 200 07 0 00 045131 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6274 034237 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6275 000002 AR1=V2 ;EXPECTED RESULT IN AC
6276 034240 312 11 0 00 044620 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6277 034241 003 11 0 00 032431 ER3 AC,32431 ;HIGH PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0133
6278 000002 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6279 034242 312 12 0 00 045132 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6280 034243 004 12 0 00 032432 ER4 AC+1,32432 ;LOW PRODUCT FAILED
6281 777776 777777 AEE=XX ;INITIAL C(E)
6282 034244 312 07 0 00 045131 CAME E,[XX] ;WAS C(E) CLOBBERED?
6283 034245 005 07 0 00 032433 ER5 E,32433 ;C(E) WAS CLOBBERED
6284 034246 321 13 0 00 034234 JUMPL AC+2,F32430 ;LOOP ON ERROR SWITCH^
6285
6286 003244 ADR=ADR+1
6287 777775 777777 XX=XX+XX+1
6288 IFE <XX-1>,<XX=-2>
6289
6290 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6291 000004 000001 V1=XX*XX
6292 IFE <XX&1B1>,<V2A=1>
6293 000000 IFN <XX&1B1>,<V2A=0>
6294 000010 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6295 IFG XX,<V2=XX-1>
6296 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6298 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6299 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6301
6302 777775 777777 F32440: AA1=XX ;INITIAL C(AC)
6303 034247 200 11 0 00 045133 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6304 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6305 034250 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6306 777775 777777 AEE=XX ;INITIAL C(E)
6307 034251 200 07 0 00 045133 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6308 034252 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6309 000010 AR1=V2 ;EXPECTED RESULT IN AC
6310 034253 312 11 0 00 044626 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6311 034254 003 11 0 00 032441 ER3 AC,32441 ;HIGH PRODUCT FAILED
6312 000004 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6313 034255 312 12 0 00 045134 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6314 034256 004 12 0 00 032442 ER4 AC+1,32442 ;LOW PRODUCT FAILED
6315 777775 777777 AEE=XX ;INITIAL C(E)
6316 034257 312 07 0 00 045133 CAME E,[XX] ;WAS C(E) CLOBBERED?
6317 034260 005 07 0 00 032443 ER5 E,32443 ;C(E) WAS CLOBBERED
6318 034261 321 13 0 00 034247 JUMPL AC+2,F32440 ;LOOP ON ERROR SWITCH^
6319
6320 003245 ADR=ADR+1
6321 777773 777777 XX=XX+XX+1
6322 IFE <XX-1>,<XX=-2>
6323
6324 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6325 000010 000001 V1=XX*XX
6326 IFE <XX&1B1>,<V2A=1>
6327 000000 IFN <XX&1B1>,<V2A=0>
6328 000040 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6329 IFG XX,<V2=XX-1>
6330 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6331 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6332 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0134
6333 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6334 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6335
6336 777773 777777 F32450: AA1=XX ;INITIAL C(AC)
6337 034262 200 11 0 00 045135 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6338 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6339 034263 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6340 777773 777777 AEE=XX ;INITIAL C(E)
6341 034264 200 07 0 00 045135 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6342 034265 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6343 000040 AR1=V2 ;EXPECTED RESULT IN AC
6344 034266 312 11 0 00 044634 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6345 034267 003 11 0 00 032451 ER3 AC,32451 ;HIGH PRODUCT FAILED
6346 000010 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6347 034270 312 12 0 00 045136 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6348 034271 004 12 0 00 032452 ER4 AC+1,32452 ;LOW PRODUCT FAILED
6349 777773 777777 AEE=XX ;INITIAL C(E)
6350 034272 312 07 0 00 045135 CAME E,[XX] ;WAS C(E) CLOBBERED?
6351 034273 005 07 0 00 032453 ER5 E,32453 ;C(E) WAS CLOBBERED
6352 034274 321 13 0 00 034262 JUMPL AC+2,F32450 ;LOOP ON ERROR SWITCH^
6353
6354 003246 ADR=ADR+1
6355 777767 777777 XX=XX+XX+1
6356 IFE <XX-1>,<XX=-2>
6357
6358 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6359 000020 000001 V1=XX*XX
6360 IFE <XX&1B1>,<V2A=1>
6361 000000 IFN <XX&1B1>,<V2A=0>
6362 000200 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6363 IFG XX,<V2=XX-1>
6364 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6365 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6366 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6367 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6368 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6369
6370 777767 777777 F32460: AA1=XX ;INITIAL C(AC)
6371 034275 200 11 0 00 045137 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6372 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6373 034276 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6374 777767 777777 AEE=XX ;INITIAL C(E)
6375 034277 200 07 0 00 045137 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6376 034300 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6377 000200 AR1=V2 ;EXPECTED RESULT IN AC
6378 034301 312 11 0 00 044642 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6379 034302 003 11 0 00 032461 ER3 AC,32461 ;HIGH PRODUCT FAILED
6380 000020 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6381 034303 312 12 0 00 045140 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6382 034304 004 12 0 00 032462 ER4 AC+1,32462 ;LOW PRODUCT FAILED
6383 777767 777777 AEE=XX ;INITIAL C(E)
6384 034305 312 07 0 00 045137 CAME E,[XX] ;WAS C(E) CLOBBERED?
6385 034306 005 07 0 00 032463 ER5 E,32463 ;C(E) WAS CLOBBERED
6386 034307 321 13 0 00 034275 JUMPL AC+2,F32460 ;LOOP ON ERROR SWITCH^
6387
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0135
6388 003247 ADR=ADR+1
6389 777757 777777 XX=XX+XX+1
6390 IFE <XX-1>,<XX=-2>
6391
6392 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6393 000040 000001 V1=XX*XX
6394 IFE <XX&1B1>,<V2A=1>
6395 000000 IFN <XX&1B1>,<V2A=0>
6396 001000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6397 IFG XX,<V2=XX-1>
6398 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6399 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6400 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6401 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6402 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6403
6404 777757 777777 F32470: AA1=XX ;INITIAL C(AC)
6405 034310 200 11 0 00 045141 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6406 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6407 034311 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6408 777757 777777 AEE=XX ;INITIAL C(E)
6409 034312 200 07 0 00 045141 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6410 034313 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6411 001000 AR1=V2 ;EXPECTED RESULT IN AC
6412 034314 312 11 0 00 044650 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6413 034315 003 11 0 00 032471 ER3 AC,32471 ;HIGH PRODUCT FAILED
6414 000040 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6415 034316 312 12 0 00 045142 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6416 034317 004 12 0 00 032472 ER4 AC+1,32472 ;LOW PRODUCT FAILED
6417 777757 777777 AEE=XX ;INITIAL C(E)
6418 034320 312 07 0 00 045141 CAME E,[XX] ;WAS C(E) CLOBBERED?
6419 034321 005 07 0 00 032473 ER5 E,32473 ;C(E) WAS CLOBBERED
6420 034322 321 13 0 00 034310 JUMPL AC+2,F32470 ;LOOP ON ERROR SWITCH^
6421
6422 003250 ADR=ADR+1
6423 777737 777777 XX=XX+XX+1
6424 IFE <XX-1>,<XX=-2>
6425
6426 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6427 000100 000001 V1=XX*XX
6428 IFE <XX&1B1>,<V2A=1>
6429 000000 IFN <XX&1B1>,<V2A=0>
6430 004000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6431 IFG XX,<V2=XX-1>
6432 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6433 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6434 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6435 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6436 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6437
6438 777737 777777 F32500: AA1=XX ;INITIAL C(AC)
6439 034323 200 11 0 00 045143 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6440 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6441 034324 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6442 777737 777777 AEE=XX ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0136
6443 034325 200 07 0 00 045143 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6444 034326 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6445 004000 AR1=V2 ;EXPECTED RESULT IN AC
6446 034327 312 11 0 00 044656 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6447 034330 003 11 0 00 032501 ER3 AC,32501 ;HIGH PRODUCT FAILED
6448 000100 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6449 034331 312 12 0 00 045144 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6450 034332 004 12 0 00 032502 ER4 AC+1,32502 ;LOW PRODUCT FAILED
6451 777737 777777 AEE=XX ;INITIAL C(E)
6452 034333 312 07 0 00 045143 CAME E,[XX] ;WAS C(E) CLOBBERED?
6453 034334 005 07 0 00 032503 ER5 E,32503 ;C(E) WAS CLOBBERED
6454 034335 321 13 0 00 034323 JUMPL AC+2,F32500 ;LOOP ON ERROR SWITCH^
6455
6456 003251 ADR=ADR+1
6457 777677 777777 XX=XX+XX+1
6458 IFE <XX-1>,<XX=-2>
6459
6460 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6461 000200 000001 V1=XX*XX
6462 IFE <XX&1B1>,<V2A=1>
6463 000000 IFN <XX&1B1>,<V2A=0>
6464 020000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6465 IFG XX,<V2=XX-1>
6466 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6467 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6468 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6469 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6470 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6471
6472 777677 777777 F32510: AA1=XX ;INITIAL C(AC)
6473 034336 200 11 0 00 045145 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6474 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6475 034337 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6476 777677 777777 AEE=XX ;INITIAL C(E)
6477 034340 200 07 0 00 045145 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6478 034341 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6479 020000 AR1=V2 ;EXPECTED RESULT IN AC
6480 034342 312 11 0 00 044664 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6481 034343 003 11 0 00 032511 ER3 AC,32511 ;HIGH PRODUCT FAILED
6482 000200 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6483 034344 312 12 0 00 045146 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6484 034345 004 12 0 00 032512 ER4 AC+1,32512 ;LOW PRODUCT FAILED
6485 777677 777777 AEE=XX ;INITIAL C(E)
6486 034346 312 07 0 00 045145 CAME E,[XX] ;WAS C(E) CLOBBERED?
6487 034347 005 07 0 00 032513 ER5 E,32513 ;C(E) WAS CLOBBERED
6488 034350 321 13 0 00 034336 JUMPL AC+2,F32510 ;LOOP ON ERROR SWITCH^
6489
6490 003252 ADR=ADR+1
6491 777577 777777 XX=XX+XX+1
6492 IFE <XX-1>,<XX=-2>
6493
6494 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6495 000400 000001 V1=XX*XX
6496 IFE <XX&1B1>,<V2A=1>
6497 000000 IFN <XX&1B1>,<V2A=0>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0137
6498 100000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6499 IFG XX,<V2=XX-1>
6500 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6501 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6502 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6503 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6504 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6505
6506 777577 777777 F32520: AA1=XX ;INITIAL C(AC)
6507 034351 200 11 0 00 045147 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6508 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6509 034352 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6510 777577 777777 AEE=XX ;INITIAL C(E)
6511 034353 200 07 0 00 045147 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6512 034354 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6513 100000 AR1=V2 ;EXPECTED RESULT IN AC
6514 034355 312 11 0 00 044672 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6515 034356 003 11 0 00 032521 ER3 AC,32521 ;HIGH PRODUCT FAILED
6516 000400 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6517 034357 312 12 0 00 045150 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6518 034360 004 12 0 00 032522 ER4 AC+1,32522 ;LOW PRODUCT FAILED
6519 777577 777777 AEE=XX ;INITIAL C(E)
6520 034361 312 07 0 00 045147 CAME E,[XX] ;WAS C(E) CLOBBERED?
6521 034362 005 07 0 00 032523 ER5 E,32523 ;C(E) WAS CLOBBERED
6522 034363 321 13 0 00 034351 JUMPL AC+2,F32520 ;LOOP ON ERROR SWITCH^
6523
6524 003253 ADR=ADR+1
6525 777377 777777 XX=XX+XX+1
6526 IFE <XX-1>,<XX=-2>
6527
6528 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6529 001000 000001 V1=XX*XX
6530 IFE <XX&1B1>,<V2A=1>
6531 000000 IFN <XX&1B1>,<V2A=0>
6532 400000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6533 IFG XX,<V2=XX-1>
6534 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6535 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6536 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6537 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6538 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6539
6540 777377 777777 F32530: AA1=XX ;INITIAL C(AC)
6541 034364 200 11 0 00 045151 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6542 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6543 034365 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6544 777377 777777 AEE=XX ;INITIAL C(E)
6545 034366 200 07 0 00 045151 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6546 034367 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6547 400000 AR1=V2 ;EXPECTED RESULT IN AC
6548 034370 312 11 0 00 044700 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6549 034371 003 11 0 00 032531 ER3 AC,32531 ;HIGH PRODUCT FAILED
6550 001000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6551 034372 312 12 0 00 045152 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6552 034373 004 12 0 00 032532 ER4 AC+1,32532 ;LOW PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0138
6553 777377 777777 AEE=XX ;INITIAL C(E)
6554 034374 312 07 0 00 045151 CAME E,[XX] ;WAS C(E) CLOBBERED?
6555 034375 005 07 0 00 032533 ER5 E,32533 ;C(E) WAS CLOBBERED
6556 034376 321 13 0 00 034364 JUMPL AC+2,F32530 ;LOOP ON ERROR SWITCH^
6557
6558 003254 ADR=ADR+1
6559 776777 777777 XX=XX+XX+1
6560 IFE <XX-1>,<XX=-2>
6561
6562 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6563 002000 000001 V1=XX*XX
6564 IFE <XX&1B1>,<V2A=1>
6565 000000 IFN <XX&1B1>,<V2A=0>
6566 000002 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6567 IFG XX,<V2=XX-1>
6568 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6569 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6570 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6571 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6572 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6573
6574 776777 777777 F32540: AA1=XX ;INITIAL C(AC)
6575 034377 200 11 0 00 045153 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6576 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6577 034400 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6578 776777 777777 AEE=XX ;INITIAL C(E)
6579 034401 200 07 0 00 045153 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6580 034402 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6581 000002 000000 AR1=V2 ;EXPECTED RESULT IN AC
6582 034403 312 11 0 00 044706 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6583 034404 003 11 0 00 032541 ER3 AC,32541 ;HIGH PRODUCT FAILED
6584 002000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6585 034405 312 12 0 00 045154 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6586 034406 004 12 0 00 032542 ER4 AC+1,32542 ;LOW PRODUCT FAILED
6587 776777 777777 AEE=XX ;INITIAL C(E)
6588 034407 312 07 0 00 045153 CAME E,[XX] ;WAS C(E) CLOBBERED?
6589 034410 005 07 0 00 032543 ER5 E,32543 ;C(E) WAS CLOBBERED
6590 034411 321 13 0 00 034377 JUMPL AC+2,F32540 ;LOOP ON ERROR SWITCH^
6591
6592 003255 ADR=ADR+1
6593 775777 777777 XX=XX+XX+1
6594 IFE <XX-1>,<XX=-2>
6595
6596 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6597 004000 000001 V1=XX*XX
6598 IFE <XX&1B1>,<V2A=1>
6599 000000 IFN <XX&1B1>,<V2A=0>
6600 000010 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6601 IFG XX,<V2=XX-1>
6602 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6603 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6604 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6605 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6606 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6607
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0139
6608 775777 777777 F32550: AA1=XX ;INITIAL C(AC)
6609 034412 200 11 0 00 045155 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6610 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6611 034413 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6612 775777 777777 AEE=XX ;INITIAL C(E)
6613 034414 200 07 0 00 045155 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6614 034415 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6615 000010 000000 AR1=V2 ;EXPECTED RESULT IN AC
6616 034416 312 11 0 00 044714 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6617 034417 003 11 0 00 032551 ER3 AC,32551 ;HIGH PRODUCT FAILED
6618 004000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6619 034420 312 12 0 00 045156 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6620 034421 004 12 0 00 032552 ER4 AC+1,32552 ;LOW PRODUCT FAILED
6621 775777 777777 AEE=XX ;INITIAL C(E)
6622 034422 312 07 0 00 045155 CAME E,[XX] ;WAS C(E) CLOBBERED?
6623 034423 005 07 0 00 032553 ER5 E,32553 ;C(E) WAS CLOBBERED
6624 034424 321 13 0 00 034412 JUMPL AC+2,F32550 ;LOOP ON ERROR SWITCH^
6625
6626 003256 ADR=ADR+1
6627 773777 777777 XX=XX+XX+1
6628 IFE <XX-1>,<XX=-2>
6629
6630 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6631 010000 000001 V1=XX*XX
6632 IFE <XX&1B1>,<V2A=1>
6633 000000 IFN <XX&1B1>,<V2A=0>
6634 000040 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6635 IFG XX,<V2=XX-1>
6636 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6637 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6638 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6639 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6640 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6641
6642 773777 777777 F32560: AA1=XX ;INITIAL C(AC)
6643 034425 200 11 0 00 045157 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6644 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6645 034426 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6646 773777 777777 AEE=XX ;INITIAL C(E)
6647 034427 200 07 0 00 045157 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6648 034430 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6649 000040 000000 AR1=V2 ;EXPECTED RESULT IN AC
6650 034431 312 11 0 00 044722 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6651 034432 003 11 0 00 032561 ER3 AC,32561 ;HIGH PRODUCT FAILED
6652 010000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6653 034433 312 12 0 00 045160 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6654 034434 004 12 0 00 032562 ER4 AC+1,32562 ;LOW PRODUCT FAILED
6655 773777 777777 AEE=XX ;INITIAL C(E)
6656 034435 312 07 0 00 045157 CAME E,[XX] ;WAS C(E) CLOBBERED?
6657 034436 005 07 0 00 032563 ER5 E,32563 ;C(E) WAS CLOBBERED
6658 034437 321 13 0 00 034425 JUMPL AC+2,F32560 ;LOOP ON ERROR SWITCH^
6659
6660 003257 ADR=ADR+1
6661 767777 777777 XX=XX+XX+1
6662 IFE <XX-1>,<XX=-2>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0140
6663
6664 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6665 020000 000001 V1=XX*XX
6666 IFE <XX&1B1>,<V2A=1>
6667 000000 IFN <XX&1B1>,<V2A=0>
6668 000200 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6669 IFG XX,<V2=XX-1>
6670 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6671 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6672 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6673 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6674 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6675
6676 767777 777777 F32570: AA1=XX ;INITIAL C(AC)
6677 034440 200 11 0 00 045161 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6678 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6679 034441 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6680 767777 777777 AEE=XX ;INITIAL C(E)
6681 034442 200 07 0 00 045161 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6682 034443 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6683 000200 000000 AR1=V2 ;EXPECTED RESULT IN AC
6684 034444 312 11 0 00 044730 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6685 034445 003 11 0 00 032571 ER3 AC,32571 ;HIGH PRODUCT FAILED
6686 020000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6687 034446 312 12 0 00 045162 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6688 034447 004 12 0 00 032572 ER4 AC+1,32572 ;LOW PRODUCT FAILED
6689 767777 777777 AEE=XX ;INITIAL C(E)
6690 034450 312 07 0 00 045161 CAME E,[XX] ;WAS C(E) CLOBBERED?
6691 034451 005 07 0 00 032573 ER5 E,32573 ;C(E) WAS CLOBBERED
6692 034452 321 13 0 00 034440 JUMPL AC+2,F32570 ;LOOP ON ERROR SWITCH^
6693
6694 003260 ADR=ADR+1
6695 757777 777777 XX=XX+XX+1
6696 IFE <XX-1>,<XX=-2>
6697
6698 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6699 040000 000001 V1=XX*XX
6700 IFE <XX&1B1>,<V2A=1>
6701 000000 IFN <XX&1B1>,<V2A=0>
6702 001000 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6703 IFG XX,<V2=XX-1>
6704 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6705 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6706 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6707 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6708 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6709
6710 757777 777777 F32600: AA1=XX ;INITIAL C(AC)
6711 034453 200 11 0 00 045163 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6712 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6713 034454 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6714 757777 777777 AEE=XX ;INITIAL C(E)
6715 034455 200 07 0 00 045163 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6716 034456 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6717 001000 000000 AR1=V2 ;EXPECTED RESULT IN AC
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0141
6718 034457 312 11 0 00 044736 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6719 034460 003 11 0 00 032601 ER3 AC,32601 ;HIGH PRODUCT FAILED
6720 040000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6721 034461 312 12 0 00 045164 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6722 034462 004 12 0 00 032602 ER4 AC+1,32602 ;LOW PRODUCT FAILED
6723 757777 777777 AEE=XX ;INITIAL C(E)
6724 034463 312 07 0 00 045163 CAME E,[XX] ;WAS C(E) CLOBBERED?
6725 034464 005 07 0 00 032603 ER5 E,32603 ;C(E) WAS CLOBBERED
6726 034465 321 13 0 00 034453 JUMPL AC+2,F32600 ;LOOP ON ERROR SWITCH^
6727
6728 003261 ADR=ADR+1
6729 737777 777777 XX=XX+XX+1
6730 IFE <XX-1>,<XX=-2>
6731
6732 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6733 100000 000001 V1=XX*XX
6734 IFE <XX&1B1>,<V2A=1>
6735 000000 IFN <XX&1B1>,<V2A=0>
6736 004000 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6737 IFG XX,<V2=XX-1>
6738 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6739 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6740 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6741 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6742 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6743
6744 737777 777777 F32610: AA1=XX ;INITIAL C(AC)
6745 034466 200 11 0 00 045165 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6746 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6747 034467 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6748 737777 777777 AEE=XX ;INITIAL C(E)
6749 034470 200 07 0 00 045165 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6750 034471 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6751 004000 000000 AR1=V2 ;EXPECTED RESULT IN AC
6752 034472 312 11 0 00 044744 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6753 034473 003 11 0 00 032611 ER3 AC,32611 ;HIGH PRODUCT FAILED
6754 100000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6755 034474 312 12 0 00 045166 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6756 034475 004 12 0 00 032612 ER4 AC+1,32612 ;LOW PRODUCT FAILED
6757 737777 777777 AEE=XX ;INITIAL C(E)
6758 034476 312 07 0 00 045165 CAME E,[XX] ;WAS C(E) CLOBBERED?
6759 034477 005 07 0 00 032613 ER5 E,32613 ;C(E) WAS CLOBBERED
6760 034500 321 13 0 00 034466 JUMPL AC+2,F32610 ;LOOP ON ERROR SWITCH^
6761
6762 003262 ADR=ADR+1
6763 677777 777777 XX=XX+XX+1
6764 IFE <XX-1>,<XX=-2>
6765
6766 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6767 200000 000001 V1=XX*XX
6768 IFE <XX&1B1>,<V2A=1>
6769 000000 IFN <XX&1B1>,<V2A=0>
6770 020000 000000 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6771 IFG XX,<V2=XX-1>
6772 MOP1 (\ADR,XX,-1,XX,V2,V1)^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0142
6773 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6774 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6775 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6776 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6777
6778 677777 777777 F32620: AA1=XX ;INITIAL C(AC)
6779 034501 200 11 0 00 045167 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6780 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6781 034502 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6782 677777 777777 AEE=XX ;INITIAL C(E)
6783 034503 200 07 0 00 045167 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6784 034504 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6785 020000 000000 AR1=V2 ;EXPECTED RESULT IN AC
6786 034505 312 11 0 00 044752 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6787 034506 003 11 0 00 032621 ER3 AC,32621 ;HIGH PRODUCT FAILED
6788 200000 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6789 034507 312 12 0 00 045170 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6790 034510 004 12 0 00 032622 ER4 AC+1,32622 ;LOW PRODUCT FAILED
6791 677777 777777 AEE=XX ;INITIAL C(E)
6792 034511 312 07 0 00 045167 CAME E,[XX] ;WAS C(E) CLOBBERED?
6793 034512 005 07 0 00 032623 ER5 E,32623 ;C(E) WAS CLOBBERED
6794 034513 321 13 0 00 034501 JUMPL AC+2,F32620 ;LOOP ON ERROR SWITCH^
6795
6796 003263 ADR=ADR+1
6797 577777 777777 XX=XX+XX+1
6798 IFE <XX-1>,<XX=-2>
6799
6800 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6801 000001 V1=XX*XX
6802 000001 IFE <XX&1B1>,<V2A=1>
6803 IFN <XX&1B1>,<V2A=0>
6804 100000 000001 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6805 IFG XX,<V2=XX-1>
6806 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6807 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6808 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6809 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6810 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6811
6812 577777 777777 F32630: AA1=XX ;INITIAL C(AC)
6813 034514 200 11 0 00 045171 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6814 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6815 034515 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6816 577777 777777 AEE=XX ;INITIAL C(E)
6817 034516 200 07 0 00 045171 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6818 034517 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6819 100000 000001 AR1=V2 ;EXPECTED RESULT IN AC
6820 034520 312 11 0 00 045166 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6821 034521 003 11 0 00 032631 ER3 AC,32631 ;HIGH PRODUCT FAILED
6822 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6823 034522 312 12 0 00 044616 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6824 034523 004 12 0 00 032632 ER4 AC+1,32632 ;LOW PRODUCT FAILED
6825 577777 777777 AEE=XX ;INITIAL C(E)
6826 034524 312 07 0 00 045171 CAME E,[XX] ;WAS C(E) CLOBBERED?
6827 034525 005 07 0 00 032633 ER5 E,32633 ;C(E) WAS CLOBBERED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 7-22
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0143
6828 034526 321 13 0 00 034514 JUMPL AC+2,F32630 ;LOOP ON ERROR SWITCH^
6829
6830 003264 ADR=ADR+1
6831 377777 777777 XX=XX+XX+1
6832 IFE <XX-1>,<XX=-2>
6833
6834 ;MULTIPLY A FLOATING 0 BY ITSELF FOR A SQUARE PRODUCT
6835 000001 V1=XX*XX
6836 IFE <XX&1B1>,<V2A=1>
6837 000000 IFN <XX&1B1>,<V2A=0>
6838 IFL XX,<V2=<<<<<-<XX+1>>_-22>*<<-<XX+1>>_-22>>_1>+V2A>>
6839 377777 777776 IFG XX,<V2=XX-1>
6840 MOP1 (\ADR,XX,-1,XX,V2,V1)^
6841 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6842 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6843 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6844 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6845
6846 377777 777777 F32640: AA1=XX ;INITIAL C(AC)
6847 034527 200 11 0 00 045172 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6848 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6849 034530 200 12 0 00 044617 MOVE AC+1,[-1] ;PRELOAD AC+1
6850 377777 777777 AEE=XX ;INITIAL C(E)
6851 034531 200 07 0 00 045172 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6852 034532 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6853 377777 777776 AR1=V2 ;EXPECTED RESULT IN AC
6854 034533 312 11 0 00 045173 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6855 034534 003 11 0 00 032641 ER3 AC,32641 ;HIGH PRODUCT FAILED
6856 000001 AR2=V1 ;EXPECTED RESULT IN AC+1
6857 034535 312 12 0 00 044616 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6858 034536 004 12 0 00 032642 ER4 AC+1,32642 ;LOW PRODUCT FAILED
6859 377777 777777 AEE=XX ;INITIAL C(E)
6860 034537 312 07 0 00 045172 CAME E,[XX] ;WAS C(E) CLOBBERED?
6861 034540 005 07 0 00 032643 ER5 E,32643 ;C(E) WAS CLOBBERED
6862 034541 321 13 0 00 034527 JUMPL AC+2,F32640 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0144
6863 000010 AC=10
6864 000006 E=<AC-2>&17
6865 SAVEAC (1,1)^
6866 034542 201 12 0 00 034542 MOVEI AC+2,. ;SAVE TEST PC
6867 034543 202 12 0 00 030051 MOVEM AC+2,TESTPC
6868 034544 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
6869 034545 202 12 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
6870 000000 XX=0
6871 000000 YY=0
6872
6873 REPEAT ^D36,<
6874 ADR=ADR+1
6875 XX=XX+XX
6876 YY=YY+YY+1
6877 IFE XX,<XX=1>
6878 IFE <YY-1>,<YY=-2>
6879
6880 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
6881 V1=XX*YY
6882 IFE <XX_-22>,<V2A=-1>
6883 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
6884 IFG XX,<V2=V2A>
6885 IFL XX,<V2=XX+1>
6886 MOP1 (\ADR,YY,0,XX,V2,V1)>
6887
6888 003265 ADR=ADR+1
6889 000000 XX=XX+XX
6890 000001 YY=YY+YY+1
6891 000001 IFE XX,<XX=1>
6892 777777 777776 IFE <YY-1>,<YY=-2>
6893
6894 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
6895 777777 777776 V1=XX*YY
6896 777777 777777 IFE <XX_-22>,<V2A=-1>
6897 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
6898 777777 777777 IFG XX,<V2=V2A>
6899 IFL XX,<V2=XX+1>
6900 MOP1 (\ADR,YY,0,XX,V2,V1)^
6901 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
6902 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6903 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6904 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6905
6906 777777 777776 F32650: AA1=YY ;INITIAL C(AC)
6907 034546 200 10 0 00 044621 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
6908 000000 AA2=0 ;INITIAL C(AC+1)
6909 034547 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
6910 000001 AEE=XX ;INITIAL C(E)
6911 034550 200 06 0 00 044616 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6912 034551 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6913 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
6914 034552 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6915 034553 003 10 0 00 032651 ER3 AC,32651 ;HIGH PRODUCT FAILED
6916 777777 777776 AR2=V1 ;EXPECTED RESULT IN AC+1
6917 034554 312 11 0 00 044621 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0145
6918 034555 004 11 0 00 032652 ER4 AC+1,32652 ;LOW PRODUCT FAILED
6919 000001 AEE=XX ;INITIAL C(E)
6920 034556 312 06 0 00 044616 CAME E,[XX] ;WAS C(E) CLOBBERED?
6921 034557 005 06 0 00 032653 ER5 E,32653 ;C(E) WAS CLOBBERED
6922 034560 321 12 0 00 034546 JUMPL AC+2,F32650 ;LOOP ON ERROR SWITCH^
6923
6924 003266 ADR=ADR+1
6925 000002 XX=XX+XX
6926 777777 777775 YY=YY+YY+1
6927 IFE XX,<XX=1>
6928 IFE <YY-1>,<YY=-2>
6929
6930 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
6931 777777 777772 V1=XX*YY
6932 777777 777777 IFE <XX_-22>,<V2A=-1>
6933 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
6934 777777 777777 IFG XX,<V2=V2A>
6935 IFL XX,<V2=XX+1>
6936 MOP1 (\ADR,YY,0,XX,V2,V1)^
6937 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
6938 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6939 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6940 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6941
6942 777777 777775 F32660: AA1=YY ;INITIAL C(AC)
6943 034561 200 10 0 00 044624 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
6944 000000 AA2=0 ;INITIAL C(AC+1)
6945 034562 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
6946 000002 AEE=XX ;INITIAL C(E)
6947 034563 200 06 0 00 044620 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6948 034564 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6949 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
6950 034565 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6951 034566 003 10 0 00 032661 ER3 AC,32661 ;HIGH PRODUCT FAILED
6952 777777 777772 AR2=V1 ;EXPECTED RESULT IN AC+1
6953 034567 312 11 0 00 044627 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6954 034570 004 11 0 00 032662 ER4 AC+1,32662 ;LOW PRODUCT FAILED
6955 000002 AEE=XX ;INITIAL C(E)
6956 034571 312 06 0 00 044620 CAME E,[XX] ;WAS C(E) CLOBBERED?
6957 034572 005 06 0 00 032663 ER5 E,32663 ;C(E) WAS CLOBBERED
6958 034573 321 12 0 00 034561 JUMPL AC+2,F32660 ;LOOP ON ERROR SWITCH^
6959
6960 003267 ADR=ADR+1
6961 000004 XX=XX+XX
6962 777777 777773 YY=YY+YY+1
6963 IFE XX,<XX=1>
6964 IFE <YY-1>,<YY=-2>
6965
6966 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
6967 777777 777754 V1=XX*YY
6968 777777 777777 IFE <XX_-22>,<V2A=-1>
6969 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
6970 777777 777777 IFG XX,<V2=V2A>
6971 IFL XX,<V2=XX+1>
6972 MOP1 (\ADR,YY,0,XX,V2,V1)^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0146
6973 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
6974 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6975 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
6976 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6977
6978 777777 777773 F32670: AA1=YY ;INITIAL C(AC)
6979 034574 200 10 0 00 045071 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
6980 000000 AA2=0 ;INITIAL C(AC+1)
6981 034575 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
6982 000004 AEE=XX ;INITIAL C(E)
6983 034576 200 06 0 00 044623 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6984 034577 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6985 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
6986 034600 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
6987 034601 003 10 0 00 032671 ER3 AC,32671 ;HIGH PRODUCT FAILED
6988 777777 777754 AR2=V1 ;EXPECTED RESULT IN AC+1
6989 034602 312 11 0 00 045174 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
6990 034603 004 11 0 00 032672 ER4 AC+1,32672 ;LOW PRODUCT FAILED
6991 000004 AEE=XX ;INITIAL C(E)
6992 034604 312 06 0 00 044623 CAME E,[XX] ;WAS C(E) CLOBBERED?
6993 034605 005 06 0 00 032673 ER5 E,32673 ;C(E) WAS CLOBBERED
6994 034606 321 12 0 00 034574 JUMPL AC+2,F32670 ;LOOP ON ERROR SWITCH^
6995
6996 003270 ADR=ADR+1
6997 000010 XX=XX+XX
6998 777777 777767 YY=YY+YY+1
6999 IFE XX,<XX=1>
7000 IFE <YY-1>,<YY=-2>
7001
7002 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7003 777777 777670 V1=XX*YY
7004 777777 777777 IFE <XX_-22>,<V2A=-1>
7005 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7006 777777 777777 IFG XX,<V2=V2A>
7007 IFL XX,<V2=XX+1>
7008 MOP1 (\ADR,YY,0,XX,V2,V1)^
7009 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7010 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7011 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7012 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7013
7014 777777 777767 F32700: AA1=YY ;INITIAL C(AC)
7015 034607 200 10 0 00 045073 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7016 000000 AA2=0 ;INITIAL C(AC+1)
7017 034610 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7018 000010 AEE=XX ;INITIAL C(E)
7019 034611 200 06 0 00 044626 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7020 034612 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7021 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7022 034613 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7023 034614 003 10 0 00 032701 ER3 AC,32701 ;HIGH PRODUCT FAILED
7024 777777 777670 AR2=V1 ;EXPECTED RESULT IN AC+1
7025 034615 312 11 0 00 045175 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7026 034616 004 11 0 00 032702 ER4 AC+1,32702 ;LOW PRODUCT FAILED
7027 000010 AEE=XX ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0147
7028 034617 312 06 0 00 044626 CAME E,[XX] ;WAS C(E) CLOBBERED?
7029 034620 005 06 0 00 032703 ER5 E,32703 ;C(E) WAS CLOBBERED
7030 034621 321 12 0 00 034607 JUMPL AC+2,F32700 ;LOOP ON ERROR SWITCH^
7031
7032 003271 ADR=ADR+1
7033 000020 XX=XX+XX
7034 777777 777757 YY=YY+YY+1
7035 IFE XX,<XX=1>
7036 IFE <YY-1>,<YY=-2>
7037
7038 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7039 777777 777360 V1=XX*YY
7040 777777 777777 IFE <XX_-22>,<V2A=-1>
7041 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7042 777777 777777 IFG XX,<V2=V2A>
7043 IFL XX,<V2=XX+1>
7044 MOP1 (\ADR,YY,0,XX,V2,V1)^
7045 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7046 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7047 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7048 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7049
7050 777777 777757 F32710: AA1=YY ;INITIAL C(AC)
7051 034622 200 10 0 00 045075 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7052 000000 AA2=0 ;INITIAL C(AC+1)
7053 034623 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7054 000020 AEE=XX ;INITIAL C(E)
7055 034624 200 06 0 00 044631 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7056 034625 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7057 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7058 034626 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7059 034627 003 10 0 00 032711 ER3 AC,32711 ;HIGH PRODUCT FAILED
7060 777777 777360 AR2=V1 ;EXPECTED RESULT IN AC+1
7061 034630 312 11 0 00 045176 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7062 034631 004 11 0 00 032712 ER4 AC+1,32712 ;LOW PRODUCT FAILED
7063 000020 AEE=XX ;INITIAL C(E)
7064 034632 312 06 0 00 044631 CAME E,[XX] ;WAS C(E) CLOBBERED?
7065 034633 005 06 0 00 032713 ER5 E,32713 ;C(E) WAS CLOBBERED
7066 034634 321 12 0 00 034622 JUMPL AC+2,F32710 ;LOOP ON ERROR SWITCH^
7067
7068 003272 ADR=ADR+1
7069 000040 XX=XX+XX
7070 777777 777737 YY=YY+YY+1
7071 IFE XX,<XX=1>
7072 IFE <YY-1>,<YY=-2>
7073
7074 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7075 777777 775740 V1=XX*YY
7076 777777 777777 IFE <XX_-22>,<V2A=-1>
7077 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7078 777777 777777 IFG XX,<V2=V2A>
7079 IFL XX,<V2=XX+1>
7080 MOP1 (\ADR,YY,0,XX,V2,V1)^
7081 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7082 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0148
7083 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7084 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7085
7086 777777 777737 F32720: AA1=YY ;INITIAL C(AC)
7087 034635 200 10 0 00 045077 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7088 000000 AA2=0 ;INITIAL C(AC+1)
7089 034636 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7090 000040 AEE=XX ;INITIAL C(E)
7091 034637 200 06 0 00 044634 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7092 034640 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7093 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7094 034641 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7095 034642 003 10 0 00 032721 ER3 AC,32721 ;HIGH PRODUCT FAILED
7096 777777 775740 AR2=V1 ;EXPECTED RESULT IN AC+1
7097 034643 312 11 0 00 045177 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7098 034644 004 11 0 00 032722 ER4 AC+1,32722 ;LOW PRODUCT FAILED
7099 000040 AEE=XX ;INITIAL C(E)
7100 034645 312 06 0 00 044634 CAME E,[XX] ;WAS C(E) CLOBBERED?
7101 034646 005 06 0 00 032723 ER5 E,32723 ;C(E) WAS CLOBBERED
7102 034647 321 12 0 00 034635 JUMPL AC+2,F32720 ;LOOP ON ERROR SWITCH^
7103
7104 003273 ADR=ADR+1
7105 000100 XX=XX+XX
7106 777777 777677 YY=YY+YY+1
7107 IFE XX,<XX=1>
7108 IFE <YY-1>,<YY=-2>
7109
7110 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7111 777777 767700 V1=XX*YY
7112 777777 777777 IFE <XX_-22>,<V2A=-1>
7113 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7114 777777 777777 IFG XX,<V2=V2A>
7115 IFL XX,<V2=XX+1>
7116 MOP1 (\ADR,YY,0,XX,V2,V1)^
7117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7118 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7119 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7121
7122 777777 777677 F32730: AA1=YY ;INITIAL C(AC)
7123 034650 200 10 0 00 045101 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7124 000000 AA2=0 ;INITIAL C(AC+1)
7125 034651 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7126 000100 AEE=XX ;INITIAL C(E)
7127 034652 200 06 0 00 044637 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7128 034653 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7129 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7130 034654 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7131 034655 003 10 0 00 032731 ER3 AC,32731 ;HIGH PRODUCT FAILED
7132 777777 767700 AR2=V1 ;EXPECTED RESULT IN AC+1
7133 034656 312 11 0 00 045200 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7134 034657 004 11 0 00 032732 ER4 AC+1,32732 ;LOW PRODUCT FAILED
7135 000100 AEE=XX ;INITIAL C(E)
7136 034660 312 06 0 00 044637 CAME E,[XX] ;WAS C(E) CLOBBERED?
7137 034661 005 06 0 00 032733 ER5 E,32733 ;C(E) WAS CLOBBERED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0149
7138 034662 321 12 0 00 034650 JUMPL AC+2,F32730 ;LOOP ON ERROR SWITCH^
7139
7140 003274 ADR=ADR+1
7141 000200 XX=XX+XX
7142 777777 777577 YY=YY+YY+1
7143 IFE XX,<XX=1>
7144 IFE <YY-1>,<YY=-2>
7145
7146 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7147 777777 737600 V1=XX*YY
7148 777777 777777 IFE <XX_-22>,<V2A=-1>
7149 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7150 777777 777777 IFG XX,<V2=V2A>
7151 IFL XX,<V2=XX+1>
7152 MOP1 (\ADR,YY,0,XX,V2,V1)^
7153 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7154 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7155 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7156 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7157
7158 777777 777577 F32740: AA1=YY ;INITIAL C(AC)
7159 034663 200 10 0 00 045103 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7160 000000 AA2=0 ;INITIAL C(AC+1)
7161 034664 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7162 000200 AEE=XX ;INITIAL C(E)
7163 034665 200 06 0 00 044642 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7164 034666 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7165 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7166 034667 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7167 034670 003 10 0 00 032741 ER3 AC,32741 ;HIGH PRODUCT FAILED
7168 777777 737600 AR2=V1 ;EXPECTED RESULT IN AC+1
7169 034671 312 11 0 00 045201 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7170 034672 004 11 0 00 032742 ER4 AC+1,32742 ;LOW PRODUCT FAILED
7171 000200 AEE=XX ;INITIAL C(E)
7172 034673 312 06 0 00 044642 CAME E,[XX] ;WAS C(E) CLOBBERED?
7173 034674 005 06 0 00 032743 ER5 E,32743 ;C(E) WAS CLOBBERED
7174 034675 321 12 0 00 034663 JUMPL AC+2,F32740 ;LOOP ON ERROR SWITCH^
7175
7176 003275 ADR=ADR+1
7177 000400 XX=XX+XX
7178 777777 777377 YY=YY+YY+1
7179 IFE XX,<XX=1>
7180 IFE <YY-1>,<YY=-2>
7181
7182 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7183 777777 577400 V1=XX*YY
7184 777777 777777 IFE <XX_-22>,<V2A=-1>
7185 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7186 777777 777777 IFG XX,<V2=V2A>
7187 IFL XX,<V2=XX+1>
7188 MOP1 (\ADR,YY,0,XX,V2,V1)^
7189 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7190 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7191 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7192 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0150
7193
7194 777777 777377 F32750: AA1=YY ;INITIAL C(AC)
7195 034676 200 10 0 00 045105 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7196 000000 AA2=0 ;INITIAL C(AC+1)
7197 034677 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7198 000400 AEE=XX ;INITIAL C(E)
7199 034700 200 06 0 00 044645 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7200 034701 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7201 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7202 034702 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7203 034703 003 10 0 00 032751 ER3 AC,32751 ;HIGH PRODUCT FAILED
7204 777777 577400 AR2=V1 ;EXPECTED RESULT IN AC+1
7205 034704 312 11 0 00 045202 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7206 034705 004 11 0 00 032752 ER4 AC+1,32752 ;LOW PRODUCT FAILED
7207 000400 AEE=XX ;INITIAL C(E)
7208 034706 312 06 0 00 044645 CAME E,[XX] ;WAS C(E) CLOBBERED?
7209 034707 005 06 0 00 032753 ER5 E,32753 ;C(E) WAS CLOBBERED
7210 034710 321 12 0 00 034676 JUMPL AC+2,F32750 ;LOOP ON ERROR SWITCH^
7211
7212 003276 ADR=ADR+1
7213 001000 XX=XX+XX
7214 777777 776777 YY=YY+YY+1
7215 IFE XX,<XX=1>
7216 IFE <YY-1>,<YY=-2>
7217
7218 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7219 777776 777000 V1=XX*YY
7220 777777 777777 IFE <XX_-22>,<V2A=-1>
7221 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7222 777777 777777 IFG XX,<V2=V2A>
7223 IFL XX,<V2=XX+1>
7224 MOP1 (\ADR,YY,0,XX,V2,V1)^
7225 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7226 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7227 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7228 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7229
7230 777777 776777 F32760: AA1=YY ;INITIAL C(AC)
7231 034711 200 10 0 00 045107 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7232 000000 AA2=0 ;INITIAL C(AC+1)
7233 034712 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7234 001000 AEE=XX ;INITIAL C(E)
7235 034713 200 06 0 00 044650 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7236 034714 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7237 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7238 034715 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7239 034716 003 10 0 00 032761 ER3 AC,32761 ;HIGH PRODUCT FAILED
7240 777776 777000 AR2=V1 ;EXPECTED RESULT IN AC+1
7241 034717 312 11 0 00 045203 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7242 034720 004 11 0 00 032762 ER4 AC+1,32762 ;LOW PRODUCT FAILED
7243 001000 AEE=XX ;INITIAL C(E)
7244 034721 312 06 0 00 044650 CAME E,[XX] ;WAS C(E) CLOBBERED?
7245 034722 005 06 0 00 032763 ER5 E,32763 ;C(E) WAS CLOBBERED
7246 034723 321 12 0 00 034711 JUMPL AC+2,F32760 ;LOOP ON ERROR SWITCH^
7247
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0151
7248 003277 ADR=ADR+1
7249 002000 XX=XX+XX
7250 777777 775777 YY=YY+YY+1
7251 IFE XX,<XX=1>
7252 IFE <YY-1>,<YY=-2>
7253
7254 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7255 777773 776000 V1=XX*YY
7256 777777 777777 IFE <XX_-22>,<V2A=-1>
7257 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7258 777777 777777 IFG XX,<V2=V2A>
7259 IFL XX,<V2=XX+1>
7260 MOP1 (\ADR,YY,0,XX,V2,V1)^
7261 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7262 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7263 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7264 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7265
7266 777777 775777 F32770: AA1=YY ;INITIAL C(AC)
7267 034724 200 10 0 00 045111 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7268 000000 AA2=0 ;INITIAL C(AC+1)
7269 034725 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7270 002000 AEE=XX ;INITIAL C(E)
7271 034726 200 06 0 00 044653 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7272 034727 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7273 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7274 034730 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7275 034731 003 10 0 00 032771 ER3 AC,32771 ;HIGH PRODUCT FAILED
7276 777773 776000 AR2=V1 ;EXPECTED RESULT IN AC+1
7277 034732 312 11 0 00 045204 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7278 034733 004 11 0 00 032772 ER4 AC+1,32772 ;LOW PRODUCT FAILED
7279 002000 AEE=XX ;INITIAL C(E)
7280 034734 312 06 0 00 044653 CAME E,[XX] ;WAS C(E) CLOBBERED?
7281 034735 005 06 0 00 032773 ER5 E,32773 ;C(E) WAS CLOBBERED
7282 034736 321 12 0 00 034724 JUMPL AC+2,F32770 ;LOOP ON ERROR SWITCH^
7283
7284 003300 ADR=ADR+1
7285 004000 XX=XX+XX
7286 777777 773777 YY=YY+YY+1
7287 IFE XX,<XX=1>
7288 IFE <YY-1>,<YY=-2>
7289
7290 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7291 777757 774000 V1=XX*YY
7292 777777 777777 IFE <XX_-22>,<V2A=-1>
7293 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7294 777777 777777 IFG XX,<V2=V2A>
7295 IFL XX,<V2=XX+1>
7296 MOP1 (\ADR,YY,0,XX,V2,V1)^
7297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7298 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7299 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7301
7302 777777 773777 F33000: AA1=YY ;INITIAL C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0152
7303 034737 200 10 0 00 045113 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7304 000000 AA2=0 ;INITIAL C(AC+1)
7305 034740 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7306 004000 AEE=XX ;INITIAL C(E)
7307 034741 200 06 0 00 044656 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7308 034742 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7309 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7310 034743 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7311 034744 003 10 0 00 033001 ER3 AC,33001 ;HIGH PRODUCT FAILED
7312 777757 774000 AR2=V1 ;EXPECTED RESULT IN AC+1
7313 034745 312 11 0 00 045205 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7314 034746 004 11 0 00 033002 ER4 AC+1,33002 ;LOW PRODUCT FAILED
7315 004000 AEE=XX ;INITIAL C(E)
7316 034747 312 06 0 00 044656 CAME E,[XX] ;WAS C(E) CLOBBERED?
7317 034750 005 06 0 00 033003 ER5 E,33003 ;C(E) WAS CLOBBERED
7318 034751 321 12 0 00 034737 JUMPL AC+2,F33000 ;LOOP ON ERROR SWITCH^
7319
7320 003301 ADR=ADR+1
7321 010000 XX=XX+XX
7322 777777 767777 YY=YY+YY+1
7323 IFE XX,<XX=1>
7324 IFE <YY-1>,<YY=-2>
7325
7326 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7327 777677 770000 V1=XX*YY
7328 777777 777777 IFE <XX_-22>,<V2A=-1>
7329 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7330 777777 777777 IFG XX,<V2=V2A>
7331 IFL XX,<V2=XX+1>
7332 MOP1 (\ADR,YY,0,XX,V2,V1)^
7333 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7334 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7335 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7336 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7337
7338 777777 767777 F33010: AA1=YY ;INITIAL C(AC)
7339 034752 200 10 0 00 045115 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7340 000000 AA2=0 ;INITIAL C(AC+1)
7341 034753 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7342 010000 AEE=XX ;INITIAL C(E)
7343 034754 200 06 0 00 044661 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7344 034755 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7345 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7346 034756 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7347 034757 003 10 0 00 033011 ER3 AC,33011 ;HIGH PRODUCT FAILED
7348 777677 770000 AR2=V1 ;EXPECTED RESULT IN AC+1
7349 034760 312 11 0 00 045206 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7350 034761 004 11 0 00 033012 ER4 AC+1,33012 ;LOW PRODUCT FAILED
7351 010000 AEE=XX ;INITIAL C(E)
7352 034762 312 06 0 00 044661 CAME E,[XX] ;WAS C(E) CLOBBERED?
7353 034763 005 06 0 00 033013 ER5 E,33013 ;C(E) WAS CLOBBERED
7354 034764 321 12 0 00 034752 JUMPL AC+2,F33010 ;LOOP ON ERROR SWITCH^
7355
7356 003302 ADR=ADR+1
7357 020000 XX=XX+XX
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0153
7358 777777 757777 YY=YY+YY+1
7359 IFE XX,<XX=1>
7360 IFE <YY-1>,<YY=-2>
7361
7362 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7363 777377 760000 V1=XX*YY
7364 777777 777777 IFE <XX_-22>,<V2A=-1>
7365 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7366 777777 777777 IFG XX,<V2=V2A>
7367 IFL XX,<V2=XX+1>
7368 MOP1 (\ADR,YY,0,XX,V2,V1)^
7369 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7370 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7371 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7372 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7373
7374 777777 757777 F33020: AA1=YY ;INITIAL C(AC)
7375 034765 200 10 0 00 045117 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7376 000000 AA2=0 ;INITIAL C(AC+1)
7377 034766 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7378 020000 AEE=XX ;INITIAL C(E)
7379 034767 200 06 0 00 044664 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7380 034770 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7381 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7382 034771 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7383 034772 003 10 0 00 033021 ER3 AC,33021 ;HIGH PRODUCT FAILED
7384 777377 760000 AR2=V1 ;EXPECTED RESULT IN AC+1
7385 034773 312 11 0 00 045207 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7386 034774 004 11 0 00 033022 ER4 AC+1,33022 ;LOW PRODUCT FAILED
7387 020000 AEE=XX ;INITIAL C(E)
7388 034775 312 06 0 00 044664 CAME E,[XX] ;WAS C(E) CLOBBERED?
7389 034776 005 06 0 00 033023 ER5 E,33023 ;C(E) WAS CLOBBERED
7390 034777 321 12 0 00 034765 JUMPL AC+2,F33020 ;LOOP ON ERROR SWITCH^
7391
7392 003303 ADR=ADR+1
7393 040000 XX=XX+XX
7394 777777 737777 YY=YY+YY+1
7395 IFE XX,<XX=1>
7396 IFE <YY-1>,<YY=-2>
7397
7398 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7399 775777 740000 V1=XX*YY
7400 777777 777777 IFE <XX_-22>,<V2A=-1>
7401 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7402 777777 777777 IFG XX,<V2=V2A>
7403 IFL XX,<V2=XX+1>
7404 MOP1 (\ADR,YY,0,XX,V2,V1)^
7405 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7406 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7407 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7408 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7409
7410 777777 737777 F33030: AA1=YY ;INITIAL C(AC)
7411 035000 200 10 0 00 045121 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7412 000000 AA2=0 ;INITIAL C(AC+1)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0154
7413 035001 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7414 040000 AEE=XX ;INITIAL C(E)
7415 035002 200 06 0 00 044667 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7416 035003 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7417 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7418 035004 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7419 035005 003 10 0 00 033031 ER3 AC,33031 ;HIGH PRODUCT FAILED
7420 775777 740000 AR2=V1 ;EXPECTED RESULT IN AC+1
7421 035006 312 11 0 00 045210 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7422 035007 004 11 0 00 033032 ER4 AC+1,33032 ;LOW PRODUCT FAILED
7423 040000 AEE=XX ;INITIAL C(E)
7424 035010 312 06 0 00 044667 CAME E,[XX] ;WAS C(E) CLOBBERED?
7425 035011 005 06 0 00 033033 ER5 E,33033 ;C(E) WAS CLOBBERED
7426 035012 321 12 0 00 035000 JUMPL AC+2,F33030 ;LOOP ON ERROR SWITCH^
7427
7428 003304 ADR=ADR+1
7429 100000 XX=XX+XX
7430 777777 677777 YY=YY+YY+1
7431 IFE XX,<XX=1>
7432 IFE <YY-1>,<YY=-2>
7433
7434 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7435 767777 700000 V1=XX*YY
7436 777777 777777 IFE <XX_-22>,<V2A=-1>
7437 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7438 777777 777777 IFG XX,<V2=V2A>
7439 IFL XX,<V2=XX+1>
7440 MOP1 (\ADR,YY,0,XX,V2,V1)^
7441 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7442 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7443 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7444 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7445
7446 777777 677777 F33040: AA1=YY ;INITIAL C(AC)
7447 035013 200 10 0 00 045123 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7448 000000 AA2=0 ;INITIAL C(AC+1)
7449 035014 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7450 100000 AEE=XX ;INITIAL C(E)
7451 035015 200 06 0 00 044672 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7452 035016 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7453 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7454 035017 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7455 035020 003 10 0 00 033041 ER3 AC,33041 ;HIGH PRODUCT FAILED
7456 767777 700000 AR2=V1 ;EXPECTED RESULT IN AC+1
7457 035021 312 11 0 00 045211 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7458 035022 004 11 0 00 033042 ER4 AC+1,33042 ;LOW PRODUCT FAILED
7459 100000 AEE=XX ;INITIAL C(E)
7460 035023 312 06 0 00 044672 CAME E,[XX] ;WAS C(E) CLOBBERED?
7461 035024 005 06 0 00 033043 ER5 E,33043 ;C(E) WAS CLOBBERED
7462 035025 321 12 0 00 035013 JUMPL AC+2,F33040 ;LOOP ON ERROR SWITCH^
7463
7464 003305 ADR=ADR+1
7465 200000 XX=XX+XX
7466 777777 577777 YY=YY+YY+1
7467 IFE XX,<XX=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0155
7468 IFE <YY-1>,<YY=-2>
7469
7470 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7471 737777 600000 V1=XX*YY
7472 777777 777777 IFE <XX_-22>,<V2A=-1>
7473 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7474 777777 777777 IFG XX,<V2=V2A>
7475 IFL XX,<V2=XX+1>
7476 MOP1 (\ADR,YY,0,XX,V2,V1)^
7477 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7478 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7479 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7480 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7481
7482 777777 577777 F33050: AA1=YY ;INITIAL C(AC)
7483 035026 200 10 0 00 045125 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7484 000000 AA2=0 ;INITIAL C(AC+1)
7485 035027 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7486 200000 AEE=XX ;INITIAL C(E)
7487 035030 200 06 0 00 044675 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7488 035031 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7489 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7490 035032 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7491 035033 003 10 0 00 033051 ER3 AC,33051 ;HIGH PRODUCT FAILED
7492 737777 600000 AR2=V1 ;EXPECTED RESULT IN AC+1
7493 035034 312 11 0 00 045212 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7494 035035 004 11 0 00 033052 ER4 AC+1,33052 ;LOW PRODUCT FAILED
7495 200000 AEE=XX ;INITIAL C(E)
7496 035036 312 06 0 00 044675 CAME E,[XX] ;WAS C(E) CLOBBERED?
7497 035037 005 06 0 00 033053 ER5 E,33053 ;C(E) WAS CLOBBERED
7498 035040 321 12 0 00 035026 JUMPL AC+2,F33050 ;LOOP ON ERROR SWITCH^
7499
7500 003306 ADR=ADR+1
7501 400000 XX=XX+XX
7502 777777 377777 YY=YY+YY+1
7503 IFE XX,<XX=1>
7504 IFE <YY-1>,<YY=-2>
7505
7506 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7507 577777 400000 V1=XX*YY
7508 777777 777777 IFE <XX_-22>,<V2A=-1>
7509 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7510 777777 777777 IFG XX,<V2=V2A>
7511 IFL XX,<V2=XX+1>
7512 MOP1 (\ADR,YY,0,XX,V2,V1)^
7513 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7514 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7515 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7516 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7517
7518 777777 377777 F33060: AA1=YY ;INITIAL C(AC)
7519 035041 200 10 0 00 045127 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7520 000000 AA2=0 ;INITIAL C(AC+1)
7521 035042 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7522 400000 AEE=XX ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0156
7523 035043 200 06 0 00 044700 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7524 035044 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7525 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
7526 035045 312 10 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7527 035046 003 10 0 00 033061 ER3 AC,33061 ;HIGH PRODUCT FAILED
7528 577777 400000 AR2=V1 ;EXPECTED RESULT IN AC+1
7529 035047 312 11 0 00 045213 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7530 035050 004 11 0 00 033062 ER4 AC+1,33062 ;LOW PRODUCT FAILED
7531 400000 AEE=XX ;INITIAL C(E)
7532 035051 312 06 0 00 044700 CAME E,[XX] ;WAS C(E) CLOBBERED?
7533 035052 005 06 0 00 033063 ER5 E,33063 ;C(E) WAS CLOBBERED
7534 035053 321 12 0 00 035041 JUMPL AC+2,F33060 ;LOOP ON ERROR SWITCH^
7535
7536 003307 ADR=ADR+1
7537 000001 000000 XX=XX+XX
7538 777776 777777 YY=YY+YY+1
7539 IFE XX,<XX=1>
7540 IFE <YY-1>,<YY=-2>
7541
7542 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7543 777777 000000 V1=XX*YY
7544 IFE <XX_-22>,<V2A=-1>
7545 777777 777775 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7546 777777 777775 IFG XX,<V2=V2A>
7547 IFL XX,<V2=XX+1>
7548 MOP1 (\ADR,YY,0,XX,V2,V1)^
7549 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7550 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7551 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7552 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7553
7554 777776 777777 F33070: AA1=YY ;INITIAL C(AC)
7555 035054 200 10 0 00 045131 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7556 000000 AA2=0 ;INITIAL C(AC+1)
7557 035055 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7558 000001 000000 AEE=XX ;INITIAL C(E)
7559 035056 200 06 0 00 044703 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7560 035057 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7561 777777 777775 AR1=V2 ;EXPECTED RESULT IN AC
7562 035060 312 10 0 00 044624 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7563 035061 003 10 0 00 033071 ER3 AC,33071 ;HIGH PRODUCT FAILED
7564 777777 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7565 035062 312 11 0 00 045214 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7566 035063 004 11 0 00 033072 ER4 AC+1,33072 ;LOW PRODUCT FAILED
7567 000001 000000 AEE=XX ;INITIAL C(E)
7568 035064 312 06 0 00 044703 CAME E,[XX] ;WAS C(E) CLOBBERED?
7569 035065 005 06 0 00 033073 ER5 E,33073 ;C(E) WAS CLOBBERED
7570 035066 321 12 0 00 035054 JUMPL AC+2,F33070 ;LOOP ON ERROR SWITCH^
7571
7572 003310 ADR=ADR+1
7573 000002 000000 XX=XX+XX
7574 777775 777777 YY=YY+YY+1
7575 IFE XX,<XX=1>
7576 IFE <YY-1>,<YY=-2>
7577
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0157
7578 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7579 777776 000000 V1=XX*YY
7580 IFE <XX_-22>,<V2A=-1>
7581 777777 777767 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7582 777777 777767 IFG XX,<V2=V2A>
7583 IFL XX,<V2=XX+1>
7584 MOP1 (\ADR,YY,0,XX,V2,V1)^
7585 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7586 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7587 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7588 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7589
7590 777775 777777 F33100: AA1=YY ;INITIAL C(AC)
7591 035067 200 10 0 00 045133 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7592 000000 AA2=0 ;INITIAL C(AC+1)
7593 035070 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7594 000002 000000 AEE=XX ;INITIAL C(E)
7595 035071 200 06 0 00 044706 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7596 035072 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7597 777777 777767 AR1=V2 ;EXPECTED RESULT IN AC
7598 035073 312 10 0 00 045073 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7599 035074 003 10 0 00 033101 ER3 AC,33101 ;HIGH PRODUCT FAILED
7600 777776 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7601 035075 312 11 0 00 045215 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7602 035076 004 11 0 00 033102 ER4 AC+1,33102 ;LOW PRODUCT FAILED
7603 000002 000000 AEE=XX ;INITIAL C(E)
7604 035077 312 06 0 00 044706 CAME E,[XX] ;WAS C(E) CLOBBERED?
7605 035100 005 06 0 00 033103 ER5 E,33103 ;C(E) WAS CLOBBERED
7606 035101 321 12 0 00 035067 JUMPL AC+2,F33100 ;LOOP ON ERROR SWITCH^
7607
7608 003311 ADR=ADR+1
7609 000004 000000 XX=XX+XX
7610 777773 777777 YY=YY+YY+1
7611 IFE XX,<XX=1>
7612 IFE <YY-1>,<YY=-2>
7613
7614 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7615 777774 000000 V1=XX*YY
7616 IFE <XX_-22>,<V2A=-1>
7617 777777 777737 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7618 777777 777737 IFG XX,<V2=V2A>
7619 IFL XX,<V2=XX+1>
7620 MOP1 (\ADR,YY,0,XX,V2,V1)^
7621 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7622 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7623 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7624 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7625
7626 777773 777777 F33110: AA1=YY ;INITIAL C(AC)
7627 035102 200 10 0 00 045135 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7628 000000 AA2=0 ;INITIAL C(AC+1)
7629 035103 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7630 000004 000000 AEE=XX ;INITIAL C(E)
7631 035104 200 06 0 00 044711 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7632 035105 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0158
7633 777777 777737 AR1=V2 ;EXPECTED RESULT IN AC
7634 035106 312 10 0 00 045077 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7635 035107 003 10 0 00 033111 ER3 AC,33111 ;HIGH PRODUCT FAILED
7636 777774 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7637 035110 312 11 0 00 045216 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7638 035111 004 11 0 00 033112 ER4 AC+1,33112 ;LOW PRODUCT FAILED
7639 000004 000000 AEE=XX ;INITIAL C(E)
7640 035112 312 06 0 00 044711 CAME E,[XX] ;WAS C(E) CLOBBERED?
7641 035113 005 06 0 00 033113 ER5 E,33113 ;C(E) WAS CLOBBERED
7642 035114 321 12 0 00 035102 JUMPL AC+2,F33110 ;LOOP ON ERROR SWITCH^
7643
7644 003312 ADR=ADR+1
7645 000010 000000 XX=XX+XX
7646 777767 777777 YY=YY+YY+1
7647 IFE XX,<XX=1>
7648 IFE <YY-1>,<YY=-2>
7649
7650 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7651 777770 000000 V1=XX*YY
7652 IFE <XX_-22>,<V2A=-1>
7653 777777 777577 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7654 777777 777577 IFG XX,<V2=V2A>
7655 IFL XX,<V2=XX+1>
7656 MOP1 (\ADR,YY,0,XX,V2,V1)^
7657 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7658 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7659 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7660 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7661
7662 777767 777777 F33120: AA1=YY ;INITIAL C(AC)
7663 035115 200 10 0 00 045137 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7664 000000 AA2=0 ;INITIAL C(AC+1)
7665 035116 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7666 000010 000000 AEE=XX ;INITIAL C(E)
7667 035117 200 06 0 00 044714 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7668 035120 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7669 777777 777577 AR1=V2 ;EXPECTED RESULT IN AC
7670 035121 312 10 0 00 045103 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7671 035122 003 10 0 00 033121 ER3 AC,33121 ;HIGH PRODUCT FAILED
7672 777770 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7673 035123 312 11 0 00 045217 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7674 035124 004 11 0 00 033122 ER4 AC+1,33122 ;LOW PRODUCT FAILED
7675 000010 000000 AEE=XX ;INITIAL C(E)
7676 035125 312 06 0 00 044714 CAME E,[XX] ;WAS C(E) CLOBBERED?
7677 035126 005 06 0 00 033123 ER5 E,33123 ;C(E) WAS CLOBBERED
7678 035127 321 12 0 00 035115 JUMPL AC+2,F33120 ;LOOP ON ERROR SWITCH^
7679
7680 003313 ADR=ADR+1
7681 000020 000000 XX=XX+XX
7682 777757 777777 YY=YY+YY+1
7683 IFE XX,<XX=1>
7684 IFE <YY-1>,<YY=-2>
7685
7686 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7687 777760 000000 V1=XX*YY
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0159
7688 IFE <XX_-22>,<V2A=-1>
7689 777777 776777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7690 777777 776777 IFG XX,<V2=V2A>
7691 IFL XX,<V2=XX+1>
7692 MOP1 (\ADR,YY,0,XX,V2,V1)^
7693 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7694 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7695 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7696 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7697
7698 777757 777777 F33130: AA1=YY ;INITIAL C(AC)
7699 035130 200 10 0 00 045141 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7700 000000 AA2=0 ;INITIAL C(AC+1)
7701 035131 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7702 000020 000000 AEE=XX ;INITIAL C(E)
7703 035132 200 06 0 00 044717 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7704 035133 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7705 777777 776777 AR1=V2 ;EXPECTED RESULT IN AC
7706 035134 312 10 0 00 045107 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7707 035135 003 10 0 00 033131 ER3 AC,33131 ;HIGH PRODUCT FAILED
7708 777760 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7709 035136 312 11 0 00 045220 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7710 035137 004 11 0 00 033132 ER4 AC+1,33132 ;LOW PRODUCT FAILED
7711 000020 000000 AEE=XX ;INITIAL C(E)
7712 035140 312 06 0 00 044717 CAME E,[XX] ;WAS C(E) CLOBBERED?
7713 035141 005 06 0 00 033133 ER5 E,33133 ;C(E) WAS CLOBBERED
7714 035142 321 12 0 00 035130 JUMPL AC+2,F33130 ;LOOP ON ERROR SWITCH^
7715
7716 003314 ADR=ADR+1
7717 000040 000000 XX=XX+XX
7718 777737 777777 YY=YY+YY+1
7719 IFE XX,<XX=1>
7720 IFE <YY-1>,<YY=-2>
7721
7722 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7723 777740 000000 V1=XX*YY
7724 IFE <XX_-22>,<V2A=-1>
7725 777777 773777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7726 777777 773777 IFG XX,<V2=V2A>
7727 IFL XX,<V2=XX+1>
7728 MOP1 (\ADR,YY,0,XX,V2,V1)^
7729 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7730 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7731 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7732 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7733
7734 777737 777777 F33140: AA1=YY ;INITIAL C(AC)
7735 035143 200 10 0 00 045143 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7736 000000 AA2=0 ;INITIAL C(AC+1)
7737 035144 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7738 000040 000000 AEE=XX ;INITIAL C(E)
7739 035145 200 06 0 00 044722 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7740 035146 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7741 777777 773777 AR1=V2 ;EXPECTED RESULT IN AC
7742 035147 312 10 0 00 045113 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0160
7743 035150 003 10 0 00 033141 ER3 AC,33141 ;HIGH PRODUCT FAILED
7744 777740 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7745 035151 312 11 0 00 045221 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7746 035152 004 11 0 00 033142 ER4 AC+1,33142 ;LOW PRODUCT FAILED
7747 000040 000000 AEE=XX ;INITIAL C(E)
7748 035153 312 06 0 00 044722 CAME E,[XX] ;WAS C(E) CLOBBERED?
7749 035154 005 06 0 00 033143 ER5 E,33143 ;C(E) WAS CLOBBERED
7750 035155 321 12 0 00 035143 JUMPL AC+2,F33140 ;LOOP ON ERROR SWITCH^
7751
7752 003315 ADR=ADR+1
7753 000100 000000 XX=XX+XX
7754 777677 777777 YY=YY+YY+1
7755 IFE XX,<XX=1>
7756 IFE <YY-1>,<YY=-2>
7757
7758 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7759 777700 000000 V1=XX*YY
7760 IFE <XX_-22>,<V2A=-1>
7761 777777 757777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7762 777777 757777 IFG XX,<V2=V2A>
7763 IFL XX,<V2=XX+1>
7764 MOP1 (\ADR,YY,0,XX,V2,V1)^
7765 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7766 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7767 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7768 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7769
7770 777677 777777 F33150: AA1=YY ;INITIAL C(AC)
7771 035156 200 10 0 00 045145 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7772 000000 AA2=0 ;INITIAL C(AC+1)
7773 035157 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7774 000100 000000 AEE=XX ;INITIAL C(E)
7775 035160 200 06 0 00 044725 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7776 035161 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7777 777777 757777 AR1=V2 ;EXPECTED RESULT IN AC
7778 035162 312 10 0 00 045117 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7779 035163 003 10 0 00 033151 ER3 AC,33151 ;HIGH PRODUCT FAILED
7780 777700 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7781 035164 312 11 0 00 045222 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7782 035165 004 11 0 00 033152 ER4 AC+1,33152 ;LOW PRODUCT FAILED
7783 000100 000000 AEE=XX ;INITIAL C(E)
7784 035166 312 06 0 00 044725 CAME E,[XX] ;WAS C(E) CLOBBERED?
7785 035167 005 06 0 00 033153 ER5 E,33153 ;C(E) WAS CLOBBERED
7786 035170 321 12 0 00 035156 JUMPL AC+2,F33150 ;LOOP ON ERROR SWITCH^
7787
7788 003316 ADR=ADR+1
7789 000200 000000 XX=XX+XX
7790 777577 777777 YY=YY+YY+1
7791 IFE XX,<XX=1>
7792 IFE <YY-1>,<YY=-2>
7793
7794 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7795 777600 000000 V1=XX*YY
7796 IFE <XX_-22>,<V2A=-1>
7797 777777 677777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0161
7798 777777 677777 IFG XX,<V2=V2A>
7799 IFL XX,<V2=XX+1>
7800 MOP1 (\ADR,YY,0,XX,V2,V1)^
7801 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7802 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7803 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7804 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7805
7806 777577 777777 F33160: AA1=YY ;INITIAL C(AC)
7807 035171 200 10 0 00 045147 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7808 000000 AA2=0 ;INITIAL C(AC+1)
7809 035172 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7810 000200 000000 AEE=XX ;INITIAL C(E)
7811 035173 200 06 0 00 044730 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7812 035174 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7813 777777 677777 AR1=V2 ;EXPECTED RESULT IN AC
7814 035175 312 10 0 00 045123 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7815 035176 003 10 0 00 033161 ER3 AC,33161 ;HIGH PRODUCT FAILED
7816 777600 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7817 035177 312 11 0 00 045223 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7818 035200 004 11 0 00 033162 ER4 AC+1,33162 ;LOW PRODUCT FAILED
7819 000200 000000 AEE=XX ;INITIAL C(E)
7820 035201 312 06 0 00 044730 CAME E,[XX] ;WAS C(E) CLOBBERED?
7821 035202 005 06 0 00 033163 ER5 E,33163 ;C(E) WAS CLOBBERED
7822 035203 321 12 0 00 035171 JUMPL AC+2,F33160 ;LOOP ON ERROR SWITCH^
7823
7824 003317 ADR=ADR+1
7825 000400 000000 XX=XX+XX
7826 777377 777777 YY=YY+YY+1
7827 IFE XX,<XX=1>
7828 IFE <YY-1>,<YY=-2>
7829
7830 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7831 777400 000000 V1=XX*YY
7832 IFE <XX_-22>,<V2A=-1>
7833 777777 377777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7834 777777 377777 IFG XX,<V2=V2A>
7835 IFL XX,<V2=XX+1>
7836 MOP1 (\ADR,YY,0,XX,V2,V1)^
7837 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7838 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7839 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7840 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7841
7842 777377 777777 F33170: AA1=YY ;INITIAL C(AC)
7843 035204 200 10 0 00 045151 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7844 000000 AA2=0 ;INITIAL C(AC+1)
7845 035205 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7846 000400 000000 AEE=XX ;INITIAL C(E)
7847 035206 200 06 0 00 044733 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7848 035207 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7849 777777 377777 AR1=V2 ;EXPECTED RESULT IN AC
7850 035210 312 10 0 00 045127 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7851 035211 003 10 0 00 033171 ER3 AC,33171 ;HIGH PRODUCT FAILED
7852 777400 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0162
7853 035212 312 11 0 00 045224 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7854 035213 004 11 0 00 033172 ER4 AC+1,33172 ;LOW PRODUCT FAILED
7855 000400 000000 AEE=XX ;INITIAL C(E)
7856 035214 312 06 0 00 044733 CAME E,[XX] ;WAS C(E) CLOBBERED?
7857 035215 005 06 0 00 033173 ER5 E,33173 ;C(E) WAS CLOBBERED
7858 035216 321 12 0 00 035204 JUMPL AC+2,F33170 ;LOOP ON ERROR SWITCH^
7859
7860 003320 ADR=ADR+1
7861 001000 000000 XX=XX+XX
7862 776777 777777 YY=YY+YY+1
7863 IFE XX,<XX=1>
7864 IFE <YY-1>,<YY=-2>
7865
7866 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7867 777000 000000 V1=XX*YY
7868 IFE <XX_-22>,<V2A=-1>
7869 777775 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7870 777775 777777 IFG XX,<V2=V2A>
7871 IFL XX,<V2=XX+1>
7872 MOP1 (\ADR,YY,0,XX,V2,V1)^
7873 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7874 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7875 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7876 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7877
7878 776777 777777 F33200: AA1=YY ;INITIAL C(AC)
7879 035217 200 10 0 00 045153 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7880 000000 AA2=0 ;INITIAL C(AC+1)
7881 035220 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7882 001000 000000 AEE=XX ;INITIAL C(E)
7883 035221 200 06 0 00 044736 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7884 035222 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7885 777775 777777 AR1=V2 ;EXPECTED RESULT IN AC
7886 035223 312 10 0 00 045133 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7887 035224 003 10 0 00 033201 ER3 AC,33201 ;HIGH PRODUCT FAILED
7888 777000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7889 035225 312 11 0 00 045225 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7890 035226 004 11 0 00 033202 ER4 AC+1,33202 ;LOW PRODUCT FAILED
7891 001000 000000 AEE=XX ;INITIAL C(E)
7892 035227 312 06 0 00 044736 CAME E,[XX] ;WAS C(E) CLOBBERED?
7893 035230 005 06 0 00 033203 ER5 E,33203 ;C(E) WAS CLOBBERED
7894 035231 321 12 0 00 035217 JUMPL AC+2,F33200 ;LOOP ON ERROR SWITCH^
7895
7896 003321 ADR=ADR+1
7897 002000 000000 XX=XX+XX
7898 775777 777777 YY=YY+YY+1
7899 IFE XX,<XX=1>
7900 IFE <YY-1>,<YY=-2>
7901
7902 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7903 776000 000000 V1=XX*YY
7904 IFE <XX_-22>,<V2A=-1>
7905 777767 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7906 777767 777777 IFG XX,<V2=V2A>
7907 IFL XX,<V2=XX+1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0163
7908 MOP1 (\ADR,YY,0,XX,V2,V1)^
7909 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7910 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7911 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7912 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7913
7914 775777 777777 F33210: AA1=YY ;INITIAL C(AC)
7915 035232 200 10 0 00 045155 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7916 000000 AA2=0 ;INITIAL C(AC+1)
7917 035233 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7918 002000 000000 AEE=XX ;INITIAL C(E)
7919 035234 200 06 0 00 044741 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7920 035235 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7921 777767 777777 AR1=V2 ;EXPECTED RESULT IN AC
7922 035236 312 10 0 00 045137 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7923 035237 003 10 0 00 033211 ER3 AC,33211 ;HIGH PRODUCT FAILED
7924 776000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7925 035240 312 11 0 00 045226 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7926 035241 004 11 0 00 033212 ER4 AC+1,33212 ;LOW PRODUCT FAILED
7927 002000 000000 AEE=XX ;INITIAL C(E)
7928 035242 312 06 0 00 044741 CAME E,[XX] ;WAS C(E) CLOBBERED?
7929 035243 005 06 0 00 033213 ER5 E,33213 ;C(E) WAS CLOBBERED
7930 035244 321 12 0 00 035232 JUMPL AC+2,F33210 ;LOOP ON ERROR SWITCH^
7931
7932 003322 ADR=ADR+1
7933 004000 000000 XX=XX+XX
7934 773777 777777 YY=YY+YY+1
7935 IFE XX,<XX=1>
7936 IFE <YY-1>,<YY=-2>
7937
7938 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7939 774000 000000 V1=XX*YY
7940 IFE <XX_-22>,<V2A=-1>
7941 777737 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7942 777737 777777 IFG XX,<V2=V2A>
7943 IFL XX,<V2=XX+1>
7944 MOP1 (\ADR,YY,0,XX,V2,V1)^
7945 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7946 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7947 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7948 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7949
7950 773777 777777 F33220: AA1=YY ;INITIAL C(AC)
7951 035245 200 10 0 00 045157 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7952 000000 AA2=0 ;INITIAL C(AC+1)
7953 035246 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7954 004000 000000 AEE=XX ;INITIAL C(E)
7955 035247 200 06 0 00 044744 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7956 035250 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7957 777737 777777 AR1=V2 ;EXPECTED RESULT IN AC
7958 035251 312 10 0 00 045143 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7959 035252 003 10 0 00 033221 ER3 AC,33221 ;HIGH PRODUCT FAILED
7960 774000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7961 035253 312 11 0 00 045227 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7962 035254 004 11 0 00 033222 ER4 AC+1,33222 ;LOW PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0164
7963 004000 000000 AEE=XX ;INITIAL C(E)
7964 035255 312 06 0 00 044744 CAME E,[XX] ;WAS C(E) CLOBBERED?
7965 035256 005 06 0 00 033223 ER5 E,33223 ;C(E) WAS CLOBBERED
7966 035257 321 12 0 00 035245 JUMPL AC+2,F33220 ;LOOP ON ERROR SWITCH^
7967
7968 003323 ADR=ADR+1
7969 010000 000000 XX=XX+XX
7970 767777 777777 YY=YY+YY+1
7971 IFE XX,<XX=1>
7972 IFE <YY-1>,<YY=-2>
7973
7974 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
7975 770000 000000 V1=XX*YY
7976 IFE <XX_-22>,<V2A=-1>
7977 777577 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
7978 777577 777777 IFG XX,<V2=V2A>
7979 IFL XX,<V2=XX+1>
7980 MOP1 (\ADR,YY,0,XX,V2,V1)^
7981 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
7982 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7983 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
7984 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7985
7986 767777 777777 F33230: AA1=YY ;INITIAL C(AC)
7987 035260 200 10 0 00 045161 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
7988 000000 AA2=0 ;INITIAL C(AC+1)
7989 035261 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
7990 010000 000000 AEE=XX ;INITIAL C(E)
7991 035262 200 06 0 00 044747 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7992 035263 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7993 777577 777777 AR1=V2 ;EXPECTED RESULT IN AC
7994 035264 312 10 0 00 045147 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
7995 035265 003 10 0 00 033231 ER3 AC,33231 ;HIGH PRODUCT FAILED
7996 770000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
7997 035266 312 11 0 00 045230 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
7998 035267 004 11 0 00 033232 ER4 AC+1,33232 ;LOW PRODUCT FAILED
7999 010000 000000 AEE=XX ;INITIAL C(E)
8000 035270 312 06 0 00 044747 CAME E,[XX] ;WAS C(E) CLOBBERED?
8001 035271 005 06 0 00 033233 ER5 E,33233 ;C(E) WAS CLOBBERED
8002 035272 321 12 0 00 035260 JUMPL AC+2,F33230 ;LOOP ON ERROR SWITCH^
8003
8004 003324 ADR=ADR+1
8005 020000 000000 XX=XX+XX
8006 757777 777777 YY=YY+YY+1
8007 IFE XX,<XX=1>
8008 IFE <YY-1>,<YY=-2>
8009
8010 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
8011 760000 000000 V1=XX*YY
8012 IFE <XX_-22>,<V2A=-1>
8013 776777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8014 776777 777777 IFG XX,<V2=V2A>
8015 IFL XX,<V2=XX+1>
8016 MOP1 (\ADR,YY,0,XX,V2,V1)^
8017 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0165
8018 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8019 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
8020 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8021
8022 757777 777777 F33240: AA1=YY ;INITIAL C(AC)
8023 035273 200 10 0 00 045163 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
8024 000000 AA2=0 ;INITIAL C(AC+1)
8025 035274 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8026 020000 000000 AEE=XX ;INITIAL C(E)
8027 035275 200 06 0 00 044752 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8028 035276 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8029 776777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8030 035277 312 10 0 00 045153 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8031 035300 003 10 0 00 033241 ER3 AC,33241 ;HIGH PRODUCT FAILED
8032 760000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8033 035301 312 11 0 00 045231 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8034 035302 004 11 0 00 033242 ER4 AC+1,33242 ;LOW PRODUCT FAILED
8035 020000 000000 AEE=XX ;INITIAL C(E)
8036 035303 312 06 0 00 044752 CAME E,[XX] ;WAS C(E) CLOBBERED?
8037 035304 005 06 0 00 033243 ER5 E,33243 ;C(E) WAS CLOBBERED
8038 035305 321 12 0 00 035273 JUMPL AC+2,F33240 ;LOOP ON ERROR SWITCH^
8039
8040 003325 ADR=ADR+1
8041 040000 000000 XX=XX+XX
8042 737777 777777 YY=YY+YY+1
8043 IFE XX,<XX=1>
8044 IFE <YY-1>,<YY=-2>
8045
8046 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
8047 740000 000000 V1=XX*YY
8048 IFE <XX_-22>,<V2A=-1>
8049 773777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8050 773777 777777 IFG XX,<V2=V2A>
8051 IFL XX,<V2=XX+1>
8052 MOP1 (\ADR,YY,0,XX,V2,V1)^
8053 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
8054 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8055 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
8056 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8057
8058 737777 777777 F33250: AA1=YY ;INITIAL C(AC)
8059 035306 200 10 0 00 045165 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
8060 000000 AA2=0 ;INITIAL C(AC+1)
8061 035307 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8062 040000 000000 AEE=XX ;INITIAL C(E)
8063 035310 200 06 0 00 044755 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8064 035311 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8065 773777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8066 035312 312 10 0 00 045157 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8067 035313 003 10 0 00 033251 ER3 AC,33251 ;HIGH PRODUCT FAILED
8068 740000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8069 035314 312 11 0 00 045232 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8070 035315 004 11 0 00 033252 ER4 AC+1,33252 ;LOW PRODUCT FAILED
8071 040000 000000 AEE=XX ;INITIAL C(E)
8072 035316 312 06 0 00 044755 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-22
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0166
8073 035317 005 06 0 00 033253 ER5 E,33253 ;C(E) WAS CLOBBERED
8074 035320 321 12 0 00 035306 JUMPL AC+2,F33250 ;LOOP ON ERROR SWITCH^
8075
8076 003326 ADR=ADR+1
8077 100000 000000 XX=XX+XX
8078 677777 777777 YY=YY+YY+1
8079 IFE XX,<XX=1>
8080 IFE <YY-1>,<YY=-2>
8081
8082 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
8083 700000 000000 V1=XX*YY
8084 IFE <XX_-22>,<V2A=-1>
8085 757777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8086 757777 777777 IFG XX,<V2=V2A>
8087 IFL XX,<V2=XX+1>
8088 MOP1 (\ADR,YY,0,XX,V2,V1)^
8089 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
8090 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8091 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
8092 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8093
8094 677777 777777 F33260: AA1=YY ;INITIAL C(AC)
8095 035321 200 10 0 00 045167 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
8096 000000 AA2=0 ;INITIAL C(AC+1)
8097 035322 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8098 100000 000000 AEE=XX ;INITIAL C(E)
8099 035323 200 06 0 00 044760 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8100 035324 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8101 757777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8102 035325 312 10 0 00 045163 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8103 035326 003 10 0 00 033261 ER3 AC,33261 ;HIGH PRODUCT FAILED
8104 700000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8105 035327 312 11 0 00 045233 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8106 035330 004 11 0 00 033262 ER4 AC+1,33262 ;LOW PRODUCT FAILED
8107 100000 000000 AEE=XX ;INITIAL C(E)
8108 035331 312 06 0 00 044760 CAME E,[XX] ;WAS C(E) CLOBBERED?
8109 035332 005 06 0 00 033263 ER5 E,33263 ;C(E) WAS CLOBBERED
8110 035333 321 12 0 00 035321 JUMPL AC+2,F33260 ;LOOP ON ERROR SWITCH^
8111
8112 003327 ADR=ADR+1
8113 200000 000000 XX=XX+XX
8114 577777 777777 YY=YY+YY+1
8115 IFE XX,<XX=1>
8116 IFE <YY-1>,<YY=-2>
8117
8118 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
8119 600000 000000 V1=XX*YY
8120 IFE <XX_-22>,<V2A=-1>
8121 677777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8122 677777 777777 IFG XX,<V2=V2A>
8123 IFL XX,<V2=XX+1>
8124 MOP1 (\ADR,YY,0,XX,V2,V1)^
8125 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
8126 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8127 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8-23
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0167
8128 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8129
8130 577777 777777 F33270: AA1=YY ;INITIAL C(AC)
8131 035334 200 10 0 00 045171 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
8132 000000 AA2=0 ;INITIAL C(AC+1)
8133 035335 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8134 200000 000000 AEE=XX ;INITIAL C(E)
8135 035336 200 06 0 00 044763 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8136 035337 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8137 677777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8138 035340 312 10 0 00 045167 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8139 035341 003 10 0 00 033271 ER3 AC,33271 ;HIGH PRODUCT FAILED
8140 600000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8141 035342 312 11 0 00 044762 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8142 035343 004 11 0 00 033272 ER4 AC+1,33272 ;LOW PRODUCT FAILED
8143 200000 000000 AEE=XX ;INITIAL C(E)
8144 035344 312 06 0 00 044763 CAME E,[XX] ;WAS C(E) CLOBBERED?
8145 035345 005 06 0 00 033273 ER5 E,33273 ;C(E) WAS CLOBBERED
8146 035346 321 12 0 00 035334 JUMPL AC+2,F33270 ;LOOP ON ERROR SWITCH^
8147
8148 003330 ADR=ADR+1
8149 400000 000000 XX=XX+XX
8150 377777 777777 YY=YY+YY+1
8151 IFE XX,<XX=1>
8152 IFE <YY-1>,<YY=-2>
8153
8154 ;MULTIPLY A FLOATING 1 BY A FLOATING 0
8155 400000 000000 V1=XX*YY
8156 IFE <XX_-22>,<V2A=-1>
8157 777777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8158 IFG XX,<V2=V2A>
8159 400000 000001 IFL XX,<V2=XX+1>
8160 MOP1 (\ADR,YY,0,XX,V2,V1)^
8161 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [YY],[0] AND
8162 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8163 ;AND E AGAINST [V2], [V1] AND [XX] RESPECTIVELY.
8164 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8165
8166 377777 777777 F33300: AA1=YY ;INITIAL C(AC)
8167 035347 200 10 0 00 045172 MOVE AC,[YY] ;PRELOAD AC (MULTIPLIER)
8168 000000 AA2=0 ;INITIAL C(AC+1)
8169 035350 200 11 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8170 400000 000000 AEE=XX ;INITIAL C(E)
8171 035351 200 06 0 00 044765 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8172 035352 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8173 400000 000001 AR1=V2 ;EXPECTED RESULT IN AC
8174 035353 312 10 0 00 045234 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8175 035354 003 10 0 00 033301 ER3 AC,33301 ;HIGH PRODUCT FAILED
8176 400000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8177 035355 312 11 0 00 044765 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8178 035356 004 11 0 00 033302 ER4 AC+1,33302 ;LOW PRODUCT FAILED
8179 400000 000000 AEE=XX ;INITIAL C(E)
8180 035357 312 06 0 00 044765 CAME E,[XX] ;WAS C(E) CLOBBERED?
8181 035360 005 06 0 00 033303 ER5 E,33303 ;C(E) WAS CLOBBERED
8182 035361 321 12 0 00 035347 JUMPL AC+2,F33300 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0168
8183 000007 AC=7
8184 000005 E=<AC-2>&17
8185 SAVEAC (1,1)^
8186 035362 201 11 0 00 035362 MOVEI AC+2,. ;SAVE TEST PC
8187 035363 202 11 0 00 030051 MOVEM AC+2,TESTPC
8188 035364 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
8189 035365 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
8190 000000 XX=0
8191 000000 YY=0
8192
8193 REPEAT ^D35,< ;LAST CASE DIFFERENT
8194 ADR=ADR+1
8195 XX=XX+XX
8196 YY=YY+YY+1
8197 IFE XX,<XX=1>
8198 IFE <YY-1>,<YY=-2>
8199
8200 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8201 V1=XX*YY
8202 IFE <XX_-22>,<V2A=-1>
8203 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8204 IFG XX,<V2=V2A>
8205 IFL XX,<V2=XX+1>
8206 MOP1 (\ADR,XX,0,YY,V2,V1)>
8207 ;LAST CASE DIFFERENT
8208 003331 ADR=ADR+1
8209 000000 XX=XX+XX
8210 000001 YY=YY+YY+1
8211 000001 IFE XX,<XX=1>
8212 777777 777776 IFE <YY-1>,<YY=-2>
8213
8214 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8215 777777 777776 V1=XX*YY
8216 777777 777777 IFE <XX_-22>,<V2A=-1>
8217 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8218 777777 777777 IFG XX,<V2=V2A>
8219 IFL XX,<V2=XX+1>
8220 MOP1 (\ADR,XX,0,YY,V2,V1)^
8221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8222 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8223 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8225
8226 000001 F33310: AA1=XX ;INITIAL C(AC)
8227 035366 200 07 0 00 044616 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8228 000000 AA2=0 ;INITIAL C(AC+1)
8229 035367 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8230 777777 777776 AEE=YY ;INITIAL C(E)
8231 035370 200 05 0 00 044621 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8232 035371 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8233 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8234 035372 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8235 035373 003 07 0 00 033311 ER3 AC,33311 ;HIGH PRODUCT FAILED
8236 777777 777776 AR2=V1 ;EXPECTED RESULT IN AC+1
8237 035374 312 10 0 00 044621 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0169
8238 035375 004 10 0 00 033312 ER4 AC+1,33312 ;LOW PRODUCT FAILED
8239 777777 777776 AEE=YY ;INITIAL C(E)
8240 035376 312 05 0 00 044621 CAME E,[YY] ;WAS C(E) CLOBBERED?
8241 035377 005 05 0 00 033313 ER5 E,33313 ;C(E) WAS CLOBBERED
8242 035400 321 11 0 00 035366 JUMPL AC+2,F33310 ;LOOP ON ERROR SWITCH^
8243 ;LAST CASE DIFFERENT
8244 003332 ADR=ADR+1
8245 000002 XX=XX+XX
8246 777777 777775 YY=YY+YY+1
8247 IFE XX,<XX=1>
8248 IFE <YY-1>,<YY=-2>
8249
8250 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8251 777777 777772 V1=XX*YY
8252 777777 777777 IFE <XX_-22>,<V2A=-1>
8253 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8254 777777 777777 IFG XX,<V2=V2A>
8255 IFL XX,<V2=XX+1>
8256 MOP1 (\ADR,XX,0,YY,V2,V1)^
8257 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8258 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8259 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8260 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8261
8262 000002 F33320: AA1=XX ;INITIAL C(AC)
8263 035401 200 07 0 00 044620 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8264 000000 AA2=0 ;INITIAL C(AC+1)
8265 035402 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8266 777777 777775 AEE=YY ;INITIAL C(E)
8267 035403 200 05 0 00 044624 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8268 035404 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8269 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8270 035405 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8271 035406 003 07 0 00 033321 ER3 AC,33321 ;HIGH PRODUCT FAILED
8272 777777 777772 AR2=V1 ;EXPECTED RESULT IN AC+1
8273 035407 312 10 0 00 044627 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8274 035410 004 10 0 00 033322 ER4 AC+1,33322 ;LOW PRODUCT FAILED
8275 777777 777775 AEE=YY ;INITIAL C(E)
8276 035411 312 05 0 00 044624 CAME E,[YY] ;WAS C(E) CLOBBERED?
8277 035412 005 05 0 00 033323 ER5 E,33323 ;C(E) WAS CLOBBERED
8278 035413 321 11 0 00 035401 JUMPL AC+2,F33320 ;LOOP ON ERROR SWITCH^
8279 ;LAST CASE DIFFERENT
8280 003333 ADR=ADR+1
8281 000004 XX=XX+XX
8282 777777 777773 YY=YY+YY+1
8283 IFE XX,<XX=1>
8284 IFE <YY-1>,<YY=-2>
8285
8286 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8287 777777 777754 V1=XX*YY
8288 777777 777777 IFE <XX_-22>,<V2A=-1>
8289 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8290 777777 777777 IFG XX,<V2=V2A>
8291 IFL XX,<V2=XX+1>
8292 MOP1 (\ADR,XX,0,YY,V2,V1)^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0170
8293 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8294 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8295 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8296 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8297
8298 000004 F33330: AA1=XX ;INITIAL C(AC)
8299 035414 200 07 0 00 044623 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8300 000000 AA2=0 ;INITIAL C(AC+1)
8301 035415 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8302 777777 777773 AEE=YY ;INITIAL C(E)
8303 035416 200 05 0 00 045071 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8304 035417 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8305 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8306 035420 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8307 035421 003 07 0 00 033331 ER3 AC,33331 ;HIGH PRODUCT FAILED
8308 777777 777754 AR2=V1 ;EXPECTED RESULT IN AC+1
8309 035422 312 10 0 00 045174 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8310 035423 004 10 0 00 033332 ER4 AC+1,33332 ;LOW PRODUCT FAILED
8311 777777 777773 AEE=YY ;INITIAL C(E)
8312 035424 312 05 0 00 045071 CAME E,[YY] ;WAS C(E) CLOBBERED?
8313 035425 005 05 0 00 033333 ER5 E,33333 ;C(E) WAS CLOBBERED
8314 035426 321 11 0 00 035414 JUMPL AC+2,F33330 ;LOOP ON ERROR SWITCH^
8315 ;LAST CASE DIFFERENT
8316 003334 ADR=ADR+1
8317 000010 XX=XX+XX
8318 777777 777767 YY=YY+YY+1
8319 IFE XX,<XX=1>
8320 IFE <YY-1>,<YY=-2>
8321
8322 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8323 777777 777670 V1=XX*YY
8324 777777 777777 IFE <XX_-22>,<V2A=-1>
8325 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8326 777777 777777 IFG XX,<V2=V2A>
8327 IFL XX,<V2=XX+1>
8328 MOP1 (\ADR,XX,0,YY,V2,V1)^
8329 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8330 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8331 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8332 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8333
8334 000010 F33340: AA1=XX ;INITIAL C(AC)
8335 035427 200 07 0 00 044626 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8336 000000 AA2=0 ;INITIAL C(AC+1)
8337 035430 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8338 777777 777767 AEE=YY ;INITIAL C(E)
8339 035431 200 05 0 00 045073 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8340 035432 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8341 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8342 035433 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8343 035434 003 07 0 00 033341 ER3 AC,33341 ;HIGH PRODUCT FAILED
8344 777777 777670 AR2=V1 ;EXPECTED RESULT IN AC+1
8345 035435 312 10 0 00 045175 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8346 035436 004 10 0 00 033342 ER4 AC+1,33342 ;LOW PRODUCT FAILED
8347 777777 777767 AEE=YY ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0171
8348 035437 312 05 0 00 045073 CAME E,[YY] ;WAS C(E) CLOBBERED?
8349 035440 005 05 0 00 033343 ER5 E,33343 ;C(E) WAS CLOBBERED
8350 035441 321 11 0 00 035427 JUMPL AC+2,F33340 ;LOOP ON ERROR SWITCH^
8351 ;LAST CASE DIFFERENT
8352 003335 ADR=ADR+1
8353 000020 XX=XX+XX
8354 777777 777757 YY=YY+YY+1
8355 IFE XX,<XX=1>
8356 IFE <YY-1>,<YY=-2>
8357
8358 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8359 777777 777360 V1=XX*YY
8360 777777 777777 IFE <XX_-22>,<V2A=-1>
8361 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8362 777777 777777 IFG XX,<V2=V2A>
8363 IFL XX,<V2=XX+1>
8364 MOP1 (\ADR,XX,0,YY,V2,V1)^
8365 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8366 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8367 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8368 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8369
8370 000020 F33350: AA1=XX ;INITIAL C(AC)
8371 035442 200 07 0 00 044631 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8372 000000 AA2=0 ;INITIAL C(AC+1)
8373 035443 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8374 777777 777757 AEE=YY ;INITIAL C(E)
8375 035444 200 05 0 00 045075 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8376 035445 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8377 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8378 035446 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8379 035447 003 07 0 00 033351 ER3 AC,33351 ;HIGH PRODUCT FAILED
8380 777777 777360 AR2=V1 ;EXPECTED RESULT IN AC+1
8381 035450 312 10 0 00 045176 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8382 035451 004 10 0 00 033352 ER4 AC+1,33352 ;LOW PRODUCT FAILED
8383 777777 777757 AEE=YY ;INITIAL C(E)
8384 035452 312 05 0 00 045075 CAME E,[YY] ;WAS C(E) CLOBBERED?
8385 035453 005 05 0 00 033353 ER5 E,33353 ;C(E) WAS CLOBBERED
8386 035454 321 11 0 00 035442 JUMPL AC+2,F33350 ;LOOP ON ERROR SWITCH^
8387 ;LAST CASE DIFFERENT
8388 003336 ADR=ADR+1
8389 000040 XX=XX+XX
8390 777777 777737 YY=YY+YY+1
8391 IFE XX,<XX=1>
8392 IFE <YY-1>,<YY=-2>
8393
8394 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8395 777777 775740 V1=XX*YY
8396 777777 777777 IFE <XX_-22>,<V2A=-1>
8397 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8398 777777 777777 IFG XX,<V2=V2A>
8399 IFL XX,<V2=XX+1>
8400 MOP1 (\ADR,XX,0,YY,V2,V1)^
8401 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8402 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-4
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0172
8403 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8404 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8405
8406 000040 F33360: AA1=XX ;INITIAL C(AC)
8407 035455 200 07 0 00 044634 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8408 000000 AA2=0 ;INITIAL C(AC+1)
8409 035456 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8410 777777 777737 AEE=YY ;INITIAL C(E)
8411 035457 200 05 0 00 045077 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8412 035460 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8413 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8414 035461 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8415 035462 003 07 0 00 033361 ER3 AC,33361 ;HIGH PRODUCT FAILED
8416 777777 775740 AR2=V1 ;EXPECTED RESULT IN AC+1
8417 035463 312 10 0 00 045177 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8418 035464 004 10 0 00 033362 ER4 AC+1,33362 ;LOW PRODUCT FAILED
8419 777777 777737 AEE=YY ;INITIAL C(E)
8420 035465 312 05 0 00 045077 CAME E,[YY] ;WAS C(E) CLOBBERED?
8421 035466 005 05 0 00 033363 ER5 E,33363 ;C(E) WAS CLOBBERED
8422 035467 321 11 0 00 035455 JUMPL AC+2,F33360 ;LOOP ON ERROR SWITCH^
8423 ;LAST CASE DIFFERENT
8424 003337 ADR=ADR+1
8425 000100 XX=XX+XX
8426 777777 777677 YY=YY+YY+1
8427 IFE XX,<XX=1>
8428 IFE <YY-1>,<YY=-2>
8429
8430 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8431 777777 767700 V1=XX*YY
8432 777777 777777 IFE <XX_-22>,<V2A=-1>
8433 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8434 777777 777777 IFG XX,<V2=V2A>
8435 IFL XX,<V2=XX+1>
8436 MOP1 (\ADR,XX,0,YY,V2,V1)^
8437 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8438 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8439 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8440 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8441
8442 000100 F33370: AA1=XX ;INITIAL C(AC)
8443 035470 200 07 0 00 044637 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8444 000000 AA2=0 ;INITIAL C(AC+1)
8445 035471 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8446 777777 777677 AEE=YY ;INITIAL C(E)
8447 035472 200 05 0 00 045101 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8448 035473 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8449 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8450 035474 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8451 035475 003 07 0 00 033371 ER3 AC,33371 ;HIGH PRODUCT FAILED
8452 777777 767700 AR2=V1 ;EXPECTED RESULT IN AC+1
8453 035476 312 10 0 00 045200 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8454 035477 004 10 0 00 033372 ER4 AC+1,33372 ;LOW PRODUCT FAILED
8455 777777 777677 AEE=YY ;INITIAL C(E)
8456 035500 312 05 0 00 045101 CAME E,[YY] ;WAS C(E) CLOBBERED?
8457 035501 005 05 0 00 033373 ER5 E,33373 ;C(E) WAS CLOBBERED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-5
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0173
8458 035502 321 11 0 00 035470 JUMPL AC+2,F33370 ;LOOP ON ERROR SWITCH^
8459 ;LAST CASE DIFFERENT
8460 003340 ADR=ADR+1
8461 000200 XX=XX+XX
8462 777777 777577 YY=YY+YY+1
8463 IFE XX,<XX=1>
8464 IFE <YY-1>,<YY=-2>
8465
8466 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8467 777777 737600 V1=XX*YY
8468 777777 777777 IFE <XX_-22>,<V2A=-1>
8469 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8470 777777 777777 IFG XX,<V2=V2A>
8471 IFL XX,<V2=XX+1>
8472 MOP1 (\ADR,XX,0,YY,V2,V1)^
8473 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8474 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8475 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8476 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8477
8478 000200 F33400: AA1=XX ;INITIAL C(AC)
8479 035503 200 07 0 00 044642 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8480 000000 AA2=0 ;INITIAL C(AC+1)
8481 035504 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8482 777777 777577 AEE=YY ;INITIAL C(E)
8483 035505 200 05 0 00 045103 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8484 035506 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8485 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8486 035507 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8487 035510 003 07 0 00 033401 ER3 AC,33401 ;HIGH PRODUCT FAILED
8488 777777 737600 AR2=V1 ;EXPECTED RESULT IN AC+1
8489 035511 312 10 0 00 045201 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8490 035512 004 10 0 00 033402 ER4 AC+1,33402 ;LOW PRODUCT FAILED
8491 777777 777577 AEE=YY ;INITIAL C(E)
8492 035513 312 05 0 00 045103 CAME E,[YY] ;WAS C(E) CLOBBERED?
8493 035514 005 05 0 00 033403 ER5 E,33403 ;C(E) WAS CLOBBERED
8494 035515 321 11 0 00 035503 JUMPL AC+2,F33400 ;LOOP ON ERROR SWITCH^
8495 ;LAST CASE DIFFERENT
8496 003341 ADR=ADR+1
8497 000400 XX=XX+XX
8498 777777 777377 YY=YY+YY+1
8499 IFE XX,<XX=1>
8500 IFE <YY-1>,<YY=-2>
8501
8502 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8503 777777 577400 V1=XX*YY
8504 777777 777777 IFE <XX_-22>,<V2A=-1>
8505 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8506 777777 777777 IFG XX,<V2=V2A>
8507 IFL XX,<V2=XX+1>
8508 MOP1 (\ADR,XX,0,YY,V2,V1)^
8509 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8510 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8511 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8512 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-6
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0174
8513
8514 000400 F33410: AA1=XX ;INITIAL C(AC)
8515 035516 200 07 0 00 044645 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8516 000000 AA2=0 ;INITIAL C(AC+1)
8517 035517 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8518 777777 777377 AEE=YY ;INITIAL C(E)
8519 035520 200 05 0 00 045105 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8520 035521 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8521 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8522 035522 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8523 035523 003 07 0 00 033411 ER3 AC,33411 ;HIGH PRODUCT FAILED
8524 777777 577400 AR2=V1 ;EXPECTED RESULT IN AC+1
8525 035524 312 10 0 00 045202 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8526 035525 004 10 0 00 033412 ER4 AC+1,33412 ;LOW PRODUCT FAILED
8527 777777 777377 AEE=YY ;INITIAL C(E)
8528 035526 312 05 0 00 045105 CAME E,[YY] ;WAS C(E) CLOBBERED?
8529 035527 005 05 0 00 033413 ER5 E,33413 ;C(E) WAS CLOBBERED
8530 035530 321 11 0 00 035516 JUMPL AC+2,F33410 ;LOOP ON ERROR SWITCH^
8531 ;LAST CASE DIFFERENT
8532 003342 ADR=ADR+1
8533 001000 XX=XX+XX
8534 777777 776777 YY=YY+YY+1
8535 IFE XX,<XX=1>
8536 IFE <YY-1>,<YY=-2>
8537
8538 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8539 777776 777000 V1=XX*YY
8540 777777 777777 IFE <XX_-22>,<V2A=-1>
8541 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8542 777777 777777 IFG XX,<V2=V2A>
8543 IFL XX,<V2=XX+1>
8544 MOP1 (\ADR,XX,0,YY,V2,V1)^
8545 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8546 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8547 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8548 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8549
8550 001000 F33420: AA1=XX ;INITIAL C(AC)
8551 035531 200 07 0 00 044650 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8552 000000 AA2=0 ;INITIAL C(AC+1)
8553 035532 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8554 777777 776777 AEE=YY ;INITIAL C(E)
8555 035533 200 05 0 00 045107 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8556 035534 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8557 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8558 035535 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8559 035536 003 07 0 00 033421 ER3 AC,33421 ;HIGH PRODUCT FAILED
8560 777776 777000 AR2=V1 ;EXPECTED RESULT IN AC+1
8561 035537 312 10 0 00 045203 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8562 035540 004 10 0 00 033422 ER4 AC+1,33422 ;LOW PRODUCT FAILED
8563 777777 776777 AEE=YY ;INITIAL C(E)
8564 035541 312 05 0 00 045107 CAME E,[YY] ;WAS C(E) CLOBBERED?
8565 035542 005 05 0 00 033423 ER5 E,33423 ;C(E) WAS CLOBBERED
8566 035543 321 11 0 00 035531 JUMPL AC+2,F33420 ;LOOP ON ERROR SWITCH^
8567 ;LAST CASE DIFFERENT
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-7
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0175
8568 003343 ADR=ADR+1
8569 002000 XX=XX+XX
8570 777777 775777 YY=YY+YY+1
8571 IFE XX,<XX=1>
8572 IFE <YY-1>,<YY=-2>
8573
8574 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8575 777773 776000 V1=XX*YY
8576 777777 777777 IFE <XX_-22>,<V2A=-1>
8577 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8578 777777 777777 IFG XX,<V2=V2A>
8579 IFL XX,<V2=XX+1>
8580 MOP1 (\ADR,XX,0,YY,V2,V1)^
8581 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8582 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8583 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8584 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8585
8586 002000 F33430: AA1=XX ;INITIAL C(AC)
8587 035544 200 07 0 00 044653 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8588 000000 AA2=0 ;INITIAL C(AC+1)
8589 035545 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8590 777777 775777 AEE=YY ;INITIAL C(E)
8591 035546 200 05 0 00 045111 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8592 035547 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8593 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8594 035550 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8595 035551 003 07 0 00 033431 ER3 AC,33431 ;HIGH PRODUCT FAILED
8596 777773 776000 AR2=V1 ;EXPECTED RESULT IN AC+1
8597 035552 312 10 0 00 045204 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8598 035553 004 10 0 00 033432 ER4 AC+1,33432 ;LOW PRODUCT FAILED
8599 777777 775777 AEE=YY ;INITIAL C(E)
8600 035554 312 05 0 00 045111 CAME E,[YY] ;WAS C(E) CLOBBERED?
8601 035555 005 05 0 00 033433 ER5 E,33433 ;C(E) WAS CLOBBERED
8602 035556 321 11 0 00 035544 JUMPL AC+2,F33430 ;LOOP ON ERROR SWITCH^
8603 ;LAST CASE DIFFERENT
8604 003344 ADR=ADR+1
8605 004000 XX=XX+XX
8606 777777 773777 YY=YY+YY+1
8607 IFE XX,<XX=1>
8608 IFE <YY-1>,<YY=-2>
8609
8610 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8611 777757 774000 V1=XX*YY
8612 777777 777777 IFE <XX_-22>,<V2A=-1>
8613 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8614 777777 777777 IFG XX,<V2=V2A>
8615 IFL XX,<V2=XX+1>
8616 MOP1 (\ADR,XX,0,YY,V2,V1)^
8617 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8618 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8619 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8620 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8621
8622 004000 F33440: AA1=XX ;INITIAL C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-8
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0176
8623 035557 200 07 0 00 044656 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8624 000000 AA2=0 ;INITIAL C(AC+1)
8625 035560 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8626 777777 773777 AEE=YY ;INITIAL C(E)
8627 035561 200 05 0 00 045113 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8628 035562 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8629 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8630 035563 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8631 035564 003 07 0 00 033441 ER3 AC,33441 ;HIGH PRODUCT FAILED
8632 777757 774000 AR2=V1 ;EXPECTED RESULT IN AC+1
8633 035565 312 10 0 00 045205 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8634 035566 004 10 0 00 033442 ER4 AC+1,33442 ;LOW PRODUCT FAILED
8635 777777 773777 AEE=YY ;INITIAL C(E)
8636 035567 312 05 0 00 045113 CAME E,[YY] ;WAS C(E) CLOBBERED?
8637 035570 005 05 0 00 033443 ER5 E,33443 ;C(E) WAS CLOBBERED
8638 035571 321 11 0 00 035557 JUMPL AC+2,F33440 ;LOOP ON ERROR SWITCH^
8639 ;LAST CASE DIFFERENT
8640 003345 ADR=ADR+1
8641 010000 XX=XX+XX
8642 777777 767777 YY=YY+YY+1
8643 IFE XX,<XX=1>
8644 IFE <YY-1>,<YY=-2>
8645
8646 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8647 777677 770000 V1=XX*YY
8648 777777 777777 IFE <XX_-22>,<V2A=-1>
8649 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8650 777777 777777 IFG XX,<V2=V2A>
8651 IFL XX,<V2=XX+1>
8652 MOP1 (\ADR,XX,0,YY,V2,V1)^
8653 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8654 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8655 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8656 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8657
8658 010000 F33450: AA1=XX ;INITIAL C(AC)
8659 035572 200 07 0 00 044661 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8660 000000 AA2=0 ;INITIAL C(AC+1)
8661 035573 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8662 777777 767777 AEE=YY ;INITIAL C(E)
8663 035574 200 05 0 00 045115 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8664 035575 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8665 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8666 035576 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8667 035577 003 07 0 00 033451 ER3 AC,33451 ;HIGH PRODUCT FAILED
8668 777677 770000 AR2=V1 ;EXPECTED RESULT IN AC+1
8669 035600 312 10 0 00 045206 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8670 035601 004 10 0 00 033452 ER4 AC+1,33452 ;LOW PRODUCT FAILED
8671 777777 767777 AEE=YY ;INITIAL C(E)
8672 035602 312 05 0 00 045115 CAME E,[YY] ;WAS C(E) CLOBBERED?
8673 035603 005 05 0 00 033453 ER5 E,33453 ;C(E) WAS CLOBBERED
8674 035604 321 11 0 00 035572 JUMPL AC+2,F33450 ;LOOP ON ERROR SWITCH^
8675 ;LAST CASE DIFFERENT
8676 003346 ADR=ADR+1
8677 020000 XX=XX+XX
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-9
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0177
8678 777777 757777 YY=YY+YY+1
8679 IFE XX,<XX=1>
8680 IFE <YY-1>,<YY=-2>
8681
8682 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8683 777377 760000 V1=XX*YY
8684 777777 777777 IFE <XX_-22>,<V2A=-1>
8685 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8686 777777 777777 IFG XX,<V2=V2A>
8687 IFL XX,<V2=XX+1>
8688 MOP1 (\ADR,XX,0,YY,V2,V1)^
8689 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8690 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8691 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8692 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8693
8694 020000 F33460: AA1=XX ;INITIAL C(AC)
8695 035605 200 07 0 00 044664 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8696 000000 AA2=0 ;INITIAL C(AC+1)
8697 035606 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8698 777777 757777 AEE=YY ;INITIAL C(E)
8699 035607 200 05 0 00 045117 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8700 035610 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8701 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8702 035611 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8703 035612 003 07 0 00 033461 ER3 AC,33461 ;HIGH PRODUCT FAILED
8704 777377 760000 AR2=V1 ;EXPECTED RESULT IN AC+1
8705 035613 312 10 0 00 045207 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8706 035614 004 10 0 00 033462 ER4 AC+1,33462 ;LOW PRODUCT FAILED
8707 777777 757777 AEE=YY ;INITIAL C(E)
8708 035615 312 05 0 00 045117 CAME E,[YY] ;WAS C(E) CLOBBERED?
8709 035616 005 05 0 00 033463 ER5 E,33463 ;C(E) WAS CLOBBERED
8710 035617 321 11 0 00 035605 JUMPL AC+2,F33460 ;LOOP ON ERROR SWITCH^
8711 ;LAST CASE DIFFERENT
8712 003347 ADR=ADR+1
8713 040000 XX=XX+XX
8714 777777 737777 YY=YY+YY+1
8715 IFE XX,<XX=1>
8716 IFE <YY-1>,<YY=-2>
8717
8718 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8719 775777 740000 V1=XX*YY
8720 777777 777777 IFE <XX_-22>,<V2A=-1>
8721 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8722 777777 777777 IFG XX,<V2=V2A>
8723 IFL XX,<V2=XX+1>
8724 MOP1 (\ADR,XX,0,YY,V2,V1)^
8725 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8726 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8727 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8728 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8729
8730 040000 F33470: AA1=XX ;INITIAL C(AC)
8731 035620 200 07 0 00 044667 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8732 000000 AA2=0 ;INITIAL C(AC+1)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0178
8733 035621 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8734 777777 737777 AEE=YY ;INITIAL C(E)
8735 035622 200 05 0 00 045121 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8736 035623 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8737 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8738 035624 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8739 035625 003 07 0 00 033471 ER3 AC,33471 ;HIGH PRODUCT FAILED
8740 775777 740000 AR2=V1 ;EXPECTED RESULT IN AC+1
8741 035626 312 10 0 00 045210 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8742 035627 004 10 0 00 033472 ER4 AC+1,33472 ;LOW PRODUCT FAILED
8743 777777 737777 AEE=YY ;INITIAL C(E)
8744 035630 312 05 0 00 045121 CAME E,[YY] ;WAS C(E) CLOBBERED?
8745 035631 005 05 0 00 033473 ER5 E,33473 ;C(E) WAS CLOBBERED
8746 035632 321 11 0 00 035620 JUMPL AC+2,F33470 ;LOOP ON ERROR SWITCH^
8747 ;LAST CASE DIFFERENT
8748 003350 ADR=ADR+1
8749 100000 XX=XX+XX
8750 777777 677777 YY=YY+YY+1
8751 IFE XX,<XX=1>
8752 IFE <YY-1>,<YY=-2>
8753
8754 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8755 767777 700000 V1=XX*YY
8756 777777 777777 IFE <XX_-22>,<V2A=-1>
8757 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8758 777777 777777 IFG XX,<V2=V2A>
8759 IFL XX,<V2=XX+1>
8760 MOP1 (\ADR,XX,0,YY,V2,V1)^
8761 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8762 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8763 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8764 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8765
8766 100000 F33500: AA1=XX ;INITIAL C(AC)
8767 035633 200 07 0 00 044672 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8768 000000 AA2=0 ;INITIAL C(AC+1)
8769 035634 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8770 777777 677777 AEE=YY ;INITIAL C(E)
8771 035635 200 05 0 00 045123 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8772 035636 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8773 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8774 035637 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8775 035640 003 07 0 00 033501 ER3 AC,33501 ;HIGH PRODUCT FAILED
8776 767777 700000 AR2=V1 ;EXPECTED RESULT IN AC+1
8777 035641 312 10 0 00 045211 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8778 035642 004 10 0 00 033502 ER4 AC+1,33502 ;LOW PRODUCT FAILED
8779 777777 677777 AEE=YY ;INITIAL C(E)
8780 035643 312 05 0 00 045123 CAME E,[YY] ;WAS C(E) CLOBBERED?
8781 035644 005 05 0 00 033503 ER5 E,33503 ;C(E) WAS CLOBBERED
8782 035645 321 11 0 00 035633 JUMPL AC+2,F33500 ;LOOP ON ERROR SWITCH^
8783 ;LAST CASE DIFFERENT
8784 003351 ADR=ADR+1
8785 200000 XX=XX+XX
8786 777777 577777 YY=YY+YY+1
8787 IFE XX,<XX=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0179
8788 IFE <YY-1>,<YY=-2>
8789
8790 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8791 737777 600000 V1=XX*YY
8792 777777 777777 IFE <XX_-22>,<V2A=-1>
8793 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8794 777777 777777 IFG XX,<V2=V2A>
8795 IFL XX,<V2=XX+1>
8796 MOP1 (\ADR,XX,0,YY,V2,V1)^
8797 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8798 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8799 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8800 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8801
8802 200000 F33510: AA1=XX ;INITIAL C(AC)
8803 035646 200 07 0 00 044675 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8804 000000 AA2=0 ;INITIAL C(AC+1)
8805 035647 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8806 777777 577777 AEE=YY ;INITIAL C(E)
8807 035650 200 05 0 00 045125 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8808 035651 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8809 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8810 035652 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8811 035653 003 07 0 00 033511 ER3 AC,33511 ;HIGH PRODUCT FAILED
8812 737777 600000 AR2=V1 ;EXPECTED RESULT IN AC+1
8813 035654 312 10 0 00 045212 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8814 035655 004 10 0 00 033512 ER4 AC+1,33512 ;LOW PRODUCT FAILED
8815 777777 577777 AEE=YY ;INITIAL C(E)
8816 035656 312 05 0 00 045125 CAME E,[YY] ;WAS C(E) CLOBBERED?
8817 035657 005 05 0 00 033513 ER5 E,33513 ;C(E) WAS CLOBBERED
8818 035660 321 11 0 00 035646 JUMPL AC+2,F33510 ;LOOP ON ERROR SWITCH^
8819 ;LAST CASE DIFFERENT
8820 003352 ADR=ADR+1
8821 400000 XX=XX+XX
8822 777777 377777 YY=YY+YY+1
8823 IFE XX,<XX=1>
8824 IFE <YY-1>,<YY=-2>
8825
8826 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8827 577777 400000 V1=XX*YY
8828 777777 777777 IFE <XX_-22>,<V2A=-1>
8829 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8830 777777 777777 IFG XX,<V2=V2A>
8831 IFL XX,<V2=XX+1>
8832 MOP1 (\ADR,XX,0,YY,V2,V1)^
8833 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8834 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8835 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8836 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8837
8838 400000 F33520: AA1=XX ;INITIAL C(AC)
8839 035661 200 07 0 00 044700 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8840 000000 AA2=0 ;INITIAL C(AC+1)
8841 035662 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8842 777777 377777 AEE=YY ;INITIAL C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0180
8843 035663 200 05 0 00 045127 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8844 035664 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8845 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
8846 035665 312 07 0 00 044617 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8847 035666 003 07 0 00 033521 ER3 AC,33521 ;HIGH PRODUCT FAILED
8848 577777 400000 AR2=V1 ;EXPECTED RESULT IN AC+1
8849 035667 312 10 0 00 045213 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8850 035670 004 10 0 00 033522 ER4 AC+1,33522 ;LOW PRODUCT FAILED
8851 777777 377777 AEE=YY ;INITIAL C(E)
8852 035671 312 05 0 00 045127 CAME E,[YY] ;WAS C(E) CLOBBERED?
8853 035672 005 05 0 00 033523 ER5 E,33523 ;C(E) WAS CLOBBERED
8854 035673 321 11 0 00 035661 JUMPL AC+2,F33520 ;LOOP ON ERROR SWITCH^
8855 ;LAST CASE DIFFERENT
8856 003353 ADR=ADR+1
8857 000001 000000 XX=XX+XX
8858 777776 777777 YY=YY+YY+1
8859 IFE XX,<XX=1>
8860 IFE <YY-1>,<YY=-2>
8861
8862 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8863 777777 000000 V1=XX*YY
8864 IFE <XX_-22>,<V2A=-1>
8865 777777 777775 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8866 777777 777775 IFG XX,<V2=V2A>
8867 IFL XX,<V2=XX+1>
8868 MOP1 (\ADR,XX,0,YY,V2,V1)^
8869 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8870 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8871 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8872 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8873
8874 000001 000000 F33530: AA1=XX ;INITIAL C(AC)
8875 035674 200 07 0 00 044703 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8876 000000 AA2=0 ;INITIAL C(AC+1)
8877 035675 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8878 777776 777777 AEE=YY ;INITIAL C(E)
8879 035676 200 05 0 00 045131 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8880 035677 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8881 777777 777775 AR1=V2 ;EXPECTED RESULT IN AC
8882 035700 312 07 0 00 044624 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8883 035701 003 07 0 00 033531 ER3 AC,33531 ;HIGH PRODUCT FAILED
8884 777777 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8885 035702 312 10 0 00 045214 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8886 035703 004 10 0 00 033532 ER4 AC+1,33532 ;LOW PRODUCT FAILED
8887 777776 777777 AEE=YY ;INITIAL C(E)
8888 035704 312 05 0 00 045131 CAME E,[YY] ;WAS C(E) CLOBBERED?
8889 035705 005 05 0 00 033533 ER5 E,33533 ;C(E) WAS CLOBBERED
8890 035706 321 11 0 00 035674 JUMPL AC+2,F33530 ;LOOP ON ERROR SWITCH^
8891 ;LAST CASE DIFFERENT
8892 003354 ADR=ADR+1
8893 000002 000000 XX=XX+XX
8894 777775 777777 YY=YY+YY+1
8895 IFE XX,<XX=1>
8896 IFE <YY-1>,<YY=-2>
8897
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0181
8898 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8899 777776 000000 V1=XX*YY
8900 IFE <XX_-22>,<V2A=-1>
8901 777777 777767 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8902 777777 777767 IFG XX,<V2=V2A>
8903 IFL XX,<V2=XX+1>
8904 MOP1 (\ADR,XX,0,YY,V2,V1)^
8905 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8906 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8907 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8908 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8909
8910 000002 000000 F33540: AA1=XX ;INITIAL C(AC)
8911 035707 200 07 0 00 044706 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8912 000000 AA2=0 ;INITIAL C(AC+1)
8913 035710 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8914 777775 777777 AEE=YY ;INITIAL C(E)
8915 035711 200 05 0 00 045133 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8916 035712 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8917 777777 777767 AR1=V2 ;EXPECTED RESULT IN AC
8918 035713 312 07 0 00 045073 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8919 035714 003 07 0 00 033541 ER3 AC,33541 ;HIGH PRODUCT FAILED
8920 777776 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8921 035715 312 10 0 00 045215 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8922 035716 004 10 0 00 033542 ER4 AC+1,33542 ;LOW PRODUCT FAILED
8923 777775 777777 AEE=YY ;INITIAL C(E)
8924 035717 312 05 0 00 045133 CAME E,[YY] ;WAS C(E) CLOBBERED?
8925 035720 005 05 0 00 033543 ER5 E,33543 ;C(E) WAS CLOBBERED
8926 035721 321 11 0 00 035707 JUMPL AC+2,F33540 ;LOOP ON ERROR SWITCH^
8927 ;LAST CASE DIFFERENT
8928 003355 ADR=ADR+1
8929 000004 000000 XX=XX+XX
8930 777773 777777 YY=YY+YY+1
8931 IFE XX,<XX=1>
8932 IFE <YY-1>,<YY=-2>
8933
8934 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8935 777774 000000 V1=XX*YY
8936 IFE <XX_-22>,<V2A=-1>
8937 777777 777737 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8938 777777 777737 IFG XX,<V2=V2A>
8939 IFL XX,<V2=XX+1>
8940 MOP1 (\ADR,XX,0,YY,V2,V1)^
8941 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8942 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8943 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8944 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8945
8946 000004 000000 F33550: AA1=XX ;INITIAL C(AC)
8947 035722 200 07 0 00 044711 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8948 000000 AA2=0 ;INITIAL C(AC+1)
8949 035723 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8950 777773 777777 AEE=YY ;INITIAL C(E)
8951 035724 200 05 0 00 045135 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8952 035725 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0182
8953 777777 777737 AR1=V2 ;EXPECTED RESULT IN AC
8954 035726 312 07 0 00 045077 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8955 035727 003 07 0 00 033551 ER3 AC,33551 ;HIGH PRODUCT FAILED
8956 777774 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8957 035730 312 10 0 00 045216 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8958 035731 004 10 0 00 033552 ER4 AC+1,33552 ;LOW PRODUCT FAILED
8959 777773 777777 AEE=YY ;INITIAL C(E)
8960 035732 312 05 0 00 045135 CAME E,[YY] ;WAS C(E) CLOBBERED?
8961 035733 005 05 0 00 033553 ER5 E,33553 ;C(E) WAS CLOBBERED
8962 035734 321 11 0 00 035722 JUMPL AC+2,F33550 ;LOOP ON ERROR SWITCH^
8963 ;LAST CASE DIFFERENT
8964 003356 ADR=ADR+1
8965 000010 000000 XX=XX+XX
8966 777767 777777 YY=YY+YY+1
8967 IFE XX,<XX=1>
8968 IFE <YY-1>,<YY=-2>
8969
8970 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
8971 777770 000000 V1=XX*YY
8972 IFE <XX_-22>,<V2A=-1>
8973 777777 777577 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
8974 777777 777577 IFG XX,<V2=V2A>
8975 IFL XX,<V2=XX+1>
8976 MOP1 (\ADR,XX,0,YY,V2,V1)^
8977 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
8978 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8979 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
8980 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8981
8982 000010 000000 F33560: AA1=XX ;INITIAL C(AC)
8983 035735 200 07 0 00 044714 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8984 000000 AA2=0 ;INITIAL C(AC+1)
8985 035736 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
8986 777767 777777 AEE=YY ;INITIAL C(E)
8987 035737 200 05 0 00 045137 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
8988 035740 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8989 777777 777577 AR1=V2 ;EXPECTED RESULT IN AC
8990 035741 312 07 0 00 045103 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
8991 035742 003 07 0 00 033561 ER3 AC,33561 ;HIGH PRODUCT FAILED
8992 777770 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
8993 035743 312 10 0 00 045217 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
8994 035744 004 10 0 00 033562 ER4 AC+1,33562 ;LOW PRODUCT FAILED
8995 777767 777777 AEE=YY ;INITIAL C(E)
8996 035745 312 05 0 00 045137 CAME E,[YY] ;WAS C(E) CLOBBERED?
8997 035746 005 05 0 00 033563 ER5 E,33563 ;C(E) WAS CLOBBERED
8998 035747 321 11 0 00 035735 JUMPL AC+2,F33560 ;LOOP ON ERROR SWITCH^
8999 ;LAST CASE DIFFERENT
9000 003357 ADR=ADR+1
9001 000020 000000 XX=XX+XX
9002 777757 777777 YY=YY+YY+1
9003 IFE XX,<XX=1>
9004 IFE <YY-1>,<YY=-2>
9005
9006 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9007 777760 000000 V1=XX*YY
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0183
9008 IFE <XX_-22>,<V2A=-1>
9009 777777 776777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9010 777777 776777 IFG XX,<V2=V2A>
9011 IFL XX,<V2=XX+1>
9012 MOP1 (\ADR,XX,0,YY,V2,V1)^
9013 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9014 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9015 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9016 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9017
9018 000020 000000 F33570: AA1=XX ;INITIAL C(AC)
9019 035750 200 07 0 00 044717 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9020 000000 AA2=0 ;INITIAL C(AC+1)
9021 035751 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9022 777757 777777 AEE=YY ;INITIAL C(E)
9023 035752 200 05 0 00 045141 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9024 035753 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9025 777777 776777 AR1=V2 ;EXPECTED RESULT IN AC
9026 035754 312 07 0 00 045107 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9027 035755 003 07 0 00 033571 ER3 AC,33571 ;HIGH PRODUCT FAILED
9028 777760 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9029 035756 312 10 0 00 045220 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9030 035757 004 10 0 00 033572 ER4 AC+1,33572 ;LOW PRODUCT FAILED
9031 777757 777777 AEE=YY ;INITIAL C(E)
9032 035760 312 05 0 00 045141 CAME E,[YY] ;WAS C(E) CLOBBERED?
9033 035761 005 05 0 00 033573 ER5 E,33573 ;C(E) WAS CLOBBERED
9034 035762 321 11 0 00 035750 JUMPL AC+2,F33570 ;LOOP ON ERROR SWITCH^
9035 ;LAST CASE DIFFERENT
9036 003360 ADR=ADR+1
9037 000040 000000 XX=XX+XX
9038 777737 777777 YY=YY+YY+1
9039 IFE XX,<XX=1>
9040 IFE <YY-1>,<YY=-2>
9041
9042 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9043 777740 000000 V1=XX*YY
9044 IFE <XX_-22>,<V2A=-1>
9045 777777 773777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9046 777777 773777 IFG XX,<V2=V2A>
9047 IFL XX,<V2=XX+1>
9048 MOP1 (\ADR,XX,0,YY,V2,V1)^
9049 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9050 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9051 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9052 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9053
9054 000040 000000 F33600: AA1=XX ;INITIAL C(AC)
9055 035763 200 07 0 00 044722 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9056 000000 AA2=0 ;INITIAL C(AC+1)
9057 035764 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9058 777737 777777 AEE=YY ;INITIAL C(E)
9059 035765 200 05 0 00 045143 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9060 035766 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9061 777777 773777 AR1=V2 ;EXPECTED RESULT IN AC
9062 035767 312 07 0 00 045113 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0184
9063 035770 003 07 0 00 033601 ER3 AC,33601 ;HIGH PRODUCT FAILED
9064 777740 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9065 035771 312 10 0 00 045221 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9066 035772 004 10 0 00 033602 ER4 AC+1,33602 ;LOW PRODUCT FAILED
9067 777737 777777 AEE=YY ;INITIAL C(E)
9068 035773 312 05 0 00 045143 CAME E,[YY] ;WAS C(E) CLOBBERED?
9069 035774 005 05 0 00 033603 ER5 E,33603 ;C(E) WAS CLOBBERED
9070 035775 321 11 0 00 035763 JUMPL AC+2,F33600 ;LOOP ON ERROR SWITCH^
9071 ;LAST CASE DIFFERENT
9072 003361 ADR=ADR+1
9073 000100 000000 XX=XX+XX
9074 777677 777777 YY=YY+YY+1
9075 IFE XX,<XX=1>
9076 IFE <YY-1>,<YY=-2>
9077
9078 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9079 777700 000000 V1=XX*YY
9080 IFE <XX_-22>,<V2A=-1>
9081 777777 757777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9082 777777 757777 IFG XX,<V2=V2A>
9083 IFL XX,<V2=XX+1>
9084 MOP1 (\ADR,XX,0,YY,V2,V1)^
9085 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9086 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9087 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9088 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9089
9090 000100 000000 F33610: AA1=XX ;INITIAL C(AC)
9091 035776 200 07 0 00 044725 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9092 000000 AA2=0 ;INITIAL C(AC+1)
9093 035777 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9094 777677 777777 AEE=YY ;INITIAL C(E)
9095 036000 200 05 0 00 045145 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9096 036001 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9097 777777 757777 AR1=V2 ;EXPECTED RESULT IN AC
9098 036002 312 07 0 00 045117 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9099 036003 003 07 0 00 033611 ER3 AC,33611 ;HIGH PRODUCT FAILED
9100 777700 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9101 036004 312 10 0 00 045222 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9102 036005 004 10 0 00 033612 ER4 AC+1,33612 ;LOW PRODUCT FAILED
9103 777677 777777 AEE=YY ;INITIAL C(E)
9104 036006 312 05 0 00 045145 CAME E,[YY] ;WAS C(E) CLOBBERED?
9105 036007 005 05 0 00 033613 ER5 E,33613 ;C(E) WAS CLOBBERED
9106 036010 321 11 0 00 035776 JUMPL AC+2,F33610 ;LOOP ON ERROR SWITCH^
9107 ;LAST CASE DIFFERENT
9108 003362 ADR=ADR+1
9109 000200 000000 XX=XX+XX
9110 777577 777777 YY=YY+YY+1
9111 IFE XX,<XX=1>
9112 IFE <YY-1>,<YY=-2>
9113
9114 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9115 777600 000000 V1=XX*YY
9116 IFE <XX_-22>,<V2A=-1>
9117 777777 677777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0185
9118 777777 677777 IFG XX,<V2=V2A>
9119 IFL XX,<V2=XX+1>
9120 MOP1 (\ADR,XX,0,YY,V2,V1)^
9121 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9122 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9123 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9124 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9125
9126 000200 000000 F33620: AA1=XX ;INITIAL C(AC)
9127 036011 200 07 0 00 044730 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9128 000000 AA2=0 ;INITIAL C(AC+1)
9129 036012 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9130 777577 777777 AEE=YY ;INITIAL C(E)
9131 036013 200 05 0 00 045147 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9132 036014 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9133 777777 677777 AR1=V2 ;EXPECTED RESULT IN AC
9134 036015 312 07 0 00 045123 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9135 036016 003 07 0 00 033621 ER3 AC,33621 ;HIGH PRODUCT FAILED
9136 777600 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9137 036017 312 10 0 00 045223 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9138 036020 004 10 0 00 033622 ER4 AC+1,33622 ;LOW PRODUCT FAILED
9139 777577 777777 AEE=YY ;INITIAL C(E)
9140 036021 312 05 0 00 045147 CAME E,[YY] ;WAS C(E) CLOBBERED?
9141 036022 005 05 0 00 033623 ER5 E,33623 ;C(E) WAS CLOBBERED
9142 036023 321 11 0 00 036011 JUMPL AC+2,F33620 ;LOOP ON ERROR SWITCH^
9143 ;LAST CASE DIFFERENT
9144 003363 ADR=ADR+1
9145 000400 000000 XX=XX+XX
9146 777377 777777 YY=YY+YY+1
9147 IFE XX,<XX=1>
9148 IFE <YY-1>,<YY=-2>
9149
9150 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9151 777400 000000 V1=XX*YY
9152 IFE <XX_-22>,<V2A=-1>
9153 777777 377777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9154 777777 377777 IFG XX,<V2=V2A>
9155 IFL XX,<V2=XX+1>
9156 MOP1 (\ADR,XX,0,YY,V2,V1)^
9157 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9158 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9159 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9160 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9161
9162 000400 000000 F33630: AA1=XX ;INITIAL C(AC)
9163 036024 200 07 0 00 044733 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9164 000000 AA2=0 ;INITIAL C(AC+1)
9165 036025 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9166 777377 777777 AEE=YY ;INITIAL C(E)
9167 036026 200 05 0 00 045151 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9168 036027 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9169 777777 377777 AR1=V2 ;EXPECTED RESULT IN AC
9170 036030 312 07 0 00 045127 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9171 036031 003 07 0 00 033631 ER3 AC,33631 ;HIGH PRODUCT FAILED
9172 777400 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0186
9173 036032 312 10 0 00 045224 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9174 036033 004 10 0 00 033632 ER4 AC+1,33632 ;LOW PRODUCT FAILED
9175 777377 777777 AEE=YY ;INITIAL C(E)
9176 036034 312 05 0 00 045151 CAME E,[YY] ;WAS C(E) CLOBBERED?
9177 036035 005 05 0 00 033633 ER5 E,33633 ;C(E) WAS CLOBBERED
9178 036036 321 11 0 00 036024 JUMPL AC+2,F33630 ;LOOP ON ERROR SWITCH^
9179 ;LAST CASE DIFFERENT
9180 003364 ADR=ADR+1
9181 001000 000000 XX=XX+XX
9182 776777 777777 YY=YY+YY+1
9183 IFE XX,<XX=1>
9184 IFE <YY-1>,<YY=-2>
9185
9186 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9187 777000 000000 V1=XX*YY
9188 IFE <XX_-22>,<V2A=-1>
9189 777775 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9190 777775 777777 IFG XX,<V2=V2A>
9191 IFL XX,<V2=XX+1>
9192 MOP1 (\ADR,XX,0,YY,V2,V1)^
9193 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9194 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9195 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9196 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9197
9198 001000 000000 F33640: AA1=XX ;INITIAL C(AC)
9199 036037 200 07 0 00 044736 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9200 000000 AA2=0 ;INITIAL C(AC+1)
9201 036040 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9202 776777 777777 AEE=YY ;INITIAL C(E)
9203 036041 200 05 0 00 045153 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9204 036042 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9205 777775 777777 AR1=V2 ;EXPECTED RESULT IN AC
9206 036043 312 07 0 00 045133 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9207 036044 003 07 0 00 033641 ER3 AC,33641 ;HIGH PRODUCT FAILED
9208 777000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9209 036045 312 10 0 00 045225 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9210 036046 004 10 0 00 033642 ER4 AC+1,33642 ;LOW PRODUCT FAILED
9211 776777 777777 AEE=YY ;INITIAL C(E)
9212 036047 312 05 0 00 045153 CAME E,[YY] ;WAS C(E) CLOBBERED?
9213 036050 005 05 0 00 033643 ER5 E,33643 ;C(E) WAS CLOBBERED
9214 036051 321 11 0 00 036037 JUMPL AC+2,F33640 ;LOOP ON ERROR SWITCH^
9215 ;LAST CASE DIFFERENT
9216 003365 ADR=ADR+1
9217 002000 000000 XX=XX+XX
9218 775777 777777 YY=YY+YY+1
9219 IFE XX,<XX=1>
9220 IFE <YY-1>,<YY=-2>
9221
9222 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9223 776000 000000 V1=XX*YY
9224 IFE <XX_-22>,<V2A=-1>
9225 777767 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9226 777767 777777 IFG XX,<V2=V2A>
9227 IFL XX,<V2=XX+1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0187
9228 MOP1 (\ADR,XX,0,YY,V2,V1)^
9229 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9230 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9231 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9232 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9233
9234 002000 000000 F33650: AA1=XX ;INITIAL C(AC)
9235 036052 200 07 0 00 044741 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9236 000000 AA2=0 ;INITIAL C(AC+1)
9237 036053 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9238 775777 777777 AEE=YY ;INITIAL C(E)
9239 036054 200 05 0 00 045155 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9240 036055 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9241 777767 777777 AR1=V2 ;EXPECTED RESULT IN AC
9242 036056 312 07 0 00 045137 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9243 036057 003 07 0 00 033651 ER3 AC,33651 ;HIGH PRODUCT FAILED
9244 776000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9245 036060 312 10 0 00 045226 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9246 036061 004 10 0 00 033652 ER4 AC+1,33652 ;LOW PRODUCT FAILED
9247 775777 777777 AEE=YY ;INITIAL C(E)
9248 036062 312 05 0 00 045155 CAME E,[YY] ;WAS C(E) CLOBBERED?
9249 036063 005 05 0 00 033653 ER5 E,33653 ;C(E) WAS CLOBBERED
9250 036064 321 11 0 00 036052 JUMPL AC+2,F33650 ;LOOP ON ERROR SWITCH^
9251 ;LAST CASE DIFFERENT
9252 003366 ADR=ADR+1
9253 004000 000000 XX=XX+XX
9254 773777 777777 YY=YY+YY+1
9255 IFE XX,<XX=1>
9256 IFE <YY-1>,<YY=-2>
9257
9258 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9259 774000 000000 V1=XX*YY
9260 IFE <XX_-22>,<V2A=-1>
9261 777737 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9262 777737 777777 IFG XX,<V2=V2A>
9263 IFL XX,<V2=XX+1>
9264 MOP1 (\ADR,XX,0,YY,V2,V1)^
9265 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9266 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9267 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9268 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9269
9270 004000 000000 F33660: AA1=XX ;INITIAL C(AC)
9271 036065 200 07 0 00 044744 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9272 000000 AA2=0 ;INITIAL C(AC+1)
9273 036066 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9274 773777 777777 AEE=YY ;INITIAL C(E)
9275 036067 200 05 0 00 045157 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9276 036070 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9277 777737 777777 AR1=V2 ;EXPECTED RESULT IN AC
9278 036071 312 07 0 00 045143 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9279 036072 003 07 0 00 033661 ER3 AC,33661 ;HIGH PRODUCT FAILED
9280 774000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9281 036073 312 10 0 00 045227 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9282 036074 004 10 0 00 033662 ER4 AC+1,33662 ;LOW PRODUCT FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0188
9283 773777 777777 AEE=YY ;INITIAL C(E)
9284 036075 312 05 0 00 045157 CAME E,[YY] ;WAS C(E) CLOBBERED?
9285 036076 005 05 0 00 033663 ER5 E,33663 ;C(E) WAS CLOBBERED
9286 036077 321 11 0 00 036065 JUMPL AC+2,F33660 ;LOOP ON ERROR SWITCH^
9287 ;LAST CASE DIFFERENT
9288 003367 ADR=ADR+1
9289 010000 000000 XX=XX+XX
9290 767777 777777 YY=YY+YY+1
9291 IFE XX,<XX=1>
9292 IFE <YY-1>,<YY=-2>
9293
9294 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9295 770000 000000 V1=XX*YY
9296 IFE <XX_-22>,<V2A=-1>
9297 777577 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9298 777577 777777 IFG XX,<V2=V2A>
9299 IFL XX,<V2=XX+1>
9300 MOP1 (\ADR,XX,0,YY,V2,V1)^
9301 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9302 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9303 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9304 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9305
9306 010000 000000 F33670: AA1=XX ;INITIAL C(AC)
9307 036100 200 07 0 00 044747 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9308 000000 AA2=0 ;INITIAL C(AC+1)
9309 036101 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9310 767777 777777 AEE=YY ;INITIAL C(E)
9311 036102 200 05 0 00 045161 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9312 036103 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9313 777577 777777 AR1=V2 ;EXPECTED RESULT IN AC
9314 036104 312 07 0 00 045147 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9315 036105 003 07 0 00 033671 ER3 AC,33671 ;HIGH PRODUCT FAILED
9316 770000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9317 036106 312 10 0 00 045230 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9318 036107 004 10 0 00 033672 ER4 AC+1,33672 ;LOW PRODUCT FAILED
9319 767777 777777 AEE=YY ;INITIAL C(E)
9320 036110 312 05 0 00 045161 CAME E,[YY] ;WAS C(E) CLOBBERED?
9321 036111 005 05 0 00 033673 ER5 E,33673 ;C(E) WAS CLOBBERED
9322 036112 321 11 0 00 036100 JUMPL AC+2,F33670 ;LOOP ON ERROR SWITCH^
9323 ;LAST CASE DIFFERENT
9324 003370 ADR=ADR+1
9325 020000 000000 XX=XX+XX
9326 757777 777777 YY=YY+YY+1
9327 IFE XX,<XX=1>
9328 IFE <YY-1>,<YY=-2>
9329
9330 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9331 760000 000000 V1=XX*YY
9332 IFE <XX_-22>,<V2A=-1>
9333 776777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9334 776777 777777 IFG XX,<V2=V2A>
9335 IFL XX,<V2=XX+1>
9336 MOP1 (\ADR,XX,0,YY,V2,V1)^
9337 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0189
9338 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9339 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9340 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9341
9342 020000 000000 F33700: AA1=XX ;INITIAL C(AC)
9343 036113 200 07 0 00 044752 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9344 000000 AA2=0 ;INITIAL C(AC+1)
9345 036114 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9346 757777 777777 AEE=YY ;INITIAL C(E)
9347 036115 200 05 0 00 045163 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9348 036116 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9349 776777 777777 AR1=V2 ;EXPECTED RESULT IN AC
9350 036117 312 07 0 00 045153 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9351 036120 003 07 0 00 033701 ER3 AC,33701 ;HIGH PRODUCT FAILED
9352 760000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9353 036121 312 10 0 00 045231 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9354 036122 004 10 0 00 033702 ER4 AC+1,33702 ;LOW PRODUCT FAILED
9355 757777 777777 AEE=YY ;INITIAL C(E)
9356 036123 312 05 0 00 045163 CAME E,[YY] ;WAS C(E) CLOBBERED?
9357 036124 005 05 0 00 033703 ER5 E,33703 ;C(E) WAS CLOBBERED
9358 036125 321 11 0 00 036113 JUMPL AC+2,F33700 ;LOOP ON ERROR SWITCH^
9359 ;LAST CASE DIFFERENT
9360 003371 ADR=ADR+1
9361 040000 000000 XX=XX+XX
9362 737777 777777 YY=YY+YY+1
9363 IFE XX,<XX=1>
9364 IFE <YY-1>,<YY=-2>
9365
9366 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9367 740000 000000 V1=XX*YY
9368 IFE <XX_-22>,<V2A=-1>
9369 773777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9370 773777 777777 IFG XX,<V2=V2A>
9371 IFL XX,<V2=XX+1>
9372 MOP1 (\ADR,XX,0,YY,V2,V1)^
9373 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9374 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9375 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9376 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9377
9378 040000 000000 F33710: AA1=XX ;INITIAL C(AC)
9379 036126 200 07 0 00 044755 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9380 000000 AA2=0 ;INITIAL C(AC+1)
9381 036127 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9382 737777 777777 AEE=YY ;INITIAL C(E)
9383 036130 200 05 0 00 045165 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9384 036131 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9385 773777 777777 AR1=V2 ;EXPECTED RESULT IN AC
9386 036132 312 07 0 00 045157 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9387 036133 003 07 0 00 033711 ER3 AC,33711 ;HIGH PRODUCT FAILED
9388 740000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9389 036134 312 10 0 00 045232 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9390 036135 004 10 0 00 033712 ER4 AC+1,33712 ;LOW PRODUCT FAILED
9391 737777 777777 AEE=YY ;INITIAL C(E)
9392 036136 312 05 0 00 045165 CAME E,[YY] ;WAS C(E) CLOBBERED?
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-22
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0190
9393 036137 005 05 0 00 033713 ER5 E,33713 ;C(E) WAS CLOBBERED
9394 036140 321 11 0 00 036126 JUMPL AC+2,F33710 ;LOOP ON ERROR SWITCH^
9395 ;LAST CASE DIFFERENT
9396 003372 ADR=ADR+1
9397 100000 000000 XX=XX+XX
9398 677777 777777 YY=YY+YY+1
9399 IFE XX,<XX=1>
9400 IFE <YY-1>,<YY=-2>
9401
9402 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9403 700000 000000 V1=XX*YY
9404 IFE <XX_-22>,<V2A=-1>
9405 757777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9406 757777 777777 IFG XX,<V2=V2A>
9407 IFL XX,<V2=XX+1>
9408 MOP1 (\ADR,XX,0,YY,V2,V1)^
9409 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9410 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9411 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
9412 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9413
9414 100000 000000 F33720: AA1=XX ;INITIAL C(AC)
9415 036141 200 07 0 00 044760 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9416 000000 AA2=0 ;INITIAL C(AC+1)
9417 036142 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9418 677777 777777 AEE=YY ;INITIAL C(E)
9419 036143 200 05 0 00 045167 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9420 036144 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9421 757777 777777 AR1=V2 ;EXPECTED RESULT IN AC
9422 036145 312 07 0 00 045163 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9423 036146 003 07 0 00 033721 ER3 AC,33721 ;HIGH PRODUCT FAILED
9424 700000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9425 036147 312 10 0 00 045233 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9426 036150 004 10 0 00 033722 ER4 AC+1,33722 ;LOW PRODUCT FAILED
9427 677777 777777 AEE=YY ;INITIAL C(E)
9428 036151 312 05 0 00 045167 CAME E,[YY] ;WAS C(E) CLOBBERED?
9429 036152 005 05 0 00 033723 ER5 E,33723 ;C(E) WAS CLOBBERED
9430 036153 321 11 0 00 036141 JUMPL AC+2,F33720 ;LOOP ON ERROR SWITCH^
9431 ;LAST CASE DIFFERENT
9432 003373 ADR=ADR+1
9433 200000 000000 XX=XX+XX
9434 577777 777777 YY=YY+YY+1
9435 IFE XX,<XX=1>
9436 IFE <YY-1>,<YY=-2>
9437
9438 ;MULTIPLY A FLOATING 0 BY A FLOATING 1
9439 600000 000000 V1=XX*YY
9440 IFE <XX_-22>,<V2A=-1>
9441 677777 777777 IFN <XX_-22>,<V2A=<<<<YY_-22>+<YY_22>>*<XX_-21>>+<XX_-21>-1>>
9442 677777 777777 IFG XX,<V2=V2A>
9443 IFL XX,<V2=XX+1>
9444 MOP1 (\ADR,XX,0,YY,V2,V1)^
9445 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9446 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9447 ;AND E AGAINST [V2], [V1] AND [YY] RESPECTIVELY.
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 9-23
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0191
9448 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9449
9450 200000 000000 F33730: AA1=XX ;INITIAL C(AC)
9451 036154 200 07 0 00 044763 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9452 000000 AA2=0 ;INITIAL C(AC+1)
9453 036155 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9454 577777 777777 AEE=YY ;INITIAL C(E)
9455 036156 200 05 0 00 045171 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9456 036157 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9457 677777 777777 AR1=V2 ;EXPECTED RESULT IN AC
9458 036160 312 07 0 00 045167 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
9459 036161 003 07 0 00 033731 ER3 AC,33731 ;HIGH PRODUCT FAILED
9460 600000 000000 AR2=V1 ;EXPECTED RESULT IN AC+1
9461 036162 312 10 0 00 044762 CAME AC+1,[V1] ;IS LOW PRODUCT CORRECT?
9462 036163 004 10 0 00 033732 ER4 AC+1,33732 ;LOW PRODUCT FAILED
9463 577777 777777 AEE=YY ;INITIAL C(E)
9464 036164 312 05 0 00 045171 CAME E,[YY] ;WAS C(E) CLOBBERED?
9465 036165 005 05 0 00 033733 ER5 E,33733 ;C(E) WAS CLOBBERED
9466 036166 321 11 0 00 036154 JUMPL AC+2,F33730 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 10
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0192
9467 003374 ADR=ADR+1
9468 ;MULTIPLY A 400000,,0 BY A 377777,,-1
9469 377777 777777 YY=377777777777
9470 400000 000000 XX=400000000000
9471
9472 MOP1 (\ADR,XX,0,YY,YY,0)^
9473 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
9474 ;[YY] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9475 ;AND E AGAINST [YY], [0] AND [YY] RESPECTIVELY.
9476 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9477
9478 400000 000000 F33740: AA1=XX ;INITIAL C(AC)
9479 036167 200 07 0 00 044765 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
9480 000000 AA2=0 ;INITIAL C(AC+1)
9481 036170 200 10 0 00 044615 MOVE AC+1,[0] ;PRELOAD AC+1
9482 377777 777777 AEE=YY ;INITIAL C(E)
9483 036171 200 05 0 00 045172 MOVE E,[YY] ;PRELOAD E (MULTIPLICAND)
9484 036172 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9485 377777 777777 AR1=YY ;EXPECTED RESULT IN AC
9486 036173 312 07 0 00 045172 CAME AC,[YY] ;IS HIGH PRODUCT CORRECT?
9487 036174 003 07 0 00 033741 ER3 AC,33741 ;HIGH PRODUCT FAILED
9488 000000 AR2=0 ;EXPECTED RESULT IN AC+1
9489 036175 312 10 0 00 044615 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
9490 036176 004 10 0 00 033742 ER4 AC+1,33742 ;LOW PRODUCT FAILED
9491 377777 777777 AEE=YY ;INITIAL C(E)
9492 036177 312 05 0 00 045172 CAME E,[YY] ;WAS C(E) CLOBBERED?
9493 036200 005 05 0 00 033743 ER5 E,33743 ;C(E) WAS CLOBBERED
9494 036201 321 11 0 00 036167 JUMPL AC+2,F33740 ;LOOP ON ERROR SWITCH^
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 11
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0193
9495 ;MULTIPLIER = 2,4
9496 ;MULTIPLICAND = 377777 777777
9497
9498 000014 AC=14
9499 SAVEAC (1,1)^
9500 036202 201 16 0 00 036202 MOVEI AC+2,. ;SAVE TEST PC
9501 036203 202 16 0 00 030051 MOVEM AC+2,TESTPC
9502 036204 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9503 036205 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9504
9505 000300 SN=300
9506 777777 777777 XX=-1
9507 000002 YY=2
9508 000001 ZZ=1
9509
9510 F300: REPEAT ^D2,<
9511 SN=SN+1
9512 XX=XX+2
9513 YY=YY-2
9514 IFE YY,<YY=377777777776>
9515 ZZ=ZZ+ZZ
9516 MOVEI AC,ZZ ;SETUP MULTIPLIER
9517 HRLOI AC-1,377777 ;SETUP MULTIPLICAND
9518 MUL AC,AC-1 ;MULTIPLY ZZ X 377777777777
9519 CAME AC,[XX] ;TEST HIGH PROD
9520 ER3 AC,SN
9521 CAME AC+1,[YY] ;TEST LOW PROD
9522 ER4 AC+1,SN
9523 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
9524 >
9525
9526 000301 SN=SN+1
9527 000001 XX=XX+2
9528 000000 YY=YY-2
9529 377777 777776 IFE YY,<YY=377777777776>
9530 000002 ZZ=ZZ+ZZ
9531 036206 201 14 0 00 000002 MOVEI AC,ZZ ;SETUP MULTIPLIER
9532 036207 525 13 0 00 377777 HRLOI AC-1,377777 ;SETUP MULTIPLICAND
9533 036210 224 14 0 00 000013 MUL AC,AC-1 ;MULTIPLY ZZ X 377777777777
9534 036211 312 14 0 00 044616 CAME AC,[XX] ;TEST HIGH PROD
9535 036212 003 14 0 00 000301 ER3 AC,SN
9536 036213 312 15 0 00 045173 CAME AC+1,[YY] ;TEST LOW PROD
9537 036214 004 15 0 00 000301 ER4 AC+1,SN
9538 036215 321 16 0 00 036206 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
9539
9540
9541 000302 SN=SN+1
9542 000003 XX=XX+2
9543 377777 777774 YY=YY-2
9544 IFE YY,<YY=377777777776>
9545 000004 ZZ=ZZ+ZZ
9546 036216 201 14 0 00 000004 MOVEI AC,ZZ ;SETUP MULTIPLIER
9547 036217 525 13 0 00 377777 HRLOI AC-1,377777 ;SETUP MULTIPLICAND
9548 036220 224 14 0 00 000013 MUL AC,AC-1 ;MULTIPLY ZZ X 377777777777
9549 036221 312 14 0 00 045235 CAME AC,[XX] ;TEST HIGH PROD
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 11-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0194
9550 036222 003 14 0 00 000302 ER3 AC,SN
9551 036223 312 15 0 00 045236 CAME AC+1,[YY] ;TEST LOW PROD
9552 036224 004 15 0 00 000302 ER4 AC+1,SN
9553 036225 321 16 0 00 036216 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
9554
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 12
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0195
9555 ;TEST MQ FINAL SHIFT
9556 ;MULTIPLIER = 200000 000000
9557 ;MULTIPLICAND = 5,7
9558
9559 000007 AC=7
9560 SAVEAC (1,1)^
9561 036226 201 11 0 00 036226 MOVEI AC+2,. ;SAVE TEST PC
9562 036227 202 11 0 00 030051 MOVEM AC+2,TESTPC
9563 036230 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9564 036231 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9565
9566 000500 SN=500
9567 000001 XX=1
9568 000003 ZZ=3
9569
9570 ;TEST MQSHRT FAILING
9571 F500: REPEAT ^D2,<
9572 SN=SN+1
9573 XX=XX+1
9574 ZZ=ZZ+2
9575 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
9576 MOVSI AC,200000 ;SETUP MULTIPLIER
9577 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
9578 MUL AC,AC-1 ;MUL 200000 000000 X ZZ
9579 CAME AC+1,AC-2 ;TEST LOW PROD
9580 ER4 AC+1,SN
9581 MOVEI AC-2,XX ;SETUP FOR COMPARISON
9582 CAME AC,AC-2 ;TEST HIGH PROD
9583 ER3 AC,SN
9584 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9585 >
9586
9587 000501 SN=SN+1
9588 000002 XX=XX+1
9589 000005 ZZ=ZZ+2
9590 036232 205 05 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
9591 036233 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
9592 036234 201 06 0 00 000005 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
9593 036235 224 07 0 00 000006 MUL AC,AC-1 ;MUL 200000 000000 X ZZ
9594 036236 312 10 0 00 000005 CAME AC+1,AC-2 ;TEST LOW PROD
9595 036237 004 10 0 00 000501 ER4 AC+1,SN
9596 036240 201 05 0 00 000002 MOVEI AC-2,XX ;SETUP FOR COMPARISON
9597 036241 312 07 0 00 000005 CAME AC,AC-2 ;TEST HIGH PROD
9598 036242 003 07 0 00 000501 ER3 AC,SN
9599 036243 321 11 0 00 036232 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9600
9601
9602 000502 SN=SN+1
9603 000003 XX=XX+1
9604 000007 ZZ=ZZ+2
9605 036244 205 05 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
9606 036245 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
9607 036246 201 06 0 00 000007 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
9608 036247 224 07 0 00 000006 MUL AC,AC-1 ;MUL 200000 000000 X ZZ
9609 036250 312 10 0 00 000005 CAME AC+1,AC-2 ;TEST LOW PROD
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 12-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0196
9610 036251 004 10 0 00 000502 ER4 AC+1,SN
9611 036252 201 05 0 00 000003 MOVEI AC-2,XX ;SETUP FOR COMPARISON
9612 036253 312 07 0 00 000005 CAME AC,AC-2 ;TEST HIGH PROD
9613 036254 003 07 0 00 000502 ER3 AC,SN
9614 036255 321 11 0 00 036244 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9615
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 13
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0197
9616 ;MULTIPLIER = 10,20
9617 ;MULTIPLICAND = 377777 777777
9618
9619 000011 AC=11
9620 SAVEAC (1,1)^
9621 036256 201 13 0 00 036256 MOVEI AC+2,. ;SAVE TEST PC
9622 036257 202 13 0 00 030051 MOVEM AC+2,TESTPC
9623 036260 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9624 036261 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9625
9626 000700 SN=700
9627 777777 777777 XX=-1
9628 000004 ZZ=4
9629
9630 ;TEST ARSHRT FAILING
9631 F700: REPEAT ^D2,<
9632 SN=SN+1
9633 XX=XX+10
9634 ZZ=ZZ+ZZ
9635 MOVEI AC,ZZ ;SETUP MULTIPLIER
9636 HRLOI AC-1,377777 ;SETUP MULTIPLICAND
9637 MUL AC,AC-1 ;MUL. ZZ X 377777 777777
9638 CAME AC+1,[ZZ*377777777777] ;TEST LOW PROD
9639 ER4 AC+1,SN ;ARSHRT ASSERTED
9640 CAME AC,[XX] ;TEST HIGH PROD = PLIER
9641 ER3 AC,SN
9642 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9643 >
9644
9645 000701 SN=SN+1
9646 000007 XX=XX+10
9647 000010 ZZ=ZZ+ZZ
9648 036262 201 11 0 00 000010 MOVEI AC,ZZ ;SETUP MULTIPLIER
9649 036263 525 10 0 00 377777 HRLOI AC-1,377777 ;SETUP MULTIPLICAND
9650 036264 224 11 0 00 000010 MUL AC,AC-1 ;MUL. ZZ X 377777 777777
9651 036265 312 12 0 00 045237 CAME AC+1,[ZZ*377777777777] ;TEST LOW PROD
9652 036266 004 12 0 00 000701 ER4 AC+1,SN ;ARSHRT ASSERTED
9653 036267 312 11 0 00 045240 CAME AC,[XX] ;TEST HIGH PROD = PLIER
9654 036270 003 11 0 00 000701 ER3 AC,SN
9655 036271 321 13 0 00 036261 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9656
9657
9658 000702 SN=SN+1
9659 000017 XX=XX+10
9660 000020 ZZ=ZZ+ZZ
9661 036272 201 11 0 00 000020 MOVEI AC,ZZ ;SETUP MULTIPLIER
9662 036273 525 10 0 00 377777 HRLOI AC-1,377777 ;SETUP MULTIPLICAND
9663 036274 224 11 0 00 000010 MUL AC,AC-1 ;MUL. ZZ X 377777 777777
9664 036275 312 12 0 00 045241 CAME AC+1,[ZZ*377777777777] ;TEST LOW PROD
9665 036276 004 12 0 00 000702 ER4 AC+1,SN ;ARSHRT ASSERTED
9666 036277 312 11 0 00 045242 CAME AC,[XX] ;TEST HIGH PROD = PLIER
9667 036300 003 11 0 00 000702 ER3 AC,SN
9668 036301 321 13 0 00 036271 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9669
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 14
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0198
9670 ;MULTIPLIER = 0
9671 ;MULTIPLICAND = -15,-13
9672
9673 000010 AC=10
9674 SAVEAC (1,1)^
9675 036302 201 12 0 00 036302 MOVEI AC+2,. ;SAVE TEST PC
9676 036303 202 12 0 00 030051 MOVEM AC+2,TESTPC
9677 036304 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9678 036305 202 12 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9679
9680 001000 SN=1000
9681 777777 777761 ZZ=-17
9682
9683 ;TEST MQSHRT FAILING
9684 F1000: REPEAT ^D2,<
9685 SN=SN+1
9686 ZZ=ZZ+2
9687 SETZ AC, ;SETUP MULTIPLIER
9688 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
9689 MUL AC,AC-1 ;MULTIPLY 0 X -ZZ
9690 SKIPE AC+1 ;TEST LOW PROD
9691 ER4 AC+1,SN
9692 SKIPE AC ;TEST HIGH PROD
9693 ER3 AC,SN
9694 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9695 >
9696
9697 001001 SN=SN+1
9698 777777 777763 ZZ=ZZ+2
9699 036306 400 10 0 00 000000 SETZ AC, ;SETUP MULTIPLIER
9700 036307 561 07 0 00 777763 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
9701 036310 224 10 0 00 000007 MUL AC,AC-1 ;MULTIPLY 0 X -ZZ
9702 036311 332 00 0 00 000011 SKIPE AC+1 ;TEST LOW PROD
9703 036312 004 11 0 00 001001 ER4 AC+1,SN
9704 036313 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD
9705 036314 003 10 0 00 001001 ER3 AC,SN
9706 036315 321 12 0 00 036305 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9707
9708
9709 001002 SN=SN+1
9710 777777 777765 ZZ=ZZ+2
9711 036316 400 10 0 00 000000 SETZ AC, ;SETUP MULTIPLIER
9712 036317 561 07 0 00 777765 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
9713 036320 224 10 0 00 000007 MUL AC,AC-1 ;MULTIPLY 0 X -ZZ
9714 036321 332 00 0 00 000011 SKIPE AC+1 ;TEST LOW PROD
9715 036322 004 11 0 00 001002 ER4 AC+1,SN
9716 036323 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD
9717 036324 003 10 0 00 001002 ER3 AC,SN
9718 036325 321 12 0 00 036315 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9719
9720 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 14-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0199
9721 ;MULTIPLIER = -2,-4
9722 ;MULTIPLICAND = 0
9723
9724 000007 AC=7
9725 SAVEAC (1,1)^
9726 036326 201 11 0 00 036326 MOVEI AC+2,. ;SAVE TEST PC
9727 036327 202 11 0 00 030051 MOVEM AC+2,TESTPC
9728 036330 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9729 036331 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9730
9731 001100 SN=1100
9732 000000 XX=0
9733 777777 777777 ZZ=-1
9734
9735 F1100: REPEAT ^D2,<
9736 SN=SN+1
9737 XX=XX+XX
9738 ZZ=ZZ+ZZ
9739 IFE XX,<XX=-1>
9740 HRROI AC,ZZ ;SETUP MULTIPLIER
9741 SETZ AC-1, ;SETUP MULTIPLICAND
9742 MUL AC,AC-1 ;MULTIPLY ZZ X 0
9743 SKIPE AC+1 ;TEST LOW PROD
9744 ER4 AC+1,SN
9745 SKIPE AC ;TEST HIGH PROD
9746 ER3 AC,SN
9747 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9748 >
9749
9750 001101 SN=SN+1
9751 000000 XX=XX+XX
9752 777777 777776 ZZ=ZZ+ZZ
9753 777777 777777 IFE XX,<XX=-1>
9754 036332 561 07 0 00 777776 HRROI AC,ZZ ;SETUP MULTIPLIER
9755 036333 400 06 0 00 000000 SETZ AC-1, ;SETUP MULTIPLICAND
9756 036334 224 07 0 00 000006 MUL AC,AC-1 ;MULTIPLY ZZ X 0
9757 036335 332 00 0 00 000010 SKIPE AC+1 ;TEST LOW PROD
9758 036336 004 10 0 00 001101 ER4 AC+1,SN
9759 036337 332 00 0 00 000007 SKIPE AC ;TEST HIGH PROD
9760 036340 003 07 0 00 001101 ER3 AC,SN
9761 036341 321 11 0 00 036330 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9762
9763
9764 001102 SN=SN+1
9765 777777 777776 XX=XX+XX
9766 777777 777774 ZZ=ZZ+ZZ
9767 IFE XX,<XX=-1>
9768 036342 561 07 0 00 777774 HRROI AC,ZZ ;SETUP MULTIPLIER
9769 036343 400 06 0 00 000000 SETZ AC-1, ;SETUP MULTIPLICAND
9770 036344 224 07 0 00 000006 MUL AC,AC-1 ;MULTIPLY ZZ X 0
9771 036345 332 00 0 00 000010 SKIPE AC+1 ;TEST LOW PROD
9772 036346 004 10 0 00 001102 ER4 AC+1,SN
9773 036347 332 00 0 00 000007 SKIPE AC ;TEST HIGH PROD
9774 036350 003 07 0 00 001102 ER3 AC,SN
9775 036351 321 11 0 00 036340 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 14-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0200
9776
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 15
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0201
9777 ;MULTIPLIER = 2,4
9778 ;MULTIPLICAND = 5
9779
9780 000014 AC=14
9781 SAVEAC (1,1)^
9782 036352 201 16 0 00 036352 MOVEI AC+2,. ;SAVE TEST PC
9783 036353 202 16 0 00 030051 MOVEM AC+2,TESTPC
9784 036354 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9785 036355 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9786
9787 001400 SN=1400
9788 000005 XX=5
9789 000001 ZZ=1
9790
9791 F1400: REPEAT ^D2,<
9792 SN=SN+1
9793 XX=XX+XX
9794 ZZ=ZZ+ZZ
9795 HRRZI AC-2,XX ;SETUP FOR COMPARISON
9796 MOVEI AC,ZZ ;SETUP MULTIPLIER
9797 MOVEI AC-1,5 ;SETUP MULTIPLICAND
9798 MUL AC,AC-1 ;MULTIPLY ZZ X 5
9799 CAME AC+1,AC-2 ;TEST LOW PROD
9800 ER4 AC+1,SN
9801 SETO AC-2, ;SET FOR COMPARISON
9802 SKIPE AC ;TEST HIGH PROD
9803 ER3 AC,SN
9804 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9805 >
9806
9807 001401 SN=SN+1
9808 000012 XX=XX+XX
9809 000002 ZZ=ZZ+ZZ
9810 036356 551 12 0 00 000012 HRRZI AC-2,XX ;SETUP FOR COMPARISON
9811 036357 201 14 0 00 000002 MOVEI AC,ZZ ;SETUP MULTIPLIER
9812 036360 201 13 0 00 000005 MOVEI AC-1,5 ;SETUP MULTIPLICAND
9813 036361 224 14 0 00 000013 MUL AC,AC-1 ;MULTIPLY ZZ X 5
9814 036362 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST LOW PROD
9815 036363 004 15 0 00 001401 ER4 AC+1,SN
9816 036364 474 12 0 00 000000 SETO AC-2, ;SET FOR COMPARISON
9817 036365 332 00 0 00 000014 SKIPE AC ;TEST HIGH PROD
9818 036366 003 14 0 00 001401 ER3 AC,SN
9819 036367 321 16 0 00 036356 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9820
9821
9822 001402 SN=SN+1
9823 000024 XX=XX+XX
9824 000004 ZZ=ZZ+ZZ
9825 036370 551 12 0 00 000024 HRRZI AC-2,XX ;SETUP FOR COMPARISON
9826 036371 201 14 0 00 000004 MOVEI AC,ZZ ;SETUP MULTIPLIER
9827 036372 201 13 0 00 000005 MOVEI AC-1,5 ;SETUP MULTIPLICAND
9828 036373 224 14 0 00 000013 MUL AC,AC-1 ;MULTIPLY ZZ X 5
9829 036374 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST LOW PROD
9830 036375 004 15 0 00 001402 ER4 AC+1,SN
9831 036376 474 12 0 00 000000 SETO AC-2, ;SET FOR COMPARISON
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 15-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0202
9832 036377 332 00 0 00 000014 SKIPE AC ;TEST HIGH PROD
9833 036400 003 14 0 00 001402 ER3 AC,SN
9834 036401 321 16 0 00 036370 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9835
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 16
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0203
9836 ;MULTIPLIER = 200000 000000,100000 000000
9837 ;MULTIPLICAND = 25
9838
9839 000011 AC=11
9840 SAVEAC (1,1)^
9841 036402 201 13 0 00 036402 MOVEI AC+2,. ;SAVE TEST PC
9842 036403 202 13 0 00 030051 MOVEM AC+2,TESTPC
9843 036404 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9844 036405 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9845
9846 002000 SN=2000
9847 377777 XX=377777
9848 000024 YY=24
9849 000000 ZZ=0
9850
9851 F2000: REPEAT ^D2,<
9852 SN=SN+1
9853 XX=XX/2
9854 YY=YY/2
9855 ZZ=ZZ/2
9856 IFE ZZ,<ZZ=200000>
9857 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
9858 MOVSI AC,ZZ ;SETUP MULTIPLIER
9859 MOVEI AC-1,25 ;SETUP MULTIPLICAND
9860 MUL AC,AC-1 ;MULTIPLY ZZ X 25
9861 CAME AC+1,AC-2 ;TEST LOW PROD
9862 ER4 AC+1,SN
9863 MOVEI AC-2,YY ;SET FOR COMPARISON
9864 CAME AC,AC-2 ;TEST HIGH PROD
9865 ER3 AC,SN
9866 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9867 >
9868
9869 002001 SN=SN+1
9870 177777 XX=XX/2
9871 000012 YY=YY/2
9872 000000 ZZ=ZZ/2
9873 200000 IFE ZZ,<ZZ=200000>
9874 036406 205 07 0 00 200000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
9875 036407 205 11 0 00 200000 MOVSI AC,ZZ ;SETUP MULTIPLIER
9876 036410 201 10 0 00 000025 MOVEI AC-1,25 ;SETUP MULTIPLICAND
9877 036411 224 11 0 00 000010 MUL AC,AC-1 ;MULTIPLY ZZ X 25
9878 036412 312 12 0 00 000007 CAME AC+1,AC-2 ;TEST LOW PROD
9879 036413 004 12 0 00 002001 ER4 AC+1,SN
9880 036414 201 07 0 00 000012 MOVEI AC-2,YY ;SET FOR COMPARISON
9881 036415 312 11 0 00 000007 CAME AC,AC-2 ;TEST HIGH PROD
9882 036416 003 11 0 00 002001 ER3 AC,SN
9883 036417 321 13 0 00 036406 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9884
9885
9886 002002 SN=SN+1
9887 077777 XX=XX/2
9888 000005 YY=YY/2
9889 100000 ZZ=ZZ/2
9890 IFE ZZ,<ZZ=200000>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 16-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0204
9891 036420 205 07 0 00 100000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
9892 036421 205 11 0 00 100000 MOVSI AC,ZZ ;SETUP MULTIPLIER
9893 036422 201 10 0 00 000025 MOVEI AC-1,25 ;SETUP MULTIPLICAND
9894 036423 224 11 0 00 000010 MUL AC,AC-1 ;MULTIPLY ZZ X 25
9895 036424 312 12 0 00 000007 CAME AC+1,AC-2 ;TEST LOW PROD
9896 036425 004 12 0 00 002002 ER4 AC+1,SN
9897 036426 201 07 0 00 000005 MOVEI AC-2,YY ;SET FOR COMPARISON
9898 036427 312 11 0 00 000007 CAME AC,AC-2 ;TEST HIGH PROD
9899 036430 003 11 0 00 002002 ER3 AC,SN
9900 036431 321 13 0 00 036420 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
9901
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 17
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0205
9902 ;INPUT ONE'S-
9903 ;MULTIPLIER = 400000 000000
9904 ;MULTIPLICAND = -20,-40
9905
9906 000006 AC=6
9907 SAVEAC (1,1)^
9908 036432 201 10 0 00 036432 MOVEI AC+2,. ;SAVE TEST PC
9909 036433 202 10 0 00 030051 MOVEM AC+2,TESTPC
9910 036434 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9911 036435 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9912
9913 002200 SN=2200
9914 777777 777770 ZZ=-10
9915 000010 XX=10
9916
9917 F2200: REPEAT ^D2,<
9918 SN=SN+1
9919 ZZ=ZZ+ZZ
9920 XX=XX+XX
9921 MOVSI AC,400000 ;SETUP MULTIPLIER
9922 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
9923 MUL AC,AC-1 ;MUL.400000 000000 X ZZ
9924 CAME AC,[ZZ] ;TEST HI PRODUCT
9925 ER3 AC,SN
9926 CAME <AC+1>&17,[1B0] ;TEST LO PROD
9927 ER4 AC+1,SN
9928 JUMPL AC+2,.-^D7 ;LOOP ON ERROR SWITCH
9929 >
9930
9931 002201 SN=SN+1
9932 777777 777760 ZZ=ZZ+ZZ
9933 000020 XX=XX+XX
9934 036436 205 06 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
9935 036437 561 05 0 00 777760 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
9936 036440 224 06 0 00 000005 MUL AC,AC-1 ;MUL.400000 000000 X ZZ
9937 036441 312 06 0 00 045243 CAME AC,[ZZ] ;TEST HI PRODUCT
9938 036442 003 06 0 00 002201 ER3 AC,SN
9939 036443 312 07 0 00 044765 CAME <AC+1>&17,[1B0] ;TEST LO PROD
9940 036444 004 07 0 00 002201 ER4 AC+1,SN
9941 036445 321 10 0 00 036436 JUMPL AC+2,.-^D7 ;LOOP ON ERROR SWITCH
9942
9943
9944 002202 SN=SN+1
9945 777777 777740 ZZ=ZZ+ZZ
9946 000040 XX=XX+XX
9947 036446 205 06 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
9948 036447 561 05 0 00 777740 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
9949 036450 224 06 0 00 000005 MUL AC,AC-1 ;MUL.400000 000000 X ZZ
9950 036451 312 06 0 00 045244 CAME AC,[ZZ] ;TEST HI PRODUCT
9951 036452 003 06 0 00 002202 ER3 AC,SN
9952 036453 312 07 0 00 044765 CAME <AC+1>&17,[1B0] ;TEST LO PROD
9953 036454 004 07 0 00 002202 ER4 AC+1,SN
9954 036455 321 10 0 00 036446 JUMPL AC+2,.-^D7 ;LOOP ON ERROR SWITCH
9955
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 18
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0206
9956 ;MULTIPLIER = 10,20
9957 ;MULTIPLICAND = 4
9958
9959 000005 AC=5
9960 SAVEAC (1,1)^
9961 036456 201 07 0 00 036456 MOVEI AC+2,. ;SAVE TEST PC
9962 036457 202 07 0 00 030051 MOVEM AC+2,TESTPC
9963 036460 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
9964 036461 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
9965
9966 002400 SN=2400
9967 000020 XX=20
9968 000004 ZZ=4
9969 F2400: REPEAT ^D2,<
9970 SN=SN+1
9971 XX=XX+XX
9972 ZZ=ZZ+ZZ
9973 MOVEI AC-2,XX ;SETUP FOR COMPARISON
9974 MOVEI AC,ZZ ;SETUP MULTIPLIER
9975 MOVEI AC-1,4 ;SETUP MULTIPLICAND
9976 MUL AC,AC-1 ;MULTIPLY ZZ X 4
9977 CAME AC+1,AC-2 ;TEST LOW PROD
9978 ER4 AC+1,SN
9979 SKIPE AC ;TEST HIGH PRODUCT
9980 ER3 AC,SN
9981 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9982 >
9983
9984 002401 SN=SN+1
9985 000040 XX=XX+XX
9986 000010 ZZ=ZZ+ZZ
9987 036462 201 03 0 00 000040 MOVEI AC-2,XX ;SETUP FOR COMPARISON
9988 036463 201 05 0 00 000010 MOVEI AC,ZZ ;SETUP MULTIPLIER
9989 036464 201 04 0 00 000004 MOVEI AC-1,4 ;SETUP MULTIPLICAND
9990 036465 224 05 0 00 000004 MUL AC,AC-1 ;MULTIPLY ZZ X 4
9991 036466 312 06 0 00 000003 CAME AC+1,AC-2 ;TEST LOW PROD
9992 036467 004 06 0 00 002401 ER4 AC+1,SN
9993 036470 332 00 0 00 000005 SKIPE AC ;TEST HIGH PRODUCT
9994 036471 003 05 0 00 002401 ER3 AC,SN
9995 036472 321 07 0 00 036462 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
9996
9997
9998 002402 SN=SN+1
9999 000100 XX=XX+XX
10000 000020 ZZ=ZZ+ZZ
10001 036473 201 03 0 00 000100 MOVEI AC-2,XX ;SETUP FOR COMPARISON
10002 036474 201 05 0 00 000020 MOVEI AC,ZZ ;SETUP MULTIPLIER
10003 036475 201 04 0 00 000004 MOVEI AC-1,4 ;SETUP MULTIPLICAND
10004 036476 224 05 0 00 000004 MUL AC,AC-1 ;MULTIPLY ZZ X 4
10005 036477 312 06 0 00 000003 CAME AC+1,AC-2 ;TEST LOW PROD
10006 036500 004 06 0 00 002402 ER4 AC+1,SN
10007 036501 332 00 0 00 000005 SKIPE AC ;TEST HIGH PRODUCT
10008 036502 003 05 0 00 002402 ER3 AC,SN
10009 036503 321 07 0 00 036473 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
10010
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 19
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0207
10011 ;MULTIPLIER = 1,2
10012 ;MULTIPLICAND = 200000 000000,100000 000000
10013
10014 000014 AC=14
10015 SAVEAC (1,1)^
10016 036504 201 16 0 00 036504 MOVEI AC+2,. ;SAVE TEST PC
10017 036505 202 16 0 00 030051 MOVEM AC+2,TESTPC
10018 036506 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10019 036507 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10020
10021 003300 SN=3300
10022 000000 XX=0
10023 000000 ZZ=0
10024
10025 F3300: REPEAT ^D2,<
10026 SN=SN+1
10027 XX=XX+XX
10028 ZZ=ZZ/2
10029 IFE XX,<XX=1>
10030 IFE ZZ,<ZZ=200000>
10031 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
10032 SETO AC+1, ;INITIALIZE AC+1
10033 MOVEI AC,XX ;SETUP MULTIPLIER
10034 MOVSI AC-1,ZZ ;SETUP MULTIPLICAND
10035 MUL AC,AC-1 ;MULTIPLY TWO VARIABLES
10036 SKIPE AC ;TEST HIGH PROD
10037 ER3 AC,SN
10038 CAME AC+1,AC-2 ;TEST LOW PRODUCT
10039 ER4 AC+1,SN
10040 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
10041 >
10042
10043 003301 SN=SN+1
10044 000000 XX=XX+XX
10045 000000 ZZ=ZZ/2
10046 000001 IFE XX,<XX=1>
10047 200000 IFE ZZ,<ZZ=200000>
10048 036510 205 12 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
10049 036511 474 15 0 00 000000 SETO AC+1, ;INITIALIZE AC+1
10050 036512 201 14 0 00 000001 MOVEI AC,XX ;SETUP MULTIPLIER
10051 036513 205 13 0 00 200000 MOVSI AC-1,ZZ ;SETUP MULTIPLICAND
10052 036514 224 14 0 00 000013 MUL AC,AC-1 ;MULTIPLY TWO VARIABLES
10053 036515 332 00 0 00 000014 SKIPE AC ;TEST HIGH PROD
10054 036516 003 14 0 00 003301 ER3 AC,SN
10055 036517 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST LOW PRODUCT
10056 036520 004 15 0 00 003301 ER4 AC+1,SN
10057 036521 321 16 0 00 036511 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
10058
10059
10060 003302 SN=SN+1
10061 000002 XX=XX+XX
10062 100000 ZZ=ZZ/2
10063 IFE XX,<XX=1>
10064 IFE ZZ,<ZZ=200000>
10065 036522 205 12 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 19-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0208
10066 036523 474 15 0 00 000000 SETO AC+1, ;INITIALIZE AC+1
10067 036524 201 14 0 00 000002 MOVEI AC,XX ;SETUP MULTIPLIER
10068 036525 205 13 0 00 100000 MOVSI AC-1,ZZ ;SETUP MULTIPLICAND
10069 036526 224 14 0 00 000013 MUL AC,AC-1 ;MULTIPLY TWO VARIABLES
10070 036527 332 00 0 00 000014 SKIPE AC ;TEST HIGH PROD
10071 036530 003 14 0 00 003302 ER3 AC,SN
10072 036531 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST LOW PRODUCT
10073 036532 004 15 0 00 003302 ER4 AC+1,SN
10074 036533 321 16 0 00 036523 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
10075
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 20
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0209
10076 ;MUL
10077 ;MULTIPLIER = 400000 000000
10078 ;MULTIPLICAND = -1,-2
10079
10080 000012 AC=12
10081 SAVEAC^
10082 036534 201 14 0 00 036534 MOVEI AC+2,. ;SAVE TEST PC
10083 036535 202 14 0 00 030051 MOVEM AC+2,TESTPC
10084 036536 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10085 036537 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10086
10087 004000 SN=4000
10088 000000 XX=0
10089 000000 ZZ=0
10090
10091 F4000: REPEAT ^D2,<
10092 SN=SN+1
10093 XX=XX+1
10094 ZZ=ZZ-1
10095 MOVSI AC,400000 ;SETUP MULTIPLIER
10096 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10097 MUL AC,AC-1 ;MULTIPLY TWO NEGATIVES
10098 CAME AC,[ZZ] ;TEST HI PROD
10099 ER3 AC,SN
10100 CAME <AC+1>&17,[1B0] ;TEST LO PROD
10101 ER4 AC+1,SN
10102 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
10103 >
10104
10105 004001 SN=SN+1
10106 000001 XX=XX+1
10107 777777 777777 ZZ=ZZ-1
10108 036540 205 12 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10109 036541 561 11 0 00 777777 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10110 036542 224 12 0 00 000011 MUL AC,AC-1 ;MULTIPLY TWO NEGATIVES
10111 036543 312 12 0 00 044617 CAME AC,[ZZ] ;TEST HI PROD
10112 036544 003 12 0 00 004001 ER3 AC,SN
10113 036545 312 13 0 00 044765 CAME <AC+1>&17,[1B0] ;TEST LO PROD
10114 036546 004 13 0 00 004001 ER4 AC+1,SN
10115 036547 321 14 0 00 036540 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
10116
10117
10118 004002 SN=SN+1
10119 000002 XX=XX+1
10120 777777 777776 ZZ=ZZ-1
10121 036550 205 12 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10122 036551 561 11 0 00 777776 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10123 036552 224 12 0 00 000011 MUL AC,AC-1 ;MULTIPLY TWO NEGATIVES
10124 036553 312 12 0 00 044621 CAME AC,[ZZ] ;TEST HI PROD
10125 036554 003 12 0 00 004002 ER3 AC,SN
10126 036555 312 13 0 00 044765 CAME <AC+1>&17,[1B0] ;TEST LO PROD
10127 036556 004 13 0 00 004002 ER4 AC+1,SN
10128 036557 321 14 0 00 036550 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
10129
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 21
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0210
10130 ;TEST MUL-IMMEDIATE MODE
10131 ;TEST THE ABILITY TO MULTIPLY WITH
10132 ;EFFECTIVE ADDRESS AS MULTIPLICAND
10133 ;MULTIPLIER = 1
10134 ;MULTIPLICAND = E
10135
10136 004200 SN=4200
10137 000011 AC=11
10138
10139 ;TEST IMMEDIATE MODE
10140 F4200: REPEAT ^D2,<
10141 SN=SN+1
10142 AC=AC-1
10143 SAVEAC (1,1) ;SAVE AC FOR ITERATION
10144 MOVEI AC-2,AC-1 ;SETUP FOR COMPARISON
10145 MOVEI AC,1 ;SETUP MULTIPLIER
10146 HRROI AC-1,-1 ;SETUP AC-1
10147 MULI AC,AC-1 ;MULTIPLY 1 X E
10148 CAME AC+1,AC-2 ;TEST LOW PROD
10149 ER4 AC+1,SN ;MULTIPLIED BY C(E) VICE E
10150 SKIPE AC ;TEST HIGH PROD
10151 ER3 AC,SN
10152 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
10153 >
10154
10155 004201 SN=SN+1
10156 000010 AC=AC-1
10157 SAVEAC (1,1)^
10158 036560 201 12 0 00 036560 MOVEI AC+2,. ;SAVE TEST PC
10159 036561 202 12 0 00 030051 MOVEM AC+2,TESTPC
10160 036562 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10161 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ ;SAVE AC FOR ITERAT
10162 036563 202 12 0 00 045447 ION
10163 036564 201 06 0 00 000007 MOVEI AC-2,AC-1 ;SETUP FOR COMPARISON
10164 036565 201 10 0 00 000001 MOVEI AC,1 ;SETUP MULTIPLIER
10165 036566 561 07 0 00 777777 HRROI AC-1,-1 ;SETUP AC-1
10166 036567 225 10 0 00 000007 MULI AC,AC-1 ;MULTIPLY 1 X E
10167 036570 312 11 0 00 000006 CAME AC+1,AC-2 ;TEST LOW PROD
10168 036571 004 11 0 00 004201 ER4 AC+1,SN ;MULTIPLIED BY C(E) VICE E
10169 036572 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD
10170 036573 003 10 0 00 004201 ER3 AC,SN
10171 036574 321 12 0 00 036564 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
10172
10173
10174 004202 SN=SN+1
10175 000007 AC=AC-1
10176 SAVEAC (1,1)^
10177 036575 201 11 0 00 036575 MOVEI AC+2,. ;SAVE TEST PC
10178 036576 202 11 0 00 030051 MOVEM AC+2,TESTPC
10179 036577 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10180 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ ;SAVE AC FOR ITERAT
10181 036600 202 11 0 00 045447 ION
10182 036601 201 05 0 00 000006 MOVEI AC-2,AC-1 ;SETUP FOR COMPARISON
10183 036602 201 07 0 00 000001 MOVEI AC,1 ;SETUP MULTIPLIER
10184 036603 561 06 0 00 777777 HRROI AC-1,-1 ;SETUP AC-1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 21-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0211
10185 036604 225 07 0 00 000006 MULI AC,AC-1 ;MULTIPLY 1 X E
10186 036605 312 10 0 00 000005 CAME AC+1,AC-2 ;TEST LOW PROD
10187 036606 004 10 0 00 004202 ER4 AC+1,SN ;MULTIPLIED BY C(E) VICE E
10188 036607 332 00 0 00 000007 SKIPE AC ;TEST HIGH PROD
10189 036610 003 07 0 00 004202 ER3 AC,SN
10190 036611 321 11 0 00 036601 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
10191
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 22
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0212
10192 ;TEST MUL-MEMORY MODE
10193 ;TEST SC(E), PRODUCT HIGH ORDER PART
10194 ;TEST ABILITY TO ASSERT SAC INH
10195 ;TEST ABILITY TO INHIBIT SAC2-PRODUCT LOW
10196 ;ORDER PART IS LOST
10197 ;MULTIPLIER = 200000 000000
10198 ;MULTIPLICAND = 2,4
10199
10200 000007 AC=7
10201 SAVEAC^
10202 036612 201 11 0 00 036612 MOVEI AC+2,. ;SAVE TEST PC
10203 036613 202 11 0 00 030051 MOVEM AC+2,TESTPC
10204 036614 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10205 036615 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10206
10207 004300 SN=4300
10208 000001 ZZ=1
10209
10210 ;TEST SCE
10211 F4300: REPEAT ^D2,<
10212 SN=SN+1
10213 ZZ=ZZ+ZZ
10214 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
10215 SETZM AC+1 ;SETUP AC+1
10216 MOVSI AC,200000 ;SETUP MULTIPLIER
10217 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10218 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10219 CAME AC,AC-2 ;TEST AC
10220 ER3 AC,SN ;C(AC) WAS CLOBBERED
10221 SKIPE AC+1 ;TEST AC+1
10222 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
10223 CAIE AC-1,ZZ/2 ;TEST PRODUCT
10224 ER5 AC-1,SN
10225 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
10226 >
10227
10228 004301 SN=SN+1
10229 000002 ZZ=ZZ+ZZ
10230 036616 205 05 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
10231 036617 402 00 0 00 000010 SETZM AC+1 ;SETUP AC+1
10232 036620 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10233 036621 201 06 0 00 000002 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10234 036622 226 07 0 00 000006 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10235 036623 312 07 0 00 000005 CAME AC,AC-2 ;TEST AC
10236 036624 003 07 0 00 004301 ER3 AC,SN ;C(AC) WAS CLOBBERED
10237 036625 332 00 0 00 000010 SKIPE AC+1 ;TEST AC+1
10238 036626 004 10 0 00 004301 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
10239 036627 302 06 0 00 000001 CAIE AC-1,ZZ/2 ;TEST PRODUCT
10240 036630 005 06 0 00 004301 ER5 AC-1,SN
10241 036631 321 11 0 00 036620 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
10242
10243
10244 004302 SN=SN+1
10245 000004 ZZ=ZZ+ZZ
10246 036632 205 05 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 22-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0213
10247 036633 402 00 0 00 000010 SETZM AC+1 ;SETUP AC+1
10248 036634 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10249 036635 201 06 0 00 000004 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10250 036636 226 07 0 00 000006 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10251 036637 312 07 0 00 000005 CAME AC,AC-2 ;TEST AC
10252 036640 003 07 0 00 004302 ER3 AC,SN ;C(AC) WAS CLOBBERED
10253 036641 332 00 0 00 000010 SKIPE AC+1 ;TEST AC+1
10254 036642 004 10 0 00 004302 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
10255 036643 302 06 0 00 000002 CAIE AC-1,ZZ/2 ;TEST PRODUCT
10256 036644 005 06 0 00 004302 ER5 AC-1,SN
10257 036645 321 11 0 00 036634 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
10258
10259 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 22-2
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0214
10260 004400 SN=4400
10261 000001 ZZ=1
10262
10263 ;TEST SAC INH
10264 F4400: REPEAT ^D2,<
10265 SN=SN+1
10266 ZZ=ZZ+ZZ
10267 MOVSI AC,200000 ;SETUP MULTIPLIER
10268 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10269 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10270 TLNN AC,200000 ;TEST FOR ORIGINAL CONTENTS
10271 ER3 AC,SN
10272 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
10273 >
10274
10275 004401 SN=SN+1
10276 000002 ZZ=ZZ+ZZ
10277 036646 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10278 036647 201 06 0 00 000002 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10279 036650 226 07 0 00 000006 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10280 036651 607 07 0 00 200000 TLNN AC,200000 ;TEST FOR ORIGINAL CONTENTS
10281 036652 003 07 0 00 004401 ER3 AC,SN
10282 036653 321 11 0 00 036646 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
10283
10284
10285 004402 SN=SN+1
10286 000004 ZZ=ZZ+ZZ
10287 036654 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10288 036655 201 06 0 00 000004 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10289 036656 226 07 0 00 000006 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10290 036657 607 07 0 00 200000 TLNN AC,200000 ;TEST FOR ORIGINAL CONTENTS
10291 036660 003 07 0 00 004402 ER3 AC,SN
10292 036661 321 11 0 00 036654 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
10293
10294 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 22-3
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0215
10295 004500 SN=4500
10296 000001 ZZ=1
10297
10298 ;TEST SAC2 ASSERTED
10299 F4500: REPEAT ^D2,<
10300 SN=SN+1
10301 ZZ=ZZ+ZZ
10302 SETZ AC+1, ;CLEAR AC+1
10303 MOVSI AC,200000 ;SETUP MULTIPLIER
10304 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10305 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10306 SKIPE AC+1 ;TEST FOR ORIGINAL CONTENTS
10307 ER4 AC+1,SN
10308 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
10309 >
10310
10311 004501 SN=SN+1
10312 000002 ZZ=ZZ+ZZ
10313 036662 400 10 0 00 000000 SETZ AC+1, ;CLEAR AC+1
10314 036663 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10315 036664 201 06 0 00 000002 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10316 036665 226 07 0 00 000006 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10317 036666 332 00 0 00 000010 SKIPE AC+1 ;TEST FOR ORIGINAL CONTENTS
10318 036667 004 10 0 00 004501 ER4 AC+1,SN
10319 036670 321 11 0 00 036662 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
10320
10321
10322 004502 SN=SN+1
10323 000004 ZZ=ZZ+ZZ
10324 036671 400 10 0 00 000000 SETZ AC+1, ;CLEAR AC+1
10325 036672 205 07 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10326 036673 201 06 0 00 000004 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10327 036674 226 07 0 00 000006 MULM AC,AC-1 ;MUL 200000 000000 X ZZ
10328 036675 332 00 0 00 000010 SKIPE AC+1 ;TEST FOR ORIGINAL CONTENTS
10329 036676 004 10 0 00 004502 ER4 AC+1,SN
10330 036677 321 11 0 00 036671 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
10331
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 23
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0216
10332 ;TEST MUL-BOTH MODE
10333 ;TEST ABILITY TO STORE PRODUCT HIGH ORDER
10334 ;PART IN AC,E
10335 ;TEST ABILITY TO STORE PRODUCT LOW ORDER
10336 ;PART IN AC+1
10337 ;MULTIPLIER = 200000 000000
10338 ;MULTIPLICAND = 5,7
10339
10340 000006 AC=6
10341 SAVEAC (1,1)^
10342 036700 201 10 0 00 036700 MOVEI AC+2,. ;SAVE TEST PC
10343 036701 202 10 0 00 030051 MOVEM AC+2,TESTPC
10344 036702 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10345 036703 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10346
10347 004600 SN=4600
10348 000001 XX=1
10349 000003 ZZ=3
10350
10351 F4600: REPEAT ^D2,<
10352 SN=SN+1
10353 XX=XX+1
10354 ZZ=ZZ+2
10355 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
10356 SETZM AC+1 ;SETUP FOR COMPARISON
10357 MOVSI AC,200000 ;SETUP MULTIPLIER
10358 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10359 MULB AC,AC-1 ;MUL 200000 000000 X ZZ
10360 CAME AC,AC-1 ;TEST C(AC) = C (E)
10361 ER3 AC,SN ;SCE FAILED
10362 CAME AC+1,AC-2 ;TEST LOW PROD
10363 ER4 AC+1,SN
10364 CAIE AC-1,XX ;TEST LOW PROD
10365 ER5 AC-1,SN
10366 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10367 >
10368
10369 004601 SN=SN+1
10370 000002 XX=XX+1
10371 000005 ZZ=ZZ+2
10372 036704 205 04 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
10373 036705 402 00 0 00 000007 SETZM AC+1 ;SETUP FOR COMPARISON
10374 036706 205 06 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10375 036707 201 05 0 00 000005 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10376 036710 227 06 0 00 000005 MULB AC,AC-1 ;MUL 200000 000000 X ZZ
10377 036711 312 06 0 00 000005 CAME AC,AC-1 ;TEST C(AC) = C (E)
10378 036712 003 06 0 00 004601 ER3 AC,SN ;SCE FAILED
10379 036713 312 07 0 00 000004 CAME AC+1,AC-2 ;TEST LOW PROD
10380 036714 004 07 0 00 004601 ER4 AC+1,SN
10381 036715 302 05 0 00 000002 CAIE AC-1,XX ;TEST LOW PROD
10382 036716 005 05 0 00 004601 ER5 AC-1,SN
10383 036717 321 10 0 00 036704 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10384
10385
10386 004602 SN=SN+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 23-1
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0217
10387 000003 XX=XX+1
10388 000007 ZZ=ZZ+2
10389 036720 205 04 0 00 200000 MOVSI AC-2,200000 ;SETUP FOR COMPARISON
10390 036721 402 00 0 00 000007 SETZM AC+1 ;SETUP FOR COMPARISON
10391 036722 205 06 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10392 036723 201 05 0 00 000007 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10393 036724 227 06 0 00 000005 MULB AC,AC-1 ;MUL 200000 000000 X ZZ
10394 036725 312 06 0 00 000005 CAME AC,AC-1 ;TEST C(AC) = C (E)
10395 036726 003 06 0 00 004602 ER3 AC,SN ;SCE FAILED
10396 036727 312 07 0 00 000004 CAME AC+1,AC-2 ;TEST LOW PROD
10397 036730 004 07 0 00 004602 ER4 AC+1,SN
10398 036731 302 05 0 00 000003 CAIE AC-1,XX ;TEST LOW PROD
10399 036732 005 05 0 00 004602 ER5 AC-1,SN
10400 036733 321 10 0 00 036720 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10401
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 24
DAKALM MAC 20-JAN-77 11:20 MAIN TESTING SEQ 0218
10402 ;TEST AROV SET-MUL
10403 ;MULTIPLIER = 400000 000000
10404 ;MULTIPLICAND = 400000 000000
10405 ;PRODUCT = 400000 000000 400000 000000
10406 ;AROV IS SET
10407
10408 036734 254 02 1 00 045245 F4710: JRSTF @[.+1] ;CLEAR ALL FLAGS
10409 036735 205 06 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10410 036736 205 04 0 00 400000 MOVSI AC-2,400000 ;SETUP MULTIPLICAND
10411 036737 224 06 0 00 000004 MUL AC,AC-2
10412 036740 265 03 0 00 036741 JSP AC-3,.+1 ;SAVE FLAGS
10413 036741 312 06 0 00 044765 CAME AC,[1B0] ;TEST HIGH PRODUCT
10414 036742 003 06 0 00 004711 ER3 AC,4711
10415 036743 312 07 0 00 044765 CAME AC+1,[1B0] ;TEST LOW PRODUCT
10416 036744 004 07 0 00 004711 ER4 AC+1,4711
10417 036745 255 10 0 00 036747 JOV .+2 ;TEST AROV
10418 036746 013 03 0 00 004711 ER13 AC-3,4711 ;FAIL IF AROV NOT SET
10419 036747 321 10 0 00 036734 JUMPL AC+2,F4710 ;LOOP ON ERROR SWITCH
10420
10421 ;TEST AROV SET-MULB
10422 ;MULTIPLIER = 400000 000000
10423 ;MULTIPLICAND = 400000 000000
10424 ;PRODUCT = 400000 000000 400000 000000
10425 ;AROV IS SET
10426
10427 036750 254 02 1 00 045246 F4720: JRSTF @[.+1] ;CLEAR ALL FLAGS
10428 036751 205 06 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10429 036752 205 04 0 00 400000 MOVSI AC-2,400000 ;SETUP MULTIPLICAND
10430 036753 227 06 0 00 000004 MULB AC,AC-2
10431 036754 265 03 0 00 036755 JSP AC-3,.+1 ;SAVE FLAGS
10432 036755 312 06 0 00 044765 CAME AC,[1B0] ;TEST HIGH PRODUCT
10433 036756 003 06 0 00 004721 ER3 AC,4721
10434 036757 312 07 0 00 044765 CAME AC+1,[1B0] ;TEST LOW PRODUCT
10435 036760 004 07 0 00 004721 ER4 AC+1,4721
10436 036761 312 04 0 00 044765 CAME AC-2,[1B0] ;TEST HIGH PRODUCT
10437 036762 005 04 0 00 004721 ER5 AC-2,4721
10438 036763 255 10 0 00 036765 JOV .+2 ;TEST AROV
10439 036764 013 03 0 00 004721 ER13 AC-3,4721 ;FAIL IF AROV NOT SET
10440 036765 321 10 0 00 036750 JUMPL AC+2,F4720 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 25
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0219
10441 SUBTTL DIAGNOSTIC SECTION - INTEGER MPY TEST
10442
10443 ;MULTIPLIER =400000 000000
10444 ;MULTIPLICAND = 2,4
10445
10446 000010 AC=10
10447 SAVEAC (1,1)^
10448 036766 201 12 0 00 036766 MOVEI AC+2,. ;SAVE TEST PC
10449 036767 202 12 0 00 030051 MOVEM AC+2,TESTPC
10450 036770 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10451 036771 202 12 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10452 036772 254 02 1 00 045247 JRSTF @[.+1] ;CLEAR ALL FLAGS
10453
10454 005000 SN=5000
10455 000001 ZZ=1
10456
10457 F5000: REPEAT ^D2,<
10458 SN=SN+1
10459 ZZ=ZZ+ZZ
10460 MOVSI AC,400000 ;SETUP MULTIPLIER
10461 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10462 IMUL AC,AC-1 ;MUL 400000 000000 X ZZ
10463 SKIPE AC ;TEST PROD = 0
10464 ER3 AC,SN
10465 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
10466 >
10467
10468 005001 SN=SN+1
10469 000002 ZZ=ZZ+ZZ
10470 036773 205 10 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10471 036774 201 07 0 00 000002 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10472 036775 220 10 0 00 000007 IMUL AC,AC-1 ;MUL 400000 000000 X ZZ
10473 036776 332 00 0 00 000010 SKIPE AC ;TEST PROD = 0
10474 036777 003 10 0 00 005001 ER3 AC,SN
10475 037000 321 12 0 00 036773 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
10476
10477
10478 005002 SN=SN+1
10479 000004 ZZ=ZZ+ZZ
10480 037001 205 10 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10481 037002 201 07 0 00 000004 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10482 037003 220 10 0 00 000007 IMUL AC,AC-1 ;MUL 400000 000000 X ZZ
10483 037004 332 00 0 00 000010 SKIPE AC ;TEST PROD = 0
10484 037005 003 10 0 00 005002 ER3 AC,SN
10485 037006 321 12 0 00 037001 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
10486
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 26
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0220
10487 ;TEST AROV SET
10488 ;TEST ABILITY TO SET AROV FLAG
10489 ;NUMBERS OF LIKE SIGNS ARE MULTIPLIED
10490 ;AND TESTED FOR OVERFLOW/OVERFLOW NOT
10491 ;NUMBERS OF UNLIKE SIGNS ARE MULTIPLIED
10492 ;AND TESTED FOR OVERFLOW NOT
10493
10494 000014 AC=14
10495 SAVEAC (1,1)^
10496 037007 201 16 0 00 037007 MOVEI AC+2,. ;SAVE TEST PC
10497 037010 202 16 0 00 030051 MOVEM AC+2,TESTPC
10498 037011 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10499 037012 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10500
10501 005100 SN=5100
10502 200000 XX=200000
10503 000001 ZZ=1
10504
10505 ;TEST 2 POSITS-OVERFLOW NOT
10506 F5100: REPEAT ^D2,<
10507 SN=SN+1
10508 XX=XX+200000
10509 ZZ=ZZ+1
10510 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10511 MOVEI AC,200000 ;SETUP MULTIPLIER
10512 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10513 IMUL AC,AC-1 ;MUL 000000 200000 X ZZ
10514 JSP AC+1,.+1
10515 CAIE AC,XX
10516 ER3 AC,SN
10517 JOV .+2 ;TEST FOR SET COND
10518 JRST .+2 ;FLAG IS NOT SET
10519 ER13 AC+1,SN ;FLAG IS SET
10520 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10521 >
10522
10523 005101 SN=SN+1
10524 400000 XX=XX+200000
10525 000002 ZZ=ZZ+1
10526 037013 254 02 1 00 045250 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10527 037014 201 14 0 00 200000 MOVEI AC,200000 ;SETUP MULTIPLIER
10528 037015 201 13 0 00 000002 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10529 037016 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 000000 200000 X ZZ
10530 037017 265 15 0 00 037020 JSP AC+1,.+1
10531 037020 302 14 0 00 400000 CAIE AC,XX
10532 037021 003 14 0 00 005101 ER3 AC,SN
10533 037022 255 10 0 00 037024 JOV .+2 ;TEST FOR SET COND
10534 037023 254 00 0 00 037025 JRST .+2 ;FLAG IS NOT SET
10535 037024 013 15 0 00 005101 ER13 AC+1,SN ;FLAG IS SET
10536 037025 321 16 0 00 037013 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10537
10538
10539 005102 SN=SN+1
10540 600000 XX=XX+200000
10541 000003 ZZ=ZZ+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 26-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0221
10542 037026 254 02 1 00 045251 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10543 037027 201 14 0 00 200000 MOVEI AC,200000 ;SETUP MULTIPLIER
10544 037030 201 13 0 00 000003 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10545 037031 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 000000 200000 X ZZ
10546 037032 265 15 0 00 037033 JSP AC+1,.+1
10547 037033 302 14 0 00 600000 CAIE AC,XX
10548 037034 003 14 0 00 005102 ER3 AC,SN
10549 037035 255 10 0 00 037037 JOV .+2 ;TEST FOR SET COND
10550 037036 254 00 0 00 037040 JRST .+2 ;FLAG IS NOT SET
10551 037037 013 15 0 00 005102 ER13 AC+1,SN ;FLAG IS SET
10552 037040 321 16 0 00 037026 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10553
10554 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 26-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0222
10555 005200 SN=5200
10556 040000 XX=40000
10557 000001 ZZ=1
10558
10559 ;TEST 2 POSITS-OVERFLOW
10560 F5200: REPEAT ^D2,<
10561 SN=SN+1
10562 XX=XX+XX
10563 ZZ=ZZ+1
10564 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10565 MOVSI AC,200000 ;SETUP MULTIPLIER
10566 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10567 MOVSI AC-2,XX&200000
10568 IMUL AC,AC-1 ;MUL 200000 000000 X ZZ
10569 JSP AC+1,.+1
10570 CAME AC,AC-2
10571 ER3 AC,SN ;C(AC) FAILED
10572 JOV .+2 ;TEST FOR SET CONDITION
10573 ER13 AC+1,SN ;FLAG DID NOT SET
10574 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10575 >
10576
10577 005201 SN=SN+1
10578 100000 XX=XX+XX
10579 000002 ZZ=ZZ+1
10580 037041 254 02 1 00 045252 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10581 037042 205 14 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10582 037043 201 13 0 00 000002 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10583 037044 205 12 0 00 000000 MOVSI AC-2,XX&200000
10584 037045 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 200000 000000 X ZZ
10585 037046 265 15 0 00 037047 JSP AC+1,.+1
10586 037047 312 14 0 00 000012 CAME AC,AC-2
10587 037050 003 14 0 00 005201 ER3 AC,SN ;C(AC) FAILED
10588 037051 255 10 0 00 037053 JOV .+2 ;TEST FOR SET CONDITION
10589 037052 013 15 0 00 005201 ER13 AC+1,SN ;FLAG DID NOT SET
10590 037053 321 16 0 00 037041 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10591
10592
10593 005202 SN=SN+1
10594 200000 XX=XX+XX
10595 000003 ZZ=ZZ+1
10596 037054 254 02 1 00 045253 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10597 037055 205 14 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10598 037056 201 13 0 00 000003 MOVEI AC-1,ZZ ;SETUP MULTIPLICAND
10599 037057 205 12 0 00 200000 MOVSI AC-2,XX&200000
10600 037060 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 200000 000000 X ZZ
10601 037061 265 15 0 00 037062 JSP AC+1,.+1
10602 037062 312 14 0 00 000012 CAME AC,AC-2
10603 037063 003 14 0 00 005202 ER3 AC,SN ;C(AC) FAILED
10604 037064 255 10 0 00 037066 JOV .+2 ;TEST FOR SET CONDITION
10605 037065 013 15 0 00 005202 ER13 AC+1,SN ;FLAG DID NOT SET
10606 037066 321 16 0 00 037054 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10607
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 27
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0223
10608 005300 SN=5300
10609 000001 XX=1
10610 000000 ZZ=0
10611
10612 ;TEST 2 NEGATS-OVERFLOW NOT
10613 F5300: REPEAT ^D2,<
10614 SN=SN+1
10615 XX=XX+XX
10616 ZZ=ZZ-1
10617 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10618 HRROI AC,-2 ;SETUP MULTIPLIER
10619 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10620 IMUL AC,AC-1 ;MULTIPLY -2 X ZZ
10621 JSP AC+1,.+1
10622 CAIE AC,XX
10623 ER3 AC,SN ;C(AC) FAILED
10624 JOV .+2 ;TEST FOR SET NOT CONDITION
10625 JRST ,.+2 ;FLAG NOT SET
10626 ER13 AC+1,SN ;FLAG IS SET
10627 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10628 >
10629
10630 005301 SN=SN+1
10631 000002 XX=XX+XX
10632 777777 777777 ZZ=ZZ-1
10633 037067 254 02 1 00 045254 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10634 037070 561 14 0 00 777776 HRROI AC,-2 ;SETUP MULTIPLIER
10635 037071 561 13 0 00 777777 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10636 037072 220 14 0 00 000013 IMUL AC,AC-1 ;MULTIPLY -2 X ZZ
10637 037073 265 15 0 00 037074 JSP AC+1,.+1
10638 037074 302 14 0 00 000002 CAIE AC,XX
10639 037075 003 14 0 00 005301 ER3 AC,SN ;C(AC) FAILED
10640 037076 255 10 0 00 037100 JOV .+2 ;TEST FOR SET NOT CONDITION
10641 037077 254 00 0 00 037101 JRST ,.+2 ;FLAG NOT SET
10642 037100 013 15 0 00 005301 ER13 AC+1,SN ;FLAG IS SET
10643 037101 321 16 0 00 037067 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10644
10645
10646 005302 SN=SN+1
10647 000004 XX=XX+XX
10648 777777 777776 ZZ=ZZ-1
10649 037102 254 02 1 00 045255 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10650 037103 561 14 0 00 777776 HRROI AC,-2 ;SETUP MULTIPLIER
10651 037104 561 13 0 00 777776 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10652 037105 220 14 0 00 000013 IMUL AC,AC-1 ;MULTIPLY -2 X ZZ
10653 037106 265 15 0 00 037107 JSP AC+1,.+1
10654 037107 302 14 0 00 000004 CAIE AC,XX
10655 037110 003 14 0 00 005302 ER3 AC,SN ;C(AC) FAILED
10656 037111 255 10 0 00 037113 JOV .+2 ;TEST FOR SET NOT CONDITION
10657 037112 254 00 0 00 037114 JRST ,.+2 ;FLAG NOT SET
10658 037113 013 15 0 00 005302 ER13 AC+1,SN ;FLAG IS SET
10659 037114 321 16 0 00 037102 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10660
10661 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 27-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0224
10662 005400 SN=5400
10663 777777 777777 ZZ=-1
10664
10665 ;TEST 2 NEGATS-OVERFLOW
10666 F5400: REPEAT ^D2,<
10667 SN=SN+1
10668 ZZ=ZZ-1
10669 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10670 MOVSI AC,400000 ;SETUP MULTIPLIER
10671 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10672 IMUL AC,AC-1 ;MUL 400000 000000 X ZZ
10673 JSP AC+1,.+1
10674 CAME AC,[1B0] ;TEST PROD
10675 ER3 AC,SN ;C(AC) FAILED
10676 JOV .+2 ;TEST FOR SET CONDITION
10677 ER13 AC+1,SN ;FLAG DID NOT SET
10678 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
10679 >
10680
10681 005401 SN=SN+1
10682 777777 777776 ZZ=ZZ-1
10683 037115 254 02 1 00 045256 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10684 037116 205 14 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10685 037117 561 13 0 00 777776 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10686 037120 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 400000 000000 X ZZ
10687 037121 265 15 0 00 037122 JSP AC+1,.+1
10688 037122 312 14 0 00 044765 CAME AC,[1B0] ;TEST PROD
10689 037123 003 14 0 00 005401 ER3 AC,SN ;C(AC) FAILED
10690 037124 255 10 0 00 037126 JOV .+2 ;TEST FOR SET CONDITION
10691 037125 013 15 0 00 005401 ER13 AC+1,SN ;FLAG DID NOT SET
10692 037126 321 16 0 00 037115 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
10693
10694
10695 005402 SN=SN+1
10696 777777 777775 ZZ=ZZ-1
10697 037127 254 02 1 00 045257 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
10698 037130 205 14 0 00 400000 MOVSI AC,400000 ;SETUP MULTIPLIER
10699 037131 561 13 0 00 777775 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10700 037132 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 400000 000000 X ZZ
10701 037133 265 15 0 00 037134 JSP AC+1,.+1
10702 037134 312 14 0 00 044765 CAME AC,[1B0] ;TEST PROD
10703 037135 003 14 0 00 005402 ER3 AC,SN ;C(AC) FAILED
10704 037136 255 10 0 00 037140 JOV .+2 ;TEST FOR SET CONDITION
10705 037137 013 15 0 00 005402 ER13 AC+1,SN ;FLAG DID NOT SET
10706 037140 321 16 0 00 037127 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
10707
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 28
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0225
10708 005500 SN=5500
10709 000001 000000 XX=1000000
10710 777777 777777 ZZ=-1
10711
10712 ;TEST UNLIKE,OVERFLOW NOT
10713 F5500: REPEAT ^D2,<
10714 SN=SN+1
10715 XX=XX/2
10716 ZZ=ZZ-1
10717 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10718 MOVEI AC,200000 ;SETUP MULTIPLIER
10719 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10720 HRROI AC-2,XX
10721 IMUL AC,AC-1 ;MUL 000000 200000 X ZZ
10722 JSP AC+1,.+1
10723 CAME AC,AC-2
10724 ER3 AC,SN ;C(AC) FAILED
10725 JOV .+2 ;TEST FOR SET NOT COND
10726 JRST ,.+2 ;FLAG NOT SET
10727 ER13 AC+1,SN ;FLAG IS SET
10728 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10729 >
10730
10731 005501 SN=SN+1
10732 400000 XX=XX/2
10733 777777 777776 ZZ=ZZ-1
10734 037141 254 02 1 00 045260 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10735 037142 201 14 0 00 200000 MOVEI AC,200000 ;SETUP MULTIPLIER
10736 037143 561 13 0 00 777776 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10737 037144 561 12 0 00 400000 HRROI AC-2,XX
10738 037145 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 000000 200000 X ZZ
10739 037146 265 15 0 00 037147 JSP AC+1,.+1
10740 037147 312 14 0 00 000012 CAME AC,AC-2
10741 037150 003 14 0 00 005501 ER3 AC,SN ;C(AC) FAILED
10742 037151 255 10 0 00 037153 JOV .+2 ;TEST FOR SET NOT COND
10743 037152 254 00 0 00 037154 JRST ,.+2 ;FLAG NOT SET
10744 037153 013 15 0 00 005501 ER13 AC+1,SN ;FLAG IS SET
10745 037154 321 16 0 00 037141 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10746
10747
10748 005502 SN=SN+1
10749 200000 XX=XX/2
10750 777777 777775 ZZ=ZZ-1
10751 037155 254 02 1 00 045261 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10752 037156 201 14 0 00 200000 MOVEI AC,200000 ;SETUP MULTIPLIER
10753 037157 561 13 0 00 777775 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10754 037160 561 12 0 00 200000 HRROI AC-2,XX
10755 037161 220 14 0 00 000013 IMUL AC,AC-1 ;MUL 000000 200000 X ZZ
10756 037162 265 15 0 00 037163 JSP AC+1,.+1
10757 037163 312 14 0 00 000012 CAME AC,AC-2
10758 037164 003 14 0 00 005502 ER3 AC,SN ;C(AC) FAILED
10759 037165 255 10 0 00 037167 JOV .+2 ;TEST FOR SET NOT COND
10760 037166 254 00 0 00 037170 JRST ,.+2 ;FLAG NOT SET
10761 037167 013 15 0 00 005502 ER13 AC+1,SN ;FLAG IS SET
10762 037170 321 16 0 00 037155 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 28-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0226
10763
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 29
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0227
10764 ;PLIER = -1
10765 ;PLICAND = 1,2
10766
10767 000011 AC=11
10768 SAVEAC (1,1)^
10769 037171 201 13 0 00 037171 MOVEI AC+2,. ;SAVE TEST PC
10770 037172 202 13 0 00 030051 MOVEM AC+2,TESTPC
10771 037173 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10772 037174 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10773
10774 005600 SN=5600
10775 000001 000000 XX=1000000
10776 000000 ZZ=0
10777
10778 F5600: REPEAT ^D2,<
10779 SN=SN+1
10780 XX=XX-1
10781 ZZ=ZZ+ZZ
10782 IFE ZZ,<ZZ=1>
10783 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10784 SETO AC, ;SETUP MULTIPLIER
10785 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10786 IMUL AC,AC-1 ;MULTIPLY -1 X ZZ
10787 JSP AC+1,.+1
10788 CAIE AC,XX
10789 ER3 AC,SN ;C(AC) FAILED
10790 JOV .+2
10791 JRST ,.+2
10792 ER13 AC+1,SN
10793 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10794 >
10795
10796 005601 SN=SN+1
10797 777777 XX=XX-1
10798 000000 ZZ=ZZ+ZZ
10799 000001 IFE ZZ,<ZZ=1>
10800 037175 254 02 1 00 045262 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10801 037176 474 11 0 00 000000 SETO AC, ;SETUP MULTIPLIER
10802 037177 561 10 0 00 000001 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10803 037200 220 11 0 00 000010 IMUL AC,AC-1 ;MULTIPLY -1 X ZZ
10804 037201 265 12 0 00 037202 JSP AC+1,.+1
10805 037202 302 11 0 00 777777 CAIE AC,XX
10806 037203 003 11 0 00 005601 ER3 AC,SN ;C(AC) FAILED
10807 037204 255 10 0 00 037206 JOV .+2
10808 037205 254 00 0 00 037207 JRST ,.+2
10809 037206 013 12 0 00 005601 ER13 AC+1,SN
10810 037207 321 13 0 00 037175 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10811
10812
10813 005602 SN=SN+1
10814 777776 XX=XX-1
10815 000002 ZZ=ZZ+ZZ
10816 IFE ZZ,<ZZ=1>
10817 037210 254 02 1 00 045263 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10818 037211 474 11 0 00 000000 SETO AC, ;SETUP MULTIPLIER
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 29-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0228
10819 037212 561 10 0 00 000002 HRROI AC-1,ZZ ;SETUP MULTIPLICAND
10820 037213 220 11 0 00 000010 IMUL AC,AC-1 ;MULTIPLY -1 X ZZ
10821 037214 265 12 0 00 037215 JSP AC+1,.+1
10822 037215 302 11 0 00 777776 CAIE AC,XX
10823 037216 003 11 0 00 005602 ER3 AC,SN ;C(AC) FAILED
10824 037217 255 10 0 00 037221 JOV .+2
10825 037220 254 00 0 00 037222 JRST ,.+2
10826 037221 013 12 0 00 005602 ER13 AC+1,SN
10827 037222 321 13 0 00 037210 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
10828
10829 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 29-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0229
10830 ;MULTIPLIER = -1
10831 ;PLICAND = 200000 000000,200000 000010
10832
10833 000013 AC=13
10834 SAVEAC (1,1)^
10835 037223 201 15 0 00 037223 MOVEI AC+2,. ;SAVE TEST PC
10836 037224 202 15 0 00 030051 MOVEM AC+2,TESTPC
10837 037225 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10838 037226 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10839
10840 005700 SN=5700
10841 600010 XX=600010
10842 177770 ZZ=177770
10843
10844 F5700: REPEAT ^D2,<
10845 SN=SN+1
10846 XX=XX-10
10847 ZZ=ZZ+10
10848 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10849 SETO AC, ;SETUP MULTIPLIER
10850 MOVSI AC-1,ZZ ;SETUP MULTIPLICAND
10851 MOVSI AC-2,XX
10852 IMUL AC,AC-1 ;MULTIPLY -1 X ZZ
10853 JSP AC+1,.+1
10854 CAME AC,AC-2
10855 ER3 AC,SN ;C(AC) FAILED
10856 JOV .+2 ;TEST FOR OVERFLOW
10857 JRST ,.+2
10858 ER13 AC+1,SN
10859 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10860 >
10861
10862 005701 SN=SN+1
10863 600000 XX=XX-10
10864 200000 ZZ=ZZ+10
10865 037227 254 02 1 00 045264 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10866 037230 474 13 0 00 000000 SETO AC, ;SETUP MULTIPLIER
10867 037231 205 12 0 00 200000 MOVSI AC-1,ZZ ;SETUP MULTIPLICAND
10868 037232 205 11 0 00 600000 MOVSI AC-2,XX
10869 037233 220 13 0 00 000012 IMUL AC,AC-1 ;MULTIPLY -1 X ZZ
10870 037234 265 14 0 00 037235 JSP AC+1,.+1
10871 037235 312 13 0 00 000011 CAME AC,AC-2
10872 037236 003 13 0 00 005701 ER3 AC,SN ;C(AC) FAILED
10873 037237 255 10 0 00 037241 JOV .+2 ;TEST FOR OVERFLOW
10874 037240 254 00 0 00 037242 JRST ,.+2
10875 037241 013 14 0 00 005701 ER13 AC+1,SN
10876 037242 321 15 0 00 037227 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10877
10878
10879 005702 SN=SN+1
10880 577770 XX=XX-10
10881 200010 ZZ=ZZ+10
10882 037243 254 02 1 00 045265 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10883 037244 474 13 0 00 000000 SETO AC, ;SETUP MULTIPLIER
10884 037245 205 12 0 00 200010 MOVSI AC-1,ZZ ;SETUP MULTIPLICAND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 29-3
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0230
10885 037246 205 11 0 00 577770 MOVSI AC-2,XX
10886 037247 220 13 0 00 000012 IMUL AC,AC-1 ;MULTIPLY -1 X ZZ
10887 037250 265 14 0 00 037251 JSP AC+1,.+1
10888 037251 312 13 0 00 000011 CAME AC,AC-2
10889 037252 003 13 0 00 005702 ER3 AC,SN ;C(AC) FAILED
10890 037253 255 10 0 00 037255 JOV .+2 ;TEST FOR OVERFLOW
10891 037254 254 00 0 00 037256 JRST ,.+2
10892 037255 013 14 0 00 005702 ER13 AC+1,SN
10893 037256 321 15 0 00 037243 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10894
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 30
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0231
10895 ;MULTIPLIER = 0,1
10896 ;MULTIPLICAND = 400000 000000
10897
10898 000012 AC=12
10899 SAVEAC (1,1)^
10900 037257 201 14 0 00 037257 MOVEI AC+2,. ;SAVE TEST PC
10901 037260 202 14 0 00 030051 MOVEM AC+2,TESTPC
10902 037261 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10903 037262 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10904
10905 006000 SN=6000
10906 100000 XX=100000
10907 777777 777777 ZZ=-1
10908
10909 F6000: REPEAT ^D2,<
10910 SN=SN+1
10911 XX=XX+XX
10912 ZZ=ZZ+1
10913 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10914 MOVEI AC,ZZ ;SETUP MULTIPLIER
10915 MOVSI AC-1,400000 ;SETUP MULTIPLICAND
10916 MOVSI AC-2,XX&400000
10917 IMUL AC,AC-1 ;MUL ZZ X 400000 000000
10918 JSP AC+1,.+1
10919 CAME AC,AC-2
10920 ER3 AC,SN ;C(AC) FAILED
10921 JOV .+2 ;TEST FOR OVERFLOW
10922 JRST ,.+2 ;BOTH CLEARS ASSERTED
10923 ER13 AC+1,SN ;EITHER CLEAR FAILED
10924 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10925 >
10926
10927 006001 SN=SN+1
10928 200000 XX=XX+XX
10929 000000 ZZ=ZZ+1
10930 037263 254 02 1 00 045266 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10931 037264 201 12 0 00 000000 MOVEI AC,ZZ ;SETUP MULTIPLIER
10932 037265 205 11 0 00 400000 MOVSI AC-1,400000 ;SETUP MULTIPLICAND
10933 037266 205 10 0 00 000000 MOVSI AC-2,XX&400000
10934 037267 220 12 0 00 000011 IMUL AC,AC-1 ;MUL ZZ X 400000 000000
10935 037270 265 13 0 00 037271 JSP AC+1,.+1
10936 037271 312 12 0 00 000010 CAME AC,AC-2
10937 037272 003 12 0 00 006001 ER3 AC,SN ;C(AC) FAILED
10938 037273 255 10 0 00 037275 JOV .+2 ;TEST FOR OVERFLOW
10939 037274 254 00 0 00 037276 JRST ,.+2 ;BOTH CLEARS ASSERTED
10940 037275 013 13 0 00 006001 ER13 AC+1,SN ;EITHER CLEAR FAILED
10941 037276 321 14 0 00 037263 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10942
10943
10944 006002 SN=SN+1
10945 400000 XX=XX+XX
10946 000001 ZZ=ZZ+1
10947 037277 254 02 1 00 045267 JRSTF @[.+1] ;CLR ALL FLAGS,EXEC NEXT INST
10948 037300 201 12 0 00 000001 MOVEI AC,ZZ ;SETUP MULTIPLIER
10949 037301 205 11 0 00 400000 MOVSI AC-1,400000 ;SETUP MULTIPLICAND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 30-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0232
10950 037302 205 10 0 00 400000 MOVSI AC-2,XX&400000
10951 037303 220 12 0 00 000011 IMUL AC,AC-1 ;MUL ZZ X 400000 000000
10952 037304 265 13 0 00 037305 JSP AC+1,.+1
10953 037305 312 12 0 00 000010 CAME AC,AC-2
10954 037306 003 12 0 00 006002 ER3 AC,SN ;C(AC) FAILED
10955 037307 255 10 0 00 037311 JOV .+2 ;TEST FOR OVERFLOW
10956 037310 254 00 0 00 037312 JRST ,.+2 ;BOTH CLEARS ASSERTED
10957 037311 013 13 0 00 006002 ER13 AC+1,SN ;EITHER CLEAR FAILED
10958 037312 321 14 0 00 037277 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
10959
10960 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 30-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0233
10961 037313 254 02 1 00 045270 F6010: JRSTF @[.+1] ;CLEAR ALL FLAGS
10962 037314 205 12 0 00 200000 MOVSI AC,200000 ;SETUP MULTIPLIER
10963 037315 201 11 0 00 000002 MOVEI AC-1,2 ;SETUP MULTIPLICAND
10964 037316 223 12 0 00 000011 IMULB AC,AC-1
10965 037317 265 13 0 00 037320 JSP AC+1,.+1 ;SAVE FLAGS
10966 037320 302 12 0 00 000000 CAIE AC,0
10967 037321 003 12 0 00 006011 ER3 AC,6011 ;C(AC) FAILED
10968 037322 302 11 0 00 000000 CAIE AC-1,0
10969 037323 005 11 0 00 006011 ER5 AC-1,6011 ;C(E) FAILED
10970 037324 255 10 0 00 037326 JOV .+2
10971 037325 013 13 0 00 006011 ER13 AC+1,6011 ;AROV DID NOT SET
10972 037326 321 14 0 00 037313 JUMPL AC+2,F6010 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 31
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0234
10973 ;TEST IMUL-IMMEDIATE MODE
10974 ;TEST ABILITY TO MULTIPLY WITH THE
10975 ;EFFECTIVE ADDRESS AS THE MULTIPLICAND
10976 ;THE PROD WILL EQUAL THE EFFECTIVE
10977 ;ADDRESS
10978 ;A FAILURE INDICATES MULTIPLYING
10979 ;BY C(E) VICE E
10980
10981 000010 AC=10
10982 SAVEAC (1,1)^
10983 037327 201 12 0 00 037327 MOVEI AC+2,. ;SAVE TEST PC
10984 037330 202 12 0 00 030051 MOVEM AC+2,TESTPC
10985 037331 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10986 037332 202 12 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10987 037333 254 02 1 00 045271 JRSTF @[.+1] ;CLEAR ALL FLAGS
10988
10989 006100 SN=6100
10990 000001 ZZ=1
10991
10992 ;TEST IMMEDIATE MODE
10993 F6100: REPEAT ^D2,<
10994 SN=SN+1
10995 ZZ=ZZ+ZZ
10996 MOVEI AC-2,AC-1 ;SETUP FOR COMPARISON
10997 MOVEI AC,1 ;SETUP MULTIPLIER
10998 MOVEI AC-1,ZZ ;SETUP AC-1
10999 IMULI AC,AC-1 ;EFFECTIVE ADDRESS=7
11000 CAME AC,AC-2 ;TEST PROD = ZZ
11001 ER3 AC,SN ;MULTIPLIED BY C(E) VICE E
11002 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
11003 >
11004
11005 006101 SN=SN+1
11006 000002 ZZ=ZZ+ZZ
11007 037334 201 06 0 00 000007 MOVEI AC-2,AC-1 ;SETUP FOR COMPARISON
11008 037335 201 10 0 00 000001 MOVEI AC,1 ;SETUP MULTIPLIER
11009 037336 201 07 0 00 000002 MOVEI AC-1,ZZ ;SETUP AC-1
11010 037337 221 10 0 00 000007 IMULI AC,AC-1 ;EFFECTIVE ADDRESS=7
11011 037340 312 10 0 00 000006 CAME AC,AC-2 ;TEST PROD = ZZ
11012 037341 003 10 0 00 006101 ER3 AC,SN ;MULTIPLIED BY C(E) VICE E
11013 037342 321 12 0 00 037334 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
11014
11015
11016 006102 SN=SN+1
11017 000004 ZZ=ZZ+ZZ
11018 037343 201 06 0 00 000007 MOVEI AC-2,AC-1 ;SETUP FOR COMPARISON
11019 037344 201 10 0 00 000001 MOVEI AC,1 ;SETUP MULTIPLIER
11020 037345 201 07 0 00 000004 MOVEI AC-1,ZZ ;SETUP AC-1
11021 037346 221 10 0 00 000007 IMULI AC,AC-1 ;EFFECTIVE ADDRESS=7
11022 037347 312 10 0 00 000006 CAME AC,AC-2 ;TEST PROD = ZZ
11023 037350 003 10 0 00 006102 ER3 AC,SN ;MULTIPLIED BY C(E) VICE E
11024 037351 321 12 0 00 037343 JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
11025
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 32
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0235
11026 ;TEST IMUL-MEMORY MODE
11027
11028 000007 AC=7
11029 SAVEAC (1,1)^
11030 037352 201 11 0 00 037352 MOVEI AC+2,. ;SAVE TEST PC
11031 037353 202 11 0 00 030051 MOVEM AC+2,TESTPC
11032 037354 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11033 037355 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11034
11035 006300 SN=6300
11036 000001 ZZ=1
11037
11038 F6300: REPEAT ^D2,<
11039 SN=SN+1
11040 ZZ=ZZ+ZZ
11041 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
11042 MOVEI AC,ZZ ;SETUP MULTIPLIER
11043 MOVEI AC-1,7 ;SETUP MULTIPLICAND
11044 IMULM AC,AC-1 ;MULTIPLY ZZ X 7
11045 CAME AC,AC-2 ;TEST FOR PRODUCT IN AC
11046 ER3 AC,SN
11047 CAIE AC-1,ZZ*7 ;TEST FOR PROD IN E
11048 ER5 AC-1,SN
11049 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11050 >
11051
11052 006301 SN=SN+1
11053 000002 ZZ=ZZ+ZZ
11054 037356 201 05 0 00 000002 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
11055 037357 201 07 0 00 000002 MOVEI AC,ZZ ;SETUP MULTIPLIER
11056 037360 201 06 0 00 000007 MOVEI AC-1,7 ;SETUP MULTIPLICAND
11057 037361 222 07 0 00 000006 IMULM AC,AC-1 ;MULTIPLY ZZ X 7
11058 037362 312 07 0 00 000005 CAME AC,AC-2 ;TEST FOR PRODUCT IN AC
11059 037363 003 07 0 00 006301 ER3 AC,SN
11060 037364 302 06 0 00 000016 CAIE AC-1,ZZ*7 ;TEST FOR PROD IN E
11061 037365 005 06 0 00 006301 ER5 AC-1,SN
11062 037366 321 11 0 00 037356 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11063
11064
11065 006302 SN=SN+1
11066 000004 ZZ=ZZ+ZZ
11067 037367 201 05 0 00 000004 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
11068 037370 201 07 0 00 000004 MOVEI AC,ZZ ;SETUP MULTIPLIER
11069 037371 201 06 0 00 000007 MOVEI AC-1,7 ;SETUP MULTIPLICAND
11070 037372 222 07 0 00 000006 IMULM AC,AC-1 ;MULTIPLY ZZ X 7
11071 037373 312 07 0 00 000005 CAME AC,AC-2 ;TEST FOR PRODUCT IN AC
11072 037374 003 07 0 00 006302 ER3 AC,SN
11073 037375 302 06 0 00 000034 CAIE AC-1,ZZ*7 ;TEST FOR PROD IN E
11074 037376 005 06 0 00 006302 ER5 AC-1,SN
11075 037377 321 11 0 00 037367 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11076
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 33
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER MPY TEST SEQ 0236
11077 ;TEST IMUL-BOTH MODE
11078 ;TEST ABILITY TO STORE PRODUCT IN AC,E
11079 ;AC, AC-1 ARE COMPARED FOLLOWING
11080 ;MULTIPLY
11081 ;AN ERROR WILL OCCUR IF AC DIFFERS FROM
11082 ;AC-1
11083 000006 AC=6
11084 SAVEAC (1,1)^
11085 037400 201 10 0 00 037400 MOVEI AC+2,. ;SAVE TEST PC
11086 037401 202 10 0 00 030051 MOVEM AC+2,TESTPC
11087 037402 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11088 037403 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11089 006500 SN=6500
11090 000004 ZZ=4
11091 ;TEST STORING AC,E
11092 F6500: REPEAT ^D2,<
11093 SN=SN+1
11094 ZZ=ZZ+ZZ
11095 MOVEI AC,ZZ ;SETUP MULTIPLIER
11096 MOVEI AC-1,2 ;SETUP MULTIPLICAND
11097 IMULB AC,AC-1 ;MULTIPLY ZZ X 2
11098 CAME AC,AC-1 ;COMPARE AC,AC-1
11099 ER3 AC,SN
11100 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
11101 >
11102
11103 006501 SN=SN+1
11104 000010 ZZ=ZZ+ZZ
11105 037404 201 06 0 00 000010 MOVEI AC,ZZ ;SETUP MULTIPLIER
11106 037405 201 05 0 00 000002 MOVEI AC-1,2 ;SETUP MULTIPLICAND
11107 037406 223 06 0 00 000005 IMULB AC,AC-1 ;MULTIPLY ZZ X 2
11108 037407 312 06 0 00 000005 CAME AC,AC-1 ;COMPARE AC,AC-1
11109 037410 003 06 0 00 006501 ER3 AC,SN
11110 037411 321 10 0 00 037404 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
11111
11112
11113 006502 SN=SN+1
11114 000020 ZZ=ZZ+ZZ
11115 037412 201 06 0 00 000020 MOVEI AC,ZZ ;SETUP MULTIPLIER
11116 037413 201 05 0 00 000002 MOVEI AC-1,2 ;SETUP MULTIPLICAND
11117 037414 223 06 0 00 000005 IMULB AC,AC-1 ;MULTIPLY ZZ X 2
11118 037415 312 06 0 00 000005 CAME AC,AC-1 ;COMPARE AC,AC-1
11119 037416 003 06 0 00 006502 ER3 AC,SN
11120 037417 321 10 0 00 037412 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
11121
11122
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 34
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0237
11123 SUBTTL DIAGNOSTIC SECTION - INTEGER DIVIDE TEST
11124
11125 ;TEST FETCH,STORE AND DECODE
11126 ;TEST ABILITY TO FETCH CONTENTS OF E
11127 ;TEST ABILITY TO STORE AC,AC+1
11128 ;DVND = 000000 777777,000000 777776
11129 ;DVSR = 000000 777777,000000 777776
11130 ;DVND = 000000 3400000
11131 ;DVSR = 2
11132
11133 000007 AC=7
11134 SAVEAC (1,1)^
11135 037420 201 11 0 00 037420 MOVEI AC+2,. ;SAVE TEST PC
11136 037421 202 11 0 00 030051 MOVEM AC+2,TESTPC
11137 037422 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11138 037423 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11139
11140 006600 SN=6600
11141 000000 ZZ=0
11142
11143 ;TEST SAC,SAC2 FAILING
11144 F6600: REPEAT ^D2,<
11145 SN=SN+1
11146 ZZ=<ZZ+ZZ>&777777
11147 IFE ZZ,<ZZ=777777>
11148 JRSTF @[.+1] ;CLR ALL FLGS,EXEC NEXT INST
11149 MOVEI AC,ZZ ;SETUP DVND
11150 MOVEI AC+1,ZZ ;SETUP DVSR
11151 IDIV AC,AC+1 ;DIVIDE ZZ BY ZZ
11152 JSP AC-3,.+1
11153 JOV .+2 ;TEST FOR OVFL
11154 JRST .+2
11155 ER13 AC-3,SN
11156 CAIE AC,1 ;TEST AC FOR QUOTIENT = 1
11157 ER3 AC,SN
11158 CAIE AC+1,0 ;TEST AC+1 FOR REMAINDER = 0
11159 ER4 AC+1,SN
11160 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH
11161 JRSTF @[.+1] ;CLEAR ALL FLAGS
11162 >
11163
11164 006601 SN=SN+1
11165 000000 ZZ=<ZZ+ZZ>&777777
11166 777777 IFE ZZ,<ZZ=777777>
11167 037424 254 02 1 00 045272 JRSTF @[.+1] ;CLR ALL FLGS,EXEC NEXT INST
11168 037425 201 07 0 00 777777 MOVEI AC,ZZ ;SETUP DVND
11169 037426 201 10 0 00 777777 MOVEI AC+1,ZZ ;SETUP DVSR
11170 037427 230 07 0 00 000010 IDIV AC,AC+1 ;DIVIDE ZZ BY ZZ
11171 037430 265 04 0 00 037431 JSP AC-3,.+1
11172 037431 255 10 0 00 037433 JOV .+2 ;TEST FOR OVFL
11173 037432 254 00 0 00 037434 JRST .+2
11174 037433 013 04 0 00 006601 ER13 AC-3,SN
11175 037434 302 07 0 00 000001 CAIE AC,1 ;TEST AC FOR QUOTIENT = 1
11176 037435 003 07 0 00 006601 ER3 AC,SN
11177 037436 302 10 0 00 000000 CAIE AC+1,0 ;TEST AC+1 FOR REMAINDER = 0
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 34-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0238
11178 037437 004 10 0 00 006601 ER4 AC+1,SN
11179 037440 321 11 0 00 037423 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH
11180 037441 254 02 1 00 045273 JRSTF @[.+1] ;CLEAR ALL FLAGS
11181
11182
11183 006602 SN=SN+1
11184 777776 ZZ=<ZZ+ZZ>&777777
11185 IFE ZZ,<ZZ=777777>
11186 037442 254 02 1 00 045274 JRSTF @[.+1] ;CLR ALL FLGS,EXEC NEXT INST
11187 037443 201 07 0 00 777776 MOVEI AC,ZZ ;SETUP DVND
11188 037444 201 10 0 00 777776 MOVEI AC+1,ZZ ;SETUP DVSR
11189 037445 230 07 0 00 000010 IDIV AC,AC+1 ;DIVIDE ZZ BY ZZ
11190 037446 265 04 0 00 037447 JSP AC-3,.+1
11191 037447 255 10 0 00 037451 JOV .+2 ;TEST FOR OVFL
11192 037450 254 00 0 00 037452 JRST .+2
11193 037451 013 04 0 00 006602 ER13 AC-3,SN
11194 037452 302 07 0 00 000001 CAIE AC,1 ;TEST AC FOR QUOTIENT = 1
11195 037453 003 07 0 00 006602 ER3 AC,SN
11196 037454 302 10 0 00 000000 CAIE AC+1,0 ;TEST AC+1 FOR REMAINDER = 0
11197 037455 004 10 0 00 006602 ER4 AC+1,SN
11198 037456 321 11 0 00 037441 JUMPL AC+2,.-^D13 ;LOOP ON ERROR SWITCH
11199 037457 254 02 1 00 045275 JRSTF @[.+1] ;CLEAR ALL FLAGS
11200
11201 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 34-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0239
11202 ;TEST FCE FAILING
11203 037460 201 05 0 00 160000 F6700: MOVEI AC-2,160000 ;SETUP FOR COMPARISON
11204 037461 201 07 0 00 340000 MOVEI AC,340000 ;SETUP DVND
11205 037462 201 10 0 00 000002 MOVEI AC+1,2 ;SETUP DVSR
11206 037463 230 07 0 00 000010 IDIV AC,AC+1 ;DIV 000000 340000 BY 2
11207 037464 312 07 0 00 000005 CAME AC,AC-2 ;TEST QUOT = 000000 020000
11208 037465 003 07 0 00 006701 ER3 AC,6701
11209 037466 321 11 0 00 037460 JUMPL AC+2,F6700 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 35
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0240
11210 ;DVND = 4,10
11211 ;DVSR = 2
11212 ;FAILURE RESULTS IN A QUOT = 0,
11213 ;A REMD = DVND (SIGN IS NEGATIVE)
11214
11215 000007 AC=7
11216 SAVEAC (1,1)^
11217 037467 201 11 0 00 037467 MOVEI AC+2,. ;SAVE TEST PC
11218 037470 202 11 0 00 030051 MOVEM AC+2,TESTPC
11219 037471 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11220 037472 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11221
11222 007000 SN=7000
11223 000002 ZZ=2
11224 F7000: REPEAT ^D2,<
11225 SN=SN+1
11226 ZZ=ZZ+ZZ
11227 MOVEI AC,ZZ ;SETUP DVND
11228 MOVEI AC-1,2 ;SETUP DVSR
11229 IDIV AC,AC-1 ;DIVIDE ZZ BY 2
11230 SKIPE AC+1 ;TEST REMD
11231 ER4 AC+1,SN
11232 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11233 >
11234
11235 007001 SN=SN+1
11236 000004 ZZ=ZZ+ZZ
11237 037473 201 07 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11238 037474 201 06 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
11239 037475 230 07 0 00 000006 IDIV AC,AC-1 ;DIVIDE ZZ BY 2
11240 037476 332 00 0 00 000010 SKIPE AC+1 ;TEST REMD
11241 037477 004 10 0 00 007001 ER4 AC+1,SN
11242 037500 321 11 0 00 037471 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11243
11244
11245 007002 SN=SN+1
11246 000010 ZZ=ZZ+ZZ
11247 037501 201 07 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
11248 037502 201 06 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
11249 037503 230 07 0 00 000006 IDIV AC,AC-1 ;DIVIDE ZZ BY 2
11250 037504 332 00 0 00 000010 SKIPE AC+1 ;TEST REMD
11251 037505 004 10 0 00 007002 ER4 AC+1,SN
11252 037506 321 11 0 00 037477 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11253
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 36
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0241
11254 ;TEST AROV SET
11255 ;DVND = 4,10
11256 ;DVSR = 0 (DIVIDE CHECK CONDITION)
11257
11258 000014 AC=14
11259 SAVEAC (1,1)^
11260 037507 201 16 0 00 037507 MOVEI AC+2,. ;SAVE TEST PC
11261 037510 202 16 0 00 030051 MOVEM AC+2,TESTPC
11262 037511 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11263 037512 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11264
11265 007100 SN=7100
11266 000002 ZZ=2
11267
11268 ;TEST OVERFLOW COND
11269 F7100: REPEAT ^D2,<
11270 SN=SN+1
11271 ZZ=ZZ+ZZ
11272 JRSTF @[.+1] ;CLR ALL FLGS,EXEC NEXT INST
11273 MOVEI AC,ZZ ;SETUP DVND
11274 MOVEI AC+1,ZZ
11275 SETZ AC-1, ;SETUP DVSR
11276 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 0
11277 JSP AC-3,.+1
11278 CAIE AC,ZZ
11279 ER3 AC,SN ;C(AC) WAS CLOBBERED
11280 CAIE AC+1,ZZ
11281 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
11282 JOV .+2 ;TEST FOR OVERFLOW
11283 ER13 AC-3,.+1 ;AROV FAILED TO SET
11284 TLNN AC-3,DCK
11285 ER13 AC-3,SN ;DCK NOT SET
11286 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
11287 >
11288
11289 007101 SN=SN+1
11290 000004 ZZ=ZZ+ZZ
11291 037513 254 02 1 00 045276 JRSTF @[.+1] ;CLR ALL FLGS,EXEC NEXT INST
11292 037514 201 14 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11293 037515 201 15 0 00 000004 MOVEI AC+1,ZZ
11294 037516 400 13 0 00 000000 SETZ AC-1, ;SETUP DVSR
11295 037517 230 14 0 00 000013 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 0
11296 037520 265 11 0 00 037521 JSP AC-3,.+1
11297 037521 302 14 0 00 000004 CAIE AC,ZZ
11298 037522 003 14 0 00 007101 ER3 AC,SN ;C(AC) WAS CLOBBERED
11299 037523 302 15 0 00 000004 CAIE AC+1,ZZ
11300 037524 004 15 0 00 007101 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
11301 037525 255 10 0 00 037527 JOV .+2 ;TEST FOR OVERFLOW
11302 037526 013 11 0 00 037527 ER13 AC-3,.+1 ;AROV FAILED TO SET
11303 037527 607 11 0 00 000040 TLNN AC-3,DCK
11304 037530 013 11 0 00 007101 ER13 AC-3,SN ;DCK NOT SET
11305 037531 321 16 0 00 037513 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
11306
11307
11308 007102 SN=SN+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 36-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0242
11309 000010 ZZ=ZZ+ZZ
11310 037532 254 02 1 00 045277 JRSTF @[.+1] ;CLR ALL FLGS,EXEC NEXT INST
11311 037533 201 14 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
11312 037534 201 15 0 00 000010 MOVEI AC+1,ZZ
11313 037535 400 13 0 00 000000 SETZ AC-1, ;SETUP DVSR
11314 037536 230 14 0 00 000013 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 0
11315 037537 265 11 0 00 037540 JSP AC-3,.+1
11316 037540 302 14 0 00 000010 CAIE AC,ZZ
11317 037541 003 14 0 00 007102 ER3 AC,SN ;C(AC) WAS CLOBBERED
11318 037542 302 15 0 00 000010 CAIE AC+1,ZZ
11319 037543 004 15 0 00 007102 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
11320 037544 255 10 0 00 037546 JOV .+2 ;TEST FOR OVERFLOW
11321 037545 013 11 0 00 037546 ER13 AC-3,.+1 ;AROV FAILED TO SET
11322 037546 607 11 0 00 000040 TLNN AC-3,DCK
11323 037547 013 11 0 00 007102 ER13 AC-3,SN ;DCK NOT SET
11324 037550 321 16 0 00 037532 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
11325
11326 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 36-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0243
11327 ;DVND = 4,10
11328 ;DVSR = 4,10
11329
11330 000011 AC=11
11331 SAVEAC (1,1)^
11332 037551 201 13 0 00 037551 MOVEI AC+2,. ;SAVE TEST PC
11333 037552 202 13 0 00 030051 MOVEM AC+2,TESTPC
11334 037553 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11335 037554 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11336
11337 007400 SN=7400
11338 000002 ZZ=2
11339
11340 F7400: REPEAT ^D2,<
11341 SN=SN+1
11342 ZZ=ZZ+ZZ
11343 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
11344 MOVEI AC,ZZ ;SETUP DVND
11345 MOVEI AC-1,ZZ ;SETUP DVSR
11346 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
11347 JSP AC-2,.+1
11348 CAIE AC,1
11349 ER3 AC,SN ;C(AC) FAILED
11350 CAIE AC+1,0
11351 ER4 AC+1,SN ;C(AC+1) FAILED
11352 JOV .+2 ;TEST FOR OVERFLOW
11353 JRST ,.+2
11354 ER13 AC-2,SN
11355 JUMPL AC+2,.-^D12
11356 >
11357
11358 007401 SN=SN+1
11359 000004 ZZ=ZZ+ZZ
11360 037555 254 02 1 00 045300 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
11361 037556 201 11 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11362 037557 201 10 0 00 000004 MOVEI AC-1,ZZ ;SETUP DVSR
11363 037560 230 11 0 00 000010 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
11364 037561 265 07 0 00 037562 JSP AC-2,.+1
11365 037562 302 11 0 00 000001 CAIE AC,1
11366 037563 003 11 0 00 007401 ER3 AC,SN ;C(AC) FAILED
11367 037564 302 12 0 00 000000 CAIE AC+1,0
11368 037565 004 12 0 00 007401 ER4 AC+1,SN ;C(AC+1) FAILED
11369 037566 255 10 0 00 037570 JOV .+2 ;TEST FOR OVERFLOW
11370 037567 254 00 0 00 037571 JRST ,.+2
11371 037570 013 07 0 00 007401 ER13 AC-2,SN
11372 037571 321 13 0 00 037555 JUMPL AC+2,.-^D12
11373
11374
11375 007402 SN=SN+1
11376 000010 ZZ=ZZ+ZZ
11377 037572 254 02 1 00 045301 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
11378 037573 201 11 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
11379 037574 201 10 0 00 000010 MOVEI AC-1,ZZ ;SETUP DVSR
11380 037575 230 11 0 00 000010 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
11381 037576 265 07 0 00 037577 JSP AC-2,.+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 36-3
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0244
11382 037577 302 11 0 00 000001 CAIE AC,1
11383 037600 003 11 0 00 007402 ER3 AC,SN ;C(AC) FAILED
11384 037601 302 12 0 00 000000 CAIE AC+1,0
11385 037602 004 12 0 00 007402 ER4 AC+1,SN ;C(AC+1) FAILED
11386 037603 255 10 0 00 037605 JOV .+2 ;TEST FOR OVERFLOW
11387 037604 254 00 0 00 037606 JRST ,.+2
11388 037605 013 07 0 00 007402 ER13 AC-2,SN
11389 037606 321 13 0 00 037572 JUMPL AC+2,.-^D12
11390
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 37
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0245
11391 ;DVND = 2,4
11392 ;DVSR = 400000 000000
11393
11394 000007 AC=7
11395 SAVEAC (1,1)^
11396 037607 201 11 0 00 037607 MOVEI AC+2,. ;SAVE TEST PC
11397 037610 202 11 0 00 030051 MOVEM AC+2,TESTPC
11398 037611 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11399 037612 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11400
11401 007500 SN=7500
11402 000001 ZZ=1
11403
11404 F7500: REPEAT ^D2,<
11405 SN=SN+1
11406 ZZ=ZZ+ZZ
11407 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
11408 MOVEI AC,ZZ ;SETUP DVND
11409 MOVSI AC-1,400000 ;SETUP DVSR
11410 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (-N)
11411 JSP AC-2,.+1
11412 CAIE AC,0
11413 ER3 AC,SN ;C(AC) WAS CLOBBERED
11414 CAIE AC+1,ZZ
11415 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
11416 JOV .+2 ;TEST FOR OVERFLOW
11417 JRST ,.+2
11418 ER13 AC-2,SN
11419 JUMPL AC+2,.-^D12
11420 >
11421
11422 007501 SN=SN+1
11423 000002 ZZ=ZZ+ZZ
11424 037613 254 02 1 00 045302 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
11425 037614 201 07 0 00 000002 MOVEI AC,ZZ ;SETUP DVND
11426 037615 205 06 0 00 400000 MOVSI AC-1,400000 ;SETUP DVSR
11427 037616 230 07 0 00 000006 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (-N)
11428 037617 265 05 0 00 037620 JSP AC-2,.+1
11429 037620 302 07 0 00 000000 CAIE AC,0
11430 037621 003 07 0 00 007501 ER3 AC,SN ;C(AC) WAS CLOBBERED
11431 037622 302 10 0 00 000002 CAIE AC+1,ZZ
11432 037623 004 10 0 00 007501 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
11433 037624 255 10 0 00 037626 JOV .+2 ;TEST FOR OVERFLOW
11434 037625 254 00 0 00 037627 JRST ,.+2
11435 037626 013 05 0 00 007501 ER13 AC-2,SN
11436 037627 321 11 0 00 037613 JUMPL AC+2,.-^D12
11437
11438
11439 007502 SN=SN+1
11440 000004 ZZ=ZZ+ZZ
11441 037630 254 02 1 00 045303 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
11442 037631 201 07 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11443 037632 205 06 0 00 400000 MOVSI AC-1,400000 ;SETUP DVSR
11444 037633 230 07 0 00 000006 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (-N)
11445 037634 265 05 0 00 037635 JSP AC-2,.+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 37-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0246
11446 037635 302 07 0 00 000000 CAIE AC,0
11447 037636 003 07 0 00 007502 ER3 AC,SN ;C(AC) WAS CLOBBERED
11448 037637 302 10 0 00 000004 CAIE AC+1,ZZ
11449 037640 004 10 0 00 007502 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
11450 037641 255 10 0 00 037643 JOV .+2 ;TEST FOR OVERFLOW
11451 037642 254 00 0 00 037644 JRST ,.+2
11452 037643 013 05 0 00 007502 ER13 AC-2,SN
11453 037644 321 11 0 00 037630 JUMPL AC+2,.-^D12
11454
11455 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 37-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0247
11456 ;DVND = 7,13
11457 ;DVSR = 2
11458
11459 000006 AC=6
11460 SAVEAC (1,1)^
11461 037645 201 10 0 00 037645 MOVEI AC+2,. ;SAVE TEST PC
11462 037646 202 10 0 00 030051 MOVEM AC+2,TESTPC
11463 037647 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11464 037650 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11465 037651 254 02 1 00 045304 JRSTF @[.+1] ;CLEAR ALL FLAGS
11466
11467 007600 SN=7600
11468 000003 ZZ=3
11469
11470 F7600: REPEAT ^D2,<
11471 SN=SN+1
11472 ZZ=ZZ+4
11473 MOVEI AC,ZZ ;SETUP DVND
11474 MOVEI AC-1,2 ;SETUP DVSR
11475 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 2
11476 CAIE AC,ZZ/2 ;TEST QUOT
11477 ER3 AC,SN
11478 CAIE AC+1,1 ;TEST REMD
11479 ER4 AC+1,SN
11480 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11481 >
11482
11483 007601 SN=SN+1
11484 000007 ZZ=ZZ+4
11485 037652 201 06 0 00 000007 MOVEI AC,ZZ ;SETUP DVND
11486 037653 201 05 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
11487 037654 230 06 0 00 000005 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 2
11488 037655 302 06 0 00 000003 CAIE AC,ZZ/2 ;TEST QUOT
11489 037656 003 06 0 00 007601 ER3 AC,SN
11490 037657 302 07 0 00 000001 CAIE AC+1,1 ;TEST REMD
11491 037660 004 07 0 00 007601 ER4 AC+1,SN
11492 037661 321 10 0 00 037652 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11493
11494
11495 007602 SN=SN+1
11496 000013 ZZ=ZZ+4
11497 037662 201 06 0 00 000013 MOVEI AC,ZZ ;SETUP DVND
11498 037663 201 05 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
11499 037664 230 06 0 00 000005 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 2
11500 037665 302 06 0 00 000005 CAIE AC,ZZ/2 ;TEST QUOT
11501 037666 003 06 0 00 007602 ER3 AC,SN
11502 037667 302 07 0 00 000001 CAIE AC+1,1 ;TEST REMD
11503 037670 004 07 0 00 007602 ER4 AC+1,SN
11504 037671 321 10 0 00 037662 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11505
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 38
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0248
11506 ;DVND = 2,4
11507 ;DVSR = 2,4
11508
11509 000005 AC=5
11510 SAVEAC (1,1)^
11511 037672 201 07 0 00 037672 MOVEI AC+2,. ;SAVE TEST PC
11512 037673 202 07 0 00 030051 MOVEM AC+2,TESTPC
11513 037674 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11514 037675 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11515
11516 007700 SN=7700
11517 000000 XX=0
11518 000001 ZZ=1
11519
11520 F7700: REPEAT ^D2,<
11521 SN=SN+1
11522 XX=XX+XX
11523 ZZ=ZZ+ZZ
11524 IFE XX,<XX=1>
11525 SETOM AC+1 ;INITIALIZE REMAINDER
11526 MOVEI AC,ZZ ;SETUP DVND
11527 MOVEI AC-1,ZZ ;SETUP DVSR
11528 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (ZZ)
11529 CAIE AC,1 ;TEST QUOT
11530 ER3 AC,SN
11531 SKIPE AC+1 ;TEST REMD
11532 ER4 AC+1,SN
11533 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11534 >
11535
11536 007701 SN=SN+1
11537 000000 XX=XX+XX
11538 000002 ZZ=ZZ+ZZ
11539 000001 IFE XX,<XX=1>
11540 037676 476 00 0 00 000006 SETOM AC+1 ;INITIALIZE REMAINDER
11541 037677 201 05 0 00 000002 MOVEI AC,ZZ ;SETUP DVND
11542 037700 201 04 0 00 000002 MOVEI AC-1,ZZ ;SETUP DVSR
11543 037701 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (ZZ)
11544 037702 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT
11545 037703 003 05 0 00 007701 ER3 AC,SN
11546 037704 332 00 0 00 000006 SKIPE AC+1 ;TEST REMD
11547 037705 004 06 0 00 007701 ER4 AC+1,SN
11548 037706 321 07 0 00 037676 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11549
11550
11551 007702 SN=SN+1
11552 000002 XX=XX+XX
11553 000004 ZZ=ZZ+ZZ
11554 IFE XX,<XX=1>
11555 037707 476 00 0 00 000006 SETOM AC+1 ;INITIALIZE REMAINDER
11556 037710 201 05 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11557 037711 201 04 0 00 000004 MOVEI AC-1,ZZ ;SETUP DVSR
11558 037712 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (ZZ)
11559 037713 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT
11560 037714 003 05 0 00 007702 ER3 AC,SN
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 38-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0249
11561 037715 332 00 0 00 000006 SKIPE AC+1 ;TEST REMD
11562 037716 004 06 0 00 007702 ER4 AC+1,SN
11563 037717 321 07 0 00 037707 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11564
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 39
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0250
11565 ;DVND = 177777 777777,0777777 777777
11566 ;DVSR = 1
11567
11568 000004 AC=4
11569 SAVEAC (1,1)^
11570 037720 201 06 0 00 037720 MOVEI AC+2,. ;SAVE TEST PC
11571 037721 202 06 0 00 030051 MOVEM AC+2,TESTPC
11572 037722 201 06 0 00 000006 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11573 037723 202 06 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11574
11575 010000 SN=10000
11576 377777 ZZ=377777
11577
11578 F10000: REPEAT ^D2,<
11579 SN=SN+1
11580 ZZ=ZZ/2
11581 HRLOI AC-2,ZZ ;SETUP FOR COMPARISON
11582 HRLOI AC,ZZ ;SETUP DVND
11583 MOVEI AC-1,1 ;SETUP DVSR
11584 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11585 CAME AC,AC-2 ;TEST QUOTIENT
11586 ER3 AC,SN
11587 SKIPE AC+1 ;TEST REMAINDER
11588 ER4 AC+1,SN
11589 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11590 >
11591
11592 010001 SN=SN+1
11593 177777 ZZ=ZZ/2
11594 037724 525 02 0 00 177777 HRLOI AC-2,ZZ ;SETUP FOR COMPARISON
11595 037725 525 04 0 00 177777 HRLOI AC,ZZ ;SETUP DVND
11596 037726 201 03 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
11597 037727 230 04 0 00 000003 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11598 037730 312 04 0 00 000002 CAME AC,AC-2 ;TEST QUOTIENT
11599 037731 003 04 0 00 010001 ER3 AC,SN
11600 037732 332 00 0 00 000005 SKIPE AC+1 ;TEST REMAINDER
11601 037733 004 05 0 00 010001 ER4 AC+1,SN
11602 037734 321 06 0 00 037724 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11603
11604
11605 010002 SN=SN+1
11606 077777 ZZ=ZZ/2
11607 037735 525 02 0 00 077777 HRLOI AC-2,ZZ ;SETUP FOR COMPARISON
11608 037736 525 04 0 00 077777 HRLOI AC,ZZ ;SETUP DVND
11609 037737 201 03 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
11610 037740 230 04 0 00 000003 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11611 037741 312 04 0 00 000002 CAME AC,AC-2 ;TEST QUOTIENT
11612 037742 003 04 0 00 010002 ER3 AC,SN
11613 037743 332 00 0 00 000005 SKIPE AC+1 ;TEST REMAINDER
11614 037744 004 05 0 00 010002 ER4 AC+1,SN
11615 037745 321 06 0 00 037735 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11616
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 40
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0251
11617 ;TEST ABILITY TO SWAP REMD
11618 ;AND QUOT
11619 ;DVND = 5,13
11620 ;DVSR - 3
11621 ;FAILURE RESULTS IN A QUOT
11622 ;EQUAL TO THE REMD
11623
11624 000014 AC=14
11625 SAVEAC (1,1)^
11626 037746 201 16 0 00 037746 MOVEI AC+2,. ;SAVE TEST PC
11627 037747 202 16 0 00 030051 MOVEM AC+2,TESTPC
11628 037750 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11629 037751 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11630
11631 010300 SN=10300
11632 777777 777777 ZZ=-1
11633
11634 F10300: REPEAT ^D2,<
11635 SN=SN+1
11636 ZZ=ZZ+6
11637 MOVEI AC-2,2
11638 MOVEI AC,ZZ ;SETUP DVND
11639 MOVEI AC-1,3 ;SETUP DVSR
11640 IDIV AC,AC-1 ;DIVIDE ZZ BY 3
11641 CAIE AC,ZZ/3 ;TEST QUOT
11642 ER3 AC,SN
11643 CAME AC+1,AC-2 ;TEST REMD
11644 ER4 AC+1,SN
11645 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11646 >
11647
11648 010301 SN=SN+1
11649 000005 ZZ=ZZ+6
11650 037752 201 12 0 00 000002 MOVEI AC-2,2
11651 037753 201 14 0 00 000005 MOVEI AC,ZZ ;SETUP DVND
11652 037754 201 13 0 00 000003 MOVEI AC-1,3 ;SETUP DVSR
11653 037755 230 14 0 00 000013 IDIV AC,AC-1 ;DIVIDE ZZ BY 3
11654 037756 302 14 0 00 000001 CAIE AC,ZZ/3 ;TEST QUOT
11655 037757 003 14 0 00 010301 ER3 AC,SN
11656 037760 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST REMD
11657 037761 004 15 0 00 010301 ER4 AC+1,SN
11658 037762 321 16 0 00 037752 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11659
11660
11661 010302 SN=SN+1
11662 000013 ZZ=ZZ+6
11663 037763 201 12 0 00 000002 MOVEI AC-2,2
11664 037764 201 14 0 00 000013 MOVEI AC,ZZ ;SETUP DVND
11665 037765 201 13 0 00 000003 MOVEI AC-1,3 ;SETUP DVSR
11666 037766 230 14 0 00 000013 IDIV AC,AC-1 ;DIVIDE ZZ BY 3
11667 037767 302 14 0 00 000003 CAIE AC,ZZ/3 ;TEST QUOT
11668 037770 003 14 0 00 010302 ER3 AC,SN
11669 037771 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST REMD
11670 037772 004 15 0 00 010302 ER4 AC+1,SN
11671 037773 321 16 0 00 037763 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 40-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0252
11672
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 41
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0253
11673 ;DVND = 2,4
11674 ;DVSR = 1
11675 ;DVND = 377777 777777,177777 777777
11676 ;DVSR = 1
11677
11678 000013 AC=13
11679 SAVEAC (1,1)^
11680 037774 201 15 0 00 037774 MOVEI AC+2,. ;SAVE TEST PC
11681 037775 202 15 0 00 030051 MOVEM AC+2,TESTPC
11682 037776 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11683 037777 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11684
11685 010400 SN=10400
11686 000001 ZZ=1
11687
11688 F10400: REPEAT ^D2,<
11689 SN=SN+1
11690 ZZ=ZZ+ZZ
11691 MOVEI AC,ZZ ;SETUP DVND
11692 MOVEI AC-1,1 ;SETUP DVSR
11693 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11694 CAIE AC,ZZ ;TEST QUOT
11695 ER3 AC,SN
11696 SKIPE AC+1 ;TEST REMD
11697 ER4 AC+1,SN
11698 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11699 >
11700
11701 010401 SN=SN+1
11702 000002 ZZ=ZZ+ZZ
11703 040000 201 13 0 00 000002 MOVEI AC,ZZ ;SETUP DVND
11704 040001 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
11705 040002 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11706 040003 302 13 0 00 000002 CAIE AC,ZZ ;TEST QUOT
11707 040004 003 13 0 00 010401 ER3 AC,SN
11708 040005 332 00 0 00 000014 SKIPE AC+1 ;TEST REMD
11709 040006 004 14 0 00 010401 ER4 AC+1,SN
11710 040007 321 15 0 00 037777 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11711
11712
11713 010402 SN=SN+1
11714 000004 ZZ=ZZ+ZZ
11715 040010 201 13 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11716 040011 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
11717 040012 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11718 040013 302 13 0 00 000004 CAIE AC,ZZ ;TEST QUOT
11719 040014 003 13 0 00 010402 ER3 AC,SN
11720 040015 332 00 0 00 000014 SKIPE AC+1 ;TEST REMD
11721 040016 004 14 0 00 010402 ER4 AC+1,SN
11722 040017 321 15 0 00 040007 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11723
11724 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 41-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0254
11725 010500 SN=10500
11726 000000 ZZ=0
11727
11728 F10500: REPEAT ^D2,<
11729 SN=SN+1
11730 ZZ=ZZ/2
11731 IFE ZZ,<ZZ=377777>
11732 HRLOI AC-2,ZZ ;SETUP FOR COMPARISON
11733 HRLOI AC,ZZ ;SETUP DVND
11734 MOVEI AC-1,1 ;SETUP DVSR
11735 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11736 CAME AC,AC-2 ;TEST QUOT
11737 ER3 AC,SN
11738 SKIPE AC+1 ;TEST REMD
11739 ER4 AC+1,SN
11740 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11741 >
11742
11743 010501 SN=SN+1
11744 000000 ZZ=ZZ/2
11745 377777 IFE ZZ,<ZZ=377777>
11746 040020 525 11 0 00 377777 HRLOI AC-2,ZZ ;SETUP FOR COMPARISON
11747 040021 525 13 0 00 377777 HRLOI AC,ZZ ;SETUP DVND
11748 040022 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
11749 040023 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11750 040024 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT
11751 040025 003 13 0 00 010501 ER3 AC,SN
11752 040026 332 00 0 00 000014 SKIPE AC+1 ;TEST REMD
11753 040027 004 14 0 00 010501 ER4 AC+1,SN
11754 040030 321 15 0 00 040020 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11755
11756
11757 010502 SN=SN+1
11758 177777 ZZ=ZZ/2
11759 IFE ZZ,<ZZ=377777>
11760 040031 525 11 0 00 177777 HRLOI AC-2,ZZ ;SETUP FOR COMPARISON
11761 040032 525 13 0 00 177777 HRLOI AC,ZZ ;SETUP DVND
11762 040033 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
11763 040034 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
11764 040035 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT
11765 040036 003 13 0 00 010502 ER3 AC,SN
11766 040037 332 00 0 00 000014 SKIPE AC+1 ;TEST REMD
11767 040040 004 14 0 00 010502 ER4 AC+1,SN
11768 040041 321 15 0 00 040031 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11769
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 42
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0255
11770 ;DVND = 100
11771 ;DVSR = 2,4
11772 ;FAILURE RESULTS IN A QUOT = 252525 252525
11773
11774 000004 AC=4
11775 SAVEAC (1,1)^
11776 040042 201 06 0 00 040042 MOVEI AC+2,. ;SAVE TEST PC
11777 040043 202 06 0 00 030051 MOVEM AC+2,TESTPC
11778 040044 201 06 0 00 000006 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11779 040045 202 06 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11780
11781 011300 SN=11300
11782 000001 ZZ=1
11783
11784 F11300: REPEAT ^D2,<
11785 SN=SN+1
11786 ZZ=ZZ+ZZ
11787 MOVEI AC,100 ;SETUP DVND
11788 MOVEI AC-1,ZZ ;SETUP DVSR
11789 IDIV AC,AC-1 ;DIVIDE 100 BY (ZZ)
11790 CAIE AC,100/ZZ ;TEST QUOT
11791 ER3 AC,SN
11792 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11793 >
11794
11795 011301 SN=SN+1
11796 000002 ZZ=ZZ+ZZ
11797 040046 201 04 0 00 000100 MOVEI AC,100 ;SETUP DVND
11798 040047 201 03 0 00 000002 MOVEI AC-1,ZZ ;SETUP DVSR
11799 040050 230 04 0 00 000003 IDIV AC,AC-1 ;DIVIDE 100 BY (ZZ)
11800 040051 302 04 0 00 000040 CAIE AC,100/ZZ ;TEST QUOT
11801 040052 003 04 0 00 011301 ER3 AC,SN
11802 040053 321 06 0 00 040044 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11803
11804
11805 011302 SN=SN+1
11806 000004 ZZ=ZZ+ZZ
11807 040054 201 04 0 00 000100 MOVEI AC,100 ;SETUP DVND
11808 040055 201 03 0 00 000004 MOVEI AC-1,ZZ ;SETUP DVSR
11809 040056 230 04 0 00 000003 IDIV AC,AC-1 ;DIVIDE 100 BY (ZZ)
11810 040057 302 04 0 00 000020 CAIE AC,100/ZZ ;TEST QUOT
11811 040060 003 04 0 00 011302 ER3 AC,SN
11812 040061 321 06 0 00 040052 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11813
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 43
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0256
11814 ;DVND = 4,10
11815 ;DVSR = -2
11816 ;FAILURE OF EITHER RESULTS IN A QUOT
11817 ;= 2'S COMP ACTUAL,A REMD = 0
11818
11819 000011 AC=11
11820 SAVEAC (1,1)^
11821 040062 201 13 0 00 040062 MOVEI AC+2,. ;SAVE TEST PC
11822 040063 202 13 0 00 030051 MOVEM AC+2,TESTPC
11823 040064 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11824 040065 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11825
11826 011400 SN=11400
11827 777777 777777 XX=-1
11828 000002 ZZ=2
11829
11830 F11400: REPEAT ^D2,<
11831 SN=SN+1
11832 XX=XX+XX
11833 ZZ=ZZ+ZZ
11834 HRROI AC-2,XX ;SETUP FOR COMPARISON
11835 MOVEI AC,ZZ ;SETUP DVND
11836 HRROI AC-1,-2 ;SETUP DVSR
11837 IDIV AC,AC-1 ;DIVIDE (ZZ) BY -2
11838 SKIPE AC+1 ;TEST REMD = 0
11839 ER4 AC+1,SN
11840 CAME AC,AC-2 ;TEST QUOTIENT
11841 ER3 AC,SN
11842 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11843 >
11844
11845 011401 SN=SN+1
11846 777777 777776 XX=XX+XX
11847 000004 ZZ=ZZ+ZZ
11848 040066 561 07 0 00 777776 HRROI AC-2,XX ;SETUP FOR COMPARISON
11849 040067 201 11 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11850 040070 561 10 0 00 777776 HRROI AC-1,-2 ;SETUP DVSR
11851 040071 230 11 0 00 000010 IDIV AC,AC-1 ;DIVIDE (ZZ) BY -2
11852 040072 332 00 0 00 000012 SKIPE AC+1 ;TEST REMD = 0
11853 040073 004 12 0 00 011401 ER4 AC+1,SN
11854 040074 312 11 0 00 000007 CAME AC,AC-2 ;TEST QUOTIENT
11855 040075 003 11 0 00 011401 ER3 AC,SN
11856 040076 321 13 0 00 040066 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11857
11858
11859 011402 SN=SN+1
11860 777777 777774 XX=XX+XX
11861 000010 ZZ=ZZ+ZZ
11862 040077 561 07 0 00 777774 HRROI AC-2,XX ;SETUP FOR COMPARISON
11863 040100 201 11 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
11864 040101 561 10 0 00 777776 HRROI AC-1,-2 ;SETUP DVSR
11865 040102 230 11 0 00 000010 IDIV AC,AC-1 ;DIVIDE (ZZ) BY -2
11866 040103 332 00 0 00 000012 SKIPE AC+1 ;TEST REMD = 0
11867 040104 004 12 0 00 011402 ER4 AC+1,SN
11868 040105 312 11 0 00 000007 CAME AC,AC-2 ;TEST QUOTIENT
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 43-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0257
11869 040106 003 11 0 00 011402 ER3 AC,SN
11870 040107 321 13 0 00 040077 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11871
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 45
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0258
11872 ;DVND = 377777 777777,177777 777777
11873 ;DVSR = 2
11874
11875 000012 AC=12
11876 SAVEAC (1,1)^
11877 040110 201 14 0 00 040110 MOVEI AC+2,. ;SAVE TEST PC
11878 040111 202 14 0 00 030051 MOVEM AC+2,TESTPC
11879 040112 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11880 040113 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11881
11882 012000 SN=12000
11883 377777 XX=377777
11884 000000 ZZ=0
11885
11886 F12000: REPEAT ^D2,<
11887 SN=SN+1
11888 XX=XX/2
11889 ZZ=ZZ/2
11890 IFE ZZ,<ZZ=377777>
11891 HRLOI AC-2,XX ;SETUP FOR COMPARISON
11892 HRLOI AC,ZZ ;SETUP DVND
11893 MOVEI AC-1,2 ;SETUP DVSR
11894 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 2
11895 CAIE AC+1,1
11896 ER4 AC+1,SN
11897 CAME AC,AC-2 ;TEST QUOT = 1/2 DVND
11898 ER3 AC,SN
11899 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11900 >
11901
11902 012001 SN=SN+1
11903 177777 XX=XX/2
11904 000000 ZZ=ZZ/2
11905 377777 IFE ZZ,<ZZ=377777>
11906 040114 525 10 0 00 177777 HRLOI AC-2,XX ;SETUP FOR COMPARISON
11907 040115 525 12 0 00 377777 HRLOI AC,ZZ ;SETUP DVND
11908 040116 201 11 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
11909 040117 230 12 0 00 000011 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 2
11910 040120 302 13 0 00 000001 CAIE AC+1,1
11911 040121 004 13 0 00 012001 ER4 AC+1,SN
11912 040122 312 12 0 00 000010 CAME AC,AC-2 ;TEST QUOT = 1/2 DVND
11913 040123 003 12 0 00 012001 ER3 AC,SN
11914 040124 321 14 0 00 040114 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11915
11916
11917 012002 SN=SN+1
11918 077777 XX=XX/2
11919 177777 ZZ=ZZ/2
11920 IFE ZZ,<ZZ=377777>
11921 040125 525 10 0 00 077777 HRLOI AC-2,XX ;SETUP FOR COMPARISON
11922 040126 525 12 0 00 177777 HRLOI AC,ZZ ;SETUP DVND
11923 040127 201 11 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
11924 040130 230 12 0 00 000011 IDIV AC,AC-1 ;DIVIDE (ZZ) BY 2
11925 040131 302 13 0 00 000001 CAIE AC+1,1
11926 040132 004 13 0 00 012002 ER4 AC+1,SN
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 45-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0259
11927 040133 312 12 0 00 000010 CAME AC,AC-2 ;TEST QUOT = 1/2 DVND
11928 040134 003 12 0 00 012002 ER3 AC,SN
11929 040135 321 14 0 00 040125 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11930
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 46
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0260
11931 ;DVND = 4,10
11932 ;DVSR = 400000 000000
11933
11934 012300 SN=12300
11935 000002 ZZ=2
11936
11937 F12300: REPEAT ^D2,<
11938 SN=SN+1
11939 ZZ=ZZ+ZZ
11940 MOVEI AC,ZZ ;SETUP DVND
11941 MOVSI AC-1,400000 ;SETUP DVSR
11942 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (-N)
11943 SKIPE AC ;TEST QUOT
11944 ER3 AC,SN
11945 CAIE AC+1,ZZ ;TEST REMD
11946 ER4 AC+1,SN
11947 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11948 >
11949
11950 012301 SN=SN+1
11951 000004 ZZ=ZZ+ZZ
11952 040136 201 12 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
11953 040137 205 11 0 00 400000 MOVSI AC-1,400000 ;SETUP DVSR
11954 040140 230 12 0 00 000011 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (-N)
11955 040141 332 00 0 00 000012 SKIPE AC ;TEST QUOT
11956 040142 003 12 0 00 012301 ER3 AC,SN
11957 040143 302 13 0 00 000004 CAIE AC+1,ZZ ;TEST REMD
11958 040144 004 13 0 00 012301 ER4 AC+1,SN
11959 040145 321 14 0 00 040135 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11960
11961
11962 012302 SN=SN+1
11963 000010 ZZ=ZZ+ZZ
11964 040146 201 12 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
11965 040147 205 11 0 00 400000 MOVSI AC-1,400000 ;SETUP DVSR
11966 040150 230 12 0 00 000011 IDIV AC,AC-1 ;DIVIDE (ZZ) BY (-N)
11967 040151 332 00 0 00 000012 SKIPE AC ;TEST QUOT
11968 040152 003 12 0 00 012302 ER3 AC,SN
11969 040153 302 13 0 00 000010 CAIE AC+1,ZZ ;TEST REMD
11970 040154 004 13 0 00 012302 ER4 AC+1,SN
11971 040155 321 14 0 00 040145 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
11972
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 47
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0261
11973 ;DVND = -40,-20
11974 ;DVSR = 2
11975
11976 000006 AC=6
11977 SAVEAC (1,1)^
11978 040156 201 10 0 00 040156 MOVEI AC+2,. ;SAVE TEST PC
11979 040157 202 10 0 00 030051 MOVEM AC+2,TESTPC
11980 040160 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11981 040161 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11982
11983 012600 SN=12600
11984 777777 777700 ZZ=-100
11985
11986 F12600: REPEAT ^D2,<
11987 SN=SN+1
11988 ZZ=ZZ/2
11989 HRROI AC,ZZ ;SETUP DVND
11990 MOVEI AC-1,2 ;SETUP DVSR
11991 IDIV AC,AC-1 ;DIVIDE ZZ BY 2
11992 CAME AC,[ZZ/2] ;TEST QUOT = 0
11993 ER3 AC,SN
11994 SKIPE AC+1 ;TEST REMD
11995 ER4 AC+1,SN
11996 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
11997 >
11998
11999 012601 SN=SN+1
12000 777777 777740 ZZ=ZZ/2
12001 040162 561 06 0 00 777740 HRROI AC,ZZ ;SETUP DVND
12002 040163 201 05 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12003 040164 230 06 0 00 000005 IDIV AC,AC-1 ;DIVIDE ZZ BY 2
12004 040165 312 06 0 00 045243 CAME AC,[ZZ/2] ;TEST QUOT = 0
12005 040166 003 06 0 00 012601 ER3 AC,SN
12006 040167 332 00 0 00 000007 SKIPE AC+1 ;TEST REMD
12007 040170 004 07 0 00 012601 ER4 AC+1,SN
12008 040171 321 10 0 00 040162 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12009
12010
12011 012602 SN=SN+1
12012 777777 777760 ZZ=ZZ/2
12013 040172 561 06 0 00 777760 HRROI AC,ZZ ;SETUP DVND
12014 040173 201 05 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12015 040174 230 06 0 00 000005 IDIV AC,AC-1 ;DIVIDE ZZ BY 2
12016 040175 312 06 0 00 045305 CAME AC,[ZZ/2] ;TEST QUOT = 0
12017 040176 003 06 0 00 012602 ER3 AC,SN
12018 040177 332 00 0 00 000007 SKIPE AC+1 ;TEST REMD
12019 040200 004 07 0 00 012602 ER4 AC+1,SN
12020 040201 321 10 0 00 040172 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12021
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 48
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0262
12022 ;DVND = -100,-40
12023 ;DVSR = 2
12024
12025 000004 AC=4
12026 SAVEAC (1,1)^
12027 040202 201 06 0 00 040202 MOVEI AC+2,. ;SAVE TEST PC
12028 040203 202 06 0 00 030051 MOVEM AC+2,TESTPC
12029 040204 201 06 0 00 000006 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12030 040205 202 06 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12031
12032 013000 SN=13000
12033 777777 777600 ZZ=-200
12034
12035 F13000: REPEAT ^D2,<
12036 SN=SN+1
12037 ZZ=ZZ/2
12038 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12039 HRROI AC,ZZ ;SETUP DVND
12040 MOVEI AC-1,2 ;SETUP DVSR
12041 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12042 CAME AC,AC-2 ;TEST QUOT
12043 ER3 AC,SN
12044 SKIPE AC+1 ;TEST REMD
12045 ER4 AC+1,SN
12046 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12047 >
12048
12049 013001 SN=SN+1
12050 777777 777700 ZZ=ZZ/2
12051 040206 561 02 0 00 777740 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12052 040207 561 04 0 00 777700 HRROI AC,ZZ ;SETUP DVND
12053 040210 201 03 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12054 040211 230 04 0 00 000003 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12055 040212 312 04 0 00 000002 CAME AC,AC-2 ;TEST QUOT
12056 040213 003 04 0 00 013001 ER3 AC,SN
12057 040214 332 00 0 00 000005 SKIPE AC+1 ;TEST REMD
12058 040215 004 05 0 00 013001 ER4 AC+1,SN
12059 040216 321 06 0 00 040205 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12060
12061
12062 013002 SN=SN+1
12063 777777 777740 ZZ=ZZ/2
12064 040217 561 02 0 00 777760 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12065 040220 561 04 0 00 777740 HRROI AC,ZZ ;SETUP DVND
12066 040221 201 03 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12067 040222 230 04 0 00 000003 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12068 040223 312 04 0 00 000002 CAME AC,AC-2 ;TEST QUOT
12069 040224 003 04 0 00 013002 ER3 AC,SN
12070 040225 332 00 0 00 000005 SKIPE AC+1 ;TEST REMD
12071 040226 004 05 0 00 013002 ER4 AC+1,SN
12072 040227 321 06 0 00 040216 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12073
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 49
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0263
12074 ;FAILURE RESULTS IN A QUOT AND
12075 ;REMD WHICH ARE THE TWO'S
12076 ;COMPLEMENT OF ACTUAL
12077 ;DVND = -7,-17
12078 ;DVSR = 4
12079
12080 000014 AC=14
12081 SAVEAC (1,1)^
12082 040230 201 16 0 00 040230 MOVEI AC+2,. ;SAVE TEST PC
12083 040231 202 16 0 00 030051 MOVEM AC+2,TESTPC
12084 040232 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12085 040233 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12086
12087 013200 SN=13200
12088 000001 ZZ=1
12089
12090 F13200: REPEAT ^D2,<
12091 SN=SN+1
12092 ZZ=ZZ-10
12093 HRROI AC-2,ZZ/4 ;SETUP FOR COMPARISON
12094 HRROI AC,ZZ ;SETUP DVND
12095 MOVEI AC-1,4 ;SETUP DVSR
12096 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 4
12097 CAME AC,AC-2 ;TEST QUOT
12098 ER3 AC,SN
12099 HRROI AC-2,-3 ;SETUP FOR COMPARISON
12100 CAME AC+1,AC-2 ;TEST REMD
12101 ER4 AC+1,SN
12102 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12103 >
12104
12105 013201 SN=SN+1
12106 777777 777771 ZZ=ZZ-10
12107 040234 561 12 0 00 777777 HRROI AC-2,ZZ/4 ;SETUP FOR COMPARISON
12108 040235 561 14 0 00 777771 HRROI AC,ZZ ;SETUP DVND
12109 040236 201 13 0 00 000004 MOVEI AC-1,4 ;SETUP DVSR
12110 040237 230 14 0 00 000013 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 4
12111 040240 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
12112 040241 003 14 0 00 013201 ER3 AC,SN
12113 040242 561 12 0 00 777775 HRROI AC-2,-3 ;SETUP FOR COMPARISON
12114 040243 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST REMD
12115 040244 004 15 0 00 013201 ER4 AC+1,SN
12116 040245 321 16 0 00 040234 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12117
12118
12119 013202 SN=SN+1
12120 777777 777761 ZZ=ZZ-10
12121 040246 561 12 0 00 777775 HRROI AC-2,ZZ/4 ;SETUP FOR COMPARISON
12122 040247 561 14 0 00 777761 HRROI AC,ZZ ;SETUP DVND
12123 040250 201 13 0 00 000004 MOVEI AC-1,4 ;SETUP DVSR
12124 040251 230 14 0 00 000013 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 4
12125 040252 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
12126 040253 003 14 0 00 013202 ER3 AC,SN
12127 040254 561 12 0 00 777775 HRROI AC-2,-3 ;SETUP FOR COMPARISON
12128 040255 312 15 0 00 000012 CAME AC+1,AC-2 ;TEST REMD
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 49-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0264
12129 040256 004 15 0 00 013202 ER4 AC+1,SN
12130 040257 321 16 0 00 040246 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12131
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 50
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0265
12132 ;DVND = -77,-37
12133 ;DVSR = 2
12134
12135 000013 AC=13
12136 SAVEAC (1,1)^
12137 040260 201 15 0 00 040260 MOVEI AC+2,. ;SAVE TEST PC
12138 040261 202 15 0 00 030051 MOVEM AC+2,TESTPC
12139 040262 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12140 040263 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12141
12142 013300 SN=13300
12143 777777 777601 ZZ=-177
12144
12145 F13300: REPEAT ^D2,<
12146 SN=SN+1
12147 ZZ=ZZ/2
12148 HRROI AC-2,-1 ;SETUP FOR COMPARISON
12149 HRROI AC,ZZ ;SETUP DVND
12150 MOVEI AC-1,2 ;SETUP DVSR
12151 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12152 CAME AC+1,AC-2 ;TEST REMD
12153 ER4 AC+1,SN
12154 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12155 CAME AC,AC-2 ;TEST QUOTIENT
12156 ER3 AC,AC-2
12157 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12158 >
12159
12160 013301 SN=SN+1
12161 777777 777701 ZZ=ZZ/2
12162 040264 561 11 0 00 777777 HRROI AC-2,-1 ;SETUP FOR COMPARISON
12163 040265 561 13 0 00 777701 HRROI AC,ZZ ;SETUP DVND
12164 040266 201 12 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12165 040267 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12166 040270 312 14 0 00 000011 CAME AC+1,AC-2 ;TEST REMD
12167 040271 004 14 0 00 013301 ER4 AC+1,SN
12168 040272 561 11 0 00 777741 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12169 040273 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOTIENT
12170 040274 003 13 0 00 000011 ER3 AC,AC-2
12171 040275 321 15 0 00 040264 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12172
12173
12174 013302 SN=SN+1
12175 777777 777741 ZZ=ZZ/2
12176 040276 561 11 0 00 777777 HRROI AC-2,-1 ;SETUP FOR COMPARISON
12177 040277 561 13 0 00 777741 HRROI AC,ZZ ;SETUP DVND
12178 040300 201 12 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12179 040301 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12180 040302 312 14 0 00 000011 CAME AC+1,AC-2 ;TEST REMD
12181 040303 004 14 0 00 013302 ER4 AC+1,SN
12182 040304 561 11 0 00 777761 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12183 040305 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOTIENT
12184 040306 003 13 0 00 000011 ER3 AC,AC-2
12185 040307 321 15 0 00 040276 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12186
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 51
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0266
12187 ;DVND = -4,-10
12188 ;DVSR = 2
12189
12190 000012 AC=12
12191 SAVEAC (1,1)^
12192 040310 201 14 0 00 040310 MOVEI AC+2,. ;SAVE TEST PC
12193 040311 202 14 0 00 030051 MOVEM AC+2,TESTPC
12194 040312 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12195 040313 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12196
12197 013500 SN=13500
12198 777777 777776 ZZ=-2
12199
12200 F13500: REPEAT ^D2,<
12201 SN=SN+1
12202 ZZ=ZZ+ZZ
12203 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12204 HRROI AC,ZZ ;SETUP DVND
12205 MOVEI AC-1,2 ;SETUP DVSR
12206 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12207 CAME AC,AC-2 ;TEST QUOTIENT
12208 ER3 AC,SN
12209 SKIPE AC+1 ;TEST REMAINDER
12210 ER4 AC+1,SN
12211 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12212 >
12213
12214 013501 SN=SN+1
12215 777777 777774 ZZ=ZZ+ZZ
12216 040314 561 10 0 00 777776 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12217 040315 561 12 0 00 777774 HRROI AC,ZZ ;SETUP DVND
12218 040316 201 11 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12219 040317 230 12 0 00 000011 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12220 040320 312 12 0 00 000010 CAME AC,AC-2 ;TEST QUOTIENT
12221 040321 003 12 0 00 013501 ER3 AC,SN
12222 040322 332 00 0 00 000013 SKIPE AC+1 ;TEST REMAINDER
12223 040323 004 13 0 00 013501 ER4 AC+1,SN
12224 040324 321 14 0 00 040314 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12225
12226
12227 013502 SN=SN+1
12228 777777 777770 ZZ=ZZ+ZZ
12229 040325 561 10 0 00 777774 HRROI AC-2,ZZ/2 ;SETUP FOR COMPARISON
12230 040326 561 12 0 00 777770 HRROI AC,ZZ ;SETUP DVND
12231 040327 201 11 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12232 040330 230 12 0 00 000011 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY 2
12233 040331 312 12 0 00 000010 CAME AC,AC-2 ;TEST QUOTIENT
12234 040332 003 12 0 00 013502 ER3 AC,SN
12235 040333 332 00 0 00 000013 SKIPE AC+1 ;TEST REMAINDER
12236 040334 004 13 0 00 013502 ER4 AC+1,SN
12237 040335 321 14 0 00 040325 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12238
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 52
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0267
12239 ;TEST IDIV- TWO NEGATIVES
12240 ;TEST ABILITY TO DIVIDE TWO
12241 ;NEGATIVE NUMBERS
12242 ;TEST EXERCISES MAJORITY
12243 ;OF IDIV LOGIC GATES
12244 ;DVND = -2,-4
12245 ;DVSR = -2,-4
12246
12247 000007 AC=7
12248 SAVEAC (1,1)^
12249 040336 201 11 0 00 040336 MOVEI AC+2,. ;SAVE TEST PC
12250 040337 202 11 0 00 030051 MOVEM AC+2,TESTPC
12251 040340 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12252 040341 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12253
12254 014000 SN=14000
12255 777777 777777 ZZ=-1
12256
12257 ;DIVIDE TWO NEGATIVES
12258 F14000: REPEAT ^D2,<
12259 SN=SN+1
12260 ZZ=ZZ+ZZ
12261 HRROI AC,ZZ ;SETUP DVND
12262 HRROI AC-1,ZZ ;SETUP DVSR
12263 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY (-ZZ)
12264 CAIE AC,1 ;TEST QUOT (POSITIVE)
12265 ER3 AC,SN ;INCORRECT SIGN
12266 SKIPE AC+1 ;TEST REMAINDER
12267 ER4 AC+1,SN
12268 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12269 >
12270
12271 014001 SN=SN+1
12272 777777 777776 ZZ=ZZ+ZZ
12273 040342 561 07 0 00 777776 HRROI AC,ZZ ;SETUP DVND
12274 040343 561 06 0 00 777776 HRROI AC-1,ZZ ;SETUP DVSR
12275 040344 230 07 0 00 000006 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY (-ZZ)
12276 040345 302 07 0 00 000001 CAIE AC,1 ;TEST QUOT (POSITIVE)
12277 040346 003 07 0 00 014001 ER3 AC,SN ;INCORRECT SIGN
12278 040347 332 00 0 00 000010 SKIPE AC+1 ;TEST REMAINDER
12279 040350 004 10 0 00 014001 ER4 AC+1,SN
12280 040351 321 11 0 00 040342 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12281
12282
12283 014002 SN=SN+1
12284 777777 777774 ZZ=ZZ+ZZ
12285 040352 561 07 0 00 777774 HRROI AC,ZZ ;SETUP DVND
12286 040353 561 06 0 00 777774 HRROI AC-1,ZZ ;SETUP DVSR
12287 040354 230 07 0 00 000006 IDIV AC,AC-1 ;DIVIDE (-ZZ) BY (-ZZ)
12288 040355 302 07 0 00 000001 CAIE AC,1 ;TEST QUOT (POSITIVE)
12289 040356 003 07 0 00 014002 ER3 AC,SN ;INCORRECT SIGN
12290 040357 332 00 0 00 000010 SKIPE AC+1 ;TEST REMAINDER
12291 040360 004 10 0 00 014002 ER4 AC+1,SN
12292 040361 321 11 0 00 040352 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12293
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 53
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0268
12294 ;TEST IDIV -IMMEDIATE MODE
12295 ;TEST ABILITY TO DIVIDE BY E VICE C(E)
12296 ;DVND = 2,4
12297 ;DVSR = E (C(E)=0)
12298
12299 014100 SN=14100
12300 000012 AC=12
12301 000001 ZZ=1
12302
12303 ;TEST IDIV-IMM MODE
12304 F14100: REPEAT ^D2,<
12305 SN=SN+1
12306 ZZ=ZZ+ZZ
12307 AC=AC-1
12308 SAVEAC (1,1) ;SAVE ERROR AC
12309 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
12310 MOVEI AC,ZZ ;SETUP DVND
12311 SETZ AC-1, ;SETUP OVFL CONDITION
12312 IDIVI AC,AC-1 ;DIVIDE (ZZ) BY E
12313 JSP AC-1,.+1
12314 CAIE AC,0
12315 ER3 AC,SN ;C(AC) FAILED
12316 CAIE AC+1,ZZ
12317 ER4 AC+1,SN ;C(AC+1) FAILED
12318 JOV .+2 ;TEST FOR OVERFLOW
12319 JRST ,.+2 ;DIVIDED (ZZ) BY E
12320 ER13 AC-1,SN ;DIVIDED (ZZ) BY C(E)
12321 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
12322 >
12323
12324 014101 SN=SN+1
12325 000002 ZZ=ZZ+ZZ
12326 000011 AC=AC-1
12327 SAVEAC (1,1)^
12328 040362 201 13 0 00 040362 MOVEI AC+2,. ;SAVE TEST PC
12329 040363 202 13 0 00 030051 MOVEM AC+2,TESTPC
12330 040364 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12331 040365 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ ;SAVE ERROR AC
12332 040366 254 02 1 00 045306 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
12333 040367 201 11 0 00 000002 MOVEI AC,ZZ ;SETUP DVND
12334 040370 400 10 0 00 000000 SETZ AC-1, ;SETUP OVFL CONDITION
12335 040371 231 11 0 00 000010 IDIVI AC,AC-1 ;DIVIDE (ZZ) BY E
12336 040372 265 10 0 00 040373 JSP AC-1,.+1
12337 040373 302 11 0 00 000000 CAIE AC,0
12338 040374 003 11 0 00 014101 ER3 AC,SN ;C(AC) FAILED
12339 040375 302 12 0 00 000002 CAIE AC+1,ZZ
12340 040376 004 12 0 00 014101 ER4 AC+1,SN ;C(AC+1) FAILED
12341 040377 255 10 0 00 040401 JOV .+2 ;TEST FOR OVERFLOW
12342 040400 254 00 0 00 040402 JRST ,.+2 ;DIVIDED (ZZ) BY E
12343 040401 013 10 0 00 014101 ER13 AC-1,SN ;DIVIDED (ZZ) BY C(E)
12344 040402 321 13 0 00 040364 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
12345
12346
12347 014102 SN=SN+1
12348 000004 ZZ=ZZ+ZZ
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 53-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0269
12349 000010 AC=AC-1
12350 SAVEAC (1,1)^
12351 040403 201 12 0 00 040403 MOVEI AC+2,. ;SAVE TEST PC
12352 040404 202 12 0 00 030051 MOVEM AC+2,TESTPC
12353 040405 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12354 040406 202 12 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ ;SAVE ERROR AC
12355 040407 254 02 1 00 045307 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
12356 040410 201 10 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
12357 040411 400 07 0 00 000000 SETZ AC-1, ;SETUP OVFL CONDITION
12358 040412 231 10 0 00 000007 IDIVI AC,AC-1 ;DIVIDE (ZZ) BY E
12359 040413 265 07 0 00 040414 JSP AC-1,.+1
12360 040414 302 10 0 00 000000 CAIE AC,0
12361 040415 003 10 0 00 014102 ER3 AC,SN ;C(AC) FAILED
12362 040416 302 11 0 00 000004 CAIE AC+1,ZZ
12363 040417 004 11 0 00 014102 ER4 AC+1,SN ;C(AC+1) FAILED
12364 040420 255 10 0 00 040422 JOV .+2 ;TEST FOR OVERFLOW
12365 040421 254 00 0 00 040423 JRST ,.+2 ;DIVIDED (ZZ) BY E
12366 040422 013 07 0 00 014102 ER13 AC-1,SN ;DIVIDED (ZZ) BY C(E)
12367 040423 321 12 0 00 040405 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
12368
12369 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 53-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0270
12370 ;TEST IDIV-MEMORY MODE
12371 ;DVND = 10,20
12372 ;DVSR = 2
12373
12374 000014 AC=14
12375 SAVEAC (1,1)^
12376 040424 201 16 0 00 040424 MOVEI AC+2,. ;SAVE TEST PC
12377 040425 202 16 0 00 030051 MOVEM AC+2,TESTPC
12378 040426 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12379 040427 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12380 040430 254 02 1 00 045310 JRSTF @[.+1] ;CLEAR ALL FLAGS
12381
12382 014200 SN=14200
12383 000004 ZZ=4
12384
12385 ;TEST IDIV-MEMORY MODE
12386 F14200: REPEAT ^D2,<
12387 SN=SN+1
12388 ZZ=ZZ+ZZ
12389 MOVEI AC+1,ZZ ;SETUP FOR COMPARISON
12390 MOVEI AC,ZZ ;SETUP DVND
12391 MOVEI AC-1,2 ;SETUP DVSR
12392 IDIVM AC,AC-1 ;DIVIDE (ZZ) BY 2
12393 CAME AC,AC+1
12394 ER3 AC,SN
12395 CAIE AC-1,ZZ/2 ;TEST SCE
12396 ER5 AC-1,SN
12397 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12398 >
12399
12400 014201 SN=SN+1
12401 000010 ZZ=ZZ+ZZ
12402 040431 201 15 0 00 000010 MOVEI AC+1,ZZ ;SETUP FOR COMPARISON
12403 040432 201 14 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
12404 040433 201 13 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12405 040434 232 14 0 00 000013 IDIVM AC,AC-1 ;DIVIDE (ZZ) BY 2
12406 040435 312 14 0 00 000015 CAME AC,AC+1
12407 040436 003 14 0 00 014201 ER3 AC,SN
12408 040437 302 13 0 00 000004 CAIE AC-1,ZZ/2 ;TEST SCE
12409 040440 005 13 0 00 014201 ER5 AC-1,SN
12410 040441 321 16 0 00 040431 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12411
12412
12413 014202 SN=SN+1
12414 000020 ZZ=ZZ+ZZ
12415 040442 201 15 0 00 000020 MOVEI AC+1,ZZ ;SETUP FOR COMPARISON
12416 040443 201 14 0 00 000020 MOVEI AC,ZZ ;SETUP DVND
12417 040444 201 13 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12418 040445 232 14 0 00 000013 IDIVM AC,AC-1 ;DIVIDE (ZZ) BY 2
12419 040446 312 14 0 00 000015 CAME AC,AC+1
12420 040447 003 14 0 00 014202 ER3 AC,SN
12421 040450 302 13 0 00 000010 CAIE AC-1,ZZ/2 ;TEST SCE
12422 040451 005 13 0 00 014202 ER5 AC-1,SN
12423 040452 321 16 0 00 040442 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12424
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 54
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0271
12425 ;TEST IDIV-BOTH MODE
12426 ;TEST ABILITY TO STORE QUOT
12427 ;IN AC AND E
12428 ;TEST ABILITY TO STORE REMD
12429 ;IN AC+1
12430
12431 000013 AC=13
12432 SAVEAC (1,1)^
12433 040453 201 15 0 00 040453 MOVEI AC+2,. ;SAVE TEST PC
12434 040454 202 15 0 00 030051 MOVEM AC+2,TESTPC
12435 040455 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12436 040456 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12437
12438 014300 SN=14300
12439 000001 ZZ=1
12440
12441 ;TEST IDIV-BOTH MODE
12442 F14300: REPEAT ^D2,<
12443 SN=SN+1
12444 ZZ=ZZ+2
12445 SETZ AC+1, ;CLEAR AC+1
12446 MOVEI AC,ZZ ;SETUP DVND
12447 MOVEI AC-1,2 ;SETUP DVSR
12448 IDIVB AC,AC-1 ;DIVIDE (ZZ) BY 2
12449 CAME AC,AC-1 ;TEST QUOT (C(AC)=C(E))
12450 ER3 AC,SN ;STORE QUOTIENT FAILED
12451 CAIE AC+1,1 ;TEST REMD(=1)
12452 ER4 AC+1,SN ;STORE REMAINDER FAILED
12453 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12454 >
12455
12456 014301 SN=SN+1
12457 000003 ZZ=ZZ+2
12458 040457 400 14 0 00 000000 SETZ AC+1, ;CLEAR AC+1
12459 040460 201 13 0 00 000003 MOVEI AC,ZZ ;SETUP DVND
12460 040461 201 12 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12461 040462 233 13 0 00 000012 IDIVB AC,AC-1 ;DIVIDE (ZZ) BY 2
12462 040463 312 13 0 00 000012 CAME AC,AC-1 ;TEST QUOT (C(AC)=C(E))
12463 040464 003 13 0 00 014301 ER3 AC,SN ;STORE QUOTIENT FAILED
12464 040465 302 14 0 00 000001 CAIE AC+1,1 ;TEST REMD(=1)
12465 040466 004 14 0 00 014301 ER4 AC+1,SN ;STORE REMAINDER FAILED
12466 040467 321 15 0 00 040457 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12467
12468
12469 014302 SN=SN+1
12470 000005 ZZ=ZZ+2
12471 040470 400 14 0 00 000000 SETZ AC+1, ;CLEAR AC+1
12472 040471 201 13 0 00 000005 MOVEI AC,ZZ ;SETUP DVND
12473 040472 201 12 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12474 040473 233 13 0 00 000012 IDIVB AC,AC-1 ;DIVIDE (ZZ) BY 2
12475 040474 312 13 0 00 000012 CAME AC,AC-1 ;TEST QUOT (C(AC)=C(E))
12476 040475 003 13 0 00 014302 ER3 AC,SN ;STORE QUOTIENT FAILED
12477 040476 302 14 0 00 000001 CAIE AC+1,1 ;TEST REMD(=1)
12478 040477 004 14 0 00 014302 ER4 AC+1,SN ;STORE REMAINDER FAILED
12479 040500 321 15 0 00 040470 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 54-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0272
12480
12481 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 54-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0273
12482 ;TEST IDIV
12483 ;DVND = 400000000000
12484 ;DVSR = 2
12485 ;QUOT = 600000000000
12486 ;REMND = 0
12487
12488 000013 AC=13
12489 SAVEAC (1,1)^
12490 040501 201 15 0 00 040501 MOVEI AC+2,. ;SAVE TEST PC
12491 040502 202 15 0 00 030051 MOVEM AC+2,TESTPC
12492 040503 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12493 040504 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12494
12495 400000 ZZ=400000
12496 600000 XX=600000
12497
12498 040505 474 14 0 00 000000 F14400: SETO AC+1, ;INITIALIZE REMAINDER STORAGE
12499 040506 205 11 0 00 600000 MOVSI AC-2,XX ;SET UP COMPARISON FOR QUOTIENT
12500 040507 400 10 0 00 000000 SETZ AC-3, ;SET UP COMPARISON FOR REMAINDER
12501 040510 205 13 0 00 400000 MOVSI AC,ZZ ;SET UP DIVIDEND
12502 040511 201 12 0 00 000002 MOVEI AC-1,2 ;SET UP DIVISOR
12503 040512 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE 400000000000 BY 2
12504 040513 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOTIENT
12505 040514 003 13 0 00 014401 ER3 AC,14401 ;STORE QUOTIENT FAILED
12506 040515 312 14 0 00 000010 CAME AC+1,AC-3 ;TEST REMAINDER
12507 040516 004 14 0 00 014401 ER4 AC+1,14401 ;STORE REMAINDER FAILED
12508 040517 321 15 0 00 040505 JUMPL AC+2,F14400 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 55
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - INTEGER DIVIDE TEST SEQ 0274
12509 ;TEST IDIVB (DIVIDE CHECK)
12510
12511 040520 254 02 1 00 045311 F14410: JRSTF @[.+1] ;CLEAR ALL FLAGS
12512 040521 201 13 0 00 000004 MOVEI AC,4 ;SETUP DIVIDEND
12513 040522 201 14 0 00 000004 MOVEI AC+1,4 ;SETUP REMAINDER
12514 040523 400 12 0 00 000000 SETZ AC-1, ;SETUP DIVISOR
12515 040524 233 13 0 00 000012 IDIVB AC,AC-1
12516 040525 265 11 0 00 040526 JSP AC-2,.+1 ;SAVE FLAGS
12517 040526 302 13 0 00 000004 CAIE AC,4
12518 040527 003 13 0 00 014411 ER3 AC,14411 ;C(AC) WAS CLOBBERED
12519 040530 302 14 0 00 000004 CAIE AC+1,4
12520 040531 004 14 0 00 014411 ER4 AC+1,14411 ;C(AC+1) WAS CLOBBERED
12521 040532 302 12 0 00 000000 CAIE AC-1,0
12522 040533 005 12 0 00 014411 ER5 AC-1,14411 ;C(E) WAS CLOBBERED
12523 040534 255 10 0 00 040536 JOV .+2
12524 040535 013 11 0 00 014411 ER13 AC-2,14411 ;ARCV FAILED TO SET
12525 040536 607 11 0 00 000040 TLNN AC-2,DCK
12526 040537 013 11 0 00 014411 ER13 AC-2,14411 ;'DCK' FAILED TO SET
12527 040540 321 15 0 00 040520 JUMPL AC+2,F14410 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 56
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0275
12528 SUBTTL DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST
12529
12530 ;TEST FAC2 AND DECODE
12531 ;TEST OF ABILITY TO ASSERT IRDIV
12532 ;TEST ABILITY TO FETCH C(AC+1)
12533
12534 000013 AC=13
12535 SAVEAC (1,1)^
12536 040541 201 15 0 00 040541 MOVEI AC+2,. ;SAVE TEST PC
12537 040542 202 15 0 00 030051 MOVEM AC+2,TESTPC
12538 040543 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12539 040544 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12540 040545 254 02 1 00 045312 JRSTF @[.+1] ;CLEAR ALL FLAGS
12541
12542 014500 SN=14500
12543 004000 000001 XX=4000000001
12544 000002 ZZ=2
12545
12546 ;TEST FAC2 FAILING(IRDIV)
12547 F14500: REPEAT ^D2,<
12548 SN=SN+1
12549 XX=XX+XX-1
12550 ZZ=ZZ+ZZ
12551 MOVEI AC,ZZ ;SETUP HIGH DVND
12552 MOVEI AC+1,200 ;SETUP LOW DVND
12553 MOVEI AC-1,200 ;SETUP DVSR
12554 DIV AC,AC-1 ;DIVIDE (N) BY 200
12555 CAME AC,[XX] ;TEST BIT 35(1) (ODD QUOT)
12556 ER3 AC,SN
12557 SKIPE <AC+1>&17 ;TEST REMD = 0
12558 ER4 AC+1,SN
12559 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12560 >
12561
12562 014501 SN=SN+1
12563 010000 000001 XX=XX+XX-1
12564 000004 ZZ=ZZ+ZZ
12565 040546 201 13 0 00 000004 MOVEI AC,ZZ ;SETUP HIGH DVND
12566 040547 201 14 0 00 000200 MOVEI AC+1,200 ;SETUP LOW DVND
12567 040550 201 12 0 00 000200 MOVEI AC-1,200 ;SETUP DVSR
12568 040551 234 13 0 00 000012 DIV AC,AC-1 ;DIVIDE (N) BY 200
12569 040552 312 13 0 00 045160 CAME AC,[XX] ;TEST BIT 35(1) (ODD QUOT)
12570 040553 003 13 0 00 014501 ER3 AC,SN
12571 040554 332 00 0 00 000014 SKIPE <AC+1>&17 ;TEST REMD = 0
12572 040555 004 14 0 00 014501 ER4 AC+1,SN
12573 040556 321 15 0 00 040546 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12574
12575
12576 014502 SN=SN+1
12577 020000 000001 XX=XX+XX-1
12578 000010 ZZ=ZZ+ZZ
12579 040557 201 13 0 00 000010 MOVEI AC,ZZ ;SETUP HIGH DVND
12580 040560 201 14 0 00 000200 MOVEI AC+1,200 ;SETUP LOW DVND
12581 040561 201 12 0 00 000200 MOVEI AC-1,200 ;SETUP DVSR
12582 040562 234 13 0 00 000012 DIV AC,AC-1 ;DIVIDE (N) BY 200
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 56-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0276
12583 040563 312 13 0 00 045162 CAME AC,[XX] ;TEST BIT 35(1) (ODD QUOT)
12584 040564 003 13 0 00 014502 ER3 AC,SN
12585 040565 332 00 0 00 000014 SKIPE <AC+1>&17 ;TEST REMD = 0
12586 040566 004 14 0 00 014502 ER4 AC+1,SN
12587 040567 321 15 0 00 040557 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12588
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 57
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0277
12589 ;HIGH DVND = 2,4
12590 ;LOW DVND = 0
12591 ;DVSR = 2,4
12592
12593 000006 AC=6
12594 SAVEAC (1,1)^
12595 040570 201 10 0 00 040570 MOVEI AC+2,. ;SAVE TEST PC
12596 040571 202 10 0 00 030051 MOVEM AC+2,TESTPC
12597 040572 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12598 040573 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12599
12600 014600 SN=14600
12601 000001 ZZ=1
12602
12603 F14600: REPEAT ^D2,<
12604 SN=SN+1
12605 ZZ=ZZ+ZZ
12606 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12607 MOVEI AC,ZZ ;SETUP HIGH DVND
12608 SETZ AC+1, ;SETUP LOW DVND
12609 MOVEI AC-1,ZZ ;SETUP DVSR
12610 DIV AC,AC-1 ;DIVIDE ZZ BY ZZ
12611 JSP AC-2,.+1
12612 JOV .+2 ;TEST AROV FLAG
12613 ER13 AC-2,SN
12614 TLNN AC-2,DCK
12615 ER13 AC-2,SN ;DCK FAILED TO SET
12616 CAIE AC,ZZ ;EXAMINE QUOTIENT
12617 ER3 AC,SN ;C(AC) WAS CLOBBERED
12618 SKIPE <AC+1>&17 ;EXAMINE REMAINDER
12619 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
12620 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
12621 >
12622
12623 014601 SN=SN+1
12624 000002 ZZ=ZZ+ZZ
12625 040574 254 02 1 00 045313 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12626 040575 201 06 0 00 000002 MOVEI AC,ZZ ;SETUP HIGH DVND
12627 040576 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
12628 040577 201 05 0 00 000002 MOVEI AC-1,ZZ ;SETUP DVSR
12629 040600 234 06 0 00 000005 DIV AC,AC-1 ;DIVIDE ZZ BY ZZ
12630 040601 265 04 0 00 040602 JSP AC-2,.+1
12631 040602 255 10 0 00 040604 JOV .+2 ;TEST AROV FLAG
12632 040603 013 04 0 00 014601 ER13 AC-2,SN
12633 040604 607 04 0 00 000040 TLNN AC-2,DCK
12634 040605 013 04 0 00 014601 ER13 AC-2,SN ;DCK FAILED TO SET
12635 040606 302 06 0 00 000002 CAIE AC,ZZ ;EXAMINE QUOTIENT
12636 040607 003 06 0 00 014601 ER3 AC,SN ;C(AC) WAS CLOBBERED
12637 040610 332 00 0 00 000007 SKIPE <AC+1>&17 ;EXAMINE REMAINDER
12638 040611 004 07 0 00 014601 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
12639 040612 321 10 0 00 040574 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
12640
12641
12642 014602 SN=SN+1
12643 000004 ZZ=ZZ+ZZ
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 57-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0278
12644 040613 254 02 1 00 045314 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12645 040614 201 06 0 00 000004 MOVEI AC,ZZ ;SETUP HIGH DVND
12646 040615 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
12647 040616 201 05 0 00 000004 MOVEI AC-1,ZZ ;SETUP DVSR
12648 040617 234 06 0 00 000005 DIV AC,AC-1 ;DIVIDE ZZ BY ZZ
12649 040620 265 04 0 00 040621 JSP AC-2,.+1
12650 040621 255 10 0 00 040623 JOV .+2 ;TEST AROV FLAG
12651 040622 013 04 0 00 014602 ER13 AC-2,SN
12652 040623 607 04 0 00 000040 TLNN AC-2,DCK
12653 040624 013 04 0 00 014602 ER13 AC-2,SN ;DCK FAILED TO SET
12654 040625 302 06 0 00 000004 CAIE AC,ZZ ;EXAMINE QUOTIENT
12655 040626 003 06 0 00 014602 ER3 AC,SN ;C(AC) WAS CLOBBERED
12656 040627 332 00 0 00 000007 SKIPE <AC+1>&17 ;EXAMINE REMAINDER
12657 040630 004 07 0 00 014602 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
12658 040631 321 10 0 00 040613 JUMPL AC+2,.-^D14 ;LOOP ON ERROR SWITCH
12659
12660 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 57-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0279
12661 ;=2
12662 ;HIGH DVND = 4
12663 ;LOW DVND = 4
12664 ;DVSR = 10,20
12665
12666 000005 AC=5
12667 SAVEAC (1,1)^
12668 040632 201 07 0 00 040632 MOVEI AC+2,. ;SAVE TEST PC
12669 040633 202 07 0 00 030051 MOVEM AC+2,TESTPC
12670 040634 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12671 040635 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12672 040636 254 02 1 00 045315 JRSTF @[.+1] ;CLEAR ALL FLAGS
12673
12674 014700 SN=14700
12675 000004 ZZ=4
12676
12677 F14700: REPEAT ^D2,<
12678 SN=SN+1
12679 ZZ=ZZ+ZZ
12680 MOVEI AC-2,4 ;SETUP FOR COMPARISON
12681 MOVEI AC,4 ;SETUP HIGH DVND
12682 MOVEI AC+1,4 ;SETUP LOW DVND
12683 MOVEI AC-1,ZZ ;SETUP DVSR
12684 DIV AC,AC-1 ;DIVIDE (N) BY ZZ
12685 CAME AC+1,AC-2 ;TEST REMD = 2
12686 ER4 AC+1,SN
12687 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12688 >
12689
12690 014701 SN=SN+1
12691 000010 ZZ=ZZ+ZZ
12692 040637 201 03 0 00 000004 MOVEI AC-2,4 ;SETUP FOR COMPARISON
12693 040640 201 05 0 00 000004 MOVEI AC,4 ;SETUP HIGH DVND
12694 040641 201 06 0 00 000004 MOVEI AC+1,4 ;SETUP LOW DVND
12695 040642 201 04 0 00 000010 MOVEI AC-1,ZZ ;SETUP DVSR
12696 040643 234 05 0 00 000004 DIV AC,AC-1 ;DIVIDE (N) BY ZZ
12697 040644 312 06 0 00 000003 CAME AC+1,AC-2 ;TEST REMD = 2
12698 040645 004 06 0 00 014701 ER4 AC+1,SN
12699 040646 321 07 0 00 040637 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12700
12701
12702 014702 SN=SN+1
12703 000020 ZZ=ZZ+ZZ
12704 040647 201 03 0 00 000004 MOVEI AC-2,4 ;SETUP FOR COMPARISON
12705 040650 201 05 0 00 000004 MOVEI AC,4 ;SETUP HIGH DVND
12706 040651 201 06 0 00 000004 MOVEI AC+1,4 ;SETUP LOW DVND
12707 040652 201 04 0 00 000020 MOVEI AC-1,ZZ ;SETUP DVSR
12708 040653 234 05 0 00 000004 DIV AC,AC-1 ;DIVIDE (N) BY ZZ
12709 040654 312 06 0 00 000003 CAME AC+1,AC-2 ;TEST REMD = 2
12710 040655 004 06 0 00 014702 ER4 AC+1,SN
12711 040656 321 07 0 00 040647 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
12712
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 58
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0280
12713 ;HIGH DVND = -1
12714 ;LOW DVND = -4,-10
12715 ;DVSR = 2
12716
12717 000013 AC=13
12718 SAVEAC (1,1)^
12719 040657 201 15 0 00 040657 MOVEI AC+2,. ;SAVE TEST PC
12720 040660 202 15 0 00 030051 MOVEM AC+2,TESTPC
12721 040661 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12722 040662 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12723
12724 015000 SN=15000
12725 777777 777777 XX=-1
12726 777777 777776 ZZ=-2
12727
12728 F15000: REPEAT ^D2,<
12729 SN=SN+1
12730 XX=XX+XX
12731 ZZ=ZZ+ZZ
12732 HRROI AC-2,XX ;SETUP FOR COMPARISON
12733 SETO AC, ;SETUP HIGH DVND
12734 HRROI AC+1,ZZ ;SETUP LOW DVND
12735 MOVEI AC-1,2 ;SETUP DVSR
12736 DIV AC,AC-1 ;DIVIDE ZZ BY 2
12737 SKIPE AC+1 ;TEST REMD = 0
12738 ER4 AC+1,SN
12739 CAME AC,AC-2 ;TEST QUOT
12740 ER3 AC,SN
12741 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12742 >
12743
12744 015001 SN=SN+1
12745 777777 777776 XX=XX+XX
12746 777777 777774 ZZ=ZZ+ZZ
12747 040663 561 11 0 00 777776 HRROI AC-2,XX ;SETUP FOR COMPARISON
12748 040664 474 13 0 00 000000 SETO AC, ;SETUP HIGH DVND
12749 040665 561 14 0 00 777774 HRROI AC+1,ZZ ;SETUP LOW DVND
12750 040666 201 12 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12751 040667 234 13 0 00 000012 DIV AC,AC-1 ;DIVIDE ZZ BY 2
12752 040670 332 00 0 00 000014 SKIPE AC+1 ;TEST REMD = 0
12753 040671 004 14 0 00 015001 ER4 AC+1,SN
12754 040672 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT
12755 040673 003 13 0 00 015001 ER3 AC,SN
12756 040674 321 15 0 00 040663 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12757
12758
12759 015002 SN=SN+1
12760 777777 777774 XX=XX+XX
12761 777777 777770 ZZ=ZZ+ZZ
12762 040675 561 11 0 00 777774 HRROI AC-2,XX ;SETUP FOR COMPARISON
12763 040676 474 13 0 00 000000 SETO AC, ;SETUP HIGH DVND
12764 040677 561 14 0 00 777770 HRROI AC+1,ZZ ;SETUP LOW DVND
12765 040700 201 12 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
12766 040701 234 13 0 00 000012 DIV AC,AC-1 ;DIVIDE ZZ BY 2
12767 040702 332 00 0 00 000014 SKIPE AC+1 ;TEST REMD = 0
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 58-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0281
12768 040703 004 14 0 00 015002 ER4 AC+1,SN
12769 040704 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT
12770 040705 003 13 0 00 015002 ER3 AC,SN
12771 040706 321 15 0 00 040675 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
12772
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 59
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0282
12773 ;HIGH DVND = -1
12774 ;LOW DVND = 2,4
12775 ;DVSR = -2,-4
12776
12777 000014 AC=14
12778 SAVEAC (1,1)^
12779 040707 201 16 0 00 040707 MOVEI AC+2,. ;SAVE TEST PC
12780 040710 202 16 0 00 030051 MOVEM AC+2,TESTPC
12781 040711 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12782 040712 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12783
12784 015100 SN=15100
12785 777777 777777 XX=-1
12786 377777 YY=377777
12787 000001 ZZ=1
12788
12789 F15100: REPEAT ^D2,<
12790 SN=SN+1
12791 XX=XX+XX
12792 YY=YY/2
12793 ZZ=ZZ+ZZ
12794 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12795 SETO AC, ;SETUP HIGH DVND
12796 MOVEI AC+1,ZZ ;SETUP LOW DVND
12797 HRROI AC-1,XX ;SETUP DVSR
12798 HRLOI AC-3,YY
12799 DIV AC,AC-1 ;DIVIDE (-N) BY (XX)
12800 JSP AC-2,.+1
12801 CAME AC,<AC-3>&17
12802 ER3 AC,SN ;C(AC) FAILED
12803 CAIE AC+1,0
12804 ER4 AC+1,SN ;C(AC+1) FAILED
12805 JOV .+2 ;TEST AROV FLAG
12806 JRST ,.+2
12807 ER13 AC-2,SN ;AROV SET
12808 TLNE AC-2,DCK
12809 ER13 AC-2,SN ;DCK SET
12810 JUMPL AC+2,.-^D16 ;LOOP ON ERROR SWITCH
12811 >
12812
12813 015101 SN=SN+1
12814 777777 777776 XX=XX+XX
12815 177777 YY=YY/2
12816 000002 ZZ=ZZ+ZZ
12817 040713 254 02 1 00 045316 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12818 040714 474 14 0 00 000000 SETO AC, ;SETUP HIGH DVND
12819 040715 201 15 0 00 000002 MOVEI AC+1,ZZ ;SETUP LOW DVND
12820 040716 561 13 0 00 777776 HRROI AC-1,XX ;SETUP DVSR
12821 040717 525 11 0 00 177777 HRLOI AC-3,YY
12822 040720 234 14 0 00 000013 DIV AC,AC-1 ;DIVIDE (-N) BY (XX)
12823 040721 265 12 0 00 040722 JSP AC-2,.+1
12824 040722 312 14 0 00 000011 CAME AC,<AC-3>&17
12825 040723 003 14 0 00 015101 ER3 AC,SN ;C(AC) FAILED
12826 040724 302 15 0 00 000000 CAIE AC+1,0
12827 040725 004 15 0 00 015101 ER4 AC+1,SN ;C(AC+1) FAILED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 59-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0283
12828 040726 255 10 0 00 040730 JOV .+2 ;TEST AROV FLAG
12829 040727 254 00 0 00 040731 JRST ,.+2
12830 040730 013 12 0 00 015101 ER13 AC-2,SN ;AROV SET
12831 040731 603 12 0 00 000040 TLNE AC-2,DCK
12832 040732 013 12 0 00 015101 ER13 AC-2,SN ;DCK SET
12833 040733 321 16 0 00 040713 JUMPL AC+2,.-^D16 ;LOOP ON ERROR SWITCH
12834
12835
12836 015102 SN=SN+1
12837 777777 777774 XX=XX+XX
12838 077777 YY=YY/2
12839 000004 ZZ=ZZ+ZZ
12840 040734 254 02 1 00 045317 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12841 040735 474 14 0 00 000000 SETO AC, ;SETUP HIGH DVND
12842 040736 201 15 0 00 000004 MOVEI AC+1,ZZ ;SETUP LOW DVND
12843 040737 561 13 0 00 777774 HRROI AC-1,XX ;SETUP DVSR
12844 040740 525 11 0 00 077777 HRLOI AC-3,YY
12845 040741 234 14 0 00 000013 DIV AC,AC-1 ;DIVIDE (-N) BY (XX)
12846 040742 265 12 0 00 040743 JSP AC-2,.+1
12847 040743 312 14 0 00 000011 CAME AC,<AC-3>&17
12848 040744 003 14 0 00 015102 ER3 AC,SN ;C(AC) FAILED
12849 040745 302 15 0 00 000000 CAIE AC+1,0
12850 040746 004 15 0 00 015102 ER4 AC+1,SN ;C(AC+1) FAILED
12851 040747 255 10 0 00 040751 JOV .+2 ;TEST AROV FLAG
12852 040750 254 00 0 00 040752 JRST ,.+2
12853 040751 013 12 0 00 015102 ER13 AC-2,SN ;AROV SET
12854 040752 603 12 0 00 000040 TLNE AC-2,DCK
12855 040753 013 12 0 00 015102 ER13 AC-2,SN ;DCK SET
12856 040754 321 16 0 00 040734 JUMPL AC+2,.-^D16 ;LOOP ON ERROR SWITCH
12857
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 60
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0284
12858 ;HIGH DVND = -2,-4
12859 ;LOW DVND = -1
12860 ;DVSR = 2,4
12861
12862 000012 AC=12
12863 SAVEAC (1,1)^
12864 040755 201 14 0 00 040755 MOVEI AC+2,. ;SAVE TEST PC
12865 040756 202 14 0 00 030051 MOVEM AC+2,TESTPC
12866 040757 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12867 040760 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12868 040761 254 02 1 00 045320 JRSTF @[.+1] ;CLEAR ALL FLAGS
12869
12870 015200 SN=15200
12871 000001 XX=1
12872 400000 000000 YY=1B0
12873 777777 777777 ZZ=-1
12874
12875 F15200: REPEAT ^D2,<
12876 SN=SN+1
12877 XX=XX+XX
12878 YY=YY_-1
12879 ZZ=ZZ+ZZ
12880 HRROI AC,ZZ ;SETUP HIGH DVND
12881 SETO AC+1, ;SETUP LOW DVND
12882 MOVEI AC-1,XX ;SETUP DVSR
12883 DIV AC,AC-1 ;DIVIDE (-N) BY (XX)
12884 CAME AC,[1B0+YY] ;TEST FOR ODD NUMBER QUOTIENT
12885 ER3 AC,SN
12886 CAME AC+1,[-1] ;TEST REMD
12887 ER4 AC+1,SN
12888 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12889 >
12890
12891 015201 SN=SN+1
12892 000002 XX=XX+XX
12893 200000 000000 YY=YY_-1
12894 777777 777776 ZZ=ZZ+ZZ
12895 040762 561 12 0 00 777776 HRROI AC,ZZ ;SETUP HIGH DVND
12896 040763 474 13 0 00 000000 SETO AC+1, ;SETUP LOW DVND
12897 040764 201 11 0 00 000002 MOVEI AC-1,XX ;SETUP DVSR
12898 040765 234 12 0 00 000011 DIV AC,AC-1 ;DIVIDE (-N) BY (XX)
12899 040766 312 12 0 00 044762 CAME AC,[1B0+YY] ;TEST FOR ODD NUMBER QUOTIENT
12900 040767 003 12 0 00 015201 ER3 AC,SN
12901 040770 312 13 0 00 044617 CAME AC+1,[-1] ;TEST REMD
12902 040771 004 13 0 00 015201 ER4 AC+1,SN
12903 040772 321 14 0 00 040762 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12904
12905
12906 015202 SN=SN+1
12907 000004 XX=XX+XX
12908 100000 000000 YY=YY_-1
12909 777777 777774 ZZ=ZZ+ZZ
12910 040773 561 12 0 00 777774 HRROI AC,ZZ ;SETUP HIGH DVND
12911 040774 474 13 0 00 000000 SETO AC+1, ;SETUP LOW DVND
12912 040775 201 11 0 00 000004 MOVEI AC-1,XX ;SETUP DVSR
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 60-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0285
12913 040776 234 12 0 00 000011 DIV AC,AC-1 ;DIVIDE (-N) BY (XX)
12914 040777 312 12 0 00 044757 CAME AC,[1B0+YY] ;TEST FOR ODD NUMBER QUOTIENT
12915 041000 003 12 0 00 015202 ER3 AC,SN
12916 041001 312 13 0 00 044617 CAME AC+1,[-1] ;TEST REMD
12917 041002 004 13 0 00 015202 ER4 AC+1,SN
12918 041003 321 14 0 00 040773 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
12919
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 63
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0286
12920 ;OPERANDS SELECTED SHOULD RESULT
12921 ;IN OVERFLOW
12922 ;HIGH DVND = -100,-40
12923 ;LOW DVND = 0
12924 ;DVSR = 100,40
12925
12926 000006 AC=6
12927 SAVEAC (1,1)^
12928 041004 201 10 0 00 041004 MOVEI AC+2,. ;SAVE TEST PC
12929 041005 202 10 0 00 030051 MOVEM AC+2,TESTPC
12930 041006 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12931 041007 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12932
12933 015600 SN=15600
12934 777777 777600 WW=-200
12935 000200 XX=200
12936 777777 777600 ZZ=-200
12937
12938 F15600: REPEAT ^D2,<
12939 SN=SN+1
12940 WW=WW/2
12941 XX=XX/2
12942 ZZ=ZZ/2
12943 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12944 HRROI AC-2,WW ;SETUP AC-2 FOR COMPARISON
12945 HRROI AC,ZZ ;SETUP HIGH DVND
12946 SETZ AC+1, ;SETUP LOW DVND
12947 MOVEI AC-1,XX ;SETUP DVSR
12948 DIV AC,AC-1 ;DIVIDE (-N) BY (N)
12949 JSP AC-3,.+1
12950 JOV .+2 ;TEST FOR OVERFLOW
12951 ER13 AC-3,SN
12952 TLNN AC-3,DCK
12953 ER13 AC-3,SN ;DCK NOT SET
12954 CAME AC,AC-2 ;TEST FOR UNIQUE QUOTIENT
12955 ER3 AC,SN
12956 CAIE AC+1,0
12957 ER4 AC+1,SN ;C(AC+1) FAILED
12958 JUMPL AC+2,.-^D16 ;LOOP ON ERROR SWITCH
12959 >
12960
12961 015601 SN=SN+1
12962 777777 777700 WW=WW/2
12963 000100 XX=XX/2
12964 777777 777700 ZZ=ZZ/2
12965 041010 254 02 1 00 045321 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12966 041011 561 04 0 00 777700 HRROI AC-2,WW ;SETUP AC-2 FOR COMPARISON
12967 041012 561 06 0 00 777700 HRROI AC,ZZ ;SETUP HIGH DVND
12968 041013 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
12969 041014 201 05 0 00 000100 MOVEI AC-1,XX ;SETUP DVSR
12970 041015 234 06 0 00 000005 DIV AC,AC-1 ;DIVIDE (-N) BY (N)
12971 041016 265 03 0 00 041017 JSP AC-3,.+1
12972 041017 255 10 0 00 041021 JOV .+2 ;TEST FOR OVERFLOW
12973 041020 013 03 0 00 015601 ER13 AC-3,SN
12974 041021 607 03 0 00 000040 TLNN AC-3,DCK
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 63-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0287
12975 041022 013 03 0 00 015601 ER13 AC-3,SN ;DCK NOT SET
12976 041023 312 06 0 00 000004 CAME AC,AC-2 ;TEST FOR UNIQUE QUOTIENT
12977 041024 003 06 0 00 015601 ER3 AC,SN
12978 041025 302 07 0 00 000000 CAIE AC+1,0
12979 041026 004 07 0 00 015601 ER4 AC+1,SN ;C(AC+1) FAILED
12980 041027 321 10 0 00 041007 JUMPL AC+2,.-^D16 ;LOOP ON ERROR SWITCH
12981
12982
12983 015602 SN=SN+1
12984 777777 777740 WW=WW/2
12985 000040 XX=XX/2
12986 777777 777740 ZZ=ZZ/2
12987 041030 254 02 1 00 045322 JRSTF @[.+1] ;CLR ALL FLAGS, EXEC NEXT INST
12988 041031 561 04 0 00 777740 HRROI AC-2,WW ;SETUP AC-2 FOR COMPARISON
12989 041032 561 06 0 00 777740 HRROI AC,ZZ ;SETUP HIGH DVND
12990 041033 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
12991 041034 201 05 0 00 000040 MOVEI AC-1,XX ;SETUP DVSR
12992 041035 234 06 0 00 000005 DIV AC,AC-1 ;DIVIDE (-N) BY (N)
12993 041036 265 03 0 00 041037 JSP AC-3,.+1
12994 041037 255 10 0 00 041041 JOV .+2 ;TEST FOR OVERFLOW
12995 041040 013 03 0 00 015602 ER13 AC-3,SN
12996 041041 607 03 0 00 000040 TLNN AC-3,DCK
12997 041042 013 03 0 00 015602 ER13 AC-3,SN ;DCK NOT SET
12998 041043 312 06 0 00 000004 CAME AC,AC-2 ;TEST FOR UNIQUE QUOTIENT
12999 041044 003 06 0 00 015602 ER3 AC,SN
13000 041045 302 07 0 00 000000 CAIE AC+1,0
13001 041046 004 07 0 00 015602 ER4 AC+1,SN ;C(AC+1) FAILED
13002 041047 321 10 0 00 041027 JUMPL AC+2,.-^D16 ;LOOP ON ERROR SWITCH
13003
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 64
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0288
13004 ;OPERANDS SELECTED SHOULD RESULT IN OVERFLOW
13005 ;HIGH DVND = -2,-4
13006 ;LOW DVND = 0
13007 ;DVSR = 2
13008
13009 000005 AC=5
13010 SAVEAC (1,1)^
13011 041050 201 07 0 00 041050 MOVEI AC+2,. ;SAVE TEST PC
13012 041051 202 07 0 00 030051 MOVEM AC+2,TESTPC
13013 041052 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13014 041053 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13015
13016 015700 SN=15700
13017 777777 777777 XX=-1
13018 777777 777777 ZZ=-1
13019
13020 F15700: REPEAT ^D2,<
13021 SN=SN+1
13022 XX=XX+XX
13023 ZZ=ZZ+ZZ
13024 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13025 HRROI AC,ZZ ;SETUP HIGH DVND
13026 SETZ AC+1, ;SETUP LOW DVND
13027 MOVEI AC-1,2 ;SETUP DVSR
13028 DIV AC,AC-1 ;DIVIDE (-N) BY 2
13029 JSP AC-2,.+1
13030 JOV .+2 ;TEST FOR OVERFLOW
13031 ER13 AC-2,SN
13032 CAME AC,[XX] ;TEST QUOT
13033 ER3 AC,SN
13034 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13035 >
13036
13037 015701 SN=SN+1
13038 777777 777776 XX=XX+XX
13039 777777 777776 ZZ=ZZ+ZZ
13040 041054 254 02 1 00 045323 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13041 041055 561 05 0 00 777776 HRROI AC,ZZ ;SETUP HIGH DVND
13042 041056 400 06 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
13043 041057 201 04 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
13044 041060 234 05 0 00 000004 DIV AC,AC-1 ;DIVIDE (-N) BY 2
13045 041061 265 03 0 00 041062 JSP AC-2,.+1
13046 041062 255 10 0 00 041064 JOV .+2 ;TEST FOR OVERFLOW
13047 041063 013 03 0 00 015701 ER13 AC-2,SN
13048 041064 312 05 0 00 044621 CAME AC,[XX] ;TEST QUOT
13049 041065 003 05 0 00 015701 ER3 AC,SN
13050 041066 321 07 0 00 041054 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13051
13052
13053 015702 SN=SN+1
13054 777777 777774 XX=XX+XX
13055 777777 777774 ZZ=ZZ+ZZ
13056 041067 254 02 1 00 045324 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13057 041070 561 05 0 00 777774 HRROI AC,ZZ ;SETUP HIGH DVND
13058 041071 400 06 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 64-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0289
13059 041072 201 04 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
13060 041073 234 05 0 00 000004 DIV AC,AC-1 ;DIVIDE (-N) BY 2
13061 041074 265 03 0 00 041075 JSP AC-2,.+1
13062 041075 255 10 0 00 041077 JOV .+2 ;TEST FOR OVERFLOW
13063 041076 013 03 0 00 015702 ER13 AC-2,SN
13064 041077 312 05 0 00 045325 CAME AC,[XX] ;TEST QUOT
13065 041100 003 05 0 00 015702 ER3 AC,SN
13066 041101 321 07 0 00 041067 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13067
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 66
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0290
13068 ;OPERANDS SELECTED WILL NOT OVERFLOW
13069 ;HIGH DVND = -1,-2
13070 ;LOW DVND = -1
13071 ;DVSR = -1,-2
13072
13073 000014 AC=14
13074 SAVEAC (1,1)^
13075 041102 201 16 0 00 041102 MOVEI AC+2,. ;SAVE TEST PC
13076 041103 202 16 0 00 030051 MOVEM AC+2,TESTPC
13077 041104 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13078 041105 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13079
13080 016100 SN=16100
13081 000000 ZZ=0
13082
13083 F16100: REPEAT ^D2,<
13084 SN=SN+1
13085 ZZ=ZZ+ZZ
13086 IFE ZZ,<ZZ=-1>
13087 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13088 HRROI AC,ZZ ;SETUP HIGH DVND
13089 SETO AC+1, ;SETUP LOW DVND
13090 HRROI AC-1,ZZ ;SETUP DVSR
13091 DIV AC,AC-1 ;DIVIDE (-N) BY (-N)
13092 JSP AC-3,.+1
13093 JOV .+2 ;TEST FOR OVERFLOW
13094 JRST ,.+2
13095 ER13 AC-3,SN
13096 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13097 >
13098
13099 016101 SN=SN+1
13100 000000 ZZ=ZZ+ZZ
13101 777777 777777 IFE ZZ,<ZZ=-1>
13102 041106 254 02 1 00 045326 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13103 041107 561 14 0 00 777777 HRROI AC,ZZ ;SETUP HIGH DVND
13104 041110 474 15 0 00 000000 SETO AC+1, ;SETUP LOW DVND
13105 041111 561 13 0 00 777777 HRROI AC-1,ZZ ;SETUP DVSR
13106 041112 234 14 0 00 000013 DIV AC,AC-1 ;DIVIDE (-N) BY (-N)
13107 041113 265 11 0 00 041114 JSP AC-3,.+1
13108 041114 255 10 0 00 041116 JOV .+2 ;TEST FOR OVERFLOW
13109 041115 254 00 0 00 041117 JRST ,.+2
13110 041116 013 11 0 00 016101 ER13 AC-3,SN
13111 041117 321 16 0 00 041106 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13112
13113
13114 016102 SN=SN+1
13115 777777 777776 ZZ=ZZ+ZZ
13116 IFE ZZ,<ZZ=-1>
13117 041120 254 02 1 00 045327 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13118 041121 561 14 0 00 777776 HRROI AC,ZZ ;SETUP HIGH DVND
13119 041122 474 15 0 00 000000 SETO AC+1, ;SETUP LOW DVND
13120 041123 561 13 0 00 777776 HRROI AC-1,ZZ ;SETUP DVSR
13121 041124 234 14 0 00 000013 DIV AC,AC-1 ;DIVIDE (-N) BY (-N)
13122 041125 265 11 0 00 041126 JSP AC-3,.+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 66-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0291
13123 041126 255 10 0 00 041130 JOV .+2 ;TEST FOR OVERFLOW
13124 041127 254 00 0 00 041131 JRST ,.+2
13125 041130 013 11 0 00 016102 ER13 AC-3,SN
13126 041131 321 16 0 00 041120 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13127
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 67
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0292
13128 ;TEST DIV-IMMEDIATE MODE
13129 ;TEST ABILITY TO DIVIDE BY E
13130 ;VICE C(E)
13131 ;TEST ABILITY TO INHIBIT ASSERTION
13132 ;OF IRMDFCE
13133
13134 016200 SN=16200
13135 000007 AC=7
13136 000017 ZZ=17
13137
13138 ;TEST DIV-IMM MODE
13139 F16200: REPEAT ^D2,<
13140 SN=SN+1
13141 AC=AC-1
13142 ZZ=ZZ-1
13143 SAVEAC (1,1) ;SAVE ERROR AC
13144 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13145 MOVEI AC,4 ;SETUP HIGH DVND
13146 SETZ AC+1, ;SETUP LOW DVND
13147 MOVEI AC-1,2 ;SETUP OVERFLOW CONDITION
13148 DIVI AC,ZZ ;DIVIDE (N) BY E
13149 JSP AC-3,.+1
13150 JOV .+2 ;TEST FOR OVERFLOW
13151 JRST ,.+2 ;DIVIDED BY E
13152 ER13 AC-3,SN ;DIVIDED BY C(E)
13153 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13154 >
13155
13156 016201 SN=SN+1
13157 000006 AC=AC-1
13158 000016 ZZ=ZZ-1
13159 SAVEAC (1,1)^
13160 041132 201 10 0 00 041132 MOVEI AC+2,. ;SAVE TEST PC
13161 041133 202 10 0 00 030051 MOVEM AC+2,TESTPC
13162 041134 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13163 041135 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ ;SAVE ERROR AC
13164 041136 254 02 1 00 045330 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13165 041137 201 06 0 00 000004 MOVEI AC,4 ;SETUP HIGH DVND
13166 041140 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
13167 041141 201 05 0 00 000002 MOVEI AC-1,2 ;SETUP OVERFLOW CONDITION
13168 041142 235 06 0 00 000016 DIVI AC,ZZ ;DIVIDE (N) BY E
13169 041143 265 03 0 00 041144 JSP AC-3,.+1
13170 041144 255 10 0 00 041146 JOV .+2 ;TEST FOR OVERFLOW
13171 041145 254 00 0 00 041147 JRST ,.+2 ;DIVIDED BY E
13172 041146 013 03 0 00 016201 ER13 AC-3,SN ;DIVIDED BY C(E)
13173 041147 321 10 0 00 041136 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13174
13175
13176 016202 SN=SN+1
13177 000005 AC=AC-1
13178 000015 ZZ=ZZ-1
13179 SAVEAC (1,1)^
13180 041150 201 07 0 00 041150 MOVEI AC+2,. ;SAVE TEST PC
13181 041151 202 07 0 00 030051 MOVEM AC+2,TESTPC
13182 041152 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 67-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0293
13183 041153 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ ;SAVE ERROR AC
13184 041154 254 02 1 00 045331 JRSTF @[.+1] ;CLR ALL FLGS, EXEC NEXT INST
13185 041155 201 05 0 00 000004 MOVEI AC,4 ;SETUP HIGH DVND
13186 041156 400 06 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
13187 041157 201 04 0 00 000002 MOVEI AC-1,2 ;SETUP OVERFLOW CONDITION
13188 041160 235 05 0 00 000015 DIVI AC,ZZ ;DIVIDE (N) BY E
13189 041161 265 02 0 00 041162 JSP AC-3,.+1
13190 041162 255 10 0 00 041164 JOV .+2 ;TEST FOR OVERFLOW
13191 041163 254 00 0 00 041165 JRST ,.+2 ;DIVIDED BY E
13192 041164 013 02 0 00 016202 ER13 AC-3,SN ;DIVIDED BY C(E)
13193 041165 321 07 0 00 041154 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13194
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 68
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0294
13195 ;TEST DIV-MEMORY MODE
13196 ;TEST ABILITY TO ASSERT IRMDSCE
13197 ;TEST ABILITY TO ASSERT IRMDSACINH
13198
13199 000005 AC=5
13200 SAVEAC (1,1)^
13201 041166 201 07 0 00 041166 MOVEI AC+2,. ;SAVE TEST PC
13202 041167 202 07 0 00 030051 MOVEM AC+2,TESTPC
13203 041170 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13204 041171 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13205 041172 254 02 1 00 045332 JRSTF @[.+1] ;CLEAR ALL FLAGS
13206
13207 016300 SN=16300
13208 010000 XX=10000
13209 000002 ZZ=2
13210
13211 ;TEST DIV-MEM MODE
13212 F16300: REPEAT ^D2,<
13213 SN=SN+1
13214 XX=XX+XX
13215 ZZ=ZZ+ZZ
13216 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13217 MOVEI AC,ZZ ;SETUP HIGH DVND
13218 MOVEI AC+1,ZZ ;SETUP LOW DVND
13219 MOVEI AC-1,100 ;SETUP DVSR
13220 DIVM AC,AC-1 ;DIVIDE (+N) BY 100
13221 CAME AC-1,AC-2 ;TEST SCE
13222 ER5 AC-1,SN
13223 CAME AC,AC+1 ;TEST SAC INH
13224 ER3 AC,SN
13225 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13226 >
13227
13228 016301 SN=SN+1
13229 020000 XX=XX+XX
13230 000004 ZZ=ZZ+ZZ
13231 041173 205 03 0 00 020000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13232 041174 201 05 0 00 000004 MOVEI AC,ZZ ;SETUP HIGH DVND
13233 041175 201 06 0 00 000004 MOVEI AC+1,ZZ ;SETUP LOW DVND
13234 041176 201 04 0 00 000100 MOVEI AC-1,100 ;SETUP DVSR
13235 041177 236 05 0 00 000004 DIVM AC,AC-1 ;DIVIDE (+N) BY 100
13236 041200 312 04 0 00 000003 CAME AC-1,AC-2 ;TEST SCE
13237 041201 005 04 0 00 016301 ER5 AC-1,SN
13238 041202 312 05 0 00 000006 CAME AC,AC+1 ;TEST SAC INH
13239 041203 003 05 0 00 016301 ER3 AC,SN
13240 041204 321 07 0 00 041173 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13241
13242
13243 016302 SN=SN+1
13244 040000 XX=XX+XX
13245 000010 ZZ=ZZ+ZZ
13246 041205 205 03 0 00 040000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13247 041206 201 05 0 00 000010 MOVEI AC,ZZ ;SETUP HIGH DVND
13248 041207 201 06 0 00 000010 MOVEI AC+1,ZZ ;SETUP LOW DVND
13249 041210 201 04 0 00 000100 MOVEI AC-1,100 ;SETUP DVSR
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 68-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0295
13250 041211 236 05 0 00 000004 DIVM AC,AC-1 ;DIVIDE (+N) BY 100
13251 041212 312 04 0 00 000003 CAME AC-1,AC-2 ;TEST SCE
13252 041213 005 04 0 00 016302 ER5 AC-1,SN
13253 041214 312 05 0 00 000006 CAME AC,AC+1 ;TEST SAC INH
13254 041215 003 05 0 00 016302 ER3 AC,SN
13255 041216 321 07 0 00 041205 JUMPL AC+2,.-^D9 ;LOOP ON ERROR SWITCH
13256
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 69
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0296
13257 ;TEST DIV-BOTH MODE
13258 ;TEST ABILITY TO STORE QUOT
13259 ;IN AC,E
13260 ;TEST ABILITY TO STORE REMD
13261 ;IN AC+1
13262
13263 000014 AC=14
13264 SAVEAC (1,1)^
13265 041217 201 16 0 00 041217 MOVEI AC+2,. ;SAVE TEST PC
13266 041220 202 16 0 00 030051 MOVEM AC+2,TESTPC
13267 041221 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13268 041222 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13269
13270 016400 SN=16400
13271 000002 ZZ=2
13272
13273 ;TEST DIV-BOTH MODE
13274 F16400: REPEAT ^D2,<
13275 SN=SN+1
13276 ZZ=ZZ+ZZ
13277 MOVEI AC,ZZ ;SETUP HIGH DVND
13278 MOVEI AC+1,100 ;SETUP LOW DVND
13279 MOVEI AC-1,100 ;SETUP DVSR
13280 DIVB AC,AC-1 ;DIVIDE (+N) BY 100
13281 CAME AC,AC-1 ;TEST STORE QUOTIENT
13282 ER3 AC,SN ;STORE QUOTIENT FAILED
13283 SKIPE AC+1 ;TEST STORE REMAINDER
13284 ER4 AC+1,SN ;STORE REMAINDER FAILED
13285 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13286 >
13287
13288 016401 SN=SN+1
13289 000004 ZZ=ZZ+ZZ
13290 041223 201 14 0 00 000004 MOVEI AC,ZZ ;SETUP HIGH DVND
13291 041224 201 15 0 00 000100 MOVEI AC+1,100 ;SETUP LOW DVND
13292 041225 201 13 0 00 000100 MOVEI AC-1,100 ;SETUP DVSR
13293 041226 237 14 0 00 000013 DIVB AC,AC-1 ;DIVIDE (+N) BY 100
13294 041227 312 14 0 00 000013 CAME AC,AC-1 ;TEST STORE QUOTIENT
13295 041230 003 14 0 00 016401 ER3 AC,SN ;STORE QUOTIENT FAILED
13296 041231 332 00 0 00 000015 SKIPE AC+1 ;TEST STORE REMAINDER
13297 041232 004 15 0 00 016401 ER4 AC+1,SN ;STORE REMAINDER FAILED
13298 041233 321 16 0 00 041223 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13299
13300
13301 016402 SN=SN+1
13302 000010 ZZ=ZZ+ZZ
13303 041234 201 14 0 00 000010 MOVEI AC,ZZ ;SETUP HIGH DVND
13304 041235 201 15 0 00 000100 MOVEI AC+1,100 ;SETUP LOW DVND
13305 041236 201 13 0 00 000100 MOVEI AC-1,100 ;SETUP DVSR
13306 041237 237 14 0 00 000013 DIVB AC,AC-1 ;DIVIDE (+N) BY 100
13307 041240 312 14 0 00 000013 CAME AC,AC-1 ;TEST STORE QUOTIENT
13308 041241 003 14 0 00 016402 ER3 AC,SN ;STORE QUOTIENT FAILED
13309 041242 332 00 0 00 000015 SKIPE AC+1 ;TEST STORE REMAINDER
13310 041243 004 15 0 00 016402 ER4 AC+1,SN ;STORE REMAINDER FAILED
13311 041244 321 16 0 00 041234 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 69-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0297
13312
13313 PAGE
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 69-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - FRACTIONAL DIVIDE TEST SEQ 0298
13314 ;TEST DIVB (DIVIDE CHECK)
13315
13316 041245 254 02 1 00 045333 F16410: JRSTF @[.+1] ;CLEAR ALL FLAGS
13317 041246 201 14 0 00 000004 MOVEI AC,4 ;SETUP HIGH DIVIDEND
13318 041247 201 15 0 00 000001 MOVEI AC+1,1 ;SETUP LOW DIVIDEND
13319 041250 201 13 0 00 000001 MOVEI AC-1,1 ;SETUP DIVISOR
13320 041251 237 14 0 00 000013 DIVB AC,AC-1
13321 041252 265 12 0 00 041253 JSP AC-2,.+1 ;SAME FLAGS
13322 041253 302 14 0 00 000004 CAIE AC,4
13323 041254 003 14 0 00 016411 ER3 AC,16411 ;C(AC) WAS CLOBBERED
13324 041255 302 15 0 00 000001 CAIE AC+1,1
13325 041256 004 15 0 00 016411 ER4 AC+1,16411 ;C(AC+1) WAS CLOBBERED
13326 041257 302 13 0 00 000001 CAIE AC-1,1
13327 041260 005 13 0 00 016411 ER5 AC-1,16411 ;C(E) WAS CLOBBERED
13328 041261 255 10 0 00 041263 JOV .+2
13329 041262 013 12 0 00 016411 ER13 AC-2,16411 ;AROV FAILED TO SET
13330 041263 607 12 0 00 000040 TLNN AC-2,DCK ;DCK FAILED TO SET
13331 041264 013 12 0 00 016411 ER13 AC-2,16411
13332 041265 321 16 0 00 041245 JUMPL AC+2,F16410
13333
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 70
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0299
13334 SUBTTL DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST
13335
13336 ;TEST MUL DIRECT - TWO POSITIVES
13337 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
13338 ;0500000000000 BY A DECREASING MULTIPLIER
13339 ;PLIER=200000000000, 100000000000 (1/2, 1/4) ETC
13340 ;PLICAND=050000000000
13341 ;HIGH PROD=024000000000, 012000000000 ETC
13342 ;LOW PROD=0
13343
13344 000013 AC=13
13345 SAVEAC (1,1)^
13346 041266 201 15 0 00 041266 MOVEI AC+2,. ;SAVE TEST PC
13347 041267 202 15 0 00 030051 MOVEM AC+2,TESTPC
13348 041270 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13349 041271 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13350
13351 017100 SN=17100
13352 050000 XX=050000
13353 000000 ZZ=0
13354
13355 F17100: REPEAT ^D10,<
13356 SN=SN+1
13357 XX=XX/2
13358 ZZ=ZZ/2
13359 IFE ZZ,<ZZ=200000>
13360 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13361 MOVSI AC,ZZ ;SETUP PLIER
13362 MOVSI AC-1,050000 ;SETUP PLICAND
13363 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13364 SKIPE AC+1 ;TEST LOW PROD=0
13365 ER4 AC+1,SN
13366 CAME AC,AC-2 ;TEST HIGH PROD=XX
13367 ER3 AC,SN ;MUL FAILED
13368 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13369 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13370 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13371 >
13372
13373 017101 SN=SN+1
13374 024000 XX=XX/2
13375 000000 ZZ=ZZ/2
13376 200000 IFE ZZ,<ZZ=200000>
13377 041272 205 11 0 00 024000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13378 041273 205 13 0 00 200000 MOVSI AC,ZZ ;SETUP PLIER
13379 041274 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13380 041275 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13381 041276 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13382 041277 004 14 0 00 017101 ER4 AC+1,SN
13383 041300 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13384 041301 003 13 0 00 017101 ER3 AC,SN ;MUL FAILED
13385 041302 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13386 041303 005 12 0 00 017101 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13387 041304 321 15 0 00 041272 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13388
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 70-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0300
13389
13390 017102 SN=SN+1
13391 012000 XX=XX/2
13392 100000 ZZ=ZZ/2
13393 IFE ZZ,<ZZ=200000>
13394 041305 205 11 0 00 012000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13395 041306 205 13 0 00 100000 MOVSI AC,ZZ ;SETUP PLIER
13396 041307 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13397 041310 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13398 041311 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13399 041312 004 14 0 00 017102 ER4 AC+1,SN
13400 041313 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13401 041314 003 13 0 00 017102 ER3 AC,SN ;MUL FAILED
13402 041315 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13403 041316 005 12 0 00 017102 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13404 041317 321 15 0 00 041305 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13405
13406
13407 017103 SN=SN+1
13408 005000 XX=XX/2
13409 040000 ZZ=ZZ/2
13410 IFE ZZ,<ZZ=200000>
13411 041320 205 11 0 00 005000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13412 041321 205 13 0 00 040000 MOVSI AC,ZZ ;SETUP PLIER
13413 041322 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13414 041323 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13415 041324 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13416 041325 004 14 0 00 017103 ER4 AC+1,SN
13417 041326 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13418 041327 003 13 0 00 017103 ER3 AC,SN ;MUL FAILED
13419 041330 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13420 041331 005 12 0 00 017103 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13421 041332 321 15 0 00 041320 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13422
13423
13424 017104 SN=SN+1
13425 002400 XX=XX/2
13426 020000 ZZ=ZZ/2
13427 IFE ZZ,<ZZ=200000>
13428 041333 205 11 0 00 002400 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13429 041334 205 13 0 00 020000 MOVSI AC,ZZ ;SETUP PLIER
13430 041335 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13431 041336 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13432 041337 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13433 041340 004 14 0 00 017104 ER4 AC+1,SN
13434 041341 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13435 041342 003 13 0 00 017104 ER3 AC,SN ;MUL FAILED
13436 041343 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13437 041344 005 12 0 00 017104 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13438 041345 321 15 0 00 041333 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13439
13440
13441 017105 SN=SN+1
13442 001200 XX=XX/2
13443 010000 ZZ=ZZ/2
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 70-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0301
13444 IFE ZZ,<ZZ=200000>
13445 041346 205 11 0 00 001200 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13446 041347 205 13 0 00 010000 MOVSI AC,ZZ ;SETUP PLIER
13447 041350 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13448 041351 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13449 041352 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13450 041353 004 14 0 00 017105 ER4 AC+1,SN
13451 041354 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13452 041355 003 13 0 00 017105 ER3 AC,SN ;MUL FAILED
13453 041356 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13454 041357 005 12 0 00 017105 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13455 041360 321 15 0 00 041346 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13456
13457
13458 017106 SN=SN+1
13459 000500 XX=XX/2
13460 004000 ZZ=ZZ/2
13461 IFE ZZ,<ZZ=200000>
13462 041361 205 11 0 00 000500 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13463 041362 205 13 0 00 004000 MOVSI AC,ZZ ;SETUP PLIER
13464 041363 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13465 041364 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13466 041365 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13467 041366 004 14 0 00 017106 ER4 AC+1,SN
13468 041367 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13469 041370 003 13 0 00 017106 ER3 AC,SN ;MUL FAILED
13470 041371 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13471 041372 005 12 0 00 017106 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13472 041373 321 15 0 00 041361 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13473
13474
13475 017107 SN=SN+1
13476 000240 XX=XX/2
13477 002000 ZZ=ZZ/2
13478 IFE ZZ,<ZZ=200000>
13479 041374 205 11 0 00 000240 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13480 041375 205 13 0 00 002000 MOVSI AC,ZZ ;SETUP PLIER
13481 041376 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13482 041377 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13483 041400 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13484 041401 004 14 0 00 017107 ER4 AC+1,SN
13485 041402 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13486 041403 003 13 0 00 017107 ER3 AC,SN ;MUL FAILED
13487 041404 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13488 041405 005 12 0 00 017107 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13489 041406 321 15 0 00 041374 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13490
13491
13492 017110 SN=SN+1
13493 000120 XX=XX/2
13494 001000 ZZ=ZZ/2
13495 IFE ZZ,<ZZ=200000>
13496 041407 205 11 0 00 000120 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13497 041410 205 13 0 00 001000 MOVSI AC,ZZ ;SETUP PLIER
13498 041411 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 70-3
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0302
13499 041412 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13500 041413 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13501 041414 004 14 0 00 017110 ER4 AC+1,SN
13502 041415 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13503 041416 003 13 0 00 017110 ER3 AC,SN ;MUL FAILED
13504 041417 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13505 041420 005 12 0 00 017110 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13506 041421 321 15 0 00 041407 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13507
13508
13509 017111 SN=SN+1
13510 000050 XX=XX/2
13511 000400 ZZ=ZZ/2
13512 IFE ZZ,<ZZ=200000>
13513 041422 205 11 0 00 000050 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13514 041423 205 13 0 00 000400 MOVSI AC,ZZ ;SETUP PLIER
13515 041424 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13516 041425 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13517 041426 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13518 041427 004 14 0 00 017111 ER4 AC+1,SN
13519 041430 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13520 041431 003 13 0 00 017111 ER3 AC,SN ;MUL FAILED
13521 041432 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13522 041433 005 12 0 00 017111 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13523 041434 321 15 0 00 041422 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13524
13525
13526 017112 SN=SN+1
13527 000024 XX=XX/2
13528 000200 ZZ=ZZ/2
13529 IFE ZZ,<ZZ=200000>
13530 041435 205 11 0 00 000024 MOVSI AC-2,XX ;SETUP FOR COMPARISON
13531 041436 205 13 0 00 000200 MOVSI AC,ZZ ;SETUP PLIER
13532 041437 205 12 0 00 050000 MOVSI AC-1,050000 ;SETUP PLICAND
13533 041440 224 13 0 00 000012 MUL AC,AC-1 ;MULTIPLY ZZ X 050000000000
13534 041441 332 00 0 00 000014 SKIPE AC+1 ;TEST LOW PROD=0
13535 041442 004 14 0 00 017112 ER4 AC+1,SN
13536 041443 312 13 0 00 000011 CAME AC,AC-2 ;TEST HIGH PROD=XX
13537 041444 003 13 0 00 017112 ER3 AC,SN ;MUL FAILED
13538 041445 312 12 0 00 045334 CAME AC-1,[050000,,0];WAS C(E) MODIFIED ?
13539 041446 005 12 0 00 017112 ER5 AC-1,SN ;C(E) WAS CLOBBERED
13540 041447 321 15 0 00 041435 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
13541
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 71
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0303
13542 ;TEST MUL IMMEDIATE - TWO POSITIVES
13543 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
13544 ;E BY AND DECREASING MULTIPLIER
13545 ;PLIER=200000000000, 100000000000 (1/2, 1/4) ETC
13546 ;PLICAND=E (005001)
13547 ;HIGH PROD=2400,1200,500,240,120
13548 ;LOW PROD=PLIER
13549
13550 000012 AC=12
13551 SAVEAC (1,1)^
13552 041450 201 14 0 00 041450 MOVEI AC+2,. ;SAVE TEST PC
13553 041451 202 14 0 00 030051 MOVEM AC+2,TESTPC
13554 041452 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13555 041453 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13556
13557 017200 SN=17200
13558 005000 XX=005000
13559 000000 ZZ=0
13560
13561 F17200: REPEAT ^D5,<
13562 SN=SN+1
13563 XX=XX/2
13564 ZZ=ZZ/2
13565 IFE ZZ,<ZZ=200000>
13566 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13567 MOVSI AC,ZZ ;SETUP PLIER
13568 MULI AC,005001 ;MULTIPLY E BY ZZ
13569 CAME AC,AC-2 ;TEST HIGH PROD=XX
13570 ER3 AC,SN ;HIGH PROD ERROR
13571 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
13572 CAME AC+1,AC-2 ;TEST LOW PROD=PLIER
13573 ER4 AC+1,SN ;LOW PROD ERROR
13574 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13575 >
13576
13577 017201 SN=SN+1
13578 002400 XX=XX/2
13579 000000 ZZ=ZZ/2
13580 200000 IFE ZZ,<ZZ=200000>
13581 041454 201 10 0 00 002400 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13582 041455 205 12 0 00 200000 MOVSI AC,ZZ ;SETUP PLIER
13583 041456 225 12 0 00 005001 MULI AC,005001 ;MULTIPLY E BY ZZ
13584 041457 312 12 0 00 000010 CAME AC,AC-2 ;TEST HIGH PROD=XX
13585 041460 003 12 0 00 017201 ER3 AC,SN ;HIGH PROD ERROR
13586 041461 205 10 0 00 200000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
13587 041462 312 13 0 00 000010 CAME AC+1,AC-2 ;TEST LOW PROD=PLIER
13588 041463 004 13 0 00 017201 ER4 AC+1,SN ;LOW PROD ERROR
13589 041464 321 14 0 00 041454 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13590
13591
13592 017202 SN=SN+1
13593 001200 XX=XX/2
13594 100000 ZZ=ZZ/2
13595 IFE ZZ,<ZZ=200000>
13596 041465 201 10 0 00 001200 MOVEI AC-2,XX ;SETUP FOR COMPARISON
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 71-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0304
13597 041466 205 12 0 00 100000 MOVSI AC,ZZ ;SETUP PLIER
13598 041467 225 12 0 00 005001 MULI AC,005001 ;MULTIPLY E BY ZZ
13599 041470 312 12 0 00 000010 CAME AC,AC-2 ;TEST HIGH PROD=XX
13600 041471 003 12 0 00 017202 ER3 AC,SN ;HIGH PROD ERROR
13601 041472 205 10 0 00 100000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
13602 041473 312 13 0 00 000010 CAME AC+1,AC-2 ;TEST LOW PROD=PLIER
13603 041474 004 13 0 00 017202 ER4 AC+1,SN ;LOW PROD ERROR
13604 041475 321 14 0 00 041465 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13605
13606
13607 017203 SN=SN+1
13608 000500 XX=XX/2
13609 040000 ZZ=ZZ/2
13610 IFE ZZ,<ZZ=200000>
13611 041476 201 10 0 00 000500 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13612 041477 205 12 0 00 040000 MOVSI AC,ZZ ;SETUP PLIER
13613 041500 225 12 0 00 005001 MULI AC,005001 ;MULTIPLY E BY ZZ
13614 041501 312 12 0 00 000010 CAME AC,AC-2 ;TEST HIGH PROD=XX
13615 041502 003 12 0 00 017203 ER3 AC,SN ;HIGH PROD ERROR
13616 041503 205 10 0 00 040000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
13617 041504 312 13 0 00 000010 CAME AC+1,AC-2 ;TEST LOW PROD=PLIER
13618 041505 004 13 0 00 017203 ER4 AC+1,SN ;LOW PROD ERROR
13619 041506 321 14 0 00 041476 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13620
13621
13622 017204 SN=SN+1
13623 000240 XX=XX/2
13624 020000 ZZ=ZZ/2
13625 IFE ZZ,<ZZ=200000>
13626 041507 201 10 0 00 000240 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13627 041510 205 12 0 00 020000 MOVSI AC,ZZ ;SETUP PLIER
13628 041511 225 12 0 00 005001 MULI AC,005001 ;MULTIPLY E BY ZZ
13629 041512 312 12 0 00 000010 CAME AC,AC-2 ;TEST HIGH PROD=XX
13630 041513 003 12 0 00 017204 ER3 AC,SN ;HIGH PROD ERROR
13631 041514 205 10 0 00 020000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
13632 041515 312 13 0 00 000010 CAME AC+1,AC-2 ;TEST LOW PROD=PLIER
13633 041516 004 13 0 00 017204 ER4 AC+1,SN ;LOW PROD ERROR
13634 041517 321 14 0 00 041507 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13635
13636
13637 017205 SN=SN+1
13638 000120 XX=XX/2
13639 010000 ZZ=ZZ/2
13640 IFE ZZ,<ZZ=200000>
13641 041520 201 10 0 00 000120 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13642 041521 205 12 0 00 010000 MOVSI AC,ZZ ;SETUP PLIER
13643 041522 225 12 0 00 005001 MULI AC,005001 ;MULTIPLY E BY ZZ
13644 041523 312 12 0 00 000010 CAME AC,AC-2 ;TEST HIGH PROD=XX
13645 041524 003 12 0 00 017205 ER3 AC,SN ;HIGH PROD ERROR
13646 041525 205 10 0 00 010000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
13647 041526 312 13 0 00 000010 CAME AC+1,AC-2 ;TEST LOW PROD=PLIER
13648 041527 004 13 0 00 017205 ER4 AC+1,SN ;LOW PROD ERROR
13649 041530 321 14 0 00 041520 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
13650
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 72
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0305
13651 ;TEST MUL MEMORY - TWO NEGATIVES
13652 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
13653 ;AN INCREASING NEGATIVE NUMBER BY -1
13654 ;PLIER=-1
13655 ;PLICAND=-1,-2,-4,-10,-20
13656 ;HIGH PROD=0
13657
13658 000011 AC=11
13659 SAVEAC (1,1)^
13660 041531 201 13 0 00 041531 MOVEI AC+2,. ;SAVE TEST PC
13661 041532 202 13 0 00 030051 MOVEM AC+2,TESTPC
13662 041533 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13663 041534 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13664
13665 017300 SN=17300
13666 000000 ZZ=0
13667
13668 F17300: REPEAT ^D5,<
13669 SN=SN+1
13670 ZZ=ZZ+ZZ
13671 IFE ZZ,<ZZ=-1>
13672 SETO AC, ;SETUP PLIER
13673 HRROI AC-1,ZZ ;SETUP PLICAND
13674 MULM AC,AC-1 ;MULTIPLY ZZ BY -1
13675 SKIPE AC-1 ;TEST HIGH PROD = 0
13676 ER5 AC,SN ;MULM FAILED
13677 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
13678 >
13679
13680 017301 SN=SN+1
13681 000000 ZZ=ZZ+ZZ
13682 777777 777777 IFE ZZ,<ZZ=-1>
13683 041535 474 11 0 00 000000 SETO AC, ;SETUP PLIER
13684 041536 561 10 0 00 777777 HRROI AC-1,ZZ ;SETUP PLICAND
13685 041537 226 11 0 00 000010 MULM AC,AC-1 ;MULTIPLY ZZ BY -1
13686 041540 332 00 0 00 000010 SKIPE AC-1 ;TEST HIGH PROD = 0
13687 041541 005 11 0 00 017301 ER5 AC,SN ;MULM FAILED
13688 041542 321 13 0 00 041535 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
13689
13690
13691 017302 SN=SN+1
13692 777777 777776 ZZ=ZZ+ZZ
13693 IFE ZZ,<ZZ=-1>
13694 041543 474 11 0 00 000000 SETO AC, ;SETUP PLIER
13695 041544 561 10 0 00 777776 HRROI AC-1,ZZ ;SETUP PLICAND
13696 041545 226 11 0 00 000010 MULM AC,AC-1 ;MULTIPLY ZZ BY -1
13697 041546 332 00 0 00 000010 SKIPE AC-1 ;TEST HIGH PROD = 0
13698 041547 005 11 0 00 017302 ER5 AC,SN ;MULM FAILED
13699 041550 321 13 0 00 041543 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
13700
13701
13702 017303 SN=SN+1
13703 777777 777774 ZZ=ZZ+ZZ
13704 IFE ZZ,<ZZ=-1>
13705 041551 474 11 0 00 000000 SETO AC, ;SETUP PLIER
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 72-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0306
13706 041552 561 10 0 00 777774 HRROI AC-1,ZZ ;SETUP PLICAND
13707 041553 226 11 0 00 000010 MULM AC,AC-1 ;MULTIPLY ZZ BY -1
13708 041554 332 00 0 00 000010 SKIPE AC-1 ;TEST HIGH PROD = 0
13709 041555 005 11 0 00 017303 ER5 AC,SN ;MULM FAILED
13710 041556 321 13 0 00 041551 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
13711
13712
13713 017304 SN=SN+1
13714 777777 777770 ZZ=ZZ+ZZ
13715 IFE ZZ,<ZZ=-1>
13716 041557 474 11 0 00 000000 SETO AC, ;SETUP PLIER
13717 041560 561 10 0 00 777770 HRROI AC-1,ZZ ;SETUP PLICAND
13718 041561 226 11 0 00 000010 MULM AC,AC-1 ;MULTIPLY ZZ BY -1
13719 041562 332 00 0 00 000010 SKIPE AC-1 ;TEST HIGH PROD = 0
13720 041563 005 11 0 00 017304 ER5 AC,SN ;MULM FAILED
13721 041564 321 13 0 00 041557 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
13722
13723
13724 017305 SN=SN+1
13725 777777 777760 ZZ=ZZ+ZZ
13726 IFE ZZ,<ZZ=-1>
13727 041565 474 11 0 00 000000 SETO AC, ;SETUP PLIER
13728 041566 561 10 0 00 777760 HRROI AC-1,ZZ ;SETUP PLICAND
13729 041567 226 11 0 00 000010 MULM AC,AC-1 ;MULTIPLY ZZ BY -1
13730 041570 332 00 0 00 000010 SKIPE AC-1 ;TEST HIGH PROD = 0
13731 041571 005 11 0 00 017305 ER5 AC,SN ;MULM FAILED
13732 041572 321 13 0 00 041565 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
13733
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 73
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0307
13734 ;TEST MUL BOTH - TWO NEGATIVES
13735 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
13736 ;-1 BY AN INCREASING NEGATIVE NUMBER
13737 ;PLIER=-1,-2,-4,-10,-20
13738 ;PLICAND=-1
13739 ;HIGH PROD=0
13740 ;LOW PROD=1,2,4,10,20
13741
13742 000010 AC=10
13743 SAVEAC (1,1)^
13744 041573 201 12 0 00 041573 MOVEI AC+2,. ;SAVE TEST PC
13745 041574 202 12 0 00 030051 MOVEM AC+2,TESTPC
13746 041575 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13747 041576 202 12 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13748
13749 017400 SN=17400
13750 000000 XX=0
13751 000000 ZZ=0
13752
13753 F17400: REPEAT ^D5,<
13754 SN=SN+1
13755 XX=XX+XX
13756 ZZ=ZZ+ZZ
13757 IFE XX,<XX=1>
13758 IFE ZZ,<ZZ=-1>
13759 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13760 HRROI AC,ZZ ;SETUP PLIER
13761 SETO AC-1, ;SETUP PLICAND
13762 MULB AC,AC-1 ;MULTIPLY -1 BY ZZ
13763 SKIPE AC ;TEST HIGH PROD=0
13764 ER3 AC,SN
13765 SKIPE AC-1 ;TEST C(AC) = C(E)
13766 ER5 AC-1,SN
13767 CAME AC+1,AC-2 ;TEST LOW PROD=XX
13768 ER4 AC+1,SN ;MULB FAILED
13769 JUMPL AC+2,.-^D10 ;LOOP ON ERR SWITCH
13770 >
13771
13772 017401 SN=SN+1
13773 000000 XX=XX+XX
13774 000000 ZZ=ZZ+ZZ
13775 000001 IFE XX,<XX=1>
13776 777777 777777 IFE ZZ,<ZZ=-1>
13777 041577 201 06 0 00 000001 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13778 041600 561 10 0 00 777777 HRROI AC,ZZ ;SETUP PLIER
13779 041601 474 07 0 00 000000 SETO AC-1, ;SETUP PLICAND
13780 041602 227 10 0 00 000007 MULB AC,AC-1 ;MULTIPLY -1 BY ZZ
13781 041603 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD=0
13782 041604 003 10 0 00 017401 ER3 AC,SN
13783 041605 332 00 0 00 000007 SKIPE AC-1 ;TEST C(AC) = C(E)
13784 041606 005 07 0 00 017401 ER5 AC-1,SN
13785 041607 312 11 0 00 000006 CAME AC+1,AC-2 ;TEST LOW PROD=XX
13786 041610 004 11 0 00 017401 ER4 AC+1,SN ;MULB FAILED
13787 041611 321 12 0 00 041577 JUMPL AC+2,.-^D10 ;LOOP ON ERR SWITCH
13788
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 73-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0308
13789
13790 017402 SN=SN+1
13791 000002 XX=XX+XX
13792 777777 777776 ZZ=ZZ+ZZ
13793 IFE XX,<XX=1>
13794 IFE ZZ,<ZZ=-1>
13795 041612 201 06 0 00 000002 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13796 041613 561 10 0 00 777776 HRROI AC,ZZ ;SETUP PLIER
13797 041614 474 07 0 00 000000 SETO AC-1, ;SETUP PLICAND
13798 041615 227 10 0 00 000007 MULB AC,AC-1 ;MULTIPLY -1 BY ZZ
13799 041616 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD=0
13800 041617 003 10 0 00 017402 ER3 AC,SN
13801 041620 332 00 0 00 000007 SKIPE AC-1 ;TEST C(AC) = C(E)
13802 041621 005 07 0 00 017402 ER5 AC-1,SN
13803 041622 312 11 0 00 000006 CAME AC+1,AC-2 ;TEST LOW PROD=XX
13804 041623 004 11 0 00 017402 ER4 AC+1,SN ;MULB FAILED
13805 041624 321 12 0 00 041612 JUMPL AC+2,.-^D10 ;LOOP ON ERR SWITCH
13806
13807
13808 017403 SN=SN+1
13809 000004 XX=XX+XX
13810 777777 777774 ZZ=ZZ+ZZ
13811 IFE XX,<XX=1>
13812 IFE ZZ,<ZZ=-1>
13813 041625 201 06 0 00 000004 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13814 041626 561 10 0 00 777774 HRROI AC,ZZ ;SETUP PLIER
13815 041627 474 07 0 00 000000 SETO AC-1, ;SETUP PLICAND
13816 041630 227 10 0 00 000007 MULB AC,AC-1 ;MULTIPLY -1 BY ZZ
13817 041631 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD=0
13818 041632 003 10 0 00 017403 ER3 AC,SN
13819 041633 332 00 0 00 000007 SKIPE AC-1 ;TEST C(AC) = C(E)
13820 041634 005 07 0 00 017403 ER5 AC-1,SN
13821 041635 312 11 0 00 000006 CAME AC+1,AC-2 ;TEST LOW PROD=XX
13822 041636 004 11 0 00 017403 ER4 AC+1,SN ;MULB FAILED
13823 041637 321 12 0 00 041625 JUMPL AC+2,.-^D10 ;LOOP ON ERR SWITCH
13824
13825
13826 017404 SN=SN+1
13827 000010 XX=XX+XX
13828 777777 777770 ZZ=ZZ+ZZ
13829 IFE XX,<XX=1>
13830 IFE ZZ,<ZZ=-1>
13831 041640 201 06 0 00 000010 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13832 041641 561 10 0 00 777770 HRROI AC,ZZ ;SETUP PLIER
13833 041642 474 07 0 00 000000 SETO AC-1, ;SETUP PLICAND
13834 041643 227 10 0 00 000007 MULB AC,AC-1 ;MULTIPLY -1 BY ZZ
13835 041644 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD=0
13836 041645 003 10 0 00 017404 ER3 AC,SN
13837 041646 332 00 0 00 000007 SKIPE AC-1 ;TEST C(AC) = C(E)
13838 041647 005 07 0 00 017404 ER5 AC-1,SN
13839 041650 312 11 0 00 000006 CAME AC+1,AC-2 ;TEST LOW PROD=XX
13840 041651 004 11 0 00 017404 ER4 AC+1,SN ;MULB FAILED
13841 041652 321 12 0 00 041640 JUMPL AC+2,.-^D10 ;LOOP ON ERR SWITCH
13842
13843
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 73-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0309
13844 017405 SN=SN+1
13845 000020 XX=XX+XX
13846 777777 777760 ZZ=ZZ+ZZ
13847 IFE XX,<XX=1>
13848 IFE ZZ,<ZZ=-1>
13849 041653 201 06 0 00 000020 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13850 041654 561 10 0 00 777760 HRROI AC,ZZ ;SETUP PLIER
13851 041655 474 07 0 00 000000 SETO AC-1, ;SETUP PLICAND
13852 041656 227 10 0 00 000007 MULB AC,AC-1 ;MULTIPLY -1 BY ZZ
13853 041657 332 00 0 00 000010 SKIPE AC ;TEST HIGH PROD=0
13854 041660 003 10 0 00 017405 ER3 AC,SN
13855 041661 332 00 0 00 000007 SKIPE AC-1 ;TEST C(AC) = C(E)
13856 041662 005 07 0 00 017405 ER5 AC-1,SN
13857 041663 312 11 0 00 000006 CAME AC+1,AC-2 ;TEST LOW PROD=XX
13858 041664 004 11 0 00 017405 ER4 AC+1,SN ;MULB FAILED
13859 041665 321 12 0 00 041653 JUMPL AC+2,.-^D10 ;LOOP ON ERR SWITCH
13860
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 74
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0310
13861 ;TEST MUL MEMORY - TWO NEGATIVES
13862 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
13863 ;-5001 BY AN INCREASING NEGATIVE PLIER
13864 ;PLIER=600000000000, 700000000000 ETC.
13865 ;PLICAND=-5001
13866 ;HIGH PROD=2400,1200,500,240,120
13867
13868 000007 AC=7
13869 SAVEAC (1,1)^
13870 041666 201 11 0 00 041666 MOVEI AC+2,. ;SAVE TEST PC
13871 041667 202 11 0 00 030051 MOVEM AC+2,TESTPC
13872 041670 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13873 041671 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13874
13875 017500 SN=17500
13876 005000 XX=005000
13877 000000 ZZ=0
13878
13879 F17500: REPEAT ^D5,<
13880 SN=SN+1
13881 XX=XX/2
13882 ZZ=ZZ/2
13883 IFE ZZ,<ZZ=-200000>
13884 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13885 MOVSI AC,ZZ ;SETUP PLIER
13886 HRROI AC-1,-5001 ;SETUP PLICAND
13887 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
13888 MULM AC,AC-1 ;MULTIPLY ZZ X -5001
13889 CAME AC-1,AC-2 ;TEST HIGH PROD = XX
13890 ER5 AC-1,SN ;MULM FAILED
13891 CAME AC,[ZZ,,0] ;WAS C(AC) MODIFIED ?
13892 ER3 AC,SN ;C(AC) WAS CLOBBERED
13893 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
13894 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
13895 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
13896 >
13897
13898 017501 SN=SN+1
13899 002400 XX=XX/2
13900 000000 ZZ=ZZ/2
13901 777777 600000 IFE ZZ,<ZZ=-200000>
13902 041672 201 05 0 00 002400 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13903 041673 205 07 0 00 600000 MOVSI AC,ZZ ;SETUP PLIER
13904 041674 561 06 0 00 772777 HRROI AC-1,-5001 ;SETUP PLICAND
13905 041675 200 04 0 00 000010 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
13906 041676 226 07 0 00 000006 MULM AC,AC-1 ;MULTIPLY ZZ X -5001
13907 041677 312 06 0 00 000005 CAME AC-1,AC-2 ;TEST HIGH PROD = XX
13908 041700 005 06 0 00 017501 ER5 AC-1,SN ;MULM FAILED
13909 041701 312 07 0 00 044762 CAME AC,[ZZ,,0] ;WAS C(AC) MODIFIED ?
13910 041702 003 07 0 00 017501 ER3 AC,SN ;C(AC) WAS CLOBBERED
13911 041703 312 10 0 00 000004 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
13912 041704 004 10 0 00 017501 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
13913 041705 321 11 0 00 041672 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
13914
13915
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 74-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0311
13916 017502 SN=SN+1
13917 001200 XX=XX/2
13918 777777 700000 ZZ=ZZ/2
13919 IFE ZZ,<ZZ=-200000>
13920 041706 201 05 0 00 001200 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13921 041707 205 07 0 00 700000 MOVSI AC,ZZ ;SETUP PLIER
13922 041710 561 06 0 00 772777 HRROI AC-1,-5001 ;SETUP PLICAND
13923 041711 200 04 0 00 000010 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
13924 041712 226 07 0 00 000006 MULM AC,AC-1 ;MULTIPLY ZZ X -5001
13925 041713 312 06 0 00 000005 CAME AC-1,AC-2 ;TEST HIGH PROD = XX
13926 041714 005 06 0 00 017502 ER5 AC-1,SN ;MULM FAILED
13927 041715 312 07 0 00 045233 CAME AC,[ZZ,,0] ;WAS C(AC) MODIFIED ?
13928 041716 003 07 0 00 017502 ER3 AC,SN ;C(AC) WAS CLOBBERED
13929 041717 312 10 0 00 000004 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
13930 041720 004 10 0 00 017502 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
13931 041721 321 11 0 00 041706 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
13932
13933
13934 017503 SN=SN+1
13935 000500 XX=XX/2
13936 777777 740000 ZZ=ZZ/2
13937 IFE ZZ,<ZZ=-200000>
13938 041722 201 05 0 00 000500 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13939 041723 205 07 0 00 740000 MOVSI AC,ZZ ;SETUP PLIER
13940 041724 561 06 0 00 772777 HRROI AC-1,-5001 ;SETUP PLICAND
13941 041725 200 04 0 00 000010 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
13942 041726 226 07 0 00 000006 MULM AC,AC-1 ;MULTIPLY ZZ X -5001
13943 041727 312 06 0 00 000005 CAME AC-1,AC-2 ;TEST HIGH PROD = XX
13944 041730 005 06 0 00 017503 ER5 AC-1,SN ;MULM FAILED
13945 041731 312 07 0 00 045232 CAME AC,[ZZ,,0] ;WAS C(AC) MODIFIED ?
13946 041732 003 07 0 00 017503 ER3 AC,SN ;C(AC) WAS CLOBBERED
13947 041733 312 10 0 00 000004 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
13948 041734 004 10 0 00 017503 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
13949 041735 321 11 0 00 041722 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
13950
13951
13952 017504 SN=SN+1
13953 000240 XX=XX/2
13954 777777 760000 ZZ=ZZ/2
13955 IFE ZZ,<ZZ=-200000>
13956 041736 201 05 0 00 000240 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13957 041737 205 07 0 00 760000 MOVSI AC,ZZ ;SETUP PLIER
13958 041740 561 06 0 00 772777 HRROI AC-1,-5001 ;SETUP PLICAND
13959 041741 200 04 0 00 000010 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
13960 041742 226 07 0 00 000006 MULM AC,AC-1 ;MULTIPLY ZZ X -5001
13961 041743 312 06 0 00 000005 CAME AC-1,AC-2 ;TEST HIGH PROD = XX
13962 041744 005 06 0 00 017504 ER5 AC-1,SN ;MULM FAILED
13963 041745 312 07 0 00 045231 CAME AC,[ZZ,,0] ;WAS C(AC) MODIFIED ?
13964 041746 003 07 0 00 017504 ER3 AC,SN ;C(AC) WAS CLOBBERED
13965 041747 312 10 0 00 000004 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
13966 041750 004 10 0 00 017504 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
13967 041751 321 11 0 00 041736 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
13968
13969
13970 017505 SN=SN+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 74-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0312
13971 000120 XX=XX/2
13972 777777 770000 ZZ=ZZ/2
13973 IFE ZZ,<ZZ=-200000>
13974 041752 201 05 0 00 000120 MOVEI AC-2,XX ;SETUP FOR COMPARISON
13975 041753 205 07 0 00 770000 MOVSI AC,ZZ ;SETUP PLIER
13976 041754 561 06 0 00 772777 HRROI AC-1,-5001 ;SETUP PLICAND
13977 041755 200 04 0 00 000010 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
13978 041756 226 07 0 00 000006 MULM AC,AC-1 ;MULTIPLY ZZ X -5001
13979 041757 312 06 0 00 000005 CAME AC-1,AC-2 ;TEST HIGH PROD = XX
13980 041760 005 06 0 00 017505 ER5 AC-1,SN ;MULM FAILED
13981 041761 312 07 0 00 045230 CAME AC,[ZZ,,0] ;WAS C(AC) MODIFIED ?
13982 041762 003 07 0 00 017505 ER3 AC,SN ;C(AC) WAS CLOBBERED
13983 041763 312 10 0 00 000004 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
13984 041764 004 10 0 00 017505 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
13985 041765 321 11 0 00 041752 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
13986
13987
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 75
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0313
13988 ;TEST IMUL DIRECT - TWO POSITIVES
13989 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
13990 ;A NUMBER BY ITSELF
13991 ;PLIER=2,4,10,20,40
13992 ;PLICAND=2,4,10,20,40
13993 ;PROD=4,20,100,400,2000
13994
13995 000006 AC=6
13996 SAVEAC (1,1)^
13997 041766 201 10 0 00 041766 MOVEI AC+2,. ;SAVE TEST PC
13998 041767 202 10 0 00 030051 MOVEM AC+2,TESTPC
13999 041770 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
14000 041771 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
14001
14002 017600 SN=17600
14003 000001 XX=1
14004 000001 ZZ=1
14005
14006 F17600: REPEAT ^D5,<
14007 SN=SN+1
14008 XX=XX*4
14009 ZZ=ZZ+ZZ
14010 IFE ZZ,<ZZ=-200000>
14011 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14012 MOVEI AC,ZZ ;SETUP PLIER
14013 MOVEI AC-1,ZZ ;SETUP PLICAND
14014 IMUL AC,AC-1 ;MULTIPLY ZZ BY ZZ
14015 CAME AC,AC-2 ;TEST PROD=XX
14016 ER3 AC,SN ;IMUL FAILED
14017 CAIE AC-1,ZZ ;WAS C(E) MODIFIED ?
14018 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14019 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
14020 >
14021
14022 017601 SN=SN+1
14023 000004 XX=XX*4
14024 000002 ZZ=ZZ+ZZ
14025 IFE ZZ,<ZZ=-200000>
14026 041772 201 04 0 00 000004 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14027 041773 201 06 0 00 000002 MOVEI AC,ZZ ;SETUP PLIER
14028 041774 201 05 0 00 000002 MOVEI AC-1,ZZ ;SETUP PLICAND
14029 041775 220 06 0 00 000005 IMUL AC,AC-1 ;MULTIPLY ZZ BY ZZ
14030 041776 312 06 0 00 000004 CAME AC,AC-2 ;TEST PROD=XX
14031 041777 003 06 0 00 017601 ER3 AC,SN ;IMUL FAILED
14032 042000 302 05 0 00 000002 CAIE AC-1,ZZ ;WAS C(E) MODIFIED ?
14033 042001 005 05 0 00 017601 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14034 042002 321 10 0 00 041772 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
14035
14036
14037 017602 SN=SN+1
14038 000020 XX=XX*4
14039 000004 ZZ=ZZ+ZZ
14040 IFE ZZ,<ZZ=-200000>
14041 042003 201 04 0 00 000020 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14042 042004 201 06 0 00 000004 MOVEI AC,ZZ ;SETUP PLIER
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 75-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0314
14043 042005 201 05 0 00 000004 MOVEI AC-1,ZZ ;SETUP PLICAND
14044 042006 220 06 0 00 000005 IMUL AC,AC-1 ;MULTIPLY ZZ BY ZZ
14045 042007 312 06 0 00 000004 CAME AC,AC-2 ;TEST PROD=XX
14046 042010 003 06 0 00 017602 ER3 AC,SN ;IMUL FAILED
14047 042011 302 05 0 00 000004 CAIE AC-1,ZZ ;WAS C(E) MODIFIED ?
14048 042012 005 05 0 00 017602 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14049 042013 321 10 0 00 042003 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
14050
14051
14052 017603 SN=SN+1
14053 000100 XX=XX*4
14054 000010 ZZ=ZZ+ZZ
14055 IFE ZZ,<ZZ=-200000>
14056 042014 201 04 0 00 000100 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14057 042015 201 06 0 00 000010 MOVEI AC,ZZ ;SETUP PLIER
14058 042016 201 05 0 00 000010 MOVEI AC-1,ZZ ;SETUP PLICAND
14059 042017 220 06 0 00 000005 IMUL AC,AC-1 ;MULTIPLY ZZ BY ZZ
14060 042020 312 06 0 00 000004 CAME AC,AC-2 ;TEST PROD=XX
14061 042021 003 06 0 00 017603 ER3 AC,SN ;IMUL FAILED
14062 042022 302 05 0 00 000010 CAIE AC-1,ZZ ;WAS C(E) MODIFIED ?
14063 042023 005 05 0 00 017603 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14064 042024 321 10 0 00 042014 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
14065
14066
14067 017604 SN=SN+1
14068 000400 XX=XX*4
14069 000020 ZZ=ZZ+ZZ
14070 IFE ZZ,<ZZ=-200000>
14071 042025 201 04 0 00 000400 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14072 042026 201 06 0 00 000020 MOVEI AC,ZZ ;SETUP PLIER
14073 042027 201 05 0 00 000020 MOVEI AC-1,ZZ ;SETUP PLICAND
14074 042030 220 06 0 00 000005 IMUL AC,AC-1 ;MULTIPLY ZZ BY ZZ
14075 042031 312 06 0 00 000004 CAME AC,AC-2 ;TEST PROD=XX
14076 042032 003 06 0 00 017604 ER3 AC,SN ;IMUL FAILED
14077 042033 302 05 0 00 000020 CAIE AC-1,ZZ ;WAS C(E) MODIFIED ?
14078 042034 005 05 0 00 017604 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14079 042035 321 10 0 00 042025 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
14080
14081
14082 017605 SN=SN+1
14083 002000 XX=XX*4
14084 000040 ZZ=ZZ+ZZ
14085 IFE ZZ,<ZZ=-200000>
14086 042036 201 04 0 00 002000 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14087 042037 201 06 0 00 000040 MOVEI AC,ZZ ;SETUP PLIER
14088 042040 201 05 0 00 000040 MOVEI AC-1,ZZ ;SETUP PLICAND
14089 042041 220 06 0 00 000005 IMUL AC,AC-1 ;MULTIPLY ZZ BY ZZ
14090 042042 312 06 0 00 000004 CAME AC,AC-2 ;TEST PROD=XX
14091 042043 003 06 0 00 017605 ER3 AC,SN ;IMUL FAILED
14092 042044 302 05 0 00 000040 CAIE AC-1,ZZ ;WAS C(E) MODIFIED ?
14093 042045 005 05 0 00 017605 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14094 042046 321 10 0 00 042036 JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
14095
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 76
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0315
14096 ;TEST IMUL IMMEDIATE - TWO POSITIVES
14097 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
14098 ;3 X E
14099 ;PLIER=3
14100 ;PLICAND=E
14101 ;PROD=6,11,14,17,22
14102
14103 000005 AC=5
14104 SAVEAC (1,1)^
14105 042047 201 07 0 00 042047 MOVEI AC+2,. ;SAVE TEST PC
14106 042050 202 07 0 00 030051 MOVEM AC+2,TESTPC
14107 042051 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
14108 042052 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
14109
14110 017700 SN=17700
14111 000003 XX=3
14112 000001 ZZ=1
14113
14114 F17700: REPEAT ^D5,<
14115 SN=SN+1
14116 XX=XX+3
14117 ZZ=ZZ+1
14118 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14119 MOVEI AC,3 ;SETUP PLIER
14120 IMULI AC,ZZ ;MULTIPLY 3 X E
14121 CAME AC,AC-2 ;TEST PROD = XX
14122 ER3 AC,SN ;IMULI FAILED
14123 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
14124 >
14125
14126 017701 SN=SN+1
14127 000006 XX=XX+3
14128 000002 ZZ=ZZ+1
14129 042053 201 03 0 00 000006 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14130 042054 201 05 0 00 000003 MOVEI AC,3 ;SETUP PLIER
14131 042055 221 05 0 00 000002 IMULI AC,ZZ ;MULTIPLY 3 X E
14132 042056 312 05 0 00 000003 CAME AC,AC-2 ;TEST PROD = XX
14133 042057 003 05 0 00 017701 ER3 AC,SN ;IMULI FAILED
14134 042060 321 07 0 00 042053 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
14135
14136
14137 017702 SN=SN+1
14138 000011 XX=XX+3
14139 000003 ZZ=ZZ+1
14140 042061 201 03 0 00 000011 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14141 042062 201 05 0 00 000003 MOVEI AC,3 ;SETUP PLIER
14142 042063 221 05 0 00 000003 IMULI AC,ZZ ;MULTIPLY 3 X E
14143 042064 312 05 0 00 000003 CAME AC,AC-2 ;TEST PROD = XX
14144 042065 003 05 0 00 017702 ER3 AC,SN ;IMULI FAILED
14145 042066 321 07 0 00 042061 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
14146
14147
14148 017703 SN=SN+1
14149 000014 XX=XX+3
14150 000004 ZZ=ZZ+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 76-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0316
14151 042067 201 03 0 00 000014 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14152 042070 201 05 0 00 000003 MOVEI AC,3 ;SETUP PLIER
14153 042071 221 05 0 00 000004 IMULI AC,ZZ ;MULTIPLY 3 X E
14154 042072 312 05 0 00 000003 CAME AC,AC-2 ;TEST PROD = XX
14155 042073 003 05 0 00 017703 ER3 AC,SN ;IMULI FAILED
14156 042074 321 07 0 00 042067 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
14157
14158
14159 017704 SN=SN+1
14160 000017 XX=XX+3
14161 000005 ZZ=ZZ+1
14162 042075 201 03 0 00 000017 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14163 042076 201 05 0 00 000003 MOVEI AC,3 ;SETUP PLIER
14164 042077 221 05 0 00 000005 IMULI AC,ZZ ;MULTIPLY 3 X E
14165 042100 312 05 0 00 000003 CAME AC,AC-2 ;TEST PROD = XX
14166 042101 003 05 0 00 017704 ER3 AC,SN ;IMULI FAILED
14167 042102 321 07 0 00 042075 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
14168
14169
14170 017705 SN=SN+1
14171 000022 XX=XX+3
14172 000006 ZZ=ZZ+1
14173 042103 201 03 0 00 000022 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14174 042104 201 05 0 00 000003 MOVEI AC,3 ;SETUP PLIER
14175 042105 221 05 0 00 000006 IMULI AC,ZZ ;MULTIPLY 3 X E
14176 042106 312 05 0 00 000003 CAME AC,AC-2 ;TEST PROD = XX
14177 042107 003 05 0 00 017705 ER3 AC,SN ;IMULI FAILED
14178 042110 321 07 0 00 042103 JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
14179
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 77
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0317
14180 ;TEST IMUL MEMORY - TWO NEGATIVES
14181 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
14182 ;A NEGATIVE NUMBER BY ITSELF
14183 ;PLIER=-2,-4,-10,-20,-40
14184 ;PLICAND=-2,-4,-10,-20,-40
14185 ;PROD=4,20,100,400,2000
14186
14187 000004 AC=4
14188 SAVEAC (1,1)^
14189 042111 201 06 0 00 042111 MOVEI AC+2,. ;SAVE TEST PC
14190 042112 202 06 0 00 030051 MOVEM AC+2,TESTPC
14191 042113 201 06 0 00 000006 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
14192 042114 202 06 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
14193
14194 020000 SN=20000
14195 000001 XX=1
14196 777777 777777 ZZ=-1
14197
14198 F20000: REPEAT ^D5,<
14199 SN=SN+1
14200 XX=XX*4
14201 ZZ=ZZ+ZZ
14202 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14203 HRROI AC,ZZ ;SETUP PLIER
14204 HRROI AC-1,ZZ ;SETUP PLICAND
14205 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
14206 IMULM AC,AC-1 ;MULTIPLY ZZ BY ZZ
14207 CAME AC-1,AC-2 ;TEST PROD=XX
14208 ER5 AC-1,SN ;IMULM FAILED
14209 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
14210 ER3 AC,SN ;C(AC) WAS CLOBBERED
14211 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
14212 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
14213 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
14214 >
14215
14216 020001 SN=SN+1
14217 000004 XX=XX*4
14218 777777 777776 ZZ=ZZ+ZZ
14219 042115 201 02 0 00 000004 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14220 042116 561 04 0 00 777776 HRROI AC,ZZ ;SETUP PLIER
14221 042117 561 03 0 00 777776 HRROI AC-1,ZZ ;SETUP PLICAND
14222 042120 200 01 0 00 000005 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
14223 042121 222 04 0 00 000003 IMULM AC,AC-1 ;MULTIPLY ZZ BY ZZ
14224 042122 312 03 0 00 000002 CAME AC-1,AC-2 ;TEST PROD=XX
14225 042123 005 03 0 00 020001 ER5 AC-1,SN ;IMULM FAILED
14226 042124 312 04 0 00 044621 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
14227 042125 003 04 0 00 020001 ER3 AC,SN ;C(AC) WAS CLOBBERED
14228 042126 312 05 0 00 000001 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
14229 042127 004 05 0 00 020001 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
14230 042130 321 06 0 00 042115 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
14231
14232
14233 020002 SN=SN+1
14234 000020 XX=XX*4
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 77-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0318
14235 777777 777774 ZZ=ZZ+ZZ
14236 042131 201 02 0 00 000020 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14237 042132 561 04 0 00 777774 HRROI AC,ZZ ;SETUP PLIER
14238 042133 561 03 0 00 777774 HRROI AC-1,ZZ ;SETUP PLICAND
14239 042134 200 01 0 00 000005 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
14240 042135 222 04 0 00 000003 IMULM AC,AC-1 ;MULTIPLY ZZ BY ZZ
14241 042136 312 03 0 00 000002 CAME AC-1,AC-2 ;TEST PROD=XX
14242 042137 005 03 0 00 020002 ER5 AC-1,SN ;IMULM FAILED
14243 042140 312 04 0 00 045325 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
14244 042141 003 04 0 00 020002 ER3 AC,SN ;C(AC) WAS CLOBBERED
14245 042142 312 05 0 00 000001 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
14246 042143 004 05 0 00 020002 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
14247 042144 321 06 0 00 042131 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
14248
14249
14250 020003 SN=SN+1
14251 000100 XX=XX*4
14252 777777 777770 ZZ=ZZ+ZZ
14253 042145 201 02 0 00 000100 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14254 042146 561 04 0 00 777770 HRROI AC,ZZ ;SETUP PLIER
14255 042147 561 03 0 00 777770 HRROI AC-1,ZZ ;SETUP PLICAND
14256 042150 200 01 0 00 000005 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
14257 042151 222 04 0 00 000003 IMULM AC,AC-1 ;MULTIPLY ZZ BY ZZ
14258 042152 312 03 0 00 000002 CAME AC-1,AC-2 ;TEST PROD=XX
14259 042153 005 03 0 00 020003 ER5 AC-1,SN ;IMULM FAILED
14260 042154 312 04 0 00 045305 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
14261 042155 003 04 0 00 020003 ER3 AC,SN ;C(AC) WAS CLOBBERED
14262 042156 312 05 0 00 000001 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
14263 042157 004 05 0 00 020003 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
14264 042160 321 06 0 00 042145 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
14265
14266
14267 020004 SN=SN+1
14268 000400 XX=XX*4
14269 777777 777760 ZZ=ZZ+ZZ
14270 042161 201 02 0 00 000400 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14271 042162 561 04 0 00 777760 HRROI AC,ZZ ;SETUP PLIER
14272 042163 561 03 0 00 777760 HRROI AC-1,ZZ ;SETUP PLICAND
14273 042164 200 01 0 00 000005 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
14274 042165 222 04 0 00 000003 IMULM AC,AC-1 ;MULTIPLY ZZ BY ZZ
14275 042166 312 03 0 00 000002 CAME AC-1,AC-2 ;TEST PROD=XX
14276 042167 005 03 0 00 020004 ER5 AC-1,SN ;IMULM FAILED
14277 042170 312 04 0 00 045243 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
14278 042171 003 04 0 00 020004 ER3 AC,SN ;C(AC) WAS CLOBBERED
14279 042172 312 05 0 00 000001 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
14280 042173 004 05 0 00 020004 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
14281 042174 321 06 0 00 042161 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
14282
14283
14284 020005 SN=SN+1
14285 002000 XX=XX*4
14286 777777 777740 ZZ=ZZ+ZZ
14287 042175 201 02 0 00 002000 MOVEI AC-2,XX ;SETUP FOR COMPARISON
14288 042176 561 04 0 00 777740 HRROI AC,ZZ ;SETUP PLIER
14289 042177 561 03 0 00 777740 HRROI AC-1,ZZ ;SETUP PLICAND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 77-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0319
14290 042200 200 01 0 00 000005 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
14291 042201 222 04 0 00 000003 IMULM AC,AC-1 ;MULTIPLY ZZ BY ZZ
14292 042202 312 03 0 00 000002 CAME AC-1,AC-2 ;TEST PROD=XX
14293 042203 005 03 0 00 020005 ER5 AC-1,SN ;IMULM FAILED
14294 042204 312 04 0 00 045244 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
14295 042205 003 04 0 00 020005 ER3 AC,SN ;C(AC) WAS CLOBBERED
14296 042206 312 05 0 00 000001 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) MODIFIED ?
14297 042207 004 05 0 00 020005 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
14298 042210 321 06 0 00 042175 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
14299
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 78
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0320
14300 ;TEST IMUL BOTH - MULTIPLY BY 0
14301 ;TESTING IS ACCOMPLISHED BY MULTIPLYING
14302 ;A NEGATIVE NUMBER BY 0
14303 ;PLIER=0
14304 ;PLICAND=-1,-2,-4,-10,-20
14305 ;PROD=0
14306
14307 000005 AC=5
14308 SAVEAC (1,1)^
14309 042211 201 07 0 00 042211 MOVEI AC+2,. ;SAVE TEST PC
14310 042212 202 07 0 00 030051 MOVEM AC+2,TESTPC
14311 042213 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
14312 042214 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
14313
14314 020100 SN=20100
14315 000000 ZZ=0
14316
14317 F20100: REPEAT ^D5,<
14318 SN=SN+1
14319 ZZ=ZZ+ZZ
14320 IFE ZZ,<ZZ=-1>
14321 SETZ AC, ;SETUP PLIER
14322 HRROI AC-1,ZZ ;SETUP PLICAND
14323 IMULB AC,AC-1 ;MULTIPLY ZZ BY 0
14324 SKIPE AC ;TEST PROD=0
14325 ER3 AC,SN
14326 SKIPE AC-1 ;TEST C(AC) = C(E)
14327 ER5 AC-1,SN ;IMULB FAILED
14328 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14329 >
14330
14331 020101 SN=SN+1
14332 000000 ZZ=ZZ+ZZ
14333 777777 777777 IFE ZZ,<ZZ=-1>
14334 042215 400 05 0 00 000000 SETZ AC, ;SETUP PLIER
14335 042216 561 04 0 00 777777 HRROI AC-1,ZZ ;SETUP PLICAND
14336 042217 223 05 0 00 000004 IMULB AC,AC-1 ;MULTIPLY ZZ BY 0
14337 042220 332 00 0 00 000005 SKIPE AC ;TEST PROD=0
14338 042221 003 05 0 00 020101 ER3 AC,SN
14339 042222 332 00 0 00 000004 SKIPE AC-1 ;TEST C(AC) = C(E)
14340 042223 005 04 0 00 020101 ER5 AC-1,SN ;IMULB FAILED
14341 042224 321 07 0 00 042215 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14342
14343
14344 020102 SN=SN+1
14345 777777 777776 ZZ=ZZ+ZZ
14346 IFE ZZ,<ZZ=-1>
14347 042225 400 05 0 00 000000 SETZ AC, ;SETUP PLIER
14348 042226 561 04 0 00 777776 HRROI AC-1,ZZ ;SETUP PLICAND
14349 042227 223 05 0 00 000004 IMULB AC,AC-1 ;MULTIPLY ZZ BY 0
14350 042230 332 00 0 00 000005 SKIPE AC ;TEST PROD=0
14351 042231 003 05 0 00 020102 ER3 AC,SN
14352 042232 332 00 0 00 000004 SKIPE AC-1 ;TEST C(AC) = C(E)
14353 042233 005 04 0 00 020102 ER5 AC-1,SN ;IMULB FAILED
14354 042234 321 07 0 00 042225 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 78-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0321
14355
14356
14357 020103 SN=SN+1
14358 777777 777774 ZZ=ZZ+ZZ
14359 IFE ZZ,<ZZ=-1>
14360 042235 400 05 0 00 000000 SETZ AC, ;SETUP PLIER
14361 042236 561 04 0 00 777774 HRROI AC-1,ZZ ;SETUP PLICAND
14362 042237 223 05 0 00 000004 IMULB AC,AC-1 ;MULTIPLY ZZ BY 0
14363 042240 332 00 0 00 000005 SKIPE AC ;TEST PROD=0
14364 042241 003 05 0 00 020103 ER3 AC,SN
14365 042242 332 00 0 00 000004 SKIPE AC-1 ;TEST C(AC) = C(E)
14366 042243 005 04 0 00 020103 ER5 AC-1,SN ;IMULB FAILED
14367 042244 321 07 0 00 042235 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14368
14369
14370 020104 SN=SN+1
14371 777777 777770 ZZ=ZZ+ZZ
14372 IFE ZZ,<ZZ=-1>
14373 042245 400 05 0 00 000000 SETZ AC, ;SETUP PLIER
14374 042246 561 04 0 00 777770 HRROI AC-1,ZZ ;SETUP PLICAND
14375 042247 223 05 0 00 000004 IMULB AC,AC-1 ;MULTIPLY ZZ BY 0
14376 042250 332 00 0 00 000005 SKIPE AC ;TEST PROD=0
14377 042251 003 05 0 00 020104 ER3 AC,SN
14378 042252 332 00 0 00 000004 SKIPE AC-1 ;TEST C(AC) = C(E)
14379 042253 005 04 0 00 020104 ER5 AC-1,SN ;IMULB FAILED
14380 042254 321 07 0 00 042245 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14381
14382
14383 020105 SN=SN+1
14384 777777 777760 ZZ=ZZ+ZZ
14385 IFE ZZ,<ZZ=-1>
14386 042255 400 05 0 00 000000 SETZ AC, ;SETUP PLIER
14387 042256 561 04 0 00 777760 HRROI AC-1,ZZ ;SETUP PLICAND
14388 042257 223 05 0 00 000004 IMULB AC,AC-1 ;MULTIPLY ZZ BY 0
14389 042260 332 00 0 00 000005 SKIPE AC ;TEST PROD=0
14390 042261 003 05 0 00 020105 ER3 AC,SN
14391 042262 332 00 0 00 000004 SKIPE AC-1 ;TEST C(AC) = C(E)
14392 042263 005 04 0 00 020105 ER5 AC-1,SN ;IMULB FAILED
14393 042264 321 07 0 00 042255 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14394
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 79
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0322
14395 ;TEST IDIV DIRECT - TWO POSITIVES
14396 ;TESTING IS ACCOMPLISHED BY
14397 ;DIVIDING A NUMBER BY ITSELF
14398 ;DVND=1,2,4, ETC
14399 ;DVSR=1,2,4, ETC
14400 ;AN ERROR WILL OCCUR IF QUOT
14401 ;DIFFERS FROM 1
14402 ;AN ERROR WILL OCCUR IF REMD
14403 ;DIFFERS FROM 0
14404
14405 000005 AC=5
14406 SAVEAC (1,1)^
14407 042265 201 07 0 00 042265 MOVEI AC+2,. ;SAVE TEST PC
14408 042266 202 07 0 00 030051 MOVEM AC+2,TESTPC
14409 042267 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
14410 042270 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
14411
14412 020200 SN=20200
14413 000000 ZZ=0
14414
14415 F20200: REPEAT ^D18,<
14416 SN=SN+1
14417 ZZ=ZZ+ZZ
14418 IFE ZZ,<ZZ=1>
14419 MOVEI AC,ZZ ;SETUP DVND
14420 MOVEI AC-1,ZZ ;SETUP DVSR
14421 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14422 CAIE AC,1 ;TEST QUOT=1
14423 ER3 AC,SN
14424 JUMPE AC+1,.+2 ;TEST REMD=0
14425 ER4 AC+1,SN ;IDIV FAILED
14426 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14427 >
14428
14429 020201 SN=SN+1
14430 000000 ZZ=ZZ+ZZ
14431 000001 IFE ZZ,<ZZ=1>
14432 042271 201 05 0 00 000001 MOVEI AC,ZZ ;SETUP DVND
14433 042272 201 04 0 00 000001 MOVEI AC-1,ZZ ;SETUP DVSR
14434 042273 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14435 042274 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14436 042275 003 05 0 00 020201 ER3 AC,SN
14437 042276 322 06 0 00 042300 JUMPE AC+1,.+2 ;TEST REMD=0
14438 042277 004 06 0 00 020201 ER4 AC+1,SN ;IDIV FAILED
14439 042300 321 07 0 00 042271 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14440
14441
14442 020202 SN=SN+1
14443 000002 ZZ=ZZ+ZZ
14444 IFE ZZ,<ZZ=1>
14445 042301 201 05 0 00 000002 MOVEI AC,ZZ ;SETUP DVND
14446 042302 201 04 0 00 000002 MOVEI AC-1,ZZ ;SETUP DVSR
14447 042303 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14448 042304 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14449 042305 003 05 0 00 020202 ER3 AC,SN
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 79-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0323
14450 042306 322 06 0 00 042310 JUMPE AC+1,.+2 ;TEST REMD=0
14451 042307 004 06 0 00 020202 ER4 AC+1,SN ;IDIV FAILED
14452 042310 321 07 0 00 042301 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14453
14454
14455 020203 SN=SN+1
14456 000004 ZZ=ZZ+ZZ
14457 IFE ZZ,<ZZ=1>
14458 042311 201 05 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
14459 042312 201 04 0 00 000004 MOVEI AC-1,ZZ ;SETUP DVSR
14460 042313 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14461 042314 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14462 042315 003 05 0 00 020203 ER3 AC,SN
14463 042316 322 06 0 00 042320 JUMPE AC+1,.+2 ;TEST REMD=0
14464 042317 004 06 0 00 020203 ER4 AC+1,SN ;IDIV FAILED
14465 042320 321 07 0 00 042311 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14466
14467
14468 020204 SN=SN+1
14469 000010 ZZ=ZZ+ZZ
14470 IFE ZZ,<ZZ=1>
14471 042321 201 05 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
14472 042322 201 04 0 00 000010 MOVEI AC-1,ZZ ;SETUP DVSR
14473 042323 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14474 042324 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14475 042325 003 05 0 00 020204 ER3 AC,SN
14476 042326 322 06 0 00 042330 JUMPE AC+1,.+2 ;TEST REMD=0
14477 042327 004 06 0 00 020204 ER4 AC+1,SN ;IDIV FAILED
14478 042330 321 07 0 00 042321 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14479
14480
14481 020205 SN=SN+1
14482 000020 ZZ=ZZ+ZZ
14483 IFE ZZ,<ZZ=1>
14484 042331 201 05 0 00 000020 MOVEI AC,ZZ ;SETUP DVND
14485 042332 201 04 0 00 000020 MOVEI AC-1,ZZ ;SETUP DVSR
14486 042333 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14487 042334 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14488 042335 003 05 0 00 020205 ER3 AC,SN
14489 042336 322 06 0 00 042340 JUMPE AC+1,.+2 ;TEST REMD=0
14490 042337 004 06 0 00 020205 ER4 AC+1,SN ;IDIV FAILED
14491 042340 321 07 0 00 042331 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14492
14493
14494 020206 SN=SN+1
14495 000040 ZZ=ZZ+ZZ
14496 IFE ZZ,<ZZ=1>
14497 042341 201 05 0 00 000040 MOVEI AC,ZZ ;SETUP DVND
14498 042342 201 04 0 00 000040 MOVEI AC-1,ZZ ;SETUP DVSR
14499 042343 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14500 042344 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14501 042345 003 05 0 00 020206 ER3 AC,SN
14502 042346 322 06 0 00 042350 JUMPE AC+1,.+2 ;TEST REMD=0
14503 042347 004 06 0 00 020206 ER4 AC+1,SN ;IDIV FAILED
14504 042350 321 07 0 00 042341 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 79-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0324
14505
14506
14507 020207 SN=SN+1
14508 000100 ZZ=ZZ+ZZ
14509 IFE ZZ,<ZZ=1>
14510 042351 201 05 0 00 000100 MOVEI AC,ZZ ;SETUP DVND
14511 042352 201 04 0 00 000100 MOVEI AC-1,ZZ ;SETUP DVSR
14512 042353 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14513 042354 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14514 042355 003 05 0 00 020207 ER3 AC,SN
14515 042356 322 06 0 00 042360 JUMPE AC+1,.+2 ;TEST REMD=0
14516 042357 004 06 0 00 020207 ER4 AC+1,SN ;IDIV FAILED
14517 042360 321 07 0 00 042351 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14518
14519
14520 020210 SN=SN+1
14521 000200 ZZ=ZZ+ZZ
14522 IFE ZZ,<ZZ=1>
14523 042361 201 05 0 00 000200 MOVEI AC,ZZ ;SETUP DVND
14524 042362 201 04 0 00 000200 MOVEI AC-1,ZZ ;SETUP DVSR
14525 042363 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14526 042364 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14527 042365 003 05 0 00 020210 ER3 AC,SN
14528 042366 322 06 0 00 042370 JUMPE AC+1,.+2 ;TEST REMD=0
14529 042367 004 06 0 00 020210 ER4 AC+1,SN ;IDIV FAILED
14530 042370 321 07 0 00 042361 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14531
14532
14533 020211 SN=SN+1
14534 000400 ZZ=ZZ+ZZ
14535 IFE ZZ,<ZZ=1>
14536 042371 201 05 0 00 000400 MOVEI AC,ZZ ;SETUP DVND
14537 042372 201 04 0 00 000400 MOVEI AC-1,ZZ ;SETUP DVSR
14538 042373 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14539 042374 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14540 042375 003 05 0 00 020211 ER3 AC,SN
14541 042376 322 06 0 00 042400 JUMPE AC+1,.+2 ;TEST REMD=0
14542 042377 004 06 0 00 020211 ER4 AC+1,SN ;IDIV FAILED
14543 042400 321 07 0 00 042371 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14544
14545
14546 020212 SN=SN+1
14547 001000 ZZ=ZZ+ZZ
14548 IFE ZZ,<ZZ=1>
14549 042401 201 05 0 00 001000 MOVEI AC,ZZ ;SETUP DVND
14550 042402 201 04 0 00 001000 MOVEI AC-1,ZZ ;SETUP DVSR
14551 042403 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14552 042404 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14553 042405 003 05 0 00 020212 ER3 AC,SN
14554 042406 322 06 0 00 042410 JUMPE AC+1,.+2 ;TEST REMD=0
14555 042407 004 06 0 00 020212 ER4 AC+1,SN ;IDIV FAILED
14556 042410 321 07 0 00 042401 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14557
14558
14559 020213 SN=SN+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 79-3
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0325
14560 002000 ZZ=ZZ+ZZ
14561 IFE ZZ,<ZZ=1>
14562 042411 201 05 0 00 002000 MOVEI AC,ZZ ;SETUP DVND
14563 042412 201 04 0 00 002000 MOVEI AC-1,ZZ ;SETUP DVSR
14564 042413 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14565 042414 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14566 042415 003 05 0 00 020213 ER3 AC,SN
14567 042416 322 06 0 00 042420 JUMPE AC+1,.+2 ;TEST REMD=0
14568 042417 004 06 0 00 020213 ER4 AC+1,SN ;IDIV FAILED
14569 042420 321 07 0 00 042411 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14570
14571
14572 020214 SN=SN+1
14573 004000 ZZ=ZZ+ZZ
14574 IFE ZZ,<ZZ=1>
14575 042421 201 05 0 00 004000 MOVEI AC,ZZ ;SETUP DVND
14576 042422 201 04 0 00 004000 MOVEI AC-1,ZZ ;SETUP DVSR
14577 042423 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14578 042424 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14579 042425 003 05 0 00 020214 ER3 AC,SN
14580 042426 322 06 0 00 042430 JUMPE AC+1,.+2 ;TEST REMD=0
14581 042427 004 06 0 00 020214 ER4 AC+1,SN ;IDIV FAILED
14582 042430 321 07 0 00 042421 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14583
14584
14585 020215 SN=SN+1
14586 010000 ZZ=ZZ+ZZ
14587 IFE ZZ,<ZZ=1>
14588 042431 201 05 0 00 010000 MOVEI AC,ZZ ;SETUP DVND
14589 042432 201 04 0 00 010000 MOVEI AC-1,ZZ ;SETUP DVSR
14590 042433 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14591 042434 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14592 042435 003 05 0 00 020215 ER3 AC,SN
14593 042436 322 06 0 00 042440 JUMPE AC+1,.+2 ;TEST REMD=0
14594 042437 004 06 0 00 020215 ER4 AC+1,SN ;IDIV FAILED
14595 042440 321 07 0 00 042431 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14596
14597
14598 020216 SN=SN+1
14599 020000 ZZ=ZZ+ZZ
14600 IFE ZZ,<ZZ=1>
14601 042441 201 05 0 00 020000 MOVEI AC,ZZ ;SETUP DVND
14602 042442 201 04 0 00 020000 MOVEI AC-1,ZZ ;SETUP DVSR
14603 042443 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14604 042444 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14605 042445 003 05 0 00 020216 ER3 AC,SN
14606 042446 322 06 0 00 042450 JUMPE AC+1,.+2 ;TEST REMD=0
14607 042447 004 06 0 00 020216 ER4 AC+1,SN ;IDIV FAILED
14608 042450 321 07 0 00 042441 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14609
14610
14611 020217 SN=SN+1
14612 040000 ZZ=ZZ+ZZ
14613 IFE ZZ,<ZZ=1>
14614 042451 201 05 0 00 040000 MOVEI AC,ZZ ;SETUP DVND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 79-4
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0326
14615 042452 201 04 0 00 040000 MOVEI AC-1,ZZ ;SETUP DVSR
14616 042453 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14617 042454 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14618 042455 003 05 0 00 020217 ER3 AC,SN
14619 042456 322 06 0 00 042460 JUMPE AC+1,.+2 ;TEST REMD=0
14620 042457 004 06 0 00 020217 ER4 AC+1,SN ;IDIV FAILED
14621 042460 321 07 0 00 042451 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14622
14623
14624 020220 SN=SN+1
14625 100000 ZZ=ZZ+ZZ
14626 IFE ZZ,<ZZ=1>
14627 042461 201 05 0 00 100000 MOVEI AC,ZZ ;SETUP DVND
14628 042462 201 04 0 00 100000 MOVEI AC-1,ZZ ;SETUP DVSR
14629 042463 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14630 042464 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14631 042465 003 05 0 00 020220 ER3 AC,SN
14632 042466 322 06 0 00 042470 JUMPE AC+1,.+2 ;TEST REMD=0
14633 042467 004 06 0 00 020220 ER4 AC+1,SN ;IDIV FAILED
14634 042470 321 07 0 00 042461 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14635
14636
14637 020221 SN=SN+1
14638 200000 ZZ=ZZ+ZZ
14639 IFE ZZ,<ZZ=1>
14640 042471 201 05 0 00 200000 MOVEI AC,ZZ ;SETUP DVND
14641 042472 201 04 0 00 200000 MOVEI AC-1,ZZ ;SETUP DVSR
14642 042473 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14643 042474 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14644 042475 003 05 0 00 020221 ER3 AC,SN
14645 042476 322 06 0 00 042500 JUMPE AC+1,.+2 ;TEST REMD=0
14646 042477 004 06 0 00 020221 ER4 AC+1,SN ;IDIV FAILED
14647 042500 321 07 0 00 042471 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14648
14649
14650 020222 SN=SN+1
14651 400000 ZZ=ZZ+ZZ
14652 IFE ZZ,<ZZ=1>
14653 042501 201 05 0 00 400000 MOVEI AC,ZZ ;SETUP DVND
14654 042502 201 04 0 00 400000 MOVEI AC-1,ZZ ;SETUP DVSR
14655 042503 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14656 042504 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14657 042505 003 05 0 00 020222 ER3 AC,SN
14658 042506 322 06 0 00 042510 JUMPE AC+1,.+2 ;TEST REMD=0
14659 042507 004 06 0 00 020222 ER4 AC+1,SN ;IDIV FAILED
14660 042510 321 07 0 00 042501 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14661
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 80
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0327
14662 020300 SN=20300
14663 000000 ZZ=0
14664
14665 F20300: REPEAT ^D17,<
14666 SN=SN+1
14667 ZZ=ZZ+ZZ
14668 IFE ZZ,<ZZ=1>
14669 MOVSI AC,ZZ ;SETUP DVND
14670 MOVSI AC-1,ZZ ;SETUP DVSR
14671 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14672 CAIE AC,1 ;TEST QUOT=1
14673 ER3 AC,SN
14674 JUMPE AC+1,.+2 ;TEST REMD=0
14675 ER4 AC+1,SN ;IDIV FAILED
14676 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14677 >
14678
14679 020301 SN=SN+1
14680 000000 ZZ=ZZ+ZZ
14681 000001 IFE ZZ,<ZZ=1>
14682 042511 205 05 0 00 000001 MOVSI AC,ZZ ;SETUP DVND
14683 042512 205 04 0 00 000001 MOVSI AC-1,ZZ ;SETUP DVSR
14684 042513 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14685 042514 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14686 042515 003 05 0 00 020301 ER3 AC,SN
14687 042516 322 06 0 00 042520 JUMPE AC+1,.+2 ;TEST REMD=0
14688 042517 004 06 0 00 020301 ER4 AC+1,SN ;IDIV FAILED
14689 042520 321 07 0 00 042511 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14690
14691
14692 020302 SN=SN+1
14693 000002 ZZ=ZZ+ZZ
14694 IFE ZZ,<ZZ=1>
14695 042521 205 05 0 00 000002 MOVSI AC,ZZ ;SETUP DVND
14696 042522 205 04 0 00 000002 MOVSI AC-1,ZZ ;SETUP DVSR
14697 042523 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14698 042524 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14699 042525 003 05 0 00 020302 ER3 AC,SN
14700 042526 322 06 0 00 042530 JUMPE AC+1,.+2 ;TEST REMD=0
14701 042527 004 06 0 00 020302 ER4 AC+1,SN ;IDIV FAILED
14702 042530 321 07 0 00 042521 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14703
14704
14705 020303 SN=SN+1
14706 000004 ZZ=ZZ+ZZ
14707 IFE ZZ,<ZZ=1>
14708 042531 205 05 0 00 000004 MOVSI AC,ZZ ;SETUP DVND
14709 042532 205 04 0 00 000004 MOVSI AC-1,ZZ ;SETUP DVSR
14710 042533 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14711 042534 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14712 042535 003 05 0 00 020303 ER3 AC,SN
14713 042536 322 06 0 00 042540 JUMPE AC+1,.+2 ;TEST REMD=0
14714 042537 004 06 0 00 020303 ER4 AC+1,SN ;IDIV FAILED
14715 042540 321 07 0 00 042531 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14716
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 80-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0328
14717
14718 020304 SN=SN+1
14719 000010 ZZ=ZZ+ZZ
14720 IFE ZZ,<ZZ=1>
14721 042541 205 05 0 00 000010 MOVSI AC,ZZ ;SETUP DVND
14722 042542 205 04 0 00 000010 MOVSI AC-1,ZZ ;SETUP DVSR
14723 042543 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14724 042544 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14725 042545 003 05 0 00 020304 ER3 AC,SN
14726 042546 322 06 0 00 042550 JUMPE AC+1,.+2 ;TEST REMD=0
14727 042547 004 06 0 00 020304 ER4 AC+1,SN ;IDIV FAILED
14728 042550 321 07 0 00 042541 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14729
14730
14731 020305 SN=SN+1
14732 000020 ZZ=ZZ+ZZ
14733 IFE ZZ,<ZZ=1>
14734 042551 205 05 0 00 000020 MOVSI AC,ZZ ;SETUP DVND
14735 042552 205 04 0 00 000020 MOVSI AC-1,ZZ ;SETUP DVSR
14736 042553 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14737 042554 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14738 042555 003 05 0 00 020305 ER3 AC,SN
14739 042556 322 06 0 00 042560 JUMPE AC+1,.+2 ;TEST REMD=0
14740 042557 004 06 0 00 020305 ER4 AC+1,SN ;IDIV FAILED
14741 042560 321 07 0 00 042551 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14742
14743
14744 020306 SN=SN+1
14745 000040 ZZ=ZZ+ZZ
14746 IFE ZZ,<ZZ=1>
14747 042561 205 05 0 00 000040 MOVSI AC,ZZ ;SETUP DVND
14748 042562 205 04 0 00 000040 MOVSI AC-1,ZZ ;SETUP DVSR
14749 042563 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14750 042564 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14751 042565 003 05 0 00 020306 ER3 AC,SN
14752 042566 322 06 0 00 042570 JUMPE AC+1,.+2 ;TEST REMD=0
14753 042567 004 06 0 00 020306 ER4 AC+1,SN ;IDIV FAILED
14754 042570 321 07 0 00 042561 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14755
14756
14757 020307 SN=SN+1
14758 000100 ZZ=ZZ+ZZ
14759 IFE ZZ,<ZZ=1>
14760 042571 205 05 0 00 000100 MOVSI AC,ZZ ;SETUP DVND
14761 042572 205 04 0 00 000100 MOVSI AC-1,ZZ ;SETUP DVSR
14762 042573 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14763 042574 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14764 042575 003 05 0 00 020307 ER3 AC,SN
14765 042576 322 06 0 00 042600 JUMPE AC+1,.+2 ;TEST REMD=0
14766 042577 004 06 0 00 020307 ER4 AC+1,SN ;IDIV FAILED
14767 042600 321 07 0 00 042571 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14768
14769
14770 020310 SN=SN+1
14771 000200 ZZ=ZZ+ZZ
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 80-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0329
14772 IFE ZZ,<ZZ=1>
14773 042601 205 05 0 00 000200 MOVSI AC,ZZ ;SETUP DVND
14774 042602 205 04 0 00 000200 MOVSI AC-1,ZZ ;SETUP DVSR
14775 042603 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14776 042604 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14777 042605 003 05 0 00 020310 ER3 AC,SN
14778 042606 322 06 0 00 042610 JUMPE AC+1,.+2 ;TEST REMD=0
14779 042607 004 06 0 00 020310 ER4 AC+1,SN ;IDIV FAILED
14780 042610 321 07 0 00 042601 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14781
14782
14783 020311 SN=SN+1
14784 000400 ZZ=ZZ+ZZ
14785 IFE ZZ,<ZZ=1>
14786 042611 205 05 0 00 000400 MOVSI AC,ZZ ;SETUP DVND
14787 042612 205 04 0 00 000400 MOVSI AC-1,ZZ ;SETUP DVSR
14788 042613 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14789 042614 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14790 042615 003 05 0 00 020311 ER3 AC,SN
14791 042616 322 06 0 00 042620 JUMPE AC+1,.+2 ;TEST REMD=0
14792 042617 004 06 0 00 020311 ER4 AC+1,SN ;IDIV FAILED
14793 042620 321 07 0 00 042611 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14794
14795
14796 020312 SN=SN+1
14797 001000 ZZ=ZZ+ZZ
14798 IFE ZZ,<ZZ=1>
14799 042621 205 05 0 00 001000 MOVSI AC,ZZ ;SETUP DVND
14800 042622 205 04 0 00 001000 MOVSI AC-1,ZZ ;SETUP DVSR
14801 042623 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14802 042624 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14803 042625 003 05 0 00 020312 ER3 AC,SN
14804 042626 322 06 0 00 042630 JUMPE AC+1,.+2 ;TEST REMD=0
14805 042627 004 06 0 00 020312 ER4 AC+1,SN ;IDIV FAILED
14806 042630 321 07 0 00 042621 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14807
14808
14809 020313 SN=SN+1
14810 002000 ZZ=ZZ+ZZ
14811 IFE ZZ,<ZZ=1>
14812 042631 205 05 0 00 002000 MOVSI AC,ZZ ;SETUP DVND
14813 042632 205 04 0 00 002000 MOVSI AC-1,ZZ ;SETUP DVSR
14814 042633 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14815 042634 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14816 042635 003 05 0 00 020313 ER3 AC,SN
14817 042636 322 06 0 00 042640 JUMPE AC+1,.+2 ;TEST REMD=0
14818 042637 004 06 0 00 020313 ER4 AC+1,SN ;IDIV FAILED
14819 042640 321 07 0 00 042631 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14820
14821
14822 020314 SN=SN+1
14823 004000 ZZ=ZZ+ZZ
14824 IFE ZZ,<ZZ=1>
14825 042641 205 05 0 00 004000 MOVSI AC,ZZ ;SETUP DVND
14826 042642 205 04 0 00 004000 MOVSI AC-1,ZZ ;SETUP DVSR
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 80-3
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0330
14827 042643 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14828 042644 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14829 042645 003 05 0 00 020314 ER3 AC,SN
14830 042646 322 06 0 00 042650 JUMPE AC+1,.+2 ;TEST REMD=0
14831 042647 004 06 0 00 020314 ER4 AC+1,SN ;IDIV FAILED
14832 042650 321 07 0 00 042641 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14833
14834
14835 020315 SN=SN+1
14836 010000 ZZ=ZZ+ZZ
14837 IFE ZZ,<ZZ=1>
14838 042651 205 05 0 00 010000 MOVSI AC,ZZ ;SETUP DVND
14839 042652 205 04 0 00 010000 MOVSI AC-1,ZZ ;SETUP DVSR
14840 042653 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14841 042654 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14842 042655 003 05 0 00 020315 ER3 AC,SN
14843 042656 322 06 0 00 042660 JUMPE AC+1,.+2 ;TEST REMD=0
14844 042657 004 06 0 00 020315 ER4 AC+1,SN ;IDIV FAILED
14845 042660 321 07 0 00 042651 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14846
14847
14848 020316 SN=SN+1
14849 020000 ZZ=ZZ+ZZ
14850 IFE ZZ,<ZZ=1>
14851 042661 205 05 0 00 020000 MOVSI AC,ZZ ;SETUP DVND
14852 042662 205 04 0 00 020000 MOVSI AC-1,ZZ ;SETUP DVSR
14853 042663 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14854 042664 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14855 042665 003 05 0 00 020316 ER3 AC,SN
14856 042666 322 06 0 00 042670 JUMPE AC+1,.+2 ;TEST REMD=0
14857 042667 004 06 0 00 020316 ER4 AC+1,SN ;IDIV FAILED
14858 042670 321 07 0 00 042661 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14859
14860
14861 020317 SN=SN+1
14862 040000 ZZ=ZZ+ZZ
14863 IFE ZZ,<ZZ=1>
14864 042671 205 05 0 00 040000 MOVSI AC,ZZ ;SETUP DVND
14865 042672 205 04 0 00 040000 MOVSI AC-1,ZZ ;SETUP DVSR
14866 042673 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14867 042674 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14868 042675 003 05 0 00 020317 ER3 AC,SN
14869 042676 322 06 0 00 042700 JUMPE AC+1,.+2 ;TEST REMD=0
14870 042677 004 06 0 00 020317 ER4 AC+1,SN ;IDIV FAILED
14871 042700 321 07 0 00 042671 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14872
14873
14874 020320 SN=SN+1
14875 100000 ZZ=ZZ+ZZ
14876 IFE ZZ,<ZZ=1>
14877 042701 205 05 0 00 100000 MOVSI AC,ZZ ;SETUP DVND
14878 042702 205 04 0 00 100000 MOVSI AC-1,ZZ ;SETUP DVSR
14879 042703 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14880 042704 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14881 042705 003 05 0 00 020320 ER3 AC,SN
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 80-4
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0331
14882 042706 322 06 0 00 042710 JUMPE AC+1,.+2 ;TEST REMD=0
14883 042707 004 06 0 00 020320 ER4 AC+1,SN ;IDIV FAILED
14884 042710 321 07 0 00 042701 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14885
14886
14887 020321 SN=SN+1
14888 200000 ZZ=ZZ+ZZ
14889 IFE ZZ,<ZZ=1>
14890 042711 205 05 0 00 200000 MOVSI AC,ZZ ;SETUP DVND
14891 042712 205 04 0 00 200000 MOVSI AC-1,ZZ ;SETUP DVSR
14892 042713 230 05 0 00 000004 IDIV AC,AC-1 ;DIVIDE ZZ BY ZZ
14893 042714 302 05 0 00 000001 CAIE AC,1 ;TEST QUOT=1
14894 042715 003 05 0 00 020321 ER3 AC,SN
14895 042716 322 06 0 00 042720 JUMPE AC+1,.+2 ;TEST REMD=0
14896 042717 004 06 0 00 020321 ER4 AC+1,SN ;IDIV FAILED
14897 042720 321 07 0 00 042711 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
14898
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 81
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0332
14899 ;TEST IDIV DIRECT - TWO POSITIVES
14900 ;TESTING IS ACCOMPLISHED BY
14901 ;DIVIDING AN EVEN NUMBER BY 1
14902 ;DVND=1,2,4 ETC
14903 ;DVSR=1
14904 ;AN ERROR WILL OCCUR IF QUOT
14905 ;DIFFERS FROM DVND
14906 ;AN ERROR WILL OCCUR IF REMD
14907 ;DIFFERS FROM 0
14908
14909 000013 AC=13
14910 SAVEAC (1,1)^
14911 042721 201 15 0 00 042721 MOVEI AC+2,. ;SAVE TEST PC
14912 042722 202 15 0 00 030051 MOVEM AC+2,TESTPC
14913 042723 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
14914 042724 202 15 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
14915
14916 020400 SN=20400
14917 000000 ZZ=0
14918
14919 F20400: REPEAT ^D18,<
14920 SN=SN+1
14921 ZZ=ZZ+ZZ
14922 IFE ZZ,<ZZ=1>
14923 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
14924 MOVEI AC,ZZ ;SETUP DVND
14925 MOVEI AC-1,1 ;SETUP DVSR
14926 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
14927 CAME AC,AC-2 ;TEST QUOT=DVND
14928 ER3 AC,SN
14929 JUMPE AC+1,.+2 ;TEST REMD=0
14930 ER4 AC+1,SN ;IDIV FAILED
14931 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
14932 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14933 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
14934 >
14935
14936 020401 SN=SN+1
14937 000000 ZZ=ZZ+ZZ
14938 000001 IFE ZZ,<ZZ=1>
14939 042725 201 11 0 00 000001 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
14940 042726 201 13 0 00 000001 MOVEI AC,ZZ ;SETUP DVND
14941 042727 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
14942 042730 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
14943 042731 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
14944 042732 003 13 0 00 020401 ER3 AC,SN
14945 042733 322 14 0 00 042735 JUMPE AC+1,.+2 ;TEST REMD=0
14946 042734 004 14 0 00 020401 ER4 AC+1,SN ;IDIV FAILED
14947 042735 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
14948 042736 005 12 0 00 020401 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14949 042737 321 15 0 00 042725 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
14950
14951
14952 020402 SN=SN+1
14953 000002 ZZ=ZZ+ZZ
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 81-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0333
14954 IFE ZZ,<ZZ=1>
14955 042740 201 11 0 00 000002 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
14956 042741 201 13 0 00 000002 MOVEI AC,ZZ ;SETUP DVND
14957 042742 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
14958 042743 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
14959 042744 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
14960 042745 003 13 0 00 020402 ER3 AC,SN
14961 042746 322 14 0 00 042750 JUMPE AC+1,.+2 ;TEST REMD=0
14962 042747 004 14 0 00 020402 ER4 AC+1,SN ;IDIV FAILED
14963 042750 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
14964 042751 005 12 0 00 020402 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14965 042752 321 15 0 00 042740 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
14966
14967
14968 020403 SN=SN+1
14969 000004 ZZ=ZZ+ZZ
14970 IFE ZZ,<ZZ=1>
14971 042753 201 11 0 00 000004 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
14972 042754 201 13 0 00 000004 MOVEI AC,ZZ ;SETUP DVND
14973 042755 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
14974 042756 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
14975 042757 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
14976 042760 003 13 0 00 020403 ER3 AC,SN
14977 042761 322 14 0 00 042763 JUMPE AC+1,.+2 ;TEST REMD=0
14978 042762 004 14 0 00 020403 ER4 AC+1,SN ;IDIV FAILED
14979 042763 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
14980 042764 005 12 0 00 020403 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14981 042765 321 15 0 00 042753 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
14982
14983
14984 020404 SN=SN+1
14985 000010 ZZ=ZZ+ZZ
14986 IFE ZZ,<ZZ=1>
14987 042766 201 11 0 00 000010 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
14988 042767 201 13 0 00 000010 MOVEI AC,ZZ ;SETUP DVND
14989 042770 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
14990 042771 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
14991 042772 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
14992 042773 003 13 0 00 020404 ER3 AC,SN
14993 042774 322 14 0 00 042776 JUMPE AC+1,.+2 ;TEST REMD=0
14994 042775 004 14 0 00 020404 ER4 AC+1,SN ;IDIV FAILED
14995 042776 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
14996 042777 005 12 0 00 020404 ER5 AC-1,SN ;C(E) WAS CLOBBERED
14997 043000 321 15 0 00 042766 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
14998
14999
15000 020405 SN=SN+1
15001 000020 ZZ=ZZ+ZZ
15002 IFE ZZ,<ZZ=1>
15003 043001 201 11 0 00 000020 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15004 043002 201 13 0 00 000020 MOVEI AC,ZZ ;SETUP DVND
15005 043003 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15006 043004 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15007 043005 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15008 043006 003 13 0 00 020405 ER3 AC,SN
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 81-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0334
15009 043007 322 14 0 00 043011 JUMPE AC+1,.+2 ;TEST REMD=0
15010 043010 004 14 0 00 020405 ER4 AC+1,SN ;IDIV FAILED
15011 043011 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15012 043012 005 12 0 00 020405 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15013 043013 321 15 0 00 043001 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15014
15015
15016 020406 SN=SN+1
15017 000040 ZZ=ZZ+ZZ
15018 IFE ZZ,<ZZ=1>
15019 043014 201 11 0 00 000040 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15020 043015 201 13 0 00 000040 MOVEI AC,ZZ ;SETUP DVND
15021 043016 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15022 043017 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15023 043020 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15024 043021 003 13 0 00 020406 ER3 AC,SN
15025 043022 322 14 0 00 043024 JUMPE AC+1,.+2 ;TEST REMD=0
15026 043023 004 14 0 00 020406 ER4 AC+1,SN ;IDIV FAILED
15027 043024 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15028 043025 005 12 0 00 020406 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15029 043026 321 15 0 00 043014 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15030
15031
15032 020407 SN=SN+1
15033 000100 ZZ=ZZ+ZZ
15034 IFE ZZ,<ZZ=1>
15035 043027 201 11 0 00 000100 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15036 043030 201 13 0 00 000100 MOVEI AC,ZZ ;SETUP DVND
15037 043031 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15038 043032 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15039 043033 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15040 043034 003 13 0 00 020407 ER3 AC,SN
15041 043035 322 14 0 00 043037 JUMPE AC+1,.+2 ;TEST REMD=0
15042 043036 004 14 0 00 020407 ER4 AC+1,SN ;IDIV FAILED
15043 043037 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15044 043040 005 12 0 00 020407 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15045 043041 321 15 0 00 043027 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15046
15047
15048 020410 SN=SN+1
15049 000200 ZZ=ZZ+ZZ
15050 IFE ZZ,<ZZ=1>
15051 043042 201 11 0 00 000200 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15052 043043 201 13 0 00 000200 MOVEI AC,ZZ ;SETUP DVND
15053 043044 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15054 043045 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15055 043046 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15056 043047 003 13 0 00 020410 ER3 AC,SN
15057 043050 322 14 0 00 043052 JUMPE AC+1,.+2 ;TEST REMD=0
15058 043051 004 14 0 00 020410 ER4 AC+1,SN ;IDIV FAILED
15059 043052 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15060 043053 005 12 0 00 020410 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15061 043054 321 15 0 00 043042 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15062
15063
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 81-3
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0335
15064 020411 SN=SN+1
15065 000400 ZZ=ZZ+ZZ
15066 IFE ZZ,<ZZ=1>
15067 043055 201 11 0 00 000400 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15068 043056 201 13 0 00 000400 MOVEI AC,ZZ ;SETUP DVND
15069 043057 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15070 043060 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15071 043061 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15072 043062 003 13 0 00 020411 ER3 AC,SN
15073 043063 322 14 0 00 043065 JUMPE AC+1,.+2 ;TEST REMD=0
15074 043064 004 14 0 00 020411 ER4 AC+1,SN ;IDIV FAILED
15075 043065 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15076 043066 005 12 0 00 020411 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15077 043067 321 15 0 00 043055 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15078
15079
15080 020412 SN=SN+1
15081 001000 ZZ=ZZ+ZZ
15082 IFE ZZ,<ZZ=1>
15083 043070 201 11 0 00 001000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15084 043071 201 13 0 00 001000 MOVEI AC,ZZ ;SETUP DVND
15085 043072 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15086 043073 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15087 043074 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15088 043075 003 13 0 00 020412 ER3 AC,SN
15089 043076 322 14 0 00 043100 JUMPE AC+1,.+2 ;TEST REMD=0
15090 043077 004 14 0 00 020412 ER4 AC+1,SN ;IDIV FAILED
15091 043100 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15092 043101 005 12 0 00 020412 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15093 043102 321 15 0 00 043070 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15094
15095
15096 020413 SN=SN+1
15097 002000 ZZ=ZZ+ZZ
15098 IFE ZZ,<ZZ=1>
15099 043103 201 11 0 00 002000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15100 043104 201 13 0 00 002000 MOVEI AC,ZZ ;SETUP DVND
15101 043105 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15102 043106 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15103 043107 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15104 043110 003 13 0 00 020413 ER3 AC,SN
15105 043111 322 14 0 00 043113 JUMPE AC+1,.+2 ;TEST REMD=0
15106 043112 004 14 0 00 020413 ER4 AC+1,SN ;IDIV FAILED
15107 043113 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15108 043114 005 12 0 00 020413 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15109 043115 321 15 0 00 043103 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15110
15111
15112 020414 SN=SN+1
15113 004000 ZZ=ZZ+ZZ
15114 IFE ZZ,<ZZ=1>
15115 043116 201 11 0 00 004000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15116 043117 201 13 0 00 004000 MOVEI AC,ZZ ;SETUP DVND
15117 043120 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15118 043121 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 81-4
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0336
15119 043122 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15120 043123 003 13 0 00 020414 ER3 AC,SN
15121 043124 322 14 0 00 043126 JUMPE AC+1,.+2 ;TEST REMD=0
15122 043125 004 14 0 00 020414 ER4 AC+1,SN ;IDIV FAILED
15123 043126 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15124 043127 005 12 0 00 020414 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15125 043130 321 15 0 00 043116 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15126
15127
15128 020415 SN=SN+1
15129 010000 ZZ=ZZ+ZZ
15130 IFE ZZ,<ZZ=1>
15131 043131 201 11 0 00 010000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15132 043132 201 13 0 00 010000 MOVEI AC,ZZ ;SETUP DVND
15133 043133 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15134 043134 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15135 043135 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15136 043136 003 13 0 00 020415 ER3 AC,SN
15137 043137 322 14 0 00 043141 JUMPE AC+1,.+2 ;TEST REMD=0
15138 043140 004 14 0 00 020415 ER4 AC+1,SN ;IDIV FAILED
15139 043141 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15140 043142 005 12 0 00 020415 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15141 043143 321 15 0 00 043131 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15142
15143
15144 020416 SN=SN+1
15145 020000 ZZ=ZZ+ZZ
15146 IFE ZZ,<ZZ=1>
15147 043144 201 11 0 00 020000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15148 043145 201 13 0 00 020000 MOVEI AC,ZZ ;SETUP DVND
15149 043146 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15150 043147 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15151 043150 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15152 043151 003 13 0 00 020416 ER3 AC,SN
15153 043152 322 14 0 00 043154 JUMPE AC+1,.+2 ;TEST REMD=0
15154 043153 004 14 0 00 020416 ER4 AC+1,SN ;IDIV FAILED
15155 043154 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15156 043155 005 12 0 00 020416 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15157 043156 321 15 0 00 043144 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15158
15159
15160 020417 SN=SN+1
15161 040000 ZZ=ZZ+ZZ
15162 IFE ZZ,<ZZ=1>
15163 043157 201 11 0 00 040000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15164 043160 201 13 0 00 040000 MOVEI AC,ZZ ;SETUP DVND
15165 043161 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15166 043162 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15167 043163 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15168 043164 003 13 0 00 020417 ER3 AC,SN
15169 043165 322 14 0 00 043167 JUMPE AC+1,.+2 ;TEST REMD=0
15170 043166 004 14 0 00 020417 ER4 AC+1,SN ;IDIV FAILED
15171 043167 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15172 043170 005 12 0 00 020417 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15173 043171 321 15 0 00 043157 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 81-5
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0337
15174
15175
15176 020420 SN=SN+1
15177 100000 ZZ=ZZ+ZZ
15178 IFE ZZ,<ZZ=1>
15179 043172 201 11 0 00 100000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15180 043173 201 13 0 00 100000 MOVEI AC,ZZ ;SETUP DVND
15181 043174 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15182 043175 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15183 043176 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15184 043177 003 13 0 00 020420 ER3 AC,SN
15185 043200 322 14 0 00 043202 JUMPE AC+1,.+2 ;TEST REMD=0
15186 043201 004 14 0 00 020420 ER4 AC+1,SN ;IDIV FAILED
15187 043202 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15188 043203 005 12 0 00 020420 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15189 043204 321 15 0 00 043172 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15190
15191
15192 020421 SN=SN+1
15193 200000 ZZ=ZZ+ZZ
15194 IFE ZZ,<ZZ=1>
15195 043205 201 11 0 00 200000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15196 043206 201 13 0 00 200000 MOVEI AC,ZZ ;SETUP DVND
15197 043207 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15198 043210 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15199 043211 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15200 043212 003 13 0 00 020421 ER3 AC,SN
15201 043213 322 14 0 00 043215 JUMPE AC+1,.+2 ;TEST REMD=0
15202 043214 004 14 0 00 020421 ER4 AC+1,SN ;IDIV FAILED
15203 043215 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15204 043216 005 12 0 00 020421 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15205 043217 321 15 0 00 043205 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15206
15207
15208 020422 SN=SN+1
15209 400000 ZZ=ZZ+ZZ
15210 IFE ZZ,<ZZ=1>
15211 043220 201 11 0 00 400000 MOVEI AC-2,ZZ ;SETUP FOR COMPARISON
15212 043221 201 13 0 00 400000 MOVEI AC,ZZ ;SETUP DVND
15213 043222 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15214 043223 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15215 043224 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15216 043225 003 13 0 00 020422 ER3 AC,SN
15217 043226 322 14 0 00 043230 JUMPE AC+1,.+2 ;TEST REMD=0
15218 043227 004 14 0 00 020422 ER4 AC+1,SN ;IDIV FAILED
15219 043230 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15220 043231 005 12 0 00 020422 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15221 043232 321 15 0 00 043220 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15222
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 82
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0338
15223 020500 SN=20500
15224 000000 ZZ=0
15225
15226 F20500: REPEAT ^D17,<
15227 SN=SN+1
15228 ZZ=ZZ+ZZ
15229 IFE ZZ,<ZZ=1>
15230 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15231 MOVSI AC,ZZ ;SETUP DVND
15232 MOVEI AC-1,1 ;SETUP DVSR
15233 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15234 CAME AC,AC-2 ;TEST QUOT=DVND
15235 ER3 AC,SN
15236 JUMPE AC+1,.+2 ;TEST REMD=0
15237 ER4 AC+1,SN ;IDIV FAILED
15238 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15239 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15240 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15241 >
15242
15243 020501 SN=SN+1
15244 000000 ZZ=ZZ+ZZ
15245 000001 IFE ZZ,<ZZ=1>
15246 043233 205 11 0 00 000001 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15247 043234 205 13 0 00 000001 MOVSI AC,ZZ ;SETUP DVND
15248 043235 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15249 043236 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15250 043237 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15251 043240 003 13 0 00 020501 ER3 AC,SN
15252 043241 322 14 0 00 043243 JUMPE AC+1,.+2 ;TEST REMD=0
15253 043242 004 14 0 00 020501 ER4 AC+1,SN ;IDIV FAILED
15254 043243 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15255 043244 005 12 0 00 020501 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15256 043245 321 15 0 00 043233 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15257
15258
15259 020502 SN=SN+1
15260 000002 ZZ=ZZ+ZZ
15261 IFE ZZ,<ZZ=1>
15262 043246 205 11 0 00 000002 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15263 043247 205 13 0 00 000002 MOVSI AC,ZZ ;SETUP DVND
15264 043250 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15265 043251 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15266 043252 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15267 043253 003 13 0 00 020502 ER3 AC,SN
15268 043254 322 14 0 00 043256 JUMPE AC+1,.+2 ;TEST REMD=0
15269 043255 004 14 0 00 020502 ER4 AC+1,SN ;IDIV FAILED
15270 043256 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15271 043257 005 12 0 00 020502 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15272 043260 321 15 0 00 043246 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15273
15274
15275 020503 SN=SN+1
15276 000004 ZZ=ZZ+ZZ
15277 IFE ZZ,<ZZ=1>
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 82-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0339
15278 043261 205 11 0 00 000004 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15279 043262 205 13 0 00 000004 MOVSI AC,ZZ ;SETUP DVND
15280 043263 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15281 043264 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15282 043265 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15283 043266 003 13 0 00 020503 ER3 AC,SN
15284 043267 322 14 0 00 043271 JUMPE AC+1,.+2 ;TEST REMD=0
15285 043270 004 14 0 00 020503 ER4 AC+1,SN ;IDIV FAILED
15286 043271 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15287 043272 005 12 0 00 020503 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15288 043273 321 15 0 00 043261 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15289
15290
15291 020504 SN=SN+1
15292 000010 ZZ=ZZ+ZZ
15293 IFE ZZ,<ZZ=1>
15294 043274 205 11 0 00 000010 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15295 043275 205 13 0 00 000010 MOVSI AC,ZZ ;SETUP DVND
15296 043276 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15297 043277 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15298 043300 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15299 043301 003 13 0 00 020504 ER3 AC,SN
15300 043302 322 14 0 00 043304 JUMPE AC+1,.+2 ;TEST REMD=0
15301 043303 004 14 0 00 020504 ER4 AC+1,SN ;IDIV FAILED
15302 043304 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15303 043305 005 12 0 00 020504 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15304 043306 321 15 0 00 043274 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15305
15306
15307 020505 SN=SN+1
15308 000020 ZZ=ZZ+ZZ
15309 IFE ZZ,<ZZ=1>
15310 043307 205 11 0 00 000020 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15311 043310 205 13 0 00 000020 MOVSI AC,ZZ ;SETUP DVND
15312 043311 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15313 043312 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15314 043313 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15315 043314 003 13 0 00 020505 ER3 AC,SN
15316 043315 322 14 0 00 043317 JUMPE AC+1,.+2 ;TEST REMD=0
15317 043316 004 14 0 00 020505 ER4 AC+1,SN ;IDIV FAILED
15318 043317 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15319 043320 005 12 0 00 020505 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15320 043321 321 15 0 00 043307 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15321
15322
15323 020506 SN=SN+1
15324 000040 ZZ=ZZ+ZZ
15325 IFE ZZ,<ZZ=1>
15326 043322 205 11 0 00 000040 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15327 043323 205 13 0 00 000040 MOVSI AC,ZZ ;SETUP DVND
15328 043324 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15329 043325 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15330 043326 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15331 043327 003 13 0 00 020506 ER3 AC,SN
15332 043330 322 14 0 00 043332 JUMPE AC+1,.+2 ;TEST REMD=0
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 82-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0340
15333 043331 004 14 0 00 020506 ER4 AC+1,SN ;IDIV FAILED
15334 043332 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15335 043333 005 12 0 00 020506 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15336 043334 321 15 0 00 043322 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15337
15338
15339 020507 SN=SN+1
15340 000100 ZZ=ZZ+ZZ
15341 IFE ZZ,<ZZ=1>
15342 043335 205 11 0 00 000100 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15343 043336 205 13 0 00 000100 MOVSI AC,ZZ ;SETUP DVND
15344 043337 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15345 043340 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15346 043341 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15347 043342 003 13 0 00 020507 ER3 AC,SN
15348 043343 322 14 0 00 043345 JUMPE AC+1,.+2 ;TEST REMD=0
15349 043344 004 14 0 00 020507 ER4 AC+1,SN ;IDIV FAILED
15350 043345 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15351 043346 005 12 0 00 020507 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15352 043347 321 15 0 00 043335 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15353
15354
15355 020510 SN=SN+1
15356 000200 ZZ=ZZ+ZZ
15357 IFE ZZ,<ZZ=1>
15358 043350 205 11 0 00 000200 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15359 043351 205 13 0 00 000200 MOVSI AC,ZZ ;SETUP DVND
15360 043352 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15361 043353 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15362 043354 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15363 043355 003 13 0 00 020510 ER3 AC,SN
15364 043356 322 14 0 00 043360 JUMPE AC+1,.+2 ;TEST REMD=0
15365 043357 004 14 0 00 020510 ER4 AC+1,SN ;IDIV FAILED
15366 043360 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15367 043361 005 12 0 00 020510 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15368 043362 321 15 0 00 043350 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15369
15370
15371 020511 SN=SN+1
15372 000400 ZZ=ZZ+ZZ
15373 IFE ZZ,<ZZ=1>
15374 043363 205 11 0 00 000400 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15375 043364 205 13 0 00 000400 MOVSI AC,ZZ ;SETUP DVND
15376 043365 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15377 043366 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15378 043367 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15379 043370 003 13 0 00 020511 ER3 AC,SN
15380 043371 322 14 0 00 043373 JUMPE AC+1,.+2 ;TEST REMD=0
15381 043372 004 14 0 00 020511 ER4 AC+1,SN ;IDIV FAILED
15382 043373 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15383 043374 005 12 0 00 020511 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15384 043375 321 15 0 00 043363 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15385
15386
15387 020512 SN=SN+1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 82-3
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0341
15388 001000 ZZ=ZZ+ZZ
15389 IFE ZZ,<ZZ=1>
15390 043376 205 11 0 00 001000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15391 043377 205 13 0 00 001000 MOVSI AC,ZZ ;SETUP DVND
15392 043400 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15393 043401 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15394 043402 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15395 043403 003 13 0 00 020512 ER3 AC,SN
15396 043404 322 14 0 00 043406 JUMPE AC+1,.+2 ;TEST REMD=0
15397 043405 004 14 0 00 020512 ER4 AC+1,SN ;IDIV FAILED
15398 043406 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15399 043407 005 12 0 00 020512 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15400 043410 321 15 0 00 043376 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15401
15402
15403 020513 SN=SN+1
15404 002000 ZZ=ZZ+ZZ
15405 IFE ZZ,<ZZ=1>
15406 043411 205 11 0 00 002000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15407 043412 205 13 0 00 002000 MOVSI AC,ZZ ;SETUP DVND
15408 043413 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15409 043414 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15410 043415 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15411 043416 003 13 0 00 020513 ER3 AC,SN
15412 043417 322 14 0 00 043421 JUMPE AC+1,.+2 ;TEST REMD=0
15413 043420 004 14 0 00 020513 ER4 AC+1,SN ;IDIV FAILED
15414 043421 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15415 043422 005 12 0 00 020513 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15416 043423 321 15 0 00 043411 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15417
15418
15419 020514 SN=SN+1
15420 004000 ZZ=ZZ+ZZ
15421 IFE ZZ,<ZZ=1>
15422 043424 205 11 0 00 004000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15423 043425 205 13 0 00 004000 MOVSI AC,ZZ ;SETUP DVND
15424 043426 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15425 043427 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15426 043430 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15427 043431 003 13 0 00 020514 ER3 AC,SN
15428 043432 322 14 0 00 043434 JUMPE AC+1,.+2 ;TEST REMD=0
15429 043433 004 14 0 00 020514 ER4 AC+1,SN ;IDIV FAILED
15430 043434 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15431 043435 005 12 0 00 020514 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15432 043436 321 15 0 00 043424 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15433
15434
15435 020515 SN=SN+1
15436 010000 ZZ=ZZ+ZZ
15437 IFE ZZ,<ZZ=1>
15438 043437 205 11 0 00 010000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15439 043440 205 13 0 00 010000 MOVSI AC,ZZ ;SETUP DVND
15440 043441 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15441 043442 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15442 043443 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 82-4
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0342
15443 043444 003 13 0 00 020515 ER3 AC,SN
15444 043445 322 14 0 00 043447 JUMPE AC+1,.+2 ;TEST REMD=0
15445 043446 004 14 0 00 020515 ER4 AC+1,SN ;IDIV FAILED
15446 043447 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15447 043450 005 12 0 00 020515 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15448 043451 321 15 0 00 043437 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15449
15450
15451 020516 SN=SN+1
15452 020000 ZZ=ZZ+ZZ
15453 IFE ZZ,<ZZ=1>
15454 043452 205 11 0 00 020000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15455 043453 205 13 0 00 020000 MOVSI AC,ZZ ;SETUP DVND
15456 043454 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15457 043455 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15458 043456 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15459 043457 003 13 0 00 020516 ER3 AC,SN
15460 043460 322 14 0 00 043462 JUMPE AC+1,.+2 ;TEST REMD=0
15461 043461 004 14 0 00 020516 ER4 AC+1,SN ;IDIV FAILED
15462 043462 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15463 043463 005 12 0 00 020516 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15464 043464 321 15 0 00 043452 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15465
15466
15467 020517 SN=SN+1
15468 040000 ZZ=ZZ+ZZ
15469 IFE ZZ,<ZZ=1>
15470 043465 205 11 0 00 040000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15471 043466 205 13 0 00 040000 MOVSI AC,ZZ ;SETUP DVND
15472 043467 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15473 043470 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15474 043471 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15475 043472 003 13 0 00 020517 ER3 AC,SN
15476 043473 322 14 0 00 043475 JUMPE AC+1,.+2 ;TEST REMD=0
15477 043474 004 14 0 00 020517 ER4 AC+1,SN ;IDIV FAILED
15478 043475 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15479 043476 005 12 0 00 020517 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15480 043477 321 15 0 00 043465 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15481
15482
15483 020520 SN=SN+1
15484 100000 ZZ=ZZ+ZZ
15485 IFE ZZ,<ZZ=1>
15486 043500 205 11 0 00 100000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15487 043501 205 13 0 00 100000 MOVSI AC,ZZ ;SETUP DVND
15488 043502 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15489 043503 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15490 043504 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15491 043505 003 13 0 00 020520 ER3 AC,SN
15492 043506 322 14 0 00 043510 JUMPE AC+1,.+2 ;TEST REMD=0
15493 043507 004 14 0 00 020520 ER4 AC+1,SN ;IDIV FAILED
15494 043510 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15495 043511 005 12 0 00 020520 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15496 043512 321 15 0 00 043500 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15497
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 82-5
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0343
15498
15499 020521 SN=SN+1
15500 200000 ZZ=ZZ+ZZ
15501 IFE ZZ,<ZZ=1>
15502 043513 205 11 0 00 200000 MOVSI AC-2,ZZ ;SETUP FOR COMPARISON
15503 043514 205 13 0 00 200000 MOVSI AC,ZZ ;SETUP DVND
15504 043515 201 12 0 00 000001 MOVEI AC-1,1 ;SETUP DVSR
15505 043516 230 13 0 00 000012 IDIV AC,AC-1 ;DIVIDE ZZ BY 1
15506 043517 312 13 0 00 000011 CAME AC,AC-2 ;TEST QUOT=DVND
15507 043520 003 13 0 00 020521 ER3 AC,SN
15508 043521 322 14 0 00 043523 JUMPE AC+1,.+2 ;TEST REMD=0
15509 043522 004 14 0 00 020521 ER4 AC+1,SN ;IDIV FAILED
15510 043523 302 12 0 00 000001 CAIE AC-1,1 ;WAS C(E) MODIFIED ?
15511 043524 005 12 0 00 020521 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15512 043525 321 15 0 00 043513 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15513
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 83
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0344
15514 ;TEST IDIV IMMEDIATE - TWO POSITIVES
15515 ;TESTING IS ACCOMPLISHED BY DIVIDING
15516 ;AN ODD NUMBER BY E
15517 ;DVND=3,5,7,11 ETC
15518 ;DVSR=E (2)
15519 ;QUOT=1,2,4, ETC
15520 ;REMD=1
15521
15522 000014 AC=14
15523 SAVEAC (1,1)^
15524 043526 201 16 0 00 043526 MOVEI AC+2,. ;SAVE TEST PC
15525 043527 202 16 0 00 030051 MOVEM AC+2,TESTPC
15526 043530 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
15527 043531 202 16 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
15528
15529 020600 SN=20600
15530 000000 XX=0
15531 000001 ZZ=1
15532
15533 F20600: REPEAT ^D10,<
15534 SN=SN+1
15535 XX=XX+1
15536 ZZ=ZZ+2
15537 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15538 MOVEI AC,ZZ ;SETUP DVND
15539 IDIVI AC,2 ;DIVIDE ZZ BY 2
15540 CAME AC,AC-2 ;TEST QUOT
15541 ER3 AC,SN
15542 CAIE AC+1,1 ;TEST REMD=1
15543 ER4 AC+1,SN ;IDIVI FAILED
15544 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15545 >
15546
15547 020601 SN=SN+1
15548 000001 XX=XX+1
15549 000003 ZZ=ZZ+2
15550 043532 201 12 0 00 000001 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15551 043533 201 14 0 00 000003 MOVEI AC,ZZ ;SETUP DVND
15552 043534 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15553 043535 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15554 043536 003 14 0 00 020601 ER3 AC,SN
15555 043537 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15556 043540 004 15 0 00 020601 ER4 AC+1,SN ;IDIVI FAILED
15557 043541 321 16 0 00 043532 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15558
15559
15560 020602 SN=SN+1
15561 000002 XX=XX+1
15562 000005 ZZ=ZZ+2
15563 043542 201 12 0 00 000002 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15564 043543 201 14 0 00 000005 MOVEI AC,ZZ ;SETUP DVND
15565 043544 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15566 043545 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15567 043546 003 14 0 00 020602 ER3 AC,SN
15568 043547 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 83-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0345
15569 043550 004 15 0 00 020602 ER4 AC+1,SN ;IDIVI FAILED
15570 043551 321 16 0 00 043542 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15571
15572
15573 020603 SN=SN+1
15574 000003 XX=XX+1
15575 000007 ZZ=ZZ+2
15576 043552 201 12 0 00 000003 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15577 043553 201 14 0 00 000007 MOVEI AC,ZZ ;SETUP DVND
15578 043554 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15579 043555 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15580 043556 003 14 0 00 020603 ER3 AC,SN
15581 043557 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15582 043560 004 15 0 00 020603 ER4 AC+1,SN ;IDIVI FAILED
15583 043561 321 16 0 00 043552 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15584
15585
15586 020604 SN=SN+1
15587 000004 XX=XX+1
15588 000011 ZZ=ZZ+2
15589 043562 201 12 0 00 000004 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15590 043563 201 14 0 00 000011 MOVEI AC,ZZ ;SETUP DVND
15591 043564 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15592 043565 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15593 043566 003 14 0 00 020604 ER3 AC,SN
15594 043567 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15595 043570 004 15 0 00 020604 ER4 AC+1,SN ;IDIVI FAILED
15596 043571 321 16 0 00 043562 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15597
15598
15599 020605 SN=SN+1
15600 000005 XX=XX+1
15601 000013 ZZ=ZZ+2
15602 043572 201 12 0 00 000005 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15603 043573 201 14 0 00 000013 MOVEI AC,ZZ ;SETUP DVND
15604 043574 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15605 043575 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15606 043576 003 14 0 00 020605 ER3 AC,SN
15607 043577 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15608 043600 004 15 0 00 020605 ER4 AC+1,SN ;IDIVI FAILED
15609 043601 321 16 0 00 043572 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15610
15611
15612 020606 SN=SN+1
15613 000006 XX=XX+1
15614 000015 ZZ=ZZ+2
15615 043602 201 12 0 00 000006 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15616 043603 201 14 0 00 000015 MOVEI AC,ZZ ;SETUP DVND
15617 043604 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15618 043605 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15619 043606 003 14 0 00 020606 ER3 AC,SN
15620 043607 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15621 043610 004 15 0 00 020606 ER4 AC+1,SN ;IDIVI FAILED
15622 043611 321 16 0 00 043602 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15623
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 83-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0346
15624
15625 020607 SN=SN+1
15626 000007 XX=XX+1
15627 000017 ZZ=ZZ+2
15628 043612 201 12 0 00 000007 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15629 043613 201 14 0 00 000017 MOVEI AC,ZZ ;SETUP DVND
15630 043614 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15631 043615 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15632 043616 003 14 0 00 020607 ER3 AC,SN
15633 043617 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15634 043620 004 15 0 00 020607 ER4 AC+1,SN ;IDIVI FAILED
15635 043621 321 16 0 00 043612 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15636
15637
15638 020610 SN=SN+1
15639 000010 XX=XX+1
15640 000021 ZZ=ZZ+2
15641 043622 201 12 0 00 000010 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15642 043623 201 14 0 00 000021 MOVEI AC,ZZ ;SETUP DVND
15643 043624 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15644 043625 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15645 043626 003 14 0 00 020610 ER3 AC,SN
15646 043627 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15647 043630 004 15 0 00 020610 ER4 AC+1,SN ;IDIVI FAILED
15648 043631 321 16 0 00 043622 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15649
15650
15651 020611 SN=SN+1
15652 000011 XX=XX+1
15653 000023 ZZ=ZZ+2
15654 043632 201 12 0 00 000011 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15655 043633 201 14 0 00 000023 MOVEI AC,ZZ ;SETUP DVND
15656 043634 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15657 043635 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15658 043636 003 14 0 00 020611 ER3 AC,SN
15659 043637 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15660 043640 004 15 0 00 020611 ER4 AC+1,SN ;IDIVI FAILED
15661 043641 321 16 0 00 043632 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15662
15663
15664 020612 SN=SN+1
15665 000012 XX=XX+1
15666 000025 ZZ=ZZ+2
15667 043642 201 12 0 00 000012 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15668 043643 201 14 0 00 000025 MOVEI AC,ZZ ;SETUP DVND
15669 043644 231 14 0 00 000002 IDIVI AC,2 ;DIVIDE ZZ BY 2
15670 043645 312 14 0 00 000012 CAME AC,AC-2 ;TEST QUOT
15671 043646 003 14 0 00 020612 ER3 AC,SN
15672 043647 302 15 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15673 043650 004 15 0 00 020612 ER4 AC+1,SN ;IDIVI FAILED
15674 043651 321 16 0 00 043642 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
15675
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 84
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0347
15676 ;TEST IDIV MEMORY - TWO NEGATIVES
15677 ;TESTING IS ACCOMPLISHED BY DIVIDING
15678 ;A NEGATIVE NUMBER BY -1
15679 ;DVND=-1,-2,-4,-10,-20
15680 ;DVSR=-1
15681 ;QUOT=1,2,4,10,20
15682 ;REMD=0
15683
15684 000012 AC=12
15685 SAVEAC (1,1)^
15686 043652 201 14 0 00 043652 MOVEI AC+2,. ;SAVE TEST PC
15687 043653 202 14 0 00 030051 MOVEM AC+2,TESTPC
15688 043654 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
15689 043655 202 14 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
15690
15691 020700 SN=20700
15692 000000 XX=0
15693 000000 ZZ=0
15694
15695 F20700: REPEAT ^D5,<
15696 SN=SN+1
15697 XX=XX+XX
15698 ZZ=ZZ+ZZ
15699 IFE XX,<XX=1>
15700 IFE ZZ,<ZZ=-1>
15701 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15702 HRROI AC,ZZ ;SETUP DVND
15703 SETO AC-1, ;SETUP DVSR
15704 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
15705 IDIVM AC,AC-1 ;DIVIDE ZZ BY -1
15706 CAME AC-1,AC-2 ;TEST QUOT
15707 ER5 AC-1,SN ;IDIVM FAILED
15708 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
15709 ER3 AC,SN ;C(AC) WAS CLOBBERED
15710 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) ALTERED ?
15711 ER4 AC+1,SN ;C(AC+1] WAS CLOBBERED
15712 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15713 >
15714
15715 020701 SN=SN+1
15716 000000 XX=XX+XX
15717 000000 ZZ=ZZ+ZZ
15718 000001 IFE XX,<XX=1>
15719 777777 777777 IFE ZZ,<ZZ=-1>
15720 043656 201 10 0 00 000001 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15721 043657 561 12 0 00 777777 HRROI AC,ZZ ;SETUP DVND
15722 043660 474 11 0 00 000000 SETO AC-1, ;SETUP DVSR
15723 043661 200 07 0 00 000013 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
15724 043662 232 12 0 00 000011 IDIVM AC,AC-1 ;DIVIDE ZZ BY -1
15725 043663 312 11 0 00 000010 CAME AC-1,AC-2 ;TEST QUOT
15726 043664 005 11 0 00 020701 ER5 AC-1,SN ;IDIVM FAILED
15727 043665 312 12 0 00 044617 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
15728 043666 003 12 0 00 020701 ER3 AC,SN ;C(AC) WAS CLOBBERED
15729 043667 312 13 0 00 000007 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) ALTERED ?
15730 043670 004 13 0 00 020701 ER4 AC+1,SN ;C(AC+1] WAS CLOBBERED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 84-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0348
15731 043671 321 14 0 00 043656 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15732
15733
15734 020702 SN=SN+1
15735 000002 XX=XX+XX
15736 777777 777776 ZZ=ZZ+ZZ
15737 IFE XX,<XX=1>
15738 IFE ZZ,<ZZ=-1>
15739 043672 201 10 0 00 000002 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15740 043673 561 12 0 00 777776 HRROI AC,ZZ ;SETUP DVND
15741 043674 474 11 0 00 000000 SETO AC-1, ;SETUP DVSR
15742 043675 200 07 0 00 000013 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
15743 043676 232 12 0 00 000011 IDIVM AC,AC-1 ;DIVIDE ZZ BY -1
15744 043677 312 11 0 00 000010 CAME AC-1,AC-2 ;TEST QUOT
15745 043700 005 11 0 00 020702 ER5 AC-1,SN ;IDIVM FAILED
15746 043701 312 12 0 00 044621 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
15747 043702 003 12 0 00 020702 ER3 AC,SN ;C(AC) WAS CLOBBERED
15748 043703 312 13 0 00 000007 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) ALTERED ?
15749 043704 004 13 0 00 020702 ER4 AC+1,SN ;C(AC+1] WAS CLOBBERED
15750 043705 321 14 0 00 043672 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15751
15752
15753 020703 SN=SN+1
15754 000004 XX=XX+XX
15755 777777 777774 ZZ=ZZ+ZZ
15756 IFE XX,<XX=1>
15757 IFE ZZ,<ZZ=-1>
15758 043706 201 10 0 00 000004 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15759 043707 561 12 0 00 777774 HRROI AC,ZZ ;SETUP DVND
15760 043710 474 11 0 00 000000 SETO AC-1, ;SETUP DVSR
15761 043711 200 07 0 00 000013 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
15762 043712 232 12 0 00 000011 IDIVM AC,AC-1 ;DIVIDE ZZ BY -1
15763 043713 312 11 0 00 000010 CAME AC-1,AC-2 ;TEST QUOT
15764 043714 005 11 0 00 020703 ER5 AC-1,SN ;IDIVM FAILED
15765 043715 312 12 0 00 045325 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
15766 043716 003 12 0 00 020703 ER3 AC,SN ;C(AC) WAS CLOBBERED
15767 043717 312 13 0 00 000007 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) ALTERED ?
15768 043720 004 13 0 00 020703 ER4 AC+1,SN ;C(AC+1] WAS CLOBBERED
15769 043721 321 14 0 00 043706 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15770
15771
15772 020704 SN=SN+1
15773 000010 XX=XX+XX
15774 777777 777770 ZZ=ZZ+ZZ
15775 IFE XX,<XX=1>
15776 IFE ZZ,<ZZ=-1>
15777 043722 201 10 0 00 000010 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15778 043723 561 12 0 00 777770 HRROI AC,ZZ ;SETUP DVND
15779 043724 474 11 0 00 000000 SETO AC-1, ;SETUP DVSR
15780 043725 200 07 0 00 000013 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
15781 043726 232 12 0 00 000011 IDIVM AC,AC-1 ;DIVIDE ZZ BY -1
15782 043727 312 11 0 00 000010 CAME AC-1,AC-2 ;TEST QUOT
15783 043730 005 11 0 00 020704 ER5 AC-1,SN ;IDIVM FAILED
15784 043731 312 12 0 00 045305 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
15785 043732 003 12 0 00 020704 ER3 AC,SN ;C(AC) WAS CLOBBERED
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 84-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0349
15786 043733 312 13 0 00 000007 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) ALTERED ?
15787 043734 004 13 0 00 020704 ER4 AC+1,SN ;C(AC+1] WAS CLOBBERED
15788 043735 321 14 0 00 043722 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15789
15790
15791 020705 SN=SN+1
15792 000020 XX=XX+XX
15793 777777 777760 ZZ=ZZ+ZZ
15794 IFE XX,<XX=1>
15795 IFE ZZ,<ZZ=-1>
15796 043736 201 10 0 00 000020 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15797 043737 561 12 0 00 777760 HRROI AC,ZZ ;SETUP DVND
15798 043740 474 11 0 00 000000 SETO AC-1, ;SETUP DVSR
15799 043741 200 07 0 00 000013 MOVE AC-3,<AC+1>&17 ;SAVE C(AC+1)
15800 043742 232 12 0 00 000011 IDIVM AC,AC-1 ;DIVIDE ZZ BY -1
15801 043743 312 11 0 00 000010 CAME AC-1,AC-2 ;TEST QUOT
15802 043744 005 11 0 00 020705 ER5 AC-1,SN ;IDIVM FAILED
15803 043745 312 12 0 00 045243 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
15804 043746 003 12 0 00 020705 ER3 AC,SN ;C(AC) WAS CLOBBERED
15805 043747 312 13 0 00 000007 CAME AC+1,<AC-3>&17 ;WAS C(AC+1) ALTERED ?
15806 043750 004 13 0 00 020705 ER4 AC+1,SN ;C(AC+1] WAS CLOBBERED
15807 043751 321 14 0 00 043736 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15808
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 85
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0350
15809 ;TEST IDIV BOTH - TWO POSITIVES
15810 ;TESTING IS ACCOMPLISHED BY DIVIDING
15811 ;AN INCREASING ODD NUMBER BY 2
15812 ;DVND=15,17,21,23,25
15813 ;DVSR=2
15814 ;QUOT=6,7,10,11,12
15815 ;REMD=1
15816
15817 000011 AC=11
15818 SAVEAC (1,1)^
15819 043752 201 13 0 00 043752 MOVEI AC+2,. ;SAVE TEST PC
15820 043753 202 13 0 00 030051 MOVEM AC+2,TESTPC
15821 043754 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
15822 043755 202 13 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
15823
15824 021000 SN=21000
15825 000005 XX=5
15826 000013 ZZ=13
15827
15828 F21000: REPEAT ^D5,<
15829 SN=SN+1
15830 XX=XX+1
15831 ZZ=ZZ+2
15832 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15833 MOVEI AC,ZZ ;SETUP DVND
15834 MOVEI AC-1,2 ;SETUP DVSR
15835 IDIVB AC,AC-1 ;DIVIDE ZZ BY 2
15836 CAME AC,AC-2 ;TEST QUOT
15837 ER3 AC,SN ;QUOT ERROR
15838 CAME AC,AC-1 ;C(AC) = C(E)
15839 ER5 AC-1,SN
15840 CAIE AC+1,1 ;TEST REMD=1
15841 ER4 AC+1,SN ;IDIVB FAILED
15842 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15843 >
15844
15845 021001 SN=SN+1
15846 000006 XX=XX+1
15847 000015 ZZ=ZZ+2
15848 043756 201 07 0 00 000006 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15849 043757 201 11 0 00 000015 MOVEI AC,ZZ ;SETUP DVND
15850 043760 201 10 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
15851 043761 233 11 0 00 000010 IDIVB AC,AC-1 ;DIVIDE ZZ BY 2
15852 043762 312 11 0 00 000007 CAME AC,AC-2 ;TEST QUOT
15853 043763 003 11 0 00 021001 ER3 AC,SN ;QUOT ERROR
15854 043764 312 11 0 00 000010 CAME AC,AC-1 ;C(AC) = C(E)
15855 043765 005 10 0 00 021001 ER5 AC-1,SN
15856 043766 302 12 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15857 043767 004 12 0 00 021001 ER4 AC+1,SN ;IDIVB FAILED
15858 043770 321 13 0 00 043756 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15859
15860
15861 021002 SN=SN+1
15862 000007 XX=XX+1
15863 000017 ZZ=ZZ+2
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 85-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0351
15864 043771 201 07 0 00 000007 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15865 043772 201 11 0 00 000017 MOVEI AC,ZZ ;SETUP DVND
15866 043773 201 10 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
15867 043774 233 11 0 00 000010 IDIVB AC,AC-1 ;DIVIDE ZZ BY 2
15868 043775 312 11 0 00 000007 CAME AC,AC-2 ;TEST QUOT
15869 043776 003 11 0 00 021002 ER3 AC,SN ;QUOT ERROR
15870 043777 312 11 0 00 000010 CAME AC,AC-1 ;C(AC) = C(E)
15871 044000 005 10 0 00 021002 ER5 AC-1,SN
15872 044001 302 12 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15873 044002 004 12 0 00 021002 ER4 AC+1,SN ;IDIVB FAILED
15874 044003 321 13 0 00 043771 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15875
15876
15877 021003 SN=SN+1
15878 000010 XX=XX+1
15879 000021 ZZ=ZZ+2
15880 044004 201 07 0 00 000010 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15881 044005 201 11 0 00 000021 MOVEI AC,ZZ ;SETUP DVND
15882 044006 201 10 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
15883 044007 233 11 0 00 000010 IDIVB AC,AC-1 ;DIVIDE ZZ BY 2
15884 044010 312 11 0 00 000007 CAME AC,AC-2 ;TEST QUOT
15885 044011 003 11 0 00 021003 ER3 AC,SN ;QUOT ERROR
15886 044012 312 11 0 00 000010 CAME AC,AC-1 ;C(AC) = C(E)
15887 044013 005 10 0 00 021003 ER5 AC-1,SN
15888 044014 302 12 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15889 044015 004 12 0 00 021003 ER4 AC+1,SN ;IDIVB FAILED
15890 044016 321 13 0 00 044004 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15891
15892
15893 021004 SN=SN+1
15894 000011 XX=XX+1
15895 000023 ZZ=ZZ+2
15896 044017 201 07 0 00 000011 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15897 044020 201 11 0 00 000023 MOVEI AC,ZZ ;SETUP DVND
15898 044021 201 10 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
15899 044022 233 11 0 00 000010 IDIVB AC,AC-1 ;DIVIDE ZZ BY 2
15900 044023 312 11 0 00 000007 CAME AC,AC-2 ;TEST QUOT
15901 044024 003 11 0 00 021004 ER3 AC,SN ;QUOT ERROR
15902 044025 312 11 0 00 000010 CAME AC,AC-1 ;C(AC) = C(E)
15903 044026 005 10 0 00 021004 ER5 AC-1,SN
15904 044027 302 12 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15905 044030 004 12 0 00 021004 ER4 AC+1,SN ;IDIVB FAILED
15906 044031 321 13 0 00 044017 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15907
15908
15909 021005 SN=SN+1
15910 000012 XX=XX+1
15911 000025 ZZ=ZZ+2
15912 044032 201 07 0 00 000012 MOVEI AC-2,XX ;SETUP FOR COMPARISON
15913 044033 201 11 0 00 000025 MOVEI AC,ZZ ;SETUP DVND
15914 044034 201 10 0 00 000002 MOVEI AC-1,2 ;SETUP DVSR
15915 044035 233 11 0 00 000010 IDIVB AC,AC-1 ;DIVIDE ZZ BY 2
15916 044036 312 11 0 00 000007 CAME AC,AC-2 ;TEST QUOT
15917 044037 003 11 0 00 021005 ER3 AC,SN ;QUOT ERROR
15918 044040 312 11 0 00 000010 CAME AC,AC-1 ;C(AC) = C(E)
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 85-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0352
15919 044041 005 10 0 00 021005 ER5 AC-1,SN
15920 044042 302 12 0 00 000001 CAIE AC+1,1 ;TEST REMD=1
15921 044043 004 12 0 00 021005 ER4 AC+1,SN ;IDIVB FAILED
15922 044044 321 13 0 00 044032 JUMPL AC+2,.-^D10 ;LOOP ON ERROR SWITCH
15923
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 86
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0353
15924 ;TEST DIV DIRECT - TWO POSITIVES
15925 ;HIGH DVND=4,10,20,40,100
15926 ;LOW DVND=0
15927 ;DVSR=2000
15928 ;QUOT=001000000000, 00200000000 ETC
15929 ;REMD=0
15930
15931 000010 AC=10
15932 SAVEAC (1,1)^
15933 044045 201 12 0 00 044045 MOVEI AC+2,. ;SAVE TEST PC
15934 044046 202 12 0 00 030051 MOVEM AC+2,TESTPC
15935 044047 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
15936 044050 202 12 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
15937
15938 021100 SN=21100
15939 000400 XX=000400
15940 000002 ZZ=2
15941
15942 F21100: REPEAT ^D5,<
15943 SN=SN+1
15944 XX=XX+XX
15945 ZZ=ZZ+ZZ
15946 MOVSI AC-2,XX ;SETUP FOR COMPARISON
15947 MOVEI AC,ZZ ;SETUP HIGH DVND
15948 SETZ AC+1, ;SETUP LOW DVND
15949 MOVEI AC-1,2000 ;SETUP DVSR
15950 DIV AC,AC-1 ;DIVIDE ZZ BY 2000
15951 CAME AC,AC-2 ;TEST QUOT
15952 ER3 AC,SN
15953 JUMPE AC+1,.+2 ;TEST REMD
15954 ER4 AC+1,SN ;DIV FAILED
15955 CAIE AC-1,2000 ;WAS C(E) MODIFIED ?
15956 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15957 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15958 >
15959
15960 021101 SN=SN+1
15961 001000 XX=XX+XX
15962 000004 ZZ=ZZ+ZZ
15963 044051 205 06 0 00 001000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
15964 044052 201 10 0 00 000004 MOVEI AC,ZZ ;SETUP HIGH DVND
15965 044053 400 11 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
15966 044054 201 07 0 00 002000 MOVEI AC-1,2000 ;SETUP DVSR
15967 044055 234 10 0 00 000007 DIV AC,AC-1 ;DIVIDE ZZ BY 2000
15968 044056 312 10 0 00 000006 CAME AC,AC-2 ;TEST QUOT
15969 044057 003 10 0 00 021101 ER3 AC,SN
15970 044060 322 11 0 00 044062 JUMPE AC+1,.+2 ;TEST REMD
15971 044061 004 11 0 00 021101 ER4 AC+1,SN ;DIV FAILED
15972 044062 302 07 0 00 002000 CAIE AC-1,2000 ;WAS C(E) MODIFIED ?
15973 044063 005 07 0 00 021101 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15974 044064 321 12 0 00 044051 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15975
15976
15977 021102 SN=SN+1
15978 002000 XX=XX+XX
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 86-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0354
15979 000010 ZZ=ZZ+ZZ
15980 044065 205 06 0 00 002000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
15981 044066 201 10 0 00 000010 MOVEI AC,ZZ ;SETUP HIGH DVND
15982 044067 400 11 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
15983 044070 201 07 0 00 002000 MOVEI AC-1,2000 ;SETUP DVSR
15984 044071 234 10 0 00 000007 DIV AC,AC-1 ;DIVIDE ZZ BY 2000
15985 044072 312 10 0 00 000006 CAME AC,AC-2 ;TEST QUOT
15986 044073 003 10 0 00 021102 ER3 AC,SN
15987 044074 322 11 0 00 044076 JUMPE AC+1,.+2 ;TEST REMD
15988 044075 004 11 0 00 021102 ER4 AC+1,SN ;DIV FAILED
15989 044076 302 07 0 00 002000 CAIE AC-1,2000 ;WAS C(E) MODIFIED ?
15990 044077 005 07 0 00 021102 ER5 AC-1,SN ;C(E) WAS CLOBBERED
15991 044100 321 12 0 00 044065 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
15992
15993
15994 021103 SN=SN+1
15995 004000 XX=XX+XX
15996 000020 ZZ=ZZ+ZZ
15997 044101 205 06 0 00 004000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
15998 044102 201 10 0 00 000020 MOVEI AC,ZZ ;SETUP HIGH DVND
15999 044103 400 11 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
16000 044104 201 07 0 00 002000 MOVEI AC-1,2000 ;SETUP DVSR
16001 044105 234 10 0 00 000007 DIV AC,AC-1 ;DIVIDE ZZ BY 2000
16002 044106 312 10 0 00 000006 CAME AC,AC-2 ;TEST QUOT
16003 044107 003 10 0 00 021103 ER3 AC,SN
16004 044110 322 11 0 00 044112 JUMPE AC+1,.+2 ;TEST REMD
16005 044111 004 11 0 00 021103 ER4 AC+1,SN ;DIV FAILED
16006 044112 302 07 0 00 002000 CAIE AC-1,2000 ;WAS C(E) MODIFIED ?
16007 044113 005 07 0 00 021103 ER5 AC-1,SN ;C(E) WAS CLOBBERED
16008 044114 321 12 0 00 044101 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16009
16010
16011 021104 SN=SN+1
16012 010000 XX=XX+XX
16013 000040 ZZ=ZZ+ZZ
16014 044115 205 06 0 00 010000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16015 044116 201 10 0 00 000040 MOVEI AC,ZZ ;SETUP HIGH DVND
16016 044117 400 11 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
16017 044120 201 07 0 00 002000 MOVEI AC-1,2000 ;SETUP DVSR
16018 044121 234 10 0 00 000007 DIV AC,AC-1 ;DIVIDE ZZ BY 2000
16019 044122 312 10 0 00 000006 CAME AC,AC-2 ;TEST QUOT
16020 044123 003 10 0 00 021104 ER3 AC,SN
16021 044124 322 11 0 00 044126 JUMPE AC+1,.+2 ;TEST REMD
16022 044125 004 11 0 00 021104 ER4 AC+1,SN ;DIV FAILED
16023 044126 302 07 0 00 002000 CAIE AC-1,2000 ;WAS C(E) MODIFIED ?
16024 044127 005 07 0 00 021104 ER5 AC-1,SN ;C(E) WAS CLOBBERED
16025 044130 321 12 0 00 044115 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16026
16027
16028 021105 SN=SN+1
16029 020000 XX=XX+XX
16030 000100 ZZ=ZZ+ZZ
16031 044131 205 06 0 00 020000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16032 044132 201 10 0 00 000100 MOVEI AC,ZZ ;SETUP HIGH DVND
16033 044133 400 11 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 86-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0355
16034 044134 201 07 0 00 002000 MOVEI AC-1,2000 ;SETUP DVSR
16035 044135 234 10 0 00 000007 DIV AC,AC-1 ;DIVIDE ZZ BY 2000
16036 044136 312 10 0 00 000006 CAME AC,AC-2 ;TEST QUOT
16037 044137 003 10 0 00 021105 ER3 AC,SN
16038 044140 322 11 0 00 044142 JUMPE AC+1,.+2 ;TEST REMD
16039 044141 004 11 0 00 021105 ER4 AC+1,SN ;DIV FAILED
16040 044142 302 07 0 00 002000 CAIE AC-1,2000 ;WAS C(E) MODIFIED ?
16041 044143 005 07 0 00 021105 ER5 AC-1,SN ;C(E) WAS CLOBBERED
16042 044144 321 12 0 00 044131 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16043
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 87
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0356
16044 ;TEST DIV IMMEDIATE - TWO POSITIVES
16045 ;HIGH DVND=0
16046 ;LOW DVND=3,4,5,6,7
16047 ;DVSR=E (2,3,4,5,6)
16048 ;QUOT=1
16049 ;REMD=1
16050
16051 000007 AC=7
16052 SAVEAC (1,1)^
16053 044145 201 11 0 00 044145 MOVEI AC+2,. ;SAVE TEST PC
16054 044146 202 11 0 00 030051 MOVEM AC+2,TESTPC
16055 044147 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
16056 044150 202 11 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
16057
16058 021200 SN=21200
16059 000001 XX=1
16060 000002 ZZ=2
16061 F21200: REPEAT ^D5,<
16062 SN=SN+1
16063 XX=XX+1
16064 ZZ=ZZ+1
16065 SETZ AC, ;SETUP HIGH DVND
16066 MOVEI AC+1,ZZ ;SETUP LOW DVND
16067 DIVI AC,XX ;SETUP DVSR
16068 CAIE AC,1 ;TEST QUOT=1
16069 ER3 AC,SN
16070 CAIE AC+1,1 ;TEST QUOT=REMD
16071 ER4 AC+1,SN ;DIVI FAILED
16072 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
16073 >
16074
16075 021201 SN=SN+1
16076 000002 XX=XX+1
16077 000003 ZZ=ZZ+1
16078 044151 400 07 0 00 000000 SETZ AC, ;SETUP HIGH DVND
16079 044152 201 10 0 00 000003 MOVEI AC+1,ZZ ;SETUP LOW DVND
16080 044153 235 07 0 00 000002 DIVI AC,XX ;SETUP DVSR
16081 044154 302 07 0 00 000001 CAIE AC,1 ;TEST QUOT=1
16082 044155 003 07 0 00 021201 ER3 AC,SN
16083 044156 302 10 0 00 000001 CAIE AC+1,1 ;TEST QUOT=REMD
16084 044157 004 10 0 00 021201 ER4 AC+1,SN ;DIVI FAILED
16085 044160 321 11 0 00 044151 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
16086
16087
16088 021202 SN=SN+1
16089 000003 XX=XX+1
16090 000004 ZZ=ZZ+1
16091 044161 400 07 0 00 000000 SETZ AC, ;SETUP HIGH DVND
16092 044162 201 10 0 00 000004 MOVEI AC+1,ZZ ;SETUP LOW DVND
16093 044163 235 07 0 00 000003 DIVI AC,XX ;SETUP DVSR
16094 044164 302 07 0 00 000001 CAIE AC,1 ;TEST QUOT=1
16095 044165 003 07 0 00 021202 ER3 AC,SN
16096 044166 302 10 0 00 000001 CAIE AC+1,1 ;TEST QUOT=REMD
16097 044167 004 10 0 00 021202 ER4 AC+1,SN ;DIVI FAILED
16098 044170 321 11 0 00 044161 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 87-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0357
16099
16100
16101 021203 SN=SN+1
16102 000004 XX=XX+1
16103 000005 ZZ=ZZ+1
16104 044171 400 07 0 00 000000 SETZ AC, ;SETUP HIGH DVND
16105 044172 201 10 0 00 000005 MOVEI AC+1,ZZ ;SETUP LOW DVND
16106 044173 235 07 0 00 000004 DIVI AC,XX ;SETUP DVSR
16107 044174 302 07 0 00 000001 CAIE AC,1 ;TEST QUOT=1
16108 044175 003 07 0 00 021203 ER3 AC,SN
16109 044176 302 10 0 00 000001 CAIE AC+1,1 ;TEST QUOT=REMD
16110 044177 004 10 0 00 021203 ER4 AC+1,SN ;DIVI FAILED
16111 044200 321 11 0 00 044171 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
16112
16113
16114 021204 SN=SN+1
16115 000005 XX=XX+1
16116 000006 ZZ=ZZ+1
16117 044201 400 07 0 00 000000 SETZ AC, ;SETUP HIGH DVND
16118 044202 201 10 0 00 000006 MOVEI AC+1,ZZ ;SETUP LOW DVND
16119 044203 235 07 0 00 000005 DIVI AC,XX ;SETUP DVSR
16120 044204 302 07 0 00 000001 CAIE AC,1 ;TEST QUOT=1
16121 044205 003 07 0 00 021204 ER3 AC,SN
16122 044206 302 10 0 00 000001 CAIE AC+1,1 ;TEST QUOT=REMD
16123 044207 004 10 0 00 021204 ER4 AC+1,SN ;DIVI FAILED
16124 044210 321 11 0 00 044201 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
16125
16126
16127 021205 SN=SN+1
16128 000006 XX=XX+1
16129 000007 ZZ=ZZ+1
16130 044211 400 07 0 00 000000 SETZ AC, ;SETUP HIGH DVND
16131 044212 201 10 0 00 000007 MOVEI AC+1,ZZ ;SETUP LOW DVND
16132 044213 235 07 0 00 000006 DIVI AC,XX ;SETUP DVSR
16133 044214 302 07 0 00 000001 CAIE AC,1 ;TEST QUOT=1
16134 044215 003 07 0 00 021205 ER3 AC,SN
16135 044216 302 10 0 00 000001 CAIE AC+1,1 ;TEST QUOT=REMD
16136 044217 004 10 0 00 021205 ER4 AC+1,SN ;DIVI FAILED
16137 044220 321 11 0 00 044211 JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
16138
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 88
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0358
16139 ;TEST DIV MEMORY - TWO NEGATIVES
16140 ;HI DVND = -2,-4,-10,-20,-40
16141 ;LO DVND=0
16142 ;DVSR=-200
16143 ;QUOT=00400000000, 010000000000 ETC
16144 ;REMD=0
16145
16146 000006 AC=6
16147 SAVEAC (1,1)^
16148 044221 201 10 0 00 044221 MOVEI AC+2,. ;SAVE TEST PC
16149 044222 202 10 0 00 030051 MOVEM AC+2,TESTPC
16150 044223 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
16151 044224 202 10 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
16152
16153 021300 SN=21300
16154 002000 XX=002000
16155 777777 777777 ZZ=-1
16156
16157 F21300: REPEAT ^D5,<
16158 SN=SN+1
16159 XX=XX+XX
16160 ZZ=ZZ+ZZ
16161 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16162 HRROI AC,ZZ ;SETUP HIGH DVND
16163 SETZ AC+1, ;SETUP LOW DVND
16164 HRROI AC-1,-200 ;SETUP DVSR
16165 DIVM AC,AC-1 ;DIVIDE ZZ BY -200
16166 CAME AC-1,AC-2 ;TEST QUOT
16167 ER5 AC-1,SN ;DIVM FAILED
16168 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
16169 ER3 AC,SN ;C(AC) WAS CLOBBERED
16170 SKIPE <AC+1>&17 ;WAS C(AC+1) MODIFIED ?
16171 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
16172 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16173 >
16174
16175 021301 SN=SN+1
16176 004000 XX=XX+XX
16177 777777 777776 ZZ=ZZ+ZZ
16178 044225 205 04 0 00 004000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16179 044226 561 06 0 00 777776 HRROI AC,ZZ ;SETUP HIGH DVND
16180 044227 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
16181 044230 561 05 0 00 777600 HRROI AC-1,-200 ;SETUP DVSR
16182 044231 236 06 0 00 000005 DIVM AC,AC-1 ;DIVIDE ZZ BY -200
16183 044232 312 05 0 00 000004 CAME AC-1,AC-2 ;TEST QUOT
16184 044233 005 05 0 00 021301 ER5 AC-1,SN ;DIVM FAILED
16185 044234 312 06 0 00 044621 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
16186 044235 003 06 0 00 021301 ER3 AC,SN ;C(AC) WAS CLOBBERED
16187 044236 332 00 0 00 000007 SKIPE <AC+1>&17 ;WAS C(AC+1) MODIFIED ?
16188 044237 004 07 0 00 021301 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
16189 044240 321 10 0 00 044225 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16190
16191
16192 021302 SN=SN+1
16193 010000 XX=XX+XX
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 88-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0359
16194 777777 777774 ZZ=ZZ+ZZ
16195 044241 205 04 0 00 010000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16196 044242 561 06 0 00 777774 HRROI AC,ZZ ;SETUP HIGH DVND
16197 044243 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
16198 044244 561 05 0 00 777600 HRROI AC-1,-200 ;SETUP DVSR
16199 044245 236 06 0 00 000005 DIVM AC,AC-1 ;DIVIDE ZZ BY -200
16200 044246 312 05 0 00 000004 CAME AC-1,AC-2 ;TEST QUOT
16201 044247 005 05 0 00 021302 ER5 AC-1,SN ;DIVM FAILED
16202 044250 312 06 0 00 045325 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
16203 044251 003 06 0 00 021302 ER3 AC,SN ;C(AC) WAS CLOBBERED
16204 044252 332 00 0 00 000007 SKIPE <AC+1>&17 ;WAS C(AC+1) MODIFIED ?
16205 044253 004 07 0 00 021302 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
16206 044254 321 10 0 00 044241 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16207
16208
16209 021303 SN=SN+1
16210 020000 XX=XX+XX
16211 777777 777770 ZZ=ZZ+ZZ
16212 044255 205 04 0 00 020000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16213 044256 561 06 0 00 777770 HRROI AC,ZZ ;SETUP HIGH DVND
16214 044257 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
16215 044260 561 05 0 00 777600 HRROI AC-1,-200 ;SETUP DVSR
16216 044261 236 06 0 00 000005 DIVM AC,AC-1 ;DIVIDE ZZ BY -200
16217 044262 312 05 0 00 000004 CAME AC-1,AC-2 ;TEST QUOT
16218 044263 005 05 0 00 021303 ER5 AC-1,SN ;DIVM FAILED
16219 044264 312 06 0 00 045305 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
16220 044265 003 06 0 00 021303 ER3 AC,SN ;C(AC) WAS CLOBBERED
16221 044266 332 00 0 00 000007 SKIPE <AC+1>&17 ;WAS C(AC+1) MODIFIED ?
16222 044267 004 07 0 00 021303 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
16223 044270 321 10 0 00 044255 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16224
16225
16226 021304 SN=SN+1
16227 040000 XX=XX+XX
16228 777777 777760 ZZ=ZZ+ZZ
16229 044271 205 04 0 00 040000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16230 044272 561 06 0 00 777760 HRROI AC,ZZ ;SETUP HIGH DVND
16231 044273 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
16232 044274 561 05 0 00 777600 HRROI AC-1,-200 ;SETUP DVSR
16233 044275 236 06 0 00 000005 DIVM AC,AC-1 ;DIVIDE ZZ BY -200
16234 044276 312 05 0 00 000004 CAME AC-1,AC-2 ;TEST QUOT
16235 044277 005 05 0 00 021304 ER5 AC-1,SN ;DIVM FAILED
16236 044300 312 06 0 00 045243 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
16237 044301 003 06 0 00 021304 ER3 AC,SN ;C(AC) WAS CLOBBERED
16238 044302 332 00 0 00 000007 SKIPE <AC+1>&17 ;WAS C(AC+1) MODIFIED ?
16239 044303 004 07 0 00 021304 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
16240 044304 321 10 0 00 044271 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16241
16242
16243 021305 SN=SN+1
16244 100000 XX=XX+XX
16245 777777 777740 ZZ=ZZ+ZZ
16246 044305 205 04 0 00 100000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16247 044306 561 06 0 00 777740 HRROI AC,ZZ ;SETUP HIGH DVND
16248 044307 400 07 0 00 000000 SETZ AC+1, ;SETUP LOW DVND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 88-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0360
16249 044310 561 05 0 00 777600 HRROI AC-1,-200 ;SETUP DVSR
16250 044311 236 06 0 00 000005 DIVM AC,AC-1 ;DIVIDE ZZ BY -200
16251 044312 312 05 0 00 000004 CAME AC-1,AC-2 ;TEST QUOT
16252 044313 005 05 0 00 021305 ER5 AC-1,SN ;DIVM FAILED
16253 044314 312 06 0 00 045244 CAME AC,[-1,,ZZ] ;WAS C(AC) MODIFIED ?
16254 044315 003 06 0 00 021305 ER3 AC,SN ;C(AC) WAS CLOBBERED
16255 044316 332 00 0 00 000007 SKIPE <AC+1>&17 ;WAS C(AC+1) MODIFIED ?
16256 044317 004 07 0 00 021305 ER4 AC+1,SN ;C(AC+1) WAS CLOBBERED
16257 044320 321 10 0 00 044305 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16258
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 89
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0361
16259 ;TEST DIV BOTH - TWO POSITIVES
16260 ;HIGH DVND 2,4,10,20,40
16261 ;LOW DVND 2,4,10,20,40
16262 ;DVSR=200
16263 ;QUOT=00400000000, 010000000000 ETC
16264 ;REMD=2,4,10,20,40
16265
16266 000005 AC=5
16267 SAVEAC (1,1)^
16268 044321 201 07 0 00 044321 MOVEI AC+2,. ;SAVE TEST PC
16269 044322 202 07 0 00 030051 MOVEM AC+2,TESTPC
16270 044323 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
16271 044324 202 07 0 00 045447 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
16272
16273 021400 SN=21400
16274 002000 XX=002000
16275 000001 ZZ=1
16276
16277 F21400: REPEAT ^D5,<
16278 SN=SN+1
16279 XX=XX+XX
16280 ZZ=ZZ+ZZ
16281 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16282 MOVEI AC,ZZ ;SETUP HIGH DVND
16283 MOVEI AC+1,ZZ ;SETUP LOW DVND
16284 MOVEI AC-1,200 ;SETUP DVSR
16285 DIVB AC,AC-1 ;DIVIDE ZZ BY 200
16286 CAME AC,AC-2 ;TEST QUOT
16287 ER3 AC,SN ;QUOT ERROR
16288 CAME AC-1,AC-2 ;TEST C(AC) = C(E)
16289 ER5 AC-1,SN
16290 CAIE AC+1,ZZ ;TEST REMD
16291 ER4 AC+1,SN ;DIVB FAILED
16292 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16293 >
16294
16295 021401 SN=SN+1
16296 004000 XX=XX+XX
16297 000002 ZZ=ZZ+ZZ
16298 044325 205 03 0 00 004000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16299 044326 201 05 0 00 000002 MOVEI AC,ZZ ;SETUP HIGH DVND
16300 044327 201 06 0 00 000002 MOVEI AC+1,ZZ ;SETUP LOW DVND
16301 044330 201 04 0 00 000200 MOVEI AC-1,200 ;SETUP DVSR
16302 044331 237 05 0 00 000004 DIVB AC,AC-1 ;DIVIDE ZZ BY 200
16303 044332 312 05 0 00 000003 CAME AC,AC-2 ;TEST QUOT
16304 044333 003 05 0 00 021401 ER3 AC,SN ;QUOT ERROR
16305 044334 312 04 0 00 000003 CAME AC-1,AC-2 ;TEST C(AC) = C(E)
16306 044335 005 04 0 00 021401 ER5 AC-1,SN
16307 044336 302 06 0 00 000002 CAIE AC+1,ZZ ;TEST REMD
16308 044337 004 06 0 00 021401 ER4 AC+1,SN ;DIVB FAILED
16309 044340 321 07 0 00 044325 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16310
16311
16312 021402 SN=SN+1
16313 010000 XX=XX+XX
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 89-1
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0362
16314 000004 ZZ=ZZ+ZZ
16315 044341 205 03 0 00 010000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16316 044342 201 05 0 00 000004 MOVEI AC,ZZ ;SETUP HIGH DVND
16317 044343 201 06 0 00 000004 MOVEI AC+1,ZZ ;SETUP LOW DVND
16318 044344 201 04 0 00 000200 MOVEI AC-1,200 ;SETUP DVSR
16319 044345 237 05 0 00 000004 DIVB AC,AC-1 ;DIVIDE ZZ BY 200
16320 044346 312 05 0 00 000003 CAME AC,AC-2 ;TEST QUOT
16321 044347 003 05 0 00 021402 ER3 AC,SN ;QUOT ERROR
16322 044350 312 04 0 00 000003 CAME AC-1,AC-2 ;TEST C(AC) = C(E)
16323 044351 005 04 0 00 021402 ER5 AC-1,SN
16324 044352 302 06 0 00 000004 CAIE AC+1,ZZ ;TEST REMD
16325 044353 004 06 0 00 021402 ER4 AC+1,SN ;DIVB FAILED
16326 044354 321 07 0 00 044341 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16327
16328
16329 021403 SN=SN+1
16330 020000 XX=XX+XX
16331 000010 ZZ=ZZ+ZZ
16332 044355 205 03 0 00 020000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16333 044356 201 05 0 00 000010 MOVEI AC,ZZ ;SETUP HIGH DVND
16334 044357 201 06 0 00 000010 MOVEI AC+1,ZZ ;SETUP LOW DVND
16335 044360 201 04 0 00 000200 MOVEI AC-1,200 ;SETUP DVSR
16336 044361 237 05 0 00 000004 DIVB AC,AC-1 ;DIVIDE ZZ BY 200
16337 044362 312 05 0 00 000003 CAME AC,AC-2 ;TEST QUOT
16338 044363 003 05 0 00 021403 ER3 AC,SN ;QUOT ERROR
16339 044364 312 04 0 00 000003 CAME AC-1,AC-2 ;TEST C(AC) = C(E)
16340 044365 005 04 0 00 021403 ER5 AC-1,SN
16341 044366 302 06 0 00 000010 CAIE AC+1,ZZ ;TEST REMD
16342 044367 004 06 0 00 021403 ER4 AC+1,SN ;DIVB FAILED
16343 044370 321 07 0 00 044355 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16344
16345
16346 021404 SN=SN+1
16347 040000 XX=XX+XX
16348 000020 ZZ=ZZ+ZZ
16349 044371 205 03 0 00 040000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16350 044372 201 05 0 00 000020 MOVEI AC,ZZ ;SETUP HIGH DVND
16351 044373 201 06 0 00 000020 MOVEI AC+1,ZZ ;SETUP LOW DVND
16352 044374 201 04 0 00 000200 MOVEI AC-1,200 ;SETUP DVSR
16353 044375 237 05 0 00 000004 DIVB AC,AC-1 ;DIVIDE ZZ BY 200
16354 044376 312 05 0 00 000003 CAME AC,AC-2 ;TEST QUOT
16355 044377 003 05 0 00 021404 ER3 AC,SN ;QUOT ERROR
16356 044400 312 04 0 00 000003 CAME AC-1,AC-2 ;TEST C(AC) = C(E)
16357 044401 005 04 0 00 021404 ER5 AC-1,SN
16358 044402 302 06 0 00 000020 CAIE AC+1,ZZ ;TEST REMD
16359 044403 004 06 0 00 021404 ER4 AC+1,SN ;DIVB FAILED
16360 044404 321 07 0 00 044371 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16361
16362
16363 021405 SN=SN+1
16364 100000 XX=XX+XX
16365 000040 ZZ=ZZ+ZZ
16366 044405 205 03 0 00 100000 MOVSI AC-2,XX ;SETUP FOR COMPARISON
16367 044406 201 05 0 00 000040 MOVEI AC,ZZ ;SETUP HIGH DVND
16368 044407 201 06 0 00 000040 MOVEI AC+1,ZZ ;SETUP LOW DVND
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 89-2
DAKALM MAC 20-JAN-77 11:20 DIAGNOSTIC SECTION - GENERAL MPY/DIV TEST SEQ 0363
16369 044410 201 04 0 00 000200 MOVEI AC-1,200 ;SETUP DVSR
16370 044411 237 05 0 00 000004 DIVB AC,AC-1 ;DIVIDE ZZ BY 200
16371 044412 312 05 0 00 000003 CAME AC,AC-2 ;TEST QUOT
16372 044413 003 05 0 00 021405 ER3 AC,SN ;QUOT ERROR
16373 044414 312 04 0 00 000003 CAME AC-1,AC-2 ;TEST C(AC) = C(E)
16374 044415 005 04 0 00 021405 ER5 AC-1,SN
16375 044416 302 06 0 00 000040 CAIE AC+1,ZZ ;TEST REMD
16376 044417 004 06 0 00 021405 ER4 AC+1,SN ;DIVB FAILED
16377 044420 321 07 0 00 044405 JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
16378
16379
16380 044421 254 00 0 00 030057 LAST1: JRST BEGEND ;REPEAT DIAGNOSTIC
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0364
16381 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975
16382
16383 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S.
16384
16385 044422 202 00 0 00 045453 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0
16386 IFDEF EXCASB,<IFDEF KI10,<
16387 SKIPN KAIFLG
16388 JRST .+5
16389 SKIPE USER ;USER MODE ?
16390 JRST .+3
16391 SKIPE MARGIN
16392 DATAO APR,[IMGNOF,,ISPDOF] ;CLR MARGINS >>
16393 044423 202 01 0 00 045454 MOVEM 1,%ERAC1# ;SAVE AC1
16394 044424 202 02 0 00 045455 MOVEM 2,%ERAC2# ;SAVE AC2
16395 044425 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS
16396 044426 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO
16397 044427 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ?
16398 044430 350 00 0 00 045450 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT
16399 044431 200 00 0 00 045450 MOVE 0,MICNT
16400 044432 504 00 0 00 030114 HRL 0,$SVUPC
16401 044433 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10
16402 044434 332 00 0 00 030037 SKIPE USER ;AND NOT USER?
16403 044435 254 00 0 00 044437 JRST .+2
16404 044436 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT
16405 044437 402 00 0 00 045451 SETZM PROCED# ;CLEAR PROCEED FLAG
16406 044440 037 10 0 00 000002 SWITCH
16407 044441 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ?
16408 044442 254 00 0 00 044555 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN
16409 044443 200 01 0 00 030113 MOVE 1,$SVUUO
16410 044444 242 01 0 00 777745 LSH 1,-^D27
16411 044445 202 01 0 00 045452 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER
16412 044446 200 00 0 00 045453 MOVE 0,%ERAC0
16413 044447 200 01 0 00 045454 MOVE 1,%ERAC1
16414 044450 335 00 1 00 045447 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ?
16415 044451 254 00 0 00 044607 JRST %ERRS4 ;NO, SEE IF PRINT ALL
16416 044452 402 00 0 00 045450 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT
16417 044453 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ?
16418 044454 254 00 0 00 044460 JRST .+4 ;NO, DON'T NEED TITLE
16419 044455 336 00 0 00 045456 SKIPN %ERFST# ;FIRST ERROR ?
16420 044456 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE
16421 044457 476 00 0 00 045456 SETOM %ERFST
16422 044460 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ?
16423 044461 254 00 0 00 044465 JRST .+4 ;YES
16424 PMSG <^TEST PASS COUNT = >^
16425 044462 037 02 0 00 045335 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^
16426 044463 200 00 0 00 030047 MOVE PASCNT
16427 044464 037 15 0 00 000000 PNTDEC
16428 PMSG <^PC = >^
16429 044465 037 02 0 00 045341 PSIXM [SIXBIT\^PC = _\]^
16430 044466 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO
16431 044467 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE
16432 044470 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS
16433 XLIST
16434 IFDEF ERDIAG,<LIST
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 2
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0365
16435 ;DIAGNOSTIC FORMAT ERROR PRINTER
16436
16437 ;PRINT RESULT
16438
16439 044471 %ERMS2: PMSG <^RESULT = >^
16440 044471 037 02 0 00 045343 PSIXM [SIXBIT\^RESULT = _\]^
16441 044472 200 01 0 00 030113 MOVE 1,$SVUUO ;GET AC # OF UUO
16442 044473 242 01 0 00 777751 LSH 1,-27
16443 044474 405 01 0 00 000017 ANDI 1,17
16444 044475 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC)
16445 044476 307 01 0 00 000001 CAIG 1,1 ;IS AC # = TO SAVE AC ?
16446 044477 200 00 0 01 045453 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC
16447 044500 037 13 0 00 000000 PNTHW ;PRINT C(AC)
16448
16449 044501 200 00 0 00 030046 MOVE CONSW
16450 044502 603 00 0 00 000200 TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ?
16451 044503 254 00 0 00 044552 JRST %ERMORE ;NO, RESTORE AC'S ETC.
16452
16453 ;PRINT FAILURE DESCRIPTOR
16454
16455 044504 200 01 0 00 045452 MOVE 1,%ACS1A ;GET UUO NUMBER
16456 044505 307 01 0 00 000001 CAIG 1,1 ;PRINT DESCRIPTOR ?
16457 044506 254 00 0 00 044512 JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER
16458 044507 037 00 0 00 030242 PCRL
16459 044510 200 00 0 01 044536 MOVE %FLTTB(1)
16460 044511 037 17 0 00 000000 PNTAL ;PRINT FAULT DESCRIPTOR
16461
16462 ;PRINT FAULT NUMBER
16463
16464 044512 %ERMS3: PMSG <^FAULT NUMBER = >^
16465 044512 037 02 0 00 045345 PSIXM [SIXBIT\^FAULT NUMBER = _\]^
16466 044513 201 00 0 00 044535 MOVEI TLET
16467 044514 037 00 0 00 000000 PNTA ;PRINT TEST LETTER
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 3
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0366
16468
16469 044515 550 00 0 00 030113 HRRZ $SVUUO
16470 044516 602 00 0 00 700000 TRNE 700000
16471 044517 254 00 0 00 044533 JRST %ER6X
16472 044520 602 00 0 00 070000 TRNE 070000
16473 044521 254 00 0 00 044531 JRST %ER5X
16474 044522 602 00 0 00 007000 TRNE 007000
16475 044523 254 00 0 00 044527 JRST %ER4X
16476 044524 037 03 0 00 000000 PNT3 ;PRINT FAULT NUMBER
16477 044525 037 00 0 00 030242 %ER7X: PCRL
16478 044526 254 00 0 00 044552 JRST %ERMORE
16479
16480 044527 037 04 0 00 000000 %ER4X: PNT4
16481 044530 254 00 0 00 044525 JRST %ER7X
16482 044531 037 05 0 00 000000 %ER5X: PNT5
16483 044532 254 00 0 00 044525 JRST %ER7X
16484 044533 037 06 0 00 000000 %ER6X: PNT6
16485 044534 254 00 0 00 044525 JRST %ER7X
16486
16487 ;FAILURE DESCRIPTORS
16488
16489 044535 000000 000000 TLET: 0 ;TEST LETTER
16490 044536 000000 000000 %FLTTB: 0 ;DESCRIPTOR TABLE
16491 044537 000000 044615 %NODES: [0] ;NO DESCRIPTOR
16492 044540 000000 044615 SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR
16493 044541 000000 045350 $ACF: [ASCIZ/C(AC) FAILED/]
16494 044542 000000 045353 %AC1F: [ASCIZ/C(AC+1) FAILED/]
16495 044543 000000 045356 %EF: [ASCIZ/C(E) FAILED/]
16496 044544 000000 045361 %E1F: [ASCIZ/C(E+1) FAILED/]
16497 044545 000000 045364 %ARF: [ASCIZ/C(C(ACR)) FAILED/]
16498 044546 000000 045370 %AR1F: [ASCIZ/C(C(ACR+1)) FAILED/]
16499 044547 000000 045374 %ALF: [ASCIZ/C(C(ACL)) FAILED/]
16500 044550 000000 045400 %EEF: [ASCIZ/C(C(E)) FAILED/]
16501 044551 000000 045403 %FF: [ASCIZ/FLAG FAILED/]
16502 >
16503 XLIST
16504 LIST
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 8
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0367
16505 ;RESTORE AC'S AND RETURN OR HALT
16506
16507 044552 256 00 0 00 030101 %ERMORE:XCT ERMORE
16508 044553 037 16 0 00 000002 PNTMGN ;PRINT MARGINS
16509 044554 037 10 0 00 000002 SWITCH
16510
16511 044555 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK
16512 044556 254 00 0 00 044562 JRST .+4 ;NONE
16513 044557 201 00 0 00 044562 MOVEI .+3 ;SAVE CONT ADDRESS
16514 044560 202 00 0 00 000130 MOVEM JOBOPC
16515 044561 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER
16516 044562 200 00 0 00 030046 MOVE CONSW
16517 044563 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ?
16518 044564 037 14 0 00 000004 ERRHLT ;YES
16519 044565 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ?
16520 044566 476 00 0 00 045451 SETOM PROCED ;NO, SET THE PROCEED FLAG
16521 044567 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ?
16522 044570 037 01 0 00 000007 PBELL ;YES, GO RING BELL
16523
16524 044571 200 02 0 00 045455 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S
16525 044572 200 01 0 00 045454 MOVE 1,%ERAC1
16526 044573 476 00 1 00 045447 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1
16527 044574 336 00 0 00 045451 SKIPN PROCED ;LOOP ON ERROR ?
16528 044575 254 00 0 00 044605 JRST %ERRS5 ;YES
16529 044576 350 00 1 00 045447 AOS @ERRLOP ;NO, INC C(ERR LOOP AC)
16530 044577 350 00 1 00 045447 AOS @ERRLOP ;SO IT ='S 1
16531 044600 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
16532 044601 254 00 0 00 044605 JRST %ERRS5 ;NO, CONTINUE PROGRAM
16533 044602 200 00 0 00 030053 MOVE 0,ERRTLS ;YES
16534 044603 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ?
16535 044604 254 00 0 00 030061 JRST $BEND2
16536
16537 044605 200 00 0 00 045453 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM
16538 IFDEF EXCASB,<IFDEF KI10,<
16539 SKIPN KAIFLG
16540 JRST .+5
16541 SKIPE USER
16542 JRST .+3
16543 SKIPE MARGIN
16544 DATAO APR,MARGIN ;RESET MARGIN SYSTEM >>
16545 044606 254 00 0 00 030065 JRST UUOEXT
16546
16547 044607 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW
16548 044610 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ?
16549 044611 254 00 0 00 044555 JRST %ERRS1 ;NO
16550 044612 254 00 0 00 044452 JRST %ERMS1 ;YES
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0368
16551 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977
16552
16553 ;PROGRAM LITERALS
16554
16555 XLIST
16556 IFNDEF $LPAPER,<LIST>
16557 044613 LIT
16558 044613 101 114 000 000 000
16559 044614 525252 525252
16560 044615 000000 000000
16561 044616 000000 000001
16562 044617 777777 777777
16563 044620 000000 000002
16564 044621 777777 777776
16565 044622 652525 252524
16566 044623 000000 000004
16567 044624 777777 777775
16568 044625 525252 525250
16569 044626 000000 000010
16570 044627 777777 777772
16571 044630 652525 252520
16572 044631 000000 000020
16573 044632 777777 777765
16574 044633 525252 525240
16575 044634 000000 000040
16576 044635 777777 777752
16577 044636 652525 252500
16578 044637 000000 000100
16579 044640 777777 777725
16580 044641 525252 525200
16581 044642 000000 000200
16582 044643 777777 777652
16583 044644 652525 252400
16584 044645 000000 000400
16585 044646 777777 777525
16586 044647 525252 525000
16587 044650 000000 001000
16588 044651 777777 777252
16589 044652 652525 252000
16590 044653 000000 002000
16591 044654 777777 776525
16592 044655 525252 524000
16593 044656 000000 004000
16594 044657 777777 775252
16595 044660 652525 250000
16596 044661 000000 010000
16597 044662 777777 772525
16598 044663 525252 520000
16599 044664 000000 020000
16600 044665 777777 765252
16601 044666 652525 240000
16602 044667 000000 040000
16603 044670 777777 752525
16604 044671 525252 500000
16605 044672 000000 100000
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1-1
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0369
16606 044673 777777 725252
16607 044674 652525 200000
16608 044675 000000 200000
16609 044676 777777 652525
16610 044677 525252 400000
16611 044700 000000 400000
16612 044701 777777 525252
16613 044702 652525 000000
16614 044703 000001 000000
16615 044704 777777 252525
16616 044705 525252 000000
16617 044706 000002 000000
16618 044707 777776 525252
16619 044710 652524 000000
16620 044711 000004 000000
16621 044712 777775 252525
16622 044713 525250 000000
16623 044714 000010 000000
16624 044715 777772 525252
16625 044716 652520 000000
16626 044717 000020 000000
16627 044720 777765 252525
16628 044721 525240 000000
16629 044722 000040 000000
16630 044723 777752 525252
16631 044724 652500 000000
16632 044725 000100 000000
16633 044726 777725 252525
16634 044727 525200 000000
16635 044730 000200 000000
16636 044731 777652 525252
16637 044732 652400 000000
16638 044733 000400 000000
16639 044734 777525 252525
16640 044735 525000 000000
16641 044736 001000 000000
16642 044737 777252 525252
16643 044740 652000 000000
16644 044741 002000 000000
16645 044742 776525 252525
16646 044743 524000 000000
16647 044744 004000 000000
16648 044745 775252 525252
16649 044746 650000 000000
16650 044747 010000 000000
16651 044750 772525 252525
16652 044751 520000 000000
16653 044752 020000 000000
16654 044753 765252 525252
16655 044754 640000 000000
16656 044755 040000 000000
16657 044756 752525 252525
16658 044757 500000 000000
16659 044760 100000 000000
16660 044761 725252 525252
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1-2
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0370
16661 044762 600000 000000
16662 044763 200000 000000
16663 044764 652525 252525
16664 044765 400000 000000
16665 044766 252525 252526
16666 044767 252525 252525
16667 044770 125252 525252
16668 044771 252525 252524
16669 044772 000000 000005
16670 044773 125252 525250
16671 044774 000000 000012
16672 044775 252525 252520
16673 044776 000000 000025
16674 044777 125252 525240
16675 045000 000000 000052
16676 045001 252525 252500
16677 045002 000000 000125
16678 045003 125252 525200
16679 045004 000000 000252
16680 045005 252525 252400
16681 045006 000000 000525
16682 045007 125252 525000
16683 045010 000000 001252
16684 045011 252525 252000
16685 045012 000000 002525
16686 045013 125252 524000
16687 045014 000000 005252
16688 045015 252525 250000
16689 045016 000000 012525
16690 045017 125252 520000
16691 045020 000000 025252
16692 045021 252525 240000
16693 045022 000000 052525
16694 045023 125252 500000
16695 045024 000000 125252
16696 045025 252525 200000
16697 045026 000000 252525
16698 045027 125252 400000
16699 045030 000000 525252
16700 045031 252525 000000
16701 045032 000001 252525
16702 045033 125252 000000
16703 045034 000002 525252
16704 045035 252524 000000
16705 045036 000005 252525
16706 045037 125250 000000
16707 045040 000012 525252
16708 045041 252520 000000
16709 045042 000025 252525
16710 045043 125240 000000
16711 045044 000052 525252
16712 045045 252500 000000
16713 045046 000125 252525
16714 045047 125200 000000
16715 045050 000252 525252
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1-3
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0371
16716 045051 252400 000000
16717 045052 000525 252525
16718 045053 125000 000000
16719 045054 001252 525252
16720 045055 252000 000000
16721 045056 002525 252525
16722 045057 124000 000000
16723 045060 005252 525252
16724 045061 250000 000000
16725 045062 012525 252525
16726 045063 120000 000000
16727 045064 025252 525252
16728 045065 240000 000000
16729 045066 052525 252525
16730 045067 525252 525253
16731 045070 000000 000011
16732 045071 777777 777773
16733 045072 000000 000031
16734 045073 777777 777767
16735 045074 000000 000121
16736 045075 777777 777757
16737 045076 000000 000441
16738 045077 777777 777737
16739 045100 000000 002101
16740 045101 777777 777677
16741 045102 000000 010201
16742 045103 777777 777577
16743 045104 000000 040401
16744 045105 777777 777377
16745 045106 000000 201001
16746 045107 777777 776777
16747 045110 000001 002001
16748 045111 777777 775777
16749 045112 000004 004001
16750 045113 777777 773777
16751 045114 000020 010001
16752 045115 777777 767777
16753 045116 000100 020001
16754 045117 777777 757777
16755 045120 000400 040001
16756 045121 777777 737777
16757 045122 002000 100001
16758 045123 777777 677777
16759 045124 010000 200001
16760 045125 777777 577777
16761 045126 040000 400001
16762 045127 777777 377777
16763 045130 200001 000001
16764 045131 777776 777777
16765 045132 000002 000001
16766 045133 777775 777777
16767 045134 000004 000001
16768 045135 777773 777777
16769 045136 000010 000001
16770 045137 777767 777777
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1-4
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0372
16771 045140 000020 000001
16772 045141 777757 777777
16773 045142 000040 000001
16774 045143 777737 777777
16775 045144 000100 000001
16776 045145 777677 777777
16777 045146 000200 000001
16778 045147 777577 777777
16779 045150 000400 000001
16780 045151 777377 777777
16781 045152 001000 000001
16782 045153 776777 777777
16783 045154 002000 000001
16784 045155 775777 777777
16785 045156 004000 000001
16786 045157 773777 777777
16787 045160 010000 000001
16788 045161 767777 777777
16789 045162 020000 000001
16790 045163 757777 777777
16791 045164 040000 000001
16792 045165 737777 777777
16793 045166 100000 000001
16794 045167 677777 777777
16795 045170 200000 000001
16796 045171 577777 777777
16797 045172 377777 777777
16798 045173 377777 777776
16799 045174 777777 777754
16800 045175 777777 777670
16801 045176 777777 777360
16802 045177 777777 775740
16803 045200 777777 767700
16804 045201 777777 737600
16805 045202 777777 577400
16806 045203 777776 777000
16807 045204 777773 776000
16808 045205 777757 774000
16809 045206 777677 770000
16810 045207 777377 760000
16811 045210 775777 740000
16812 045211 767777 700000
16813 045212 737777 600000
16814 045213 577777 400000
16815 045214 777777 000000
16816 045215 777776 000000
16817 045216 777774 000000
16818 045217 777770 000000
16819 045220 777760 000000
16820 045221 777740 000000
16821 045222 777700 000000
16822 045223 777600 000000
16823 045224 777400 000000
16824 045225 777000 000000
16825 045226 776000 000000
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1-5
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0373
16826 045227 774000 000000
16827 045230 770000 000000
16828 045231 760000 000000
16829 045232 740000 000000
16830 045233 700000 000000
16831 045234 400000 000001
16832 045235 000000 000003
16833 045236 377777 777774
16834 045237 377777 777770
16835 045240 000000 000007
16836 045241 377777 777760
16837 045242 000000 000017
16838 045243 777777 777760
16839 045244 777777 777740
16840 045245 000000 036735
16841 045246 000000 036751
16842 045247 000000 036773
16843 045250 000000 037014
16844 045251 000000 037027
16845 045252 000000 037042
16846 045253 000000 037055
16847 045254 000000 037070
16848 045255 000000 037103
16849 045256 000000 037116
16850 045257 000000 037130
16851 045260 000000 037142
16852 045261 000000 037156
16853 045262 000000 037176
16854 045263 000000 037211
16855 045264 000000 037230
16856 045265 000000 037244
16857 045266 000000 037264
16858 045267 000000 037300
16859 045270 000000 037314
16860 045271 000000 037334
16861 045272 000000 037425
16862 045273 000000 037442
16863 045274 000000 037443
16864 045275 000000 037460
16865 045276 000000 037514
16866 045277 000000 037533
16867 045300 000000 037556
16868 045301 000000 037573
16869 045302 000000 037614
16870 045303 000000 037631
16871 045304 000000 037652
16872 045305 777777 777770
16873 045306 000000 040367
16874 045307 000000 040410
16875 045310 000000 040431
16876 045311 000000 040521
16877 045312 000000 040546
16878 045313 000000 040575
16879 045314 000000 040614
16880 045315 000000 040637
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1-6
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0374
16881 045316 000000 040714
16882 045317 000000 040735
16883 045320 000000 040762
16884 045321 000000 041011
16885 045322 000000 041031
16886 045323 000000 041055
16887 045324 000000 041070
16888 045325 777777 777774
16889 045326 000000 041107
16890 045327 000000 041121
16891 045330 000000 041137
16892 045331 000000 041155
16893 045332 000000 041173
16894 045333 000000 041246
16895 045334 050000 000000
16896 045335 76 64 45 63 64 00
16897 045336 60 41 63 63 00 43
16898 045337 57 65 56 64 00 35
16899 045340 00 77 00 00 00 00
16900 045341 76 60 43 00 35 00
16901 045342 00 00 77 00 00 00
16902 045343 76 62 45 63 65 54
16903 045344 64 00 00 35 00 77
16904 045345 76 46 41 65 54 64
16905 045346 00 56 65 55 42 45
16906 045347 62 00 35 00 77 00
16907 045350 103 050 101 103 051
16908 045351 040 106 101 111 114
16909 045352 105 104 000 000 000
16910 045353 103 050 101 103 053
16911 045354 061 051 040 106 101
16912 045355 111 114 105 104 000
16913 045356 103 050 105 051 040
16914 045357 106 101 111 114 105
16915 045360 104 000 000 000 000
16916 045361 103 050 105 053 061
16917 045362 051 040 106 101 111
16918 045363 114 105 104 000 000
16919 045364 103 050 103 050 101
16920 045365 103 122 051 051 040
16921 045366 106 101 111 114 105
16922 045367 104 000 000 000 000
16923 045370 103 050 103 050 101
16924 045371 103 122 053 061 051
16925 045372 051 040 106 101 111
16926 045373 114 105 104 000 000
16927 045374 103 050 103 050 101
16928 045375 103 114 051 051 040
16929 045376 106 101 111 114 105
16930 045377 104 000 000 000 000
16931 045400 103 050 103 050 105
16932 045401 051 051 040 106 101
16933 045402 111 114 105 104 000
16934 045403 106 114 101 107 040
16935 045404 106 101 111 114 105
DAKAL PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (12) 0,2 MACRO %52(537) 17:16 20-JAN-77 PAGE 1-7
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0375
16936 045405 104 000 000 000 000
16937 LIST
16938 045406 000000 000000 ENDSLD: 0
16939
16940 IFDEF DEBUG,<
16941 045407 PATCH: BLOCK DEBUG ;PATCHING AREA
16942 >
16943
16944 ;PROGRAM VARIABLES
16945 045447 VAR
16946
16947 IFDEF PGMEND,<
16948 045457 000000 000000 END: 0
16949 030000 END BEGIN >
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
ABSLUTE BREAK IS 045460
CPU TIME USED 01:14.759
16K CORE USED