pcjs/apps/pdp10/diags/ka10/dakak/DAKAK.LST.txt

18764 lines
960 KiB
Text

DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1
DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0011
1 ;DAKAK
2
3 000000 MCNVER==0
4 000002 DECVER==2
5
6
7 XLIST
8 LIST
9 LALL
10
11 NAME \MCNVER,\DECVER^
12
13 TITLE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2
14 ^
15
16 ;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE)
17
18 ;COPYRIGHT 1975,1977
19 ;DIGITAL EQUIPMENT CORPORATION
20 ;MARLBORO, MASS. 01752
21
22 ;JOHN R. KIRCHOFF
23
24 000137 LOC 137
25 000137 000000 000002 MCNVER,,DECVER
26
27 NOSYM
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2
DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0012
28 SUBTTL DIAGNOSTIC PARAMETERS
29
30 ;OPERATOR DEFINITIONS
31
32 001000 000000 OPDEF ER1 [1B8]
33 002000 000000 OPDEF ER2 [2B8]
34 003000 000000 OPDEF ER3 [3B8]
35 004000 000000 OPDEF ER4 [4B8]
36 005000 000000 OPDEF ER5 [5B8]
37 006000 000000 OPDEF ER6 [6B8]
38 007000 000000 OPDEF ER7 [7B8]
39 010000 000000 OPDEF ER10 [10B8]
40 011000 000000 OPDEF ER11 [11B8]
41 012000 000000 OPDEF ER12 [12B8]
42 013000 000000 OPDEF ER13 [13B8]
43
44 043570 LUUO1=ERRMES
45 043570 LUUO2=ERRMES
46 043570 LUUO3=ERRMES
47 043570 LUUO4=ERRMES
48 043570 LUUO5=ERRMES
49 043570 LUUO6=ERRMES
50 043570 LUUO7=ERRMES
51 043570 LUUO10=ERRMES
52 043570 LUUO11=ERRMES
53 043570 LUUO12=ERRMES
54 043570 LUUO13=ERRMES
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3
DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0013
55 ;SUBROUTINE ASSEMBLY DEFINITIONS
56
57 000040 DEBUG=40
58 000001 EXCASB=1
59 000001 USRASB=1
60 000001 KI10=1
61 000001 KA10=1
62 000001 KLOLD==1
63 000001 PGMEND=1
64 000001 ERDIAG=1
65
66 ;SPECIAL FEATURE DEFINITIONS
67
68 030000 SADR1=BEGIN
69 030000 SADR2=BEGIN
70 030000 SADR3=BEGIN
71 030000 SADR4=BEGIN
72 254000 030000 SADR5=JRST BEGIN
73 254000 030000 SADR6=JRST BEGIN
74 254000 030000 SADR7=JRST BEGIN
75 254000 030000 SADR8=JRST BEGIN
76 254000 030000 SADR9=JRST BEGIN
77 254000 030000 SADR10=JRST BEGIN
78 254000 030000 SADR11=JRST BEGIN
79
80 ;SPECIAL FEATURE PARAMETERS
81
82 000000 PAREA0=0
83 000000 PAREA1=0
84 000000 PAREA2=0
85 444153 415300 PAREA3=SIXBIT/DAKAK/
86 645560 000000 PAREA4=SIXBIT/TMP/
87 000000 PAREA5=0
88 000000 PAREA6=0
89 001000 ITERAT==1000
90
91 ;MACROS
92
93 DEFINE SAVEAC (A,B)<
94 MOVEI AC+2,. ;SAVE TEST PC
95 MOVEM AC+2,TESTPC
96 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
97 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4
DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0014
98 DEFINE MOP1 (T,A1,A2,EE,R1,R2)<
99 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND
100 ;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
101 ;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY.
102 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
103
104 F'T'0: AA1=A1 ;INITIAL C(AC)
105 MOVE AC,[A1] ;PRELOAD AC (MULTIPLIER)
106 AA2=A2 ;INITIAL C(AC+1)
107 MOVE AC+1,[A2] ;PRELOAD AC+1
108 AEE=EE ;INITIAL C(E)
109 MOVE E,[EE] ;PRELOAD E (MULTIPLICAND)
110 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
111 AR1=R1 ;EXPECTED RESULT IN AC
112 CAME AC,[R1] ;IS HIGH PRODUCT CORRECT?
113 ER3 AC,T'1 ;HIGH PRODUCT FAILED
114 AR2=R2 ;EXPECTED RESULT IN AC+1
115 CAME AC+1,[R2] ;IS LOW PRODUCT CORRECT?
116 ER4 AC+1,T'2 ;LOW PRODUCT FAILED
117 AEE=EE ;INITIAL C(E)
118 CAME E,[EE] ;WAS C(E) CLOBBERED?
119 ER5 E,T'3 ;C(E) WAS CLOBBERED
120 JUMPL AC+2,F'T'0 ;LOOP ON ERROR SWITCH>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1
PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0015
121 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977
122
123 DEFINE S,<;*********************************************************************>
124
125 S^;*********************************************************************^
126 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
127 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
128 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
129 S^;*********************************************************************^
130
131 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
132 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
133 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
134
135 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
136 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
137 010000 DING== 010000 ;RING BELL ON ERROR
138
139 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
140 002000 ERSTOP==002000 ;HALT ON TEST ERROR
141 001000 PALERS==001000 ;PRINT ALL ERRORS
142
143 000400 RELIAB==000400 ;RELIABILITY MODE
144 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
145 000100 INHPAG==000100 ;INHIBIT PAGING
146
147 000040 MODDVC==000040 ;MODIFY DEVICE CODE
148 000020 INHCSH==000020 ;INHIBIT CACHE
149 000010 OPRSEL==000010 ;OPERATOR SELECTION
150
151 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
152
153 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
154
155 ;SWITCH 17 RESERVED !!!
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0016
156 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977
157
158 S^;*********************************************************************^
159 ;*SPECIAL SUBPROGRAM LINKAGES
160 S^;*********************************************************************^
161
162 027772 FSELNK= 27772 ;FILE SELECT LINK
163 027773 FRDLNK= 27773 ;FILE READ LINK
164 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
165 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
166 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
167 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
168
169 S^;*********************************************************************^
170 ;*SPECIAL SUBROUTINE FATAL HALTS
171 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
172 S^;*********************************************************************^
173
174 ;ADDRESS TAG REASON
175 ;---------------------
176
177 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
178 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
179 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
180 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
181 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
182 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
183 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
184 ; 1017 EOPERR ;END OF PROGRAM ERROR
185 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
186
187 S^;*********************************************************************^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0017
188 S^;*********************************************************************^
189 ;OPERATOR DEFINITIONS (NON-UUO'S)
190 S^;*********************************************************************^
191
192 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
193 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
194 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
195 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
196 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
197 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
198 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
199 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
200
201 S^;*********************************************************************^
202 ;*SUBROUTINE INITIALIZATION CALL
203 S^;*********************************************************************^
204
205 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
206
207 S^;*********************************************************************^
208 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
209 S^;*********************************************************************^
210
211 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
212 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
213
214 S^;*********************************************************************^
215 ;*TERMINAL INPUT UUO'S
216 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
217 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
218 S^;*********************************************************************^
219
220 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
221 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
222 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
223 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
224 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
225 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
226 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
227 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
228 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
229 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0018
230 ;*TERMINAL OUTPUT UUO'S.
231
232 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
233 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
234 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
235 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
236 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
237 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
238 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
239 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
240 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
241 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
242 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
243 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
244 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
245 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
246 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
247 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
248 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
249 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
250 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
251 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
252 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
253 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
254 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
255 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
256 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
257 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
258 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
259 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
260 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
261 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
262 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
263 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
264 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
265 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
266 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
267 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
268 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
269 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
270 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
271 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
272 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
273 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
274 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
275 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
276 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
277 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
278 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
279 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
280 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
281 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
282 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
283 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
284 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4-1
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019
285 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
286 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
287
288 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
289
290 DEFINE PMSG (ARG),<
291 PSIXM [SIXBIT\ARG'_\]>
292
293 DEFINE PMSGF (ARG),<
294 PSIXMF [SIXBIT\ARG'_\]>
295
296 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
297 ;* CONSERVES CORE OVER ASCIZ
298
299 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
300
301 ;*CONSOLE SWITCH INPUT UUO.
302 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
303 ;* USER MODE.
304
305 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
306
307 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
308 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
309
310 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
311 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
312
313 ;*KL10 ONLY CACHE OPERATION UUO'S
314
315 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
316 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
317 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020
318 ;*END OF PASS/PROGRAM UUOS
319
320 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
321 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
322
323 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
324 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
325
326 ;*MEMORY MANAGEMENT UUO'S
327 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
328 ;*ADDRESS CONVERSION, ETC...
329
330 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
331 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
332 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
333 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
334 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
335 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
336 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
337
338 ;*DEVICE CODE MODIFICATION UUO
339 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
340 ;*IOT'S TO A DIFFERENT DEVICE CODE.
341
342 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
343 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
344
345 030000 IFNDEF MODDVL,<MODDVL==BEGIN>
346 030000 IFNDEF MODDVU,<MODDVU==BEGIN>
347
348 ;*"DIAMON" FILE SELECTION AND READ UUOS
349
350 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
351 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
352 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
353 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
354
355 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
356
357 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
358
359 XLIST
360 LIST
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021
361 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977
362
363 030000 LOC 30000
364
365 S^;*********************************************************************^
366 ;*PROGRAM STARTING ADDRESSES
367 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
368 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
369 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
370 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
371 S^;*********************************************************************^
372
373 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
374 030001 254 00 0 00 030616 $START: JRST START ;MODE CHECK STARTING ADDRESS
375
376 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
377
378 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
379
380 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
381
382 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
383
384 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
385
386 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
387 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
388
389 030010 254 00 0 00 030621 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
390 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
391 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
392
393 030013 254000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
394 030014 254000 030000 START2: SADR8 ; "
395 030015 254000 030000 START3: SADR9 ; "
396 030016 254000 030000 START4: SADR10 ; "
397 030017 254000 030000 START5: SADR11 ; "
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022
398 S^;*********************************************************************^
399 ;*PROGRAM FIXED PARAMETER AREA
400 S^;*********************************************************************^
401
402 030020 444153 415300 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
403 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
404 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER
405 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
406 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS
407 030025 000000 030602 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
408 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
409 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
410 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
411 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
412 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
413 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
414 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
415 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
416 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
417
418 S^;*********************************************************************^
419 ;*PROGRAM VARIABLE PARAMETER AREA
420 S^;*********************************************************************^
421
422 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
423 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
424 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
425 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
426 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
427 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
428 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
429 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
430 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
431 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
432 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
433 030052 000000 000000 ERRPC: 0 ;ERROR PC
434 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
435 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
436 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
437 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023
438 S^;*********************************************************************^
439 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
440 S^;*********************************************************************^
441
442 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
443 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
444 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
445 030062 254000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
446 030063 254000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
447 030064 CPOPJ1: ;SKIP RETURN
448 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
449 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
450 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
451 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
452 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
453 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
454 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
455 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
456 030073 255 00 0 00 000000 $USRHL: JFCL ; "
457 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
458 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
459 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
460 030077 255 00 0 00 000000 RESRT2: JFCL ; "
461 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
462 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
463 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
464
465 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
466 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
467 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
468
469 S^;*********************************************************************^
470 ;*PROCESSOR CONTROL STORAGE
471 S^;*********************************************************************^
472
473 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
474 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
475 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
476 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
477 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
478
479 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
480 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
481
482 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
483 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
484 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
485 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
486 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
487 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
488 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024
489 S^;*********************************************************************^
490 ;*UUO DISPATCH TABLE
491 S^;*********************************************************************^
492 XLIST
493 LIST
494 030124 043570 030070 UUODIS: LUUO1,,$UUOER
495 030125 043570 043570 LUUO3,,LUUO2
496 030126 043570 043570 LUUO5,,LUUO4
497 030127 043570 043570 LUUO7,,LUUO6
498 030130 043570 043570 LUUO11,,LUUO10
499 030131 043570 043570 LUUO13,,LUUO12
500 030132 030070 030070 LUUO15,,LUUO14
501 030133 030070 030070 LUUO17,,LUUO16
502 030134 030070 030070 LUUO21,,LUUO20
503 030135 030070 030070 LUUO23,,LUUO22
504 030136 030070 030070 LUUO25,,LUUO24
505 030137 030070 030070 LUUO27,,LUUO26
506 030140 030070 030070 LUUO31,,LUUO30
507 030141 030070 030070 LUUO33,,LUUO32
508
509 S^;*********************************************************************^
510 ;*MEMORY MANAGMENT STORAGE
511 S^;*********************************************************************^
512
513 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
514 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
515 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
516 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
517 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
518
519 S^;*********************************************************************^
520 ;*PRINT CONTROL STORAGE
521 S^;*********************************************************************^
522
523 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
524 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
525 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
526 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
527 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
528 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
529 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
530 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
531 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
532 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
533 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
534 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
535 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
536 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
537 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
538 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
539 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
540 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
541 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025
542 S^;*********************************************************************^
543 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
544 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
545 ;* MOVEI NAME
546 ;* PNTA ;OR PNTAF
547 S^;*********************************************************************^
548
549 030242 CRLF: ASCII/
550 030242 015 012 000 000 000 /
551 030243 CRLF2: ASCII/
552
553 030243 015 012 015 012 000 /
554 030244 054 000 000 000 000 COMMA: ASCII/,/
555 030245 056 000 000 000 000 PERIOD: ASCII/./
556 030246 040 000 000 000 000 SPACE: ASCII/ /
557 030247 011 000 000 000 000 TAB: ASCII/ /
558 030250 MINUS:
559 030250 055 000 000 000 000 HYPEN: ASCII/-/
560 030251 053 000 000 000 000 PLUS: ASCII/+/
561 030252 052 000 000 000 000 AST: ASCII/*/
562 030253 100 000 000 000 000 ATSIN: ASCII/@/
563 030254 050 000 000 000 000 LFP: ASCII/(/
564 030255 051 000 000 000 000 RTP: ASCII/)/
565 030256 007 0000000000 BELL: BYTE (7) 007
566 030257 077 000 000 000 000 QUEST: ASCII/?/
567 030260 057 000 000 000 000 SLASH: ASCII!/!
568 030261 044 000 000 000 000 DOLLAR: ASCII/$/
569 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
570 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
571 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
572
573 S^;*********************************************************************^
574 ;*USER MODE OUTPUT FILE INFORMATION
575 S^;*********************************************************************^
576
577 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
578 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
579 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
580 030272 BLOCK 2
581
582 S^;*********************************************************************^
583 ;*DISK UPDATE MODE FILE INFORMATION
584 S^;*********************************************************************^
585
586 030274 $IBUF: BLOCK 3
587 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
588 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
589 030301 BLOCK 2
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026
590 S^;*********************************************************************^
591 ;*PUSHDOWN LIST CONTROL INFORMATION
592 S^;*********************************************************************^
593
594 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
595 030304 PLISTS: BLOCK 200
596 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
597
598 S^;*********************************************************************^
599 ;*POWER LINE CLOCK FREQUENCY FLAG
600 S^;*********************************************************************^
601
602 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
603
604 S^;*********************************************************************^
605 ;*KL10 CACHE CONTROL FLAGS
606 S^;*********************************************************************^
607
608 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
609 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
610
611 S^;*********************************************************************^
612 ;*NUMBER INPUT DIGIT FLAG
613 S^;*********************************************************************^
614
615 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
616
617 S^;*********************************************************************^
618 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
619 S^;*********************************************************************^
620
621 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
622
623 S^;*********************************************************************^
624 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
625 S^;*********************************************************************^
626
627 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
628 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
629 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
630
631 S^;*********************************************************************^
632 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
633 S^;*********************************************************************^
634
635 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027
636 S^;*********************************************************************^
637 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
638 S^;*********************************************************************^
639
640 030516 000000 000000 KLTYP: 0
641
642 S^;*********************************************************************^
643 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
644 S^;*********************************************************************^
645
646 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
647
648 S^;*********************************************************************^
649 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
650 S^;*********************************************************************^
651
652 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
653
654 S^;*********************************************************************^
655 ;*"SWITCH" CALL USAGE CONTROL
656 S^;*********************************************************************^
657
658 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
659
660 S^;*********************************************************************^
661 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
662 S^;*********************************************************************^
663
664 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
665 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
666
667 S^;*********************************************************************^
668 ;*SPECIAL FUTURE EXPANSION ROOM
669 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF
670 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE
671 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE.
672 S^;*********************************************************************^
673
674 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER
675
676 S^;*********************************************************************^
677 ;*END OF FIXED STORAGE
678 S^;*********************************************************************^
679
680 030577 $ENDFX=<PLISTE+100>&<777700>-1
681 030577 LOC $ENDFX
682 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION SEQ 0028
683 SUBTTL DIAGNOSTIC SECTION
684
685 030600 037 05 0 00 000002 EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE
686 030601 000000 030600 EXIT
687
688 030602 PGMNAM: ASCIZ/
689 030602 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) [DAKAK]
690 030603 055 061 060 040 040
691 030604 113 101 061 060 040
692 030605 102 101 123 111 103
693 030606 040 111 116 123 124
694 030607 122 125 103 124 111
695 030610 117 116 040 104 111
696 030611 101 107 116 117 123
697 030612 124 111 103 040 050
698 030613 061 061 051 040 133
699 030614 104 101 113 101 113
700 030615 135 015 012 000 000 /
701
702 ;INITIALIZE
703
704 030616 265 00 0 00 030011 START: PGMINT
705 030617 200 00 0 00 043775 MOVE [ASCIZ/AK/]
706 030620 202 00 0 00 043711 MOVEM TLET ;INITIALIZE TEST LETTER
707
708 030621 254 00 0 00 030622 STARTA: JRST F00 ;GO PERFORM DIAGNOSTIC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0029
709 SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
710
711 003000 ADR=3000
712 000014 AC=14
713 000012 E=<AC-2>&17
714
715 030622 F00: 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 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
720
721 ;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0
722 MOP1 (\ADR,0,-1,0,0,0)^
723 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
724 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
725 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
726 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
727
728 000000 F30000: AA1=0 ;INITIAL C(AC)
729 030626 200 14 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
730 777777 777777 AA2=-1 ;INITIAL C(AC+1)
731 030627 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
732 000000 AEE=0 ;INITIAL C(E)
733 030630 200 12 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
734 030631 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
735 000000 AR1=0 ;EXPECTED RESULT IN AC
736 030632 312 14 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
737 030633 003 14 0 00 030001 ER3 AC,30001 ;HIGH PRODUCT FAILED
738 000000 AR2=0 ;EXPECTED RESULT IN AC+1
739 030634 312 15 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
740 030635 004 15 0 00 030002 ER4 AC+1,30002 ;LOW PRODUCT FAILED
741 000000 AEE=0 ;INITIAL C(E)
742 030636 312 12 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
743 030637 005 12 0 00 030003 ER5 E,30003 ;C(E) WAS CLOBBERED
744 030640 321 16 0 00 030626 JUMPL AC+2,F30000 ;LOOP ON ERROR SWITCH^
745
746 000013 AC=13
747 000011 E=<AC-2>&17
748 SAVEAC (1,1)^
749 030641 201 15 0 00 030641 MOVEI AC+2,. ;SAVE TEST PC
750 030642 202 15 0 00 030051 MOVEM AC+2,TESTPC
751 030643 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
752 030644 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
753 000000 XX=0
754
755 REPEAT ^D36, <
756 ADR=ADR+1
757 XX=XX+XX
758 IFE XX,<XX=1>
759
760 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
761 MOP1 (\ADR,0,-1,XX,0,0)>
762
763 003001 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0030
764 000000 XX=XX+XX
765 000001 IFE XX,<XX=1>
766
767 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
768 MOP1 (\ADR,0,-1,XX,0,0)^
769 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
770 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
771 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
772 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
773
774 000000 F30010: AA1=0 ;INITIAL C(AC)
775 030645 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
776 777777 777777 AA2=-1 ;INITIAL C(AC+1)
777 030646 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
778 000001 AEE=XX ;INITIAL C(E)
779 030647 200 11 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
780 030650 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
781 000000 AR1=0 ;EXPECTED RESULT IN AC
782 030651 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
783 030652 003 13 0 00 030011 ER3 AC,30011 ;HIGH PRODUCT FAILED
784 000000 AR2=0 ;EXPECTED RESULT IN AC+1
785 030653 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
786 030654 004 14 0 00 030012 ER4 AC+1,30012 ;LOW PRODUCT FAILED
787 000001 AEE=XX ;INITIAL C(E)
788 030655 312 11 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED?
789 030656 005 11 0 00 030013 ER5 E,30013 ;C(E) WAS CLOBBERED
790 030657 321 15 0 00 030645 JUMPL AC+2,F30010 ;LOOP ON ERROR SWITCH^
791
792 003002 ADR=ADR+1
793 000002 XX=XX+XX
794 IFE XX,<XX=1>
795
796 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
797 MOP1 (\ADR,0,-1,XX,0,0)^
798 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
799 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
800 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
801 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
802
803 000000 F30020: AA1=0 ;INITIAL C(AC)
804 030660 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
805 777777 777777 AA2=-1 ;INITIAL C(AC+1)
806 030661 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
807 000002 AEE=XX ;INITIAL C(E)
808 030662 200 11 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
809 030663 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
810 000000 AR1=0 ;EXPECTED RESULT IN AC
811 030664 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
812 030665 003 13 0 00 030021 ER3 AC,30021 ;HIGH PRODUCT FAILED
813 000000 AR2=0 ;EXPECTED RESULT IN AC+1
814 030666 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
815 030667 004 14 0 00 030022 ER4 AC+1,30022 ;LOW PRODUCT FAILED
816 000002 AEE=XX ;INITIAL C(E)
817 030670 312 11 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED?
818 030671 005 11 0 00 030023 ER5 E,30023 ;C(E) WAS CLOBBERED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0031
819 030672 321 15 0 00 030660 JUMPL AC+2,F30020 ;LOOP ON ERROR SWITCH^
820
821 003003 ADR=ADR+1
822 000004 XX=XX+XX
823 IFE XX,<XX=1>
824
825 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
826 MOP1 (\ADR,0,-1,XX,0,0)^
827 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
828 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
829 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
830 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
831
832 000000 F30030: AA1=0 ;INITIAL C(AC)
833 030673 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
834 777777 777777 AA2=-1 ;INITIAL C(AC+1)
835 030674 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
836 000004 AEE=XX ;INITIAL C(E)
837 030675 200 11 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
838 030676 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
839 000000 AR1=0 ;EXPECTED RESULT IN AC
840 030677 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
841 030700 003 13 0 00 030031 ER3 AC,30031 ;HIGH PRODUCT FAILED
842 000000 AR2=0 ;EXPECTED RESULT IN AC+1
843 030701 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
844 030702 004 14 0 00 030032 ER4 AC+1,30032 ;LOW PRODUCT FAILED
845 000004 AEE=XX ;INITIAL C(E)
846 030703 312 11 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED?
847 030704 005 11 0 00 030033 ER5 E,30033 ;C(E) WAS CLOBBERED
848 030705 321 15 0 00 030673 JUMPL AC+2,F30030 ;LOOP ON ERROR SWITCH^
849
850 003004 ADR=ADR+1
851 000010 XX=XX+XX
852 IFE XX,<XX=1>
853
854 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
855 MOP1 (\ADR,0,-1,XX,0,0)^
856 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
857 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
858 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
859 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
860
861 000000 F30040: AA1=0 ;INITIAL C(AC)
862 030706 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
863 777777 777777 AA2=-1 ;INITIAL C(AC+1)
864 030707 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
865 000010 AEE=XX ;INITIAL C(E)
866 030710 200 11 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
867 030711 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
868 000000 AR1=0 ;EXPECTED RESULT IN AC
869 030712 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
870 030713 003 13 0 00 030041 ER3 AC,30041 ;HIGH PRODUCT FAILED
871 000000 AR2=0 ;EXPECTED RESULT IN AC+1
872 030714 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
873 030715 004 14 0 00 030042 ER4 AC+1,30042 ;LOW PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0032
874 000010 AEE=XX ;INITIAL C(E)
875 030716 312 11 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED?
876 030717 005 11 0 00 030043 ER5 E,30043 ;C(E) WAS CLOBBERED
877 030720 321 15 0 00 030706 JUMPL AC+2,F30040 ;LOOP ON ERROR SWITCH^
878
879 003005 ADR=ADR+1
880 000020 XX=XX+XX
881 IFE XX,<XX=1>
882
883 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
884 MOP1 (\ADR,0,-1,XX,0,0)^
885 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
886 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
887 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
888 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
889
890 000000 F30050: AA1=0 ;INITIAL C(AC)
891 030721 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
892 777777 777777 AA2=-1 ;INITIAL C(AC+1)
893 030722 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
894 000020 AEE=XX ;INITIAL C(E)
895 030723 200 11 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
896 030724 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
897 000000 AR1=0 ;EXPECTED RESULT IN AC
898 030725 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
899 030726 003 13 0 00 030051 ER3 AC,30051 ;HIGH PRODUCT FAILED
900 000000 AR2=0 ;EXPECTED RESULT IN AC+1
901 030727 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
902 030730 004 14 0 00 030052 ER4 AC+1,30052 ;LOW PRODUCT FAILED
903 000020 AEE=XX ;INITIAL C(E)
904 030731 312 11 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED?
905 030732 005 11 0 00 030053 ER5 E,30053 ;C(E) WAS CLOBBERED
906 030733 321 15 0 00 030721 JUMPL AC+2,F30050 ;LOOP ON ERROR SWITCH^
907
908 003006 ADR=ADR+1
909 000040 XX=XX+XX
910 IFE XX,<XX=1>
911
912 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
913 MOP1 (\ADR,0,-1,XX,0,0)^
914 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
915 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
916 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
917 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
918
919 000000 F30060: AA1=0 ;INITIAL C(AC)
920 030734 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
921 777777 777777 AA2=-1 ;INITIAL C(AC+1)
922 030735 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
923 000040 AEE=XX ;INITIAL C(E)
924 030736 200 11 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
925 030737 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
926 000000 AR1=0 ;EXPECTED RESULT IN AC
927 030740 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
928 030741 003 13 0 00 030061 ER3 AC,30061 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0033
929 000000 AR2=0 ;EXPECTED RESULT IN AC+1
930 030742 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
931 030743 004 14 0 00 030062 ER4 AC+1,30062 ;LOW PRODUCT FAILED
932 000040 AEE=XX ;INITIAL C(E)
933 030744 312 11 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED?
934 030745 005 11 0 00 030063 ER5 E,30063 ;C(E) WAS CLOBBERED
935 030746 321 15 0 00 030734 JUMPL AC+2,F30060 ;LOOP ON ERROR SWITCH^
936
937 003007 ADR=ADR+1
938 000100 XX=XX+XX
939 IFE XX,<XX=1>
940
941 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
942 MOP1 (\ADR,0,-1,XX,0,0)^
943 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
944 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
945 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
946 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
947
948 000000 F30070: AA1=0 ;INITIAL C(AC)
949 030747 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
950 777777 777777 AA2=-1 ;INITIAL C(AC+1)
951 030750 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
952 000100 AEE=XX ;INITIAL C(E)
953 030751 200 11 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
954 030752 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
955 000000 AR1=0 ;EXPECTED RESULT IN AC
956 030753 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
957 030754 003 13 0 00 030071 ER3 AC,30071 ;HIGH PRODUCT FAILED
958 000000 AR2=0 ;EXPECTED RESULT IN AC+1
959 030755 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
960 030756 004 14 0 00 030072 ER4 AC+1,30072 ;LOW PRODUCT FAILED
961 000100 AEE=XX ;INITIAL C(E)
962 030757 312 11 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED?
963 030760 005 11 0 00 030073 ER5 E,30073 ;C(E) WAS CLOBBERED
964 030761 321 15 0 00 030747 JUMPL AC+2,F30070 ;LOOP ON ERROR SWITCH^
965
966 003010 ADR=ADR+1
967 000200 XX=XX+XX
968 IFE XX,<XX=1>
969
970 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
971 MOP1 (\ADR,0,-1,XX,0,0)^
972 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
973 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
974 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
975 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
976
977 000000 F30100: AA1=0 ;INITIAL C(AC)
978 030762 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
979 777777 777777 AA2=-1 ;INITIAL C(AC+1)
980 030763 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
981 000200 AEE=XX ;INITIAL C(E)
982 030764 200 11 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
983 030765 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0034
984 000000 AR1=0 ;EXPECTED RESULT IN AC
985 030766 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
986 030767 003 13 0 00 030101 ER3 AC,30101 ;HIGH PRODUCT FAILED
987 000000 AR2=0 ;EXPECTED RESULT IN AC+1
988 030770 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
989 030771 004 14 0 00 030102 ER4 AC+1,30102 ;LOW PRODUCT FAILED
990 000200 AEE=XX ;INITIAL C(E)
991 030772 312 11 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED?
992 030773 005 11 0 00 030103 ER5 E,30103 ;C(E) WAS CLOBBERED
993 030774 321 15 0 00 030762 JUMPL AC+2,F30100 ;LOOP ON ERROR SWITCH^
994
995 003011 ADR=ADR+1
996 000400 XX=XX+XX
997 IFE XX,<XX=1>
998
999 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1000 MOP1 (\ADR,0,-1,XX,0,0)^
1001 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1002 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1003 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1004 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1005
1006 000000 F30110: AA1=0 ;INITIAL C(AC)
1007 030775 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1008 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1009 030776 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1010 000400 AEE=XX ;INITIAL C(E)
1011 030777 200 11 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1012 031000 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1013 000000 AR1=0 ;EXPECTED RESULT IN AC
1014 031001 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1015 031002 003 13 0 00 030111 ER3 AC,30111 ;HIGH PRODUCT FAILED
1016 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1017 031003 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1018 031004 004 14 0 00 030112 ER4 AC+1,30112 ;LOW PRODUCT FAILED
1019 000400 AEE=XX ;INITIAL C(E)
1020 031005 312 11 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED?
1021 031006 005 11 0 00 030113 ER5 E,30113 ;C(E) WAS CLOBBERED
1022 031007 321 15 0 00 030775 JUMPL AC+2,F30110 ;LOOP ON ERROR SWITCH^
1023
1024 003012 ADR=ADR+1
1025 001000 XX=XX+XX
1026 IFE XX,<XX=1>
1027
1028 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1029 MOP1 (\ADR,0,-1,XX,0,0)^
1030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1031 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1032 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1034
1035 000000 F30120: AA1=0 ;INITIAL C(AC)
1036 031010 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1037 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1038 031011 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0035
1039 001000 AEE=XX ;INITIAL C(E)
1040 031012 200 11 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1041 031013 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1042 000000 AR1=0 ;EXPECTED RESULT IN AC
1043 031014 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1044 031015 003 13 0 00 030121 ER3 AC,30121 ;HIGH PRODUCT FAILED
1045 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1046 031016 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1047 031017 004 14 0 00 030122 ER4 AC+1,30122 ;LOW PRODUCT FAILED
1048 001000 AEE=XX ;INITIAL C(E)
1049 031020 312 11 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED?
1050 031021 005 11 0 00 030123 ER5 E,30123 ;C(E) WAS CLOBBERED
1051 031022 321 15 0 00 031010 JUMPL AC+2,F30120 ;LOOP ON ERROR SWITCH^
1052
1053 003013 ADR=ADR+1
1054 002000 XX=XX+XX
1055 IFE XX,<XX=1>
1056
1057 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1058 MOP1 (\ADR,0,-1,XX,0,0)^
1059 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1060 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1061 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1062 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1063
1064 000000 F30130: AA1=0 ;INITIAL C(AC)
1065 031023 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1066 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1067 031024 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1068 002000 AEE=XX ;INITIAL C(E)
1069 031025 200 11 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1070 031026 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1071 000000 AR1=0 ;EXPECTED RESULT IN AC
1072 031027 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1073 031030 003 13 0 00 030131 ER3 AC,30131 ;HIGH PRODUCT FAILED
1074 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1075 031031 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1076 031032 004 14 0 00 030132 ER4 AC+1,30132 ;LOW PRODUCT FAILED
1077 002000 AEE=XX ;INITIAL C(E)
1078 031033 312 11 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED?
1079 031034 005 11 0 00 030133 ER5 E,30133 ;C(E) WAS CLOBBERED
1080 031035 321 15 0 00 031023 JUMPL AC+2,F30130 ;LOOP ON ERROR SWITCH^
1081
1082 003014 ADR=ADR+1
1083 004000 XX=XX+XX
1084 IFE XX,<XX=1>
1085
1086 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1087 MOP1 (\ADR,0,-1,XX,0,0)^
1088 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1089 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1090 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1091 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1092
1093 000000 F30140: AA1=0 ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0036
1094 031036 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1095 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1096 031037 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1097 004000 AEE=XX ;INITIAL C(E)
1098 031040 200 11 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1099 031041 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1100 000000 AR1=0 ;EXPECTED RESULT IN AC
1101 031042 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1102 031043 003 13 0 00 030141 ER3 AC,30141 ;HIGH PRODUCT FAILED
1103 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1104 031044 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1105 031045 004 14 0 00 030142 ER4 AC+1,30142 ;LOW PRODUCT FAILED
1106 004000 AEE=XX ;INITIAL C(E)
1107 031046 312 11 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED?
1108 031047 005 11 0 00 030143 ER5 E,30143 ;C(E) WAS CLOBBERED
1109 031050 321 15 0 00 031036 JUMPL AC+2,F30140 ;LOOP ON ERROR SWITCH^
1110
1111 003015 ADR=ADR+1
1112 010000 XX=XX+XX
1113 IFE XX,<XX=1>
1114
1115 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1116 MOP1 (\ADR,0,-1,XX,0,0)^
1117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1118 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1119 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1121
1122 000000 F30150: AA1=0 ;INITIAL C(AC)
1123 031051 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1124 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1125 031052 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1126 010000 AEE=XX ;INITIAL C(E)
1127 031053 200 11 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1128 031054 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1129 000000 AR1=0 ;EXPECTED RESULT IN AC
1130 031055 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1131 031056 003 13 0 00 030151 ER3 AC,30151 ;HIGH PRODUCT FAILED
1132 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1133 031057 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1134 031060 004 14 0 00 030152 ER4 AC+1,30152 ;LOW PRODUCT FAILED
1135 010000 AEE=XX ;INITIAL C(E)
1136 031061 312 11 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED?
1137 031062 005 11 0 00 030153 ER5 E,30153 ;C(E) WAS CLOBBERED
1138 031063 321 15 0 00 031051 JUMPL AC+2,F30150 ;LOOP ON ERROR SWITCH^
1139
1140 003016 ADR=ADR+1
1141 020000 XX=XX+XX
1142 IFE XX,<XX=1>
1143
1144 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1145 MOP1 (\ADR,0,-1,XX,0,0)^
1146 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1147 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1148 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0037
1149 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1150
1151 000000 F30160: AA1=0 ;INITIAL C(AC)
1152 031064 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1153 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1154 031065 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1155 020000 AEE=XX ;INITIAL C(E)
1156 031066 200 11 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1157 031067 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1158 000000 AR1=0 ;EXPECTED RESULT IN AC
1159 031070 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1160 031071 003 13 0 00 030161 ER3 AC,30161 ;HIGH PRODUCT FAILED
1161 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1162 031072 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1163 031073 004 14 0 00 030162 ER4 AC+1,30162 ;LOW PRODUCT FAILED
1164 020000 AEE=XX ;INITIAL C(E)
1165 031074 312 11 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED?
1166 031075 005 11 0 00 030163 ER5 E,30163 ;C(E) WAS CLOBBERED
1167 031076 321 15 0 00 031064 JUMPL AC+2,F30160 ;LOOP ON ERROR SWITCH^
1168
1169 003017 ADR=ADR+1
1170 040000 XX=XX+XX
1171 IFE XX,<XX=1>
1172
1173 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1174 MOP1 (\ADR,0,-1,XX,0,0)^
1175 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1176 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1177 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1178 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1179
1180 000000 F30170: AA1=0 ;INITIAL C(AC)
1181 031077 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1182 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1183 031100 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1184 040000 AEE=XX ;INITIAL C(E)
1185 031101 200 11 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1186 031102 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1187 000000 AR1=0 ;EXPECTED RESULT IN AC
1188 031103 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1189 031104 003 13 0 00 030171 ER3 AC,30171 ;HIGH PRODUCT FAILED
1190 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1191 031105 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1192 031106 004 14 0 00 030172 ER4 AC+1,30172 ;LOW PRODUCT FAILED
1193 040000 AEE=XX ;INITIAL C(E)
1194 031107 312 11 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED?
1195 031110 005 11 0 00 030173 ER5 E,30173 ;C(E) WAS CLOBBERED
1196 031111 321 15 0 00 031077 JUMPL AC+2,F30170 ;LOOP ON ERROR SWITCH^
1197
1198 003020 ADR=ADR+1
1199 100000 XX=XX+XX
1200 IFE XX,<XX=1>
1201
1202 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1203 MOP1 (\ADR,0,-1,XX,0,0)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0038
1204 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1205 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1206 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1207 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1208
1209 000000 F30200: AA1=0 ;INITIAL C(AC)
1210 031112 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1211 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1212 031113 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1213 100000 AEE=XX ;INITIAL C(E)
1214 031114 200 11 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1215 031115 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1216 000000 AR1=0 ;EXPECTED RESULT IN AC
1217 031116 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1218 031117 003 13 0 00 030201 ER3 AC,30201 ;HIGH PRODUCT FAILED
1219 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1220 031120 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1221 031121 004 14 0 00 030202 ER4 AC+1,30202 ;LOW PRODUCT FAILED
1222 100000 AEE=XX ;INITIAL C(E)
1223 031122 312 11 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED?
1224 031123 005 11 0 00 030203 ER5 E,30203 ;C(E) WAS CLOBBERED
1225 031124 321 15 0 00 031112 JUMPL AC+2,F30200 ;LOOP ON ERROR SWITCH^
1226
1227 003021 ADR=ADR+1
1228 200000 XX=XX+XX
1229 IFE XX,<XX=1>
1230
1231 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1232 MOP1 (\ADR,0,-1,XX,0,0)^
1233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1234 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1235 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1237
1238 000000 F30210: AA1=0 ;INITIAL C(AC)
1239 031125 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1240 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1241 031126 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1242 200000 AEE=XX ;INITIAL C(E)
1243 031127 200 11 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1244 031130 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1245 000000 AR1=0 ;EXPECTED RESULT IN AC
1246 031131 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1247 031132 003 13 0 00 030211 ER3 AC,30211 ;HIGH PRODUCT FAILED
1248 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1249 031133 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1250 031134 004 14 0 00 030212 ER4 AC+1,30212 ;LOW PRODUCT FAILED
1251 200000 AEE=XX ;INITIAL C(E)
1252 031135 312 11 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED?
1253 031136 005 11 0 00 030213 ER5 E,30213 ;C(E) WAS CLOBBERED
1254 031137 321 15 0 00 031125 JUMPL AC+2,F30210 ;LOOP ON ERROR SWITCH^
1255
1256 003022 ADR=ADR+1
1257 400000 XX=XX+XX
1258 IFE XX,<XX=1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0039
1259
1260 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1261 MOP1 (\ADR,0,-1,XX,0,0)^
1262 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1263 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1264 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1265 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1266
1267 000000 F30220: AA1=0 ;INITIAL C(AC)
1268 031140 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1269 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1270 031141 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1271 400000 AEE=XX ;INITIAL C(E)
1272 031142 200 11 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1273 031143 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1274 000000 AR1=0 ;EXPECTED RESULT IN AC
1275 031144 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1276 031145 003 13 0 00 030221 ER3 AC,30221 ;HIGH PRODUCT FAILED
1277 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1278 031146 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1279 031147 004 14 0 00 030222 ER4 AC+1,30222 ;LOW PRODUCT FAILED
1280 400000 AEE=XX ;INITIAL C(E)
1281 031150 312 11 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED?
1282 031151 005 11 0 00 030223 ER5 E,30223 ;C(E) WAS CLOBBERED
1283 031152 321 15 0 00 031140 JUMPL AC+2,F30220 ;LOOP ON ERROR SWITCH^
1284
1285 003023 ADR=ADR+1
1286 000001 000000 XX=XX+XX
1287 IFE XX,<XX=1>
1288
1289 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1290 MOP1 (\ADR,0,-1,XX,0,0)^
1291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1292 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1293 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1295
1296 000000 F30230: AA1=0 ;INITIAL C(AC)
1297 031153 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1298 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1299 031154 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1300 000001 000000 AEE=XX ;INITIAL C(E)
1301 031155 200 11 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1302 031156 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1303 000000 AR1=0 ;EXPECTED RESULT IN AC
1304 031157 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1305 031160 003 13 0 00 030231 ER3 AC,30231 ;HIGH PRODUCT FAILED
1306 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1307 031161 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1308 031162 004 14 0 00 030232 ER4 AC+1,30232 ;LOW PRODUCT FAILED
1309 000001 000000 AEE=XX ;INITIAL C(E)
1310 031163 312 11 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED?
1311 031164 005 11 0 00 030233 ER5 E,30233 ;C(E) WAS CLOBBERED
1312 031165 321 15 0 00 031153 JUMPL AC+2,F30230 ;LOOP ON ERROR SWITCH^
1313
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0040
1314 003024 ADR=ADR+1
1315 000002 000000 XX=XX+XX
1316 IFE XX,<XX=1>
1317
1318 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1319 MOP1 (\ADR,0,-1,XX,0,0)^
1320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1321 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1322 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1324
1325 000000 F30240: AA1=0 ;INITIAL C(AC)
1326 031166 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1327 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1328 031167 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1329 000002 000000 AEE=XX ;INITIAL C(E)
1330 031170 200 11 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1331 031171 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1332 000000 AR1=0 ;EXPECTED RESULT IN AC
1333 031172 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1334 031173 003 13 0 00 030241 ER3 AC,30241 ;HIGH PRODUCT FAILED
1335 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1336 031174 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1337 031175 004 14 0 00 030242 ER4 AC+1,30242 ;LOW PRODUCT FAILED
1338 000002 000000 AEE=XX ;INITIAL C(E)
1339 031176 312 11 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED?
1340 031177 005 11 0 00 030243 ER5 E,30243 ;C(E) WAS CLOBBERED
1341 031200 321 15 0 00 031166 JUMPL AC+2,F30240 ;LOOP ON ERROR SWITCH^
1342
1343 003025 ADR=ADR+1
1344 000004 000000 XX=XX+XX
1345 IFE XX,<XX=1>
1346
1347 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1348 MOP1 (\ADR,0,-1,XX,0,0)^
1349 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1350 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1351 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1352 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1353
1354 000000 F30250: AA1=0 ;INITIAL C(AC)
1355 031201 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1356 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1357 031202 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1358 000004 000000 AEE=XX ;INITIAL C(E)
1359 031203 200 11 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1360 031204 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1361 000000 AR1=0 ;EXPECTED RESULT IN AC
1362 031205 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1363 031206 003 13 0 00 030251 ER3 AC,30251 ;HIGH PRODUCT FAILED
1364 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1365 031207 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1366 031210 004 14 0 00 030252 ER4 AC+1,30252 ;LOW PRODUCT FAILED
1367 000004 000000 AEE=XX ;INITIAL C(E)
1368 031211 312 11 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0041
1369 031212 005 11 0 00 030253 ER5 E,30253 ;C(E) WAS CLOBBERED
1370 031213 321 15 0 00 031201 JUMPL AC+2,F30250 ;LOOP ON ERROR SWITCH^
1371
1372 003026 ADR=ADR+1
1373 000010 000000 XX=XX+XX
1374 IFE XX,<XX=1>
1375
1376 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1377 MOP1 (\ADR,0,-1,XX,0,0)^
1378 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1379 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1380 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1381 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1382
1383 000000 F30260: AA1=0 ;INITIAL C(AC)
1384 031214 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1385 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1386 031215 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1387 000010 000000 AEE=XX ;INITIAL C(E)
1388 031216 200 11 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1389 031217 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1390 000000 AR1=0 ;EXPECTED RESULT IN AC
1391 031220 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1392 031221 003 13 0 00 030261 ER3 AC,30261 ;HIGH PRODUCT FAILED
1393 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1394 031222 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1395 031223 004 14 0 00 030262 ER4 AC+1,30262 ;LOW PRODUCT FAILED
1396 000010 000000 AEE=XX ;INITIAL C(E)
1397 031224 312 11 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED?
1398 031225 005 11 0 00 030263 ER5 E,30263 ;C(E) WAS CLOBBERED
1399 031226 321 15 0 00 031214 JUMPL AC+2,F30260 ;LOOP ON ERROR SWITCH^
1400
1401 003027 ADR=ADR+1
1402 000020 000000 XX=XX+XX
1403 IFE XX,<XX=1>
1404
1405 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1406 MOP1 (\ADR,0,-1,XX,0,0)^
1407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1408 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1409 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1411
1412 000000 F30270: AA1=0 ;INITIAL C(AC)
1413 031227 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1414 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1415 031230 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1416 000020 000000 AEE=XX ;INITIAL C(E)
1417 031231 200 11 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1418 031232 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1419 000000 AR1=0 ;EXPECTED RESULT IN AC
1420 031233 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1421 031234 003 13 0 00 030271 ER3 AC,30271 ;HIGH PRODUCT FAILED
1422 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1423 031235 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0042
1424 031236 004 14 0 00 030272 ER4 AC+1,30272 ;LOW PRODUCT FAILED
1425 000020 000000 AEE=XX ;INITIAL C(E)
1426 031237 312 11 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED?
1427 031240 005 11 0 00 030273 ER5 E,30273 ;C(E) WAS CLOBBERED
1428 031241 321 15 0 00 031227 JUMPL AC+2,F30270 ;LOOP ON ERROR SWITCH^
1429
1430 003030 ADR=ADR+1
1431 000040 000000 XX=XX+XX
1432 IFE XX,<XX=1>
1433
1434 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1435 MOP1 (\ADR,0,-1,XX,0,0)^
1436 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1437 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1438 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1439 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1440
1441 000000 F30300: AA1=0 ;INITIAL C(AC)
1442 031242 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1443 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1444 031243 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1445 000040 000000 AEE=XX ;INITIAL C(E)
1446 031244 200 11 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1447 031245 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1448 000000 AR1=0 ;EXPECTED RESULT IN AC
1449 031246 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1450 031247 003 13 0 00 030301 ER3 AC,30301 ;HIGH PRODUCT FAILED
1451 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1452 031250 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1453 031251 004 14 0 00 030302 ER4 AC+1,30302 ;LOW PRODUCT FAILED
1454 000040 000000 AEE=XX ;INITIAL C(E)
1455 031252 312 11 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED?
1456 031253 005 11 0 00 030303 ER5 E,30303 ;C(E) WAS CLOBBERED
1457 031254 321 15 0 00 031242 JUMPL AC+2,F30300 ;LOOP ON ERROR SWITCH^
1458
1459 003031 ADR=ADR+1
1460 000100 000000 XX=XX+XX
1461 IFE XX,<XX=1>
1462
1463 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1464 MOP1 (\ADR,0,-1,XX,0,0)^
1465 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1466 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1467 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1468 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1469
1470 000000 F30310: AA1=0 ;INITIAL C(AC)
1471 031255 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1472 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1473 031256 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1474 000100 000000 AEE=XX ;INITIAL C(E)
1475 031257 200 11 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1476 031260 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1477 000000 AR1=0 ;EXPECTED RESULT IN AC
1478 031261 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0043
1479 031262 003 13 0 00 030311 ER3 AC,30311 ;HIGH PRODUCT FAILED
1480 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1481 031263 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1482 031264 004 14 0 00 030312 ER4 AC+1,30312 ;LOW PRODUCT FAILED
1483 000100 000000 AEE=XX ;INITIAL C(E)
1484 031265 312 11 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED?
1485 031266 005 11 0 00 030313 ER5 E,30313 ;C(E) WAS CLOBBERED
1486 031267 321 15 0 00 031255 JUMPL AC+2,F30310 ;LOOP ON ERROR SWITCH^
1487
1488 003032 ADR=ADR+1
1489 000200 000000 XX=XX+XX
1490 IFE XX,<XX=1>
1491
1492 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1493 MOP1 (\ADR,0,-1,XX,0,0)^
1494 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1495 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1496 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1497 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1498
1499 000000 F30320: AA1=0 ;INITIAL C(AC)
1500 031270 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1501 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1502 031271 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1503 000200 000000 AEE=XX ;INITIAL C(E)
1504 031272 200 11 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1505 031273 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1506 000000 AR1=0 ;EXPECTED RESULT IN AC
1507 031274 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1508 031275 003 13 0 00 030321 ER3 AC,30321 ;HIGH PRODUCT FAILED
1509 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1510 031276 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1511 031277 004 14 0 00 030322 ER4 AC+1,30322 ;LOW PRODUCT FAILED
1512 000200 000000 AEE=XX ;INITIAL C(E)
1513 031300 312 11 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED?
1514 031301 005 11 0 00 030323 ER5 E,30323 ;C(E) WAS CLOBBERED
1515 031302 321 15 0 00 031270 JUMPL AC+2,F30320 ;LOOP ON ERROR SWITCH^
1516
1517 003033 ADR=ADR+1
1518 000400 000000 XX=XX+XX
1519 IFE XX,<XX=1>
1520
1521 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1522 MOP1 (\ADR,0,-1,XX,0,0)^
1523 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1524 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1525 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1526 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1527
1528 000000 F30330: AA1=0 ;INITIAL C(AC)
1529 031303 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1530 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1531 031304 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1532 000400 000000 AEE=XX ;INITIAL C(E)
1533 031305 200 11 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0044
1534 031306 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1535 000000 AR1=0 ;EXPECTED RESULT IN AC
1536 031307 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1537 031310 003 13 0 00 030331 ER3 AC,30331 ;HIGH PRODUCT FAILED
1538 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1539 031311 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1540 031312 004 14 0 00 030332 ER4 AC+1,30332 ;LOW PRODUCT FAILED
1541 000400 000000 AEE=XX ;INITIAL C(E)
1542 031313 312 11 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED?
1543 031314 005 11 0 00 030333 ER5 E,30333 ;C(E) WAS CLOBBERED
1544 031315 321 15 0 00 031303 JUMPL AC+2,F30330 ;LOOP ON ERROR SWITCH^
1545
1546 003034 ADR=ADR+1
1547 001000 000000 XX=XX+XX
1548 IFE XX,<XX=1>
1549
1550 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1551 MOP1 (\ADR,0,-1,XX,0,0)^
1552 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1553 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1554 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1555 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1556
1557 000000 F30340: AA1=0 ;INITIAL C(AC)
1558 031316 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1559 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1560 031317 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1561 001000 000000 AEE=XX ;INITIAL C(E)
1562 031320 200 11 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1563 031321 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1564 000000 AR1=0 ;EXPECTED RESULT IN AC
1565 031322 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1566 031323 003 13 0 00 030341 ER3 AC,30341 ;HIGH PRODUCT FAILED
1567 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1568 031324 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1569 031325 004 14 0 00 030342 ER4 AC+1,30342 ;LOW PRODUCT FAILED
1570 001000 000000 AEE=XX ;INITIAL C(E)
1571 031326 312 11 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED?
1572 031327 005 11 0 00 030343 ER5 E,30343 ;C(E) WAS CLOBBERED
1573 031330 321 15 0 00 031316 JUMPL AC+2,F30340 ;LOOP ON ERROR SWITCH^
1574
1575 003035 ADR=ADR+1
1576 002000 000000 XX=XX+XX
1577 IFE XX,<XX=1>
1578
1579 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1580 MOP1 (\ADR,0,-1,XX,0,0)^
1581 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1582 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1583 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1584 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1585
1586 000000 F30350: AA1=0 ;INITIAL C(AC)
1587 031331 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1588 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0045
1589 031332 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1590 002000 000000 AEE=XX ;INITIAL C(E)
1591 031333 200 11 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1592 031334 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1593 000000 AR1=0 ;EXPECTED RESULT IN AC
1594 031335 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1595 031336 003 13 0 00 030351 ER3 AC,30351 ;HIGH PRODUCT FAILED
1596 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1597 031337 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1598 031340 004 14 0 00 030352 ER4 AC+1,30352 ;LOW PRODUCT FAILED
1599 002000 000000 AEE=XX ;INITIAL C(E)
1600 031341 312 11 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED?
1601 031342 005 11 0 00 030353 ER5 E,30353 ;C(E) WAS CLOBBERED
1602 031343 321 15 0 00 031331 JUMPL AC+2,F30350 ;LOOP ON ERROR SWITCH^
1603
1604 003036 ADR=ADR+1
1605 004000 000000 XX=XX+XX
1606 IFE XX,<XX=1>
1607
1608 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1609 MOP1 (\ADR,0,-1,XX,0,0)^
1610 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1611 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1612 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1613 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1614
1615 000000 F30360: AA1=0 ;INITIAL C(AC)
1616 031344 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1617 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1618 031345 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1619 004000 000000 AEE=XX ;INITIAL C(E)
1620 031346 200 11 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1621 031347 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1622 000000 AR1=0 ;EXPECTED RESULT IN AC
1623 031350 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1624 031351 003 13 0 00 030361 ER3 AC,30361 ;HIGH PRODUCT FAILED
1625 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1626 031352 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1627 031353 004 14 0 00 030362 ER4 AC+1,30362 ;LOW PRODUCT FAILED
1628 004000 000000 AEE=XX ;INITIAL C(E)
1629 031354 312 11 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED?
1630 031355 005 11 0 00 030363 ER5 E,30363 ;C(E) WAS CLOBBERED
1631 031356 321 15 0 00 031344 JUMPL AC+2,F30360 ;LOOP ON ERROR SWITCH^
1632
1633 003037 ADR=ADR+1
1634 010000 000000 XX=XX+XX
1635 IFE XX,<XX=1>
1636
1637 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1638 MOP1 (\ADR,0,-1,XX,0,0)^
1639 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1640 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1641 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1642 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1643
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0046
1644 000000 F30370: AA1=0 ;INITIAL C(AC)
1645 031357 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1646 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1647 031360 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1648 010000 000000 AEE=XX ;INITIAL C(E)
1649 031361 200 11 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1650 031362 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1651 000000 AR1=0 ;EXPECTED RESULT IN AC
1652 031363 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1653 031364 003 13 0 00 030371 ER3 AC,30371 ;HIGH PRODUCT FAILED
1654 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1655 031365 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1656 031366 004 14 0 00 030372 ER4 AC+1,30372 ;LOW PRODUCT FAILED
1657 010000 000000 AEE=XX ;INITIAL C(E)
1658 031367 312 11 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED?
1659 031370 005 11 0 00 030373 ER5 E,30373 ;C(E) WAS CLOBBERED
1660 031371 321 15 0 00 031357 JUMPL AC+2,F30370 ;LOOP ON ERROR SWITCH^
1661
1662 003040 ADR=ADR+1
1663 020000 000000 XX=XX+XX
1664 IFE XX,<XX=1>
1665
1666 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1667 MOP1 (\ADR,0,-1,XX,0,0)^
1668 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1669 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1670 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1671 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1672
1673 000000 F30400: AA1=0 ;INITIAL C(AC)
1674 031372 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1675 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1676 031373 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1677 020000 000000 AEE=XX ;INITIAL C(E)
1678 031374 200 11 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1679 031375 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1680 000000 AR1=0 ;EXPECTED RESULT IN AC
1681 031376 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1682 031377 003 13 0 00 030401 ER3 AC,30401 ;HIGH PRODUCT FAILED
1683 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1684 031400 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1685 031401 004 14 0 00 030402 ER4 AC+1,30402 ;LOW PRODUCT FAILED
1686 020000 000000 AEE=XX ;INITIAL C(E)
1687 031402 312 11 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED?
1688 031403 005 11 0 00 030403 ER5 E,30403 ;C(E) WAS CLOBBERED
1689 031404 321 15 0 00 031372 JUMPL AC+2,F30400 ;LOOP ON ERROR SWITCH^
1690
1691 003041 ADR=ADR+1
1692 040000 000000 XX=XX+XX
1693 IFE XX,<XX=1>
1694
1695 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1696 MOP1 (\ADR,0,-1,XX,0,0)^
1697 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1698 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0047
1699 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1700 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1701
1702 000000 F30410: AA1=0 ;INITIAL C(AC)
1703 031405 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1704 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1705 031406 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1706 040000 000000 AEE=XX ;INITIAL C(E)
1707 031407 200 11 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1708 031410 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1709 000000 AR1=0 ;EXPECTED RESULT IN AC
1710 031411 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1711 031412 003 13 0 00 030411 ER3 AC,30411 ;HIGH PRODUCT FAILED
1712 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1713 031413 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1714 031414 004 14 0 00 030412 ER4 AC+1,30412 ;LOW PRODUCT FAILED
1715 040000 000000 AEE=XX ;INITIAL C(E)
1716 031415 312 11 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED?
1717 031416 005 11 0 00 030413 ER5 E,30413 ;C(E) WAS CLOBBERED
1718 031417 321 15 0 00 031405 JUMPL AC+2,F30410 ;LOOP ON ERROR SWITCH^
1719
1720 003042 ADR=ADR+1
1721 100000 000000 XX=XX+XX
1722 IFE XX,<XX=1>
1723
1724 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1725 MOP1 (\ADR,0,-1,XX,0,0)^
1726 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1727 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1728 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1729 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1730
1731 000000 F30420: AA1=0 ;INITIAL C(AC)
1732 031420 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1733 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1734 031421 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1735 100000 000000 AEE=XX ;INITIAL C(E)
1736 031422 200 11 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1737 031423 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1738 000000 AR1=0 ;EXPECTED RESULT IN AC
1739 031424 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1740 031425 003 13 0 00 030421 ER3 AC,30421 ;HIGH PRODUCT FAILED
1741 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1742 031426 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1743 031427 004 14 0 00 030422 ER4 AC+1,30422 ;LOW PRODUCT FAILED
1744 100000 000000 AEE=XX ;INITIAL C(E)
1745 031430 312 11 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED?
1746 031431 005 11 0 00 030423 ER5 E,30423 ;C(E) WAS CLOBBERED
1747 031432 321 15 0 00 031420 JUMPL AC+2,F30420 ;LOOP ON ERROR SWITCH^
1748
1749 003043 ADR=ADR+1
1750 200000 000000 XX=XX+XX
1751 IFE XX,<XX=1>
1752
1753 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0048
1754 MOP1 (\ADR,0,-1,XX,0,0)^
1755 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1756 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1757 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1758 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1759
1760 000000 F30430: AA1=0 ;INITIAL C(AC)
1761 031433 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1762 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1763 031434 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1764 200000 000000 AEE=XX ;INITIAL C(E)
1765 031435 200 11 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1766 031436 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1767 000000 AR1=0 ;EXPECTED RESULT IN AC
1768 031437 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1769 031440 003 13 0 00 030431 ER3 AC,30431 ;HIGH PRODUCT FAILED
1770 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1771 031441 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1772 031442 004 14 0 00 030432 ER4 AC+1,30432 ;LOW PRODUCT FAILED
1773 200000 000000 AEE=XX ;INITIAL C(E)
1774 031443 312 11 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED?
1775 031444 005 11 0 00 030433 ER5 E,30433 ;C(E) WAS CLOBBERED
1776 031445 321 15 0 00 031433 JUMPL AC+2,F30430 ;LOOP ON ERROR SWITCH^
1777
1778 003044 ADR=ADR+1
1779 400000 000000 XX=XX+XX
1780 IFE XX,<XX=1>
1781
1782 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
1783 MOP1 (\ADR,0,-1,XX,0,0)^
1784 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1785 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1786 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1787 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1788
1789 000000 F30440: AA1=0 ;INITIAL C(AC)
1790 031446 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1791 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1792 031447 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1793 400000 000000 AEE=XX ;INITIAL C(E)
1794 031450 200 11 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1795 031451 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1796 000000 AR1=0 ;EXPECTED RESULT IN AC
1797 031452 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1798 031453 003 13 0 00 030441 ER3 AC,30441 ;HIGH PRODUCT FAILED
1799 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1800 031454 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1801 031455 004 14 0 00 030442 ER4 AC+1,30442 ;LOW PRODUCT FAILED
1802 400000 000000 AEE=XX ;INITIAL C(E)
1803 031456 312 11 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED?
1804 031457 005 11 0 00 030443 ER5 E,30443 ;C(E) WAS CLOBBERED
1805 031460 321 15 0 00 031446 JUMPL AC+2,F30440 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0049
1806 000012 AC=12
1807 000010 E=<AC-2>&17
1808 SAVEAC (1,1)^
1809 031461 201 14 0 00 031461 MOVEI AC+2,. ;SAVE TEST PC
1810 031462 202 14 0 00 030051 MOVEM AC+2,TESTPC
1811 031463 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
1812 031464 202 14 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
1813 000000 XX=0
1814
1815 REPEAT ^D36, <
1816 ADR=ADR+1
1817 XX=XX+XX+1
1818 IFE <XX-1>,<XX=-2>
1819
1820 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
1821 MOP1 (\ADR,0,-1,XX,0,0)>
1822
1823 003045 ADR=ADR+1
1824 000001 XX=XX+XX+1
1825 777777 777776 IFE <XX-1>,<XX=-2>
1826
1827 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
1828 MOP1 (\ADR,0,-1,XX,0,0)^
1829 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1830 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1831 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1832 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1833
1834 000000 F30450: AA1=0 ;INITIAL C(AC)
1835 031465 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1836 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1837 031466 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1838 777777 777776 AEE=XX ;INITIAL C(E)
1839 031467 200 10 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1840 031470 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1841 000000 AR1=0 ;EXPECTED RESULT IN AC
1842 031471 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1843 031472 003 12 0 00 030451 ER3 AC,30451 ;HIGH PRODUCT FAILED
1844 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1845 031473 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1846 031474 004 13 0 00 030452 ER4 AC+1,30452 ;LOW PRODUCT FAILED
1847 777777 777776 AEE=XX ;INITIAL C(E)
1848 031475 312 10 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED?
1849 031476 005 10 0 00 030453 ER5 E,30453 ;C(E) WAS CLOBBERED
1850 031477 321 14 0 00 031465 JUMPL AC+2,F30450 ;LOOP ON ERROR SWITCH^
1851
1852 003046 ADR=ADR+1
1853 777777 777775 XX=XX+XX+1
1854 IFE <XX-1>,<XX=-2>
1855
1856 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
1857 MOP1 (\ADR,0,-1,XX,0,0)^
1858 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1859 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1860 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0050
1861 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1862
1863 000000 F30460: AA1=0 ;INITIAL C(AC)
1864 031500 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1865 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1866 031501 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1867 777777 777775 AEE=XX ;INITIAL C(E)
1868 031502 200 10 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1869 031503 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1870 000000 AR1=0 ;EXPECTED RESULT IN AC
1871 031504 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1872 031505 003 12 0 00 030461 ER3 AC,30461 ;HIGH PRODUCT FAILED
1873 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1874 031506 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1875 031507 004 13 0 00 030462 ER4 AC+1,30462 ;LOW PRODUCT FAILED
1876 777777 777775 AEE=XX ;INITIAL C(E)
1877 031510 312 10 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED?
1878 031511 005 10 0 00 030463 ER5 E,30463 ;C(E) WAS CLOBBERED
1879 031512 321 14 0 00 031500 JUMPL AC+2,F30460 ;LOOP ON ERROR SWITCH^
1880
1881 003047 ADR=ADR+1
1882 777777 777773 XX=XX+XX+1
1883 IFE <XX-1>,<XX=-2>
1884
1885 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
1886 MOP1 (\ADR,0,-1,XX,0,0)^
1887 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1888 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1889 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1890 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1891
1892 000000 F30470: AA1=0 ;INITIAL C(AC)
1893 031513 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1894 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1895 031514 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1896 777777 777773 AEE=XX ;INITIAL C(E)
1897 031515 200 10 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1898 031516 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1899 000000 AR1=0 ;EXPECTED RESULT IN AC
1900 031517 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1901 031520 003 12 0 00 030471 ER3 AC,30471 ;HIGH PRODUCT FAILED
1902 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1903 031521 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1904 031522 004 13 0 00 030472 ER4 AC+1,30472 ;LOW PRODUCT FAILED
1905 777777 777773 AEE=XX ;INITIAL C(E)
1906 031523 312 10 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED?
1907 031524 005 10 0 00 030473 ER5 E,30473 ;C(E) WAS CLOBBERED
1908 031525 321 14 0 00 031513 JUMPL AC+2,F30470 ;LOOP ON ERROR SWITCH^
1909
1910 003050 ADR=ADR+1
1911 777777 777767 XX=XX+XX+1
1912 IFE <XX-1>,<XX=-2>
1913
1914 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
1915 MOP1 (\ADR,0,-1,XX,0,0)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0051
1916 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1917 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1918 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1919 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1920
1921 000000 F30500: AA1=0 ;INITIAL C(AC)
1922 031526 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1923 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1924 031527 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1925 777777 777767 AEE=XX ;INITIAL C(E)
1926 031530 200 10 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1927 031531 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1928 000000 AR1=0 ;EXPECTED RESULT IN AC
1929 031532 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1930 031533 003 12 0 00 030501 ER3 AC,30501 ;HIGH PRODUCT FAILED
1931 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1932 031534 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1933 031535 004 13 0 00 030502 ER4 AC+1,30502 ;LOW PRODUCT FAILED
1934 777777 777767 AEE=XX ;INITIAL C(E)
1935 031536 312 10 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED?
1936 031537 005 10 0 00 030503 ER5 E,30503 ;C(E) WAS CLOBBERED
1937 031540 321 14 0 00 031526 JUMPL AC+2,F30500 ;LOOP ON ERROR SWITCH^
1938
1939 003051 ADR=ADR+1
1940 777777 777757 XX=XX+XX+1
1941 IFE <XX-1>,<XX=-2>
1942
1943 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
1944 MOP1 (\ADR,0,-1,XX,0,0)^
1945 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1946 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1947 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1948 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1949
1950 000000 F30510: AA1=0 ;INITIAL C(AC)
1951 031541 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1952 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1953 031542 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1954 777777 777757 AEE=XX ;INITIAL C(E)
1955 031543 200 10 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1956 031544 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1957 000000 AR1=0 ;EXPECTED RESULT IN AC
1958 031545 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1959 031546 003 12 0 00 030511 ER3 AC,30511 ;HIGH PRODUCT FAILED
1960 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1961 031547 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1962 031550 004 13 0 00 030512 ER4 AC+1,30512 ;LOW PRODUCT FAILED
1963 777777 777757 AEE=XX ;INITIAL C(E)
1964 031551 312 10 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED?
1965 031552 005 10 0 00 030513 ER5 E,30513 ;C(E) WAS CLOBBERED
1966 031553 321 14 0 00 031541 JUMPL AC+2,F30510 ;LOOP ON ERROR SWITCH^
1967
1968 003052 ADR=ADR+1
1969 777777 777737 XX=XX+XX+1
1970 IFE <XX-1>,<XX=-2>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0052
1971
1972 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
1973 MOP1 (\ADR,0,-1,XX,0,0)^
1974 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
1975 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
1976 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
1977 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
1978
1979 000000 F30520: AA1=0 ;INITIAL C(AC)
1980 031554 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
1981 777777 777777 AA2=-1 ;INITIAL C(AC+1)
1982 031555 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
1983 777777 777737 AEE=XX ;INITIAL C(E)
1984 031556 200 10 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
1985 031557 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
1986 000000 AR1=0 ;EXPECTED RESULT IN AC
1987 031560 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
1988 031561 003 12 0 00 030521 ER3 AC,30521 ;HIGH PRODUCT FAILED
1989 000000 AR2=0 ;EXPECTED RESULT IN AC+1
1990 031562 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
1991 031563 004 13 0 00 030522 ER4 AC+1,30522 ;LOW PRODUCT FAILED
1992 777777 777737 AEE=XX ;INITIAL C(E)
1993 031564 312 10 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED?
1994 031565 005 10 0 00 030523 ER5 E,30523 ;C(E) WAS CLOBBERED
1995 031566 321 14 0 00 031554 JUMPL AC+2,F30520 ;LOOP ON ERROR SWITCH^
1996
1997 003053 ADR=ADR+1
1998 777777 777677 XX=XX+XX+1
1999 IFE <XX-1>,<XX=-2>
2000
2001 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2002 MOP1 (\ADR,0,-1,XX,0,0)^
2003 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2004 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2005 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2006 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2007
2008 000000 F30530: AA1=0 ;INITIAL C(AC)
2009 031567 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2010 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2011 031570 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2012 777777 777677 AEE=XX ;INITIAL C(E)
2013 031571 200 10 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2014 031572 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2015 000000 AR1=0 ;EXPECTED RESULT IN AC
2016 031573 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2017 031574 003 12 0 00 030531 ER3 AC,30531 ;HIGH PRODUCT FAILED
2018 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2019 031575 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2020 031576 004 13 0 00 030532 ER4 AC+1,30532 ;LOW PRODUCT FAILED
2021 777777 777677 AEE=XX ;INITIAL C(E)
2022 031577 312 10 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED?
2023 031600 005 10 0 00 030533 ER5 E,30533 ;C(E) WAS CLOBBERED
2024 031601 321 14 0 00 031567 JUMPL AC+2,F30530 ;LOOP ON ERROR SWITCH^
2025
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0053
2026 003054 ADR=ADR+1
2027 777777 777577 XX=XX+XX+1
2028 IFE <XX-1>,<XX=-2>
2029
2030 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2031 MOP1 (\ADR,0,-1,XX,0,0)^
2032 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2033 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2034 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2035 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2036
2037 000000 F30540: AA1=0 ;INITIAL C(AC)
2038 031602 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2039 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2040 031603 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2041 777777 777577 AEE=XX ;INITIAL C(E)
2042 031604 200 10 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2043 031605 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2044 000000 AR1=0 ;EXPECTED RESULT IN AC
2045 031606 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2046 031607 003 12 0 00 030541 ER3 AC,30541 ;HIGH PRODUCT FAILED
2047 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2048 031610 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2049 031611 004 13 0 00 030542 ER4 AC+1,30542 ;LOW PRODUCT FAILED
2050 777777 777577 AEE=XX ;INITIAL C(E)
2051 031612 312 10 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED?
2052 031613 005 10 0 00 030543 ER5 E,30543 ;C(E) WAS CLOBBERED
2053 031614 321 14 0 00 031602 JUMPL AC+2,F30540 ;LOOP ON ERROR SWITCH^
2054
2055 003055 ADR=ADR+1
2056 777777 777377 XX=XX+XX+1
2057 IFE <XX-1>,<XX=-2>
2058
2059 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2060 MOP1 (\ADR,0,-1,XX,0,0)^
2061 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2062 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2063 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2064 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2065
2066 000000 F30550: AA1=0 ;INITIAL C(AC)
2067 031615 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2068 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2069 031616 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2070 777777 777377 AEE=XX ;INITIAL C(E)
2071 031617 200 10 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2072 031620 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2073 000000 AR1=0 ;EXPECTED RESULT IN AC
2074 031621 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2075 031622 003 12 0 00 030551 ER3 AC,30551 ;HIGH PRODUCT FAILED
2076 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2077 031623 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2078 031624 004 13 0 00 030552 ER4 AC+1,30552 ;LOW PRODUCT FAILED
2079 777777 777377 AEE=XX ;INITIAL C(E)
2080 031625 312 10 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0054
2081 031626 005 10 0 00 030553 ER5 E,30553 ;C(E) WAS CLOBBERED
2082 031627 321 14 0 00 031615 JUMPL AC+2,F30550 ;LOOP ON ERROR SWITCH^
2083
2084 003056 ADR=ADR+1
2085 777777 776777 XX=XX+XX+1
2086 IFE <XX-1>,<XX=-2>
2087
2088 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2089 MOP1 (\ADR,0,-1,XX,0,0)^
2090 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2091 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2092 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2093 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2094
2095 000000 F30560: AA1=0 ;INITIAL C(AC)
2096 031630 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2097 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2098 031631 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2099 777777 776777 AEE=XX ;INITIAL C(E)
2100 031632 200 10 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2101 031633 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2102 000000 AR1=0 ;EXPECTED RESULT IN AC
2103 031634 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2104 031635 003 12 0 00 030561 ER3 AC,30561 ;HIGH PRODUCT FAILED
2105 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2106 031636 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2107 031637 004 13 0 00 030562 ER4 AC+1,30562 ;LOW PRODUCT FAILED
2108 777777 776777 AEE=XX ;INITIAL C(E)
2109 031640 312 10 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED?
2110 031641 005 10 0 00 030563 ER5 E,30563 ;C(E) WAS CLOBBERED
2111 031642 321 14 0 00 031630 JUMPL AC+2,F30560 ;LOOP ON ERROR SWITCH^
2112
2113 003057 ADR=ADR+1
2114 777777 775777 XX=XX+XX+1
2115 IFE <XX-1>,<XX=-2>
2116
2117 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2118 MOP1 (\ADR,0,-1,XX,0,0)^
2119 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2120 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2121 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2122 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2123
2124 000000 F30570: AA1=0 ;INITIAL C(AC)
2125 031643 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2126 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2127 031644 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2128 777777 775777 AEE=XX ;INITIAL C(E)
2129 031645 200 10 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2130 031646 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2131 000000 AR1=0 ;EXPECTED RESULT IN AC
2132 031647 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2133 031650 003 12 0 00 030571 ER3 AC,30571 ;HIGH PRODUCT FAILED
2134 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2135 031651 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0055
2136 031652 004 13 0 00 030572 ER4 AC+1,30572 ;LOW PRODUCT FAILED
2137 777777 775777 AEE=XX ;INITIAL C(E)
2138 031653 312 10 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED?
2139 031654 005 10 0 00 030573 ER5 E,30573 ;C(E) WAS CLOBBERED
2140 031655 321 14 0 00 031643 JUMPL AC+2,F30570 ;LOOP ON ERROR SWITCH^
2141
2142 003060 ADR=ADR+1
2143 777777 773777 XX=XX+XX+1
2144 IFE <XX-1>,<XX=-2>
2145
2146 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2147 MOP1 (\ADR,0,-1,XX,0,0)^
2148 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2149 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2150 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2151 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2152
2153 000000 F30600: AA1=0 ;INITIAL C(AC)
2154 031656 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2155 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2156 031657 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2157 777777 773777 AEE=XX ;INITIAL C(E)
2158 031660 200 10 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2159 031661 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2160 000000 AR1=0 ;EXPECTED RESULT IN AC
2161 031662 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2162 031663 003 12 0 00 030601 ER3 AC,30601 ;HIGH PRODUCT FAILED
2163 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2164 031664 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2165 031665 004 13 0 00 030602 ER4 AC+1,30602 ;LOW PRODUCT FAILED
2166 777777 773777 AEE=XX ;INITIAL C(E)
2167 031666 312 10 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED?
2168 031667 005 10 0 00 030603 ER5 E,30603 ;C(E) WAS CLOBBERED
2169 031670 321 14 0 00 031656 JUMPL AC+2,F30600 ;LOOP ON ERROR SWITCH^
2170
2171 003061 ADR=ADR+1
2172 777777 767777 XX=XX+XX+1
2173 IFE <XX-1>,<XX=-2>
2174
2175 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2176 MOP1 (\ADR,0,-1,XX,0,0)^
2177 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2178 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2179 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2180 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2181
2182 000000 F30610: AA1=0 ;INITIAL C(AC)
2183 031671 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2184 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2185 031672 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2186 777777 767777 AEE=XX ;INITIAL C(E)
2187 031673 200 10 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2188 031674 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2189 000000 AR1=0 ;EXPECTED RESULT IN AC
2190 031675 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0056
2191 031676 003 12 0 00 030611 ER3 AC,30611 ;HIGH PRODUCT FAILED
2192 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2193 031677 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2194 031700 004 13 0 00 030612 ER4 AC+1,30612 ;LOW PRODUCT FAILED
2195 777777 767777 AEE=XX ;INITIAL C(E)
2196 031701 312 10 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED?
2197 031702 005 10 0 00 030613 ER5 E,30613 ;C(E) WAS CLOBBERED
2198 031703 321 14 0 00 031671 JUMPL AC+2,F30610 ;LOOP ON ERROR SWITCH^
2199
2200 003062 ADR=ADR+1
2201 777777 757777 XX=XX+XX+1
2202 IFE <XX-1>,<XX=-2>
2203
2204 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2205 MOP1 (\ADR,0,-1,XX,0,0)^
2206 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2207 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2208 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2209 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2210
2211 000000 F30620: AA1=0 ;INITIAL C(AC)
2212 031704 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2213 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2214 031705 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2215 777777 757777 AEE=XX ;INITIAL C(E)
2216 031706 200 10 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2217 031707 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2218 000000 AR1=0 ;EXPECTED RESULT IN AC
2219 031710 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2220 031711 003 12 0 00 030621 ER3 AC,30621 ;HIGH PRODUCT FAILED
2221 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2222 031712 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2223 031713 004 13 0 00 030622 ER4 AC+1,30622 ;LOW PRODUCT FAILED
2224 777777 757777 AEE=XX ;INITIAL C(E)
2225 031714 312 10 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED?
2226 031715 005 10 0 00 030623 ER5 E,30623 ;C(E) WAS CLOBBERED
2227 031716 321 14 0 00 031704 JUMPL AC+2,F30620 ;LOOP ON ERROR SWITCH^
2228
2229 003063 ADR=ADR+1
2230 777777 737777 XX=XX+XX+1
2231 IFE <XX-1>,<XX=-2>
2232
2233 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2234 MOP1 (\ADR,0,-1,XX,0,0)^
2235 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2236 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2237 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2238 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2239
2240 000000 F30630: AA1=0 ;INITIAL C(AC)
2241 031717 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2242 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2243 031720 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2244 777777 737777 AEE=XX ;INITIAL C(E)
2245 031721 200 10 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0057
2246 031722 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2247 000000 AR1=0 ;EXPECTED RESULT IN AC
2248 031723 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2249 031724 003 12 0 00 030631 ER3 AC,30631 ;HIGH PRODUCT FAILED
2250 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2251 031725 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2252 031726 004 13 0 00 030632 ER4 AC+1,30632 ;LOW PRODUCT FAILED
2253 777777 737777 AEE=XX ;INITIAL C(E)
2254 031727 312 10 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED?
2255 031730 005 10 0 00 030633 ER5 E,30633 ;C(E) WAS CLOBBERED
2256 031731 321 14 0 00 031717 JUMPL AC+2,F30630 ;LOOP ON ERROR SWITCH^
2257
2258 003064 ADR=ADR+1
2259 777777 677777 XX=XX+XX+1
2260 IFE <XX-1>,<XX=-2>
2261
2262 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2263 MOP1 (\ADR,0,-1,XX,0,0)^
2264 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2265 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2266 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2267 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2268
2269 000000 F30640: AA1=0 ;INITIAL C(AC)
2270 031732 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2271 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2272 031733 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2273 777777 677777 AEE=XX ;INITIAL C(E)
2274 031734 200 10 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2275 031735 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2276 000000 AR1=0 ;EXPECTED RESULT IN AC
2277 031736 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2278 031737 003 12 0 00 030641 ER3 AC,30641 ;HIGH PRODUCT FAILED
2279 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2280 031740 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2281 031741 004 13 0 00 030642 ER4 AC+1,30642 ;LOW PRODUCT FAILED
2282 777777 677777 AEE=XX ;INITIAL C(E)
2283 031742 312 10 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED?
2284 031743 005 10 0 00 030643 ER5 E,30643 ;C(E) WAS CLOBBERED
2285 031744 321 14 0 00 031732 JUMPL AC+2,F30640 ;LOOP ON ERROR SWITCH^
2286
2287 003065 ADR=ADR+1
2288 777777 577777 XX=XX+XX+1
2289 IFE <XX-1>,<XX=-2>
2290
2291 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2292 MOP1 (\ADR,0,-1,XX,0,0)^
2293 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2294 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2295 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2296 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2297
2298 000000 F30650: AA1=0 ;INITIAL C(AC)
2299 031745 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2300 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0058
2301 031746 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2302 777777 577777 AEE=XX ;INITIAL C(E)
2303 031747 200 10 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2304 031750 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2305 000000 AR1=0 ;EXPECTED RESULT IN AC
2306 031751 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2307 031752 003 12 0 00 030651 ER3 AC,30651 ;HIGH PRODUCT FAILED
2308 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2309 031753 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2310 031754 004 13 0 00 030652 ER4 AC+1,30652 ;LOW PRODUCT FAILED
2311 777777 577777 AEE=XX ;INITIAL C(E)
2312 031755 312 10 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED?
2313 031756 005 10 0 00 030653 ER5 E,30653 ;C(E) WAS CLOBBERED
2314 031757 321 14 0 00 031745 JUMPL AC+2,F30650 ;LOOP ON ERROR SWITCH^
2315
2316 003066 ADR=ADR+1
2317 777777 377777 XX=XX+XX+1
2318 IFE <XX-1>,<XX=-2>
2319
2320 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2321 MOP1 (\ADR,0,-1,XX,0,0)^
2322 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2323 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2324 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2325 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2326
2327 000000 F30660: AA1=0 ;INITIAL C(AC)
2328 031760 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2329 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2330 031761 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2331 777777 377777 AEE=XX ;INITIAL C(E)
2332 031762 200 10 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2333 031763 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2334 000000 AR1=0 ;EXPECTED RESULT IN AC
2335 031764 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2336 031765 003 12 0 00 030661 ER3 AC,30661 ;HIGH PRODUCT FAILED
2337 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2338 031766 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2339 031767 004 13 0 00 030662 ER4 AC+1,30662 ;LOW PRODUCT FAILED
2340 777777 377777 AEE=XX ;INITIAL C(E)
2341 031770 312 10 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED?
2342 031771 005 10 0 00 030663 ER5 E,30663 ;C(E) WAS CLOBBERED
2343 031772 321 14 0 00 031760 JUMPL AC+2,F30660 ;LOOP ON ERROR SWITCH^
2344
2345 003067 ADR=ADR+1
2346 777776 777777 XX=XX+XX+1
2347 IFE <XX-1>,<XX=-2>
2348
2349 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2350 MOP1 (\ADR,0,-1,XX,0,0)^
2351 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2352 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2353 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2354 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2355
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0059
2356 000000 F30670: AA1=0 ;INITIAL C(AC)
2357 031773 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2358 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2359 031774 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2360 777776 777777 AEE=XX ;INITIAL C(E)
2361 031775 200 10 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2362 031776 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2363 000000 AR1=0 ;EXPECTED RESULT IN AC
2364 031777 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2365 032000 003 12 0 00 030671 ER3 AC,30671 ;HIGH PRODUCT FAILED
2366 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2367 032001 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2368 032002 004 13 0 00 030672 ER4 AC+1,30672 ;LOW PRODUCT FAILED
2369 777776 777777 AEE=XX ;INITIAL C(E)
2370 032003 312 10 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED?
2371 032004 005 10 0 00 030673 ER5 E,30673 ;C(E) WAS CLOBBERED
2372 032005 321 14 0 00 031773 JUMPL AC+2,F30670 ;LOOP ON ERROR SWITCH^
2373
2374 003070 ADR=ADR+1
2375 777775 777777 XX=XX+XX+1
2376 IFE <XX-1>,<XX=-2>
2377
2378 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2379 MOP1 (\ADR,0,-1,XX,0,0)^
2380 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2381 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2382 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2383 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2384
2385 000000 F30700: AA1=0 ;INITIAL C(AC)
2386 032006 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2387 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2388 032007 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2389 777775 777777 AEE=XX ;INITIAL C(E)
2390 032010 200 10 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2391 032011 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2392 000000 AR1=0 ;EXPECTED RESULT IN AC
2393 032012 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2394 032013 003 12 0 00 030701 ER3 AC,30701 ;HIGH PRODUCT FAILED
2395 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2396 032014 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2397 032015 004 13 0 00 030702 ER4 AC+1,30702 ;LOW PRODUCT FAILED
2398 777775 777777 AEE=XX ;INITIAL C(E)
2399 032016 312 10 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED?
2400 032017 005 10 0 00 030703 ER5 E,30703 ;C(E) WAS CLOBBERED
2401 032020 321 14 0 00 032006 JUMPL AC+2,F30700 ;LOOP ON ERROR SWITCH^
2402
2403 003071 ADR=ADR+1
2404 777773 777777 XX=XX+XX+1
2405 IFE <XX-1>,<XX=-2>
2406
2407 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2408 MOP1 (\ADR,0,-1,XX,0,0)^
2409 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2410 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0060
2411 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2412 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2413
2414 000000 F30710: AA1=0 ;INITIAL C(AC)
2415 032021 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2416 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2417 032022 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2418 777773 777777 AEE=XX ;INITIAL C(E)
2419 032023 200 10 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2420 032024 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2421 000000 AR1=0 ;EXPECTED RESULT IN AC
2422 032025 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2423 032026 003 12 0 00 030711 ER3 AC,30711 ;HIGH PRODUCT FAILED
2424 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2425 032027 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2426 032030 004 13 0 00 030712 ER4 AC+1,30712 ;LOW PRODUCT FAILED
2427 777773 777777 AEE=XX ;INITIAL C(E)
2428 032031 312 10 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED?
2429 032032 005 10 0 00 030713 ER5 E,30713 ;C(E) WAS CLOBBERED
2430 032033 321 14 0 00 032021 JUMPL AC+2,F30710 ;LOOP ON ERROR SWITCH^
2431
2432 003072 ADR=ADR+1
2433 777767 777777 XX=XX+XX+1
2434 IFE <XX-1>,<XX=-2>
2435
2436 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2437 MOP1 (\ADR,0,-1,XX,0,0)^
2438 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2439 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2440 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2441 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2442
2443 000000 F30720: AA1=0 ;INITIAL C(AC)
2444 032034 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2445 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2446 032035 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2447 777767 777777 AEE=XX ;INITIAL C(E)
2448 032036 200 10 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2449 032037 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2450 000000 AR1=0 ;EXPECTED RESULT IN AC
2451 032040 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2452 032041 003 12 0 00 030721 ER3 AC,30721 ;HIGH PRODUCT FAILED
2453 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2454 032042 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2455 032043 004 13 0 00 030722 ER4 AC+1,30722 ;LOW PRODUCT FAILED
2456 777767 777777 AEE=XX ;INITIAL C(E)
2457 032044 312 10 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED?
2458 032045 005 10 0 00 030723 ER5 E,30723 ;C(E) WAS CLOBBERED
2459 032046 321 14 0 00 032034 JUMPL AC+2,F30720 ;LOOP ON ERROR SWITCH^
2460
2461 003073 ADR=ADR+1
2462 777757 777777 XX=XX+XX+1
2463 IFE <XX-1>,<XX=-2>
2464
2465 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0061
2466 MOP1 (\ADR,0,-1,XX,0,0)^
2467 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2468 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2469 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2470 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2471
2472 000000 F30730: AA1=0 ;INITIAL C(AC)
2473 032047 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2474 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2475 032050 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2476 777757 777777 AEE=XX ;INITIAL C(E)
2477 032051 200 10 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2478 032052 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2479 000000 AR1=0 ;EXPECTED RESULT IN AC
2480 032053 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2481 032054 003 12 0 00 030731 ER3 AC,30731 ;HIGH PRODUCT FAILED
2482 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2483 032055 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2484 032056 004 13 0 00 030732 ER4 AC+1,30732 ;LOW PRODUCT FAILED
2485 777757 777777 AEE=XX ;INITIAL C(E)
2486 032057 312 10 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED?
2487 032060 005 10 0 00 030733 ER5 E,30733 ;C(E) WAS CLOBBERED
2488 032061 321 14 0 00 032047 JUMPL AC+2,F30730 ;LOOP ON ERROR SWITCH^
2489
2490 003074 ADR=ADR+1
2491 777737 777777 XX=XX+XX+1
2492 IFE <XX-1>,<XX=-2>
2493
2494 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2495 MOP1 (\ADR,0,-1,XX,0,0)^
2496 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2497 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2498 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2499 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2500
2501 000000 F30740: AA1=0 ;INITIAL C(AC)
2502 032062 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2503 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2504 032063 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2505 777737 777777 AEE=XX ;INITIAL C(E)
2506 032064 200 10 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2507 032065 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2508 000000 AR1=0 ;EXPECTED RESULT IN AC
2509 032066 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2510 032067 003 12 0 00 030741 ER3 AC,30741 ;HIGH PRODUCT FAILED
2511 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2512 032070 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2513 032071 004 13 0 00 030742 ER4 AC+1,30742 ;LOW PRODUCT FAILED
2514 777737 777777 AEE=XX ;INITIAL C(E)
2515 032072 312 10 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED?
2516 032073 005 10 0 00 030743 ER5 E,30743 ;C(E) WAS CLOBBERED
2517 032074 321 14 0 00 032062 JUMPL AC+2,F30740 ;LOOP ON ERROR SWITCH^
2518
2519 003075 ADR=ADR+1
2520 777677 777777 XX=XX+XX+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0062
2521 IFE <XX-1>,<XX=-2>
2522
2523 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2524 MOP1 (\ADR,0,-1,XX,0,0)^
2525 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2526 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2527 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2528 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2529
2530 000000 F30750: AA1=0 ;INITIAL C(AC)
2531 032075 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2532 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2533 032076 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2534 777677 777777 AEE=XX ;INITIAL C(E)
2535 032077 200 10 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2536 032100 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2537 000000 AR1=0 ;EXPECTED RESULT IN AC
2538 032101 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2539 032102 003 12 0 00 030751 ER3 AC,30751 ;HIGH PRODUCT FAILED
2540 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2541 032103 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2542 032104 004 13 0 00 030752 ER4 AC+1,30752 ;LOW PRODUCT FAILED
2543 777677 777777 AEE=XX ;INITIAL C(E)
2544 032105 312 10 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED?
2545 032106 005 10 0 00 030753 ER5 E,30753 ;C(E) WAS CLOBBERED
2546 032107 321 14 0 00 032075 JUMPL AC+2,F30750 ;LOOP ON ERROR SWITCH^
2547
2548 003076 ADR=ADR+1
2549 777577 777777 XX=XX+XX+1
2550 IFE <XX-1>,<XX=-2>
2551
2552 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2553 MOP1 (\ADR,0,-1,XX,0,0)^
2554 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2555 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2556 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2557 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2558
2559 000000 F30760: AA1=0 ;INITIAL C(AC)
2560 032110 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2561 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2562 032111 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2563 777577 777777 AEE=XX ;INITIAL C(E)
2564 032112 200 10 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2565 032113 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2566 000000 AR1=0 ;EXPECTED RESULT IN AC
2567 032114 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2568 032115 003 12 0 00 030761 ER3 AC,30761 ;HIGH PRODUCT FAILED
2569 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2570 032116 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2571 032117 004 13 0 00 030762 ER4 AC+1,30762 ;LOW PRODUCT FAILED
2572 777577 777777 AEE=XX ;INITIAL C(E)
2573 032120 312 10 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED?
2574 032121 005 10 0 00 030763 ER5 E,30763 ;C(E) WAS CLOBBERED
2575 032122 321 14 0 00 032110 JUMPL AC+2,F30760 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0063
2576
2577 003077 ADR=ADR+1
2578 777377 777777 XX=XX+XX+1
2579 IFE <XX-1>,<XX=-2>
2580
2581 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2582 MOP1 (\ADR,0,-1,XX,0,0)^
2583 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2584 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2585 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2586 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2587
2588 000000 F30770: AA1=0 ;INITIAL C(AC)
2589 032123 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2590 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2591 032124 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2592 777377 777777 AEE=XX ;INITIAL C(E)
2593 032125 200 10 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2594 032126 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2595 000000 AR1=0 ;EXPECTED RESULT IN AC
2596 032127 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2597 032130 003 12 0 00 030771 ER3 AC,30771 ;HIGH PRODUCT FAILED
2598 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2599 032131 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2600 032132 004 13 0 00 030772 ER4 AC+1,30772 ;LOW PRODUCT FAILED
2601 777377 777777 AEE=XX ;INITIAL C(E)
2602 032133 312 10 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED?
2603 032134 005 10 0 00 030773 ER5 E,30773 ;C(E) WAS CLOBBERED
2604 032135 321 14 0 00 032123 JUMPL AC+2,F30770 ;LOOP ON ERROR SWITCH^
2605
2606 003100 ADR=ADR+1
2607 776777 777777 XX=XX+XX+1
2608 IFE <XX-1>,<XX=-2>
2609
2610 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2611 MOP1 (\ADR,0,-1,XX,0,0)^
2612 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2613 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2614 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2615 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2616
2617 000000 F31000: AA1=0 ;INITIAL C(AC)
2618 032136 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2619 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2620 032137 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2621 776777 777777 AEE=XX ;INITIAL C(E)
2622 032140 200 10 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2623 032141 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2624 000000 AR1=0 ;EXPECTED RESULT IN AC
2625 032142 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2626 032143 003 12 0 00 031001 ER3 AC,31001 ;HIGH PRODUCT FAILED
2627 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2628 032144 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2629 032145 004 13 0 00 031002 ER4 AC+1,31002 ;LOW PRODUCT FAILED
2630 776777 777777 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0064
2631 032146 312 10 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED?
2632 032147 005 10 0 00 031003 ER5 E,31003 ;C(E) WAS CLOBBERED
2633 032150 321 14 0 00 032136 JUMPL AC+2,F31000 ;LOOP ON ERROR SWITCH^
2634
2635 003101 ADR=ADR+1
2636 775777 777777 XX=XX+XX+1
2637 IFE <XX-1>,<XX=-2>
2638
2639 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2640 MOP1 (\ADR,0,-1,XX,0,0)^
2641 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2642 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2643 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2644 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2645
2646 000000 F31010: AA1=0 ;INITIAL C(AC)
2647 032151 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2648 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2649 032152 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2650 775777 777777 AEE=XX ;INITIAL C(E)
2651 032153 200 10 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2652 032154 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2653 000000 AR1=0 ;EXPECTED RESULT IN AC
2654 032155 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2655 032156 003 12 0 00 031011 ER3 AC,31011 ;HIGH PRODUCT FAILED
2656 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2657 032157 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2658 032160 004 13 0 00 031012 ER4 AC+1,31012 ;LOW PRODUCT FAILED
2659 775777 777777 AEE=XX ;INITIAL C(E)
2660 032161 312 10 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED?
2661 032162 005 10 0 00 031013 ER5 E,31013 ;C(E) WAS CLOBBERED
2662 032163 321 14 0 00 032151 JUMPL AC+2,F31010 ;LOOP ON ERROR SWITCH^
2663
2664 003102 ADR=ADR+1
2665 773777 777777 XX=XX+XX+1
2666 IFE <XX-1>,<XX=-2>
2667
2668 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2669 MOP1 (\ADR,0,-1,XX,0,0)^
2670 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2671 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2672 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2673 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2674
2675 000000 F31020: AA1=0 ;INITIAL C(AC)
2676 032164 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2677 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2678 032165 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2679 773777 777777 AEE=XX ;INITIAL C(E)
2680 032166 200 10 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2681 032167 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2682 000000 AR1=0 ;EXPECTED RESULT IN AC
2683 032170 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2684 032171 003 12 0 00 031021 ER3 AC,31021 ;HIGH PRODUCT FAILED
2685 000000 AR2=0 ;EXPECTED RESULT IN AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0065
2686 032172 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2687 032173 004 13 0 00 031022 ER4 AC+1,31022 ;LOW PRODUCT FAILED
2688 773777 777777 AEE=XX ;INITIAL C(E)
2689 032174 312 10 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED?
2690 032175 005 10 0 00 031023 ER5 E,31023 ;C(E) WAS CLOBBERED
2691 032176 321 14 0 00 032164 JUMPL AC+2,F31020 ;LOOP ON ERROR SWITCH^
2692
2693 003103 ADR=ADR+1
2694 767777 777777 XX=XX+XX+1
2695 IFE <XX-1>,<XX=-2>
2696
2697 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2698 MOP1 (\ADR,0,-1,XX,0,0)^
2699 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2700 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2701 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2702 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2703
2704 000000 F31030: AA1=0 ;INITIAL C(AC)
2705 032177 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2706 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2707 032200 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2708 767777 777777 AEE=XX ;INITIAL C(E)
2709 032201 200 10 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2710 032202 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2711 000000 AR1=0 ;EXPECTED RESULT IN AC
2712 032203 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2713 032204 003 12 0 00 031031 ER3 AC,31031 ;HIGH PRODUCT FAILED
2714 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2715 032205 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2716 032206 004 13 0 00 031032 ER4 AC+1,31032 ;LOW PRODUCT FAILED
2717 767777 777777 AEE=XX ;INITIAL C(E)
2718 032207 312 10 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED?
2719 032210 005 10 0 00 031033 ER5 E,31033 ;C(E) WAS CLOBBERED
2720 032211 321 14 0 00 032177 JUMPL AC+2,F31030 ;LOOP ON ERROR SWITCH^
2721
2722 003104 ADR=ADR+1
2723 757777 777777 XX=XX+XX+1
2724 IFE <XX-1>,<XX=-2>
2725
2726 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2727 MOP1 (\ADR,0,-1,XX,0,0)^
2728 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2729 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2730 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2731 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2732
2733 000000 F31040: AA1=0 ;INITIAL C(AC)
2734 032212 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2735 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2736 032213 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2737 757777 777777 AEE=XX ;INITIAL C(E)
2738 032214 200 10 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2739 032215 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2740 000000 AR1=0 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0066
2741 032216 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2742 032217 003 12 0 00 031041 ER3 AC,31041 ;HIGH PRODUCT FAILED
2743 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2744 032220 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2745 032221 004 13 0 00 031042 ER4 AC+1,31042 ;LOW PRODUCT FAILED
2746 757777 777777 AEE=XX ;INITIAL C(E)
2747 032222 312 10 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED?
2748 032223 005 10 0 00 031043 ER5 E,31043 ;C(E) WAS CLOBBERED
2749 032224 321 14 0 00 032212 JUMPL AC+2,F31040 ;LOOP ON ERROR SWITCH^
2750
2751 003105 ADR=ADR+1
2752 737777 777777 XX=XX+XX+1
2753 IFE <XX-1>,<XX=-2>
2754
2755 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2756 MOP1 (\ADR,0,-1,XX,0,0)^
2757 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2758 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2759 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2760 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2761
2762 000000 F31050: AA1=0 ;INITIAL C(AC)
2763 032225 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2764 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2765 032226 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2766 737777 777777 AEE=XX ;INITIAL C(E)
2767 032227 200 10 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2768 032230 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2769 000000 AR1=0 ;EXPECTED RESULT IN AC
2770 032231 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2771 032232 003 12 0 00 031051 ER3 AC,31051 ;HIGH PRODUCT FAILED
2772 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2773 032233 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2774 032234 004 13 0 00 031052 ER4 AC+1,31052 ;LOW PRODUCT FAILED
2775 737777 777777 AEE=XX ;INITIAL C(E)
2776 032235 312 10 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED?
2777 032236 005 10 0 00 031053 ER5 E,31053 ;C(E) WAS CLOBBERED
2778 032237 321 14 0 00 032225 JUMPL AC+2,F31050 ;LOOP ON ERROR SWITCH^
2779
2780 003106 ADR=ADR+1
2781 677777 777777 XX=XX+XX+1
2782 IFE <XX-1>,<XX=-2>
2783
2784 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2785 MOP1 (\ADR,0,-1,XX,0,0)^
2786 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2787 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2788 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2789 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2790
2791 000000 F31060: AA1=0 ;INITIAL C(AC)
2792 032240 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2793 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2794 032241 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2795 677777 777777 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0067
2796 032242 200 10 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2797 032243 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2798 000000 AR1=0 ;EXPECTED RESULT IN AC
2799 032244 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2800 032245 003 12 0 00 031061 ER3 AC,31061 ;HIGH PRODUCT FAILED
2801 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2802 032246 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2803 032247 004 13 0 00 031062 ER4 AC+1,31062 ;LOW PRODUCT FAILED
2804 677777 777777 AEE=XX ;INITIAL C(E)
2805 032250 312 10 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED?
2806 032251 005 10 0 00 031063 ER5 E,31063 ;C(E) WAS CLOBBERED
2807 032252 321 14 0 00 032240 JUMPL AC+2,F31060 ;LOOP ON ERROR SWITCH^
2808
2809 003107 ADR=ADR+1
2810 577777 777777 XX=XX+XX+1
2811 IFE <XX-1>,<XX=-2>
2812
2813 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2814 MOP1 (\ADR,0,-1,XX,0,0)^
2815 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2816 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2817 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2818 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2819
2820 000000 F31070: AA1=0 ;INITIAL C(AC)
2821 032253 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2822 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2823 032254 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2824 577777 777777 AEE=XX ;INITIAL C(E)
2825 032255 200 10 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2826 032256 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2827 000000 AR1=0 ;EXPECTED RESULT IN AC
2828 032257 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2829 032260 003 12 0 00 031071 ER3 AC,31071 ;HIGH PRODUCT FAILED
2830 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2831 032261 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2832 032262 004 13 0 00 031072 ER4 AC+1,31072 ;LOW PRODUCT FAILED
2833 577777 777777 AEE=XX ;INITIAL C(E)
2834 032263 312 10 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED?
2835 032264 005 10 0 00 031073 ER5 E,31073 ;C(E) WAS CLOBBERED
2836 032265 321 14 0 00 032253 JUMPL AC+2,F31070 ;LOOP ON ERROR SWITCH^
2837
2838 003110 ADR=ADR+1
2839 377777 777777 XX=XX+XX+1
2840 IFE <XX-1>,<XX=-2>
2841
2842 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
2843 MOP1 (\ADR,0,-1,XX,0,0)^
2844 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2845 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2846 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
2847 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2848
2849 000000 F31100: AA1=0 ;INITIAL C(AC)
2850 032266 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0068
2851 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2852 032267 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2853 377777 777777 AEE=XX ;INITIAL C(E)
2854 032270 200 10 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
2855 032271 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2856 000000 AR1=0 ;EXPECTED RESULT IN AC
2857 032272 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2858 032273 003 12 0 00 031101 ER3 AC,31101 ;HIGH PRODUCT FAILED
2859 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2860 032274 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2861 032275 004 13 0 00 031102 ER4 AC+1,31102 ;LOW PRODUCT FAILED
2862 377777 777777 AEE=XX ;INITIAL C(E)
2863 032276 312 10 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED?
2864 032277 005 10 0 00 031103 ER5 E,31103 ;C(E) WAS CLOBBERED
2865 032300 321 14 0 00 032266 JUMPL AC+2,F31100 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0069
2866 003111 ADR=ADR+1
2867 000014 AC=14
2868 000012 E=<AC-2>&17
2869 SAVEAC (1,1)^
2870 032301 201 16 0 00 032301 MOVEI AC+2,. ;SAVE TEST PC
2871 032302 202 16 0 00 030051 MOVEM AC+2,TESTPC
2872 032303 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
2873 032304 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
2874
2875 ;MULTIPLY -1 BY 0 TO GET PRODUCT OF 0
2876 MOP1 (\ADR,0,-1,-1,0,0)^
2877 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
2878 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2879 ;AND E AGAINST [0], [0] AND [-1] RESPECTIVELY.
2880 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2881
2882 000000 F31110: AA1=0 ;INITIAL C(AC)
2883 032305 200 14 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER)
2884 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2885 032306 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2886 777777 777777 AEE=-1 ;INITIAL C(E)
2887 032307 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
2888 032310 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2889 000000 AR1=0 ;EXPECTED RESULT IN AC
2890 032311 312 14 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2891 032312 003 14 0 00 031111 ER3 AC,31111 ;HIGH PRODUCT FAILED
2892 000000 AR2=0 ;EXPECTED RESULT IN AC+1
2893 032313 312 15 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
2894 032314 004 15 0 00 031112 ER4 AC+1,31112 ;LOW PRODUCT FAILED
2895 777777 777777 AEE=-1 ;INITIAL C(E)
2896 032315 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
2897 032316 005 12 0 00 031113 ER5 E,31113 ;C(E) WAS CLOBBERED
2898 032317 321 16 0 00 032305 JUMPL AC+2,F31110 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0070
2899 SUBTTL DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM
2900
2901 000013 AC=13
2902 000011 E=<AC-2>&17
2903 SAVEAC (1,1)^
2904 032320 201 15 0 00 032320 MOVEI AC+2,. ;SAVE TEST PC
2905 032321 202 15 0 00 030051 MOVEM AC+2,TESTPC
2906 032322 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
2907 032323 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
2908
2909 777777 777777 XX=-1
2910
2911 ;MULTIPLICAND=1
2912 REPEAT ^D16,<
2913 ;TEST MULTIPLICATION ALGORITHM
2914 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
2915 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
2916 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
2917 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
2918 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
2919 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
2920 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
2921 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
2922 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
2923 ;OF C(E).
2924
2925 ADR=ADR+1
2926 XX=XX+1
2927
2928 MOP1 (\ADR,XX,-1,1,0,XX)>
2929
2930 ;TEST MULTIPLICATION ALGORITHM
2931 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
2932 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
2933 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
2934 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
2935 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
2936 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
2937 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
2938 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
2939 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
2940 ;OF C(E).
2941
2942 003112 ADR=ADR+1
2943 000000 XX=XX+1
2944
2945 MOP1 (\ADR,XX,-1,1,0,XX)^
2946 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
2947 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2948 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
2949 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2950
2951 000000 F31120: AA1=XX ;INITIAL C(AC)
2952 032324 200 13 0 00 043776 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2953 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0071
2954 032325 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2955 000001 AEE=1 ;INITIAL C(E)
2956 032326 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
2957 032327 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2958 000000 AR1=0 ;EXPECTED RESULT IN AC
2959 032330 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2960 032331 003 13 0 00 031121 ER3 AC,31121 ;HIGH PRODUCT FAILED
2961 000000 AR2=XX ;EXPECTED RESULT IN AC+1
2962 032332 312 14 0 00 043776 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
2963 032333 004 14 0 00 031122 ER4 AC+1,31122 ;LOW PRODUCT FAILED
2964 000001 AEE=1 ;INITIAL C(E)
2965 032334 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
2966 032335 005 11 0 00 031123 ER5 E,31123 ;C(E) WAS CLOBBERED
2967 032336 321 15 0 00 032324 JUMPL AC+2,F31120 ;LOOP ON ERROR SWITCH^
2968
2969 ;TEST MULTIPLICATION ALGORITHM
2970 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
2971 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
2972 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
2973 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
2974 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
2975 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
2976 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
2977 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
2978 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
2979 ;OF C(E).
2980
2981 003113 ADR=ADR+1
2982 000001 XX=XX+1
2983
2984 MOP1 (\ADR,XX,-1,1,0,XX)^
2985 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
2986 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
2987 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
2988 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
2989
2990 000001 F31130: AA1=XX ;INITIAL C(AC)
2991 032337 200 13 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
2992 777777 777777 AA2=-1 ;INITIAL C(AC+1)
2993 032340 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
2994 000001 AEE=1 ;INITIAL C(E)
2995 032341 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
2996 032342 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
2997 000000 AR1=0 ;EXPECTED RESULT IN AC
2998 032343 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
2999 032344 003 13 0 00 031131 ER3 AC,31131 ;HIGH PRODUCT FAILED
3000 000001 AR2=XX ;EXPECTED RESULT IN AC+1
3001 032345 312 14 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3002 032346 004 14 0 00 031132 ER4 AC+1,31132 ;LOW PRODUCT FAILED
3003 000001 AEE=1 ;INITIAL C(E)
3004 032347 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3005 032350 005 11 0 00 031133 ER5 E,31133 ;C(E) WAS CLOBBERED
3006 032351 321 15 0 00 032337 JUMPL AC+2,F31130 ;LOOP ON ERROR SWITCH^
3007
3008 ;TEST MULTIPLICATION ALGORITHM
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0072
3009 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3010 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3011 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3012 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3013 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3014 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3015 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3016 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3017 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3018 ;OF C(E).
3019
3020 003114 ADR=ADR+1
3021 000002 XX=XX+1
3022
3023 MOP1 (\ADR,XX,-1,1,0,XX)^
3024 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3025 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3026 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3027 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3028
3029 000002 F31140: AA1=XX ;INITIAL C(AC)
3030 032352 200 13 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3031 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3032 032353 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3033 000001 AEE=1 ;INITIAL C(E)
3034 032354 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3035 032355 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3036 000000 AR1=0 ;EXPECTED RESULT IN AC
3037 032356 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3038 032357 003 13 0 00 031141 ER3 AC,31141 ;HIGH PRODUCT FAILED
3039 000002 AR2=XX ;EXPECTED RESULT IN AC+1
3040 032360 312 14 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3041 032361 004 14 0 00 031142 ER4 AC+1,31142 ;LOW PRODUCT FAILED
3042 000001 AEE=1 ;INITIAL C(E)
3043 032362 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3044 032363 005 11 0 00 031143 ER5 E,31143 ;C(E) WAS CLOBBERED
3045 032364 321 15 0 00 032352 JUMPL AC+2,F31140 ;LOOP ON ERROR SWITCH^
3046
3047 ;TEST MULTIPLICATION ALGORITHM
3048 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3049 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3050 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3051 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3052 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3053 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3054 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3055 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3056 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3057 ;OF C(E).
3058
3059 003115 ADR=ADR+1
3060 000003 XX=XX+1
3061
3062 MOP1 (\ADR,XX,-1,1,0,XX)^
3063 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0073
3064 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3065 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3066 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3067
3068 000003 F31150: AA1=XX ;INITIAL C(AC)
3069 032365 200 13 0 00 044110 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3070 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3071 032366 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3072 000001 AEE=1 ;INITIAL C(E)
3073 032367 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3074 032370 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3075 000000 AR1=0 ;EXPECTED RESULT IN AC
3076 032371 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3077 032372 003 13 0 00 031151 ER3 AC,31151 ;HIGH PRODUCT FAILED
3078 000003 AR2=XX ;EXPECTED RESULT IN AC+1
3079 032373 312 14 0 00 044110 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3080 032374 004 14 0 00 031152 ER4 AC+1,31152 ;LOW PRODUCT FAILED
3081 000001 AEE=1 ;INITIAL C(E)
3082 032375 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3083 032376 005 11 0 00 031153 ER5 E,31153 ;C(E) WAS CLOBBERED
3084 032377 321 15 0 00 032365 JUMPL AC+2,F31150 ;LOOP ON ERROR SWITCH^
3085
3086 ;TEST MULTIPLICATION ALGORITHM
3087 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3088 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3089 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3090 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3091 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3092 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3093 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3094 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3095 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3096 ;OF C(E).
3097
3098 003116 ADR=ADR+1
3099 000004 XX=XX+1
3100
3101 MOP1 (\ADR,XX,-1,1,0,XX)^
3102 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3103 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3104 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3105 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3106
3107 000004 F31160: AA1=XX ;INITIAL C(AC)
3108 032400 200 13 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3109 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3110 032401 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3111 000001 AEE=1 ;INITIAL C(E)
3112 032402 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3113 032403 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3114 000000 AR1=0 ;EXPECTED RESULT IN AC
3115 032404 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3116 032405 003 13 0 00 031161 ER3 AC,31161 ;HIGH PRODUCT FAILED
3117 000004 AR2=XX ;EXPECTED RESULT IN AC+1
3118 032406 312 14 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0074
3119 032407 004 14 0 00 031162 ER4 AC+1,31162 ;LOW PRODUCT FAILED
3120 000001 AEE=1 ;INITIAL C(E)
3121 032410 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3122 032411 005 11 0 00 031163 ER5 E,31163 ;C(E) WAS CLOBBERED
3123 032412 321 15 0 00 032400 JUMPL AC+2,F31160 ;LOOP ON ERROR SWITCH^
3124
3125 ;TEST MULTIPLICATION ALGORITHM
3126 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3127 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3128 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3129 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3130 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3131 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3132 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3133 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3134 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3135 ;OF C(E).
3136
3137 003117 ADR=ADR+1
3138 000005 XX=XX+1
3139
3140 MOP1 (\ADR,XX,-1,1,0,XX)^
3141 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3142 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3143 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3144 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3145
3146 000005 F31170: AA1=XX ;INITIAL C(AC)
3147 032413 200 13 0 00 044111 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3148 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3149 032414 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3150 000001 AEE=1 ;INITIAL C(E)
3151 032415 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3152 032416 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3153 000000 AR1=0 ;EXPECTED RESULT IN AC
3154 032417 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3155 032420 003 13 0 00 031171 ER3 AC,31171 ;HIGH PRODUCT FAILED
3156 000005 AR2=XX ;EXPECTED RESULT IN AC+1
3157 032421 312 14 0 00 044111 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3158 032422 004 14 0 00 031172 ER4 AC+1,31172 ;LOW PRODUCT FAILED
3159 000001 AEE=1 ;INITIAL C(E)
3160 032423 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3161 032424 005 11 0 00 031173 ER5 E,31173 ;C(E) WAS CLOBBERED
3162 032425 321 15 0 00 032413 JUMPL AC+2,F31170 ;LOOP ON ERROR SWITCH^
3163
3164 ;TEST MULTIPLICATION ALGORITHM
3165 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3166 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3167 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3168 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3169 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3170 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3171 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3172 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3173 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0075
3174 ;OF C(E).
3175
3176 003120 ADR=ADR+1
3177 000006 XX=XX+1
3178
3179 MOP1 (\ADR,XX,-1,1,0,XX)^
3180 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3181 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3182 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3183 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3184
3185 000006 F31200: AA1=XX ;INITIAL C(AC)
3186 032426 200 13 0 00 044112 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3187 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3188 032427 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3189 000001 AEE=1 ;INITIAL C(E)
3190 032430 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3191 032431 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3192 000000 AR1=0 ;EXPECTED RESULT IN AC
3193 032432 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3194 032433 003 13 0 00 031201 ER3 AC,31201 ;HIGH PRODUCT FAILED
3195 000006 AR2=XX ;EXPECTED RESULT IN AC+1
3196 032434 312 14 0 00 044112 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3197 032435 004 14 0 00 031202 ER4 AC+1,31202 ;LOW PRODUCT FAILED
3198 000001 AEE=1 ;INITIAL C(E)
3199 032436 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3200 032437 005 11 0 00 031203 ER5 E,31203 ;C(E) WAS CLOBBERED
3201 032440 321 15 0 00 032426 JUMPL AC+2,F31200 ;LOOP ON ERROR SWITCH^
3202
3203 ;TEST MULTIPLICATION ALGORITHM
3204 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3205 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3206 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3207 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3208 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3209 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3210 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3211 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3212 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3213 ;OF C(E).
3214
3215 003121 ADR=ADR+1
3216 000007 XX=XX+1
3217
3218 MOP1 (\ADR,XX,-1,1,0,XX)^
3219 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3220 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3221 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3222 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3223
3224 000007 F31210: AA1=XX ;INITIAL C(AC)
3225 032441 200 13 0 00 044113 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3226 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3227 032442 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3228 000001 AEE=1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0076
3229 032443 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3230 032444 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3231 000000 AR1=0 ;EXPECTED RESULT IN AC
3232 032445 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3233 032446 003 13 0 00 031211 ER3 AC,31211 ;HIGH PRODUCT FAILED
3234 000007 AR2=XX ;EXPECTED RESULT IN AC+1
3235 032447 312 14 0 00 044113 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3236 032450 004 14 0 00 031212 ER4 AC+1,31212 ;LOW PRODUCT FAILED
3237 000001 AEE=1 ;INITIAL C(E)
3238 032451 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3239 032452 005 11 0 00 031213 ER5 E,31213 ;C(E) WAS CLOBBERED
3240 032453 321 15 0 00 032441 JUMPL AC+2,F31210 ;LOOP ON ERROR SWITCH^
3241
3242 ;TEST MULTIPLICATION ALGORITHM
3243 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3244 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3245 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3246 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3247 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3248 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3249 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3250 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3251 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3252 ;OF C(E).
3253
3254 003122 ADR=ADR+1
3255 000010 XX=XX+1
3256
3257 MOP1 (\ADR,XX,-1,1,0,XX)^
3258 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3259 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3260 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3261 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3262
3263 000010 F31220: AA1=XX ;INITIAL C(AC)
3264 032454 200 13 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3265 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3266 032455 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3267 000001 AEE=1 ;INITIAL C(E)
3268 032456 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3269 032457 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3270 000000 AR1=0 ;EXPECTED RESULT IN AC
3271 032460 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3272 032461 003 13 0 00 031221 ER3 AC,31221 ;HIGH PRODUCT FAILED
3273 000010 AR2=XX ;EXPECTED RESULT IN AC+1
3274 032462 312 14 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3275 032463 004 14 0 00 031222 ER4 AC+1,31222 ;LOW PRODUCT FAILED
3276 000001 AEE=1 ;INITIAL C(E)
3277 032464 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3278 032465 005 11 0 00 031223 ER5 E,31223 ;C(E) WAS CLOBBERED
3279 032466 321 15 0 00 032454 JUMPL AC+2,F31220 ;LOOP ON ERROR SWITCH^
3280
3281 ;TEST MULTIPLICATION ALGORITHM
3282 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3283 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0077
3284 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3285 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3286 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3287 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3288 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3289 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3290 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3291 ;OF C(E).
3292
3293 003123 ADR=ADR+1
3294 000011 XX=XX+1
3295
3296 MOP1 (\ADR,XX,-1,1,0,XX)^
3297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3298 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3299 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3301
3302 000011 F31230: AA1=XX ;INITIAL C(AC)
3303 032467 200 13 0 00 044114 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3304 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3305 032470 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3306 000001 AEE=1 ;INITIAL C(E)
3307 032471 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3308 032472 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3309 000000 AR1=0 ;EXPECTED RESULT IN AC
3310 032473 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3311 032474 003 13 0 00 031231 ER3 AC,31231 ;HIGH PRODUCT FAILED
3312 000011 AR2=XX ;EXPECTED RESULT IN AC+1
3313 032475 312 14 0 00 044114 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3314 032476 004 14 0 00 031232 ER4 AC+1,31232 ;LOW PRODUCT FAILED
3315 000001 AEE=1 ;INITIAL C(E)
3316 032477 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3317 032500 005 11 0 00 031233 ER5 E,31233 ;C(E) WAS CLOBBERED
3318 032501 321 15 0 00 032467 JUMPL AC+2,F31230 ;LOOP ON ERROR SWITCH^
3319
3320 ;TEST MULTIPLICATION ALGORITHM
3321 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3322 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3323 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3324 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3325 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3326 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3327 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3328 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3329 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3330 ;OF C(E).
3331
3332 003124 ADR=ADR+1
3333 000012 XX=XX+1
3334
3335 MOP1 (\ADR,XX,-1,1,0,XX)^
3336 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3337 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3338 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0078
3339 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3340
3341 000012 F31240: AA1=XX ;INITIAL C(AC)
3342 032502 200 13 0 00 044115 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3343 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3344 032503 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3345 000001 AEE=1 ;INITIAL C(E)
3346 032504 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3347 032505 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3348 000000 AR1=0 ;EXPECTED RESULT IN AC
3349 032506 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3350 032507 003 13 0 00 031241 ER3 AC,31241 ;HIGH PRODUCT FAILED
3351 000012 AR2=XX ;EXPECTED RESULT IN AC+1
3352 032510 312 14 0 00 044115 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3353 032511 004 14 0 00 031242 ER4 AC+1,31242 ;LOW PRODUCT FAILED
3354 000001 AEE=1 ;INITIAL C(E)
3355 032512 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3356 032513 005 11 0 00 031243 ER5 E,31243 ;C(E) WAS CLOBBERED
3357 032514 321 15 0 00 032502 JUMPL AC+2,F31240 ;LOOP ON ERROR SWITCH^
3358
3359 ;TEST MULTIPLICATION ALGORITHM
3360 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3361 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3362 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3363 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3364 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3365 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3366 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3367 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3368 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3369 ;OF C(E).
3370
3371 003125 ADR=ADR+1
3372 000013 XX=XX+1
3373
3374 MOP1 (\ADR,XX,-1,1,0,XX)^
3375 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3376 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3377 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3378 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3379
3380 000013 F31250: AA1=XX ;INITIAL C(AC)
3381 032515 200 13 0 00 044116 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3382 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3383 032516 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3384 000001 AEE=1 ;INITIAL C(E)
3385 032517 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3386 032520 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3387 000000 AR1=0 ;EXPECTED RESULT IN AC
3388 032521 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3389 032522 003 13 0 00 031251 ER3 AC,31251 ;HIGH PRODUCT FAILED
3390 000013 AR2=XX ;EXPECTED RESULT IN AC+1
3391 032523 312 14 0 00 044116 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3392 032524 004 14 0 00 031252 ER4 AC+1,31252 ;LOW PRODUCT FAILED
3393 000001 AEE=1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0079
3394 032525 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3395 032526 005 11 0 00 031253 ER5 E,31253 ;C(E) WAS CLOBBERED
3396 032527 321 15 0 00 032515 JUMPL AC+2,F31250 ;LOOP ON ERROR SWITCH^
3397
3398 ;TEST MULTIPLICATION ALGORITHM
3399 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3400 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3401 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3402 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3403 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3404 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3405 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3406 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3407 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3408 ;OF C(E).
3409
3410 003126 ADR=ADR+1
3411 000014 XX=XX+1
3412
3413 MOP1 (\ADR,XX,-1,1,0,XX)^
3414 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3415 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3416 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3417 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3418
3419 000014 F31260: AA1=XX ;INITIAL C(AC)
3420 032530 200 13 0 00 044117 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3421 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3422 032531 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3423 000001 AEE=1 ;INITIAL C(E)
3424 032532 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3425 032533 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3426 000000 AR1=0 ;EXPECTED RESULT IN AC
3427 032534 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3428 032535 003 13 0 00 031261 ER3 AC,31261 ;HIGH PRODUCT FAILED
3429 000014 AR2=XX ;EXPECTED RESULT IN AC+1
3430 032536 312 14 0 00 044117 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3431 032537 004 14 0 00 031262 ER4 AC+1,31262 ;LOW PRODUCT FAILED
3432 000001 AEE=1 ;INITIAL C(E)
3433 032540 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3434 032541 005 11 0 00 031263 ER5 E,31263 ;C(E) WAS CLOBBERED
3435 032542 321 15 0 00 032530 JUMPL AC+2,F31260 ;LOOP ON ERROR SWITCH^
3436
3437 ;TEST MULTIPLICATION ALGORITHM
3438 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3439 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3440 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3441 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3442 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3443 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3444 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3445 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3446 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3447 ;OF C(E).
3448
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0080
3449 003127 ADR=ADR+1
3450 000015 XX=XX+1
3451
3452 MOP1 (\ADR,XX,-1,1,0,XX)^
3453 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3454 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3455 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3456 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3457
3458 000015 F31270: AA1=XX ;INITIAL C(AC)
3459 032543 200 13 0 00 044120 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3460 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3461 032544 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3462 000001 AEE=1 ;INITIAL C(E)
3463 032545 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3464 032546 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3465 000000 AR1=0 ;EXPECTED RESULT IN AC
3466 032547 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3467 032550 003 13 0 00 031271 ER3 AC,31271 ;HIGH PRODUCT FAILED
3468 000015 AR2=XX ;EXPECTED RESULT IN AC+1
3469 032551 312 14 0 00 044120 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3470 032552 004 14 0 00 031272 ER4 AC+1,31272 ;LOW PRODUCT FAILED
3471 000001 AEE=1 ;INITIAL C(E)
3472 032553 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3473 032554 005 11 0 00 031273 ER5 E,31273 ;C(E) WAS CLOBBERED
3474 032555 321 15 0 00 032543 JUMPL AC+2,F31270 ;LOOP ON ERROR SWITCH^
3475
3476 ;TEST MULTIPLICATION ALGORITHM
3477 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3478 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3479 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3480 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3481 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3482 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3483 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3484 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3485 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3486 ;OF C(E).
3487
3488 003130 ADR=ADR+1
3489 000016 XX=XX+1
3490
3491 MOP1 (\ADR,XX,-1,1,0,XX)^
3492 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3493 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3494 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3495 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3496
3497 000016 F31300: AA1=XX ;INITIAL C(AC)
3498 032556 200 13 0 00 044121 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3499 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3500 032557 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3501 000001 AEE=1 ;INITIAL C(E)
3502 032560 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3503 032561 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0081
3504 000000 AR1=0 ;EXPECTED RESULT IN AC
3505 032562 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3506 032563 003 13 0 00 031301 ER3 AC,31301 ;HIGH PRODUCT FAILED
3507 000016 AR2=XX ;EXPECTED RESULT IN AC+1
3508 032564 312 14 0 00 044121 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3509 032565 004 14 0 00 031302 ER4 AC+1,31302 ;LOW PRODUCT FAILED
3510 000001 AEE=1 ;INITIAL C(E)
3511 032566 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3512 032567 005 11 0 00 031303 ER5 E,31303 ;C(E) WAS CLOBBERED
3513 032570 321 15 0 00 032556 JUMPL AC+2,F31300 ;LOOP ON ERROR SWITCH^
3514
3515 ;TEST MULTIPLICATION ALGORITHM
3516 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3517 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
3518 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3519 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3520 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3521 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3522 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
3523 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3524 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3525 ;OF C(E).
3526
3527 003131 ADR=ADR+1
3528 000017 XX=XX+1
3529
3530 MOP1 (\ADR,XX,-1,1,0,XX)^
3531 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
3532 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3533 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
3534 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3535
3536 000017 F31310: AA1=XX ;INITIAL C(AC)
3537 032571 200 13 0 00 044122 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3538 777777 777777 AA2=-1 ;INITIAL C(AC+1)
3539 032572 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
3540 000001 AEE=1 ;INITIAL C(E)
3541 032573 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
3542 032574 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3543 000000 AR1=0 ;EXPECTED RESULT IN AC
3544 032575 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
3545 032576 003 13 0 00 031311 ER3 AC,31311 ;HIGH PRODUCT FAILED
3546 000017 AR2=XX ;EXPECTED RESULT IN AC+1
3547 032577 312 14 0 00 044122 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
3548 032600 004 14 0 00 031312 ER4 AC+1,31312 ;LOW PRODUCT FAILED
3549 000001 AEE=1 ;INITIAL C(E)
3550 032601 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
3551 032602 005 11 0 00 031313 ER5 E,31313 ;C(E) WAS CLOBBERED
3552 032603 321 15 0 00 032571 JUMPL AC+2,F31310 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0082
3553 000012 AC=12
3554 000010 E=<AC-2>&17
3555 SAVEAC (1,1)^
3556 032604 201 14 0 00 032604 MOVEI AC+2,. ;SAVE TEST PC
3557 032605 202 14 0 00 030051 MOVEM AC+2,TESTPC
3558 032606 201 14 0 00 000014 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
3559 032607 202 14 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
3560
3561 777777 777777 XX=-1
3562
3563 ;MULTIPLICAND=-1
3564 REPEAT ^D16,<
3565 ;TEST MULTIPLICATION ALGORITHM
3566 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3567 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3568 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3569 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3570 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3571 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3572 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3573 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3574 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3575 ;OF C(E).
3576
3577 ADR=ADR+1
3578 XX=XX+1
3579 MX=-XX
3580 IFE XX,<
3581 V1=-1
3582 V2=0>
3583 IFN XX,<
3584 V1=0
3585 V2=-1>
3586 MOP1 (\ADR,XX,V1,-1,V2,MX)>
3587
3588 ;TEST MULTIPLICATION ALGORITHM
3589 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3590 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3591 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3592 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3593 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3594 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3595 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3596 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3597 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3598 ;OF C(E).
3599
3600 003132 ADR=ADR+1
3601 000000 XX=XX+1
3602 000000 MX=-XX
3603 IFE XX,<
3604 777777 777777 V1=-1
3605 000000 V2=0>
3606 IFN XX,<
3607 V1=0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0083
3608 V2=-1>
3609 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3610 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3611 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3612 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3613 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3614
3615 000000 F31320: AA1=XX ;INITIAL C(AC)
3616 032610 200 12 0 00 043776 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3617 777777 777777 AA2=V1 ;INITIAL C(AC+1)
3618 032611 200 13 0 00 043777 MOVE AC+1,[V1] ;PRELOAD AC+1
3619 777777 777777 AEE=-1 ;INITIAL C(E)
3620 032612 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3621 032613 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3622 000000 AR1=V2 ;EXPECTED RESULT IN AC
3623 032614 312 12 0 00 043776 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3624 032615 003 12 0 00 031321 ER3 AC,31321 ;HIGH PRODUCT FAILED
3625 000000 AR2=MX ;EXPECTED RESULT IN AC+1
3626 032616 312 13 0 00 043776 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3627 032617 004 13 0 00 031322 ER4 AC+1,31322 ;LOW PRODUCT FAILED
3628 777777 777777 AEE=-1 ;INITIAL C(E)
3629 032620 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3630 032621 005 10 0 00 031323 ER5 E,31323 ;C(E) WAS CLOBBERED
3631 032622 321 14 0 00 032610 JUMPL AC+2,F31320 ;LOOP ON ERROR SWITCH^
3632
3633 ;TEST MULTIPLICATION ALGORITHM
3634 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3635 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3636 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3637 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3638 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3639 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3640 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3641 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3642 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3643 ;OF C(E).
3644
3645 003133 ADR=ADR+1
3646 000001 XX=XX+1
3647 777777 777777 MX=-XX
3648 IFE XX,<
3649 V1=-1
3650 V2=0>
3651 IFN XX,<
3652 000000 V1=0
3653 777777 777777 V2=-1>
3654 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3655 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3656 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3657 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3658 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3659
3660 000001 F31330: AA1=XX ;INITIAL C(AC)
3661 032623 200 12 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3662 000000 AA2=V1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0084
3663 032624 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3664 777777 777777 AEE=-1 ;INITIAL C(E)
3665 032625 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3666 032626 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3667 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
3668 032627 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3669 032630 003 12 0 00 031331 ER3 AC,31331 ;HIGH PRODUCT FAILED
3670 777777 777777 AR2=MX ;EXPECTED RESULT IN AC+1
3671 032631 312 13 0 00 043777 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3672 032632 004 13 0 00 031332 ER4 AC+1,31332 ;LOW PRODUCT FAILED
3673 777777 777777 AEE=-1 ;INITIAL C(E)
3674 032633 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3675 032634 005 10 0 00 031333 ER5 E,31333 ;C(E) WAS CLOBBERED
3676 032635 321 14 0 00 032623 JUMPL AC+2,F31330 ;LOOP ON ERROR SWITCH^
3677
3678 ;TEST MULTIPLICATION ALGORITHM
3679 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3680 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3681 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3682 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3683 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3684 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3685 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3686 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3687 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3688 ;OF C(E).
3689
3690 003134 ADR=ADR+1
3691 000002 XX=XX+1
3692 777777 777776 MX=-XX
3693 IFE XX,<
3694 V1=-1
3695 V2=0>
3696 IFN XX,<
3697 000000 V1=0
3698 777777 777777 V2=-1>
3699 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3700 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3701 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3702 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3703 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3704
3705 000002 F31340: AA1=XX ;INITIAL C(AC)
3706 032636 200 12 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3707 000000 AA2=V1 ;INITIAL C(AC+1)
3708 032637 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3709 777777 777777 AEE=-1 ;INITIAL C(E)
3710 032640 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3711 032641 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3712 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
3713 032642 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3714 032643 003 12 0 00 031341 ER3 AC,31341 ;HIGH PRODUCT FAILED
3715 777777 777776 AR2=MX ;EXPECTED RESULT IN AC+1
3716 032644 312 13 0 00 044044 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3717 032645 004 13 0 00 031342 ER4 AC+1,31342 ;LOW PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0085
3718 777777 777777 AEE=-1 ;INITIAL C(E)
3719 032646 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3720 032647 005 10 0 00 031343 ER5 E,31343 ;C(E) WAS CLOBBERED
3721 032650 321 14 0 00 032636 JUMPL AC+2,F31340 ;LOOP ON ERROR SWITCH^
3722
3723 ;TEST MULTIPLICATION ALGORITHM
3724 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3725 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3726 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3727 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3728 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3729 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3730 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3731 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3732 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3733 ;OF C(E).
3734
3735 003135 ADR=ADR+1
3736 000003 XX=XX+1
3737 777777 777775 MX=-XX
3738 IFE XX,<
3739 V1=-1
3740 V2=0>
3741 IFN XX,<
3742 000000 V1=0
3743 777777 777777 V2=-1>
3744 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3745 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3746 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3747 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3748 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3749
3750 000003 F31350: AA1=XX ;INITIAL C(AC)
3751 032651 200 12 0 00 044110 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3752 000000 AA2=V1 ;INITIAL C(AC+1)
3753 032652 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3754 777777 777777 AEE=-1 ;INITIAL C(E)
3755 032653 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3756 032654 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3757 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
3758 032655 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3759 032656 003 12 0 00 031351 ER3 AC,31351 ;HIGH PRODUCT FAILED
3760 777777 777775 AR2=MX ;EXPECTED RESULT IN AC+1
3761 032657 312 13 0 00 044045 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3762 032660 004 13 0 00 031352 ER4 AC+1,31352 ;LOW PRODUCT FAILED
3763 777777 777777 AEE=-1 ;INITIAL C(E)
3764 032661 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3765 032662 005 10 0 00 031353 ER5 E,31353 ;C(E) WAS CLOBBERED
3766 032663 321 14 0 00 032651 JUMPL AC+2,F31350 ;LOOP ON ERROR SWITCH^
3767
3768 ;TEST MULTIPLICATION ALGORITHM
3769 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3770 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3771 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3772 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0086
3773 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3774 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3775 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3776 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3777 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3778 ;OF C(E).
3779
3780 003136 ADR=ADR+1
3781 000004 XX=XX+1
3782 777777 777774 MX=-XX
3783 IFE XX,<
3784 V1=-1
3785 V2=0>
3786 IFN XX,<
3787 000000 V1=0
3788 777777 777777 V2=-1>
3789 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3790 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3791 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3792 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3793 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3794
3795 000004 F31360: AA1=XX ;INITIAL C(AC)
3796 032664 200 12 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3797 000000 AA2=V1 ;INITIAL C(AC+1)
3798 032665 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3799 777777 777777 AEE=-1 ;INITIAL C(E)
3800 032666 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3801 032667 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3802 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
3803 032670 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3804 032671 003 12 0 00 031361 ER3 AC,31361 ;HIGH PRODUCT FAILED
3805 777777 777774 AR2=MX ;EXPECTED RESULT IN AC+1
3806 032672 312 13 0 00 044123 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3807 032673 004 13 0 00 031362 ER4 AC+1,31362 ;LOW PRODUCT FAILED
3808 777777 777777 AEE=-1 ;INITIAL C(E)
3809 032674 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3810 032675 005 10 0 00 031363 ER5 E,31363 ;C(E) WAS CLOBBERED
3811 032676 321 14 0 00 032664 JUMPL AC+2,F31360 ;LOOP ON ERROR SWITCH^
3812
3813 ;TEST MULTIPLICATION ALGORITHM
3814 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3815 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3816 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3817 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3818 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3819 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3820 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3821 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3822 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3823 ;OF C(E).
3824
3825 003137 ADR=ADR+1
3826 000005 XX=XX+1
3827 777777 777773 MX=-XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0087
3828 IFE XX,<
3829 V1=-1
3830 V2=0>
3831 IFN XX,<
3832 000000 V1=0
3833 777777 777777 V2=-1>
3834 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3835 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3836 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3837 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3838 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3839
3840 000005 F31370: AA1=XX ;INITIAL C(AC)
3841 032677 200 12 0 00 044111 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3842 000000 AA2=V1 ;INITIAL C(AC+1)
3843 032700 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3844 777777 777777 AEE=-1 ;INITIAL C(E)
3845 032701 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3846 032702 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3847 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
3848 032703 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3849 032704 003 12 0 00 031371 ER3 AC,31371 ;HIGH PRODUCT FAILED
3850 777777 777773 AR2=MX ;EXPECTED RESULT IN AC+1
3851 032705 312 13 0 00 044046 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3852 032706 004 13 0 00 031372 ER4 AC+1,31372 ;LOW PRODUCT FAILED
3853 777777 777777 AEE=-1 ;INITIAL C(E)
3854 032707 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3855 032710 005 10 0 00 031373 ER5 E,31373 ;C(E) WAS CLOBBERED
3856 032711 321 14 0 00 032677 JUMPL AC+2,F31370 ;LOOP ON ERROR SWITCH^
3857
3858 ;TEST MULTIPLICATION ALGORITHM
3859 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3860 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3861 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3862 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3863 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3864 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3865 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3866 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3867 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3868 ;OF C(E).
3869
3870 003140 ADR=ADR+1
3871 000006 XX=XX+1
3872 777777 777772 MX=-XX
3873 IFE XX,<
3874 V1=-1
3875 V2=0>
3876 IFN XX,<
3877 000000 V1=0
3878 777777 777777 V2=-1>
3879 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3880 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3881 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3882 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0088
3883 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3884
3885 000006 F31400: AA1=XX ;INITIAL C(AC)
3886 032712 200 12 0 00 044112 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3887 000000 AA2=V1 ;INITIAL C(AC+1)
3888 032713 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3889 777777 777777 AEE=-1 ;INITIAL C(E)
3890 032714 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3891 032715 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3892 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
3893 032716 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3894 032717 003 12 0 00 031401 ER3 AC,31401 ;HIGH PRODUCT FAILED
3895 777777 777772 AR2=MX ;EXPECTED RESULT IN AC+1
3896 032720 312 13 0 00 044124 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3897 032721 004 13 0 00 031402 ER4 AC+1,31402 ;LOW PRODUCT FAILED
3898 777777 777777 AEE=-1 ;INITIAL C(E)
3899 032722 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3900 032723 005 10 0 00 031403 ER5 E,31403 ;C(E) WAS CLOBBERED
3901 032724 321 14 0 00 032712 JUMPL AC+2,F31400 ;LOOP ON ERROR SWITCH^
3902
3903 ;TEST MULTIPLICATION ALGORITHM
3904 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3905 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3906 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3907 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3908 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3909 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3910 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3911 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3912 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3913 ;OF C(E).
3914
3915 003141 ADR=ADR+1
3916 000007 XX=XX+1
3917 777777 777771 MX=-XX
3918 IFE XX,<
3919 V1=-1
3920 V2=0>
3921 IFN XX,<
3922 000000 V1=0
3923 777777 777777 V2=-1>
3924 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3925 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3926 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3927 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3928 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3929
3930 000007 F31410: AA1=XX ;INITIAL C(AC)
3931 032725 200 12 0 00 044113 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3932 000000 AA2=V1 ;INITIAL C(AC+1)
3933 032726 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3934 777777 777777 AEE=-1 ;INITIAL C(E)
3935 032727 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3936 032730 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3937 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0089
3938 032731 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3939 032732 003 12 0 00 031411 ER3 AC,31411 ;HIGH PRODUCT FAILED
3940 777777 777771 AR2=MX ;EXPECTED RESULT IN AC+1
3941 032733 312 13 0 00 044125 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3942 032734 004 13 0 00 031412 ER4 AC+1,31412 ;LOW PRODUCT FAILED
3943 777777 777777 AEE=-1 ;INITIAL C(E)
3944 032735 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3945 032736 005 10 0 00 031413 ER5 E,31413 ;C(E) WAS CLOBBERED
3946 032737 321 14 0 00 032725 JUMPL AC+2,F31410 ;LOOP ON ERROR SWITCH^
3947
3948 ;TEST MULTIPLICATION ALGORITHM
3949 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3950 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3951 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3952 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3953 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3954 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
3955 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
3956 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
3957 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
3958 ;OF C(E).
3959
3960 003142 ADR=ADR+1
3961 000010 XX=XX+1
3962 777777 777770 MX=-XX
3963 IFE XX,<
3964 V1=-1
3965 V2=0>
3966 IFN XX,<
3967 000000 V1=0
3968 777777 777777 V2=-1>
3969 MOP1 (\ADR,XX,V1,-1,V2,MX)^
3970 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
3971 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
3972 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
3973 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
3974
3975 000010 F31420: AA1=XX ;INITIAL C(AC)
3976 032740 200 12 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
3977 000000 AA2=V1 ;INITIAL C(AC+1)
3978 032741 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
3979 777777 777777 AEE=-1 ;INITIAL C(E)
3980 032742 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
3981 032743 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
3982 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
3983 032744 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
3984 032745 003 12 0 00 031421 ER3 AC,31421 ;HIGH PRODUCT FAILED
3985 777777 777770 AR2=MX ;EXPECTED RESULT IN AC+1
3986 032746 312 13 0 00 044126 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
3987 032747 004 13 0 00 031422 ER4 AC+1,31422 ;LOW PRODUCT FAILED
3988 777777 777777 AEE=-1 ;INITIAL C(E)
3989 032750 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
3990 032751 005 10 0 00 031423 ER5 E,31423 ;C(E) WAS CLOBBERED
3991 032752 321 14 0 00 032740 JUMPL AC+2,F31420 ;LOOP ON ERROR SWITCH^
3992
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0090
3993 ;TEST MULTIPLICATION ALGORITHM
3994 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
3995 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
3996 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
3997 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
3998 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
3999 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
4000 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
4001 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
4002 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
4003 ;OF C(E).
4004
4005 003143 ADR=ADR+1
4006 000011 XX=XX+1
4007 777777 777767 MX=-XX
4008 IFE XX,<
4009 V1=-1
4010 V2=0>
4011 IFN XX,<
4012 000000 V1=0
4013 777777 777777 V2=-1>
4014 MOP1 (\ADR,XX,V1,-1,V2,MX)^
4015 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
4016 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4017 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
4018 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4019
4020 000011 F31430: AA1=XX ;INITIAL C(AC)
4021 032753 200 12 0 00 044114 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4022 000000 AA2=V1 ;INITIAL C(AC+1)
4023 032754 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
4024 777777 777777 AEE=-1 ;INITIAL C(E)
4025 032755 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
4026 032756 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4027 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
4028 032757 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4029 032760 003 12 0 00 031431 ER3 AC,31431 ;HIGH PRODUCT FAILED
4030 777777 777767 AR2=MX ;EXPECTED RESULT IN AC+1
4031 032761 312 13 0 00 044047 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
4032 032762 004 13 0 00 031432 ER4 AC+1,31432 ;LOW PRODUCT FAILED
4033 777777 777777 AEE=-1 ;INITIAL C(E)
4034 032763 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
4035 032764 005 10 0 00 031433 ER5 E,31433 ;C(E) WAS CLOBBERED
4036 032765 321 14 0 00 032753 JUMPL AC+2,F31430 ;LOOP ON ERROR SWITCH^
4037
4038 ;TEST MULTIPLICATION ALGORITHM
4039 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
4040 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
4041 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
4042 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
4043 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
4044 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
4045 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
4046 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
4047 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0091
4048 ;OF C(E).
4049
4050 003144 ADR=ADR+1
4051 000012 XX=XX+1
4052 777777 777766 MX=-XX
4053 IFE XX,<
4054 V1=-1
4055 V2=0>
4056 IFN XX,<
4057 000000 V1=0
4058 777777 777777 V2=-1>
4059 MOP1 (\ADR,XX,V1,-1,V2,MX)^
4060 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
4061 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4062 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
4063 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4064
4065 000012 F31440: AA1=XX ;INITIAL C(AC)
4066 032766 200 12 0 00 044115 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4067 000000 AA2=V1 ;INITIAL C(AC+1)
4068 032767 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
4069 777777 777777 AEE=-1 ;INITIAL C(E)
4070 032770 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
4071 032771 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4072 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
4073 032772 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4074 032773 003 12 0 00 031441 ER3 AC,31441 ;HIGH PRODUCT FAILED
4075 777777 777766 AR2=MX ;EXPECTED RESULT IN AC+1
4076 032774 312 13 0 00 044127 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
4077 032775 004 13 0 00 031442 ER4 AC+1,31442 ;LOW PRODUCT FAILED
4078 777777 777777 AEE=-1 ;INITIAL C(E)
4079 032776 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
4080 032777 005 10 0 00 031443 ER5 E,31443 ;C(E) WAS CLOBBERED
4081 033000 321 14 0 00 032766 JUMPL AC+2,F31440 ;LOOP ON ERROR SWITCH^
4082
4083 ;TEST MULTIPLICATION ALGORITHM
4084 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
4085 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
4086 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
4087 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
4088 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
4089 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
4090 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
4091 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
4092 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
4093 ;OF C(E).
4094
4095 003145 ADR=ADR+1
4096 000013 XX=XX+1
4097 777777 777765 MX=-XX
4098 IFE XX,<
4099 V1=-1
4100 V2=0>
4101 IFN XX,<
4102 000000 V1=0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0092
4103 777777 777777 V2=-1>
4104 MOP1 (\ADR,XX,V1,-1,V2,MX)^
4105 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
4106 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4107 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
4108 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4109
4110 000013 F31450: AA1=XX ;INITIAL C(AC)
4111 033001 200 12 0 00 044116 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4112 000000 AA2=V1 ;INITIAL C(AC+1)
4113 033002 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
4114 777777 777777 AEE=-1 ;INITIAL C(E)
4115 033003 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
4116 033004 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4117 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
4118 033005 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4119 033006 003 12 0 00 031451 ER3 AC,31451 ;HIGH PRODUCT FAILED
4120 777777 777765 AR2=MX ;EXPECTED RESULT IN AC+1
4121 033007 312 13 0 00 044130 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
4122 033010 004 13 0 00 031452 ER4 AC+1,31452 ;LOW PRODUCT FAILED
4123 777777 777777 AEE=-1 ;INITIAL C(E)
4124 033011 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
4125 033012 005 10 0 00 031453 ER5 E,31453 ;C(E) WAS CLOBBERED
4126 033013 321 14 0 00 033001 JUMPL AC+2,F31450 ;LOOP ON ERROR SWITCH^
4127
4128 ;TEST MULTIPLICATION ALGORITHM
4129 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
4130 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
4131 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
4132 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
4133 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
4134 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
4135 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
4136 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
4137 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
4138 ;OF C(E).
4139
4140 003146 ADR=ADR+1
4141 000014 XX=XX+1
4142 777777 777764 MX=-XX
4143 IFE XX,<
4144 V1=-1
4145 V2=0>
4146 IFN XX,<
4147 000000 V1=0
4148 777777 777777 V2=-1>
4149 MOP1 (\ADR,XX,V1,-1,V2,MX)^
4150 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
4151 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4152 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
4153 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4154
4155 000014 F31460: AA1=XX ;INITIAL C(AC)
4156 033014 200 12 0 00 044117 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4157 000000 AA2=V1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0093
4158 033015 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
4159 777777 777777 AEE=-1 ;INITIAL C(E)
4160 033016 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
4161 033017 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4162 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
4163 033020 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4164 033021 003 12 0 00 031461 ER3 AC,31461 ;HIGH PRODUCT FAILED
4165 777777 777764 AR2=MX ;EXPECTED RESULT IN AC+1
4166 033022 312 13 0 00 044131 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
4167 033023 004 13 0 00 031462 ER4 AC+1,31462 ;LOW PRODUCT FAILED
4168 777777 777777 AEE=-1 ;INITIAL C(E)
4169 033024 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
4170 033025 005 10 0 00 031463 ER5 E,31463 ;C(E) WAS CLOBBERED
4171 033026 321 14 0 00 033014 JUMPL AC+2,F31460 ;LOOP ON ERROR SWITCH^
4172
4173 ;TEST MULTIPLICATION ALGORITHM
4174 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
4175 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
4176 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
4177 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
4178 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
4179 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
4180 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
4181 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
4182 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
4183 ;OF C(E).
4184
4185 003147 ADR=ADR+1
4186 000015 XX=XX+1
4187 777777 777763 MX=-XX
4188 IFE XX,<
4189 V1=-1
4190 V2=0>
4191 IFN XX,<
4192 000000 V1=0
4193 777777 777777 V2=-1>
4194 MOP1 (\ADR,XX,V1,-1,V2,MX)^
4195 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
4196 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4197 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
4198 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4199
4200 000015 F31470: AA1=XX ;INITIAL C(AC)
4201 033027 200 12 0 00 044120 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4202 000000 AA2=V1 ;INITIAL C(AC+1)
4203 033030 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
4204 777777 777777 AEE=-1 ;INITIAL C(E)
4205 033031 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
4206 033032 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4207 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
4208 033033 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4209 033034 003 12 0 00 031471 ER3 AC,31471 ;HIGH PRODUCT FAILED
4210 777777 777763 AR2=MX ;EXPECTED RESULT IN AC+1
4211 033035 312 13 0 00 044132 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
4212 033036 004 13 0 00 031472 ER4 AC+1,31472 ;LOW PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0094
4213 777777 777777 AEE=-1 ;INITIAL C(E)
4214 033037 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
4215 033040 005 10 0 00 031473 ER5 E,31473 ;C(E) WAS CLOBBERED
4216 033041 321 14 0 00 033027 JUMPL AC+2,F31470 ;LOOP ON ERROR SWITCH^
4217
4218 ;TEST MULTIPLICATION ALGORITHM
4219 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
4220 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
4221 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
4222 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
4223 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
4224 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
4225 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
4226 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
4227 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
4228 ;OF C(E).
4229
4230 003150 ADR=ADR+1
4231 000016 XX=XX+1
4232 777777 777762 MX=-XX
4233 IFE XX,<
4234 V1=-1
4235 V2=0>
4236 IFN XX,<
4237 000000 V1=0
4238 777777 777777 V2=-1>
4239 MOP1 (\ADR,XX,V1,-1,V2,MX)^
4240 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
4241 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4242 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
4243 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4244
4245 000016 F31500: AA1=XX ;INITIAL C(AC)
4246 033042 200 12 0 00 044121 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4247 000000 AA2=V1 ;INITIAL C(AC+1)
4248 033043 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
4249 777777 777777 AEE=-1 ;INITIAL C(E)
4250 033044 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
4251 033045 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4252 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
4253 033046 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4254 033047 003 12 0 00 031501 ER3 AC,31501 ;HIGH PRODUCT FAILED
4255 777777 777762 AR2=MX ;EXPECTED RESULT IN AC+1
4256 033050 312 13 0 00 044133 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
4257 033051 004 13 0 00 031502 ER4 AC+1,31502 ;LOW PRODUCT FAILED
4258 777777 777777 AEE=-1 ;INITIAL C(E)
4259 033052 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
4260 033053 005 10 0 00 031503 ER5 E,31503 ;C(E) WAS CLOBBERED
4261 033054 321 14 0 00 033042 JUMPL AC+2,F31500 ;LOOP ON ERROR SWITCH^
4262
4263 ;TEST MULTIPLICATION ALGORITHM
4264 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
4265 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
4266 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
4267 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0095
4268 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
4269 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
4270 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
4271 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
4272 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
4273 ;OF C(E).
4274
4275 003151 ADR=ADR+1
4276 000017 XX=XX+1
4277 777777 777761 MX=-XX
4278 IFE XX,<
4279 V1=-1
4280 V2=0>
4281 IFN XX,<
4282 000000 V1=0
4283 777777 777777 V2=-1>
4284 MOP1 (\ADR,XX,V1,-1,V2,MX)^
4285 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
4286 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4287 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
4288 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4289
4290 000017 F31510: AA1=XX ;INITIAL C(AC)
4291 033055 200 12 0 00 044122 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4292 000000 AA2=V1 ;INITIAL C(AC+1)
4293 033056 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1
4294 777777 777777 AEE=-1 ;INITIAL C(E)
4295 033057 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
4296 033060 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4297 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC
4298 033061 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT?
4299 033062 003 12 0 00 031511 ER3 AC,31511 ;HIGH PRODUCT FAILED
4300 777777 777761 AR2=MX ;EXPECTED RESULT IN AC+1
4301 033063 312 13 0 00 044134 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
4302 033064 004 13 0 00 031512 ER4 AC+1,31512 ;LOW PRODUCT FAILED
4303 777777 777777 AEE=-1 ;INITIAL C(E)
4304 033065 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
4305 033066 005 10 0 00 031513 ER5 E,31513 ;C(E) WAS CLOBBERED
4306 033067 321 14 0 00 033055 JUMPL AC+2,F31510 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0096
4307 SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
4308
4309 000011 AC=11
4310 000007 E=<AC-2>&17
4311 SAVEAC (1,1)^
4312 033070 201 13 0 00 033070 MOVEI AC+2,. ;SAVE TEST PC
4313 033071 202 13 0 00 030051 MOVEM AC+2,TESTPC
4314 033072 201 13 0 00 000013 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
4315 033073 202 13 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
4316 000000 XX=0
4317
4318 REPEAT ^D36, <
4319 ADR=ADR+1
4320 XX=XX+XX
4321 IFE XX,<XX=1>
4322
4323 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4324 MOP1 (\ADR,XX,-1,0,0,0)>
4325
4326 003152 ADR=ADR+1
4327 000000 XX=XX+XX
4328 000001 IFE XX,<XX=1>
4329
4330 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4331 MOP1 (\ADR,XX,-1,0,0,0)^
4332 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4333 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4334 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4335 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4336
4337 000001 F31520: AA1=XX ;INITIAL C(AC)
4338 033074 200 11 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4339 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4340 033075 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4341 000000 AEE=0 ;INITIAL C(E)
4342 033076 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4343 033077 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4344 000000 AR1=0 ;EXPECTED RESULT IN AC
4345 033100 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4346 033101 003 11 0 00 031521 ER3 AC,31521 ;HIGH PRODUCT FAILED
4347 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4348 033102 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4349 033103 004 12 0 00 031522 ER4 AC+1,31522 ;LOW PRODUCT FAILED
4350 000000 AEE=0 ;INITIAL C(E)
4351 033104 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4352 033105 005 07 0 00 031523 ER5 E,31523 ;C(E) WAS CLOBBERED
4353 033106 321 13 0 00 033074 JUMPL AC+2,F31520 ;LOOP ON ERROR SWITCH^
4354
4355 003153 ADR=ADR+1
4356 000002 XX=XX+XX
4357 IFE XX,<XX=1>
4358
4359 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4360 MOP1 (\ADR,XX,-1,0,0,0)^
4361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0097
4362 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4363 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4365
4366 000002 F31530: AA1=XX ;INITIAL C(AC)
4367 033107 200 11 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4368 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4369 033110 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4370 000000 AEE=0 ;INITIAL C(E)
4371 033111 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4372 033112 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4373 000000 AR1=0 ;EXPECTED RESULT IN AC
4374 033113 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4375 033114 003 11 0 00 031531 ER3 AC,31531 ;HIGH PRODUCT FAILED
4376 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4377 033115 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4378 033116 004 12 0 00 031532 ER4 AC+1,31532 ;LOW PRODUCT FAILED
4379 000000 AEE=0 ;INITIAL C(E)
4380 033117 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4381 033120 005 07 0 00 031533 ER5 E,31533 ;C(E) WAS CLOBBERED
4382 033121 321 13 0 00 033107 JUMPL AC+2,F31530 ;LOOP ON ERROR SWITCH^
4383
4384 003154 ADR=ADR+1
4385 000004 XX=XX+XX
4386 IFE XX,<XX=1>
4387
4388 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4389 MOP1 (\ADR,XX,-1,0,0,0)^
4390 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4391 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4392 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4393 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4394
4395 000004 F31540: AA1=XX ;INITIAL C(AC)
4396 033122 200 11 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4397 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4398 033123 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4399 000000 AEE=0 ;INITIAL C(E)
4400 033124 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4401 033125 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4402 000000 AR1=0 ;EXPECTED RESULT IN AC
4403 033126 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4404 033127 003 11 0 00 031541 ER3 AC,31541 ;HIGH PRODUCT FAILED
4405 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4406 033130 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4407 033131 004 12 0 00 031542 ER4 AC+1,31542 ;LOW PRODUCT FAILED
4408 000000 AEE=0 ;INITIAL C(E)
4409 033132 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4410 033133 005 07 0 00 031543 ER5 E,31543 ;C(E) WAS CLOBBERED
4411 033134 321 13 0 00 033122 JUMPL AC+2,F31540 ;LOOP ON ERROR SWITCH^
4412
4413 003155 ADR=ADR+1
4414 000010 XX=XX+XX
4415 IFE XX,<XX=1>
4416
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0098
4417 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4418 MOP1 (\ADR,XX,-1,0,0,0)^
4419 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4420 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4421 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4422 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4423
4424 000010 F31550: AA1=XX ;INITIAL C(AC)
4425 033135 200 11 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4426 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4427 033136 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4428 000000 AEE=0 ;INITIAL C(E)
4429 033137 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4430 033140 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4431 000000 AR1=0 ;EXPECTED RESULT IN AC
4432 033141 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4433 033142 003 11 0 00 031551 ER3 AC,31551 ;HIGH PRODUCT FAILED
4434 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4435 033143 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4436 033144 004 12 0 00 031552 ER4 AC+1,31552 ;LOW PRODUCT FAILED
4437 000000 AEE=0 ;INITIAL C(E)
4438 033145 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4439 033146 005 07 0 00 031553 ER5 E,31553 ;C(E) WAS CLOBBERED
4440 033147 321 13 0 00 033135 JUMPL AC+2,F31550 ;LOOP ON ERROR SWITCH^
4441
4442 003156 ADR=ADR+1
4443 000020 XX=XX+XX
4444 IFE XX,<XX=1>
4445
4446 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4447 MOP1 (\ADR,XX,-1,0,0,0)^
4448 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4449 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4450 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4451 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4452
4453 000020 F31560: AA1=XX ;INITIAL C(AC)
4454 033150 200 11 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4455 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4456 033151 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4457 000000 AEE=0 ;INITIAL C(E)
4458 033152 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4459 033153 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4460 000000 AR1=0 ;EXPECTED RESULT IN AC
4461 033154 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4462 033155 003 11 0 00 031561 ER3 AC,31561 ;HIGH PRODUCT FAILED
4463 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4464 033156 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4465 033157 004 12 0 00 031562 ER4 AC+1,31562 ;LOW PRODUCT FAILED
4466 000000 AEE=0 ;INITIAL C(E)
4467 033160 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4468 033161 005 07 0 00 031563 ER5 E,31563 ;C(E) WAS CLOBBERED
4469 033162 321 13 0 00 033150 JUMPL AC+2,F31560 ;LOOP ON ERROR SWITCH^
4470
4471 003157 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0099
4472 000040 XX=XX+XX
4473 IFE XX,<XX=1>
4474
4475 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4476 MOP1 (\ADR,XX,-1,0,0,0)^
4477 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4478 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4479 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4480 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4481
4482 000040 F31570: AA1=XX ;INITIAL C(AC)
4483 033163 200 11 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4484 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4485 033164 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4486 000000 AEE=0 ;INITIAL C(E)
4487 033165 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4488 033166 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4489 000000 AR1=0 ;EXPECTED RESULT IN AC
4490 033167 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4491 033170 003 11 0 00 031571 ER3 AC,31571 ;HIGH PRODUCT FAILED
4492 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4493 033171 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4494 033172 004 12 0 00 031572 ER4 AC+1,31572 ;LOW PRODUCT FAILED
4495 000000 AEE=0 ;INITIAL C(E)
4496 033173 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4497 033174 005 07 0 00 031573 ER5 E,31573 ;C(E) WAS CLOBBERED
4498 033175 321 13 0 00 033163 JUMPL AC+2,F31570 ;LOOP ON ERROR SWITCH^
4499
4500 003160 ADR=ADR+1
4501 000100 XX=XX+XX
4502 IFE XX,<XX=1>
4503
4504 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4505 MOP1 (\ADR,XX,-1,0,0,0)^
4506 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4507 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4508 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4509 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4510
4511 000100 F31600: AA1=XX ;INITIAL C(AC)
4512 033176 200 11 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4513 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4514 033177 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4515 000000 AEE=0 ;INITIAL C(E)
4516 033200 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4517 033201 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4518 000000 AR1=0 ;EXPECTED RESULT IN AC
4519 033202 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4520 033203 003 11 0 00 031601 ER3 AC,31601 ;HIGH PRODUCT FAILED
4521 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4522 033204 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4523 033205 004 12 0 00 031602 ER4 AC+1,31602 ;LOW PRODUCT FAILED
4524 000000 AEE=0 ;INITIAL C(E)
4525 033206 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4526 033207 005 07 0 00 031603 ER5 E,31603 ;C(E) WAS CLOBBERED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0100
4527 033210 321 13 0 00 033176 JUMPL AC+2,F31600 ;LOOP ON ERROR SWITCH^
4528
4529 003161 ADR=ADR+1
4530 000200 XX=XX+XX
4531 IFE XX,<XX=1>
4532
4533 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4534 MOP1 (\ADR,XX,-1,0,0,0)^
4535 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4536 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4537 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4538 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4539
4540 000200 F31610: AA1=XX ;INITIAL C(AC)
4541 033211 200 11 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4542 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4543 033212 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4544 000000 AEE=0 ;INITIAL C(E)
4545 033213 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4546 033214 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4547 000000 AR1=0 ;EXPECTED RESULT IN AC
4548 033215 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4549 033216 003 11 0 00 031611 ER3 AC,31611 ;HIGH PRODUCT FAILED
4550 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4551 033217 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4552 033220 004 12 0 00 031612 ER4 AC+1,31612 ;LOW PRODUCT FAILED
4553 000000 AEE=0 ;INITIAL C(E)
4554 033221 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4555 033222 005 07 0 00 031613 ER5 E,31613 ;C(E) WAS CLOBBERED
4556 033223 321 13 0 00 033211 JUMPL AC+2,F31610 ;LOOP ON ERROR SWITCH^
4557
4558 003162 ADR=ADR+1
4559 000400 XX=XX+XX
4560 IFE XX,<XX=1>
4561
4562 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4563 MOP1 (\ADR,XX,-1,0,0,0)^
4564 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4565 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4566 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4567 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4568
4569 000400 F31620: AA1=XX ;INITIAL C(AC)
4570 033224 200 11 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4571 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4572 033225 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4573 000000 AEE=0 ;INITIAL C(E)
4574 033226 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4575 033227 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4576 000000 AR1=0 ;EXPECTED RESULT IN AC
4577 033230 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4578 033231 003 11 0 00 031621 ER3 AC,31621 ;HIGH PRODUCT FAILED
4579 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4580 033232 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4581 033233 004 12 0 00 031622 ER4 AC+1,31622 ;LOW PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0101
4582 000000 AEE=0 ;INITIAL C(E)
4583 033234 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4584 033235 005 07 0 00 031623 ER5 E,31623 ;C(E) WAS CLOBBERED
4585 033236 321 13 0 00 033224 JUMPL AC+2,F31620 ;LOOP ON ERROR SWITCH^
4586
4587 003163 ADR=ADR+1
4588 001000 XX=XX+XX
4589 IFE XX,<XX=1>
4590
4591 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4592 MOP1 (\ADR,XX,-1,0,0,0)^
4593 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4594 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4595 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4596 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4597
4598 001000 F31630: AA1=XX ;INITIAL C(AC)
4599 033237 200 11 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4600 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4601 033240 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4602 000000 AEE=0 ;INITIAL C(E)
4603 033241 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4604 033242 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4605 000000 AR1=0 ;EXPECTED RESULT IN AC
4606 033243 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4607 033244 003 11 0 00 031631 ER3 AC,31631 ;HIGH PRODUCT FAILED
4608 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4609 033245 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4610 033246 004 12 0 00 031632 ER4 AC+1,31632 ;LOW PRODUCT FAILED
4611 000000 AEE=0 ;INITIAL C(E)
4612 033247 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4613 033250 005 07 0 00 031633 ER5 E,31633 ;C(E) WAS CLOBBERED
4614 033251 321 13 0 00 033237 JUMPL AC+2,F31630 ;LOOP ON ERROR SWITCH^
4615
4616 003164 ADR=ADR+1
4617 002000 XX=XX+XX
4618 IFE XX,<XX=1>
4619
4620 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4621 MOP1 (\ADR,XX,-1,0,0,0)^
4622 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4623 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4624 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4625 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4626
4627 002000 F31640: AA1=XX ;INITIAL C(AC)
4628 033252 200 11 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4629 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4630 033253 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4631 000000 AEE=0 ;INITIAL C(E)
4632 033254 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4633 033255 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4634 000000 AR1=0 ;EXPECTED RESULT IN AC
4635 033256 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4636 033257 003 11 0 00 031641 ER3 AC,31641 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0102
4637 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4638 033260 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4639 033261 004 12 0 00 031642 ER4 AC+1,31642 ;LOW PRODUCT FAILED
4640 000000 AEE=0 ;INITIAL C(E)
4641 033262 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4642 033263 005 07 0 00 031643 ER5 E,31643 ;C(E) WAS CLOBBERED
4643 033264 321 13 0 00 033252 JUMPL AC+2,F31640 ;LOOP ON ERROR SWITCH^
4644
4645 003165 ADR=ADR+1
4646 004000 XX=XX+XX
4647 IFE XX,<XX=1>
4648
4649 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4650 MOP1 (\ADR,XX,-1,0,0,0)^
4651 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4652 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4653 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4654 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4655
4656 004000 F31650: AA1=XX ;INITIAL C(AC)
4657 033265 200 11 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4658 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4659 033266 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4660 000000 AEE=0 ;INITIAL C(E)
4661 033267 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4662 033270 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4663 000000 AR1=0 ;EXPECTED RESULT IN AC
4664 033271 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4665 033272 003 11 0 00 031651 ER3 AC,31651 ;HIGH PRODUCT FAILED
4666 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4667 033273 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4668 033274 004 12 0 00 031652 ER4 AC+1,31652 ;LOW PRODUCT FAILED
4669 000000 AEE=0 ;INITIAL C(E)
4670 033275 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4671 033276 005 07 0 00 031653 ER5 E,31653 ;C(E) WAS CLOBBERED
4672 033277 321 13 0 00 033265 JUMPL AC+2,F31650 ;LOOP ON ERROR SWITCH^
4673
4674 003166 ADR=ADR+1
4675 010000 XX=XX+XX
4676 IFE XX,<XX=1>
4677
4678 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4679 MOP1 (\ADR,XX,-1,0,0,0)^
4680 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4681 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4682 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4683 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4684
4685 010000 F31660: AA1=XX ;INITIAL C(AC)
4686 033300 200 11 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4687 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4688 033301 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4689 000000 AEE=0 ;INITIAL C(E)
4690 033302 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4691 033303 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0103
4692 000000 AR1=0 ;EXPECTED RESULT IN AC
4693 033304 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4694 033305 003 11 0 00 031661 ER3 AC,31661 ;HIGH PRODUCT FAILED
4695 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4696 033306 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4697 033307 004 12 0 00 031662 ER4 AC+1,31662 ;LOW PRODUCT FAILED
4698 000000 AEE=0 ;INITIAL C(E)
4699 033310 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4700 033311 005 07 0 00 031663 ER5 E,31663 ;C(E) WAS CLOBBERED
4701 033312 321 13 0 00 033300 JUMPL AC+2,F31660 ;LOOP ON ERROR SWITCH^
4702
4703 003167 ADR=ADR+1
4704 020000 XX=XX+XX
4705 IFE XX,<XX=1>
4706
4707 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4708 MOP1 (\ADR,XX,-1,0,0,0)^
4709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4710 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4711 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4713
4714 020000 F31670: AA1=XX ;INITIAL C(AC)
4715 033313 200 11 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4716 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4717 033314 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4718 000000 AEE=0 ;INITIAL C(E)
4719 033315 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4720 033316 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4721 000000 AR1=0 ;EXPECTED RESULT IN AC
4722 033317 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4723 033320 003 11 0 00 031671 ER3 AC,31671 ;HIGH PRODUCT FAILED
4724 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4725 033321 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4726 033322 004 12 0 00 031672 ER4 AC+1,31672 ;LOW PRODUCT FAILED
4727 000000 AEE=0 ;INITIAL C(E)
4728 033323 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4729 033324 005 07 0 00 031673 ER5 E,31673 ;C(E) WAS CLOBBERED
4730 033325 321 13 0 00 033313 JUMPL AC+2,F31670 ;LOOP ON ERROR SWITCH^
4731
4732 003170 ADR=ADR+1
4733 040000 XX=XX+XX
4734 IFE XX,<XX=1>
4735
4736 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4737 MOP1 (\ADR,XX,-1,0,0,0)^
4738 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4739 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4740 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4741 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4742
4743 040000 F31700: AA1=XX ;INITIAL C(AC)
4744 033326 200 11 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4745 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4746 033327 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0104
4747 000000 AEE=0 ;INITIAL C(E)
4748 033330 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4749 033331 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4750 000000 AR1=0 ;EXPECTED RESULT IN AC
4751 033332 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4752 033333 003 11 0 00 031701 ER3 AC,31701 ;HIGH PRODUCT FAILED
4753 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4754 033334 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4755 033335 004 12 0 00 031702 ER4 AC+1,31702 ;LOW PRODUCT FAILED
4756 000000 AEE=0 ;INITIAL C(E)
4757 033336 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4758 033337 005 07 0 00 031703 ER5 E,31703 ;C(E) WAS CLOBBERED
4759 033340 321 13 0 00 033326 JUMPL AC+2,F31700 ;LOOP ON ERROR SWITCH^
4760
4761 003171 ADR=ADR+1
4762 100000 XX=XX+XX
4763 IFE XX,<XX=1>
4764
4765 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4766 MOP1 (\ADR,XX,-1,0,0,0)^
4767 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4768 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4769 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4770 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4771
4772 100000 F31710: AA1=XX ;INITIAL C(AC)
4773 033341 200 11 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4774 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4775 033342 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4776 000000 AEE=0 ;INITIAL C(E)
4777 033343 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4778 033344 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4779 000000 AR1=0 ;EXPECTED RESULT IN AC
4780 033345 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4781 033346 003 11 0 00 031711 ER3 AC,31711 ;HIGH PRODUCT FAILED
4782 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4783 033347 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4784 033350 004 12 0 00 031712 ER4 AC+1,31712 ;LOW PRODUCT FAILED
4785 000000 AEE=0 ;INITIAL C(E)
4786 033351 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4787 033352 005 07 0 00 031713 ER5 E,31713 ;C(E) WAS CLOBBERED
4788 033353 321 13 0 00 033341 JUMPL AC+2,F31710 ;LOOP ON ERROR SWITCH^
4789
4790 003172 ADR=ADR+1
4791 200000 XX=XX+XX
4792 IFE XX,<XX=1>
4793
4794 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4795 MOP1 (\ADR,XX,-1,0,0,0)^
4796 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4797 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4798 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4799 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4800
4801 200000 F31720: AA1=XX ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0105
4802 033354 200 11 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4803 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4804 033355 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4805 000000 AEE=0 ;INITIAL C(E)
4806 033356 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4807 033357 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4808 000000 AR1=0 ;EXPECTED RESULT IN AC
4809 033360 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4810 033361 003 11 0 00 031721 ER3 AC,31721 ;HIGH PRODUCT FAILED
4811 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4812 033362 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4813 033363 004 12 0 00 031722 ER4 AC+1,31722 ;LOW PRODUCT FAILED
4814 000000 AEE=0 ;INITIAL C(E)
4815 033364 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4816 033365 005 07 0 00 031723 ER5 E,31723 ;C(E) WAS CLOBBERED
4817 033366 321 13 0 00 033354 JUMPL AC+2,F31720 ;LOOP ON ERROR SWITCH^
4818
4819 003173 ADR=ADR+1
4820 400000 XX=XX+XX
4821 IFE XX,<XX=1>
4822
4823 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4824 MOP1 (\ADR,XX,-1,0,0,0)^
4825 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4826 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4827 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4828 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4829
4830 400000 F31730: AA1=XX ;INITIAL C(AC)
4831 033367 200 11 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4832 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4833 033370 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4834 000000 AEE=0 ;INITIAL C(E)
4835 033371 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4836 033372 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4837 000000 AR1=0 ;EXPECTED RESULT IN AC
4838 033373 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4839 033374 003 11 0 00 031731 ER3 AC,31731 ;HIGH PRODUCT FAILED
4840 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4841 033375 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4842 033376 004 12 0 00 031732 ER4 AC+1,31732 ;LOW PRODUCT FAILED
4843 000000 AEE=0 ;INITIAL C(E)
4844 033377 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4845 033400 005 07 0 00 031733 ER5 E,31733 ;C(E) WAS CLOBBERED
4846 033401 321 13 0 00 033367 JUMPL AC+2,F31730 ;LOOP ON ERROR SWITCH^
4847
4848 003174 ADR=ADR+1
4849 000001 000000 XX=XX+XX
4850 IFE XX,<XX=1>
4851
4852 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4853 MOP1 (\ADR,XX,-1,0,0,0)^
4854 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4855 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4856 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0106
4857 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4858
4859 000001 000000 F31740: AA1=XX ;INITIAL C(AC)
4860 033402 200 11 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4861 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4862 033403 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4863 000000 AEE=0 ;INITIAL C(E)
4864 033404 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4865 033405 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4866 000000 AR1=0 ;EXPECTED RESULT IN AC
4867 033406 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4868 033407 003 11 0 00 031741 ER3 AC,31741 ;HIGH PRODUCT FAILED
4869 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4870 033410 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4871 033411 004 12 0 00 031742 ER4 AC+1,31742 ;LOW PRODUCT FAILED
4872 000000 AEE=0 ;INITIAL C(E)
4873 033412 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4874 033413 005 07 0 00 031743 ER5 E,31743 ;C(E) WAS CLOBBERED
4875 033414 321 13 0 00 033402 JUMPL AC+2,F31740 ;LOOP ON ERROR SWITCH^
4876
4877 003175 ADR=ADR+1
4878 000002 000000 XX=XX+XX
4879 IFE XX,<XX=1>
4880
4881 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4882 MOP1 (\ADR,XX,-1,0,0,0)^
4883 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4884 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4885 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4886 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4887
4888 000002 000000 F31750: AA1=XX ;INITIAL C(AC)
4889 033415 200 11 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4890 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4891 033416 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4892 000000 AEE=0 ;INITIAL C(E)
4893 033417 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4894 033420 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4895 000000 AR1=0 ;EXPECTED RESULT IN AC
4896 033421 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4897 033422 003 11 0 00 031751 ER3 AC,31751 ;HIGH PRODUCT FAILED
4898 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4899 033423 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4900 033424 004 12 0 00 031752 ER4 AC+1,31752 ;LOW PRODUCT FAILED
4901 000000 AEE=0 ;INITIAL C(E)
4902 033425 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4903 033426 005 07 0 00 031753 ER5 E,31753 ;C(E) WAS CLOBBERED
4904 033427 321 13 0 00 033415 JUMPL AC+2,F31750 ;LOOP ON ERROR SWITCH^
4905
4906 003176 ADR=ADR+1
4907 000004 000000 XX=XX+XX
4908 IFE XX,<XX=1>
4909
4910 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4911 MOP1 (\ADR,XX,-1,0,0,0)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0107
4912 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4913 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4914 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4915 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4916
4917 000004 000000 F31760: AA1=XX ;INITIAL C(AC)
4918 033430 200 11 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4919 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4920 033431 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4921 000000 AEE=0 ;INITIAL C(E)
4922 033432 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4923 033433 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4924 000000 AR1=0 ;EXPECTED RESULT IN AC
4925 033434 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4926 033435 003 11 0 00 031761 ER3 AC,31761 ;HIGH PRODUCT FAILED
4927 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4928 033436 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4929 033437 004 12 0 00 031762 ER4 AC+1,31762 ;LOW PRODUCT FAILED
4930 000000 AEE=0 ;INITIAL C(E)
4931 033440 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4932 033441 005 07 0 00 031763 ER5 E,31763 ;C(E) WAS CLOBBERED
4933 033442 321 13 0 00 033430 JUMPL AC+2,F31760 ;LOOP ON ERROR SWITCH^
4934
4935 003177 ADR=ADR+1
4936 000010 000000 XX=XX+XX
4937 IFE XX,<XX=1>
4938
4939 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4940 MOP1 (\ADR,XX,-1,0,0,0)^
4941 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4942 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4943 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4944 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4945
4946 000010 000000 F31770: AA1=XX ;INITIAL C(AC)
4947 033443 200 11 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4948 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4949 033444 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4950 000000 AEE=0 ;INITIAL C(E)
4951 033445 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4952 033446 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4953 000000 AR1=0 ;EXPECTED RESULT IN AC
4954 033447 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4955 033450 003 11 0 00 031771 ER3 AC,31771 ;HIGH PRODUCT FAILED
4956 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4957 033451 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4958 033452 004 12 0 00 031772 ER4 AC+1,31772 ;LOW PRODUCT FAILED
4959 000000 AEE=0 ;INITIAL C(E)
4960 033453 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4961 033454 005 07 0 00 031773 ER5 E,31773 ;C(E) WAS CLOBBERED
4962 033455 321 13 0 00 033443 JUMPL AC+2,F31770 ;LOOP ON ERROR SWITCH^
4963
4964 003200 ADR=ADR+1
4965 000020 000000 XX=XX+XX
4966 IFE XX,<XX=1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0108
4967
4968 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4969 MOP1 (\ADR,XX,-1,0,0,0)^
4970 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
4971 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
4972 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
4973 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
4974
4975 000020 000000 F32000: AA1=XX ;INITIAL C(AC)
4976 033456 200 11 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
4977 777777 777777 AA2=-1 ;INITIAL C(AC+1)
4978 033457 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
4979 000000 AEE=0 ;INITIAL C(E)
4980 033460 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
4981 033461 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
4982 000000 AR1=0 ;EXPECTED RESULT IN AC
4983 033462 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
4984 033463 003 11 0 00 032001 ER3 AC,32001 ;HIGH PRODUCT FAILED
4985 000000 AR2=0 ;EXPECTED RESULT IN AC+1
4986 033464 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
4987 033465 004 12 0 00 032002 ER4 AC+1,32002 ;LOW PRODUCT FAILED
4988 000000 AEE=0 ;INITIAL C(E)
4989 033466 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
4990 033467 005 07 0 00 032003 ER5 E,32003 ;C(E) WAS CLOBBERED
4991 033470 321 13 0 00 033456 JUMPL AC+2,F32000 ;LOOP ON ERROR SWITCH^
4992
4993 003201 ADR=ADR+1
4994 000040 000000 XX=XX+XX
4995 IFE XX,<XX=1>
4996
4997 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
4998 MOP1 (\ADR,XX,-1,0,0,0)^
4999 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5000 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5001 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5002 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5003
5004 000040 000000 F32010: AA1=XX ;INITIAL C(AC)
5005 033471 200 11 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5006 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5007 033472 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5008 000000 AEE=0 ;INITIAL C(E)
5009 033473 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5010 033474 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5011 000000 AR1=0 ;EXPECTED RESULT IN AC
5012 033475 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5013 033476 003 11 0 00 032011 ER3 AC,32011 ;HIGH PRODUCT FAILED
5014 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5015 033477 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5016 033500 004 12 0 00 032012 ER4 AC+1,32012 ;LOW PRODUCT FAILED
5017 000000 AEE=0 ;INITIAL C(E)
5018 033501 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5019 033502 005 07 0 00 032013 ER5 E,32013 ;C(E) WAS CLOBBERED
5020 033503 321 13 0 00 033471 JUMPL AC+2,F32010 ;LOOP ON ERROR SWITCH^
5021
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0109
5022 003202 ADR=ADR+1
5023 000100 000000 XX=XX+XX
5024 IFE XX,<XX=1>
5025
5026 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5027 MOP1 (\ADR,XX,-1,0,0,0)^
5028 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5029 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5030 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5031 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5032
5033 000100 000000 F32020: AA1=XX ;INITIAL C(AC)
5034 033504 200 11 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5035 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5036 033505 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5037 000000 AEE=0 ;INITIAL C(E)
5038 033506 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5039 033507 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5040 000000 AR1=0 ;EXPECTED RESULT IN AC
5041 033510 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5042 033511 003 11 0 00 032021 ER3 AC,32021 ;HIGH PRODUCT FAILED
5043 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5044 033512 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5045 033513 004 12 0 00 032022 ER4 AC+1,32022 ;LOW PRODUCT FAILED
5046 000000 AEE=0 ;INITIAL C(E)
5047 033514 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5048 033515 005 07 0 00 032023 ER5 E,32023 ;C(E) WAS CLOBBERED
5049 033516 321 13 0 00 033504 JUMPL AC+2,F32020 ;LOOP ON ERROR SWITCH^
5050
5051 003203 ADR=ADR+1
5052 000200 000000 XX=XX+XX
5053 IFE XX,<XX=1>
5054
5055 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5056 MOP1 (\ADR,XX,-1,0,0,0)^
5057 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5058 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5059 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5060 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5061
5062 000200 000000 F32030: AA1=XX ;INITIAL C(AC)
5063 033517 200 11 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5064 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5065 033520 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5066 000000 AEE=0 ;INITIAL C(E)
5067 033521 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5068 033522 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5069 000000 AR1=0 ;EXPECTED RESULT IN AC
5070 033523 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5071 033524 003 11 0 00 032031 ER3 AC,32031 ;HIGH PRODUCT FAILED
5072 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5073 033525 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5074 033526 004 12 0 00 032032 ER4 AC+1,32032 ;LOW PRODUCT FAILED
5075 000000 AEE=0 ;INITIAL C(E)
5076 033527 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0110
5077 033530 005 07 0 00 032033 ER5 E,32033 ;C(E) WAS CLOBBERED
5078 033531 321 13 0 00 033517 JUMPL AC+2,F32030 ;LOOP ON ERROR SWITCH^
5079
5080 003204 ADR=ADR+1
5081 000400 000000 XX=XX+XX
5082 IFE XX,<XX=1>
5083
5084 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5085 MOP1 (\ADR,XX,-1,0,0,0)^
5086 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5087 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5088 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5089 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5090
5091 000400 000000 F32040: AA1=XX ;INITIAL C(AC)
5092 033532 200 11 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5093 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5094 033533 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5095 000000 AEE=0 ;INITIAL C(E)
5096 033534 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5097 033535 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5098 000000 AR1=0 ;EXPECTED RESULT IN AC
5099 033536 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5100 033537 003 11 0 00 032041 ER3 AC,32041 ;HIGH PRODUCT FAILED
5101 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5102 033540 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5103 033541 004 12 0 00 032042 ER4 AC+1,32042 ;LOW PRODUCT FAILED
5104 000000 AEE=0 ;INITIAL C(E)
5105 033542 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5106 033543 005 07 0 00 032043 ER5 E,32043 ;C(E) WAS CLOBBERED
5107 033544 321 13 0 00 033532 JUMPL AC+2,F32040 ;LOOP ON ERROR SWITCH^
5108
5109 003205 ADR=ADR+1
5110 001000 000000 XX=XX+XX
5111 IFE XX,<XX=1>
5112
5113 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5114 MOP1 (\ADR,XX,-1,0,0,0)^
5115 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5116 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5117 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5118 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5119
5120 001000 000000 F32050: AA1=XX ;INITIAL C(AC)
5121 033545 200 11 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5122 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5123 033546 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5124 000000 AEE=0 ;INITIAL C(E)
5125 033547 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5126 033550 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5127 000000 AR1=0 ;EXPECTED RESULT IN AC
5128 033551 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5129 033552 003 11 0 00 032051 ER3 AC,32051 ;HIGH PRODUCT FAILED
5130 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5131 033553 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0111
5132 033554 004 12 0 00 032052 ER4 AC+1,32052 ;LOW PRODUCT FAILED
5133 000000 AEE=0 ;INITIAL C(E)
5134 033555 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5135 033556 005 07 0 00 032053 ER5 E,32053 ;C(E) WAS CLOBBERED
5136 033557 321 13 0 00 033545 JUMPL AC+2,F32050 ;LOOP ON ERROR SWITCH^
5137
5138 003206 ADR=ADR+1
5139 002000 000000 XX=XX+XX
5140 IFE XX,<XX=1>
5141
5142 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5143 MOP1 (\ADR,XX,-1,0,0,0)^
5144 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5145 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5146 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5147 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5148
5149 002000 000000 F32060: AA1=XX ;INITIAL C(AC)
5150 033560 200 11 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5151 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5152 033561 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5153 000000 AEE=0 ;INITIAL C(E)
5154 033562 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5155 033563 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5156 000000 AR1=0 ;EXPECTED RESULT IN AC
5157 033564 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5158 033565 003 11 0 00 032061 ER3 AC,32061 ;HIGH PRODUCT FAILED
5159 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5160 033566 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5161 033567 004 12 0 00 032062 ER4 AC+1,32062 ;LOW PRODUCT FAILED
5162 000000 AEE=0 ;INITIAL C(E)
5163 033570 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5164 033571 005 07 0 00 032063 ER5 E,32063 ;C(E) WAS CLOBBERED
5165 033572 321 13 0 00 033560 JUMPL AC+2,F32060 ;LOOP ON ERROR SWITCH^
5166
5167 003207 ADR=ADR+1
5168 004000 000000 XX=XX+XX
5169 IFE XX,<XX=1>
5170
5171 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5172 MOP1 (\ADR,XX,-1,0,0,0)^
5173 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5174 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5175 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5176 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5177
5178 004000 000000 F32070: AA1=XX ;INITIAL C(AC)
5179 033573 200 11 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5180 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5181 033574 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5182 000000 AEE=0 ;INITIAL C(E)
5183 033575 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5184 033576 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5185 000000 AR1=0 ;EXPECTED RESULT IN AC
5186 033577 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0112
5187 033600 003 11 0 00 032071 ER3 AC,32071 ;HIGH PRODUCT FAILED
5188 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5189 033601 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5190 033602 004 12 0 00 032072 ER4 AC+1,32072 ;LOW PRODUCT FAILED
5191 000000 AEE=0 ;INITIAL C(E)
5192 033603 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5193 033604 005 07 0 00 032073 ER5 E,32073 ;C(E) WAS CLOBBERED
5194 033605 321 13 0 00 033573 JUMPL AC+2,F32070 ;LOOP ON ERROR SWITCH^
5195
5196 003210 ADR=ADR+1
5197 010000 000000 XX=XX+XX
5198 IFE XX,<XX=1>
5199
5200 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5201 MOP1 (\ADR,XX,-1,0,0,0)^
5202 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5203 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5204 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5205 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5206
5207 010000 000000 F32100: AA1=XX ;INITIAL C(AC)
5208 033606 200 11 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5209 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5210 033607 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5211 000000 AEE=0 ;INITIAL C(E)
5212 033610 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5213 033611 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5214 000000 AR1=0 ;EXPECTED RESULT IN AC
5215 033612 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5216 033613 003 11 0 00 032101 ER3 AC,32101 ;HIGH PRODUCT FAILED
5217 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5218 033614 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5219 033615 004 12 0 00 032102 ER4 AC+1,32102 ;LOW PRODUCT FAILED
5220 000000 AEE=0 ;INITIAL C(E)
5221 033616 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5222 033617 005 07 0 00 032103 ER5 E,32103 ;C(E) WAS CLOBBERED
5223 033620 321 13 0 00 033606 JUMPL AC+2,F32100 ;LOOP ON ERROR SWITCH^
5224
5225 003211 ADR=ADR+1
5226 020000 000000 XX=XX+XX
5227 IFE XX,<XX=1>
5228
5229 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5230 MOP1 (\ADR,XX,-1,0,0,0)^
5231 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5232 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5233 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5234 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5235
5236 020000 000000 F32110: AA1=XX ;INITIAL C(AC)
5237 033621 200 11 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5238 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5239 033622 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5240 000000 AEE=0 ;INITIAL C(E)
5241 033623 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0113
5242 033624 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5243 000000 AR1=0 ;EXPECTED RESULT IN AC
5244 033625 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5245 033626 003 11 0 00 032111 ER3 AC,32111 ;HIGH PRODUCT FAILED
5246 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5247 033627 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5248 033630 004 12 0 00 032112 ER4 AC+1,32112 ;LOW PRODUCT FAILED
5249 000000 AEE=0 ;INITIAL C(E)
5250 033631 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5251 033632 005 07 0 00 032113 ER5 E,32113 ;C(E) WAS CLOBBERED
5252 033633 321 13 0 00 033621 JUMPL AC+2,F32110 ;LOOP ON ERROR SWITCH^
5253
5254 003212 ADR=ADR+1
5255 040000 000000 XX=XX+XX
5256 IFE XX,<XX=1>
5257
5258 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5259 MOP1 (\ADR,XX,-1,0,0,0)^
5260 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5261 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5262 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5263 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5264
5265 040000 000000 F32120: AA1=XX ;INITIAL C(AC)
5266 033634 200 11 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5267 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5268 033635 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5269 000000 AEE=0 ;INITIAL C(E)
5270 033636 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5271 033637 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5272 000000 AR1=0 ;EXPECTED RESULT IN AC
5273 033640 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5274 033641 003 11 0 00 032121 ER3 AC,32121 ;HIGH PRODUCT FAILED
5275 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5276 033642 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5277 033643 004 12 0 00 032122 ER4 AC+1,32122 ;LOW PRODUCT FAILED
5278 000000 AEE=0 ;INITIAL C(E)
5279 033644 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5280 033645 005 07 0 00 032123 ER5 E,32123 ;C(E) WAS CLOBBERED
5281 033646 321 13 0 00 033634 JUMPL AC+2,F32120 ;LOOP ON ERROR SWITCH^
5282
5283 003213 ADR=ADR+1
5284 100000 000000 XX=XX+XX
5285 IFE XX,<XX=1>
5286
5287 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5288 MOP1 (\ADR,XX,-1,0,0,0)^
5289 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5290 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5291 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5292 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5293
5294 100000 000000 F32130: AA1=XX ;INITIAL C(AC)
5295 033647 200 11 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5296 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0114
5297 033650 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5298 000000 AEE=0 ;INITIAL C(E)
5299 033651 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5300 033652 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5301 000000 AR1=0 ;EXPECTED RESULT IN AC
5302 033653 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5303 033654 003 11 0 00 032131 ER3 AC,32131 ;HIGH PRODUCT FAILED
5304 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5305 033655 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5306 033656 004 12 0 00 032132 ER4 AC+1,32132 ;LOW PRODUCT FAILED
5307 000000 AEE=0 ;INITIAL C(E)
5308 033657 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5309 033660 005 07 0 00 032133 ER5 E,32133 ;C(E) WAS CLOBBERED
5310 033661 321 13 0 00 033647 JUMPL AC+2,F32130 ;LOOP ON ERROR SWITCH^
5311
5312 003214 ADR=ADR+1
5313 200000 000000 XX=XX+XX
5314 IFE XX,<XX=1>
5315
5316 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5317 MOP1 (\ADR,XX,-1,0,0,0)^
5318 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5319 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5320 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5321 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5322
5323 200000 000000 F32140: AA1=XX ;INITIAL C(AC)
5324 033662 200 11 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5325 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5326 033663 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5327 000000 AEE=0 ;INITIAL C(E)
5328 033664 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5329 033665 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5330 000000 AR1=0 ;EXPECTED RESULT IN AC
5331 033666 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5332 033667 003 11 0 00 032141 ER3 AC,32141 ;HIGH PRODUCT FAILED
5333 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5334 033670 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5335 033671 004 12 0 00 032142 ER4 AC+1,32142 ;LOW PRODUCT FAILED
5336 000000 AEE=0 ;INITIAL C(E)
5337 033672 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5338 033673 005 07 0 00 032143 ER5 E,32143 ;C(E) WAS CLOBBERED
5339 033674 321 13 0 00 033662 JUMPL AC+2,F32140 ;LOOP ON ERROR SWITCH^
5340
5341 003215 ADR=ADR+1
5342 400000 000000 XX=XX+XX
5343 IFE XX,<XX=1>
5344
5345 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
5346 MOP1 (\ADR,XX,-1,0,0,0)^
5347 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5348 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5349 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5350 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5351
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0115
5352 400000 000000 F32150: AA1=XX ;INITIAL C(AC)
5353 033675 200 11 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5354 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5355 033676 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5356 000000 AEE=0 ;INITIAL C(E)
5357 033677 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5358 033700 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5359 000000 AR1=0 ;EXPECTED RESULT IN AC
5360 033701 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5361 033702 003 11 0 00 032151 ER3 AC,32151 ;HIGH PRODUCT FAILED
5362 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5363 033703 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5364 033704 004 12 0 00 032152 ER4 AC+1,32152 ;LOW PRODUCT FAILED
5365 000000 AEE=0 ;INITIAL C(E)
5366 033705 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5367 033706 005 07 0 00 032153 ER5 E,32153 ;C(E) WAS CLOBBERED
5368 033707 321 13 0 00 033675 JUMPL AC+2,F32150 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0116
5369 000010 AC=10
5370 000006 E=<AC-2>&17
5371 SAVEAC (1,1)^
5372 033710 201 12 0 00 033710 MOVEI AC+2,. ;SAVE TEST PC
5373 033711 202 12 0 00 030051 MOVEM AC+2,TESTPC
5374 033712 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
5375 033713 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
5376 000000 XX=0
5377
5378 REPEAT ^D36,<
5379 ADR=ADR+1
5380 XX=XX+XX+1
5381 IFE <XX-1>,<XX=-2>
5382
5383 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5384 MOP1 (\ADR,XX,-1,0,0,0)>
5385
5386 003216 ADR=ADR+1
5387 000001 XX=XX+XX+1
5388 777777 777776 IFE <XX-1>,<XX=-2>
5389
5390 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5391 MOP1 (\ADR,XX,-1,0,0,0)^
5392 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5393 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5394 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5395 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5396
5397 777777 777776 F32160: AA1=XX ;INITIAL C(AC)
5398 033714 200 10 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5399 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5400 033715 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5401 000000 AEE=0 ;INITIAL C(E)
5402 033716 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5403 033717 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5404 000000 AR1=0 ;EXPECTED RESULT IN AC
5405 033720 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5406 033721 003 10 0 00 032161 ER3 AC,32161 ;HIGH PRODUCT FAILED
5407 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5408 033722 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5409 033723 004 11 0 00 032162 ER4 AC+1,32162 ;LOW PRODUCT FAILED
5410 000000 AEE=0 ;INITIAL C(E)
5411 033724 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5412 033725 005 06 0 00 032163 ER5 E,32163 ;C(E) WAS CLOBBERED
5413 033726 321 12 0 00 033714 JUMPL AC+2,F32160 ;LOOP ON ERROR SWITCH^
5414
5415 003217 ADR=ADR+1
5416 777777 777775 XX=XX+XX+1
5417 IFE <XX-1>,<XX=-2>
5418
5419 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5420 MOP1 (\ADR,XX,-1,0,0,0)^
5421 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5422 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5423 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0117
5424 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5425
5426 777777 777775 F32170: AA1=XX ;INITIAL C(AC)
5427 033727 200 10 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5428 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5429 033730 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5430 000000 AEE=0 ;INITIAL C(E)
5431 033731 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5432 033732 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5433 000000 AR1=0 ;EXPECTED RESULT IN AC
5434 033733 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5435 033734 003 10 0 00 032171 ER3 AC,32171 ;HIGH PRODUCT FAILED
5436 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5437 033735 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5438 033736 004 11 0 00 032172 ER4 AC+1,32172 ;LOW PRODUCT FAILED
5439 000000 AEE=0 ;INITIAL C(E)
5440 033737 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5441 033740 005 06 0 00 032173 ER5 E,32173 ;C(E) WAS CLOBBERED
5442 033741 321 12 0 00 033727 JUMPL AC+2,F32170 ;LOOP ON ERROR SWITCH^
5443
5444 003220 ADR=ADR+1
5445 777777 777773 XX=XX+XX+1
5446 IFE <XX-1>,<XX=-2>
5447
5448 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5449 MOP1 (\ADR,XX,-1,0,0,0)^
5450 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5451 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5452 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5453 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5454
5455 777777 777773 F32200: AA1=XX ;INITIAL C(AC)
5456 033742 200 10 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5457 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5458 033743 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5459 000000 AEE=0 ;INITIAL C(E)
5460 033744 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5461 033745 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5462 000000 AR1=0 ;EXPECTED RESULT IN AC
5463 033746 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5464 033747 003 10 0 00 032201 ER3 AC,32201 ;HIGH PRODUCT FAILED
5465 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5466 033750 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5467 033751 004 11 0 00 032202 ER4 AC+1,32202 ;LOW PRODUCT FAILED
5468 000000 AEE=0 ;INITIAL C(E)
5469 033752 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5470 033753 005 06 0 00 032203 ER5 E,32203 ;C(E) WAS CLOBBERED
5471 033754 321 12 0 00 033742 JUMPL AC+2,F32200 ;LOOP ON ERROR SWITCH^
5472
5473 003221 ADR=ADR+1
5474 777777 777767 XX=XX+XX+1
5475 IFE <XX-1>,<XX=-2>
5476
5477 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5478 MOP1 (\ADR,XX,-1,0,0,0)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0118
5479 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5480 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5481 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5482 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5483
5484 777777 777767 F32210: AA1=XX ;INITIAL C(AC)
5485 033755 200 10 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5486 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5487 033756 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5488 000000 AEE=0 ;INITIAL C(E)
5489 033757 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5490 033760 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5491 000000 AR1=0 ;EXPECTED RESULT IN AC
5492 033761 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5493 033762 003 10 0 00 032211 ER3 AC,32211 ;HIGH PRODUCT FAILED
5494 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5495 033763 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5496 033764 004 11 0 00 032212 ER4 AC+1,32212 ;LOW PRODUCT FAILED
5497 000000 AEE=0 ;INITIAL C(E)
5498 033765 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5499 033766 005 06 0 00 032213 ER5 E,32213 ;C(E) WAS CLOBBERED
5500 033767 321 12 0 00 033755 JUMPL AC+2,F32210 ;LOOP ON ERROR SWITCH^
5501
5502 003222 ADR=ADR+1
5503 777777 777757 XX=XX+XX+1
5504 IFE <XX-1>,<XX=-2>
5505
5506 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5507 MOP1 (\ADR,XX,-1,0,0,0)^
5508 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5509 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5510 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5511 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5512
5513 777777 777757 F32220: AA1=XX ;INITIAL C(AC)
5514 033770 200 10 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5515 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5516 033771 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5517 000000 AEE=0 ;INITIAL C(E)
5518 033772 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5519 033773 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5520 000000 AR1=0 ;EXPECTED RESULT IN AC
5521 033774 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5522 033775 003 10 0 00 032221 ER3 AC,32221 ;HIGH PRODUCT FAILED
5523 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5524 033776 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5525 033777 004 11 0 00 032222 ER4 AC+1,32222 ;LOW PRODUCT FAILED
5526 000000 AEE=0 ;INITIAL C(E)
5527 034000 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5528 034001 005 06 0 00 032223 ER5 E,32223 ;C(E) WAS CLOBBERED
5529 034002 321 12 0 00 033770 JUMPL AC+2,F32220 ;LOOP ON ERROR SWITCH^
5530
5531 003223 ADR=ADR+1
5532 777777 777737 XX=XX+XX+1
5533 IFE <XX-1>,<XX=-2>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0119
5534
5535 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5536 MOP1 (\ADR,XX,-1,0,0,0)^
5537 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5538 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5539 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5540 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5541
5542 777777 777737 F32230: AA1=XX ;INITIAL C(AC)
5543 034003 200 10 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5544 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5545 034004 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5546 000000 AEE=0 ;INITIAL C(E)
5547 034005 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5548 034006 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5549 000000 AR1=0 ;EXPECTED RESULT IN AC
5550 034007 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5551 034010 003 10 0 00 032231 ER3 AC,32231 ;HIGH PRODUCT FAILED
5552 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5553 034011 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5554 034012 004 11 0 00 032232 ER4 AC+1,32232 ;LOW PRODUCT FAILED
5555 000000 AEE=0 ;INITIAL C(E)
5556 034013 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5557 034014 005 06 0 00 032233 ER5 E,32233 ;C(E) WAS CLOBBERED
5558 034015 321 12 0 00 034003 JUMPL AC+2,F32230 ;LOOP ON ERROR SWITCH^
5559
5560 003224 ADR=ADR+1
5561 777777 777677 XX=XX+XX+1
5562 IFE <XX-1>,<XX=-2>
5563
5564 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5565 MOP1 (\ADR,XX,-1,0,0,0)^
5566 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5567 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5568 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5569 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5570
5571 777777 777677 F32240: AA1=XX ;INITIAL C(AC)
5572 034016 200 10 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5573 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5574 034017 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5575 000000 AEE=0 ;INITIAL C(E)
5576 034020 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5577 034021 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5578 000000 AR1=0 ;EXPECTED RESULT IN AC
5579 034022 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5580 034023 003 10 0 00 032241 ER3 AC,32241 ;HIGH PRODUCT FAILED
5581 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5582 034024 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5583 034025 004 11 0 00 032242 ER4 AC+1,32242 ;LOW PRODUCT FAILED
5584 000000 AEE=0 ;INITIAL C(E)
5585 034026 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5586 034027 005 06 0 00 032243 ER5 E,32243 ;C(E) WAS CLOBBERED
5587 034030 321 12 0 00 034016 JUMPL AC+2,F32240 ;LOOP ON ERROR SWITCH^
5588
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0120
5589 003225 ADR=ADR+1
5590 777777 777577 XX=XX+XX+1
5591 IFE <XX-1>,<XX=-2>
5592
5593 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5594 MOP1 (\ADR,XX,-1,0,0,0)^
5595 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5596 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5597 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5598 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5599
5600 777777 777577 F32250: AA1=XX ;INITIAL C(AC)
5601 034031 200 10 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5602 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5603 034032 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5604 000000 AEE=0 ;INITIAL C(E)
5605 034033 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5606 034034 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5607 000000 AR1=0 ;EXPECTED RESULT IN AC
5608 034035 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5609 034036 003 10 0 00 032251 ER3 AC,32251 ;HIGH PRODUCT FAILED
5610 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5611 034037 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5612 034040 004 11 0 00 032252 ER4 AC+1,32252 ;LOW PRODUCT FAILED
5613 000000 AEE=0 ;INITIAL C(E)
5614 034041 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5615 034042 005 06 0 00 032253 ER5 E,32253 ;C(E) WAS CLOBBERED
5616 034043 321 12 0 00 034031 JUMPL AC+2,F32250 ;LOOP ON ERROR SWITCH^
5617
5618 003226 ADR=ADR+1
5619 777777 777377 XX=XX+XX+1
5620 IFE <XX-1>,<XX=-2>
5621
5622 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5623 MOP1 (\ADR,XX,-1,0,0,0)^
5624 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5625 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5626 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5627 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5628
5629 777777 777377 F32260: AA1=XX ;INITIAL C(AC)
5630 034044 200 10 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5631 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5632 034045 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5633 000000 AEE=0 ;INITIAL C(E)
5634 034046 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5635 034047 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5636 000000 AR1=0 ;EXPECTED RESULT IN AC
5637 034050 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5638 034051 003 10 0 00 032261 ER3 AC,32261 ;HIGH PRODUCT FAILED
5639 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5640 034052 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5641 034053 004 11 0 00 032262 ER4 AC+1,32262 ;LOW PRODUCT FAILED
5642 000000 AEE=0 ;INITIAL C(E)
5643 034054 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0121
5644 034055 005 06 0 00 032263 ER5 E,32263 ;C(E) WAS CLOBBERED
5645 034056 321 12 0 00 034044 JUMPL AC+2,F32260 ;LOOP ON ERROR SWITCH^
5646
5647 003227 ADR=ADR+1
5648 777777 776777 XX=XX+XX+1
5649 IFE <XX-1>,<XX=-2>
5650
5651 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5652 MOP1 (\ADR,XX,-1,0,0,0)^
5653 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5654 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5655 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5656 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5657
5658 777777 776777 F32270: AA1=XX ;INITIAL C(AC)
5659 034057 200 10 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5660 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5661 034060 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5662 000000 AEE=0 ;INITIAL C(E)
5663 034061 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5664 034062 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5665 000000 AR1=0 ;EXPECTED RESULT IN AC
5666 034063 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5667 034064 003 10 0 00 032271 ER3 AC,32271 ;HIGH PRODUCT FAILED
5668 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5669 034065 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5670 034066 004 11 0 00 032272 ER4 AC+1,32272 ;LOW PRODUCT FAILED
5671 000000 AEE=0 ;INITIAL C(E)
5672 034067 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5673 034070 005 06 0 00 032273 ER5 E,32273 ;C(E) WAS CLOBBERED
5674 034071 321 12 0 00 034057 JUMPL AC+2,F32270 ;LOOP ON ERROR SWITCH^
5675
5676 003230 ADR=ADR+1
5677 777777 775777 XX=XX+XX+1
5678 IFE <XX-1>,<XX=-2>
5679
5680 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5681 MOP1 (\ADR,XX,-1,0,0,0)^
5682 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5683 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5684 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5685 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5686
5687 777777 775777 F32300: AA1=XX ;INITIAL C(AC)
5688 034072 200 10 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5689 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5690 034073 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5691 000000 AEE=0 ;INITIAL C(E)
5692 034074 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5693 034075 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5694 000000 AR1=0 ;EXPECTED RESULT IN AC
5695 034076 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5696 034077 003 10 0 00 032301 ER3 AC,32301 ;HIGH PRODUCT FAILED
5697 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5698 034100 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0122
5699 034101 004 11 0 00 032302 ER4 AC+1,32302 ;LOW PRODUCT FAILED
5700 000000 AEE=0 ;INITIAL C(E)
5701 034102 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5702 034103 005 06 0 00 032303 ER5 E,32303 ;C(E) WAS CLOBBERED
5703 034104 321 12 0 00 034072 JUMPL AC+2,F32300 ;LOOP ON ERROR SWITCH^
5704
5705 003231 ADR=ADR+1
5706 777777 773777 XX=XX+XX+1
5707 IFE <XX-1>,<XX=-2>
5708
5709 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5710 MOP1 (\ADR,XX,-1,0,0,0)^
5711 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5712 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5713 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5714 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5715
5716 777777 773777 F32310: AA1=XX ;INITIAL C(AC)
5717 034105 200 10 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5718 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5719 034106 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5720 000000 AEE=0 ;INITIAL C(E)
5721 034107 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5722 034110 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5723 000000 AR1=0 ;EXPECTED RESULT IN AC
5724 034111 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5725 034112 003 10 0 00 032311 ER3 AC,32311 ;HIGH PRODUCT FAILED
5726 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5727 034113 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5728 034114 004 11 0 00 032312 ER4 AC+1,32312 ;LOW PRODUCT FAILED
5729 000000 AEE=0 ;INITIAL C(E)
5730 034115 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5731 034116 005 06 0 00 032313 ER5 E,32313 ;C(E) WAS CLOBBERED
5732 034117 321 12 0 00 034105 JUMPL AC+2,F32310 ;LOOP ON ERROR SWITCH^
5733
5734 003232 ADR=ADR+1
5735 777777 767777 XX=XX+XX+1
5736 IFE <XX-1>,<XX=-2>
5737
5738 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5739 MOP1 (\ADR,XX,-1,0,0,0)^
5740 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5741 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5742 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5743 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5744
5745 777777 767777 F32320: AA1=XX ;INITIAL C(AC)
5746 034120 200 10 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5747 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5748 034121 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5749 000000 AEE=0 ;INITIAL C(E)
5750 034122 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5751 034123 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5752 000000 AR1=0 ;EXPECTED RESULT IN AC
5753 034124 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0123
5754 034125 003 10 0 00 032321 ER3 AC,32321 ;HIGH PRODUCT FAILED
5755 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5756 034126 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5757 034127 004 11 0 00 032322 ER4 AC+1,32322 ;LOW PRODUCT FAILED
5758 000000 AEE=0 ;INITIAL C(E)
5759 034130 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5760 034131 005 06 0 00 032323 ER5 E,32323 ;C(E) WAS CLOBBERED
5761 034132 321 12 0 00 034120 JUMPL AC+2,F32320 ;LOOP ON ERROR SWITCH^
5762
5763 003233 ADR=ADR+1
5764 777777 757777 XX=XX+XX+1
5765 IFE <XX-1>,<XX=-2>
5766
5767 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5768 MOP1 (\ADR,XX,-1,0,0,0)^
5769 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5770 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5771 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5772 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5773
5774 777777 757777 F32330: AA1=XX ;INITIAL C(AC)
5775 034133 200 10 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5776 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5777 034134 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5778 000000 AEE=0 ;INITIAL C(E)
5779 034135 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5780 034136 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5781 000000 AR1=0 ;EXPECTED RESULT IN AC
5782 034137 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5783 034140 003 10 0 00 032331 ER3 AC,32331 ;HIGH PRODUCT FAILED
5784 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5785 034141 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5786 034142 004 11 0 00 032332 ER4 AC+1,32332 ;LOW PRODUCT FAILED
5787 000000 AEE=0 ;INITIAL C(E)
5788 034143 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5789 034144 005 06 0 00 032333 ER5 E,32333 ;C(E) WAS CLOBBERED
5790 034145 321 12 0 00 034133 JUMPL AC+2,F32330 ;LOOP ON ERROR SWITCH^
5791
5792 003234 ADR=ADR+1
5793 777777 737777 XX=XX+XX+1
5794 IFE <XX-1>,<XX=-2>
5795
5796 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5797 MOP1 (\ADR,XX,-1,0,0,0)^
5798 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5799 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5800 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5801 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5802
5803 777777 737777 F32340: AA1=XX ;INITIAL C(AC)
5804 034146 200 10 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5805 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5806 034147 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5807 000000 AEE=0 ;INITIAL C(E)
5808 034150 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0124
5809 034151 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5810 000000 AR1=0 ;EXPECTED RESULT IN AC
5811 034152 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5812 034153 003 10 0 00 032341 ER3 AC,32341 ;HIGH PRODUCT FAILED
5813 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5814 034154 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5815 034155 004 11 0 00 032342 ER4 AC+1,32342 ;LOW PRODUCT FAILED
5816 000000 AEE=0 ;INITIAL C(E)
5817 034156 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5818 034157 005 06 0 00 032343 ER5 E,32343 ;C(E) WAS CLOBBERED
5819 034160 321 12 0 00 034146 JUMPL AC+2,F32340 ;LOOP ON ERROR SWITCH^
5820
5821 003235 ADR=ADR+1
5822 777777 677777 XX=XX+XX+1
5823 IFE <XX-1>,<XX=-2>
5824
5825 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5826 MOP1 (\ADR,XX,-1,0,0,0)^
5827 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5828 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5829 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5830 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5831
5832 777777 677777 F32350: AA1=XX ;INITIAL C(AC)
5833 034161 200 10 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5834 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5835 034162 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5836 000000 AEE=0 ;INITIAL C(E)
5837 034163 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5838 034164 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5839 000000 AR1=0 ;EXPECTED RESULT IN AC
5840 034165 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5841 034166 003 10 0 00 032351 ER3 AC,32351 ;HIGH PRODUCT FAILED
5842 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5843 034167 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5844 034170 004 11 0 00 032352 ER4 AC+1,32352 ;LOW PRODUCT FAILED
5845 000000 AEE=0 ;INITIAL C(E)
5846 034171 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5847 034172 005 06 0 00 032353 ER5 E,32353 ;C(E) WAS CLOBBERED
5848 034173 321 12 0 00 034161 JUMPL AC+2,F32350 ;LOOP ON ERROR SWITCH^
5849
5850 003236 ADR=ADR+1
5851 777777 577777 XX=XX+XX+1
5852 IFE <XX-1>,<XX=-2>
5853
5854 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5855 MOP1 (\ADR,XX,-1,0,0,0)^
5856 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5857 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5858 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5859 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5860
5861 777777 577777 F32360: AA1=XX ;INITIAL C(AC)
5862 034174 200 10 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5863 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0125
5864 034175 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5865 000000 AEE=0 ;INITIAL C(E)
5866 034176 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5867 034177 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5868 000000 AR1=0 ;EXPECTED RESULT IN AC
5869 034200 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5870 034201 003 10 0 00 032361 ER3 AC,32361 ;HIGH PRODUCT FAILED
5871 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5872 034202 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5873 034203 004 11 0 00 032362 ER4 AC+1,32362 ;LOW PRODUCT FAILED
5874 000000 AEE=0 ;INITIAL C(E)
5875 034204 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5876 034205 005 06 0 00 032363 ER5 E,32363 ;C(E) WAS CLOBBERED
5877 034206 321 12 0 00 034174 JUMPL AC+2,F32360 ;LOOP ON ERROR SWITCH^
5878
5879 003237 ADR=ADR+1
5880 777777 377777 XX=XX+XX+1
5881 IFE <XX-1>,<XX=-2>
5882
5883 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5884 MOP1 (\ADR,XX,-1,0,0,0)^
5885 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5886 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5887 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5888 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5889
5890 777777 377777 F32370: AA1=XX ;INITIAL C(AC)
5891 034207 200 10 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5892 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5893 034210 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5894 000000 AEE=0 ;INITIAL C(E)
5895 034211 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5896 034212 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5897 000000 AR1=0 ;EXPECTED RESULT IN AC
5898 034213 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5899 034214 003 10 0 00 032371 ER3 AC,32371 ;HIGH PRODUCT FAILED
5900 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5901 034215 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5902 034216 004 11 0 00 032372 ER4 AC+1,32372 ;LOW PRODUCT FAILED
5903 000000 AEE=0 ;INITIAL C(E)
5904 034217 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5905 034220 005 06 0 00 032373 ER5 E,32373 ;C(E) WAS CLOBBERED
5906 034221 321 12 0 00 034207 JUMPL AC+2,F32370 ;LOOP ON ERROR SWITCH^
5907
5908 003240 ADR=ADR+1
5909 777776 777777 XX=XX+XX+1
5910 IFE <XX-1>,<XX=-2>
5911
5912 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5913 MOP1 (\ADR,XX,-1,0,0,0)^
5914 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5915 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5916 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5917 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5918
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0126
5919 777776 777777 F32400: AA1=XX ;INITIAL C(AC)
5920 034222 200 10 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5921 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5922 034223 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5923 000000 AEE=0 ;INITIAL C(E)
5924 034224 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5925 034225 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5926 000000 AR1=0 ;EXPECTED RESULT IN AC
5927 034226 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5928 034227 003 10 0 00 032401 ER3 AC,32401 ;HIGH PRODUCT FAILED
5929 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5930 034230 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5931 034231 004 11 0 00 032402 ER4 AC+1,32402 ;LOW PRODUCT FAILED
5932 000000 AEE=0 ;INITIAL C(E)
5933 034232 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5934 034233 005 06 0 00 032403 ER5 E,32403 ;C(E) WAS CLOBBERED
5935 034234 321 12 0 00 034222 JUMPL AC+2,F32400 ;LOOP ON ERROR SWITCH^
5936
5937 003241 ADR=ADR+1
5938 777775 777777 XX=XX+XX+1
5939 IFE <XX-1>,<XX=-2>
5940
5941 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5942 MOP1 (\ADR,XX,-1,0,0,0)^
5943 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5944 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
5945 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5946 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5947
5948 777775 777777 F32410: AA1=XX ;INITIAL C(AC)
5949 034235 200 10 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5950 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5951 034236 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5952 000000 AEE=0 ;INITIAL C(E)
5953 034237 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5954 034240 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5955 000000 AR1=0 ;EXPECTED RESULT IN AC
5956 034241 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5957 034242 003 10 0 00 032411 ER3 AC,32411 ;HIGH PRODUCT FAILED
5958 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5959 034243 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5960 034244 004 11 0 00 032412 ER4 AC+1,32412 ;LOW PRODUCT FAILED
5961 000000 AEE=0 ;INITIAL C(E)
5962 034245 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5963 034246 005 06 0 00 032413 ER5 E,32413 ;C(E) WAS CLOBBERED
5964 034247 321 12 0 00 034235 JUMPL AC+2,F32410 ;LOOP ON ERROR SWITCH^
5965
5966 003242 ADR=ADR+1
5967 777773 777777 XX=XX+XX+1
5968 IFE <XX-1>,<XX=-2>
5969
5970 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
5971 MOP1 (\ADR,XX,-1,0,0,0)^
5972 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
5973 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0127
5974 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
5975 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
5976
5977 777773 777777 F32420: AA1=XX ;INITIAL C(AC)
5978 034250 200 10 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
5979 777777 777777 AA2=-1 ;INITIAL C(AC+1)
5980 034251 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
5981 000000 AEE=0 ;INITIAL C(E)
5982 034252 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
5983 034253 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
5984 000000 AR1=0 ;EXPECTED RESULT IN AC
5985 034254 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
5986 034255 003 10 0 00 032421 ER3 AC,32421 ;HIGH PRODUCT FAILED
5987 000000 AR2=0 ;EXPECTED RESULT IN AC+1
5988 034256 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
5989 034257 004 11 0 00 032422 ER4 AC+1,32422 ;LOW PRODUCT FAILED
5990 000000 AEE=0 ;INITIAL C(E)
5991 034260 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
5992 034261 005 06 0 00 032423 ER5 E,32423 ;C(E) WAS CLOBBERED
5993 034262 321 12 0 00 034250 JUMPL AC+2,F32420 ;LOOP ON ERROR SWITCH^
5994
5995 003243 ADR=ADR+1
5996 777767 777777 XX=XX+XX+1
5997 IFE <XX-1>,<XX=-2>
5998
5999 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6000 MOP1 (\ADR,XX,-1,0,0,0)^
6001 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6002 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6003 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6004 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6005
6006 777767 777777 F32430: AA1=XX ;INITIAL C(AC)
6007 034263 200 10 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6008 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6009 034264 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6010 000000 AEE=0 ;INITIAL C(E)
6011 034265 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6012 034266 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6013 000000 AR1=0 ;EXPECTED RESULT IN AC
6014 034267 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6015 034270 003 10 0 00 032431 ER3 AC,32431 ;HIGH PRODUCT FAILED
6016 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6017 034271 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6018 034272 004 11 0 00 032432 ER4 AC+1,32432 ;LOW PRODUCT FAILED
6019 000000 AEE=0 ;INITIAL C(E)
6020 034273 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6021 034274 005 06 0 00 032433 ER5 E,32433 ;C(E) WAS CLOBBERED
6022 034275 321 12 0 00 034263 JUMPL AC+2,F32430 ;LOOP ON ERROR SWITCH^
6023
6024 003244 ADR=ADR+1
6025 777757 777777 XX=XX+XX+1
6026 IFE <XX-1>,<XX=-2>
6027
6028 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0128
6029 MOP1 (\ADR,XX,-1,0,0,0)^
6030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6031 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6032 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6034
6035 777757 777777 F32440: AA1=XX ;INITIAL C(AC)
6036 034276 200 10 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6037 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6038 034277 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6039 000000 AEE=0 ;INITIAL C(E)
6040 034300 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6041 034301 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6042 000000 AR1=0 ;EXPECTED RESULT IN AC
6043 034302 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6044 034303 003 10 0 00 032441 ER3 AC,32441 ;HIGH PRODUCT FAILED
6045 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6046 034304 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6047 034305 004 11 0 00 032442 ER4 AC+1,32442 ;LOW PRODUCT FAILED
6048 000000 AEE=0 ;INITIAL C(E)
6049 034306 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6050 034307 005 06 0 00 032443 ER5 E,32443 ;C(E) WAS CLOBBERED
6051 034310 321 12 0 00 034276 JUMPL AC+2,F32440 ;LOOP ON ERROR SWITCH^
6052
6053 003245 ADR=ADR+1
6054 777737 777777 XX=XX+XX+1
6055 IFE <XX-1>,<XX=-2>
6056
6057 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6058 MOP1 (\ADR,XX,-1,0,0,0)^
6059 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6060 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6061 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6062 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6063
6064 777737 777777 F32450: AA1=XX ;INITIAL C(AC)
6065 034311 200 10 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6066 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6067 034312 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6068 000000 AEE=0 ;INITIAL C(E)
6069 034313 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6070 034314 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6071 000000 AR1=0 ;EXPECTED RESULT IN AC
6072 034315 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6073 034316 003 10 0 00 032451 ER3 AC,32451 ;HIGH PRODUCT FAILED
6074 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6075 034317 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6076 034320 004 11 0 00 032452 ER4 AC+1,32452 ;LOW PRODUCT FAILED
6077 000000 AEE=0 ;INITIAL C(E)
6078 034321 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6079 034322 005 06 0 00 032453 ER5 E,32453 ;C(E) WAS CLOBBERED
6080 034323 321 12 0 00 034311 JUMPL AC+2,F32450 ;LOOP ON ERROR SWITCH^
6081
6082 003246 ADR=ADR+1
6083 777677 777777 XX=XX+XX+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0129
6084 IFE <XX-1>,<XX=-2>
6085
6086 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6087 MOP1 (\ADR,XX,-1,0,0,0)^
6088 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6089 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6090 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6091 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6092
6093 777677 777777 F32460: AA1=XX ;INITIAL C(AC)
6094 034324 200 10 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6095 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6096 034325 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6097 000000 AEE=0 ;INITIAL C(E)
6098 034326 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6099 034327 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6100 000000 AR1=0 ;EXPECTED RESULT IN AC
6101 034330 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6102 034331 003 10 0 00 032461 ER3 AC,32461 ;HIGH PRODUCT FAILED
6103 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6104 034332 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6105 034333 004 11 0 00 032462 ER4 AC+1,32462 ;LOW PRODUCT FAILED
6106 000000 AEE=0 ;INITIAL C(E)
6107 034334 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6108 034335 005 06 0 00 032463 ER5 E,32463 ;C(E) WAS CLOBBERED
6109 034336 321 12 0 00 034324 JUMPL AC+2,F32460 ;LOOP ON ERROR SWITCH^
6110
6111 003247 ADR=ADR+1
6112 777577 777777 XX=XX+XX+1
6113 IFE <XX-1>,<XX=-2>
6114
6115 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6116 MOP1 (\ADR,XX,-1,0,0,0)^
6117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6118 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6119 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6121
6122 777577 777777 F32470: AA1=XX ;INITIAL C(AC)
6123 034337 200 10 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6124 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6125 034340 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6126 000000 AEE=0 ;INITIAL C(E)
6127 034341 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6128 034342 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6129 000000 AR1=0 ;EXPECTED RESULT IN AC
6130 034343 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6131 034344 003 10 0 00 032471 ER3 AC,32471 ;HIGH PRODUCT FAILED
6132 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6133 034345 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6134 034346 004 11 0 00 032472 ER4 AC+1,32472 ;LOW PRODUCT FAILED
6135 000000 AEE=0 ;INITIAL C(E)
6136 034347 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6137 034350 005 06 0 00 032473 ER5 E,32473 ;C(E) WAS CLOBBERED
6138 034351 321 12 0 00 034337 JUMPL AC+2,F32470 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0130
6139
6140 003250 ADR=ADR+1
6141 777377 777777 XX=XX+XX+1
6142 IFE <XX-1>,<XX=-2>
6143
6144 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6145 MOP1 (\ADR,XX,-1,0,0,0)^
6146 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6147 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6148 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6149 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6150
6151 777377 777777 F32500: AA1=XX ;INITIAL C(AC)
6152 034352 200 10 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6153 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6154 034353 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6155 000000 AEE=0 ;INITIAL C(E)
6156 034354 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6157 034355 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6158 000000 AR1=0 ;EXPECTED RESULT IN AC
6159 034356 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6160 034357 003 10 0 00 032501 ER3 AC,32501 ;HIGH PRODUCT FAILED
6161 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6162 034360 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6163 034361 004 11 0 00 032502 ER4 AC+1,32502 ;LOW PRODUCT FAILED
6164 000000 AEE=0 ;INITIAL C(E)
6165 034362 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6166 034363 005 06 0 00 032503 ER5 E,32503 ;C(E) WAS CLOBBERED
6167 034364 321 12 0 00 034352 JUMPL AC+2,F32500 ;LOOP ON ERROR SWITCH^
6168
6169 003251 ADR=ADR+1
6170 776777 777777 XX=XX+XX+1
6171 IFE <XX-1>,<XX=-2>
6172
6173 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6174 MOP1 (\ADR,XX,-1,0,0,0)^
6175 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6176 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6177 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6178 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6179
6180 776777 777777 F32510: AA1=XX ;INITIAL C(AC)
6181 034365 200 10 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6182 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6183 034366 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6184 000000 AEE=0 ;INITIAL C(E)
6185 034367 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6186 034370 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6187 000000 AR1=0 ;EXPECTED RESULT IN AC
6188 034371 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6189 034372 003 10 0 00 032511 ER3 AC,32511 ;HIGH PRODUCT FAILED
6190 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6191 034373 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6192 034374 004 11 0 00 032512 ER4 AC+1,32512 ;LOW PRODUCT FAILED
6193 000000 AEE=0 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0131
6194 034375 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6195 034376 005 06 0 00 032513 ER5 E,32513 ;C(E) WAS CLOBBERED
6196 034377 321 12 0 00 034365 JUMPL AC+2,F32510 ;LOOP ON ERROR SWITCH^
6197
6198 003252 ADR=ADR+1
6199 775777 777777 XX=XX+XX+1
6200 IFE <XX-1>,<XX=-2>
6201
6202 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6203 MOP1 (\ADR,XX,-1,0,0,0)^
6204 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6205 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6206 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6207 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6208
6209 775777 777777 F32520: AA1=XX ;INITIAL C(AC)
6210 034400 200 10 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6211 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6212 034401 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6213 000000 AEE=0 ;INITIAL C(E)
6214 034402 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6215 034403 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6216 000000 AR1=0 ;EXPECTED RESULT IN AC
6217 034404 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6218 034405 003 10 0 00 032521 ER3 AC,32521 ;HIGH PRODUCT FAILED
6219 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6220 034406 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6221 034407 004 11 0 00 032522 ER4 AC+1,32522 ;LOW PRODUCT FAILED
6222 000000 AEE=0 ;INITIAL C(E)
6223 034410 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6224 034411 005 06 0 00 032523 ER5 E,32523 ;C(E) WAS CLOBBERED
6225 034412 321 12 0 00 034400 JUMPL AC+2,F32520 ;LOOP ON ERROR SWITCH^
6226
6227 003253 ADR=ADR+1
6228 773777 777777 XX=XX+XX+1
6229 IFE <XX-1>,<XX=-2>
6230
6231 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6232 MOP1 (\ADR,XX,-1,0,0,0)^
6233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6234 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6235 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6237
6238 773777 777777 F32530: AA1=XX ;INITIAL C(AC)
6239 034413 200 10 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6240 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6241 034414 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6242 000000 AEE=0 ;INITIAL C(E)
6243 034415 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6244 034416 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6245 000000 AR1=0 ;EXPECTED RESULT IN AC
6246 034417 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6247 034420 003 10 0 00 032531 ER3 AC,32531 ;HIGH PRODUCT FAILED
6248 000000 AR2=0 ;EXPECTED RESULT IN AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0132
6249 034421 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6250 034422 004 11 0 00 032532 ER4 AC+1,32532 ;LOW PRODUCT FAILED
6251 000000 AEE=0 ;INITIAL C(E)
6252 034423 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6253 034424 005 06 0 00 032533 ER5 E,32533 ;C(E) WAS CLOBBERED
6254 034425 321 12 0 00 034413 JUMPL AC+2,F32530 ;LOOP ON ERROR SWITCH^
6255
6256 003254 ADR=ADR+1
6257 767777 777777 XX=XX+XX+1
6258 IFE <XX-1>,<XX=-2>
6259
6260 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6261 MOP1 (\ADR,XX,-1,0,0,0)^
6262 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6263 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6264 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6265 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6266
6267 767777 777777 F32540: AA1=XX ;INITIAL C(AC)
6268 034426 200 10 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6269 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6270 034427 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6271 000000 AEE=0 ;INITIAL C(E)
6272 034430 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6273 034431 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6274 000000 AR1=0 ;EXPECTED RESULT IN AC
6275 034432 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6276 034433 003 10 0 00 032541 ER3 AC,32541 ;HIGH PRODUCT FAILED
6277 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6278 034434 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6279 034435 004 11 0 00 032542 ER4 AC+1,32542 ;LOW PRODUCT FAILED
6280 000000 AEE=0 ;INITIAL C(E)
6281 034436 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6282 034437 005 06 0 00 032543 ER5 E,32543 ;C(E) WAS CLOBBERED
6283 034440 321 12 0 00 034426 JUMPL AC+2,F32540 ;LOOP ON ERROR SWITCH^
6284
6285 003255 ADR=ADR+1
6286 757777 777777 XX=XX+XX+1
6287 IFE <XX-1>,<XX=-2>
6288
6289 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6290 MOP1 (\ADR,XX,-1,0,0,0)^
6291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6292 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6293 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6295
6296 757777 777777 F32550: AA1=XX ;INITIAL C(AC)
6297 034441 200 10 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6298 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6299 034442 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6300 000000 AEE=0 ;INITIAL C(E)
6301 034443 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6302 034444 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6303 000000 AR1=0 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0133
6304 034445 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6305 034446 003 10 0 00 032551 ER3 AC,32551 ;HIGH PRODUCT FAILED
6306 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6307 034447 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6308 034450 004 11 0 00 032552 ER4 AC+1,32552 ;LOW PRODUCT FAILED
6309 000000 AEE=0 ;INITIAL C(E)
6310 034451 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6311 034452 005 06 0 00 032553 ER5 E,32553 ;C(E) WAS CLOBBERED
6312 034453 321 12 0 00 034441 JUMPL AC+2,F32550 ;LOOP ON ERROR SWITCH^
6313
6314 003256 ADR=ADR+1
6315 737777 777777 XX=XX+XX+1
6316 IFE <XX-1>,<XX=-2>
6317
6318 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6319 MOP1 (\ADR,XX,-1,0,0,0)^
6320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6321 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6322 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6324
6325 737777 777777 F32560: AA1=XX ;INITIAL C(AC)
6326 034454 200 10 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6327 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6328 034455 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6329 000000 AEE=0 ;INITIAL C(E)
6330 034456 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6331 034457 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6332 000000 AR1=0 ;EXPECTED RESULT IN AC
6333 034460 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6334 034461 003 10 0 00 032561 ER3 AC,32561 ;HIGH PRODUCT FAILED
6335 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6336 034462 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6337 034463 004 11 0 00 032562 ER4 AC+1,32562 ;LOW PRODUCT FAILED
6338 000000 AEE=0 ;INITIAL C(E)
6339 034464 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6340 034465 005 06 0 00 032563 ER5 E,32563 ;C(E) WAS CLOBBERED
6341 034466 321 12 0 00 034454 JUMPL AC+2,F32560 ;LOOP ON ERROR SWITCH^
6342
6343 003257 ADR=ADR+1
6344 677777 777777 XX=XX+XX+1
6345 IFE <XX-1>,<XX=-2>
6346
6347 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6348 MOP1 (\ADR,XX,-1,0,0,0)^
6349 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6350 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6351 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6352 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6353
6354 677777 777777 F32570: AA1=XX ;INITIAL C(AC)
6355 034467 200 10 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6356 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6357 034470 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6358 000000 AEE=0 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0134
6359 034471 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6360 034472 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6361 000000 AR1=0 ;EXPECTED RESULT IN AC
6362 034473 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6363 034474 003 10 0 00 032571 ER3 AC,32571 ;HIGH PRODUCT FAILED
6364 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6365 034475 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6366 034476 004 11 0 00 032572 ER4 AC+1,32572 ;LOW PRODUCT FAILED
6367 000000 AEE=0 ;INITIAL C(E)
6368 034477 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6369 034500 005 06 0 00 032573 ER5 E,32573 ;C(E) WAS CLOBBERED
6370 034501 321 12 0 00 034467 JUMPL AC+2,F32570 ;LOOP ON ERROR SWITCH^
6371
6372 003260 ADR=ADR+1
6373 577777 777777 XX=XX+XX+1
6374 IFE <XX-1>,<XX=-2>
6375
6376 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6377 MOP1 (\ADR,XX,-1,0,0,0)^
6378 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6379 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6380 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6381 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6382
6383 577777 777777 F32600: AA1=XX ;INITIAL C(AC)
6384 034502 200 10 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
6385 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6386 034503 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6387 000000 AEE=0 ;INITIAL C(E)
6388 034504 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6389 034505 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6390 000000 AR1=0 ;EXPECTED RESULT IN AC
6391 034506 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6392 034507 003 10 0 00 032601 ER3 AC,32601 ;HIGH PRODUCT FAILED
6393 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6394 034510 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6395 034511 004 11 0 00 032602 ER4 AC+1,32602 ;LOW PRODUCT FAILED
6396 000000 AEE=0 ;INITIAL C(E)
6397 034512 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6398 034513 005 06 0 00 032603 ER5 E,32603 ;C(E) WAS CLOBBERED
6399 034514 321 12 0 00 034502 JUMPL AC+2,F32600 ;LOOP ON ERROR SWITCH^
6400
6401 003261 ADR=ADR+1
6402 377777 777777 XX=XX+XX+1
6403 IFE <XX-1>,<XX=-2>
6404
6405 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
6406 MOP1 (\ADR,XX,-1,0,0,0)^
6407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
6408 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6409 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6411
6412 377777 777777 F32610: AA1=XX ;INITIAL C(AC)
6413 034515 200 10 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0135
6414 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6415 034516 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6416 000000 AEE=0 ;INITIAL C(E)
6417 034517 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6418 034520 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6419 000000 AR1=0 ;EXPECTED RESULT IN AC
6420 034521 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6421 034522 003 10 0 00 032611 ER3 AC,32611 ;HIGH PRODUCT FAILED
6422 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6423 034523 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6424 034524 004 11 0 00 032612 ER4 AC+1,32612 ;LOW PRODUCT FAILED
6425 000000 AEE=0 ;INITIAL C(E)
6426 034525 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6427 034526 005 06 0 00 032613 ER5 E,32613 ;C(E) WAS CLOBBERED
6428 034527 321 12 0 00 034515 JUMPL AC+2,F32610 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0136
6429 000007 AC=7
6430 000005 E=<AC-2>&17
6431 SAVEAC (1,1)^
6432 034530 201 11 0 00 034530 MOVEI AC+2,. ;SAVE TEST PC
6433 034531 202 11 0 00 030051 MOVEM AC+2,TESTPC
6434 034532 201 11 0 00 000011 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
6435 034533 202 11 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
6436 003262 ADR=ADR+1
6437
6438 ;MULTIPLY 0 BY -1 TO GET PRODUCT OF 0
6439 MOP1 (\ADR,-1,-1,0,0,0)^
6440 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
6441 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6442 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
6443 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6444
6445 777777 777777 F32620: AA1=-1 ;INITIAL C(AC)
6446 034534 200 07 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
6447 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6448 034535 200 10 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6449 000000 AEE=0 ;INITIAL C(E)
6450 034536 200 05 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND)
6451 034537 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6452 000000 AR1=0 ;EXPECTED RESULT IN AC
6453 034540 312 07 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT?
6454 034541 003 07 0 00 032621 ER3 AC,32621 ;HIGH PRODUCT FAILED
6455 000000 AR2=0 ;EXPECTED RESULT IN AC+1
6456 034542 312 10 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
6457 034543 004 10 0 00 032622 ER4 AC+1,32622 ;LOW PRODUCT FAILED
6458 000000 AEE=0 ;INITIAL C(E)
6459 034544 312 05 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED?
6460 034545 005 05 0 00 032623 ER5 E,32623 ;C(E) WAS CLOBBERED
6461 034546 321 11 0 00 034534 JUMPL AC+2,F32620 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0137
6462 SUBTTL DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT
6463
6464 000006 AC=6
6465 000004 E=<AC-2>&17
6466 SAVEAC (1,1)^
6467 034547 201 10 0 00 034547 MOVEI AC+2,. ;SAVE TEST PC
6468 034550 202 10 0 00 030051 MOVEM AC+2,TESTPC
6469 034551 201 10 0 00 000010 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
6470 034552 202 10 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
6471
6472 000000 XX=0
6473
6474 REPEAT ^D36, <
6475 ADR=ADR+1
6476 XX=XX+XX
6477 IFE XX,<XX=1>
6478
6479 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6480 IFG XX,<V1=0>
6481 IFL XX,<V1=-1>
6482 MOP1 (\ADR,1,-1,XX,V1,XX)>
6483
6484 003263 ADR=ADR+1
6485 000000 XX=XX+XX
6486 000001 IFE XX,<XX=1>
6487
6488 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6489 000000 IFG XX,<V1=0>
6490 IFL XX,<V1=-1>
6491 MOP1 (\ADR,1,-1,XX,V1,XX)^
6492 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6493 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6494 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6495 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6496
6497 000001 F32630: AA1=1 ;INITIAL C(AC)
6498 034553 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6499 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6500 034554 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6501 000001 AEE=XX ;INITIAL C(E)
6502 034555 200 04 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6503 034556 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6504 000000 AR1=V1 ;EXPECTED RESULT IN AC
6505 034557 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6506 034560 003 06 0 00 032631 ER3 AC,32631 ;HIGH PRODUCT FAILED
6507 000001 AR2=XX ;EXPECTED RESULT IN AC+1
6508 034561 312 07 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6509 034562 004 07 0 00 032632 ER4 AC+1,32632 ;LOW PRODUCT FAILED
6510 000001 AEE=XX ;INITIAL C(E)
6511 034563 312 04 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED?
6512 034564 005 04 0 00 032633 ER5 E,32633 ;C(E) WAS CLOBBERED
6513 034565 321 10 0 00 034553 JUMPL AC+2,F32630 ;LOOP ON ERROR SWITCH^
6514
6515 003264 ADR=ADR+1
6516 000002 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0138
6517 IFE XX,<XX=1>
6518
6519 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6520 000000 IFG XX,<V1=0>
6521 IFL XX,<V1=-1>
6522 MOP1 (\ADR,1,-1,XX,V1,XX)^
6523 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6524 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6525 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6526 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6527
6528 000001 F32640: AA1=1 ;INITIAL C(AC)
6529 034566 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6530 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6531 034567 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6532 000002 AEE=XX ;INITIAL C(E)
6533 034570 200 04 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6534 034571 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6535 000000 AR1=V1 ;EXPECTED RESULT IN AC
6536 034572 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6537 034573 003 06 0 00 032641 ER3 AC,32641 ;HIGH PRODUCT FAILED
6538 000002 AR2=XX ;EXPECTED RESULT IN AC+1
6539 034574 312 07 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6540 034575 004 07 0 00 032642 ER4 AC+1,32642 ;LOW PRODUCT FAILED
6541 000002 AEE=XX ;INITIAL C(E)
6542 034576 312 04 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED?
6543 034577 005 04 0 00 032643 ER5 E,32643 ;C(E) WAS CLOBBERED
6544 034600 321 10 0 00 034566 JUMPL AC+2,F32640 ;LOOP ON ERROR SWITCH^
6545
6546 003265 ADR=ADR+1
6547 000004 XX=XX+XX
6548 IFE XX,<XX=1>
6549
6550 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6551 000000 IFG XX,<V1=0>
6552 IFL XX,<V1=-1>
6553 MOP1 (\ADR,1,-1,XX,V1,XX)^
6554 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6555 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6556 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6557 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6558
6559 000001 F32650: AA1=1 ;INITIAL C(AC)
6560 034601 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6561 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6562 034602 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6563 000004 AEE=XX ;INITIAL C(E)
6564 034603 200 04 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6565 034604 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6566 000000 AR1=V1 ;EXPECTED RESULT IN AC
6567 034605 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6568 034606 003 06 0 00 032651 ER3 AC,32651 ;HIGH PRODUCT FAILED
6569 000004 AR2=XX ;EXPECTED RESULT IN AC+1
6570 034607 312 07 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6571 034610 004 07 0 00 032652 ER4 AC+1,32652 ;LOW PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0139
6572 000004 AEE=XX ;INITIAL C(E)
6573 034611 312 04 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED?
6574 034612 005 04 0 00 032653 ER5 E,32653 ;C(E) WAS CLOBBERED
6575 034613 321 10 0 00 034601 JUMPL AC+2,F32650 ;LOOP ON ERROR SWITCH^
6576
6577 003266 ADR=ADR+1
6578 000010 XX=XX+XX
6579 IFE XX,<XX=1>
6580
6581 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6582 000000 IFG XX,<V1=0>
6583 IFL XX,<V1=-1>
6584 MOP1 (\ADR,1,-1,XX,V1,XX)^
6585 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6586 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6587 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6588 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6589
6590 000001 F32660: AA1=1 ;INITIAL C(AC)
6591 034614 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6592 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6593 034615 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6594 000010 AEE=XX ;INITIAL C(E)
6595 034616 200 04 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6596 034617 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6597 000000 AR1=V1 ;EXPECTED RESULT IN AC
6598 034620 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6599 034621 003 06 0 00 032661 ER3 AC,32661 ;HIGH PRODUCT FAILED
6600 000010 AR2=XX ;EXPECTED RESULT IN AC+1
6601 034622 312 07 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6602 034623 004 07 0 00 032662 ER4 AC+1,32662 ;LOW PRODUCT FAILED
6603 000010 AEE=XX ;INITIAL C(E)
6604 034624 312 04 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED?
6605 034625 005 04 0 00 032663 ER5 E,32663 ;C(E) WAS CLOBBERED
6606 034626 321 10 0 00 034614 JUMPL AC+2,F32660 ;LOOP ON ERROR SWITCH^
6607
6608 003267 ADR=ADR+1
6609 000020 XX=XX+XX
6610 IFE XX,<XX=1>
6611
6612 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6613 000000 IFG XX,<V1=0>
6614 IFL XX,<V1=-1>
6615 MOP1 (\ADR,1,-1,XX,V1,XX)^
6616 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6617 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6618 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6619 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6620
6621 000001 F32670: AA1=1 ;INITIAL C(AC)
6622 034627 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6623 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6624 034630 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6625 000020 AEE=XX ;INITIAL C(E)
6626 034631 200 04 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0140
6627 034632 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6628 000000 AR1=V1 ;EXPECTED RESULT IN AC
6629 034633 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6630 034634 003 06 0 00 032671 ER3 AC,32671 ;HIGH PRODUCT FAILED
6631 000020 AR2=XX ;EXPECTED RESULT IN AC+1
6632 034635 312 07 0 00 044004 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6633 034636 004 07 0 00 032672 ER4 AC+1,32672 ;LOW PRODUCT FAILED
6634 000020 AEE=XX ;INITIAL C(E)
6635 034637 312 04 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED?
6636 034640 005 04 0 00 032673 ER5 E,32673 ;C(E) WAS CLOBBERED
6637 034641 321 10 0 00 034627 JUMPL AC+2,F32670 ;LOOP ON ERROR SWITCH^
6638
6639 003270 ADR=ADR+1
6640 000040 XX=XX+XX
6641 IFE XX,<XX=1>
6642
6643 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6644 000000 IFG XX,<V1=0>
6645 IFL XX,<V1=-1>
6646 MOP1 (\ADR,1,-1,XX,V1,XX)^
6647 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6648 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6649 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6650 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6651
6652 000001 F32700: AA1=1 ;INITIAL C(AC)
6653 034642 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6654 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6655 034643 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6656 000040 AEE=XX ;INITIAL C(E)
6657 034644 200 04 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6658 034645 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6659 000000 AR1=V1 ;EXPECTED RESULT IN AC
6660 034646 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6661 034647 003 06 0 00 032701 ER3 AC,32701 ;HIGH PRODUCT FAILED
6662 000040 AR2=XX ;EXPECTED RESULT IN AC+1
6663 034650 312 07 0 00 044005 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6664 034651 004 07 0 00 032702 ER4 AC+1,32702 ;LOW PRODUCT FAILED
6665 000040 AEE=XX ;INITIAL C(E)
6666 034652 312 04 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED?
6667 034653 005 04 0 00 032703 ER5 E,32703 ;C(E) WAS CLOBBERED
6668 034654 321 10 0 00 034642 JUMPL AC+2,F32700 ;LOOP ON ERROR SWITCH^
6669
6670 003271 ADR=ADR+1
6671 000100 XX=XX+XX
6672 IFE XX,<XX=1>
6673
6674 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6675 000000 IFG XX,<V1=0>
6676 IFL XX,<V1=-1>
6677 MOP1 (\ADR,1,-1,XX,V1,XX)^
6678 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6679 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6680 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6681 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0141
6682
6683 000001 F32710: AA1=1 ;INITIAL C(AC)
6684 034655 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6685 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6686 034656 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6687 000100 AEE=XX ;INITIAL C(E)
6688 034657 200 04 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6689 034660 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6690 000000 AR1=V1 ;EXPECTED RESULT IN AC
6691 034661 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6692 034662 003 06 0 00 032711 ER3 AC,32711 ;HIGH PRODUCT FAILED
6693 000100 AR2=XX ;EXPECTED RESULT IN AC+1
6694 034663 312 07 0 00 044006 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6695 034664 004 07 0 00 032712 ER4 AC+1,32712 ;LOW PRODUCT FAILED
6696 000100 AEE=XX ;INITIAL C(E)
6697 034665 312 04 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED?
6698 034666 005 04 0 00 032713 ER5 E,32713 ;C(E) WAS CLOBBERED
6699 034667 321 10 0 00 034655 JUMPL AC+2,F32710 ;LOOP ON ERROR SWITCH^
6700
6701 003272 ADR=ADR+1
6702 000200 XX=XX+XX
6703 IFE XX,<XX=1>
6704
6705 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6706 000000 IFG XX,<V1=0>
6707 IFL XX,<V1=-1>
6708 MOP1 (\ADR,1,-1,XX,V1,XX)^
6709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6710 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6711 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6713
6714 000001 F32720: AA1=1 ;INITIAL C(AC)
6715 034670 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6716 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6717 034671 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6718 000200 AEE=XX ;INITIAL C(E)
6719 034672 200 04 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6720 034673 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6721 000000 AR1=V1 ;EXPECTED RESULT IN AC
6722 034674 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6723 034675 003 06 0 00 032721 ER3 AC,32721 ;HIGH PRODUCT FAILED
6724 000200 AR2=XX ;EXPECTED RESULT IN AC+1
6725 034676 312 07 0 00 044007 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6726 034677 004 07 0 00 032722 ER4 AC+1,32722 ;LOW PRODUCT FAILED
6727 000200 AEE=XX ;INITIAL C(E)
6728 034700 312 04 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED?
6729 034701 005 04 0 00 032723 ER5 E,32723 ;C(E) WAS CLOBBERED
6730 034702 321 10 0 00 034670 JUMPL AC+2,F32720 ;LOOP ON ERROR SWITCH^
6731
6732 003273 ADR=ADR+1
6733 000400 XX=XX+XX
6734 IFE XX,<XX=1>
6735
6736 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0142
6737 000000 IFG XX,<V1=0>
6738 IFL XX,<V1=-1>
6739 MOP1 (\ADR,1,-1,XX,V1,XX)^
6740 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6741 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6742 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6743 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6744
6745 000001 F32730: AA1=1 ;INITIAL C(AC)
6746 034703 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6747 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6748 034704 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6749 000400 AEE=XX ;INITIAL C(E)
6750 034705 200 04 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6751 034706 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6752 000000 AR1=V1 ;EXPECTED RESULT IN AC
6753 034707 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6754 034710 003 06 0 00 032731 ER3 AC,32731 ;HIGH PRODUCT FAILED
6755 000400 AR2=XX ;EXPECTED RESULT IN AC+1
6756 034711 312 07 0 00 044010 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6757 034712 004 07 0 00 032732 ER4 AC+1,32732 ;LOW PRODUCT FAILED
6758 000400 AEE=XX ;INITIAL C(E)
6759 034713 312 04 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED?
6760 034714 005 04 0 00 032733 ER5 E,32733 ;C(E) WAS CLOBBERED
6761 034715 321 10 0 00 034703 JUMPL AC+2,F32730 ;LOOP ON ERROR SWITCH^
6762
6763 003274 ADR=ADR+1
6764 001000 XX=XX+XX
6765 IFE XX,<XX=1>
6766
6767 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6768 000000 IFG XX,<V1=0>
6769 IFL XX,<V1=-1>
6770 MOP1 (\ADR,1,-1,XX,V1,XX)^
6771 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6772 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6773 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6774 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6775
6776 000001 F32740: AA1=1 ;INITIAL C(AC)
6777 034716 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6778 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6779 034717 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6780 001000 AEE=XX ;INITIAL C(E)
6781 034720 200 04 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6782 034721 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6783 000000 AR1=V1 ;EXPECTED RESULT IN AC
6784 034722 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6785 034723 003 06 0 00 032741 ER3 AC,32741 ;HIGH PRODUCT FAILED
6786 001000 AR2=XX ;EXPECTED RESULT IN AC+1
6787 034724 312 07 0 00 044011 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6788 034725 004 07 0 00 032742 ER4 AC+1,32742 ;LOW PRODUCT FAILED
6789 001000 AEE=XX ;INITIAL C(E)
6790 034726 312 04 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED?
6791 034727 005 04 0 00 032743 ER5 E,32743 ;C(E) WAS CLOBBERED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0143
6792 034730 321 10 0 00 034716 JUMPL AC+2,F32740 ;LOOP ON ERROR SWITCH^
6793
6794 003275 ADR=ADR+1
6795 002000 XX=XX+XX
6796 IFE XX,<XX=1>
6797
6798 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6799 000000 IFG XX,<V1=0>
6800 IFL XX,<V1=-1>
6801 MOP1 (\ADR,1,-1,XX,V1,XX)^
6802 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6803 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6804 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6805 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6806
6807 000001 F32750: AA1=1 ;INITIAL C(AC)
6808 034731 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6809 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6810 034732 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6811 002000 AEE=XX ;INITIAL C(E)
6812 034733 200 04 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6813 034734 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6814 000000 AR1=V1 ;EXPECTED RESULT IN AC
6815 034735 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6816 034736 003 06 0 00 032751 ER3 AC,32751 ;HIGH PRODUCT FAILED
6817 002000 AR2=XX ;EXPECTED RESULT IN AC+1
6818 034737 312 07 0 00 044012 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6819 034740 004 07 0 00 032752 ER4 AC+1,32752 ;LOW PRODUCT FAILED
6820 002000 AEE=XX ;INITIAL C(E)
6821 034741 312 04 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED?
6822 034742 005 04 0 00 032753 ER5 E,32753 ;C(E) WAS CLOBBERED
6823 034743 321 10 0 00 034731 JUMPL AC+2,F32750 ;LOOP ON ERROR SWITCH^
6824
6825 003276 ADR=ADR+1
6826 004000 XX=XX+XX
6827 IFE XX,<XX=1>
6828
6829 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6830 000000 IFG XX,<V1=0>
6831 IFL XX,<V1=-1>
6832 MOP1 (\ADR,1,-1,XX,V1,XX)^
6833 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6834 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6835 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6836 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6837
6838 000001 F32760: AA1=1 ;INITIAL C(AC)
6839 034744 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6840 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6841 034745 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6842 004000 AEE=XX ;INITIAL C(E)
6843 034746 200 04 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6844 034747 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6845 000000 AR1=V1 ;EXPECTED RESULT IN AC
6846 034750 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0144
6847 034751 003 06 0 00 032761 ER3 AC,32761 ;HIGH PRODUCT FAILED
6848 004000 AR2=XX ;EXPECTED RESULT IN AC+1
6849 034752 312 07 0 00 044013 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6850 034753 004 07 0 00 032762 ER4 AC+1,32762 ;LOW PRODUCT FAILED
6851 004000 AEE=XX ;INITIAL C(E)
6852 034754 312 04 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED?
6853 034755 005 04 0 00 032763 ER5 E,32763 ;C(E) WAS CLOBBERED
6854 034756 321 10 0 00 034744 JUMPL AC+2,F32760 ;LOOP ON ERROR SWITCH^
6855
6856 003277 ADR=ADR+1
6857 010000 XX=XX+XX
6858 IFE XX,<XX=1>
6859
6860 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6861 000000 IFG XX,<V1=0>
6862 IFL XX,<V1=-1>
6863 MOP1 (\ADR,1,-1,XX,V1,XX)^
6864 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6865 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6866 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6867 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6868
6869 000001 F32770: AA1=1 ;INITIAL C(AC)
6870 034757 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6871 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6872 034760 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6873 010000 AEE=XX ;INITIAL C(E)
6874 034761 200 04 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6875 034762 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6876 000000 AR1=V1 ;EXPECTED RESULT IN AC
6877 034763 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6878 034764 003 06 0 00 032771 ER3 AC,32771 ;HIGH PRODUCT FAILED
6879 010000 AR2=XX ;EXPECTED RESULT IN AC+1
6880 034765 312 07 0 00 044014 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6881 034766 004 07 0 00 032772 ER4 AC+1,32772 ;LOW PRODUCT FAILED
6882 010000 AEE=XX ;INITIAL C(E)
6883 034767 312 04 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED?
6884 034770 005 04 0 00 032773 ER5 E,32773 ;C(E) WAS CLOBBERED
6885 034771 321 10 0 00 034757 JUMPL AC+2,F32770 ;LOOP ON ERROR SWITCH^
6886
6887 003300 ADR=ADR+1
6888 020000 XX=XX+XX
6889 IFE XX,<XX=1>
6890
6891 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6892 000000 IFG XX,<V1=0>
6893 IFL XX,<V1=-1>
6894 MOP1 (\ADR,1,-1,XX,V1,XX)^
6895 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6896 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6897 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6898 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6899
6900 000001 F33000: AA1=1 ;INITIAL C(AC)
6901 034772 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0145
6902 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6903 034773 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6904 020000 AEE=XX ;INITIAL C(E)
6905 034774 200 04 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6906 034775 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6907 000000 AR1=V1 ;EXPECTED RESULT IN AC
6908 034776 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6909 034777 003 06 0 00 033001 ER3 AC,33001 ;HIGH PRODUCT FAILED
6910 020000 AR2=XX ;EXPECTED RESULT IN AC+1
6911 035000 312 07 0 00 044015 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6912 035001 004 07 0 00 033002 ER4 AC+1,33002 ;LOW PRODUCT FAILED
6913 020000 AEE=XX ;INITIAL C(E)
6914 035002 312 04 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED?
6915 035003 005 04 0 00 033003 ER5 E,33003 ;C(E) WAS CLOBBERED
6916 035004 321 10 0 00 034772 JUMPL AC+2,F33000 ;LOOP ON ERROR SWITCH^
6917
6918 003301 ADR=ADR+1
6919 040000 XX=XX+XX
6920 IFE XX,<XX=1>
6921
6922 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6923 000000 IFG XX,<V1=0>
6924 IFL XX,<V1=-1>
6925 MOP1 (\ADR,1,-1,XX,V1,XX)^
6926 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6927 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6928 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6929 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6930
6931 000001 F33010: AA1=1 ;INITIAL C(AC)
6932 035005 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6933 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6934 035006 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6935 040000 AEE=XX ;INITIAL C(E)
6936 035007 200 04 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6937 035010 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6938 000000 AR1=V1 ;EXPECTED RESULT IN AC
6939 035011 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6940 035012 003 06 0 00 033011 ER3 AC,33011 ;HIGH PRODUCT FAILED
6941 040000 AR2=XX ;EXPECTED RESULT IN AC+1
6942 035013 312 07 0 00 044016 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6943 035014 004 07 0 00 033012 ER4 AC+1,33012 ;LOW PRODUCT FAILED
6944 040000 AEE=XX ;INITIAL C(E)
6945 035015 312 04 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED?
6946 035016 005 04 0 00 033013 ER5 E,33013 ;C(E) WAS CLOBBERED
6947 035017 321 10 0 00 035005 JUMPL AC+2,F33010 ;LOOP ON ERROR SWITCH^
6948
6949 003302 ADR=ADR+1
6950 100000 XX=XX+XX
6951 IFE XX,<XX=1>
6952
6953 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6954 000000 IFG XX,<V1=0>
6955 IFL XX,<V1=-1>
6956 MOP1 (\ADR,1,-1,XX,V1,XX)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0146
6957 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6958 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6959 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6960 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6961
6962 000001 F33020: AA1=1 ;INITIAL C(AC)
6963 035020 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6964 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6965 035021 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6966 100000 AEE=XX ;INITIAL C(E)
6967 035022 200 04 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6968 035023 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
6969 000000 AR1=V1 ;EXPECTED RESULT IN AC
6970 035024 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
6971 035025 003 06 0 00 033021 ER3 AC,33021 ;HIGH PRODUCT FAILED
6972 100000 AR2=XX ;EXPECTED RESULT IN AC+1
6973 035026 312 07 0 00 044017 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
6974 035027 004 07 0 00 033022 ER4 AC+1,33022 ;LOW PRODUCT FAILED
6975 100000 AEE=XX ;INITIAL C(E)
6976 035030 312 04 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED?
6977 035031 005 04 0 00 033023 ER5 E,33023 ;C(E) WAS CLOBBERED
6978 035032 321 10 0 00 035020 JUMPL AC+2,F33020 ;LOOP ON ERROR SWITCH^
6979
6980 003303 ADR=ADR+1
6981 200000 XX=XX+XX
6982 IFE XX,<XX=1>
6983
6984 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
6985 000000 IFG XX,<V1=0>
6986 IFL XX,<V1=-1>
6987 MOP1 (\ADR,1,-1,XX,V1,XX)^
6988 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
6989 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
6990 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
6991 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
6992
6993 000001 F33030: AA1=1 ;INITIAL C(AC)
6994 035033 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
6995 777777 777777 AA2=-1 ;INITIAL C(AC+1)
6996 035034 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
6997 200000 AEE=XX ;INITIAL C(E)
6998 035035 200 04 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
6999 035036 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7000 000000 AR1=V1 ;EXPECTED RESULT IN AC
7001 035037 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7002 035040 003 06 0 00 033031 ER3 AC,33031 ;HIGH PRODUCT FAILED
7003 200000 AR2=XX ;EXPECTED RESULT IN AC+1
7004 035041 312 07 0 00 044020 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7005 035042 004 07 0 00 033032 ER4 AC+1,33032 ;LOW PRODUCT FAILED
7006 200000 AEE=XX ;INITIAL C(E)
7007 035043 312 04 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED?
7008 035044 005 04 0 00 033033 ER5 E,33033 ;C(E) WAS CLOBBERED
7009 035045 321 10 0 00 035033 JUMPL AC+2,F33030 ;LOOP ON ERROR SWITCH^
7010
7011 003304 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0147
7012 400000 XX=XX+XX
7013 IFE XX,<XX=1>
7014
7015 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7016 000000 IFG XX,<V1=0>
7017 IFL XX,<V1=-1>
7018 MOP1 (\ADR,1,-1,XX,V1,XX)^
7019 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7020 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7021 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7022 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7023
7024 000001 F33040: AA1=1 ;INITIAL C(AC)
7025 035046 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7026 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7027 035047 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7028 400000 AEE=XX ;INITIAL C(E)
7029 035050 200 04 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7030 035051 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7031 000000 AR1=V1 ;EXPECTED RESULT IN AC
7032 035052 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7033 035053 003 06 0 00 033041 ER3 AC,33041 ;HIGH PRODUCT FAILED
7034 400000 AR2=XX ;EXPECTED RESULT IN AC+1
7035 035054 312 07 0 00 044021 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7036 035055 004 07 0 00 033042 ER4 AC+1,33042 ;LOW PRODUCT FAILED
7037 400000 AEE=XX ;INITIAL C(E)
7038 035056 312 04 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED?
7039 035057 005 04 0 00 033043 ER5 E,33043 ;C(E) WAS CLOBBERED
7040 035060 321 10 0 00 035046 JUMPL AC+2,F33040 ;LOOP ON ERROR SWITCH^
7041
7042 003305 ADR=ADR+1
7043 000001 000000 XX=XX+XX
7044 IFE XX,<XX=1>
7045
7046 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7047 000000 IFG XX,<V1=0>
7048 IFL XX,<V1=-1>
7049 MOP1 (\ADR,1,-1,XX,V1,XX)^
7050 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7051 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7052 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7053 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7054
7055 000001 F33050: AA1=1 ;INITIAL C(AC)
7056 035061 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7057 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7058 035062 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7059 000001 000000 AEE=XX ;INITIAL C(E)
7060 035063 200 04 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7061 035064 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7062 000000 AR1=V1 ;EXPECTED RESULT IN AC
7063 035065 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7064 035066 003 06 0 00 033051 ER3 AC,33051 ;HIGH PRODUCT FAILED
7065 000001 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7066 035067 312 07 0 00 044022 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0148
7067 035070 004 07 0 00 033052 ER4 AC+1,33052 ;LOW PRODUCT FAILED
7068 000001 000000 AEE=XX ;INITIAL C(E)
7069 035071 312 04 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED?
7070 035072 005 04 0 00 033053 ER5 E,33053 ;C(E) WAS CLOBBERED
7071 035073 321 10 0 00 035061 JUMPL AC+2,F33050 ;LOOP ON ERROR SWITCH^
7072
7073 003306 ADR=ADR+1
7074 000002 000000 XX=XX+XX
7075 IFE XX,<XX=1>
7076
7077 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7078 000000 IFG XX,<V1=0>
7079 IFL XX,<V1=-1>
7080 MOP1 (\ADR,1,-1,XX,V1,XX)^
7081 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7082 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7083 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7084 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7085
7086 000001 F33060: AA1=1 ;INITIAL C(AC)
7087 035074 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7088 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7089 035075 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7090 000002 000000 AEE=XX ;INITIAL C(E)
7091 035076 200 04 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7092 035077 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7093 000000 AR1=V1 ;EXPECTED RESULT IN AC
7094 035100 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7095 035101 003 06 0 00 033061 ER3 AC,33061 ;HIGH PRODUCT FAILED
7096 000002 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7097 035102 312 07 0 00 044023 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7098 035103 004 07 0 00 033062 ER4 AC+1,33062 ;LOW PRODUCT FAILED
7099 000002 000000 AEE=XX ;INITIAL C(E)
7100 035104 312 04 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED?
7101 035105 005 04 0 00 033063 ER5 E,33063 ;C(E) WAS CLOBBERED
7102 035106 321 10 0 00 035074 JUMPL AC+2,F33060 ;LOOP ON ERROR SWITCH^
7103
7104 003307 ADR=ADR+1
7105 000004 000000 XX=XX+XX
7106 IFE XX,<XX=1>
7107
7108 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7109 000000 IFG XX,<V1=0>
7110 IFL XX,<V1=-1>
7111 MOP1 (\ADR,1,-1,XX,V1,XX)^
7112 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7113 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7114 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7115 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7116
7117 000001 F33070: AA1=1 ;INITIAL C(AC)
7118 035107 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7119 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7120 035110 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7121 000004 000000 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0149
7122 035111 200 04 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7123 035112 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7124 000000 AR1=V1 ;EXPECTED RESULT IN AC
7125 035113 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7126 035114 003 06 0 00 033071 ER3 AC,33071 ;HIGH PRODUCT FAILED
7127 000004 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7128 035115 312 07 0 00 044024 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7129 035116 004 07 0 00 033072 ER4 AC+1,33072 ;LOW PRODUCT FAILED
7130 000004 000000 AEE=XX ;INITIAL C(E)
7131 035117 312 04 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED?
7132 035120 005 04 0 00 033073 ER5 E,33073 ;C(E) WAS CLOBBERED
7133 035121 321 10 0 00 035107 JUMPL AC+2,F33070 ;LOOP ON ERROR SWITCH^
7134
7135 003310 ADR=ADR+1
7136 000010 000000 XX=XX+XX
7137 IFE XX,<XX=1>
7138
7139 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7140 000000 IFG XX,<V1=0>
7141 IFL XX,<V1=-1>
7142 MOP1 (\ADR,1,-1,XX,V1,XX)^
7143 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7144 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7145 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7146 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7147
7148 000001 F33100: AA1=1 ;INITIAL C(AC)
7149 035122 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7150 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7151 035123 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7152 000010 000000 AEE=XX ;INITIAL C(E)
7153 035124 200 04 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7154 035125 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7155 000000 AR1=V1 ;EXPECTED RESULT IN AC
7156 035126 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7157 035127 003 06 0 00 033101 ER3 AC,33101 ;HIGH PRODUCT FAILED
7158 000010 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7159 035130 312 07 0 00 044025 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7160 035131 004 07 0 00 033102 ER4 AC+1,33102 ;LOW PRODUCT FAILED
7161 000010 000000 AEE=XX ;INITIAL C(E)
7162 035132 312 04 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED?
7163 035133 005 04 0 00 033103 ER5 E,33103 ;C(E) WAS CLOBBERED
7164 035134 321 10 0 00 035122 JUMPL AC+2,F33100 ;LOOP ON ERROR SWITCH^
7165
7166 003311 ADR=ADR+1
7167 000020 000000 XX=XX+XX
7168 IFE XX,<XX=1>
7169
7170 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7171 000000 IFG XX,<V1=0>
7172 IFL XX,<V1=-1>
7173 MOP1 (\ADR,1,-1,XX,V1,XX)^
7174 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7175 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7176 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0150
7177 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7178
7179 000001 F33110: AA1=1 ;INITIAL C(AC)
7180 035135 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7181 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7182 035136 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7183 000020 000000 AEE=XX ;INITIAL C(E)
7184 035137 200 04 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7185 035140 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7186 000000 AR1=V1 ;EXPECTED RESULT IN AC
7187 035141 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7188 035142 003 06 0 00 033111 ER3 AC,33111 ;HIGH PRODUCT FAILED
7189 000020 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7190 035143 312 07 0 00 044026 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7191 035144 004 07 0 00 033112 ER4 AC+1,33112 ;LOW PRODUCT FAILED
7192 000020 000000 AEE=XX ;INITIAL C(E)
7193 035145 312 04 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED?
7194 035146 005 04 0 00 033113 ER5 E,33113 ;C(E) WAS CLOBBERED
7195 035147 321 10 0 00 035135 JUMPL AC+2,F33110 ;LOOP ON ERROR SWITCH^
7196
7197 003312 ADR=ADR+1
7198 000040 000000 XX=XX+XX
7199 IFE XX,<XX=1>
7200
7201 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7202 000000 IFG XX,<V1=0>
7203 IFL XX,<V1=-1>
7204 MOP1 (\ADR,1,-1,XX,V1,XX)^
7205 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7206 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7207 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7208 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7209
7210 000001 F33120: AA1=1 ;INITIAL C(AC)
7211 035150 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7212 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7213 035151 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7214 000040 000000 AEE=XX ;INITIAL C(E)
7215 035152 200 04 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7216 035153 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7217 000000 AR1=V1 ;EXPECTED RESULT IN AC
7218 035154 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7219 035155 003 06 0 00 033121 ER3 AC,33121 ;HIGH PRODUCT FAILED
7220 000040 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7221 035156 312 07 0 00 044027 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7222 035157 004 07 0 00 033122 ER4 AC+1,33122 ;LOW PRODUCT FAILED
7223 000040 000000 AEE=XX ;INITIAL C(E)
7224 035160 312 04 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED?
7225 035161 005 04 0 00 033123 ER5 E,33123 ;C(E) WAS CLOBBERED
7226 035162 321 10 0 00 035150 JUMPL AC+2,F33120 ;LOOP ON ERROR SWITCH^
7227
7228 003313 ADR=ADR+1
7229 000100 000000 XX=XX+XX
7230 IFE XX,<XX=1>
7231
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0151
7232 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7233 000000 IFG XX,<V1=0>
7234 IFL XX,<V1=-1>
7235 MOP1 (\ADR,1,-1,XX,V1,XX)^
7236 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7237 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7238 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7239 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7240
7241 000001 F33130: AA1=1 ;INITIAL C(AC)
7242 035163 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7243 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7244 035164 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7245 000100 000000 AEE=XX ;INITIAL C(E)
7246 035165 200 04 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7247 035166 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7248 000000 AR1=V1 ;EXPECTED RESULT IN AC
7249 035167 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7250 035170 003 06 0 00 033131 ER3 AC,33131 ;HIGH PRODUCT FAILED
7251 000100 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7252 035171 312 07 0 00 044030 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7253 035172 004 07 0 00 033132 ER4 AC+1,33132 ;LOW PRODUCT FAILED
7254 000100 000000 AEE=XX ;INITIAL C(E)
7255 035173 312 04 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED?
7256 035174 005 04 0 00 033133 ER5 E,33133 ;C(E) WAS CLOBBERED
7257 035175 321 10 0 00 035163 JUMPL AC+2,F33130 ;LOOP ON ERROR SWITCH^
7258
7259 003314 ADR=ADR+1
7260 000200 000000 XX=XX+XX
7261 IFE XX,<XX=1>
7262
7263 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7264 000000 IFG XX,<V1=0>
7265 IFL XX,<V1=-1>
7266 MOP1 (\ADR,1,-1,XX,V1,XX)^
7267 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7268 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7269 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7270 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7271
7272 000001 F33140: AA1=1 ;INITIAL C(AC)
7273 035176 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7274 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7275 035177 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7276 000200 000000 AEE=XX ;INITIAL C(E)
7277 035200 200 04 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7278 035201 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7279 000000 AR1=V1 ;EXPECTED RESULT IN AC
7280 035202 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7281 035203 003 06 0 00 033141 ER3 AC,33141 ;HIGH PRODUCT FAILED
7282 000200 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7283 035204 312 07 0 00 044031 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7284 035205 004 07 0 00 033142 ER4 AC+1,33142 ;LOW PRODUCT FAILED
7285 000200 000000 AEE=XX ;INITIAL C(E)
7286 035206 312 04 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0152
7287 035207 005 04 0 00 033143 ER5 E,33143 ;C(E) WAS CLOBBERED
7288 035210 321 10 0 00 035176 JUMPL AC+2,F33140 ;LOOP ON ERROR SWITCH^
7289
7290 003315 ADR=ADR+1
7291 000400 000000 XX=XX+XX
7292 IFE XX,<XX=1>
7293
7294 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7295 000000 IFG XX,<V1=0>
7296 IFL XX,<V1=-1>
7297 MOP1 (\ADR,1,-1,XX,V1,XX)^
7298 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7299 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7300 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7301 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7302
7303 000001 F33150: AA1=1 ;INITIAL C(AC)
7304 035211 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7305 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7306 035212 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7307 000400 000000 AEE=XX ;INITIAL C(E)
7308 035213 200 04 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7309 035214 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7310 000000 AR1=V1 ;EXPECTED RESULT IN AC
7311 035215 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7312 035216 003 06 0 00 033151 ER3 AC,33151 ;HIGH PRODUCT FAILED
7313 000400 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7314 035217 312 07 0 00 044032 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7315 035220 004 07 0 00 033152 ER4 AC+1,33152 ;LOW PRODUCT FAILED
7316 000400 000000 AEE=XX ;INITIAL C(E)
7317 035221 312 04 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED?
7318 035222 005 04 0 00 033153 ER5 E,33153 ;C(E) WAS CLOBBERED
7319 035223 321 10 0 00 035211 JUMPL AC+2,F33150 ;LOOP ON ERROR SWITCH^
7320
7321 003316 ADR=ADR+1
7322 001000 000000 XX=XX+XX
7323 IFE XX,<XX=1>
7324
7325 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7326 000000 IFG XX,<V1=0>
7327 IFL XX,<V1=-1>
7328 MOP1 (\ADR,1,-1,XX,V1,XX)^
7329 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7330 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7331 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7332 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7333
7334 000001 F33160: AA1=1 ;INITIAL C(AC)
7335 035224 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7336 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7337 035225 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7338 001000 000000 AEE=XX ;INITIAL C(E)
7339 035226 200 04 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7340 035227 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7341 000000 AR1=V1 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0153
7342 035230 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7343 035231 003 06 0 00 033161 ER3 AC,33161 ;HIGH PRODUCT FAILED
7344 001000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7345 035232 312 07 0 00 044033 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7346 035233 004 07 0 00 033162 ER4 AC+1,33162 ;LOW PRODUCT FAILED
7347 001000 000000 AEE=XX ;INITIAL C(E)
7348 035234 312 04 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED?
7349 035235 005 04 0 00 033163 ER5 E,33163 ;C(E) WAS CLOBBERED
7350 035236 321 10 0 00 035224 JUMPL AC+2,F33160 ;LOOP ON ERROR SWITCH^
7351
7352 003317 ADR=ADR+1
7353 002000 000000 XX=XX+XX
7354 IFE XX,<XX=1>
7355
7356 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7357 000000 IFG XX,<V1=0>
7358 IFL XX,<V1=-1>
7359 MOP1 (\ADR,1,-1,XX,V1,XX)^
7360 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7361 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7362 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7363 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7364
7365 000001 F33170: AA1=1 ;INITIAL C(AC)
7366 035237 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7367 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7368 035240 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7369 002000 000000 AEE=XX ;INITIAL C(E)
7370 035241 200 04 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7371 035242 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7372 000000 AR1=V1 ;EXPECTED RESULT IN AC
7373 035243 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7374 035244 003 06 0 00 033171 ER3 AC,33171 ;HIGH PRODUCT FAILED
7375 002000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7376 035245 312 07 0 00 044034 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7377 035246 004 07 0 00 033172 ER4 AC+1,33172 ;LOW PRODUCT FAILED
7378 002000 000000 AEE=XX ;INITIAL C(E)
7379 035247 312 04 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED?
7380 035250 005 04 0 00 033173 ER5 E,33173 ;C(E) WAS CLOBBERED
7381 035251 321 10 0 00 035237 JUMPL AC+2,F33170 ;LOOP ON ERROR SWITCH^
7382
7383 003320 ADR=ADR+1
7384 004000 000000 XX=XX+XX
7385 IFE XX,<XX=1>
7386
7387 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7388 000000 IFG XX,<V1=0>
7389 IFL XX,<V1=-1>
7390 MOP1 (\ADR,1,-1,XX,V1,XX)^
7391 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7392 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7393 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7394 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7395
7396 000001 F33200: AA1=1 ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0154
7397 035252 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7398 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7399 035253 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7400 004000 000000 AEE=XX ;INITIAL C(E)
7401 035254 200 04 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7402 035255 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7403 000000 AR1=V1 ;EXPECTED RESULT IN AC
7404 035256 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7405 035257 003 06 0 00 033201 ER3 AC,33201 ;HIGH PRODUCT FAILED
7406 004000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7407 035260 312 07 0 00 044035 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7408 035261 004 07 0 00 033202 ER4 AC+1,33202 ;LOW PRODUCT FAILED
7409 004000 000000 AEE=XX ;INITIAL C(E)
7410 035262 312 04 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED?
7411 035263 005 04 0 00 033203 ER5 E,33203 ;C(E) WAS CLOBBERED
7412 035264 321 10 0 00 035252 JUMPL AC+2,F33200 ;LOOP ON ERROR SWITCH^
7413
7414 003321 ADR=ADR+1
7415 010000 000000 XX=XX+XX
7416 IFE XX,<XX=1>
7417
7418 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7419 000000 IFG XX,<V1=0>
7420 IFL XX,<V1=-1>
7421 MOP1 (\ADR,1,-1,XX,V1,XX)^
7422 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7423 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7424 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7425 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7426
7427 000001 F33210: AA1=1 ;INITIAL C(AC)
7428 035265 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7429 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7430 035266 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7431 010000 000000 AEE=XX ;INITIAL C(E)
7432 035267 200 04 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7433 035270 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7434 000000 AR1=V1 ;EXPECTED RESULT IN AC
7435 035271 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7436 035272 003 06 0 00 033211 ER3 AC,33211 ;HIGH PRODUCT FAILED
7437 010000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7438 035273 312 07 0 00 044036 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7439 035274 004 07 0 00 033212 ER4 AC+1,33212 ;LOW PRODUCT FAILED
7440 010000 000000 AEE=XX ;INITIAL C(E)
7441 035275 312 04 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED?
7442 035276 005 04 0 00 033213 ER5 E,33213 ;C(E) WAS CLOBBERED
7443 035277 321 10 0 00 035265 JUMPL AC+2,F33210 ;LOOP ON ERROR SWITCH^
7444
7445 003322 ADR=ADR+1
7446 020000 000000 XX=XX+XX
7447 IFE XX,<XX=1>
7448
7449 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7450 000000 IFG XX,<V1=0>
7451 IFL XX,<V1=-1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0155
7452 MOP1 (\ADR,1,-1,XX,V1,XX)^
7453 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7454 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7455 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7456 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7457
7458 000001 F33220: AA1=1 ;INITIAL C(AC)
7459 035300 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7460 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7461 035301 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7462 020000 000000 AEE=XX ;INITIAL C(E)
7463 035302 200 04 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7464 035303 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7465 000000 AR1=V1 ;EXPECTED RESULT IN AC
7466 035304 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7467 035305 003 06 0 00 033221 ER3 AC,33221 ;HIGH PRODUCT FAILED
7468 020000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7469 035306 312 07 0 00 044037 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7470 035307 004 07 0 00 033222 ER4 AC+1,33222 ;LOW PRODUCT FAILED
7471 020000 000000 AEE=XX ;INITIAL C(E)
7472 035310 312 04 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED?
7473 035311 005 04 0 00 033223 ER5 E,33223 ;C(E) WAS CLOBBERED
7474 035312 321 10 0 00 035300 JUMPL AC+2,F33220 ;LOOP ON ERROR SWITCH^
7475
7476 003323 ADR=ADR+1
7477 040000 000000 XX=XX+XX
7478 IFE XX,<XX=1>
7479
7480 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7481 000000 IFG XX,<V1=0>
7482 IFL XX,<V1=-1>
7483 MOP1 (\ADR,1,-1,XX,V1,XX)^
7484 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7485 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7486 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7487 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7488
7489 000001 F33230: AA1=1 ;INITIAL C(AC)
7490 035313 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7491 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7492 035314 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7493 040000 000000 AEE=XX ;INITIAL C(E)
7494 035315 200 04 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7495 035316 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7496 000000 AR1=V1 ;EXPECTED RESULT IN AC
7497 035317 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7498 035320 003 06 0 00 033231 ER3 AC,33231 ;HIGH PRODUCT FAILED
7499 040000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7500 035321 312 07 0 00 044040 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7501 035322 004 07 0 00 033232 ER4 AC+1,33232 ;LOW PRODUCT FAILED
7502 040000 000000 AEE=XX ;INITIAL C(E)
7503 035323 312 04 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED?
7504 035324 005 04 0 00 033233 ER5 E,33233 ;C(E) WAS CLOBBERED
7505 035325 321 10 0 00 035313 JUMPL AC+2,F33230 ;LOOP ON ERROR SWITCH^
7506
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0156
7507 003324 ADR=ADR+1
7508 100000 000000 XX=XX+XX
7509 IFE XX,<XX=1>
7510
7511 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7512 000000 IFG XX,<V1=0>
7513 IFL XX,<V1=-1>
7514 MOP1 (\ADR,1,-1,XX,V1,XX)^
7515 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7516 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7517 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7518 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7519
7520 000001 F33240: AA1=1 ;INITIAL C(AC)
7521 035326 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7522 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7523 035327 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7524 100000 000000 AEE=XX ;INITIAL C(E)
7525 035330 200 04 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7526 035331 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7527 000000 AR1=V1 ;EXPECTED RESULT IN AC
7528 035332 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7529 035333 003 06 0 00 033241 ER3 AC,33241 ;HIGH PRODUCT FAILED
7530 100000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7531 035334 312 07 0 00 044041 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7532 035335 004 07 0 00 033242 ER4 AC+1,33242 ;LOW PRODUCT FAILED
7533 100000 000000 AEE=XX ;INITIAL C(E)
7534 035336 312 04 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED?
7535 035337 005 04 0 00 033243 ER5 E,33243 ;C(E) WAS CLOBBERED
7536 035340 321 10 0 00 035326 JUMPL AC+2,F33240 ;LOOP ON ERROR SWITCH^
7537
7538 003325 ADR=ADR+1
7539 200000 000000 XX=XX+XX
7540 IFE XX,<XX=1>
7541
7542 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7543 000000 IFG XX,<V1=0>
7544 IFL XX,<V1=-1>
7545 MOP1 (\ADR,1,-1,XX,V1,XX)^
7546 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7547 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7548 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7549 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7550
7551 000001 F33250: AA1=1 ;INITIAL C(AC)
7552 035341 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7553 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7554 035342 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7555 200000 000000 AEE=XX ;INITIAL C(E)
7556 035343 200 04 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7557 035344 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7558 000000 AR1=V1 ;EXPECTED RESULT IN AC
7559 035345 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7560 035346 003 06 0 00 033251 ER3 AC,33251 ;HIGH PRODUCT FAILED
7561 200000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0157
7562 035347 312 07 0 00 044042 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7563 035350 004 07 0 00 033252 ER4 AC+1,33252 ;LOW PRODUCT FAILED
7564 200000 000000 AEE=XX ;INITIAL C(E)
7565 035351 312 04 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED?
7566 035352 005 04 0 00 033253 ER5 E,33253 ;C(E) WAS CLOBBERED
7567 035353 321 10 0 00 035341 JUMPL AC+2,F33250 ;LOOP ON ERROR SWITCH^
7568
7569 003326 ADR=ADR+1
7570 400000 000000 XX=XX+XX
7571 IFE XX,<XX=1>
7572
7573 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
7574 IFG XX,<V1=0>
7575 777777 777777 IFL XX,<V1=-1>
7576 MOP1 (\ADR,1,-1,XX,V1,XX)^
7577 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
7578 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7579 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
7580 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7581
7582 000001 F33260: AA1=1 ;INITIAL C(AC)
7583 035354 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
7584 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7585 035355 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7586 400000 000000 AEE=XX ;INITIAL C(E)
7587 035356 200 04 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
7588 035357 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7589 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
7590 035360 312 06 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7591 035361 003 06 0 00 033261 ER3 AC,33261 ;HIGH PRODUCT FAILED
7592 400000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
7593 035362 312 07 0 00 044043 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7594 035363 004 07 0 00 033262 ER4 AC+1,33262 ;LOW PRODUCT FAILED
7595 400000 000000 AEE=XX ;INITIAL C(E)
7596 035364 312 04 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED?
7597 035365 005 04 0 00 033263 ER5 E,33263 ;C(E) WAS CLOBBERED
7598 035366 321 10 0 00 035354 JUMPL AC+2,F33260 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0158
7599 000005 AC=5
7600 000003 E=<AC-2>&17
7601 SAVEAC (1,1)^
7602 035367 201 07 0 00 035367 MOVEI AC+2,. ;SAVE TEST PC
7603 035370 202 07 0 00 030051 MOVEM AC+2,TESTPC
7604 035371 201 07 0 00 000007 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
7605 035372 202 07 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
7606 000000 XX=0
7607
7608 REPEAT ^D35,< ;LAST CASE IS DIFFERENT
7609 ADR=ADR+1
7610 XX=XX+XX
7611 IFE XX,<XX=1>
7612
7613 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7614 IFG XX,<V1=0>
7615 IFL XX,<V1=-1>
7616 MOP1 (\ADR,XX,-1,1,V1,XX)>
7617 ;LAST CASE IS DIFFERENT
7618 003327 ADR=ADR+1
7619 000000 XX=XX+XX
7620 000001 IFE XX,<XX=1>
7621
7622 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7623 000000 IFG XX,<V1=0>
7624 IFL XX,<V1=-1>
7625 MOP1 (\ADR,XX,-1,1,V1,XX)^
7626 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7627 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7628 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7629 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7630
7631 000001 F33270: AA1=XX ;INITIAL C(AC)
7632 035373 200 05 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7633 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7634 035374 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7635 000001 AEE=1 ;INITIAL C(E)
7636 035375 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7637 035376 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7638 000000 AR1=V1 ;EXPECTED RESULT IN AC
7639 035377 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7640 035400 003 05 0 00 033271 ER3 AC,33271 ;HIGH PRODUCT FAILED
7641 000001 AR2=XX ;EXPECTED RESULT IN AC+1
7642 035401 312 06 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7643 035402 004 06 0 00 033272 ER4 AC+1,33272 ;LOW PRODUCT FAILED
7644 000001 AEE=1 ;INITIAL C(E)
7645 035403 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7646 035404 005 03 0 00 033273 ER5 E,33273 ;C(E) WAS CLOBBERED
7647 035405 321 07 0 00 035373 JUMPL AC+2,F33270 ;LOOP ON ERROR SWITCH^
7648 ;LAST CASE IS DIFFERENT
7649 003330 ADR=ADR+1
7650 000002 XX=XX+XX
7651 IFE XX,<XX=1>
7652
7653 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0159
7654 000000 IFG XX,<V1=0>
7655 IFL XX,<V1=-1>
7656 MOP1 (\ADR,XX,-1,1,V1,XX)^
7657 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7658 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7659 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7660 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7661
7662 000002 F33300: AA1=XX ;INITIAL C(AC)
7663 035406 200 05 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7664 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7665 035407 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7666 000001 AEE=1 ;INITIAL C(E)
7667 035410 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7668 035411 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7669 000000 AR1=V1 ;EXPECTED RESULT IN AC
7670 035412 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7671 035413 003 05 0 00 033301 ER3 AC,33301 ;HIGH PRODUCT FAILED
7672 000002 AR2=XX ;EXPECTED RESULT IN AC+1
7673 035414 312 06 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7674 035415 004 06 0 00 033302 ER4 AC+1,33302 ;LOW PRODUCT FAILED
7675 000001 AEE=1 ;INITIAL C(E)
7676 035416 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7677 035417 005 03 0 00 033303 ER5 E,33303 ;C(E) WAS CLOBBERED
7678 035420 321 07 0 00 035406 JUMPL AC+2,F33300 ;LOOP ON ERROR SWITCH^
7679 ;LAST CASE IS DIFFERENT
7680 003331 ADR=ADR+1
7681 000004 XX=XX+XX
7682 IFE XX,<XX=1>
7683
7684 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7685 000000 IFG XX,<V1=0>
7686 IFL XX,<V1=-1>
7687 MOP1 (\ADR,XX,-1,1,V1,XX)^
7688 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7689 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7690 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7691 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7692
7693 000004 F33310: AA1=XX ;INITIAL C(AC)
7694 035421 200 05 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7695 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7696 035422 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7697 000001 AEE=1 ;INITIAL C(E)
7698 035423 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7699 035424 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7700 000000 AR1=V1 ;EXPECTED RESULT IN AC
7701 035425 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7702 035426 003 05 0 00 033311 ER3 AC,33311 ;HIGH PRODUCT FAILED
7703 000004 AR2=XX ;EXPECTED RESULT IN AC+1
7704 035427 312 06 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7705 035430 004 06 0 00 033312 ER4 AC+1,33312 ;LOW PRODUCT FAILED
7706 000001 AEE=1 ;INITIAL C(E)
7707 035431 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7708 035432 005 03 0 00 033313 ER5 E,33313 ;C(E) WAS CLOBBERED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0160
7709 035433 321 07 0 00 035421 JUMPL AC+2,F33310 ;LOOP ON ERROR SWITCH^
7710 ;LAST CASE IS DIFFERENT
7711 003332 ADR=ADR+1
7712 000010 XX=XX+XX
7713 IFE XX,<XX=1>
7714
7715 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7716 000000 IFG XX,<V1=0>
7717 IFL XX,<V1=-1>
7718 MOP1 (\ADR,XX,-1,1,V1,XX)^
7719 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7720 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7721 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7722 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7723
7724 000010 F33320: AA1=XX ;INITIAL C(AC)
7725 035434 200 05 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7726 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7727 035435 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7728 000001 AEE=1 ;INITIAL C(E)
7729 035436 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7730 035437 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7731 000000 AR1=V1 ;EXPECTED RESULT IN AC
7732 035440 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7733 035441 003 05 0 00 033321 ER3 AC,33321 ;HIGH PRODUCT FAILED
7734 000010 AR2=XX ;EXPECTED RESULT IN AC+1
7735 035442 312 06 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7736 035443 004 06 0 00 033322 ER4 AC+1,33322 ;LOW PRODUCT FAILED
7737 000001 AEE=1 ;INITIAL C(E)
7738 035444 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7739 035445 005 03 0 00 033323 ER5 E,33323 ;C(E) WAS CLOBBERED
7740 035446 321 07 0 00 035434 JUMPL AC+2,F33320 ;LOOP ON ERROR SWITCH^
7741 ;LAST CASE IS DIFFERENT
7742 003333 ADR=ADR+1
7743 000020 XX=XX+XX
7744 IFE XX,<XX=1>
7745
7746 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7747 000000 IFG XX,<V1=0>
7748 IFL XX,<V1=-1>
7749 MOP1 (\ADR,XX,-1,1,V1,XX)^
7750 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7751 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7752 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7753 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7754
7755 000020 F33330: AA1=XX ;INITIAL C(AC)
7756 035447 200 05 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7757 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7758 035450 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7759 000001 AEE=1 ;INITIAL C(E)
7760 035451 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7761 035452 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7762 000000 AR1=V1 ;EXPECTED RESULT IN AC
7763 035453 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0161
7764 035454 003 05 0 00 033331 ER3 AC,33331 ;HIGH PRODUCT FAILED
7765 000020 AR2=XX ;EXPECTED RESULT IN AC+1
7766 035455 312 06 0 00 044004 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7767 035456 004 06 0 00 033332 ER4 AC+1,33332 ;LOW PRODUCT FAILED
7768 000001 AEE=1 ;INITIAL C(E)
7769 035457 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7770 035460 005 03 0 00 033333 ER5 E,33333 ;C(E) WAS CLOBBERED
7771 035461 321 07 0 00 035447 JUMPL AC+2,F33330 ;LOOP ON ERROR SWITCH^
7772 ;LAST CASE IS DIFFERENT
7773 003334 ADR=ADR+1
7774 000040 XX=XX+XX
7775 IFE XX,<XX=1>
7776
7777 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7778 000000 IFG XX,<V1=0>
7779 IFL XX,<V1=-1>
7780 MOP1 (\ADR,XX,-1,1,V1,XX)^
7781 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7782 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7783 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7784 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7785
7786 000040 F33340: AA1=XX ;INITIAL C(AC)
7787 035462 200 05 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7788 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7789 035463 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7790 000001 AEE=1 ;INITIAL C(E)
7791 035464 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7792 035465 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7793 000000 AR1=V1 ;EXPECTED RESULT IN AC
7794 035466 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7795 035467 003 05 0 00 033341 ER3 AC,33341 ;HIGH PRODUCT FAILED
7796 000040 AR2=XX ;EXPECTED RESULT IN AC+1
7797 035470 312 06 0 00 044005 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7798 035471 004 06 0 00 033342 ER4 AC+1,33342 ;LOW PRODUCT FAILED
7799 000001 AEE=1 ;INITIAL C(E)
7800 035472 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7801 035473 005 03 0 00 033343 ER5 E,33343 ;C(E) WAS CLOBBERED
7802 035474 321 07 0 00 035462 JUMPL AC+2,F33340 ;LOOP ON ERROR SWITCH^
7803 ;LAST CASE IS DIFFERENT
7804 003335 ADR=ADR+1
7805 000100 XX=XX+XX
7806 IFE XX,<XX=1>
7807
7808 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7809 000000 IFG XX,<V1=0>
7810 IFL XX,<V1=-1>
7811 MOP1 (\ADR,XX,-1,1,V1,XX)^
7812 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7813 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7814 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7815 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7816
7817 000100 F33350: AA1=XX ;INITIAL C(AC)
7818 035475 200 05 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0162
7819 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7820 035476 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7821 000001 AEE=1 ;INITIAL C(E)
7822 035477 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7823 035500 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7824 000000 AR1=V1 ;EXPECTED RESULT IN AC
7825 035501 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7826 035502 003 05 0 00 033351 ER3 AC,33351 ;HIGH PRODUCT FAILED
7827 000100 AR2=XX ;EXPECTED RESULT IN AC+1
7828 035503 312 06 0 00 044006 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7829 035504 004 06 0 00 033352 ER4 AC+1,33352 ;LOW PRODUCT FAILED
7830 000001 AEE=1 ;INITIAL C(E)
7831 035505 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7832 035506 005 03 0 00 033353 ER5 E,33353 ;C(E) WAS CLOBBERED
7833 035507 321 07 0 00 035475 JUMPL AC+2,F33350 ;LOOP ON ERROR SWITCH^
7834 ;LAST CASE IS DIFFERENT
7835 003336 ADR=ADR+1
7836 000200 XX=XX+XX
7837 IFE XX,<XX=1>
7838
7839 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7840 000000 IFG XX,<V1=0>
7841 IFL XX,<V1=-1>
7842 MOP1 (\ADR,XX,-1,1,V1,XX)^
7843 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7844 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7845 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7846 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7847
7848 000200 F33360: AA1=XX ;INITIAL C(AC)
7849 035510 200 05 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7850 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7851 035511 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7852 000001 AEE=1 ;INITIAL C(E)
7853 035512 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7854 035513 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7855 000000 AR1=V1 ;EXPECTED RESULT IN AC
7856 035514 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7857 035515 003 05 0 00 033361 ER3 AC,33361 ;HIGH PRODUCT FAILED
7858 000200 AR2=XX ;EXPECTED RESULT IN AC+1
7859 035516 312 06 0 00 044007 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7860 035517 004 06 0 00 033362 ER4 AC+1,33362 ;LOW PRODUCT FAILED
7861 000001 AEE=1 ;INITIAL C(E)
7862 035520 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7863 035521 005 03 0 00 033363 ER5 E,33363 ;C(E) WAS CLOBBERED
7864 035522 321 07 0 00 035510 JUMPL AC+2,F33360 ;LOOP ON ERROR SWITCH^
7865 ;LAST CASE IS DIFFERENT
7866 003337 ADR=ADR+1
7867 000400 XX=XX+XX
7868 IFE XX,<XX=1>
7869
7870 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7871 000000 IFG XX,<V1=0>
7872 IFL XX,<V1=-1>
7873 MOP1 (\ADR,XX,-1,1,V1,XX)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0163
7874 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7875 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7876 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7877 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7878
7879 000400 F33370: AA1=XX ;INITIAL C(AC)
7880 035523 200 05 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7881 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7882 035524 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7883 000001 AEE=1 ;INITIAL C(E)
7884 035525 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7885 035526 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7886 000000 AR1=V1 ;EXPECTED RESULT IN AC
7887 035527 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7888 035530 003 05 0 00 033371 ER3 AC,33371 ;HIGH PRODUCT FAILED
7889 000400 AR2=XX ;EXPECTED RESULT IN AC+1
7890 035531 312 06 0 00 044010 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7891 035532 004 06 0 00 033372 ER4 AC+1,33372 ;LOW PRODUCT FAILED
7892 000001 AEE=1 ;INITIAL C(E)
7893 035533 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7894 035534 005 03 0 00 033373 ER5 E,33373 ;C(E) WAS CLOBBERED
7895 035535 321 07 0 00 035523 JUMPL AC+2,F33370 ;LOOP ON ERROR SWITCH^
7896 ;LAST CASE IS DIFFERENT
7897 003340 ADR=ADR+1
7898 001000 XX=XX+XX
7899 IFE XX,<XX=1>
7900
7901 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7902 000000 IFG XX,<V1=0>
7903 IFL XX,<V1=-1>
7904 MOP1 (\ADR,XX,-1,1,V1,XX)^
7905 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7906 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7907 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7908 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7909
7910 001000 F33400: AA1=XX ;INITIAL C(AC)
7911 035536 200 05 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7912 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7913 035537 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7914 000001 AEE=1 ;INITIAL C(E)
7915 035540 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7916 035541 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7917 000000 AR1=V1 ;EXPECTED RESULT IN AC
7918 035542 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7919 035543 003 05 0 00 033401 ER3 AC,33401 ;HIGH PRODUCT FAILED
7920 001000 AR2=XX ;EXPECTED RESULT IN AC+1
7921 035544 312 06 0 00 044011 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7922 035545 004 06 0 00 033402 ER4 AC+1,33402 ;LOW PRODUCT FAILED
7923 000001 AEE=1 ;INITIAL C(E)
7924 035546 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7925 035547 005 03 0 00 033403 ER5 E,33403 ;C(E) WAS CLOBBERED
7926 035550 321 07 0 00 035536 JUMPL AC+2,F33400 ;LOOP ON ERROR SWITCH^
7927 ;LAST CASE IS DIFFERENT
7928 003341 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0164
7929 002000 XX=XX+XX
7930 IFE XX,<XX=1>
7931
7932 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7933 000000 IFG XX,<V1=0>
7934 IFL XX,<V1=-1>
7935 MOP1 (\ADR,XX,-1,1,V1,XX)^
7936 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7937 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7938 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7939 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7940
7941 002000 F33410: AA1=XX ;INITIAL C(AC)
7942 035551 200 05 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7943 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7944 035552 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7945 000001 AEE=1 ;INITIAL C(E)
7946 035553 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7947 035554 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7948 000000 AR1=V1 ;EXPECTED RESULT IN AC
7949 035555 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7950 035556 003 05 0 00 033411 ER3 AC,33411 ;HIGH PRODUCT FAILED
7951 002000 AR2=XX ;EXPECTED RESULT IN AC+1
7952 035557 312 06 0 00 044012 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
7953 035560 004 06 0 00 033412 ER4 AC+1,33412 ;LOW PRODUCT FAILED
7954 000001 AEE=1 ;INITIAL C(E)
7955 035561 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7956 035562 005 03 0 00 033413 ER5 E,33413 ;C(E) WAS CLOBBERED
7957 035563 321 07 0 00 035551 JUMPL AC+2,F33410 ;LOOP ON ERROR SWITCH^
7958 ;LAST CASE IS DIFFERENT
7959 003342 ADR=ADR+1
7960 004000 XX=XX+XX
7961 IFE XX,<XX=1>
7962
7963 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7964 000000 IFG XX,<V1=0>
7965 IFL XX,<V1=-1>
7966 MOP1 (\ADR,XX,-1,1,V1,XX)^
7967 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7968 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
7969 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
7970 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
7971
7972 004000 F33420: AA1=XX ;INITIAL C(AC)
7973 035564 200 05 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
7974 777777 777777 AA2=-1 ;INITIAL C(AC+1)
7975 035565 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
7976 000001 AEE=1 ;INITIAL C(E)
7977 035566 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
7978 035567 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
7979 000000 AR1=V1 ;EXPECTED RESULT IN AC
7980 035570 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
7981 035571 003 05 0 00 033421 ER3 AC,33421 ;HIGH PRODUCT FAILED
7982 004000 AR2=XX ;EXPECTED RESULT IN AC+1
7983 035572 312 06 0 00 044013 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0165
7984 035573 004 06 0 00 033422 ER4 AC+1,33422 ;LOW PRODUCT FAILED
7985 000001 AEE=1 ;INITIAL C(E)
7986 035574 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
7987 035575 005 03 0 00 033423 ER5 E,33423 ;C(E) WAS CLOBBERED
7988 035576 321 07 0 00 035564 JUMPL AC+2,F33420 ;LOOP ON ERROR SWITCH^
7989 ;LAST CASE IS DIFFERENT
7990 003343 ADR=ADR+1
7991 010000 XX=XX+XX
7992 IFE XX,<XX=1>
7993
7994 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
7995 000000 IFG XX,<V1=0>
7996 IFL XX,<V1=-1>
7997 MOP1 (\ADR,XX,-1,1,V1,XX)^
7998 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
7999 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8000 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8001 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8002
8003 010000 F33430: AA1=XX ;INITIAL C(AC)
8004 035577 200 05 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8005 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8006 035600 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8007 000001 AEE=1 ;INITIAL C(E)
8008 035601 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8009 035602 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8010 000000 AR1=V1 ;EXPECTED RESULT IN AC
8011 035603 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8012 035604 003 05 0 00 033431 ER3 AC,33431 ;HIGH PRODUCT FAILED
8013 010000 AR2=XX ;EXPECTED RESULT IN AC+1
8014 035605 312 06 0 00 044014 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8015 035606 004 06 0 00 033432 ER4 AC+1,33432 ;LOW PRODUCT FAILED
8016 000001 AEE=1 ;INITIAL C(E)
8017 035607 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8018 035610 005 03 0 00 033433 ER5 E,33433 ;C(E) WAS CLOBBERED
8019 035611 321 07 0 00 035577 JUMPL AC+2,F33430 ;LOOP ON ERROR SWITCH^
8020 ;LAST CASE IS DIFFERENT
8021 003344 ADR=ADR+1
8022 020000 XX=XX+XX
8023 IFE XX,<XX=1>
8024
8025 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8026 000000 IFG XX,<V1=0>
8027 IFL XX,<V1=-1>
8028 MOP1 (\ADR,XX,-1,1,V1,XX)^
8029 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8030 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8031 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8032 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8033
8034 020000 F33440: AA1=XX ;INITIAL C(AC)
8035 035612 200 05 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8036 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8037 035613 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8038 000001 AEE=1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0166
8039 035614 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8040 035615 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8041 000000 AR1=V1 ;EXPECTED RESULT IN AC
8042 035616 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8043 035617 003 05 0 00 033441 ER3 AC,33441 ;HIGH PRODUCT FAILED
8044 020000 AR2=XX ;EXPECTED RESULT IN AC+1
8045 035620 312 06 0 00 044015 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8046 035621 004 06 0 00 033442 ER4 AC+1,33442 ;LOW PRODUCT FAILED
8047 000001 AEE=1 ;INITIAL C(E)
8048 035622 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8049 035623 005 03 0 00 033443 ER5 E,33443 ;C(E) WAS CLOBBERED
8050 035624 321 07 0 00 035612 JUMPL AC+2,F33440 ;LOOP ON ERROR SWITCH^
8051 ;LAST CASE IS DIFFERENT
8052 003345 ADR=ADR+1
8053 040000 XX=XX+XX
8054 IFE XX,<XX=1>
8055
8056 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8057 000000 IFG XX,<V1=0>
8058 IFL XX,<V1=-1>
8059 MOP1 (\ADR,XX,-1,1,V1,XX)^
8060 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8061 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8062 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8063 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8064
8065 040000 F33450: AA1=XX ;INITIAL C(AC)
8066 035625 200 05 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8067 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8068 035626 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8069 000001 AEE=1 ;INITIAL C(E)
8070 035627 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8071 035630 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8072 000000 AR1=V1 ;EXPECTED RESULT IN AC
8073 035631 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8074 035632 003 05 0 00 033451 ER3 AC,33451 ;HIGH PRODUCT FAILED
8075 040000 AR2=XX ;EXPECTED RESULT IN AC+1
8076 035633 312 06 0 00 044016 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8077 035634 004 06 0 00 033452 ER4 AC+1,33452 ;LOW PRODUCT FAILED
8078 000001 AEE=1 ;INITIAL C(E)
8079 035635 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8080 035636 005 03 0 00 033453 ER5 E,33453 ;C(E) WAS CLOBBERED
8081 035637 321 07 0 00 035625 JUMPL AC+2,F33450 ;LOOP ON ERROR SWITCH^
8082 ;LAST CASE IS DIFFERENT
8083 003346 ADR=ADR+1
8084 100000 XX=XX+XX
8085 IFE XX,<XX=1>
8086
8087 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8088 000000 IFG XX,<V1=0>
8089 IFL XX,<V1=-1>
8090 MOP1 (\ADR,XX,-1,1,V1,XX)^
8091 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8092 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8093 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0167
8094 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8095
8096 100000 F33460: AA1=XX ;INITIAL C(AC)
8097 035640 200 05 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8098 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8099 035641 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8100 000001 AEE=1 ;INITIAL C(E)
8101 035642 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8102 035643 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8103 000000 AR1=V1 ;EXPECTED RESULT IN AC
8104 035644 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8105 035645 003 05 0 00 033461 ER3 AC,33461 ;HIGH PRODUCT FAILED
8106 100000 AR2=XX ;EXPECTED RESULT IN AC+1
8107 035646 312 06 0 00 044017 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8108 035647 004 06 0 00 033462 ER4 AC+1,33462 ;LOW PRODUCT FAILED
8109 000001 AEE=1 ;INITIAL C(E)
8110 035650 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8111 035651 005 03 0 00 033463 ER5 E,33463 ;C(E) WAS CLOBBERED
8112 035652 321 07 0 00 035640 JUMPL AC+2,F33460 ;LOOP ON ERROR SWITCH^
8113 ;LAST CASE IS DIFFERENT
8114 003347 ADR=ADR+1
8115 200000 XX=XX+XX
8116 IFE XX,<XX=1>
8117
8118 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8119 000000 IFG XX,<V1=0>
8120 IFL XX,<V1=-1>
8121 MOP1 (\ADR,XX,-1,1,V1,XX)^
8122 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8123 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8124 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8125 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8126
8127 200000 F33470: AA1=XX ;INITIAL C(AC)
8128 035653 200 05 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8129 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8130 035654 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8131 000001 AEE=1 ;INITIAL C(E)
8132 035655 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8133 035656 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8134 000000 AR1=V1 ;EXPECTED RESULT IN AC
8135 035657 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8136 035660 003 05 0 00 033471 ER3 AC,33471 ;HIGH PRODUCT FAILED
8137 200000 AR2=XX ;EXPECTED RESULT IN AC+1
8138 035661 312 06 0 00 044020 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8139 035662 004 06 0 00 033472 ER4 AC+1,33472 ;LOW PRODUCT FAILED
8140 000001 AEE=1 ;INITIAL C(E)
8141 035663 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8142 035664 005 03 0 00 033473 ER5 E,33473 ;C(E) WAS CLOBBERED
8143 035665 321 07 0 00 035653 JUMPL AC+2,F33470 ;LOOP ON ERROR SWITCH^
8144 ;LAST CASE IS DIFFERENT
8145 003350 ADR=ADR+1
8146 400000 XX=XX+XX
8147 IFE XX,<XX=1>
8148
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0168
8149 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8150 000000 IFG XX,<V1=0>
8151 IFL XX,<V1=-1>
8152 MOP1 (\ADR,XX,-1,1,V1,XX)^
8153 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8154 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8155 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8156 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8157
8158 400000 F33500: AA1=XX ;INITIAL C(AC)
8159 035666 200 05 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8160 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8161 035667 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8162 000001 AEE=1 ;INITIAL C(E)
8163 035670 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8164 035671 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8165 000000 AR1=V1 ;EXPECTED RESULT IN AC
8166 035672 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8167 035673 003 05 0 00 033501 ER3 AC,33501 ;HIGH PRODUCT FAILED
8168 400000 AR2=XX ;EXPECTED RESULT IN AC+1
8169 035674 312 06 0 00 044021 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8170 035675 004 06 0 00 033502 ER4 AC+1,33502 ;LOW PRODUCT FAILED
8171 000001 AEE=1 ;INITIAL C(E)
8172 035676 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8173 035677 005 03 0 00 033503 ER5 E,33503 ;C(E) WAS CLOBBERED
8174 035700 321 07 0 00 035666 JUMPL AC+2,F33500 ;LOOP ON ERROR SWITCH^
8175 ;LAST CASE IS DIFFERENT
8176 003351 ADR=ADR+1
8177 000001 000000 XX=XX+XX
8178 IFE XX,<XX=1>
8179
8180 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8181 000000 IFG XX,<V1=0>
8182 IFL XX,<V1=-1>
8183 MOP1 (\ADR,XX,-1,1,V1,XX)^
8184 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8185 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8186 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8187 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8188
8189 000001 000000 F33510: AA1=XX ;INITIAL C(AC)
8190 035701 200 05 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8191 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8192 035702 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8193 000001 AEE=1 ;INITIAL C(E)
8194 035703 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8195 035704 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8196 000000 AR1=V1 ;EXPECTED RESULT IN AC
8197 035705 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8198 035706 003 05 0 00 033511 ER3 AC,33511 ;HIGH PRODUCT FAILED
8199 000001 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8200 035707 312 06 0 00 044022 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8201 035710 004 06 0 00 033512 ER4 AC+1,33512 ;LOW PRODUCT FAILED
8202 000001 AEE=1 ;INITIAL C(E)
8203 035711 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0169
8204 035712 005 03 0 00 033513 ER5 E,33513 ;C(E) WAS CLOBBERED
8205 035713 321 07 0 00 035701 JUMPL AC+2,F33510 ;LOOP ON ERROR SWITCH^
8206 ;LAST CASE IS DIFFERENT
8207 003352 ADR=ADR+1
8208 000002 000000 XX=XX+XX
8209 IFE XX,<XX=1>
8210
8211 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8212 000000 IFG XX,<V1=0>
8213 IFL XX,<V1=-1>
8214 MOP1 (\ADR,XX,-1,1,V1,XX)^
8215 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8216 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8217 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8218 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8219
8220 000002 000000 F33520: AA1=XX ;INITIAL C(AC)
8221 035714 200 05 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8222 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8223 035715 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8224 000001 AEE=1 ;INITIAL C(E)
8225 035716 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8226 035717 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8227 000000 AR1=V1 ;EXPECTED RESULT IN AC
8228 035720 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8229 035721 003 05 0 00 033521 ER3 AC,33521 ;HIGH PRODUCT FAILED
8230 000002 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8231 035722 312 06 0 00 044023 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8232 035723 004 06 0 00 033522 ER4 AC+1,33522 ;LOW PRODUCT FAILED
8233 000001 AEE=1 ;INITIAL C(E)
8234 035724 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8235 035725 005 03 0 00 033523 ER5 E,33523 ;C(E) WAS CLOBBERED
8236 035726 321 07 0 00 035714 JUMPL AC+2,F33520 ;LOOP ON ERROR SWITCH^
8237 ;LAST CASE IS DIFFERENT
8238 003353 ADR=ADR+1
8239 000004 000000 XX=XX+XX
8240 IFE XX,<XX=1>
8241
8242 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8243 000000 IFG XX,<V1=0>
8244 IFL XX,<V1=-1>
8245 MOP1 (\ADR,XX,-1,1,V1,XX)^
8246 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8247 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8248 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8249 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8250
8251 000004 000000 F33530: AA1=XX ;INITIAL C(AC)
8252 035727 200 05 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8253 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8254 035730 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8255 000001 AEE=1 ;INITIAL C(E)
8256 035731 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8257 035732 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8258 000000 AR1=V1 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0170
8259 035733 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8260 035734 003 05 0 00 033531 ER3 AC,33531 ;HIGH PRODUCT FAILED
8261 000004 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8262 035735 312 06 0 00 044024 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8263 035736 004 06 0 00 033532 ER4 AC+1,33532 ;LOW PRODUCT FAILED
8264 000001 AEE=1 ;INITIAL C(E)
8265 035737 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8266 035740 005 03 0 00 033533 ER5 E,33533 ;C(E) WAS CLOBBERED
8267 035741 321 07 0 00 035727 JUMPL AC+2,F33530 ;LOOP ON ERROR SWITCH^
8268 ;LAST CASE IS DIFFERENT
8269 003354 ADR=ADR+1
8270 000010 000000 XX=XX+XX
8271 IFE XX,<XX=1>
8272
8273 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8274 000000 IFG XX,<V1=0>
8275 IFL XX,<V1=-1>
8276 MOP1 (\ADR,XX,-1,1,V1,XX)^
8277 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8278 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8279 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8280 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8281
8282 000010 000000 F33540: AA1=XX ;INITIAL C(AC)
8283 035742 200 05 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8284 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8285 035743 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8286 000001 AEE=1 ;INITIAL C(E)
8287 035744 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8288 035745 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8289 000000 AR1=V1 ;EXPECTED RESULT IN AC
8290 035746 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8291 035747 003 05 0 00 033541 ER3 AC,33541 ;HIGH PRODUCT FAILED
8292 000010 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8293 035750 312 06 0 00 044025 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8294 035751 004 06 0 00 033542 ER4 AC+1,33542 ;LOW PRODUCT FAILED
8295 000001 AEE=1 ;INITIAL C(E)
8296 035752 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8297 035753 005 03 0 00 033543 ER5 E,33543 ;C(E) WAS CLOBBERED
8298 035754 321 07 0 00 035742 JUMPL AC+2,F33540 ;LOOP ON ERROR SWITCH^
8299 ;LAST CASE IS DIFFERENT
8300 003355 ADR=ADR+1
8301 000020 000000 XX=XX+XX
8302 IFE XX,<XX=1>
8303
8304 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8305 000000 IFG XX,<V1=0>
8306 IFL XX,<V1=-1>
8307 MOP1 (\ADR,XX,-1,1,V1,XX)^
8308 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8309 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8310 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8311 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8312
8313 000020 000000 F33550: AA1=XX ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0171
8314 035755 200 05 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8315 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8316 035756 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8317 000001 AEE=1 ;INITIAL C(E)
8318 035757 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8319 035760 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8320 000000 AR1=V1 ;EXPECTED RESULT IN AC
8321 035761 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8322 035762 003 05 0 00 033551 ER3 AC,33551 ;HIGH PRODUCT FAILED
8323 000020 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8324 035763 312 06 0 00 044026 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8325 035764 004 06 0 00 033552 ER4 AC+1,33552 ;LOW PRODUCT FAILED
8326 000001 AEE=1 ;INITIAL C(E)
8327 035765 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8328 035766 005 03 0 00 033553 ER5 E,33553 ;C(E) WAS CLOBBERED
8329 035767 321 07 0 00 035755 JUMPL AC+2,F33550 ;LOOP ON ERROR SWITCH^
8330 ;LAST CASE IS DIFFERENT
8331 003356 ADR=ADR+1
8332 000040 000000 XX=XX+XX
8333 IFE XX,<XX=1>
8334
8335 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8336 000000 IFG XX,<V1=0>
8337 IFL XX,<V1=-1>
8338 MOP1 (\ADR,XX,-1,1,V1,XX)^
8339 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8340 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8341 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8342 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8343
8344 000040 000000 F33560: AA1=XX ;INITIAL C(AC)
8345 035770 200 05 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8346 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8347 035771 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8348 000001 AEE=1 ;INITIAL C(E)
8349 035772 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8350 035773 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8351 000000 AR1=V1 ;EXPECTED RESULT IN AC
8352 035774 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8353 035775 003 05 0 00 033561 ER3 AC,33561 ;HIGH PRODUCT FAILED
8354 000040 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8355 035776 312 06 0 00 044027 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8356 035777 004 06 0 00 033562 ER4 AC+1,33562 ;LOW PRODUCT FAILED
8357 000001 AEE=1 ;INITIAL C(E)
8358 036000 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8359 036001 005 03 0 00 033563 ER5 E,33563 ;C(E) WAS CLOBBERED
8360 036002 321 07 0 00 035770 JUMPL AC+2,F33560 ;LOOP ON ERROR SWITCH^
8361 ;LAST CASE IS DIFFERENT
8362 003357 ADR=ADR+1
8363 000100 000000 XX=XX+XX
8364 IFE XX,<XX=1>
8365
8366 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8367 000000 IFG XX,<V1=0>
8368 IFL XX,<V1=-1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0172
8369 MOP1 (\ADR,XX,-1,1,V1,XX)^
8370 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8371 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8372 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8373 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8374
8375 000100 000000 F33570: AA1=XX ;INITIAL C(AC)
8376 036003 200 05 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8377 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8378 036004 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8379 000001 AEE=1 ;INITIAL C(E)
8380 036005 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8381 036006 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8382 000000 AR1=V1 ;EXPECTED RESULT IN AC
8383 036007 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8384 036010 003 05 0 00 033571 ER3 AC,33571 ;HIGH PRODUCT FAILED
8385 000100 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8386 036011 312 06 0 00 044030 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8387 036012 004 06 0 00 033572 ER4 AC+1,33572 ;LOW PRODUCT FAILED
8388 000001 AEE=1 ;INITIAL C(E)
8389 036013 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8390 036014 005 03 0 00 033573 ER5 E,33573 ;C(E) WAS CLOBBERED
8391 036015 321 07 0 00 036003 JUMPL AC+2,F33570 ;LOOP ON ERROR SWITCH^
8392 ;LAST CASE IS DIFFERENT
8393 003360 ADR=ADR+1
8394 000200 000000 XX=XX+XX
8395 IFE XX,<XX=1>
8396
8397 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8398 000000 IFG XX,<V1=0>
8399 IFL XX,<V1=-1>
8400 MOP1 (\ADR,XX,-1,1,V1,XX)^
8401 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8402 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8403 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8404 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8405
8406 000200 000000 F33600: AA1=XX ;INITIAL C(AC)
8407 036016 200 05 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8408 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8409 036017 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8410 000001 AEE=1 ;INITIAL C(E)
8411 036020 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8412 036021 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8413 000000 AR1=V1 ;EXPECTED RESULT IN AC
8414 036022 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8415 036023 003 05 0 00 033601 ER3 AC,33601 ;HIGH PRODUCT FAILED
8416 000200 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8417 036024 312 06 0 00 044031 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8418 036025 004 06 0 00 033602 ER4 AC+1,33602 ;LOW PRODUCT FAILED
8419 000001 AEE=1 ;INITIAL C(E)
8420 036026 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8421 036027 005 03 0 00 033603 ER5 E,33603 ;C(E) WAS CLOBBERED
8422 036030 321 07 0 00 036016 JUMPL AC+2,F33600 ;LOOP ON ERROR SWITCH^
8423 ;LAST CASE IS DIFFERENT
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0173
8424 003361 ADR=ADR+1
8425 000400 000000 XX=XX+XX
8426 IFE XX,<XX=1>
8427
8428 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8429 000000 IFG XX,<V1=0>
8430 IFL XX,<V1=-1>
8431 MOP1 (\ADR,XX,-1,1,V1,XX)^
8432 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8433 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8434 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8435 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8436
8437 000400 000000 F33610: AA1=XX ;INITIAL C(AC)
8438 036031 200 05 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8439 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8440 036032 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8441 000001 AEE=1 ;INITIAL C(E)
8442 036033 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8443 036034 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8444 000000 AR1=V1 ;EXPECTED RESULT IN AC
8445 036035 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8446 036036 003 05 0 00 033611 ER3 AC,33611 ;HIGH PRODUCT FAILED
8447 000400 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8448 036037 312 06 0 00 044032 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8449 036040 004 06 0 00 033612 ER4 AC+1,33612 ;LOW PRODUCT FAILED
8450 000001 AEE=1 ;INITIAL C(E)
8451 036041 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8452 036042 005 03 0 00 033613 ER5 E,33613 ;C(E) WAS CLOBBERED
8453 036043 321 07 0 00 036031 JUMPL AC+2,F33610 ;LOOP ON ERROR SWITCH^
8454 ;LAST CASE IS DIFFERENT
8455 003362 ADR=ADR+1
8456 001000 000000 XX=XX+XX
8457 IFE XX,<XX=1>
8458
8459 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8460 000000 IFG XX,<V1=0>
8461 IFL XX,<V1=-1>
8462 MOP1 (\ADR,XX,-1,1,V1,XX)^
8463 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8464 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8465 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8466 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8467
8468 001000 000000 F33620: AA1=XX ;INITIAL C(AC)
8469 036044 200 05 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8470 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8471 036045 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8472 000001 AEE=1 ;INITIAL C(E)
8473 036046 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8474 036047 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8475 000000 AR1=V1 ;EXPECTED RESULT IN AC
8476 036050 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8477 036051 003 05 0 00 033621 ER3 AC,33621 ;HIGH PRODUCT FAILED
8478 001000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0174
8479 036052 312 06 0 00 044033 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8480 036053 004 06 0 00 033622 ER4 AC+1,33622 ;LOW PRODUCT FAILED
8481 000001 AEE=1 ;INITIAL C(E)
8482 036054 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8483 036055 005 03 0 00 033623 ER5 E,33623 ;C(E) WAS CLOBBERED
8484 036056 321 07 0 00 036044 JUMPL AC+2,F33620 ;LOOP ON ERROR SWITCH^
8485 ;LAST CASE IS DIFFERENT
8486 003363 ADR=ADR+1
8487 002000 000000 XX=XX+XX
8488 IFE XX,<XX=1>
8489
8490 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8491 000000 IFG XX,<V1=0>
8492 IFL XX,<V1=-1>
8493 MOP1 (\ADR,XX,-1,1,V1,XX)^
8494 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8495 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8496 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8497 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8498
8499 002000 000000 F33630: AA1=XX ;INITIAL C(AC)
8500 036057 200 05 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8501 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8502 036060 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8503 000001 AEE=1 ;INITIAL C(E)
8504 036061 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8505 036062 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8506 000000 AR1=V1 ;EXPECTED RESULT IN AC
8507 036063 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8508 036064 003 05 0 00 033631 ER3 AC,33631 ;HIGH PRODUCT FAILED
8509 002000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8510 036065 312 06 0 00 044034 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8511 036066 004 06 0 00 033632 ER4 AC+1,33632 ;LOW PRODUCT FAILED
8512 000001 AEE=1 ;INITIAL C(E)
8513 036067 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8514 036070 005 03 0 00 033633 ER5 E,33633 ;C(E) WAS CLOBBERED
8515 036071 321 07 0 00 036057 JUMPL AC+2,F33630 ;LOOP ON ERROR SWITCH^
8516 ;LAST CASE IS DIFFERENT
8517 003364 ADR=ADR+1
8518 004000 000000 XX=XX+XX
8519 IFE XX,<XX=1>
8520
8521 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8522 000000 IFG XX,<V1=0>
8523 IFL XX,<V1=-1>
8524 MOP1 (\ADR,XX,-1,1,V1,XX)^
8525 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8526 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8527 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8528 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8529
8530 004000 000000 F33640: AA1=XX ;INITIAL C(AC)
8531 036072 200 05 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8532 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8533 036073 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0175
8534 000001 AEE=1 ;INITIAL C(E)
8535 036074 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8536 036075 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8537 000000 AR1=V1 ;EXPECTED RESULT IN AC
8538 036076 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8539 036077 003 05 0 00 033641 ER3 AC,33641 ;HIGH PRODUCT FAILED
8540 004000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8541 036100 312 06 0 00 044035 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8542 036101 004 06 0 00 033642 ER4 AC+1,33642 ;LOW PRODUCT FAILED
8543 000001 AEE=1 ;INITIAL C(E)
8544 036102 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8545 036103 005 03 0 00 033643 ER5 E,33643 ;C(E) WAS CLOBBERED
8546 036104 321 07 0 00 036072 JUMPL AC+2,F33640 ;LOOP ON ERROR SWITCH^
8547 ;LAST CASE IS DIFFERENT
8548 003365 ADR=ADR+1
8549 010000 000000 XX=XX+XX
8550 IFE XX,<XX=1>
8551
8552 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8553 000000 IFG XX,<V1=0>
8554 IFL XX,<V1=-1>
8555 MOP1 (\ADR,XX,-1,1,V1,XX)^
8556 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8557 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8558 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8559 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8560
8561 010000 000000 F33650: AA1=XX ;INITIAL C(AC)
8562 036105 200 05 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8563 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8564 036106 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8565 000001 AEE=1 ;INITIAL C(E)
8566 036107 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8567 036110 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8568 000000 AR1=V1 ;EXPECTED RESULT IN AC
8569 036111 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8570 036112 003 05 0 00 033651 ER3 AC,33651 ;HIGH PRODUCT FAILED
8571 010000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8572 036113 312 06 0 00 044036 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8573 036114 004 06 0 00 033652 ER4 AC+1,33652 ;LOW PRODUCT FAILED
8574 000001 AEE=1 ;INITIAL C(E)
8575 036115 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8576 036116 005 03 0 00 033653 ER5 E,33653 ;C(E) WAS CLOBBERED
8577 036117 321 07 0 00 036105 JUMPL AC+2,F33650 ;LOOP ON ERROR SWITCH^
8578 ;LAST CASE IS DIFFERENT
8579 003366 ADR=ADR+1
8580 020000 000000 XX=XX+XX
8581 IFE XX,<XX=1>
8582
8583 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8584 000000 IFG XX,<V1=0>
8585 IFL XX,<V1=-1>
8586 MOP1 (\ADR,XX,-1,1,V1,XX)^
8587 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8588 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0176
8589 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8590 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8591
8592 020000 000000 F33660: AA1=XX ;INITIAL C(AC)
8593 036120 200 05 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8594 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8595 036121 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8596 000001 AEE=1 ;INITIAL C(E)
8597 036122 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8598 036123 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8599 000000 AR1=V1 ;EXPECTED RESULT IN AC
8600 036124 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8601 036125 003 05 0 00 033661 ER3 AC,33661 ;HIGH PRODUCT FAILED
8602 020000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8603 036126 312 06 0 00 044037 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8604 036127 004 06 0 00 033662 ER4 AC+1,33662 ;LOW PRODUCT FAILED
8605 000001 AEE=1 ;INITIAL C(E)
8606 036130 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8607 036131 005 03 0 00 033663 ER5 E,33663 ;C(E) WAS CLOBBERED
8608 036132 321 07 0 00 036120 JUMPL AC+2,F33660 ;LOOP ON ERROR SWITCH^
8609 ;LAST CASE IS DIFFERENT
8610 003367 ADR=ADR+1
8611 040000 000000 XX=XX+XX
8612 IFE XX,<XX=1>
8613
8614 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8615 000000 IFG XX,<V1=0>
8616 IFL XX,<V1=-1>
8617 MOP1 (\ADR,XX,-1,1,V1,XX)^
8618 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8619 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8620 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8621 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8622
8623 040000 000000 F33670: AA1=XX ;INITIAL C(AC)
8624 036133 200 05 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8625 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8626 036134 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8627 000001 AEE=1 ;INITIAL C(E)
8628 036135 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8629 036136 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8630 000000 AR1=V1 ;EXPECTED RESULT IN AC
8631 036137 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8632 036140 003 05 0 00 033671 ER3 AC,33671 ;HIGH PRODUCT FAILED
8633 040000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8634 036141 312 06 0 00 044040 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8635 036142 004 06 0 00 033672 ER4 AC+1,33672 ;LOW PRODUCT FAILED
8636 000001 AEE=1 ;INITIAL C(E)
8637 036143 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8638 036144 005 03 0 00 033673 ER5 E,33673 ;C(E) WAS CLOBBERED
8639 036145 321 07 0 00 036133 JUMPL AC+2,F33670 ;LOOP ON ERROR SWITCH^
8640 ;LAST CASE IS DIFFERENT
8641 003370 ADR=ADR+1
8642 100000 000000 XX=XX+XX
8643 IFE XX,<XX=1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0177
8644
8645 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8646 000000 IFG XX,<V1=0>
8647 IFL XX,<V1=-1>
8648 MOP1 (\ADR,XX,-1,1,V1,XX)^
8649 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8650 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8651 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8652 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8653
8654 100000 000000 F33700: AA1=XX ;INITIAL C(AC)
8655 036146 200 05 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8656 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8657 036147 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8658 000001 AEE=1 ;INITIAL C(E)
8659 036150 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8660 036151 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8661 000000 AR1=V1 ;EXPECTED RESULT IN AC
8662 036152 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8663 036153 003 05 0 00 033701 ER3 AC,33701 ;HIGH PRODUCT FAILED
8664 100000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8665 036154 312 06 0 00 044041 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8666 036155 004 06 0 00 033702 ER4 AC+1,33702 ;LOW PRODUCT FAILED
8667 000001 AEE=1 ;INITIAL C(E)
8668 036156 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8669 036157 005 03 0 00 033703 ER5 E,33703 ;C(E) WAS CLOBBERED
8670 036160 321 07 0 00 036146 JUMPL AC+2,F33700 ;LOOP ON ERROR SWITCH^
8671 ;LAST CASE IS DIFFERENT
8672 003371 ADR=ADR+1
8673 200000 000000 XX=XX+XX
8674 IFE XX,<XX=1>
8675
8676 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
8677 000000 IFG XX,<V1=0>
8678 IFL XX,<V1=-1>
8679 MOP1 (\ADR,XX,-1,1,V1,XX)^
8680 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8681 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8682 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
8683 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8684
8685 200000 000000 F33710: AA1=XX ;INITIAL C(AC)
8686 036161 200 05 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8687 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8688 036162 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8689 000001 AEE=1 ;INITIAL C(E)
8690 036163 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8691 036164 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8692 000000 AR1=V1 ;EXPECTED RESULT IN AC
8693 036165 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8694 036166 003 05 0 00 033711 ER3 AC,33711 ;HIGH PRODUCT FAILED
8695 200000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
8696 036167 312 06 0 00 044042 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
8697 036170 004 06 0 00 033712 ER4 AC+1,33712 ;LOW PRODUCT FAILED
8698 000001 AEE=1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0178
8699 036171 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8700 036172 005 03 0 00 033713 ER5 E,33713 ;C(E) WAS CLOBBERED
8701 036173 321 07 0 00 036161 JUMPL AC+2,F33710 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0179
8702 ;MULTIPLY A 1 BY 400000,,0
8703 400000 000000 XX=400000000000
8704 003372 ADR=ADR+1
8705
8706 MOP1 (\ADR,XX,-1,1,1,0)^
8707 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
8708 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8709 ;AND E AGAINST [1], [0] AND [1] RESPECTIVELY.
8710 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8711
8712 400000 000000 F33720: AA1=XX ;INITIAL C(AC)
8713 036174 200 05 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
8714 777777 777777 AA2=-1 ;INITIAL C(AC+1)
8715 036175 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
8716 000001 AEE=1 ;INITIAL C(E)
8717 036176 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
8718 036177 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8719 000001 AR1=1 ;EXPECTED RESULT IN AC
8720 036200 312 05 0 00 044000 CAME AC,[1] ;IS HIGH PRODUCT CORRECT?
8721 036201 003 05 0 00 033721 ER3 AC,33721 ;HIGH PRODUCT FAILED
8722 000000 AR2=0 ;EXPECTED RESULT IN AC+1
8723 036202 312 06 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT?
8724 036203 004 06 0 00 033722 ER4 AC+1,33722 ;LOW PRODUCT FAILED
8725 000001 AEE=1 ;INITIAL C(E)
8726 036204 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
8727 036205 005 03 0 00 033723 ER5 E,33723 ;C(E) WAS CLOBBERED
8728 036206 321 07 0 00 036174 JUMPL AC+2,F33720 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0180
8729 000004 AC=4
8730 000002 E=<AC-2>&17
8731 SAVEAC (1,1)^
8732 036207 201 06 0 00 036207 MOVEI AC+2,. ;SAVE TEST PC
8733 036210 202 06 0 00 030051 MOVEM AC+2,TESTPC
8734 036211 201 06 0 00 000006 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
8735 036212 202 06 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
8736 000000 XX=0
8737
8738 REPEAT ^D36,<
8739 ADR=ADR+1
8740 XX=XX+XX
8741 IFE XX,<XX=1>
8742
8743 ;MULTIPLY A RIPPLED ONE BY -1
8744 IFG XX,<
8745 V1=-1
8746 V2=-XX>
8747 IFL XX,<
8748 V1=1
8749 V2=0>
8750 MOP1 (\ADR,-1,0,XX,V1,V2)>
8751
8752 003373 ADR=ADR+1
8753 000000 XX=XX+XX
8754 000001 IFE XX,<XX=1>
8755
8756 ;MULTIPLY A RIPPLED ONE BY -1
8757 IFG XX,<
8758 777777 777777 V1=-1
8759 777777 777777 V2=-XX>
8760 IFL XX,<
8761 V1=1
8762 V2=0>
8763 MOP1 (\ADR,-1,0,XX,V1,V2)^
8764 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
8765 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8766 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
8767 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8768
8769 777777 777777 F33730: AA1=-1 ;INITIAL C(AC)
8770 036213 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
8771 000000 AA2=0 ;INITIAL C(AC+1)
8772 036214 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
8773 000001 AEE=XX ;INITIAL C(E)
8774 036215 200 02 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8775 036216 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8776 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
8777 036217 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8778 036220 003 04 0 00 033731 ER3 AC,33731 ;HIGH PRODUCT FAILED
8779 777777 777777 AR2=V2 ;EXPECTED RESULT IN AC+1
8780 036221 312 05 0 00 043777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
8781 036222 004 05 0 00 033732 ER4 AC+1,33732 ;LOW PRODUCT FAILED
8782 000001 AEE=XX ;INITIAL C(E)
8783 036223 312 02 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0181
8784 036224 005 02 0 00 033733 ER5 E,33733 ;C(E) WAS CLOBBERED
8785 036225 321 06 0 00 036213 JUMPL AC+2,F33730 ;LOOP ON ERROR SWITCH^
8786
8787 003374 ADR=ADR+1
8788 000002 XX=XX+XX
8789 IFE XX,<XX=1>
8790
8791 ;MULTIPLY A RIPPLED ONE BY -1
8792 IFG XX,<
8793 777777 777777 V1=-1
8794 777777 777776 V2=-XX>
8795 IFL XX,<
8796 V1=1
8797 V2=0>
8798 MOP1 (\ADR,-1,0,XX,V1,V2)^
8799 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
8800 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8801 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
8802 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8803
8804 777777 777777 F33740: AA1=-1 ;INITIAL C(AC)
8805 036226 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
8806 000000 AA2=0 ;INITIAL C(AC+1)
8807 036227 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
8808 000002 AEE=XX ;INITIAL C(E)
8809 036230 200 02 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8810 036231 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8811 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
8812 036232 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8813 036233 003 04 0 00 033741 ER3 AC,33741 ;HIGH PRODUCT FAILED
8814 777777 777776 AR2=V2 ;EXPECTED RESULT IN AC+1
8815 036234 312 05 0 00 044044 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
8816 036235 004 05 0 00 033742 ER4 AC+1,33742 ;LOW PRODUCT FAILED
8817 000002 AEE=XX ;INITIAL C(E)
8818 036236 312 02 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED?
8819 036237 005 02 0 00 033743 ER5 E,33743 ;C(E) WAS CLOBBERED
8820 036240 321 06 0 00 036226 JUMPL AC+2,F33740 ;LOOP ON ERROR SWITCH^
8821
8822 003375 ADR=ADR+1
8823 000004 XX=XX+XX
8824 IFE XX,<XX=1>
8825
8826 ;MULTIPLY A RIPPLED ONE BY -1
8827 IFG XX,<
8828 777777 777777 V1=-1
8829 777777 777774 V2=-XX>
8830 IFL XX,<
8831 V1=1
8832 V2=0>
8833 MOP1 (\ADR,-1,0,XX,V1,V2)^
8834 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
8835 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8836 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
8837 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8838
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0182
8839 777777 777777 F33750: AA1=-1 ;INITIAL C(AC)
8840 036241 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
8841 000000 AA2=0 ;INITIAL C(AC+1)
8842 036242 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
8843 000004 AEE=XX ;INITIAL C(E)
8844 036243 200 02 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8845 036244 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8846 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
8847 036245 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8848 036246 003 04 0 00 033751 ER3 AC,33751 ;HIGH PRODUCT FAILED
8849 777777 777774 AR2=V2 ;EXPECTED RESULT IN AC+1
8850 036247 312 05 0 00 044123 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
8851 036250 004 05 0 00 033752 ER4 AC+1,33752 ;LOW PRODUCT FAILED
8852 000004 AEE=XX ;INITIAL C(E)
8853 036251 312 02 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED?
8854 036252 005 02 0 00 033753 ER5 E,33753 ;C(E) WAS CLOBBERED
8855 036253 321 06 0 00 036241 JUMPL AC+2,F33750 ;LOOP ON ERROR SWITCH^
8856
8857 003376 ADR=ADR+1
8858 000010 XX=XX+XX
8859 IFE XX,<XX=1>
8860
8861 ;MULTIPLY A RIPPLED ONE BY -1
8862 IFG XX,<
8863 777777 777777 V1=-1
8864 777777 777770 V2=-XX>
8865 IFL XX,<
8866 V1=1
8867 V2=0>
8868 MOP1 (\ADR,-1,0,XX,V1,V2)^
8869 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
8870 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8871 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
8872 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8873
8874 777777 777777 F33760: AA1=-1 ;INITIAL C(AC)
8875 036254 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
8876 000000 AA2=0 ;INITIAL C(AC+1)
8877 036255 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
8878 000010 AEE=XX ;INITIAL C(E)
8879 036256 200 02 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8880 036257 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8881 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
8882 036260 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8883 036261 003 04 0 00 033761 ER3 AC,33761 ;HIGH PRODUCT FAILED
8884 777777 777770 AR2=V2 ;EXPECTED RESULT IN AC+1
8885 036262 312 05 0 00 044126 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
8886 036263 004 05 0 00 033762 ER4 AC+1,33762 ;LOW PRODUCT FAILED
8887 000010 AEE=XX ;INITIAL C(E)
8888 036264 312 02 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED?
8889 036265 005 02 0 00 033763 ER5 E,33763 ;C(E) WAS CLOBBERED
8890 036266 321 06 0 00 036254 JUMPL AC+2,F33760 ;LOOP ON ERROR SWITCH^
8891
8892 003377 ADR=ADR+1
8893 000020 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0183
8894 IFE XX,<XX=1>
8895
8896 ;MULTIPLY A RIPPLED ONE BY -1
8897 IFG XX,<
8898 777777 777777 V1=-1
8899 777777 777760 V2=-XX>
8900 IFL XX,<
8901 V1=1
8902 V2=0>
8903 MOP1 (\ADR,-1,0,XX,V1,V2)^
8904 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
8905 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8906 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
8907 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8908
8909 777777 777777 F33770: AA1=-1 ;INITIAL C(AC)
8910 036267 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
8911 000000 AA2=0 ;INITIAL C(AC+1)
8912 036270 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
8913 000020 AEE=XX ;INITIAL C(E)
8914 036271 200 02 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8915 036272 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8916 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
8917 036273 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8918 036274 003 04 0 00 033771 ER3 AC,33771 ;HIGH PRODUCT FAILED
8919 777777 777760 AR2=V2 ;EXPECTED RESULT IN AC+1
8920 036275 312 05 0 00 044135 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
8921 036276 004 05 0 00 033772 ER4 AC+1,33772 ;LOW PRODUCT FAILED
8922 000020 AEE=XX ;INITIAL C(E)
8923 036277 312 02 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED?
8924 036300 005 02 0 00 033773 ER5 E,33773 ;C(E) WAS CLOBBERED
8925 036301 321 06 0 00 036267 JUMPL AC+2,F33770 ;LOOP ON ERROR SWITCH^
8926
8927 003400 ADR=ADR+1
8928 000040 XX=XX+XX
8929 IFE XX,<XX=1>
8930
8931 ;MULTIPLY A RIPPLED ONE BY -1
8932 IFG XX,<
8933 777777 777777 V1=-1
8934 777777 777740 V2=-XX>
8935 IFL XX,<
8936 V1=1
8937 V2=0>
8938 MOP1 (\ADR,-1,0,XX,V1,V2)^
8939 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
8940 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8941 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
8942 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8943
8944 777777 777777 F34000: AA1=-1 ;INITIAL C(AC)
8945 036302 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
8946 000000 AA2=0 ;INITIAL C(AC+1)
8947 036303 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
8948 000040 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0184
8949 036304 200 02 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8950 036305 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8951 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
8952 036306 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8953 036307 003 04 0 00 034001 ER3 AC,34001 ;HIGH PRODUCT FAILED
8954 777777 777740 AR2=V2 ;EXPECTED RESULT IN AC+1
8955 036310 312 05 0 00 044136 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
8956 036311 004 05 0 00 034002 ER4 AC+1,34002 ;LOW PRODUCT FAILED
8957 000040 AEE=XX ;INITIAL C(E)
8958 036312 312 02 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED?
8959 036313 005 02 0 00 034003 ER5 E,34003 ;C(E) WAS CLOBBERED
8960 036314 321 06 0 00 036302 JUMPL AC+2,F34000 ;LOOP ON ERROR SWITCH^
8961
8962 003401 ADR=ADR+1
8963 000100 XX=XX+XX
8964 IFE XX,<XX=1>
8965
8966 ;MULTIPLY A RIPPLED ONE BY -1
8967 IFG XX,<
8968 777777 777777 V1=-1
8969 777777 777700 V2=-XX>
8970 IFL XX,<
8971 V1=1
8972 V2=0>
8973 MOP1 (\ADR,-1,0,XX,V1,V2)^
8974 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
8975 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
8976 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
8977 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
8978
8979 777777 777777 F34010: AA1=-1 ;INITIAL C(AC)
8980 036315 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
8981 000000 AA2=0 ;INITIAL C(AC+1)
8982 036316 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
8983 000100 AEE=XX ;INITIAL C(E)
8984 036317 200 02 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
8985 036320 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
8986 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
8987 036321 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
8988 036322 003 04 0 00 034011 ER3 AC,34011 ;HIGH PRODUCT FAILED
8989 777777 777700 AR2=V2 ;EXPECTED RESULT IN AC+1
8990 036323 312 05 0 00 044137 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
8991 036324 004 05 0 00 034012 ER4 AC+1,34012 ;LOW PRODUCT FAILED
8992 000100 AEE=XX ;INITIAL C(E)
8993 036325 312 02 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED?
8994 036326 005 02 0 00 034013 ER5 E,34013 ;C(E) WAS CLOBBERED
8995 036327 321 06 0 00 036315 JUMPL AC+2,F34010 ;LOOP ON ERROR SWITCH^
8996
8997 003402 ADR=ADR+1
8998 000200 XX=XX+XX
8999 IFE XX,<XX=1>
9000
9001 ;MULTIPLY A RIPPLED ONE BY -1
9002 IFG XX,<
9003 777777 777777 V1=-1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0185
9004 777777 777600 V2=-XX>
9005 IFL XX,<
9006 V1=1
9007 V2=0>
9008 MOP1 (\ADR,-1,0,XX,V1,V2)^
9009 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9010 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9011 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9012 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9013
9014 777777 777777 F34020: AA1=-1 ;INITIAL C(AC)
9015 036330 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9016 000000 AA2=0 ;INITIAL C(AC+1)
9017 036331 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9018 000200 AEE=XX ;INITIAL C(E)
9019 036332 200 02 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9020 036333 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9021 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9022 036334 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9023 036335 003 04 0 00 034021 ER3 AC,34021 ;HIGH PRODUCT FAILED
9024 777777 777600 AR2=V2 ;EXPECTED RESULT IN AC+1
9025 036336 312 05 0 00 044140 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9026 036337 004 05 0 00 034022 ER4 AC+1,34022 ;LOW PRODUCT FAILED
9027 000200 AEE=XX ;INITIAL C(E)
9028 036340 312 02 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED?
9029 036341 005 02 0 00 034023 ER5 E,34023 ;C(E) WAS CLOBBERED
9030 036342 321 06 0 00 036330 JUMPL AC+2,F34020 ;LOOP ON ERROR SWITCH^
9031
9032 003403 ADR=ADR+1
9033 000400 XX=XX+XX
9034 IFE XX,<XX=1>
9035
9036 ;MULTIPLY A RIPPLED ONE BY -1
9037 IFG XX,<
9038 777777 777777 V1=-1
9039 777777 777400 V2=-XX>
9040 IFL XX,<
9041 V1=1
9042 V2=0>
9043 MOP1 (\ADR,-1,0,XX,V1,V2)^
9044 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9045 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9046 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9047 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9048
9049 777777 777777 F34030: AA1=-1 ;INITIAL C(AC)
9050 036343 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9051 000000 AA2=0 ;INITIAL C(AC+1)
9052 036344 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9053 000400 AEE=XX ;INITIAL C(E)
9054 036345 200 02 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9055 036346 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9056 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9057 036347 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9058 036350 003 04 0 00 034031 ER3 AC,34031 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0186
9059 777777 777400 AR2=V2 ;EXPECTED RESULT IN AC+1
9060 036351 312 05 0 00 044141 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9061 036352 004 05 0 00 034032 ER4 AC+1,34032 ;LOW PRODUCT FAILED
9062 000400 AEE=XX ;INITIAL C(E)
9063 036353 312 02 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED?
9064 036354 005 02 0 00 034033 ER5 E,34033 ;C(E) WAS CLOBBERED
9065 036355 321 06 0 00 036343 JUMPL AC+2,F34030 ;LOOP ON ERROR SWITCH^
9066
9067 003404 ADR=ADR+1
9068 001000 XX=XX+XX
9069 IFE XX,<XX=1>
9070
9071 ;MULTIPLY A RIPPLED ONE BY -1
9072 IFG XX,<
9073 777777 777777 V1=-1
9074 777777 777000 V2=-XX>
9075 IFL XX,<
9076 V1=1
9077 V2=0>
9078 MOP1 (\ADR,-1,0,XX,V1,V2)^
9079 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9080 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9081 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9082 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9083
9084 777777 777777 F34040: AA1=-1 ;INITIAL C(AC)
9085 036356 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9086 000000 AA2=0 ;INITIAL C(AC+1)
9087 036357 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9088 001000 AEE=XX ;INITIAL C(E)
9089 036360 200 02 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9090 036361 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9091 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9092 036362 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9093 036363 003 04 0 00 034041 ER3 AC,34041 ;HIGH PRODUCT FAILED
9094 777777 777000 AR2=V2 ;EXPECTED RESULT IN AC+1
9095 036364 312 05 0 00 044142 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9096 036365 004 05 0 00 034042 ER4 AC+1,34042 ;LOW PRODUCT FAILED
9097 001000 AEE=XX ;INITIAL C(E)
9098 036366 312 02 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED?
9099 036367 005 02 0 00 034043 ER5 E,34043 ;C(E) WAS CLOBBERED
9100 036370 321 06 0 00 036356 JUMPL AC+2,F34040 ;LOOP ON ERROR SWITCH^
9101
9102 003405 ADR=ADR+1
9103 002000 XX=XX+XX
9104 IFE XX,<XX=1>
9105
9106 ;MULTIPLY A RIPPLED ONE BY -1
9107 IFG XX,<
9108 777777 777777 V1=-1
9109 777777 776000 V2=-XX>
9110 IFL XX,<
9111 V1=1
9112 V2=0>
9113 MOP1 (\ADR,-1,0,XX,V1,V2)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0187
9114 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9115 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9116 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9117 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9118
9119 777777 777777 F34050: AA1=-1 ;INITIAL C(AC)
9120 036371 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9121 000000 AA2=0 ;INITIAL C(AC+1)
9122 036372 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9123 002000 AEE=XX ;INITIAL C(E)
9124 036373 200 02 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9125 036374 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9126 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9127 036375 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9128 036376 003 04 0 00 034051 ER3 AC,34051 ;HIGH PRODUCT FAILED
9129 777777 776000 AR2=V2 ;EXPECTED RESULT IN AC+1
9130 036377 312 05 0 00 044143 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9131 036400 004 05 0 00 034052 ER4 AC+1,34052 ;LOW PRODUCT FAILED
9132 002000 AEE=XX ;INITIAL C(E)
9133 036401 312 02 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED?
9134 036402 005 02 0 00 034053 ER5 E,34053 ;C(E) WAS CLOBBERED
9135 036403 321 06 0 00 036371 JUMPL AC+2,F34050 ;LOOP ON ERROR SWITCH^
9136
9137 003406 ADR=ADR+1
9138 004000 XX=XX+XX
9139 IFE XX,<XX=1>
9140
9141 ;MULTIPLY A RIPPLED ONE BY -1
9142 IFG XX,<
9143 777777 777777 V1=-1
9144 777777 774000 V2=-XX>
9145 IFL XX,<
9146 V1=1
9147 V2=0>
9148 MOP1 (\ADR,-1,0,XX,V1,V2)^
9149 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9150 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9151 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9152 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9153
9154 777777 777777 F34060: AA1=-1 ;INITIAL C(AC)
9155 036404 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9156 000000 AA2=0 ;INITIAL C(AC+1)
9157 036405 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9158 004000 AEE=XX ;INITIAL C(E)
9159 036406 200 02 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9160 036407 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9161 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9162 036410 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9163 036411 003 04 0 00 034061 ER3 AC,34061 ;HIGH PRODUCT FAILED
9164 777777 774000 AR2=V2 ;EXPECTED RESULT IN AC+1
9165 036412 312 05 0 00 044144 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9166 036413 004 05 0 00 034062 ER4 AC+1,34062 ;LOW PRODUCT FAILED
9167 004000 AEE=XX ;INITIAL C(E)
9168 036414 312 02 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0188
9169 036415 005 02 0 00 034063 ER5 E,34063 ;C(E) WAS CLOBBERED
9170 036416 321 06 0 00 036404 JUMPL AC+2,F34060 ;LOOP ON ERROR SWITCH^
9171
9172 003407 ADR=ADR+1
9173 010000 XX=XX+XX
9174 IFE XX,<XX=1>
9175
9176 ;MULTIPLY A RIPPLED ONE BY -1
9177 IFG XX,<
9178 777777 777777 V1=-1
9179 777777 770000 V2=-XX>
9180 IFL XX,<
9181 V1=1
9182 V2=0>
9183 MOP1 (\ADR,-1,0,XX,V1,V2)^
9184 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9185 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9186 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9187 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9188
9189 777777 777777 F34070: AA1=-1 ;INITIAL C(AC)
9190 036417 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9191 000000 AA2=0 ;INITIAL C(AC+1)
9192 036420 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9193 010000 AEE=XX ;INITIAL C(E)
9194 036421 200 02 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9195 036422 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9196 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9197 036423 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9198 036424 003 04 0 00 034071 ER3 AC,34071 ;HIGH PRODUCT FAILED
9199 777777 770000 AR2=V2 ;EXPECTED RESULT IN AC+1
9200 036425 312 05 0 00 044145 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9201 036426 004 05 0 00 034072 ER4 AC+1,34072 ;LOW PRODUCT FAILED
9202 010000 AEE=XX ;INITIAL C(E)
9203 036427 312 02 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED?
9204 036430 005 02 0 00 034073 ER5 E,34073 ;C(E) WAS CLOBBERED
9205 036431 321 06 0 00 036417 JUMPL AC+2,F34070 ;LOOP ON ERROR SWITCH^
9206
9207 003410 ADR=ADR+1
9208 020000 XX=XX+XX
9209 IFE XX,<XX=1>
9210
9211 ;MULTIPLY A RIPPLED ONE BY -1
9212 IFG XX,<
9213 777777 777777 V1=-1
9214 777777 760000 V2=-XX>
9215 IFL XX,<
9216 V1=1
9217 V2=0>
9218 MOP1 (\ADR,-1,0,XX,V1,V2)^
9219 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9220 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9221 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9222 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9223
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0189
9224 777777 777777 F34100: AA1=-1 ;INITIAL C(AC)
9225 036432 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9226 000000 AA2=0 ;INITIAL C(AC+1)
9227 036433 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9228 020000 AEE=XX ;INITIAL C(E)
9229 036434 200 02 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9230 036435 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9231 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9232 036436 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9233 036437 003 04 0 00 034101 ER3 AC,34101 ;HIGH PRODUCT FAILED
9234 777777 760000 AR2=V2 ;EXPECTED RESULT IN AC+1
9235 036440 312 05 0 00 044146 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9236 036441 004 05 0 00 034102 ER4 AC+1,34102 ;LOW PRODUCT FAILED
9237 020000 AEE=XX ;INITIAL C(E)
9238 036442 312 02 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED?
9239 036443 005 02 0 00 034103 ER5 E,34103 ;C(E) WAS CLOBBERED
9240 036444 321 06 0 00 036432 JUMPL AC+2,F34100 ;LOOP ON ERROR SWITCH^
9241
9242 003411 ADR=ADR+1
9243 040000 XX=XX+XX
9244 IFE XX,<XX=1>
9245
9246 ;MULTIPLY A RIPPLED ONE BY -1
9247 IFG XX,<
9248 777777 777777 V1=-1
9249 777777 740000 V2=-XX>
9250 IFL XX,<
9251 V1=1
9252 V2=0>
9253 MOP1 (\ADR,-1,0,XX,V1,V2)^
9254 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9255 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9256 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9257 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9258
9259 777777 777777 F34110: AA1=-1 ;INITIAL C(AC)
9260 036445 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9261 000000 AA2=0 ;INITIAL C(AC+1)
9262 036446 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9263 040000 AEE=XX ;INITIAL C(E)
9264 036447 200 02 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9265 036450 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9266 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9267 036451 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9268 036452 003 04 0 00 034111 ER3 AC,34111 ;HIGH PRODUCT FAILED
9269 777777 740000 AR2=V2 ;EXPECTED RESULT IN AC+1
9270 036453 312 05 0 00 044147 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9271 036454 004 05 0 00 034112 ER4 AC+1,34112 ;LOW PRODUCT FAILED
9272 040000 AEE=XX ;INITIAL C(E)
9273 036455 312 02 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED?
9274 036456 005 02 0 00 034113 ER5 E,34113 ;C(E) WAS CLOBBERED
9275 036457 321 06 0 00 036445 JUMPL AC+2,F34110 ;LOOP ON ERROR SWITCH^
9276
9277 003412 ADR=ADR+1
9278 100000 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0190
9279 IFE XX,<XX=1>
9280
9281 ;MULTIPLY A RIPPLED ONE BY -1
9282 IFG XX,<
9283 777777 777777 V1=-1
9284 777777 700000 V2=-XX>
9285 IFL XX,<
9286 V1=1
9287 V2=0>
9288 MOP1 (\ADR,-1,0,XX,V1,V2)^
9289 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9290 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9291 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9292 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9293
9294 777777 777777 F34120: AA1=-1 ;INITIAL C(AC)
9295 036460 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9296 000000 AA2=0 ;INITIAL C(AC+1)
9297 036461 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9298 100000 AEE=XX ;INITIAL C(E)
9299 036462 200 02 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9300 036463 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9301 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9302 036464 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9303 036465 003 04 0 00 034121 ER3 AC,34121 ;HIGH PRODUCT FAILED
9304 777777 700000 AR2=V2 ;EXPECTED RESULT IN AC+1
9305 036466 312 05 0 00 044150 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9306 036467 004 05 0 00 034122 ER4 AC+1,34122 ;LOW PRODUCT FAILED
9307 100000 AEE=XX ;INITIAL C(E)
9308 036470 312 02 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED?
9309 036471 005 02 0 00 034123 ER5 E,34123 ;C(E) WAS CLOBBERED
9310 036472 321 06 0 00 036460 JUMPL AC+2,F34120 ;LOOP ON ERROR SWITCH^
9311
9312 003413 ADR=ADR+1
9313 200000 XX=XX+XX
9314 IFE XX,<XX=1>
9315
9316 ;MULTIPLY A RIPPLED ONE BY -1
9317 IFG XX,<
9318 777777 777777 V1=-1
9319 777777 600000 V2=-XX>
9320 IFL XX,<
9321 V1=1
9322 V2=0>
9323 MOP1 (\ADR,-1,0,XX,V1,V2)^
9324 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9325 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9326 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9327 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9328
9329 777777 777777 F34130: AA1=-1 ;INITIAL C(AC)
9330 036473 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9331 000000 AA2=0 ;INITIAL C(AC+1)
9332 036474 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9333 200000 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0191
9334 036475 200 02 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9335 036476 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9336 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9337 036477 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9338 036500 003 04 0 00 034131 ER3 AC,34131 ;HIGH PRODUCT FAILED
9339 777777 600000 AR2=V2 ;EXPECTED RESULT IN AC+1
9340 036501 312 05 0 00 044151 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9341 036502 004 05 0 00 034132 ER4 AC+1,34132 ;LOW PRODUCT FAILED
9342 200000 AEE=XX ;INITIAL C(E)
9343 036503 312 02 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED?
9344 036504 005 02 0 00 034133 ER5 E,34133 ;C(E) WAS CLOBBERED
9345 036505 321 06 0 00 036473 JUMPL AC+2,F34130 ;LOOP ON ERROR SWITCH^
9346
9347 003414 ADR=ADR+1
9348 400000 XX=XX+XX
9349 IFE XX,<XX=1>
9350
9351 ;MULTIPLY A RIPPLED ONE BY -1
9352 IFG XX,<
9353 777777 777777 V1=-1
9354 777777 400000 V2=-XX>
9355 IFL XX,<
9356 V1=1
9357 V2=0>
9358 MOP1 (\ADR,-1,0,XX,V1,V2)^
9359 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9360 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9361 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9362 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9363
9364 777777 777777 F34140: AA1=-1 ;INITIAL C(AC)
9365 036506 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9366 000000 AA2=0 ;INITIAL C(AC+1)
9367 036507 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9368 400000 AEE=XX ;INITIAL C(E)
9369 036510 200 02 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9370 036511 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9371 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9372 036512 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9373 036513 003 04 0 00 034141 ER3 AC,34141 ;HIGH PRODUCT FAILED
9374 777777 400000 AR2=V2 ;EXPECTED RESULT IN AC+1
9375 036514 312 05 0 00 044152 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9376 036515 004 05 0 00 034142 ER4 AC+1,34142 ;LOW PRODUCT FAILED
9377 400000 AEE=XX ;INITIAL C(E)
9378 036516 312 02 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED?
9379 036517 005 02 0 00 034143 ER5 E,34143 ;C(E) WAS CLOBBERED
9380 036520 321 06 0 00 036506 JUMPL AC+2,F34140 ;LOOP ON ERROR SWITCH^
9381
9382 003415 ADR=ADR+1
9383 000001 000000 XX=XX+XX
9384 IFE XX,<XX=1>
9385
9386 ;MULTIPLY A RIPPLED ONE BY -1
9387 IFG XX,<
9388 777777 777777 V1=-1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0192
9389 777777 000000 V2=-XX>
9390 IFL XX,<
9391 V1=1
9392 V2=0>
9393 MOP1 (\ADR,-1,0,XX,V1,V2)^
9394 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9395 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9396 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9397 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9398
9399 777777 777777 F34150: AA1=-1 ;INITIAL C(AC)
9400 036521 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9401 000000 AA2=0 ;INITIAL C(AC+1)
9402 036522 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9403 000001 000000 AEE=XX ;INITIAL C(E)
9404 036523 200 02 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9405 036524 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9406 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9407 036525 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9408 036526 003 04 0 00 034151 ER3 AC,34151 ;HIGH PRODUCT FAILED
9409 777777 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9410 036527 312 05 0 00 044153 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9411 036530 004 05 0 00 034152 ER4 AC+1,34152 ;LOW PRODUCT FAILED
9412 000001 000000 AEE=XX ;INITIAL C(E)
9413 036531 312 02 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED?
9414 036532 005 02 0 00 034153 ER5 E,34153 ;C(E) WAS CLOBBERED
9415 036533 321 06 0 00 036521 JUMPL AC+2,F34150 ;LOOP ON ERROR SWITCH^
9416
9417 003416 ADR=ADR+1
9418 000002 000000 XX=XX+XX
9419 IFE XX,<XX=1>
9420
9421 ;MULTIPLY A RIPPLED ONE BY -1
9422 IFG XX,<
9423 777777 777777 V1=-1
9424 777776 000000 V2=-XX>
9425 IFL XX,<
9426 V1=1
9427 V2=0>
9428 MOP1 (\ADR,-1,0,XX,V1,V2)^
9429 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9430 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9431 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9432 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9433
9434 777777 777777 F34160: AA1=-1 ;INITIAL C(AC)
9435 036534 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9436 000000 AA2=0 ;INITIAL C(AC+1)
9437 036535 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9438 000002 000000 AEE=XX ;INITIAL C(E)
9439 036536 200 02 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9440 036537 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9441 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9442 036540 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9443 036541 003 04 0 00 034161 ER3 AC,34161 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0193
9444 777776 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9445 036542 312 05 0 00 044154 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9446 036543 004 05 0 00 034162 ER4 AC+1,34162 ;LOW PRODUCT FAILED
9447 000002 000000 AEE=XX ;INITIAL C(E)
9448 036544 312 02 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED?
9449 036545 005 02 0 00 034163 ER5 E,34163 ;C(E) WAS CLOBBERED
9450 036546 321 06 0 00 036534 JUMPL AC+2,F34160 ;LOOP ON ERROR SWITCH^
9451
9452 003417 ADR=ADR+1
9453 000004 000000 XX=XX+XX
9454 IFE XX,<XX=1>
9455
9456 ;MULTIPLY A RIPPLED ONE BY -1
9457 IFG XX,<
9458 777777 777777 V1=-1
9459 777774 000000 V2=-XX>
9460 IFL XX,<
9461 V1=1
9462 V2=0>
9463 MOP1 (\ADR,-1,0,XX,V1,V2)^
9464 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9465 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9466 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9467 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9468
9469 777777 777777 F34170: AA1=-1 ;INITIAL C(AC)
9470 036547 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9471 000000 AA2=0 ;INITIAL C(AC+1)
9472 036550 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9473 000004 000000 AEE=XX ;INITIAL C(E)
9474 036551 200 02 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9475 036552 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9476 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9477 036553 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9478 036554 003 04 0 00 034171 ER3 AC,34171 ;HIGH PRODUCT FAILED
9479 777774 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9480 036555 312 05 0 00 044155 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9481 036556 004 05 0 00 034172 ER4 AC+1,34172 ;LOW PRODUCT FAILED
9482 000004 000000 AEE=XX ;INITIAL C(E)
9483 036557 312 02 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED?
9484 036560 005 02 0 00 034173 ER5 E,34173 ;C(E) WAS CLOBBERED
9485 036561 321 06 0 00 036547 JUMPL AC+2,F34170 ;LOOP ON ERROR SWITCH^
9486
9487 003420 ADR=ADR+1
9488 000010 000000 XX=XX+XX
9489 IFE XX,<XX=1>
9490
9491 ;MULTIPLY A RIPPLED ONE BY -1
9492 IFG XX,<
9493 777777 777777 V1=-1
9494 777770 000000 V2=-XX>
9495 IFL XX,<
9496 V1=1
9497 V2=0>
9498 MOP1 (\ADR,-1,0,XX,V1,V2)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0194
9499 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9500 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9501 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9502 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9503
9504 777777 777777 F34200: AA1=-1 ;INITIAL C(AC)
9505 036562 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9506 000000 AA2=0 ;INITIAL C(AC+1)
9507 036563 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9508 000010 000000 AEE=XX ;INITIAL C(E)
9509 036564 200 02 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9510 036565 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9511 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9512 036566 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9513 036567 003 04 0 00 034201 ER3 AC,34201 ;HIGH PRODUCT FAILED
9514 777770 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9515 036570 312 05 0 00 044156 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9516 036571 004 05 0 00 034202 ER4 AC+1,34202 ;LOW PRODUCT FAILED
9517 000010 000000 AEE=XX ;INITIAL C(E)
9518 036572 312 02 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED?
9519 036573 005 02 0 00 034203 ER5 E,34203 ;C(E) WAS CLOBBERED
9520 036574 321 06 0 00 036562 JUMPL AC+2,F34200 ;LOOP ON ERROR SWITCH^
9521
9522 003421 ADR=ADR+1
9523 000020 000000 XX=XX+XX
9524 IFE XX,<XX=1>
9525
9526 ;MULTIPLY A RIPPLED ONE BY -1
9527 IFG XX,<
9528 777777 777777 V1=-1
9529 777760 000000 V2=-XX>
9530 IFL XX,<
9531 V1=1
9532 V2=0>
9533 MOP1 (\ADR,-1,0,XX,V1,V2)^
9534 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9535 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9536 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9537 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9538
9539 777777 777777 F34210: AA1=-1 ;INITIAL C(AC)
9540 036575 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9541 000000 AA2=0 ;INITIAL C(AC+1)
9542 036576 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9543 000020 000000 AEE=XX ;INITIAL C(E)
9544 036577 200 02 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9545 036600 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9546 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9547 036601 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9548 036602 003 04 0 00 034211 ER3 AC,34211 ;HIGH PRODUCT FAILED
9549 777760 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9550 036603 312 05 0 00 044157 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9551 036604 004 05 0 00 034212 ER4 AC+1,34212 ;LOW PRODUCT FAILED
9552 000020 000000 AEE=XX ;INITIAL C(E)
9553 036605 312 02 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0195
9554 036606 005 02 0 00 034213 ER5 E,34213 ;C(E) WAS CLOBBERED
9555 036607 321 06 0 00 036575 JUMPL AC+2,F34210 ;LOOP ON ERROR SWITCH^
9556
9557 003422 ADR=ADR+1
9558 000040 000000 XX=XX+XX
9559 IFE XX,<XX=1>
9560
9561 ;MULTIPLY A RIPPLED ONE BY -1
9562 IFG XX,<
9563 777777 777777 V1=-1
9564 777740 000000 V2=-XX>
9565 IFL XX,<
9566 V1=1
9567 V2=0>
9568 MOP1 (\ADR,-1,0,XX,V1,V2)^
9569 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9570 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9571 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9572 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9573
9574 777777 777777 F34220: AA1=-1 ;INITIAL C(AC)
9575 036610 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9576 000000 AA2=0 ;INITIAL C(AC+1)
9577 036611 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9578 000040 000000 AEE=XX ;INITIAL C(E)
9579 036612 200 02 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9580 036613 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9581 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9582 036614 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9583 036615 003 04 0 00 034221 ER3 AC,34221 ;HIGH PRODUCT FAILED
9584 777740 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9585 036616 312 05 0 00 044160 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9586 036617 004 05 0 00 034222 ER4 AC+1,34222 ;LOW PRODUCT FAILED
9587 000040 000000 AEE=XX ;INITIAL C(E)
9588 036620 312 02 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED?
9589 036621 005 02 0 00 034223 ER5 E,34223 ;C(E) WAS CLOBBERED
9590 036622 321 06 0 00 036610 JUMPL AC+2,F34220 ;LOOP ON ERROR SWITCH^
9591
9592 003423 ADR=ADR+1
9593 000100 000000 XX=XX+XX
9594 IFE XX,<XX=1>
9595
9596 ;MULTIPLY A RIPPLED ONE BY -1
9597 IFG XX,<
9598 777777 777777 V1=-1
9599 777700 000000 V2=-XX>
9600 IFL XX,<
9601 V1=1
9602 V2=0>
9603 MOP1 (\ADR,-1,0,XX,V1,V2)^
9604 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9605 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9606 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9607 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9608
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0196
9609 777777 777777 F34230: AA1=-1 ;INITIAL C(AC)
9610 036623 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9611 000000 AA2=0 ;INITIAL C(AC+1)
9612 036624 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9613 000100 000000 AEE=XX ;INITIAL C(E)
9614 036625 200 02 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9615 036626 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9616 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9617 036627 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9618 036630 003 04 0 00 034231 ER3 AC,34231 ;HIGH PRODUCT FAILED
9619 777700 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9620 036631 312 05 0 00 044161 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9621 036632 004 05 0 00 034232 ER4 AC+1,34232 ;LOW PRODUCT FAILED
9622 000100 000000 AEE=XX ;INITIAL C(E)
9623 036633 312 02 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED?
9624 036634 005 02 0 00 034233 ER5 E,34233 ;C(E) WAS CLOBBERED
9625 036635 321 06 0 00 036623 JUMPL AC+2,F34230 ;LOOP ON ERROR SWITCH^
9626
9627 003424 ADR=ADR+1
9628 000200 000000 XX=XX+XX
9629 IFE XX,<XX=1>
9630
9631 ;MULTIPLY A RIPPLED ONE BY -1
9632 IFG XX,<
9633 777777 777777 V1=-1
9634 777600 000000 V2=-XX>
9635 IFL XX,<
9636 V1=1
9637 V2=0>
9638 MOP1 (\ADR,-1,0,XX,V1,V2)^
9639 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9640 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9641 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9642 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9643
9644 777777 777777 F34240: AA1=-1 ;INITIAL C(AC)
9645 036636 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9646 000000 AA2=0 ;INITIAL C(AC+1)
9647 036637 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9648 000200 000000 AEE=XX ;INITIAL C(E)
9649 036640 200 02 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9650 036641 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9651 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9652 036642 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9653 036643 003 04 0 00 034241 ER3 AC,34241 ;HIGH PRODUCT FAILED
9654 777600 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9655 036644 312 05 0 00 044162 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9656 036645 004 05 0 00 034242 ER4 AC+1,34242 ;LOW PRODUCT FAILED
9657 000200 000000 AEE=XX ;INITIAL C(E)
9658 036646 312 02 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED?
9659 036647 005 02 0 00 034243 ER5 E,34243 ;C(E) WAS CLOBBERED
9660 036650 321 06 0 00 036636 JUMPL AC+2,F34240 ;LOOP ON ERROR SWITCH^
9661
9662 003425 ADR=ADR+1
9663 000400 000000 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0197
9664 IFE XX,<XX=1>
9665
9666 ;MULTIPLY A RIPPLED ONE BY -1
9667 IFG XX,<
9668 777777 777777 V1=-1
9669 777400 000000 V2=-XX>
9670 IFL XX,<
9671 V1=1
9672 V2=0>
9673 MOP1 (\ADR,-1,0,XX,V1,V2)^
9674 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9675 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9676 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9677 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9678
9679 777777 777777 F34250: AA1=-1 ;INITIAL C(AC)
9680 036651 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9681 000000 AA2=0 ;INITIAL C(AC+1)
9682 036652 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9683 000400 000000 AEE=XX ;INITIAL C(E)
9684 036653 200 02 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9685 036654 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9686 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9687 036655 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9688 036656 003 04 0 00 034251 ER3 AC,34251 ;HIGH PRODUCT FAILED
9689 777400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9690 036657 312 05 0 00 044163 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9691 036660 004 05 0 00 034252 ER4 AC+1,34252 ;LOW PRODUCT FAILED
9692 000400 000000 AEE=XX ;INITIAL C(E)
9693 036661 312 02 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED?
9694 036662 005 02 0 00 034253 ER5 E,34253 ;C(E) WAS CLOBBERED
9695 036663 321 06 0 00 036651 JUMPL AC+2,F34250 ;LOOP ON ERROR SWITCH^
9696
9697 003426 ADR=ADR+1
9698 001000 000000 XX=XX+XX
9699 IFE XX,<XX=1>
9700
9701 ;MULTIPLY A RIPPLED ONE BY -1
9702 IFG XX,<
9703 777777 777777 V1=-1
9704 777000 000000 V2=-XX>
9705 IFL XX,<
9706 V1=1
9707 V2=0>
9708 MOP1 (\ADR,-1,0,XX,V1,V2)^
9709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9710 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9711 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9713
9714 777777 777777 F34260: AA1=-1 ;INITIAL C(AC)
9715 036664 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9716 000000 AA2=0 ;INITIAL C(AC+1)
9717 036665 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9718 001000 000000 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0198
9719 036666 200 02 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9720 036667 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9721 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9722 036670 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9723 036671 003 04 0 00 034261 ER3 AC,34261 ;HIGH PRODUCT FAILED
9724 777000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9725 036672 312 05 0 00 044164 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9726 036673 004 05 0 00 034262 ER4 AC+1,34262 ;LOW PRODUCT FAILED
9727 001000 000000 AEE=XX ;INITIAL C(E)
9728 036674 312 02 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED?
9729 036675 005 02 0 00 034263 ER5 E,34263 ;C(E) WAS CLOBBERED
9730 036676 321 06 0 00 036664 JUMPL AC+2,F34260 ;LOOP ON ERROR SWITCH^
9731
9732 003427 ADR=ADR+1
9733 002000 000000 XX=XX+XX
9734 IFE XX,<XX=1>
9735
9736 ;MULTIPLY A RIPPLED ONE BY -1
9737 IFG XX,<
9738 777777 777777 V1=-1
9739 776000 000000 V2=-XX>
9740 IFL XX,<
9741 V1=1
9742 V2=0>
9743 MOP1 (\ADR,-1,0,XX,V1,V2)^
9744 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9745 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9746 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9747 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9748
9749 777777 777777 F34270: AA1=-1 ;INITIAL C(AC)
9750 036677 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9751 000000 AA2=0 ;INITIAL C(AC+1)
9752 036700 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9753 002000 000000 AEE=XX ;INITIAL C(E)
9754 036701 200 02 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9755 036702 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9756 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9757 036703 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9758 036704 003 04 0 00 034271 ER3 AC,34271 ;HIGH PRODUCT FAILED
9759 776000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9760 036705 312 05 0 00 044165 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9761 036706 004 05 0 00 034272 ER4 AC+1,34272 ;LOW PRODUCT FAILED
9762 002000 000000 AEE=XX ;INITIAL C(E)
9763 036707 312 02 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED?
9764 036710 005 02 0 00 034273 ER5 E,34273 ;C(E) WAS CLOBBERED
9765 036711 321 06 0 00 036677 JUMPL AC+2,F34270 ;LOOP ON ERROR SWITCH^
9766
9767 003430 ADR=ADR+1
9768 004000 000000 XX=XX+XX
9769 IFE XX,<XX=1>
9770
9771 ;MULTIPLY A RIPPLED ONE BY -1
9772 IFG XX,<
9773 777777 777777 V1=-1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0199
9774 774000 000000 V2=-XX>
9775 IFL XX,<
9776 V1=1
9777 V2=0>
9778 MOP1 (\ADR,-1,0,XX,V1,V2)^
9779 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9780 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9781 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9782 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9783
9784 777777 777777 F34300: AA1=-1 ;INITIAL C(AC)
9785 036712 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9786 000000 AA2=0 ;INITIAL C(AC+1)
9787 036713 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9788 004000 000000 AEE=XX ;INITIAL C(E)
9789 036714 200 02 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9790 036715 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9791 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9792 036716 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9793 036717 003 04 0 00 034301 ER3 AC,34301 ;HIGH PRODUCT FAILED
9794 774000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9795 036720 312 05 0 00 044166 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9796 036721 004 05 0 00 034302 ER4 AC+1,34302 ;LOW PRODUCT FAILED
9797 004000 000000 AEE=XX ;INITIAL C(E)
9798 036722 312 02 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED?
9799 036723 005 02 0 00 034303 ER5 E,34303 ;C(E) WAS CLOBBERED
9800 036724 321 06 0 00 036712 JUMPL AC+2,F34300 ;LOOP ON ERROR SWITCH^
9801
9802 003431 ADR=ADR+1
9803 010000 000000 XX=XX+XX
9804 IFE XX,<XX=1>
9805
9806 ;MULTIPLY A RIPPLED ONE BY -1
9807 IFG XX,<
9808 777777 777777 V1=-1
9809 770000 000000 V2=-XX>
9810 IFL XX,<
9811 V1=1
9812 V2=0>
9813 MOP1 (\ADR,-1,0,XX,V1,V2)^
9814 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9815 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9816 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9817 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9818
9819 777777 777777 F34310: AA1=-1 ;INITIAL C(AC)
9820 036725 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9821 000000 AA2=0 ;INITIAL C(AC+1)
9822 036726 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9823 010000 000000 AEE=XX ;INITIAL C(E)
9824 036727 200 02 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9825 036730 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9826 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9827 036731 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9828 036732 003 04 0 00 034311 ER3 AC,34311 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0200
9829 770000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9830 036733 312 05 0 00 044167 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9831 036734 004 05 0 00 034312 ER4 AC+1,34312 ;LOW PRODUCT FAILED
9832 010000 000000 AEE=XX ;INITIAL C(E)
9833 036735 312 02 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED?
9834 036736 005 02 0 00 034313 ER5 E,34313 ;C(E) WAS CLOBBERED
9835 036737 321 06 0 00 036725 JUMPL AC+2,F34310 ;LOOP ON ERROR SWITCH^
9836
9837 003432 ADR=ADR+1
9838 020000 000000 XX=XX+XX
9839 IFE XX,<XX=1>
9840
9841 ;MULTIPLY A RIPPLED ONE BY -1
9842 IFG XX,<
9843 777777 777777 V1=-1
9844 760000 000000 V2=-XX>
9845 IFL XX,<
9846 V1=1
9847 V2=0>
9848 MOP1 (\ADR,-1,0,XX,V1,V2)^
9849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9850 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9851 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9853
9854 777777 777777 F34320: AA1=-1 ;INITIAL C(AC)
9855 036740 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9856 000000 AA2=0 ;INITIAL C(AC+1)
9857 036741 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9858 020000 000000 AEE=XX ;INITIAL C(E)
9859 036742 200 02 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9860 036743 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9861 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9862 036744 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9863 036745 003 04 0 00 034321 ER3 AC,34321 ;HIGH PRODUCT FAILED
9864 760000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9865 036746 312 05 0 00 044170 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9866 036747 004 05 0 00 034322 ER4 AC+1,34322 ;LOW PRODUCT FAILED
9867 020000 000000 AEE=XX ;INITIAL C(E)
9868 036750 312 02 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED?
9869 036751 005 02 0 00 034323 ER5 E,34323 ;C(E) WAS CLOBBERED
9870 036752 321 06 0 00 036740 JUMPL AC+2,F34320 ;LOOP ON ERROR SWITCH^
9871
9872 003433 ADR=ADR+1
9873 040000 000000 XX=XX+XX
9874 IFE XX,<XX=1>
9875
9876 ;MULTIPLY A RIPPLED ONE BY -1
9877 IFG XX,<
9878 777777 777777 V1=-1
9879 740000 000000 V2=-XX>
9880 IFL XX,<
9881 V1=1
9882 V2=0>
9883 MOP1 (\ADR,-1,0,XX,V1,V2)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-21
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0201
9884 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9885 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9886 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9887 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9888
9889 777777 777777 F34330: AA1=-1 ;INITIAL C(AC)
9890 036753 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9891 000000 AA2=0 ;INITIAL C(AC+1)
9892 036754 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9893 040000 000000 AEE=XX ;INITIAL C(E)
9894 036755 200 02 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9895 036756 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9896 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9897 036757 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9898 036760 003 04 0 00 034331 ER3 AC,34331 ;HIGH PRODUCT FAILED
9899 740000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9900 036761 312 05 0 00 044171 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9901 036762 004 05 0 00 034332 ER4 AC+1,34332 ;LOW PRODUCT FAILED
9902 040000 000000 AEE=XX ;INITIAL C(E)
9903 036763 312 02 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED?
9904 036764 005 02 0 00 034333 ER5 E,34333 ;C(E) WAS CLOBBERED
9905 036765 321 06 0 00 036753 JUMPL AC+2,F34330 ;LOOP ON ERROR SWITCH^
9906
9907 003434 ADR=ADR+1
9908 100000 000000 XX=XX+XX
9909 IFE XX,<XX=1>
9910
9911 ;MULTIPLY A RIPPLED ONE BY -1
9912 IFG XX,<
9913 777777 777777 V1=-1
9914 700000 000000 V2=-XX>
9915 IFL XX,<
9916 V1=1
9917 V2=0>
9918 MOP1 (\ADR,-1,0,XX,V1,V2)^
9919 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9920 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9921 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9922 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9923
9924 777777 777777 F34340: AA1=-1 ;INITIAL C(AC)
9925 036766 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9926 000000 AA2=0 ;INITIAL C(AC+1)
9927 036767 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9928 100000 000000 AEE=XX ;INITIAL C(E)
9929 036770 200 02 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9930 036771 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9931 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9932 036772 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9933 036773 003 04 0 00 034341 ER3 AC,34341 ;HIGH PRODUCT FAILED
9934 700000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9935 036774 312 05 0 00 044172 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9936 036775 004 05 0 00 034342 ER4 AC+1,34342 ;LOW PRODUCT FAILED
9937 100000 000000 AEE=XX ;INITIAL C(E)
9938 036776 312 02 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-22
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0202
9939 036777 005 02 0 00 034343 ER5 E,34343 ;C(E) WAS CLOBBERED
9940 037000 321 06 0 00 036766 JUMPL AC+2,F34340 ;LOOP ON ERROR SWITCH^
9941
9942 003435 ADR=ADR+1
9943 200000 000000 XX=XX+XX
9944 IFE XX,<XX=1>
9945
9946 ;MULTIPLY A RIPPLED ONE BY -1
9947 IFG XX,<
9948 777777 777777 V1=-1
9949 600000 000000 V2=-XX>
9950 IFL XX,<
9951 V1=1
9952 V2=0>
9953 MOP1 (\ADR,-1,0,XX,V1,V2)^
9954 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9955 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9956 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9957 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9958
9959 777777 777777 F34350: AA1=-1 ;INITIAL C(AC)
9960 037001 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9961 000000 AA2=0 ;INITIAL C(AC+1)
9962 037002 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9963 200000 000000 AEE=XX ;INITIAL C(E)
9964 037003 200 02 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
9965 037004 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
9966 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
9967 037005 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
9968 037006 003 04 0 00 034351 ER3 AC,34351 ;HIGH PRODUCT FAILED
9969 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
9970 037007 312 05 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
9971 037010 004 05 0 00 034352 ER4 AC+1,34352 ;LOW PRODUCT FAILED
9972 200000 000000 AEE=XX ;INITIAL C(E)
9973 037011 312 02 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED?
9974 037012 005 02 0 00 034353 ER5 E,34353 ;C(E) WAS CLOBBERED
9975 037013 321 06 0 00 037001 JUMPL AC+2,F34350 ;LOOP ON ERROR SWITCH^
9976
9977 003436 ADR=ADR+1
9978 400000 000000 XX=XX+XX
9979 IFE XX,<XX=1>
9980
9981 ;MULTIPLY A RIPPLED ONE BY -1
9982 IFG XX,<
9983 V1=-1
9984 V2=-XX>
9985 IFL XX,<
9986 000001 V1=1
9987 000000 V2=0>
9988 MOP1 (\ADR,-1,0,XX,V1,V2)^
9989 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
9990 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
9991 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
9992 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
9993
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-23
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0203
9994 777777 777777 F34360: AA1=-1 ;INITIAL C(AC)
9995 037014 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
9996 000000 AA2=0 ;INITIAL C(AC+1)
9997 037015 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
9998 400000 000000 AEE=XX ;INITIAL C(E)
9999 037016 200 02 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
10000 037017 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10001 000001 AR1=V1 ;EXPECTED RESULT IN AC
10002 037020 312 04 0 00 044000 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10003 037021 003 04 0 00 034361 ER3 AC,34361 ;HIGH PRODUCT FAILED
10004 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10005 037022 312 05 0 00 043776 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10006 037023 004 05 0 00 034362 ER4 AC+1,34362 ;LOW PRODUCT FAILED
10007 400000 000000 AEE=XX ;INITIAL C(E)
10008 037024 312 02 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED?
10009 037025 005 02 0 00 034363 ER5 E,34363 ;C(E) WAS CLOBBERED
10010 037026 321 06 0 00 037014 JUMPL AC+2,F34360 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0204
10011 000003 AC=3
10012 000001 E=<AC-2>&17
10013 SAVEAC (1,1)^
10014 037027 201 05 0 00 037027 MOVEI AC+2,. ;SAVE TEST PC
10015 037030 202 05 0 00 030051 MOVEM AC+2,TESTPC
10016 037031 201 05 0 00 000005 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
10017 037032 202 05 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
10018 000000 XX=0
10019
10020 REPEAT ^D35,< ;LAST CASE IS DIFFERENT
10021 ADR=ADR+1
10022 XX=XX+XX
10023 IFE XX,<XX=1>
10024
10025 ;MULTIPLY -1 BY A RIPPLED 1
10026 IFG XX,<
10027 V1=-1
10028 V2=-XX>
10029 IFL XX,<
10030 V1=1
10031 V2=0>
10032 MOP1 (\ADR,XX,0,-1,V1,V2)>
10033 ;LAST CASE IS DIFFERENT
10034 003437 ADR=ADR+1
10035 000000 XX=XX+XX
10036 000001 IFE XX,<XX=1>
10037
10038 ;MULTIPLY -1 BY A RIPPLED 1
10039 IFG XX,<
10040 777777 777777 V1=-1
10041 777777 777777 V2=-XX>
10042 IFL XX,<
10043 V1=1
10044 V2=0>
10045 MOP1 (\ADR,XX,0,-1,V1,V2)^
10046 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10047 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10048 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10049 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10050
10051 000001 F34370: AA1=XX ;INITIAL C(AC)
10052 037033 200 03 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10053 000000 AA2=0 ;INITIAL C(AC+1)
10054 037034 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10055 777777 777777 AEE=-1 ;INITIAL C(E)
10056 037035 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10057 037036 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10058 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10059 037037 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10060 037040 003 03 0 00 034371 ER3 AC,34371 ;HIGH PRODUCT FAILED
10061 777777 777777 AR2=V2 ;EXPECTED RESULT IN AC+1
10062 037041 312 04 0 00 043777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10063 037042 004 04 0 00 034372 ER4 AC+1,34372 ;LOW PRODUCT FAILED
10064 777777 777777 AEE=-1 ;INITIAL C(E)
10065 037043 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0205
10066 037044 005 01 0 00 034373 ER5 E,34373 ;C(E) WAS CLOBBERED
10067 037045 321 05 0 00 037033 JUMPL AC+2,F34370 ;LOOP ON ERROR SWITCH^
10068 ;LAST CASE IS DIFFERENT
10069 003440 ADR=ADR+1
10070 000002 XX=XX+XX
10071 IFE XX,<XX=1>
10072
10073 ;MULTIPLY -1 BY A RIPPLED 1
10074 IFG XX,<
10075 777777 777777 V1=-1
10076 777777 777776 V2=-XX>
10077 IFL XX,<
10078 V1=1
10079 V2=0>
10080 MOP1 (\ADR,XX,0,-1,V1,V2)^
10081 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10082 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10083 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10084 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10085
10086 000002 F34400: AA1=XX ;INITIAL C(AC)
10087 037046 200 03 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10088 000000 AA2=0 ;INITIAL C(AC+1)
10089 037047 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10090 777777 777777 AEE=-1 ;INITIAL C(E)
10091 037050 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10092 037051 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10093 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10094 037052 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10095 037053 003 03 0 00 034401 ER3 AC,34401 ;HIGH PRODUCT FAILED
10096 777777 777776 AR2=V2 ;EXPECTED RESULT IN AC+1
10097 037054 312 04 0 00 044044 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10098 037055 004 04 0 00 034402 ER4 AC+1,34402 ;LOW PRODUCT FAILED
10099 777777 777777 AEE=-1 ;INITIAL C(E)
10100 037056 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10101 037057 005 01 0 00 034403 ER5 E,34403 ;C(E) WAS CLOBBERED
10102 037060 321 05 0 00 037046 JUMPL AC+2,F34400 ;LOOP ON ERROR SWITCH^
10103 ;LAST CASE IS DIFFERENT
10104 003441 ADR=ADR+1
10105 000004 XX=XX+XX
10106 IFE XX,<XX=1>
10107
10108 ;MULTIPLY -1 BY A RIPPLED 1
10109 IFG XX,<
10110 777777 777777 V1=-1
10111 777777 777774 V2=-XX>
10112 IFL XX,<
10113 V1=1
10114 V2=0>
10115 MOP1 (\ADR,XX,0,-1,V1,V2)^
10116 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10117 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10118 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10119 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10120
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0206
10121 000004 F34410: AA1=XX ;INITIAL C(AC)
10122 037061 200 03 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10123 000000 AA2=0 ;INITIAL C(AC+1)
10124 037062 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10125 777777 777777 AEE=-1 ;INITIAL C(E)
10126 037063 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10127 037064 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10128 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10129 037065 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10130 037066 003 03 0 00 034411 ER3 AC,34411 ;HIGH PRODUCT FAILED
10131 777777 777774 AR2=V2 ;EXPECTED RESULT IN AC+1
10132 037067 312 04 0 00 044123 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10133 037070 004 04 0 00 034412 ER4 AC+1,34412 ;LOW PRODUCT FAILED
10134 777777 777777 AEE=-1 ;INITIAL C(E)
10135 037071 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10136 037072 005 01 0 00 034413 ER5 E,34413 ;C(E) WAS CLOBBERED
10137 037073 321 05 0 00 037061 JUMPL AC+2,F34410 ;LOOP ON ERROR SWITCH^
10138 ;LAST CASE IS DIFFERENT
10139 003442 ADR=ADR+1
10140 000010 XX=XX+XX
10141 IFE XX,<XX=1>
10142
10143 ;MULTIPLY -1 BY A RIPPLED 1
10144 IFG XX,<
10145 777777 777777 V1=-1
10146 777777 777770 V2=-XX>
10147 IFL XX,<
10148 V1=1
10149 V2=0>
10150 MOP1 (\ADR,XX,0,-1,V1,V2)^
10151 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10152 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10153 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10154 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10155
10156 000010 F34420: AA1=XX ;INITIAL C(AC)
10157 037074 200 03 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10158 000000 AA2=0 ;INITIAL C(AC+1)
10159 037075 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10160 777777 777777 AEE=-1 ;INITIAL C(E)
10161 037076 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10162 037077 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10163 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10164 037100 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10165 037101 003 03 0 00 034421 ER3 AC,34421 ;HIGH PRODUCT FAILED
10166 777777 777770 AR2=V2 ;EXPECTED RESULT IN AC+1
10167 037102 312 04 0 00 044126 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10168 037103 004 04 0 00 034422 ER4 AC+1,34422 ;LOW PRODUCT FAILED
10169 777777 777777 AEE=-1 ;INITIAL C(E)
10170 037104 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10171 037105 005 01 0 00 034423 ER5 E,34423 ;C(E) WAS CLOBBERED
10172 037106 321 05 0 00 037074 JUMPL AC+2,F34420 ;LOOP ON ERROR SWITCH^
10173 ;LAST CASE IS DIFFERENT
10174 003443 ADR=ADR+1
10175 000020 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0207
10176 IFE XX,<XX=1>
10177
10178 ;MULTIPLY -1 BY A RIPPLED 1
10179 IFG XX,<
10180 777777 777777 V1=-1
10181 777777 777760 V2=-XX>
10182 IFL XX,<
10183 V1=1
10184 V2=0>
10185 MOP1 (\ADR,XX,0,-1,V1,V2)^
10186 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10187 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10188 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10189 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10190
10191 000020 F34430: AA1=XX ;INITIAL C(AC)
10192 037107 200 03 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10193 000000 AA2=0 ;INITIAL C(AC+1)
10194 037110 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10195 777777 777777 AEE=-1 ;INITIAL C(E)
10196 037111 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10197 037112 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10198 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10199 037113 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10200 037114 003 03 0 00 034431 ER3 AC,34431 ;HIGH PRODUCT FAILED
10201 777777 777760 AR2=V2 ;EXPECTED RESULT IN AC+1
10202 037115 312 04 0 00 044135 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10203 037116 004 04 0 00 034432 ER4 AC+1,34432 ;LOW PRODUCT FAILED
10204 777777 777777 AEE=-1 ;INITIAL C(E)
10205 037117 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10206 037120 005 01 0 00 034433 ER5 E,34433 ;C(E) WAS CLOBBERED
10207 037121 321 05 0 00 037107 JUMPL AC+2,F34430 ;LOOP ON ERROR SWITCH^
10208 ;LAST CASE IS DIFFERENT
10209 003444 ADR=ADR+1
10210 000040 XX=XX+XX
10211 IFE XX,<XX=1>
10212
10213 ;MULTIPLY -1 BY A RIPPLED 1
10214 IFG XX,<
10215 777777 777777 V1=-1
10216 777777 777740 V2=-XX>
10217 IFL XX,<
10218 V1=1
10219 V2=0>
10220 MOP1 (\ADR,XX,0,-1,V1,V2)^
10221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10222 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10223 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10225
10226 000040 F34440: AA1=XX ;INITIAL C(AC)
10227 037122 200 03 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10228 000000 AA2=0 ;INITIAL C(AC+1)
10229 037123 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10230 777777 777777 AEE=-1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0208
10231 037124 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10232 037125 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10233 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10234 037126 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10235 037127 003 03 0 00 034441 ER3 AC,34441 ;HIGH PRODUCT FAILED
10236 777777 777740 AR2=V2 ;EXPECTED RESULT IN AC+1
10237 037130 312 04 0 00 044136 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10238 037131 004 04 0 00 034442 ER4 AC+1,34442 ;LOW PRODUCT FAILED
10239 777777 777777 AEE=-1 ;INITIAL C(E)
10240 037132 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10241 037133 005 01 0 00 034443 ER5 E,34443 ;C(E) WAS CLOBBERED
10242 037134 321 05 0 00 037122 JUMPL AC+2,F34440 ;LOOP ON ERROR SWITCH^
10243 ;LAST CASE IS DIFFERENT
10244 003445 ADR=ADR+1
10245 000100 XX=XX+XX
10246 IFE XX,<XX=1>
10247
10248 ;MULTIPLY -1 BY A RIPPLED 1
10249 IFG XX,<
10250 777777 777777 V1=-1
10251 777777 777700 V2=-XX>
10252 IFL XX,<
10253 V1=1
10254 V2=0>
10255 MOP1 (\ADR,XX,0,-1,V1,V2)^
10256 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10257 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10258 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10259 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10260
10261 000100 F34450: AA1=XX ;INITIAL C(AC)
10262 037135 200 03 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10263 000000 AA2=0 ;INITIAL C(AC+1)
10264 037136 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10265 777777 777777 AEE=-1 ;INITIAL C(E)
10266 037137 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10267 037140 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10268 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10269 037141 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10270 037142 003 03 0 00 034451 ER3 AC,34451 ;HIGH PRODUCT FAILED
10271 777777 777700 AR2=V2 ;EXPECTED RESULT IN AC+1
10272 037143 312 04 0 00 044137 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10273 037144 004 04 0 00 034452 ER4 AC+1,34452 ;LOW PRODUCT FAILED
10274 777777 777777 AEE=-1 ;INITIAL C(E)
10275 037145 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10276 037146 005 01 0 00 034453 ER5 E,34453 ;C(E) WAS CLOBBERED
10277 037147 321 05 0 00 037135 JUMPL AC+2,F34450 ;LOOP ON ERROR SWITCH^
10278 ;LAST CASE IS DIFFERENT
10279 003446 ADR=ADR+1
10280 000200 XX=XX+XX
10281 IFE XX,<XX=1>
10282
10283 ;MULTIPLY -1 BY A RIPPLED 1
10284 IFG XX,<
10285 777777 777777 V1=-1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0209
10286 777777 777600 V2=-XX>
10287 IFL XX,<
10288 V1=1
10289 V2=0>
10290 MOP1 (\ADR,XX,0,-1,V1,V2)^
10291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10292 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10293 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10295
10296 000200 F34460: AA1=XX ;INITIAL C(AC)
10297 037150 200 03 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10298 000000 AA2=0 ;INITIAL C(AC+1)
10299 037151 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10300 777777 777777 AEE=-1 ;INITIAL C(E)
10301 037152 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10302 037153 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10303 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10304 037154 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10305 037155 003 03 0 00 034461 ER3 AC,34461 ;HIGH PRODUCT FAILED
10306 777777 777600 AR2=V2 ;EXPECTED RESULT IN AC+1
10307 037156 312 04 0 00 044140 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10308 037157 004 04 0 00 034462 ER4 AC+1,34462 ;LOW PRODUCT FAILED
10309 777777 777777 AEE=-1 ;INITIAL C(E)
10310 037160 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10311 037161 005 01 0 00 034463 ER5 E,34463 ;C(E) WAS CLOBBERED
10312 037162 321 05 0 00 037150 JUMPL AC+2,F34460 ;LOOP ON ERROR SWITCH^
10313 ;LAST CASE IS DIFFERENT
10314 003447 ADR=ADR+1
10315 000400 XX=XX+XX
10316 IFE XX,<XX=1>
10317
10318 ;MULTIPLY -1 BY A RIPPLED 1
10319 IFG XX,<
10320 777777 777777 V1=-1
10321 777777 777400 V2=-XX>
10322 IFL XX,<
10323 V1=1
10324 V2=0>
10325 MOP1 (\ADR,XX,0,-1,V1,V2)^
10326 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10327 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10328 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10329 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10330
10331 000400 F34470: AA1=XX ;INITIAL C(AC)
10332 037163 200 03 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10333 000000 AA2=0 ;INITIAL C(AC+1)
10334 037164 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10335 777777 777777 AEE=-1 ;INITIAL C(E)
10336 037165 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10337 037166 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10338 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10339 037167 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10340 037170 003 03 0 00 034471 ER3 AC,34471 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0210
10341 777777 777400 AR2=V2 ;EXPECTED RESULT IN AC+1
10342 037171 312 04 0 00 044141 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10343 037172 004 04 0 00 034472 ER4 AC+1,34472 ;LOW PRODUCT FAILED
10344 777777 777777 AEE=-1 ;INITIAL C(E)
10345 037173 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10346 037174 005 01 0 00 034473 ER5 E,34473 ;C(E) WAS CLOBBERED
10347 037175 321 05 0 00 037163 JUMPL AC+2,F34470 ;LOOP ON ERROR SWITCH^
10348 ;LAST CASE IS DIFFERENT
10349 003450 ADR=ADR+1
10350 001000 XX=XX+XX
10351 IFE XX,<XX=1>
10352
10353 ;MULTIPLY -1 BY A RIPPLED 1
10354 IFG XX,<
10355 777777 777777 V1=-1
10356 777777 777000 V2=-XX>
10357 IFL XX,<
10358 V1=1
10359 V2=0>
10360 MOP1 (\ADR,XX,0,-1,V1,V2)^
10361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10362 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10363 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10365
10366 001000 F34500: AA1=XX ;INITIAL C(AC)
10367 037176 200 03 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10368 000000 AA2=0 ;INITIAL C(AC+1)
10369 037177 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10370 777777 777777 AEE=-1 ;INITIAL C(E)
10371 037200 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10372 037201 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10373 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10374 037202 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10375 037203 003 03 0 00 034501 ER3 AC,34501 ;HIGH PRODUCT FAILED
10376 777777 777000 AR2=V2 ;EXPECTED RESULT IN AC+1
10377 037204 312 04 0 00 044142 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10378 037205 004 04 0 00 034502 ER4 AC+1,34502 ;LOW PRODUCT FAILED
10379 777777 777777 AEE=-1 ;INITIAL C(E)
10380 037206 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10381 037207 005 01 0 00 034503 ER5 E,34503 ;C(E) WAS CLOBBERED
10382 037210 321 05 0 00 037176 JUMPL AC+2,F34500 ;LOOP ON ERROR SWITCH^
10383 ;LAST CASE IS DIFFERENT
10384 003451 ADR=ADR+1
10385 002000 XX=XX+XX
10386 IFE XX,<XX=1>
10387
10388 ;MULTIPLY -1 BY A RIPPLED 1
10389 IFG XX,<
10390 777777 777777 V1=-1
10391 777777 776000 V2=-XX>
10392 IFL XX,<
10393 V1=1
10394 V2=0>
10395 MOP1 (\ADR,XX,0,-1,V1,V2)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0211
10396 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10397 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10398 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10399 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10400
10401 002000 F34510: AA1=XX ;INITIAL C(AC)
10402 037211 200 03 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10403 000000 AA2=0 ;INITIAL C(AC+1)
10404 037212 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10405 777777 777777 AEE=-1 ;INITIAL C(E)
10406 037213 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10407 037214 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10408 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10409 037215 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10410 037216 003 03 0 00 034511 ER3 AC,34511 ;HIGH PRODUCT FAILED
10411 777777 776000 AR2=V2 ;EXPECTED RESULT IN AC+1
10412 037217 312 04 0 00 044143 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10413 037220 004 04 0 00 034512 ER4 AC+1,34512 ;LOW PRODUCT FAILED
10414 777777 777777 AEE=-1 ;INITIAL C(E)
10415 037221 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10416 037222 005 01 0 00 034513 ER5 E,34513 ;C(E) WAS CLOBBERED
10417 037223 321 05 0 00 037211 JUMPL AC+2,F34510 ;LOOP ON ERROR SWITCH^
10418 ;LAST CASE IS DIFFERENT
10419 003452 ADR=ADR+1
10420 004000 XX=XX+XX
10421 IFE XX,<XX=1>
10422
10423 ;MULTIPLY -1 BY A RIPPLED 1
10424 IFG XX,<
10425 777777 777777 V1=-1
10426 777777 774000 V2=-XX>
10427 IFL XX,<
10428 V1=1
10429 V2=0>
10430 MOP1 (\ADR,XX,0,-1,V1,V2)^
10431 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10432 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10433 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10434 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10435
10436 004000 F34520: AA1=XX ;INITIAL C(AC)
10437 037224 200 03 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10438 000000 AA2=0 ;INITIAL C(AC+1)
10439 037225 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10440 777777 777777 AEE=-1 ;INITIAL C(E)
10441 037226 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10442 037227 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10443 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10444 037230 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10445 037231 003 03 0 00 034521 ER3 AC,34521 ;HIGH PRODUCT FAILED
10446 777777 774000 AR2=V2 ;EXPECTED RESULT IN AC+1
10447 037232 312 04 0 00 044144 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10448 037233 004 04 0 00 034522 ER4 AC+1,34522 ;LOW PRODUCT FAILED
10449 777777 777777 AEE=-1 ;INITIAL C(E)
10450 037234 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0212
10451 037235 005 01 0 00 034523 ER5 E,34523 ;C(E) WAS CLOBBERED
10452 037236 321 05 0 00 037224 JUMPL AC+2,F34520 ;LOOP ON ERROR SWITCH^
10453 ;LAST CASE IS DIFFERENT
10454 003453 ADR=ADR+1
10455 010000 XX=XX+XX
10456 IFE XX,<XX=1>
10457
10458 ;MULTIPLY -1 BY A RIPPLED 1
10459 IFG XX,<
10460 777777 777777 V1=-1
10461 777777 770000 V2=-XX>
10462 IFL XX,<
10463 V1=1
10464 V2=0>
10465 MOP1 (\ADR,XX,0,-1,V1,V2)^
10466 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10467 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10468 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10469 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10470
10471 010000 F34530: AA1=XX ;INITIAL C(AC)
10472 037237 200 03 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10473 000000 AA2=0 ;INITIAL C(AC+1)
10474 037240 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10475 777777 777777 AEE=-1 ;INITIAL C(E)
10476 037241 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10477 037242 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10478 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10479 037243 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10480 037244 003 03 0 00 034531 ER3 AC,34531 ;HIGH PRODUCT FAILED
10481 777777 770000 AR2=V2 ;EXPECTED RESULT IN AC+1
10482 037245 312 04 0 00 044145 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10483 037246 004 04 0 00 034532 ER4 AC+1,34532 ;LOW PRODUCT FAILED
10484 777777 777777 AEE=-1 ;INITIAL C(E)
10485 037247 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10486 037250 005 01 0 00 034533 ER5 E,34533 ;C(E) WAS CLOBBERED
10487 037251 321 05 0 00 037237 JUMPL AC+2,F34530 ;LOOP ON ERROR SWITCH^
10488 ;LAST CASE IS DIFFERENT
10489 003454 ADR=ADR+1
10490 020000 XX=XX+XX
10491 IFE XX,<XX=1>
10492
10493 ;MULTIPLY -1 BY A RIPPLED 1
10494 IFG XX,<
10495 777777 777777 V1=-1
10496 777777 760000 V2=-XX>
10497 IFL XX,<
10498 V1=1
10499 V2=0>
10500 MOP1 (\ADR,XX,0,-1,V1,V2)^
10501 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10502 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10503 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10504 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10505
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0213
10506 020000 F34540: AA1=XX ;INITIAL C(AC)
10507 037252 200 03 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10508 000000 AA2=0 ;INITIAL C(AC+1)
10509 037253 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10510 777777 777777 AEE=-1 ;INITIAL C(E)
10511 037254 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10512 037255 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10513 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10514 037256 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10515 037257 003 03 0 00 034541 ER3 AC,34541 ;HIGH PRODUCT FAILED
10516 777777 760000 AR2=V2 ;EXPECTED RESULT IN AC+1
10517 037260 312 04 0 00 044146 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10518 037261 004 04 0 00 034542 ER4 AC+1,34542 ;LOW PRODUCT FAILED
10519 777777 777777 AEE=-1 ;INITIAL C(E)
10520 037262 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10521 037263 005 01 0 00 034543 ER5 E,34543 ;C(E) WAS CLOBBERED
10522 037264 321 05 0 00 037252 JUMPL AC+2,F34540 ;LOOP ON ERROR SWITCH^
10523 ;LAST CASE IS DIFFERENT
10524 003455 ADR=ADR+1
10525 040000 XX=XX+XX
10526 IFE XX,<XX=1>
10527
10528 ;MULTIPLY -1 BY A RIPPLED 1
10529 IFG XX,<
10530 777777 777777 V1=-1
10531 777777 740000 V2=-XX>
10532 IFL XX,<
10533 V1=1
10534 V2=0>
10535 MOP1 (\ADR,XX,0,-1,V1,V2)^
10536 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10537 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10538 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10539 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10540
10541 040000 F34550: AA1=XX ;INITIAL C(AC)
10542 037265 200 03 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10543 000000 AA2=0 ;INITIAL C(AC+1)
10544 037266 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10545 777777 777777 AEE=-1 ;INITIAL C(E)
10546 037267 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10547 037270 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10548 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10549 037271 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10550 037272 003 03 0 00 034551 ER3 AC,34551 ;HIGH PRODUCT FAILED
10551 777777 740000 AR2=V2 ;EXPECTED RESULT IN AC+1
10552 037273 312 04 0 00 044147 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10553 037274 004 04 0 00 034552 ER4 AC+1,34552 ;LOW PRODUCT FAILED
10554 777777 777777 AEE=-1 ;INITIAL C(E)
10555 037275 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10556 037276 005 01 0 00 034553 ER5 E,34553 ;C(E) WAS CLOBBERED
10557 037277 321 05 0 00 037265 JUMPL AC+2,F34550 ;LOOP ON ERROR SWITCH^
10558 ;LAST CASE IS DIFFERENT
10559 003456 ADR=ADR+1
10560 100000 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0214
10561 IFE XX,<XX=1>
10562
10563 ;MULTIPLY -1 BY A RIPPLED 1
10564 IFG XX,<
10565 777777 777777 V1=-1
10566 777777 700000 V2=-XX>
10567 IFL XX,<
10568 V1=1
10569 V2=0>
10570 MOP1 (\ADR,XX,0,-1,V1,V2)^
10571 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10572 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10573 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10574 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10575
10576 100000 F34560: AA1=XX ;INITIAL C(AC)
10577 037300 200 03 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10578 000000 AA2=0 ;INITIAL C(AC+1)
10579 037301 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10580 777777 777777 AEE=-1 ;INITIAL C(E)
10581 037302 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10582 037303 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10583 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10584 037304 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10585 037305 003 03 0 00 034561 ER3 AC,34561 ;HIGH PRODUCT FAILED
10586 777777 700000 AR2=V2 ;EXPECTED RESULT IN AC+1
10587 037306 312 04 0 00 044150 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10588 037307 004 04 0 00 034562 ER4 AC+1,34562 ;LOW PRODUCT FAILED
10589 777777 777777 AEE=-1 ;INITIAL C(E)
10590 037310 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10591 037311 005 01 0 00 034563 ER5 E,34563 ;C(E) WAS CLOBBERED
10592 037312 321 05 0 00 037300 JUMPL AC+2,F34560 ;LOOP ON ERROR SWITCH^
10593 ;LAST CASE IS DIFFERENT
10594 003457 ADR=ADR+1
10595 200000 XX=XX+XX
10596 IFE XX,<XX=1>
10597
10598 ;MULTIPLY -1 BY A RIPPLED 1
10599 IFG XX,<
10600 777777 777777 V1=-1
10601 777777 600000 V2=-XX>
10602 IFL XX,<
10603 V1=1
10604 V2=0>
10605 MOP1 (\ADR,XX,0,-1,V1,V2)^
10606 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10607 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10608 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10609 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10610
10611 200000 F34570: AA1=XX ;INITIAL C(AC)
10612 037313 200 03 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10613 000000 AA2=0 ;INITIAL C(AC+1)
10614 037314 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10615 777777 777777 AEE=-1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0215
10616 037315 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10617 037316 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10618 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10619 037317 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10620 037320 003 03 0 00 034571 ER3 AC,34571 ;HIGH PRODUCT FAILED
10621 777777 600000 AR2=V2 ;EXPECTED RESULT IN AC+1
10622 037321 312 04 0 00 044151 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10623 037322 004 04 0 00 034572 ER4 AC+1,34572 ;LOW PRODUCT FAILED
10624 777777 777777 AEE=-1 ;INITIAL C(E)
10625 037323 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10626 037324 005 01 0 00 034573 ER5 E,34573 ;C(E) WAS CLOBBERED
10627 037325 321 05 0 00 037313 JUMPL AC+2,F34570 ;LOOP ON ERROR SWITCH^
10628 ;LAST CASE IS DIFFERENT
10629 003460 ADR=ADR+1
10630 400000 XX=XX+XX
10631 IFE XX,<XX=1>
10632
10633 ;MULTIPLY -1 BY A RIPPLED 1
10634 IFG XX,<
10635 777777 777777 V1=-1
10636 777777 400000 V2=-XX>
10637 IFL XX,<
10638 V1=1
10639 V2=0>
10640 MOP1 (\ADR,XX,0,-1,V1,V2)^
10641 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10642 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10643 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10644 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10645
10646 400000 F34600: AA1=XX ;INITIAL C(AC)
10647 037326 200 03 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10648 000000 AA2=0 ;INITIAL C(AC+1)
10649 037327 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10650 777777 777777 AEE=-1 ;INITIAL C(E)
10651 037330 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10652 037331 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10653 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10654 037332 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10655 037333 003 03 0 00 034601 ER3 AC,34601 ;HIGH PRODUCT FAILED
10656 777777 400000 AR2=V2 ;EXPECTED RESULT IN AC+1
10657 037334 312 04 0 00 044152 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10658 037335 004 04 0 00 034602 ER4 AC+1,34602 ;LOW PRODUCT FAILED
10659 777777 777777 AEE=-1 ;INITIAL C(E)
10660 037336 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10661 037337 005 01 0 00 034603 ER5 E,34603 ;C(E) WAS CLOBBERED
10662 037340 321 05 0 00 037326 JUMPL AC+2,F34600 ;LOOP ON ERROR SWITCH^
10663 ;LAST CASE IS DIFFERENT
10664 003461 ADR=ADR+1
10665 000001 000000 XX=XX+XX
10666 IFE XX,<XX=1>
10667
10668 ;MULTIPLY -1 BY A RIPPLED 1
10669 IFG XX,<
10670 777777 777777 V1=-1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0216
10671 777777 000000 V2=-XX>
10672 IFL XX,<
10673 V1=1
10674 V2=0>
10675 MOP1 (\ADR,XX,0,-1,V1,V2)^
10676 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10677 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10678 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10679 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10680
10681 000001 000000 F34610: AA1=XX ;INITIAL C(AC)
10682 037341 200 03 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10683 000000 AA2=0 ;INITIAL C(AC+1)
10684 037342 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10685 777777 777777 AEE=-1 ;INITIAL C(E)
10686 037343 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10687 037344 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10688 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10689 037345 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10690 037346 003 03 0 00 034611 ER3 AC,34611 ;HIGH PRODUCT FAILED
10691 777777 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10692 037347 312 04 0 00 044153 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10693 037350 004 04 0 00 034612 ER4 AC+1,34612 ;LOW PRODUCT FAILED
10694 777777 777777 AEE=-1 ;INITIAL C(E)
10695 037351 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10696 037352 005 01 0 00 034613 ER5 E,34613 ;C(E) WAS CLOBBERED
10697 037353 321 05 0 00 037341 JUMPL AC+2,F34610 ;LOOP ON ERROR SWITCH^
10698 ;LAST CASE IS DIFFERENT
10699 003462 ADR=ADR+1
10700 000002 000000 XX=XX+XX
10701 IFE XX,<XX=1>
10702
10703 ;MULTIPLY -1 BY A RIPPLED 1
10704 IFG XX,<
10705 777777 777777 V1=-1
10706 777776 000000 V2=-XX>
10707 IFL XX,<
10708 V1=1
10709 V2=0>
10710 MOP1 (\ADR,XX,0,-1,V1,V2)^
10711 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10712 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10713 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10714 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10715
10716 000002 000000 F34620: AA1=XX ;INITIAL C(AC)
10717 037354 200 03 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10718 000000 AA2=0 ;INITIAL C(AC+1)
10719 037355 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10720 777777 777777 AEE=-1 ;INITIAL C(E)
10721 037356 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10722 037357 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10723 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10724 037360 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10725 037361 003 03 0 00 034621 ER3 AC,34621 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0217
10726 777776 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10727 037362 312 04 0 00 044154 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10728 037363 004 04 0 00 034622 ER4 AC+1,34622 ;LOW PRODUCT FAILED
10729 777777 777777 AEE=-1 ;INITIAL C(E)
10730 037364 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10731 037365 005 01 0 00 034623 ER5 E,34623 ;C(E) WAS CLOBBERED
10732 037366 321 05 0 00 037354 JUMPL AC+2,F34620 ;LOOP ON ERROR SWITCH^
10733 ;LAST CASE IS DIFFERENT
10734 003463 ADR=ADR+1
10735 000004 000000 XX=XX+XX
10736 IFE XX,<XX=1>
10737
10738 ;MULTIPLY -1 BY A RIPPLED 1
10739 IFG XX,<
10740 777777 777777 V1=-1
10741 777774 000000 V2=-XX>
10742 IFL XX,<
10743 V1=1
10744 V2=0>
10745 MOP1 (\ADR,XX,0,-1,V1,V2)^
10746 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10747 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10748 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10749 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10750
10751 000004 000000 F34630: AA1=XX ;INITIAL C(AC)
10752 037367 200 03 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10753 000000 AA2=0 ;INITIAL C(AC+1)
10754 037370 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10755 777777 777777 AEE=-1 ;INITIAL C(E)
10756 037371 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10757 037372 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10758 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10759 037373 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10760 037374 003 03 0 00 034631 ER3 AC,34631 ;HIGH PRODUCT FAILED
10761 777774 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10762 037375 312 04 0 00 044155 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10763 037376 004 04 0 00 034632 ER4 AC+1,34632 ;LOW PRODUCT FAILED
10764 777777 777777 AEE=-1 ;INITIAL C(E)
10765 037377 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10766 037400 005 01 0 00 034633 ER5 E,34633 ;C(E) WAS CLOBBERED
10767 037401 321 05 0 00 037367 JUMPL AC+2,F34630 ;LOOP ON ERROR SWITCH^
10768 ;LAST CASE IS DIFFERENT
10769 003464 ADR=ADR+1
10770 000010 000000 XX=XX+XX
10771 IFE XX,<XX=1>
10772
10773 ;MULTIPLY -1 BY A RIPPLED 1
10774 IFG XX,<
10775 777777 777777 V1=-1
10776 777770 000000 V2=-XX>
10777 IFL XX,<
10778 V1=1
10779 V2=0>
10780 MOP1 (\ADR,XX,0,-1,V1,V2)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0218
10781 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10782 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10783 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10784 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10785
10786 000010 000000 F34640: AA1=XX ;INITIAL C(AC)
10787 037402 200 03 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10788 000000 AA2=0 ;INITIAL C(AC+1)
10789 037403 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10790 777777 777777 AEE=-1 ;INITIAL C(E)
10791 037404 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10792 037405 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10793 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10794 037406 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10795 037407 003 03 0 00 034641 ER3 AC,34641 ;HIGH PRODUCT FAILED
10796 777770 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10797 037410 312 04 0 00 044156 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10798 037411 004 04 0 00 034642 ER4 AC+1,34642 ;LOW PRODUCT FAILED
10799 777777 777777 AEE=-1 ;INITIAL C(E)
10800 037412 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10801 037413 005 01 0 00 034643 ER5 E,34643 ;C(E) WAS CLOBBERED
10802 037414 321 05 0 00 037402 JUMPL AC+2,F34640 ;LOOP ON ERROR SWITCH^
10803 ;LAST CASE IS DIFFERENT
10804 003465 ADR=ADR+1
10805 000020 000000 XX=XX+XX
10806 IFE XX,<XX=1>
10807
10808 ;MULTIPLY -1 BY A RIPPLED 1
10809 IFG XX,<
10810 777777 777777 V1=-1
10811 777760 000000 V2=-XX>
10812 IFL XX,<
10813 V1=1
10814 V2=0>
10815 MOP1 (\ADR,XX,0,-1,V1,V2)^
10816 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10817 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10818 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10819 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10820
10821 000020 000000 F34650: AA1=XX ;INITIAL C(AC)
10822 037415 200 03 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10823 000000 AA2=0 ;INITIAL C(AC+1)
10824 037416 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10825 777777 777777 AEE=-1 ;INITIAL C(E)
10826 037417 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10827 037420 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10828 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10829 037421 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10830 037422 003 03 0 00 034651 ER3 AC,34651 ;HIGH PRODUCT FAILED
10831 777760 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10832 037423 312 04 0 00 044157 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10833 037424 004 04 0 00 034652 ER4 AC+1,34652 ;LOW PRODUCT FAILED
10834 777777 777777 AEE=-1 ;INITIAL C(E)
10835 037425 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0219
10836 037426 005 01 0 00 034653 ER5 E,34653 ;C(E) WAS CLOBBERED
10837 037427 321 05 0 00 037415 JUMPL AC+2,F34650 ;LOOP ON ERROR SWITCH^
10838 ;LAST CASE IS DIFFERENT
10839 003466 ADR=ADR+1
10840 000040 000000 XX=XX+XX
10841 IFE XX,<XX=1>
10842
10843 ;MULTIPLY -1 BY A RIPPLED 1
10844 IFG XX,<
10845 777777 777777 V1=-1
10846 777740 000000 V2=-XX>
10847 IFL XX,<
10848 V1=1
10849 V2=0>
10850 MOP1 (\ADR,XX,0,-1,V1,V2)^
10851 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10852 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10853 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10854 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10855
10856 000040 000000 F34660: AA1=XX ;INITIAL C(AC)
10857 037430 200 03 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10858 000000 AA2=0 ;INITIAL C(AC+1)
10859 037431 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10860 777777 777777 AEE=-1 ;INITIAL C(E)
10861 037432 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10862 037433 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10863 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10864 037434 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10865 037435 003 03 0 00 034661 ER3 AC,34661 ;HIGH PRODUCT FAILED
10866 777740 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10867 037436 312 04 0 00 044160 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10868 037437 004 04 0 00 034662 ER4 AC+1,34662 ;LOW PRODUCT FAILED
10869 777777 777777 AEE=-1 ;INITIAL C(E)
10870 037440 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10871 037441 005 01 0 00 034663 ER5 E,34663 ;C(E) WAS CLOBBERED
10872 037442 321 05 0 00 037430 JUMPL AC+2,F34660 ;LOOP ON ERROR SWITCH^
10873 ;LAST CASE IS DIFFERENT
10874 003467 ADR=ADR+1
10875 000100 000000 XX=XX+XX
10876 IFE XX,<XX=1>
10877
10878 ;MULTIPLY -1 BY A RIPPLED 1
10879 IFG XX,<
10880 777777 777777 V1=-1
10881 777700 000000 V2=-XX>
10882 IFL XX,<
10883 V1=1
10884 V2=0>
10885 MOP1 (\ADR,XX,0,-1,V1,V2)^
10886 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10887 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10888 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10889 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10890
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0220
10891 000100 000000 F34670: AA1=XX ;INITIAL C(AC)
10892 037443 200 03 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10893 000000 AA2=0 ;INITIAL C(AC+1)
10894 037444 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10895 777777 777777 AEE=-1 ;INITIAL C(E)
10896 037445 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10897 037446 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10898 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10899 037447 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10900 037450 003 03 0 00 034671 ER3 AC,34671 ;HIGH PRODUCT FAILED
10901 777700 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10902 037451 312 04 0 00 044161 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10903 037452 004 04 0 00 034672 ER4 AC+1,34672 ;LOW PRODUCT FAILED
10904 777777 777777 AEE=-1 ;INITIAL C(E)
10905 037453 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10906 037454 005 01 0 00 034673 ER5 E,34673 ;C(E) WAS CLOBBERED
10907 037455 321 05 0 00 037443 JUMPL AC+2,F34670 ;LOOP ON ERROR SWITCH^
10908 ;LAST CASE IS DIFFERENT
10909 003470 ADR=ADR+1
10910 000200 000000 XX=XX+XX
10911 IFE XX,<XX=1>
10912
10913 ;MULTIPLY -1 BY A RIPPLED 1
10914 IFG XX,<
10915 777777 777777 V1=-1
10916 777600 000000 V2=-XX>
10917 IFL XX,<
10918 V1=1
10919 V2=0>
10920 MOP1 (\ADR,XX,0,-1,V1,V2)^
10921 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10922 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10923 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10924 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10925
10926 000200 000000 F34700: AA1=XX ;INITIAL C(AC)
10927 037456 200 03 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10928 000000 AA2=0 ;INITIAL C(AC+1)
10929 037457 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10930 777777 777777 AEE=-1 ;INITIAL C(E)
10931 037460 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10932 037461 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10933 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10934 037462 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10935 037463 003 03 0 00 034701 ER3 AC,34701 ;HIGH PRODUCT FAILED
10936 777600 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10937 037464 312 04 0 00 044162 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10938 037465 004 04 0 00 034702 ER4 AC+1,34702 ;LOW PRODUCT FAILED
10939 777777 777777 AEE=-1 ;INITIAL C(E)
10940 037466 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10941 037467 005 01 0 00 034703 ER5 E,34703 ;C(E) WAS CLOBBERED
10942 037470 321 05 0 00 037456 JUMPL AC+2,F34700 ;LOOP ON ERROR SWITCH^
10943 ;LAST CASE IS DIFFERENT
10944 003471 ADR=ADR+1
10945 000400 000000 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0221
10946 IFE XX,<XX=1>
10947
10948 ;MULTIPLY -1 BY A RIPPLED 1
10949 IFG XX,<
10950 777777 777777 V1=-1
10951 777400 000000 V2=-XX>
10952 IFL XX,<
10953 V1=1
10954 V2=0>
10955 MOP1 (\ADR,XX,0,-1,V1,V2)^
10956 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10957 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10958 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10959 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10960
10961 000400 000000 F34710: AA1=XX ;INITIAL C(AC)
10962 037471 200 03 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10963 000000 AA2=0 ;INITIAL C(AC+1)
10964 037472 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
10965 777777 777777 AEE=-1 ;INITIAL C(E)
10966 037473 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
10967 037474 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
10968 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
10969 037475 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
10970 037476 003 03 0 00 034711 ER3 AC,34711 ;HIGH PRODUCT FAILED
10971 777400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
10972 037477 312 04 0 00 044163 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
10973 037500 004 04 0 00 034712 ER4 AC+1,34712 ;LOW PRODUCT FAILED
10974 777777 777777 AEE=-1 ;INITIAL C(E)
10975 037501 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
10976 037502 005 01 0 00 034713 ER5 E,34713 ;C(E) WAS CLOBBERED
10977 037503 321 05 0 00 037471 JUMPL AC+2,F34710 ;LOOP ON ERROR SWITCH^
10978 ;LAST CASE IS DIFFERENT
10979 003472 ADR=ADR+1
10980 001000 000000 XX=XX+XX
10981 IFE XX,<XX=1>
10982
10983 ;MULTIPLY -1 BY A RIPPLED 1
10984 IFG XX,<
10985 777777 777777 V1=-1
10986 777000 000000 V2=-XX>
10987 IFL XX,<
10988 V1=1
10989 V2=0>
10990 MOP1 (\ADR,XX,0,-1,V1,V2)^
10991 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
10992 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
10993 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
10994 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
10995
10996 001000 000000 F34720: AA1=XX ;INITIAL C(AC)
10997 037504 200 03 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
10998 000000 AA2=0 ;INITIAL C(AC+1)
10999 037505 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11000 777777 777777 AEE=-1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0222
11001 037506 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11002 037507 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11003 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11004 037510 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11005 037511 003 03 0 00 034721 ER3 AC,34721 ;HIGH PRODUCT FAILED
11006 777000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11007 037512 312 04 0 00 044164 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11008 037513 004 04 0 00 034722 ER4 AC+1,34722 ;LOW PRODUCT FAILED
11009 777777 777777 AEE=-1 ;INITIAL C(E)
11010 037514 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11011 037515 005 01 0 00 034723 ER5 E,34723 ;C(E) WAS CLOBBERED
11012 037516 321 05 0 00 037504 JUMPL AC+2,F34720 ;LOOP ON ERROR SWITCH^
11013 ;LAST CASE IS DIFFERENT
11014 003473 ADR=ADR+1
11015 002000 000000 XX=XX+XX
11016 IFE XX,<XX=1>
11017
11018 ;MULTIPLY -1 BY A RIPPLED 1
11019 IFG XX,<
11020 777777 777777 V1=-1
11021 776000 000000 V2=-XX>
11022 IFL XX,<
11023 V1=1
11024 V2=0>
11025 MOP1 (\ADR,XX,0,-1,V1,V2)^
11026 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11027 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11028 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
11029 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11030
11031 002000 000000 F34730: AA1=XX ;INITIAL C(AC)
11032 037517 200 03 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11033 000000 AA2=0 ;INITIAL C(AC+1)
11034 037520 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11035 777777 777777 AEE=-1 ;INITIAL C(E)
11036 037521 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11037 037522 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11038 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11039 037523 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11040 037524 003 03 0 00 034731 ER3 AC,34731 ;HIGH PRODUCT FAILED
11041 776000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11042 037525 312 04 0 00 044165 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11043 037526 004 04 0 00 034732 ER4 AC+1,34732 ;LOW PRODUCT FAILED
11044 777777 777777 AEE=-1 ;INITIAL C(E)
11045 037527 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11046 037530 005 01 0 00 034733 ER5 E,34733 ;C(E) WAS CLOBBERED
11047 037531 321 05 0 00 037517 JUMPL AC+2,F34730 ;LOOP ON ERROR SWITCH^
11048 ;LAST CASE IS DIFFERENT
11049 003474 ADR=ADR+1
11050 004000 000000 XX=XX+XX
11051 IFE XX,<XX=1>
11052
11053 ;MULTIPLY -1 BY A RIPPLED 1
11054 IFG XX,<
11055 777777 777777 V1=-1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0223
11056 774000 000000 V2=-XX>
11057 IFL XX,<
11058 V1=1
11059 V2=0>
11060 MOP1 (\ADR,XX,0,-1,V1,V2)^
11061 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11062 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11063 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
11064 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11065
11066 004000 000000 F34740: AA1=XX ;INITIAL C(AC)
11067 037532 200 03 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11068 000000 AA2=0 ;INITIAL C(AC+1)
11069 037533 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11070 777777 777777 AEE=-1 ;INITIAL C(E)
11071 037534 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11072 037535 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11073 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11074 037536 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11075 037537 003 03 0 00 034741 ER3 AC,34741 ;HIGH PRODUCT FAILED
11076 774000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11077 037540 312 04 0 00 044166 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11078 037541 004 04 0 00 034742 ER4 AC+1,34742 ;LOW PRODUCT FAILED
11079 777777 777777 AEE=-1 ;INITIAL C(E)
11080 037542 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11081 037543 005 01 0 00 034743 ER5 E,34743 ;C(E) WAS CLOBBERED
11082 037544 321 05 0 00 037532 JUMPL AC+2,F34740 ;LOOP ON ERROR SWITCH^
11083 ;LAST CASE IS DIFFERENT
11084 003475 ADR=ADR+1
11085 010000 000000 XX=XX+XX
11086 IFE XX,<XX=1>
11087
11088 ;MULTIPLY -1 BY A RIPPLED 1
11089 IFG XX,<
11090 777777 777777 V1=-1
11091 770000 000000 V2=-XX>
11092 IFL XX,<
11093 V1=1
11094 V2=0>
11095 MOP1 (\ADR,XX,0,-1,V1,V2)^
11096 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11097 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11098 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
11099 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11100
11101 010000 000000 F34750: AA1=XX ;INITIAL C(AC)
11102 037545 200 03 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11103 000000 AA2=0 ;INITIAL C(AC+1)
11104 037546 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11105 777777 777777 AEE=-1 ;INITIAL C(E)
11106 037547 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11107 037550 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11108 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11109 037551 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11110 037552 003 03 0 00 034751 ER3 AC,34751 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0224
11111 770000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11112 037553 312 04 0 00 044167 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11113 037554 004 04 0 00 034752 ER4 AC+1,34752 ;LOW PRODUCT FAILED
11114 777777 777777 AEE=-1 ;INITIAL C(E)
11115 037555 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11116 037556 005 01 0 00 034753 ER5 E,34753 ;C(E) WAS CLOBBERED
11117 037557 321 05 0 00 037545 JUMPL AC+2,F34750 ;LOOP ON ERROR SWITCH^
11118 ;LAST CASE IS DIFFERENT
11119 003476 ADR=ADR+1
11120 020000 000000 XX=XX+XX
11121 IFE XX,<XX=1>
11122
11123 ;MULTIPLY -1 BY A RIPPLED 1
11124 IFG XX,<
11125 777777 777777 V1=-1
11126 760000 000000 V2=-XX>
11127 IFL XX,<
11128 V1=1
11129 V2=0>
11130 MOP1 (\ADR,XX,0,-1,V1,V2)^
11131 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11132 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11133 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
11134 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11135
11136 020000 000000 F34760: AA1=XX ;INITIAL C(AC)
11137 037560 200 03 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11138 000000 AA2=0 ;INITIAL C(AC+1)
11139 037561 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11140 777777 777777 AEE=-1 ;INITIAL C(E)
11141 037562 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11142 037563 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11143 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11144 037564 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11145 037565 003 03 0 00 034761 ER3 AC,34761 ;HIGH PRODUCT FAILED
11146 760000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11147 037566 312 04 0 00 044170 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11148 037567 004 04 0 00 034762 ER4 AC+1,34762 ;LOW PRODUCT FAILED
11149 777777 777777 AEE=-1 ;INITIAL C(E)
11150 037570 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11151 037571 005 01 0 00 034763 ER5 E,34763 ;C(E) WAS CLOBBERED
11152 037572 321 05 0 00 037560 JUMPL AC+2,F34760 ;LOOP ON ERROR SWITCH^
11153 ;LAST CASE IS DIFFERENT
11154 003477 ADR=ADR+1
11155 040000 000000 XX=XX+XX
11156 IFE XX,<XX=1>
11157
11158 ;MULTIPLY -1 BY A RIPPLED 1
11159 IFG XX,<
11160 777777 777777 V1=-1
11161 740000 000000 V2=-XX>
11162 IFL XX,<
11163 V1=1
11164 V2=0>
11165 MOP1 (\ADR,XX,0,-1,V1,V2)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-21
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0225
11166 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11167 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11168 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
11169 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11170
11171 040000 000000 F34770: AA1=XX ;INITIAL C(AC)
11172 037573 200 03 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11173 000000 AA2=0 ;INITIAL C(AC+1)
11174 037574 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11175 777777 777777 AEE=-1 ;INITIAL C(E)
11176 037575 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11177 037576 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11178 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11179 037577 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11180 037600 003 03 0 00 034771 ER3 AC,34771 ;HIGH PRODUCT FAILED
11181 740000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11182 037601 312 04 0 00 044171 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11183 037602 004 04 0 00 034772 ER4 AC+1,34772 ;LOW PRODUCT FAILED
11184 777777 777777 AEE=-1 ;INITIAL C(E)
11185 037603 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11186 037604 005 01 0 00 034773 ER5 E,34773 ;C(E) WAS CLOBBERED
11187 037605 321 05 0 00 037573 JUMPL AC+2,F34770 ;LOOP ON ERROR SWITCH^
11188 ;LAST CASE IS DIFFERENT
11189 003500 ADR=ADR+1
11190 100000 000000 XX=XX+XX
11191 IFE XX,<XX=1>
11192
11193 ;MULTIPLY -1 BY A RIPPLED 1
11194 IFG XX,<
11195 777777 777777 V1=-1
11196 700000 000000 V2=-XX>
11197 IFL XX,<
11198 V1=1
11199 V2=0>
11200 MOP1 (\ADR,XX,0,-1,V1,V2)^
11201 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11202 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11203 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
11204 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11205
11206 100000 000000 F35000: AA1=XX ;INITIAL C(AC)
11207 037606 200 03 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11208 000000 AA2=0 ;INITIAL C(AC+1)
11209 037607 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11210 777777 777777 AEE=-1 ;INITIAL C(E)
11211 037610 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11212 037611 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11213 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11214 037612 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11215 037613 003 03 0 00 035001 ER3 AC,35001 ;HIGH PRODUCT FAILED
11216 700000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11217 037614 312 04 0 00 044172 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11218 037615 004 04 0 00 035002 ER4 AC+1,35002 ;LOW PRODUCT FAILED
11219 777777 777777 AEE=-1 ;INITIAL C(E)
11220 037616 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-22
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0226
11221 037617 005 01 0 00 035003 ER5 E,35003 ;C(E) WAS CLOBBERED
11222 037620 321 05 0 00 037606 JUMPL AC+2,F35000 ;LOOP ON ERROR SWITCH^
11223 ;LAST CASE IS DIFFERENT
11224 003501 ADR=ADR+1
11225 200000 000000 XX=XX+XX
11226 IFE XX,<XX=1>
11227
11228 ;MULTIPLY -1 BY A RIPPLED 1
11229 IFG XX,<
11230 777777 777777 V1=-1
11231 600000 000000 V2=-XX>
11232 IFL XX,<
11233 V1=1
11234 V2=0>
11235 MOP1 (\ADR,XX,0,-1,V1,V2)^
11236 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11237 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11238 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
11239 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11240
11241 200000 000000 F35010: AA1=XX ;INITIAL C(AC)
11242 037621 200 03 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11243 000000 AA2=0 ;INITIAL C(AC+1)
11244 037622 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11245 777777 777777 AEE=-1 ;INITIAL C(E)
11246 037623 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11247 037624 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11248 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11249 037625 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11250 037626 003 03 0 00 035011 ER3 AC,35011 ;HIGH PRODUCT FAILED
11251 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
11252 037627 312 04 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
11253 037630 004 04 0 00 035012 ER4 AC+1,35012 ;LOW PRODUCT FAILED
11254 777777 777777 AEE=-1 ;INITIAL C(E)
11255 037631 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11256 037632 005 01 0 00 035013 ER5 E,35013 ;C(E) WAS CLOBBERED
11257 037633 321 05 0 00 037621 JUMPL AC+2,F35010 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0227
11258 ;MULTIPLY A -1 BY 400000,,0
11259 003502 ADR=ADR+1
11260 400000 000000 XX=400000000000
11261
11262 MOP1 (\ADR,XX,0,-1,-1,XX)^
11263 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
11264 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11265 ;AND E AGAINST [-1], [XX] AND [-1] RESPECTIVELY.
11266 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11267
11268 400000 000000 F35020: AA1=XX ;INITIAL C(AC)
11269 037634 200 03 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
11270 000000 AA2=0 ;INITIAL C(AC+1)
11271 037635 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11272 777777 777777 AEE=-1 ;INITIAL C(E)
11273 037636 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
11274 037637 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11275 777777 777777 AR1=-1 ;EXPECTED RESULT IN AC
11276 037640 312 03 0 00 043777 CAME AC,[-1] ;IS HIGH PRODUCT CORRECT?
11277 037641 003 03 0 00 035021 ER3 AC,35021 ;HIGH PRODUCT FAILED
11278 400000 000000 AR2=XX ;EXPECTED RESULT IN AC+1
11279 037642 312 04 0 00 044043 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11280 037643 004 04 0 00 035022 ER4 AC+1,35022 ;LOW PRODUCT FAILED
11281 777777 777777 AEE=-1 ;INITIAL C(E)
11282 037644 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
11283 037645 005 01 0 00 035023 ER5 E,35023 ;C(E) WAS CLOBBERED
11284 037646 321 05 0 00 037634 JUMPL AC+2,F35020 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0228
11285 000002 AC=2
11286 000000 E=<AC-2>&17
11287 SAVEAC (1,1)^
11288 037647 201 04 0 00 037647 MOVEI AC+2,. ;SAVE TEST PC
11289 037650 202 04 0 00 030051 MOVEM AC+2,TESTPC
11290 037651 201 04 0 00 000004 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
11291 037652 202 04 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
11292 000000 XX=0
11293
11294 REPEAT ^D36,<
11295 ADR=ADR+1
11296 XX=XX+XX+1
11297 IFE <XX-1>,<XX=-2>
11298
11299 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11300 IFL XX,<V1=-1>
11301 IFG XX,<V1=0>
11302 MOP1 (\ADR,1,0,XX,V1,XX)>
11303
11304 003503 ADR=ADR+1
11305 000001 XX=XX+XX+1
11306 777777 777776 IFE <XX-1>,<XX=-2>
11307
11308 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11309 777777 777777 IFL XX,<V1=-1>
11310 IFG XX,<V1=0>
11311 MOP1 (\ADR,1,0,XX,V1,XX)^
11312 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11313 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11314 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11315 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11316
11317 000001 F35030: AA1=1 ;INITIAL C(AC)
11318 037653 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11319 000000 AA2=0 ;INITIAL C(AC+1)
11320 037654 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11321 777777 777776 AEE=XX ;INITIAL C(E)
11322 037655 200 00 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11323 037656 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11324 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11325 037657 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11326 037660 003 02 0 00 035031 ER3 AC,35031 ;HIGH PRODUCT FAILED
11327 777777 777776 AR2=XX ;EXPECTED RESULT IN AC+1
11328 037661 312 03 0 00 044044 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11329 037662 004 03 0 00 035032 ER4 AC+1,35032 ;LOW PRODUCT FAILED
11330 777777 777776 AEE=XX ;INITIAL C(E)
11331 037663 312 00 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED?
11332 037664 005 00 0 00 035033 ER5 E,35033 ;C(E) WAS CLOBBERED
11333 037665 321 04 0 00 037653 JUMPL AC+2,F35030 ;LOOP ON ERROR SWITCH^
11334
11335 003504 ADR=ADR+1
11336 777777 777775 XX=XX+XX+1
11337 IFE <XX-1>,<XX=-2>
11338
11339 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0229
11340 777777 777777 IFL XX,<V1=-1>
11341 IFG XX,<V1=0>
11342 MOP1 (\ADR,1,0,XX,V1,XX)^
11343 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11344 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11345 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11346 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11347
11348 000001 F35040: AA1=1 ;INITIAL C(AC)
11349 037666 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11350 000000 AA2=0 ;INITIAL C(AC+1)
11351 037667 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11352 777777 777775 AEE=XX ;INITIAL C(E)
11353 037670 200 00 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11354 037671 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11355 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11356 037672 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11357 037673 003 02 0 00 035041 ER3 AC,35041 ;HIGH PRODUCT FAILED
11358 777777 777775 AR2=XX ;EXPECTED RESULT IN AC+1
11359 037674 312 03 0 00 044045 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11360 037675 004 03 0 00 035042 ER4 AC+1,35042 ;LOW PRODUCT FAILED
11361 777777 777775 AEE=XX ;INITIAL C(E)
11362 037676 312 00 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED?
11363 037677 005 00 0 00 035043 ER5 E,35043 ;C(E) WAS CLOBBERED
11364 037700 321 04 0 00 037666 JUMPL AC+2,F35040 ;LOOP ON ERROR SWITCH^
11365
11366 003505 ADR=ADR+1
11367 777777 777773 XX=XX+XX+1
11368 IFE <XX-1>,<XX=-2>
11369
11370 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11371 777777 777777 IFL XX,<V1=-1>
11372 IFG XX,<V1=0>
11373 MOP1 (\ADR,1,0,XX,V1,XX)^
11374 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11375 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11376 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11377 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11378
11379 000001 F35050: AA1=1 ;INITIAL C(AC)
11380 037701 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11381 000000 AA2=0 ;INITIAL C(AC+1)
11382 037702 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11383 777777 777773 AEE=XX ;INITIAL C(E)
11384 037703 200 00 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11385 037704 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11386 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11387 037705 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11388 037706 003 02 0 00 035051 ER3 AC,35051 ;HIGH PRODUCT FAILED
11389 777777 777773 AR2=XX ;EXPECTED RESULT IN AC+1
11390 037707 312 03 0 00 044046 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11391 037710 004 03 0 00 035052 ER4 AC+1,35052 ;LOW PRODUCT FAILED
11392 777777 777773 AEE=XX ;INITIAL C(E)
11393 037711 312 00 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED?
11394 037712 005 00 0 00 035053 ER5 E,35053 ;C(E) WAS CLOBBERED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0230
11395 037713 321 04 0 00 037701 JUMPL AC+2,F35050 ;LOOP ON ERROR SWITCH^
11396
11397 003506 ADR=ADR+1
11398 777777 777767 XX=XX+XX+1
11399 IFE <XX-1>,<XX=-2>
11400
11401 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11402 777777 777777 IFL XX,<V1=-1>
11403 IFG XX,<V1=0>
11404 MOP1 (\ADR,1,0,XX,V1,XX)^
11405 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11406 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11407 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11408 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11409
11410 000001 F35060: AA1=1 ;INITIAL C(AC)
11411 037714 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11412 000000 AA2=0 ;INITIAL C(AC+1)
11413 037715 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11414 777777 777767 AEE=XX ;INITIAL C(E)
11415 037716 200 00 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11416 037717 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11417 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11418 037720 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11419 037721 003 02 0 00 035061 ER3 AC,35061 ;HIGH PRODUCT FAILED
11420 777777 777767 AR2=XX ;EXPECTED RESULT IN AC+1
11421 037722 312 03 0 00 044047 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11422 037723 004 03 0 00 035062 ER4 AC+1,35062 ;LOW PRODUCT FAILED
11423 777777 777767 AEE=XX ;INITIAL C(E)
11424 037724 312 00 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED?
11425 037725 005 00 0 00 035063 ER5 E,35063 ;C(E) WAS CLOBBERED
11426 037726 321 04 0 00 037714 JUMPL AC+2,F35060 ;LOOP ON ERROR SWITCH^
11427
11428 003507 ADR=ADR+1
11429 777777 777757 XX=XX+XX+1
11430 IFE <XX-1>,<XX=-2>
11431
11432 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11433 777777 777777 IFL XX,<V1=-1>
11434 IFG XX,<V1=0>
11435 MOP1 (\ADR,1,0,XX,V1,XX)^
11436 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11437 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11438 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11439 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11440
11441 000001 F35070: AA1=1 ;INITIAL C(AC)
11442 037727 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11443 000000 AA2=0 ;INITIAL C(AC+1)
11444 037730 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11445 777777 777757 AEE=XX ;INITIAL C(E)
11446 037731 200 00 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11447 037732 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11448 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11449 037733 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0231
11450 037734 003 02 0 00 035071 ER3 AC,35071 ;HIGH PRODUCT FAILED
11451 777777 777757 AR2=XX ;EXPECTED RESULT IN AC+1
11452 037735 312 03 0 00 044050 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11453 037736 004 03 0 00 035072 ER4 AC+1,35072 ;LOW PRODUCT FAILED
11454 777777 777757 AEE=XX ;INITIAL C(E)
11455 037737 312 00 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED?
11456 037740 005 00 0 00 035073 ER5 E,35073 ;C(E) WAS CLOBBERED
11457 037741 321 04 0 00 037727 JUMPL AC+2,F35070 ;LOOP ON ERROR SWITCH^
11458
11459 003510 ADR=ADR+1
11460 777777 777737 XX=XX+XX+1
11461 IFE <XX-1>,<XX=-2>
11462
11463 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11464 777777 777777 IFL XX,<V1=-1>
11465 IFG XX,<V1=0>
11466 MOP1 (\ADR,1,0,XX,V1,XX)^
11467 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11468 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11469 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11470 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11471
11472 000001 F35100: AA1=1 ;INITIAL C(AC)
11473 037742 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11474 000000 AA2=0 ;INITIAL C(AC+1)
11475 037743 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11476 777777 777737 AEE=XX ;INITIAL C(E)
11477 037744 200 00 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11478 037745 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11479 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11480 037746 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11481 037747 003 02 0 00 035101 ER3 AC,35101 ;HIGH PRODUCT FAILED
11482 777777 777737 AR2=XX ;EXPECTED RESULT IN AC+1
11483 037750 312 03 0 00 044051 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11484 037751 004 03 0 00 035102 ER4 AC+1,35102 ;LOW PRODUCT FAILED
11485 777777 777737 AEE=XX ;INITIAL C(E)
11486 037752 312 00 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED?
11487 037753 005 00 0 00 035103 ER5 E,35103 ;C(E) WAS CLOBBERED
11488 037754 321 04 0 00 037742 JUMPL AC+2,F35100 ;LOOP ON ERROR SWITCH^
11489
11490 003511 ADR=ADR+1
11491 777777 777677 XX=XX+XX+1
11492 IFE <XX-1>,<XX=-2>
11493
11494 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11495 777777 777777 IFL XX,<V1=-1>
11496 IFG XX,<V1=0>
11497 MOP1 (\ADR,1,0,XX,V1,XX)^
11498 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11499 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11500 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11501 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11502
11503 000001 F35110: AA1=1 ;INITIAL C(AC)
11504 037755 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0232
11505 000000 AA2=0 ;INITIAL C(AC+1)
11506 037756 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11507 777777 777677 AEE=XX ;INITIAL C(E)
11508 037757 200 00 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11509 037760 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11510 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11511 037761 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11512 037762 003 02 0 00 035111 ER3 AC,35111 ;HIGH PRODUCT FAILED
11513 777777 777677 AR2=XX ;EXPECTED RESULT IN AC+1
11514 037763 312 03 0 00 044052 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11515 037764 004 03 0 00 035112 ER4 AC+1,35112 ;LOW PRODUCT FAILED
11516 777777 777677 AEE=XX ;INITIAL C(E)
11517 037765 312 00 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED?
11518 037766 005 00 0 00 035113 ER5 E,35113 ;C(E) WAS CLOBBERED
11519 037767 321 04 0 00 037755 JUMPL AC+2,F35110 ;LOOP ON ERROR SWITCH^
11520
11521 003512 ADR=ADR+1
11522 777777 777577 XX=XX+XX+1
11523 IFE <XX-1>,<XX=-2>
11524
11525 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11526 777777 777777 IFL XX,<V1=-1>
11527 IFG XX,<V1=0>
11528 MOP1 (\ADR,1,0,XX,V1,XX)^
11529 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11530 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11531 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11532 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11533
11534 000001 F35120: AA1=1 ;INITIAL C(AC)
11535 037770 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11536 000000 AA2=0 ;INITIAL C(AC+1)
11537 037771 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11538 777777 777577 AEE=XX ;INITIAL C(E)
11539 037772 200 00 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11540 037773 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11541 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11542 037774 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11543 037775 003 02 0 00 035121 ER3 AC,35121 ;HIGH PRODUCT FAILED
11544 777777 777577 AR2=XX ;EXPECTED RESULT IN AC+1
11545 037776 312 03 0 00 044053 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11546 037777 004 03 0 00 035122 ER4 AC+1,35122 ;LOW PRODUCT FAILED
11547 777777 777577 AEE=XX ;INITIAL C(E)
11548 040000 312 00 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED?
11549 040001 005 00 0 00 035123 ER5 E,35123 ;C(E) WAS CLOBBERED
11550 040002 321 04 0 00 037770 JUMPL AC+2,F35120 ;LOOP ON ERROR SWITCH^
11551
11552 003513 ADR=ADR+1
11553 777777 777377 XX=XX+XX+1
11554 IFE <XX-1>,<XX=-2>
11555
11556 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11557 777777 777777 IFL XX,<V1=-1>
11558 IFG XX,<V1=0>
11559 MOP1 (\ADR,1,0,XX,V1,XX)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0233
11560 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11561 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11562 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11563 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11564
11565 000001 F35130: AA1=1 ;INITIAL C(AC)
11566 040003 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11567 000000 AA2=0 ;INITIAL C(AC+1)
11568 040004 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11569 777777 777377 AEE=XX ;INITIAL C(E)
11570 040005 200 00 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11571 040006 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11572 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11573 040007 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11574 040010 003 02 0 00 035131 ER3 AC,35131 ;HIGH PRODUCT FAILED
11575 777777 777377 AR2=XX ;EXPECTED RESULT IN AC+1
11576 040011 312 03 0 00 044054 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11577 040012 004 03 0 00 035132 ER4 AC+1,35132 ;LOW PRODUCT FAILED
11578 777777 777377 AEE=XX ;INITIAL C(E)
11579 040013 312 00 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED?
11580 040014 005 00 0 00 035133 ER5 E,35133 ;C(E) WAS CLOBBERED
11581 040015 321 04 0 00 040003 JUMPL AC+2,F35130 ;LOOP ON ERROR SWITCH^
11582
11583 003514 ADR=ADR+1
11584 777777 776777 XX=XX+XX+1
11585 IFE <XX-1>,<XX=-2>
11586
11587 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11588 777777 777777 IFL XX,<V1=-1>
11589 IFG XX,<V1=0>
11590 MOP1 (\ADR,1,0,XX,V1,XX)^
11591 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11592 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11593 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11594 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11595
11596 000001 F35140: AA1=1 ;INITIAL C(AC)
11597 040016 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11598 000000 AA2=0 ;INITIAL C(AC+1)
11599 040017 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11600 777777 776777 AEE=XX ;INITIAL C(E)
11601 040020 200 00 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11602 040021 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11603 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11604 040022 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11605 040023 003 02 0 00 035141 ER3 AC,35141 ;HIGH PRODUCT FAILED
11606 777777 776777 AR2=XX ;EXPECTED RESULT IN AC+1
11607 040024 312 03 0 00 044055 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11608 040025 004 03 0 00 035142 ER4 AC+1,35142 ;LOW PRODUCT FAILED
11609 777777 776777 AEE=XX ;INITIAL C(E)
11610 040026 312 00 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED?
11611 040027 005 00 0 00 035143 ER5 E,35143 ;C(E) WAS CLOBBERED
11612 040030 321 04 0 00 040016 JUMPL AC+2,F35140 ;LOOP ON ERROR SWITCH^
11613
11614 003515 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0234
11615 777777 775777 XX=XX+XX+1
11616 IFE <XX-1>,<XX=-2>
11617
11618 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11619 777777 777777 IFL XX,<V1=-1>
11620 IFG XX,<V1=0>
11621 MOP1 (\ADR,1,0,XX,V1,XX)^
11622 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11623 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11624 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11625 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11626
11627 000001 F35150: AA1=1 ;INITIAL C(AC)
11628 040031 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11629 000000 AA2=0 ;INITIAL C(AC+1)
11630 040032 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11631 777777 775777 AEE=XX ;INITIAL C(E)
11632 040033 200 00 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11633 040034 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11634 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11635 040035 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11636 040036 003 02 0 00 035151 ER3 AC,35151 ;HIGH PRODUCT FAILED
11637 777777 775777 AR2=XX ;EXPECTED RESULT IN AC+1
11638 040037 312 03 0 00 044056 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11639 040040 004 03 0 00 035152 ER4 AC+1,35152 ;LOW PRODUCT FAILED
11640 777777 775777 AEE=XX ;INITIAL C(E)
11641 040041 312 00 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED?
11642 040042 005 00 0 00 035153 ER5 E,35153 ;C(E) WAS CLOBBERED
11643 040043 321 04 0 00 040031 JUMPL AC+2,F35150 ;LOOP ON ERROR SWITCH^
11644
11645 003516 ADR=ADR+1
11646 777777 773777 XX=XX+XX+1
11647 IFE <XX-1>,<XX=-2>
11648
11649 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11650 777777 777777 IFL XX,<V1=-1>
11651 IFG XX,<V1=0>
11652 MOP1 (\ADR,1,0,XX,V1,XX)^
11653 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11654 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11655 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11656 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11657
11658 000001 F35160: AA1=1 ;INITIAL C(AC)
11659 040044 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11660 000000 AA2=0 ;INITIAL C(AC+1)
11661 040045 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11662 777777 773777 AEE=XX ;INITIAL C(E)
11663 040046 200 00 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11664 040047 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11665 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11666 040050 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11667 040051 003 02 0 00 035161 ER3 AC,35161 ;HIGH PRODUCT FAILED
11668 777777 773777 AR2=XX ;EXPECTED RESULT IN AC+1
11669 040052 312 03 0 00 044057 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0235
11670 040053 004 03 0 00 035162 ER4 AC+1,35162 ;LOW PRODUCT FAILED
11671 777777 773777 AEE=XX ;INITIAL C(E)
11672 040054 312 00 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED?
11673 040055 005 00 0 00 035163 ER5 E,35163 ;C(E) WAS CLOBBERED
11674 040056 321 04 0 00 040044 JUMPL AC+2,F35160 ;LOOP ON ERROR SWITCH^
11675
11676 003517 ADR=ADR+1
11677 777777 767777 XX=XX+XX+1
11678 IFE <XX-1>,<XX=-2>
11679
11680 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11681 777777 777777 IFL XX,<V1=-1>
11682 IFG XX,<V1=0>
11683 MOP1 (\ADR,1,0,XX,V1,XX)^
11684 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11685 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11686 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11687 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11688
11689 000001 F35170: AA1=1 ;INITIAL C(AC)
11690 040057 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11691 000000 AA2=0 ;INITIAL C(AC+1)
11692 040060 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11693 777777 767777 AEE=XX ;INITIAL C(E)
11694 040061 200 00 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11695 040062 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11696 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11697 040063 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11698 040064 003 02 0 00 035171 ER3 AC,35171 ;HIGH PRODUCT FAILED
11699 777777 767777 AR2=XX ;EXPECTED RESULT IN AC+1
11700 040065 312 03 0 00 044060 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11701 040066 004 03 0 00 035172 ER4 AC+1,35172 ;LOW PRODUCT FAILED
11702 777777 767777 AEE=XX ;INITIAL C(E)
11703 040067 312 00 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED?
11704 040070 005 00 0 00 035173 ER5 E,35173 ;C(E) WAS CLOBBERED
11705 040071 321 04 0 00 040057 JUMPL AC+2,F35170 ;LOOP ON ERROR SWITCH^
11706
11707 003520 ADR=ADR+1
11708 777777 757777 XX=XX+XX+1
11709 IFE <XX-1>,<XX=-2>
11710
11711 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11712 777777 777777 IFL XX,<V1=-1>
11713 IFG XX,<V1=0>
11714 MOP1 (\ADR,1,0,XX,V1,XX)^
11715 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11716 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11717 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11718 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11719
11720 000001 F35200: AA1=1 ;INITIAL C(AC)
11721 040072 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11722 000000 AA2=0 ;INITIAL C(AC+1)
11723 040073 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11724 777777 757777 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0236
11725 040074 200 00 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11726 040075 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11727 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11728 040076 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11729 040077 003 02 0 00 035201 ER3 AC,35201 ;HIGH PRODUCT FAILED
11730 777777 757777 AR2=XX ;EXPECTED RESULT IN AC+1
11731 040100 312 03 0 00 044061 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11732 040101 004 03 0 00 035202 ER4 AC+1,35202 ;LOW PRODUCT FAILED
11733 777777 757777 AEE=XX ;INITIAL C(E)
11734 040102 312 00 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED?
11735 040103 005 00 0 00 035203 ER5 E,35203 ;C(E) WAS CLOBBERED
11736 040104 321 04 0 00 040072 JUMPL AC+2,F35200 ;LOOP ON ERROR SWITCH^
11737
11738 003521 ADR=ADR+1
11739 777777 737777 XX=XX+XX+1
11740 IFE <XX-1>,<XX=-2>
11741
11742 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11743 777777 777777 IFL XX,<V1=-1>
11744 IFG XX,<V1=0>
11745 MOP1 (\ADR,1,0,XX,V1,XX)^
11746 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11747 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11748 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11749 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11750
11751 000001 F35210: AA1=1 ;INITIAL C(AC)
11752 040105 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11753 000000 AA2=0 ;INITIAL C(AC+1)
11754 040106 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11755 777777 737777 AEE=XX ;INITIAL C(E)
11756 040107 200 00 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11757 040110 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11758 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11759 040111 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11760 040112 003 02 0 00 035211 ER3 AC,35211 ;HIGH PRODUCT FAILED
11761 777777 737777 AR2=XX ;EXPECTED RESULT IN AC+1
11762 040113 312 03 0 00 044062 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11763 040114 004 03 0 00 035212 ER4 AC+1,35212 ;LOW PRODUCT FAILED
11764 777777 737777 AEE=XX ;INITIAL C(E)
11765 040115 312 00 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED?
11766 040116 005 00 0 00 035213 ER5 E,35213 ;C(E) WAS CLOBBERED
11767 040117 321 04 0 00 040105 JUMPL AC+2,F35210 ;LOOP ON ERROR SWITCH^
11768
11769 003522 ADR=ADR+1
11770 777777 677777 XX=XX+XX+1
11771 IFE <XX-1>,<XX=-2>
11772
11773 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11774 777777 777777 IFL XX,<V1=-1>
11775 IFG XX,<V1=0>
11776 MOP1 (\ADR,1,0,XX,V1,XX)^
11777 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11778 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11779 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0237
11780 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11781
11782 000001 F35220: AA1=1 ;INITIAL C(AC)
11783 040120 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11784 000000 AA2=0 ;INITIAL C(AC+1)
11785 040121 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11786 777777 677777 AEE=XX ;INITIAL C(E)
11787 040122 200 00 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11788 040123 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11789 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11790 040124 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11791 040125 003 02 0 00 035221 ER3 AC,35221 ;HIGH PRODUCT FAILED
11792 777777 677777 AR2=XX ;EXPECTED RESULT IN AC+1
11793 040126 312 03 0 00 044063 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11794 040127 004 03 0 00 035222 ER4 AC+1,35222 ;LOW PRODUCT FAILED
11795 777777 677777 AEE=XX ;INITIAL C(E)
11796 040130 312 00 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED?
11797 040131 005 00 0 00 035223 ER5 E,35223 ;C(E) WAS CLOBBERED
11798 040132 321 04 0 00 040120 JUMPL AC+2,F35220 ;LOOP ON ERROR SWITCH^
11799
11800 003523 ADR=ADR+1
11801 777777 577777 XX=XX+XX+1
11802 IFE <XX-1>,<XX=-2>
11803
11804 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11805 777777 777777 IFL XX,<V1=-1>
11806 IFG XX,<V1=0>
11807 MOP1 (\ADR,1,0,XX,V1,XX)^
11808 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11809 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11810 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11811 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11812
11813 000001 F35230: AA1=1 ;INITIAL C(AC)
11814 040133 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11815 000000 AA2=0 ;INITIAL C(AC+1)
11816 040134 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11817 777777 577777 AEE=XX ;INITIAL C(E)
11818 040135 200 00 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11819 040136 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11820 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11821 040137 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11822 040140 003 02 0 00 035231 ER3 AC,35231 ;HIGH PRODUCT FAILED
11823 777777 577777 AR2=XX ;EXPECTED RESULT IN AC+1
11824 040141 312 03 0 00 044064 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11825 040142 004 03 0 00 035232 ER4 AC+1,35232 ;LOW PRODUCT FAILED
11826 777777 577777 AEE=XX ;INITIAL C(E)
11827 040143 312 00 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED?
11828 040144 005 00 0 00 035233 ER5 E,35233 ;C(E) WAS CLOBBERED
11829 040145 321 04 0 00 040133 JUMPL AC+2,F35230 ;LOOP ON ERROR SWITCH^
11830
11831 003524 ADR=ADR+1
11832 777777 377777 XX=XX+XX+1
11833 IFE <XX-1>,<XX=-2>
11834
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0238
11835 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11836 777777 777777 IFL XX,<V1=-1>
11837 IFG XX,<V1=0>
11838 MOP1 (\ADR,1,0,XX,V1,XX)^
11839 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11840 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11841 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11842 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11843
11844 000001 F35240: AA1=1 ;INITIAL C(AC)
11845 040146 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11846 000000 AA2=0 ;INITIAL C(AC+1)
11847 040147 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11848 777777 377777 AEE=XX ;INITIAL C(E)
11849 040150 200 00 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11850 040151 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11851 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11852 040152 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11853 040153 003 02 0 00 035241 ER3 AC,35241 ;HIGH PRODUCT FAILED
11854 777777 377777 AR2=XX ;EXPECTED RESULT IN AC+1
11855 040154 312 03 0 00 044065 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11856 040155 004 03 0 00 035242 ER4 AC+1,35242 ;LOW PRODUCT FAILED
11857 777777 377777 AEE=XX ;INITIAL C(E)
11858 040156 312 00 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED?
11859 040157 005 00 0 00 035243 ER5 E,35243 ;C(E) WAS CLOBBERED
11860 040160 321 04 0 00 040146 JUMPL AC+2,F35240 ;LOOP ON ERROR SWITCH^
11861
11862 003525 ADR=ADR+1
11863 777776 777777 XX=XX+XX+1
11864 IFE <XX-1>,<XX=-2>
11865
11866 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11867 777777 777777 IFL XX,<V1=-1>
11868 IFG XX,<V1=0>
11869 MOP1 (\ADR,1,0,XX,V1,XX)^
11870 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11871 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11872 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11873 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11874
11875 000001 F35250: AA1=1 ;INITIAL C(AC)
11876 040161 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11877 000000 AA2=0 ;INITIAL C(AC+1)
11878 040162 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11879 777776 777777 AEE=XX ;INITIAL C(E)
11880 040163 200 00 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11881 040164 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11882 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11883 040165 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11884 040166 003 02 0 00 035251 ER3 AC,35251 ;HIGH PRODUCT FAILED
11885 777776 777777 AR2=XX ;EXPECTED RESULT IN AC+1
11886 040167 312 03 0 00 044066 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11887 040170 004 03 0 00 035252 ER4 AC+1,35252 ;LOW PRODUCT FAILED
11888 777776 777777 AEE=XX ;INITIAL C(E)
11889 040171 312 00 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0239
11890 040172 005 00 0 00 035253 ER5 E,35253 ;C(E) WAS CLOBBERED
11891 040173 321 04 0 00 040161 JUMPL AC+2,F35250 ;LOOP ON ERROR SWITCH^
11892
11893 003526 ADR=ADR+1
11894 777775 777777 XX=XX+XX+1
11895 IFE <XX-1>,<XX=-2>
11896
11897 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11898 777777 777777 IFL XX,<V1=-1>
11899 IFG XX,<V1=0>
11900 MOP1 (\ADR,1,0,XX,V1,XX)^
11901 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11902 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11903 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11904 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11905
11906 000001 F35260: AA1=1 ;INITIAL C(AC)
11907 040174 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11908 000000 AA2=0 ;INITIAL C(AC+1)
11909 040175 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11910 777775 777777 AEE=XX ;INITIAL C(E)
11911 040176 200 00 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11912 040177 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11913 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11914 040200 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11915 040201 003 02 0 00 035261 ER3 AC,35261 ;HIGH PRODUCT FAILED
11916 777775 777777 AR2=XX ;EXPECTED RESULT IN AC+1
11917 040202 312 03 0 00 044067 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11918 040203 004 03 0 00 035262 ER4 AC+1,35262 ;LOW PRODUCT FAILED
11919 777775 777777 AEE=XX ;INITIAL C(E)
11920 040204 312 00 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED?
11921 040205 005 00 0 00 035263 ER5 E,35263 ;C(E) WAS CLOBBERED
11922 040206 321 04 0 00 040174 JUMPL AC+2,F35260 ;LOOP ON ERROR SWITCH^
11923
11924 003527 ADR=ADR+1
11925 777773 777777 XX=XX+XX+1
11926 IFE <XX-1>,<XX=-2>
11927
11928 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11929 777777 777777 IFL XX,<V1=-1>
11930 IFG XX,<V1=0>
11931 MOP1 (\ADR,1,0,XX,V1,XX)^
11932 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11933 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11934 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11935 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11936
11937 000001 F35270: AA1=1 ;INITIAL C(AC)
11938 040207 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11939 000000 AA2=0 ;INITIAL C(AC+1)
11940 040210 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11941 777773 777777 AEE=XX ;INITIAL C(E)
11942 040211 200 00 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11943 040212 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11944 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0240
11945 040213 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11946 040214 003 02 0 00 035271 ER3 AC,35271 ;HIGH PRODUCT FAILED
11947 777773 777777 AR2=XX ;EXPECTED RESULT IN AC+1
11948 040215 312 03 0 00 044070 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11949 040216 004 03 0 00 035272 ER4 AC+1,35272 ;LOW PRODUCT FAILED
11950 777773 777777 AEE=XX ;INITIAL C(E)
11951 040217 312 00 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED?
11952 040220 005 00 0 00 035273 ER5 E,35273 ;C(E) WAS CLOBBERED
11953 040221 321 04 0 00 040207 JUMPL AC+2,F35270 ;LOOP ON ERROR SWITCH^
11954
11955 003530 ADR=ADR+1
11956 777767 777777 XX=XX+XX+1
11957 IFE <XX-1>,<XX=-2>
11958
11959 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11960 777777 777777 IFL XX,<V1=-1>
11961 IFG XX,<V1=0>
11962 MOP1 (\ADR,1,0,XX,V1,XX)^
11963 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11964 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11965 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11966 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11967
11968 000001 F35300: AA1=1 ;INITIAL C(AC)
11969 040222 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
11970 000000 AA2=0 ;INITIAL C(AC+1)
11971 040223 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
11972 777767 777777 AEE=XX ;INITIAL C(E)
11973 040224 200 00 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
11974 040225 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
11975 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
11976 040226 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
11977 040227 003 02 0 00 035301 ER3 AC,35301 ;HIGH PRODUCT FAILED
11978 777767 777777 AR2=XX ;EXPECTED RESULT IN AC+1
11979 040230 312 03 0 00 044071 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
11980 040231 004 03 0 00 035302 ER4 AC+1,35302 ;LOW PRODUCT FAILED
11981 777767 777777 AEE=XX ;INITIAL C(E)
11982 040232 312 00 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED?
11983 040233 005 00 0 00 035303 ER5 E,35303 ;C(E) WAS CLOBBERED
11984 040234 321 04 0 00 040222 JUMPL AC+2,F35300 ;LOOP ON ERROR SWITCH^
11985
11986 003531 ADR=ADR+1
11987 777757 777777 XX=XX+XX+1
11988 IFE <XX-1>,<XX=-2>
11989
11990 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
11991 777777 777777 IFL XX,<V1=-1>
11992 IFG XX,<V1=0>
11993 MOP1 (\ADR,1,0,XX,V1,XX)^
11994 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
11995 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
11996 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
11997 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
11998
11999 000001 F35310: AA1=1 ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0241
12000 040235 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12001 000000 AA2=0 ;INITIAL C(AC+1)
12002 040236 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12003 777757 777777 AEE=XX ;INITIAL C(E)
12004 040237 200 00 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12005 040240 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12006 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12007 040241 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12008 040242 003 02 0 00 035311 ER3 AC,35311 ;HIGH PRODUCT FAILED
12009 777757 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12010 040243 312 03 0 00 044072 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12011 040244 004 03 0 00 035312 ER4 AC+1,35312 ;LOW PRODUCT FAILED
12012 777757 777777 AEE=XX ;INITIAL C(E)
12013 040245 312 00 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED?
12014 040246 005 00 0 00 035313 ER5 E,35313 ;C(E) WAS CLOBBERED
12015 040247 321 04 0 00 040235 JUMPL AC+2,F35310 ;LOOP ON ERROR SWITCH^
12016
12017 003532 ADR=ADR+1
12018 777737 777777 XX=XX+XX+1
12019 IFE <XX-1>,<XX=-2>
12020
12021 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12022 777777 777777 IFL XX,<V1=-1>
12023 IFG XX,<V1=0>
12024 MOP1 (\ADR,1,0,XX,V1,XX)^
12025 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12026 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12027 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12028 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12029
12030 000001 F35320: AA1=1 ;INITIAL C(AC)
12031 040250 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12032 000000 AA2=0 ;INITIAL C(AC+1)
12033 040251 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12034 777737 777777 AEE=XX ;INITIAL C(E)
12035 040252 200 00 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12036 040253 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12037 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12038 040254 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12039 040255 003 02 0 00 035321 ER3 AC,35321 ;HIGH PRODUCT FAILED
12040 777737 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12041 040256 312 03 0 00 044073 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12042 040257 004 03 0 00 035322 ER4 AC+1,35322 ;LOW PRODUCT FAILED
12043 777737 777777 AEE=XX ;INITIAL C(E)
12044 040260 312 00 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED?
12045 040261 005 00 0 00 035323 ER5 E,35323 ;C(E) WAS CLOBBERED
12046 040262 321 04 0 00 040250 JUMPL AC+2,F35320 ;LOOP ON ERROR SWITCH^
12047
12048 003533 ADR=ADR+1
12049 777677 777777 XX=XX+XX+1
12050 IFE <XX-1>,<XX=-2>
12051
12052 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12053 777777 777777 IFL XX,<V1=-1>
12054 IFG XX,<V1=0>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0242
12055 MOP1 (\ADR,1,0,XX,V1,XX)^
12056 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12057 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12058 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12059 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12060
12061 000001 F35330: AA1=1 ;INITIAL C(AC)
12062 040263 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12063 000000 AA2=0 ;INITIAL C(AC+1)
12064 040264 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12065 777677 777777 AEE=XX ;INITIAL C(E)
12066 040265 200 00 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12067 040266 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12068 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12069 040267 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12070 040270 003 02 0 00 035331 ER3 AC,35331 ;HIGH PRODUCT FAILED
12071 777677 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12072 040271 312 03 0 00 044074 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12073 040272 004 03 0 00 035332 ER4 AC+1,35332 ;LOW PRODUCT FAILED
12074 777677 777777 AEE=XX ;INITIAL C(E)
12075 040273 312 00 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED?
12076 040274 005 00 0 00 035333 ER5 E,35333 ;C(E) WAS CLOBBERED
12077 040275 321 04 0 00 040263 JUMPL AC+2,F35330 ;LOOP ON ERROR SWITCH^
12078
12079 003534 ADR=ADR+1
12080 777577 777777 XX=XX+XX+1
12081 IFE <XX-1>,<XX=-2>
12082
12083 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12084 777777 777777 IFL XX,<V1=-1>
12085 IFG XX,<V1=0>
12086 MOP1 (\ADR,1,0,XX,V1,XX)^
12087 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12088 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12089 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12090 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12091
12092 000001 F35340: AA1=1 ;INITIAL C(AC)
12093 040276 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12094 000000 AA2=0 ;INITIAL C(AC+1)
12095 040277 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12096 777577 777777 AEE=XX ;INITIAL C(E)
12097 040300 200 00 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12098 040301 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12099 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12100 040302 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12101 040303 003 02 0 00 035341 ER3 AC,35341 ;HIGH PRODUCT FAILED
12102 777577 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12103 040304 312 03 0 00 044075 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12104 040305 004 03 0 00 035342 ER4 AC+1,35342 ;LOW PRODUCT FAILED
12105 777577 777777 AEE=XX ;INITIAL C(E)
12106 040306 312 00 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED?
12107 040307 005 00 0 00 035343 ER5 E,35343 ;C(E) WAS CLOBBERED
12108 040310 321 04 0 00 040276 JUMPL AC+2,F35340 ;LOOP ON ERROR SWITCH^
12109
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0243
12110 003535 ADR=ADR+1
12111 777377 777777 XX=XX+XX+1
12112 IFE <XX-1>,<XX=-2>
12113
12114 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12115 777777 777777 IFL XX,<V1=-1>
12116 IFG XX,<V1=0>
12117 MOP1 (\ADR,1,0,XX,V1,XX)^
12118 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12119 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12120 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12121 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12122
12123 000001 F35350: AA1=1 ;INITIAL C(AC)
12124 040311 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12125 000000 AA2=0 ;INITIAL C(AC+1)
12126 040312 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12127 777377 777777 AEE=XX ;INITIAL C(E)
12128 040313 200 00 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12129 040314 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12130 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12131 040315 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12132 040316 003 02 0 00 035351 ER3 AC,35351 ;HIGH PRODUCT FAILED
12133 777377 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12134 040317 312 03 0 00 044076 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12135 040320 004 03 0 00 035352 ER4 AC+1,35352 ;LOW PRODUCT FAILED
12136 777377 777777 AEE=XX ;INITIAL C(E)
12137 040321 312 00 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED?
12138 040322 005 00 0 00 035353 ER5 E,35353 ;C(E) WAS CLOBBERED
12139 040323 321 04 0 00 040311 JUMPL AC+2,F35350 ;LOOP ON ERROR SWITCH^
12140
12141 003536 ADR=ADR+1
12142 776777 777777 XX=XX+XX+1
12143 IFE <XX-1>,<XX=-2>
12144
12145 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12146 777777 777777 IFL XX,<V1=-1>
12147 IFG XX,<V1=0>
12148 MOP1 (\ADR,1,0,XX,V1,XX)^
12149 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12150 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12151 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12152 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12153
12154 000001 F35360: AA1=1 ;INITIAL C(AC)
12155 040324 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12156 000000 AA2=0 ;INITIAL C(AC+1)
12157 040325 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12158 776777 777777 AEE=XX ;INITIAL C(E)
12159 040326 200 00 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12160 040327 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12161 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12162 040330 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12163 040331 003 02 0 00 035361 ER3 AC,35361 ;HIGH PRODUCT FAILED
12164 776777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0244
12165 040332 312 03 0 00 044077 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12166 040333 004 03 0 00 035362 ER4 AC+1,35362 ;LOW PRODUCT FAILED
12167 776777 777777 AEE=XX ;INITIAL C(E)
12168 040334 312 00 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED?
12169 040335 005 00 0 00 035363 ER5 E,35363 ;C(E) WAS CLOBBERED
12170 040336 321 04 0 00 040324 JUMPL AC+2,F35360 ;LOOP ON ERROR SWITCH^
12171
12172 003537 ADR=ADR+1
12173 775777 777777 XX=XX+XX+1
12174 IFE <XX-1>,<XX=-2>
12175
12176 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12177 777777 777777 IFL XX,<V1=-1>
12178 IFG XX,<V1=0>
12179 MOP1 (\ADR,1,0,XX,V1,XX)^
12180 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12181 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12182 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12183 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12184
12185 000001 F35370: AA1=1 ;INITIAL C(AC)
12186 040337 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12187 000000 AA2=0 ;INITIAL C(AC+1)
12188 040340 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12189 775777 777777 AEE=XX ;INITIAL C(E)
12190 040341 200 00 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12191 040342 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12192 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12193 040343 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12194 040344 003 02 0 00 035371 ER3 AC,35371 ;HIGH PRODUCT FAILED
12195 775777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12196 040345 312 03 0 00 044100 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12197 040346 004 03 0 00 035372 ER4 AC+1,35372 ;LOW PRODUCT FAILED
12198 775777 777777 AEE=XX ;INITIAL C(E)
12199 040347 312 00 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED?
12200 040350 005 00 0 00 035373 ER5 E,35373 ;C(E) WAS CLOBBERED
12201 040351 321 04 0 00 040337 JUMPL AC+2,F35370 ;LOOP ON ERROR SWITCH^
12202
12203 003540 ADR=ADR+1
12204 773777 777777 XX=XX+XX+1
12205 IFE <XX-1>,<XX=-2>
12206
12207 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12208 777777 777777 IFL XX,<V1=-1>
12209 IFG XX,<V1=0>
12210 MOP1 (\ADR,1,0,XX,V1,XX)^
12211 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12212 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12213 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12214 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12215
12216 000001 F35400: AA1=1 ;INITIAL C(AC)
12217 040352 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12218 000000 AA2=0 ;INITIAL C(AC+1)
12219 040353 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0245
12220 773777 777777 AEE=XX ;INITIAL C(E)
12221 040354 200 00 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12222 040355 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12223 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12224 040356 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12225 040357 003 02 0 00 035401 ER3 AC,35401 ;HIGH PRODUCT FAILED
12226 773777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12227 040360 312 03 0 00 044101 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12228 040361 004 03 0 00 035402 ER4 AC+1,35402 ;LOW PRODUCT FAILED
12229 773777 777777 AEE=XX ;INITIAL C(E)
12230 040362 312 00 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED?
12231 040363 005 00 0 00 035403 ER5 E,35403 ;C(E) WAS CLOBBERED
12232 040364 321 04 0 00 040352 JUMPL AC+2,F35400 ;LOOP ON ERROR SWITCH^
12233
12234 003541 ADR=ADR+1
12235 767777 777777 XX=XX+XX+1
12236 IFE <XX-1>,<XX=-2>
12237
12238 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12239 777777 777777 IFL XX,<V1=-1>
12240 IFG XX,<V1=0>
12241 MOP1 (\ADR,1,0,XX,V1,XX)^
12242 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12243 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12244 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12245 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12246
12247 000001 F35410: AA1=1 ;INITIAL C(AC)
12248 040365 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12249 000000 AA2=0 ;INITIAL C(AC+1)
12250 040366 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12251 767777 777777 AEE=XX ;INITIAL C(E)
12252 040367 200 00 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12253 040370 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12254 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12255 040371 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12256 040372 003 02 0 00 035411 ER3 AC,35411 ;HIGH PRODUCT FAILED
12257 767777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12258 040373 312 03 0 00 044102 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12259 040374 004 03 0 00 035412 ER4 AC+1,35412 ;LOW PRODUCT FAILED
12260 767777 777777 AEE=XX ;INITIAL C(E)
12261 040375 312 00 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED?
12262 040376 005 00 0 00 035413 ER5 E,35413 ;C(E) WAS CLOBBERED
12263 040377 321 04 0 00 040365 JUMPL AC+2,F35410 ;LOOP ON ERROR SWITCH^
12264
12265 003542 ADR=ADR+1
12266 757777 777777 XX=XX+XX+1
12267 IFE <XX-1>,<XX=-2>
12268
12269 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12270 777777 777777 IFL XX,<V1=-1>
12271 IFG XX,<V1=0>
12272 MOP1 (\ADR,1,0,XX,V1,XX)^
12273 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12274 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0246
12275 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12276 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12277
12278 000001 F35420: AA1=1 ;INITIAL C(AC)
12279 040400 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12280 000000 AA2=0 ;INITIAL C(AC+1)
12281 040401 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12282 757777 777777 AEE=XX ;INITIAL C(E)
12283 040402 200 00 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12284 040403 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12285 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12286 040404 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12287 040405 003 02 0 00 035421 ER3 AC,35421 ;HIGH PRODUCT FAILED
12288 757777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12289 040406 312 03 0 00 044103 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12290 040407 004 03 0 00 035422 ER4 AC+1,35422 ;LOW PRODUCT FAILED
12291 757777 777777 AEE=XX ;INITIAL C(E)
12292 040410 312 00 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED?
12293 040411 005 00 0 00 035423 ER5 E,35423 ;C(E) WAS CLOBBERED
12294 040412 321 04 0 00 040400 JUMPL AC+2,F35420 ;LOOP ON ERROR SWITCH^
12295
12296 003543 ADR=ADR+1
12297 737777 777777 XX=XX+XX+1
12298 IFE <XX-1>,<XX=-2>
12299
12300 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12301 777777 777777 IFL XX,<V1=-1>
12302 IFG XX,<V1=0>
12303 MOP1 (\ADR,1,0,XX,V1,XX)^
12304 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12305 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12306 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12307 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12308
12309 000001 F35430: AA1=1 ;INITIAL C(AC)
12310 040413 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12311 000000 AA2=0 ;INITIAL C(AC+1)
12312 040414 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12313 737777 777777 AEE=XX ;INITIAL C(E)
12314 040415 200 00 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12315 040416 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12316 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12317 040417 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12318 040420 003 02 0 00 035431 ER3 AC,35431 ;HIGH PRODUCT FAILED
12319 737777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12320 040421 312 03 0 00 044104 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12321 040422 004 03 0 00 035432 ER4 AC+1,35432 ;LOW PRODUCT FAILED
12322 737777 777777 AEE=XX ;INITIAL C(E)
12323 040423 312 00 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED?
12324 040424 005 00 0 00 035433 ER5 E,35433 ;C(E) WAS CLOBBERED
12325 040425 321 04 0 00 040413 JUMPL AC+2,F35430 ;LOOP ON ERROR SWITCH^
12326
12327 003544 ADR=ADR+1
12328 677777 777777 XX=XX+XX+1
12329 IFE <XX-1>,<XX=-2>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0247
12330
12331 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12332 777777 777777 IFL XX,<V1=-1>
12333 IFG XX,<V1=0>
12334 MOP1 (\ADR,1,0,XX,V1,XX)^
12335 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12336 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12337 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12338 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12339
12340 000001 F35440: AA1=1 ;INITIAL C(AC)
12341 040426 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12342 000000 AA2=0 ;INITIAL C(AC+1)
12343 040427 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12344 677777 777777 AEE=XX ;INITIAL C(E)
12345 040430 200 00 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12346 040431 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12347 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12348 040432 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12349 040433 003 02 0 00 035441 ER3 AC,35441 ;HIGH PRODUCT FAILED
12350 677777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12351 040434 312 03 0 00 044105 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12352 040435 004 03 0 00 035442 ER4 AC+1,35442 ;LOW PRODUCT FAILED
12353 677777 777777 AEE=XX ;INITIAL C(E)
12354 040436 312 00 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED?
12355 040437 005 00 0 00 035443 ER5 E,35443 ;C(E) WAS CLOBBERED
12356 040440 321 04 0 00 040426 JUMPL AC+2,F35440 ;LOOP ON ERROR SWITCH^
12357
12358 003545 ADR=ADR+1
12359 577777 777777 XX=XX+XX+1
12360 IFE <XX-1>,<XX=-2>
12361
12362 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12363 777777 777777 IFL XX,<V1=-1>
12364 IFG XX,<V1=0>
12365 MOP1 (\ADR,1,0,XX,V1,XX)^
12366 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12367 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12368 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12369 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12370
12371 000001 F35450: AA1=1 ;INITIAL C(AC)
12372 040441 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12373 000000 AA2=0 ;INITIAL C(AC+1)
12374 040442 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12375 577777 777777 AEE=XX ;INITIAL C(E)
12376 040443 200 00 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12377 040444 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12378 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12379 040445 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12380 040446 003 02 0 00 035451 ER3 AC,35451 ;HIGH PRODUCT FAILED
12381 577777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12382 040447 312 03 0 00 044106 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12383 040450 004 03 0 00 035452 ER4 AC+1,35452 ;LOW PRODUCT FAILED
12384 577777 777777 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0248
12385 040451 312 00 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED?
12386 040452 005 00 0 00 035453 ER5 E,35453 ;C(E) WAS CLOBBERED
12387 040453 321 04 0 00 040441 JUMPL AC+2,F35450 ;LOOP ON ERROR SWITCH^
12388
12389 003546 ADR=ADR+1
12390 377777 777777 XX=XX+XX+1
12391 IFE <XX-1>,<XX=-2>
12392
12393 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
12394 IFL XX,<V1=-1>
12395 000000 IFG XX,<V1=0>
12396 MOP1 (\ADR,1,0,XX,V1,XX)^
12397 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
12398 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12399 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
12400 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12401
12402 000001 F35460: AA1=1 ;INITIAL C(AC)
12403 040454 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER)
12404 000000 AA2=0 ;INITIAL C(AC+1)
12405 040455 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12406 377777 777777 AEE=XX ;INITIAL C(E)
12407 040456 200 00 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
12408 040457 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12409 000000 AR1=V1 ;EXPECTED RESULT IN AC
12410 040460 312 02 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12411 040461 003 02 0 00 035461 ER3 AC,35461 ;HIGH PRODUCT FAILED
12412 377777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
12413 040462 312 03 0 00 044107 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12414 040463 004 03 0 00 035462 ER4 AC+1,35462 ;LOW PRODUCT FAILED
12415 377777 777777 AEE=XX ;INITIAL C(E)
12416 040464 312 00 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED?
12417 040465 005 00 0 00 035463 ER5 E,35463 ;C(E) WAS CLOBBERED
12418 040466 321 04 0 00 040454 JUMPL AC+2,F35460 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0249
12419 000010 AC=10
12420 000006 E=<AC-2>&17
12421 SAVEAC (1,1)^
12422 040467 201 12 0 00 040467 MOVEI AC+2,. ;SAVE TEST PC
12423 040470 202 12 0 00 030051 MOVEM AC+2,TESTPC
12424 040471 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
12425 040472 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
12426 000000 XX=0
12427
12428 REPEAT ^D36,<
12429 ADR=ADR+1
12430 XX=XX+XX+1
12431 IFE <XX-1>,<XX=-2>
12432
12433 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12434 IFL XX,<V1=-1>
12435 IFG XX,<V1=0>
12436 MOP1 (\ADR,XX,0,1,V1,XX)>
12437
12438 003547 ADR=ADR+1
12439 000001 XX=XX+XX+1
12440 777777 777776 IFE <XX-1>,<XX=-2>
12441
12442 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12443 777777 777777 IFL XX,<V1=-1>
12444 IFG XX,<V1=0>
12445 MOP1 (\ADR,XX,0,1,V1,XX)^
12446 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12447 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12448 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12449 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12450
12451 777777 777776 F35470: AA1=XX ;INITIAL C(AC)
12452 040473 200 10 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12453 000000 AA2=0 ;INITIAL C(AC+1)
12454 040474 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12455 000001 AEE=1 ;INITIAL C(E)
12456 040475 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12457 040476 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12458 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12459 040477 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12460 040500 003 10 0 00 035471 ER3 AC,35471 ;HIGH PRODUCT FAILED
12461 777777 777776 AR2=XX ;EXPECTED RESULT IN AC+1
12462 040501 312 11 0 00 044044 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12463 040502 004 11 0 00 035472 ER4 AC+1,35472 ;LOW PRODUCT FAILED
12464 000001 AEE=1 ;INITIAL C(E)
12465 040503 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12466 040504 005 06 0 00 035473 ER5 E,35473 ;C(E) WAS CLOBBERED
12467 040505 321 12 0 00 040473 JUMPL AC+2,F35470 ;LOOP ON ERROR SWITCH^
12468
12469 003550 ADR=ADR+1
12470 777777 777775 XX=XX+XX+1
12471 IFE <XX-1>,<XX=-2>
12472
12473 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0250
12474 777777 777777 IFL XX,<V1=-1>
12475 IFG XX,<V1=0>
12476 MOP1 (\ADR,XX,0,1,V1,XX)^
12477 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12478 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12479 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12480 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12481
12482 777777 777775 F35500: AA1=XX ;INITIAL C(AC)
12483 040506 200 10 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12484 000000 AA2=0 ;INITIAL C(AC+1)
12485 040507 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12486 000001 AEE=1 ;INITIAL C(E)
12487 040510 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12488 040511 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12489 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12490 040512 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12491 040513 003 10 0 00 035501 ER3 AC,35501 ;HIGH PRODUCT FAILED
12492 777777 777775 AR2=XX ;EXPECTED RESULT IN AC+1
12493 040514 312 11 0 00 044045 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12494 040515 004 11 0 00 035502 ER4 AC+1,35502 ;LOW PRODUCT FAILED
12495 000001 AEE=1 ;INITIAL C(E)
12496 040516 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12497 040517 005 06 0 00 035503 ER5 E,35503 ;C(E) WAS CLOBBERED
12498 040520 321 12 0 00 040506 JUMPL AC+2,F35500 ;LOOP ON ERROR SWITCH^
12499
12500 003551 ADR=ADR+1
12501 777777 777773 XX=XX+XX+1
12502 IFE <XX-1>,<XX=-2>
12503
12504 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12505 777777 777777 IFL XX,<V1=-1>
12506 IFG XX,<V1=0>
12507 MOP1 (\ADR,XX,0,1,V1,XX)^
12508 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12509 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12510 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12511 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12512
12513 777777 777773 F35510: AA1=XX ;INITIAL C(AC)
12514 040521 200 10 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12515 000000 AA2=0 ;INITIAL C(AC+1)
12516 040522 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12517 000001 AEE=1 ;INITIAL C(E)
12518 040523 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12519 040524 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12520 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12521 040525 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12522 040526 003 10 0 00 035511 ER3 AC,35511 ;HIGH PRODUCT FAILED
12523 777777 777773 AR2=XX ;EXPECTED RESULT IN AC+1
12524 040527 312 11 0 00 044046 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12525 040530 004 11 0 00 035512 ER4 AC+1,35512 ;LOW PRODUCT FAILED
12526 000001 AEE=1 ;INITIAL C(E)
12527 040531 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12528 040532 005 06 0 00 035513 ER5 E,35513 ;C(E) WAS CLOBBERED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0251
12529 040533 321 12 0 00 040521 JUMPL AC+2,F35510 ;LOOP ON ERROR SWITCH^
12530
12531 003552 ADR=ADR+1
12532 777777 777767 XX=XX+XX+1
12533 IFE <XX-1>,<XX=-2>
12534
12535 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12536 777777 777777 IFL XX,<V1=-1>
12537 IFG XX,<V1=0>
12538 MOP1 (\ADR,XX,0,1,V1,XX)^
12539 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12540 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12541 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12542 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12543
12544 777777 777767 F35520: AA1=XX ;INITIAL C(AC)
12545 040534 200 10 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12546 000000 AA2=0 ;INITIAL C(AC+1)
12547 040535 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12548 000001 AEE=1 ;INITIAL C(E)
12549 040536 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12550 040537 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12551 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12552 040540 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12553 040541 003 10 0 00 035521 ER3 AC,35521 ;HIGH PRODUCT FAILED
12554 777777 777767 AR2=XX ;EXPECTED RESULT IN AC+1
12555 040542 312 11 0 00 044047 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12556 040543 004 11 0 00 035522 ER4 AC+1,35522 ;LOW PRODUCT FAILED
12557 000001 AEE=1 ;INITIAL C(E)
12558 040544 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12559 040545 005 06 0 00 035523 ER5 E,35523 ;C(E) WAS CLOBBERED
12560 040546 321 12 0 00 040534 JUMPL AC+2,F35520 ;LOOP ON ERROR SWITCH^
12561
12562 003553 ADR=ADR+1
12563 777777 777757 XX=XX+XX+1
12564 IFE <XX-1>,<XX=-2>
12565
12566 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12567 777777 777777 IFL XX,<V1=-1>
12568 IFG XX,<V1=0>
12569 MOP1 (\ADR,XX,0,1,V1,XX)^
12570 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12571 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12572 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12573 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12574
12575 777777 777757 F35530: AA1=XX ;INITIAL C(AC)
12576 040547 200 10 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12577 000000 AA2=0 ;INITIAL C(AC+1)
12578 040550 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12579 000001 AEE=1 ;INITIAL C(E)
12580 040551 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12581 040552 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12582 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12583 040553 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0252
12584 040554 003 10 0 00 035531 ER3 AC,35531 ;HIGH PRODUCT FAILED
12585 777777 777757 AR2=XX ;EXPECTED RESULT IN AC+1
12586 040555 312 11 0 00 044050 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12587 040556 004 11 0 00 035532 ER4 AC+1,35532 ;LOW PRODUCT FAILED
12588 000001 AEE=1 ;INITIAL C(E)
12589 040557 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12590 040560 005 06 0 00 035533 ER5 E,35533 ;C(E) WAS CLOBBERED
12591 040561 321 12 0 00 040547 JUMPL AC+2,F35530 ;LOOP ON ERROR SWITCH^
12592
12593 003554 ADR=ADR+1
12594 777777 777737 XX=XX+XX+1
12595 IFE <XX-1>,<XX=-2>
12596
12597 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12598 777777 777777 IFL XX,<V1=-1>
12599 IFG XX,<V1=0>
12600 MOP1 (\ADR,XX,0,1,V1,XX)^
12601 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12602 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12603 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12604 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12605
12606 777777 777737 F35540: AA1=XX ;INITIAL C(AC)
12607 040562 200 10 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12608 000000 AA2=0 ;INITIAL C(AC+1)
12609 040563 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12610 000001 AEE=1 ;INITIAL C(E)
12611 040564 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12612 040565 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12613 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12614 040566 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12615 040567 003 10 0 00 035541 ER3 AC,35541 ;HIGH PRODUCT FAILED
12616 777777 777737 AR2=XX ;EXPECTED RESULT IN AC+1
12617 040570 312 11 0 00 044051 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12618 040571 004 11 0 00 035542 ER4 AC+1,35542 ;LOW PRODUCT FAILED
12619 000001 AEE=1 ;INITIAL C(E)
12620 040572 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12621 040573 005 06 0 00 035543 ER5 E,35543 ;C(E) WAS CLOBBERED
12622 040574 321 12 0 00 040562 JUMPL AC+2,F35540 ;LOOP ON ERROR SWITCH^
12623
12624 003555 ADR=ADR+1
12625 777777 777677 XX=XX+XX+1
12626 IFE <XX-1>,<XX=-2>
12627
12628 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12629 777777 777777 IFL XX,<V1=-1>
12630 IFG XX,<V1=0>
12631 MOP1 (\ADR,XX,0,1,V1,XX)^
12632 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12633 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12634 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12635 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12636
12637 777777 777677 F35550: AA1=XX ;INITIAL C(AC)
12638 040575 200 10 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0253
12639 000000 AA2=0 ;INITIAL C(AC+1)
12640 040576 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12641 000001 AEE=1 ;INITIAL C(E)
12642 040577 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12643 040600 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12644 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12645 040601 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12646 040602 003 10 0 00 035551 ER3 AC,35551 ;HIGH PRODUCT FAILED
12647 777777 777677 AR2=XX ;EXPECTED RESULT IN AC+1
12648 040603 312 11 0 00 044052 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12649 040604 004 11 0 00 035552 ER4 AC+1,35552 ;LOW PRODUCT FAILED
12650 000001 AEE=1 ;INITIAL C(E)
12651 040605 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12652 040606 005 06 0 00 035553 ER5 E,35553 ;C(E) WAS CLOBBERED
12653 040607 321 12 0 00 040575 JUMPL AC+2,F35550 ;LOOP ON ERROR SWITCH^
12654
12655 003556 ADR=ADR+1
12656 777777 777577 XX=XX+XX+1
12657 IFE <XX-1>,<XX=-2>
12658
12659 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12660 777777 777777 IFL XX,<V1=-1>
12661 IFG XX,<V1=0>
12662 MOP1 (\ADR,XX,0,1,V1,XX)^
12663 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12664 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12665 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12666 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12667
12668 777777 777577 F35560: AA1=XX ;INITIAL C(AC)
12669 040610 200 10 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12670 000000 AA2=0 ;INITIAL C(AC+1)
12671 040611 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12672 000001 AEE=1 ;INITIAL C(E)
12673 040612 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12674 040613 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12675 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12676 040614 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12677 040615 003 10 0 00 035561 ER3 AC,35561 ;HIGH PRODUCT FAILED
12678 777777 777577 AR2=XX ;EXPECTED RESULT IN AC+1
12679 040616 312 11 0 00 044053 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12680 040617 004 11 0 00 035562 ER4 AC+1,35562 ;LOW PRODUCT FAILED
12681 000001 AEE=1 ;INITIAL C(E)
12682 040620 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12683 040621 005 06 0 00 035563 ER5 E,35563 ;C(E) WAS CLOBBERED
12684 040622 321 12 0 00 040610 JUMPL AC+2,F35560 ;LOOP ON ERROR SWITCH^
12685
12686 003557 ADR=ADR+1
12687 777777 777377 XX=XX+XX+1
12688 IFE <XX-1>,<XX=-2>
12689
12690 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12691 777777 777777 IFL XX,<V1=-1>
12692 IFG XX,<V1=0>
12693 MOP1 (\ADR,XX,0,1,V1,XX)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0254
12694 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12695 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12696 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12697 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12698
12699 777777 777377 F35570: AA1=XX ;INITIAL C(AC)
12700 040623 200 10 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12701 000000 AA2=0 ;INITIAL C(AC+1)
12702 040624 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12703 000001 AEE=1 ;INITIAL C(E)
12704 040625 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12705 040626 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12706 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12707 040627 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12708 040630 003 10 0 00 035571 ER3 AC,35571 ;HIGH PRODUCT FAILED
12709 777777 777377 AR2=XX ;EXPECTED RESULT IN AC+1
12710 040631 312 11 0 00 044054 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12711 040632 004 11 0 00 035572 ER4 AC+1,35572 ;LOW PRODUCT FAILED
12712 000001 AEE=1 ;INITIAL C(E)
12713 040633 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12714 040634 005 06 0 00 035573 ER5 E,35573 ;C(E) WAS CLOBBERED
12715 040635 321 12 0 00 040623 JUMPL AC+2,F35570 ;LOOP ON ERROR SWITCH^
12716
12717 003560 ADR=ADR+1
12718 777777 776777 XX=XX+XX+1
12719 IFE <XX-1>,<XX=-2>
12720
12721 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12722 777777 777777 IFL XX,<V1=-1>
12723 IFG XX,<V1=0>
12724 MOP1 (\ADR,XX,0,1,V1,XX)^
12725 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12726 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12727 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12728 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12729
12730 777777 776777 F35600: AA1=XX ;INITIAL C(AC)
12731 040636 200 10 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12732 000000 AA2=0 ;INITIAL C(AC+1)
12733 040637 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12734 000001 AEE=1 ;INITIAL C(E)
12735 040640 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12736 040641 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12737 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12738 040642 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12739 040643 003 10 0 00 035601 ER3 AC,35601 ;HIGH PRODUCT FAILED
12740 777777 776777 AR2=XX ;EXPECTED RESULT IN AC+1
12741 040644 312 11 0 00 044055 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12742 040645 004 11 0 00 035602 ER4 AC+1,35602 ;LOW PRODUCT FAILED
12743 000001 AEE=1 ;INITIAL C(E)
12744 040646 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12745 040647 005 06 0 00 035603 ER5 E,35603 ;C(E) WAS CLOBBERED
12746 040650 321 12 0 00 040636 JUMPL AC+2,F35600 ;LOOP ON ERROR SWITCH^
12747
12748 003561 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0255
12749 777777 775777 XX=XX+XX+1
12750 IFE <XX-1>,<XX=-2>
12751
12752 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12753 777777 777777 IFL XX,<V1=-1>
12754 IFG XX,<V1=0>
12755 MOP1 (\ADR,XX,0,1,V1,XX)^
12756 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12757 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12758 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12759 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12760
12761 777777 775777 F35610: AA1=XX ;INITIAL C(AC)
12762 040651 200 10 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12763 000000 AA2=0 ;INITIAL C(AC+1)
12764 040652 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12765 000001 AEE=1 ;INITIAL C(E)
12766 040653 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12767 040654 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12768 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12769 040655 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12770 040656 003 10 0 00 035611 ER3 AC,35611 ;HIGH PRODUCT FAILED
12771 777777 775777 AR2=XX ;EXPECTED RESULT IN AC+1
12772 040657 312 11 0 00 044056 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12773 040660 004 11 0 00 035612 ER4 AC+1,35612 ;LOW PRODUCT FAILED
12774 000001 AEE=1 ;INITIAL C(E)
12775 040661 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12776 040662 005 06 0 00 035613 ER5 E,35613 ;C(E) WAS CLOBBERED
12777 040663 321 12 0 00 040651 JUMPL AC+2,F35610 ;LOOP ON ERROR SWITCH^
12778
12779 003562 ADR=ADR+1
12780 777777 773777 XX=XX+XX+1
12781 IFE <XX-1>,<XX=-2>
12782
12783 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12784 777777 777777 IFL XX,<V1=-1>
12785 IFG XX,<V1=0>
12786 MOP1 (\ADR,XX,0,1,V1,XX)^
12787 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12788 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12789 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12790 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12791
12792 777777 773777 F35620: AA1=XX ;INITIAL C(AC)
12793 040664 200 10 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12794 000000 AA2=0 ;INITIAL C(AC+1)
12795 040665 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12796 000001 AEE=1 ;INITIAL C(E)
12797 040666 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12798 040667 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12799 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12800 040670 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12801 040671 003 10 0 00 035621 ER3 AC,35621 ;HIGH PRODUCT FAILED
12802 777777 773777 AR2=XX ;EXPECTED RESULT IN AC+1
12803 040672 312 11 0 00 044057 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0256
12804 040673 004 11 0 00 035622 ER4 AC+1,35622 ;LOW PRODUCT FAILED
12805 000001 AEE=1 ;INITIAL C(E)
12806 040674 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12807 040675 005 06 0 00 035623 ER5 E,35623 ;C(E) WAS CLOBBERED
12808 040676 321 12 0 00 040664 JUMPL AC+2,F35620 ;LOOP ON ERROR SWITCH^
12809
12810 003563 ADR=ADR+1
12811 777777 767777 XX=XX+XX+1
12812 IFE <XX-1>,<XX=-2>
12813
12814 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12815 777777 777777 IFL XX,<V1=-1>
12816 IFG XX,<V1=0>
12817 MOP1 (\ADR,XX,0,1,V1,XX)^
12818 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12819 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12820 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12821 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12822
12823 777777 767777 F35630: AA1=XX ;INITIAL C(AC)
12824 040677 200 10 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12825 000000 AA2=0 ;INITIAL C(AC+1)
12826 040700 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12827 000001 AEE=1 ;INITIAL C(E)
12828 040701 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12829 040702 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12830 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12831 040703 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12832 040704 003 10 0 00 035631 ER3 AC,35631 ;HIGH PRODUCT FAILED
12833 777777 767777 AR2=XX ;EXPECTED RESULT IN AC+1
12834 040705 312 11 0 00 044060 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12835 040706 004 11 0 00 035632 ER4 AC+1,35632 ;LOW PRODUCT FAILED
12836 000001 AEE=1 ;INITIAL C(E)
12837 040707 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12838 040710 005 06 0 00 035633 ER5 E,35633 ;C(E) WAS CLOBBERED
12839 040711 321 12 0 00 040677 JUMPL AC+2,F35630 ;LOOP ON ERROR SWITCH^
12840
12841 003564 ADR=ADR+1
12842 777777 757777 XX=XX+XX+1
12843 IFE <XX-1>,<XX=-2>
12844
12845 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12846 777777 777777 IFL XX,<V1=-1>
12847 IFG XX,<V1=0>
12848 MOP1 (\ADR,XX,0,1,V1,XX)^
12849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12850 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12851 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12853
12854 777777 757777 F35640: AA1=XX ;INITIAL C(AC)
12855 040712 200 10 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12856 000000 AA2=0 ;INITIAL C(AC+1)
12857 040713 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12858 000001 AEE=1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0257
12859 040714 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12860 040715 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12861 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12862 040716 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12863 040717 003 10 0 00 035641 ER3 AC,35641 ;HIGH PRODUCT FAILED
12864 777777 757777 AR2=XX ;EXPECTED RESULT IN AC+1
12865 040720 312 11 0 00 044061 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12866 040721 004 11 0 00 035642 ER4 AC+1,35642 ;LOW PRODUCT FAILED
12867 000001 AEE=1 ;INITIAL C(E)
12868 040722 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12869 040723 005 06 0 00 035643 ER5 E,35643 ;C(E) WAS CLOBBERED
12870 040724 321 12 0 00 040712 JUMPL AC+2,F35640 ;LOOP ON ERROR SWITCH^
12871
12872 003565 ADR=ADR+1
12873 777777 737777 XX=XX+XX+1
12874 IFE <XX-1>,<XX=-2>
12875
12876 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12877 777777 777777 IFL XX,<V1=-1>
12878 IFG XX,<V1=0>
12879 MOP1 (\ADR,XX,0,1,V1,XX)^
12880 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12881 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12882 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12883 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12884
12885 777777 737777 F35650: AA1=XX ;INITIAL C(AC)
12886 040725 200 10 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12887 000000 AA2=0 ;INITIAL C(AC+1)
12888 040726 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12889 000001 AEE=1 ;INITIAL C(E)
12890 040727 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12891 040730 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12892 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12893 040731 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12894 040732 003 10 0 00 035651 ER3 AC,35651 ;HIGH PRODUCT FAILED
12895 777777 737777 AR2=XX ;EXPECTED RESULT IN AC+1
12896 040733 312 11 0 00 044062 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12897 040734 004 11 0 00 035652 ER4 AC+1,35652 ;LOW PRODUCT FAILED
12898 000001 AEE=1 ;INITIAL C(E)
12899 040735 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12900 040736 005 06 0 00 035653 ER5 E,35653 ;C(E) WAS CLOBBERED
12901 040737 321 12 0 00 040725 JUMPL AC+2,F35650 ;LOOP ON ERROR SWITCH^
12902
12903 003566 ADR=ADR+1
12904 777777 677777 XX=XX+XX+1
12905 IFE <XX-1>,<XX=-2>
12906
12907 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12908 777777 777777 IFL XX,<V1=-1>
12909 IFG XX,<V1=0>
12910 MOP1 (\ADR,XX,0,1,V1,XX)^
12911 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12912 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12913 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0258
12914 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12915
12916 777777 677777 F35660: AA1=XX ;INITIAL C(AC)
12917 040740 200 10 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12918 000000 AA2=0 ;INITIAL C(AC+1)
12919 040741 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12920 000001 AEE=1 ;INITIAL C(E)
12921 040742 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12922 040743 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12923 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12924 040744 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12925 040745 003 10 0 00 035661 ER3 AC,35661 ;HIGH PRODUCT FAILED
12926 777777 677777 AR2=XX ;EXPECTED RESULT IN AC+1
12927 040746 312 11 0 00 044063 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12928 040747 004 11 0 00 035662 ER4 AC+1,35662 ;LOW PRODUCT FAILED
12929 000001 AEE=1 ;INITIAL C(E)
12930 040750 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12931 040751 005 06 0 00 035663 ER5 E,35663 ;C(E) WAS CLOBBERED
12932 040752 321 12 0 00 040740 JUMPL AC+2,F35660 ;LOOP ON ERROR SWITCH^
12933
12934 003567 ADR=ADR+1
12935 777777 577777 XX=XX+XX+1
12936 IFE <XX-1>,<XX=-2>
12937
12938 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12939 777777 777777 IFL XX,<V1=-1>
12940 IFG XX,<V1=0>
12941 MOP1 (\ADR,XX,0,1,V1,XX)^
12942 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12943 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12944 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12945 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12946
12947 777777 577777 F35670: AA1=XX ;INITIAL C(AC)
12948 040753 200 10 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12949 000000 AA2=0 ;INITIAL C(AC+1)
12950 040754 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12951 000001 AEE=1 ;INITIAL C(E)
12952 040755 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12953 040756 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12954 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12955 040757 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12956 040760 003 10 0 00 035671 ER3 AC,35671 ;HIGH PRODUCT FAILED
12957 777777 577777 AR2=XX ;EXPECTED RESULT IN AC+1
12958 040761 312 11 0 00 044064 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12959 040762 004 11 0 00 035672 ER4 AC+1,35672 ;LOW PRODUCT FAILED
12960 000001 AEE=1 ;INITIAL C(E)
12961 040763 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12962 040764 005 06 0 00 035673 ER5 E,35673 ;C(E) WAS CLOBBERED
12963 040765 321 12 0 00 040753 JUMPL AC+2,F35670 ;LOOP ON ERROR SWITCH^
12964
12965 003570 ADR=ADR+1
12966 777777 377777 XX=XX+XX+1
12967 IFE <XX-1>,<XX=-2>
12968
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0259
12969 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
12970 777777 777777 IFL XX,<V1=-1>
12971 IFG XX,<V1=0>
12972 MOP1 (\ADR,XX,0,1,V1,XX)^
12973 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
12974 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
12975 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
12976 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
12977
12978 777777 377777 F35700: AA1=XX ;INITIAL C(AC)
12979 040766 200 10 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
12980 000000 AA2=0 ;INITIAL C(AC+1)
12981 040767 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
12982 000001 AEE=1 ;INITIAL C(E)
12983 040770 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
12984 040771 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
12985 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
12986 040772 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
12987 040773 003 10 0 00 035701 ER3 AC,35701 ;HIGH PRODUCT FAILED
12988 777777 377777 AR2=XX ;EXPECTED RESULT IN AC+1
12989 040774 312 11 0 00 044065 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
12990 040775 004 11 0 00 035702 ER4 AC+1,35702 ;LOW PRODUCT FAILED
12991 000001 AEE=1 ;INITIAL C(E)
12992 040776 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
12993 040777 005 06 0 00 035703 ER5 E,35703 ;C(E) WAS CLOBBERED
12994 041000 321 12 0 00 040766 JUMPL AC+2,F35700 ;LOOP ON ERROR SWITCH^
12995
12996 003571 ADR=ADR+1
12997 777776 777777 XX=XX+XX+1
12998 IFE <XX-1>,<XX=-2>
12999
13000 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13001 777777 777777 IFL XX,<V1=-1>
13002 IFG XX,<V1=0>
13003 MOP1 (\ADR,XX,0,1,V1,XX)^
13004 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13005 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13006 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13007 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13008
13009 777776 777777 F35710: AA1=XX ;INITIAL C(AC)
13010 041001 200 10 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13011 000000 AA2=0 ;INITIAL C(AC+1)
13012 041002 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13013 000001 AEE=1 ;INITIAL C(E)
13014 041003 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13015 041004 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13016 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13017 041005 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13018 041006 003 10 0 00 035711 ER3 AC,35711 ;HIGH PRODUCT FAILED
13019 777776 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13020 041007 312 11 0 00 044066 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13021 041010 004 11 0 00 035712 ER4 AC+1,35712 ;LOW PRODUCT FAILED
13022 000001 AEE=1 ;INITIAL C(E)
13023 041011 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0260
13024 041012 005 06 0 00 035713 ER5 E,35713 ;C(E) WAS CLOBBERED
13025 041013 321 12 0 00 041001 JUMPL AC+2,F35710 ;LOOP ON ERROR SWITCH^
13026
13027 003572 ADR=ADR+1
13028 777775 777777 XX=XX+XX+1
13029 IFE <XX-1>,<XX=-2>
13030
13031 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13032 777777 777777 IFL XX,<V1=-1>
13033 IFG XX,<V1=0>
13034 MOP1 (\ADR,XX,0,1,V1,XX)^
13035 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13036 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13037 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13038 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13039
13040 777775 777777 F35720: AA1=XX ;INITIAL C(AC)
13041 041014 200 10 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13042 000000 AA2=0 ;INITIAL C(AC+1)
13043 041015 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13044 000001 AEE=1 ;INITIAL C(E)
13045 041016 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13046 041017 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13047 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13048 041020 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13049 041021 003 10 0 00 035721 ER3 AC,35721 ;HIGH PRODUCT FAILED
13050 777775 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13051 041022 312 11 0 00 044067 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13052 041023 004 11 0 00 035722 ER4 AC+1,35722 ;LOW PRODUCT FAILED
13053 000001 AEE=1 ;INITIAL C(E)
13054 041024 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13055 041025 005 06 0 00 035723 ER5 E,35723 ;C(E) WAS CLOBBERED
13056 041026 321 12 0 00 041014 JUMPL AC+2,F35720 ;LOOP ON ERROR SWITCH^
13057
13058 003573 ADR=ADR+1
13059 777773 777777 XX=XX+XX+1
13060 IFE <XX-1>,<XX=-2>
13061
13062 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13063 777777 777777 IFL XX,<V1=-1>
13064 IFG XX,<V1=0>
13065 MOP1 (\ADR,XX,0,1,V1,XX)^
13066 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13067 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13068 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13069 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13070
13071 777773 777777 F35730: AA1=XX ;INITIAL C(AC)
13072 041027 200 10 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13073 000000 AA2=0 ;INITIAL C(AC+1)
13074 041030 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13075 000001 AEE=1 ;INITIAL C(E)
13076 041031 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13077 041032 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13078 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0261
13079 041033 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13080 041034 003 10 0 00 035731 ER3 AC,35731 ;HIGH PRODUCT FAILED
13081 777773 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13082 041035 312 11 0 00 044070 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13083 041036 004 11 0 00 035732 ER4 AC+1,35732 ;LOW PRODUCT FAILED
13084 000001 AEE=1 ;INITIAL C(E)
13085 041037 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13086 041040 005 06 0 00 035733 ER5 E,35733 ;C(E) WAS CLOBBERED
13087 041041 321 12 0 00 041027 JUMPL AC+2,F35730 ;LOOP ON ERROR SWITCH^
13088
13089 003574 ADR=ADR+1
13090 777767 777777 XX=XX+XX+1
13091 IFE <XX-1>,<XX=-2>
13092
13093 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13094 777777 777777 IFL XX,<V1=-1>
13095 IFG XX,<V1=0>
13096 MOP1 (\ADR,XX,0,1,V1,XX)^
13097 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13098 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13099 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13100 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13101
13102 777767 777777 F35740: AA1=XX ;INITIAL C(AC)
13103 041042 200 10 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13104 000000 AA2=0 ;INITIAL C(AC+1)
13105 041043 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13106 000001 AEE=1 ;INITIAL C(E)
13107 041044 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13108 041045 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13109 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13110 041046 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13111 041047 003 10 0 00 035741 ER3 AC,35741 ;HIGH PRODUCT FAILED
13112 777767 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13113 041050 312 11 0 00 044071 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13114 041051 004 11 0 00 035742 ER4 AC+1,35742 ;LOW PRODUCT FAILED
13115 000001 AEE=1 ;INITIAL C(E)
13116 041052 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13117 041053 005 06 0 00 035743 ER5 E,35743 ;C(E) WAS CLOBBERED
13118 041054 321 12 0 00 041042 JUMPL AC+2,F35740 ;LOOP ON ERROR SWITCH^
13119
13120 003575 ADR=ADR+1
13121 777757 777777 XX=XX+XX+1
13122 IFE <XX-1>,<XX=-2>
13123
13124 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13125 777777 777777 IFL XX,<V1=-1>
13126 IFG XX,<V1=0>
13127 MOP1 (\ADR,XX,0,1,V1,XX)^
13128 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13129 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13130 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13131 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13132
13133 777757 777777 F35750: AA1=XX ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0262
13134 041055 200 10 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13135 000000 AA2=0 ;INITIAL C(AC+1)
13136 041056 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13137 000001 AEE=1 ;INITIAL C(E)
13138 041057 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13139 041060 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13140 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13141 041061 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13142 041062 003 10 0 00 035751 ER3 AC,35751 ;HIGH PRODUCT FAILED
13143 777757 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13144 041063 312 11 0 00 044072 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13145 041064 004 11 0 00 035752 ER4 AC+1,35752 ;LOW PRODUCT FAILED
13146 000001 AEE=1 ;INITIAL C(E)
13147 041065 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13148 041066 005 06 0 00 035753 ER5 E,35753 ;C(E) WAS CLOBBERED
13149 041067 321 12 0 00 041055 JUMPL AC+2,F35750 ;LOOP ON ERROR SWITCH^
13150
13151 003576 ADR=ADR+1
13152 777737 777777 XX=XX+XX+1
13153 IFE <XX-1>,<XX=-2>
13154
13155 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13156 777777 777777 IFL XX,<V1=-1>
13157 IFG XX,<V1=0>
13158 MOP1 (\ADR,XX,0,1,V1,XX)^
13159 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13160 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13161 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13162 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13163
13164 777737 777777 F35760: AA1=XX ;INITIAL C(AC)
13165 041070 200 10 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13166 000000 AA2=0 ;INITIAL C(AC+1)
13167 041071 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13168 000001 AEE=1 ;INITIAL C(E)
13169 041072 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13170 041073 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13171 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13172 041074 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13173 041075 003 10 0 00 035761 ER3 AC,35761 ;HIGH PRODUCT FAILED
13174 777737 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13175 041076 312 11 0 00 044073 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13176 041077 004 11 0 00 035762 ER4 AC+1,35762 ;LOW PRODUCT FAILED
13177 000001 AEE=1 ;INITIAL C(E)
13178 041100 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13179 041101 005 06 0 00 035763 ER5 E,35763 ;C(E) WAS CLOBBERED
13180 041102 321 12 0 00 041070 JUMPL AC+2,F35760 ;LOOP ON ERROR SWITCH^
13181
13182 003577 ADR=ADR+1
13183 777677 777777 XX=XX+XX+1
13184 IFE <XX-1>,<XX=-2>
13185
13186 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13187 777777 777777 IFL XX,<V1=-1>
13188 IFG XX,<V1=0>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0263
13189 MOP1 (\ADR,XX,0,1,V1,XX)^
13190 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13191 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13192 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13193 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13194
13195 777677 777777 F35770: AA1=XX ;INITIAL C(AC)
13196 041103 200 10 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13197 000000 AA2=0 ;INITIAL C(AC+1)
13198 041104 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13199 000001 AEE=1 ;INITIAL C(E)
13200 041105 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13201 041106 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13202 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13203 041107 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13204 041110 003 10 0 00 035771 ER3 AC,35771 ;HIGH PRODUCT FAILED
13205 777677 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13206 041111 312 11 0 00 044074 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13207 041112 004 11 0 00 035772 ER4 AC+1,35772 ;LOW PRODUCT FAILED
13208 000001 AEE=1 ;INITIAL C(E)
13209 041113 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13210 041114 005 06 0 00 035773 ER5 E,35773 ;C(E) WAS CLOBBERED
13211 041115 321 12 0 00 041103 JUMPL AC+2,F35770 ;LOOP ON ERROR SWITCH^
13212
13213 003600 ADR=ADR+1
13214 777577 777777 XX=XX+XX+1
13215 IFE <XX-1>,<XX=-2>
13216
13217 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13218 777777 777777 IFL XX,<V1=-1>
13219 IFG XX,<V1=0>
13220 MOP1 (\ADR,XX,0,1,V1,XX)^
13221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13222 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13223 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13225
13226 777577 777777 F36000: AA1=XX ;INITIAL C(AC)
13227 041116 200 10 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13228 000000 AA2=0 ;INITIAL C(AC+1)
13229 041117 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13230 000001 AEE=1 ;INITIAL C(E)
13231 041120 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13232 041121 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13233 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13234 041122 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13235 041123 003 10 0 00 036001 ER3 AC,36001 ;HIGH PRODUCT FAILED
13236 777577 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13237 041124 312 11 0 00 044075 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13238 041125 004 11 0 00 036002 ER4 AC+1,36002 ;LOW PRODUCT FAILED
13239 000001 AEE=1 ;INITIAL C(E)
13240 041126 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13241 041127 005 06 0 00 036003 ER5 E,36003 ;C(E) WAS CLOBBERED
13242 041130 321 12 0 00 041116 JUMPL AC+2,F36000 ;LOOP ON ERROR SWITCH^
13243
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0264
13244 003601 ADR=ADR+1
13245 777377 777777 XX=XX+XX+1
13246 IFE <XX-1>,<XX=-2>
13247
13248 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13249 777777 777777 IFL XX,<V1=-1>
13250 IFG XX,<V1=0>
13251 MOP1 (\ADR,XX,0,1,V1,XX)^
13252 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13253 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13254 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13255 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13256
13257 777377 777777 F36010: AA1=XX ;INITIAL C(AC)
13258 041131 200 10 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13259 000000 AA2=0 ;INITIAL C(AC+1)
13260 041132 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13261 000001 AEE=1 ;INITIAL C(E)
13262 041133 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13263 041134 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13264 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13265 041135 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13266 041136 003 10 0 00 036011 ER3 AC,36011 ;HIGH PRODUCT FAILED
13267 777377 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13268 041137 312 11 0 00 044076 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13269 041140 004 11 0 00 036012 ER4 AC+1,36012 ;LOW PRODUCT FAILED
13270 000001 AEE=1 ;INITIAL C(E)
13271 041141 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13272 041142 005 06 0 00 036013 ER5 E,36013 ;C(E) WAS CLOBBERED
13273 041143 321 12 0 00 041131 JUMPL AC+2,F36010 ;LOOP ON ERROR SWITCH^
13274
13275 003602 ADR=ADR+1
13276 776777 777777 XX=XX+XX+1
13277 IFE <XX-1>,<XX=-2>
13278
13279 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13280 777777 777777 IFL XX,<V1=-1>
13281 IFG XX,<V1=0>
13282 MOP1 (\ADR,XX,0,1,V1,XX)^
13283 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13284 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13285 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13286 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13287
13288 776777 777777 F36020: AA1=XX ;INITIAL C(AC)
13289 041144 200 10 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13290 000000 AA2=0 ;INITIAL C(AC+1)
13291 041145 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13292 000001 AEE=1 ;INITIAL C(E)
13293 041146 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13294 041147 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13295 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13296 041150 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13297 041151 003 10 0 00 036021 ER3 AC,36021 ;HIGH PRODUCT FAILED
13298 776777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0265
13299 041152 312 11 0 00 044077 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13300 041153 004 11 0 00 036022 ER4 AC+1,36022 ;LOW PRODUCT FAILED
13301 000001 AEE=1 ;INITIAL C(E)
13302 041154 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13303 041155 005 06 0 00 036023 ER5 E,36023 ;C(E) WAS CLOBBERED
13304 041156 321 12 0 00 041144 JUMPL AC+2,F36020 ;LOOP ON ERROR SWITCH^
13305
13306 003603 ADR=ADR+1
13307 775777 777777 XX=XX+XX+1
13308 IFE <XX-1>,<XX=-2>
13309
13310 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13311 777777 777777 IFL XX,<V1=-1>
13312 IFG XX,<V1=0>
13313 MOP1 (\ADR,XX,0,1,V1,XX)^
13314 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13315 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13316 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13317 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13318
13319 775777 777777 F36030: AA1=XX ;INITIAL C(AC)
13320 041157 200 10 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13321 000000 AA2=0 ;INITIAL C(AC+1)
13322 041160 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13323 000001 AEE=1 ;INITIAL C(E)
13324 041161 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13325 041162 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13326 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13327 041163 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13328 041164 003 10 0 00 036031 ER3 AC,36031 ;HIGH PRODUCT FAILED
13329 775777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13330 041165 312 11 0 00 044100 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13331 041166 004 11 0 00 036032 ER4 AC+1,36032 ;LOW PRODUCT FAILED
13332 000001 AEE=1 ;INITIAL C(E)
13333 041167 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13334 041170 005 06 0 00 036033 ER5 E,36033 ;C(E) WAS CLOBBERED
13335 041171 321 12 0 00 041157 JUMPL AC+2,F36030 ;LOOP ON ERROR SWITCH^
13336
13337 003604 ADR=ADR+1
13338 773777 777777 XX=XX+XX+1
13339 IFE <XX-1>,<XX=-2>
13340
13341 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13342 777777 777777 IFL XX,<V1=-1>
13343 IFG XX,<V1=0>
13344 MOP1 (\ADR,XX,0,1,V1,XX)^
13345 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13346 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13347 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13348 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13349
13350 773777 777777 F36040: AA1=XX ;INITIAL C(AC)
13351 041172 200 10 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13352 000000 AA2=0 ;INITIAL C(AC+1)
13353 041173 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0266
13354 000001 AEE=1 ;INITIAL C(E)
13355 041174 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13356 041175 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13357 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13358 041176 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13359 041177 003 10 0 00 036041 ER3 AC,36041 ;HIGH PRODUCT FAILED
13360 773777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13361 041200 312 11 0 00 044101 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13362 041201 004 11 0 00 036042 ER4 AC+1,36042 ;LOW PRODUCT FAILED
13363 000001 AEE=1 ;INITIAL C(E)
13364 041202 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13365 041203 005 06 0 00 036043 ER5 E,36043 ;C(E) WAS CLOBBERED
13366 041204 321 12 0 00 041172 JUMPL AC+2,F36040 ;LOOP ON ERROR SWITCH^
13367
13368 003605 ADR=ADR+1
13369 767777 777777 XX=XX+XX+1
13370 IFE <XX-1>,<XX=-2>
13371
13372 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13373 777777 777777 IFL XX,<V1=-1>
13374 IFG XX,<V1=0>
13375 MOP1 (\ADR,XX,0,1,V1,XX)^
13376 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13377 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13378 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13379 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13380
13381 767777 777777 F36050: AA1=XX ;INITIAL C(AC)
13382 041205 200 10 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13383 000000 AA2=0 ;INITIAL C(AC+1)
13384 041206 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13385 000001 AEE=1 ;INITIAL C(E)
13386 041207 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13387 041210 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13388 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13389 041211 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13390 041212 003 10 0 00 036051 ER3 AC,36051 ;HIGH PRODUCT FAILED
13391 767777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13392 041213 312 11 0 00 044102 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13393 041214 004 11 0 00 036052 ER4 AC+1,36052 ;LOW PRODUCT FAILED
13394 000001 AEE=1 ;INITIAL C(E)
13395 041215 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13396 041216 005 06 0 00 036053 ER5 E,36053 ;C(E) WAS CLOBBERED
13397 041217 321 12 0 00 041205 JUMPL AC+2,F36050 ;LOOP ON ERROR SWITCH^
13398
13399 003606 ADR=ADR+1
13400 757777 777777 XX=XX+XX+1
13401 IFE <XX-1>,<XX=-2>
13402
13403 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13404 777777 777777 IFL XX,<V1=-1>
13405 IFG XX,<V1=0>
13406 MOP1 (\ADR,XX,0,1,V1,XX)^
13407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13408 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0267
13409 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13411
13412 757777 777777 F36060: AA1=XX ;INITIAL C(AC)
13413 041220 200 10 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13414 000000 AA2=0 ;INITIAL C(AC+1)
13415 041221 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13416 000001 AEE=1 ;INITIAL C(E)
13417 041222 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13418 041223 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13419 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13420 041224 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13421 041225 003 10 0 00 036061 ER3 AC,36061 ;HIGH PRODUCT FAILED
13422 757777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13423 041226 312 11 0 00 044103 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13424 041227 004 11 0 00 036062 ER4 AC+1,36062 ;LOW PRODUCT FAILED
13425 000001 AEE=1 ;INITIAL C(E)
13426 041230 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13427 041231 005 06 0 00 036063 ER5 E,36063 ;C(E) WAS CLOBBERED
13428 041232 321 12 0 00 041220 JUMPL AC+2,F36060 ;LOOP ON ERROR SWITCH^
13429
13430 003607 ADR=ADR+1
13431 737777 777777 XX=XX+XX+1
13432 IFE <XX-1>,<XX=-2>
13433
13434 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13435 777777 777777 IFL XX,<V1=-1>
13436 IFG XX,<V1=0>
13437 MOP1 (\ADR,XX,0,1,V1,XX)^
13438 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13439 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13440 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13441 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13442
13443 737777 777777 F36070: AA1=XX ;INITIAL C(AC)
13444 041233 200 10 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13445 000000 AA2=0 ;INITIAL C(AC+1)
13446 041234 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13447 000001 AEE=1 ;INITIAL C(E)
13448 041235 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13449 041236 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13450 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13451 041237 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13452 041240 003 10 0 00 036071 ER3 AC,36071 ;HIGH PRODUCT FAILED
13453 737777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13454 041241 312 11 0 00 044104 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13455 041242 004 11 0 00 036072 ER4 AC+1,36072 ;LOW PRODUCT FAILED
13456 000001 AEE=1 ;INITIAL C(E)
13457 041243 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13458 041244 005 06 0 00 036073 ER5 E,36073 ;C(E) WAS CLOBBERED
13459 041245 321 12 0 00 041233 JUMPL AC+2,F36070 ;LOOP ON ERROR SWITCH^
13460
13461 003610 ADR=ADR+1
13462 677777 777777 XX=XX+XX+1
13463 IFE <XX-1>,<XX=-2>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0268
13464
13465 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13466 777777 777777 IFL XX,<V1=-1>
13467 IFG XX,<V1=0>
13468 MOP1 (\ADR,XX,0,1,V1,XX)^
13469 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13470 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13471 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13472 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13473
13474 677777 777777 F36100: AA1=XX ;INITIAL C(AC)
13475 041246 200 10 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13476 000000 AA2=0 ;INITIAL C(AC+1)
13477 041247 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13478 000001 AEE=1 ;INITIAL C(E)
13479 041250 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13480 041251 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13481 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13482 041252 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13483 041253 003 10 0 00 036101 ER3 AC,36101 ;HIGH PRODUCT FAILED
13484 677777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13485 041254 312 11 0 00 044105 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13486 041255 004 11 0 00 036102 ER4 AC+1,36102 ;LOW PRODUCT FAILED
13487 000001 AEE=1 ;INITIAL C(E)
13488 041256 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13489 041257 005 06 0 00 036103 ER5 E,36103 ;C(E) WAS CLOBBERED
13490 041260 321 12 0 00 041246 JUMPL AC+2,F36100 ;LOOP ON ERROR SWITCH^
13491
13492 003611 ADR=ADR+1
13493 577777 777777 XX=XX+XX+1
13494 IFE <XX-1>,<XX=-2>
13495
13496 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13497 777777 777777 IFL XX,<V1=-1>
13498 IFG XX,<V1=0>
13499 MOP1 (\ADR,XX,0,1,V1,XX)^
13500 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13501 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13502 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13503 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13504
13505 577777 777777 F36110: AA1=XX ;INITIAL C(AC)
13506 041261 200 10 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13507 000000 AA2=0 ;INITIAL C(AC+1)
13508 041262 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13509 000001 AEE=1 ;INITIAL C(E)
13510 041263 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13511 041264 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13512 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
13513 041265 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13514 041266 003 10 0 00 036111 ER3 AC,36111 ;HIGH PRODUCT FAILED
13515 577777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13516 041267 312 11 0 00 044106 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13517 041270 004 11 0 00 036112 ER4 AC+1,36112 ;LOW PRODUCT FAILED
13518 000001 AEE=1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0269
13519 041271 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13520 041272 005 06 0 00 036113 ER5 E,36113 ;C(E) WAS CLOBBERED
13521 041273 321 12 0 00 041261 JUMPL AC+2,F36110 ;LOOP ON ERROR SWITCH^
13522
13523 003612 ADR=ADR+1
13524 377777 777777 XX=XX+XX+1
13525 IFE <XX-1>,<XX=-2>
13526
13527 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
13528 IFL XX,<V1=-1>
13529 000000 IFG XX,<V1=0>
13530 MOP1 (\ADR,XX,0,1,V1,XX)^
13531 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
13532 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13533 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
13534 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13535
13536 377777 777777 F36120: AA1=XX ;INITIAL C(AC)
13537 041274 200 10 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
13538 000000 AA2=0 ;INITIAL C(AC+1)
13539 041275 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
13540 000001 AEE=1 ;INITIAL C(E)
13541 041276 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND)
13542 041277 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13543 000000 AR1=V1 ;EXPECTED RESULT IN AC
13544 041300 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13545 041301 003 10 0 00 036121 ER3 AC,36121 ;HIGH PRODUCT FAILED
13546 377777 777777 AR2=XX ;EXPECTED RESULT IN AC+1
13547 041302 312 11 0 00 044107 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT?
13548 041303 004 11 0 00 036122 ER4 AC+1,36122 ;LOW PRODUCT FAILED
13549 000001 AEE=1 ;INITIAL C(E)
13550 041304 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED?
13551 041305 005 06 0 00 036123 ER5 E,36123 ;C(E) WAS CLOBBERED
13552 041306 321 12 0 00 041274 JUMPL AC+2,F36120 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0270
13553 000010 AC=10
13554 000006 E=<AC-2>&17
13555 SAVEAC (1,1)^
13556 041307 201 12 0 00 041307 MOVEI AC+2,. ;SAVE TEST PC
13557 041310 202 12 0 00 030051 MOVEM AC+2,TESTPC
13558 041311 201 12 0 00 000012 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
13559 041312 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
13560 000000 XX=0
13561
13562 REPEAT ^D36, <
13563 ADR=ADR+1
13564 XX=XX+XX+1
13565 IFE <XX-1>,<XX=-2>
13566
13567 ;MULTIPLY A RIPPLED 0 BY -1
13568 MX=-XX
13569 IFL XX,<V1=0>
13570 IFG XX,<V1=-1>
13571 MOP1 (\ADR,-1,-1,XX,V1,MX)>
13572
13573 003613 ADR=ADR+1
13574 000001 XX=XX+XX+1
13575 777777 777776 IFE <XX-1>,<XX=-2>
13576
13577 ;MULTIPLY A RIPPLED 0 BY -1
13578 000002 MX=-XX
13579 000000 IFL XX,<V1=0>
13580 IFG XX,<V1=-1>
13581 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13582 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13583 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13584 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13585 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13586
13587 777777 777777 F36130: AA1=-1 ;INITIAL C(AC)
13588 041313 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13589 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13590 041314 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13591 777777 777776 AEE=XX ;INITIAL C(E)
13592 041315 200 06 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13593 041316 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13594 000000 AR1=V1 ;EXPECTED RESULT IN AC
13595 041317 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13596 041320 003 10 0 00 036131 ER3 AC,36131 ;HIGH PRODUCT FAILED
13597 000002 AR2=MX ;EXPECTED RESULT IN AC+1
13598 041321 312 11 0 00 044001 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13599 041322 004 11 0 00 036132 ER4 AC+1,36132 ;LOW PRODUCT FAILED
13600 777777 777776 AEE=XX ;INITIAL C(E)
13601 041323 312 06 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED?
13602 041324 005 06 0 00 036133 ER5 E,36133 ;C(E) WAS CLOBBERED
13603 041325 321 12 0 00 041313 JUMPL AC+2,F36130 ;LOOP ON ERROR SWITCH^
13604
13605 003614 ADR=ADR+1
13606 777777 777775 XX=XX+XX+1
13607 IFE <XX-1>,<XX=-2>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0271
13608
13609 ;MULTIPLY A RIPPLED 0 BY -1
13610 000003 MX=-XX
13611 000000 IFL XX,<V1=0>
13612 IFG XX,<V1=-1>
13613 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13614 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13615 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13616 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13617 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13618
13619 777777 777777 F36140: AA1=-1 ;INITIAL C(AC)
13620 041326 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13621 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13622 041327 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13623 777777 777775 AEE=XX ;INITIAL C(E)
13624 041330 200 06 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13625 041331 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13626 000000 AR1=V1 ;EXPECTED RESULT IN AC
13627 041332 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13628 041333 003 10 0 00 036141 ER3 AC,36141 ;HIGH PRODUCT FAILED
13629 000003 AR2=MX ;EXPECTED RESULT IN AC+1
13630 041334 312 11 0 00 044110 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13631 041335 004 11 0 00 036142 ER4 AC+1,36142 ;LOW PRODUCT FAILED
13632 777777 777775 AEE=XX ;INITIAL C(E)
13633 041336 312 06 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED?
13634 041337 005 06 0 00 036143 ER5 E,36143 ;C(E) WAS CLOBBERED
13635 041340 321 12 0 00 041326 JUMPL AC+2,F36140 ;LOOP ON ERROR SWITCH^
13636
13637 003615 ADR=ADR+1
13638 777777 777773 XX=XX+XX+1
13639 IFE <XX-1>,<XX=-2>
13640
13641 ;MULTIPLY A RIPPLED 0 BY -1
13642 000005 MX=-XX
13643 000000 IFL XX,<V1=0>
13644 IFG XX,<V1=-1>
13645 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13646 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13647 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13648 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13649 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13650
13651 777777 777777 F36150: AA1=-1 ;INITIAL C(AC)
13652 041341 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13653 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13654 041342 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13655 777777 777773 AEE=XX ;INITIAL C(E)
13656 041343 200 06 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13657 041344 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13658 000000 AR1=V1 ;EXPECTED RESULT IN AC
13659 041345 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13660 041346 003 10 0 00 036151 ER3 AC,36151 ;HIGH PRODUCT FAILED
13661 000005 AR2=MX ;EXPECTED RESULT IN AC+1
13662 041347 312 11 0 00 044111 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0272
13663 041350 004 11 0 00 036152 ER4 AC+1,36152 ;LOW PRODUCT FAILED
13664 777777 777773 AEE=XX ;INITIAL C(E)
13665 041351 312 06 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED?
13666 041352 005 06 0 00 036153 ER5 E,36153 ;C(E) WAS CLOBBERED
13667 041353 321 12 0 00 041341 JUMPL AC+2,F36150 ;LOOP ON ERROR SWITCH^
13668
13669 003616 ADR=ADR+1
13670 777777 777767 XX=XX+XX+1
13671 IFE <XX-1>,<XX=-2>
13672
13673 ;MULTIPLY A RIPPLED 0 BY -1
13674 000011 MX=-XX
13675 000000 IFL XX,<V1=0>
13676 IFG XX,<V1=-1>
13677 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13678 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13679 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13680 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13681 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13682
13683 777777 777777 F36160: AA1=-1 ;INITIAL C(AC)
13684 041354 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13685 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13686 041355 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13687 777777 777767 AEE=XX ;INITIAL C(E)
13688 041356 200 06 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13689 041357 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13690 000000 AR1=V1 ;EXPECTED RESULT IN AC
13691 041360 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13692 041361 003 10 0 00 036161 ER3 AC,36161 ;HIGH PRODUCT FAILED
13693 000011 AR2=MX ;EXPECTED RESULT IN AC+1
13694 041362 312 11 0 00 044114 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13695 041363 004 11 0 00 036162 ER4 AC+1,36162 ;LOW PRODUCT FAILED
13696 777777 777767 AEE=XX ;INITIAL C(E)
13697 041364 312 06 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED?
13698 041365 005 06 0 00 036163 ER5 E,36163 ;C(E) WAS CLOBBERED
13699 041366 321 12 0 00 041354 JUMPL AC+2,F36160 ;LOOP ON ERROR SWITCH^
13700
13701 003617 ADR=ADR+1
13702 777777 777757 XX=XX+XX+1
13703 IFE <XX-1>,<XX=-2>
13704
13705 ;MULTIPLY A RIPPLED 0 BY -1
13706 000021 MX=-XX
13707 000000 IFL XX,<V1=0>
13708 IFG XX,<V1=-1>
13709 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13710 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13711 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13712 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13713 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13714
13715 777777 777777 F36170: AA1=-1 ;INITIAL C(AC)
13716 041367 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13717 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0273
13718 041370 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13719 777777 777757 AEE=XX ;INITIAL C(E)
13720 041371 200 06 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13721 041372 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13722 000000 AR1=V1 ;EXPECTED RESULT IN AC
13723 041373 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13724 041374 003 10 0 00 036171 ER3 AC,36171 ;HIGH PRODUCT FAILED
13725 000021 AR2=MX ;EXPECTED RESULT IN AC+1
13726 041375 312 11 0 00 044174 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13727 041376 004 11 0 00 036172 ER4 AC+1,36172 ;LOW PRODUCT FAILED
13728 777777 777757 AEE=XX ;INITIAL C(E)
13729 041377 312 06 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED?
13730 041400 005 06 0 00 036173 ER5 E,36173 ;C(E) WAS CLOBBERED
13731 041401 321 12 0 00 041367 JUMPL AC+2,F36170 ;LOOP ON ERROR SWITCH^
13732
13733 003620 ADR=ADR+1
13734 777777 777737 XX=XX+XX+1
13735 IFE <XX-1>,<XX=-2>
13736
13737 ;MULTIPLY A RIPPLED 0 BY -1
13738 000041 MX=-XX
13739 000000 IFL XX,<V1=0>
13740 IFG XX,<V1=-1>
13741 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13742 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13743 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13744 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13745 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13746
13747 777777 777777 F36200: AA1=-1 ;INITIAL C(AC)
13748 041402 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13749 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13750 041403 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13751 777777 777737 AEE=XX ;INITIAL C(E)
13752 041404 200 06 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13753 041405 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13754 000000 AR1=V1 ;EXPECTED RESULT IN AC
13755 041406 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13756 041407 003 10 0 00 036201 ER3 AC,36201 ;HIGH PRODUCT FAILED
13757 000041 AR2=MX ;EXPECTED RESULT IN AC+1
13758 041410 312 11 0 00 044175 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13759 041411 004 11 0 00 036202 ER4 AC+1,36202 ;LOW PRODUCT FAILED
13760 777777 777737 AEE=XX ;INITIAL C(E)
13761 041412 312 06 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED?
13762 041413 005 06 0 00 036203 ER5 E,36203 ;C(E) WAS CLOBBERED
13763 041414 321 12 0 00 041402 JUMPL AC+2,F36200 ;LOOP ON ERROR SWITCH^
13764
13765 003621 ADR=ADR+1
13766 777777 777677 XX=XX+XX+1
13767 IFE <XX-1>,<XX=-2>
13768
13769 ;MULTIPLY A RIPPLED 0 BY -1
13770 000101 MX=-XX
13771 000000 IFL XX,<V1=0>
13772 IFG XX,<V1=-1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0274
13773 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13774 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13775 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13776 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13777 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13778
13779 777777 777777 F36210: AA1=-1 ;INITIAL C(AC)
13780 041415 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13781 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13782 041416 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13783 777777 777677 AEE=XX ;INITIAL C(E)
13784 041417 200 06 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13785 041420 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13786 000000 AR1=V1 ;EXPECTED RESULT IN AC
13787 041421 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13788 041422 003 10 0 00 036211 ER3 AC,36211 ;HIGH PRODUCT FAILED
13789 000101 AR2=MX ;EXPECTED RESULT IN AC+1
13790 041423 312 11 0 00 044176 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13791 041424 004 11 0 00 036212 ER4 AC+1,36212 ;LOW PRODUCT FAILED
13792 777777 777677 AEE=XX ;INITIAL C(E)
13793 041425 312 06 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED?
13794 041426 005 06 0 00 036213 ER5 E,36213 ;C(E) WAS CLOBBERED
13795 041427 321 12 0 00 041415 JUMPL AC+2,F36210 ;LOOP ON ERROR SWITCH^
13796
13797 003622 ADR=ADR+1
13798 777777 777577 XX=XX+XX+1
13799 IFE <XX-1>,<XX=-2>
13800
13801 ;MULTIPLY A RIPPLED 0 BY -1
13802 000201 MX=-XX
13803 000000 IFL XX,<V1=0>
13804 IFG XX,<V1=-1>
13805 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13806 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13807 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13808 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13809 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13810
13811 777777 777777 F36220: AA1=-1 ;INITIAL C(AC)
13812 041430 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13813 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13814 041431 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13815 777777 777577 AEE=XX ;INITIAL C(E)
13816 041432 200 06 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13817 041433 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13818 000000 AR1=V1 ;EXPECTED RESULT IN AC
13819 041434 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13820 041435 003 10 0 00 036221 ER3 AC,36221 ;HIGH PRODUCT FAILED
13821 000201 AR2=MX ;EXPECTED RESULT IN AC+1
13822 041436 312 11 0 00 044177 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13823 041437 004 11 0 00 036222 ER4 AC+1,36222 ;LOW PRODUCT FAILED
13824 777777 777577 AEE=XX ;INITIAL C(E)
13825 041440 312 06 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED?
13826 041441 005 06 0 00 036223 ER5 E,36223 ;C(E) WAS CLOBBERED
13827 041442 321 12 0 00 041430 JUMPL AC+2,F36220 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0275
13828
13829 003623 ADR=ADR+1
13830 777777 777377 XX=XX+XX+1
13831 IFE <XX-1>,<XX=-2>
13832
13833 ;MULTIPLY A RIPPLED 0 BY -1
13834 000401 MX=-XX
13835 000000 IFL XX,<V1=0>
13836 IFG XX,<V1=-1>
13837 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13838 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13839 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13840 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13841 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13842
13843 777777 777777 F36230: AA1=-1 ;INITIAL C(AC)
13844 041443 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13845 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13846 041444 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13847 777777 777377 AEE=XX ;INITIAL C(E)
13848 041445 200 06 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13849 041446 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13850 000000 AR1=V1 ;EXPECTED RESULT IN AC
13851 041447 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13852 041450 003 10 0 00 036231 ER3 AC,36231 ;HIGH PRODUCT FAILED
13853 000401 AR2=MX ;EXPECTED RESULT IN AC+1
13854 041451 312 11 0 00 044200 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13855 041452 004 11 0 00 036232 ER4 AC+1,36232 ;LOW PRODUCT FAILED
13856 777777 777377 AEE=XX ;INITIAL C(E)
13857 041453 312 06 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED?
13858 041454 005 06 0 00 036233 ER5 E,36233 ;C(E) WAS CLOBBERED
13859 041455 321 12 0 00 041443 JUMPL AC+2,F36230 ;LOOP ON ERROR SWITCH^
13860
13861 003624 ADR=ADR+1
13862 777777 776777 XX=XX+XX+1
13863 IFE <XX-1>,<XX=-2>
13864
13865 ;MULTIPLY A RIPPLED 0 BY -1
13866 001001 MX=-XX
13867 000000 IFL XX,<V1=0>
13868 IFG XX,<V1=-1>
13869 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13870 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13871 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13872 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13873 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13874
13875 777777 777777 F36240: AA1=-1 ;INITIAL C(AC)
13876 041456 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13877 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13878 041457 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13879 777777 776777 AEE=XX ;INITIAL C(E)
13880 041460 200 06 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13881 041461 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13882 000000 AR1=V1 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0276
13883 041462 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13884 041463 003 10 0 00 036241 ER3 AC,36241 ;HIGH PRODUCT FAILED
13885 001001 AR2=MX ;EXPECTED RESULT IN AC+1
13886 041464 312 11 0 00 044201 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13887 041465 004 11 0 00 036242 ER4 AC+1,36242 ;LOW PRODUCT FAILED
13888 777777 776777 AEE=XX ;INITIAL C(E)
13889 041466 312 06 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED?
13890 041467 005 06 0 00 036243 ER5 E,36243 ;C(E) WAS CLOBBERED
13891 041470 321 12 0 00 041456 JUMPL AC+2,F36240 ;LOOP ON ERROR SWITCH^
13892
13893 003625 ADR=ADR+1
13894 777777 775777 XX=XX+XX+1
13895 IFE <XX-1>,<XX=-2>
13896
13897 ;MULTIPLY A RIPPLED 0 BY -1
13898 002001 MX=-XX
13899 000000 IFL XX,<V1=0>
13900 IFG XX,<V1=-1>
13901 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13902 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13903 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13904 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13905 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13906
13907 777777 777777 F36250: AA1=-1 ;INITIAL C(AC)
13908 041471 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13909 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13910 041472 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13911 777777 775777 AEE=XX ;INITIAL C(E)
13912 041473 200 06 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13913 041474 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13914 000000 AR1=V1 ;EXPECTED RESULT IN AC
13915 041475 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13916 041476 003 10 0 00 036251 ER3 AC,36251 ;HIGH PRODUCT FAILED
13917 002001 AR2=MX ;EXPECTED RESULT IN AC+1
13918 041477 312 11 0 00 044202 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13919 041500 004 11 0 00 036252 ER4 AC+1,36252 ;LOW PRODUCT FAILED
13920 777777 775777 AEE=XX ;INITIAL C(E)
13921 041501 312 06 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED?
13922 041502 005 06 0 00 036253 ER5 E,36253 ;C(E) WAS CLOBBERED
13923 041503 321 12 0 00 041471 JUMPL AC+2,F36250 ;LOOP ON ERROR SWITCH^
13924
13925 003626 ADR=ADR+1
13926 777777 773777 XX=XX+XX+1
13927 IFE <XX-1>,<XX=-2>
13928
13929 ;MULTIPLY A RIPPLED 0 BY -1
13930 004001 MX=-XX
13931 000000 IFL XX,<V1=0>
13932 IFG XX,<V1=-1>
13933 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13934 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13935 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13936 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13937 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0277
13938
13939 777777 777777 F36260: AA1=-1 ;INITIAL C(AC)
13940 041504 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13941 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13942 041505 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13943 777777 773777 AEE=XX ;INITIAL C(E)
13944 041506 200 06 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13945 041507 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13946 000000 AR1=V1 ;EXPECTED RESULT IN AC
13947 041510 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13948 041511 003 10 0 00 036261 ER3 AC,36261 ;HIGH PRODUCT FAILED
13949 004001 AR2=MX ;EXPECTED RESULT IN AC+1
13950 041512 312 11 0 00 044203 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13951 041513 004 11 0 00 036262 ER4 AC+1,36262 ;LOW PRODUCT FAILED
13952 777777 773777 AEE=XX ;INITIAL C(E)
13953 041514 312 06 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED?
13954 041515 005 06 0 00 036263 ER5 E,36263 ;C(E) WAS CLOBBERED
13955 041516 321 12 0 00 041504 JUMPL AC+2,F36260 ;LOOP ON ERROR SWITCH^
13956
13957 003627 ADR=ADR+1
13958 777777 767777 XX=XX+XX+1
13959 IFE <XX-1>,<XX=-2>
13960
13961 ;MULTIPLY A RIPPLED 0 BY -1
13962 010001 MX=-XX
13963 000000 IFL XX,<V1=0>
13964 IFG XX,<V1=-1>
13965 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13966 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13967 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
13968 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
13969 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
13970
13971 777777 777777 F36270: AA1=-1 ;INITIAL C(AC)
13972 041517 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
13973 777777 777777 AA2=-1 ;INITIAL C(AC+1)
13974 041520 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
13975 777777 767777 AEE=XX ;INITIAL C(E)
13976 041521 200 06 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
13977 041522 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
13978 000000 AR1=V1 ;EXPECTED RESULT IN AC
13979 041523 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
13980 041524 003 10 0 00 036271 ER3 AC,36271 ;HIGH PRODUCT FAILED
13981 010001 AR2=MX ;EXPECTED RESULT IN AC+1
13982 041525 312 11 0 00 044204 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
13983 041526 004 11 0 00 036272 ER4 AC+1,36272 ;LOW PRODUCT FAILED
13984 777777 767777 AEE=XX ;INITIAL C(E)
13985 041527 312 06 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED?
13986 041530 005 06 0 00 036273 ER5 E,36273 ;C(E) WAS CLOBBERED
13987 041531 321 12 0 00 041517 JUMPL AC+2,F36270 ;LOOP ON ERROR SWITCH^
13988
13989 003630 ADR=ADR+1
13990 777777 757777 XX=XX+XX+1
13991 IFE <XX-1>,<XX=-2>
13992
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0278
13993 ;MULTIPLY A RIPPLED 0 BY -1
13994 020001 MX=-XX
13995 000000 IFL XX,<V1=0>
13996 IFG XX,<V1=-1>
13997 MOP1 (\ADR,-1,-1,XX,V1,MX)^
13998 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
13999 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14000 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14001 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14002
14003 777777 777777 F36300: AA1=-1 ;INITIAL C(AC)
14004 041532 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14005 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14006 041533 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14007 777777 757777 AEE=XX ;INITIAL C(E)
14008 041534 200 06 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14009 041535 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14010 000000 AR1=V1 ;EXPECTED RESULT IN AC
14011 041536 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14012 041537 003 10 0 00 036301 ER3 AC,36301 ;HIGH PRODUCT FAILED
14013 020001 AR2=MX ;EXPECTED RESULT IN AC+1
14014 041540 312 11 0 00 044205 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14015 041541 004 11 0 00 036302 ER4 AC+1,36302 ;LOW PRODUCT FAILED
14016 777777 757777 AEE=XX ;INITIAL C(E)
14017 041542 312 06 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED?
14018 041543 005 06 0 00 036303 ER5 E,36303 ;C(E) WAS CLOBBERED
14019 041544 321 12 0 00 041532 JUMPL AC+2,F36300 ;LOOP ON ERROR SWITCH^
14020
14021 003631 ADR=ADR+1
14022 777777 737777 XX=XX+XX+1
14023 IFE <XX-1>,<XX=-2>
14024
14025 ;MULTIPLY A RIPPLED 0 BY -1
14026 040001 MX=-XX
14027 000000 IFL XX,<V1=0>
14028 IFG XX,<V1=-1>
14029 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14031 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14032 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14034
14035 777777 777777 F36310: AA1=-1 ;INITIAL C(AC)
14036 041545 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14037 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14038 041546 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14039 777777 737777 AEE=XX ;INITIAL C(E)
14040 041547 200 06 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14041 041550 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14042 000000 AR1=V1 ;EXPECTED RESULT IN AC
14043 041551 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14044 041552 003 10 0 00 036311 ER3 AC,36311 ;HIGH PRODUCT FAILED
14045 040001 AR2=MX ;EXPECTED RESULT IN AC+1
14046 041553 312 11 0 00 044206 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14047 041554 004 11 0 00 036312 ER4 AC+1,36312 ;LOW PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0279
14048 777777 737777 AEE=XX ;INITIAL C(E)
14049 041555 312 06 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED?
14050 041556 005 06 0 00 036313 ER5 E,36313 ;C(E) WAS CLOBBERED
14051 041557 321 12 0 00 041545 JUMPL AC+2,F36310 ;LOOP ON ERROR SWITCH^
14052
14053 003632 ADR=ADR+1
14054 777777 677777 XX=XX+XX+1
14055 IFE <XX-1>,<XX=-2>
14056
14057 ;MULTIPLY A RIPPLED 0 BY -1
14058 100001 MX=-XX
14059 000000 IFL XX,<V1=0>
14060 IFG XX,<V1=-1>
14061 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14062 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14063 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14064 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14065 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14066
14067 777777 777777 F36320: AA1=-1 ;INITIAL C(AC)
14068 041560 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14069 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14070 041561 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14071 777777 677777 AEE=XX ;INITIAL C(E)
14072 041562 200 06 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14073 041563 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14074 000000 AR1=V1 ;EXPECTED RESULT IN AC
14075 041564 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14076 041565 003 10 0 00 036321 ER3 AC,36321 ;HIGH PRODUCT FAILED
14077 100001 AR2=MX ;EXPECTED RESULT IN AC+1
14078 041566 312 11 0 00 044207 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14079 041567 004 11 0 00 036322 ER4 AC+1,36322 ;LOW PRODUCT FAILED
14080 777777 677777 AEE=XX ;INITIAL C(E)
14081 041570 312 06 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED?
14082 041571 005 06 0 00 036323 ER5 E,36323 ;C(E) WAS CLOBBERED
14083 041572 321 12 0 00 041560 JUMPL AC+2,F36320 ;LOOP ON ERROR SWITCH^
14084
14085 003633 ADR=ADR+1
14086 777777 577777 XX=XX+XX+1
14087 IFE <XX-1>,<XX=-2>
14088
14089 ;MULTIPLY A RIPPLED 0 BY -1
14090 200001 MX=-XX
14091 000000 IFL XX,<V1=0>
14092 IFG XX,<V1=-1>
14093 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14094 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14095 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14096 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14097 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14098
14099 777777 777777 F36330: AA1=-1 ;INITIAL C(AC)
14100 041573 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14101 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14102 041574 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0280
14103 777777 577777 AEE=XX ;INITIAL C(E)
14104 041575 200 06 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14105 041576 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14106 000000 AR1=V1 ;EXPECTED RESULT IN AC
14107 041577 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14108 041600 003 10 0 00 036331 ER3 AC,36331 ;HIGH PRODUCT FAILED
14109 200001 AR2=MX ;EXPECTED RESULT IN AC+1
14110 041601 312 11 0 00 044210 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14111 041602 004 11 0 00 036332 ER4 AC+1,36332 ;LOW PRODUCT FAILED
14112 777777 577777 AEE=XX ;INITIAL C(E)
14113 041603 312 06 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED?
14114 041604 005 06 0 00 036333 ER5 E,36333 ;C(E) WAS CLOBBERED
14115 041605 321 12 0 00 041573 JUMPL AC+2,F36330 ;LOOP ON ERROR SWITCH^
14116
14117 003634 ADR=ADR+1
14118 777777 377777 XX=XX+XX+1
14119 IFE <XX-1>,<XX=-2>
14120
14121 ;MULTIPLY A RIPPLED 0 BY -1
14122 400001 MX=-XX
14123 000000 IFL XX,<V1=0>
14124 IFG XX,<V1=-1>
14125 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14126 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14127 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14128 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14129 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14130
14131 777777 777777 F36340: AA1=-1 ;INITIAL C(AC)
14132 041606 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14133 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14134 041607 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14135 777777 377777 AEE=XX ;INITIAL C(E)
14136 041610 200 06 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14137 041611 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14138 000000 AR1=V1 ;EXPECTED RESULT IN AC
14139 041612 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14140 041613 003 10 0 00 036341 ER3 AC,36341 ;HIGH PRODUCT FAILED
14141 400001 AR2=MX ;EXPECTED RESULT IN AC+1
14142 041614 312 11 0 00 044211 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14143 041615 004 11 0 00 036342 ER4 AC+1,36342 ;LOW PRODUCT FAILED
14144 777777 377777 AEE=XX ;INITIAL C(E)
14145 041616 312 06 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED?
14146 041617 005 06 0 00 036343 ER5 E,36343 ;C(E) WAS CLOBBERED
14147 041620 321 12 0 00 041606 JUMPL AC+2,F36340 ;LOOP ON ERROR SWITCH^
14148
14149 003635 ADR=ADR+1
14150 777776 777777 XX=XX+XX+1
14151 IFE <XX-1>,<XX=-2>
14152
14153 ;MULTIPLY A RIPPLED 0 BY -1
14154 000001 000001 MX=-XX
14155 000000 IFL XX,<V1=0>
14156 IFG XX,<V1=-1>
14157 MOP1 (\ADR,-1,-1,XX,V1,MX)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0281
14158 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14159 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14160 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14161 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14162
14163 777777 777777 F36350: AA1=-1 ;INITIAL C(AC)
14164 041621 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14165 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14166 041622 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14167 777776 777777 AEE=XX ;INITIAL C(E)
14168 041623 200 06 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14169 041624 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14170 000000 AR1=V1 ;EXPECTED RESULT IN AC
14171 041625 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14172 041626 003 10 0 00 036351 ER3 AC,36351 ;HIGH PRODUCT FAILED
14173 000001 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14174 041627 312 11 0 00 044212 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14175 041630 004 11 0 00 036352 ER4 AC+1,36352 ;LOW PRODUCT FAILED
14176 777776 777777 AEE=XX ;INITIAL C(E)
14177 041631 312 06 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED?
14178 041632 005 06 0 00 036353 ER5 E,36353 ;C(E) WAS CLOBBERED
14179 041633 321 12 0 00 041621 JUMPL AC+2,F36350 ;LOOP ON ERROR SWITCH^
14180
14181 003636 ADR=ADR+1
14182 777775 777777 XX=XX+XX+1
14183 IFE <XX-1>,<XX=-2>
14184
14185 ;MULTIPLY A RIPPLED 0 BY -1
14186 000002 000001 MX=-XX
14187 000000 IFL XX,<V1=0>
14188 IFG XX,<V1=-1>
14189 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14190 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14191 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14192 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14193 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14194
14195 777777 777777 F36360: AA1=-1 ;INITIAL C(AC)
14196 041634 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14197 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14198 041635 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14199 777775 777777 AEE=XX ;INITIAL C(E)
14200 041636 200 06 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14201 041637 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14202 000000 AR1=V1 ;EXPECTED RESULT IN AC
14203 041640 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14204 041641 003 10 0 00 036361 ER3 AC,36361 ;HIGH PRODUCT FAILED
14205 000002 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14206 041642 312 11 0 00 044213 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14207 041643 004 11 0 00 036362 ER4 AC+1,36362 ;LOW PRODUCT FAILED
14208 777775 777777 AEE=XX ;INITIAL C(E)
14209 041644 312 06 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED?
14210 041645 005 06 0 00 036363 ER5 E,36363 ;C(E) WAS CLOBBERED
14211 041646 321 12 0 00 041634 JUMPL AC+2,F36360 ;LOOP ON ERROR SWITCH^
14212
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0282
14213 003637 ADR=ADR+1
14214 777773 777777 XX=XX+XX+1
14215 IFE <XX-1>,<XX=-2>
14216
14217 ;MULTIPLY A RIPPLED 0 BY -1
14218 000004 000001 MX=-XX
14219 000000 IFL XX,<V1=0>
14220 IFG XX,<V1=-1>
14221 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14222 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14223 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14224 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14225 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14226
14227 777777 777777 F36370: AA1=-1 ;INITIAL C(AC)
14228 041647 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14229 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14230 041650 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14231 777773 777777 AEE=XX ;INITIAL C(E)
14232 041651 200 06 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14233 041652 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14234 000000 AR1=V1 ;EXPECTED RESULT IN AC
14235 041653 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14236 041654 003 10 0 00 036371 ER3 AC,36371 ;HIGH PRODUCT FAILED
14237 000004 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14238 041655 312 11 0 00 044214 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14239 041656 004 11 0 00 036372 ER4 AC+1,36372 ;LOW PRODUCT FAILED
14240 777773 777777 AEE=XX ;INITIAL C(E)
14241 041657 312 06 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED?
14242 041660 005 06 0 00 036373 ER5 E,36373 ;C(E) WAS CLOBBERED
14243 041661 321 12 0 00 041647 JUMPL AC+2,F36370 ;LOOP ON ERROR SWITCH^
14244
14245 003640 ADR=ADR+1
14246 777767 777777 XX=XX+XX+1
14247 IFE <XX-1>,<XX=-2>
14248
14249 ;MULTIPLY A RIPPLED 0 BY -1
14250 000010 000001 MX=-XX
14251 000000 IFL XX,<V1=0>
14252 IFG XX,<V1=-1>
14253 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14254 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14255 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14256 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14257 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14258
14259 777777 777777 F36400: AA1=-1 ;INITIAL C(AC)
14260 041662 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14261 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14262 041663 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14263 777767 777777 AEE=XX ;INITIAL C(E)
14264 041664 200 06 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14265 041665 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14266 000000 AR1=V1 ;EXPECTED RESULT IN AC
14267 041666 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0283
14268 041667 003 10 0 00 036401 ER3 AC,36401 ;HIGH PRODUCT FAILED
14269 000010 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14270 041670 312 11 0 00 044215 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14271 041671 004 11 0 00 036402 ER4 AC+1,36402 ;LOW PRODUCT FAILED
14272 777767 777777 AEE=XX ;INITIAL C(E)
14273 041672 312 06 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED?
14274 041673 005 06 0 00 036403 ER5 E,36403 ;C(E) WAS CLOBBERED
14275 041674 321 12 0 00 041662 JUMPL AC+2,F36400 ;LOOP ON ERROR SWITCH^
14276
14277 003641 ADR=ADR+1
14278 777757 777777 XX=XX+XX+1
14279 IFE <XX-1>,<XX=-2>
14280
14281 ;MULTIPLY A RIPPLED 0 BY -1
14282 000020 000001 MX=-XX
14283 000000 IFL XX,<V1=0>
14284 IFG XX,<V1=-1>
14285 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14286 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14287 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14288 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14289 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14290
14291 777777 777777 F36410: AA1=-1 ;INITIAL C(AC)
14292 041675 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14293 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14294 041676 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14295 777757 777777 AEE=XX ;INITIAL C(E)
14296 041677 200 06 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14297 041700 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14298 000000 AR1=V1 ;EXPECTED RESULT IN AC
14299 041701 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14300 041702 003 10 0 00 036411 ER3 AC,36411 ;HIGH PRODUCT FAILED
14301 000020 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14302 041703 312 11 0 00 044216 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14303 041704 004 11 0 00 036412 ER4 AC+1,36412 ;LOW PRODUCT FAILED
14304 777757 777777 AEE=XX ;INITIAL C(E)
14305 041705 312 06 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED?
14306 041706 005 06 0 00 036413 ER5 E,36413 ;C(E) WAS CLOBBERED
14307 041707 321 12 0 00 041675 JUMPL AC+2,F36410 ;LOOP ON ERROR SWITCH^
14308
14309 003642 ADR=ADR+1
14310 777737 777777 XX=XX+XX+1
14311 IFE <XX-1>,<XX=-2>
14312
14313 ;MULTIPLY A RIPPLED 0 BY -1
14314 000040 000001 MX=-XX
14315 000000 IFL XX,<V1=0>
14316 IFG XX,<V1=-1>
14317 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14318 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14319 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14320 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14321 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14322
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0284
14323 777777 777777 F36420: AA1=-1 ;INITIAL C(AC)
14324 041710 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14325 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14326 041711 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14327 777737 777777 AEE=XX ;INITIAL C(E)
14328 041712 200 06 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14329 041713 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14330 000000 AR1=V1 ;EXPECTED RESULT IN AC
14331 041714 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14332 041715 003 10 0 00 036421 ER3 AC,36421 ;HIGH PRODUCT FAILED
14333 000040 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14334 041716 312 11 0 00 044217 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14335 041717 004 11 0 00 036422 ER4 AC+1,36422 ;LOW PRODUCT FAILED
14336 777737 777777 AEE=XX ;INITIAL C(E)
14337 041720 312 06 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED?
14338 041721 005 06 0 00 036423 ER5 E,36423 ;C(E) WAS CLOBBERED
14339 041722 321 12 0 00 041710 JUMPL AC+2,F36420 ;LOOP ON ERROR SWITCH^
14340
14341 003643 ADR=ADR+1
14342 777677 777777 XX=XX+XX+1
14343 IFE <XX-1>,<XX=-2>
14344
14345 ;MULTIPLY A RIPPLED 0 BY -1
14346 000100 000001 MX=-XX
14347 000000 IFL XX,<V1=0>
14348 IFG XX,<V1=-1>
14349 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14350 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14351 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14352 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14353 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14354
14355 777777 777777 F36430: AA1=-1 ;INITIAL C(AC)
14356 041723 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14357 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14358 041724 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14359 777677 777777 AEE=XX ;INITIAL C(E)
14360 041725 200 06 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14361 041726 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14362 000000 AR1=V1 ;EXPECTED RESULT IN AC
14363 041727 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14364 041730 003 10 0 00 036431 ER3 AC,36431 ;HIGH PRODUCT FAILED
14365 000100 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14366 041731 312 11 0 00 044220 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14367 041732 004 11 0 00 036432 ER4 AC+1,36432 ;LOW PRODUCT FAILED
14368 777677 777777 AEE=XX ;INITIAL C(E)
14369 041733 312 06 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED?
14370 041734 005 06 0 00 036433 ER5 E,36433 ;C(E) WAS CLOBBERED
14371 041735 321 12 0 00 041723 JUMPL AC+2,F36430 ;LOOP ON ERROR SWITCH^
14372
14373 003644 ADR=ADR+1
14374 777577 777777 XX=XX+XX+1
14375 IFE <XX-1>,<XX=-2>
14376
14377 ;MULTIPLY A RIPPLED 0 BY -1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0285
14378 000200 000001 MX=-XX
14379 000000 IFL XX,<V1=0>
14380 IFG XX,<V1=-1>
14381 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14382 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14383 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14384 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14385 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14386
14387 777777 777777 F36440: AA1=-1 ;INITIAL C(AC)
14388 041736 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14389 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14390 041737 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14391 777577 777777 AEE=XX ;INITIAL C(E)
14392 041740 200 06 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14393 041741 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14394 000000 AR1=V1 ;EXPECTED RESULT IN AC
14395 041742 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14396 041743 003 10 0 00 036441 ER3 AC,36441 ;HIGH PRODUCT FAILED
14397 000200 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14398 041744 312 11 0 00 044221 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14399 041745 004 11 0 00 036442 ER4 AC+1,36442 ;LOW PRODUCT FAILED
14400 777577 777777 AEE=XX ;INITIAL C(E)
14401 041746 312 06 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED?
14402 041747 005 06 0 00 036443 ER5 E,36443 ;C(E) WAS CLOBBERED
14403 041750 321 12 0 00 041736 JUMPL AC+2,F36440 ;LOOP ON ERROR SWITCH^
14404
14405 003645 ADR=ADR+1
14406 777377 777777 XX=XX+XX+1
14407 IFE <XX-1>,<XX=-2>
14408
14409 ;MULTIPLY A RIPPLED 0 BY -1
14410 000400 000001 MX=-XX
14411 000000 IFL XX,<V1=0>
14412 IFG XX,<V1=-1>
14413 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14414 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14415 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14416 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14417 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14418
14419 777777 777777 F36450: AA1=-1 ;INITIAL C(AC)
14420 041751 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14421 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14422 041752 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14423 777377 777777 AEE=XX ;INITIAL C(E)
14424 041753 200 06 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14425 041754 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14426 000000 AR1=V1 ;EXPECTED RESULT IN AC
14427 041755 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14428 041756 003 10 0 00 036451 ER3 AC,36451 ;HIGH PRODUCT FAILED
14429 000400 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14430 041757 312 11 0 00 044222 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14431 041760 004 11 0 00 036452 ER4 AC+1,36452 ;LOW PRODUCT FAILED
14432 777377 777777 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0286
14433 041761 312 06 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED?
14434 041762 005 06 0 00 036453 ER5 E,36453 ;C(E) WAS CLOBBERED
14435 041763 321 12 0 00 041751 JUMPL AC+2,F36450 ;LOOP ON ERROR SWITCH^
14436
14437 003646 ADR=ADR+1
14438 776777 777777 XX=XX+XX+1
14439 IFE <XX-1>,<XX=-2>
14440
14441 ;MULTIPLY A RIPPLED 0 BY -1
14442 001000 000001 MX=-XX
14443 000000 IFL XX,<V1=0>
14444 IFG XX,<V1=-1>
14445 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14446 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14447 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14448 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14449 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14450
14451 777777 777777 F36460: AA1=-1 ;INITIAL C(AC)
14452 041764 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14453 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14454 041765 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14455 776777 777777 AEE=XX ;INITIAL C(E)
14456 041766 200 06 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14457 041767 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14458 000000 AR1=V1 ;EXPECTED RESULT IN AC
14459 041770 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14460 041771 003 10 0 00 036461 ER3 AC,36461 ;HIGH PRODUCT FAILED
14461 001000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14462 041772 312 11 0 00 044223 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14463 041773 004 11 0 00 036462 ER4 AC+1,36462 ;LOW PRODUCT FAILED
14464 776777 777777 AEE=XX ;INITIAL C(E)
14465 041774 312 06 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED?
14466 041775 005 06 0 00 036463 ER5 E,36463 ;C(E) WAS CLOBBERED
14467 041776 321 12 0 00 041764 JUMPL AC+2,F36460 ;LOOP ON ERROR SWITCH^
14468
14469 003647 ADR=ADR+1
14470 775777 777777 XX=XX+XX+1
14471 IFE <XX-1>,<XX=-2>
14472
14473 ;MULTIPLY A RIPPLED 0 BY -1
14474 002000 000001 MX=-XX
14475 000000 IFL XX,<V1=0>
14476 IFG XX,<V1=-1>
14477 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14478 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14479 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14480 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14481 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14482
14483 777777 777777 F36470: AA1=-1 ;INITIAL C(AC)
14484 041777 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14485 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14486 042000 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14487 775777 777777 AEE=XX ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0287
14488 042001 200 06 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14489 042002 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14490 000000 AR1=V1 ;EXPECTED RESULT IN AC
14491 042003 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14492 042004 003 10 0 00 036471 ER3 AC,36471 ;HIGH PRODUCT FAILED
14493 002000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14494 042005 312 11 0 00 044224 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14495 042006 004 11 0 00 036472 ER4 AC+1,36472 ;LOW PRODUCT FAILED
14496 775777 777777 AEE=XX ;INITIAL C(E)
14497 042007 312 06 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED?
14498 042010 005 06 0 00 036473 ER5 E,36473 ;C(E) WAS CLOBBERED
14499 042011 321 12 0 00 041777 JUMPL AC+2,F36470 ;LOOP ON ERROR SWITCH^
14500
14501 003650 ADR=ADR+1
14502 773777 777777 XX=XX+XX+1
14503 IFE <XX-1>,<XX=-2>
14504
14505 ;MULTIPLY A RIPPLED 0 BY -1
14506 004000 000001 MX=-XX
14507 000000 IFL XX,<V1=0>
14508 IFG XX,<V1=-1>
14509 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14510 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14511 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14512 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14513 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14514
14515 777777 777777 F36500: AA1=-1 ;INITIAL C(AC)
14516 042012 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14517 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14518 042013 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14519 773777 777777 AEE=XX ;INITIAL C(E)
14520 042014 200 06 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14521 042015 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14522 000000 AR1=V1 ;EXPECTED RESULT IN AC
14523 042016 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14524 042017 003 10 0 00 036501 ER3 AC,36501 ;HIGH PRODUCT FAILED
14525 004000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14526 042020 312 11 0 00 044225 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14527 042021 004 11 0 00 036502 ER4 AC+1,36502 ;LOW PRODUCT FAILED
14528 773777 777777 AEE=XX ;INITIAL C(E)
14529 042022 312 06 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED?
14530 042023 005 06 0 00 036503 ER5 E,36503 ;C(E) WAS CLOBBERED
14531 042024 321 12 0 00 042012 JUMPL AC+2,F36500 ;LOOP ON ERROR SWITCH^
14532
14533 003651 ADR=ADR+1
14534 767777 777777 XX=XX+XX+1
14535 IFE <XX-1>,<XX=-2>
14536
14537 ;MULTIPLY A RIPPLED 0 BY -1
14538 010000 000001 MX=-XX
14539 000000 IFL XX,<V1=0>
14540 IFG XX,<V1=-1>
14541 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14542 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0288
14543 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14544 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14545 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14546
14547 777777 777777 F36510: AA1=-1 ;INITIAL C(AC)
14548 042025 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14549 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14550 042026 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14551 767777 777777 AEE=XX ;INITIAL C(E)
14552 042027 200 06 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14553 042030 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14554 000000 AR1=V1 ;EXPECTED RESULT IN AC
14555 042031 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14556 042032 003 10 0 00 036511 ER3 AC,36511 ;HIGH PRODUCT FAILED
14557 010000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14558 042033 312 11 0 00 044226 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14559 042034 004 11 0 00 036512 ER4 AC+1,36512 ;LOW PRODUCT FAILED
14560 767777 777777 AEE=XX ;INITIAL C(E)
14561 042035 312 06 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED?
14562 042036 005 06 0 00 036513 ER5 E,36513 ;C(E) WAS CLOBBERED
14563 042037 321 12 0 00 042025 JUMPL AC+2,F36510 ;LOOP ON ERROR SWITCH^
14564
14565 003652 ADR=ADR+1
14566 757777 777777 XX=XX+XX+1
14567 IFE <XX-1>,<XX=-2>
14568
14569 ;MULTIPLY A RIPPLED 0 BY -1
14570 020000 000001 MX=-XX
14571 000000 IFL XX,<V1=0>
14572 IFG XX,<V1=-1>
14573 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14574 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14575 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14576 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14577 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14578
14579 777777 777777 F36520: AA1=-1 ;INITIAL C(AC)
14580 042040 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14581 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14582 042041 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14583 757777 777777 AEE=XX ;INITIAL C(E)
14584 042042 200 06 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14585 042043 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14586 000000 AR1=V1 ;EXPECTED RESULT IN AC
14587 042044 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14588 042045 003 10 0 00 036521 ER3 AC,36521 ;HIGH PRODUCT FAILED
14589 020000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14590 042046 312 11 0 00 044227 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14591 042047 004 11 0 00 036522 ER4 AC+1,36522 ;LOW PRODUCT FAILED
14592 757777 777777 AEE=XX ;INITIAL C(E)
14593 042050 312 06 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED?
14594 042051 005 06 0 00 036523 ER5 E,36523 ;C(E) WAS CLOBBERED
14595 042052 321 12 0 00 042040 JUMPL AC+2,F36520 ;LOOP ON ERROR SWITCH^
14596
14597 003653 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0289
14598 737777 777777 XX=XX+XX+1
14599 IFE <XX-1>,<XX=-2>
14600
14601 ;MULTIPLY A RIPPLED 0 BY -1
14602 040000 000001 MX=-XX
14603 000000 IFL XX,<V1=0>
14604 IFG XX,<V1=-1>
14605 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14606 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14607 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14608 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14609 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14610
14611 777777 777777 F36530: AA1=-1 ;INITIAL C(AC)
14612 042053 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14613 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14614 042054 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14615 737777 777777 AEE=XX ;INITIAL C(E)
14616 042055 200 06 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14617 042056 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14618 000000 AR1=V1 ;EXPECTED RESULT IN AC
14619 042057 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14620 042060 003 10 0 00 036531 ER3 AC,36531 ;HIGH PRODUCT FAILED
14621 040000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14622 042061 312 11 0 00 044230 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14623 042062 004 11 0 00 036532 ER4 AC+1,36532 ;LOW PRODUCT FAILED
14624 737777 777777 AEE=XX ;INITIAL C(E)
14625 042063 312 06 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED?
14626 042064 005 06 0 00 036533 ER5 E,36533 ;C(E) WAS CLOBBERED
14627 042065 321 12 0 00 042053 JUMPL AC+2,F36530 ;LOOP ON ERROR SWITCH^
14628
14629 003654 ADR=ADR+1
14630 677777 777777 XX=XX+XX+1
14631 IFE <XX-1>,<XX=-2>
14632
14633 ;MULTIPLY A RIPPLED 0 BY -1
14634 100000 000001 MX=-XX
14635 000000 IFL XX,<V1=0>
14636 IFG XX,<V1=-1>
14637 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14638 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14639 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14640 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14641 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14642
14643 777777 777777 F36540: AA1=-1 ;INITIAL C(AC)
14644 042066 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14645 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14646 042067 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14647 677777 777777 AEE=XX ;INITIAL C(E)
14648 042070 200 06 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14649 042071 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14650 000000 AR1=V1 ;EXPECTED RESULT IN AC
14651 042072 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14652 042073 003 10 0 00 036541 ER3 AC,36541 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0290
14653 100000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14654 042074 312 11 0 00 044231 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14655 042075 004 11 0 00 036542 ER4 AC+1,36542 ;LOW PRODUCT FAILED
14656 677777 777777 AEE=XX ;INITIAL C(E)
14657 042076 312 06 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED?
14658 042077 005 06 0 00 036543 ER5 E,36543 ;C(E) WAS CLOBBERED
14659 042100 321 12 0 00 042066 JUMPL AC+2,F36540 ;LOOP ON ERROR SWITCH^
14660
14661 003655 ADR=ADR+1
14662 577777 777777 XX=XX+XX+1
14663 IFE <XX-1>,<XX=-2>
14664
14665 ;MULTIPLY A RIPPLED 0 BY -1
14666 200000 000001 MX=-XX
14667 000000 IFL XX,<V1=0>
14668 IFG XX,<V1=-1>
14669 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14670 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14671 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14672 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14673 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14674
14675 777777 777777 F36550: AA1=-1 ;INITIAL C(AC)
14676 042101 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14677 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14678 042102 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14679 577777 777777 AEE=XX ;INITIAL C(E)
14680 042103 200 06 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14681 042104 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14682 000000 AR1=V1 ;EXPECTED RESULT IN AC
14683 042105 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14684 042106 003 10 0 00 036551 ER3 AC,36551 ;HIGH PRODUCT FAILED
14685 200000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14686 042107 312 11 0 00 044232 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14687 042110 004 11 0 00 036552 ER4 AC+1,36552 ;LOW PRODUCT FAILED
14688 577777 777777 AEE=XX ;INITIAL C(E)
14689 042111 312 06 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED?
14690 042112 005 06 0 00 036553 ER5 E,36553 ;C(E) WAS CLOBBERED
14691 042113 321 12 0 00 042101 JUMPL AC+2,F36550 ;LOOP ON ERROR SWITCH^
14692
14693 003656 ADR=ADR+1
14694 377777 777777 XX=XX+XX+1
14695 IFE <XX-1>,<XX=-2>
14696
14697 ;MULTIPLY A RIPPLED 0 BY -1
14698 400000 000001 MX=-XX
14699 IFL XX,<V1=0>
14700 777777 777777 IFG XX,<V1=-1>
14701 MOP1 (\ADR,-1,-1,XX,V1,MX)^
14702 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
14703 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14704 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
14705 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14706
14707 777777 777777 F36560: AA1=-1 ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-21
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0291
14708 042114 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER)
14709 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14710 042115 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14711 377777 777777 AEE=XX ;INITIAL C(E)
14712 042116 200 06 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND)
14713 042117 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14714 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
14715 042120 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14716 042121 003 10 0 00 036561 ER3 AC,36561 ;HIGH PRODUCT FAILED
14717 400000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
14718 042122 312 11 0 00 044233 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14719 042123 004 11 0 00 036562 ER4 AC+1,36562 ;LOW PRODUCT FAILED
14720 377777 777777 AEE=XX ;INITIAL C(E)
14721 042124 312 06 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED?
14722 042125 005 06 0 00 036563 ER5 E,36563 ;C(E) WAS CLOBBERED
14723 042126 321 12 0 00 042114 JUMPL AC+2,F36560 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0292
14724 000014 AC=14
14725 000012 E=<AC-2>&17
14726 SAVEAC (1,1)^
14727 042127 201 16 0 00 042127 MOVEI AC+2,. ;SAVE TEST PC
14728 042130 202 16 0 00 030051 MOVEM AC+2,TESTPC
14729 042131 201 16 0 00 000016 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
14730 042132 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
14731 000000 XX=0
14732
14733 REPEAT ^D36, <
14734 ADR=ADR+1
14735 XX=XX+XX+1
14736 IFE <XX-1>,<XX=-2>
14737
14738 ;MULTIPLY -1 BY A RIPPLED 0
14739 MX=-XX
14740 IFL XX,<V1=0>
14741 IFG XX,<V1=-1>
14742 MOP1 (\ADR,XX,-1,-1,V1,MX)>
14743
14744 003657 ADR=ADR+1
14745 000001 XX=XX+XX+1
14746 777777 777776 IFE <XX-1>,<XX=-2>
14747
14748 ;MULTIPLY -1 BY A RIPPLED 0
14749 000002 MX=-XX
14750 000000 IFL XX,<V1=0>
14751 IFG XX,<V1=-1>
14752 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14753 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14754 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14755 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14756 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14757
14758 777777 777776 F36570: AA1=XX ;INITIAL C(AC)
14759 042133 200 14 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14760 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14761 042134 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14762 777777 777777 AEE=-1 ;INITIAL C(E)
14763 042135 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14764 042136 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14765 000000 AR1=V1 ;EXPECTED RESULT IN AC
14766 042137 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14767 042140 003 14 0 00 036571 ER3 AC,36571 ;HIGH PRODUCT FAILED
14768 000002 AR2=MX ;EXPECTED RESULT IN AC+1
14769 042141 312 15 0 00 044001 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14770 042142 004 15 0 00 036572 ER4 AC+1,36572 ;LOW PRODUCT FAILED
14771 777777 777777 AEE=-1 ;INITIAL C(E)
14772 042143 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14773 042144 005 12 0 00 036573 ER5 E,36573 ;C(E) WAS CLOBBERED
14774 042145 321 16 0 00 042133 JUMPL AC+2,F36570 ;LOOP ON ERROR SWITCH^
14775
14776 003660 ADR=ADR+1
14777 777777 777775 XX=XX+XX+1
14778 IFE <XX-1>,<XX=-2>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0293
14779
14780 ;MULTIPLY -1 BY A RIPPLED 0
14781 000003 MX=-XX
14782 000000 IFL XX,<V1=0>
14783 IFG XX,<V1=-1>
14784 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14785 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14786 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14787 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14788 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14789
14790 777777 777775 F36600: AA1=XX ;INITIAL C(AC)
14791 042146 200 14 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14792 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14793 042147 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14794 777777 777777 AEE=-1 ;INITIAL C(E)
14795 042150 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14796 042151 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14797 000000 AR1=V1 ;EXPECTED RESULT IN AC
14798 042152 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14799 042153 003 14 0 00 036601 ER3 AC,36601 ;HIGH PRODUCT FAILED
14800 000003 AR2=MX ;EXPECTED RESULT IN AC+1
14801 042154 312 15 0 00 044110 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14802 042155 004 15 0 00 036602 ER4 AC+1,36602 ;LOW PRODUCT FAILED
14803 777777 777777 AEE=-1 ;INITIAL C(E)
14804 042156 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14805 042157 005 12 0 00 036603 ER5 E,36603 ;C(E) WAS CLOBBERED
14806 042160 321 16 0 00 042146 JUMPL AC+2,F36600 ;LOOP ON ERROR SWITCH^
14807
14808 003661 ADR=ADR+1
14809 777777 777773 XX=XX+XX+1
14810 IFE <XX-1>,<XX=-2>
14811
14812 ;MULTIPLY -1 BY A RIPPLED 0
14813 000005 MX=-XX
14814 000000 IFL XX,<V1=0>
14815 IFG XX,<V1=-1>
14816 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14817 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14818 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14819 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14820 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14821
14822 777777 777773 F36610: AA1=XX ;INITIAL C(AC)
14823 042161 200 14 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14824 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14825 042162 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14826 777777 777777 AEE=-1 ;INITIAL C(E)
14827 042163 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14828 042164 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14829 000000 AR1=V1 ;EXPECTED RESULT IN AC
14830 042165 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14831 042166 003 14 0 00 036611 ER3 AC,36611 ;HIGH PRODUCT FAILED
14832 000005 AR2=MX ;EXPECTED RESULT IN AC+1
14833 042167 312 15 0 00 044111 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0294
14834 042170 004 15 0 00 036612 ER4 AC+1,36612 ;LOW PRODUCT FAILED
14835 777777 777777 AEE=-1 ;INITIAL C(E)
14836 042171 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14837 042172 005 12 0 00 036613 ER5 E,36613 ;C(E) WAS CLOBBERED
14838 042173 321 16 0 00 042161 JUMPL AC+2,F36610 ;LOOP ON ERROR SWITCH^
14839
14840 003662 ADR=ADR+1
14841 777777 777767 XX=XX+XX+1
14842 IFE <XX-1>,<XX=-2>
14843
14844 ;MULTIPLY -1 BY A RIPPLED 0
14845 000011 MX=-XX
14846 000000 IFL XX,<V1=0>
14847 IFG XX,<V1=-1>
14848 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14850 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14851 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14853
14854 777777 777767 F36620: AA1=XX ;INITIAL C(AC)
14855 042174 200 14 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14856 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14857 042175 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14858 777777 777777 AEE=-1 ;INITIAL C(E)
14859 042176 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14860 042177 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14861 000000 AR1=V1 ;EXPECTED RESULT IN AC
14862 042200 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14863 042201 003 14 0 00 036621 ER3 AC,36621 ;HIGH PRODUCT FAILED
14864 000011 AR2=MX ;EXPECTED RESULT IN AC+1
14865 042202 312 15 0 00 044114 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14866 042203 004 15 0 00 036622 ER4 AC+1,36622 ;LOW PRODUCT FAILED
14867 777777 777777 AEE=-1 ;INITIAL C(E)
14868 042204 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14869 042205 005 12 0 00 036623 ER5 E,36623 ;C(E) WAS CLOBBERED
14870 042206 321 16 0 00 042174 JUMPL AC+2,F36620 ;LOOP ON ERROR SWITCH^
14871
14872 003663 ADR=ADR+1
14873 777777 777757 XX=XX+XX+1
14874 IFE <XX-1>,<XX=-2>
14875
14876 ;MULTIPLY -1 BY A RIPPLED 0
14877 000021 MX=-XX
14878 000000 IFL XX,<V1=0>
14879 IFG XX,<V1=-1>
14880 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14881 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14882 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14883 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14884 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14885
14886 777777 777757 F36630: AA1=XX ;INITIAL C(AC)
14887 042207 200 14 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14888 777777 777777 AA2=-1 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0295
14889 042210 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14890 777777 777777 AEE=-1 ;INITIAL C(E)
14891 042211 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14892 042212 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14893 000000 AR1=V1 ;EXPECTED RESULT IN AC
14894 042213 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14895 042214 003 14 0 00 036631 ER3 AC,36631 ;HIGH PRODUCT FAILED
14896 000021 AR2=MX ;EXPECTED RESULT IN AC+1
14897 042215 312 15 0 00 044174 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14898 042216 004 15 0 00 036632 ER4 AC+1,36632 ;LOW PRODUCT FAILED
14899 777777 777777 AEE=-1 ;INITIAL C(E)
14900 042217 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14901 042220 005 12 0 00 036633 ER5 E,36633 ;C(E) WAS CLOBBERED
14902 042221 321 16 0 00 042207 JUMPL AC+2,F36630 ;LOOP ON ERROR SWITCH^
14903
14904 003664 ADR=ADR+1
14905 777777 777737 XX=XX+XX+1
14906 IFE <XX-1>,<XX=-2>
14907
14908 ;MULTIPLY -1 BY A RIPPLED 0
14909 000041 MX=-XX
14910 000000 IFL XX,<V1=0>
14911 IFG XX,<V1=-1>
14912 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14913 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14914 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14915 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14916 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14917
14918 777777 777737 F36640: AA1=XX ;INITIAL C(AC)
14919 042222 200 14 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14920 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14921 042223 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14922 777777 777777 AEE=-1 ;INITIAL C(E)
14923 042224 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14924 042225 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14925 000000 AR1=V1 ;EXPECTED RESULT IN AC
14926 042226 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14927 042227 003 14 0 00 036641 ER3 AC,36641 ;HIGH PRODUCT FAILED
14928 000041 AR2=MX ;EXPECTED RESULT IN AC+1
14929 042230 312 15 0 00 044175 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14930 042231 004 15 0 00 036642 ER4 AC+1,36642 ;LOW PRODUCT FAILED
14931 777777 777777 AEE=-1 ;INITIAL C(E)
14932 042232 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14933 042233 005 12 0 00 036643 ER5 E,36643 ;C(E) WAS CLOBBERED
14934 042234 321 16 0 00 042222 JUMPL AC+2,F36640 ;LOOP ON ERROR SWITCH^
14935
14936 003665 ADR=ADR+1
14937 777777 777677 XX=XX+XX+1
14938 IFE <XX-1>,<XX=-2>
14939
14940 ;MULTIPLY -1 BY A RIPPLED 0
14941 000101 MX=-XX
14942 000000 IFL XX,<V1=0>
14943 IFG XX,<V1=-1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0296
14944 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14945 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14946 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14947 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14948 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14949
14950 777777 777677 F36650: AA1=XX ;INITIAL C(AC)
14951 042235 200 14 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14952 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14953 042236 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14954 777777 777777 AEE=-1 ;INITIAL C(E)
14955 042237 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14956 042240 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14957 000000 AR1=V1 ;EXPECTED RESULT IN AC
14958 042241 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14959 042242 003 14 0 00 036651 ER3 AC,36651 ;HIGH PRODUCT FAILED
14960 000101 AR2=MX ;EXPECTED RESULT IN AC+1
14961 042243 312 15 0 00 044176 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14962 042244 004 15 0 00 036652 ER4 AC+1,36652 ;LOW PRODUCT FAILED
14963 777777 777777 AEE=-1 ;INITIAL C(E)
14964 042245 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14965 042246 005 12 0 00 036653 ER5 E,36653 ;C(E) WAS CLOBBERED
14966 042247 321 16 0 00 042235 JUMPL AC+2,F36650 ;LOOP ON ERROR SWITCH^
14967
14968 003666 ADR=ADR+1
14969 777777 777577 XX=XX+XX+1
14970 IFE <XX-1>,<XX=-2>
14971
14972 ;MULTIPLY -1 BY A RIPPLED 0
14973 000201 MX=-XX
14974 000000 IFL XX,<V1=0>
14975 IFG XX,<V1=-1>
14976 MOP1 (\ADR,XX,-1,-1,V1,MX)^
14977 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
14978 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
14979 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
14980 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
14981
14982 777777 777577 F36660: AA1=XX ;INITIAL C(AC)
14983 042250 200 14 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
14984 777777 777777 AA2=-1 ;INITIAL C(AC+1)
14985 042251 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
14986 777777 777777 AEE=-1 ;INITIAL C(E)
14987 042252 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
14988 042253 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
14989 000000 AR1=V1 ;EXPECTED RESULT IN AC
14990 042254 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
14991 042255 003 14 0 00 036661 ER3 AC,36661 ;HIGH PRODUCT FAILED
14992 000201 AR2=MX ;EXPECTED RESULT IN AC+1
14993 042256 312 15 0 00 044177 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
14994 042257 004 15 0 00 036662 ER4 AC+1,36662 ;LOW PRODUCT FAILED
14995 777777 777777 AEE=-1 ;INITIAL C(E)
14996 042260 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
14997 042261 005 12 0 00 036663 ER5 E,36663 ;C(E) WAS CLOBBERED
14998 042262 321 16 0 00 042250 JUMPL AC+2,F36660 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0297
14999
15000 003667 ADR=ADR+1
15001 777777 777377 XX=XX+XX+1
15002 IFE <XX-1>,<XX=-2>
15003
15004 ;MULTIPLY -1 BY A RIPPLED 0
15005 000401 MX=-XX
15006 000000 IFL XX,<V1=0>
15007 IFG XX,<V1=-1>
15008 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15009 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15010 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15011 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15012 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15013
15014 777777 777377 F36670: AA1=XX ;INITIAL C(AC)
15015 042263 200 14 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15016 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15017 042264 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15018 777777 777777 AEE=-1 ;INITIAL C(E)
15019 042265 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15020 042266 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15021 000000 AR1=V1 ;EXPECTED RESULT IN AC
15022 042267 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15023 042270 003 14 0 00 036671 ER3 AC,36671 ;HIGH PRODUCT FAILED
15024 000401 AR2=MX ;EXPECTED RESULT IN AC+1
15025 042271 312 15 0 00 044200 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15026 042272 004 15 0 00 036672 ER4 AC+1,36672 ;LOW PRODUCT FAILED
15027 777777 777777 AEE=-1 ;INITIAL C(E)
15028 042273 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15029 042274 005 12 0 00 036673 ER5 E,36673 ;C(E) WAS CLOBBERED
15030 042275 321 16 0 00 042263 JUMPL AC+2,F36670 ;LOOP ON ERROR SWITCH^
15031
15032 003670 ADR=ADR+1
15033 777777 776777 XX=XX+XX+1
15034 IFE <XX-1>,<XX=-2>
15035
15036 ;MULTIPLY -1 BY A RIPPLED 0
15037 001001 MX=-XX
15038 000000 IFL XX,<V1=0>
15039 IFG XX,<V1=-1>
15040 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15041 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15042 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15043 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15044 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15045
15046 777777 776777 F36700: AA1=XX ;INITIAL C(AC)
15047 042276 200 14 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15048 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15049 042277 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15050 777777 777777 AEE=-1 ;INITIAL C(E)
15051 042300 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15052 042301 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15053 000000 AR1=V1 ;EXPECTED RESULT IN AC
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0298
15054 042302 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15055 042303 003 14 0 00 036701 ER3 AC,36701 ;HIGH PRODUCT FAILED
15056 001001 AR2=MX ;EXPECTED RESULT IN AC+1
15057 042304 312 15 0 00 044201 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15058 042305 004 15 0 00 036702 ER4 AC+1,36702 ;LOW PRODUCT FAILED
15059 777777 777777 AEE=-1 ;INITIAL C(E)
15060 042306 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15061 042307 005 12 0 00 036703 ER5 E,36703 ;C(E) WAS CLOBBERED
15062 042310 321 16 0 00 042276 JUMPL AC+2,F36700 ;LOOP ON ERROR SWITCH^
15063
15064 003671 ADR=ADR+1
15065 777777 775777 XX=XX+XX+1
15066 IFE <XX-1>,<XX=-2>
15067
15068 ;MULTIPLY -1 BY A RIPPLED 0
15069 002001 MX=-XX
15070 000000 IFL XX,<V1=0>
15071 IFG XX,<V1=-1>
15072 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15073 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15074 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15075 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15076 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15077
15078 777777 775777 F36710: AA1=XX ;INITIAL C(AC)
15079 042311 200 14 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15080 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15081 042312 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15082 777777 777777 AEE=-1 ;INITIAL C(E)
15083 042313 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15084 042314 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15085 000000 AR1=V1 ;EXPECTED RESULT IN AC
15086 042315 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15087 042316 003 14 0 00 036711 ER3 AC,36711 ;HIGH PRODUCT FAILED
15088 002001 AR2=MX ;EXPECTED RESULT IN AC+1
15089 042317 312 15 0 00 044202 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15090 042320 004 15 0 00 036712 ER4 AC+1,36712 ;LOW PRODUCT FAILED
15091 777777 777777 AEE=-1 ;INITIAL C(E)
15092 042321 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15093 042322 005 12 0 00 036713 ER5 E,36713 ;C(E) WAS CLOBBERED
15094 042323 321 16 0 00 042311 JUMPL AC+2,F36710 ;LOOP ON ERROR SWITCH^
15095
15096 003672 ADR=ADR+1
15097 777777 773777 XX=XX+XX+1
15098 IFE <XX-1>,<XX=-2>
15099
15100 ;MULTIPLY -1 BY A RIPPLED 0
15101 004001 MX=-XX
15102 000000 IFL XX,<V1=0>
15103 IFG XX,<V1=-1>
15104 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15105 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15106 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15107 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15108 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0299
15109
15110 777777 773777 F36720: AA1=XX ;INITIAL C(AC)
15111 042324 200 14 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15112 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15113 042325 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15114 777777 777777 AEE=-1 ;INITIAL C(E)
15115 042326 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15116 042327 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15117 000000 AR1=V1 ;EXPECTED RESULT IN AC
15118 042330 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15119 042331 003 14 0 00 036721 ER3 AC,36721 ;HIGH PRODUCT FAILED
15120 004001 AR2=MX ;EXPECTED RESULT IN AC+1
15121 042332 312 15 0 00 044203 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15122 042333 004 15 0 00 036722 ER4 AC+1,36722 ;LOW PRODUCT FAILED
15123 777777 777777 AEE=-1 ;INITIAL C(E)
15124 042334 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15125 042335 005 12 0 00 036723 ER5 E,36723 ;C(E) WAS CLOBBERED
15126 042336 321 16 0 00 042324 JUMPL AC+2,F36720 ;LOOP ON ERROR SWITCH^
15127
15128 003673 ADR=ADR+1
15129 777777 767777 XX=XX+XX+1
15130 IFE <XX-1>,<XX=-2>
15131
15132 ;MULTIPLY -1 BY A RIPPLED 0
15133 010001 MX=-XX
15134 000000 IFL XX,<V1=0>
15135 IFG XX,<V1=-1>
15136 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15137 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15138 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15139 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15140 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15141
15142 777777 767777 F36730: AA1=XX ;INITIAL C(AC)
15143 042337 200 14 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15144 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15145 042340 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15146 777777 777777 AEE=-1 ;INITIAL C(E)
15147 042341 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15148 042342 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15149 000000 AR1=V1 ;EXPECTED RESULT IN AC
15150 042343 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15151 042344 003 14 0 00 036731 ER3 AC,36731 ;HIGH PRODUCT FAILED
15152 010001 AR2=MX ;EXPECTED RESULT IN AC+1
15153 042345 312 15 0 00 044204 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15154 042346 004 15 0 00 036732 ER4 AC+1,36732 ;LOW PRODUCT FAILED
15155 777777 777777 AEE=-1 ;INITIAL C(E)
15156 042347 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15157 042350 005 12 0 00 036733 ER5 E,36733 ;C(E) WAS CLOBBERED
15158 042351 321 16 0 00 042337 JUMPL AC+2,F36730 ;LOOP ON ERROR SWITCH^
15159
15160 003674 ADR=ADR+1
15161 777777 757777 XX=XX+XX+1
15162 IFE <XX-1>,<XX=-2>
15163
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0300
15164 ;MULTIPLY -1 BY A RIPPLED 0
15165 020001 MX=-XX
15166 000000 IFL XX,<V1=0>
15167 IFG XX,<V1=-1>
15168 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15169 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15170 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15171 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15172 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15173
15174 777777 757777 F36740: AA1=XX ;INITIAL C(AC)
15175 042352 200 14 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15176 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15177 042353 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15178 777777 777777 AEE=-1 ;INITIAL C(E)
15179 042354 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15180 042355 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15181 000000 AR1=V1 ;EXPECTED RESULT IN AC
15182 042356 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15183 042357 003 14 0 00 036741 ER3 AC,36741 ;HIGH PRODUCT FAILED
15184 020001 AR2=MX ;EXPECTED RESULT IN AC+1
15185 042360 312 15 0 00 044205 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15186 042361 004 15 0 00 036742 ER4 AC+1,36742 ;LOW PRODUCT FAILED
15187 777777 777777 AEE=-1 ;INITIAL C(E)
15188 042362 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15189 042363 005 12 0 00 036743 ER5 E,36743 ;C(E) WAS CLOBBERED
15190 042364 321 16 0 00 042352 JUMPL AC+2,F36740 ;LOOP ON ERROR SWITCH^
15191
15192 003675 ADR=ADR+1
15193 777777 737777 XX=XX+XX+1
15194 IFE <XX-1>,<XX=-2>
15195
15196 ;MULTIPLY -1 BY A RIPPLED 0
15197 040001 MX=-XX
15198 000000 IFL XX,<V1=0>
15199 IFG XX,<V1=-1>
15200 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15201 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15202 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15203 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15204 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15205
15206 777777 737777 F36750: AA1=XX ;INITIAL C(AC)
15207 042365 200 14 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15208 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15209 042366 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15210 777777 777777 AEE=-1 ;INITIAL C(E)
15211 042367 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15212 042370 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15213 000000 AR1=V1 ;EXPECTED RESULT IN AC
15214 042371 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15215 042372 003 14 0 00 036751 ER3 AC,36751 ;HIGH PRODUCT FAILED
15216 040001 AR2=MX ;EXPECTED RESULT IN AC+1
15217 042373 312 15 0 00 044206 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15218 042374 004 15 0 00 036752 ER4 AC+1,36752 ;LOW PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0301
15219 777777 777777 AEE=-1 ;INITIAL C(E)
15220 042375 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15221 042376 005 12 0 00 036753 ER5 E,36753 ;C(E) WAS CLOBBERED
15222 042377 321 16 0 00 042365 JUMPL AC+2,F36750 ;LOOP ON ERROR SWITCH^
15223
15224 003676 ADR=ADR+1
15225 777777 677777 XX=XX+XX+1
15226 IFE <XX-1>,<XX=-2>
15227
15228 ;MULTIPLY -1 BY A RIPPLED 0
15229 100001 MX=-XX
15230 000000 IFL XX,<V1=0>
15231 IFG XX,<V1=-1>
15232 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15234 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15235 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15237
15238 777777 677777 F36760: AA1=XX ;INITIAL C(AC)
15239 042400 200 14 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15240 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15241 042401 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15242 777777 777777 AEE=-1 ;INITIAL C(E)
15243 042402 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15244 042403 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15245 000000 AR1=V1 ;EXPECTED RESULT IN AC
15246 042404 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15247 042405 003 14 0 00 036761 ER3 AC,36761 ;HIGH PRODUCT FAILED
15248 100001 AR2=MX ;EXPECTED RESULT IN AC+1
15249 042406 312 15 0 00 044207 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15250 042407 004 15 0 00 036762 ER4 AC+1,36762 ;LOW PRODUCT FAILED
15251 777777 777777 AEE=-1 ;INITIAL C(E)
15252 042410 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15253 042411 005 12 0 00 036763 ER5 E,36763 ;C(E) WAS CLOBBERED
15254 042412 321 16 0 00 042400 JUMPL AC+2,F36760 ;LOOP ON ERROR SWITCH^
15255
15256 003677 ADR=ADR+1
15257 777777 577777 XX=XX+XX+1
15258 IFE <XX-1>,<XX=-2>
15259
15260 ;MULTIPLY -1 BY A RIPPLED 0
15261 200001 MX=-XX
15262 000000 IFL XX,<V1=0>
15263 IFG XX,<V1=-1>
15264 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15265 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15266 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15267 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15268 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15269
15270 777777 577777 F36770: AA1=XX ;INITIAL C(AC)
15271 042413 200 14 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15272 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15273 042414 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0302
15274 777777 777777 AEE=-1 ;INITIAL C(E)
15275 042415 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15276 042416 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15277 000000 AR1=V1 ;EXPECTED RESULT IN AC
15278 042417 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15279 042420 003 14 0 00 036771 ER3 AC,36771 ;HIGH PRODUCT FAILED
15280 200001 AR2=MX ;EXPECTED RESULT IN AC+1
15281 042421 312 15 0 00 044210 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15282 042422 004 15 0 00 036772 ER4 AC+1,36772 ;LOW PRODUCT FAILED
15283 777777 777777 AEE=-1 ;INITIAL C(E)
15284 042423 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15285 042424 005 12 0 00 036773 ER5 E,36773 ;C(E) WAS CLOBBERED
15286 042425 321 16 0 00 042413 JUMPL AC+2,F36770 ;LOOP ON ERROR SWITCH^
15287
15288 003700 ADR=ADR+1
15289 777777 377777 XX=XX+XX+1
15290 IFE <XX-1>,<XX=-2>
15291
15292 ;MULTIPLY -1 BY A RIPPLED 0
15293 400001 MX=-XX
15294 000000 IFL XX,<V1=0>
15295 IFG XX,<V1=-1>
15296 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15298 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15299 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15301
15302 777777 377777 F37000: AA1=XX ;INITIAL C(AC)
15303 042426 200 14 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15304 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15305 042427 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15306 777777 777777 AEE=-1 ;INITIAL C(E)
15307 042430 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15308 042431 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15309 000000 AR1=V1 ;EXPECTED RESULT IN AC
15310 042432 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15311 042433 003 14 0 00 037001 ER3 AC,37001 ;HIGH PRODUCT FAILED
15312 400001 AR2=MX ;EXPECTED RESULT IN AC+1
15313 042434 312 15 0 00 044211 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15314 042435 004 15 0 00 037002 ER4 AC+1,37002 ;LOW PRODUCT FAILED
15315 777777 777777 AEE=-1 ;INITIAL C(E)
15316 042436 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15317 042437 005 12 0 00 037003 ER5 E,37003 ;C(E) WAS CLOBBERED
15318 042440 321 16 0 00 042426 JUMPL AC+2,F37000 ;LOOP ON ERROR SWITCH^
15319
15320 003701 ADR=ADR+1
15321 777776 777777 XX=XX+XX+1
15322 IFE <XX-1>,<XX=-2>
15323
15324 ;MULTIPLY -1 BY A RIPPLED 0
15325 000001 000001 MX=-XX
15326 000000 IFL XX,<V1=0>
15327 IFG XX,<V1=-1>
15328 MOP1 (\ADR,XX,-1,-1,V1,MX)^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0303
15329 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15330 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15331 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15332 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15333
15334 777776 777777 F37010: AA1=XX ;INITIAL C(AC)
15335 042441 200 14 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15336 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15337 042442 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15338 777777 777777 AEE=-1 ;INITIAL C(E)
15339 042443 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15340 042444 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15341 000000 AR1=V1 ;EXPECTED RESULT IN AC
15342 042445 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15343 042446 003 14 0 00 037011 ER3 AC,37011 ;HIGH PRODUCT FAILED
15344 000001 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15345 042447 312 15 0 00 044212 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15346 042450 004 15 0 00 037012 ER4 AC+1,37012 ;LOW PRODUCT FAILED
15347 777777 777777 AEE=-1 ;INITIAL C(E)
15348 042451 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15349 042452 005 12 0 00 037013 ER5 E,37013 ;C(E) WAS CLOBBERED
15350 042453 321 16 0 00 042441 JUMPL AC+2,F37010 ;LOOP ON ERROR SWITCH^
15351
15352 003702 ADR=ADR+1
15353 777775 777777 XX=XX+XX+1
15354 IFE <XX-1>,<XX=-2>
15355
15356 ;MULTIPLY -1 BY A RIPPLED 0
15357 000002 000001 MX=-XX
15358 000000 IFL XX,<V1=0>
15359 IFG XX,<V1=-1>
15360 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15362 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15363 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15365
15366 777775 777777 F37020: AA1=XX ;INITIAL C(AC)
15367 042454 200 14 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15368 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15369 042455 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15370 777777 777777 AEE=-1 ;INITIAL C(E)
15371 042456 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15372 042457 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15373 000000 AR1=V1 ;EXPECTED RESULT IN AC
15374 042460 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15375 042461 003 14 0 00 037021 ER3 AC,37021 ;HIGH PRODUCT FAILED
15376 000002 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15377 042462 312 15 0 00 044213 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15378 042463 004 15 0 00 037022 ER4 AC+1,37022 ;LOW PRODUCT FAILED
15379 777777 777777 AEE=-1 ;INITIAL C(E)
15380 042464 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15381 042465 005 12 0 00 037023 ER5 E,37023 ;C(E) WAS CLOBBERED
15382 042466 321 16 0 00 042454 JUMPL AC+2,F37020 ;LOOP ON ERROR SWITCH^
15383
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0304
15384 003703 ADR=ADR+1
15385 777773 777777 XX=XX+XX+1
15386 IFE <XX-1>,<XX=-2>
15387
15388 ;MULTIPLY -1 BY A RIPPLED 0
15389 000004 000001 MX=-XX
15390 000000 IFL XX,<V1=0>
15391 IFG XX,<V1=-1>
15392 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15393 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15394 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15395 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15396 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15397
15398 777773 777777 F37030: AA1=XX ;INITIAL C(AC)
15399 042467 200 14 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15400 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15401 042470 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15402 777777 777777 AEE=-1 ;INITIAL C(E)
15403 042471 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15404 042472 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15405 000000 AR1=V1 ;EXPECTED RESULT IN AC
15406 042473 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15407 042474 003 14 0 00 037031 ER3 AC,37031 ;HIGH PRODUCT FAILED
15408 000004 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15409 042475 312 15 0 00 044214 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15410 042476 004 15 0 00 037032 ER4 AC+1,37032 ;LOW PRODUCT FAILED
15411 777777 777777 AEE=-1 ;INITIAL C(E)
15412 042477 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15413 042500 005 12 0 00 037033 ER5 E,37033 ;C(E) WAS CLOBBERED
15414 042501 321 16 0 00 042467 JUMPL AC+2,F37030 ;LOOP ON ERROR SWITCH^
15415
15416 003704 ADR=ADR+1
15417 777767 777777 XX=XX+XX+1
15418 IFE <XX-1>,<XX=-2>
15419
15420 ;MULTIPLY -1 BY A RIPPLED 0
15421 000010 000001 MX=-XX
15422 000000 IFL XX,<V1=0>
15423 IFG XX,<V1=-1>
15424 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15425 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15426 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15427 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15428 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15429
15430 777767 777777 F37040: AA1=XX ;INITIAL C(AC)
15431 042502 200 14 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15432 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15433 042503 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15434 777777 777777 AEE=-1 ;INITIAL C(E)
15435 042504 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15436 042505 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15437 000000 AR1=V1 ;EXPECTED RESULT IN AC
15438 042506 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0305
15439 042507 003 14 0 00 037041 ER3 AC,37041 ;HIGH PRODUCT FAILED
15440 000010 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15441 042510 312 15 0 00 044215 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15442 042511 004 15 0 00 037042 ER4 AC+1,37042 ;LOW PRODUCT FAILED
15443 777777 777777 AEE=-1 ;INITIAL C(E)
15444 042512 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15445 042513 005 12 0 00 037043 ER5 E,37043 ;C(E) WAS CLOBBERED
15446 042514 321 16 0 00 042502 JUMPL AC+2,F37040 ;LOOP ON ERROR SWITCH^
15447
15448 003705 ADR=ADR+1
15449 777757 777777 XX=XX+XX+1
15450 IFE <XX-1>,<XX=-2>
15451
15452 ;MULTIPLY -1 BY A RIPPLED 0
15453 000020 000001 MX=-XX
15454 000000 IFL XX,<V1=0>
15455 IFG XX,<V1=-1>
15456 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15457 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15458 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15459 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15460 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15461
15462 777757 777777 F37050: AA1=XX ;INITIAL C(AC)
15463 042515 200 14 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15464 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15465 042516 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15466 777777 777777 AEE=-1 ;INITIAL C(E)
15467 042517 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15468 042520 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15469 000000 AR1=V1 ;EXPECTED RESULT IN AC
15470 042521 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15471 042522 003 14 0 00 037051 ER3 AC,37051 ;HIGH PRODUCT FAILED
15472 000020 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15473 042523 312 15 0 00 044216 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15474 042524 004 15 0 00 037052 ER4 AC+1,37052 ;LOW PRODUCT FAILED
15475 777777 777777 AEE=-1 ;INITIAL C(E)
15476 042525 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15477 042526 005 12 0 00 037053 ER5 E,37053 ;C(E) WAS CLOBBERED
15478 042527 321 16 0 00 042515 JUMPL AC+2,F37050 ;LOOP ON ERROR SWITCH^
15479
15480 003706 ADR=ADR+1
15481 777737 777777 XX=XX+XX+1
15482 IFE <XX-1>,<XX=-2>
15483
15484 ;MULTIPLY -1 BY A RIPPLED 0
15485 000040 000001 MX=-XX
15486 000000 IFL XX,<V1=0>
15487 IFG XX,<V1=-1>
15488 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15489 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15490 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15491 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15492 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15493
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0306
15494 777737 777777 F37060: AA1=XX ;INITIAL C(AC)
15495 042530 200 14 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15496 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15497 042531 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15498 777777 777777 AEE=-1 ;INITIAL C(E)
15499 042532 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15500 042533 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15501 000000 AR1=V1 ;EXPECTED RESULT IN AC
15502 042534 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15503 042535 003 14 0 00 037061 ER3 AC,37061 ;HIGH PRODUCT FAILED
15504 000040 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15505 042536 312 15 0 00 044217 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15506 042537 004 15 0 00 037062 ER4 AC+1,37062 ;LOW PRODUCT FAILED
15507 777777 777777 AEE=-1 ;INITIAL C(E)
15508 042540 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15509 042541 005 12 0 00 037063 ER5 E,37063 ;C(E) WAS CLOBBERED
15510 042542 321 16 0 00 042530 JUMPL AC+2,F37060 ;LOOP ON ERROR SWITCH^
15511
15512 003707 ADR=ADR+1
15513 777677 777777 XX=XX+XX+1
15514 IFE <XX-1>,<XX=-2>
15515
15516 ;MULTIPLY -1 BY A RIPPLED 0
15517 000100 000001 MX=-XX
15518 000000 IFL XX,<V1=0>
15519 IFG XX,<V1=-1>
15520 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15521 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15522 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15523 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15524 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15525
15526 777677 777777 F37070: AA1=XX ;INITIAL C(AC)
15527 042543 200 14 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15528 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15529 042544 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15530 777777 777777 AEE=-1 ;INITIAL C(E)
15531 042545 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15532 042546 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15533 000000 AR1=V1 ;EXPECTED RESULT IN AC
15534 042547 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15535 042550 003 14 0 00 037071 ER3 AC,37071 ;HIGH PRODUCT FAILED
15536 000100 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15537 042551 312 15 0 00 044220 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15538 042552 004 15 0 00 037072 ER4 AC+1,37072 ;LOW PRODUCT FAILED
15539 777777 777777 AEE=-1 ;INITIAL C(E)
15540 042553 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15541 042554 005 12 0 00 037073 ER5 E,37073 ;C(E) WAS CLOBBERED
15542 042555 321 16 0 00 042543 JUMPL AC+2,F37070 ;LOOP ON ERROR SWITCH^
15543
15544 003710 ADR=ADR+1
15545 777577 777777 XX=XX+XX+1
15546 IFE <XX-1>,<XX=-2>
15547
15548 ;MULTIPLY -1 BY A RIPPLED 0
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0307
15549 000200 000001 MX=-XX
15550 000000 IFL XX,<V1=0>
15551 IFG XX,<V1=-1>
15552 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15553 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15554 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15555 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15556 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15557
15558 777577 777777 F37100: AA1=XX ;INITIAL C(AC)
15559 042556 200 14 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15560 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15561 042557 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15562 777777 777777 AEE=-1 ;INITIAL C(E)
15563 042560 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15564 042561 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15565 000000 AR1=V1 ;EXPECTED RESULT IN AC
15566 042562 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15567 042563 003 14 0 00 037101 ER3 AC,37101 ;HIGH PRODUCT FAILED
15568 000200 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15569 042564 312 15 0 00 044221 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15570 042565 004 15 0 00 037102 ER4 AC+1,37102 ;LOW PRODUCT FAILED
15571 777777 777777 AEE=-1 ;INITIAL C(E)
15572 042566 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15573 042567 005 12 0 00 037103 ER5 E,37103 ;C(E) WAS CLOBBERED
15574 042570 321 16 0 00 042556 JUMPL AC+2,F37100 ;LOOP ON ERROR SWITCH^
15575
15576 003711 ADR=ADR+1
15577 777377 777777 XX=XX+XX+1
15578 IFE <XX-1>,<XX=-2>
15579
15580 ;MULTIPLY -1 BY A RIPPLED 0
15581 000400 000001 MX=-XX
15582 000000 IFL XX,<V1=0>
15583 IFG XX,<V1=-1>
15584 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15585 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15586 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15587 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15588 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15589
15590 777377 777777 F37110: AA1=XX ;INITIAL C(AC)
15591 042571 200 14 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15592 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15593 042572 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15594 777777 777777 AEE=-1 ;INITIAL C(E)
15595 042573 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15596 042574 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15597 000000 AR1=V1 ;EXPECTED RESULT IN AC
15598 042575 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15599 042576 003 14 0 00 037111 ER3 AC,37111 ;HIGH PRODUCT FAILED
15600 000400 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15601 042577 312 15 0 00 044222 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15602 042600 004 15 0 00 037112 ER4 AC+1,37112 ;LOW PRODUCT FAILED
15603 777777 777777 AEE=-1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0308
15604 042601 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15605 042602 005 12 0 00 037113 ER5 E,37113 ;C(E) WAS CLOBBERED
15606 042603 321 16 0 00 042571 JUMPL AC+2,F37110 ;LOOP ON ERROR SWITCH^
15607
15608 003712 ADR=ADR+1
15609 776777 777777 XX=XX+XX+1
15610 IFE <XX-1>,<XX=-2>
15611
15612 ;MULTIPLY -1 BY A RIPPLED 0
15613 001000 000001 MX=-XX
15614 000000 IFL XX,<V1=0>
15615 IFG XX,<V1=-1>
15616 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15617 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15618 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15619 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15620 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15621
15622 776777 777777 F37120: AA1=XX ;INITIAL C(AC)
15623 042604 200 14 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15624 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15625 042605 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15626 777777 777777 AEE=-1 ;INITIAL C(E)
15627 042606 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15628 042607 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15629 000000 AR1=V1 ;EXPECTED RESULT IN AC
15630 042610 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15631 042611 003 14 0 00 037121 ER3 AC,37121 ;HIGH PRODUCT FAILED
15632 001000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15633 042612 312 15 0 00 044223 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15634 042613 004 15 0 00 037122 ER4 AC+1,37122 ;LOW PRODUCT FAILED
15635 777777 777777 AEE=-1 ;INITIAL C(E)
15636 042614 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15637 042615 005 12 0 00 037123 ER5 E,37123 ;C(E) WAS CLOBBERED
15638 042616 321 16 0 00 042604 JUMPL AC+2,F37120 ;LOOP ON ERROR SWITCH^
15639
15640 003713 ADR=ADR+1
15641 775777 777777 XX=XX+XX+1
15642 IFE <XX-1>,<XX=-2>
15643
15644 ;MULTIPLY -1 BY A RIPPLED 0
15645 002000 000001 MX=-XX
15646 000000 IFL XX,<V1=0>
15647 IFG XX,<V1=-1>
15648 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15649 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15650 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15651 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15652 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15653
15654 775777 777777 F37130: AA1=XX ;INITIAL C(AC)
15655 042617 200 14 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15656 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15657 042620 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15658 777777 777777 AEE=-1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0309
15659 042621 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15660 042622 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15661 000000 AR1=V1 ;EXPECTED RESULT IN AC
15662 042623 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15663 042624 003 14 0 00 037131 ER3 AC,37131 ;HIGH PRODUCT FAILED
15664 002000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15665 042625 312 15 0 00 044224 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15666 042626 004 15 0 00 037132 ER4 AC+1,37132 ;LOW PRODUCT FAILED
15667 777777 777777 AEE=-1 ;INITIAL C(E)
15668 042627 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15669 042630 005 12 0 00 037133 ER5 E,37133 ;C(E) WAS CLOBBERED
15670 042631 321 16 0 00 042617 JUMPL AC+2,F37130 ;LOOP ON ERROR SWITCH^
15671
15672 003714 ADR=ADR+1
15673 773777 777777 XX=XX+XX+1
15674 IFE <XX-1>,<XX=-2>
15675
15676 ;MULTIPLY -1 BY A RIPPLED 0
15677 004000 000001 MX=-XX
15678 000000 IFL XX,<V1=0>
15679 IFG XX,<V1=-1>
15680 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15681 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15682 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15683 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15684 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15685
15686 773777 777777 F37140: AA1=XX ;INITIAL C(AC)
15687 042632 200 14 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15688 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15689 042633 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15690 777777 777777 AEE=-1 ;INITIAL C(E)
15691 042634 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15692 042635 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15693 000000 AR1=V1 ;EXPECTED RESULT IN AC
15694 042636 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15695 042637 003 14 0 00 037141 ER3 AC,37141 ;HIGH PRODUCT FAILED
15696 004000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15697 042640 312 15 0 00 044225 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15698 042641 004 15 0 00 037142 ER4 AC+1,37142 ;LOW PRODUCT FAILED
15699 777777 777777 AEE=-1 ;INITIAL C(E)
15700 042642 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15701 042643 005 12 0 00 037143 ER5 E,37143 ;C(E) WAS CLOBBERED
15702 042644 321 16 0 00 042632 JUMPL AC+2,F37140 ;LOOP ON ERROR SWITCH^
15703
15704 003715 ADR=ADR+1
15705 767777 777777 XX=XX+XX+1
15706 IFE <XX-1>,<XX=-2>
15707
15708 ;MULTIPLY -1 BY A RIPPLED 0
15709 010000 000001 MX=-XX
15710 000000 IFL XX,<V1=0>
15711 IFG XX,<V1=-1>
15712 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15713 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0310
15714 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15715 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15716 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15717
15718 767777 777777 F37150: AA1=XX ;INITIAL C(AC)
15719 042645 200 14 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15720 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15721 042646 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15722 777777 777777 AEE=-1 ;INITIAL C(E)
15723 042647 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15724 042650 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15725 000000 AR1=V1 ;EXPECTED RESULT IN AC
15726 042651 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15727 042652 003 14 0 00 037151 ER3 AC,37151 ;HIGH PRODUCT FAILED
15728 010000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15729 042653 312 15 0 00 044226 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15730 042654 004 15 0 00 037152 ER4 AC+1,37152 ;LOW PRODUCT FAILED
15731 777777 777777 AEE=-1 ;INITIAL C(E)
15732 042655 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15733 042656 005 12 0 00 037153 ER5 E,37153 ;C(E) WAS CLOBBERED
15734 042657 321 16 0 00 042645 JUMPL AC+2,F37150 ;LOOP ON ERROR SWITCH^
15735
15736 003716 ADR=ADR+1
15737 757777 777777 XX=XX+XX+1
15738 IFE <XX-1>,<XX=-2>
15739
15740 ;MULTIPLY -1 BY A RIPPLED 0
15741 020000 000001 MX=-XX
15742 000000 IFL XX,<V1=0>
15743 IFG XX,<V1=-1>
15744 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15745 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15746 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15747 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15748 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15749
15750 757777 777777 F37160: AA1=XX ;INITIAL C(AC)
15751 042660 200 14 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15752 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15753 042661 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15754 777777 777777 AEE=-1 ;INITIAL C(E)
15755 042662 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15756 042663 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15757 000000 AR1=V1 ;EXPECTED RESULT IN AC
15758 042664 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15759 042665 003 14 0 00 037161 ER3 AC,37161 ;HIGH PRODUCT FAILED
15760 020000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15761 042666 312 15 0 00 044227 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15762 042667 004 15 0 00 037162 ER4 AC+1,37162 ;LOW PRODUCT FAILED
15763 777777 777777 AEE=-1 ;INITIAL C(E)
15764 042670 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15765 042671 005 12 0 00 037163 ER5 E,37163 ;C(E) WAS CLOBBERED
15766 042672 321 16 0 00 042660 JUMPL AC+2,F37160 ;LOOP ON ERROR SWITCH^
15767
15768 003717 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0311
15769 737777 777777 XX=XX+XX+1
15770 IFE <XX-1>,<XX=-2>
15771
15772 ;MULTIPLY -1 BY A RIPPLED 0
15773 040000 000001 MX=-XX
15774 000000 IFL XX,<V1=0>
15775 IFG XX,<V1=-1>
15776 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15777 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15778 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15779 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15780 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15781
15782 737777 777777 F37170: AA1=XX ;INITIAL C(AC)
15783 042673 200 14 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15784 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15785 042674 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15786 777777 777777 AEE=-1 ;INITIAL C(E)
15787 042675 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15788 042676 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15789 000000 AR1=V1 ;EXPECTED RESULT IN AC
15790 042677 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15791 042700 003 14 0 00 037171 ER3 AC,37171 ;HIGH PRODUCT FAILED
15792 040000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15793 042701 312 15 0 00 044230 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15794 042702 004 15 0 00 037172 ER4 AC+1,37172 ;LOW PRODUCT FAILED
15795 777777 777777 AEE=-1 ;INITIAL C(E)
15796 042703 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15797 042704 005 12 0 00 037173 ER5 E,37173 ;C(E) WAS CLOBBERED
15798 042705 321 16 0 00 042673 JUMPL AC+2,F37170 ;LOOP ON ERROR SWITCH^
15799
15800 003720 ADR=ADR+1
15801 677777 777777 XX=XX+XX+1
15802 IFE <XX-1>,<XX=-2>
15803
15804 ;MULTIPLY -1 BY A RIPPLED 0
15805 100000 000001 MX=-XX
15806 000000 IFL XX,<V1=0>
15807 IFG XX,<V1=-1>
15808 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15809 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15810 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15811 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15812 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15813
15814 677777 777777 F37200: AA1=XX ;INITIAL C(AC)
15815 042706 200 14 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15816 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15817 042707 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15818 777777 777777 AEE=-1 ;INITIAL C(E)
15819 042710 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15820 042711 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15821 000000 AR1=V1 ;EXPECTED RESULT IN AC
15822 042712 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15823 042713 003 14 0 00 037201 ER3 AC,37201 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0312
15824 100000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15825 042714 312 15 0 00 044231 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15826 042715 004 15 0 00 037202 ER4 AC+1,37202 ;LOW PRODUCT FAILED
15827 777777 777777 AEE=-1 ;INITIAL C(E)
15828 042716 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15829 042717 005 12 0 00 037203 ER5 E,37203 ;C(E) WAS CLOBBERED
15830 042720 321 16 0 00 042706 JUMPL AC+2,F37200 ;LOOP ON ERROR SWITCH^
15831
15832 003721 ADR=ADR+1
15833 577777 777777 XX=XX+XX+1
15834 IFE <XX-1>,<XX=-2>
15835
15836 ;MULTIPLY -1 BY A RIPPLED 0
15837 200000 000001 MX=-XX
15838 000000 IFL XX,<V1=0>
15839 IFG XX,<V1=-1>
15840 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15841 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15842 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15843 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15844 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15845
15846 577777 777777 F37210: AA1=XX ;INITIAL C(AC)
15847 042721 200 14 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15848 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15849 042722 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15850 777777 777777 AEE=-1 ;INITIAL C(E)
15851 042723 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15852 042724 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15853 000000 AR1=V1 ;EXPECTED RESULT IN AC
15854 042725 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15855 042726 003 14 0 00 037211 ER3 AC,37211 ;HIGH PRODUCT FAILED
15856 200000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15857 042727 312 15 0 00 044232 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15858 042730 004 15 0 00 037212 ER4 AC+1,37212 ;LOW PRODUCT FAILED
15859 777777 777777 AEE=-1 ;INITIAL C(E)
15860 042731 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15861 042732 005 12 0 00 037213 ER5 E,37213 ;C(E) WAS CLOBBERED
15862 042733 321 16 0 00 042721 JUMPL AC+2,F37210 ;LOOP ON ERROR SWITCH^
15863
15864 003722 ADR=ADR+1
15865 377777 777777 XX=XX+XX+1
15866 IFE <XX-1>,<XX=-2>
15867
15868 ;MULTIPLY -1 BY A RIPPLED 0
15869 400000 000001 MX=-XX
15870 IFL XX,<V1=0>
15871 777777 777777 IFG XX,<V1=-1>
15872 MOP1 (\ADR,XX,-1,-1,V1,MX)^
15873 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
15874 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15875 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
15876 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15877
15878 377777 777777 F37220: AA1=XX ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-21
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0313
15879 042734 200 14 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15880 777777 777777 AA2=-1 ;INITIAL C(AC+1)
15881 042735 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1
15882 777777 777777 AEE=-1 ;INITIAL C(E)
15883 042736 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND)
15884 042737 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15885 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC
15886 042740 312 14 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT?
15887 042741 003 14 0 00 037221 ER3 AC,37221 ;HIGH PRODUCT FAILED
15888 400000 000001 AR2=MX ;EXPECTED RESULT IN AC+1
15889 042742 312 15 0 00 044233 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT?
15890 042743 004 15 0 00 037222 ER4 AC+1,37222 ;LOW PRODUCT FAILED
15891 777777 777777 AEE=-1 ;INITIAL C(E)
15892 042744 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED?
15893 042745 005 12 0 00 037223 ER5 E,37223 ;C(E) WAS CLOBBERED
15894 042746 321 16 0 00 042734 JUMPL AC+2,F37220 ;LOOP ON ERROR SWITCH^
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0314
15895 525252 525252 N1=525252525252
15896 252525 252525 N2=252525252525
15897 000013 AC=13
15898 000011 E=<AC-2>&17
15899 SAVEAC (1,1)^
15900 042747 201 15 0 00 042747 MOVEI AC+2,. ;SAVE TEST PC
15901 042750 202 15 0 00 030051 MOVEM AC+2,TESTPC
15902 042751 201 15 0 00 000015 MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
15903 042752 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^
15904 000044 WW=^D36
15905 000000 XX=0
15906 000000 ZZ=0
15907
15908 REPEAT ^D35, < ;LAST CASE DIFFERENT
15909
15910 ADR=ADR+1
15911 WW=WW-1
15912 XX=XX+XX
15913 ZZ=ZZ+1
15914 IFE XX,<ZZ=0>
15915 IFE XX,<XX=1>
15916
15917 ;MULTIPLY 1010...1010 BY A FLOATING 1
15918 V1=N1
15919 V2=<N1_ZZ>!1B0
15920 IFE WW,<V2=0>
15921 IFL XX,<V3=N2+1>
15922 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
15923 MOP1 (\ADR,XX,0,V1,V3,V2)>
15924 ;LAST CASE DIFFERENT
15925
15926 003723 ADR=ADR+1
15927 000043 WW=WW-1
15928 000000 XX=XX+XX
15929 000001 ZZ=ZZ+1
15930 000000 IFE XX,<ZZ=0>
15931 000001 IFE XX,<XX=1>
15932
15933 ;MULTIPLY 1010...1010 BY A FLOATING 1
15934 525252 525252 V1=N1
15935 525252 525252 V2=<N1_ZZ>!1B0
15936 IFE WW,<V2=0>
15937 IFL XX,<V3=N2+1>
15938 777777 777777 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
15939 MOP1 (\ADR,XX,0,V1,V3,V2)^
15940 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
15941 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15942 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
15943 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15944
15945 000001 F37230: AA1=XX ;INITIAL C(AC)
15946 042753 200 13 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15947 000000 AA2=0 ;INITIAL C(AC+1)
15948 042754 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
15949 525252 525252 AEE=V1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-1
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0315
15950 042755 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
15951 042756 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15952 777777 777777 AR1=V3 ;EXPECTED RESULT IN AC
15953 042757 312 13 0 00 043777 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
15954 042760 003 13 0 00 037231 ER3 AC,37231 ;HIGH PRODUCT FAILED
15955 525252 525252 AR2=V2 ;EXPECTED RESULT IN AC+1
15956 042761 312 14 0 00 044234 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
15957 042762 004 14 0 00 037232 ER4 AC+1,37232 ;LOW PRODUCT FAILED
15958 525252 525252 AEE=V1 ;INITIAL C(E)
15959 042763 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
15960 042764 005 11 0 00 037233 ER5 E,37233 ;C(E) WAS CLOBBERED
15961 042765 321 15 0 00 042753 JUMPL AC+2,F37230 ;LOOP ON ERROR SWITCH^
15962 ;LAST CASE DIFFERENT
15963
15964 003724 ADR=ADR+1
15965 000042 WW=WW-1
15966 000002 XX=XX+XX
15967 000001 ZZ=ZZ+1
15968 IFE XX,<ZZ=0>
15969 IFE XX,<XX=1>
15970
15971 ;MULTIPLY 1010...1010 BY A FLOATING 1
15972 525252 525252 V1=N1
15973 652525 252524 V2=<N1_ZZ>!1B0
15974 IFE WW,<V2=0>
15975 IFL XX,<V3=N2+1>
15976 777777 777776 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
15977 MOP1 (\ADR,XX,0,V1,V3,V2)^
15978 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
15979 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
15980 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
15981 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
15982
15983 000002 F37240: AA1=XX ;INITIAL C(AC)
15984 042766 200 13 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
15985 000000 AA2=0 ;INITIAL C(AC+1)
15986 042767 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
15987 525252 525252 AEE=V1 ;INITIAL C(E)
15988 042770 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
15989 042771 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
15990 777777 777776 AR1=V3 ;EXPECTED RESULT IN AC
15991 042772 312 13 0 00 044044 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
15992 042773 003 13 0 00 037241 ER3 AC,37241 ;HIGH PRODUCT FAILED
15993 652525 252524 AR2=V2 ;EXPECTED RESULT IN AC+1
15994 042774 312 14 0 00 044235 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
15995 042775 004 14 0 00 037242 ER4 AC+1,37242 ;LOW PRODUCT FAILED
15996 525252 525252 AEE=V1 ;INITIAL C(E)
15997 042776 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
15998 042777 005 11 0 00 037243 ER5 E,37243 ;C(E) WAS CLOBBERED
15999 043000 321 15 0 00 042766 JUMPL AC+2,F37240 ;LOOP ON ERROR SWITCH^
16000 ;LAST CASE DIFFERENT
16001
16002 003725 ADR=ADR+1
16003 000041 WW=WW-1
16004 000004 XX=XX+XX
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-2
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0316
16005 000002 ZZ=ZZ+1
16006 IFE XX,<ZZ=0>
16007 IFE XX,<XX=1>
16008
16009 ;MULTIPLY 1010...1010 BY A FLOATING 1
16010 525252 525252 V1=N1
16011 525252 525250 V2=<N1_ZZ>!1B0
16012 IFE WW,<V2=0>
16013 IFL XX,<V3=N2+1>
16014 777777 777775 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16015 MOP1 (\ADR,XX,0,V1,V3,V2)^
16016 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16017 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16018 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16019 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16020
16021 000004 F37250: AA1=XX ;INITIAL C(AC)
16022 043001 200 13 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16023 000000 AA2=0 ;INITIAL C(AC+1)
16024 043002 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16025 525252 525252 AEE=V1 ;INITIAL C(E)
16026 043003 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16027 043004 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16028 777777 777775 AR1=V3 ;EXPECTED RESULT IN AC
16029 043005 312 13 0 00 044045 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16030 043006 003 13 0 00 037251 ER3 AC,37251 ;HIGH PRODUCT FAILED
16031 525252 525250 AR2=V2 ;EXPECTED RESULT IN AC+1
16032 043007 312 14 0 00 044236 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16033 043010 004 14 0 00 037252 ER4 AC+1,37252 ;LOW PRODUCT FAILED
16034 525252 525252 AEE=V1 ;INITIAL C(E)
16035 043011 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16036 043012 005 11 0 00 037253 ER5 E,37253 ;C(E) WAS CLOBBERED
16037 043013 321 15 0 00 043001 JUMPL AC+2,F37250 ;LOOP ON ERROR SWITCH^
16038 ;LAST CASE DIFFERENT
16039
16040 003726 ADR=ADR+1
16041 000040 WW=WW-1
16042 000010 XX=XX+XX
16043 000003 ZZ=ZZ+1
16044 IFE XX,<ZZ=0>
16045 IFE XX,<XX=1>
16046
16047 ;MULTIPLY 1010...1010 BY A FLOATING 1
16048 525252 525252 V1=N1
16049 652525 252520 V2=<N1_ZZ>!1B0
16050 IFE WW,<V2=0>
16051 IFL XX,<V3=N2+1>
16052 777777 777772 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16053 MOP1 (\ADR,XX,0,V1,V3,V2)^
16054 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16055 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16056 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16057 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16058
16059 000010 F37260: AA1=XX ;INITIAL C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-3
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0317
16060 043014 200 13 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16061 000000 AA2=0 ;INITIAL C(AC+1)
16062 043015 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16063 525252 525252 AEE=V1 ;INITIAL C(E)
16064 043016 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16065 043017 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16066 777777 777772 AR1=V3 ;EXPECTED RESULT IN AC
16067 043020 312 13 0 00 044124 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16068 043021 003 13 0 00 037261 ER3 AC,37261 ;HIGH PRODUCT FAILED
16069 652525 252520 AR2=V2 ;EXPECTED RESULT IN AC+1
16070 043022 312 14 0 00 044237 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16071 043023 004 14 0 00 037262 ER4 AC+1,37262 ;LOW PRODUCT FAILED
16072 525252 525252 AEE=V1 ;INITIAL C(E)
16073 043024 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16074 043025 005 11 0 00 037263 ER5 E,37263 ;C(E) WAS CLOBBERED
16075 043026 321 15 0 00 043014 JUMPL AC+2,F37260 ;LOOP ON ERROR SWITCH^
16076 ;LAST CASE DIFFERENT
16077
16078 003727 ADR=ADR+1
16079 000037 WW=WW-1
16080 000020 XX=XX+XX
16081 000004 ZZ=ZZ+1
16082 IFE XX,<ZZ=0>
16083 IFE XX,<XX=1>
16084
16085 ;MULTIPLY 1010...1010 BY A FLOATING 1
16086 525252 525252 V1=N1
16087 525252 525240 V2=<N1_ZZ>!1B0
16088 IFE WW,<V2=0>
16089 IFL XX,<V3=N2+1>
16090 777777 777765 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16091 MOP1 (\ADR,XX,0,V1,V3,V2)^
16092 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16093 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16094 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16095 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16096
16097 000020 F37270: AA1=XX ;INITIAL C(AC)
16098 043027 200 13 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16099 000000 AA2=0 ;INITIAL C(AC+1)
16100 043030 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16101 525252 525252 AEE=V1 ;INITIAL C(E)
16102 043031 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16103 043032 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16104 777777 777765 AR1=V3 ;EXPECTED RESULT IN AC
16105 043033 312 13 0 00 044130 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16106 043034 003 13 0 00 037271 ER3 AC,37271 ;HIGH PRODUCT FAILED
16107 525252 525240 AR2=V2 ;EXPECTED RESULT IN AC+1
16108 043035 312 14 0 00 044240 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16109 043036 004 14 0 00 037272 ER4 AC+1,37272 ;LOW PRODUCT FAILED
16110 525252 525252 AEE=V1 ;INITIAL C(E)
16111 043037 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16112 043040 005 11 0 00 037273 ER5 E,37273 ;C(E) WAS CLOBBERED
16113 043041 321 15 0 00 043027 JUMPL AC+2,F37270 ;LOOP ON ERROR SWITCH^
16114 ;LAST CASE DIFFERENT
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-4
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0318
16115
16116 003730 ADR=ADR+1
16117 000036 WW=WW-1
16118 000040 XX=XX+XX
16119 000005 ZZ=ZZ+1
16120 IFE XX,<ZZ=0>
16121 IFE XX,<XX=1>
16122
16123 ;MULTIPLY 1010...1010 BY A FLOATING 1
16124 525252 525252 V1=N1
16125 652525 252500 V2=<N1_ZZ>!1B0
16126 IFE WW,<V2=0>
16127 IFL XX,<V3=N2+1>
16128 777777 777752 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16129 MOP1 (\ADR,XX,0,V1,V3,V2)^
16130 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16131 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16132 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16133 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16134
16135 000040 F37300: AA1=XX ;INITIAL C(AC)
16136 043042 200 13 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16137 000000 AA2=0 ;INITIAL C(AC+1)
16138 043043 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16139 525252 525252 AEE=V1 ;INITIAL C(E)
16140 043044 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16141 043045 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16142 777777 777752 AR1=V3 ;EXPECTED RESULT IN AC
16143 043046 312 13 0 00 044241 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16144 043047 003 13 0 00 037301 ER3 AC,37301 ;HIGH PRODUCT FAILED
16145 652525 252500 AR2=V2 ;EXPECTED RESULT IN AC+1
16146 043050 312 14 0 00 044242 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16147 043051 004 14 0 00 037302 ER4 AC+1,37302 ;LOW PRODUCT FAILED
16148 525252 525252 AEE=V1 ;INITIAL C(E)
16149 043052 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16150 043053 005 11 0 00 037303 ER5 E,37303 ;C(E) WAS CLOBBERED
16151 043054 321 15 0 00 043042 JUMPL AC+2,F37300 ;LOOP ON ERROR SWITCH^
16152 ;LAST CASE DIFFERENT
16153
16154 003731 ADR=ADR+1
16155 000035 WW=WW-1
16156 000100 XX=XX+XX
16157 000006 ZZ=ZZ+1
16158 IFE XX,<ZZ=0>
16159 IFE XX,<XX=1>
16160
16161 ;MULTIPLY 1010...1010 BY A FLOATING 1
16162 525252 525252 V1=N1
16163 525252 525200 V2=<N1_ZZ>!1B0
16164 IFE WW,<V2=0>
16165 IFL XX,<V3=N2+1>
16166 777777 777725 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16167 MOP1 (\ADR,XX,0,V1,V3,V2)^
16168 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16169 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-5
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0319
16170 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16171 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16172
16173 000100 F37310: AA1=XX ;INITIAL C(AC)
16174 043055 200 13 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16175 000000 AA2=0 ;INITIAL C(AC+1)
16176 043056 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16177 525252 525252 AEE=V1 ;INITIAL C(E)
16178 043057 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16179 043060 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16180 777777 777725 AR1=V3 ;EXPECTED RESULT IN AC
16181 043061 312 13 0 00 044243 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16182 043062 003 13 0 00 037311 ER3 AC,37311 ;HIGH PRODUCT FAILED
16183 525252 525200 AR2=V2 ;EXPECTED RESULT IN AC+1
16184 043063 312 14 0 00 044244 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16185 043064 004 14 0 00 037312 ER4 AC+1,37312 ;LOW PRODUCT FAILED
16186 525252 525252 AEE=V1 ;INITIAL C(E)
16187 043065 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16188 043066 005 11 0 00 037313 ER5 E,37313 ;C(E) WAS CLOBBERED
16189 043067 321 15 0 00 043055 JUMPL AC+2,F37310 ;LOOP ON ERROR SWITCH^
16190 ;LAST CASE DIFFERENT
16191
16192 003732 ADR=ADR+1
16193 000034 WW=WW-1
16194 000200 XX=XX+XX
16195 000007 ZZ=ZZ+1
16196 IFE XX,<ZZ=0>
16197 IFE XX,<XX=1>
16198
16199 ;MULTIPLY 1010...1010 BY A FLOATING 1
16200 525252 525252 V1=N1
16201 652525 252400 V2=<N1_ZZ>!1B0
16202 IFE WW,<V2=0>
16203 IFL XX,<V3=N2+1>
16204 777777 777652 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16205 MOP1 (\ADR,XX,0,V1,V3,V2)^
16206 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16207 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16208 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16209 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16210
16211 000200 F37320: AA1=XX ;INITIAL C(AC)
16212 043070 200 13 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16213 000000 AA2=0 ;INITIAL C(AC+1)
16214 043071 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16215 525252 525252 AEE=V1 ;INITIAL C(E)
16216 043072 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16217 043073 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16218 777777 777652 AR1=V3 ;EXPECTED RESULT IN AC
16219 043074 312 13 0 00 044245 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16220 043075 003 13 0 00 037321 ER3 AC,37321 ;HIGH PRODUCT FAILED
16221 652525 252400 AR2=V2 ;EXPECTED RESULT IN AC+1
16222 043076 312 14 0 00 044246 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16223 043077 004 14 0 00 037322 ER4 AC+1,37322 ;LOW PRODUCT FAILED
16224 525252 525252 AEE=V1 ;INITIAL C(E)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-6
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0320
16225 043100 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16226 043101 005 11 0 00 037323 ER5 E,37323 ;C(E) WAS CLOBBERED
16227 043102 321 15 0 00 043070 JUMPL AC+2,F37320 ;LOOP ON ERROR SWITCH^
16228 ;LAST CASE DIFFERENT
16229
16230 003733 ADR=ADR+1
16231 000033 WW=WW-1
16232 000400 XX=XX+XX
16233 000010 ZZ=ZZ+1
16234 IFE XX,<ZZ=0>
16235 IFE XX,<XX=1>
16236
16237 ;MULTIPLY 1010...1010 BY A FLOATING 1
16238 525252 525252 V1=N1
16239 525252 525000 V2=<N1_ZZ>!1B0
16240 IFE WW,<V2=0>
16241 IFL XX,<V3=N2+1>
16242 777777 777525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16243 MOP1 (\ADR,XX,0,V1,V3,V2)^
16244 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16245 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16246 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16247 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16248
16249 000400 F37330: AA1=XX ;INITIAL C(AC)
16250 043103 200 13 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16251 000000 AA2=0 ;INITIAL C(AC+1)
16252 043104 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16253 525252 525252 AEE=V1 ;INITIAL C(E)
16254 043105 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16255 043106 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16256 777777 777525 AR1=V3 ;EXPECTED RESULT IN AC
16257 043107 312 13 0 00 044247 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16258 043110 003 13 0 00 037331 ER3 AC,37331 ;HIGH PRODUCT FAILED
16259 525252 525000 AR2=V2 ;EXPECTED RESULT IN AC+1
16260 043111 312 14 0 00 044250 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16261 043112 004 14 0 00 037332 ER4 AC+1,37332 ;LOW PRODUCT FAILED
16262 525252 525252 AEE=V1 ;INITIAL C(E)
16263 043113 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16264 043114 005 11 0 00 037333 ER5 E,37333 ;C(E) WAS CLOBBERED
16265 043115 321 15 0 00 043103 JUMPL AC+2,F37330 ;LOOP ON ERROR SWITCH^
16266 ;LAST CASE DIFFERENT
16267
16268 003734 ADR=ADR+1
16269 000032 WW=WW-1
16270 001000 XX=XX+XX
16271 000011 ZZ=ZZ+1
16272 IFE XX,<ZZ=0>
16273 IFE XX,<XX=1>
16274
16275 ;MULTIPLY 1010...1010 BY A FLOATING 1
16276 525252 525252 V1=N1
16277 652525 252000 V2=<N1_ZZ>!1B0
16278 IFE WW,<V2=0>
16279 IFL XX,<V3=N2+1>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-7
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0321
16280 777777 777252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16281 MOP1 (\ADR,XX,0,V1,V3,V2)^
16282 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16283 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16284 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16285 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16286
16287 001000 F37340: AA1=XX ;INITIAL C(AC)
16288 043116 200 13 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16289 000000 AA2=0 ;INITIAL C(AC+1)
16290 043117 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16291 525252 525252 AEE=V1 ;INITIAL C(E)
16292 043120 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16293 043121 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16294 777777 777252 AR1=V3 ;EXPECTED RESULT IN AC
16295 043122 312 13 0 00 044251 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16296 043123 003 13 0 00 037341 ER3 AC,37341 ;HIGH PRODUCT FAILED
16297 652525 252000 AR2=V2 ;EXPECTED RESULT IN AC+1
16298 043124 312 14 0 00 044252 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16299 043125 004 14 0 00 037342 ER4 AC+1,37342 ;LOW PRODUCT FAILED
16300 525252 525252 AEE=V1 ;INITIAL C(E)
16301 043126 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16302 043127 005 11 0 00 037343 ER5 E,37343 ;C(E) WAS CLOBBERED
16303 043130 321 15 0 00 043116 JUMPL AC+2,F37340 ;LOOP ON ERROR SWITCH^
16304 ;LAST CASE DIFFERENT
16305
16306 003735 ADR=ADR+1
16307 000031 WW=WW-1
16308 002000 XX=XX+XX
16309 000012 ZZ=ZZ+1
16310 IFE XX,<ZZ=0>
16311 IFE XX,<XX=1>
16312
16313 ;MULTIPLY 1010...1010 BY A FLOATING 1
16314 525252 525252 V1=N1
16315 525252 524000 V2=<N1_ZZ>!1B0
16316 IFE WW,<V2=0>
16317 IFL XX,<V3=N2+1>
16318 777777 776525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16319 MOP1 (\ADR,XX,0,V1,V3,V2)^
16320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16321 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16322 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16324
16325 002000 F37350: AA1=XX ;INITIAL C(AC)
16326 043131 200 13 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16327 000000 AA2=0 ;INITIAL C(AC+1)
16328 043132 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16329 525252 525252 AEE=V1 ;INITIAL C(E)
16330 043133 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16331 043134 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16332 777777 776525 AR1=V3 ;EXPECTED RESULT IN AC
16333 043135 312 13 0 00 044253 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16334 043136 003 13 0 00 037351 ER3 AC,37351 ;HIGH PRODUCT FAILED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-8
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0322
16335 525252 524000 AR2=V2 ;EXPECTED RESULT IN AC+1
16336 043137 312 14 0 00 044254 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16337 043140 004 14 0 00 037352 ER4 AC+1,37352 ;LOW PRODUCT FAILED
16338 525252 525252 AEE=V1 ;INITIAL C(E)
16339 043141 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16340 043142 005 11 0 00 037353 ER5 E,37353 ;C(E) WAS CLOBBERED
16341 043143 321 15 0 00 043131 JUMPL AC+2,F37350 ;LOOP ON ERROR SWITCH^
16342 ;LAST CASE DIFFERENT
16343
16344 003736 ADR=ADR+1
16345 000030 WW=WW-1
16346 004000 XX=XX+XX
16347 000013 ZZ=ZZ+1
16348 IFE XX,<ZZ=0>
16349 IFE XX,<XX=1>
16350
16351 ;MULTIPLY 1010...1010 BY A FLOATING 1
16352 525252 525252 V1=N1
16353 652525 250000 V2=<N1_ZZ>!1B0
16354 IFE WW,<V2=0>
16355 IFL XX,<V3=N2+1>
16356 777777 775252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16357 MOP1 (\ADR,XX,0,V1,V3,V2)^
16358 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16359 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16360 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16361 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16362
16363 004000 F37360: AA1=XX ;INITIAL C(AC)
16364 043144 200 13 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16365 000000 AA2=0 ;INITIAL C(AC+1)
16366 043145 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16367 525252 525252 AEE=V1 ;INITIAL C(E)
16368 043146 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16369 043147 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16370 777777 775252 AR1=V3 ;EXPECTED RESULT IN AC
16371 043150 312 13 0 00 044255 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16372 043151 003 13 0 00 037361 ER3 AC,37361 ;HIGH PRODUCT FAILED
16373 652525 250000 AR2=V2 ;EXPECTED RESULT IN AC+1
16374 043152 312 14 0 00 044256 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16375 043153 004 14 0 00 037362 ER4 AC+1,37362 ;LOW PRODUCT FAILED
16376 525252 525252 AEE=V1 ;INITIAL C(E)
16377 043154 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16378 043155 005 11 0 00 037363 ER5 E,37363 ;C(E) WAS CLOBBERED
16379 043156 321 15 0 00 043144 JUMPL AC+2,F37360 ;LOOP ON ERROR SWITCH^
16380 ;LAST CASE DIFFERENT
16381
16382 003737 ADR=ADR+1
16383 000027 WW=WW-1
16384 010000 XX=XX+XX
16385 000014 ZZ=ZZ+1
16386 IFE XX,<ZZ=0>
16387 IFE XX,<XX=1>
16388
16389 ;MULTIPLY 1010...1010 BY A FLOATING 1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-9
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0323
16390 525252 525252 V1=N1
16391 525252 520000 V2=<N1_ZZ>!1B0
16392 IFE WW,<V2=0>
16393 IFL XX,<V3=N2+1>
16394 777777 772525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16395 MOP1 (\ADR,XX,0,V1,V3,V2)^
16396 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16397 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16398 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16399 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16400
16401 010000 F37370: AA1=XX ;INITIAL C(AC)
16402 043157 200 13 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16403 000000 AA2=0 ;INITIAL C(AC+1)
16404 043160 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16405 525252 525252 AEE=V1 ;INITIAL C(E)
16406 043161 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16407 043162 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16408 777777 772525 AR1=V3 ;EXPECTED RESULT IN AC
16409 043163 312 13 0 00 044257 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16410 043164 003 13 0 00 037371 ER3 AC,37371 ;HIGH PRODUCT FAILED
16411 525252 520000 AR2=V2 ;EXPECTED RESULT IN AC+1
16412 043165 312 14 0 00 044260 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16413 043166 004 14 0 00 037372 ER4 AC+1,37372 ;LOW PRODUCT FAILED
16414 525252 525252 AEE=V1 ;INITIAL C(E)
16415 043167 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16416 043170 005 11 0 00 037373 ER5 E,37373 ;C(E) WAS CLOBBERED
16417 043171 321 15 0 00 043157 JUMPL AC+2,F37370 ;LOOP ON ERROR SWITCH^
16418 ;LAST CASE DIFFERENT
16419
16420 003740 ADR=ADR+1
16421 000026 WW=WW-1
16422 020000 XX=XX+XX
16423 000015 ZZ=ZZ+1
16424 IFE XX,<ZZ=0>
16425 IFE XX,<XX=1>
16426
16427 ;MULTIPLY 1010...1010 BY A FLOATING 1
16428 525252 525252 V1=N1
16429 652525 240000 V2=<N1_ZZ>!1B0
16430 IFE WW,<V2=0>
16431 IFL XX,<V3=N2+1>
16432 777777 765252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16433 MOP1 (\ADR,XX,0,V1,V3,V2)^
16434 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16435 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16436 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16437 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16438
16439 020000 F37400: AA1=XX ;INITIAL C(AC)
16440 043172 200 13 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16441 000000 AA2=0 ;INITIAL C(AC+1)
16442 043173 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16443 525252 525252 AEE=V1 ;INITIAL C(E)
16444 043174 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-10
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0324
16445 043175 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16446 777777 765252 AR1=V3 ;EXPECTED RESULT IN AC
16447 043176 312 13 0 00 044261 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16448 043177 003 13 0 00 037401 ER3 AC,37401 ;HIGH PRODUCT FAILED
16449 652525 240000 AR2=V2 ;EXPECTED RESULT IN AC+1
16450 043200 312 14 0 00 044262 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16451 043201 004 14 0 00 037402 ER4 AC+1,37402 ;LOW PRODUCT FAILED
16452 525252 525252 AEE=V1 ;INITIAL C(E)
16453 043202 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16454 043203 005 11 0 00 037403 ER5 E,37403 ;C(E) WAS CLOBBERED
16455 043204 321 15 0 00 043172 JUMPL AC+2,F37400 ;LOOP ON ERROR SWITCH^
16456 ;LAST CASE DIFFERENT
16457
16458 003741 ADR=ADR+1
16459 000025 WW=WW-1
16460 040000 XX=XX+XX
16461 000016 ZZ=ZZ+1
16462 IFE XX,<ZZ=0>
16463 IFE XX,<XX=1>
16464
16465 ;MULTIPLY 1010...1010 BY A FLOATING 1
16466 525252 525252 V1=N1
16467 525252 500000 V2=<N1_ZZ>!1B0
16468 IFE WW,<V2=0>
16469 IFL XX,<V3=N2+1>
16470 777777 752525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16471 MOP1 (\ADR,XX,0,V1,V3,V2)^
16472 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16473 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16474 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16475 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16476
16477 040000 F37410: AA1=XX ;INITIAL C(AC)
16478 043205 200 13 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16479 000000 AA2=0 ;INITIAL C(AC+1)
16480 043206 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16481 525252 525252 AEE=V1 ;INITIAL C(E)
16482 043207 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16483 043210 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16484 777777 752525 AR1=V3 ;EXPECTED RESULT IN AC
16485 043211 312 13 0 00 044263 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16486 043212 003 13 0 00 037411 ER3 AC,37411 ;HIGH PRODUCT FAILED
16487 525252 500000 AR2=V2 ;EXPECTED RESULT IN AC+1
16488 043213 312 14 0 00 044264 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16489 043214 004 14 0 00 037412 ER4 AC+1,37412 ;LOW PRODUCT FAILED
16490 525252 525252 AEE=V1 ;INITIAL C(E)
16491 043215 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16492 043216 005 11 0 00 037413 ER5 E,37413 ;C(E) WAS CLOBBERED
16493 043217 321 15 0 00 043205 JUMPL AC+2,F37410 ;LOOP ON ERROR SWITCH^
16494 ;LAST CASE DIFFERENT
16495
16496 003742 ADR=ADR+1
16497 000024 WW=WW-1
16498 100000 XX=XX+XX
16499 000017 ZZ=ZZ+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-11
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0325
16500 IFE XX,<ZZ=0>
16501 IFE XX,<XX=1>
16502
16503 ;MULTIPLY 1010...1010 BY A FLOATING 1
16504 525252 525252 V1=N1
16505 652525 200000 V2=<N1_ZZ>!1B0
16506 IFE WW,<V2=0>
16507 IFL XX,<V3=N2+1>
16508 777777 725252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16509 MOP1 (\ADR,XX,0,V1,V3,V2)^
16510 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16511 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16512 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16513 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16514
16515 100000 F37420: AA1=XX ;INITIAL C(AC)
16516 043220 200 13 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16517 000000 AA2=0 ;INITIAL C(AC+1)
16518 043221 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16519 525252 525252 AEE=V1 ;INITIAL C(E)
16520 043222 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16521 043223 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16522 777777 725252 AR1=V3 ;EXPECTED RESULT IN AC
16523 043224 312 13 0 00 044265 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16524 043225 003 13 0 00 037421 ER3 AC,37421 ;HIGH PRODUCT FAILED
16525 652525 200000 AR2=V2 ;EXPECTED RESULT IN AC+1
16526 043226 312 14 0 00 044266 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16527 043227 004 14 0 00 037422 ER4 AC+1,37422 ;LOW PRODUCT FAILED
16528 525252 525252 AEE=V1 ;INITIAL C(E)
16529 043230 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16530 043231 005 11 0 00 037423 ER5 E,37423 ;C(E) WAS CLOBBERED
16531 043232 321 15 0 00 043220 JUMPL AC+2,F37420 ;LOOP ON ERROR SWITCH^
16532 ;LAST CASE DIFFERENT
16533
16534 003743 ADR=ADR+1
16535 000023 WW=WW-1
16536 200000 XX=XX+XX
16537 000020 ZZ=ZZ+1
16538 IFE XX,<ZZ=0>
16539 IFE XX,<XX=1>
16540
16541 ;MULTIPLY 1010...1010 BY A FLOATING 1
16542 525252 525252 V1=N1
16543 525252 400000 V2=<N1_ZZ>!1B0
16544 IFE WW,<V2=0>
16545 IFL XX,<V3=N2+1>
16546 777777 652525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16547 MOP1 (\ADR,XX,0,V1,V3,V2)^
16548 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16549 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16550 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16551 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16552
16553 200000 F37430: AA1=XX ;INITIAL C(AC)
16554 043233 200 13 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-12
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0326
16555 000000 AA2=0 ;INITIAL C(AC+1)
16556 043234 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16557 525252 525252 AEE=V1 ;INITIAL C(E)
16558 043235 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16559 043236 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16560 777777 652525 AR1=V3 ;EXPECTED RESULT IN AC
16561 043237 312 13 0 00 044267 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16562 043240 003 13 0 00 037431 ER3 AC,37431 ;HIGH PRODUCT FAILED
16563 525252 400000 AR2=V2 ;EXPECTED RESULT IN AC+1
16564 043241 312 14 0 00 044270 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16565 043242 004 14 0 00 037432 ER4 AC+1,37432 ;LOW PRODUCT FAILED
16566 525252 525252 AEE=V1 ;INITIAL C(E)
16567 043243 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16568 043244 005 11 0 00 037433 ER5 E,37433 ;C(E) WAS CLOBBERED
16569 043245 321 15 0 00 043233 JUMPL AC+2,F37430 ;LOOP ON ERROR SWITCH^
16570 ;LAST CASE DIFFERENT
16571
16572 003744 ADR=ADR+1
16573 000022 WW=WW-1
16574 400000 XX=XX+XX
16575 000021 ZZ=ZZ+1
16576 IFE XX,<ZZ=0>
16577 IFE XX,<XX=1>
16578
16579 ;MULTIPLY 1010...1010 BY A FLOATING 1
16580 525252 525252 V1=N1
16581 652525 000000 V2=<N1_ZZ>!1B0
16582 IFE WW,<V2=0>
16583 IFL XX,<V3=N2+1>
16584 777777 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16585 MOP1 (\ADR,XX,0,V1,V3,V2)^
16586 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16587 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16588 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16589 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16590
16591 400000 F37440: AA1=XX ;INITIAL C(AC)
16592 043246 200 13 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16593 000000 AA2=0 ;INITIAL C(AC+1)
16594 043247 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16595 525252 525252 AEE=V1 ;INITIAL C(E)
16596 043250 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16597 043251 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16598 777777 525252 AR1=V3 ;EXPECTED RESULT IN AC
16599 043252 312 13 0 00 044271 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16600 043253 003 13 0 00 037441 ER3 AC,37441 ;HIGH PRODUCT FAILED
16601 652525 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16602 043254 312 14 0 00 044272 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16603 043255 004 14 0 00 037442 ER4 AC+1,37442 ;LOW PRODUCT FAILED
16604 525252 525252 AEE=V1 ;INITIAL C(E)
16605 043256 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16606 043257 005 11 0 00 037443 ER5 E,37443 ;C(E) WAS CLOBBERED
16607 043260 321 15 0 00 043246 JUMPL AC+2,F37440 ;LOOP ON ERROR SWITCH^
16608 ;LAST CASE DIFFERENT
16609
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-13
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0327
16610 003745 ADR=ADR+1
16611 000021 WW=WW-1
16612 000001 000000 XX=XX+XX
16613 000022 ZZ=ZZ+1
16614 IFE XX,<ZZ=0>
16615 IFE XX,<XX=1>
16616
16617 ;MULTIPLY 1010...1010 BY A FLOATING 1
16618 525252 525252 V1=N1
16619 525252 000000 V2=<N1_ZZ>!1B0
16620 IFE WW,<V2=0>
16621 IFL XX,<V3=N2+1>
16622 777777 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16623 MOP1 (\ADR,XX,0,V1,V3,V2)^
16624 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16625 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16626 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16627 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16628
16629 000001 000000 F37450: AA1=XX ;INITIAL C(AC)
16630 043261 200 13 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16631 000000 AA2=0 ;INITIAL C(AC+1)
16632 043262 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16633 525252 525252 AEE=V1 ;INITIAL C(E)
16634 043263 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16635 043264 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16636 777777 252525 AR1=V3 ;EXPECTED RESULT IN AC
16637 043265 312 13 0 00 044273 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16638 043266 003 13 0 00 037451 ER3 AC,37451 ;HIGH PRODUCT FAILED
16639 525252 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16640 043267 312 14 0 00 044274 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16641 043270 004 14 0 00 037452 ER4 AC+1,37452 ;LOW PRODUCT FAILED
16642 525252 525252 AEE=V1 ;INITIAL C(E)
16643 043271 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16644 043272 005 11 0 00 037453 ER5 E,37453 ;C(E) WAS CLOBBERED
16645 043273 321 15 0 00 043261 JUMPL AC+2,F37450 ;LOOP ON ERROR SWITCH^
16646 ;LAST CASE DIFFERENT
16647
16648 003746 ADR=ADR+1
16649 000020 WW=WW-1
16650 000002 000000 XX=XX+XX
16651 000023 ZZ=ZZ+1
16652 IFE XX,<ZZ=0>
16653 IFE XX,<XX=1>
16654
16655 ;MULTIPLY 1010...1010 BY A FLOATING 1
16656 525252 525252 V1=N1
16657 652524 000000 V2=<N1_ZZ>!1B0
16658 IFE WW,<V2=0>
16659 IFL XX,<V3=N2+1>
16660 777776 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16661 MOP1 (\ADR,XX,0,V1,V3,V2)^
16662 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16663 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16664 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-14
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0328
16665 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16666
16667 000002 000000 F37460: AA1=XX ;INITIAL C(AC)
16668 043274 200 13 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16669 000000 AA2=0 ;INITIAL C(AC+1)
16670 043275 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16671 525252 525252 AEE=V1 ;INITIAL C(E)
16672 043276 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16673 043277 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16674 777776 525252 AR1=V3 ;EXPECTED RESULT IN AC
16675 043300 312 13 0 00 044275 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16676 043301 003 13 0 00 037461 ER3 AC,37461 ;HIGH PRODUCT FAILED
16677 652524 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16678 043302 312 14 0 00 044276 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16679 043303 004 14 0 00 037462 ER4 AC+1,37462 ;LOW PRODUCT FAILED
16680 525252 525252 AEE=V1 ;INITIAL C(E)
16681 043304 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16682 043305 005 11 0 00 037463 ER5 E,37463 ;C(E) WAS CLOBBERED
16683 043306 321 15 0 00 043274 JUMPL AC+2,F37460 ;LOOP ON ERROR SWITCH^
16684 ;LAST CASE DIFFERENT
16685
16686 003747 ADR=ADR+1
16687 000017 WW=WW-1
16688 000004 000000 XX=XX+XX
16689 000024 ZZ=ZZ+1
16690 IFE XX,<ZZ=0>
16691 IFE XX,<XX=1>
16692
16693 ;MULTIPLY 1010...1010 BY A FLOATING 1
16694 525252 525252 V1=N1
16695 525250 000000 V2=<N1_ZZ>!1B0
16696 IFE WW,<V2=0>
16697 IFL XX,<V3=N2+1>
16698 777775 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16699 MOP1 (\ADR,XX,0,V1,V3,V2)^
16700 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16701 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16702 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16703 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16704
16705 000004 000000 F37470: AA1=XX ;INITIAL C(AC)
16706 043307 200 13 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16707 000000 AA2=0 ;INITIAL C(AC+1)
16708 043310 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16709 525252 525252 AEE=V1 ;INITIAL C(E)
16710 043311 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16711 043312 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16712 777775 252525 AR1=V3 ;EXPECTED RESULT IN AC
16713 043313 312 13 0 00 044277 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16714 043314 003 13 0 00 037471 ER3 AC,37471 ;HIGH PRODUCT FAILED
16715 525250 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16716 043315 312 14 0 00 044300 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16717 043316 004 14 0 00 037472 ER4 AC+1,37472 ;LOW PRODUCT FAILED
16718 525252 525252 AEE=V1 ;INITIAL C(E)
16719 043317 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-15
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0329
16720 043320 005 11 0 00 037473 ER5 E,37473 ;C(E) WAS CLOBBERED
16721 043321 321 15 0 00 043307 JUMPL AC+2,F37470 ;LOOP ON ERROR SWITCH^
16722 ;LAST CASE DIFFERENT
16723
16724 003750 ADR=ADR+1
16725 000016 WW=WW-1
16726 000010 000000 XX=XX+XX
16727 000025 ZZ=ZZ+1
16728 IFE XX,<ZZ=0>
16729 IFE XX,<XX=1>
16730
16731 ;MULTIPLY 1010...1010 BY A FLOATING 1
16732 525252 525252 V1=N1
16733 652520 000000 V2=<N1_ZZ>!1B0
16734 IFE WW,<V2=0>
16735 IFL XX,<V3=N2+1>
16736 777772 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16737 MOP1 (\ADR,XX,0,V1,V3,V2)^
16738 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16739 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16740 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16741 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16742
16743 000010 000000 F37500: AA1=XX ;INITIAL C(AC)
16744 043322 200 13 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16745 000000 AA2=0 ;INITIAL C(AC+1)
16746 043323 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16747 525252 525252 AEE=V1 ;INITIAL C(E)
16748 043324 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16749 043325 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16750 777772 525252 AR1=V3 ;EXPECTED RESULT IN AC
16751 043326 312 13 0 00 044301 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16752 043327 003 13 0 00 037501 ER3 AC,37501 ;HIGH PRODUCT FAILED
16753 652520 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16754 043330 312 14 0 00 044302 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16755 043331 004 14 0 00 037502 ER4 AC+1,37502 ;LOW PRODUCT FAILED
16756 525252 525252 AEE=V1 ;INITIAL C(E)
16757 043332 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16758 043333 005 11 0 00 037503 ER5 E,37503 ;C(E) WAS CLOBBERED
16759 043334 321 15 0 00 043322 JUMPL AC+2,F37500 ;LOOP ON ERROR SWITCH^
16760 ;LAST CASE DIFFERENT
16761
16762 003751 ADR=ADR+1
16763 000015 WW=WW-1
16764 000020 000000 XX=XX+XX
16765 000026 ZZ=ZZ+1
16766 IFE XX,<ZZ=0>
16767 IFE XX,<XX=1>
16768
16769 ;MULTIPLY 1010...1010 BY A FLOATING 1
16770 525252 525252 V1=N1
16771 525240 000000 V2=<N1_ZZ>!1B0
16772 IFE WW,<V2=0>
16773 IFL XX,<V3=N2+1>
16774 777765 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-16
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0330
16775 MOP1 (\ADR,XX,0,V1,V3,V2)^
16776 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16777 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16778 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16779 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16780
16781 000020 000000 F37510: AA1=XX ;INITIAL C(AC)
16782 043335 200 13 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16783 000000 AA2=0 ;INITIAL C(AC+1)
16784 043336 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16785 525252 525252 AEE=V1 ;INITIAL C(E)
16786 043337 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16787 043340 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16788 777765 252525 AR1=V3 ;EXPECTED RESULT IN AC
16789 043341 312 13 0 00 044303 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16790 043342 003 13 0 00 037511 ER3 AC,37511 ;HIGH PRODUCT FAILED
16791 525240 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16792 043343 312 14 0 00 044304 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16793 043344 004 14 0 00 037512 ER4 AC+1,37512 ;LOW PRODUCT FAILED
16794 525252 525252 AEE=V1 ;INITIAL C(E)
16795 043345 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16796 043346 005 11 0 00 037513 ER5 E,37513 ;C(E) WAS CLOBBERED
16797 043347 321 15 0 00 043335 JUMPL AC+2,F37510 ;LOOP ON ERROR SWITCH^
16798 ;LAST CASE DIFFERENT
16799
16800 003752 ADR=ADR+1
16801 000014 WW=WW-1
16802 000040 000000 XX=XX+XX
16803 000027 ZZ=ZZ+1
16804 IFE XX,<ZZ=0>
16805 IFE XX,<XX=1>
16806
16807 ;MULTIPLY 1010...1010 BY A FLOATING 1
16808 525252 525252 V1=N1
16809 652500 000000 V2=<N1_ZZ>!1B0
16810 IFE WW,<V2=0>
16811 IFL XX,<V3=N2+1>
16812 777752 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16813 MOP1 (\ADR,XX,0,V1,V3,V2)^
16814 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16815 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16816 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16817 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16818
16819 000040 000000 F37520: AA1=XX ;INITIAL C(AC)
16820 043350 200 13 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16821 000000 AA2=0 ;INITIAL C(AC+1)
16822 043351 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16823 525252 525252 AEE=V1 ;INITIAL C(E)
16824 043352 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16825 043353 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16826 777752 525252 AR1=V3 ;EXPECTED RESULT IN AC
16827 043354 312 13 0 00 044305 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16828 043355 003 13 0 00 037521 ER3 AC,37521 ;HIGH PRODUCT FAILED
16829 652500 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-17
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0331
16830 043356 312 14 0 00 044306 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16831 043357 004 14 0 00 037522 ER4 AC+1,37522 ;LOW PRODUCT FAILED
16832 525252 525252 AEE=V1 ;INITIAL C(E)
16833 043360 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16834 043361 005 11 0 00 037523 ER5 E,37523 ;C(E) WAS CLOBBERED
16835 043362 321 15 0 00 043350 JUMPL AC+2,F37520 ;LOOP ON ERROR SWITCH^
16836 ;LAST CASE DIFFERENT
16837
16838 003753 ADR=ADR+1
16839 000013 WW=WW-1
16840 000100 000000 XX=XX+XX
16841 000030 ZZ=ZZ+1
16842 IFE XX,<ZZ=0>
16843 IFE XX,<XX=1>
16844
16845 ;MULTIPLY 1010...1010 BY A FLOATING 1
16846 525252 525252 V1=N1
16847 525200 000000 V2=<N1_ZZ>!1B0
16848 IFE WW,<V2=0>
16849 IFL XX,<V3=N2+1>
16850 777725 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16851 MOP1 (\ADR,XX,0,V1,V3,V2)^
16852 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16853 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16854 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16855 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16856
16857 000100 000000 F37530: AA1=XX ;INITIAL C(AC)
16858 043363 200 13 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16859 000000 AA2=0 ;INITIAL C(AC+1)
16860 043364 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16861 525252 525252 AEE=V1 ;INITIAL C(E)
16862 043365 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16863 043366 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16864 777725 252525 AR1=V3 ;EXPECTED RESULT IN AC
16865 043367 312 13 0 00 044307 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16866 043370 003 13 0 00 037531 ER3 AC,37531 ;HIGH PRODUCT FAILED
16867 525200 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16868 043371 312 14 0 00 044310 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16869 043372 004 14 0 00 037532 ER4 AC+1,37532 ;LOW PRODUCT FAILED
16870 525252 525252 AEE=V1 ;INITIAL C(E)
16871 043373 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16872 043374 005 11 0 00 037533 ER5 E,37533 ;C(E) WAS CLOBBERED
16873 043375 321 15 0 00 043363 JUMPL AC+2,F37530 ;LOOP ON ERROR SWITCH^
16874 ;LAST CASE DIFFERENT
16875
16876 003754 ADR=ADR+1
16877 000012 WW=WW-1
16878 000200 000000 XX=XX+XX
16879 000031 ZZ=ZZ+1
16880 IFE XX,<ZZ=0>
16881 IFE XX,<XX=1>
16882
16883 ;MULTIPLY 1010...1010 BY A FLOATING 1
16884 525252 525252 V1=N1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-18
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0332
16885 652400 000000 V2=<N1_ZZ>!1B0
16886 IFE WW,<V2=0>
16887 IFL XX,<V3=N2+1>
16888 777652 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16889 MOP1 (\ADR,XX,0,V1,V3,V2)^
16890 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16891 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16892 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16893 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16894
16895 000200 000000 F37540: AA1=XX ;INITIAL C(AC)
16896 043376 200 13 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16897 000000 AA2=0 ;INITIAL C(AC+1)
16898 043377 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16899 525252 525252 AEE=V1 ;INITIAL C(E)
16900 043400 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16901 043401 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16902 777652 525252 AR1=V3 ;EXPECTED RESULT IN AC
16903 043402 312 13 0 00 044311 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16904 043403 003 13 0 00 037541 ER3 AC,37541 ;HIGH PRODUCT FAILED
16905 652400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16906 043404 312 14 0 00 044312 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16907 043405 004 14 0 00 037542 ER4 AC+1,37542 ;LOW PRODUCT FAILED
16908 525252 525252 AEE=V1 ;INITIAL C(E)
16909 043406 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16910 043407 005 11 0 00 037543 ER5 E,37543 ;C(E) WAS CLOBBERED
16911 043410 321 15 0 00 043376 JUMPL AC+2,F37540 ;LOOP ON ERROR SWITCH^
16912 ;LAST CASE DIFFERENT
16913
16914 003755 ADR=ADR+1
16915 000011 WW=WW-1
16916 000400 000000 XX=XX+XX
16917 000032 ZZ=ZZ+1
16918 IFE XX,<ZZ=0>
16919 IFE XX,<XX=1>
16920
16921 ;MULTIPLY 1010...1010 BY A FLOATING 1
16922 525252 525252 V1=N1
16923 525000 000000 V2=<N1_ZZ>!1B0
16924 IFE WW,<V2=0>
16925 IFL XX,<V3=N2+1>
16926 777525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16927 MOP1 (\ADR,XX,0,V1,V3,V2)^
16928 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16929 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16930 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16931 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16932
16933 000400 000000 F37550: AA1=XX ;INITIAL C(AC)
16934 043411 200 13 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16935 000000 AA2=0 ;INITIAL C(AC+1)
16936 043412 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16937 525252 525252 AEE=V1 ;INITIAL C(E)
16938 043413 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16939 043414 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-19
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0333
16940 777525 252525 AR1=V3 ;EXPECTED RESULT IN AC
16941 043415 312 13 0 00 044313 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16942 043416 003 13 0 00 037551 ER3 AC,37551 ;HIGH PRODUCT FAILED
16943 525000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16944 043417 312 14 0 00 044314 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16945 043420 004 14 0 00 037552 ER4 AC+1,37552 ;LOW PRODUCT FAILED
16946 525252 525252 AEE=V1 ;INITIAL C(E)
16947 043421 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16948 043422 005 11 0 00 037553 ER5 E,37553 ;C(E) WAS CLOBBERED
16949 043423 321 15 0 00 043411 JUMPL AC+2,F37550 ;LOOP ON ERROR SWITCH^
16950 ;LAST CASE DIFFERENT
16951
16952 003756 ADR=ADR+1
16953 000010 WW=WW-1
16954 001000 000000 XX=XX+XX
16955 000033 ZZ=ZZ+1
16956 IFE XX,<ZZ=0>
16957 IFE XX,<XX=1>
16958
16959 ;MULTIPLY 1010...1010 BY A FLOATING 1
16960 525252 525252 V1=N1
16961 652000 000000 V2=<N1_ZZ>!1B0
16962 IFE WW,<V2=0>
16963 IFL XX,<V3=N2+1>
16964 777252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
16965 MOP1 (\ADR,XX,0,V1,V3,V2)^
16966 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
16967 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
16968 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
16969 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
16970
16971 001000 000000 F37560: AA1=XX ;INITIAL C(AC)
16972 043424 200 13 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
16973 000000 AA2=0 ;INITIAL C(AC+1)
16974 043425 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
16975 525252 525252 AEE=V1 ;INITIAL C(E)
16976 043426 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
16977 043427 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
16978 777252 525252 AR1=V3 ;EXPECTED RESULT IN AC
16979 043430 312 13 0 00 044315 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
16980 043431 003 13 0 00 037561 ER3 AC,37561 ;HIGH PRODUCT FAILED
16981 652000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
16982 043432 312 14 0 00 044316 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
16983 043433 004 14 0 00 037562 ER4 AC+1,37562 ;LOW PRODUCT FAILED
16984 525252 525252 AEE=V1 ;INITIAL C(E)
16985 043434 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
16986 043435 005 11 0 00 037563 ER5 E,37563 ;C(E) WAS CLOBBERED
16987 043436 321 15 0 00 043424 JUMPL AC+2,F37560 ;LOOP ON ERROR SWITCH^
16988 ;LAST CASE DIFFERENT
16989
16990 003757 ADR=ADR+1
16991 000007 WW=WW-1
16992 002000 000000 XX=XX+XX
16993 000034 ZZ=ZZ+1
16994 IFE XX,<ZZ=0>
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-20
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0334
16995 IFE XX,<XX=1>
16996
16997 ;MULTIPLY 1010...1010 BY A FLOATING 1
16998 525252 525252 V1=N1
16999 524000 000000 V2=<N1_ZZ>!1B0
17000 IFE WW,<V2=0>
17001 IFL XX,<V3=N2+1>
17002 776525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
17003 MOP1 (\ADR,XX,0,V1,V3,V2)^
17004 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17005 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17006 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17007 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
17008
17009 002000 000000 F37570: AA1=XX ;INITIAL C(AC)
17010 043437 200 13 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17011 000000 AA2=0 ;INITIAL C(AC+1)
17012 043440 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17013 525252 525252 AEE=V1 ;INITIAL C(E)
17014 043441 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17015 043442 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17016 776525 252525 AR1=V3 ;EXPECTED RESULT IN AC
17017 043443 312 13 0 00 044317 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17018 043444 003 13 0 00 037571 ER3 AC,37571 ;HIGH PRODUCT FAILED
17019 524000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17020 043445 312 14 0 00 044320 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17021 043446 004 14 0 00 037572 ER4 AC+1,37572 ;LOW PRODUCT FAILED
17022 525252 525252 AEE=V1 ;INITIAL C(E)
17023 043447 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17024 043450 005 11 0 00 037573 ER5 E,37573 ;C(E) WAS CLOBBERED
17025 043451 321 15 0 00 043437 JUMPL AC+2,F37570 ;LOOP ON ERROR SWITCH^
17026 ;LAST CASE DIFFERENT
17027
17028 003760 ADR=ADR+1
17029 000006 WW=WW-1
17030 004000 000000 XX=XX+XX
17031 000035 ZZ=ZZ+1
17032 IFE XX,<ZZ=0>
17033 IFE XX,<XX=1>
17034
17035 ;MULTIPLY 1010...1010 BY A FLOATING 1
17036 525252 525252 V1=N1
17037 650000 000000 V2=<N1_ZZ>!1B0
17038 IFE WW,<V2=0>
17039 IFL XX,<V3=N2+1>
17040 775252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
17041 MOP1 (\ADR,XX,0,V1,V3,V2)^
17042 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17043 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17044 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17045 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
17046
17047 004000 000000 F37600: AA1=XX ;INITIAL C(AC)
17048 043452 200 13 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17049 000000 AA2=0 ;INITIAL C(AC+1)
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-21
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0335
17050 043453 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17051 525252 525252 AEE=V1 ;INITIAL C(E)
17052 043454 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17053 043455 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17054 775252 525252 AR1=V3 ;EXPECTED RESULT IN AC
17055 043456 312 13 0 00 044321 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17056 043457 003 13 0 00 037601 ER3 AC,37601 ;HIGH PRODUCT FAILED
17057 650000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17058 043460 312 14 0 00 044322 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17059 043461 004 14 0 00 037602 ER4 AC+1,37602 ;LOW PRODUCT FAILED
17060 525252 525252 AEE=V1 ;INITIAL C(E)
17061 043462 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17062 043463 005 11 0 00 037603 ER5 E,37603 ;C(E) WAS CLOBBERED
17063 043464 321 15 0 00 043452 JUMPL AC+2,F37600 ;LOOP ON ERROR SWITCH^
17064 ;LAST CASE DIFFERENT
17065
17066 003761 ADR=ADR+1
17067 000005 WW=WW-1
17068 010000 000000 XX=XX+XX
17069 000036 ZZ=ZZ+1
17070 IFE XX,<ZZ=0>
17071 IFE XX,<XX=1>
17072
17073 ;MULTIPLY 1010...1010 BY A FLOATING 1
17074 525252 525252 V1=N1
17075 520000 000000 V2=<N1_ZZ>!1B0
17076 IFE WW,<V2=0>
17077 IFL XX,<V3=N2+1>
17078 772525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
17079 MOP1 (\ADR,XX,0,V1,V3,V2)^
17080 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17081 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17082 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17083 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
17084
17085 010000 000000 F37610: AA1=XX ;INITIAL C(AC)
17086 043465 200 13 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17087 000000 AA2=0 ;INITIAL C(AC+1)
17088 043466 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17089 525252 525252 AEE=V1 ;INITIAL C(E)
17090 043467 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17091 043470 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17092 772525 252525 AR1=V3 ;EXPECTED RESULT IN AC
17093 043471 312 13 0 00 044323 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17094 043472 003 13 0 00 037611 ER3 AC,37611 ;HIGH PRODUCT FAILED
17095 520000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17096 043473 312 14 0 00 044324 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17097 043474 004 14 0 00 037612 ER4 AC+1,37612 ;LOW PRODUCT FAILED
17098 525252 525252 AEE=V1 ;INITIAL C(E)
17099 043475 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17100 043476 005 11 0 00 037613 ER5 E,37613 ;C(E) WAS CLOBBERED
17101 043477 321 15 0 00 043465 JUMPL AC+2,F37610 ;LOOP ON ERROR SWITCH^
17102 ;LAST CASE DIFFERENT
17103
17104 003762 ADR=ADR+1
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-22
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0336
17105 000004 WW=WW-1
17106 020000 000000 XX=XX+XX
17107 000037 ZZ=ZZ+1
17108 IFE XX,<ZZ=0>
17109 IFE XX,<XX=1>
17110
17111 ;MULTIPLY 1010...1010 BY A FLOATING 1
17112 525252 525252 V1=N1
17113 640000 000000 V2=<N1_ZZ>!1B0
17114 IFE WW,<V2=0>
17115 IFL XX,<V3=N2+1>
17116 765252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
17117 MOP1 (\ADR,XX,0,V1,V3,V2)^
17118 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17119 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17120 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17121 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
17122
17123 020000 000000 F37620: AA1=XX ;INITIAL C(AC)
17124 043500 200 13 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17125 000000 AA2=0 ;INITIAL C(AC+1)
17126 043501 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17127 525252 525252 AEE=V1 ;INITIAL C(E)
17128 043502 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17129 043503 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17130 765252 525252 AR1=V3 ;EXPECTED RESULT IN AC
17131 043504 312 13 0 00 044325 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17132 043505 003 13 0 00 037621 ER3 AC,37621 ;HIGH PRODUCT FAILED
17133 640000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17134 043506 312 14 0 00 044326 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17135 043507 004 14 0 00 037622 ER4 AC+1,37622 ;LOW PRODUCT FAILED
17136 525252 525252 AEE=V1 ;INITIAL C(E)
17137 043510 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17138 043511 005 11 0 00 037623 ER5 E,37623 ;C(E) WAS CLOBBERED
17139 043512 321 15 0 00 043500 JUMPL AC+2,F37620 ;LOOP ON ERROR SWITCH^
17140 ;LAST CASE DIFFERENT
17141
17142 003763 ADR=ADR+1
17143 000003 WW=WW-1
17144 040000 000000 XX=XX+XX
17145 000040 ZZ=ZZ+1
17146 IFE XX,<ZZ=0>
17147 IFE XX,<XX=1>
17148
17149 ;MULTIPLY 1010...1010 BY A FLOATING 1
17150 525252 525252 V1=N1
17151 500000 000000 V2=<N1_ZZ>!1B0
17152 IFE WW,<V2=0>
17153 IFL XX,<V3=N2+1>
17154 752525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
17155 MOP1 (\ADR,XX,0,V1,V3,V2)^
17156 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17157 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17158 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17159 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-23
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0337
17160
17161 040000 000000 F37630: AA1=XX ;INITIAL C(AC)
17162 043513 200 13 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17163 000000 AA2=0 ;INITIAL C(AC+1)
17164 043514 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17165 525252 525252 AEE=V1 ;INITIAL C(E)
17166 043515 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17167 043516 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17168 752525 252525 AR1=V3 ;EXPECTED RESULT IN AC
17169 043517 312 13 0 00 044327 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17170 043520 003 13 0 00 037631 ER3 AC,37631 ;HIGH PRODUCT FAILED
17171 500000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17172 043521 312 14 0 00 044330 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17173 043522 004 14 0 00 037632 ER4 AC+1,37632 ;LOW PRODUCT FAILED
17174 525252 525252 AEE=V1 ;INITIAL C(E)
17175 043523 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17176 043524 005 11 0 00 037633 ER5 E,37633 ;C(E) WAS CLOBBERED
17177 043525 321 15 0 00 043513 JUMPL AC+2,F37630 ;LOOP ON ERROR SWITCH^
17178 ;LAST CASE DIFFERENT
17179
17180 003764 ADR=ADR+1
17181 000002 WW=WW-1
17182 100000 000000 XX=XX+XX
17183 000041 ZZ=ZZ+1
17184 IFE XX,<ZZ=0>
17185 IFE XX,<XX=1>
17186
17187 ;MULTIPLY 1010...1010 BY A FLOATING 1
17188 525252 525252 V1=N1
17189 600000 000000 V2=<N1_ZZ>!1B0
17190 IFE WW,<V2=0>
17191 IFL XX,<V3=N2+1>
17192 725252 525252 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
17193 MOP1 (\ADR,XX,0,V1,V3,V2)^
17194 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17195 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17196 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17197 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
17198
17199 100000 000000 F37640: AA1=XX ;INITIAL C(AC)
17200 043526 200 13 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17201 000000 AA2=0 ;INITIAL C(AC+1)
17202 043527 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17203 525252 525252 AEE=V1 ;INITIAL C(E)
17204 043530 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17205 043531 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17206 725252 525252 AR1=V3 ;EXPECTED RESULT IN AC
17207 043532 312 13 0 00 044331 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17208 043533 003 13 0 00 037641 ER3 AC,37641 ;HIGH PRODUCT FAILED
17209 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17210 043534 312 14 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17211 043535 004 14 0 00 037642 ER4 AC+1,37642 ;LOW PRODUCT FAILED
17212 525252 525252 AEE=V1 ;INITIAL C(E)
17213 043536 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17214 043537 005 11 0 00 037643 ER5 E,37643 ;C(E) WAS CLOBBERED
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-24
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0338
17215 043540 321 15 0 00 043526 JUMPL AC+2,F37640 ;LOOP ON ERROR SWITCH^
17216 ;LAST CASE DIFFERENT
17217
17218 003765 ADR=ADR+1
17219 000001 WW=WW-1
17220 200000 000000 XX=XX+XX
17221 000042 ZZ=ZZ+1
17222 IFE XX,<ZZ=0>
17223 IFE XX,<XX=1>
17224
17225 ;MULTIPLY 1010...1010 BY A FLOATING 1
17226 525252 525252 V1=N1
17227 400000 000000 V2=<N1_ZZ>!1B0
17228 IFE WW,<V2=0>
17229 IFL XX,<V3=N2+1>
17230 652525 252525 IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
17231 MOP1 (\ADR,XX,0,V1,V3,V2)^
17232 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17233 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17234 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17235 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
17236
17237 200000 000000 F37650: AA1=XX ;INITIAL C(AC)
17238 043541 200 13 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17239 000000 AA2=0 ;INITIAL C(AC+1)
17240 043542 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17241 525252 525252 AEE=V1 ;INITIAL C(E)
17242 043543 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17243 043544 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17244 652525 252525 AR1=V3 ;EXPECTED RESULT IN AC
17245 043545 312 13 0 00 044332 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17246 043546 003 13 0 00 037651 ER3 AC,37651 ;HIGH PRODUCT FAILED
17247 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17248 043547 312 14 0 00 044043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17249 043550 004 14 0 00 037652 ER4 AC+1,37652 ;LOW PRODUCT FAILED
17250 525252 525252 AEE=V1 ;INITIAL C(E)
17251 043551 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17252 043552 005 11 0 00 037653 ER5 E,37653 ;C(E) WAS CLOBBERED
17253 043553 321 15 0 00 043541 JUMPL AC+2,F37650 ;LOOP ON ERROR SWITCH^
17254
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 21
DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0339
17255 ;MULTIPLY A 1010...1010 BY 400000,,0
17256 003766 ADR=ADR+1
17257 400000 000000 XX=400000000000
17258 525252 525252 V1=525252525252
17259 525252 525252 V3=525252525252
17260 400000 000000 V2=400000000000
17261
17262 MOP1 (\ADR,XX,0,V1,V3,V2)^
17263 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
17264 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
17265 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
17266 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
17267
17268 400000 000000 F37660: AA1=XX ;INITIAL C(AC)
17269 043554 200 13 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER)
17270 000000 AA2=0 ;INITIAL C(AC+1)
17271 043555 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1
17272 525252 525252 AEE=V1 ;INITIAL C(E)
17273 043556 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND)
17274 043557 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC)
17275 525252 525252 AR1=V3 ;EXPECTED RESULT IN AC
17276 043560 312 13 0 00 044234 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT?
17277 043561 003 13 0 00 037661 ER3 AC,37661 ;HIGH PRODUCT FAILED
17278 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1
17279 043562 312 14 0 00 044043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT?
17280 043563 004 14 0 00 037662 ER4 AC+1,37662 ;LOW PRODUCT FAILED
17281 525252 525252 AEE=V1 ;INITIAL C(E)
17282 043564 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED?
17283 043565 005 11 0 00 037663 ER5 E,37663 ;C(E) WAS CLOBBERED
17284 043566 321 15 0 00 043554 JUMPL AC+2,F37660 ;LOOP ON ERROR SWITCH^
17285 043567 254 00 0 00 030057 LAST1: JRST BEGEND
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0340
17286 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975
17287
17288 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S.
17289
17290 043570 202 00 0 00 044452 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0
17291 IFDEF EXCASB,<IFDEF KI10,<
17292 043571 336 00 0 00 030040 SKIPN KAIFLG
17293 043572 254 00 0 00 043577 JRST .+5
17294 043573 332 00 0 00 030037 SKIPE USER ;USER MODE ?
17295 043574 254 00 0 00 043577 JRST .+3
17296 043575 332 00 0 00 030055 SKIPE MARGIN
17297 043576 7 000 14 0 00 044333 DATAO APR,[IMGNOF,,ISPDOF] ;CLR MARGINS >>
17298 043577 202 01 0 00 044453 MOVEM 1,%ERAC1# ;SAVE AC1
17299 043600 202 02 0 00 044454 MOVEM 2,%ERAC2# ;SAVE AC2
17300 043601 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS
17301 043602 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO
17302 043603 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ?
17303 043604 350 00 0 00 044447 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT
17304 043605 200 00 0 00 044447 MOVE 0,MICNT
17305 043606 504 00 0 00 030114 HRL 0,$SVUPC
17306 043607 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10
17307 043610 332 00 0 00 030037 SKIPE USER ;AND NOT USER?
17308 043611 254 00 0 00 043613 JRST .+2
17309 043612 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT
17310 043613 402 00 0 00 044450 SETZM PROCED# ;CLEAR PROCEED FLAG
17311 043614 037 10 0 00 000002 SWITCH
17312 043615 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ?
17313 043616 254 00 0 00 043731 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN
17314 043617 200 01 0 00 030113 MOVE 1,$SVUUO
17315 043620 242 01 0 00 777745 LSH 1,-^D27
17316 043621 202 01 0 00 044451 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER
17317 043622 200 00 0 00 044452 MOVE 0,%ERAC0
17318 043623 200 01 0 00 044453 MOVE 1,%ERAC1
17319 043624 335 00 1 00 044446 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ?
17320 043625 254 00 0 00 043771 JRST %ERRS4 ;NO, SEE IF PRINT ALL
17321 043626 402 00 0 00 044447 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT
17322 043627 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ?
17323 043630 254 00 0 00 043634 JRST .+4 ;NO, DON'T NEED TITLE
17324 043631 336 00 0 00 044455 SKIPN %ERFST# ;FIRST ERROR ?
17325 043632 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE
17326 043633 476 00 0 00 044455 SETOM %ERFST
17327 043634 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ?
17328 043635 254 00 0 00 043641 JRST .+4 ;YES
17329 PMSG <^TEST PASS COUNT = >^
17330 043636 037 02 0 00 044334 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^
17331 043637 200 00 0 00 030047 MOVE PASCNT
17332 043640 037 15 0 00 000000 PNTDEC
17333 PMSG <^PC = >^
17334 043641 037 02 0 00 044340 PSIXM [SIXBIT\^PC = _\]^
17335 043642 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO
17336 043643 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE
17337 043644 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS
17338 XLIST
17339 IFDEF ERDIAG,<LIST
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0341
17340 ;DIAGNOSTIC FORMAT ERROR PRINTER
17341
17342 ;PRINT RESULT
17343
17344 043645 %ERMS2: PMSG <^RESULT = >^
17345 043645 037 02 0 00 044342 PSIXM [SIXBIT\^RESULT = _\]^
17346 043646 200 01 0 00 030113 MOVE 1,$SVUUO ;GET AC # OF UUO
17347 043647 242 01 0 00 777751 LSH 1,-27
17348 043650 405 01 0 00 000017 ANDI 1,17
17349 043651 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC)
17350 043652 307 01 0 00 000001 CAIG 1,1 ;IS AC # = TO SAVE AC ?
17351 043653 200 00 0 01 044452 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC
17352 043654 037 13 0 00 000000 PNTHW ;PRINT C(AC)
17353
17354 043655 200 00 0 00 030046 MOVE CONSW
17355 043656 603 00 0 00 000200 TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ?
17356 043657 254 00 0 00 043726 JRST %ERMORE ;NO, RESTORE AC'S ETC.
17357
17358 ;PRINT FAILURE DESCRIPTOR
17359
17360 043660 200 01 0 00 044451 MOVE 1,%ACS1A ;GET UUO NUMBER
17361 043661 307 01 0 00 000001 CAIG 1,1 ;PRINT DESCRIPTOR ?
17362 043662 254 00 0 00 043666 JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER
17363 043663 037 00 0 00 030242 PCRL
17364 043664 200 00 0 01 043712 MOVE %FLTTB(1)
17365 043665 037 17 0 00 000000 PNTAL ;PRINT FAULT DESCRIPTOR
17366
17367 ;PRINT FAULT NUMBER
17368
17369 043666 %ERMS3: PMSG <^FAULT NUMBER = >^
17370 043666 037 02 0 00 044344 PSIXM [SIXBIT\^FAULT NUMBER = _\]^
17371 043667 201 00 0 00 043711 MOVEI TLET
17372 043670 037 00 0 00 000000 PNTA ;PRINT TEST LETTER
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0342
17373
17374 043671 550 00 0 00 030113 HRRZ $SVUUO
17375 043672 602 00 0 00 700000 TRNE 700000
17376 043673 254 00 0 00 043707 JRST %ER6X
17377 043674 602 00 0 00 070000 TRNE 070000
17378 043675 254 00 0 00 043705 JRST %ER5X
17379 043676 602 00 0 00 007000 TRNE 007000
17380 043677 254 00 0 00 043703 JRST %ER4X
17381 043700 037 03 0 00 000000 PNT3 ;PRINT FAULT NUMBER
17382 043701 037 00 0 00 030242 %ER7X: PCRL
17383 043702 254 00 0 00 043726 JRST %ERMORE
17384
17385 043703 037 04 0 00 000000 %ER4X: PNT4
17386 043704 254 00 0 00 043701 JRST %ER7X
17387 043705 037 05 0 00 000000 %ER5X: PNT5
17388 043706 254 00 0 00 043701 JRST %ER7X
17389 043707 037 06 0 00 000000 %ER6X: PNT6
17390 043710 254 00 0 00 043701 JRST %ER7X
17391
17392 ;FAILURE DESCRIPTORS
17393
17394 043711 000000 000000 TLET: 0 ;TEST LETTER
17395 043712 000000 000000 %FLTTB: 0 ;DESCRIPTOR TABLE
17396 043713 000000 043776 %NODES: [0] ;NO DESCRIPTOR
17397 043714 000000 043776 SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR
17398 043715 000000 044347 $ACF: [ASCIZ/C(AC) FAILED/]
17399 043716 000000 044352 %AC1F: [ASCIZ/C(AC+1) FAILED/]
17400 043717 000000 044355 %EF: [ASCIZ/C(E) FAILED/]
17401 043720 000000 044360 %E1F: [ASCIZ/C(E+1) FAILED/]
17402 043721 000000 044363 %ARF: [ASCIZ/C(C(ACR)) FAILED/]
17403 043722 000000 044367 %AR1F: [ASCIZ/C(C(ACR+1)) FAILED/]
17404 043723 000000 044373 %ALF: [ASCIZ/C(C(ACL)) FAILED/]
17405 043724 000000 044377 %EEF: [ASCIZ/C(C(E)) FAILED/]
17406 043725 000000 044402 %FF: [ASCIZ/FLAG FAILED/]
17407 >
17408 XLIST
17409 LIST
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8
UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0343
17410 ;RESTORE AC'S AND RETURN OR HALT
17411
17412 043726 256 00 0 00 030101 %ERMORE:XCT ERMORE
17413 043727 037 16 0 00 000002 PNTMGN ;PRINT MARGINS
17414 043730 037 10 0 00 000002 SWITCH
17415
17416 043731 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK
17417 043732 254 00 0 00 043736 JRST .+4 ;NONE
17418 043733 201 00 0 00 043736 MOVEI .+3 ;SAVE CONT ADDRESS
17419 043734 202 00 0 00 000130 MOVEM JOBOPC
17420 043735 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER
17421 043736 200 00 0 00 030046 MOVE CONSW
17422 043737 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ?
17423 043740 037 14 0 00 000004 ERRHLT ;YES
17424 043741 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ?
17425 043742 476 00 0 00 044450 SETOM PROCED ;NO, SET THE PROCEED FLAG
17426 043743 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ?
17427 043744 037 01 0 00 000007 PBELL ;YES, GO RING BELL
17428
17429 043745 200 02 0 00 044454 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S
17430 043746 200 01 0 00 044453 MOVE 1,%ERAC1
17431 043747 476 00 1 00 044446 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1
17432 043750 336 00 0 00 044450 SKIPN PROCED ;LOOP ON ERROR ?
17433 043751 254 00 0 00 043761 JRST %ERRS5 ;YES
17434 043752 350 00 1 00 044446 AOS @ERRLOP ;NO, INC C(ERR LOOP AC)
17435 043753 350 00 1 00 044446 AOS @ERRLOP ;SO IT ='S 1
17436 043754 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ?
17437 043755 254 00 0 00 043761 JRST %ERRS5 ;NO, CONTINUE PROGRAM
17438 043756 200 00 0 00 030053 MOVE 0,ERRTLS ;YES
17439 043757 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ?
17440 043760 254 00 0 00 030061 JRST $BEND2
17441
17442 043761 200 00 0 00 044452 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM
17443 IFDEF EXCASB,<IFDEF KI10,<
17444 043762 336 00 0 00 030040 SKIPN KAIFLG
17445 043763 254 00 0 00 043770 JRST .+5
17446 043764 332 00 0 00 030037 SKIPE USER
17447 043765 254 00 0 00 043770 JRST .+3
17448 043766 332 00 0 00 030055 SKIPE MARGIN
17449 043767 7 000 14 0 00 030055 DATAO APR,MARGIN ;RESET MARGIN SYSTEM >>
17450 043770 254 00 0 00 030065 JRST UUOEXT
17451
17452 043771 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW
17453 043772 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ?
17454 043773 254 00 0 00 043731 JRST %ERRS1 ;NO
17455 043774 254 00 0 00 043626 JRST %ERMS1 ;YES
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0344
17456 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977
17457
17458 ;PROGRAM LITERALS
17459
17460 XLIST
17461 IFNDEF $LPAPER,<LIST>
17462 043775 LIT
17463 043775 101 113 000 000 000
17464 043776 000000 000000
17465 043777 777777 777777
17466 044000 000000 000001
17467 044001 000000 000002
17468 044002 000000 000004
17469 044003 000000 000010
17470 044004 000000 000020
17471 044005 000000 000040
17472 044006 000000 000100
17473 044007 000000 000200
17474 044010 000000 000400
17475 044011 000000 001000
17476 044012 000000 002000
17477 044013 000000 004000
17478 044014 000000 010000
17479 044015 000000 020000
17480 044016 000000 040000
17481 044017 000000 100000
17482 044020 000000 200000
17483 044021 000000 400000
17484 044022 000001 000000
17485 044023 000002 000000
17486 044024 000004 000000
17487 044025 000010 000000
17488 044026 000020 000000
17489 044027 000040 000000
17490 044030 000100 000000
17491 044031 000200 000000
17492 044032 000400 000000
17493 044033 001000 000000
17494 044034 002000 000000
17495 044035 004000 000000
17496 044036 010000 000000
17497 044037 020000 000000
17498 044040 040000 000000
17499 044041 100000 000000
17500 044042 200000 000000
17501 044043 400000 000000
17502 044044 777777 777776
17503 044045 777777 777775
17504 044046 777777 777773
17505 044047 777777 777767
17506 044050 777777 777757
17507 044051 777777 777737
17508 044052 777777 777677
17509 044053 777777 777577
17510 044054 777777 777377
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-1
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0345
17511 044055 777777 776777
17512 044056 777777 775777
17513 044057 777777 773777
17514 044060 777777 767777
17515 044061 777777 757777
17516 044062 777777 737777
17517 044063 777777 677777
17518 044064 777777 577777
17519 044065 777777 377777
17520 044066 777776 777777
17521 044067 777775 777777
17522 044070 777773 777777
17523 044071 777767 777777
17524 044072 777757 777777
17525 044073 777737 777777
17526 044074 777677 777777
17527 044075 777577 777777
17528 044076 777377 777777
17529 044077 776777 777777
17530 044100 775777 777777
17531 044101 773777 777777
17532 044102 767777 777777
17533 044103 757777 777777
17534 044104 737777 777777
17535 044105 677777 777777
17536 044106 577777 777777
17537 044107 377777 777777
17538 044110 000000 000003
17539 044111 000000 000005
17540 044112 000000 000006
17541 044113 000000 000007
17542 044114 000000 000011
17543 044115 000000 000012
17544 044116 000000 000013
17545 044117 000000 000014
17546 044120 000000 000015
17547 044121 000000 000016
17548 044122 000000 000017
17549 044123 777777 777774
17550 044124 777777 777772
17551 044125 777777 777771
17552 044126 777777 777770
17553 044127 777777 777766
17554 044130 777777 777765
17555 044131 777777 777764
17556 044132 777777 777763
17557 044133 777777 777762
17558 044134 777777 777761
17559 044135 777777 777760
17560 044136 777777 777740
17561 044137 777777 777700
17562 044140 777777 777600
17563 044141 777777 777400
17564 044142 777777 777000
17565 044143 777777 776000
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-2
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0346
17566 044144 777777 774000
17567 044145 777777 770000
17568 044146 777777 760000
17569 044147 777777 740000
17570 044150 777777 700000
17571 044151 777777 600000
17572 044152 777777 400000
17573 044153 777777 000000
17574 044154 777776 000000
17575 044155 777774 000000
17576 044156 777770 000000
17577 044157 777760 000000
17578 044160 777740 000000
17579 044161 777700 000000
17580 044162 777600 000000
17581 044163 777400 000000
17582 044164 777000 000000
17583 044165 776000 000000
17584 044166 774000 000000
17585 044167 770000 000000
17586 044170 760000 000000
17587 044171 740000 000000
17588 044172 700000 000000
17589 044173 600000 000000
17590 044174 000000 000021
17591 044175 000000 000041
17592 044176 000000 000101
17593 044177 000000 000201
17594 044200 000000 000401
17595 044201 000000 001001
17596 044202 000000 002001
17597 044203 000000 004001
17598 044204 000000 010001
17599 044205 000000 020001
17600 044206 000000 040001
17601 044207 000000 100001
17602 044210 000000 200001
17603 044211 000000 400001
17604 044212 000001 000001
17605 044213 000002 000001
17606 044214 000004 000001
17607 044215 000010 000001
17608 044216 000020 000001
17609 044217 000040 000001
17610 044220 000100 000001
17611 044221 000200 000001
17612 044222 000400 000001
17613 044223 001000 000001
17614 044224 002000 000001
17615 044225 004000 000001
17616 044226 010000 000001
17617 044227 020000 000001
17618 044230 040000 000001
17619 044231 100000 000001
17620 044232 200000 000001
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-3
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0347
17621 044233 400000 000001
17622 044234 525252 525252
17623 044235 652525 252524
17624 044236 525252 525250
17625 044237 652525 252520
17626 044240 525252 525240
17627 044241 777777 777752
17628 044242 652525 252500
17629 044243 777777 777725
17630 044244 525252 525200
17631 044245 777777 777652
17632 044246 652525 252400
17633 044247 777777 777525
17634 044250 525252 525000
17635 044251 777777 777252
17636 044252 652525 252000
17637 044253 777777 776525
17638 044254 525252 524000
17639 044255 777777 775252
17640 044256 652525 250000
17641 044257 777777 772525
17642 044260 525252 520000
17643 044261 777777 765252
17644 044262 652525 240000
17645 044263 777777 752525
17646 044264 525252 500000
17647 044265 777777 725252
17648 044266 652525 200000
17649 044267 777777 652525
17650 044270 525252 400000
17651 044271 777777 525252
17652 044272 652525 000000
17653 044273 777777 252525
17654 044274 525252 000000
17655 044275 777776 525252
17656 044276 652524 000000
17657 044277 777775 252525
17658 044300 525250 000000
17659 044301 777772 525252
17660 044302 652520 000000
17661 044303 777765 252525
17662 044304 525240 000000
17663 044305 777752 525252
17664 044306 652500 000000
17665 044307 777725 252525
17666 044310 525200 000000
17667 044311 777652 525252
17668 044312 652400 000000
17669 044313 777525 252525
17670 044314 525000 000000
17671 044315 777252 525252
17672 044316 652000 000000
17673 044317 776525 252525
17674 044320 524000 000000
17675 044321 775252 525252
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-4
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0348
17676 044322 650000 000000
17677 044323 772525 252525
17678 044324 520000 000000
17679 044325 765252 525252
17680 044326 640000 000000
17681 044327 752525 252525
17682 044330 500000 000000
17683 044331 725252 525252
17684 044332 652525 252525
17685 044333 002000 010000
17686 044334 76 64 45 63 64 00
17687 044335 60 41 63 63 00 43
17688 044336 57 65 56 64 00 35
17689 044337 00 77 00 00 00 00
17690 044340 76 60 43 00 35 00
17691 044341 00 00 77 00 00 00
17692 044342 76 62 45 63 65 54
17693 044343 64 00 00 35 00 77
17694 044344 76 46 41 65 54 64
17695 044345 00 56 65 55 42 45
17696 044346 62 00 35 00 77 00
17697 044347 103 050 101 103 051
17698 044350 040 106 101 111 114
17699 044351 105 104 000 000 000
17700 044352 103 050 101 103 053
17701 044353 061 051 040 106 101
17702 044354 111 114 105 104 000
17703 044355 103 050 105 051 040
17704 044356 106 101 111 114 105
17705 044357 104 000 000 000 000
17706 044360 103 050 105 053 061
17707 044361 051 040 106 101 111
17708 044362 114 105 104 000 000
17709 044363 103 050 103 050 101
17710 044364 103 122 051 051 040
17711 044365 106 101 111 114 105
17712 044366 104 000 000 000 000
17713 044367 103 050 103 050 101
17714 044370 103 122 053 061 051
17715 044371 051 040 106 101 111
17716 044372 114 105 104 000 000
17717 044373 103 050 103 050 101
17718 044374 103 114 051 051 040
17719 044375 106 101 111 114 105
17720 044376 104 000 000 000 000
17721 044377 103 050 103 050 105
17722 044400 051 051 040 106 101
17723 044401 111 114 105 104 000
17724 044402 106 114 101 107 040
17725 044403 106 101 111 114 105
17726 044404 104 000 000 000 000
17727 LIST
17728 044405 000000 000000 ENDSLD: 0
17729
17730 IFDEF DEBUG,<
DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-5
STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0349
17731 044406 PATCH: BLOCK DEBUG ;PATCHING AREA
17732 >
17733
17734 ;PROGRAM VARIABLES
17735 044446 VAR
17736
17737 IFDEF PGMEND,<
17738 044456 000000 000000 END: 0
17739 030000 END BEGIN >
NO ERRORS DETECTED
PROGRAM BREAK IS 000000
ABSLUTE BREAK IS 044457
CPU TIME USED 01:27.393
17K CORE USED