Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/dakak.seq
There are no other files named dakak.seq in the archive.
MAINDEC-10-DAKAK.TXT
                                                                                                                           SEQ 0001





 
			IDENTIFICATION
			--------------


	PRODUCT CODE:	MAINDEC-10-DAKAK-B-D

	PRODUCT NAME:	DECSYSTEM10 PDP-10 KA10 BASIC
			INSTRUCTION DIAGNOSTIC (11)

	FUNCTION:	MULTIPLY TEST

	VERSION:	0.2

	DATE RELEASED:	JANUARY 1977

	MAINTAINED BY:	DIAGNOSTIC ENGINEERING GROUP

	AUTHOR:		JOHN R. KIRCHOFF

COPYRIGHT(C) 1976,1977
DIGITAL EQUIPMENT CORPORATION
MARLBORO, MASS. 01752

THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY
ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH
THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE,
OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM
AND TO ONE WHO AGREES TO THESE LICENSE TERMS.  TITLE TO AND
OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
EQUIPMENT CORPORATION.

DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
							MAINDEC-10-DAKAK.TXT
							PAGE 2                                                             SEQ 0002

			TABLE OF CONTENTS
			-----------------

1.0	ABSTRACT

2.0	REQUIREMENTS

2.1	EQUIPMENT

2.2	STORAGE

2.3	PRELIMINARY PROGRAMS

3.0	PROGRAM PROCEDURES

3.1	LOADING PROCEDURE

3.2	STARTING PROCEDURE

3.3	OPERATING PROCEDURE

4.0	DATA SWITCH FUNCTIONS

5.0	ERRORS

6.0	ITERATION COUNTER

7.0	CYCLE TIME

8.0	OPERATIONAL VARIATIONS

9.0	MISCELLANEOUS

10.0	LISTING
							MAINDEC-10-DAKAK.TXT
							PAGE 3                                                             SEQ 0003

1.0	ABSTRACT

	THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE
	ELEVENTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS.
	THE DIAGNOSTIC TESTS THE MULTIPLY INSTRUCTION AND THE
	MULTIPLY ALGORITHM.

2.0	REQUIREMENTS

2.1	EQUIPMENT

	A PDP-10 KA10 EQUIPPED WITH A MINIMUM OF 32K OF MEMORY

	PAPER TAPE READER 
	CONSOLE TELETYPE
	DECTAPE
	LINE PRINTER (OPTIONAL)

2.2	STORAGE

	THE PROGRAM RUNS WITHIN 32K OF MEMORY.

2.3	PRELIMINARY PROGRAMS

	PREVIOUS PROCESSOR DIAGNOSTICS

3.0	PROGRAM PROCEDURES

3.1	LOADING PROCEDURE

	THIS DIAGNOSTIC REQUIRES THAT THE DECSYSTEM10 SUBROUTINE
	PROGRAM BE RESIDENT IN THE PDP-10.

	PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104)
	DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320)
	TIME SHARING - RUN UNDER DIAMON.
							MAINDEC-10-DAKAK.TXT
							PAGE 4                                                             SEQ 0004

3.2	STARTING PROCEDURE

	A.  SELECT OPERATIONAL CONSOLE DATA SWITCH SETTINGS (REFER TO
	    4.0 DATA SWITCH FUNCTIONS).

	B.  EXEC MODE

	    STAND-ALONE STARTING ADDRESS IS 30000.

	C.  USER MODE

	    RUN UNDER "DIAMON".
	    IN USER MODE THE FOLLOWING QUESTIONS WILL BE ASKED TO 
	    SELECT THE OPERATIONAL SWITCHES:

		    TELETYPE SWITCH CONTROL ? 0,S,Y OR N (CR) -

		    IF THE OPERATOR TYPES "N", THE ACTUAL CONSOLE
		    SWITCHES ARE USED.

		    IF THE OPERATOR TYPES "Y", THE FOLLOWING QUESTIONS
		    ARE ASKED AND THE OPERATOR RESPONDS BY TYPING
		    THE ANSWER AS SIX OCTAL DIGITS REPRESENTING
		    THE DESIRED SWITCH SETTINGS.

		    SPECIFY LH SWITCHES IN OCTAL-

		    SPECIFY RH SWITCHES IN OCTAL-

		    IF THE OPERATOR TYPES "0", ZERO'S ARE USED FOR
		    THE SWITCH SETTINGS.

		    IF THE OPERATOR TYPES "S", PREVIOUSLY SET SWITCHES
		    ARE USED.  THIS IS ONLY VALID UPON RESTARTING
		    OF AN INTERRUPTED PROGRAM.
							MAINDEC-10-DAKAK.TXT
							PAGE 5                                                             SEQ 0005

3.3	OPERATING PROCEDURE

	A.  TO THROUGHLY TEST ALL HARDWARE, ALL TEST CONTROL DATA 
	    SWITCHES SHOULD BE SET TO 0.

	B.  WHEN DEBUGGING HARDWARE, SET SWITCHES TO 0.  ALLOW THE 
	    TELETYPE TO PRINT THE ERROR MESSAGES.  THIS ALLOWS THE 
	    PROGRAM TO RUN A COMPLETE PASS AND THEN THE ERROR MESSAGES
	    MAY BE CORRELATED TO QUICKLY DIAGNOSE THE FAILURE.  IF A
	    HARDWARE PROBLEM IS SUCH THAT THE ERROR MESSAGES, AFTER THE
	    FIRST ONE, HAVE NO MEANING (FIRST ERROR CAUSES ALL FOLLOWING
	    TESTS TO FAIL) SET THE LOOP ON ERROR SWITCH AND RESTART THE
	    TEST FROM THE BEGINNING.  THE FIRST FAILURE WILL THEN CAUSE
	    THE PROGRAM TO ENTER A LOOP SUITABLE FOR SCOPING.

	    THE ERROR MESSAGE USED IN CONJUNCTION WITH THE LISTING AND
	    SCOPING IF NECESSARY SHOULD ALLOW THE FAILING CONPONENT 
	    TO BE ISOLATED AND REPLACED AND/OR REPAIRED.

	C.  WHEN TAKING MARGINS, SET DATA SWITCHES 'NOPNT' AND 'DING'.
	    THIS WILL INHIBIT PRINTOUT BUT WILL ALLOW THE TELETYPE
	    BELL TO BE RUNG WHEN A ERROR OCCURS.  IF THE MARGIN OBTAINED
	    IS UNACCEPTABLE, THE OPERATOR MAY REVERT TO STANDARD SWITCH
	    SETTINGS FOR DEBUGGING PURPOSES.

	D.  ERROR INFORMATION MAY BE OBTAINED QUICKLY BY PRINTING 
	    ERRORS ON THE LINE PRINTER.

	E.  IN THE EVENT OF A PRINT ROUTINE FAILURE THE 'NOPNT' SWITCH
	    AND THE 'ERSTOP' SWITCH MAY BE SET TO INHIBIT PRINTOUT 
	    BUT HALT THE PROGRAM POINTING TO THE ERROR.
							MAINDEC-10-DAKAK.TXT
							PAGE 6                                                             SEQ 0006

4.0	DATA SWITCH FUNCTIONS

	SWITCH		STATE	FUNCTION
	------		-----	--------

	0    ABORT	0	NORMAL OPERATION
			1	ABORT AT END OF PASS

	1    RSTART		NOT USED

	2    TOTALS		NOT USED

	3    NOPNT	0	NORMAL TYPEOUT
			1	INHIBIT ALL PRINT/TYPEOUT
				(EXCEPT FORCED)

	4    PNTLPT	0	NORMAL OUTPUT TO TTY
			1	PRINT ALL DATA ON LPT
				(LOGICAL DEVICE, USER MODE)

	5    DING	0	NO FUNCTION
			1	RING TTY BELL ON ERROR

	6    LOOPER	0	PROCEED TO NEXT TEST
			1	ENTER SCOPE LOOP ON TEST ERROR

	7    ERSTOP	0	NO FUNCTION
			1	HALT ON TEST ERROR

	8    PALERS	0	PRINT ONLY FIRST ERROR WHEN LOOPING
			1	PRINT ALL ERRORS, EVEN IF SAME ERROR

	9    RELIAB		NOT USED

	10   TXTINH	0	PRINT FULL ERROR MESSAGES.
			1	INHIBIT COMMENT PORTION OF 
				ERROR MESSAGES.

	11   INHPAG	0	ALLOW PAGING AND TRAP ENABLE
			1	INHIBIT PAGING AND TRAPPING

	12   MODDVC		NOT USED

	13   INHCSH		NOT USED
							MAINDEC-10-DAKAK.TXT
							PAGE 7                                                             SEQ 0007

5.0	ERRORS

	ERRORS ARE PRINTED ON THE TTY OR LINE PRINTER.  THE ERROR 
	PRINTOUT CONTAINS THE TEST TITLE, THE PC OF THE FAILURE, ERROR
	NUMBER AND THE CONTENTS OF AN APPLICABLE AC.

	THE PC VALUE IS USEFUL IN RELATING THE FAILURE TO THE LISTING.
	THE ERROR NUMBER IS PROVIDED SUCH THAT AN ERROR DICTIONARY MAY
	BE MADE AT SOME FUTURE DATE.

	WHEN THE SCOPE LOOP MODE IS USED THE MI REGISTER WILL COUNT 
	FOR EACH OCCURANCE OF AN ERROR.  IF AN AUDIO INDICATION OF
	A CONTINUING ERROR IS DESIRED THE 'DING' SWITCH MAY BE SET.

6.0	ITERATION COUNTER

	THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEMORY
	INDICATORS (MI).  THIS COUNT IS A DECREMENTING COUNT AND 
	INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION.

7.0	CYCLE TIME

	THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND
	IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS,
	ETC.
							MAINDEC-10-DAKAK.TXT
							PAGE 8                                                             SEQ 0008

8.0	OPERATIONAL VARIATIONS

	A.  DIAGNOSTIC MONITOR

	    THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PROVIDE
	    RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PROVIDE A
	    QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR AREA
	    OF THE PROCESSOR.  CERTAIN PROCEDURES ARE USED WHEN THE
	    PROGRAM IS USED IN THIS MANNER.  THEY ARE:

	    1.	THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PROGRAM
		AND STARTS IT AT LOCATION 30002.

	    2.	MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MONITOR
		CONTROL WORD.
			LH = 0, STAND-ALONE OPERATION
			    -1, RUNNING UNDER DIAGNOSTIC MONITOR

			RH = RIGHT HALF OF CONSOLE SWITCHES IF UNDER
			     DIAGNOSTIC MONITOR CONTROL.

	B.  USER MODE

	    TO OUTPUT THE PRINTED ERROR MESSAGES TO A USER SPECIFIED
	    DEVICE IN USER MODE, ASSIGN THE DESIRED OUTPUT DEVICE TO
	    DEVICE NAME 'DEV' AND SET SWITCH 'PNTLPT'.  THE PHYSICAL
	    DEVICE USED CAN BE ANY DEVICE THAT CAN ACCEPT ASCII OUTPUT
	    FORMAT SUCH AS LPT, DSK, DTA, ETC.  THE CORRESPONDING 
	    OUTPUT FILE IS 'DAKAK.TMP'

	    EXAMPLE DEVICE ASSIGNMENT:

	    .ASSIGN DSK DEV

	    IN USER MODE THE PROGRAM WILL MAKE 1000(8) PASSES AND THEN
	    RETURN TO DIAMON COMMAND MODE.
							MAINDEC-10-DAKAK.TXT
							PAGE 9                                                             SEQ 0009

8.0	OPERATIONAL VARIATIONS (CON'T)

	THE OUTPUT FILE (IF USED) MAY THEN BE LISTED BY USING THE
	NORMAL MONITOR COMMANDS (PRINT, LIST, TYPE, PIP, ETC.).

	IF THE PROGRAM IS ABORTED BEFORE COMPLETION (BY ^C, ETC.) THE
	OUTPUT FILE MAY BE CLOSED BY USING THE MONITOR 'REENTER' 
	COMMAND.

	C.  SYSTEM EXERCISER

	    START ADDRESS IS 30003.  DATA SWITCHES ARE PRESTORED IN
	    'SWTEXR' LOC 30023.

9.0	MISCELLANEOUS

	THE NON-EX-MEMORY AND PARITY STOP SWITCHES SHOULD BE RESET 
	(0).  THESE ERRORS, ILLEGAL UUO'S AND OTHER ERRORS OF THIS
	TYPE ARE HANDLED BY PRINTOUT ON THE TELETYPE.

10.0	LISTING
	THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAK
                                                                                                                           SEQ 0010
************************************************************************

PRODUCT CODE:		MAINDEC-10-DAKAK

PRODUCT NAME:		BASIC INSTRUCTION DIAGNOSTIC #11

DATE RELEASED:		JANUARY 1977

VERSION:		0.2

UPDATE AUTHOR:		JOHN R. KIRCHOFF

CHANGES MADE:

	1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.

************************************************************************

ORIGINAL VERSION:	0.1

ORIGINAL AUTHOR:	RICHARD MALISKA

ORIGINAL RELEASE:	16-MAR-72

************************************************************************
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

AA1	   728#	   774#	   803#	   832#	   861#	   890#	   919#	   948#	   977#	  1006#	  1035#	  1064#	  1093#	  1122#
	  1151#	  1180#	  1209#	  1238#	  1267#	  1296#	  1325#	  1354#	  1383#	  1412#	  1441#	  1470#	  1499#	  1528#    SEQ 0350
	  1557#	  1586#	  1615#	  1644#	  1673#	  1702#	  1731#	  1760#	  1789#	  1834#	  1863#	  1892#	  1921#	  1950#
	  1979#	  2008#	  2037#	  2066#	  2095#	  2124#	  2153#	  2182#	  2211#	  2240#	  2269#	  2298#	  2327#	  2356#
	  2385#	  2414#	  2443#	  2472#	  2501#	  2530#	  2559#	  2588#	  2617#	  2646#	  2675#	  2704#	  2733#	  2762#
	  2791#	  2820#	  2849#	  2882#	  2951#	  2990#	  3029#	  3068#	  3107#	  3146#	  3185#	  3224#	  3263#	  3302#
	  3341#	  3380#	  3419#	  3458#	  3497#	  3536#	  3615#	  3660#	  3705#	  3750#	  3795#	  3840#	  3885#	  3930#
	  3975#	  4020#	  4065#	  4110#	  4155#	  4200#	  4245#	  4290#	  4337#	  4366#	  4395#	  4424#	  4453#	  4482#
	  4511#	  4540#	  4569#	  4598#	  4627#	  4656#	  4685#	  4714#	  4743#	  4772#	  4801#	  4830#	  4859#	  4888#
	  4917#	  4946#	  4975#	  5004#	  5033#	  5062#	  5091#	  5120#	  5149#	  5178#	  5207#	  5236#	  5265#	  5294#
	  5323#	  5352#	  5397#	  5426#	  5455#	  5484#	  5513#	  5542#	  5571#	  5600#	  5629#	  5658#	  5687#	  5716#
	  5745#	  5774#	  5803#	  5832#	  5861#	  5890#	  5919#	  5948#	  5977#	  6006#	  6035#	  6064#	  6093#	  6122#
	  6151#	  6180#	  6209#	  6238#	  6267#	  6296#	  6325#	  6354#	  6383#	  6412#	  6445#	  6497#	  6528#	  6559#
	  6590#	  6621#	  6652#	  6683#	  6714#	  6745#	  6776#	  6807#	  6838#	  6869#	  6900#	  6931#	  6962#	  6993#
	  7024#	  7055#	  7086#	  7117#	  7148#	  7179#	  7210#	  7241#	  7272#	  7303#	  7334#	  7365#	  7396#	  7427#
	  7458#	  7489#	  7520#	  7551#	  7582#	  7631#	  7662#	  7693#	  7724#	  7755#	  7786#	  7817#	  7848#	  7879#
	  7910#	  7941#	  7972#	  8003#	  8034#	  8065#	  8096#	  8127#	  8158#	  8189#	  8220#	  8251#	  8282#	  8313#
	  8344#	  8375#	  8406#	  8437#	  8468#	  8499#	  8530#	  8561#	  8592#	  8623#	  8654#	  8685#	  8712#	  8769#
	  8804#	  8839#	  8874#	  8909#	  8944#	  8979#	  9014#	  9049#	  9084#	  9119#	  9154#	  9189#	  9224#	  9259#
	  9294#	  9329#	  9364#	  9399#	  9434#	  9469#	  9504#	  9539#	  9574#	  9609#	  9644#	  9679#	  9714#	  9749#
	  9784#	  9819#	  9854#	  9889#	  9924#	  9959#	  9994#	 10051#	 10086#	 10121#	 10156#	 10191#	 10226#	 10261#
	 10296#	 10331#	 10366#	 10401#	 10436#	 10471#	 10506#	 10541#	 10576#	 10611#	 10646#	 10681#	 10716#	 10751#
	 10786#	 10821#	 10856#	 10891#	 10926#	 10961#	 10996#	 11031#	 11066#	 11101#	 11136#	 11171#	 11206#	 11241#
	 11268#	 11317#	 11348#	 11379#	 11410#	 11441#	 11472#	 11503#	 11534#	 11565#	 11596#	 11627#	 11658#	 11689#
	 11720#	 11751#	 11782#	 11813#	 11844#	 11875#	 11906#	 11937#	 11968#	 11999#	 12030#	 12061#	 12092#	 12123#
	 12154#	 12185#	 12216#	 12247#	 12278#	 12309#	 12340#	 12371#	 12402#	 12451#	 12482#	 12513#	 12544#	 12575#
	 12606#	 12637#	 12668#	 12699#	 12730#	 12761#	 12792#	 12823#	 12854#	 12885#	 12916#	 12947#	 12978#	 13009#
	 13040#	 13071#	 13102#	 13133#	 13164#	 13195#	 13226#	 13257#	 13288#	 13319#	 13350#	 13381#	 13412#	 13443#
	 13474#	 13505#	 13536#	 13587#	 13619#	 13651#	 13683#	 13715#	 13747#	 13779#	 13811#	 13843#	 13875#	 13907#
	 13939#	 13971#	 14003#	 14035#	 14067#	 14099#	 14131#	 14163#	 14195#	 14227#	 14259#	 14291#	 14323#	 14355#
	 14387#	 14419#	 14451#	 14483#	 14515#	 14547#	 14579#	 14611#	 14643#	 14675#	 14707#	 14758#	 14790#	 14822#
	 14854#	 14886#	 14918#	 14950#	 14982#	 15014#	 15046#	 15078#	 15110#	 15142#	 15174#	 15206#	 15238#	 15270#
	 15302#	 15334#	 15366#	 15398#	 15430#	 15462#	 15494#	 15526#	 15558#	 15590#	 15622#	 15654#	 15686#	 15718#
	 15750#	 15782#	 15814#	 15846#	 15878#	 15945#	 15983#	 16021#	 16059#	 16097#	 16135#	 16173#	 16211#	 16249#
	 16287#	 16325#	 16363#	 16401#	 16439#	 16477#	 16515#	 16553#	 16591#	 16629#	 16667#	 16705#	 16743#	 16781#
	 16819#	 16857#	 16895#	 16933#	 16971#	 17009#	 17047#	 17085#	 17123#	 17161#	 17199#	 17237#	 17268#
AA2	   730#	   776#	   805#	   834#	   863#	   892#	   921#	   950#	   979#	  1008#	  1037#	  1066#	  1095#	  1124#
	  1153#	  1182#	  1211#	  1240#	  1269#	  1298#	  1327#	  1356#	  1385#	  1414#	  1443#	  1472#	  1501#	  1530#
	  1559#	  1588#	  1617#	  1646#	  1675#	  1704#	  1733#	  1762#	  1791#	  1836#	  1865#	  1894#	  1923#	  1952#
	  1981#	  2010#	  2039#	  2068#	  2097#	  2126#	  2155#	  2184#	  2213#	  2242#	  2271#	  2300#	  2329#	  2358#
	  2387#	  2416#	  2445#	  2474#	  2503#	  2532#	  2561#	  2590#	  2619#	  2648#	  2677#	  2706#	  2735#	  2764#
	  2793#	  2822#	  2851#	  2884#	  2953#	  2992#	  3031#	  3070#	  3109#	  3148#	  3187#	  3226#	  3265#	  3304#
	  3343#	  3382#	  3421#	  3460#	  3499#	  3538#	  3617#	  3662#	  3707#	  3752#	  3797#	  3842#	  3887#	  3932#
	  3977#	  4022#	  4067#	  4112#	  4157#	  4202#	  4247#	  4292#	  4339#	  4368#	  4397#	  4426#	  4455#	  4484#
	  4513#	  4542#	  4571#	  4600#	  4629#	  4658#	  4687#	  4716#	  4745#	  4774#	  4803#	  4832#	  4861#	  4890#
	  4919#	  4948#	  4977#	  5006#	  5035#	  5064#	  5093#	  5122#	  5151#	  5180#	  5209#	  5238#	  5267#	  5296#
	  5325#	  5354#	  5399#	  5428#	  5457#	  5486#	  5515#	  5544#	  5573#	  5602#	  5631#	  5660#	  5689#	  5718#
	  5747#	  5776#	  5805#	  5834#	  5863#	  5892#	  5921#	  5950#	  5979#	  6008#	  6037#	  6066#	  6095#	  6124#
	  6153#	  6182#	  6211#	  6240#	  6269#	  6298#	  6327#	  6356#	  6385#	  6414#	  6447#	  6499#	  6530#	  6561#
	  6592#	  6623#	  6654#	  6685#	  6716#	  6747#	  6778#	  6809#	  6840#	  6871#	  6902#	  6933#	  6964#	  6995#
	  7026#	  7057#	  7088#	  7119#	  7150#	  7181#	  7212#	  7243#	  7274#	  7305#	  7336#	  7367#	  7398#	  7429#
	  7460#	  7491#	  7522#	  7553#	  7584#	  7633#	  7664#	  7695#	  7726#	  7757#	  7788#	  7819#	  7850#	  7881#
	  7912#	  7943#	  7974#	  8005#	  8036#	  8067#	  8098#	  8129#	  8160#	  8191#	  8222#	  8253#	  8284#	  8315#
	  8346#	  8377#	  8408#	  8439#	  8470#	  8501#	  8532#	  8563#	  8594#	  8625#	  8656#	  8687#	  8714#	  8771#
	  8806#	  8841#	  8876#	  8911#	  8946#	  8981#	  9016#	  9051#	  9086#	  9121#	  9156#	  9191#	  9226#	  9261#    SEQ 0351
	  9296#	  9331#	  9366#	  9401#	  9436#	  9471#	  9506#	  9541#	  9576#	  9611#	  9646#	  9681#	  9716#	  9751#
	  9786#	  9821#	  9856#	  9891#	  9926#	  9961#	  9996#	 10053#	 10088#	 10123#	 10158#	 10193#	 10228#	 10263#
	 10298#	 10333#	 10368#	 10403#	 10438#	 10473#	 10508#	 10543#	 10578#	 10613#	 10648#	 10683#	 10718#	 10753#
	 10788#	 10823#	 10858#	 10893#	 10928#	 10963#	 10998#	 11033#	 11068#	 11103#	 11138#	 11173#	 11208#	 11243#
	 11270#	 11319#	 11350#	 11381#	 11412#	 11443#	 11474#	 11505#	 11536#	 11567#	 11598#	 11629#	 11660#	 11691#
	 11722#	 11753#	 11784#	 11815#	 11846#	 11877#	 11908#	 11939#	 11970#	 12001#	 12032#	 12063#	 12094#	 12125#
	 12156#	 12187#	 12218#	 12249#	 12280#	 12311#	 12342#	 12373#	 12404#	 12453#	 12484#	 12515#	 12546#	 12577#
	 12608#	 12639#	 12670#	 12701#	 12732#	 12763#	 12794#	 12825#	 12856#	 12887#	 12918#	 12949#	 12980#	 13011#
	 13042#	 13073#	 13104#	 13135#	 13166#	 13197#	 13228#	 13259#	 13290#	 13321#	 13352#	 13383#	 13414#	 13445#
	 13476#	 13507#	 13538#	 13589#	 13621#	 13653#	 13685#	 13717#	 13749#	 13781#	 13813#	 13845#	 13877#	 13909#
	 13941#	 13973#	 14005#	 14037#	 14069#	 14101#	 14133#	 14165#	 14197#	 14229#	 14261#	 14293#	 14325#	 14357#
	 14389#	 14421#	 14453#	 14485#	 14517#	 14549#	 14581#	 14613#	 14645#	 14677#	 14709#	 14760#	 14792#	 14824#
	 14856#	 14888#	 14920#	 14952#	 14984#	 15016#	 15048#	 15080#	 15112#	 15144#	 15176#	 15208#	 15240#	 15272#
	 15304#	 15336#	 15368#	 15400#	 15432#	 15464#	 15496#	 15528#	 15560#	 15592#	 15624#	 15656#	 15688#	 15720#
	 15752#	 15784#	 15816#	 15848#	 15880#	 15947#	 15985#	 16023#	 16061#	 16099#	 16137#	 16175#	 16213#	 16251#
	 16289#	 16327#	 16365#	 16403#	 16441#	 16479#	 16517#	 16555#	 16593#	 16631#	 16669#	 16707#	 16745#	 16783#
	 16821#	 16859#	 16897#	 16935#	 16973#	 17011#	 17049#	 17087#	 17125#	 17163#	 17201#	 17239#	 17270#
AABCLR	   360#
AADRBK	   360#
AAPRC1	   360#
ABORT	   131#
AC	   712#	   713	   716	   717	   718	   719	   729	   731	   734	   736	   737	   739	   740	   744
	   746#	   747	   749	   750	   751	   752	   775	   777	   780	   782	   783	   785	   786	   790
	   804	   806	   809	   811	   812	   814	   815	   819	   833	   835	   838	   840	   841	   843
	   844	   848	   862	   864	   867	   869	   870	   872	   873	   877	   891	   893	   896	   898
	   899	   901	   902	   906	   920	   922	   925	   927	   928	   930	   931	   935	   949	   951
	   954	   956	   957	   959	   960	   964	   978	   980	   983	   985	   986	   988	   989	   993
	  1007	  1009	  1012	  1014	  1015	  1017	  1018	  1022	  1036	  1038	  1041	  1043	  1044	  1046
	  1047	  1051	  1065	  1067	  1070	  1072	  1073	  1075	  1076	  1080	  1094	  1096	  1099	  1101
	  1102	  1104	  1105	  1109	  1123	  1125	  1128	  1130	  1131	  1133	  1134	  1138	  1152	  1154
	  1157	  1159	  1160	  1162	  1163	  1167	  1181	  1183	  1186	  1188	  1189	  1191	  1192	  1196
	  1210	  1212	  1215	  1217	  1218	  1220	  1221	  1225	  1239	  1241	  1244	  1246	  1247	  1249
	  1250	  1254	  1268	  1270	  1273	  1275	  1276	  1278	  1279	  1283	  1297	  1299	  1302	  1304
	  1305	  1307	  1308	  1312	  1326	  1328	  1331	  1333	  1334	  1336	  1337	  1341	  1355	  1357
	  1360	  1362	  1363	  1365	  1366	  1370	  1384	  1386	  1389	  1391	  1392	  1394	  1395	  1399
	  1413	  1415	  1418	  1420	  1421	  1423	  1424	  1428	  1442	  1444	  1447	  1449	  1450	  1452
	  1453	  1457	  1471	  1473	  1476	  1478	  1479	  1481	  1482	  1486	  1500	  1502	  1505	  1507
	  1508	  1510	  1511	  1515	  1529	  1531	  1534	  1536	  1537	  1539	  1540	  1544	  1558	  1560
	  1563	  1565	  1566	  1568	  1569	  1573	  1587	  1589	  1592	  1594	  1595	  1597	  1598	  1602
	  1616	  1618	  1621	  1623	  1624	  1626	  1627	  1631	  1645	  1647	  1650	  1652	  1653	  1655
	  1656	  1660	  1674	  1676	  1679	  1681	  1682	  1684	  1685	  1689	  1703	  1705	  1708	  1710
	  1711	  1713	  1714	  1718	  1732	  1734	  1737	  1739	  1740	  1742	  1743	  1747	  1761	  1763
	  1766	  1768	  1769	  1771	  1772	  1776	  1790	  1792	  1795	  1797	  1798	  1800	  1801	  1805
	  1806#	  1807	  1809	  1810	  1811	  1812	  1835	  1837	  1840	  1842	  1843	  1845	  1846	  1850
	  1864	  1866	  1869	  1871	  1872	  1874	  1875	  1879	  1893	  1895	  1898	  1900	  1901	  1903
	  1904	  1908	  1922	  1924	  1927	  1929	  1930	  1932	  1933	  1937	  1951	  1953	  1956	  1958
	  1959	  1961	  1962	  1966	  1980	  1982	  1985	  1987	  1988	  1990	  1991	  1995	  2009	  2011
	  2014	  2016	  2017	  2019	  2020	  2024	  2038	  2040	  2043	  2045	  2046	  2048	  2049	  2053
	  2067	  2069	  2072	  2074	  2075	  2077	  2078	  2082	  2096	  2098	  2101	  2103	  2104	  2106
	  2107	  2111	  2125	  2127	  2130	  2132	  2133	  2135	  2136	  2140	  2154	  2156	  2159	  2161
	  2162	  2164	  2165	  2169	  2183	  2185	  2188	  2190	  2191	  2193	  2194	  2198	  2212	  2214
	  2217	  2219	  2220	  2222	  2223	  2227	  2241	  2243	  2246	  2248	  2249	  2251	  2252	  2256
	  2270	  2272	  2275	  2277	  2278	  2280	  2281	  2285	  2299	  2301	  2304	  2306	  2307	  2309     SEQ 0352
	  2310	  2314	  2328	  2330	  2333	  2335	  2336	  2338	  2339	  2343	  2357	  2359	  2362	  2364
	  2365	  2367	  2368	  2372	  2386	  2388	  2391	  2393	  2394	  2396	  2397	  2401	  2415	  2417
	  2420	  2422	  2423	  2425	  2426	  2430	  2444	  2446	  2449	  2451	  2452	  2454	  2455	  2459
	  2473	  2475	  2478	  2480	  2481	  2483	  2484	  2488	  2502	  2504	  2507	  2509	  2510	  2512
	  2513	  2517	  2531	  2533	  2536	  2538	  2539	  2541	  2542	  2546	  2560	  2562	  2565	  2567
	  2568	  2570	  2571	  2575	  2589	  2591	  2594	  2596	  2597	  2599	  2600	  2604	  2618	  2620
	  2623	  2625	  2626	  2628	  2629	  2633	  2647	  2649	  2652	  2654	  2655	  2657	  2658	  2662
	  2676	  2678	  2681	  2683	  2684	  2686	  2687	  2691	  2705	  2707	  2710	  2712	  2713	  2715
	  2716	  2720	  2734	  2736	  2739	  2741	  2742	  2744	  2745	  2749	  2763	  2765	  2768	  2770
	  2771	  2773	  2774	  2778	  2792	  2794	  2797	  2799	  2800	  2802	  2803	  2807	  2821	  2823
	  2826	  2828	  2829	  2831	  2832	  2836	  2850	  2852	  2855	  2857	  2858	  2860	  2861	  2865
	  2867#	  2868	  2870	  2871	  2872	  2873	  2883	  2885	  2888	  2890	  2891	  2893	  2894	  2898
	  2901#	  2902	  2904	  2905	  2906	  2907	  2952	  2954	  2957	  2959	  2960	  2962	  2963	  2967
	  2991	  2993	  2996	  2998	  2999	  3001	  3002	  3006	  3030	  3032	  3035	  3037	  3038	  3040
	  3041	  3045	  3069	  3071	  3074	  3076	  3077	  3079	  3080	  3084	  3108	  3110	  3113	  3115
	  3116	  3118	  3119	  3123	  3147	  3149	  3152	  3154	  3155	  3157	  3158	  3162	  3186	  3188
	  3191	  3193	  3194	  3196	  3197	  3201	  3225	  3227	  3230	  3232	  3233	  3235	  3236	  3240
	  3264	  3266	  3269	  3271	  3272	  3274	  3275	  3279	  3303	  3305	  3308	  3310	  3311	  3313
	  3314	  3318	  3342	  3344	  3347	  3349	  3350	  3352	  3353	  3357	  3381	  3383	  3386	  3388
	  3389	  3391	  3392	  3396	  3420	  3422	  3425	  3427	  3428	  3430	  3431	  3435	  3459	  3461
	  3464	  3466	  3467	  3469	  3470	  3474	  3498	  3500	  3503	  3505	  3506	  3508	  3509	  3513
	  3537	  3539	  3542	  3544	  3545	  3547	  3548	  3552	  3553#	  3554	  3556	  3557	  3558	  3559
	  3616	  3618	  3621	  3623	  3624	  3626	  3627	  3631	  3661	  3663	  3666	  3668	  3669	  3671
	  3672	  3676	  3706	  3708	  3711	  3713	  3714	  3716	  3717	  3721	  3751	  3753	  3756	  3758
	  3759	  3761	  3762	  3766	  3796	  3798	  3801	  3803	  3804	  3806	  3807	  3811	  3841	  3843
	  3846	  3848	  3849	  3851	  3852	  3856	  3886	  3888	  3891	  3893	  3894	  3896	  3897	  3901
	  3931	  3933	  3936	  3938	  3939	  3941	  3942	  3946	  3976	  3978	  3981	  3983	  3984	  3986
	  3987	  3991	  4021	  4023	  4026	  4028	  4029	  4031	  4032	  4036	  4066	  4068	  4071	  4073
	  4074	  4076	  4077	  4081	  4111	  4113	  4116	  4118	  4119	  4121	  4122	  4126	  4156	  4158
	  4161	  4163	  4164	  4166	  4167	  4171	  4201	  4203	  4206	  4208	  4209	  4211	  4212	  4216
	  4246	  4248	  4251	  4253	  4254	  4256	  4257	  4261	  4291	  4293	  4296	  4298	  4299	  4301
	  4302	  4306	  4309#	  4310	  4312	  4313	  4314	  4315	  4338	  4340	  4343	  4345	  4346	  4348
	  4349	  4353	  4367	  4369	  4372	  4374	  4375	  4377	  4378	  4382	  4396	  4398	  4401	  4403
	  4404	  4406	  4407	  4411	  4425	  4427	  4430	  4432	  4433	  4435	  4436	  4440	  4454	  4456
	  4459	  4461	  4462	  4464	  4465	  4469	  4483	  4485	  4488	  4490	  4491	  4493	  4494	  4498
	  4512	  4514	  4517	  4519	  4520	  4522	  4523	  4527	  4541	  4543	  4546	  4548	  4549	  4551
	  4552	  4556	  4570	  4572	  4575	  4577	  4578	  4580	  4581	  4585	  4599	  4601	  4604	  4606
	  4607	  4609	  4610	  4614	  4628	  4630	  4633	  4635	  4636	  4638	  4639	  4643	  4657	  4659
	  4662	  4664	  4665	  4667	  4668	  4672	  4686	  4688	  4691	  4693	  4694	  4696	  4697	  4701
	  4715	  4717	  4720	  4722	  4723	  4725	  4726	  4730	  4744	  4746	  4749	  4751	  4752	  4754
	  4755	  4759	  4773	  4775	  4778	  4780	  4781	  4783	  4784	  4788	  4802	  4804	  4807	  4809
	  4810	  4812	  4813	  4817	  4831	  4833	  4836	  4838	  4839	  4841	  4842	  4846	  4860	  4862
	  4865	  4867	  4868	  4870	  4871	  4875	  4889	  4891	  4894	  4896	  4897	  4899	  4900	  4904
	  4918	  4920	  4923	  4925	  4926	  4928	  4929	  4933	  4947	  4949	  4952	  4954	  4955	  4957
	  4958	  4962	  4976	  4978	  4981	  4983	  4984	  4986	  4987	  4991	  5005	  5007	  5010	  5012
	  5013	  5015	  5016	  5020	  5034	  5036	  5039	  5041	  5042	  5044	  5045	  5049	  5063	  5065
	  5068	  5070	  5071	  5073	  5074	  5078	  5092	  5094	  5097	  5099	  5100	  5102	  5103	  5107
	  5121	  5123	  5126	  5128	  5129	  5131	  5132	  5136	  5150	  5152	  5155	  5157	  5158	  5160
	  5161	  5165	  5179	  5181	  5184	  5186	  5187	  5189	  5190	  5194	  5208	  5210	  5213	  5215
	  5216	  5218	  5219	  5223	  5237	  5239	  5242	  5244	  5245	  5247	  5248	  5252	  5266	  5268
	  5271	  5273	  5274	  5276	  5277	  5281	  5295	  5297	  5300	  5302	  5303	  5305	  5306	  5310
	  5324	  5326	  5329	  5331	  5332	  5334	  5335	  5339	  5353	  5355	  5358	  5360	  5361	  5363
	  5364	  5368	  5369#	  5370	  5372	  5373	  5374	  5375	  5398	  5400	  5403	  5405	  5406	  5408     SEQ 0353
	  5409	  5413	  5427	  5429	  5432	  5434	  5435	  5437	  5438	  5442	  5456	  5458	  5461	  5463
	  5464	  5466	  5467	  5471	  5485	  5487	  5490	  5492	  5493	  5495	  5496	  5500	  5514	  5516
	  5519	  5521	  5522	  5524	  5525	  5529	  5543	  5545	  5548	  5550	  5551	  5553	  5554	  5558
	  5572	  5574	  5577	  5579	  5580	  5582	  5583	  5587	  5601	  5603	  5606	  5608	  5609	  5611
	  5612	  5616	  5630	  5632	  5635	  5637	  5638	  5640	  5641	  5645	  5659	  5661	  5664	  5666
	  5667	  5669	  5670	  5674	  5688	  5690	  5693	  5695	  5696	  5698	  5699	  5703	  5717	  5719
	  5722	  5724	  5725	  5727	  5728	  5732	  5746	  5748	  5751	  5753	  5754	  5756	  5757	  5761
	  5775	  5777	  5780	  5782	  5783	  5785	  5786	  5790	  5804	  5806	  5809	  5811	  5812	  5814
	  5815	  5819	  5833	  5835	  5838	  5840	  5841	  5843	  5844	  5848	  5862	  5864	  5867	  5869
	  5870	  5872	  5873	  5877	  5891	  5893	  5896	  5898	  5899	  5901	  5902	  5906	  5920	  5922
	  5925	  5927	  5928	  5930	  5931	  5935	  5949	  5951	  5954	  5956	  5957	  5959	  5960	  5964
	  5978	  5980	  5983	  5985	  5986	  5988	  5989	  5993	  6007	  6009	  6012	  6014	  6015	  6017
	  6018	  6022	  6036	  6038	  6041	  6043	  6044	  6046	  6047	  6051	  6065	  6067	  6070	  6072
	  6073	  6075	  6076	  6080	  6094	  6096	  6099	  6101	  6102	  6104	  6105	  6109	  6123	  6125
	  6128	  6130	  6131	  6133	  6134	  6138	  6152	  6154	  6157	  6159	  6160	  6162	  6163	  6167
	  6181	  6183	  6186	  6188	  6189	  6191	  6192	  6196	  6210	  6212	  6215	  6217	  6218	  6220
	  6221	  6225	  6239	  6241	  6244	  6246	  6247	  6249	  6250	  6254	  6268	  6270	  6273	  6275
	  6276	  6278	  6279	  6283	  6297	  6299	  6302	  6304	  6305	  6307	  6308	  6312	  6326	  6328
	  6331	  6333	  6334	  6336	  6337	  6341	  6355	  6357	  6360	  6362	  6363	  6365	  6366	  6370
	  6384	  6386	  6389	  6391	  6392	  6394	  6395	  6399	  6413	  6415	  6418	  6420	  6421	  6423
	  6424	  6428	  6429#	  6430	  6432	  6433	  6434	  6435	  6446	  6448	  6451	  6453	  6454	  6456
	  6457	  6461	  6464#	  6465	  6467	  6468	  6469	  6470	  6498	  6500	  6503	  6505	  6506	  6508
	  6509	  6513	  6529	  6531	  6534	  6536	  6537	  6539	  6540	  6544	  6560	  6562	  6565	  6567
	  6568	  6570	  6571	  6575	  6591	  6593	  6596	  6598	  6599	  6601	  6602	  6606	  6622	  6624
	  6627	  6629	  6630	  6632	  6633	  6637	  6653	  6655	  6658	  6660	  6661	  6663	  6664	  6668
	  6684	  6686	  6689	  6691	  6692	  6694	  6695	  6699	  6715	  6717	  6720	  6722	  6723	  6725
	  6726	  6730	  6746	  6748	  6751	  6753	  6754	  6756	  6757	  6761	  6777	  6779	  6782	  6784
	  6785	  6787	  6788	  6792	  6808	  6810	  6813	  6815	  6816	  6818	  6819	  6823	  6839	  6841
	  6844	  6846	  6847	  6849	  6850	  6854	  6870	  6872	  6875	  6877	  6878	  6880	  6881	  6885
	  6901	  6903	  6906	  6908	  6909	  6911	  6912	  6916	  6932	  6934	  6937	  6939	  6940	  6942
	  6943	  6947	  6963	  6965	  6968	  6970	  6971	  6973	  6974	  6978	  6994	  6996	  6999	  7001
	  7002	  7004	  7005	  7009	  7025	  7027	  7030	  7032	  7033	  7035	  7036	  7040	  7056	  7058
	  7061	  7063	  7064	  7066	  7067	  7071	  7087	  7089	  7092	  7094	  7095	  7097	  7098	  7102
	  7118	  7120	  7123	  7125	  7126	  7128	  7129	  7133	  7149	  7151	  7154	  7156	  7157	  7159
	  7160	  7164	  7180	  7182	  7185	  7187	  7188	  7190	  7191	  7195	  7211	  7213	  7216	  7218
	  7219	  7221	  7222	  7226	  7242	  7244	  7247	  7249	  7250	  7252	  7253	  7257	  7273	  7275
	  7278	  7280	  7281	  7283	  7284	  7288	  7304	  7306	  7309	  7311	  7312	  7314	  7315	  7319
	  7335	  7337	  7340	  7342	  7343	  7345	  7346	  7350	  7366	  7368	  7371	  7373	  7374	  7376
	  7377	  7381	  7397	  7399	  7402	  7404	  7405	  7407	  7408	  7412	  7428	  7430	  7433	  7435
	  7436	  7438	  7439	  7443	  7459	  7461	  7464	  7466	  7467	  7469	  7470	  7474	  7490	  7492
	  7495	  7497	  7498	  7500	  7501	  7505	  7521	  7523	  7526	  7528	  7529	  7531	  7532	  7536
	  7552	  7554	  7557	  7559	  7560	  7562	  7563	  7567	  7583	  7585	  7588	  7590	  7591	  7593
	  7594	  7598	  7599#	  7600	  7602	  7603	  7604	  7605	  7632	  7634	  7637	  7639	  7640	  7642
	  7643	  7647	  7663	  7665	  7668	  7670	  7671	  7673	  7674	  7678	  7694	  7696	  7699	  7701
	  7702	  7704	  7705	  7709	  7725	  7727	  7730	  7732	  7733	  7735	  7736	  7740	  7756	  7758
	  7761	  7763	  7764	  7766	  7767	  7771	  7787	  7789	  7792	  7794	  7795	  7797	  7798	  7802
	  7818	  7820	  7823	  7825	  7826	  7828	  7829	  7833	  7849	  7851	  7854	  7856	  7857	  7859
	  7860	  7864	  7880	  7882	  7885	  7887	  7888	  7890	  7891	  7895	  7911	  7913	  7916	  7918
	  7919	  7921	  7922	  7926	  7942	  7944	  7947	  7949	  7950	  7952	  7953	  7957	  7973	  7975
	  7978	  7980	  7981	  7983	  7984	  7988	  8004	  8006	  8009	  8011	  8012	  8014	  8015	  8019
	  8035	  8037	  8040	  8042	  8043	  8045	  8046	  8050	  8066	  8068	  8071	  8073	  8074	  8076
	  8077	  8081	  8097	  8099	  8102	  8104	  8105	  8107	  8108	  8112	  8128	  8130	  8133	  8135
	  8136	  8138	  8139	  8143	  8159	  8161	  8164	  8166	  8167	  8169	  8170	  8174	  8190	  8192     SEQ 0354
	  8195	  8197	  8198	  8200	  8201	  8205	  8221	  8223	  8226	  8228	  8229	  8231	  8232	  8236
	  8252	  8254	  8257	  8259	  8260	  8262	  8263	  8267	  8283	  8285	  8288	  8290	  8291	  8293
	  8294	  8298	  8314	  8316	  8319	  8321	  8322	  8324	  8325	  8329	  8345	  8347	  8350	  8352
	  8353	  8355	  8356	  8360	  8376	  8378	  8381	  8383	  8384	  8386	  8387	  8391	  8407	  8409
	  8412	  8414	  8415	  8417	  8418	  8422	  8438	  8440	  8443	  8445	  8446	  8448	  8449	  8453
	  8469	  8471	  8474	  8476	  8477	  8479	  8480	  8484	  8500	  8502	  8505	  8507	  8508	  8510
	  8511	  8515	  8531	  8533	  8536	  8538	  8539	  8541	  8542	  8546	  8562	  8564	  8567	  8569
	  8570	  8572	  8573	  8577	  8593	  8595	  8598	  8600	  8601	  8603	  8604	  8608	  8624	  8626
	  8629	  8631	  8632	  8634	  8635	  8639	  8655	  8657	  8660	  8662	  8663	  8665	  8666	  8670
	  8686	  8688	  8691	  8693	  8694	  8696	  8697	  8701	  8713	  8715	  8718	  8720	  8721	  8723
	  8724	  8728	  8729#	  8730	  8732	  8733	  8734	  8735	  8770	  8772	  8775	  8777	  8778	  8780
	  8781	  8785	  8805	  8807	  8810	  8812	  8813	  8815	  8816	  8820	  8840	  8842	  8845	  8847
	  8848	  8850	  8851	  8855	  8875	  8877	  8880	  8882	  8883	  8885	  8886	  8890	  8910	  8912
	  8915	  8917	  8918	  8920	  8921	  8925	  8945	  8947	  8950	  8952	  8953	  8955	  8956	  8960
	  8980	  8982	  8985	  8987	  8988	  8990	  8991	  8995	  9015	  9017	  9020	  9022	  9023	  9025
	  9026	  9030	  9050	  9052	  9055	  9057	  9058	  9060	  9061	  9065	  9085	  9087	  9090	  9092
	  9093	  9095	  9096	  9100	  9120	  9122	  9125	  9127	  9128	  9130	  9131	  9135	  9155	  9157
	  9160	  9162	  9163	  9165	  9166	  9170	  9190	  9192	  9195	  9197	  9198	  9200	  9201	  9205
	  9225	  9227	  9230	  9232	  9233	  9235	  9236	  9240	  9260	  9262	  9265	  9267	  9268	  9270
	  9271	  9275	  9295	  9297	  9300	  9302	  9303	  9305	  9306	  9310	  9330	  9332	  9335	  9337
	  9338	  9340	  9341	  9345	  9365	  9367	  9370	  9372	  9373	  9375	  9376	  9380	  9400	  9402
	  9405	  9407	  9408	  9410	  9411	  9415	  9435	  9437	  9440	  9442	  9443	  9445	  9446	  9450
	  9470	  9472	  9475	  9477	  9478	  9480	  9481	  9485	  9505	  9507	  9510	  9512	  9513	  9515
	  9516	  9520	  9540	  9542	  9545	  9547	  9548	  9550	  9551	  9555	  9575	  9577	  9580	  9582
	  9583	  9585	  9586	  9590	  9610	  9612	  9615	  9617	  9618	  9620	  9621	  9625	  9645	  9647
	  9650	  9652	  9653	  9655	  9656	  9660	  9680	  9682	  9685	  9687	  9688	  9690	  9691	  9695
	  9715	  9717	  9720	  9722	  9723	  9725	  9726	  9730	  9750	  9752	  9755	  9757	  9758	  9760
	  9761	  9765	  9785	  9787	  9790	  9792	  9793	  9795	  9796	  9800	  9820	  9822	  9825	  9827
	  9828	  9830	  9831	  9835	  9855	  9857	  9860	  9862	  9863	  9865	  9866	  9870	  9890	  9892
	  9895	  9897	  9898	  9900	  9901	  9905	  9925	  9927	  9930	  9932	  9933	  9935	  9936	  9940
	  9960	  9962	  9965	  9967	  9968	  9970	  9971	  9975	  9995	  9997	 10000	 10002	 10003	 10005
	 10006	 10010	 10011#	 10012	 10014	 10015	 10016	 10017	 10052	 10054	 10057	 10059	 10060	 10062
	 10063	 10067	 10087	 10089	 10092	 10094	 10095	 10097	 10098	 10102	 10122	 10124	 10127	 10129
	 10130	 10132	 10133	 10137	 10157	 10159	 10162	 10164	 10165	 10167	 10168	 10172	 10192	 10194
	 10197	 10199	 10200	 10202	 10203	 10207	 10227	 10229	 10232	 10234	 10235	 10237	 10238	 10242
	 10262	 10264	 10267	 10269	 10270	 10272	 10273	 10277	 10297	 10299	 10302	 10304	 10305	 10307
	 10308	 10312	 10332	 10334	 10337	 10339	 10340	 10342	 10343	 10347	 10367	 10369	 10372	 10374
	 10375	 10377	 10378	 10382	 10402	 10404	 10407	 10409	 10410	 10412	 10413	 10417	 10437	 10439
	 10442	 10444	 10445	 10447	 10448	 10452	 10472	 10474	 10477	 10479	 10480	 10482	 10483	 10487
	 10507	 10509	 10512	 10514	 10515	 10517	 10518	 10522	 10542	 10544	 10547	 10549	 10550	 10552
	 10553	 10557	 10577	 10579	 10582	 10584	 10585	 10587	 10588	 10592	 10612	 10614	 10617	 10619
	 10620	 10622	 10623	 10627	 10647	 10649	 10652	 10654	 10655	 10657	 10658	 10662	 10682	 10684
	 10687	 10689	 10690	 10692	 10693	 10697	 10717	 10719	 10722	 10724	 10725	 10727	 10728	 10732
	 10752	 10754	 10757	 10759	 10760	 10762	 10763	 10767	 10787	 10789	 10792	 10794	 10795	 10797
	 10798	 10802	 10822	 10824	 10827	 10829	 10830	 10832	 10833	 10837	 10857	 10859	 10862	 10864
	 10865	 10867	 10868	 10872	 10892	 10894	 10897	 10899	 10900	 10902	 10903	 10907	 10927	 10929
	 10932	 10934	 10935	 10937	 10938	 10942	 10962	 10964	 10967	 10969	 10970	 10972	 10973	 10977
	 10997	 10999	 11002	 11004	 11005	 11007	 11008	 11012	 11032	 11034	 11037	 11039	 11040	 11042
	 11043	 11047	 11067	 11069	 11072	 11074	 11075	 11077	 11078	 11082	 11102	 11104	 11107	 11109
	 11110	 11112	 11113	 11117	 11137	 11139	 11142	 11144	 11145	 11147	 11148	 11152	 11172	 11174
	 11177	 11179	 11180	 11182	 11183	 11187	 11207	 11209	 11212	 11214	 11215	 11217	 11218	 11222
	 11242	 11244	 11247	 11249	 11250	 11252	 11253	 11257	 11269	 11271	 11274	 11276	 11277	 11279
	 11280	 11284	 11285#	 11286	 11288	 11289	 11290	 11291	 11318	 11320	 11323	 11325	 11326	 11328     SEQ 0355
	 11329	 11333	 11349	 11351	 11354	 11356	 11357	 11359	 11360	 11364	 11380	 11382	 11385	 11387
	 11388	 11390	 11391	 11395	 11411	 11413	 11416	 11418	 11419	 11421	 11422	 11426	 11442	 11444
	 11447	 11449	 11450	 11452	 11453	 11457	 11473	 11475	 11478	 11480	 11481	 11483	 11484	 11488
	 11504	 11506	 11509	 11511	 11512	 11514	 11515	 11519	 11535	 11537	 11540	 11542	 11543	 11545
	 11546	 11550	 11566	 11568	 11571	 11573	 11574	 11576	 11577	 11581	 11597	 11599	 11602	 11604
	 11605	 11607	 11608	 11612	 11628	 11630	 11633	 11635	 11636	 11638	 11639	 11643	 11659	 11661
	 11664	 11666	 11667	 11669	 11670	 11674	 11690	 11692	 11695	 11697	 11698	 11700	 11701	 11705
	 11721	 11723	 11726	 11728	 11729	 11731	 11732	 11736	 11752	 11754	 11757	 11759	 11760	 11762
	 11763	 11767	 11783	 11785	 11788	 11790	 11791	 11793	 11794	 11798	 11814	 11816	 11819	 11821
	 11822	 11824	 11825	 11829	 11845	 11847	 11850	 11852	 11853	 11855	 11856	 11860	 11876	 11878
	 11881	 11883	 11884	 11886	 11887	 11891	 11907	 11909	 11912	 11914	 11915	 11917	 11918	 11922
	 11938	 11940	 11943	 11945	 11946	 11948	 11949	 11953	 11969	 11971	 11974	 11976	 11977	 11979
	 11980	 11984	 12000	 12002	 12005	 12007	 12008	 12010	 12011	 12015	 12031	 12033	 12036	 12038
	 12039	 12041	 12042	 12046	 12062	 12064	 12067	 12069	 12070	 12072	 12073	 12077	 12093	 12095
	 12098	 12100	 12101	 12103	 12104	 12108	 12124	 12126	 12129	 12131	 12132	 12134	 12135	 12139
	 12155	 12157	 12160	 12162	 12163	 12165	 12166	 12170	 12186	 12188	 12191	 12193	 12194	 12196
	 12197	 12201	 12217	 12219	 12222	 12224	 12225	 12227	 12228	 12232	 12248	 12250	 12253	 12255
	 12256	 12258	 12259	 12263	 12279	 12281	 12284	 12286	 12287	 12289	 12290	 12294	 12310	 12312
	 12315	 12317	 12318	 12320	 12321	 12325	 12341	 12343	 12346	 12348	 12349	 12351	 12352	 12356
	 12372	 12374	 12377	 12379	 12380	 12382	 12383	 12387	 12403	 12405	 12408	 12410	 12411	 12413
	 12414	 12418	 12419#	 12420	 12422	 12423	 12424	 12425	 12452	 12454	 12457	 12459	 12460	 12462
	 12463	 12467	 12483	 12485	 12488	 12490	 12491	 12493	 12494	 12498	 12514	 12516	 12519	 12521
	 12522	 12524	 12525	 12529	 12545	 12547	 12550	 12552	 12553	 12555	 12556	 12560	 12576	 12578
	 12581	 12583	 12584	 12586	 12587	 12591	 12607	 12609	 12612	 12614	 12615	 12617	 12618	 12622
	 12638	 12640	 12643	 12645	 12646	 12648	 12649	 12653	 12669	 12671	 12674	 12676	 12677	 12679
	 12680	 12684	 12700	 12702	 12705	 12707	 12708	 12710	 12711	 12715	 12731	 12733	 12736	 12738
	 12739	 12741	 12742	 12746	 12762	 12764	 12767	 12769	 12770	 12772	 12773	 12777	 12793	 12795
	 12798	 12800	 12801	 12803	 12804	 12808	 12824	 12826	 12829	 12831	 12832	 12834	 12835	 12839
	 12855	 12857	 12860	 12862	 12863	 12865	 12866	 12870	 12886	 12888	 12891	 12893	 12894	 12896
	 12897	 12901	 12917	 12919	 12922	 12924	 12925	 12927	 12928	 12932	 12948	 12950	 12953	 12955
	 12956	 12958	 12959	 12963	 12979	 12981	 12984	 12986	 12987	 12989	 12990	 12994	 13010	 13012
	 13015	 13017	 13018	 13020	 13021	 13025	 13041	 13043	 13046	 13048	 13049	 13051	 13052	 13056
	 13072	 13074	 13077	 13079	 13080	 13082	 13083	 13087	 13103	 13105	 13108	 13110	 13111	 13113
	 13114	 13118	 13134	 13136	 13139	 13141	 13142	 13144	 13145	 13149	 13165	 13167	 13170	 13172
	 13173	 13175	 13176	 13180	 13196	 13198	 13201	 13203	 13204	 13206	 13207	 13211	 13227	 13229
	 13232	 13234	 13235	 13237	 13238	 13242	 13258	 13260	 13263	 13265	 13266	 13268	 13269	 13273
	 13289	 13291	 13294	 13296	 13297	 13299	 13300	 13304	 13320	 13322	 13325	 13327	 13328	 13330
	 13331	 13335	 13351	 13353	 13356	 13358	 13359	 13361	 13362	 13366	 13382	 13384	 13387	 13389
	 13390	 13392	 13393	 13397	 13413	 13415	 13418	 13420	 13421	 13423	 13424	 13428	 13444	 13446
	 13449	 13451	 13452	 13454	 13455	 13459	 13475	 13477	 13480	 13482	 13483	 13485	 13486	 13490
	 13506	 13508	 13511	 13513	 13514	 13516	 13517	 13521	 13537	 13539	 13542	 13544	 13545	 13547
	 13548	 13552	 13553#	 13554	 13556	 13557	 13558	 13559	 13588	 13590	 13593	 13595	 13596	 13598
	 13599	 13603	 13620	 13622	 13625	 13627	 13628	 13630	 13631	 13635	 13652	 13654	 13657	 13659
	 13660	 13662	 13663	 13667	 13684	 13686	 13689	 13691	 13692	 13694	 13695	 13699	 13716	 13718
	 13721	 13723	 13724	 13726	 13727	 13731	 13748	 13750	 13753	 13755	 13756	 13758	 13759	 13763
	 13780	 13782	 13785	 13787	 13788	 13790	 13791	 13795	 13812	 13814	 13817	 13819	 13820	 13822
	 13823	 13827	 13844	 13846	 13849	 13851	 13852	 13854	 13855	 13859	 13876	 13878	 13881	 13883
	 13884	 13886	 13887	 13891	 13908	 13910	 13913	 13915	 13916	 13918	 13919	 13923	 13940	 13942
	 13945	 13947	 13948	 13950	 13951	 13955	 13972	 13974	 13977	 13979	 13980	 13982	 13983	 13987
	 14004	 14006	 14009	 14011	 14012	 14014	 14015	 14019	 14036	 14038	 14041	 14043	 14044	 14046
	 14047	 14051	 14068	 14070	 14073	 14075	 14076	 14078	 14079	 14083	 14100	 14102	 14105	 14107
	 14108	 14110	 14111	 14115	 14132	 14134	 14137	 14139	 14140	 14142	 14143	 14147	 14164	 14166
	 14169	 14171	 14172	 14174	 14175	 14179	 14196	 14198	 14201	 14203	 14204	 14206	 14207	 14211     SEQ 0356
	 14228	 14230	 14233	 14235	 14236	 14238	 14239	 14243	 14260	 14262	 14265	 14267	 14268	 14270
	 14271	 14275	 14292	 14294	 14297	 14299	 14300	 14302	 14303	 14307	 14324	 14326	 14329	 14331
	 14332	 14334	 14335	 14339	 14356	 14358	 14361	 14363	 14364	 14366	 14367	 14371	 14388	 14390
	 14393	 14395	 14396	 14398	 14399	 14403	 14420	 14422	 14425	 14427	 14428	 14430	 14431	 14435
	 14452	 14454	 14457	 14459	 14460	 14462	 14463	 14467	 14484	 14486	 14489	 14491	 14492	 14494
	 14495	 14499	 14516	 14518	 14521	 14523	 14524	 14526	 14527	 14531	 14548	 14550	 14553	 14555
	 14556	 14558	 14559	 14563	 14580	 14582	 14585	 14587	 14588	 14590	 14591	 14595	 14612	 14614
	 14617	 14619	 14620	 14622	 14623	 14627	 14644	 14646	 14649	 14651	 14652	 14654	 14655	 14659
	 14676	 14678	 14681	 14683	 14684	 14686	 14687	 14691	 14708	 14710	 14713	 14715	 14716	 14718
	 14719	 14723	 14724#	 14725	 14727	 14728	 14729	 14730	 14759	 14761	 14764	 14766	 14767	 14769
	 14770	 14774	 14791	 14793	 14796	 14798	 14799	 14801	 14802	 14806	 14823	 14825	 14828	 14830
	 14831	 14833	 14834	 14838	 14855	 14857	 14860	 14862	 14863	 14865	 14866	 14870	 14887	 14889
	 14892	 14894	 14895	 14897	 14898	 14902	 14919	 14921	 14924	 14926	 14927	 14929	 14930	 14934
	 14951	 14953	 14956	 14958	 14959	 14961	 14962	 14966	 14983	 14985	 14988	 14990	 14991	 14993
	 14994	 14998	 15015	 15017	 15020	 15022	 15023	 15025	 15026	 15030	 15047	 15049	 15052	 15054
	 15055	 15057	 15058	 15062	 15079	 15081	 15084	 15086	 15087	 15089	 15090	 15094	 15111	 15113
	 15116	 15118	 15119	 15121	 15122	 15126	 15143	 15145	 15148	 15150	 15151	 15153	 15154	 15158
	 15175	 15177	 15180	 15182	 15183	 15185	 15186	 15190	 15207	 15209	 15212	 15214	 15215	 15217
	 15218	 15222	 15239	 15241	 15244	 15246	 15247	 15249	 15250	 15254	 15271	 15273	 15276	 15278
	 15279	 15281	 15282	 15286	 15303	 15305	 15308	 15310	 15311	 15313	 15314	 15318	 15335	 15337
	 15340	 15342	 15343	 15345	 15346	 15350	 15367	 15369	 15372	 15374	 15375	 15377	 15378	 15382
	 15399	 15401	 15404	 15406	 15407	 15409	 15410	 15414	 15431	 15433	 15436	 15438	 15439	 15441
	 15442	 15446	 15463	 15465	 15468	 15470	 15471	 15473	 15474	 15478	 15495	 15497	 15500	 15502
	 15503	 15505	 15506	 15510	 15527	 15529	 15532	 15534	 15535	 15537	 15538	 15542	 15559	 15561
	 15564	 15566	 15567	 15569	 15570	 15574	 15591	 15593	 15596	 15598	 15599	 15601	 15602	 15606
	 15623	 15625	 15628	 15630	 15631	 15633	 15634	 15638	 15655	 15657	 15660	 15662	 15663	 15665
	 15666	 15670	 15687	 15689	 15692	 15694	 15695	 15697	 15698	 15702	 15719	 15721	 15724	 15726
	 15727	 15729	 15730	 15734	 15751	 15753	 15756	 15758	 15759	 15761	 15762	 15766	 15783	 15785
	 15788	 15790	 15791	 15793	 15794	 15798	 15815	 15817	 15820	 15822	 15823	 15825	 15826	 15830
	 15847	 15849	 15852	 15854	 15855	 15857	 15858	 15862	 15879	 15881	 15884	 15886	 15887	 15889
	 15890	 15894	 15897#	 15898	 15900	 15901	 15902	 15903	 15946	 15948	 15951	 15953	 15954	 15956
	 15957	 15961	 15984	 15986	 15989	 15991	 15992	 15994	 15995	 15999	 16022	 16024	 16027	 16029
	 16030	 16032	 16033	 16037	 16060	 16062	 16065	 16067	 16068	 16070	 16071	 16075	 16098	 16100
	 16103	 16105	 16106	 16108	 16109	 16113	 16136	 16138	 16141	 16143	 16144	 16146	 16147	 16151
	 16174	 16176	 16179	 16181	 16182	 16184	 16185	 16189	 16212	 16214	 16217	 16219	 16220	 16222
	 16223	 16227	 16250	 16252	 16255	 16257	 16258	 16260	 16261	 16265	 16288	 16290	 16293	 16295
	 16296	 16298	 16299	 16303	 16326	 16328	 16331	 16333	 16334	 16336	 16337	 16341	 16364	 16366
	 16369	 16371	 16372	 16374	 16375	 16379	 16402	 16404	 16407	 16409	 16410	 16412	 16413	 16417
	 16440	 16442	 16445	 16447	 16448	 16450	 16451	 16455	 16478	 16480	 16483	 16485	 16486	 16488
	 16489	 16493	 16516	 16518	 16521	 16523	 16524	 16526	 16527	 16531	 16554	 16556	 16559	 16561
	 16562	 16564	 16565	 16569	 16592	 16594	 16597	 16599	 16600	 16602	 16603	 16607	 16630	 16632
	 16635	 16637	 16638	 16640	 16641	 16645	 16668	 16670	 16673	 16675	 16676	 16678	 16679	 16683
	 16706	 16708	 16711	 16713	 16714	 16716	 16717	 16721	 16744	 16746	 16749	 16751	 16752	 16754
	 16755	 16759	 16782	 16784	 16787	 16789	 16790	 16792	 16793	 16797	 16820	 16822	 16825	 16827
	 16828	 16830	 16831	 16835	 16858	 16860	 16863	 16865	 16866	 16868	 16869	 16873	 16896	 16898
	 16901	 16903	 16904	 16906	 16907	 16911	 16934	 16936	 16939	 16941	 16942	 16944	 16945	 16949
	 16972	 16974	 16977	 16979	 16980	 16982	 16983	 16987	 17010	 17012	 17015	 17017	 17018	 17020
	 17021	 17025	 17048	 17050	 17053	 17055	 17056	 17058	 17059	 17063	 17086	 17088	 17091	 17093
	 17094	 17096	 17097	 17101	 17124	 17126	 17129	 17131	 17132	 17134	 17135	 17139	 17162	 17164
	 17167	 17169	 17170	 17172	 17173	 17177	 17200	 17202	 17205	 17207	 17208	 17210	 17211	 17215
	 17238	 17240	 17243	 17245	 17246	 17248	 17249	 17253	 17269	 17271	 17274	 17276	 17277	 17279
	 17280	 17284
ADR	   711#	   722	   763	   763#	   768	   792	   792#	   797	   821	   821#	   826	   850	   850#	   855     SEQ 0357
	   879	   879#	   884	   908	   908#	   913	   937	   937#	   942	   966	   966#	   971	   995	   995#
	  1000	  1024	  1024#	  1029	  1053	  1053#	  1058	  1082	  1082#	  1087	  1111	  1111#	  1116	  1140
	  1140#	  1145	  1169	  1169#	  1174	  1198	  1198#	  1203	  1227	  1227#	  1232	  1256	  1256#	  1261
	  1285	  1285#	  1290	  1314	  1314#	  1319	  1343	  1343#	  1348	  1372	  1372#	  1377	  1401	  1401#
	  1406	  1430	  1430#	  1435	  1459	  1459#	  1464	  1488	  1488#	  1493	  1517	  1517#	  1522	  1546
	  1546#	  1551	  1575	  1575#	  1580	  1604	  1604#	  1609	  1633	  1633