Google
 

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





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


	PRODUCT CODE:	MAINDEC-10-DBKAK

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

	FUNCTION:	MULTIPLY TEST

	VERSION:	0.2

	DATE RELEASED:	AUGUST,1976

	MAINTAINED BY:	DIAGNOSTIC ENGINEERING GROUP

	AUTHOR:		JOHN R. KIRCHOFF

COPYRIGHT(C) 1976
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-DBKAK.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-DBKAK.TXT
							PAGE 3                                                             SEQ 0003

1.0	ABSTRACT

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

2.0	REQUIREMENTS

2.1	EQUIPMENT

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

	PAPER TAPE READER (KI10)
	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-DBKAK.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-DBKAK.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-DBKAK.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-DBKAK.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-DBKAK.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 'DBKAK.PNT'

	    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-DBKAK.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-DBKAK
                                                                                                                           SEQ 0010
************************************************************************

PRODUCT CODE:		MAINDEC-10-DBKAK

PRODUCT NAME:		BASIC INSTRUCTION DIAGNOSTIC #11

DATE RELEASED:		AUGUST,1976

VERSION:		0.2

UPDATE AUTHOR:		EDWARD G. PRENTICE

CHANGES MADE:

	1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE.

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

ORIGINAL VERSION:	0.1

ORIGINAL AUTHOR:	RICHARD MALISKA

ORIGINAL RELEASE:	16-MAR-72

************************************************************************
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1
DBKAKT	MAC	30-JUL-76 12:38		DIAGNOSTIC PARAMETERS                                                              SEQ 0011

     1					;DBKAK
     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	DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2
    14					^
    15
    16					;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE)
    17
    18					;COPYRIGHT 1975
    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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2
DBKAKT	MAC	30-JUL-76 12:38		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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3
DBKAKT	MAC	30-JUL-76 12:38		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		KL10=1
    62			000001		KL10P0=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		444253	415300		PAREA3=SIXBIT/DBKAK/
    86		605664	000000		PAREA4=SIXBIT/PNT/
    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>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 4
DBKAKT	MAC	30-JUL-76 12:38		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>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1
PARAM	KLM	26-FEB-76		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, FEB 26,1976                               SEQ 0015

   121					SUBTTL	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, FEB 26,1976
   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 !!!
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2
PARAM	KLM	26-FEB-76		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0016

   156					SUBTTL	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976
   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^;*********************************************************************^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3
PARAM	KLM	26-FEB-76		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 4
PARAM	KLM	26-FEB-76		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5
PARAM	KLM	26-FEB-76		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 SEQ 0019

   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)
   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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6
PARAM	KLM	26-FEB-76		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, FEB 26,1976                                 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					IFNDEF	KLOLD,<LIST
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7
PARAM	KLM	26-FEB-76		ERROR HANDLING UUO DEFINITIONS, JAN 5,1976                                         SEQ 0021

   361					SUBTTL	ERROR HANDLING UUO DEFINITIONS, JAN 5,1976
   362
   363					S^;*********************************************************************^
   364					;*ERROR HANDLER PARAMETERS
   365					S^;*********************************************************************^
   366
   367		036000	000000		OPDEF	ERUUO	[36B8]		;ERROR CALL UUO
   368		035000	000000		OPDEF	ERLOOP	[35B8]		;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
   369		035040	000000		OPDEF	ERLP1	[35B8!1B12]	;ERROR LOOP IF PC'S MATCH
   370		035100	000000		OPDEF	ERLP2	[35B8!2B12]	;ERROR LOOP IF ANY ERROR
   371		034000	000000		OPDEF	REPTUO	[34B8]		;REPEAT LOOP UUO
   372
   373					;*THE ERROR HANDLER MACROS
   374
   375					;*A MACRO TO REPORT AN ERROR AND LOOP
   376
   377						DEFINE	ERROR	(ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
   378						SALL
   379						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   380							   CORECT,,ACTUAL
   381							   [SIXBIT\D'_\],,ERR]
   382						XALL
   383					
   384						ERLOOP	ADR		;IF ERROR, LOOP TO ADR
   385					>
   386
   387					;*A MACRO TO REPORT AN ERROR AND NOT LOOP
   388
   389						DEFINE	ERROR1	(FORMAT,CORECT,ACTUAL,F,D,ERR)<
   390						SALL
   391						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   392							   CORECT,,ACTUAL
   393							   [SIXBIT\D'_\],,ERR]
   394						XALL	>
   395
   396					>;END OF KLOLD CONDITIONAL
   397
   398						XLIST
   399						LIST
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1
FIXED	KLM	26-FEB-76		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976                            SEQ 0022

   400					SUBTTL	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976
   401
   402	030000					LOC	30000
   403
   404					S^;*********************************************************************^
   405					;*PROGRAM STARTING ADDRESSES
   406					;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
   407					;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
   408					;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
   409					;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
   410					S^;*********************************************************************^
   411
   412	030000	254 00 1 00 027776 	BEGIN:	JRST	@MODLNK		;STAND-ALONE START
   413	030001	254 00 0 00 030616 	$START:	JRST	START		;MODE CHECK STARTING ADDRESS
   414
   415	030002	254 00 1 00 027774 	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START
   416
   417	030003	254 00 1 00 027774 	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START
   418
   419	030004	254 00 0 00 030000 	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START
   420
   421	030005	254 00 0 00 030000 	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART
   422
   423	030006	254 00 0 00 030000 	REENTR:	JRST	SADR3		;REENTER START(USUALLY USER MODE ONLY)
   424
   425	030007				SRTDDT:				;COMMONLY MISTAKEN NAME FOR "DDTSRT"
   426	030007	254 00 1 00 027775 	DDTSRT:	JRST	@DDTLNK		;DDT START
   427
   428	030010	254 00 0 00 030621 	BEGIN1:	JRST	STARTA		;LOOP START(END OF PASS COMES HERE)
   429	030011	254 00 1 00 027777 	SBINIT:	JRST	@SUBLNK		;PMGINT LINKAGE
   430	030012	000000	000000		RETURN:	0			;RETURN ADDRESS STORAGE
   431
   432	030013	254000	030000		START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS
   433	030014	254000	030000		START2:	SADR8			; "
   434	030015	254000	030000		START3:	SADR9			; "
   435	030016	254000	030000		START4:	SADR10			; "
   436	030017	254000	030000		START5:	SADR11			; "
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2
FIXED	KLM	26-FEB-76		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976                            SEQ 0023

   437					S^;*********************************************************************^
   438					;*PROGRAM FIXED PARAMETER AREA
   439					S^;*********************************************************************^
   440
   441	030020	444253	415300		PNTNAM:	PAREA3		;SIXBIT PROGRAM NAME
   442	030021	605664	000000		PNTEXT:	PAREA4		;SIXBIT PROGRAM EXTENSION
   443	030022	000000	000000		RANDBS:	PAREA1		;RANDOM BASE NUMBER
   444	030023	000000	000000		SWTEXR:	PAREA2		;SYSTEM EXERCISER SWITCHES
   445	030024	000000	001000		ITRCNT:	ITERAT		;PROGRAM ITERATIONS
   446	030025	000000	030602		$PNAME:	PGMNAM		;POINTER TO PROGRAMS NAME
   447	030026	000000	000002		$PVER:	MCNVER,,DECVER	;MCN & DEC VERSION LEVEL
   448	030027	000000	030000		$MODVL:	MODDVL		;DEVICE CODE CHANGE LOWER LIMIT
   449	030030	000000	030000		$MODVU:	MODDVU		;DEVICE CODE CHANGE UPPER LIMIT
   450	030031	777777	777777		$EMODE:	IFNDEF EXCASB,<0> IFDEF EXCASB,<-1>	;EXEC ALLOWED
   451	030032	777777	777777		$UMODE:	IFNDEF USRASB,<0> IFDEF USRASB,<-1>	;USER ALLOWED
   452	030033	000000	000000		$DSKUP:	IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1>	;DISK UPDATE MODE
   453	030034	000000	000000		$MMAP:	IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1>	;ALLOW MEMORY RTNS
   454	030035	000000	000000		PAREA7:	PAREA5		;OPTIONAL PARAMETER
   455	030036	000000	000000		PAREA8:	PAREA6		;OPTIONAL PARAMETER
   456
   457					S^;*********************************************************************^
   458					;*PROGRAM VARIABLE PARAMETER AREA
   459					S^;*********************************************************************^
   460
   461	030037	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
   462	030040	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
   463	030041	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
   464	030042	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
   465	030043	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
   466	030044	000000	000000		MONTEN:	0		;-1= LOADED BY 10
   467	030045	000000	000000		CLOCKF:	0		;CLOCK TICKED FLAG
   468	030046	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
   469	030047	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
   470	030050	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
   471	030051	000000	000000		TESTPC:	0		;SUBTEST PC
   472	030052	000000	000000		ERRPC:	0		;ERROR PC
   473	030053	000000	000000		ERRTLS:	0		;ERROR TOTALS
   474	030054	000000	000000		TICKS:	0		;PROGRAM RUNNING TIME
   475	030055	000000	000000		MARGIN:	0		;KI10 MARGIN WORD VALUE
   476	030056	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3
FIXED	KLM	26-FEB-76		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976                            SEQ 0024

   477					S^;*********************************************************************^
   478					;*SPECIAL PROGRAM DISPATCH ADDRESSES
   479					S^;*********************************************************************^
   480
   481	030057	037 12 0 00 000004 	BEGEND:	ENDUUO		;END OF PASS
   482	030060	254 00 0 00 030010 	$BEND1:	JRST	BEGIN1	;KEEP RUNNING PROGRAM
   483	030061	037 16 0 00 000004 	$BEND2:	EOPUUO		;END OF PROGRAM - NO RETURN
   484	030062	254000	030000		CNTLC:	SADR5		;CONTROL C XFER ADDRESS
   485	030063	254000	030000		ALTMGO:	SADR6		;ALTMODE XFER ADDRESS
   486	030064				CPOPJ1:			;SKIP RETURN
   487	030064	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
   488	030065				CPOPJ:			;NON-SKIP REGULAR RETURN
   489	030065	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
   490	030066	255 00 0 00 000000 	UUORTN:	JFCL		;ADDITIONAL USERS UUO ROUTINE
   491	030067	255 00 0 00 000000 	$UORTX:	JFCL		;ADDITIONAL UUO LINKAGE
   492	030070	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
   493	030071	255 00 0 00 000000 	$ITRHL:	JFCL		;ADDITIONAL INTERRUPT LINKAGE
   494	030072	255 00 0 00 000000 	$ITRX1:	JFCL		; "
   495	030073	255 00 0 00 000000 	$USRHL:	JFCL		; "
   496	030074	255 00 0 00 000000 	$RSRTX:	JFCL		;ADDITIONAL POWER FAIL LINKAGE
   497	030075	255 00 0 00 000000 	$RSRTY:	JFCL		; "
   498	030076	255 00 0 00 000000 	RESRT1:	JFCL		; INITED AS (JRST RESRTX)
   499	030077	255 00 0 00 000000 	RESRT2:	JFCL		; "
   500	030100	255 00 0 00 000000 	$PARER:	JFCL		;ADDITIONAL PARITY ERROR LINKAGE
   501	030101	255 00 0 00 000000 	ERMORE:	JFCL		;ADDITIONAL ERROR HANDLER LINKAGE
   502	030102	254 04 0 00 030102 		HALT	.	;IMPROPER TRANSFER HALT
   503
   504	030103	000000	000000		$PSHER:	0		;INITED AS (JRST PSHERR)
   505	030104	000000	000000		ITRCH1:	0		;PC & FLAGS OF CURRENT INTERRUPT
   506	030105	000000	000000			0		;INITED AS (JRST $ITRC1)
   507
   508					S^;*********************************************************************^
   509					;*PROCESSOR CONTROL STORAGE
   510					S^;*********************************************************************^
   511
   512	030106	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
   513	030107	000000	000000		$SVPI:	0		;INTERRUPT SAVED PI
   514	030110	000000	000000		$SVAPR:	0		;INTERRUPT SAVED APR
   515	030111	000000	000000		$SVPAG:	0		;INTERRUPT SAVED PAG (DATAI)
   516	030112	000000	000000		$SPAG1:	0		;INTERRUPT SAVED PAG (CONI)
   517
   518	030113	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
   519	030114	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
   520
   521	030115	000000	000000		REPTU:	0		;REPEAT UUO ITERATIONS
   522	030116	000000	000000		SCOPE:	0		;ERROR HANDLER SCOPE LOOP FLAG
   523	030117	000000	000000		%CORFLG:0		; " CORRECT FLAG
   524	030120	000000	000000		%COREC:	0		; " CORRECT DATA
   525	030121	000000	000000		%ACTFL:	0		; " ACTUAL FLAG
   526	030122	000000	000000		%ACTUL:	0		; " ACTUAL DATA
   527	030123	000000	000000		%DISCR:	0		; " DISCREPENCY DATA
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 4
FIXED	KLM	26-FEB-76		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976                            SEQ 0025

   528					S^;*********************************************************************^
   529					;*UUO DISPATCH TABLE
   530					S^;*********************************************************************^
   531						XLIST
   532						LIST
   533	030124	043570	030070		UUODIS:	LUUO1,,$UUOER
   534	030125	043570	043570			LUUO3,,LUUO2
   535	030126	043570	043570			LUUO5,,LUUO4
   536	030127	043570	043570			LUUO7,,LUUO6
   537	030130	043570	043570			LUUO11,,LUUO10
   538	030131	043570	043570			LUUO13,,LUUO12
   539	030132	030070	030070			LUUO15,,LUUO14
   540	030133	030070	030070			LUUO17,,LUUO16
   541	030134	030070	030070			LUUO21,,LUUO20
   542	030135	030070	030070			LUUO23,,LUUO22
   543	030136	030070	030070			LUUO25,,LUUO24
   544	030137	030070	030070			LUUO27,,LUUO26
   545	030140	030070	030070			LUUO31,,LUUO30
   546	030141	030070	030070			LUUO33,,LUUO32
   547
   548					S^;*********************************************************************^
   549					;*MEMORY MANAGMENT STORAGE
   550					S^;*********************************************************************^
   551
   552	030142	000000	000000		DF22F:	0		;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
   553	030143	000000	000000		MAPNEW:	0		;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
   554	030144	000000	000000		MEMTOT:	0		;TOTAL MEMORY SIZE IN K (1024.)
   555	030145	000000	000000		MEMLOW:	0		;LOWEST USABLE MEMORY
   556	030146				MEMSIZ:	BLOCK ^D41	;MEMORY SEGMENT POINTER TABLE
   557
   558					S^;*********************************************************************^
   559					;*PRINT CONTROL STORAGE
   560					S^;*********************************************************************^
   561
   562	030217	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
   563	030220	000000	000000		PNTENB:	0		;PRINT ENABLE
   564	030221	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
   565	030222	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
   566	030223	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
   567	030224	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
   568	030225	000000	000000		$TWCNT:	0		;TIME WAITED
   569	030226	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
   570	030227	000000	000000		TTYFIL:	0		;TTY EXEC FILLERS FLAG
   571	030230	000000	000000		TTYSPD:	0		;TTY EXEC BAUD RATE
   572	030231	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
   573	030232	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
   574	030233	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
   575	030234	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
   576	030235	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
   577	030236	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
   578	030237	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
   579	030240	000000	000000		USRLFF:	0		;USER LF FILLERS
   580	030241	000000	000000		USRCRF:	0		;USER CR FILLERS
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5
FIXED	KLM	26-FEB-76		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976                            SEQ 0026

   581					S^;*********************************************************************^
   582					;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
   583					;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
   584					;*	MOVEI	NAME
   585					;*	PNTA		;OR PNTAF
   586					S^;*********************************************************************^
   587
   588	030242				CRLF:	ASCII/
   589	030242	015 012 000 000 000 	/
   590	030243				CRLF2:	ASCII/
   591
   592	030243	015 012 015 012 000 	/
   593	030244	054 000 000 000 000 	COMMA:	ASCII/,/
   594	030245	056 000 000 000 000 	PERIOD:	ASCII/./
   595	030246	040 000 000 000 000 	SPACE:	ASCII/ /
   596	030247	011 000 000 000 000 	TAB:	ASCII/	/
   597	030250				MINUS:
   598	030250	055 000 000 000 000 	HYPEN:	ASCII/-/
   599	030251	053 000 000 000 000 	PLUS:	ASCII/+/
   600	030252	052 000 000 000 000 	AST:	ASCII/*/
   601	030253	100 000 000 000 000 	ATSIN:	ASCII/@/
   602	030254	050 000 000 000 000 	LFP:	ASCII/(/
   603	030255	051 000 000 000 000 	RTP:	ASCII/)/
   604	030256	007 0000000000 		BELL:	BYTE (7) 007
   605	030257	077 000 000 000 000 	QUEST:	ASCII/?/
   606	030260	057 000 000 000 000 	SLASH:	ASCII!/!
   607	030261	044 000 000 000 000 	DOLLAR:	ASCII/$/
   608	030262	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
   609	030263	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
   610	030264	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
   611
   612					S^;*********************************************************************^
   613					;*USER MODE OUTPUT FILE INFORMATION
   614					S^;*********************************************************************^
   615
   616	030265				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
   617	030270	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
   618	030271	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
   619	030272					BLOCK	2
   620
   621					S^;*********************************************************************^
   622					;*DISK UPDATE MODE FILE INFORMATION
   623					S^;*********************************************************************^
   624
   625	030274				$IBUF:	BLOCK	3
   626	030277	60 62 51 56 64 00 	$INNM:	SIXBIT	/PRINT/
   627	030300	60 56 64 00 00 00 	$INEXT:	SIXBIT	/PNT/
   628	030301					BLOCK	2
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6
FIXED	KLM	26-FEB-76		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976                            SEQ 0027

   629					S^;*********************************************************************^
   630					;*PUSHDOWN LIST CONTROL INFORMATION
   631					S^;*********************************************************************^
   632
   633	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
   634	030304				PLISTS:	BLOCK	200
   635	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
   636
   637					S^;*********************************************************************^
   638					;*POWER LINE CLOCK FREQUENCY FLAG
   639					S^;*********************************************************************^
   640
   641	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
   642
   643					S^;*********************************************************************^
   644					;*KL10 CACHE CONTROL FLAGS
   645					S^;*********************************************************************^
   646
   647	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
   648	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
   649
   650					S^;*********************************************************************^
   651					;*NUMBER INPUT DIGIT FLAG
   652					S^;*********************************************************************^
   653
   654	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
   655
   656					S^;*********************************************************************^
   657					;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
   658					S^;*********************************************************************^
   659
   660	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
   661
   662					S^;*********************************************************************^
   663					;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
   664					S^;*********************************************************************^
   665
   666	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
   667	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
   668	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
   669
   670					S^;*********************************************************************^
   671					;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
   672					S^;*********************************************************************^
   673
   674	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7
FIXED	KLM	26-FEB-76		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, FEB 26,1976                            SEQ 0028

   675					S^;*********************************************************************^
   676					;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
   677					S^;*********************************************************************^
   678
   679	030516	000000	000000		KLTYP:	0
   680
   681					S^;*********************************************************************^
   682					;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
   683					S^;*********************************************************************^
   684
   685	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
   686
   687					S^;*********************************************************************^
   688					;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
   689					S^;*********************************************************************^
   690
   691	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
   692
   693					S^;*********************************************************************^
   694					;*"SWITCH" CALL USAGE CONTROL
   695					S^;*********************************************************************^
   696
   697	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
   698
   699					S^;*********************************************************************^
   700					;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
   701					S^;*********************************************************************^
   702
   703	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
   704	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
   705
   706					S^;*********************************************************************^
   707					;*SPECIAL FUTURE EXPANSION ROOM
   708					;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF
   709					;*THIS BLOCK STATEMENT ACCORDINGLY.  THIS MUST BE DONE
   710					;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE.
   711					S^;*********************************************************************^
   712
   713	030524					BLOCK	53	;HOPEFULLY THIS IS ENOUGH FOREVER
   714
   715					S^;*********************************************************************^
   716					;*END OF FIXED STORAGE
   717					S^;*********************************************************************^
   718
   719			030577			$ENDFX=<PLISTE+100>&<777700>-1
   720	030577					LOC	$ENDFX
   721	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION                                                                 SEQ 0029

   722					SUBTTL	DIAGNOSTIC SECTION
   723
   724	030600	037 05 0 00 000002 	EXIT:	DROPDV			;CLOSE LOGICAL OUTPUT FILE
   725	030601	000000	030600			EXIT
   726
   727	030602				PGMNAM:	ASCIZ/
   728	030602	015 012 120 104 120 	PDP-10  KI10 BASIC INSTRUCTION DIAGNOSTIC (11) [DBKAK]
   729	030603	055 061 060 040 040 
   730	030604	113 111 061 060 040 
   731	030605	102 101 123 111 103 
   732	030606	040 111 116 123 124 
   733	030607	122 125 103 124 111 
   734	030610	117 116 040 104 111 
   735	030611	101 107 116 117 123 
   736	030612	124 111 103 040 050 
   737	030613	061 061 051 040 133 
   738	030614	104 102 113 101 113 
   739	030615	135 015 012 000 000 	/
   740
   741					;INITIALIZE
   742
   743	030616	265 00 0 00 030011 	START:	PGMINT
   744	030617	200 00 0 00 043775 		MOVE	[ASCIZ/AK/]
   745	030620	202 00 0 00 043711 		MOVEM	TLET		;INITIALIZE TEST LETTER
   746
   747	030621	254 00 0 00 030622 	STARTA:	JRST	F00		;GO PERFORM DIAGNOSTIC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0030

   748					SUBTTL	DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
   749
   750			003000			ADR=3000
   751			000014			AC=14
   752			000012			E=<AC-2>&17
   753
   754	030622				F00:	SAVEAC	(1,1)^
   755	030622	201 16 0 00 030622 		MOVEI	AC+2,.		;SAVE TEST PC
   756	030623	202 16 0 00 030051 		MOVEM	AC+2,TESTPC
   757	030624	201 16 0 00 000016 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
   758	030625	202 16 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
   759
   760					;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0
   761						MOP1	(\ADR,0,-1,0,0,0)^
   762					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   763					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   764					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
   765					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   766
   767			000000		F30000:	AA1=0				;INITIAL C(AC)
   768	030626	200 14 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   769		777777	777777			AA2=-1				;INITIAL C(AC+1)
   770	030627	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   771			000000			AEE=0				;INITIAL C(E)
   772	030630	200 12 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
   773	030631	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   774			000000			AR1=0				;EXPECTED RESULT IN AC
   775	030632	312 14 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   776	030633	003 14 0 00 030001 		ER3	AC,30001		;HIGH PRODUCT FAILED
   777			000000			AR2=0				;EXPECTED RESULT IN AC+1
   778	030634	312 15 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   779	030635	004 15 0 00 030002 		ER4	AC+1,30002		;LOW PRODUCT FAILED
   780			000000			AEE=0				;INITIAL C(E)
   781	030636	312 12 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
   782	030637	005 12 0 00 030003 		ER5	E,30003			;C(E) WAS CLOBBERED
   783	030640	321 16 0 00 030626 		JUMPL	AC+2,F30000		;LOOP ON ERROR SWITCH^
   784
   785			000013			AC=13
   786			000011			E=<AC-2>&17
   787						SAVEAC	(1,1)^
   788	030641	201 15 0 00 030641 		MOVEI	AC+2,.		;SAVE TEST PC
   789	030642	202 15 0 00 030051 		MOVEM	AC+2,TESTPC
   790	030643	201 15 0 00 000015 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
   791	030644	202 15 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
   792			000000			XX=0
   793
   794						REPEAT	^D36,	<
   795						ADR=ADR+1
   796						XX=XX+XX
   797						IFE	XX,<XX=1>
   798					
   799					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   800						MOP1	(\ADR,0,-1,XX,0,0)>
   801
   802			003001			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0031

   803			000000			XX=XX+XX
   804			000001			IFE	XX,<XX=1>
   805
   806					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   807						MOP1	(\ADR,0,-1,XX,0,0)^
   808					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   809					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   810					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   811					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   812
   813			000000		F30010:	AA1=0				;INITIAL C(AC)
   814	030645	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   815		777777	777777			AA2=-1				;INITIAL C(AC+1)
   816	030646	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   817			000001			AEE=XX				;INITIAL C(E)
   818	030647	200 11 0 00 044000 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   819	030650	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   820			000000			AR1=0				;EXPECTED RESULT IN AC
   821	030651	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   822	030652	003 13 0 00 030011 		ER3	AC,30011		;HIGH PRODUCT FAILED
   823			000000			AR2=0				;EXPECTED RESULT IN AC+1
   824	030653	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   825	030654	004 14 0 00 030012 		ER4	AC+1,30012		;LOW PRODUCT FAILED
   826			000001			AEE=XX				;INITIAL C(E)
   827	030655	312 11 0 00 044000 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   828	030656	005 11 0 00 030013 		ER5	E,30013			;C(E) WAS CLOBBERED
   829	030657	321 15 0 00 030645 		JUMPL	AC+2,F30010		;LOOP ON ERROR SWITCH^
   830
   831			003002			ADR=ADR+1
   832			000002			XX=XX+XX
   833						IFE	XX,<XX=1>
   834
   835					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   836						MOP1	(\ADR,0,-1,XX,0,0)^
   837					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   838					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   839					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   840					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   841
   842			000000		F30020:	AA1=0				;INITIAL C(AC)
   843	030660	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   844		777777	777777			AA2=-1				;INITIAL C(AC+1)
   845	030661	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   846			000002			AEE=XX				;INITIAL C(E)
   847	030662	200 11 0 00 044001 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   848	030663	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   849			000000			AR1=0				;EXPECTED RESULT IN AC
   850	030664	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   851	030665	003 13 0 00 030021 		ER3	AC,30021		;HIGH PRODUCT FAILED
   852			000000			AR2=0				;EXPECTED RESULT IN AC+1
   853	030666	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   854	030667	004 14 0 00 030022 		ER4	AC+1,30022		;LOW PRODUCT FAILED
   855			000002			AEE=XX				;INITIAL C(E)
   856	030670	312 11 0 00 044001 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   857	030671	005 11 0 00 030023 		ER5	E,30023			;C(E) WAS CLOBBERED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0032

   858	030672	321 15 0 00 030660 		JUMPL	AC+2,F30020		;LOOP ON ERROR SWITCH^
   859
   860			003003			ADR=ADR+1
   861			000004			XX=XX+XX
   862						IFE	XX,<XX=1>
   863
   864					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   865						MOP1	(\ADR,0,-1,XX,0,0)^
   866					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   867					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   868					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   869					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   870
   871			000000		F30030:	AA1=0				;INITIAL C(AC)
   872	030673	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   873		777777	777777			AA2=-1				;INITIAL C(AC+1)
   874	030674	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   875			000004			AEE=XX				;INITIAL C(E)
   876	030675	200 11 0 00 044002 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   877	030676	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   878			000000			AR1=0				;EXPECTED RESULT IN AC
   879	030677	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   880	030700	003 13 0 00 030031 		ER3	AC,30031		;HIGH PRODUCT FAILED
   881			000000			AR2=0				;EXPECTED RESULT IN AC+1
   882	030701	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   883	030702	004 14 0 00 030032 		ER4	AC+1,30032		;LOW PRODUCT FAILED
   884			000004			AEE=XX				;INITIAL C(E)
   885	030703	312 11 0 00 044002 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   886	030704	005 11 0 00 030033 		ER5	E,30033			;C(E) WAS CLOBBERED
   887	030705	321 15 0 00 030673 		JUMPL	AC+2,F30030		;LOOP ON ERROR SWITCH^
   888
   889			003004			ADR=ADR+1
   890			000010			XX=XX+XX
   891						IFE	XX,<XX=1>
   892
   893					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   894						MOP1	(\ADR,0,-1,XX,0,0)^
   895					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   896					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   897					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   898					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   899
   900			000000		F30040:	AA1=0				;INITIAL C(AC)
   901	030706	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   902		777777	777777			AA2=-1				;INITIAL C(AC+1)
   903	030707	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   904			000010			AEE=XX				;INITIAL C(E)
   905	030710	200 11 0 00 044003 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   906	030711	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   907			000000			AR1=0				;EXPECTED RESULT IN AC
   908	030712	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   909	030713	003 13 0 00 030041 		ER3	AC,30041		;HIGH PRODUCT FAILED
   910			000000			AR2=0				;EXPECTED RESULT IN AC+1
   911	030714	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   912	030715	004 14 0 00 030042 		ER4	AC+1,30042		;LOW PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0033

   913			000010			AEE=XX				;INITIAL C(E)
   914	030716	312 11 0 00 044003 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   915	030717	005 11 0 00 030043 		ER5	E,30043			;C(E) WAS CLOBBERED
   916	030720	321 15 0 00 030706 		JUMPL	AC+2,F30040		;LOOP ON ERROR SWITCH^
   917
   918			003005			ADR=ADR+1
   919			000020			XX=XX+XX
   920						IFE	XX,<XX=1>
   921
   922					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   923						MOP1	(\ADR,0,-1,XX,0,0)^
   924					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   925					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   926					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   927					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   928
   929			000000		F30050:	AA1=0				;INITIAL C(AC)
   930	030721	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   931		777777	777777			AA2=-1				;INITIAL C(AC+1)
   932	030722	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   933			000020			AEE=XX				;INITIAL C(E)
   934	030723	200 11 0 00 044004 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   935	030724	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   936			000000			AR1=0				;EXPECTED RESULT IN AC
   937	030725	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   938	030726	003 13 0 00 030051 		ER3	AC,30051		;HIGH PRODUCT FAILED
   939			000000			AR2=0				;EXPECTED RESULT IN AC+1
   940	030727	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   941	030730	004 14 0 00 030052 		ER4	AC+1,30052		;LOW PRODUCT FAILED
   942			000020			AEE=XX				;INITIAL C(E)
   943	030731	312 11 0 00 044004 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   944	030732	005 11 0 00 030053 		ER5	E,30053			;C(E) WAS CLOBBERED
   945	030733	321 15 0 00 030721 		JUMPL	AC+2,F30050		;LOOP ON ERROR SWITCH^
   946
   947			003006			ADR=ADR+1
   948			000040			XX=XX+XX
   949						IFE	XX,<XX=1>
   950
   951					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   952						MOP1	(\ADR,0,-1,XX,0,0)^
   953					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   954					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   955					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   956					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   957
   958			000000		F30060:	AA1=0				;INITIAL C(AC)
   959	030734	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   960		777777	777777			AA2=-1				;INITIAL C(AC+1)
   961	030735	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   962			000040			AEE=XX				;INITIAL C(E)
   963	030736	200 11 0 00 044005 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   964	030737	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   965			000000			AR1=0				;EXPECTED RESULT IN AC
   966	030740	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   967	030741	003 13 0 00 030061 		ER3	AC,30061		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0034

   968			000000			AR2=0				;EXPECTED RESULT IN AC+1
   969	030742	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   970	030743	004 14 0 00 030062 		ER4	AC+1,30062		;LOW PRODUCT FAILED
   971			000040			AEE=XX				;INITIAL C(E)
   972	030744	312 11 0 00 044005 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   973	030745	005 11 0 00 030063 		ER5	E,30063			;C(E) WAS CLOBBERED
   974	030746	321 15 0 00 030734 		JUMPL	AC+2,F30060		;LOOP ON ERROR SWITCH^
   975
   976			003007			ADR=ADR+1
   977			000100			XX=XX+XX
   978						IFE	XX,<XX=1>
   979
   980					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   981						MOP1	(\ADR,0,-1,XX,0,0)^
   982					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   983					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   984					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   985					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   986
   987			000000		F30070:	AA1=0				;INITIAL C(AC)
   988	030747	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   989		777777	777777			AA2=-1				;INITIAL C(AC+1)
   990	030750	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   991			000100			AEE=XX				;INITIAL C(E)
   992	030751	200 11 0 00 044006 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   993	030752	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   994			000000			AR1=0				;EXPECTED RESULT IN AC
   995	030753	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   996	030754	003 13 0 00 030071 		ER3	AC,30071		;HIGH PRODUCT FAILED
   997			000000			AR2=0				;EXPECTED RESULT IN AC+1
   998	030755	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   999	030756	004 14 0 00 030072 		ER4	AC+1,30072		;LOW PRODUCT FAILED
  1000			000100			AEE=XX				;INITIAL C(E)
  1001	030757	312 11 0 00 044006 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1002	030760	005 11 0 00 030073 		ER5	E,30073			;C(E) WAS CLOBBERED
  1003	030761	321 15 0 00 030747 		JUMPL	AC+2,F30070		;LOOP ON ERROR SWITCH^
  1004
  1005			003010			ADR=ADR+1
  1006			000200			XX=XX+XX
  1007						IFE	XX,<XX=1>
  1008
  1009					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1010						MOP1	(\ADR,0,-1,XX,0,0)^
  1011					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1012					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1013					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1014					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1015
  1016			000000		F30100:	AA1=0				;INITIAL C(AC)
  1017	030762	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1018		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1019	030763	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1020			000200			AEE=XX				;INITIAL C(E)
  1021	030764	200 11 0 00 044007 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1022	030765	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0035

  1023			000000			AR1=0				;EXPECTED RESULT IN AC
  1024	030766	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1025	030767	003 13 0 00 030101 		ER3	AC,30101		;HIGH PRODUCT FAILED
  1026			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1027	030770	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1028	030771	004 14 0 00 030102 		ER4	AC+1,30102		;LOW PRODUCT FAILED
  1029			000200			AEE=XX				;INITIAL C(E)
  1030	030772	312 11 0 00 044007 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1031	030773	005 11 0 00 030103 		ER5	E,30103			;C(E) WAS CLOBBERED
  1032	030774	321 15 0 00 030762 		JUMPL	AC+2,F30100		;LOOP ON ERROR SWITCH^
  1033
  1034			003011			ADR=ADR+1
  1035			000400			XX=XX+XX
  1036						IFE	XX,<XX=1>
  1037
  1038					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1039						MOP1	(\ADR,0,-1,XX,0,0)^
  1040					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1041					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1042					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1043					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1044
  1045			000000		F30110:	AA1=0				;INITIAL C(AC)
  1046	030775	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1047		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1048	030776	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1049			000400			AEE=XX				;INITIAL C(E)
  1050	030777	200 11 0 00 044010 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1051	031000	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1052			000000			AR1=0				;EXPECTED RESULT IN AC
  1053	031001	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1054	031002	003 13 0 00 030111 		ER3	AC,30111		;HIGH PRODUCT FAILED
  1055			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1056	031003	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1057	031004	004 14 0 00 030112 		ER4	AC+1,30112		;LOW PRODUCT FAILED
  1058			000400			AEE=XX				;INITIAL C(E)
  1059	031005	312 11 0 00 044010 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1060	031006	005 11 0 00 030113 		ER5	E,30113			;C(E) WAS CLOBBERED
  1061	031007	321 15 0 00 030775 		JUMPL	AC+2,F30110		;LOOP ON ERROR SWITCH^
  1062
  1063			003012			ADR=ADR+1
  1064			001000			XX=XX+XX
  1065						IFE	XX,<XX=1>
  1066
  1067					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1068						MOP1	(\ADR,0,-1,XX,0,0)^
  1069					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1070					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1071					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1072					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1073
  1074			000000		F30120:	AA1=0				;INITIAL C(AC)
  1075	031010	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1076		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1077	031011	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0036

  1078			001000			AEE=XX				;INITIAL C(E)
  1079	031012	200 11 0 00 044011 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1080	031013	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1081			000000			AR1=0				;EXPECTED RESULT IN AC
  1082	031014	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1083	031015	003 13 0 00 030121 		ER3	AC,30121		;HIGH PRODUCT FAILED
  1084			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1085	031016	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1086	031017	004 14 0 00 030122 		ER4	AC+1,30122		;LOW PRODUCT FAILED
  1087			001000			AEE=XX				;INITIAL C(E)
  1088	031020	312 11 0 00 044011 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1089	031021	005 11 0 00 030123 		ER5	E,30123			;C(E) WAS CLOBBERED
  1090	031022	321 15 0 00 031010 		JUMPL	AC+2,F30120		;LOOP ON ERROR SWITCH^
  1091
  1092			003013			ADR=ADR+1
  1093			002000			XX=XX+XX
  1094						IFE	XX,<XX=1>
  1095
  1096					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1097						MOP1	(\ADR,0,-1,XX,0,0)^
  1098					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1099					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1100					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1101					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1102
  1103			000000		F30130:	AA1=0				;INITIAL C(AC)
  1104	031023	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1105		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1106	031024	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1107			002000			AEE=XX				;INITIAL C(E)
  1108	031025	200 11 0 00 044012 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1109	031026	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1110			000000			AR1=0				;EXPECTED RESULT IN AC
  1111	031027	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1112	031030	003 13 0 00 030131 		ER3	AC,30131		;HIGH PRODUCT FAILED
  1113			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1114	031031	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1115	031032	004 14 0 00 030132 		ER4	AC+1,30132		;LOW PRODUCT FAILED
  1116			002000			AEE=XX				;INITIAL C(E)
  1117	031033	312 11 0 00 044012 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1118	031034	005 11 0 00 030133 		ER5	E,30133			;C(E) WAS CLOBBERED
  1119	031035	321 15 0 00 031023 		JUMPL	AC+2,F30130		;LOOP ON ERROR SWITCH^
  1120
  1121			003014			ADR=ADR+1
  1122			004000			XX=XX+XX
  1123						IFE	XX,<XX=1>
  1124
  1125					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1126						MOP1	(\ADR,0,-1,XX,0,0)^
  1127					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1128					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1129					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1130					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1131
  1132			000000		F30140:	AA1=0				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0037

  1133	031036	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1134		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1135	031037	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1136			004000			AEE=XX				;INITIAL C(E)
  1137	031040	200 11 0 00 044013 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1138	031041	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1139			000000			AR1=0				;EXPECTED RESULT IN AC
  1140	031042	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1141	031043	003 13 0 00 030141 		ER3	AC,30141		;HIGH PRODUCT FAILED
  1142			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1143	031044	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1144	031045	004 14 0 00 030142 		ER4	AC+1,30142		;LOW PRODUCT FAILED
  1145			004000			AEE=XX				;INITIAL C(E)
  1146	031046	312 11 0 00 044013 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1147	031047	005 11 0 00 030143 		ER5	E,30143			;C(E) WAS CLOBBERED
  1148	031050	321 15 0 00 031036 		JUMPL	AC+2,F30140		;LOOP ON ERROR SWITCH^
  1149
  1150			003015			ADR=ADR+1
  1151			010000			XX=XX+XX
  1152						IFE	XX,<XX=1>
  1153
  1154					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1155						MOP1	(\ADR,0,-1,XX,0,0)^
  1156					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1157					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1158					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1159					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1160
  1161			000000		F30150:	AA1=0				;INITIAL C(AC)
  1162	031051	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1163		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1164	031052	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1165			010000			AEE=XX				;INITIAL C(E)
  1166	031053	200 11 0 00 044014 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1167	031054	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1168			000000			AR1=0				;EXPECTED RESULT IN AC
  1169	031055	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1170	031056	003 13 0 00 030151 		ER3	AC,30151		;HIGH PRODUCT FAILED
  1171			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1172	031057	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1173	031060	004 14 0 00 030152 		ER4	AC+1,30152		;LOW PRODUCT FAILED
  1174			010000			AEE=XX				;INITIAL C(E)
  1175	031061	312 11 0 00 044014 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1176	031062	005 11 0 00 030153 		ER5	E,30153			;C(E) WAS CLOBBERED
  1177	031063	321 15 0 00 031051 		JUMPL	AC+2,F30150		;LOOP ON ERROR SWITCH^
  1178
  1179			003016			ADR=ADR+1
  1180			020000			XX=XX+XX
  1181						IFE	XX,<XX=1>
  1182
  1183					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1184						MOP1	(\ADR,0,-1,XX,0,0)^
  1185					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1186					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1187					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0038

  1188					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1189
  1190			000000		F30160:	AA1=0				;INITIAL C(AC)
  1191	031064	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1192		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1193	031065	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1194			020000			AEE=XX				;INITIAL C(E)
  1195	031066	200 11 0 00 044015 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1196	031067	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1197			000000			AR1=0				;EXPECTED RESULT IN AC
  1198	031070	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1199	031071	003 13 0 00 030161 		ER3	AC,30161		;HIGH PRODUCT FAILED
  1200			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1201	031072	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1202	031073	004 14 0 00 030162 		ER4	AC+1,30162		;LOW PRODUCT FAILED
  1203			020000			AEE=XX				;INITIAL C(E)
  1204	031074	312 11 0 00 044015 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1205	031075	005 11 0 00 030163 		ER5	E,30163			;C(E) WAS CLOBBERED
  1206	031076	321 15 0 00 031064 		JUMPL	AC+2,F30160		;LOOP ON ERROR SWITCH^
  1207
  1208			003017			ADR=ADR+1
  1209			040000			XX=XX+XX
  1210						IFE	XX,<XX=1>
  1211
  1212					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1213						MOP1	(\ADR,0,-1,XX,0,0)^
  1214					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1215					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1216					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1217					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1218
  1219			000000		F30170:	AA1=0				;INITIAL C(AC)
  1220	031077	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1221		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1222	031100	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1223			040000			AEE=XX				;INITIAL C(E)
  1224	031101	200 11 0 00 044016 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1225	031102	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1226			000000			AR1=0				;EXPECTED RESULT IN AC
  1227	031103	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1228	031104	003 13 0 00 030171 		ER3	AC,30171		;HIGH PRODUCT FAILED
  1229			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1230	031105	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1231	031106	004 14 0 00 030172 		ER4	AC+1,30172		;LOW PRODUCT FAILED
  1232			040000			AEE=XX				;INITIAL C(E)
  1233	031107	312 11 0 00 044016 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1234	031110	005 11 0 00 030173 		ER5	E,30173			;C(E) WAS CLOBBERED
  1235	031111	321 15 0 00 031077 		JUMPL	AC+2,F30170		;LOOP ON ERROR SWITCH^
  1236
  1237			003020			ADR=ADR+1
  1238			100000			XX=XX+XX
  1239						IFE	XX,<XX=1>
  1240
  1241					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1242						MOP1	(\ADR,0,-1,XX,0,0)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0039

  1243					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1244					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1245					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1246					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1247
  1248			000000		F30200:	AA1=0				;INITIAL C(AC)
  1249	031112	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1250		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1251	031113	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1252			100000			AEE=XX				;INITIAL C(E)
  1253	031114	200 11 0 00 044017 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1254	031115	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1255			000000			AR1=0				;EXPECTED RESULT IN AC
  1256	031116	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1257	031117	003 13 0 00 030201 		ER3	AC,30201		;HIGH PRODUCT FAILED
  1258			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1259	031120	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1260	031121	004 14 0 00 030202 		ER4	AC+1,30202		;LOW PRODUCT FAILED
  1261			100000			AEE=XX				;INITIAL C(E)
  1262	031122	312 11 0 00 044017 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1263	031123	005 11 0 00 030203 		ER5	E,30203			;C(E) WAS CLOBBERED
  1264	031124	321 15 0 00 031112 		JUMPL	AC+2,F30200		;LOOP ON ERROR SWITCH^
  1265
  1266			003021			ADR=ADR+1
  1267			200000			XX=XX+XX
  1268						IFE	XX,<XX=1>
  1269
  1270					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1271						MOP1	(\ADR,0,-1,XX,0,0)^
  1272					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1273					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1274					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1275					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1276
  1277			000000		F30210:	AA1=0				;INITIAL C(AC)
  1278	031125	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1279		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1280	031126	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1281			200000			AEE=XX				;INITIAL C(E)
  1282	031127	200 11 0 00 044020 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1283	031130	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1284			000000			AR1=0				;EXPECTED RESULT IN AC
  1285	031131	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1286	031132	003 13 0 00 030211 		ER3	AC,30211		;HIGH PRODUCT FAILED
  1287			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1288	031133	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1289	031134	004 14 0 00 030212 		ER4	AC+1,30212		;LOW PRODUCT FAILED
  1290			200000			AEE=XX				;INITIAL C(E)
  1291	031135	312 11 0 00 044020 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1292	031136	005 11 0 00 030213 		ER5	E,30213			;C(E) WAS CLOBBERED
  1293	031137	321 15 0 00 031125 		JUMPL	AC+2,F30210		;LOOP ON ERROR SWITCH^
  1294
  1295			003022			ADR=ADR+1
  1296			400000			XX=XX+XX
  1297						IFE	XX,<XX=1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0040

  1298
  1299					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1300						MOP1	(\ADR,0,-1,XX,0,0)^
  1301					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1302					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1303					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1304					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1305
  1306			000000		F30220:	AA1=0				;INITIAL C(AC)
  1307	031140	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1308		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1309	031141	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1310			400000			AEE=XX				;INITIAL C(E)
  1311	031142	200 11 0 00 044021 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1312	031143	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1313			000000			AR1=0				;EXPECTED RESULT IN AC
  1314	031144	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1315	031145	003 13 0 00 030221 		ER3	AC,30221		;HIGH PRODUCT FAILED
  1316			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1317	031146	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1318	031147	004 14 0 00 030222 		ER4	AC+1,30222		;LOW PRODUCT FAILED
  1319			400000			AEE=XX				;INITIAL C(E)
  1320	031150	312 11 0 00 044021 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1321	031151	005 11 0 00 030223 		ER5	E,30223			;C(E) WAS CLOBBERED
  1322	031152	321 15 0 00 031140 		JUMPL	AC+2,F30220		;LOOP ON ERROR SWITCH^
  1323
  1324			003023			ADR=ADR+1
  1325		000001	000000			XX=XX+XX
  1326						IFE	XX,<XX=1>
  1327
  1328					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1329						MOP1	(\ADR,0,-1,XX,0,0)^
  1330					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1331					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1332					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1333					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1334
  1335			000000		F30230:	AA1=0				;INITIAL C(AC)
  1336	031153	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1337		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1338	031154	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1339		000001	000000			AEE=XX				;INITIAL C(E)
  1340	031155	200 11 0 00 044022 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1341	031156	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1342			000000			AR1=0				;EXPECTED RESULT IN AC
  1343	031157	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1344	031160	003 13 0 00 030231 		ER3	AC,30231		;HIGH PRODUCT FAILED
  1345			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1346	031161	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1347	031162	004 14 0 00 030232 		ER4	AC+1,30232		;LOW PRODUCT FAILED
  1348		000001	000000			AEE=XX				;INITIAL C(E)
  1349	031163	312 11 0 00 044022 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1350	031164	005 11 0 00 030233 		ER5	E,30233			;C(E) WAS CLOBBERED
  1351	031165	321 15 0 00 031153 		JUMPL	AC+2,F30230		;LOOP ON ERROR SWITCH^
  1352
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0041

  1353			003024			ADR=ADR+1
  1354		000002	000000			XX=XX+XX
  1355						IFE	XX,<XX=1>
  1356
  1357					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1358						MOP1	(\ADR,0,-1,XX,0,0)^
  1359					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1360					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1361					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1362					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1363
  1364			000000		F30240:	AA1=0				;INITIAL C(AC)
  1365	031166	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1366		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1367	031167	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1368		000002	000000			AEE=XX				;INITIAL C(E)
  1369	031170	200 11 0 00 044023 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1370	031171	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1371			000000			AR1=0				;EXPECTED RESULT IN AC
  1372	031172	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1373	031173	003 13 0 00 030241 		ER3	AC,30241		;HIGH PRODUCT FAILED
  1374			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1375	031174	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1376	031175	004 14 0 00 030242 		ER4	AC+1,30242		;LOW PRODUCT FAILED
  1377		000002	000000			AEE=XX				;INITIAL C(E)
  1378	031176	312 11 0 00 044023 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1379	031177	005 11 0 00 030243 		ER5	E,30243			;C(E) WAS CLOBBERED
  1380	031200	321 15 0 00 031166 		JUMPL	AC+2,F30240		;LOOP ON ERROR SWITCH^
  1381
  1382			003025			ADR=ADR+1
  1383		000004	000000			XX=XX+XX
  1384						IFE	XX,<XX=1>
  1385
  1386					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1387						MOP1	(\ADR,0,-1,XX,0,0)^
  1388					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1389					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1390					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1391					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1392
  1393			000000		F30250:	AA1=0				;INITIAL C(AC)
  1394	031201	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1395		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1396	031202	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1397		000004	000000			AEE=XX				;INITIAL C(E)
  1398	031203	200 11 0 00 044024 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1399	031204	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1400			000000			AR1=0				;EXPECTED RESULT IN AC
  1401	031205	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1402	031206	003 13 0 00 030251 		ER3	AC,30251		;HIGH PRODUCT FAILED
  1403			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1404	031207	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1405	031210	004 14 0 00 030252 		ER4	AC+1,30252		;LOW PRODUCT FAILED
  1406		000004	000000			AEE=XX				;INITIAL C(E)
  1407	031211	312 11 0 00 044024 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0042

  1408	031212	005 11 0 00 030253 		ER5	E,30253			;C(E) WAS CLOBBERED
  1409	031213	321 15 0 00 031201 		JUMPL	AC+2,F30250		;LOOP ON ERROR SWITCH^
  1410
  1411			003026			ADR=ADR+1
  1412		000010	000000			XX=XX+XX
  1413						IFE	XX,<XX=1>
  1414
  1415					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1416						MOP1	(\ADR,0,-1,XX,0,0)^
  1417					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1418					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1419					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1420					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1421
  1422			000000		F30260:	AA1=0				;INITIAL C(AC)
  1423	031214	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1424		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1425	031215	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1426		000010	000000			AEE=XX				;INITIAL C(E)
  1427	031216	200 11 0 00 044025 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1428	031217	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1429			000000			AR1=0				;EXPECTED RESULT IN AC
  1430	031220	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1431	031221	003 13 0 00 030261 		ER3	AC,30261		;HIGH PRODUCT FAILED
  1432			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1433	031222	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1434	031223	004 14 0 00 030262 		ER4	AC+1,30262		;LOW PRODUCT FAILED
  1435		000010	000000			AEE=XX				;INITIAL C(E)
  1436	031224	312 11 0 00 044025 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1437	031225	005 11 0 00 030263 		ER5	E,30263			;C(E) WAS CLOBBERED
  1438	031226	321 15 0 00 031214 		JUMPL	AC+2,F30260		;LOOP ON ERROR SWITCH^
  1439
  1440			003027			ADR=ADR+1
  1441		000020	000000			XX=XX+XX
  1442						IFE	XX,<XX=1>
  1443
  1444					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1445						MOP1	(\ADR,0,-1,XX,0,0)^
  1446					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1447					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1448					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1449					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1450
  1451			000000		F30270:	AA1=0				;INITIAL C(AC)
  1452	031227	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1453		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1454	031230	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1455		000020	000000			AEE=XX				;INITIAL C(E)
  1456	031231	200 11 0 00 044026 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1457	031232	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1458			000000			AR1=0				;EXPECTED RESULT IN AC
  1459	031233	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1460	031234	003 13 0 00 030271 		ER3	AC,30271		;HIGH PRODUCT FAILED
  1461			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1462	031235	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0043

  1463	031236	004 14 0 00 030272 		ER4	AC+1,30272		;LOW PRODUCT FAILED
  1464		000020	000000			AEE=XX				;INITIAL C(E)
  1465	031237	312 11 0 00 044026 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1466	031240	005 11 0 00 030273 		ER5	E,30273			;C(E) WAS CLOBBERED
  1467	031241	321 15 0 00 031227 		JUMPL	AC+2,F30270		;LOOP ON ERROR SWITCH^
  1468
  1469			003030			ADR=ADR+1
  1470		000040	000000			XX=XX+XX
  1471						IFE	XX,<XX=1>
  1472
  1473					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1474						MOP1	(\ADR,0,-1,XX,0,0)^
  1475					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1476					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1477					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1478					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1479
  1480			000000		F30300:	AA1=0				;INITIAL C(AC)
  1481	031242	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1482		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1483	031243	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1484		000040	000000			AEE=XX				;INITIAL C(E)
  1485	031244	200 11 0 00 044027 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1486	031245	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1487			000000			AR1=0				;EXPECTED RESULT IN AC
  1488	031246	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1489	031247	003 13 0 00 030301 		ER3	AC,30301		;HIGH PRODUCT FAILED
  1490			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1491	031250	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1492	031251	004 14 0 00 030302 		ER4	AC+1,30302		;LOW PRODUCT FAILED
  1493		000040	000000			AEE=XX				;INITIAL C(E)
  1494	031252	312 11 0 00 044027 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1495	031253	005 11 0 00 030303 		ER5	E,30303			;C(E) WAS CLOBBERED
  1496	031254	321 15 0 00 031242 		JUMPL	AC+2,F30300		;LOOP ON ERROR SWITCH^
  1497
  1498			003031			ADR=ADR+1
  1499		000100	000000			XX=XX+XX
  1500						IFE	XX,<XX=1>
  1501
  1502					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1503						MOP1	(\ADR,0,-1,XX,0,0)^
  1504					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1505					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1506					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1507					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1508
  1509			000000		F30310:	AA1=0				;INITIAL C(AC)
  1510	031255	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1511		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1512	031256	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1513		000100	000000			AEE=XX				;INITIAL C(E)
  1514	031257	200 11 0 00 044030 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1515	031260	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1516			000000			AR1=0				;EXPECTED RESULT IN AC
  1517	031261	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0044

  1518	031262	003 13 0 00 030311 		ER3	AC,30311		;HIGH PRODUCT FAILED
  1519			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1520	031263	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1521	031264	004 14 0 00 030312 		ER4	AC+1,30312		;LOW PRODUCT FAILED
  1522		000100	000000			AEE=XX				;INITIAL C(E)
  1523	031265	312 11 0 00 044030 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1524	031266	005 11 0 00 030313 		ER5	E,30313			;C(E) WAS CLOBBERED
  1525	031267	321 15 0 00 031255 		JUMPL	AC+2,F30310		;LOOP ON ERROR SWITCH^
  1526
  1527			003032			ADR=ADR+1
  1528		000200	000000			XX=XX+XX
  1529						IFE	XX,<XX=1>
  1530
  1531					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1532						MOP1	(\ADR,0,-1,XX,0,0)^
  1533					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1534					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1535					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1536					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1537
  1538			000000		F30320:	AA1=0				;INITIAL C(AC)
  1539	031270	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1540		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1541	031271	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1542		000200	000000			AEE=XX				;INITIAL C(E)
  1543	031272	200 11 0 00 044031 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1544	031273	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1545			000000			AR1=0				;EXPECTED RESULT IN AC
  1546	031274	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1547	031275	003 13 0 00 030321 		ER3	AC,30321		;HIGH PRODUCT FAILED
  1548			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1549	031276	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1550	031277	004 14 0 00 030322 		ER4	AC+1,30322		;LOW PRODUCT FAILED
  1551		000200	000000			AEE=XX				;INITIAL C(E)
  1552	031300	312 11 0 00 044031 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1553	031301	005 11 0 00 030323 		ER5	E,30323			;C(E) WAS CLOBBERED
  1554	031302	321 15 0 00 031270 		JUMPL	AC+2,F30320		;LOOP ON ERROR SWITCH^
  1555
  1556			003033			ADR=ADR+1
  1557		000400	000000			XX=XX+XX
  1558						IFE	XX,<XX=1>
  1559
  1560					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1561						MOP1	(\ADR,0,-1,XX,0,0)^
  1562					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1563					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1564					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1565					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1566
  1567			000000		F30330:	AA1=0				;INITIAL C(AC)
  1568	031303	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1569		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1570	031304	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1571		000400	000000			AEE=XX				;INITIAL C(E)
  1572	031305	200 11 0 00 044032 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0045

  1573	031306	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1574			000000			AR1=0				;EXPECTED RESULT IN AC
  1575	031307	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1576	031310	003 13 0 00 030331 		ER3	AC,30331		;HIGH PRODUCT FAILED
  1577			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1578	031311	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1579	031312	004 14 0 00 030332 		ER4	AC+1,30332		;LOW PRODUCT FAILED
  1580		000400	000000			AEE=XX				;INITIAL C(E)
  1581	031313	312 11 0 00 044032 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1582	031314	005 11 0 00 030333 		ER5	E,30333			;C(E) WAS CLOBBERED
  1583	031315	321 15 0 00 031303 		JUMPL	AC+2,F30330		;LOOP ON ERROR SWITCH^
  1584
  1585			003034			ADR=ADR+1
  1586		001000	000000			XX=XX+XX
  1587						IFE	XX,<XX=1>
  1588
  1589					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1590						MOP1	(\ADR,0,-1,XX,0,0)^
  1591					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1592					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1593					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1594					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1595
  1596			000000		F30340:	AA1=0				;INITIAL C(AC)
  1597	031316	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1598		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1599	031317	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1600		001000	000000			AEE=XX				;INITIAL C(E)
  1601	031320	200 11 0 00 044033 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1602	031321	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1603			000000			AR1=0				;EXPECTED RESULT IN AC
  1604	031322	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1605	031323	003 13 0 00 030341 		ER3	AC,30341		;HIGH PRODUCT FAILED
  1606			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1607	031324	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1608	031325	004 14 0 00 030342 		ER4	AC+1,30342		;LOW PRODUCT FAILED
  1609		001000	000000			AEE=XX				;INITIAL C(E)
  1610	031326	312 11 0 00 044033 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1611	031327	005 11 0 00 030343 		ER5	E,30343			;C(E) WAS CLOBBERED
  1612	031330	321 15 0 00 031316 		JUMPL	AC+2,F30340		;LOOP ON ERROR SWITCH^
  1613
  1614			003035			ADR=ADR+1
  1615		002000	000000			XX=XX+XX
  1616						IFE	XX,<XX=1>
  1617
  1618					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1619						MOP1	(\ADR,0,-1,XX,0,0)^
  1620					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1621					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1622					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1623					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1624
  1625			000000		F30350:	AA1=0				;INITIAL C(AC)
  1626	031331	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1627		777777	777777			AA2=-1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0046

  1628	031332	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1629		002000	000000			AEE=XX				;INITIAL C(E)
  1630	031333	200 11 0 00 044034 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1631	031334	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1632			000000			AR1=0				;EXPECTED RESULT IN AC
  1633	031335	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1634	031336	003 13 0 00 030351 		ER3	AC,30351		;HIGH PRODUCT FAILED
  1635			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1636	031337	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1637	031340	004 14 0 00 030352 		ER4	AC+1,30352		;LOW PRODUCT FAILED
  1638		002000	000000			AEE=XX				;INITIAL C(E)
  1639	031341	312 11 0 00 044034 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1640	031342	005 11 0 00 030353 		ER5	E,30353			;C(E) WAS CLOBBERED
  1641	031343	321 15 0 00 031331 		JUMPL	AC+2,F30350		;LOOP ON ERROR SWITCH^
  1642
  1643			003036			ADR=ADR+1
  1644		004000	000000			XX=XX+XX
  1645						IFE	XX,<XX=1>
  1646
  1647					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1648						MOP1	(\ADR,0,-1,XX,0,0)^
  1649					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1650					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1651					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1652					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1653
  1654			000000		F30360:	AA1=0				;INITIAL C(AC)
  1655	031344	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1656		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1657	031345	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1658		004000	000000			AEE=XX				;INITIAL C(E)
  1659	031346	200 11 0 00 044035 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1660	031347	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1661			000000			AR1=0				;EXPECTED RESULT IN AC
  1662	031350	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1663	031351	003 13 0 00 030361 		ER3	AC,30361		;HIGH PRODUCT FAILED
  1664			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1665	031352	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1666	031353	004 14 0 00 030362 		ER4	AC+1,30362		;LOW PRODUCT FAILED
  1667		004000	000000			AEE=XX				;INITIAL C(E)
  1668	031354	312 11 0 00 044035 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1669	031355	005 11 0 00 030363 		ER5	E,30363			;C(E) WAS CLOBBERED
  1670	031356	321 15 0 00 031344 		JUMPL	AC+2,F30360		;LOOP ON ERROR SWITCH^
  1671
  1672			003037			ADR=ADR+1
  1673		010000	000000			XX=XX+XX
  1674						IFE	XX,<XX=1>
  1675
  1676					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1677						MOP1	(\ADR,0,-1,XX,0,0)^
  1678					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1679					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1680					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1681					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1682
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0047

  1683			000000		F30370:	AA1=0				;INITIAL C(AC)
  1684	031357	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1685		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1686	031360	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1687		010000	000000			AEE=XX				;INITIAL C(E)
  1688	031361	200 11 0 00 044036 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1689	031362	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1690			000000			AR1=0				;EXPECTED RESULT IN AC
  1691	031363	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1692	031364	003 13 0 00 030371 		ER3	AC,30371		;HIGH PRODUCT FAILED
  1693			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1694	031365	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1695	031366	004 14 0 00 030372 		ER4	AC+1,30372		;LOW PRODUCT FAILED
  1696		010000	000000			AEE=XX				;INITIAL C(E)
  1697	031367	312 11 0 00 044036 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1698	031370	005 11 0 00 030373 		ER5	E,30373			;C(E) WAS CLOBBERED
  1699	031371	321 15 0 00 031357 		JUMPL	AC+2,F30370		;LOOP ON ERROR SWITCH^
  1700
  1701			003040			ADR=ADR+1
  1702		020000	000000			XX=XX+XX
  1703						IFE	XX,<XX=1>
  1704
  1705					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1706						MOP1	(\ADR,0,-1,XX,0,0)^
  1707					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1708					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1709					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1710					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1711
  1712			000000		F30400:	AA1=0				;INITIAL C(AC)
  1713	031372	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1714		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1715	031373	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1716		020000	000000			AEE=XX				;INITIAL C(E)
  1717	031374	200 11 0 00 044037 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1718	031375	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1719			000000			AR1=0				;EXPECTED RESULT IN AC
  1720	031376	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1721	031377	003 13 0 00 030401 		ER3	AC,30401		;HIGH PRODUCT FAILED
  1722			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1723	031400	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1724	031401	004 14 0 00 030402 		ER4	AC+1,30402		;LOW PRODUCT FAILED
  1725		020000	000000			AEE=XX				;INITIAL C(E)
  1726	031402	312 11 0 00 044037 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1727	031403	005 11 0 00 030403 		ER5	E,30403			;C(E) WAS CLOBBERED
  1728	031404	321 15 0 00 031372 		JUMPL	AC+2,F30400		;LOOP ON ERROR SWITCH^
  1729
  1730			003041			ADR=ADR+1
  1731		040000	000000			XX=XX+XX
  1732						IFE	XX,<XX=1>
  1733
  1734					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1735						MOP1	(\ADR,0,-1,XX,0,0)^
  1736					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1737					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0048

  1738					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1739					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1740
  1741			000000		F30410:	AA1=0				;INITIAL C(AC)
  1742	031405	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1743		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1744	031406	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1745		040000	000000			AEE=XX				;INITIAL C(E)
  1746	031407	200 11 0 00 044040 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1747	031410	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1748			000000			AR1=0				;EXPECTED RESULT IN AC
  1749	031411	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1750	031412	003 13 0 00 030411 		ER3	AC,30411		;HIGH PRODUCT FAILED
  1751			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1752	031413	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1753	031414	004 14 0 00 030412 		ER4	AC+1,30412		;LOW PRODUCT FAILED
  1754		040000	000000			AEE=XX				;INITIAL C(E)
  1755	031415	312 11 0 00 044040 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1756	031416	005 11 0 00 030413 		ER5	E,30413			;C(E) WAS CLOBBERED
  1757	031417	321 15 0 00 031405 		JUMPL	AC+2,F30410		;LOOP ON ERROR SWITCH^
  1758
  1759			003042			ADR=ADR+1
  1760		100000	000000			XX=XX+XX
  1761						IFE	XX,<XX=1>
  1762
  1763					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1764						MOP1	(\ADR,0,-1,XX,0,0)^
  1765					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1766					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1767					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1768					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1769
  1770			000000		F30420:	AA1=0				;INITIAL C(AC)
  1771	031420	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1772		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1773	031421	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1774		100000	000000			AEE=XX				;INITIAL C(E)
  1775	031422	200 11 0 00 044041 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1776	031423	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1777			000000			AR1=0				;EXPECTED RESULT IN AC
  1778	031424	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1779	031425	003 13 0 00 030421 		ER3	AC,30421		;HIGH PRODUCT FAILED
  1780			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1781	031426	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1782	031427	004 14 0 00 030422 		ER4	AC+1,30422		;LOW PRODUCT FAILED
  1783		100000	000000			AEE=XX				;INITIAL C(E)
  1784	031430	312 11 0 00 044041 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1785	031431	005 11 0 00 030423 		ER5	E,30423			;C(E) WAS CLOBBERED
  1786	031432	321 15 0 00 031420 		JUMPL	AC+2,F30420		;LOOP ON ERROR SWITCH^
  1787
  1788			003043			ADR=ADR+1
  1789		200000	000000			XX=XX+XX
  1790						IFE	XX,<XX=1>
  1791
  1792					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0049

  1793						MOP1	(\ADR,0,-1,XX,0,0)^
  1794					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1795					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1796					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1797					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1798
  1799			000000		F30430:	AA1=0				;INITIAL C(AC)
  1800	031433	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1801		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1802	031434	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1803		200000	000000			AEE=XX				;INITIAL C(E)
  1804	031435	200 11 0 00 044042 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1805	031436	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1806			000000			AR1=0				;EXPECTED RESULT IN AC
  1807	031437	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1808	031440	003 13 0 00 030431 		ER3	AC,30431		;HIGH PRODUCT FAILED
  1809			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1810	031441	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1811	031442	004 14 0 00 030432 		ER4	AC+1,30432		;LOW PRODUCT FAILED
  1812		200000	000000			AEE=XX				;INITIAL C(E)
  1813	031443	312 11 0 00 044042 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1814	031444	005 11 0 00 030433 		ER5	E,30433			;C(E) WAS CLOBBERED
  1815	031445	321 15 0 00 031433 		JUMPL	AC+2,F30430		;LOOP ON ERROR SWITCH^
  1816
  1817			003044			ADR=ADR+1
  1818		400000	000000			XX=XX+XX
  1819						IFE	XX,<XX=1>
  1820
  1821					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1822						MOP1	(\ADR,0,-1,XX,0,0)^
  1823					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1824					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1825					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1826					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1827
  1828			000000		F30440:	AA1=0				;INITIAL C(AC)
  1829	031446	200 13 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1830		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1831	031447	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1832		400000	000000			AEE=XX				;INITIAL C(E)
  1833	031450	200 11 0 00 044043 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1834	031451	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1835			000000			AR1=0				;EXPECTED RESULT IN AC
  1836	031452	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1837	031453	003 13 0 00 030441 		ER3	AC,30441		;HIGH PRODUCT FAILED
  1838			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1839	031454	312 14 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1840	031455	004 14 0 00 030442 		ER4	AC+1,30442		;LOW PRODUCT FAILED
  1841		400000	000000			AEE=XX				;INITIAL C(E)
  1842	031456	312 11 0 00 044043 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1843	031457	005 11 0 00 030443 		ER5	E,30443			;C(E) WAS CLOBBERED
  1844	031460	321 15 0 00 031446 		JUMPL	AC+2,F30440		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0050

  1845			000012			AC=12
  1846			000010			E=<AC-2>&17
  1847						SAVEAC	(1,1)^
  1848	031461	201 14 0 00 031461 		MOVEI	AC+2,.		;SAVE TEST PC
  1849	031462	202 14 0 00 030051 		MOVEM	AC+2,TESTPC
  1850	031463	201 14 0 00 000014 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  1851	031464	202 14 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  1852			000000			XX=0
  1853
  1854						REPEAT	^D36,	<
  1855						ADR=ADR+1
  1856						XX=XX+XX+1
  1857						IFE	<XX-1>,<XX=-2>
  1858					
  1859					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  1860						MOP1	(\ADR,0,-1,XX,0,0)>
  1861
  1862			003045			ADR=ADR+1
  1863			000001			XX=XX+XX+1
  1864		777777	777776			IFE	<XX-1>,<XX=-2>
  1865
  1866					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  1867						MOP1	(\ADR,0,-1,XX,0,0)^
  1868					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1869					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1870					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1871					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1872
  1873			000000		F30450:	AA1=0				;INITIAL C(AC)
  1874	031465	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1875		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1876	031466	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1877		777777	777776			AEE=XX				;INITIAL C(E)
  1878	031467	200 10 0 00 044044 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1879	031470	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1880			000000			AR1=0				;EXPECTED RESULT IN AC
  1881	031471	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1882	031472	003 12 0 00 030451 		ER3	AC,30451		;HIGH PRODUCT FAILED
  1883			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1884	031473	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1885	031474	004 13 0 00 030452 		ER4	AC+1,30452		;LOW PRODUCT FAILED
  1886		777777	777776			AEE=XX				;INITIAL C(E)
  1887	031475	312 10 0 00 044044 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1888	031476	005 10 0 00 030453 		ER5	E,30453			;C(E) WAS CLOBBERED
  1889	031477	321 14 0 00 031465 		JUMPL	AC+2,F30450		;LOOP ON ERROR SWITCH^
  1890
  1891			003046			ADR=ADR+1
  1892		777777	777775			XX=XX+XX+1
  1893						IFE	<XX-1>,<XX=-2>
  1894
  1895					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  1896						MOP1	(\ADR,0,-1,XX,0,0)^
  1897					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1898					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1899					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0051

  1900					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1901
  1902			000000		F30460:	AA1=0				;INITIAL C(AC)
  1903	031500	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1904		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1905	031501	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1906		777777	777775			AEE=XX				;INITIAL C(E)
  1907	031502	200 10 0 00 044045 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1908	031503	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1909			000000			AR1=0				;EXPECTED RESULT IN AC
  1910	031504	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1911	031505	003 12 0 00 030461 		ER3	AC,30461		;HIGH PRODUCT FAILED
  1912			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1913	031506	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1914	031507	004 13 0 00 030462 		ER4	AC+1,30462		;LOW PRODUCT FAILED
  1915		777777	777775			AEE=XX				;INITIAL C(E)
  1916	031510	312 10 0 00 044045 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1917	031511	005 10 0 00 030463 		ER5	E,30463			;C(E) WAS CLOBBERED
  1918	031512	321 14 0 00 031500 		JUMPL	AC+2,F30460		;LOOP ON ERROR SWITCH^
  1919
  1920			003047			ADR=ADR+1
  1921		777777	777773			XX=XX+XX+1
  1922						IFE	<XX-1>,<XX=-2>
  1923
  1924					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  1925						MOP1	(\ADR,0,-1,XX,0,0)^
  1926					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1927					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1928					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1929					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1930
  1931			000000		F30470:	AA1=0				;INITIAL C(AC)
  1932	031513	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1933		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1934	031514	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1935		777777	777773			AEE=XX				;INITIAL C(E)
  1936	031515	200 10 0 00 044046 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1937	031516	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1938			000000			AR1=0				;EXPECTED RESULT IN AC
  1939	031517	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1940	031520	003 12 0 00 030471 		ER3	AC,30471		;HIGH PRODUCT FAILED
  1941			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1942	031521	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1943	031522	004 13 0 00 030472 		ER4	AC+1,30472		;LOW PRODUCT FAILED
  1944		777777	777773			AEE=XX				;INITIAL C(E)
  1945	031523	312 10 0 00 044046 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1946	031524	005 10 0 00 030473 		ER5	E,30473			;C(E) WAS CLOBBERED
  1947	031525	321 14 0 00 031513 		JUMPL	AC+2,F30470		;LOOP ON ERROR SWITCH^
  1948
  1949			003050			ADR=ADR+1
  1950		777777	777767			XX=XX+XX+1
  1951						IFE	<XX-1>,<XX=-2>
  1952
  1953					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  1954						MOP1	(\ADR,0,-1,XX,0,0)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0052

  1955					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1956					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1957					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1958					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1959
  1960			000000		F30500:	AA1=0				;INITIAL C(AC)
  1961	031526	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1962		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1963	031527	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1964		777777	777767			AEE=XX				;INITIAL C(E)
  1965	031530	200 10 0 00 044047 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1966	031531	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1967			000000			AR1=0				;EXPECTED RESULT IN AC
  1968	031532	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1969	031533	003 12 0 00 030501 		ER3	AC,30501		;HIGH PRODUCT FAILED
  1970			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1971	031534	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1972	031535	004 13 0 00 030502 		ER4	AC+1,30502		;LOW PRODUCT FAILED
  1973		777777	777767			AEE=XX				;INITIAL C(E)
  1974	031536	312 10 0 00 044047 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1975	031537	005 10 0 00 030503 		ER5	E,30503			;C(E) WAS CLOBBERED
  1976	031540	321 14 0 00 031526 		JUMPL	AC+2,F30500		;LOOP ON ERROR SWITCH^
  1977
  1978			003051			ADR=ADR+1
  1979		777777	777757			XX=XX+XX+1
  1980						IFE	<XX-1>,<XX=-2>
  1981
  1982					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  1983						MOP1	(\ADR,0,-1,XX,0,0)^
  1984					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1985					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1986					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1987					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1988
  1989			000000		F30510:	AA1=0				;INITIAL C(AC)
  1990	031541	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1991		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1992	031542	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1993		777777	777757			AEE=XX				;INITIAL C(E)
  1994	031543	200 10 0 00 044050 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1995	031544	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1996			000000			AR1=0				;EXPECTED RESULT IN AC
  1997	031545	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1998	031546	003 12 0 00 030511 		ER3	AC,30511		;HIGH PRODUCT FAILED
  1999			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2000	031547	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2001	031550	004 13 0 00 030512 		ER4	AC+1,30512		;LOW PRODUCT FAILED
  2002		777777	777757			AEE=XX				;INITIAL C(E)
  2003	031551	312 10 0 00 044050 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2004	031552	005 10 0 00 030513 		ER5	E,30513			;C(E) WAS CLOBBERED
  2005	031553	321 14 0 00 031541 		JUMPL	AC+2,F30510		;LOOP ON ERROR SWITCH^
  2006
  2007			003052			ADR=ADR+1
  2008		777777	777737			XX=XX+XX+1
  2009						IFE	<XX-1>,<XX=-2>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0053

  2010
  2011					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2012						MOP1	(\ADR,0,-1,XX,0,0)^
  2013					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2014					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2015					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2016					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2017
  2018			000000		F30520:	AA1=0				;INITIAL C(AC)
  2019	031554	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2020		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2021	031555	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2022		777777	777737			AEE=XX				;INITIAL C(E)
  2023	031556	200 10 0 00 044051 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2024	031557	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2025			000000			AR1=0				;EXPECTED RESULT IN AC
  2026	031560	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2027	031561	003 12 0 00 030521 		ER3	AC,30521		;HIGH PRODUCT FAILED
  2028			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2029	031562	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2030	031563	004 13 0 00 030522 		ER4	AC+1,30522		;LOW PRODUCT FAILED
  2031		777777	777737			AEE=XX				;INITIAL C(E)
  2032	031564	312 10 0 00 044051 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2033	031565	005 10 0 00 030523 		ER5	E,30523			;C(E) WAS CLOBBERED
  2034	031566	321 14 0 00 031554 		JUMPL	AC+2,F30520		;LOOP ON ERROR SWITCH^
  2035
  2036			003053			ADR=ADR+1
  2037		777777	777677			XX=XX+XX+1
  2038						IFE	<XX-1>,<XX=-2>
  2039
  2040					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2041						MOP1	(\ADR,0,-1,XX,0,0)^
  2042					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2043					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2044					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2045					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2046
  2047			000000		F30530:	AA1=0				;INITIAL C(AC)
  2048	031567	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2049		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2050	031570	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2051		777777	777677			AEE=XX				;INITIAL C(E)
  2052	031571	200 10 0 00 044052 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2053	031572	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2054			000000			AR1=0				;EXPECTED RESULT IN AC
  2055	031573	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2056	031574	003 12 0 00 030531 		ER3	AC,30531		;HIGH PRODUCT FAILED
  2057			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2058	031575	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2059	031576	004 13 0 00 030532 		ER4	AC+1,30532		;LOW PRODUCT FAILED
  2060		777777	777677			AEE=XX				;INITIAL C(E)
  2061	031577	312 10 0 00 044052 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2062	031600	005 10 0 00 030533 		ER5	E,30533			;C(E) WAS CLOBBERED
  2063	031601	321 14 0 00 031567 		JUMPL	AC+2,F30530		;LOOP ON ERROR SWITCH^
  2064
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0054

  2065			003054			ADR=ADR+1
  2066		777777	777577			XX=XX+XX+1
  2067						IFE	<XX-1>,<XX=-2>
  2068
  2069					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2070						MOP1	(\ADR,0,-1,XX,0,0)^
  2071					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2072					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2073					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2074					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2075
  2076			000000		F30540:	AA1=0				;INITIAL C(AC)
  2077	031602	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2078		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2079	031603	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2080		777777	777577			AEE=XX				;INITIAL C(E)
  2081	031604	200 10 0 00 044053 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2082	031605	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2083			000000			AR1=0				;EXPECTED RESULT IN AC
  2084	031606	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2085	031607	003 12 0 00 030541 		ER3	AC,30541		;HIGH PRODUCT FAILED
  2086			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2087	031610	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2088	031611	004 13 0 00 030542 		ER4	AC+1,30542		;LOW PRODUCT FAILED
  2089		777777	777577			AEE=XX				;INITIAL C(E)
  2090	031612	312 10 0 00 044053 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2091	031613	005 10 0 00 030543 		ER5	E,30543			;C(E) WAS CLOBBERED
  2092	031614	321 14 0 00 031602 		JUMPL	AC+2,F30540		;LOOP ON ERROR SWITCH^
  2093
  2094			003055			ADR=ADR+1
  2095		777777	777377			XX=XX+XX+1
  2096						IFE	<XX-1>,<XX=-2>
  2097
  2098					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2099						MOP1	(\ADR,0,-1,XX,0,0)^
  2100					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2101					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2102					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2103					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2104
  2105			000000		F30550:	AA1=0				;INITIAL C(AC)
  2106	031615	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2107		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2108	031616	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2109		777777	777377			AEE=XX				;INITIAL C(E)
  2110	031617	200 10 0 00 044054 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2111	031620	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2112			000000			AR1=0				;EXPECTED RESULT IN AC
  2113	031621	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2114	031622	003 12 0 00 030551 		ER3	AC,30551		;HIGH PRODUCT FAILED
  2115			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2116	031623	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2117	031624	004 13 0 00 030552 		ER4	AC+1,30552		;LOW PRODUCT FAILED
  2118		777777	777377			AEE=XX				;INITIAL C(E)
  2119	031625	312 10 0 00 044054 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0055

  2120	031626	005 10 0 00 030553 		ER5	E,30553			;C(E) WAS CLOBBERED
  2121	031627	321 14 0 00 031615 		JUMPL	AC+2,F30550		;LOOP ON ERROR SWITCH^
  2122
  2123			003056			ADR=ADR+1
  2124		777777	776777			XX=XX+XX+1
  2125						IFE	<XX-1>,<XX=-2>
  2126
  2127					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2128						MOP1	(\ADR,0,-1,XX,0,0)^
  2129					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2130					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2131					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2132					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2133
  2134			000000		F30560:	AA1=0				;INITIAL C(AC)
  2135	031630	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2136		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2137	031631	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2138		777777	776777			AEE=XX				;INITIAL C(E)
  2139	031632	200 10 0 00 044055 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2140	031633	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2141			000000			AR1=0				;EXPECTED RESULT IN AC
  2142	031634	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2143	031635	003 12 0 00 030561 		ER3	AC,30561		;HIGH PRODUCT FAILED
  2144			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2145	031636	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2146	031637	004 13 0 00 030562 		ER4	AC+1,30562		;LOW PRODUCT FAILED
  2147		777777	776777			AEE=XX				;INITIAL C(E)
  2148	031640	312 10 0 00 044055 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2149	031641	005 10 0 00 030563 		ER5	E,30563			;C(E) WAS CLOBBERED
  2150	031642	321 14 0 00 031630 		JUMPL	AC+2,F30560		;LOOP ON ERROR SWITCH^
  2151
  2152			003057			ADR=ADR+1
  2153		777777	775777			XX=XX+XX+1
  2154						IFE	<XX-1>,<XX=-2>
  2155
  2156					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2157						MOP1	(\ADR,0,-1,XX,0,0)^
  2158					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2159					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2160					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2161					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2162
  2163			000000		F30570:	AA1=0				;INITIAL C(AC)
  2164	031643	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2165		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2166	031644	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2167		777777	775777			AEE=XX				;INITIAL C(E)
  2168	031645	200 10 0 00 044056 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2169	031646	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2170			000000			AR1=0				;EXPECTED RESULT IN AC
  2171	031647	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2172	031650	003 12 0 00 030571 		ER3	AC,30571		;HIGH PRODUCT FAILED
  2173			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2174	031651	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0056

  2175	031652	004 13 0 00 030572 		ER4	AC+1,30572		;LOW PRODUCT FAILED
  2176		777777	775777			AEE=XX				;INITIAL C(E)
  2177	031653	312 10 0 00 044056 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2178	031654	005 10 0 00 030573 		ER5	E,30573			;C(E) WAS CLOBBERED
  2179	031655	321 14 0 00 031643 		JUMPL	AC+2,F30570		;LOOP ON ERROR SWITCH^
  2180
  2181			003060			ADR=ADR+1
  2182		777777	773777			XX=XX+XX+1
  2183						IFE	<XX-1>,<XX=-2>
  2184
  2185					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2186						MOP1	(\ADR,0,-1,XX,0,0)^
  2187					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2188					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2189					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2190					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2191
  2192			000000		F30600:	AA1=0				;INITIAL C(AC)
  2193	031656	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2194		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2195	031657	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2196		777777	773777			AEE=XX				;INITIAL C(E)
  2197	031660	200 10 0 00 044057 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2198	031661	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2199			000000			AR1=0				;EXPECTED RESULT IN AC
  2200	031662	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2201	031663	003 12 0 00 030601 		ER3	AC,30601		;HIGH PRODUCT FAILED
  2202			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2203	031664	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2204	031665	004 13 0 00 030602 		ER4	AC+1,30602		;LOW PRODUCT FAILED
  2205		777777	773777			AEE=XX				;INITIAL C(E)
  2206	031666	312 10 0 00 044057 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2207	031667	005 10 0 00 030603 		ER5	E,30603			;C(E) WAS CLOBBERED
  2208	031670	321 14 0 00 031656 		JUMPL	AC+2,F30600		;LOOP ON ERROR SWITCH^
  2209
  2210			003061			ADR=ADR+1
  2211		777777	767777			XX=XX+XX+1
  2212						IFE	<XX-1>,<XX=-2>
  2213
  2214					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2215						MOP1	(\ADR,0,-1,XX,0,0)^
  2216					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2217					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2218					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2219					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2220
  2221			000000		F30610:	AA1=0				;INITIAL C(AC)
  2222	031671	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2223		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2224	031672	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2225		777777	767777			AEE=XX				;INITIAL C(E)
  2226	031673	200 10 0 00 044060 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2227	031674	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2228			000000			AR1=0				;EXPECTED RESULT IN AC
  2229	031675	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0057

  2230	031676	003 12 0 00 030611 		ER3	AC,30611		;HIGH PRODUCT FAILED
  2231			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2232	031677	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2233	031700	004 13 0 00 030612 		ER4	AC+1,30612		;LOW PRODUCT FAILED
  2234		777777	767777			AEE=XX				;INITIAL C(E)
  2235	031701	312 10 0 00 044060 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2236	031702	005 10 0 00 030613 		ER5	E,30613			;C(E) WAS CLOBBERED
  2237	031703	321 14 0 00 031671 		JUMPL	AC+2,F30610		;LOOP ON ERROR SWITCH^
  2238
  2239			003062			ADR=ADR+1
  2240		777777	757777			XX=XX+XX+1
  2241						IFE	<XX-1>,<XX=-2>
  2242
  2243					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2244						MOP1	(\ADR,0,-1,XX,0,0)^
  2245					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2246					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2247					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2248					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2249
  2250			000000		F30620:	AA1=0				;INITIAL C(AC)
  2251	031704	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2252		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2253	031705	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2254		777777	757777			AEE=XX				;INITIAL C(E)
  2255	031706	200 10 0 00 044061 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2256	031707	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2257			000000			AR1=0				;EXPECTED RESULT IN AC
  2258	031710	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2259	031711	003 12 0 00 030621 		ER3	AC,30621		;HIGH PRODUCT FAILED
  2260			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2261	031712	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2262	031713	004 13 0 00 030622 		ER4	AC+1,30622		;LOW PRODUCT FAILED
  2263		777777	757777			AEE=XX				;INITIAL C(E)
  2264	031714	312 10 0 00 044061 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2265	031715	005 10 0 00 030623 		ER5	E,30623			;C(E) WAS CLOBBERED
  2266	031716	321 14 0 00 031704 		JUMPL	AC+2,F30620		;LOOP ON ERROR SWITCH^
  2267
  2268			003063			ADR=ADR+1
  2269		777777	737777			XX=XX+XX+1
  2270						IFE	<XX-1>,<XX=-2>
  2271
  2272					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2273						MOP1	(\ADR,0,-1,XX,0,0)^
  2274					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2275					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2276					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2277					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2278
  2279			000000		F30630:	AA1=0				;INITIAL C(AC)
  2280	031717	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2281		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2282	031720	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2283		777777	737777			AEE=XX				;INITIAL C(E)
  2284	031721	200 10 0 00 044062 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0058

  2285	031722	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2286			000000			AR1=0				;EXPECTED RESULT IN AC
  2287	031723	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2288	031724	003 12 0 00 030631 		ER3	AC,30631		;HIGH PRODUCT FAILED
  2289			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2290	031725	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2291	031726	004 13 0 00 030632 		ER4	AC+1,30632		;LOW PRODUCT FAILED
  2292		777777	737777			AEE=XX				;INITIAL C(E)
  2293	031727	312 10 0 00 044062 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2294	031730	005 10 0 00 030633 		ER5	E,30633			;C(E) WAS CLOBBERED
  2295	031731	321 14 0 00 031717 		JUMPL	AC+2,F30630		;LOOP ON ERROR SWITCH^
  2296
  2297			003064			ADR=ADR+1
  2298		777777	677777			XX=XX+XX+1
  2299						IFE	<XX-1>,<XX=-2>
  2300
  2301					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2302						MOP1	(\ADR,0,-1,XX,0,0)^
  2303					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2304					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2305					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2306					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2307
  2308			000000		F30640:	AA1=0				;INITIAL C(AC)
  2309	031732	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2310		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2311	031733	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2312		777777	677777			AEE=XX				;INITIAL C(E)
  2313	031734	200 10 0 00 044063 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2314	031735	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2315			000000			AR1=0				;EXPECTED RESULT IN AC
  2316	031736	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2317	031737	003 12 0 00 030641 		ER3	AC,30641		;HIGH PRODUCT FAILED
  2318			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2319	031740	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2320	031741	004 13 0 00 030642 		ER4	AC+1,30642		;LOW PRODUCT FAILED
  2321		777777	677777			AEE=XX				;INITIAL C(E)
  2322	031742	312 10 0 00 044063 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2323	031743	005 10 0 00 030643 		ER5	E,30643			;C(E) WAS CLOBBERED
  2324	031744	321 14 0 00 031732 		JUMPL	AC+2,F30640		;LOOP ON ERROR SWITCH^
  2325
  2326			003065			ADR=ADR+1
  2327		777777	577777			XX=XX+XX+1
  2328						IFE	<XX-1>,<XX=-2>
  2329
  2330					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2331						MOP1	(\ADR,0,-1,XX,0,0)^
  2332					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2333					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2334					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2335					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2336
  2337			000000		F30650:	AA1=0				;INITIAL C(AC)
  2338	031745	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2339		777777	777777			AA2=-1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0059

  2340	031746	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2341		777777	577777			AEE=XX				;INITIAL C(E)
  2342	031747	200 10 0 00 044064 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2343	031750	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2344			000000			AR1=0				;EXPECTED RESULT IN AC
  2345	031751	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2346	031752	003 12 0 00 030651 		ER3	AC,30651		;HIGH PRODUCT FAILED
  2347			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2348	031753	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2349	031754	004 13 0 00 030652 		ER4	AC+1,30652		;LOW PRODUCT FAILED
  2350		777777	577777			AEE=XX				;INITIAL C(E)
  2351	031755	312 10 0 00 044064 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2352	031756	005 10 0 00 030653 		ER5	E,30653			;C(E) WAS CLOBBERED
  2353	031757	321 14 0 00 031745 		JUMPL	AC+2,F30650		;LOOP ON ERROR SWITCH^
  2354
  2355			003066			ADR=ADR+1
  2356		777777	377777			XX=XX+XX+1
  2357						IFE	<XX-1>,<XX=-2>
  2358
  2359					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2360						MOP1	(\ADR,0,-1,XX,0,0)^
  2361					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2362					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2363					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2364					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2365
  2366			000000		F30660:	AA1=0				;INITIAL C(AC)
  2367	031760	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2368		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2369	031761	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2370		777777	377777			AEE=XX				;INITIAL C(E)
  2371	031762	200 10 0 00 044065 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2372	031763	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2373			000000			AR1=0				;EXPECTED RESULT IN AC
  2374	031764	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2375	031765	003 12 0 00 030661 		ER3	AC,30661		;HIGH PRODUCT FAILED
  2376			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2377	031766	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2378	031767	004 13 0 00 030662 		ER4	AC+1,30662		;LOW PRODUCT FAILED
  2379		777777	377777			AEE=XX				;INITIAL C(E)
  2380	031770	312 10 0 00 044065 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2381	031771	005 10 0 00 030663 		ER5	E,30663			;C(E) WAS CLOBBERED
  2382	031772	321 14 0 00 031760 		JUMPL	AC+2,F30660		;LOOP ON ERROR SWITCH^
  2383
  2384			003067			ADR=ADR+1
  2385		777776	777777			XX=XX+XX+1
  2386						IFE	<XX-1>,<XX=-2>
  2387
  2388					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2389						MOP1	(\ADR,0,-1,XX,0,0)^
  2390					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2391					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2392					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2393					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2394
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0060

  2395			000000		F30670:	AA1=0				;INITIAL C(AC)
  2396	031773	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2397		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2398	031774	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2399		777776	777777			AEE=XX				;INITIAL C(E)
  2400	031775	200 10 0 00 044066 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2401	031776	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2402			000000			AR1=0				;EXPECTED RESULT IN AC
  2403	031777	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2404	032000	003 12 0 00 030671 		ER3	AC,30671		;HIGH PRODUCT FAILED
  2405			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2406	032001	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2407	032002	004 13 0 00 030672 		ER4	AC+1,30672		;LOW PRODUCT FAILED
  2408		777776	777777			AEE=XX				;INITIAL C(E)
  2409	032003	312 10 0 00 044066 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2410	032004	005 10 0 00 030673 		ER5	E,30673			;C(E) WAS CLOBBERED
  2411	032005	321 14 0 00 031773 		JUMPL	AC+2,F30670		;LOOP ON ERROR SWITCH^
  2412
  2413			003070			ADR=ADR+1
  2414		777775	777777			XX=XX+XX+1
  2415						IFE	<XX-1>,<XX=-2>
  2416
  2417					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2418						MOP1	(\ADR,0,-1,XX,0,0)^
  2419					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2420					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2421					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2422					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2423
  2424			000000		F30700:	AA1=0				;INITIAL C(AC)
  2425	032006	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2426		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2427	032007	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2428		777775	777777			AEE=XX				;INITIAL C(E)
  2429	032010	200 10 0 00 044067 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2430	032011	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2431			000000			AR1=0				;EXPECTED RESULT IN AC
  2432	032012	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2433	032013	003 12 0 00 030701 		ER3	AC,30701		;HIGH PRODUCT FAILED
  2434			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2435	032014	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2436	032015	004 13 0 00 030702 		ER4	AC+1,30702		;LOW PRODUCT FAILED
  2437		777775	777777			AEE=XX				;INITIAL C(E)
  2438	032016	312 10 0 00 044067 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2439	032017	005 10 0 00 030703 		ER5	E,30703			;C(E) WAS CLOBBERED
  2440	032020	321 14 0 00 032006 		JUMPL	AC+2,F30700		;LOOP ON ERROR SWITCH^
  2441
  2442			003071			ADR=ADR+1
  2443		777773	777777			XX=XX+XX+1
  2444						IFE	<XX-1>,<XX=-2>
  2445
  2446					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2447						MOP1	(\ADR,0,-1,XX,0,0)^
  2448					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2449					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0061

  2450					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2451					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2452
  2453			000000		F30710:	AA1=0				;INITIAL C(AC)
  2454	032021	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2455		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2456	032022	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2457		777773	777777			AEE=XX				;INITIAL C(E)
  2458	032023	200 10 0 00 044070 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2459	032024	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2460			000000			AR1=0				;EXPECTED RESULT IN AC
  2461	032025	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2462	032026	003 12 0 00 030711 		ER3	AC,30711		;HIGH PRODUCT FAILED
  2463			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2464	032027	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2465	032030	004 13 0 00 030712 		ER4	AC+1,30712		;LOW PRODUCT FAILED
  2466		777773	777777			AEE=XX				;INITIAL C(E)
  2467	032031	312 10 0 00 044070 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2468	032032	005 10 0 00 030713 		ER5	E,30713			;C(E) WAS CLOBBERED
  2469	032033	321 14 0 00 032021 		JUMPL	AC+2,F30710		;LOOP ON ERROR SWITCH^
  2470
  2471			003072			ADR=ADR+1
  2472		777767	777777			XX=XX+XX+1
  2473						IFE	<XX-1>,<XX=-2>
  2474
  2475					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2476						MOP1	(\ADR,0,-1,XX,0,0)^
  2477					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2478					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2479					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2480					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2481
  2482			000000		F30720:	AA1=0				;INITIAL C(AC)
  2483	032034	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2484		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2485	032035	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2486		777767	777777			AEE=XX				;INITIAL C(E)
  2487	032036	200 10 0 00 044071 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2488	032037	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2489			000000			AR1=0				;EXPECTED RESULT IN AC
  2490	032040	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2491	032041	003 12 0 00 030721 		ER3	AC,30721		;HIGH PRODUCT FAILED
  2492			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2493	032042	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2494	032043	004 13 0 00 030722 		ER4	AC+1,30722		;LOW PRODUCT FAILED
  2495		777767	777777			AEE=XX				;INITIAL C(E)
  2496	032044	312 10 0 00 044071 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2497	032045	005 10 0 00 030723 		ER5	E,30723			;C(E) WAS CLOBBERED
  2498	032046	321 14 0 00 032034 		JUMPL	AC+2,F30720		;LOOP ON ERROR SWITCH^
  2499
  2500			003073			ADR=ADR+1
  2501		777757	777777			XX=XX+XX+1
  2502						IFE	<XX-1>,<XX=-2>
  2503
  2504					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0062

  2505						MOP1	(\ADR,0,-1,XX,0,0)^
  2506					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2507					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2508					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2509					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2510
  2511			000000		F30730:	AA1=0				;INITIAL C(AC)
  2512	032047	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2513		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2514	032050	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2515		777757	777777			AEE=XX				;INITIAL C(E)
  2516	032051	200 10 0 00 044072 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2517	032052	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2518			000000			AR1=0				;EXPECTED RESULT IN AC
  2519	032053	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2520	032054	003 12 0 00 030731 		ER3	AC,30731		;HIGH PRODUCT FAILED
  2521			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2522	032055	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2523	032056	004 13 0 00 030732 		ER4	AC+1,30732		;LOW PRODUCT FAILED
  2524		777757	777777			AEE=XX				;INITIAL C(E)
  2525	032057	312 10 0 00 044072 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2526	032060	005 10 0 00 030733 		ER5	E,30733			;C(E) WAS CLOBBERED
  2527	032061	321 14 0 00 032047 		JUMPL	AC+2,F30730		;LOOP ON ERROR SWITCH^
  2528
  2529			003074			ADR=ADR+1
  2530		777737	777777			XX=XX+XX+1
  2531						IFE	<XX-1>,<XX=-2>
  2532
  2533					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2534						MOP1	(\ADR,0,-1,XX,0,0)^
  2535					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2536					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2537					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2538					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2539
  2540			000000		F30740:	AA1=0				;INITIAL C(AC)
  2541	032062	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2542		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2543	032063	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2544		777737	777777			AEE=XX				;INITIAL C(E)
  2545	032064	200 10 0 00 044073 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2546	032065	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2547			000000			AR1=0				;EXPECTED RESULT IN AC
  2548	032066	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2549	032067	003 12 0 00 030741 		ER3	AC,30741		;HIGH PRODUCT FAILED
  2550			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2551	032070	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2552	032071	004 13 0 00 030742 		ER4	AC+1,30742		;LOW PRODUCT FAILED
  2553		777737	777777			AEE=XX				;INITIAL C(E)
  2554	032072	312 10 0 00 044073 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2555	032073	005 10 0 00 030743 		ER5	E,30743			;C(E) WAS CLOBBERED
  2556	032074	321 14 0 00 032062 		JUMPL	AC+2,F30740		;LOOP ON ERROR SWITCH^
  2557
  2558			003075			ADR=ADR+1
  2559		777677	777777			XX=XX+XX+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0063

  2560						IFE	<XX-1>,<XX=-2>
  2561
  2562					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2563						MOP1	(\ADR,0,-1,XX,0,0)^
  2564					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2565					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2566					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2567					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2568
  2569			000000		F30750:	AA1=0				;INITIAL C(AC)
  2570	032075	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2571		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2572	032076	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2573		777677	777777			AEE=XX				;INITIAL C(E)
  2574	032077	200 10 0 00 044074 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2575	032100	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2576			000000			AR1=0				;EXPECTED RESULT IN AC
  2577	032101	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2578	032102	003 12 0 00 030751 		ER3	AC,30751		;HIGH PRODUCT FAILED
  2579			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2580	032103	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2581	032104	004 13 0 00 030752 		ER4	AC+1,30752		;LOW PRODUCT FAILED
  2582		777677	777777			AEE=XX				;INITIAL C(E)
  2583	032105	312 10 0 00 044074 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2584	032106	005 10 0 00 030753 		ER5	E,30753			;C(E) WAS CLOBBERED
  2585	032107	321 14 0 00 032075 		JUMPL	AC+2,F30750		;LOOP ON ERROR SWITCH^
  2586
  2587			003076			ADR=ADR+1
  2588		777577	777777			XX=XX+XX+1
  2589						IFE	<XX-1>,<XX=-2>
  2590
  2591					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2592						MOP1	(\ADR,0,-1,XX,0,0)^
  2593					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2594					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2595					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2596					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2597
  2598			000000		F30760:	AA1=0				;INITIAL C(AC)
  2599	032110	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2600		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2601	032111	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2602		777577	777777			AEE=XX				;INITIAL C(E)
  2603	032112	200 10 0 00 044075 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2604	032113	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2605			000000			AR1=0				;EXPECTED RESULT IN AC
  2606	032114	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2607	032115	003 12 0 00 030761 		ER3	AC,30761		;HIGH PRODUCT FAILED
  2608			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2609	032116	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2610	032117	004 13 0 00 030762 		ER4	AC+1,30762		;LOW PRODUCT FAILED
  2611		777577	777777			AEE=XX				;INITIAL C(E)
  2612	032120	312 10 0 00 044075 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2613	032121	005 10 0 00 030763 		ER5	E,30763			;C(E) WAS CLOBBERED
  2614	032122	321 14 0 00 032110 		JUMPL	AC+2,F30760		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0064

  2615
  2616			003077			ADR=ADR+1
  2617		777377	777777			XX=XX+XX+1
  2618						IFE	<XX-1>,<XX=-2>
  2619
  2620					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2621						MOP1	(\ADR,0,-1,XX,0,0)^
  2622					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2623					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2624					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2625					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2626
  2627			000000		F30770:	AA1=0				;INITIAL C(AC)
  2628	032123	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2629		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2630	032124	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2631		777377	777777			AEE=XX				;INITIAL C(E)
  2632	032125	200 10 0 00 044076 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2633	032126	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2634			000000			AR1=0				;EXPECTED RESULT IN AC
  2635	032127	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2636	032130	003 12 0 00 030771 		ER3	AC,30771		;HIGH PRODUCT FAILED
  2637			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2638	032131	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2639	032132	004 13 0 00 030772 		ER4	AC+1,30772		;LOW PRODUCT FAILED
  2640		777377	777777			AEE=XX				;INITIAL C(E)
  2641	032133	312 10 0 00 044076 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2642	032134	005 10 0 00 030773 		ER5	E,30773			;C(E) WAS CLOBBERED
  2643	032135	321 14 0 00 032123 		JUMPL	AC+2,F30770		;LOOP ON ERROR SWITCH^
  2644
  2645			003100			ADR=ADR+1
  2646		776777	777777			XX=XX+XX+1
  2647						IFE	<XX-1>,<XX=-2>
  2648
  2649					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2650						MOP1	(\ADR,0,-1,XX,0,0)^
  2651					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2652					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2653					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2654					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2655
  2656			000000		F31000:	AA1=0				;INITIAL C(AC)
  2657	032136	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2658		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2659	032137	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2660		776777	777777			AEE=XX				;INITIAL C(E)
  2661	032140	200 10 0 00 044077 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2662	032141	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2663			000000			AR1=0				;EXPECTED RESULT IN AC
  2664	032142	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2665	032143	003 12 0 00 031001 		ER3	AC,31001		;HIGH PRODUCT FAILED
  2666			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2667	032144	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2668	032145	004 13 0 00 031002 		ER4	AC+1,31002		;LOW PRODUCT FAILED
  2669		776777	777777			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0065

  2670	032146	312 10 0 00 044077 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2671	032147	005 10 0 00 031003 		ER5	E,31003			;C(E) WAS CLOBBERED
  2672	032150	321 14 0 00 032136 		JUMPL	AC+2,F31000		;LOOP ON ERROR SWITCH^
  2673
  2674			003101			ADR=ADR+1
  2675		775777	777777			XX=XX+XX+1
  2676						IFE	<XX-1>,<XX=-2>
  2677
  2678					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2679						MOP1	(\ADR,0,-1,XX,0,0)^
  2680					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2681					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2682					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2683					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2684
  2685			000000		F31010:	AA1=0				;INITIAL C(AC)
  2686	032151	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2687		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2688	032152	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2689		775777	777777			AEE=XX				;INITIAL C(E)
  2690	032153	200 10 0 00 044100 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2691	032154	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2692			000000			AR1=0				;EXPECTED RESULT IN AC
  2693	032155	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2694	032156	003 12 0 00 031011 		ER3	AC,31011		;HIGH PRODUCT FAILED
  2695			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2696	032157	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2697	032160	004 13 0 00 031012 		ER4	AC+1,31012		;LOW PRODUCT FAILED
  2698		775777	777777			AEE=XX				;INITIAL C(E)
  2699	032161	312 10 0 00 044100 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2700	032162	005 10 0 00 031013 		ER5	E,31013			;C(E) WAS CLOBBERED
  2701	032163	321 14 0 00 032151 		JUMPL	AC+2,F31010		;LOOP ON ERROR SWITCH^
  2702
  2703			003102			ADR=ADR+1
  2704		773777	777777			XX=XX+XX+1
  2705						IFE	<XX-1>,<XX=-2>
  2706
  2707					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2708						MOP1	(\ADR,0,-1,XX,0,0)^
  2709					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2710					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2711					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2712					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2713
  2714			000000		F31020:	AA1=0				;INITIAL C(AC)
  2715	032164	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2716		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2717	032165	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2718		773777	777777			AEE=XX				;INITIAL C(E)
  2719	032166	200 10 0 00 044101 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2720	032167	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2721			000000			AR1=0				;EXPECTED RESULT IN AC
  2722	032170	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2723	032171	003 12 0 00 031021 		ER3	AC,31021		;HIGH PRODUCT FAILED
  2724			000000			AR2=0				;EXPECTED RESULT IN AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0066

  2725	032172	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2726	032173	004 13 0 00 031022 		ER4	AC+1,31022		;LOW PRODUCT FAILED
  2727		773777	777777			AEE=XX				;INITIAL C(E)
  2728	032174	312 10 0 00 044101 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2729	032175	005 10 0 00 031023 		ER5	E,31023			;C(E) WAS CLOBBERED
  2730	032176	321 14 0 00 032164 		JUMPL	AC+2,F31020		;LOOP ON ERROR SWITCH^
  2731
  2732			003103			ADR=ADR+1
  2733		767777	777777			XX=XX+XX+1
  2734						IFE	<XX-1>,<XX=-2>
  2735
  2736					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2737						MOP1	(\ADR,0,-1,XX,0,0)^
  2738					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2739					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2740					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2741					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2742
  2743			000000		F31030:	AA1=0				;INITIAL C(AC)
  2744	032177	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2745		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2746	032200	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2747		767777	777777			AEE=XX				;INITIAL C(E)
  2748	032201	200 10 0 00 044102 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2749	032202	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2750			000000			AR1=0				;EXPECTED RESULT IN AC
  2751	032203	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2752	032204	003 12 0 00 031031 		ER3	AC,31031		;HIGH PRODUCT FAILED
  2753			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2754	032205	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2755	032206	004 13 0 00 031032 		ER4	AC+1,31032		;LOW PRODUCT FAILED
  2756		767777	777777			AEE=XX				;INITIAL C(E)
  2757	032207	312 10 0 00 044102 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2758	032210	005 10 0 00 031033 		ER5	E,31033			;C(E) WAS CLOBBERED
  2759	032211	321 14 0 00 032177 		JUMPL	AC+2,F31030		;LOOP ON ERROR SWITCH^
  2760
  2761			003104			ADR=ADR+1
  2762		757777	777777			XX=XX+XX+1
  2763						IFE	<XX-1>,<XX=-2>
  2764
  2765					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2766						MOP1	(\ADR,0,-1,XX,0,0)^
  2767					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2768					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2769					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2770					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2771
  2772			000000		F31040:	AA1=0				;INITIAL C(AC)
  2773	032212	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2774		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2775	032213	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2776		757777	777777			AEE=XX				;INITIAL C(E)
  2777	032214	200 10 0 00 044103 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2778	032215	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2779			000000			AR1=0				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0067

  2780	032216	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2781	032217	003 12 0 00 031041 		ER3	AC,31041		;HIGH PRODUCT FAILED
  2782			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2783	032220	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2784	032221	004 13 0 00 031042 		ER4	AC+1,31042		;LOW PRODUCT FAILED
  2785		757777	777777			AEE=XX				;INITIAL C(E)
  2786	032222	312 10 0 00 044103 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2787	032223	005 10 0 00 031043 		ER5	E,31043			;C(E) WAS CLOBBERED
  2788	032224	321 14 0 00 032212 		JUMPL	AC+2,F31040		;LOOP ON ERROR SWITCH^
  2789
  2790			003105			ADR=ADR+1
  2791		737777	777777			XX=XX+XX+1
  2792						IFE	<XX-1>,<XX=-2>
  2793
  2794					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2795						MOP1	(\ADR,0,-1,XX,0,0)^
  2796					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2797					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2798					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2799					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2800
  2801			000000		F31050:	AA1=0				;INITIAL C(AC)
  2802	032225	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2803		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2804	032226	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2805		737777	777777			AEE=XX				;INITIAL C(E)
  2806	032227	200 10 0 00 044104 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2807	032230	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2808			000000			AR1=0				;EXPECTED RESULT IN AC
  2809	032231	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2810	032232	003 12 0 00 031051 		ER3	AC,31051		;HIGH PRODUCT FAILED
  2811			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2812	032233	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2813	032234	004 13 0 00 031052 		ER4	AC+1,31052		;LOW PRODUCT FAILED
  2814		737777	777777			AEE=XX				;INITIAL C(E)
  2815	032235	312 10 0 00 044104 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2816	032236	005 10 0 00 031053 		ER5	E,31053			;C(E) WAS CLOBBERED
  2817	032237	321 14 0 00 032225 		JUMPL	AC+2,F31050		;LOOP ON ERROR SWITCH^
  2818
  2819			003106			ADR=ADR+1
  2820		677777	777777			XX=XX+XX+1
  2821						IFE	<XX-1>,<XX=-2>
  2822
  2823					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2824						MOP1	(\ADR,0,-1,XX,0,0)^
  2825					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2826					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2827					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2828					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2829
  2830			000000		F31060:	AA1=0				;INITIAL C(AC)
  2831	032240	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2832		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2833	032241	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2834		677777	777777			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0068

  2835	032242	200 10 0 00 044105 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2836	032243	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2837			000000			AR1=0				;EXPECTED RESULT IN AC
  2838	032244	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2839	032245	003 12 0 00 031061 		ER3	AC,31061		;HIGH PRODUCT FAILED
  2840			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2841	032246	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2842	032247	004 13 0 00 031062 		ER4	AC+1,31062		;LOW PRODUCT FAILED
  2843		677777	777777			AEE=XX				;INITIAL C(E)
  2844	032250	312 10 0 00 044105 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2845	032251	005 10 0 00 031063 		ER5	E,31063			;C(E) WAS CLOBBERED
  2846	032252	321 14 0 00 032240 		JUMPL	AC+2,F31060		;LOOP ON ERROR SWITCH^
  2847
  2848			003107			ADR=ADR+1
  2849		577777	777777			XX=XX+XX+1
  2850						IFE	<XX-1>,<XX=-2>
  2851
  2852					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2853						MOP1	(\ADR,0,-1,XX,0,0)^
  2854					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2855					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2856					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2857					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2858
  2859			000000		F31070:	AA1=0				;INITIAL C(AC)
  2860	032253	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2861		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2862	032254	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2863		577777	777777			AEE=XX				;INITIAL C(E)
  2864	032255	200 10 0 00 044106 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2865	032256	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2866			000000			AR1=0				;EXPECTED RESULT IN AC
  2867	032257	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2868	032260	003 12 0 00 031071 		ER3	AC,31071		;HIGH PRODUCT FAILED
  2869			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2870	032261	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2871	032262	004 13 0 00 031072 		ER4	AC+1,31072		;LOW PRODUCT FAILED
  2872		577777	777777			AEE=XX				;INITIAL C(E)
  2873	032263	312 10 0 00 044106 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2874	032264	005 10 0 00 031073 		ER5	E,31073			;C(E) WAS CLOBBERED
  2875	032265	321 14 0 00 032253 		JUMPL	AC+2,F31070		;LOOP ON ERROR SWITCH^
  2876
  2877			003110			ADR=ADR+1
  2878		377777	777777			XX=XX+XX+1
  2879						IFE	<XX-1>,<XX=-2>
  2880
  2881					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2882						MOP1	(\ADR,0,-1,XX,0,0)^
  2883					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2884					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2885					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2886					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2887
  2888			000000		F31100:	AA1=0				;INITIAL C(AC)
  2889	032266	200 12 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0069

  2890		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2891	032267	200 13 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2892		377777	777777			AEE=XX				;INITIAL C(E)
  2893	032270	200 10 0 00 044107 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2894	032271	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2895			000000			AR1=0				;EXPECTED RESULT IN AC
  2896	032272	312 12 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2897	032273	003 12 0 00 031101 		ER3	AC,31101		;HIGH PRODUCT FAILED
  2898			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2899	032274	312 13 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2900	032275	004 13 0 00 031102 		ER4	AC+1,31102		;LOW PRODUCT FAILED
  2901		377777	777777			AEE=XX				;INITIAL C(E)
  2902	032276	312 10 0 00 044107 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2903	032277	005 10 0 00 031103 		ER5	E,31103			;C(E) WAS CLOBBERED
  2904	032300	321 14 0 00 032266 		JUMPL	AC+2,F31100		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0070

  2905			003111			ADR=ADR+1
  2906			000014			AC=14
  2907			000012			E=<AC-2>&17
  2908						SAVEAC	(1,1)^
  2909	032301	201 16 0 00 032301 		MOVEI	AC+2,.		;SAVE TEST PC
  2910	032302	202 16 0 00 030051 		MOVEM	AC+2,TESTPC
  2911	032303	201 16 0 00 000016 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  2912	032304	202 16 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  2913
  2914					;MULTIPLY -1 BY 0 TO GET PRODUCT OF 0
  2915						MOP1	(\ADR,0,-1,-1,0,0)^
  2916					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2917					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2918					;AND E AGAINST [0], [0] AND [-1] RESPECTIVELY.
  2919					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2920
  2921			000000		F31110:	AA1=0				;INITIAL C(AC)
  2922	032305	200 14 0 00 043776 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2923		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2924	032306	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2925		777777	777777			AEE=-1				;INITIAL C(E)
  2926	032307	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  2927	032310	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2928			000000			AR1=0				;EXPECTED RESULT IN AC
  2929	032311	312 14 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2930	032312	003 14 0 00 031111 		ER3	AC,31111		;HIGH PRODUCT FAILED
  2931			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2932	032313	312 15 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2933	032314	004 15 0 00 031112 		ER4	AC+1,31112		;LOW PRODUCT FAILED
  2934		777777	777777			AEE=-1				;INITIAL C(E)
  2935	032315	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  2936	032316	005 12 0 00 031113 		ER5	E,31113			;C(E) WAS CLOBBERED
  2937	032317	321 16 0 00 032305 		JUMPL	AC+2,F31110		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0071

  2938					SUBTTL	DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM
  2939
  2940			000013			AC=13
  2941			000011			E=<AC-2>&17
  2942						SAVEAC	(1,1)^
  2943	032320	201 15 0 00 032320 		MOVEI	AC+2,.		;SAVE TEST PC
  2944	032321	202 15 0 00 030051 		MOVEM	AC+2,TESTPC
  2945	032322	201 15 0 00 000015 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  2946	032323	202 15 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  2947
  2948		777777	777777			XX=-1
  2949
  2950								;MULTIPLICAND=1	
  2951						REPEAT	^D16,<
  2952					;TEST MULTIPLICATION ALGORITHM
  2953					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  2954					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  2955					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  2956					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  2957					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  2958					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  2959					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  2960					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  2961					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  2962					;OF C(E).
  2963					
  2964						ADR=ADR+1
  2965						XX=XX+1
  2966					
  2967						MOP1	(\ADR,XX,-1,1,0,XX)>
  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			003112			ADR=ADR+1
  2982			000000			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			000000		F31120:	AA1=XX				;INITIAL C(AC)
  2991	032324	200 13 0 00 043776 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  2992		777777	777777			AA2=-1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0072

  2993	032325	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2994			000001			AEE=1				;INITIAL C(E)
  2995	032326	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  2996	032327	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2997			000000			AR1=0				;EXPECTED RESULT IN AC
  2998	032330	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2999	032331	003 13 0 00 031121 		ER3	AC,31121		;HIGH PRODUCT FAILED
  3000			000000			AR2=XX				;EXPECTED RESULT IN AC+1
  3001	032332	312 14 0 00 043776 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3002	032333	004 14 0 00 031122 		ER4	AC+1,31122		;LOW PRODUCT FAILED
  3003			000001			AEE=1				;INITIAL C(E)
  3004	032334	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3005	032335	005 11 0 00 031123 		ER5	E,31123			;C(E) WAS CLOBBERED
  3006	032336	321 15 0 00 032324 		JUMPL	AC+2,F31120		;LOOP ON ERROR SWITCH^
  3007
  3008					;TEST MULTIPLICATION ALGORITHM
  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			003113			ADR=ADR+1
  3021			000001			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			000001		F31130:	AA1=XX				;INITIAL C(AC)
  3030	032337	200 13 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3031		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3032	032340	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3033			000001			AEE=1				;INITIAL C(E)
  3034	032341	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3035	032342	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3036			000000			AR1=0				;EXPECTED RESULT IN AC
  3037	032343	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3038	032344	003 13 0 00 031131 		ER3	AC,31131		;HIGH PRODUCT FAILED
  3039			000001			AR2=XX				;EXPECTED RESULT IN AC+1
  3040	032345	312 14 0 00 044000 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3041	032346	004 14 0 00 031132 		ER4	AC+1,31132		;LOW PRODUCT FAILED
  3042			000001			AEE=1				;INITIAL C(E)
  3043	032347	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3044	032350	005 11 0 00 031133 		ER5	E,31133			;C(E) WAS CLOBBERED
  3045	032351	321 15 0 00 032337 		JUMPL	AC+2,F31130		;LOOP ON ERROR SWITCH^
  3046
  3047					;TEST MULTIPLICATION ALGORITHM
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0073

  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			003114			ADR=ADR+1
  3060			000002			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
  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			000002		F31140:	AA1=XX				;INITIAL C(AC)
  3069	032352	200 13 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3070		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3071	032353	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3072			000001			AEE=1				;INITIAL C(E)
  3073	032354	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3074	032355	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3075			000000			AR1=0				;EXPECTED RESULT IN AC
  3076	032356	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3077	032357	003 13 0 00 031141 		ER3	AC,31141		;HIGH PRODUCT FAILED
  3078			000002			AR2=XX				;EXPECTED RESULT IN AC+1
  3079	032360	312 14 0 00 044001 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3080	032361	004 14 0 00 031142 		ER4	AC+1,31142		;LOW PRODUCT FAILED
  3081			000001			AEE=1				;INITIAL C(E)
  3082	032362	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3083	032363	005 11 0 00 031143 		ER5	E,31143			;C(E) WAS CLOBBERED
  3084	032364	321 15 0 00 032352 		JUMPL	AC+2,F31140		;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			003115			ADR=ADR+1
  3099			000003			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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0074

  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			000003		F31150:	AA1=XX				;INITIAL C(AC)
  3108	032365	200 13 0 00 044110 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3109		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3110	032366	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3111			000001			AEE=1				;INITIAL C(E)
  3112	032367	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3113	032370	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3114			000000			AR1=0				;EXPECTED RESULT IN AC
  3115	032371	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3116	032372	003 13 0 00 031151 		ER3	AC,31151		;HIGH PRODUCT FAILED
  3117			000003			AR2=XX				;EXPECTED RESULT IN AC+1
  3118	032373	312 14 0 00 044110 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3119	032374	004 14 0 00 031152 		ER4	AC+1,31152		;LOW PRODUCT FAILED
  3120			000001			AEE=1				;INITIAL C(E)
  3121	032375	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3122	032376	005 11 0 00 031153 		ER5	E,31153			;C(E) WAS CLOBBERED
  3123	032377	321 15 0 00 032365 		JUMPL	AC+2,F31150		;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			003116			ADR=ADR+1
  3138			000004			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			000004		F31160:	AA1=XX				;INITIAL C(AC)
  3147	032400	200 13 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3148		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3149	032401	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3150			000001			AEE=1				;INITIAL C(E)
  3151	032402	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3152	032403	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3153			000000			AR1=0				;EXPECTED RESULT IN AC
  3154	032404	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3155	032405	003 13 0 00 031161 		ER3	AC,31161		;HIGH PRODUCT FAILED
  3156			000004			AR2=XX				;EXPECTED RESULT IN AC+1
  3157	032406	312 14 0 00 044002 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0075

  3158	032407	004 14 0 00 031162 		ER4	AC+1,31162		;LOW PRODUCT FAILED
  3159			000001			AEE=1				;INITIAL C(E)
  3160	032410	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3161	032411	005 11 0 00 031163 		ER5	E,31163			;C(E) WAS CLOBBERED
  3162	032412	321 15 0 00 032400 		JUMPL	AC+2,F31160		;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
  3174					;OF C(E).
  3175
  3176			003117			ADR=ADR+1
  3177			000005			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			000005		F31170:	AA1=XX				;INITIAL C(AC)
  3186	032413	200 13 0 00 044111 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3187		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3188	032414	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3189			000001			AEE=1				;INITIAL C(E)
  3190	032415	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3191	032416	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3192			000000			AR1=0				;EXPECTED RESULT IN AC
  3193	032417	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3194	032420	003 13 0 00 031171 		ER3	AC,31171		;HIGH PRODUCT FAILED
  3195			000005			AR2=XX				;EXPECTED RESULT IN AC+1
  3196	032421	312 14 0 00 044111 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3197	032422	004 14 0 00 031172 		ER4	AC+1,31172		;LOW PRODUCT FAILED
  3198			000001			AEE=1				;INITIAL C(E)
  3199	032423	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3200	032424	005 11 0 00 031173 		ER5	E,31173			;C(E) WAS CLOBBERED
  3201	032425	321 15 0 00 032413 		JUMPL	AC+2,F31170		;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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0076

  3213					;OF C(E).
  3214
  3215			003120			ADR=ADR+1
  3216			000006			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			000006		F31200:	AA1=XX				;INITIAL C(AC)
  3225	032426	200 13 0 00 044112 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3226		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3227	032427	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3228			000001			AEE=1				;INITIAL C(E)
  3229	032430	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3230	032431	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3231			000000			AR1=0				;EXPECTED RESULT IN AC
  3232	032432	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3233	032433	003 13 0 00 031201 		ER3	AC,31201		;HIGH PRODUCT FAILED
  3234			000006			AR2=XX				;EXPECTED RESULT IN AC+1
  3235	032434	312 14 0 00 044112 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3236	032435	004 14 0 00 031202 		ER4	AC+1,31202		;LOW PRODUCT FAILED
  3237			000001			AEE=1				;INITIAL C(E)
  3238	032436	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3239	032437	005 11 0 00 031203 		ER5	E,31203			;C(E) WAS CLOBBERED
  3240	032440	321 15 0 00 032426 		JUMPL	AC+2,F31200		;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			003121			ADR=ADR+1
  3255			000007			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			000007		F31210:	AA1=XX				;INITIAL C(AC)
  3264	032441	200 13 0 00 044113 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3265		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3266	032442	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3267			000001			AEE=1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0077

  3268	032443	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3269	032444	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3270			000000			AR1=0				;EXPECTED RESULT IN AC
  3271	032445	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3272	032446	003 13 0 00 031211 		ER3	AC,31211		;HIGH PRODUCT FAILED
  3273			000007			AR2=XX				;EXPECTED RESULT IN AC+1
  3274	032447	312 14 0 00 044113 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3275	032450	004 14 0 00 031212 		ER4	AC+1,31212		;LOW PRODUCT FAILED
  3276			000001			AEE=1				;INITIAL C(E)
  3277	032451	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3278	032452	005 11 0 00 031213 		ER5	E,31213			;C(E) WAS CLOBBERED
  3279	032453	321 15 0 00 032441 		JUMPL	AC+2,F31210		;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
  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			003122			ADR=ADR+1
  3294			000010			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			000010		F31220:	AA1=XX				;INITIAL C(AC)
  3303	032454	200 13 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3304		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3305	032455	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3306			000001			AEE=1				;INITIAL C(E)
  3307	032456	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3308	032457	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3309			000000			AR1=0				;EXPECTED RESULT IN AC
  3310	032460	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3311	032461	003 13 0 00 031221 		ER3	AC,31221		;HIGH PRODUCT FAILED
  3312			000010			AR2=XX				;EXPECTED RESULT IN AC+1
  3313	032462	312 14 0 00 044003 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3314	032463	004 14 0 00 031222 		ER4	AC+1,31222		;LOW PRODUCT FAILED
  3315			000001			AEE=1				;INITIAL C(E)
  3316	032464	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3317	032465	005 11 0 00 031223 		ER5	E,31223			;C(E) WAS CLOBBERED
  3318	032466	321 15 0 00 032454 		JUMPL	AC+2,F31220		;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
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0078

  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			003123			ADR=ADR+1
  3333			000011			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.
  3339					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3340
  3341			000011		F31230:	AA1=XX				;INITIAL C(AC)
  3342	032467	200 13 0 00 044114 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3343		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3344	032470	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3345			000001			AEE=1				;INITIAL C(E)
  3346	032471	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3347	032472	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3348			000000			AR1=0				;EXPECTED RESULT IN AC
  3349	032473	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3350	032474	003 13 0 00 031231 		ER3	AC,31231		;HIGH PRODUCT FAILED
  3351			000011			AR2=XX				;EXPECTED RESULT IN AC+1
  3352	032475	312 14 0 00 044114 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3353	032476	004 14 0 00 031232 		ER4	AC+1,31232		;LOW PRODUCT FAILED
  3354			000001			AEE=1				;INITIAL C(E)
  3355	032477	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3356	032500	005 11 0 00 031233 		ER5	E,31233			;C(E) WAS CLOBBERED
  3357	032501	321 15 0 00 032467 		JUMPL	AC+2,F31230		;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			003124			ADR=ADR+1
  3372			000012			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.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0079

  3378					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3379
  3380			000012		F31240:	AA1=XX				;INITIAL C(AC)
  3381	032502	200 13 0 00 044115 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3382		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3383	032503	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3384			000001			AEE=1				;INITIAL C(E)
  3385	032504	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3386	032505	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3387			000000			AR1=0				;EXPECTED RESULT IN AC
  3388	032506	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3389	032507	003 13 0 00 031241 		ER3	AC,31241		;HIGH PRODUCT FAILED
  3390			000012			AR2=XX				;EXPECTED RESULT IN AC+1
  3391	032510	312 14 0 00 044115 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3392	032511	004 14 0 00 031242 		ER4	AC+1,31242		;LOW PRODUCT FAILED
  3393			000001			AEE=1				;INITIAL C(E)
  3394	032512	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3395	032513	005 11 0 00 031243 		ER5	E,31243			;C(E) WAS CLOBBERED
  3396	032514	321 15 0 00 032502 		JUMPL	AC+2,F31240		;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			003125			ADR=ADR+1
  3411			000013			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			000013		F31250:	AA1=XX				;INITIAL C(AC)
  3420	032515	200 13 0 00 044116 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3421		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3422	032516	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3423			000001			AEE=1				;INITIAL C(E)
  3424	032517	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3425	032520	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3426			000000			AR1=0				;EXPECTED RESULT IN AC
  3427	032521	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3428	032522	003 13 0 00 031251 		ER3	AC,31251		;HIGH PRODUCT FAILED
  3429			000013			AR2=XX				;EXPECTED RESULT IN AC+1
  3430	032523	312 14 0 00 044116 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3431	032524	004 14 0 00 031252 		ER4	AC+1,31252		;LOW PRODUCT FAILED
  3432			000001			AEE=1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0080

  3433	032525	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3434	032526	005 11 0 00 031253 		ER5	E,31253			;C(E) WAS CLOBBERED
  3435	032527	321 15 0 00 032515 		JUMPL	AC+2,F31250		;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
  3449			003126			ADR=ADR+1
  3450			000014			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			000014		F31260:	AA1=XX				;INITIAL C(AC)
  3459	032530	200 13 0 00 044117 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3460		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3461	032531	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3462			000001			AEE=1				;INITIAL C(E)
  3463	032532	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3464	032533	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3465			000000			AR1=0				;EXPECTED RESULT IN AC
  3466	032534	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3467	032535	003 13 0 00 031261 		ER3	AC,31261		;HIGH PRODUCT FAILED
  3468			000014			AR2=XX				;EXPECTED RESULT IN AC+1
  3469	032536	312 14 0 00 044117 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3470	032537	004 14 0 00 031262 		ER4	AC+1,31262		;LOW PRODUCT FAILED
  3471			000001			AEE=1				;INITIAL C(E)
  3472	032540	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3473	032541	005 11 0 00 031263 		ER5	E,31263			;C(E) WAS CLOB 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			003130			ADR=ADR+1
  3528			000016			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			000016		F31300:	AA1=XX				;INITIAL C(AC)
  3537	032556	200 13 0 00 044121 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3538		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3539	032557	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3540			000001			AEE=1				;INITIAL C(E)
  3541	032560	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3542	032561	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 5-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0082

  3543			000000			AR1=0				;EXPECTED RESULT IN AC
  3544	032562	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3545	032563	003 13 0 00 031301 		ER3	AC,31301		;HIGH PRODUCT FAILED
  3546			000016			AR2=XX				;EXPECTED RESULT IN AC+1
  3547	032564	312 14 0 00 044121 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3548	032565	004 14 0 00 031302 		ER4	AC+1,31302		;LOW PRODUCT FAILED
  3549			000001			AEE=1				;INITIAL C(E)
  3550	032566	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3551	032567	005 11 0 00 031303 		ER5	E,31303			;C(E) WAS CLOBBERED
  3552	032570	321 15 0 00 032556 		JUMPL	AC+2,F31300		;LOOP ON ERROR SWITCH^
  3553
  3554					;TEST MULTIPLICATION ALGORITHM
  3555					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3556					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3557					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3558					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3559					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3560					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3561					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3562					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3563					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3564					;OF C(E).
  3565
  3566			003131			ADR=ADR+1
  3567			000017			XX=XX+1
  3568
  3569						MOP1	(\ADR,XX,-1,1,0,XX)^
  3570					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3571					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3572					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3573					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3574
  3575			000017		F31310:	AA1=XX				;INITIAL C(AC)
  3576	032571	200 13 0 00 044122 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3577		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3578	032572	200 14 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3579			000001			AEE=1				;INITIAL C(E)
  3580	032573	200 11 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3581	032574	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3582			000000			AR1=0				;EXPECTED RESULT IN AC
  3583	032575	312 13 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3584	032576	003 13 0 00 031311 		ER3	AC,31311		;HIGH PRODUCT FAILED
  3585			000017			AR2=XX				;EXPECTED RESULT IN AC+1
  3586	032577	312 14 0 00 044122 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3587	032600	004 14 0 00 031312 		ER4	AC+1,31312		;LOW PRODUCT FAILED
  3588			000001			AEE=1				;INITIAL C(E)
  3589	032601	312 11 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3590	032602	005 11 0 00 031313 		ER5	E,31313			;C(E) WAS CLOBBERED
  3591	032603	321 15 0 00 032571 		JUMPL	AC+2,F31310		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0083

  3592			000012			AC=12
  3593			000010			E=<AC-2>&17
  3594						SAVEAC	(1,1)^
  3595	032604	201 14 0 00 032604 		MOVEI	AC+2,.		;SAVE TEST PC
  3596	032605	202 14 0 00 030051 		MOVEM	AC+2,TESTPC
  3597	032606	201 14 0 00 000014 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  3598	032607	202 14 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  3599
  3600		777777	777777			XX=-1
  3601
  3602								;MULTIPLICAND=-1 
  3603						REPEAT	^D16,<
  3604					;TEST MULTIPLICATION ALGORITHM
  3605					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3606					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3607					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3608					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3609					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3610					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3611					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3612					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3613					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3614					;OF C(E).
  3615					
  3616						ADR=ADR+1
  3617						XX=XX+1
  3618						MX=-XX
  3619						IFE	XX,<
  3620						V1=-1
  3621						V2=0>
  3622						IFN	XX,<
  3623						V1=0
  3624						V2=-1>
  3625						MOP1	(\ADR,XX,V1,-1,V2,MX)>
  3626
  3627					;TEST MULTIPLICATION ALGORITHM
  3628					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3629					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3630					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3631					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3632					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3633					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3634					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3635					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3636					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3637					;OF C(E).
  3638
  3639			003132			ADR=ADR+1
  3640			000000			XX=XX+1
  3641			000000			MX=-XX
  3642						IFE	XX,<
  3643		777777	777777			V1=-1
  3644			000000			V2=0>
  3645						IFN	XX,<
  3646						V1=0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0084

  3647						V2=-1>
  3648						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3649					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3650					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3651					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  3652					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3653
  3654			000000		F31320:	AA1=XX				;INITIAL C(AC)
  3655	032610	200 12 0 00 043776 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3656		777777	777777			AA2=V1				;INITIAL C(AC+1)
  3657	032611	200 13 0 00 043777 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3658		777777	777777			AEE=-1				;INITIAL C(E)
  3659	032612	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3660	032613	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3661			000000			AR1=V2				;EXPECTED RESULT IN AC
  3662	032614	312 12 0 00 043776 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3663	032615	003 12 0 00 031321 		ER3	AC,31321		;HIGH PRODUCT FAILED
  3664			000000			AR2=MX				;EXPECTED RESULT IN AC+1
  3665	032616	312 13 0 00 043776 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3666	032617	004 13 0 00 031322 		ER4	AC+1,31322		;LOW PRODUCT FAILED
  3667		777777	777777			AEE=-1				;INITIAL C(E)
  3668	032620	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3669	032621	005 10 0 00 031323 		ER5	E,31323			;C(E) WAS CLOBBERED
  3670	032622	321 14 0 00 032610 		JUMPL	AC+2,F31320		;LOOP ON ERROR SWITCH^
  3671
  3672					;TEST MULTIPLICATION ALGORITHM
  3673					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3674					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3675					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3676					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3677					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3678					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3679					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3680					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3681					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3682					;OF C(E).
  3683
  3684			003133			ADR=ADR+1
  3685			000001			XX=XX+1
  3686		777777	777777			MX=-XX
  3687						IFE	XX,<
  3688						V1=-1
  3689						V2=0>
  3690						IFN	XX,<
  3691			000000			V1=0
  3692		777777	777777			V2=-1>
  3693						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3694					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3695					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3696					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  3697					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3698
  3699			000001		F31330:	AA1=XX				;INITIAL C(AC)
  3700	032623	200 12 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3701			000000			AA2=V1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0085

  3702	032624	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3703		777777	777777			AEE=-1				;INITIAL C(E)
  3704	032625	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3705	032626	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3706		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3707	032627	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3708	032630	003 12 0 00 031331 		ER3	AC,31331		;HIGH PRODUCT FAILED
  3709		777777	777777			AR2=MX				;EXPECTED RESULT IN AC+1
  3710	032631	312 13 0 00 043777 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3711	032632	004 13 0 00 031332 		ER4	AC+1,31332		;LOW PRODUCT FAILED
  3712		777777	777777			AEE=-1				;INITIAL C(E)
  3713	032633	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3714	032634	005 10 0 00 031333 		ER5	E,31333			;C(E) WAS CLOBBERED
  3715	032635	321 14 0 00 032623 		JUMPL	AC+2,F31330		;LOOP ON ERROR SWITCH^
  3716
  3717					;TEST MULTIPLICATION ALGORITHM
  3718					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3719					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3720					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3721					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3722					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3723					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3724					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3725					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3726					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3727					;OF C(E).
  3728
  3729			003134			ADR=ADR+1
  3730			000002			XX=XX+1
  3731		777777	777776			MX=-XX
  3732						IFE	XX,<
  3733						V1=-1
  3734						V2=0>
  3735						IFN	XX,<
  3736			000000			V1=0
  3737		777777	777777			V2=-1>
  3738						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3739					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3740					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3741					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  3742					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3743
  3744			000002		F31340:	AA1=XX				;INITIAL C(AC)
  3745	032636	200 12 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3746			000000			AA2=V1				;INITIAL C(AC+1)
  3747	032637	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3748		777777	777777			AEE=-1				;INITIAL C(E)
  3749	032640	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3750	032641	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3751		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3752	032642	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3753	032643	003 12 0 00 031341 		ER3	AC,31341		;HIGH PRODUCT FAILED
  3754		777777	777776			AR2=MX				;EXPECTED RESULT IN AC+1
  3755	032644	312 13 0 00 044044 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3756	032645	004 13 0 00 031342 		ER4	AC+1,31342		;LOW PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0086

  3757		777777	777777			AEE=-1				;INITIAL C(E)
  3758	032646	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3759	032647	005 10 0 00 031343 		ER5	E,31343			;C(E) WAS CLOBBERED
  3760	032650	321 14 0 00 032636 		JUMPL	AC+2,F31340		;LOOP ON ERROR SWITCH^
  3761
  3762					;TEST MULTIPLICATION ALGORITHM
  3763					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3764					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3765					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3766					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3767					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3768					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3769					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3770					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3771					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3772					;OF C(E).
  3773
  3774			003135			ADR=ADR+1
  3775			000003			XX=XX+1
  3776		777777	777775			MX=-XX
  3777						IFE	XX,<
  3778						V1=-1
  3779						V2=0>
  3780						IFN	XX,<
  3781			000000			V1=0
  3782		777777	777777			V2=-1>
  3783						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3784					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3785					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3786					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  3787					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3788
  3789			000003		F31350:	AA1=XX				;INITIAL C(AC)
  3790	032651	200 12 0 00 044110 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3791			000000			AA2=V1				;INITIAL C(AC+1)
  3792	032652	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3793		777777	777777			AEE=-1				;INITIAL C(E)
  3794	032653	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3795	032654	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3796		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3797	032655	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3798	032656	003 12 0 00 031351 		ER3	AC,31351		;HIGH PRODUCT FAILED
  3799		777777	777775			AR2=MX				;EXPECTED RESULT IN AC+1
  3800	032657	312 13 0 00 044045 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3801	032660	004 13 0 00 031352 		ER4	AC+1,31352		;LOW PRODUCT FAILED
  3802		777777	777777			AEE=-1				;INITIAL C(E)
  3803	032661	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3804	032662	005 10 0 00 031353 		ER5	E,31353			;C(E) WAS CLOBBERED
  3805	032663	321 14 0 00 032651 		JUMPL	AC+2,F31350		;LOOP ON ERROR SWITCH^
  3806
  3807					;TEST MULTIPLICATION ALGORITHM
  3808					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3809					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3810					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3811					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0087

  3812					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3813					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3814					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3815					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3816					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3817					;OF C(E).
  3818
  3819			003136			ADR=ADR+1
  3820			000004			XX=XX+1
  3821		777777	777774			MX=-XX
  3822						IFE	XX,<
  3823						V1=-1
  3824						V2=0>
  3825						IFN	XX,<
  3826			000000			V1=0
  3827		777777	777777			V2=-1>
  3828						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3829					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3830					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3831					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  3832					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3833
  3834			000004		F31360:	AA1=XX				;INITIAL C(AC)
  3835	032664	200 12 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3836			000000			AA2=V1				;INITIAL C(AC+1)
  3837	032665	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3838		777777	777777			AEE=-1				;INITIAL C(E)
  3839	032666	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3840	032667	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3841		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3842	032670	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3843	032671	003 12 0 00 031361 		ER3	AC,31361		;HIGH PRODUCT FAILED
  3844		777777	777774			AR2=MX				;EXPECTED RESULT IN AC+1
  3845	032672	312 13 0 00 044123 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3846	032673	004 13 0 00 031362 		ER4	AC+1,31362		;LOW PRODUCT FAILED
  3847		777777	777777			AEE=-1				;INITIAL C(E)
  3848	032674	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3849	032675	005 10 0 00 031363 		ER5	E,31363			;C(E) WAS CLOBBERED
  3850	032676	321 14 0 00 032664 		JUMPL	AC+2,F31360		;LOOP ON ERROR SWITCH^
  3851
  3852					;TEST MULTIPLICATION ALGORITHM
  3853					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3854					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3855					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3856					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3857					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3858					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3859					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3860					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3861					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3862					;OF C(E).
  3863
  3864			003137			ADR=ADR+1
  3865			000005			XX=XX+1
  3866		777777	777773			MX=-XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0088

  3867						IFE	XX,<
  3868						V1=-1
  3869						V2=0>
  3870						IFN	XX,<
  3871			000000			V1=0
  3872		777777	777777			V2=-1>
  3873						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3874					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3875					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3876					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  3877					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3878
  3879			000005		F31370:	AA1=XX				;INITIAL C(AC)
  3880	032677	200 12 0 00 044111 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3881			000000			AA2=V1				;INITIAL C(AC+1)
  3882	032700	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3883		777777	777777			AEE=-1				;INITIAL C(E)
  3884	032701	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3885	032702	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3886		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3887	032703	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3888	032704	003 12 0 00 031371 		ER3	AC,31371		;HIGH PRODUCT FAILED
  3889		777777	777773			AR2=MX				;EXPECTED RESULT IN AC+1
  3890	032705	312 13 0 00 044046 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3891	032706	004 13 0 00 031372 		ER4	AC+1,31372		;LOW PRODUCT FAILED
  3892		777777	777777			AEE=-1				;INITIAL C(E)
  3893	032707	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3894	032710	005 10 0 00 031373 		ER5	E,31373			;C(E) WAS CLOBBERED
  3895	032711	321 14 0 00 032677 		JUMPL	AC+2,F31370		;LOOP ON ERROR SWITCH^
  3896
  3897					;TEST MULTIPLICATION ALGORITHM
  3898					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3899					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3900					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3901					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3902					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3903					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3904					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3905					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3906					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3907					;OF C(E).
  3908
  3909			003140			ADR=ADR+1
  3910			000006			XX=XX+1
  3911		777777	777772			MX=-XX
  3912						IFE	XX,<
  3913						V1=-1
  3914						V2=0>
  3915						IFN	XX,<
  3916			000000			V1=0
  3917		777777	777777			V2=-1>
  3918						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3919					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3920					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3921					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0089

  3922					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3923
  3924			000006		F31400:	AA1=XX				;INITIAL C(AC)
  3925	032712	200 12 0 00 044112 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3926			000000			AA2=V1				;INITIAL C(AC+1)
  3927	032713	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3928		777777	777777			AEE=-1				;INITIAL C(E)
  3929	032714	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3930	032715	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3931		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3932	032716	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3933	032717	003 12 0 00 031401 		ER3	AC,31401		;HIGH PRODUCT FAILED
  3934		777777	777772			AR2=MX				;EXPECTED RESULT IN AC+1
  3935	032720	312 13 0 00 044124 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3936	032721	004 13 0 00 031402 		ER4	AC+1,31402		;LOW PRODUCT FAILED
  3937		777777	777777			AEE=-1				;INITIAL C(E)
  3938	032722	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3939	032723	005 10 0 00 031403 		ER5	E,31403			;C(E) WAS CLOBBERED
  3940	032724	321 14 0 00 032712 		JUMPL	AC+2,F31400		;LOOP ON ERROR SWITCH^
  3941
  3942					;TEST MULTIPLICATION ALGORITHM
  3943					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3944					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3945					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3946					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3947					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3948					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3949					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3950					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3951					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3952					;OF C(E).
  3953
  3954			003141			ADR=ADR+1
  3955			000007			XX=XX+1
  3956		777777	777771			MX=-XX
  3957						IFE	XX,<
  3958						V1=-1
  3959						V2=0>
  3960						IFN	XX,<
  3961			000000			V1=0
  3962		777777	777777			V2=-1>
  3963						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  3964					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  3965					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3966					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  3967					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3968
  3969			000007		F31410:	AA1=XX				;INITIAL C(AC)
  3970	032725	200 12 0 00 044113 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3971			000000			AA2=V1				;INITIAL C(AC+1)
  3972	032726	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3973		777777	777777			AEE=-1				;INITIAL C(E)
  3974	032727	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3975	032730	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3976		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0090

  3977	032731	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3978	032732	003 12 0 00 031411 		ER3	AC,31411		;HIGH PRODUCT FAILED
  3979		777777	777771			AR2=MX				;EXPECTED RESULT IN AC+1
  3980	032733	312 13 0 00 044125 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3981	032734	004 13 0 00 031412 		ER4	AC+1,31412		;LOW PRODUCT FAILED
  3982		777777	777777			AEE=-1				;INITIAL C(E)
  3983	032735	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3984	032736	005 10 0 00 031413 		ER5	E,31413			;C(E) WAS CLOBBERED
  3985	032737	321 14 0 00 032725 		JUMPL	AC+2,F31410		;LOOP ON ERROR SWITCH^
  3986
  3987					;TEST MULTIPLICATION ALGORITHM
  3988					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3989					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  3990					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3991					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3992					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3993					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3994					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  3995					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3996					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3997					;OF C(E).
  3998
  3999			003142			ADR=ADR+1
  4000			000010			XX=XX+1
  4001		777777	777770			MX=-XX
  4002						IFE	XX,<
  4003						V1=-1
  4004						V2=0>
  4005						IFN	XX,<
  4006			000000			V1=0
  4007		777777	777777			V2=-1>
  4008						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4009					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4010					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4011					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4012					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4013
  4014			000010		F31420:	AA1=XX				;INITIAL C(AC)
  4015	032740	200 12 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4016			000000			AA2=V1				;INITIAL C(AC+1)
  4017	032741	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4018		777777	777777			AEE=-1				;INITIAL C(E)
  4019	032742	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4020	032743	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4021		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4022	032744	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4023	032745	003 12 0 00 031421 		ER3	AC,31421		;HIGH PRODUCT FAILED
  4024		777777	777770			AR2=MX				;EXPECTED RESULT IN AC+1
  4025	032746	312 13 0 00 044126 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4026	032747	004 13 0 00 031422 		ER4	AC+1,31422		;LOW PRODUCT FAILED
  4027		777777	777777			AEE=-1				;INITIAL C(E)
  4028	032750	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4029	032751	005 10 0 00 031423 		ER5	E,31423			;C(E) WAS CLOBBERED
  4030	032752	321 14 0 00 032740 		JUMPL	AC+2,F31420		;LOOP ON ERROR SWITCH^
  4031
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0091

  4032					;TEST MULTIPLICATION ALGORITHM
  4033					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  4034					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  4035					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  4036					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  4037					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  4038					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  4039					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  4040					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  4041					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  4042					;OF C(E).
  4043
  4044			003143			ADR=ADR+1
  4045			000011			XX=XX+1
  4046		777777	777767			MX=-XX
  4047						IFE	XX,<
  4048						V1=-1
  4049						V2=0>
  4050						IFN	XX,<
  4051			000000			V1=0
  4052		777777	777777			V2=-1>
  4053						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4054					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4055					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4056					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4057					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4058
  4059			000011		F31430:	AA1=XX				;INITIAL C(AC)
  4060	032753	200 12 0 00 044114 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4061			000000			AA2=V1				;INITIAL C(AC+1)
  4062	032754	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4063		777777	777777			AEE=-1				;INITIAL C(E)
  4064	032755	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4065	032756	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4066		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4067	032757	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4068	032760	003 12 0 00 031431 		ER3	AC,31431		;HIGH PRODUCT FAILED
  4069		777777	777767			AR2=MX				;EXPECTED RESULT IN AC+1
  4070	032761	312 13 0 00 044047 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4071	032762	004 13 0 00 031432 		ER4	AC+1,31432		;LOW PRODUCT FAILED
  4072		777777	777777			AEE=-1				;INITIAL C(E)
  4073	032763	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4074	032764	005 10 0 00 031433 		ER5	E,31433			;C(E) WAS CLOBBERED
  4075	032765	321 14 0 00 032753 		JUMPL	AC+2,F31430		;LOOP ON ERROR SWITCH^
  4076
  4077					;TEST MULTIPLICATION ALGORITHM
  4078					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  4079					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  4080					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  4081					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  4082					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  4083					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  4084					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  4085					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  4086					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0092

  4087					;OF C(E).
  4088
  4089			003144			ADR=ADR+1
  4090			000012			XX=XX+1
  4091		777777	777766			MX=-XX
  4092						IFE	XX,<
  4093						V1=-1
  4094						V2=0>
  4095						IFN	XX,<
  4096			000000			V1=0
  4097		777777	777777			V2=-1>
  4098						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4099					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4100					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4101					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4102					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4103
  4104			000012		F31440:	AA1=XX				;INITIAL C(AC)
  4105	032766	200 12 0 00 044115 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4106			000000			AA2=V1				;INITIAL C(AC+1)
  4107	032767	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4108		777777	777777			AEE=-1				;INITIAL C(E)
  4109	032770	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4110	032771	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4111		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4112	032772	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4113	032773	003 12 0 00 031441 		ER3	AC,31441		;HIGH PRODUCT FAILED
  4114		777777	777766			AR2=MX				;EXPECTED RESULT IN AC+1
  4115	032774	312 13 0 00 044127 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4116	032775	004 13 0 00 031442 		ER4	AC+1,31442		;LOW PRODUCT FAILED
  4117		777777	777777			AEE=-1				;INITIAL C(E)
  4118	032776	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4119	032777	005 10 0 00 031443 		ER5	E,31443			;C(E) WAS CLOBBERED
  4120	033000	321 14 0 00 032766 		JUMPL	AC+2,F31440		;LOOP ON ERROR SWITCH^
  4121
  4122					;TEST MULTIPLICATION ALGORITHM
  4123					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  4124					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  4125					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  4126					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  4127					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  4128					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  4129					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  4130					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  4131					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  4132					;OF C(E).
  4133
  4134			003145			ADR=ADR+1
  4135			000013			XX=XX+1
  4136		777777	777765			MX=-XX
  4137						IFE	XX,<
  4138						V1=-1
  4139						V2=0>
  4140						IFN	XX,<
  4141			000000			V1=0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0093

  4142		777777	777777			V2=-1>
  4143						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4144					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4145					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4146					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4147					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4148
  4149			000013		F31450:	AA1=XX				;INITIAL C(AC)
  4150	033001	200 12 0 00 044116 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4151			000000			AA2=V1				;INITIAL C(AC+1)
  4152	033002	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4153		777777	777777			AEE=-1				;INITIAL C(E)
  4154	033003	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4155	033004	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4156		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4157	033005	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4158	033006	003 12 0 00 031451 		ER3	AC,31451		;HIGH PRODUCT FAILED
  4159		777777	777765			AR2=MX				;EXPECTED RESULT IN AC+1
  4160	033007	312 13 0 00 044130 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4161	033010	004 13 0 00 031452 		ER4	AC+1,31452		;LOW PRODUCT FAILED
  4162		777777	777777			AEE=-1				;INITIAL C(E)
  4163	033011	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4164	033012	005 10 0 00 031453 		ER5	E,31453			;C(E) WAS CLOBBERED
  4165	033013	321 14 0 00 033001 		JUMPL	AC+2,F31450		;LOOP ON ERROR SWITCH^
  4166
  4167					;TEST MULTIPLICATION ALGORITHM
  4168					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  4169					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  4170					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  4171					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  4172					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  4173					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  4174					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  4175					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  4176					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  4177					;OF C(E).
  4178
  4179			003146			ADR=ADR+1
  4180			000014			XX=XX+1
  4181		777777	777764			MX=-XX
  4182						IFE	XX,<
  4183						V1=-1
  4184						V2=0>
  4185						IFN	XX,<
  4186			000000			V1=0
  4187		777777	777777			V2=-1>
  4188						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4189					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4190					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4191					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4192					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4193
  4194			000014		F31460:	AA1=XX				;INITIAL C(AC)
  4195	033014	200 12 0 00 044117 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4196			000000			AA2=V1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0094

  4197	033015	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4198		777777	777777			AEE=-1				;INITIAL C(E)
  4199	033016	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4200	033017	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4201		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4202	033020	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4203	033021	003 12 0 00 031461 		ER3	AC,31461		;HIGH PRODUCT FAILED
  4204		777777	777764			AR2=MX				;EXPECTED RESULT IN AC+1
  4205	033022	312 13 0 00 044131 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4206	033023	004 13 0 00 031462 		ER4	AC+1,31462		;LOW PRODUCT FAILED
  4207		777777	777777			AEE=-1				;INITIAL C(E)
  4208	033024	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4209	033025	005 10 0 00 031463 		ER5	E,31463			;C(E) WAS CLOBBERED
  4210	033026	321 14 0 00 033014 		JUMPL	AC+2,F31460		;LOOP ON ERROR SWITCH^
  4211
  4212					;TEST MULTIPLICATION ALGORITHM
  4213					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  4214					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  4215					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  4216					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  4217					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  4218					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  4219					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  4220					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  4221					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  4222					;OF C(E).
  4223
  4224			003147			ADR=ADR+1
  4225			000015			XX=XX+1
  4226		777777	777763			MX=-XX
  4227						IFE	XX,<
  4228						V1=-1
  4229						V2=0>
  4230						IFN	XX,<
  4231			000000			V1=0
  4232		777777	777777			V2=-1>
  4233						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4234					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4235					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4236					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4237					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4238
  4239			000015		F31470:	AA1=XX				;INITIAL C(AC)
  4240	033027	200 12 0 00 044120 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4241			000000			AA2=V1				;INITIAL C(AC+1)
  4242	033030	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4243		777777	777777			AEE=-1				;INITIAL C(E)
  4244	033031	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4245	033032	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4246		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4247	033033	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4248	033034	003 12 0 00 031471 		ER3	AC,31471		;HIGH PRODUCT FAILED
  4249		777777	777763			AR2=MX				;EXPECTED RESULT IN AC+1
  4250	033035	312 13 0 00 044132 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4251	033036	004 13 0 00 031472 		ER4	AC+1,31472		;LOW PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0095

  4252		777777	777777			AEE=-1				;INITIAL C(E)
  4253	033037	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4254	033040	005 10 0 00 031473 		ER5	E,31473			;C(E) WAS CLOBBERED
  4255	033041	321 14 0 00 033027 		JUMPL	AC+2,F31470		;LOOP ON ERROR SWITCH^
  4256
  4257					;TEST MULTIPLICATION ALGORITHM
  4258					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  4259					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  4260					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  4261					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  4262					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  4263					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  4264					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  4265					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  4266					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  4267					;OF C(E).
  4268
  4269			003150			ADR=ADR+1
  4270			000016			XX=XX+1
  4271		777777	777762			MX=-XX
  4272						IFE	XX,<
  4273						V1=-1
  4274						V2=0>
  4275						IFN	XX,<
  4276			000000			V1=0
  4277		777777	777777			V2=-1>
  4278						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4279					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4280					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4281					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4282					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4283
  4284			000016		F31500:	AA1=XX				;INITIAL C(AC)
  4285	033042	200 12 0 00 044121 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4286			000000			AA2=V1				;INITIAL C(AC+1)
  4287	033043	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4288		777777	777777			AEE=-1				;INITIAL C(E)
  4289	033044	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4290	033045	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4291		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4292	033046	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4293	033047	003 12 0 00 031501 		ER3	AC,31501		;HIGH PRODUCT FAILED
  4294		777777	777762			AR2=MX				;EXPECTED RESULT IN AC+1
  4295	033050	312 13 0 00 044133 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4296	033051	004 13 0 00 031502 		ER4	AC+1,31502		;LOW PRODUCT FAILED
  4297		777777	777777			AEE=-1				;INITIAL C(E)
  4298	033052	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4299	033053	005 10 0 00 031503 		ER5	E,31503			;C(E) WAS CLOBBERED
  4300	033054	321 14 0 00 033042 		JUMPL	AC+2,F31500		;LOOP ON ERROR SWITCH^
  4301
  4302					;TEST MULTIPLICATION ALGORITHM
  4303					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  4304					;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
  4305					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  4306					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 6-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0096

  4307					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  4308					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  4309					;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
  4310					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  4311					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  4312					;OF C(E).
  4313
  4314			003151			ADR=ADR+1
  4315			000017			XX=XX+1
  4316		777777	777761			MX=-XX
  4317						IFE	XX,<
  4318						V1=-1
  4319						V2=0>
  4320						IFN	XX,<
  4321			000000			V1=0
  4322		777777	777777			V2=-1>
  4323						MOP1	(\ADR,XX,V1,-1,V2,MX)^
  4324					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND
  4325					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4326					;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY.
  4327					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4328
  4329			000017		F31510:	AA1=XX				;INITIAL C(AC)
  4330	033055	200 12 0 00 044122 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4331			000000			AA2=V1				;INITIAL C(AC+1)
  4332	033056	200 13 0 00 043776 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4333		777777	777777			AEE=-1				;INITIAL C(E)
  4334	033057	200 10 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4335	033060	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4336		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4337	033061	312 12 0 00 043777 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4338	033062	003 12 0 00 031511 		ER3	AC,31511		;HIGH PRODUCT FAILED
  4339		777777	777761			AR2=MX				;EXPECTED RESULT IN AC+1
  4340	033063	312 13 0 00 044134 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4341	033064	004 13 0 00 031512 		ER4	AC+1,31512		;LOW PRODUCT FAILED
  4342		777777	777777			AEE=-1				;INITIAL C(E)
  4343	033065	312 10 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4344	033066	005 10 0 00 031513 		ER5	E,31513			;C(E) WAS CLOBBERED
  4345	033067	321 14 0 00 033055 		JUMPL	AC+2,F31510		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0097

  4346					SUBTTL	DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
  4347
  4348			000011			AC=11
  4349			000007			E=<AC-2>&17
  4350						SAVEAC	(1,1)^
  4351	033070	201 13 0 00 033070 		MOVEI	AC+2,.		;SAVE TEST PC
  4352	033071	202 13 0 00 030051 		MOVEM	AC+2,TESTPC
  4353	033072	201 13 0 00 000013 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  4354	033073	202 13 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  4355			000000			XX=0
  4356
  4357						REPEAT	^D36,	<
  4358						ADR=ADR+1
  4359						XX=XX+XX
  4360						IFE	XX,<XX=1>
  4361					
  4362					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4363						MOP1	(\ADR,XX,-1,0,0,0)>
  4364
  4365			003152			ADR=ADR+1
  4366			000000			XX=XX+XX
  4367			000001			IFE	XX,<XX=1>
  4368
  4369					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4370						MOP1	(\ADR,XX,-1,0,0,0)^
  4371					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4372					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4373					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4374					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4375
  4376			000001		F31520:	AA1=XX				;INITIAL C(AC)
  4377	033074	200 11 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4378		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4379	033075	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4380			000000			AEE=0				;INITIAL C(E)
  4381	033076	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4382	033077	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4383			000000			AR1=0				;EXPECTED RESULT IN AC
  4384	033100	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4385	033101	003 11 0 00 031521 		ER3	AC,31521		;HIGH PRODUCT FAILED
  4386			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4387	033102	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4388	033103	004 12 0 00 031522 		ER4	AC+1,31522		;LOW PRODUCT FAILED
  4389			000000			AEE=0				;INITIAL C(E)
  4390	033104	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4391	033105	005 07 0 00 031523 		ER5	E,31523			;C(E) WAS CLOBBERED
  4392	033106	321 13 0 00 033074 		JUMPL	AC+2,F31520		;LOOP ON ERROR SWITCH^
  4393
  4394			003153			ADR=ADR+1
  4395			000002			XX=XX+XX
  4396						IFE	XX,<XX=1>
  4397
  4398					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4399						MOP1	(\ADR,XX,-1,0,0,0)^
  4400					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0098

  4401					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4402					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4403					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4404
  4405			000002		F31530:	AA1=XX				;INITIAL C(AC)
  4406	033107	200 11 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4407		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4408	033110	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4409			000000			AEE=0				;INITIAL C(E)
  4410	033111	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4411	033112	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4412			000000			AR1=0				;EXPECTED RESULT IN AC
  4413	033113	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4414	033114	003 11 0 00 031531 		ER3	AC,31531		;HIGH PRODUCT FAILED
  4415			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4416	033115	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4417	033116	004 12 0 00 031532 		ER4	AC+1,31532		;LOW PRODUCT FAILED
  4418			000000			AEE=0				;INITIAL C(E)
  4419	033117	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4420	033120	005 07 0 00 031533 		ER5	E,31533			;C(E) WAS CLOBBERED
  4421	033121	321 13 0 00 033107 		JUMPL	AC+2,F31530		;LOOP ON ERROR SWITCH^
  4422
  4423			003154			ADR=ADR+1
  4424			000004			XX=XX+XX
  4425						IFE	XX,<XX=1>
  4426
  4427					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4428						MOP1	(\ADR,XX,-1,0,0,0)^
  4429					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4430					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4431					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4432					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4433
  4434			000004		F31540:	AA1=XX				;INITIAL C(AC)
  4435	033122	200 11 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4436		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4437	033123	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4438			000000			AEE=0				;INITIAL C(E)
  4439	033124	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4440	033125	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4441			000000			AR1=0				;EXPECTED RESULT IN AC
  4442	033126	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4443	033127	003 11 0 00 031541 		ER3	AC,31541		;HIGH PRODUCT FAILED
  4444			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4445	033130	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4446	033131	004 12 0 00 031542 		ER4	AC+1,31542		;LOW PRODUCT FAILED
  4447			000000			AEE=0				;INITIAL C(E)
  4448	033132	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4449	033133	005 07 0 00 031543 		ER5	E,31543			;C(E) WAS CLOBBERED
  4450	033134	321 13 0 00 033122 		JUMPL	AC+2,F31540		;LOOP ON ERROR SWITCH^
  4451
  4452			003155			ADR=ADR+1
  4453			000010			XX=XX+XX
  4454						IFE	XX,<XX=1>
  4455
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0099

  4456					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4457						MOP1	(\ADR,XX,-1,0,0,0)^
  4458					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4459					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4460					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4461					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4462
  4463			000010		F31550:	AA1=XX				;INITIAL C(AC)
  4464	033135	200 11 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4465		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4466	033136	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4467			000000			AEE=0				;INITIAL C(E)
  4468	033137	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4469	033140	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4470			000000			AR1=0				;EXPECTED RESULT IN AC
  4471	033141	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4472	033142	003 11 0 00 031551 		ER3	AC,31551		;HIGH PRODUCT FAILED
  4473			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4474	033143	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4475	033144	004 12 0 00 031552 		ER4	AC+1,31552		;LOW PRODUCT FAILED
  4476			000000			AEE=0				;INITIAL C(E)
  4477	033145	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4478	033146	005 07 0 00 031553 		ER5	E,31553			;C(E) WAS CLOBBERED
  4479	033147	321 13 0 00 033135 		JUMPL	AC+2,F31550		;LOOP ON ERROR SWITCH^
  4480
  4481			003156			ADR=ADR+1
  4482			000020			XX=XX+XX
  4483						IFE	XX,<XX=1>
  4484
  4485					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4486						MOP1	(\ADR,XX,-1,0,0,0)^
  4487					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4488					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4489					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4490					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4491
  4492			000020		F31560:	AA1=XX				;INITIAL C(AC)
  4493	033150	200 11 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4494		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4495	033151	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4496			000000			AEE=0				;INITIAL C(E)
  4497	033152	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4498	033153	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4499			000000			AR1=0				;EXPECTED RESULT IN AC
  4500	033154	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4501	033155	003 11 0 00 031561 		ER3	AC,31561		;HIGH PRODUCT FAILED
  4502			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4503	033156	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4504	033157	004 12 0 00 031562 		ER4	AC+1,31562		;LOW PRODUCT FAILED
  4505			000000			AEE=0				;INITIAL C(E)
  4506	033160	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4507	033161	005 07 0 00 031563 		ER5	E,31563			;C(E) WAS CLOBBERED
  4508	033162	321 13 0 00 033150 		JUMPL	AC+2,F31560		;LOOP ON ERROR SWITCH^
  4509
  4510			003157			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0100

  4511			000040			XX=XX+XX
  4512						IFE	XX,<XX=1>
  4513
  4514					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4515						MOP1	(\ADR,XX,-1,0,0,0)^
  4516					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4517					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4518					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4519					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4520
  4521			000040		F31570:	AA1=XX				;INITIAL C(AC)
  4522	033163	200 11 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4523		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4524	033164	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4525			000000			AEE=0				;INITIAL C(E)
  4526	033165	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4527	033166	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4528			000000			AR1=0				;EXPECTED RESULT IN AC
  4529	033167	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4530	033170	003 11 0 00 031571 		ER3	AC,31571		;HIGH PRODUCT FAILED
  4531			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4532	033171	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4533	033172	004 12 0 00 031572 		ER4	AC+1,31572		;LOW PRODUCT FAILED
  4534			000000			AEE=0				;INITIAL C(E)
  4535	033173	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4536	033174	005 07 0 00 031573 		ER5	E,31573			;C(E) WAS CLOBBERED
  4537	033175	321 13 0 00 033163 		JUMPL	AC+2,F31570		;LOOP ON ERROR SWITCH^
  4538
  4539			003160			ADR=ADR+1
  4540			000100			XX=XX+XX
  4541						IFE	XX,<XX=1>
  4542
  4543					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4544						MOP1	(\ADR,XX,-1,0,0,0)^
  4545					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4546					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4547					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4548					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4549
  4550			000100		F31600:	AA1=XX				;INITIAL C(AC)
  4551	033176	200 11 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4552		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4553	033177	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4554			000000			AEE=0				;INITIAL C(E)
  4555	033200	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4556	033201	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4557			000000			AR1=0				;EXPECTED RESULT IN AC
  4558	033202	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4559	033203	003 11 0 00 031601 		ER3	AC,31601		;HIGH PRODUCT FAILED
  4560			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4561	033204	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4562	033205	004 12 0 00 031602 		ER4	AC+1,31602		;LOW PRODUCT FAILED
  4563			000000			AEE=0				;INITIAL C(E)
  4564	033206	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4565	033207	005 07 0 00 031603 		ER5	E,31603			;C(E) WAS CLOBBERED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0101

  4566	033210	321 13 0 00 033176 		JUMPL	AC+2,F31600		;LOOP ON ERROR SWITCH^
  4567
  4568			003161			ADR=ADR+1
  4569			000200			XX=XX+XX
  4570						IFE	XX,<XX=1>
  4571
  4572					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4573						MOP1	(\ADR,XX,-1,0,0,0)^
  4574					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4575					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4576					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4577					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4578
  4579			000200		F31610:	AA1=XX				;INITIAL C(AC)
  4580	033211	200 11 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4581		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4582	033212	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4583			000000			AEE=0				;INITIAL C(E)
  4584	033213	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4585	033214	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4586			000000			AR1=0				;EXPECTED RESULT IN AC
  4587	033215	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4588	033216	003 11 0 00 031611 		ER3	AC,31611		;HIGH PRODUCT FAILED
  4589			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4590	033217	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4591	033220	004 12 0 00 031612 		ER4	AC+1,31612		;LOW PRODUCT FAILED
  4592			000000			AEE=0				;INITIAL C(E)
  4593	033221	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4594	033222	005 07 0 00 031613 		ER5	E,31613			;C(E) WAS CLOBBERED
  4595	033223	321 13 0 00 033211 		JUMPL	AC+2,F31610		;LOOP ON ERROR SWITCH^
  4596
  4597			003162			ADR=ADR+1
  4598			000400			XX=XX+XX
  4599						IFE	XX,<XX=1>
  4600
  4601					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4602						MOP1	(\ADR,XX,-1,0,0,0)^
  4603					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4604					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4605					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4606					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4607
  4608			000400		F31620:	AA1=XX				;INITIAL C(AC)
  4609	033224	200 11 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4610		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4611	033225	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4612			000000			AEE=0				;INITIAL C(E)
  4613	033226	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4614	033227	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4615			000000			AR1=0				;EXPECTED RESULT IN AC
  4616	033230	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4617	033231	003 11 0 00 031621 		ER3	AC,31621		;HIGH PRODUCT FAILED
  4618			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4619	033232	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4620	033233	004 12 0 00 031622 		ER4	AC+1,31622		;LOW PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0102

  4621			000000			AEE=0				;INITIAL C(E)
  4622	033234	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4623	033235	005 07 0 00 031623 		ER5	E,31623			;C(E) WAS CLOBBERED
  4624	033236	321 13 0 00 033224 		JUMPL	AC+2,F31620		;LOOP ON ERROR SWITCH^
  4625
  4626			003163			ADR=ADR+1
  4627			001000			XX=XX+XX
  4628						IFE	XX,<XX=1>
  4629
  4630					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4631						MOP1	(\ADR,XX,-1,0,0,0)^
  4632					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4633					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4634					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4635					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4636
  4637			001000		F31630:	AA1=XX				;INITIAL C(AC)
  4638	033237	200 11 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4639		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4640	033240	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4641			000000			AEE=0				;INITIAL C(E)
  4642	033241	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4643	033242	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4644			000000			AR1=0				;EXPECTED RESULT IN AC
  4645	033243	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4646	033244	003 11 0 00 031631 		ER3	AC,31631		;HIGH PRODUCT FAILED
  4647			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4648	033245	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4649	033246	004 12 0 00 031632 		ER4	AC+1,31632		;LOW PRODUCT FAILED
  4650			000000			AEE=0				;INITIAL C(E)
  4651	033247	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4652	033250	005 07 0 00 031633 		ER5	E,31633			;C(E) WAS CLOBBERED
  4653	033251	321 13 0 00 033237 		JUMPL	AC+2,F31630		;LOOP ON ERROR SWITCH^
  4654
  4655			003164			ADR=ADR+1
  4656			002000			XX=XX+XX
  4657						IFE	XX,<XX=1>
  4658
  4659					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4660						MOP1	(\ADR,XX,-1,0,0,0)^
  4661					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4662					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4663					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4664					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4665
  4666			002000		F31640:	AA1=XX				;INITIAL C(AC)
  4667	033252	200 11 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4668		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4669	033253	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4670			000000			AEE=0				;INITIAL C(E)
  4671	033254	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4672	033255	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4673			000000			AR1=0				;EXPECTED RESULT IN AC
  4674	033256	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4675	033257	003 11 0 00 031641 		ER3	AC,31641		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0103

  4676			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4677	033260	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4678	033261	004 12 0 00 031642 		ER4	AC+1,31642		;LOW PRODUCT FAILED
  4679			000000			AEE=0				;INITIAL C(E)
  4680	033262	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4681	033263	005 07 0 00 031643 		ER5	E,31643			;C(E) WAS CLOBBERED
  4682	033264	321 13 0 00 033252 		JUMPL	AC+2,F31640		;LOOP ON ERROR SWITCH^
  4683
  4684			003165			ADR=ADR+1
  4685			004000			XX=XX+XX
  4686						IFE	XX,<XX=1>
  4687
  4688					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4689						MOP1	(\ADR,XX,-1,0,0,0)^
  4690					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4691					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4692					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4693					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4694
  4695			004000		F31650:	AA1=XX				;INITIAL C(AC)
  4696	033265	200 11 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4697		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4698	033266	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4699			000000			AEE=0				;INITIAL C(E)
  4700	033267	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4701	033270	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4702			000000			AR1=0				;EXPECTED RESULT IN AC
  4703	033271	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4704	033272	003 11 0 00 031651 		ER3	AC,31651		;HIGH PRODUCT FAILED
  4705			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4706	033273	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4707	033274	004 12 0 00 031652 		ER4	AC+1,31652		;LOW PRODUCT FAILED
  4708			000000			AEE=0				;INITIAL C(E)
  4709	033275	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4710	033276	005 07 0 00 031653 		ER5	E,31653			;C(E) WAS CLOBBERED
  4711	033277	321 13 0 00 033265 		JUMPL	AC+2,F31650		;LOOP ON ERROR SWITCH^
  4712
  4713			003166			ADR=ADR+1
  4714			010000			XX=XX+XX
  4715						IFE	XX,<XX=1>
  4716
  4717					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4718						MOP1	(\ADR,XX,-1,0,0,0)^
  4719					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4720					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4721					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4722					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4723
  4724			010000		F31660:	AA1=XX				;INITIAL C(AC)
  4725	033300	200 11 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4726		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4727	033301	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4728			000000			AEE=0				;INITIAL C(E)
  4729	033302	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4730	033303	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0104

  4731			000000			AR1=0				;EXPECTED RESULT IN AC
  4732	033304	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4733	033305	003 11 0 00 031661 		ER3	AC,31661		;HIGH PRODUCT FAILED
  4734			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4735	033306	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4736	033307	004 12 0 00 031662 		ER4	AC+1,31662		;LOW PRODUCT FAILED
  4737			000000			AEE=0				;INITIAL C(E)
  4738	033310	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4739	033311	005 07 0 00 031663 		ER5	E,31663			;C(E) WAS CLOBBERED
  4740	033312	321 13 0 00 033300 		JUMPL	AC+2,F31660		;LOOP ON ERROR SWITCH^
  4741
  4742			003167			ADR=ADR+1
  4743			020000			XX=XX+XX
  4744						IFE	XX,<XX=1>
  4745
  4746					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4747						MOP1	(\ADR,XX,-1,0,0,0)^
  4748					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4749					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4750					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4751					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4752
  4753			020000		F31670:	AA1=XX				;INITIAL C(AC)
  4754	033313	200 11 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4755		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4756	033314	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4757			000000			AEE=0				;INITIAL C(E)
  4758	033315	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4759	033316	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4760			000000			AR1=0				;EXPECTED RESULT IN AC
  4761	033317	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4762	033320	003 11 0 00 031671 		ER3	AC,31671		;HIGH PRODUCT FAILED
  4763			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4764	033321	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4765	033322	004 12 0 00 031672 		ER4	AC+1,31672		;LOW PRODUCT FAILED
  4766			000000			AEE=0				;INITIAL C(E)
  4767	033323	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4768	033324	005 07 0 00 031673 		ER5	E,31673			;C(E) WAS CLOBBERED
  4769	033325	321 13 0 00 033313 		JUMPL	AC+2,F31670		;LOOP ON ERROR SWITCH^
  4770
  4771			003170			ADR=ADR+1
  4772			040000			XX=XX+XX
  4773						IFE	XX,<XX=1>
  4774
  4775					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4776						MOP1	(\ADR,XX,-1,0,0,0)^
  4777					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4778					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4779					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4780					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4781
  4782			040000		F31700:	AA1=XX				;INITIAL C(AC)
  4783	033326	200 11 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4784		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4785	033327	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0105

  4786			000000			AEE=0				;INITIAL C(E)
  4787	033330	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4788	033331	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4789			000000			AR1=0				;EXPECTED RESULT IN AC
  4790	033332	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4791	033333	003 11 0 00 031701 		ER3	AC,31701		;HIGH PRODUCT FAILED
  4792			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4793	033334	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4794	033335	004 12 0 00 031702 		ER4	AC+1,31702		;LOW PRODUCT FAILED
  4795			000000			AEE=0				;INITIAL C(E)
  4796	033336	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4797	033337	005 07 0 00 031703 		ER5	E,31703			;C(E) WAS CLOBBERED
  4798	033340	321 13 0 00 033326 		JUMPL	AC+2,F31700		;LOOP ON ERROR SWITCH^
  4799
  4800			003171			ADR=ADR+1
  4801			100000			XX=XX+XX
  4802						IFE	XX,<XX=1>
  4803
  4804					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4805						MOP1	(\ADR,XX,-1,0,0,0)^
  4806					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4807					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4808					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4809					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4810
  4811			100000		F31710:	AA1=XX				;INITIAL C(AC)
  4812	033341	200 11 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4813		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4814	033342	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4815			000000			AEE=0				;INITIAL C(E)
  4816	033343	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4817	033344	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4818			000000			AR1=0				;EXPECTED RESULT IN AC
  4819	033345	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4820	033346	003 11 0 00 031711 		ER3	AC,31711		;HIGH PRODUCT FAILED
  4821			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4822	033347	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4823	033350	004 12 0 00 031712 		ER4	AC+1,31712		;LOW PRODUCT FAILED
  4824			000000			AEE=0				;INITIAL C(E)
  4825	033351	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4826	033352	005 07 0 00 031713 		ER5	E,31713			;C(E) WAS CLOBBERED
  4827	033353	321 13 0 00 033341 		JUMPL	AC+2,F31710		;LOOP ON ERROR SWITCH^
  4828
  4829			003172			ADR=ADR+1
  4830			200000			XX=XX+XX
  4831						IFE	XX,<XX=1>
  4832
  4833					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4834						MOP1	(\ADR,XX,-1,0,0,0)^
  4835					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4836					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4837					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4838					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4839
  4840			200000		F31720:	AA1=XX				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0106

  4841	033354	200 11 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4842		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4843	033355	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4844			000000			AEE=0				;INITIAL C(E)
  4845	033356	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4846	033357	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4847			000000			AR1=0				;EXPECTED RESULT IN AC
  4848	033360	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4849	033361	003 11 0 00 031721 		ER3	AC,31721		;HIGH PRODUCT FAILED
  4850			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4851	033362	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4852	033363	004 12 0 00 031722 		ER4	AC+1,31722		;LOW PRODUCT FAILED
  4853			000000			AEE=0				;INITIAL C(E)
  4854	033364	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4855	033365	005 07 0 00 031723 		ER5	E,31723			;C(E) WAS CLOBBERED
  4856	033366	321 13 0 00 033354 		JUMPL	AC+2,F31720		;LOOP ON ERROR SWITCH^
  4857
  4858			003173			ADR=ADR+1
  4859			400000			XX=XX+XX
  4860						IFE	XX,<XX=1>
  4861
  4862					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4863						MOP1	(\ADR,XX,-1,0,0,0)^
  4864					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4865					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4866					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4867					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4868
  4869			400000		F31730:	AA1=XX				;INITIAL C(AC)
  4870	033367	200 11 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4871		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4872	033370	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4873			000000			AEE=0				;INITIAL C(E)
  4874	033371	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4875	033372	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4876			000000			AR1=0				;EXPECTED RESULT IN AC
  4877	033373	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4878	033374	003 11 0 00 031731 		ER3	AC,31731		;HIGH PRODUCT FAILED
  4879			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4880	033375	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4881	033376	004 12 0 00 031732 		ER4	AC+1,31732		;LOW PRODUCT FAILED
  4882			000000			AEE=0				;INITIAL C(E)
  4883	033377	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4884	033400	005 07 0 00 031733 		ER5	E,31733			;C(E) WAS CLOBBERED
  4885	033401	321 13 0 00 033367 		JUMPL	AC+2,F31730		;LOOP ON ERROR SWITCH^
  4886
  4887			003174			ADR=ADR+1
  4888		000001	000000			XX=XX+XX
  4889						IFE	XX,<XX=1>
  4890
  4891					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4892						MOP1	(\ADR,XX,-1,0,0,0)^
  4893					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4894					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4895					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0107

  4896					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4897
  4898		000001	000000		F31740:	AA1=XX				;INITIAL C(AC)
  4899	033402	200 11 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4900		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4901	033403	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4902			000000			AEE=0				;INITIAL C(E)
  4903	033404	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4904	033405	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4905			000000			AR1=0				;EXPECTED RESULT IN AC
  4906	033406	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4907	033407	003 11 0 00 031741 		ER3	AC,31741		;HIGH PRODUCT FAILED
  4908			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4909	033410	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4910	033411	004 12 0 00 031742 		ER4	AC+1,31742		;LOW PRODUCT FAILED
  4911			000000			AEE=0				;INITIAL C(E)
  4912	033412	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4913	033413	005 07 0 00 031743 		ER5	E,31743			;C(E) WAS CLOBBERED
  4914	033414	321 13 0 00 033402 		JUMPL	AC+2,F31740		;LOOP ON ERROR SWITCH^
  4915
  4916			003175			ADR=ADR+1
  4917		000002	000000			XX=XX+XX
  4918						IFE	XX,<XX=1>
  4919
  4920					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4921						MOP1	(\ADR,XX,-1,0,0,0)^
  4922					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4923					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4924					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4925					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4926
  4927		000002	000000		F31750:	AA1=XX				;INITIAL C(AC)
  4928	033415	200 11 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4929		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4930	033416	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4931			000000			AEE=0				;INITIAL C(E)
  4932	033417	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4933	033420	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4934			000000			AR1=0				;EXPECTED RESULT IN AC
  4935	033421	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4936	033422	003 11 0 00 031751 		ER3	AC,31751		;HIGH PRODUCT FAILED
  4937			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4938	033423	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4939	033424	004 12 0 00 031752 		ER4	AC+1,31752		;LOW PRODUCT FAILED
  4940			000000			AEE=0				;INITIAL C(E)
  4941	033425	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4942	033426	005 07 0 00 031753 		ER5	E,31753			;C(E) WAS CLOBBERED
  4943	033427	321 13 0 00 033415 		JUMPL	AC+2,F31750		;LOOP ON ERROR SWITCH^
  4944
  4945			003176			ADR=ADR+1
  4946		000004	000000			XX=XX+XX
  4947						IFE	XX,<XX=1>
  4948
  4949					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4950						MOP1	(\ADR,XX,-1,0,0,0)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0108

  4951					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4952					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4953					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4954					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4955
  4956		000004	000000		F31760:	AA1=XX				;INITIAL C(AC)
  4957	033430	200 11 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4958		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4959	033431	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4960			000000			AEE=0				;INITIAL C(E)
  4961	033432	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4962	033433	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4963			000000			AR1=0				;EXPECTED RESULT IN AC
  4964	033434	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4965	033435	003 11 0 00 031761 		ER3	AC,31761		;HIGH PRODUCT FAILED
  4966			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4967	033436	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4968	033437	004 12 0 00 031762 		ER4	AC+1,31762		;LOW PRODUCT FAILED
  4969			000000			AEE=0				;INITIAL C(E)
  4970	033440	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4971	033441	005 07 0 00 031763 		ER5	E,31763			;C(E) WAS CLOBBERED
  4972	033442	321 13 0 00 033430 		JUMPL	AC+2,F31760		;LOOP ON ERROR SWITCH^
  4973
  4974			003177			ADR=ADR+1
  4975		000010	000000			XX=XX+XX
  4976						IFE	XX,<XX=1>
  4977
  4978					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  4979						MOP1	(\ADR,XX,-1,0,0,0)^
  4980					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  4981					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  4982					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  4983					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4984
  4985		000010	000000		F31770:	AA1=XX				;INITIAL C(AC)
  4986	033443	200 11 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4987		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4988	033444	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4989			000000			AEE=0				;INITIAL C(E)
  4990	033445	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4991	033446	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4992			000000			AR1=0				;EXPECTED RESULT IN AC
  4993	033447	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4994	033450	003 11 0 00 031771 		ER3	AC,31771		;HIGH PRODUCT FAILED
  4995			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4996	033451	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4997	033452	004 12 0 00 031772 		ER4	AC+1,31772		;LOW PRODUCT FAILED
  4998			000000			AEE=0				;INITIAL C(E)
  4999	033453	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5000	033454	005 07 0 00 031773 		ER5	E,31773			;C(E) WAS CLOBBERED
  5001	033455	321 13 0 00 033443 		JUMPL	AC+2,F31770		;LOOP ON ERROR SWITCH^
  5002
  5003			003200			ADR=ADR+1
  5004		000020	000000			XX=XX+XX
  5005						IFE	XX,<XX=1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0109

  5006
  5007					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5008						MOP1	(\ADR,XX,-1,0,0,0)^
  5009					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5010					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5011					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5012					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5013
  5014		000020	000000		F32000:	AA1=XX				;INITIAL C(AC)
  5015	033456	200 11 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5016		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5017	033457	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5018			000000			AEE=0				;INITIAL C(E)
  5019	033460	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5020	033461	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5021			000000			AR1=0				;EXPECTED RESULT IN AC
  5022	033462	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5023	033463	003 11 0 00 032001 		ER3	AC,32001		;HIGH PRODUCT FAILED
  5024			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5025	033464	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5026	033465	004 12 0 00 032002 		ER4	AC+1,32002		;LOW PRODUCT FAILED
  5027			000000			AEE=0				;INITIAL C(E)
  5028	033466	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5029	033467	005 07 0 00 032003 		ER5	E,32003			;C(E) WAS CLOBBERED
  5030	033470	321 13 0 00 033456 		JUMPL	AC+2,F32000		;LOOP ON ERROR SWITCH^
  5031
  5032			003201			ADR=ADR+1
  5033		000040	000000			XX=XX+XX
  5034						IFE	XX,<XX=1>
  5035
  5036					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5037						MOP1	(\ADR,XX,-1,0,0,0)^
  5038					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5039					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5040					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5041					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5042
  5043		000040	000000		F32010:	AA1=XX				;INITIAL C(AC)
  5044	033471	200 11 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5045		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5046	033472	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5047			000000			AEE=0				;INITIAL C(E)
  5048	033473	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5049	033474	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5050			000000			AR1=0				;EXPECTED RESULT IN AC
  5051	033475	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5052	033476	003 11 0 00 032011 		ER3	AC,32011		;HIGH PRODUCT FAILED
  5053			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5054	033477	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5055	033500	004 12 0 00 032012 		ER4	AC+1,32012		;LOW PRODUCT FAILED
  5056			000000			AEE=0				;INITIAL C(E)
  5057	033501	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5058	033502	005 07 0 00 032013 		ER5	E,32013			;C(E) WAS CLOBBERED
  5059	033503	321 13 0 00 033471 		JUMPL	AC+2,F32010		;LOOP ON ERROR SWITCH^
  5060
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0110

  5061			003202			ADR=ADR+1
  5062		000100	000000			XX=XX+XX
  5063						IFE	XX,<XX=1>
  5064
  5065					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5066						MOP1	(\ADR,XX,-1,0,0,0)^
  5067					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5068					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5069					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5070					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5071
  5072		000100	000000		F32020:	AA1=XX				;INITIAL C(AC)
  5073	033504	200 11 0 00 044030 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5074		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5075	033505	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5076			000000			AEE=0				;INITIAL C(E)
  5077	033506	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5078	033507	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5079			000000			AR1=0				;EXPECTED RESULT IN AC
  5080	033510	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5081	033511	003 11 0 00 032021 		ER3	AC,32021		;HIGH PRODUCT FAILED
  5082			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5083	033512	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5084	033513	004 12 0 00 032022 		ER4	AC+1,32022		;LOW PRODUCT FAILED
  5085			000000			AEE=0				;INITIAL C(E)
  5086	033514	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5087	033515	005 07 0 00 032023 		ER5	E,32023			;C(E) WAS CLOBBERED
  5088	033516	321 13 0 00 033504 		JUMPL	AC+2,F32020		;LOOP ON ERROR SWITCH^
  5089
  5090			003203			ADR=ADR+1
  5091		000200	000000			XX=XX+XX
  5092						IFE	XX,<XX=1>
  5093
  5094					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5095						MOP1	(\ADR,XX,-1,0,0,0)^
  5096					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5097					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5098					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5099					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5100
  5101		000200	000000		F32030:	AA1=XX				;INITIAL C(AC)
  5102	033517	200 11 0 00 044031 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5103		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5104	033520	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5105			000000			AEE=0				;INITIAL C(E)
  5106	033521	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5107	033522	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5108			000000			AR1=0				;EXPECTED RESULT IN AC
  5109	033523	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5110	033524	003 11 0 00 032031 		ER3	AC,32031		;HIGH PRODUCT FAILED
  5111			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5112	033525	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5113	033526	004 12 0 00 032032 		ER4	AC+1,32032		;LOW PRODUCT FAILED
  5114			000000			AEE=0				;INITIAL C(E)
  5115	033527	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0111

  5116	033530	005 07 0 00 032033 		ER5	E,32033			;C(E) WAS CLOBBERED
  5117	033531	321 13 0 00 033517 		JUMPL	AC+2,F32030		;LOOP ON ERROR SWITCH^
  5118
  5119			003204			ADR=ADR+1
  5120		000400	000000			XX=XX+XX
  5121						IFE	XX,<XX=1>
  5122
  5123					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5124						MOP1	(\ADR,XX,-1,0,0,0)^
  5125					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5126					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5127					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5128					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5129
  5130		000400	000000		F32040:	AA1=XX				;INITIAL C(AC)
  5131	033532	200 11 0 00 044032 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5132		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5133	033533	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5134			000000			AEE=0				;INITIAL C(E)
  5135	033534	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5136	033535	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5137			000000			AR1=0				;EXPECTED RESULT IN AC
  5138	033536	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5139	033537	003 11 0 00 032041 		ER3	AC,32041		;HIGH PRODUCT FAILED
  5140			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5141	033540	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5142	033541	004 12 0 00 032042 		ER4	AC+1,32042		;LOW PRODUCT FAILED
  5143			000000			AEE=0				;INITIAL C(E)
  5144	033542	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5145	033543	005 07 0 00 032043 		ER5	E,32043			;C(E) WAS CLOBBERED
  5146	033544	321 13 0 00 033532 		JUMPL	AC+2,F32040		;LOOP ON ERROR SWITCH^
  5147
  5148			003205			ADR=ADR+1
  5149		001000	000000			XX=XX+XX
  5150						IFE	XX,<XX=1>
  5151
  5152					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5153						MOP1	(\ADR,XX,-1,0,0,0)^
  5154					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5155					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5156					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5157					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5158
  5159		001000	000000		F32050:	AA1=XX				;INITIAL C(AC)
  5160	033545	200 11 0 00 044033 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5161		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5162	033546	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5163			000000			AEE=0				;INITIAL C(E)
  5164	033547	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5165	033550	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5166			000000			AR1=0				;EXPECTED RESULT IN AC
  5167	033551	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5168	033552	003 11 0 00 032051 		ER3	AC,32051		;HIGH PRODUCT FAILED
  5169			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5170	033553	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0112

  5171	033554	004 12 0 00 032052 		ER4	AC+1,32052		;LOW PRODUCT FAILED
  5172			000000			AEE=0				;INITIAL C(E)
  5173	033555	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5174	033556	005 07 0 00 032053 		ER5	E,32053			;C(E) WAS CLOBBERED
  5175	033557	321 13 0 00 033545 		JUMPL	AC+2,F32050		;LOOP ON ERROR SWITCH^
  5176
  5177			003206			ADR=ADR+1
  5178		002000	000000			XX=XX+XX
  5179						IFE	XX,<XX=1>
  5180
  5181					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5182						MOP1	(\ADR,XX,-1,0,0,0)^
  5183					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5184					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5185					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5186					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5187
  5188		002000	000000		F32060:	AA1=XX				;INITIAL C(AC)
  5189	033560	200 11 0 00 044034 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5190		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5191	033561	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5192			000000			AEE=0				;INITIAL C(E)
  5193	033562	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5194	033563	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5195			000000			AR1=0				;EXPECTED RESULT IN AC
  5196	033564	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5197	033565	003 11 0 00 032061 		ER3	AC,32061		;HIGH PRODUCT FAILED
  5198			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5199	033566	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5200	033567	004 12 0 00 032062 		ER4	AC+1,32062		;LOW PRODUCT FAILED
  5201			000000			AEE=0				;INITIAL C(E)
  5202	033570	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5203	033571	005 07 0 00 032063 		ER5	E,32063			;C(E) WAS CLOBBERED
  5204	033572	321 13 0 00 033560 		JUMPL	AC+2,F32060		;LOOP ON ERROR SWITCH^
  5205
  5206			003207			ADR=ADR+1
  5207		004000	000000			XX=XX+XX
  5208						IFE	XX,<XX=1>
  5209
  5210					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5211						MOP1	(\ADR,XX,-1,0,0,0)^
  5212					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5213					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5214					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5215					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5216
  5217		004000	000000		F32070:	AA1=XX				;INITIAL C(AC)
  5218	033573	200 11 0 00 044035 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5219		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5220	033574	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5221			000000			AEE=0				;INITIAL C(E)
  5222	033575	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5223	033576	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5224			000000			AR1=0				;EXPECTED RESULT IN AC
  5225	033577	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0113

  5226	033600	003 11 0 00 032071 		ER3	AC,32071		;HIGH PRODUCT FAILED
  5227			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5228	033601	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5229	033602	004 12 0 00 032072 		ER4	AC+1,32072		;LOW PRODUCT FAILED
  5230			000000			AEE=0				;INITIAL C(E)
  5231	033603	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5232	033604	005 07 0 00 032073 		ER5	E,32073			;C(E) WAS CLOBBERED
  5233	033605	321 13 0 00 033573 		JUMPL	AC+2,F32070		;LOOP ON ERROR SWITCH^
  5234
  5235			003210			ADR=ADR+1
  5236		010000	000000			XX=XX+XX
  5237						IFE	XX,<XX=1>
  5238
  5239					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5240						MOP1	(\ADR,XX,-1,0,0,0)^
  5241					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5242					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5243					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5244					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5245
  5246		010000	000000		F32100:	AA1=XX				;INITIAL C(AC)
  5247	033606	200 11 0 00 044036 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5248		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5249	033607	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5250			000000			AEE=0				;INITIAL C(E)
  5251	033610	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5252	033611	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5253			000000			AR1=0				;EXPECTED RESULT IN AC
  5254	033612	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5255	033613	003 11 0 00 032101 		ER3	AC,32101		;HIGH PRODUCT FAILED
  5256			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5257	033614	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5258	033615	004 12 0 00 032102 		ER4	AC+1,32102		;LOW PRODUCT FAILED
  5259			000000			AEE=0				;INITIAL C(E)
  5260	033616	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5261	033617	005 07 0 00 032103 		ER5	E,32103			;C(E) WAS CLOBBERED
  5262	033620	321 13 0 00 033606 		JUMPL	AC+2,F32100		;LOOP ON ERROR SWITCH^
  5263
  5264			003211			ADR=ADR+1
  5265		020000	000000			XX=XX+XX
  5266						IFE	XX,<XX=1>
  5267
  5268					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5269						MOP1	(\ADR,XX,-1,0,0,0)^
  5270					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5271					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5272					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5273					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5274
  5275		020000	000000		F32110:	AA1=XX				;INITIAL C(AC)
  5276	033621	200 11 0 00 044037 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5277		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5278	033622	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5279			000000			AEE=0				;INITIAL C(E)
  5280	033623	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0114

  5281	033624	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5282			000000			AR1=0				;EXPECTED RESULT IN AC
  5283	033625	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5284	033626	003 11 0 00 032111 		ER3	AC,32111		;HIGH PRODUCT FAILED
  5285			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5286	033627	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5287	033630	004 12 0 00 032112 		ER4	AC+1,32112		;LOW PRODUCT FAILED
  5288			000000			AEE=0				;INITIAL C(E)
  5289	033631	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5290	033632	005 07 0 00 032113 		ER5	E,32113			;C(E) WAS CLOBBERED
  5291	033633	321 13 0 00 033621 		JUMPL	AC+2,F32110		;LOOP ON ERROR SWITCH^
  5292
  5293			003212			ADR=ADR+1
  5294		040000	000000			XX=XX+XX
  5295						IFE	XX,<XX=1>
  5296
  5297					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5298						MOP1	(\ADR,XX,-1,0,0,0)^
  5299					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5300					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5301					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5302					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5303
  5304		040000	000000		F32120:	AA1=XX				;INITIAL C(AC)
  5305	033634	200 11 0 00 044040 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5306		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5307	033635	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5308			000000			AEE=0				;INITIAL C(E)
  5309	033636	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5310	033637	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5311			000000			AR1=0				;EXPECTED RESULT IN AC
  5312	033640	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5313	033641	003 11 0 00 032121 		ER3	AC,32121		;HIGH PRODUCT FAILED
  5314			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5315	033642	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5316	033643	004 12 0 00 032122 		ER4	AC+1,32122		;LOW PRODUCT FAILED
  5317			000000			AEE=0				;INITIAL C(E)
  5318	033644	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5319	033645	005 07 0 00 032123 		ER5	E,32123			;C(E) WAS CLOBBERED
  5320	033646	321 13 0 00 033634 		JUMPL	AC+2,F32120		;LOOP ON ERROR SWITCH^
  5321
  5322			003213			ADR=ADR+1
  5323		100000	000000			XX=XX+XX
  5324						IFE	XX,<XX=1>
  5325
  5326					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5327						MOP1	(\ADR,XX,-1,0,0,0)^
  5328					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5329					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5330					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5331					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5332
  5333		100000	000000		F32130:	AA1=XX				;INITIAL C(AC)
  5334	033647	200 11 0 00 044041 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5335		777777	777777			AA2=-1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0115

  5336	033650	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5337			000000			AEE=0				;INITIAL C(E)
  5338	033651	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5339	033652	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5340			000000			AR1=0				;EXPECTED RESULT IN AC
  5341	033653	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5342	033654	003 11 0 00 032131 		ER3	AC,32131		;HIGH PRODUCT FAILED
  5343			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5344	033655	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5345	033656	004 12 0 00 032132 		ER4	AC+1,32132		;LOW PRODUCT FAILED
  5346			000000			AEE=0				;INITIAL C(E)
  5347	033657	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5348	033660	005 07 0 00 032133 		ER5	E,32133			;C(E) WAS CLOBBERED
  5349	033661	321 13 0 00 033647 		JUMPL	AC+2,F32130		;LOOP ON ERROR SWITCH^
  5350
  5351			003214			ADR=ADR+1
  5352		200000	000000			XX=XX+XX
  5353						IFE	XX,<XX=1>
  5354
  5355					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5356						MOP1	(\ADR,XX,-1,0,0,0)^
  5357					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5358					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5359					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5360					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5361
  5362		200000	000000		F32140:	AA1=XX				;INITIAL C(AC)
  5363	033662	200 11 0 00 044042 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5364		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5365	033663	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5366			000000			AEE=0				;INITIAL C(E)
  5367	033664	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5368	033665	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5369			000000			AR1=0				;EXPECTED RESULT IN AC
  5370	033666	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5371	033667	003 11 0 00 032141 		ER3	AC,32141		;HIGH PRODUCT FAILED
  5372			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5373	033670	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5374	033671	004 12 0 00 032142 		ER4	AC+1,32142		;LOW PRODUCT FAILED
  5375			000000			AEE=0				;INITIAL C(E)
  5376	033672	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5377	033673	005 07 0 00 032143 		ER5	E,32143			;C(E) WAS CLOBBERED
  5378	033674	321 13 0 00 033662 		JUMPL	AC+2,F32140		;LOOP ON ERROR SWITCH^
  5379
  5380			003215			ADR=ADR+1
  5381		400000	000000			XX=XX+XX
  5382						IFE	XX,<XX=1>
  5383
  5384					;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
  5385						MOP1	(\ADR,XX,-1,0,0,0)^
  5386					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5387					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5388					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5389					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5390
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 7-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0116

  5391		400000	000000		F32150:	AA1=XX				;INITIAL C(AC)
  5392	033675	200 11 0 00 044043 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5393		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5394	033676	200 12 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5395			000000			AEE=0				;INITIAL C(E)
  5396	033677	200 07 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5397	033700	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5398			000000			AR1=0				;EXPECTED RESULT IN AC
  5399	033701	312 11 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5400	033702	003 11 0 00 032151 		ER3	AC,32151		;HIGH PRODUCT FAILED
  5401			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5402	033703	312 12 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5403	033704	004 12 0 00 032152 		ER4	AC+1,32152		;LOW PRODUCT FAILED
  5404			000000			AEE=0				;INITIAL C(E)
  5405	033705	312 07 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5406	033706	005 07 0 00 032153 		ER5	E,32153			;C(E) WAS CLOBBERED
  5407	033707	321 13 0 00 033675 		JUMPL	AC+2,F32150		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0117

  5408			000010			AC=10
  5409			000006			E=<AC-2>&17
  5410						SAVEAC	(1,1)^
  5411	033710	201 12 0 00 033710 		MOVEI	AC+2,.		;SAVE TEST PC
  5412	033711	202 12 0 00 030051 		MOVEM	AC+2,TESTPC
  5413	033712	201 12 0 00 000012 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  5414	033713	202 12 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  5415			000000			XX=0
  5416
  5417						REPEAT	^D36,<
  5418						ADR=ADR+1
  5419						XX=XX+XX+1
  5420						IFE	<XX-1>,<XX=-2>
  5421					
  5422					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5423						MOP1	(\ADR,XX,-1,0,0,0)>
  5424
  5425			003216			ADR=ADR+1
  5426			000001			XX=XX+XX+1
  5427		777777	777776			IFE	<XX-1>,<XX=-2>
  5428
  5429					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5430						MOP1	(\ADR,XX,-1,0,0,0)^
  5431					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5432					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5433					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5434					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5435
  5436		777777	777776		F32160:	AA1=XX				;INITIAL C(AC)
  5437	033714	200 10 0 00 044044 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5438		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5439	033715	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5440			000000			AEE=0				;INITIAL C(E)
  5441	033716	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5442	033717	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5443			000000			AR1=0				;EXPECTED RESULT IN AC
  5444	033720	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5445	033721	003 10 0 00 032161 		ER3	AC,32161		;HIGH PRODUCT FAILED
  5446			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5447	033722	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5448	033723	004 11 0 00 032162 		ER4	AC+1,32162		;LOW PRODUCT FAILED
  5449			000000			AEE=0				;INITIAL C(E)
  5450	033724	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5451	033725	005 06 0 00 032163 		ER5	E,32163			;C(E) WAS CLOBBERED
  5452	033726	321 12 0 00 033714 		JUMPL	AC+2,F32160		;LOOP ON ERROR SWITCH^
  5453
  5454			003217			ADR=ADR+1
  5455		777777	777775			XX=XX+XX+1
  5456						IFE	<XX-1>,<XX=-2>
  5457
  5458					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5459						MOP1	(\ADR,XX,-1,0,0,0)^
  5460					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5461					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5462					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0118

  5463					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5464
  5465		777777	777775		F32170:	AA1=XX				;INITIAL C(AC)
  5466	033727	200 10 0 00 044045 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5467		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5468	033730	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5469			000000			AEE=0				;INITIAL C(E)
  5470	033731	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5471	033732	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5472			000000			AR1=0				;EXPECTED RESULT IN AC
  5473	033733	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5474	033734	003 10 0 00 032171 		ER3	AC,32171		;HIGH PRODUCT FAILED
  5475			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5476	033735	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5477	033736	004 11 0 00 032172 		ER4	AC+1,32172		;LOW PRODUCT FAILED
  5478			000000			AEE=0				;INITIAL C(E)
  5479	033737	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5480	033740	005 06 0 00 032173 		ER5	E,32173			;C(E) WAS CLOBBERED
  5481	033741	321 12 0 00 033727 		JUMPL	AC+2,F32170		;LOOP ON ERROR SWITCH^
  5482
  5483			003220			ADR=ADR+1
  5484		777777	777773			XX=XX+XX+1
  5485						IFE	<XX-1>,<XX=-2>
  5486
  5487					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5488						MOP1	(\ADR,XX,-1,0,0,0)^
  5489					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5490					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5491					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5492					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5493
  5494		777777	777773		F32200:	AA1=XX				;INITIAL C(AC)
  5495	033742	200 10 0 00 044046 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5496		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5497	033743	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5498			000000			AEE=0				;INITIAL C(E)
  5499	033744	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5500	033745	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5501			000000			AR1=0				;EXPECTED RESULT IN AC
  5502	033746	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5503	033747	003 10 0 00 032201 		ER3	AC,32201		;HIGH PRODUCT FAILED
  5504			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5505	033750	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5506	033751	004 11 0 00 032202 		ER4	AC+1,32202		;LOW PRODUCT FAILED
  5507			000000			AEE=0				;INITIAL C(E)
  5508	033752	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5509	033753	005 06 0 00 032203 		ER5	E,32203			;C(E) WAS CLOBBERED
  5510	033754	321 12 0 00 033742 		JUMPL	AC+2,F32200		;LOOP ON ERROR SWITCH^
  5511
  5512			003221			ADR=ADR+1
  5513		777777	777767			XX=XX+XX+1
  5514						IFE	<XX-1>,<XX=-2>
  5515
  5516					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5517						MOP1	(\ADR,XX,-1,0,0,0)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0119

  5518					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5519					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5520					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5521					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5522
  5523		777777	777767		F32210:	AA1=XX				;INITIAL C(AC)
  5524	033755	200 10 0 00 044047 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5525		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5526	033756	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5527			000000			AEE=0				;INITIAL C(E)
  5528	033757	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5529	033760	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5530			000000			AR1=0				;EXPECTED RESULT IN AC
  5531	033761	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5532	033762	003 10 0 00 032211 		ER3	AC,32211		;HIGH PRODUCT FAILED
  5533			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5534	033763	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5535	033764	004 11 0 00 032212 		ER4	AC+1,32212		;LOW PRODUCT FAILED
  5536			000000			AEE=0				;INITIAL C(E)
  5537	033765	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5538	033766	005 06 0 00 032213 		ER5	E,32213			;C(E) WAS CLOBBERED
  5539	033767	321 12 0 00 033755 		JUMPL	AC+2,F32210		;LOOP ON ERROR SWITCH^
  5540
  5541			003222			ADR=ADR+1
  5542		777777	777757			XX=XX+XX+1
  5543						IFE	<XX-1>,<XX=-2>
  5544
  5545					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5546						MOP1	(\ADR,XX,-1,0,0,0)^
  5547					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5548					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5549					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5550					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5551
  5552		777777	777757		F32220:	AA1=XX				;INITIAL C(AC)
  5553	033770	200 10 0 00 044050 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5554		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5555	033771	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5556			000000			AEE=0				;INITIAL C(E)
  5557	033772	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5558	033773	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5559			000000			AR1=0				;EXPECTED RESULT IN AC
  5560	033774	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5561	033775	003 10 0 00 032221 		ER3	AC,32221		;HIGH PRODUCT FAILED
  5562			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5563	033776	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5564	033777	004 11 0 00 032222 		ER4	AC+1,32222		;LOW PRODUCT FAILED
  5565			000000			AEE=0				;INITIAL C(E)
  5566	034000	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5567	034001	005 06 0 00 032223 		ER5	E,32223			;C(E) WAS CLOBBERED
  5568	034002	321 12 0 00 033770 		JUMPL	AC+2,F32220		;LOOP ON ERROR SWITCH^
  5569
  5570			003223			ADR=ADR+1
  5571		777777	777737			XX=XX+XX+1
  5572						IFE	<XX-1>,<XX=-2>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0120

  5573
  5574					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5575						MOP1	(\ADR,XX,-1,0,0,0)^
  5576					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5577					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5578					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5579					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5580
  5581		777777	777737		F32230:	AA1=XX				;INITIAL C(AC)
  5582	034003	200 10 0 00 044051 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5583		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5584	034004	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5585			000000			AEE=0				;INITIAL C(E)
  5586	034005	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5587	034006	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5588			000000			AR1=0				;EXPECTED RESULT IN AC
  5589	034007	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5590	034010	003 10 0 00 032231 		ER3	AC,32231		;HIGH PRODUCT FAILED
  5591			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5592	034011	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5593	034012	004 11 0 00 032232 		ER4	AC+1,32232		;LOW PRODUCT FAILED
  5594			000000			AEE=0				;INITIAL C(E)
  5595	034013	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5596	034014	005 06 0 00 032233 		ER5	E,32233			;C(E) WAS CLOBBERED
  5597	034015	321 12 0 00 034003 		JUMPL	AC+2,F32230		;LOOP ON ERROR SWITCH^
  5598
  5599			003224			ADR=ADR+1
  5600		777777	777677			XX=XX+XX+1
  5601						IFE	<XX-1>,<XX=-2>
  5602
  5603					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5604						MOP1	(\ADR,XX,-1,0,0,0)^
  5605					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5606					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5607					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5608					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5609
  5610		777777	777677		F32240:	AA1=XX				;INITIAL C(AC)
  5611	034016	200 10 0 00 044052 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5612		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5613	034017	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5614			000000			AEE=0				;INITIAL C(E)
  5615	034020	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5616	034021	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5617			000000			AR1=0				;EXPECTED RESULT IN AC
  5618	034022	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5619	034023	003 10 0 00 032241 		ER3	AC,32241		;HIGH PRODUCT FAILED
  5620			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5621	034024	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5622	034025	004 11 0 00 032242 		ER4	AC+1,32242		;LOW PRODUCT FAILED
  5623			000000			AEE=0				;INITIAL C(E)
  5624	034026	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5625	034027	005 06 0 00 032243 		ER5	E,32243			;C(E) WAS CLOBBERED
  5626	034030	321 12 0 00 034016 		JUMPL	AC+2,F32240		;LOOP ON ERROR SWITCH^
  5627
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0121

  5628			003225			ADR=ADR+1
  5629		777777	777577			XX=XX+XX+1
  5630						IFE	<XX-1>,<XX=-2>
  5631
  5632					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5633						MOP1	(\ADR,XX,-1,0,0,0)^
  5634					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5635					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5636					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5637					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5638
  5639		777777	777577		F32250:	AA1=XX				;INITIAL C(AC)
  5640	034031	200 10 0 00 044053 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5641		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5642	034032	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5643			000000			AEE=0				;INITIAL C(E)
  5644	034033	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5645	034034	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5646			000000			AR1=0				;EXPECTED RESULT IN AC
  5647	034035	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5648	034036	003 10 0 00 032251 		ER3	AC,32251		;HIGH PRODUCT FAILED
  5649			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5650	034037	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5651	034040	004 11 0 00 032252 		ER4	AC+1,32252		;LOW PRODUCT FAILED
  5652			000000			AEE=0				;INITIAL C(E)
  5653	034041	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5654	034042	005 06 0 00 032253 		ER5	E,32253			;C(E) WAS CLOBBERED
  5655	034043	321 12 0 00 034031 		JUMPL	AC+2,F32250		;LOOP ON ERROR SWITCH^
  5656
  5657			003226			ADR=ADR+1
  5658		777777	777377			XX=XX+XX+1
  5659						IFE	<XX-1>,<XX=-2>
  5660
  5661					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5662						MOP1	(\ADR,XX,-1,0,0,0)^
  5663					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5664					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5665					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5666					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5667
  5668		777777	777377		F32260:	AA1=XX				;INITIAL C(AC)
  5669	034044	200 10 0 00 044054 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5670		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5671	034045	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5672			000000			AEE=0				;INITIAL C(E)
  5673	034046	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5674	034047	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5675			000000			AR1=0				;EXPECTED RESULT IN AC
  5676	034050	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5677	034051	003 10 0 00 032261 		ER3	AC,32261		;HIGH PRODUCT FAILED
  5678			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5679	034052	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5680	034053	004 11 0 00 032262 		ER4	AC+1,32262		;LOW PRODUCT FAILED
  5681			000000			AEE=0				;INITIAL C(E)
  5682	034054	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0122

  5683	034055	005 06 0 00 032263 		ER5	E,32263			;C(E) WAS CLOBBERED
  5684	034056	321 12 0 00 034044 		JUMPL	AC+2,F32260		;LOOP ON ERROR SWITCH^
  5685
  5686			003227			ADR=ADR+1
  5687		777777	776777			XX=XX+XX+1
  5688						IFE	<XX-1>,<XX=-2>
  5689
  5690					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5691						MOP1	(\ADR,XX,-1,0,0,0)^
  5692					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5693					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5694					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5695					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5696
  5697		777777	776777		F32270:	AA1=XX				;INITIAL C(AC)
  5698	034057	200 10 0 00 044055 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5699		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5700	034060	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5701			000000			AEE=0				;INITIAL C(E)
  5702	034061	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5703	034062	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5704			000000			AR1=0				;EXPECTED RESULT IN AC
  5705	034063	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5706	034064	003 10 0 00 032271 		ER3	AC,32271		;HIGH PRODUCT FAILED
  5707			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5708	034065	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5709	034066	004 11 0 00 032272 		ER4	AC+1,32272		;LOW PRODUCT FAILED
  5710			000000			AEE=0				;INITIAL C(E)
  5711	034067	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5712	034070	005 06 0 00 032273 		ER5	E,32273			;C(E) WAS CLOBBERED
  5713	034071	321 12 0 00 034057 		JUMPL	AC+2,F32270		;LOOP ON ERROR SWITCH^
  5714
  5715			003230			ADR=ADR+1
  5716		777777	775777			XX=XX+XX+1
  5717						IFE	<XX-1>,<XX=-2>
  5718
  5719					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5720						MOP1	(\ADR,XX,-1,0,0,0)^
  5721					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5722					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5723					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5724					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5725
  5726		777777	775777		F32300:	AA1=XX				;INITIAL C(AC)
  5727	034072	200 10 0 00 044056 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5728		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5729	034073	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5730			000000			AEE=0				;INITIAL C(E)
  5731	034074	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5732	034075	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5733			000000			AR1=0				;EXPECTED RESULT IN AC
  5734	034076	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5735	034077	003 10 0 00 032301 		ER3	AC,32301		;HIGH PRODUCT FAILED
  5736			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5737	034100	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0123

  5738	034101	004 11 0 00 032302 		ER4	AC+1,32302		;LOW PRODUCT FAILED
  5739			000000			AEE=0				;INITIAL C(E)
  5740	034102	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5741	034103	005 06 0 00 032303 		ER5	E,32303			;C(E) WAS CLOBBERED
  5742	034104	321 12 0 00 034072 		JUMPL	AC+2,F32300		;LOOP ON ERROR SWITCH^
  5743
  5744			003231			ADR=ADR+1
  5745		777777	773777			XX=XX+XX+1
  5746						IFE	<XX-1>,<XX=-2>
  5747
  5748					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5749						MOP1	(\ADR,XX,-1,0,0,0)^
  5750					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5751					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5752					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5753					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5754
  5755		777777	773777		F32310:	AA1=XX				;INITIAL C(AC)
  5756	034105	200 10 0 00 044057 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5757		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5758	034106	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5759			000000			AEE=0				;INITIAL C(E)
  5760	034107	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5761	034110	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5762			000000			AR1=0				;EXPECTED RESULT IN AC
  5763	034111	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5764	034112	003 10 0 00 032311 		ER3	AC,32311		;HIGH PRODUCT FAILED
  5765			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5766	034113	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5767	034114	004 11 0 00 032312 		ER4	AC+1,32312		;LOW PRODUCT FAILED
  5768			000000			AEE=0				;INITIAL C(E)
  5769	034115	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5770	034116	005 06 0 00 032313 		ER5	E,32313			;C(E) WAS CLOBBERED
  5771	034117	321 12 0 00 034105 		JUMPL	AC+2,F32310		;LOOP ON ERROR SWITCH^
  5772
  5773			003232			ADR=ADR+1
  5774		777777	767777			XX=XX+XX+1
  5775						IFE	<XX-1>,<XX=-2>
  5776
  5777					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5778						MOP1	(\ADR,XX,-1,0,0,0)^
  5779					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5780					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5781					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5782					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5783
  5784		777777	767777		F32320:	AA1=XX				;INITIAL C(AC)
  5785	034120	200 10 0 00 044060 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5786		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5787	034121	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5788			000000			AEE=0				;INITIAL C(E)
  5789	034122	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5790	034123	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5791			000000			AR1=0				;EXPECTED RESULT IN AC
  5792	034124	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0124

  5793	034125	003 10 0 00 032321 		ER3	AC,32321		;HIGH PRODUCT FAILED
  5794			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5795	034126	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5796	034127	004 11 0 00 032322 		ER4	AC+1,32322		;LOW PRODUCT FAILED
  5797			000000			AEE=0				;INITIAL C(E)
  5798	034130	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5799	034131	005 06 0 00 032323 		ER5	E,32323			;C(E) WAS CLOBBERED
  5800	034132	321 12 0 00 034120 		JUMPL	AC+2,F32320		;LOOP ON ERROR SWITCH^
  5801
  5802			003233			ADR=ADR+1
  5803		777777	757777			XX=XX+XX+1
  5804						IFE	<XX-1>,<XX=-2>
  5805
  5806					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5807						MOP1	(\ADR,XX,-1,0,0,0)^
  5808					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5809					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5810					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5811					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5812
  5813		777777	757777		F32330:	AA1=XX				;INITIAL C(AC)
  5814	034133	200 10 0 00 044061 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5815		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5816	034134	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5817			000000			AEE=0				;INITIAL C(E)
  5818	034135	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5819	034136	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5820			000000			AR1=0				;EXPECTED RESULT IN AC
  5821	034137	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5822	034140	003 10 0 00 032331 		ER3	AC,32331		;HIGH PRODUCT FAILED
  5823			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5824	034141	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5825	034142	004 11 0 00 032332 		ER4	AC+1,32332		;LOW PRODUCT FAILED
  5826			000000			AEE=0				;INITIAL C(E)
  5827	034143	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5828	034144	005 06 0 00 032333 		ER5	E,32333			;C(E) WAS CLOBBERED
  5829	034145	321 12 0 00 034133 		JUMPL	AC+2,F32330		;LOOP ON ERROR SWITCH^
  5830
  5831			003234			ADR=ADR+1
  5832		777777	737777			XX=XX+XX+1
  5833						IFE	<XX-1>,<XX=-2>
  5834
  5835					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5836						MOP1	(\ADR,XX,-1,0,0,0)^
  5837					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5838					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5839					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5840					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5841
  5842		777777	737777		F32340:	AA1=XX				;INITIAL C(AC)
  5843	034146	200 10 0 00 044062 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5844		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5845	034147	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5846			000000			AEE=0				;INITIAL C(E)
  5847	034150	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0125

  5848	034151	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5849			000000			AR1=0				;EXPECTED RESULT IN AC
  5850	034152	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5851	034153	003 10 0 00 032341 		ER3	AC,32341		;HIGH PRODUCT FAILED
  5852			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5853	034154	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5854	034155	004 11 0 00 032342 		ER4	AC+1,32342		;LOW PRODUCT FAILED
  5855			000000			AEE=0				;INITIAL C(E)
  5856	034156	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5857	034157	005 06 0 00 032343 		ER5	E,32343			;C(E) WAS CLOBBERED
  5858	034160	321 12 0 00 034146 		JUMPL	AC+2,F32340		;LOOP ON ERROR SWITCH^
  5859
  5860			003235			ADR=ADR+1
  5861		777777	677777			XX=XX+XX+1
  5862						IFE	<XX-1>,<XX=-2>
  5863
  5864					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5865						MOP1	(\ADR,XX,-1,0,0,0)^
  5866					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5867					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5868					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5869					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5870
  5871		777777	677777		F32350:	AA1=XX				;INITIAL C(AC)
  5872	034161	200 10 0 00 044063 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5873		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5874	034162	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5875			000000			AEE=0				;INITIAL C(E)
  5876	034163	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5877	034164	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5878			000000			AR1=0				;EXPECTED RESULT IN AC
  5879	034165	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5880	034166	003 10 0 00 032351 		ER3	AC,32351		;HIGH PRODUCT FAILED
  5881			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5882	034167	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5883	034170	004 11 0 00 032352 		ER4	AC+1,32352		;LOW PRODUCT FAILED
  5884			000000			AEE=0				;INITIAL C(E)
  5885	034171	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5886	034172	005 06 0 00 032353 		ER5	E,32353			;C(E) WAS CLOBBERED
  5887	034173	321 12 0 00 034161 		JUMPL	AC+2,F32350		;LOOP ON ERROR SWITCH^
  5888
  5889			003236			ADR=ADR+1
  5890		777777	577777			XX=XX+XX+1
  5891						IFE	<XX-1>,<XX=-2>
  5892
  5893					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5894						MOP1	(\ADR,XX,-1,0,0,0)^
  5895					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5896					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5897					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5898					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5899
  5900		777777	577777		F32360:	AA1=XX				;INITIAL C(AC)
  5901	034174	200 10 0 00 044064 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5902		777777	777777			AA2=-1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0126

  5903	034175	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5904			000000			AEE=0				;INITIAL C(E)
  5905	034176	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5906	034177	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5907			000000			AR1=0				;EXPECTED RESULT IN AC
  5908	034200	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5909	034201	003 10 0 00 032361 		ER3	AC,32361		;HIGH PRODUCT FAILED
  5910			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5911	034202	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5912	034203	004 11 0 00 032362 		ER4	AC+1,32362		;LOW PRODUCT FAILED
  5913			000000			AEE=0				;INITIAL C(E)
  5914	034204	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5915	034205	005 06 0 00 032363 		ER5	E,32363			;C(E) WAS CLOBBERED
  5916	034206	321 12 0 00 034174 		JUMPL	AC+2,F32360		;LOOP ON ERROR SWITCH^
  5917
  5918			003237			ADR=ADR+1
  5919		777777	377777			XX=XX+XX+1
  5920						IFE	<XX-1>,<XX=-2>
  5921
  5922					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5923						MOP1	(\ADR,XX,-1,0,0,0)^
  5924					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5925					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5926					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5927					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5928
  5929		777777	377777		F32370:	AA1=XX				;INITIAL C(AC)
  5930	034207	200 10 0 00 044065 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5931		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5932	034210	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5933			000000			AEE=0				;INITIAL C(E)
  5934	034211	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5935	034212	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5936			000000			AR1=0				;EXPECTED RESULT IN AC
  5937	034213	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5938	034214	003 10 0 00 032371 		ER3	AC,32371		;HIGH PRODUCT FAILED
  5939			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5940	034215	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5941	034216	004 11 0 00 032372 		ER4	AC+1,32372		;LOW PRODUCT FAILED
  5942			000000			AEE=0				;INITIAL C(E)
  5943	034217	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5944	034220	005 06 0 00 032373 		ER5	E,32373			;C(E) WAS CLOBBERED
  5945	034221	321 12 0 00 034207 		JUMPL	AC+2,F32370		;LOOP ON ERROR SWITCH^
  5946
  5947			003240			ADR=ADR+1
  5948		777776	777777			XX=XX+XX+1
  5949						IFE	<XX-1>,<XX=-2>
  5950
  5951					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5952						MOP1	(\ADR,XX,-1,0,0,0)^
  5953					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5954					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5955					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5956					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5957
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0127

  5958		777776	777777		F32400:	AA1=XX				;INITIAL C(AC)
  5959	034222	200 10 0 00 044066 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5960		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5961	034223	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5962			000000			AEE=0				;INITIAL C(E)
  5963	034224	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5964	034225	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5965			000000			AR1=0				;EXPECTED RESULT IN AC
  5966	034226	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5967	034227	003 10 0 00 032401 		ER3	AC,32401		;HIGH PRODUCT FAILED
  5968			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5969	034230	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5970	034231	004 11 0 00 032402 		ER4	AC+1,32402		;LOW PRODUCT FAILED
  5971			000000			AEE=0				;INITIAL C(E)
  5972	034232	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5973	034233	005 06 0 00 032403 		ER5	E,32403			;C(E) WAS CLOBBERED
  5974	034234	321 12 0 00 034222 		JUMPL	AC+2,F32400		;LOOP ON ERROR SWITCH^
  5975
  5976			003241			ADR=ADR+1
  5977		777775	777777			XX=XX+XX+1
  5978						IFE	<XX-1>,<XX=-2>
  5979
  5980					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  5981						MOP1	(\ADR,XX,-1,0,0,0)^
  5982					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  5983					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  5984					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  5985					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5986
  5987		777775	777777		F32410:	AA1=XX				;INITIAL C(AC)
  5988	034235	200 10 0 00 044067 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5989		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5990	034236	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5991			000000			AEE=0				;INITIAL C(E)
  5992	034237	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5993	034240	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5994			000000			AR1=0				;EXPECTED RESULT IN AC
  5995	034241	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5996	034242	003 10 0 00 032411 		ER3	AC,32411		;HIGH PRODUCT FAILED
  5997			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5998	034243	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5999	034244	004 11 0 00 032412 		ER4	AC+1,32412		;LOW PRODUCT FAILED
  6000			000000			AEE=0				;INITIAL C(E)
  6001	034245	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6002	034246	005 06 0 00 032413 		ER5	E,32413			;C(E) WAS CLOBBERED
  6003	034247	321 12 0 00 034235 		JUMPL	AC+2,F32410		;LOOP ON ERROR SWITCH^
  6004
  6005			003242			ADR=ADR+1
  6006		777773	777777			XX=XX+XX+1
  6007						IFE	<XX-1>,<XX=-2>
  6008
  6009					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6010						MOP1	(\ADR,XX,-1,0,0,0)^
  6011					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6012					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0128

  6013					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6014					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6015
  6016		777773	777777		F32420:	AA1=XX				;INITIAL C(AC)
  6017	034250	200 10 0 00 044070 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6018		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6019	034251	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6020			000000			AEE=0				;INITIAL C(E)
  6021	034252	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6022	034253	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6023			000000			AR1=0				;EXPECTED RESULT IN AC
  6024	034254	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6025	034255	003 10 0 00 032421 		ER3	AC,32421		;HIGH PRODUCT FAILED
  6026			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6027	034256	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6028	034257	004 11 0 00 032422 		ER4	AC+1,32422		;LOW PRODUCT FAILED
  6029			000000			AEE=0				;INITIAL C(E)
  6030	034260	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6031	034261	005 06 0 00 032423 		ER5	E,32423			;C(E) WAS CLOBBERED
  6032	034262	321 12 0 00 034250 		JUMPL	AC+2,F32420		;LOOP ON ERROR SWITCH^
  6033
  6034			003243			ADR=ADR+1
  6035		777767	777777			XX=XX+XX+1
  6036						IFE	<XX-1>,<XX=-2>
  6037
  6038					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6039						MOP1	(\ADR,XX,-1,0,0,0)^
  6040					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6041					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6042					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6043					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6044
  6045		777767	777777		F32430:	AA1=XX				;INITIAL C(AC)
  6046	034263	200 10 0 00 044071 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6047		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6048	034264	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6049			000000			AEE=0				;INITIAL C(E)
  6050	034265	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6051	034266	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6052			000000			AR1=0				;EXPECTED RESULT IN AC
  6053	034267	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6054	034270	003 10 0 00 032431 		ER3	AC,32431		;HIGH PRODUCT FAILED
  6055			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6056	034271	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6057	034272	004 11 0 00 032432 		ER4	AC+1,32432		;LOW PRODUCT FAILED
  6058			000000			AEE=0				;INITIAL C(E)
  6059	034273	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6060	034274	005 06 0 00 032433 		ER5	E,32433			;C(E) WAS CLOBBERED
  6061	034275	321 12 0 00 034263 		JUMPL	AC+2,F32430		;LOOP ON ERROR SWITCH^
  6062
  6063			003244			ADR=ADR+1
  6064		777757	777777			XX=XX+XX+1
  6065						IFE	<XX-1>,<XX=-2>
  6066
  6067					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0129

  6068						MOP1	(\ADR,XX,-1,0,0,0)^
  6069					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6070					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6071					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6072					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6073
  6074		777757	777777		F32440:	AA1=XX				;INITIAL C(AC)
  6075	034276	200 10 0 00 044072 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6076		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6077	034277	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6078			000000			AEE=0				;INITIAL C(E)
  6079	034300	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6080	034301	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6081			000000			AR1=0				;EXPECTED RESULT IN AC
  6082	034302	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6083	034303	003 10 0 00 032441 		ER3	AC,32441		;HIGH PRODUCT FAILED
  6084			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6085	034304	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6086	034305	004 11 0 00 032442 		ER4	AC+1,32442		;LOW PRODUCT FAILED
  6087			000000			AEE=0				;INITIAL C(E)
  6088	034306	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6089	034307	005 06 0 00 032443 		ER5	E,32443			;C(E) WAS CLOBBERED
  6090	034310	321 12 0 00 034276 		JUMPL	AC+2,F32440		;LOOP ON ERROR SWITCH^
  6091
  6092			003245			ADR=ADR+1
  6093		777737	777777			XX=XX+XX+1
  6094						IFE	<XX-1>,<XX=-2>
  6095
  6096					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6097						MOP1	(\ADR,XX,-1,0,0,0)^
  6098					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6099					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6100					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6101					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6102
  6103		777737	777777		F32450:	AA1=XX				;INITIAL C(AC)
  6104	034311	200 10 0 00 044073 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6105		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6106	034312	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6107			000000			AEE=0				;INITIAL C(E)
  6108	034313	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6109	034314	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6110			000000			AR1=0				;EXPECTED RESULT IN AC
  6111	034315	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6112	034316	003 10 0 00 032451 		ER3	AC,32451		;HIGH PRODUCT FAILED
  6113			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6114	034317	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6115	034320	004 11 0 00 032452 		ER4	AC+1,32452		;LOW PRODUCT FAILED
  6116			000000			AEE=0				;INITIAL C(E)
  6117	034321	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6118	034322	005 06 0 00 032453 		ER5	E,32453			;C(E) WAS CLOBBERED
  6119	034323	321 12 0 00 034311 		JUMPL	AC+2,F32450		;LOOP ON ERROR SWITCH^
  6120
  6121			003246			ADR=ADR+1
  6122		777677	777777			XX=XX+XX+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0130

  6123						IFE	<XX-1>,<XX=-2>
  6124
  6125					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6126						MOP1	(\ADR,XX,-1,0,0,0)^
  6127					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6128					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6129					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6130					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6131
  6132		777677	777777		F32460:	AA1=XX				;INITIAL C(AC)
  6133	034324	200 10 0 00 044074 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6134		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6135	034325	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6136			000000			AEE=0				;INITIAL C(E)
  6137	034326	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6138	034327	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6139			000000			AR1=0				;EXPECTED RESULT IN AC
  6140	034330	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6141	034331	003 10 0 00 032461 		ER3	AC,32461		;HIGH PRODUCT FAILED
  6142			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6143	034332	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6144	034333	004 11 0 00 032462 		ER4	AC+1,32462		;LOW PRODUCT FAILED
  6145			000000			AEE=0				;INITIAL C(E)
  6146	034334	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6147	034335	005 06 0 00 032463 		ER5	E,32463			;C(E) WAS CLOBBERED
  6148	034336	321 12 0 00 034324 		JUMPL	AC+2,F32460		;LOOP ON ERROR SWITCH^
  6149
  6150			003247			ADR=ADR+1
  6151		777577	777777			XX=XX+XX+1
  6152						IFE	<XX-1>,<XX=-2>
  6153
  6154					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6155						MOP1	(\ADR,XX,-1,0,0,0)^
  6156					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6157					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6158					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6159					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6160
  6161		777577	777777		F32470:	AA1=XX				;INITIAL C(AC)
  6162	034337	200 10 0 00 044075 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6163		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6164	034340	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6165			000000			AEE=0				;INITIAL C(E)
  6166	034341	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6167	034342	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6168			000000			AR1=0				;EXPECTED RESULT IN AC
  6169	034343	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6170	034344	003 10 0 00 032471 		ER3	AC,32471		;HIGH PRODUCT FAILED
  6171			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6172	034345	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6173	034346	004 11 0 00 032472 		ER4	AC+1,32472		;LOW PRODUCT FAILED
  6174			000000			AEE=0				;INITIAL C(E)
  6175	034347	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6176	034350	005 06 0 00 032473 		ER5	E,32473			;C(E) WAS CLOBBERED
  6177	034351	321 12 0 00 034337 		JUMPL	AC+2,F32470		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0131

  6178
  6179			003250			ADR=ADR+1
  6180		777377	777777			XX=XX+XX+1
  6181						IFE	<XX-1>,<XX=-2>
  6182
  6183					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6184						MOP1	(\ADR,XX,-1,0,0,0)^
  6185					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6186					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6187					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6188					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6189
  6190		777377	777777		F32500:	AA1=XX				;INITIAL C(AC)
  6191	034352	200 10 0 00 044076 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6192		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6193	034353	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6194			000000			AEE=0				;INITIAL C(E)
  6195	034354	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6196	034355	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6197			000000			AR1=0				;EXPECTED RESULT IN AC
  6198	034356	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6199	034357	003 10 0 00 032501 		ER3	AC,32501		;HIGH PRODUCT FAILED
  6200			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6201	034360	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6202	034361	004 11 0 00 032502 		ER4	AC+1,32502		;LOW PRODUCT FAILED
  6203			000000			AEE=0				;INITIAL C(E)
  6204	034362	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6205	034363	005 06 0 00 032503 		ER5	E,32503			;C(E) WAS CLOBBERED
  6206	034364	321 12 0 00 034352 		JUMPL	AC+2,F32500		;LOOP ON ERROR SWITCH^
  6207
  6208			003251			ADR=ADR+1
  6209		776777	777777			XX=XX+XX+1
  6210						IFE	<XX-1>,<XX=-2>
  6211
  6212					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6213						MOP1	(\ADR,XX,-1,0,0,0)^
  6214					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6215					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6216					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6217					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6218
  6219		776777	777777		F32510:	AA1=XX				;INITIAL C(AC)
  6220	034365	200 10 0 00 044077 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6221		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6222	034366	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6223			000000			AEE=0				;INITIAL C(E)
  6224	034367	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6225	034370	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6226			000000			AR1=0				;EXPECTED RESULT IN AC
  6227	034371	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6228	034372	003 10 0 00 032511 		ER3	AC,32511		;HIGH PRODUCT FAILED
  6229			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6230	034373	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6231	034374	004 11 0 00 032512 		ER4	AC+1,32512		;LOW PRODUCT FAILED
  6232			000000			AEE=0				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0132

  6233	034375	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6234	034376	005 06 0 00 032513 		ER5	E,32513			;C(E) WAS CLOBBERED
  6235	034377	321 12 0 00 034365 		JUMPL	AC+2,F32510		;LOOP ON ERROR SWITCH^
  6236
  6237			003252			ADR=ADR+1
  6238		775777	777777			XX=XX+XX+1
  6239						IFE	<XX-1>,<XX=-2>
  6240
  6241					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6242						MOP1	(\ADR,XX,-1,0,0,0)^
  6243					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6244					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6245					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6246					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6247
  6248		775777	777777		F32520:	AA1=XX				;INITIAL C(AC)
  6249	034400	200 10 0 00 044100 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6250		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6251	034401	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6252			000000			AEE=0				;INITIAL C(E)
  6253	034402	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6254	034403	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6255			000000			AR1=0				;EXPECTED RESULT IN AC
  6256	034404	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6257	034405	003 10 0 00 032521 		ER3	AC,32521		;HIGH PRODUCT FAILED
  6258			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6259	034406	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6260	034407	004 11 0 00 032522 		ER4	AC+1,32522		;LOW PRODUCT FAILED
  6261			000000			AEE=0				;INITIAL C(E)
  6262	034410	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6263	034411	005 06 0 00 032523 		ER5	E,32523			;C(E) WAS CLOBBERED
  6264	034412	321 12 0 00 034400 		JUMPL	AC+2,F32520		;LOOP ON ERROR SWITCH^
  6265
  6266			003253			ADR=ADR+1
  6267		773777	777777			XX=XX+XX+1
  6268						IFE	<XX-1>,<XX=-2>
  6269
  6270					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6271						MOP1	(\ADR,XX,-1,0,0,0)^
  6272					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6273					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6274					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6275					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6276
  6277		773777	777777		F32530:	AA1=XX				;INITIAL C(AC)
  6278	034413	200 10 0 00 044101 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6279		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6280	034414	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6281			000000			AEE=0				;INITIAL C(E)
  6282	034415	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6283	034416	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6284			000000			AR1=0				;EXPECTED RESULT IN AC
  6285	034417	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6286	034420	003 10 0 00 032531 		ER3	AC,32531		;HIGH PRODUCT FAILED
  6287			000000			AR2=0				;EXPECTED RESULT IN AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0133

  6288	034421	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6289	034422	004 11 0 00 032532 		ER4	AC+1,32532		;LOW PRODUCT FAILED
  6290			000000			AEE=0				;INITIAL C(E)
  6291	034423	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6292	034424	005 06 0 00 032533 		ER5	E,32533			;C(E) WAS CLOBBERED
  6293	034425	321 12 0 00 034413 		JUMPL	AC+2,F32530		;LOOP ON ERROR SWITCH^
  6294
  6295			003254			ADR=ADR+1
  6296		767777	777777			XX=XX+XX+1
  6297						IFE	<XX-1>,<XX=-2>
  6298
  6299					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6300						MOP1	(\ADR,XX,-1,0,0,0)^
  6301					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6302					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6303					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6304					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6305
  6306		767777	777777		F32540:	AA1=XX				;INITIAL C(AC)
  6307	034426	200 10 0 00 044102 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6308		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6309	034427	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6310			000000			AEE=0				;INITIAL C(E)
  6311	034430	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6312	034431	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6313			000000			AR1=0				;EXPECTED RESULT IN AC
  6314	034432	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6315	034433	003 10 0 00 032541 		ER3	AC,32541		;HIGH PRODUCT FAILED
  6316			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6317	034434	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6318	034435	004 11 0 00 032542 		ER4	AC+1,32542		;LOW PRODUCT FAILED
  6319			000000			AEE=0				;INITIAL C(E)
  6320	034436	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6321	034437	005 06 0 00 032543 		ER5	E,32543			;C(E) WAS CLOBBERED
  6322	034440	321 12 0 00 034426 		JUMPL	AC+2,F32540		;LOOP ON ERROR SWITCH^
  6323
  6324			003255			ADR=ADR+1
  6325		757777	777777			XX=XX+XX+1
  6326						IFE	<XX-1>,<XX=-2>
  6327
  6328					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6329						MOP1	(\ADR,XX,-1,0,0,0)^
  6330					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6331					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6332					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6333					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6334
  6335		757777	777777		F32550:	AA1=XX				;INITIAL C(AC)
  6336	034441	200 10 0 00 044103 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6337		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6338	034442	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6339			000000			AEE=0				;INITIAL C(E)
  6340	034443	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6341	034444	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6342			000000			AR1=0				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0134

  6343	034445	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6344	034446	003 10 0 00 032551 		ER3	AC,32551		;HIGH PRODUCT FAILED
  6345			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6346	034447	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6347	034450	004 11 0 00 032552 		ER4	AC+1,32552		;LOW PRODUCT FAILED
  6348			000000			AEE=0				;INITIAL C(E)
  6349	034451	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6350	034452	005 06 0 00 032553 		ER5	E,32553			;C(E) WAS CLOBBERED
  6351	034453	321 12 0 00 034441 		JUMPL	AC+2,F32550		;LOOP ON ERROR SWITCH^
  6352
  6353			003256			ADR=ADR+1
  6354		737777	777777			XX=XX+XX+1
  6355						IFE	<XX-1>,<XX=-2>
  6356
  6357					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6358						MOP1	(\ADR,XX,-1,0,0,0)^
  6359					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6360					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6361					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6362					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6363
  6364		737777	777777		F32560:	AA1=XX				;INITIAL C(AC)
  6365	034454	200 10 0 00 044104 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6366		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6367	034455	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6368			000000			AEE=0				;INITIAL C(E)
  6369	034456	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6370	034457	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6371			000000			AR1=0				;EXPECTED RESULT IN AC
  6372	034460	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6373	034461	003 10 0 00 032561 		ER3	AC,32561		;HIGH PRODUCT FAILED
  6374			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6375	034462	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6376	034463	004 11 0 00 032562 		ER4	AC+1,32562		;LOW PRODUCT FAILED
  6377			000000			AEE=0				;INITIAL C(E)
  6378	034464	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6379	034465	005 06 0 00 032563 		ER5	E,32563			;C(E) WAS CLOBBERED
  6380	034466	321 12 0 00 034454 		JUMPL	AC+2,F32560		;LOOP ON ERROR SWITCH^
  6381
  6382			003257			ADR=ADR+1
  6383		677777	777777			XX=XX+XX+1
  6384						IFE	<XX-1>,<XX=-2>
  6385
  6386					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6387						MOP1	(\ADR,XX,-1,0,0,0)^
  6388					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6389					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6390					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6391					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6392
  6393		677777	777777		F32570:	AA1=XX				;INITIAL C(AC)
  6394	034467	200 10 0 00 044105 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6395		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6396	034470	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6397			000000			AEE=0				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0135

  6398	034471	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6399	034472	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6400			000000			AR1=0				;EXPECTED RESULT IN AC
  6401	034473	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6402	034474	003 10 0 00 032571 		ER3	AC,32571		;HIGH PRODUCT FAILED
  6403			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6404	034475	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6405	034476	004 11 0 00 032572 		ER4	AC+1,32572		;LOW PRODUCT FAILED
  6406			000000			AEE=0				;INITIAL C(E)
  6407	034477	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6408	034500	005 06 0 00 032573 		ER5	E,32573			;C(E) WAS CLOBBERED
  6409	034501	321 12 0 00 034467 		JUMPL	AC+2,F32570		;LOOP ON ERROR SWITCH^
  6410
  6411			003260			ADR=ADR+1
  6412		577777	777777			XX=XX+XX+1
  6413						IFE	<XX-1>,<XX=-2>
  6414
  6415					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6416						MOP1	(\ADR,XX,-1,0,0,0)^
  6417					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6418					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6419					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6420					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6421
  6422		577777	777777		F32600:	AA1=XX				;INITIAL C(AC)
  6423	034502	200 10 0 00 044106 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6424		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6425	034503	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6426			000000			AEE=0				;INITIAL C(E)
  6427	034504	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6428	034505	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6429			000000			AR1=0				;EXPECTED RESULT IN AC
  6430	034506	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6431	034507	003 10 0 00 032601 		ER3	AC,32601		;HIGH PRODUCT FAILED
  6432			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6433	034510	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6434	034511	004 11 0 00 032602 		ER4	AC+1,32602		;LOW PRODUCT FAILED
  6435			000000			AEE=0				;INITIAL C(E)
  6436	034512	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6437	034513	005 06 0 00 032603 		ER5	E,32603			;C(E) WAS CLOBBERED
  6438	034514	321 12 0 00 034502 		JUMPL	AC+2,F32600		;LOOP ON ERROR SWITCH^
  6439
  6440			003261			ADR=ADR+1
  6441		377777	777777			XX=XX+XX+1
  6442						IFE	<XX-1>,<XX=-2>
  6443
  6444					;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
  6445						MOP1	(\ADR,XX,-1,0,0,0)^
  6446					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  6447					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6448					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6449					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6450
  6451		377777	777777		F32610:	AA1=XX				;INITIAL C(AC)
  6452	034515	200 10 0 00 044107 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0136

  6453		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6454	034516	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6455			000000			AEE=0				;INITIAL C(E)
  6456	034517	200 06 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6457	034520	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6458			000000			AR1=0				;EXPECTED RESULT IN AC
  6459	034521	312 10 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6460	034522	003 10 0 00 032611 		ER3	AC,32611		;HIGH PRODUCT FAILED
  6461			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6462	034523	312 11 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6463	034524	004 11 0 00 032612 		ER4	AC+1,32612		;LOW PRODUCT FAILED
  6464			000000			AEE=0				;INITIAL C(E)
  6465	034525	312 06 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6466	034526	005 06 0 00 032613 		ER5	E,32613			;C(E) WAS CLOBBERED
  6467	034527	321 12 0 00 034515 		JUMPL	AC+2,F32610		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0137

  6468			000007			AC=7
  6469			000005			E=<AC-2>&17
  6470						SAVEAC	(1,1)^
  6471	034530	201 11 0 00 034530 		MOVEI	AC+2,.		;SAVE TEST PC
  6472	034531	202 11 0 00 030051 		MOVEM	AC+2,TESTPC
  6473	034532	201 11 0 00 000011 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  6474	034533	202 11 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  6475			003262			ADR=ADR+1
  6476
  6477					;MULTIPLY 0 BY -1 TO GET PRODUCT OF 0
  6478						MOP1	(\ADR,-1,-1,0,0,0)^
  6479					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
  6480					;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6481					;AND E AGAINST [0], [0] AND [0] RESPECTIVELY.
  6482					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6483
  6484		777777	777777		F32620:	AA1=-1				;INITIAL C(AC)
  6485	034534	200 07 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  6486		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6487	034535	200 10 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6488			000000			AEE=0				;INITIAL C(E)
  6489	034536	200 05 0 00 043776 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6490	034537	224 07 0 00 000005 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6491			000000			AR1=0				;EXPECTED RESULT IN AC
  6492	034540	312 07 0 00 043776 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6493	034541	003 07 0 00 032621 		ER3	AC,32621		;HIGH PRODUCT FAILED
  6494			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6495	034542	312 10 0 00 043776 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6496	034543	004 10 0 00 032622 		ER4	AC+1,32622		;LOW PRODUCT FAILED
  6497			000000			AEE=0				;INITIAL C(E)
  6498	034544	312 05 0 00 043776 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6499	034545	005 05 0 00 032623 		ER5	E,32623			;C(E) WAS CLOBBERED
  6500	034546	321 11 0 00 034534 		JUMPL	AC+2,F32620		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0138

  6501					SUBTTL	DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT
  6502
  6503			000006			AC=6
  6504			000004			E=<AC-2>&17
  6505						SAVEAC	(1,1)^
  6506	034547	201 10 0 00 034547 		MOVEI	AC+2,.		;SAVE TEST PC
  6507	034550	202 10 0 00 030051 		MOVEM	AC+2,TESTPC
  6508	034551	201 10 0 00 000010 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  6509	034552	202 10 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  6510
  6511			000000			XX=0
  6512
  6513						REPEAT	^D36, <
  6514						ADR=ADR+1
  6515						XX=XX+XX
  6516						IFE	XX,<XX=1>
  6517					
  6518					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6519						IFG	XX,<V1=0>
  6520						IFL	XX,<V1=-1>
  6521						MOP1	(\ADR,1,-1,XX,V1,XX)>
  6522
  6523			003263			ADR=ADR+1
  6524			000000			XX=XX+XX
  6525			000001			IFE	XX,<XX=1>
  6526
  6527					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6528			000000			IFG	XX,<V1=0>
  6529						IFL	XX,<V1=-1>
  6530						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6531					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6532					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6533					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6534					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6535
  6536			000001		F32630:	AA1=1				;INITIAL C(AC)
  6537	034553	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6538		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6539	034554	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6540			000001			AEE=XX				;INITIAL C(E)
  6541	034555	200 04 0 00 044000 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6542	034556	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6543			000000			AR1=V1				;EXPECTED RESULT IN AC
  6544	034557	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6545	034560	003 06 0 00 032631 		ER3	AC,32631		;HIGH PRODUCT FAILED
  6546			000001			AR2=XX				;EXPECTED RESULT IN AC+1
  6547	034561	312 07 0 00 044000 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6548	034562	004 07 0 00 032632 		ER4	AC+1,32632		;LOW PRODUCT FAILED
  6549			000001			AEE=XX				;INITIAL C(E)
  6550	034563	312 04 0 00 044000 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6551	034564	005 04 0 00 032633 		ER5	E,32633			;C(E) WAS CLOBBERED
  6552	034565	321 10 0 00 034553 		JUMPL	AC+2,F32630		;LOOP ON ERROR SWITCH^
  6553
  6554			003264			ADR=ADR+1
  6555			000002			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0139

  6556						IFE	XX,<XX=1>
  6557
  6558					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6559			000000			IFG	XX,<V1=0>
  6560						IFL	XX,<V1=-1>
  6561						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6562					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6563					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6564					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6565					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6566
  6567			000001		F32640:	AA1=1				;INITIAL C(AC)
  6568	034566	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6569		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6570	034567	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6571			000002			AEE=XX				;INITIAL C(E)
  6572	034570	200 04 0 00 044001 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6573	034571	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6574			000000			AR1=V1				;EXPECTED RESULT IN AC
  6575	034572	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6576	034573	003 06 0 00 032641 		ER3	AC,32641		;HIGH PRODUCT FAILED
  6577			000002			AR2=XX				;EXPECTED RESULT IN AC+1
  6578	034574	312 07 0 00 044001 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6579	034575	004 07 0 00 032642 		ER4	AC+1,32642		;LOW PRODUCT FAILED
  6580			000002			AEE=XX				;INITIAL C(E)
  6581	034576	312 04 0 00 044001 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6582	034577	005 04 0 00 032643 		ER5	E,32643			;C(E) WAS CLOBBERED
  6583	034600	321 10 0 00 034566 		JUMPL	AC+2,F32640		;LOOP ON ERROR SWITCH^
  6584
  6585			003265			ADR=ADR+1
  6586			000004			XX=XX+XX
  6587						IFE	XX,<XX=1>
  6588
  6589					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6590			000000			IFG	XX,<V1=0>
  6591						IFL	XX,<V1=-1>
  6592						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6593					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6594					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6595					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6596					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6597
  6598			000001		F32650:	AA1=1				;INITIAL C(AC)
  6599	034601	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6600		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6601	034602	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6602			000004			AEE=XX				;INITIAL C(E)
  6603	034603	200 04 0 00 044002 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6604	034604	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6605			000000			AR1=V1				;EXPECTED RESULT IN AC
  6606	034605	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6607	034606	003 06 0 00 032651 		ER3	AC,32651		;HIGH PRODUCT FAILED
  6608			000004			AR2=XX				;EXPECTED RESULT IN AC+1
  6609	034607	312 07 0 00 044002 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6610	034610	004 07 0 00 032652 		ER4	AC+1,32652		;LOW PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0140

  6611			000004			AEE=XX				;INITIAL C(E)
  6612	034611	312 04 0 00 044002 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6613	034612	005 04 0 00 032653 		ER5	E,32653			;C(E) WAS CLOBBERED
  6614	034613	321 10 0 00 034601 		JUMPL	AC+2,F32650		;LOOP ON ERROR SWITCH^
  6615
  6616			003266			ADR=ADR+1
  6617			000010			XX=XX+XX
  6618						IFE	XX,<XX=1>
  6619
  6620					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6621			000000			IFG	XX,<V1=0>
  6622						IFL	XX,<V1=-1>
  6623						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6624					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6625					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6626					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6627					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6628
  6629			000001		F32660:	AA1=1				;INITIAL C(AC)
  6630	034614	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6631		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6632	034615	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6633			000010			AEE=XX				;INITIAL C(E)
  6634	034616	200 04 0 00 044003 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6635	034617	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6636			000000			AR1=V1				;EXPECTED RESULT IN AC
  6637	034620	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6638	034621	003 06 0 00 032661 		ER3	AC,32661		;HIGH PRODUCT FAILED
  6639			000010			AR2=XX				;EXPECTED RESULT IN AC+1
  6640	034622	312 07 0 00 044003 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6641	034623	004 07 0 00 032662 		ER4	AC+1,32662		;LOW PRODUCT FAILED
  6642			000010			AEE=XX				;INITIAL C(E)
  6643	034624	312 04 0 00 044003 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6644	034625	005 04 0 00 032663 		ER5	E,32663			;C(E) WAS CLOBBERED
  6645	034626	321 10 0 00 034614 		JUMPL	AC+2,F32660		;LOOP ON ERROR SWITCH^
  6646
  6647			003267			ADR=ADR+1
  6648			000020			XX=XX+XX
  6649						IFE	XX,<XX=1>
  6650
  6651					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6652			000000			IFG	XX,<V1=0>
  6653						IFL	XX,<V1=-1>
  6654						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6655					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6656					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6657					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6658					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6659
  6660			000001		F32670:	AA1=1				;INITIAL C(AC)
  6661	034627	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6662		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6663	034630	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6664			000020			AEE=XX				;INITIAL C(E)
  6665	034631	200 04 0 00 044004 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0141

  6666	034632	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6667			000000			AR1=V1				;EXPECTED RESULT IN AC
  6668	034633	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6669	034634	003 06 0 00 032671 		ER3	AC,32671		;HIGH PRODUCT FAILED
  6670			000020			AR2=XX				;EXPECTED RESULT IN AC+1
  6671	034635	312 07 0 00 044004 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6672	034636	004 07 0 00 032672 		ER4	AC+1,32672		;LOW PRODUCT FAILED
  6673			000020			AEE=XX				;INITIAL C(E)
  6674	034637	312 04 0 00 044004 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6675	034640	005 04 0 00 032673 		ER5	E,32673			;C(E) WAS CLOBBERED
  6676	034641	321 10 0 00 034627 		JUMPL	AC+2,F32670		;LOOP ON ERROR SWITCH^
  6677
  6678			003270			ADR=ADR+1
  6679			000040			XX=XX+XX
  6680						IFE	XX,<XX=1>
  6681
  6682					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6683			000000			IFG	XX,<V1=0>
  6684						IFL	XX,<V1=-1>
  6685						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6686					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6687					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6688					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6689					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6690
  6691			000001		F32700:	AA1=1				;INITIAL C(AC)
  6692	034642	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6693		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6694	034643	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6695			000040			AEE=XX				;INITIAL C(E)
  6696	034644	200 04 0 00 044005 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6697	034645	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6698			000000			AR1=V1				;EXPECTED RESULT IN AC
  6699	034646	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6700	034647	003 06 0 00 032701 		ER3	AC,32701		;HIGH PRODUCT FAILED
  6701			000040			AR2=XX				;EXPECTED RESULT IN AC+1
  6702	034650	312 07 0 00 044005 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6703	034651	004 07 0 00 032702 		ER4	AC+1,32702		;LOW PRODUCT FAILED
  6704			000040			AEE=XX				;INITIAL C(E)
  6705	034652	312 04 0 00 044005 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6706	034653	005 04 0 00 032703 		ER5	E,32703			;C(E) WAS CLOBBERED
  6707	034654	321 10 0 00 034642 		JUMPL	AC+2,F32700		;LOOP ON ERROR SWITCH^
  6708
  6709			003271			ADR=ADR+1
  6710			000100			XX=XX+XX
  6711						IFE	XX,<XX=1>
  6712
  6713					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6714			000000			IFG	XX,<V1=0>
  6715						IFL	XX,<V1=-1>
  6716						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6717					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6718					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6719					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6720					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0142

  6721
  6722			000001		F32710:	AA1=1				;INITIAL C(AC)
  6723	034655	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6724		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6725	034656	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6726			000100			AEE=XX				;INITIAL C(E)
  6727	034657	200 04 0 00 044006 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6728	034660	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6729			000000			AR1=V1				;EXPECTED RESULT IN AC
  6730	034661	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6731	034662	003 06 0 00 032711 		ER3	AC,32711		;HIGH PRODUCT FAILED
  6732			000100			AR2=XX				;EXPECTED RESULT IN AC+1
  6733	034663	312 07 0 00 044006 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6734	034664	004 07 0 00 032712 		ER4	AC+1,32712		;LOW PRODUCT FAILED
  6735			000100			AEE=XX				;INITIAL C(E)
  6736	034665	312 04 0 00 044006 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6737	034666	005 04 0 00 032713 		ER5	E,32713			;C(E) WAS CLOBBERED
  6738	034667	321 10 0 00 034655 		JUMPL	AC+2,F32710		;LOOP ON ERROR SWITCH^
  6739
  6740			003272			ADR=ADR+1
  6741			000200			XX=XX+XX
  6742						IFE	XX,<XX=1>
  6743
  6744					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6745			000000			IFG	XX,<V1=0>
  6746						IFL	XX,<V1=-1>
  6747						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6748					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6749					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6750					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6751					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6752
  6753			000001		F32720:	AA1=1				;INITIAL C(AC)
  6754	034670	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6755		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6756	034671	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6757			000200			AEE=XX				;INITIAL C(E)
  6758	034672	200 04 0 00 044007 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6759	034673	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6760			000000			AR1=V1				;EXPECTED RESULT IN AC
  6761	034674	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6762	034675	003 06 0 00 032721 		ER3	AC,32721		;HIGH PRODUCT FAILED
  6763			000200			AR2=XX				;EXPECTED RESULT IN AC+1
  6764	034676	312 07 0 00 044007 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6765	034677	004 07 0 00 032722 		ER4	AC+1,32722		;LOW PRODUCT FAILED
  6766			000200			AEE=XX				;INITIAL C(E)
  6767	034700	312 04 0 00 044007 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6768	034701	005 04 0 00 032723 		ER5	E,32723			;C(E) WAS CLOBBERED
  6769	034702	321 10 0 00 034670 		JUMPL	AC+2,F32720		;LOOP ON ERROR SWITCH^
  6770
  6771			003273			ADR=ADR+1
  6772			000400			XX=XX+XX
  6773						IFE	XX,<XX=1>
  6774
  6775					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0143

  6776			000000			IFG	XX,<V1=0>
  6777						IFL	XX,<V1=-1>
  6778						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6779					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6780					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6781					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6782					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6783
  6784			000001		F32730:	AA1=1				;INITIAL C(AC)
  6785	034703	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6786		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6787	034704	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6788			000400			AEE=XX				;INITIAL C(E)
  6789	034705	200 04 0 00 044010 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6790	034706	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6791			000000			AR1=V1				;EXPECTED RESULT IN AC
  6792	034707	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6793	034710	003 06 0 00 032731 		ER3	AC,32731		;HIGH PRODUCT FAILED
  6794			000400			AR2=XX				;EXPECTED RESULT IN AC+1
  6795	034711	312 07 0 00 044010 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6796	034712	004 07 0 00 032732 		ER4	AC+1,32732		;LOW PRODUCT FAILED
  6797			000400			AEE=XX				;INITIAL C(E)
  6798	034713	312 04 0 00 044010 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6799	034714	005 04 0 00 032733 		ER5	E,32733			;C(E) WAS CLOBBERED
  6800	034715	321 10 0 00 034703 		JUMPL	AC+2,F32730		;LOOP ON ERROR SWITCH^
  6801
  6802			003274			ADR=ADR+1
  6803			001000			XX=XX+XX
  6804						IFE	XX,<XX=1>
  6805
  6806					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6807			000000			IFG	XX,<V1=0>
  6808						IFL	XX,<V1=-1>
  6809						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6810					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6811					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6812					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6813					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6814
  6815			000001		F32740:	AA1=1				;INITIAL C(AC)
  6816	034716	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6817		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6818	034717	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6819			001000			AEE=XX				;INITIAL C(E)
  6820	034720	200 04 0 00 044011 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6821	034721	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6822			000000			AR1=V1				;EXPECTED RESULT IN AC
  6823	034722	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6824	034723	003 06 0 00 032741 		ER3	AC,32741		;HIGH PRODUCT FAILED
  6825			001000			AR2=XX				;EXPECTED RESULT IN AC+1
  6826	034724	312 07 0 00 044011 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6827	034725	004 07 0 00 032742 		ER4	AC+1,32742		;LOW PRODUCT FAILED
  6828			001000			AEE=XX				;INITIAL C(E)
  6829	034726	312 04 0 00 044011 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6830	034727	005 04 0 00 032743 		ER5	E,32743			;C(E) WAS CLOBBERED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0144

  6831	034730	321 10 0 00 034716 		JUMPL	AC+2,F32740		;LOOP ON ERROR SWITCH^
  6832
  6833			003275			ADR=ADR+1
  6834			002000			XX=XX+XX
  6835						IFE	XX,<XX=1>
  6836
  6837					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6838			000000			IFG	XX,<V1=0>
  6839						IFL	XX,<V1=-1>
  6840						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6841					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6842					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6843					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6844					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6845
  6846			000001		F32750:	AA1=1				;INITIAL C(AC)
  6847	034731	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6848		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6849	034732	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6850			002000			AEE=XX				;INITIAL C(E)
  6851	034733	200 04 0 00 044012 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6852	034734	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6853			000000			AR1=V1				;EXPECTED RESULT IN AC
  6854	034735	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6855	034736	003 06 0 00 032751 		ER3	AC,32751		;HIGH PRODUCT FAILED
  6856			002000			AR2=XX				;EXPECTED RESULT IN AC+1
  6857	034737	312 07 0 00 044012 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6858	034740	004 07 0 00 032752 		ER4	AC+1,32752		;LOW PRODUCT FAILED
  6859			002000			AEE=XX				;INITIAL C(E)
  6860	034741	312 04 0 00 044012 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6861	034742	005 04 0 00 032753 		ER5	E,32753			;C(E) WAS CLOBBERED
  6862	034743	321 10 0 00 034731 		JUMPL	AC+2,F32750		;LOOP ON ERROR SWITCH^
  6863
  6864			003276			ADR=ADR+1
  6865			004000			XX=XX+XX
  6866						IFE	XX,<XX=1>
  6867
  6868					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6869			000000			IFG	XX,<V1=0>
  6870						IFL	XX,<V1=-1>
  6871						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6872					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6873					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6874					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6875					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6876
  6877			000001		F32760:	AA1=1				;INITIAL C(AC)
  6878	034744	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6879		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6880	034745	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6881			004000			AEE=XX				;INITIAL C(E)
  6882	034746	200 04 0 00 044013 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6883	034747	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6884			000000			AR1=V1				;EXPECTED RESULT IN AC
  6885	034750	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0145

  6886	034751	003 06 0 00 032761 		ER3	AC,32761		;HIGH PRODUCT FAILED
  6887			004000			AR2=XX				;EXPECTED RESULT IN AC+1
  6888	034752	312 07 0 00 044013 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6889	034753	004 07 0 00 032762 		ER4	AC+1,32762		;LOW PRODUCT FAILED
  6890			004000			AEE=XX				;INITIAL C(E)
  6891	034754	312 04 0 00 044013 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6892	034755	005 04 0 00 032763 		ER5	E,32763			;C(E) WAS CLOBBERED
  6893	034756	321 10 0 00 034744 		JUMPL	AC+2,F32760		;LOOP ON ERROR SWITCH^
  6894
  6895			003277			ADR=ADR+1
  6896			010000			XX=XX+XX
  6897						IFE	XX,<XX=1>
  6898
  6899					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6900			000000			IFG	XX,<V1=0>
  6901						IFL	XX,<V1=-1>
  6902						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6903					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6904					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6905					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6906					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6907
  6908			000001		F32770:	AA1=1				;INITIAL C(AC)
  6909	034757	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6910		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6911	034760	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6912			010000			AEE=XX				;INITIAL C(E)
  6913	034761	200 04 0 00 044014 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6914	034762	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6915			000000			AR1=V1				;EXPECTED RESULT IN AC
  6916	034763	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6917	034764	003 06 0 00 032771 		ER3	AC,32771		;HIGH PRODUCT FAILED
  6918			010000			AR2=XX				;EXPECTED RESULT IN AC+1
  6919	034765	312 07 0 00 044014 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6920	034766	004 07 0 00 032772 		ER4	AC+1,32772		;LOW PRODUCT FAILED
  6921			010000			AEE=XX				;INITIAL C(E)
  6922	034767	312 04 0 00 044014 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6923	034770	005 04 0 00 032773 		ER5	E,32773			;C(E) WAS CLOBBERED
  6924	034771	321 10 0 00 034757 		JUMPL	AC+2,F32770		;LOOP ON ERROR SWITCH^
  6925
  6926			003300			ADR=ADR+1
  6927			020000			XX=XX+XX
  6928						IFE	XX,<XX=1>
  6929
  6930					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6931			000000			IFG	XX,<V1=0>
  6932						IFL	XX,<V1=-1>
  6933						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6934					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6935					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6936					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6937					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6938
  6939			000001		F33000:	AA1=1				;INITIAL C(AC)
  6940	034772	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0146

  6941		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6942	034773	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6943			020000			AEE=XX				;INITIAL C(E)
  6944	034774	200 04 0 00 044015 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6945	034775	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6946			000000			AR1=V1				;EXPECTED RESULT IN AC
  6947	034776	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6948	034777	003 06 0 00 033001 		ER3	AC,33001		;HIGH PRODUCT FAILED
  6949			020000			AR2=XX				;EXPECTED RESULT IN AC+1
  6950	035000	312 07 0 00 044015 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6951	035001	004 07 0 00 033002 		ER4	AC+1,33002		;LOW PRODUCT FAILED
  6952			020000			AEE=XX				;INITIAL C(E)
  6953	035002	312 04 0 00 044015 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6954	035003	005 04 0 00 033003 		ER5	E,33003			;C(E) WAS CLOBBERED
  6955	035004	321 10 0 00 034772 		JUMPL	AC+2,F33000		;LOOP ON ERROR SWITCH^
  6956
  6957			003301			ADR=ADR+1
  6958			040000			XX=XX+XX
  6959						IFE	XX,<XX=1>
  6960
  6961					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6962			000000			IFG	XX,<V1=0>
  6963						IFL	XX,<V1=-1>
  6964						MOP1	(\ADR,1,-1,XX,V1,XX)^
  6965					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6966					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6967					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6968					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  6969
  6970			000001		F33010:	AA1=1				;INITIAL C(AC)
  6971	035005	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6972		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6973	035006	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6974			040000			AEE=XX				;INITIAL C(E)
  6975	035007	200 04 0 00 044016 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6976	035010	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6977			000000			AR1=V1				;EXPECTED RESULT IN AC
  6978	035011	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6979	035012	003 06 0 00 033011 		ER3	AC,33011		;HIGH PRODUCT FAILED
  6980			040000			AR2=XX				;EXPECTED RESULT IN AC+1
  6981	035013	312 07 0 00 044016 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6982	035014	004 07 0 00 033012 		ER4	AC+1,33012		;LOW PRODUCT FAILED
  6983			040000			AEE=XX				;INITIAL C(E)
  6984	035015	312 04 0 00 044016 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6985	035016	005 04 0 00 033013 		ER5	E,33013			;C(E) WAS CLOBBERED
  6986	035017	321 10 0 00 035005 		JUMPL	AC+2,F33010		;LOOP ON ERROR SWITCH^
  6987
  6988			003302			ADR=ADR+1
  6989			100000			XX=XX+XX
  6990						IFE	XX,<XX=1>
  6991
  6992					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  6993			000000			IFG	XX,<V1=0>
  6994						IFL	XX,<V1=-1>
  6995						MOP1	(\ADR,1,-1,XX,V1,XX)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0147

  6996					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  6997					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  6998					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  6999					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7000
  7001			000001		F33020:	AA1=1				;INITIAL C(AC)
  7002	035020	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7003		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7004	035021	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7005			100000			AEE=XX				;INITIAL C(E)
  7006	035022	200 04 0 00 044017 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7007	035023	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7008			000000			AR1=V1				;EXPECTED RESULT IN AC
  7009	035024	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7010	035025	003 06 0 00 033021 		ER3	AC,33021		;HIGH PRODUCT FAILED
  7011			100000			AR2=XX				;EXPECTED RESULT IN AC+1
  7012	035026	312 07 0 00 044017 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7013	035027	004 07 0 00 033022 		ER4	AC+1,33022		;LOW PRODUCT FAILED
  7014			100000			AEE=XX				;INITIAL C(E)
  7015	035030	312 04 0 00 044017 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7016	035031	005 04 0 00 033023 		ER5	E,33023			;C(E) WAS CLOBBERED
  7017	035032	321 10 0 00 035020 		JUMPL	AC+2,F33020		;LOOP ON ERROR SWITCH^
  7018
  7019			003303			ADR=ADR+1
  7020			200000			XX=XX+XX
  7021						IFE	XX,<XX=1>
  7022
  7023					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7024			000000			IFG	XX,<V1=0>
  7025						IFL	XX,<V1=-1>
  7026						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7027					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7028					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7029					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7030					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7031
  7032			000001		F33030:	AA1=1				;INITIAL C(AC)
  7033	035033	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7034		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7035	035034	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7036			200000			AEE=XX				;INITIAL C(E)
  7037	035035	200 04 0 00 044020 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7038	035036	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7039			000000			AR1=V1				;EXPECTED RESULT IN AC
  7040	035037	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7041	035040	003 06 0 00 033031 		ER3	AC,33031		;HIGH PRODUCT FAILED
  7042			200000			AR2=XX				;EXPECTED RESULT IN AC+1
  7043	035041	312 07 0 00 044020 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7044	035042	004 07 0 00 033032 		ER4	AC+1,33032		;LOW PRODUCT FAILED
  7045			200000			AEE=XX				;INITIAL C(E)
  7046	035043	312 04 0 00 044020 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7047	035044	005 04 0 00 033033 		ER5	E,33033			;C(E) WAS CLOBBERED
  7048	035045	321 10 0 00 035033 		JUMPL	AC+2,F33030		;LOOP ON ERROR SWITCH^
  7049
  7050			003304			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0148

  7051			400000			XX=XX+XX
  7052						IFE	XX,<XX=1>
  7053
  7054					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7055			000000			IFG	XX,<V1=0>
  7056						IFL	XX,<V1=-1>
  7057						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7058					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7059					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7060					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7061					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7062
  7063			000001		F33040:	AA1=1				;INITIAL C(AC)
  7064	035046	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7065		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7066	035047	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7067			400000			AEE=XX				;INITIAL C(E)
  7068	035050	200 04 0 00 044021 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7069	035051	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7070			000000			AR1=V1				;EXPECTED RESULT IN AC
  7071	035052	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7072	035053	003 06 0 00 033041 		ER3	AC,33041		;HIGH PRODUCT FAILED
  7073			400000			AR2=XX				;EXPECTED RESULT IN AC+1
  7074	035054	312 07 0 00 044021 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7075	035055	004 07 0 00 033042 		ER4	AC+1,33042		;LOW PRODUCT FAILED
  7076			400000			AEE=XX				;INITIAL C(E)
  7077	035056	312 04 0 00 044021 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7078	035057	005 04 0 00 033043 		ER5	E,33043			;C(E) WAS CLOBBERED
  7079	035060	321 10 0 00 035046 		JUMPL	AC+2,F33040		;LOOP ON ERROR SWITCH^
  7080
  7081			003305			ADR=ADR+1
  7082		000001	000000			XX=XX+XX
  7083						IFE	XX,<XX=1>
  7084
  7085					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7086			000000			IFG	XX,<V1=0>
  7087						IFL	XX,<V1=-1>
  7088						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7089					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7090					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7091					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7092					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7093
  7094			000001		F33050:	AA1=1				;INITIAL C(AC)
  7095	035061	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7096		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7097	035062	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7098		000001	000000			AEE=XX				;INITIAL C(E)
  7099	035063	200 04 0 00 044022 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7100	035064	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7101			000000			AR1=V1				;EXPECTED RESULT IN AC
  7102	035065	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7103	035066	003 06 0 00 033051 		ER3	AC,33051		;HIGH PRODUCT FAILED
  7104		000001	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7105	035067	312 07 0 00 044022 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0149

  7106	035070	004 07 0 00 033052 		ER4	AC+1,33052		;LOW PRODUCT FAILED
  7107		000001	000000			AEE=XX				;INITIAL C(E)
  7108	035071	312 04 0 00 044022 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7109	035072	005 04 0 00 033053 		ER5	E,33053			;C(E) WAS CLOBBERED
  7110	035073	321 10 0 00 035061 		JUMPL	AC+2,F33050		;LOOP ON ERROR SWITCH^
  7111
  7112			003306			ADR=ADR+1
  7113		000002	000000			XX=XX+XX
  7114						IFE	XX,<XX=1>
  7115
  7116					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7117			000000			IFG	XX,<V1=0>
  7118						IFL	XX,<V1=-1>
  7119						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7120					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7121					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7122					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7123					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7124
  7125			000001		F33060:	AA1=1				;INITIAL C(AC)
  7126	035074	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7127		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7128	035075	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7129		000002	000000			AEE=XX				;INITIAL C(E)
  7130	035076	200 04 0 00 044023 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7131	035077	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7132			000000			AR1=V1				;EXPECTED RESULT IN AC
  7133	035100	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7134	035101	003 06 0 00 033061 		ER3	AC,33061		;HIGH PRODUCT FAILED
  7135		000002	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7136	035102	312 07 0 00 044023 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7137	035103	004 07 0 00 033062 		ER4	AC+1,33062		;LOW PRODUCT FAILED
  7138		000002	000000			AEE=XX				;INITIAL C(E)
  7139	035104	312 04 0 00 044023 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7140	035105	005 04 0 00 033063 		ER5	E,33063			;C(E) WAS CLOBBERED
  7141	035106	321 10 0 00 035074 		JUMPL	AC+2,F33060		;LOOP ON ERROR SWITCH^
  7142
  7143			003307			ADR=ADR+1
  7144		000004	000000			XX=XX+XX
  7145						IFE	XX,<XX=1>
  7146
  7147					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7148			000000			IFG	XX,<V1=0>
  7149						IFL	XX,<V1=-1>
  7150						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7151					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7152					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7153					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7154					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7155
  7156			000001		F33070:	AA1=1				;INITIAL C(AC)
  7157	035107	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7158		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7159	035110	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7160		000004	000000			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0150

  7161	035111	200 04 0 00 044024 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7162	035112	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7163			000000			AR1=V1				;EXPECTED RESULT IN AC
  7164	035113	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7165	035114	003 06 0 00 033071 		ER3	AC,33071		;HIGH PRODUCT FAILED
  7166		000004	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7167	035115	312 07 0 00 044024 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7168	035116	004 07 0 00 033072 		ER4	AC+1,33072		;LOW PRODUCT FAILED
  7169		000004	000000			AEE=XX				;INITIAL C(E)
  7170	035117	312 04 0 00 044024 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7171	035120	005 04 0 00 033073 		ER5	E,33073			;C(E) WAS CLOBBERED
  7172	035121	321 10 0 00 035107 		JUMPL	AC+2,F33070		;LOOP ON ERROR SWITCH^
  7173
  7174			003310			ADR=ADR+1
  7175		000010	000000			XX=XX+XX
  7176						IFE	XX,<XX=1>
  7177
  7178					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7179			000000			IFG	XX,<V1=0>
  7180						IFL	XX,<V1=-1>
  7181						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7182					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7183					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7184					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7185					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7186
  7187			000001		F33100:	AA1=1				;INITIAL C(AC)
  7188	035122	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7189		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7190	035123	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7191		000010	000000			AEE=XX				;INITIAL C(E)
  7192	035124	200 04 0 00 044025 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7193	035125	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7194			000000			AR1=V1				;EXPECTED RESULT IN AC
  7195	035126	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7196	035127	003 06 0 00 033101 		ER3	AC,33101		;HIGH PRODUCT FAILED
  7197		000010	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7198	035130	312 07 0 00 044025 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7199	035131	004 07 0 00 033102 		ER4	AC+1,33102		;LOW PRODUCT FAILED
  7200		000010	000000			AEE=XX				;INITIAL C(E)
  7201	035132	312 04 0 00 044025 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7202	035133	005 04 0 00 033103 		ER5	E,33103			;C(E) WAS CLOBBERED
  7203	035134	321 10 0 00 035122 		JUMPL	AC+2,F33100		;LOOP ON ERROR SWITCH^
  7204
  7205			003311			ADR=ADR+1
  7206		000020	000000			XX=XX+XX
  7207						IFE	XX,<XX=1>
  7208
  7209					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7210			000000			IFG	XX,<V1=0>
  7211						IFL	XX,<V1=-1>
  7212						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7213					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7214					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7215					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0151

  7216					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7217
  7218			000001		F33110:	AA1=1				;INITIAL C(AC)
  7219	035135	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7220		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7221	035136	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7222		000020	000000			AEE=XX				;INITIAL C(E)
  7223	035137	200 04 0 00 044026 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7224	035140	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7225			000000			AR1=V1				;EXPECTED RESULT IN AC
  7226	035141	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7227	035142	003 06 0 00 033111 		ER3	AC,33111		;HIGH PRODUCT FAILED
  7228		000020	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7229	035143	312 07 0 00 044026 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7230	035144	004 07 0 00 033112 		ER4	AC+1,33112		;LOW PRODUCT FAILED
  7231		000020	000000			AEE=XX				;INITIAL C(E)
  7232	035145	312 04 0 00 044026 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7233	035146	005 04 0 00 033113 		ER5	E,33113			;C(E) WAS CLOBBERED
  7234	035147	321 10 0 00 035135 		JUMPL	AC+2,F33110		;LOOP ON ERROR SWITCH^
  7235
  7236			003312			ADR=ADR+1
  7237		000040	000000			XX=XX+XX
  7238						IFE	XX,<XX=1>
  7239
  7240					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7241			000000			IFG	XX,<V1=0>
  7242						IFL	XX,<V1=-1>
  7243						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7244					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7245					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7246					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7247					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7248
  7249			000001		F33120:	AA1=1				;INITIAL C(AC)
  7250	035150	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7251		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7252	035151	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7253		000040	000000			AEE=XX				;INITIAL C(E)
  7254	035152	200 04 0 00 044027 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7255	035153	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7256			000000			AR1=V1				;EXPECTED RESULT IN AC
  7257	035154	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7258	035155	003 06 0 00 033121 		ER3	AC,33121		;HIGH PRODUCT FAILED
  7259		000040	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7260	035156	312 07 0 00 044027 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7261	035157	004 07 0 00 033122 		ER4	AC+1,33122		;LOW PRODUCT FAILED
  7262		000040	000000			AEE=XX				;INITIAL C(E)
  7263	035160	312 04 0 00 044027 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7264	035161	005 04 0 00 033123 		ER5	E,33123			;C(E) WAS CLOBBERED
  7265	035162	321 10 0 00 035150 		JUMPL	AC+2,F33120		;LOOP ON ERROR SWITCH^
  7266
  7267			003313			ADR=ADR+1
  7268		000100	000000			XX=XX+XX
  7269						IFE	XX,<XX=1>
  7270
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0152

  7271					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7272			000000			IFG	XX,<V1=0>
  7273						IFL	XX,<V1=-1>
  7274						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7275					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7276					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7277					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7278					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7279
  7280			000001		F33130:	AA1=1				;INITIAL C(AC)
  7281	035163	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7282		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7283	035164	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7284		000100	000000			AEE=XX				;INITIAL C(E)
  7285	035165	200 04 0 00 044030 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7286	035166	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7287			000000			AR1=V1				;EXPECTED RESULT IN AC
  7288	035167	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7289	035170	003 06 0 00 033131 		ER3	AC,33131		;HIGH PRODUCT FAILED
  7290		000100	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7291	035171	312 07 0 00 044030 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7292	035172	004 07 0 00 033132 		ER4	AC+1,33132		;LOW PRODUCT FAILED
  7293		000100	000000			AEE=XX				;INITIAL C(E)
  7294	035173	312 04 0 00 044030 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7295	035174	005 04 0 00 033133 		ER5	E,33133			;C(E) WAS CLOBBERED
  7296	035175	321 10 0 00 035163 		JUMPL	AC+2,F33130		;LOOP ON ERROR SWITCH^
  7297
  7298			003314			ADR=ADR+1
  7299		000200	000000			XX=XX+XX
  7300						IFE	XX,<XX=1>
  7301
  7302					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7303			000000			IFG	XX,<V1=0>
  7304						IFL	XX,<V1=-1>
  7305						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7306					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7307					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7308					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7309					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7310
  7311			000001		F33140:	AA1=1				;INITIAL C(AC)
  7312	035176	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7313		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7314	035177	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7315		000200	000000			AEE=XX				;INITIAL C(E)
  7316	035200	200 04 0 00 044031 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7317	035201	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7318			000000			AR1=V1				;EXPECTED RESULT IN AC
  7319	035202	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7320	035203	003 06 0 00 033141 		ER3	AC,33141		;HIGH PRODUCT FAILED
  7321		000200	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7322	035204	312 07 0 00 044031 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7323	035205	004 07 0 00 033142 		ER4	AC+1,33142		;LOW PRODUCT FAILED
  7324		000200	000000			AEE=XX				;INITIAL C(E)
  7325	035206	312 04 0 00 044031 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0153

  7326	035207	005 04 0 00 033143 		ER5	E,33143			;C(E) WAS CLOBBERED
  7327	035210	321 10 0 00 035176 		JUMPL	AC+2,F33140		;LOOP ON ERROR SWITCH^
  7328
  7329			003315			ADR=ADR+1
  7330		000400	000000			XX=XX+XX
  7331						IFE	XX,<XX=1>
  7332
  7333					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7334			000000			IFG	XX,<V1=0>
  7335						IFL	XX,<V1=-1>
  7336						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7337					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7338					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7339					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7340					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7341
  7342			000001		F33150:	AA1=1				;INITIAL C(AC)
  7343	035211	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7344		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7345	035212	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7346		000400	000000			AEE=XX				;INITIAL C(E)
  7347	035213	200 04 0 00 044032 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7348	035214	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7349			000000			AR1=V1				;EXPECTED RESULT IN AC
  7350	035215	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7351	035216	003 06 0 00 033151 		ER3	AC,33151		;HIGH PRODUCT FAILED
  7352		000400	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7353	035217	312 07 0 00 044032 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7354	035220	004 07 0 00 033152 		ER4	AC+1,33152		;LOW PRODUCT FAILED
  7355		000400	000000			AEE=XX				;INITIAL C(E)
  7356	035221	312 04 0 00 044032 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7357	035222	005 04 0 00 033153 		ER5	E,33153			;C(E) WAS CLOBBERED
  7358	035223	321 10 0 00 035211 		JUMPL	AC+2,F33150		;LOOP ON ERROR SWITCH^
  7359
  7360			003316			ADR=ADR+1
  7361		001000	000000			XX=XX+XX
  7362						IFE	XX,<XX=1>
  7363
  7364					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7365			000000			IFG	XX,<V1=0>
  7366						IFL	XX,<V1=-1>
  7367						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7368					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7369					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7370					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7371					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7372
  7373			000001		F33160:	AA1=1				;INITIAL C(AC)
  7374	035224	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7375		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7376	035225	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7377		001000	000000			AEE=XX				;INITIAL C(E)
  7378	035226	200 04 0 00 044033 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7379	035227	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7380			000000			AR1=V1				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0154

  7381	035230	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7382	035231	003 06 0 00 033161 		ER3	AC,33161		;HIGH PRODUCT FAILED
  7383		001000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7384	035232	312 07 0 00 044033 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7385	035233	004 07 0 00 033162 		ER4	AC+1,33162		;LOW PRODUCT FAILED
  7386		001000	000000			AEE=XX				;INITIAL C(E)
  7387	035234	312 04 0 00 044033 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7388	035235	005 04 0 00 033163 		ER5	E,33163			;C(E) WAS CLOBBERED
  7389	035236	321 10 0 00 035224 		JUMPL	AC+2,F33160		;LOOP ON ERROR SWITCH^
  7390
  7391			003317			ADR=ADR+1
  7392		002000	000000			XX=XX+XX
  7393						IFE	XX,<XX=1>
  7394
  7395					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7396			000000			IFG	XX,<V1=0>
  7397						IFL	XX,<V1=-1>
  7398						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7399					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7400					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7401					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7402					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7403
  7404			000001		F33170:	AA1=1				;INITIAL C(AC)
  7405	035237	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7406		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7407	035240	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7408		002000	000000			AEE=XX				;INITIAL C(E)
  7409	035241	200 04 0 00 044034 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7410	035242	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7411			000000			AR1=V1				;EXPECTED RESULT IN AC
  7412	035243	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7413	035244	003 06 0 00 033171 		ER3	AC,33171		;HIGH PRODUCT FAILED
  7414		002000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7415	035245	312 07 0 00 044034 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7416	035246	004 07 0 00 033172 		ER4	AC+1,33172		;LOW PRODUCT FAILED
  7417		002000	000000			AEE=XX				;INITIAL C(E)
  7418	035247	312 04 0 00 044034 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7419	035250	005 04 0 00 033173 		ER5	E,33173			;C(E) WAS CLOBBERED
  7420	035251	321 10 0 00 035237 		JUMPL	AC+2,F33170		;LOOP ON ERROR SWITCH^
  7421
  7422			003320			ADR=ADR+1
  7423		004000	000000			XX=XX+XX
  7424						IFE	XX,<XX=1>
  7425
  7426					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7427			000000			IFG	XX,<V1=0>
  7428						IFL	XX,<V1=-1>
  7429						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7430					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7431					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7432					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7433					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7434
  7435			000001		F33200:	AA1=1				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0155

  7436	035252	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7437		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7438	035253	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7439		004000	000000			AEE=XX				;INITIAL C(E)
  7440	035254	200 04 0 00 044035 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7441	035255	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7442			000000			AR1=V1				;EXPECTED RESULT IN AC
  7443	035256	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7444	035257	003 06 0 00 033201 		ER3	AC,33201		;HIGH PRODUCT FAILED
  7445		004000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7446	035260	312 07 0 00 044035 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7447	035261	004 07 0 00 033202 		ER4	AC+1,33202		;LOW PRODUCT FAILED
  7448		004000	000000			AEE=XX				;INITIAL C(E)
  7449	035262	312 04 0 00 044035 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7450	035263	005 04 0 00 033203 		ER5	E,33203			;C(E) WAS CLOBBERED
  7451	035264	321 10 0 00 035252 		JUMPL	AC+2,F33200		;LOOP ON ERROR SWITCH^
  7452
  7453			003321			ADR=ADR+1
  7454		010000	000000			XX=XX+XX
  7455						IFE	XX,<XX=1>
  7456
  7457					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7458			000000			IFG	XX,<V1=0>
  7459						IFL	XX,<V1=-1>
  7460						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7461					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7462					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7463					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7464					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7465
  7466			000001		F33210:	AA1=1				;INITIAL C(AC)
  7467	035265	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7468		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7469	035266	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7470		010000	000000			AEE=XX				;INITIAL C(E)
  7471	035267	200 04 0 00 044036 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7472	035270	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7473			000000			AR1=V1				;EXPECTED RESULT IN AC
  7474	035271	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7475	035272	003 06 0 00 033211 		ER3	AC,33211		;HIGH PRODUCT FAILED
  7476		010000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7477	035273	312 07 0 00 044036 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7478	035274	004 07 0 00 033212 		ER4	AC+1,33212		;LOW PRODUCT FAILED
  7479		010000	000000			AEE=XX				;INITIAL C(E)
  7480	035275	312 04 0 00 044036 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7481	035276	005 04 0 00 033213 		ER5	E,33213			;C(E) WAS CLOBBERED
  7482	035277	321 10 0 00 035265 		JUMPL	AC+2,F33210		;LOOP ON ERROR SWITCH^
  7483
  7484			003322			ADR=ADR+1
  7485		020000	000000			XX=XX+XX
  7486						IFE	XX,<XX=1>
  7487
  7488					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7489			000000			IFG	XX,<V1=0>
  7490						IFL	XX,<V1=-1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0156

  7491						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7492					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7493					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7494					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7495					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7496
  7497			000001		F33220:	AA1=1				;INITIAL C(AC)
  7498	035300	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7499		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7500	035301	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7501		020000	000000			AEE=XX				;INITIAL C(E)
  7502	035302	200 04 0 00 044037 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7503	035303	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7504			000000			AR1=V1				;EXPECTED RESULT IN AC
  7505	035304	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7506	035305	003 06 0 00 033221 		ER3	AC,33221		;HIGH PRODUCT FAILED
  7507		020000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7508	035306	312 07 0 00 044037 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7509	035307	004 07 0 00 033222 		ER4	AC+1,33222		;LOW PRODUCT FAILED
  7510		020000	000000			AEE=XX				;INITIAL C(E)
  7511	035310	312 04 0 00 044037 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7512	035311	005 04 0 00 033223 		ER5	E,33223			;C(E) WAS CLOBBERED
  7513	035312	321 10 0 00 035300 		JUMPL	AC+2,F33220		;LOOP ON ERROR SWITCH^
  7514
  7515			003323			ADR=ADR+1
  7516		040000	000000			XX=XX+XX
  7517						IFE	XX,<XX=1>
  7518
  7519					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7520			000000			IFG	XX,<V1=0>
  7521						IFL	XX,<V1=-1>
  7522						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7523					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7524					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7525					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7526					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7527
  7528			000001		F33230:	AA1=1				;INITIAL C(AC)
  7529	035313	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7530		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7531	035314	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7532		040000	000000			AEE=XX				;INITIAL C(E)
  7533	035315	200 04 0 00 044040 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7534	035316	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7535			000000			AR1=V1				;EXPECTED RESULT IN AC
  7536	035317	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7537	035320	003 06 0 00 033231 		ER3	AC,33231		;HIGH PRODUCT FAILED
  7538		040000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7539	035321	312 07 0 00 044040 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7540	035322	004 07 0 00 033232 		ER4	AC+1,33232		;LOW PRODUCT FAILED
  7541		040000	000000			AEE=XX				;INITIAL C(E)
  7542	035323	312 04 0 00 044040 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7543	035324	005 04 0 00 033233 		ER5	E,33233			;C(E) WAS CLOBBERED
  7544	035325	321 10 0 00 035313 		JUMPL	AC+2,F33230		;LOOP ON ERROR SWITCH^
  7545
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0157

  7546			003324			ADR=ADR+1
  7547		100000	000000			XX=XX+XX
  7548						IFE	XX,<XX=1>
  7549
  7550					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7551			000000			IFG	XX,<V1=0>
  7552						IFL	XX,<V1=-1>
  7553						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7554					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7555					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7556					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7557					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7558
  7559			000001		F33240:	AA1=1				;INITIAL C(AC)
  7560	035326	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7561		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7562	035327	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7563		100000	000000			AEE=XX				;INITIAL C(E)
  7564	035330	200 04 0 00 044041 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7565	035331	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7566			000000			AR1=V1				;EXPECTED RESULT IN AC
  7567	035332	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7568	035333	003 06 0 00 033241 		ER3	AC,33241		;HIGH PRODUCT FAILED
  7569		100000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7570	035334	312 07 0 00 044041 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7571	035335	004 07 0 00 033242 		ER4	AC+1,33242		;LOW PRODUCT FAILED
  7572		100000	000000			AEE=XX				;INITIAL C(E)
  7573	035336	312 04 0 00 044041 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7574	035337	005 04 0 00 033243 		ER5	E,33243			;C(E) WAS CLOBBERED
  7575	035340	321 10 0 00 035326 		JUMPL	AC+2,F33240		;LOOP ON ERROR SWITCH^
  7576
  7577			003325			ADR=ADR+1
  7578		200000	000000			XX=XX+XX
  7579						IFE	XX,<XX=1>
  7580
  7581					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7582			000000			IFG	XX,<V1=0>
  7583						IFL	XX,<V1=-1>
  7584						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7585					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7586					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7587					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7588					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7589
  7590			000001		F33250:	AA1=1				;INITIAL C(AC)
  7591	035341	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7592		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7593	035342	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7594		200000	000000			AEE=XX				;INITIAL C(E)
  7595	035343	200 04 0 00 044042 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7596	035344	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7597			000000			AR1=V1				;EXPECTED RESULT IN AC
  7598	035345	312 06 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7599	035346	003 06 0 00 033251 		ER3	AC,33251		;HIGH PRODUCT FAILED
  7600		200000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 10-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0158

  7601	035347	312 07 0 00 044042 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7602	035350	004 07 0 00 033252 		ER4	AC+1,33252		;LOW PRODUCT FAILED
  7603		200000	000000			AEE=XX				;INITIAL C(E)
  7604	035351	312 04 0 00 044042 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7605	035352	005 04 0 00 033253 		ER5	E,33253			;C(E) WAS CLOBBERED
  7606	035353	321 10 0 00 035341 		JUMPL	AC+2,F33250		;LOOP ON ERROR SWITCH^
  7607
  7608			003326			ADR=ADR+1
  7609		400000	000000			XX=XX+XX
  7610						IFE	XX,<XX=1>
  7611
  7612					;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
  7613						IFG	XX,<V1=0>
  7614		777777	777777			IFL	XX,<V1=-1>
  7615						MOP1	(\ADR,1,-1,XX,V1,XX)^
  7616					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND
  7617					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7618					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
  7619					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7620
  7621			000001		F33260:	AA1=1				;INITIAL C(AC)
  7622	035354	200 06 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7623		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7624	035355	200 07 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7625		400000	000000			AEE=XX				;INITIAL C(E)
  7626	035356	200 04 0 00 044043 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7627	035357	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7628		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  7629	035360	312 06 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7630	035361	003 06 0 00 033261 		ER3	AC,33261		;HIGH PRODUCT FAILED
  7631		400000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7632	035362	312 07 0 00 044043 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7633	035363	004 07 0 00 033262 		ER4	AC+1,33262		;LOW PRODUCT FAILED
  7634		400000	000000			AEE=XX				;INITIAL C(E)
  7635	035364	312 04 0 00 044043 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7636	035365	005 04 0 00 033263 		ER5	E,33263			;C(E) WAS CLOBBERED
  7637	035366	321 10 0 00 035354 		JUMPL	AC+2,F33260		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0159

  7638			000005			AC=5
  7639			000003			E=<AC-2>&17
  7640						SAVEAC	(1,1)^
  7641	035367	201 07 0 00 035367 		MOVEI	AC+2,.		;SAVE TEST PC
  7642	035370	202 07 0 00 030051 		MOVEM	AC+2,TESTPC
  7643	035371	201 07 0 00 000007 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  7644	035372	202 07 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  7645			000000			XX=0
  7646
  7647						REPEAT	^D36,<
  7648						ADR=ADR+1
  7649						XX=XX+XX
  7650						IFE	XX,<XX=1>
  7651					
  7652					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7653						IFG	XX,<V1=0>
  7654						IFL	XX,<V1=-1>
  7655						MOP1	(\ADR,XX,-1,1,V1,XX)>
  7656
  7657			003327			ADR=ADR+1
  7658			000000			XX=XX+XX
  7659			000001			IFE	XX,<XX=1>
  7660
  7661					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7662			000000			IFG	XX,<V1=0>
  7663						IFL	XX,<V1=-1>
  7664						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7665					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7666					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7667					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7668					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7669
  7670			000001		F33270:	AA1=XX				;INITIAL C(AC)
  7671	035373	200 05 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7672		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7673	035374	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7674			000001			AEE=1				;INITIAL C(E)
  7675	035375	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7676	035376	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7677			000000			AR1=V1				;EXPECTED RESULT IN AC
  7678	035377	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7679	035400	003 05 0 00 033271 		ER3	AC,33271		;HIGH PRODUCT FAILED
  7680			000001			AR2=XX				;EXPECTED RESULT IN AC+1
  7681	035401	312 06 0 00 044000 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7682	035402	004 06 0 00 033272 		ER4	AC+1,33272		;LOW PRODUCT FAILED
  7683			000001			AEE=1				;INITIAL C(E)
  7684	035403	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7685	035404	005 03 0 00 033273 		ER5	E,33273			;C(E) WAS CLOBBERED
  7686	035405	321 07 0 00 035373 		JUMPL	AC+2,F33270		;LOOP ON ERROR SWITCH^
  7687
  7688			003330			ADR=ADR+1
  7689			000002			XX=XX+XX
  7690						IFE	XX,<XX=1>
  7691
  7692					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0160

  7693			000000			IFG	XX,<V1=0>
  7694						IFL	XX,<V1=-1>
  7695						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7696					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7697					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7698					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7699					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7700
  7701			000002		F33300:	AA1=XX				;INITIAL C(AC)
  7702	035406	200 05 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7703		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7704	035407	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7705			000001			AEE=1				;INITIAL C(E)
  7706	035410	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7707	035411	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7708			000000			AR1=V1				;EXPECTED RESULT IN AC
  7709	035412	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7710	035413	003 05 0 00 033301 		ER3	AC,33301		;HIGH PRODUCT FAILED
  7711			000002			AR2=XX				;EXPECTED RESULT IN AC+1
  7712	035414	312 06 0 00 044001 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7713	035415	004 06 0 00 033302 		ER4	AC+1,33302		;LOW PRODUCT FAILED
  7714			000001			AEE=1				;INITIAL C(E)
  7715	035416	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7716	035417	005 03 0 00 033303 		ER5	E,33303			;C(E) WAS CLOBBERED
  7717	035420	321 07 0 00 035406 		JUMPL	AC+2,F33300		;LOOP ON ERROR SWITCH^
  7718
  7719			003331			ADR=ADR+1
  7720			000004			XX=XX+XX
  7721						IFE	XX,<XX=1>
  7722
  7723					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7724			000000			IFG	XX,<V1=0>
  7725						IFL	XX,<V1=-1>
  7726						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7727					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7728					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7729					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7730					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7731
  7732			000004		F33310:	AA1=XX				;INITIAL C(AC)
  7733	035421	200 05 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7734		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7735	035422	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7736			000001			AEE=1				;INITIAL C(E)
  7737	035423	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7738	035424	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7739			000000			AR1=V1				;EXPECTED RESULT IN AC
  7740	035425	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7741	035426	003 05 0 00 033311 		ER3	AC,33311		;HIGH PRODUCT FAILED
  7742			000004			AR2=XX				;EXPECTED RESULT IN AC+1
  7743	035427	312 06 0 00 044002 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7744	035430	004 06 0 00 033312 		ER4	AC+1,33312		;LOW PRODUCT FAILED
  7745			000001			AEE=1				;INITIAL C(E)
  7746	035431	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7747	035432	005 03 0 00 033313 		ER5	E,33313			;C(E) WAS CLOBBERED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0161

  7748	035433	321 07 0 00 035421 		JUMPL	AC+2,F33310		;LOOP ON ERROR SWITCH^
  7749
  7750			003332			ADR=ADR+1
  7751			000010			XX=XX+XX
  7752						IFE	XX,<XX=1>
  7753
  7754					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7755			000000			IFG	XX,<V1=0>
  7756						IFL	XX,<V1=-1>
  7757						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7758					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7759					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7760					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7761					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7762
  7763			000010		F33320:	AA1=XX				;INITIAL C(AC)
  7764	035434	200 05 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7765		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7766	035435	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7767			000001			AEE=1				;INITIAL C(E)
  7768	035436	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7769	035437	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7770			000000			AR1=V1				;EXPECTED RESULT IN AC
  7771	035440	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7772	035441	003 05 0 00 033321 		ER3	AC,33321		;HIGH PRODUCT FAILED
  7773			000010			AR2=XX				;EXPECTED RESULT IN AC+1
  7774	035442	312 06 0 00 044003 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7775	035443	004 06 0 00 033322 		ER4	AC+1,33322		;LOW PRODUCT FAILED
  7776			000001			AEE=1				;INITIAL C(E)
  7777	035444	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7778	035445	005 03 0 00 033323 		ER5	E,33323			;C(E) WAS CLOBBERED
  7779	035446	321 07 0 00 035434 		JUMPL	AC+2,F33320		;LOOP ON ERROR SWITCH^
  7780
  7781			003333			ADR=ADR+1
  7782			000020			XX=XX+XX
  7783						IFE	XX,<XX=1>
  7784
  7785					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7786			000000			IFG	XX,<V1=0>
  7787						IFL	XX,<V1=-1>
  7788						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7789					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7790					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7791					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7792					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7793
  7794			000020		F33330:	AA1=XX				;INITIAL C(AC)
  7795	035447	200 05 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7796		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7797	035450	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7798			000001			AEE=1				;INITIAL C(E)
  7799	035451	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7800	035452	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7801			000000			AR1=V1				;EXPECTED RESULT IN AC
  7802	035453	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0162

  7803	035454	003 05 0 00 033331 		ER3	AC,33331		;HIGH PRODUCT FAILED
  7804			000020			AR2=XX				;EXPECTED RESULT IN AC+1
  7805	035455	312 06 0 00 044004 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7806	035456	004 06 0 00 033332 		ER4	AC+1,33332		;LOW PRODUCT FAILED
  7807			000001			AEE=1				;INITIAL C(E)
  7808	035457	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7809	035460	005 03 0 00 033333 		ER5	E,33333			;C(E) WAS CLOBBERED
  7810	035461	321 07 0 00 035447 		JUMPL	AC+2,F33330		;LOOP ON ERROR SWITCH^
  7811
  7812			003334			ADR=ADR+1
  7813			000040			XX=XX+XX
  7814						IFE	XX,<XX=1>
  7815
  7816					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7817			000000			IFG	XX,<V1=0>
  7818						IFL	XX,<V1=-1>
  7819						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7820					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7821					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7822					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7823					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7824
  7825			000040		F33340:	AA1=XX				;INITIAL C(AC)
  7826	035462	200 05 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7827		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7828	035463	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7829			000001			AEE=1				;INITIAL C(E)
  7830	035464	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7831	035465	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7832			000000			AR1=V1				;EXPECTED RESULT IN AC
  7833	035466	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7834	035467	003 05 0 00 033341 		ER3	AC,33341		;HIGH PRODUCT FAILED
  7835			000040			AR2=XX				;EXPECTED RESULT IN AC+1
  7836	035470	312 06 0 00 044005 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7837	035471	004 06 0 00 033342 		ER4	AC+1,33342		;LOW PRODUCT FAILED
  7838			000001			AEE=1				;INITIAL C(E)
  7839	035472	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7840	035473	005 03 0 00 033343 		ER5	E,33343			;C(E) WAS CLOBBERED
  7841	035474	321 07 0 00 035462 		JUMPL	AC+2,F33340		;LOOP ON ERROR SWITCH^
  7842
  7843			003335			ADR=ADR+1
  7844			000100			XX=XX+XX
  7845						IFE	XX,<XX=1>
  7846
  7847					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7848			000000			IFG	XX,<V1=0>
  7849						IFL	XX,<V1=-1>
  7850						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7851					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7852					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7853					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7854					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7855
  7856			000100		F33350:	AA1=XX				;INITIAL C(AC)
  7857	035475	200 05 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0163

  7858		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7859	035476	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7860			000001			AEE=1				;INITIAL C(E)
  7861	035477	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7862	035500	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7863			000000			AR1=V1				;EXPECTED RESULT IN AC
  7864	035501	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7865	035502	003 05 0 00 033351 		ER3	AC,33351		;HIGH PRODUCT FAILED
  7866			000100			AR2=XX				;EXPECTED RESULT IN AC+1
  7867	035503	312 06 0 00 044006 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7868	035504	004 06 0 00 033352 		ER4	AC+1,33352		;LOW PRODUCT FAILED
  7869			000001			AEE=1				;INITIAL C(E)
  7870	035505	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7871	035506	005 03 0 00 033353 		ER5	E,33353			;C(E) WAS CLOBBERED
  7872	035507	321 07 0 00 035475 		JUMPL	AC+2,F33350		;LOOP ON ERROR SWITCH^
  7873
  7874			003336			ADR=ADR+1
  7875			000200			XX=XX+XX
  7876						IFE	XX,<XX=1>
  7877
  7878					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7879			000000			IFG	XX,<V1=0>
  7880						IFL	XX,<V1=-1>
  7881						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7882					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7883					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7884					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7885					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7886
  7887			000200		F33360:	AA1=XX				;INITIAL C(AC)
  7888	035510	200 05 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7889		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7890	035511	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7891			000001			AEE=1				;INITIAL C(E)
  7892	035512	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7893	035513	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7894			000000			AR1=V1				;EXPECTED RESULT IN AC
  7895	035514	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7896	035515	003 05 0 00 033361 		ER3	AC,33361		;HIGH PRODUCT FAILED
  7897			000200			AR2=XX				;EXPECTED RESULT IN AC+1
  7898	035516	312 06 0 00 044007 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7899	035517	004 06 0 00 033362 		ER4	AC+1,33362		;LOW PRODUCT FAILED
  7900			000001			AEE=1				;INITIAL C(E)
  7901	035520	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7902	035521	005 03 0 00 033363 		ER5	E,33363			;C(E) WAS CLOBBERED
  7903	035522	321 07 0 00 035510 		JUMPL	AC+2,F33360		;LOOP ON ERROR SWITCH^
  7904
  7905			003337			ADR=ADR+1
  7906			000400			XX=XX+XX
  7907						IFE	XX,<XX=1>
  7908
  7909					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7910			000000			IFG	XX,<V1=0>
  7911						IFL	XX,<V1=-1>
  7912						MOP1	(\ADR,XX,-1,1,V1,XX)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0164

  7913					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7914					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7915					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7916					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7917
  7918			000400		F33370:	AA1=XX				;INITIAL C(AC)
  7919	035523	200 05 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7920		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7921	035524	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7922			000001			AEE=1				;INITIAL C(E)
  7923	035525	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7924	035526	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7925			000000			AR1=V1				;EXPECTED RESULT IN AC
  7926	035527	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7927	035530	003 05 0 00 033371 		ER3	AC,33371		;HIGH PRODUCT FAILED
  7928			000400			AR2=XX				;EXPECTED RESULT IN AC+1
  7929	035531	312 06 0 00 044010 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7930	035532	004 06 0 00 033372 		ER4	AC+1,33372		;LOW PRODUCT FAILED
  7931			000001			AEE=1				;INITIAL C(E)
  7932	035533	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7933	035534	005 03 0 00 033373 		ER5	E,33373			;C(E) WAS CLOBBERED
  7934	035535	321 07 0 00 035523 		JUMPL	AC+2,F33370		;LOOP ON ERROR SWITCH^
  7935
  7936			003340			ADR=ADR+1
  7937			001000			XX=XX+XX
  7938						IFE	XX,<XX=1>
  7939
  7940					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7941			000000			IFG	XX,<V1=0>
  7942						IFL	XX,<V1=-1>
  7943						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7944					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7945					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7946					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7947					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7948
  7949			001000		F33400:	AA1=XX				;INITIAL C(AC)
  7950	035536	200 05 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7951		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7952	035537	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7953			000001			AEE=1				;INITIAL C(E)
  7954	035540	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7955	035541	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7956			000000			AR1=V1				;EXPECTED RESULT IN AC
  7957	035542	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7958	035543	003 05 0 00 033401 		ER3	AC,33401		;HIGH PRODUCT FAILED
  7959			001000			AR2=XX				;EXPECTED RESULT IN AC+1
  7960	035544	312 06 0 00 044011 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7961	035545	004 06 0 00 033402 		ER4	AC+1,33402		;LOW PRODUCT FAILED
  7962			000001			AEE=1				;INITIAL C(E)
  7963	035546	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7964	035547	005 03 0 00 033403 		ER5	E,33403			;C(E) WAS CLOBBERED
  7965	035550	321 07 0 00 035536 		JUMPL	AC+2,F33400		;LOOP ON ERROR SWITCH^
  7966
  7967			003341			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0165

  7968			002000			XX=XX+XX
  7969						IFE	XX,<XX=1>
  7970
  7971					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  7972			000000			IFG	XX,<V1=0>
  7973						IFL	XX,<V1=-1>
  7974						MOP1	(\ADR,XX,-1,1,V1,XX)^
  7975					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  7976					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  7977					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  7978					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7979
  7980			002000		F33410:	AA1=XX				;INITIAL C(AC)
  7981	035551	200 05 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7982		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7983	035552	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7984			000001			AEE=1				;INITIAL C(E)
  7985	035553	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7986	035554	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7987			000000			AR1=V1				;EXPECTED RESULT IN AC
  7988	035555	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7989	035556	003 05 0 00 033411 		ER3	AC,33411		;HIGH PRODUCT FAILED
  7990			002000			AR2=XX				;EXPECTED RESULT IN AC+1
  7991	035557	312 06 0 00 044012 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7992	035560	004 06 0 00 033412 		ER4	AC+1,33412		;LOW PRODUCT FAILED
  7993			000001			AEE=1				;INITIAL C(E)
  7994	035561	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7995	035562	005 03 0 00 033413 		ER5	E,33413			;C(E) WAS CLOBBERED
  7996	035563	321 07 0 00 035551 		JUMPL	AC+2,F33410		;LOOP ON ERROR SWITCH^
  7997
  7998			003342			ADR=ADR+1
  7999			004000			XX=XX+XX
  8000						IFE	XX,<XX=1>
  8001
  8002					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8003			000000			IFG	XX,<V1=0>
  8004						IFL	XX,<V1=-1>
  8005						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8006					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8007					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8008					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8009					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8010
  8011			004000		F33420:	AA1=XX				;INITIAL C(AC)
  8012	035564	200 05 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8013		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8014	035565	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8015			000001			AEE=1				;INITIAL C(E)
  8016	035566	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8017	035567	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8018			000000			AR1=V1				;EXPECTED RESULT IN AC
  8019	035570	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8020	035571	003 05 0 00 033421 		ER3	AC,33421		;HIGH PRODUCT FAILED
  8021			004000			AR2=XX				;EXPECTED RESULT IN AC+1
  8022	035572	312 06 0 00 044013 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0166

  8023	035573	004 06 0 00 033422 		ER4	AC+1,33422		;LOW PRODUCT FAILED
  8024			000001			AEE=1				;INITIAL C(E)
  8025	035574	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8026	035575	005 03 0 00 033423 		ER5	E,33423			;C(E) WAS CLOBBERED
  8027	035576	321 07 0 00 035564 		JUMPL	AC+2,F33420		;LOOP ON ERROR SWITCH^
  8028
  8029			003343			ADR=ADR+1
  8030			010000			XX=XX+XX
  8031						IFE	XX,<XX=1>
  8032
  8033					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8034			000000			IFG	XX,<V1=0>
  8035						IFL	XX,<V1=-1>
  8036						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8037					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8038					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8039					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8040					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8041
  8042			010000		F33430:	AA1=XX				;INITIAL C(AC)
  8043	035577	200 05 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8044		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8045	035600	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8046			000001			AEE=1				;INITIAL C(E)
  8047	035601	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8048	035602	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8049			000000			AR1=V1				;EXPECTED RESULT IN AC
  8050	035603	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8051	035604	003 05 0 00 033431 		ER3	AC,33431		;HIGH PRODUCT FAILED
  8052			010000			AR2=XX				;EXPECTED RESULT IN AC+1
  8053	035605	312 06 0 00 044014 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8054	035606	004 06 0 00 033432 		ER4	AC+1,33432		;LOW PRODUCT FAILED
  8055			000001			AEE=1				;INITIAL C(E)
  8056	035607	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8057	035610	005 03 0 00 033433 		ER5	E,33433			;C(E) WAS CLOBBERED
  8058	035611	321 07 0 00 035577 		JUMPL	AC+2,F33430		;LOOP ON ERROR SWITCH^
  8059
  8060			003344			ADR=ADR+1
  8061			020000			XX=XX+XX
  8062						IFE	XX,<XX=1>
  8063
  8064					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8065			000000			IFG	XX,<V1=0>
  8066						IFL	XX,<V1=-1>
  8067						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8068					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8069					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8070					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8071					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8072
  8073			020000		F33440:	AA1=XX				;INITIAL C(AC)
  8074	035612	200 05 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8075		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8076	035613	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8077			000001			AEE=1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0167

  8078	035614	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8079	035615	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8080			000000			AR1=V1				;EXPECTED RESULT IN AC
  8081	035616	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8082	035617	003 05 0 00 033441 		ER3	AC,33441		;HIGH PRODUCT FAILED
  8083			020000			AR2=XX				;EXPECTED RESULT IN AC+1
  8084	035620	312 06 0 00 044015 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8085	035621	004 06 0 00 033442 		ER4	AC+1,33442		;LOW PRODUCT FAILED
  8086			000001			AEE=1				;INITIAL C(E)
  8087	035622	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8088	035623	005 03 0 00 033443 		ER5	E,33443			;C(E) WAS CLOBBERED
  8089	035624	321 07 0 00 035612 		JUMPL	AC+2,F33440		;LOOP ON ERROR SWITCH^
  8090
  8091			003345			ADR=ADR+1
  8092			040000			XX=XX+XX
  8093						IFE	XX,<XX=1>
  8094
  8095					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8096			000000			IFG	XX,<V1=0>
  8097						IFL	XX,<V1=-1>
  8098						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8099					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8100					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8101					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8102					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8103
  8104			040000		F33450:	AA1=XX				;INITIAL C(AC)
  8105	035625	200 05 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8106		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8107	035626	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8108			000001			AEE=1				;INITIAL C(E)
  8109	035627	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8110	035630	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8111			000000			AR1=V1				;EXPECTED RESULT IN AC
  8112	035631	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8113	035632	003 05 0 00 033451 		ER3	AC,33451		;HIGH PRODUCT FAILED
  8114			040000			AR2=XX				;EXPECTED RESULT IN AC+1
  8115	035633	312 06 0 00 044016 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8116	035634	004 06 0 00 033452 		ER4	AC+1,33452		;LOW PRODUCT FAILED
  8117			000001			AEE=1				;INITIAL C(E)
  8118	035635	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8119	035636	005 03 0 00 033453 		ER5	E,33453			;C(E) WAS CLOBBERED
  8120	035637	321 07 0 00 035625 		JUMPL	AC+2,F33450		;LOOP ON ERROR SWITCH^
  8121
  8122			003346			ADR=ADR+1
  8123			100000			XX=XX+XX
  8124						IFE	XX,<XX=1>
  8125
  8126					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8127			000000			IFG	XX,<V1=0>
  8128						IFL	XX,<V1=-1>
  8129						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8130					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8131					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8132					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0168

  8133					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8134
  8135			100000		F33460:	AA1=XX				;INITIAL C(AC)
  8136	035640	200 05 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8137		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8138	035641	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8139			000001			AEE=1				;INITIAL C(E)
  8140	035642	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8141	035643	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8142			000000			AR1=V1				;EXPECTED RESULT IN AC
  8143	035644	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8144	035645	003 05 0 00 033461 		ER3	AC,33461		;HIGH PRODUCT FAILED
  8145			100000			AR2=XX				;EXPECTED RESULT IN AC+1
  8146	035646	312 06 0 00 044017 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8147	035647	004 06 0 00 033462 		ER4	AC+1,33462		;LOW PRODUCT FAILED
  8148			000001			AEE=1				;INITIAL C(E)
  8149	035650	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8150	035651	005 03 0 00 033463 		ER5	E,33463			;C(E) WAS CLOBBERED
  8151	035652	321 07 0 00 035640 		JUMPL	AC+2,F33460		;LOOP ON ERROR SWITCH^
  8152
  8153			003347			ADR=ADR+1
  8154			200000			XX=XX+XX
  8155						IFE	XX,<XX=1>
  8156
  8157					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8158			000000			IFG	XX,<V1=0>
  8159						IFL	XX,<V1=-1>
  8160						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8161					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8162					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8163					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8164					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8165
  8166			200000		F33470:	AA1=XX				;INITIAL C(AC)
  8167	035653	200 05 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8168		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8169	035654	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8170			000001			AEE=1				;INITIAL C(E)
  8171	035655	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8172	035656	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8173			000000			AR1=V1				;EXPECTED RESULT IN AC
  8174	035657	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8175	035660	003 05 0 00 033471 		ER3	AC,33471		;HIGH PRODUCT FAILED
  8176			200000			AR2=XX				;EXPECTED RESULT IN AC+1
  8177	035661	312 06 0 00 044020 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8178	035662	004 06 0 00 033472 		ER4	AC+1,33472		;LOW PRODUCT FAILED
  8179			000001			AEE=1				;INITIAL C(E)
  8180	035663	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8181	035664	005 03 0 00 033473 		ER5	E,33473			;C(E) WAS CLOBBERED
  8182	035665	321 07 0 00 035653 		JUMPL	AC+2,F33470		;LOOP ON ERROR SWITCH^
  8183
  8184			003350			ADR=ADR+1
  8185			400000			XX=XX+XX
  8186						IFE	XX,<XX=1>
  8187
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0169

  8188					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8189			000000			IFG	XX,<V1=0>
  8190						IFL	XX,<V1=-1>
  8191						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8192					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8193					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8194					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8195					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8196
  8197			400000		F33500:	AA1=XX				;INITIAL C(AC)
  8198	035666	200 05 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8199		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8200	035667	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8201			000001			AEE=1				;INITIAL C(E)
  8202	035670	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8203	035671	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8204			000000			AR1=V1				;EXPECTED RESULT IN AC
  8205	035672	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8206	035673	003 05 0 00 033501 		ER3	AC,33501		;HIGH PRODUCT FAILED
  8207			400000			AR2=XX				;EXPECTED RESULT IN AC+1
  8208	035674	312 06 0 00 044021 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8209	035675	004 06 0 00 033502 		ER4	AC+1,33502		;LOW PRODUCT FAILED
  8210			000001			AEE=1				;INITIAL C(E)
  8211	035676	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8212	035677	005 03 0 00 033503 		ER5	E,33503			;C(E) WAS CLOBBERED
  8213	035700	321 07 0 00 035666 		JUMPL	AC+2,F33500		;LOOP ON ERROR SWITCH^
  8214
  8215			003351			ADR=ADR+1
  8216		000001	000000			XX=XX+XX
  8217						IFE	XX,<XX=1>
  8218
  8219					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8220			000000			IFG	XX,<V1=0>
  8221						IFL	XX,<V1=-1>
  8222						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8223					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8224					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8225					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8226					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8227
  8228		000001	000000		F33510:	AA1=XX				;INITIAL C(AC)
  8229	035701	200 05 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8230		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8231	035702	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8232			000001			AEE=1				;INITIAL C(E)
  8233	035703	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8234	035704	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8235			000000			AR1=V1				;EXPECTED RESULT IN AC
  8236	035705	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8237	035706	003 05 0 00 033511 		ER3	AC,33511		;HIGH PRODUCT FAILED
  8238		000001	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8239	035707	312 06 0 00 044022 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8240	035710	004 06 0 00 033512 		ER4	AC+1,33512		;LOW PRODUCT FAILED
  8241			000001			AEE=1				;INITIAL C(E)
  8242	035711	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0170

  8243	035712	005 03 0 00 033513 		ER5	E,33513			;C(E) WAS CLOBBERED
  8244	035713	321 07 0 00 035701 		JUMPL	AC+2,F33510		;LOOP ON ERROR SWITCH^
  8245
  8246			003352			ADR=ADR+1
  8247		000002	000000			XX=XX+XX
  8248						IFE	XX,<XX=1>
  8249
  8250					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8251			000000			IFG	XX,<V1=0>
  8252						IFL	XX,<V1=-1>
  8253						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8254					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8255					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8256					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8257					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8258
  8259		000002	000000		F33520:	AA1=XX				;INITIAL C(AC)
  8260	035714	200 05 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8261		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8262	035715	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8263			000001			AEE=1				;INITIAL C(E)
  8264	035716	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8265	035717	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8266			000000			AR1=V1				;EXPECTED RESULT IN AC
  8267	035720	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8268	035721	003 05 0 00 033521 		ER3	AC,33521		;HIGH PRODUCT FAILED
  8269		000002	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8270	035722	312 06 0 00 044023 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8271	035723	004 06 0 00 033522 		ER4	AC+1,33522		;LOW PRODUCT FAILED
  8272			000001			AEE=1				;INITIAL C(E)
  8273	035724	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8274	035725	005 03 0 00 033523 		ER5	E,33523			;C(E) WAS CLOBBERED
  8275	035726	321 07 0 00 035714 		JUMPL	AC+2,F33520		;LOOP ON ERROR SWITCH^
  8276
  8277			003353			ADR=ADR+1
  8278		000004	000000			XX=XX+XX
  8279						IFE	XX,<XX=1>
  8280
  8281					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8282			000000			IFG	XX,<V1=0>
  8283						IFL	XX,<V1=-1>
  8284						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8285					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8286					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8287					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8288					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8289
  8290		000004	000000		F33530:	AA1=XX				;INITIAL C(AC)
  8291	035727	200 05 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8292		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8293	035730	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8294			000001			AEE=1				;INITIAL C(E)
  8295	035731	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8296	035732	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8297			000000			AR1=V1				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0171

  8298	035733	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8299	035734	003 05 0 00 033531 		ER3	AC,33531		;HIGH PRODUCT FAILED
  8300		000004	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8301	035735	312 06 0 00 044024 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8302	035736	004 06 0 00 033532 		ER4	AC+1,33532		;LOW PRODUCT FAILED
  8303			000001			AEE=1				;INITIAL C(E)
  8304	035737	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8305	035740	005 03 0 00 033533 		ER5	E,33533			;C(E) WAS CLOBBERED
  8306	035741	321 07 0 00 035727 		JUMPL	AC+2,F33530		;LOOP ON ERROR SWITCH^
  8307
  8308			003354			ADR=ADR+1
  8309		000010	000000			XX=XX+XX
  8310						IFE	XX,<XX=1>
  8311
  8312					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8313			000000			IFG	XX,<V1=0>
  8314						IFL	XX,<V1=-1>
  8315						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8316					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8317					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8318					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8319					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8320
  8321		000010	000000		F33540:	AA1=XX				;INITIAL C(AC)
  8322	035742	200 05 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8323		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8324	035743	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8325			000001			AEE=1				;INITIAL C(E)
  8326	035744	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8327	035745	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8328			000000			AR1=V1				;EXPECTED RESULT IN AC
  8329	035746	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8330	035747	003 05 0 00 033541 		ER3	AC,33541		;HIGH PRODUCT FAILED
  8331		000010	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8332	035750	312 06 0 00 044025 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8333	035751	004 06 0 00 033542 		ER4	AC+1,33542		;LOW PRODUCT FAILED
  8334			000001			AEE=1				;INITIAL C(E)
  8335	035752	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8336	035753	005 03 0 00 033543 		ER5	E,33543			;C(E) WAS CLOBBERED
  8337	035754	321 07 0 00 035742 		JUMPL	AC+2,F33540		;LOOP ON ERROR SWITCH^
  8338
  8339			003355			ADR=ADR+1
  8340		000020	000000			XX=XX+XX
  8341						IFE	XX,<XX=1>
  8342
  8343					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8344			000000			IFG	XX,<V1=0>
  8345						IFL	XX,<V1=-1>
  8346						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8347					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8348					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8349					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8350					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8351
  8352		000020	000000		F33550:	AA1=XX				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0172

  8353	035755	200 05 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8354		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8355	035756	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8356			000001			AEE=1				;INITIAL C(E)
  8357	035757	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8358	035760	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8359			000000			AR1=V1				;EXPECTED RESULT IN AC
  8360	035761	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8361	035762	003 05 0 00 033551 		ER3	AC,33551		;HIGH PRODUCT FAILED
  8362		000020	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8363	035763	312 06 0 00 044026 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8364	035764	004 06 0 00 033552 		ER4	AC+1,33552		;LOW PRODUCT FAILED
  8365			000001			AEE=1				;INITIAL C(E)
  8366	035765	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8367	035766	005 03 0 00 033553 		ER5	E,33553			;C(E) WAS CLOBBERED
  8368	035767	321 07 0 00 035755 		JUMPL	AC+2,F33550		;LOOP ON ERROR SWITCH^
  8369
  8370			003356			ADR=ADR+1
  8371		000040	000000			XX=XX+XX
  8372						IFE	XX,<XX=1>
  8373
  8374					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8375			000000			IFG	XX,<V1=0>
  8376						IFL	XX,<V1=-1>
  8377						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8378					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8379					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8380					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8381					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8382
  8383		000040	000000		F33560:	AA1=XX				;INITIAL C(AC)
  8384	035770	200 05 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8385		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8386	035771	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8387			000001			AEE=1				;INITIAL C(E)
  8388	035772	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8389	035773	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8390			000000			AR1=V1				;EXPECTED RESULT IN AC
  8391	035774	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8392	035775	003 05 0 00 033561 		ER3	AC,33561		;HIGH PRODUCT FAILED
  8393		000040	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8394	035776	312 06 0 00 044027 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8395	035777	004 06 0 00 033562 		ER4	AC+1,33562		;LOW PRODUCT FAILED
  8396			000001			AEE=1				;INITIAL C(E)
  8397	036000	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8398	036001	005 03 0 00 033563 		ER5	E,33563			;C(E) WAS CLOBBERED
  8399	036002	321 07 0 00 035770 		JUMPL	AC+2,F33560		;LOOP ON ERROR SWITCH^
  8400
  8401			003357			ADR=ADR+1
  8402		000100	000000			XX=XX+XX
  8403						IFE	XX,<XX=1>
  8404
  8405					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8406			000000			IFG	XX,<V1=0>
  8407						IFL	XX,<V1=-1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0173

  8408						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8409					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8410					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8411					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8412					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8413
  8414		000100	000000		F33570:	AA1=XX				;INITIAL C(AC)
  8415	036003	200 05 0 00 044030 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8416		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8417	036004	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8418			000001			AEE=1				;INITIAL C(E)
  8419	036005	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8420	036006	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8421			000000			AR1=V1				;EXPECTED RESULT IN AC
  8422	036007	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8423	036010	003 05 0 00 033571 		ER3	AC,33571		;HIGH PRODUCT FAILED
  8424		000100	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8425	036011	312 06 0 00 044030 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8426	036012	004 06 0 00 033572 		ER4	AC+1,33572		;LOW PRODUCT FAILED
  8427			000001			AEE=1				;INITIAL C(E)
  8428	036013	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8429	036014	005 03 0 00 033573 		ER5	E,33573			;C(E) WAS CLOBBERED
  8430	036015	321 07 0 00 036003 		JUMPL	AC+2,F33570		;LOOP ON ERROR SWITCH^
  8431
  8432			003360			ADR=ADR+1
  8433		000200	000000			XX=XX+XX
  8434						IFE	XX,<XX=1>
  8435
  8436					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8437			000000			IFG	XX,<V1=0>
  8438						IFL	XX,<V1=-1>
  8439						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8440					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8441					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8442					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8443					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8444
  8445		000200	000000		F33600:	AA1=XX				;INITIAL C(AC)
  8446	036016	200 05 0 00 044031 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8447		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8448	036017	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8449			000001			AEE=1				;INITIAL C(E)
  8450	036020	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8451	036021	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8452			000000			AR1=V1				;EXPECTED RESULT IN AC
  8453	036022	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8454	036023	003 05 0 00 033601 		ER3	AC,33601		;HIGH PRODUCT FAILED
  8455		000200	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8456	036024	312 06 0 00 044031 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8457	036025	004 06 0 00 033602 		ER4	AC+1,33602		;LOW PRODUCT FAILED
  8458			000001			AEE=1				;INITIAL C(E)
  8459	036026	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8460	036027	005 03 0 00 033603 		ER5	E,33603			;C(E) WAS CLOBBERED
  8461	036030	321 07 0 00 036016 		JUMPL	AC+2,F33600		;LOOP ON ERROR SWITCH^
  8462
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0174

  8463			003361			ADR=ADR+1
  8464		000400	000000			XX=XX+XX
  8465						IFE	XX,<XX=1>
  8466
  8467					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8468			000000			IFG	XX,<V1=0>
  8469						IFL	XX,<V1=-1>
  8470						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8471					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8472					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8473					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8474					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8475
  8476		000400	000000		F33610:	AA1=XX				;INITIAL C(AC)
  8477	036031	200 05 0 00 044032 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8478		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8479	036032	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8480			000001			AEE=1				;INITIAL C(E)
  8481	036033	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8482	036034	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8483			000000			AR1=V1				;EXPECTED RESULT IN AC
  8484	036035	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8485	036036	003 05 0 00 033611 		ER3	AC,33611		;HIGH PRODUCT FAILED
  8486		000400	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8487	036037	312 06 0 00 044032 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8488	036040	004 06 0 00 033612 		ER4	AC+1,33612		;LOW PRODUCT FAILED
  8489			000001			AEE=1				;INITIAL C(E)
  8490	036041	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8491	036042	005 03 0 00 033613 		ER5	E,33613			;C(E) WAS CLOBBERED
  8492	036043	321 07 0 00 036031 		JUMPL	AC+2,F33610		;LOOP ON ERROR SWITCH^
  8493
  8494			003362			ADR=ADR+1
  8495		001000	000000			XX=XX+XX
  8496						IFE	XX,<XX=1>
  8497
  8498					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8499			000000			IFG	XX,<V1=0>
  8500						IFL	XX,<V1=-1>
  8501						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8502					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8503					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8504					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8505					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8506
  8507		001000	000000		F33620:	AA1=XX				;INITIAL C(AC)
  8508	036044	200 05 0 00 044033 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8509		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8510	036045	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8511			000001			AEE=1				;INITIAL C(E)
  8512	036046	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8513	036047	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8514			000000			AR1=V1				;EXPECTED RESULT IN AC
  8515	036050	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8516	036051	003 05 0 00 033621 		ER3	AC,33621		;HIGH PRODUCT FAILED
  8517		001000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0175

  8518	036052	312 06 0 00 044033 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8519	036053	004 06 0 00 033622 		ER4	AC+1,33622		;LOW PRODUCT FAILED
  8520			000001			AEE=1				;INITIAL C(E)
  8521	036054	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8522	036055	005 03 0 00 033623 		ER5	E,33623			;C(E) WAS CLOBBERED
  8523	036056	321 07 0 00 036044 		JUMPL	AC+2,F33620		;LOOP ON ERROR SWITCH^
  8524
  8525			003363			ADR=ADR+1
  8526		002000	000000			XX=XX+XX
  8527						IFE	XX,<XX=1>
  8528
  8529					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8530			000000			IFG	XX,<V1=0>
  8531						IFL	XX,<V1=-1>
  8532						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8533					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8534					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8535					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8536					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8537
  8538		002000	000000		F33630:	AA1=XX				;INITIAL C(AC)
  8539	036057	200 05 0 00 044034 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8540		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8541	036060	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8542			000001			AEE=1				;INITIAL C(E)
  8543	036061	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8544	036062	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8545			000000			AR1=V1				;EXPECTED RESULT IN AC
  8546	036063	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8547	036064	003 05 0 00 033631 		ER3	AC,33631		;HIGH PRODUCT FAILED
  8548		002000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8549	036065	312 06 0 00 044034 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8550	036066	004 06 0 00 033632 		ER4	AC+1,33632		;LOW PRODUCT FAILED
  8551			000001			AEE=1				;INITIAL C(E)
  8552	036067	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8553	036070	005 03 0 00 033633 		ER5	E,33633			;C(E) WAS CLOBBERED
  8554	036071	321 07 0 00 036057 		JUMPL	AC+2,F33630		;LOOP ON ERROR SWITCH^
  8555
  8556			003364			ADR=ADR+1
  8557		004000	000000			XX=XX+XX
  8558						IFE	XX,<XX=1>
  8559
  8560					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8561			000000			IFG	XX,<V1=0>
  8562						IFL	XX,<V1=-1>
  8563						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8564					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8565					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8566					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8567					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8568
  8569		004000	000000		F33640:	AA1=XX				;INITIAL C(AC)
  8570	036072	200 05 0 00 044035 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8571		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8572	036073	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0176

  8573			000001			AEE=1				;INITIAL C(E)
  8574	036074	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8575	036075	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8576			000000			AR1=V1				;EXPECTED RESULT IN AC
  8577	036076	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8578	036077	003 05 0 00 033641 		ER3	AC,33641		;HIGH PRODUCT FAILED
  8579		004000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8580	036100	312 06 0 00 044035 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8581	036101	004 06 0 00 033642 		ER4	AC+1,33642		;LOW PRODUCT FAILED
  8582			000001			AEE=1				;INITIAL C(E)
  8583	036102	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8584	036103	005 03 0 00 033643 		ER5	E,33643			;C(E) WAS CLOBBERED
  8585	036104	321 07 0 00 036072 		JUMPL	AC+2,F33640		;LOOP ON ERROR SWITCH^
  8586
  8587			003365			ADR=ADR+1
  8588		010000	000000			XX=XX+XX
  8589						IFE	XX,<XX=1>
  8590
  8591					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8592			000000			IFG	XX,<V1=0>
  8593						IFL	XX,<V1=-1>
  8594						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8595					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8596					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8597					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8598					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8599
  8600		010000	000000		F33650:	AA1=XX				;INITIAL C(AC)
  8601	036105	200 05 0 00 044036 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8602		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8603	036106	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8604			000001			AEE=1				;INITIAL C(E)
  8605	036107	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8606	036110	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8607			000000			AR1=V1				;EXPECTED RESULT IN AC
  8608	036111	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8609	036112	003 05 0 00 033651 		ER3	AC,33651		;HIGH PRODUCT FAILED
  8610		010000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8611	036113	312 06 0 00 044036 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8612	036114	004 06 0 00 033652 		ER4	AC+1,33652		;LOW PRODUCT FAILED
  8613			000001			AEE=1				;INITIAL C(E)
  8614	036115	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8615	036116	005 03 0 00 033653 		ER5	E,33653			;C(E) WAS CLOBBERED
  8616	036117	321 07 0 00 036105 		JUMPL	AC+2,F33650		;LOOP ON ERROR SWITCH^
  8617
  8618			003366			ADR=ADR+1
  8619		020000	000000			XX=XX+XX
  8620						IFE	XX,<XX=1>
  8621
  8622					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8623			000000			IFG	XX,<V1=0>
  8624						IFL	XX,<V1=-1>
  8625						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8626					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8627					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0177

  8628					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8629					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8630
  8631		020000	000000		F33660:	AA1=XX				;INITIAL C(AC)
  8632	036120	200 05 0 00 044037 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8633		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8634	036121	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8635			000001			AEE=1				;INITIAL C(E)
  8636	036122	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8637	036123	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8638			000000			AR1=V1				;EXPECTED RESULT IN AC
  8639	036124	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8640	036125	003 05 0 00 033661 		ER3	AC,33661		;HIGH PRODUCT FAILED
  8641		020000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8642	036126	312 06 0 00 044037 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8643	036127	004 06 0 00 033662 		ER4	AC+1,33662		;LOW PRODUCT FAILED
  8644			000001			AEE=1				;INITIAL C(E)
  8645	036130	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8646	036131	005 03 0 00 033663 		ER5	E,33663			;C(E) WAS CLOBBERED
  8647	036132	321 07 0 00 036120 		JUMPL	AC+2,F33660		;LOOP ON ERROR SWITCH^
  8648
  8649			003367			ADR=ADR+1
  8650		040000	000000			XX=XX+XX
  8651						IFE	XX,<XX=1>
  8652
  8653					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8654			000000			IFG	XX,<V1=0>
  8655						IFL	XX,<V1=-1>
  8656						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8657					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8658					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8659					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8660					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8661
  8662		040000	000000		F33670:	AA1=XX				;INITIAL C(AC)
  8663	036133	200 05 0 00 044040 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8664		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8665	036134	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8666			000001			AEE=1				;INITIAL C(E)
  8667	036135	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8668	036136	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8669			000000			AR1=V1				;EXPECTED RESULT IN AC
  8670	036137	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8671	036140	003 05 0 00 033671 		ER3	AC,33671		;HIGH PRODUCT FAILED
  8672		040000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8673	036141	312 06 0 00 044040 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8674	036142	004 06 0 00 033672 		ER4	AC+1,33672		;LOW PRODUCT FAILED
  8675			000001			AEE=1				;INITIAL C(E)
  8676	036143	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8677	036144	005 03 0 00 033673 		ER5	E,33673			;C(E) WAS CLOBBERED
  8678	036145	321 07 0 00 036133 		JUMPL	AC+2,F33670		;LOOP ON ERROR SWITCH^
  8679
  8680			003370			ADR=ADR+1
  8681		100000	000000			XX=XX+XX
  8682						IFE	XX,<XX=1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0178

  8683
  8684					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8685			000000			IFG	XX,<V1=0>
  8686						IFL	XX,<V1=-1>
  8687						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8688					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8689					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8690					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8691					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8692
  8693		100000	000000		F33700:	AA1=XX				;INITIAL C(AC)
  8694	036146	200 05 0 00 044041 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8695		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8696	036147	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8697			000001			AEE=1				;INITIAL C(E)
  8698	036150	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8699	036151	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8700			000000			AR1=V1				;EXPECTED RESULT IN AC
  8701	036152	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8702	036153	003 05 0 00 033701 		ER3	AC,33701		;HIGH PRODUCT FAILED
  8703		100000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8704	036154	312 06 0 00 044041 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8705	036155	004 06 0 00 033702 		ER4	AC+1,33702		;LOW PRODUCT FAILED
  8706			000001			AEE=1				;INITIAL C(E)
  8707	036156	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8708	036157	005 03 0 00 033703 		ER5	E,33703			;C(E) WAS CLOBBERED
  8709	036160	321 07 0 00 036146 		JUMPL	AC+2,F33700		;LOOP ON ERROR SWITCH^
  8710
  8711			003371			ADR=ADR+1
  8712		200000	000000			XX=XX+XX
  8713						IFE	XX,<XX=1>
  8714
  8715					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8716			000000			IFG	XX,<V1=0>
  8717						IFL	XX,<V1=-1>
  8718						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8719					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8720					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8721					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8722					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8723
  8724		200000	000000		F33710:	AA1=XX				;INITIAL C(AC)
  8725	036161	200 05 0 00 044042 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8726		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8727	036162	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8728			000001			AEE=1				;INITIAL C(E)
  8729	036163	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8730	036164	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8731			000000			AR1=V1				;EXPECTED RESULT IN AC
  8732	036165	312 05 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8733	036166	003 05 0 00 033711 		ER3	AC,33711		;HIGH PRODUCT FAILED
  8734		200000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8735	036167	312 06 0 00 044042 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8736	036170	004 06 0 00 033712 		ER4	AC+1,33712		;LOW PRODUCT FAILED
  8737			000001			AEE=1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 11-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0179

  8738	036171	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8739	036172	005 03 0 00 033713 		ER5	E,33713			;C(E) WAS CLOBBERED
  8740	036173	321 07 0 00 036161 		JUMPL	AC+2,F33710		;LOOP ON ERROR SWITCH^
  8741
  8742			003372			ADR=ADR+1
  8743		400000	000000			XX=XX+XX
  8744						IFE	XX,<XX=1>
  8745
  8746					;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
  8747						IFG	XX,<V1=0>
  8748		777777	777777			IFL	XX,<V1=-1>
  8749						MOP1	(\ADR,XX,-1,1,V1,XX)^
  8750					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  8751					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8752					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
  8753					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8754
  8755		400000	000000		F33720:	AA1=XX				;INITIAL C(AC)
  8756	036174	200 05 0 00 044043 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8757		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8758	036175	200 06 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8759			000001			AEE=1				;INITIAL C(E)
  8760	036176	200 03 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8761	036177	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8762		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8763	036200	312 05 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8764	036201	003 05 0 00 033721 		ER3	AC,33721		;HIGH PRODUCT FAILED
  8765		400000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8766	036202	312 06 0 00 044043 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8767	036203	004 06 0 00 033722 		ER4	AC+1,33722		;LOW PRODUCT FAILED
  8768			000001			AEE=1				;INITIAL C(E)
  8769	036204	312 03 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8770	036205	005 03 0 00 033723 		ER5	E,33723			;C(E) WAS CLOBBERED
  8771	036206	321 07 0 00 036174 		JUMPL	AC+2,F33720		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0180

  8772			000004			AC=4
  8773			000002			E=<AC-2>&17
  8774						SAVEAC	(1,1)^
  8775	036207	201 06 0 00 036207 		MOVEI	AC+2,.		;SAVE TEST PC
  8776	036210	202 06 0 00 030051 		MOVEM	AC+2,TESTPC
  8777	036211	201 06 0 00 000006 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  8778	036212	202 06 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  8779			000000			XX=0
  8780
  8781						REPEAT	^D36,<
  8782						ADR=ADR+1
  8783						XX=XX+XX
  8784						IFE	XX,<XX=1>
  8785					
  8786					;MULTIPLY A RIPPLED ONE BY -1
  8787						IFG	XX,<
  8788						V1=-1
  8789						V2=-XX>
  8790						IFL	XX,<
  8791						V1=1
  8792						V2=0>
  8793						MOP1	(\ADR,-1,0,XX,V1,V2)>
  8794
  8795			003373			ADR=ADR+1
  8796			000000			XX=XX+XX
  8797			000001			IFE	XX,<XX=1>
  8798
  8799					;MULTIPLY A RIPPLED ONE BY -1
  8800						IFG	XX,<
  8801		777777	777777			V1=-1
  8802		777777	777777			V2=-XX>
  8803						IFL	XX,<
  8804						V1=1
  8805						V2=0>
  8806						MOP1	(\ADR,-1,0,XX,V1,V2)^
  8807					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  8808					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8809					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  8810					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8811
  8812		777777	777777		F33730:	AA1=-1				;INITIAL C(AC)
  8813	036213	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8814			000000			AA2=0				;INITIAL C(AC+1)
  8815	036214	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8816			000001			AEE=XX				;INITIAL C(E)
  8817	036215	200 02 0 00 044000 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8818	036216	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8819		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8820	036217	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8821	036220	003 04 0 00 033731 		ER3	AC,33731		;HIGH PRODUCT FAILED
  8822		777777	777777			AR2=V2				;EXPECTED RESULT IN AC+1
  8823	036221	312 05 0 00 043777 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8824	036222	004 05 0 00 033732 		ER4	AC+1,33732		;LOW PRODUCT FAILED
  8825			000001			AEE=XX				;INITIAL C(E)
  8826	036223	312 02 0 00 044000 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0181

  8827	036224	005 02 0 00 033733 		ER5	E,33733			;C(E) WAS CLOBBERED
  8828	036225	321 06 0 00 036213 		JUMPL	AC+2,F33730		;LOOP ON ERROR SWITCH^
  8829
  8830			003374			ADR=ADR+1
  8831			000002			XX=XX+XX
  8832						IFE	XX,<XX=1>
  8833
  8834					;MULTIPLY A RIPPLED ONE BY -1
  8835						IFG	XX,<
  8836		777777	777777			V1=-1
  8837		777777	777776			V2=-XX>
  8838						IFL	XX,<
  8839						V1=1
  8840						V2=0>
  8841						MOP1	(\ADR,-1,0,XX,V1,V2)^
  8842					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  8843					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8844					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  8845					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8846
  8847		777777	777777		F33740:	AA1=-1				;INITIAL C(AC)
  8848	036226	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8849			000000			AA2=0				;INITIAL C(AC+1)
  8850	036227	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8851			000002			AEE=XX				;INITIAL C(E)
  8852	036230	200 02 0 00 044001 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8853	036231	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8854		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8855	036232	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8856	036233	003 04 0 00 033741 		ER3	AC,33741		;HIGH PRODUCT FAILED
  8857		777777	777776			AR2=V2				;EXPECTED RESULT IN AC+1
  8858	036234	312 05 0 00 044044 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8859	036235	004 05 0 00 033742 		ER4	AC+1,33742		;LOW PRODUCT FAILED
  8860			000002			AEE=XX				;INITIAL C(E)
  8861	036236	312 02 0 00 044001 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8862	036237	005 02 0 00 033743 		ER5	E,33743			;C(E) WAS CLOBBERED
  8863	036240	321 06 0 00 036226 		JUMPL	AC+2,F33740		;LOOP ON ERROR SWITCH^
  8864
  8865			003375			ADR=ADR+1
  8866			000004			XX=XX+XX
  8867						IFE	XX,<XX=1>
  8868
  8869					;MULTIPLY A RIPPLED ONE BY -1
  8870						IFG	XX,<
  8871		777777	777777			V1=-1
  8872		777777	777774			V2=-XX>
  8873						IFL	XX,<
  8874						V1=1
  8875						V2=0>
  8876						MOP1	(\ADR,-1,0,XX,V1,V2)^
  8877					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  8878					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8879					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  8880					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8881
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0182

  8882		777777	777777		F33750:	AA1=-1				;INITIAL C(AC)
  8883	036241	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8884			000000			AA2=0				;INITIAL C(AC+1)
  8885	036242	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8886			000004			AEE=XX				;INITIAL C(E)
  8887	036243	200 02 0 00 044002 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8888	036244	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8889		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8890	036245	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8891	036246	003 04 0 00 033751 		ER3	AC,33751		;HIGH PRODUCT FAILED
  8892		777777	777774			AR2=V2				;EXPECTED RESULT IN AC+1
  8893	036247	312 05 0 00 044123 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8894	036250	004 05 0 00 033752 		ER4	AC+1,33752		;LOW PRODUCT FAILED
  8895			000004			AEE=XX				;INITIAL C(E)
  8896	036251	312 02 0 00 044002 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8897	036252	005 02 0 00 033753 		ER5	E,33753			;C(E) WAS CLOBBERED
  8898	036253	321 06 0 00 036241 		JUMPL	AC+2,F33750		;LOOP ON ERROR SWITCH^
  8899
  8900			003376			ADR=ADR+1
  8901			000010			XX=XX+XX
  8902						IFE	XX,<XX=1>
  8903
  8904					;MULTIPLY A RIPPLED ONE BY -1
  8905						IFG	XX,<
  8906		777777	777777			V1=-1
  8907		777777	777770			V2=-XX>
  8908						IFL	XX,<
  8909						V1=1
  8910						V2=0>
  8911						MOP1	(\ADR,-1,0,XX,V1,V2)^
  8912					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  8913					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8914					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  8915					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8916
  8917		777777	777777		F33760:	AA1=-1				;INITIAL C(AC)
  8918	036254	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8919			000000			AA2=0				;INITIAL C(AC+1)
  8920	036255	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8921			000010			AEE=XX				;INITIAL C(E)
  8922	036256	200 02 0 00 044003 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8923	036257	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8924		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8925	036260	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8926	036261	003 04 0 00 033761 		ER3	AC,33761		;HIGH PRODUCT FAILED
  8927		777777	777770			AR2=V2				;EXPECTED RESULT IN AC+1
  8928	036262	312 05 0 00 044126 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8929	036263	004 05 0 00 033762 		ER4	AC+1,33762		;LOW PRODUCT FAILED
  8930			000010			AEE=XX				;INITIAL C(E)
  8931	036264	312 02 0 00 044003 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8932	036265	005 02 0 00 033763 		ER5	E,33763			;C(E) WAS CLOBBERED
  8933	036266	321 06 0 00 036254 		JUMPL	AC+2,F33760		;LOOP ON ERROR SWITCH^
  8934
  8935			003377			ADR=ADR+1
  8936			000020			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0183

  8937						IFE	XX,<XX=1>
  8938
  8939					;MULTIPLY A RIPPLED ONE BY -1
  8940						IFG	XX,<
  8941		777777	777777			V1=-1
  8942		777777	777760			V2=-XX>
  8943						IFL	XX,<
  8944						V1=1
  8945						V2=0>
  8946						MOP1	(\ADR,-1,0,XX,V1,V2)^
  8947					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  8948					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8949					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  8950					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8951
  8952		777777	777777		F33770:	AA1=-1				;INITIAL C(AC)
  8953	036267	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8954			000000			AA2=0				;INITIAL C(AC+1)
  8955	036270	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8956			000020			AEE=XX				;INITIAL C(E)
  8957	036271	200 02 0 00 044004 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8958	036272	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8959		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8960	036273	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8961	036274	003 04 0 00 033771 		ER3	AC,33771		;HIGH PRODUCT FAILED
  8962		777777	777760			AR2=V2				;EXPECTED RESULT IN AC+1
  8963	036275	312 05 0 00 044135 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8964	036276	004 05 0 00 033772 		ER4	AC+1,33772		;LOW PRODUCT FAILED
  8965			000020			AEE=XX				;INITIAL C(E)
  8966	036277	312 02 0 00 044004 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8967	036300	005 02 0 00 033773 		ER5	E,33773			;C(E) WAS CLOBBERED
  8968	036301	321 06 0 00 036267 		JUMPL	AC+2,F33770		;LOOP ON ERROR SWITCH^
  8969
  8970			003400			ADR=ADR+1
  8971			000040			XX=XX+XX
  8972						IFE	XX,<XX=1>
  8973
  8974					;MULTIPLY A RIPPLED ONE BY -1
  8975						IFG	XX,<
  8976		777777	777777			V1=-1
  8977		777777	777740			V2=-XX>
  8978						IFL	XX,<
  8979						V1=1
  8980						V2=0>
  8981						MOP1	(\ADR,-1,0,XX,V1,V2)^
  8982					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  8983					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  8984					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  8985					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8986
  8987		777777	777777		F34000:	AA1=-1				;INITIAL C(AC)
  8988	036302	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8989			000000			AA2=0				;INITIAL C(AC+1)
  8990	036303	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8991			000040			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0184

  8992	036304	200 02 0 00 044005 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8993	036305	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8994		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8995	036306	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8996	036307	003 04 0 00 034001 		ER3	AC,34001		;HIGH PRODUCT FAILED
  8997		777777	777740			AR2=V2				;EXPECTED RESULT IN AC+1
  8998	036310	312 05 0 00 044136 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8999	036311	004 05 0 00 034002 		ER4	AC+1,34002		;LOW PRODUCT FAILED
  9000			000040			AEE=XX				;INITIAL C(E)
  9001	036312	312 02 0 00 044005 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9002	036313	005 02 0 00 034003 		ER5	E,34003			;C(E) WAS CLOBBERED
  9003	036314	321 06 0 00 036302 		JUMPL	AC+2,F34000		;LOOP ON ERROR SWITCH^
  9004
  9005			003401			ADR=ADR+1
  9006			000100			XX=XX+XX
  9007						IFE	XX,<XX=1>
  9008
  9009					;MULTIPLY A RIPPLED ONE BY -1
  9010						IFG	XX,<
  9011		777777	777777			V1=-1
  9012		777777	777700			V2=-XX>
  9013						IFL	XX,<
  9014						V1=1
  9015						V2=0>
  9016						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9017					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9018					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9019					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9020					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9021
  9022		777777	777777		F34010:	AA1=-1				;INITIAL C(AC)
  9023	036315	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9024			000000			AA2=0				;INITIAL C(AC+1)
  9025	036316	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9026			000100			AEE=XX				;INITIAL C(E)
  9027	036317	200 02 0 00 044006 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9028	036320	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9029		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9030	036321	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9031	036322	003 04 0 00 034011 		ER3	AC,34011		;HIGH PRODUCT FAILED
  9032		777777	777700			AR2=V2				;EXPECTED RESULT IN AC+1
  9033	036323	312 05 0 00 044137 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9034	036324	004 05 0 00 034012 		ER4	AC+1,34012		;LOW PRODUCT FAILED
  9035			000100			AEE=XX				;INITIAL C(E)
  9036	036325	312 02 0 00 044006 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9037	036326	005 02 0 00 034013 		ER5	E,34013			;C(E) WAS CLOBBERED
  9038	036327	321 06 0 00 036315 		JUMPL	AC+2,F34010		;LOOP ON ERROR SWITCH^
  9039
  9040			003402			ADR=ADR+1
  9041			000200			XX=XX+XX
  9042						IFE	XX,<XX=1>
  9043
  9044					;MULTIPLY A RIPPLED ONE BY -1
  9045						IFG	XX,<
  9046		777777	777777			V1=-1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0185

  9047		777777	777600			V2=-XX>
  9048						IFL	XX,<
  9049						V1=1
  9050						V2=0>
  9051						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9052					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9053					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9054					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9055					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9056
  9057		777777	777777		F34020:	AA1=-1				;INITIAL C(AC)
  9058	036330	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9059			000000			AA2=0				;INITIAL C(AC+1)
  9060	036331	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9061			000200			AEE=XX				;INITIAL C(E)
  9062	036332	200 02 0 00 044007 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9063	036333	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9064		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9065	036334	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9066	036335	003 04 0 00 034021 		ER3	AC,34021		;HIGH PRODUCT FAILED
  9067		777777	777600			AR2=V2				;EXPECTED RESULT IN AC+1
  9068	036336	312 05 0 00 044140 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9069	036337	004 05 0 00 034022 		ER4	AC+1,34022		;LOW PRODUCT FAILED
  9070			000200			AEE=XX				;INITIAL C(E)
  9071	036340	312 02 0 00 044007 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9072	036341	005 02 0 00 034023 		ER5	E,34023			;C(E) WAS CLOBBERED
  9073	036342	321 06 0 00 036330 		JUMPL	AC+2,F34020		;LOOP ON ERROR SWITCH^
  9074
  9075			003403			ADR=ADR+1
  9076			000400			XX=XX+XX
  9077						IFE	XX,<XX=1>
  9078
  9079					;MULTIPLY A RIPPLED ONE BY -1
  9080						IFG	XX,<
  9081		777777	777777			V1=-1
  9082		777777	777400			V2=-XX>
  9083						IFL	XX,<
  9084						V1=1
  9085						V2=0>
  9086						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9087					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9088					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9089					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9090					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9091
  9092		777777	777777		F34030:	AA1=-1				;INITIAL C(AC)
  9093	036343	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9094			000000			AA2=0				;INITIAL C(AC+1)
  9095	036344	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9096			000400			AEE=XX				;INITIAL C(E)
  9097	036345	200 02 0 00 044010 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9098	036346	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9099		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9100	036347	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9101	036350	003 04 0 00 034031 		ER3	AC,34031		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0186

  9102		777777	777400			AR2=V2				;EXPECTED RESULT IN AC+1
  9103	036351	312 05 0 00 044141 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9104	036352	004 05 0 00 034032 		ER4	AC+1,34032		;LOW PRODUCT FAILED
  9105			000400			AEE=XX				;INITIAL C(E)
  9106	036353	312 02 0 00 044010 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9107	036354	005 02 0 00 034033 		ER5	E,34033			;C(E) WAS CLOBBERED
  9108	036355	321 06 0 00 036343 		JUMPL	AC+2,F34030		;LOOP ON ERROR SWITCH^
  9109
  9110			003404			ADR=ADR+1
  9111			001000			XX=XX+XX
  9112						IFE	XX,<XX=1>
  9113
  9114					;MULTIPLY A RIPPLED ONE BY -1
  9115						IFG	XX,<
  9116		777777	777777			V1=-1
  9117		777777	777000			V2=-XX>
  9118						IFL	XX,<
  9119						V1=1
  9120						V2=0>
  9121						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9122					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9123					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9124					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9125					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9126
  9127		777777	777777		F34040:	AA1=-1				;INITIAL C(AC)
  9128	036356	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9129			000000			AA2=0				;INITIAL C(AC+1)
  9130	036357	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9131			001000			AEE=XX				;INITIAL C(E)
  9132	036360	200 02 0 00 044011 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9133	036361	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9134		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9135	036362	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9136	036363	003 04 0 00 034041 		ER3	AC,34041		;HIGH PRODUCT FAILED
  9137		777777	777000			AR2=V2				;EXPECTED RESULT IN AC+1
  9138	036364	312 05 0 00 044142 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9139	036365	004 05 0 00 034042 		ER4	AC+1,34042		;LOW PRODUCT FAILED
  9140			001000			AEE=XX				;INITIAL C(E)
  9141	036366	312 02 0 00 044011 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9142	036367	005 02 0 00 034043 		ER5	E,34043			;C(E) WAS CLOBBERED
  9143	036370	321 06 0 00 036356 		JUMPL	AC+2,F34040		;LOOP ON ERROR SWITCH^
  9144
  9145			003405			ADR=ADR+1
  9146			002000			XX=XX+XX
  9147						IFE	XX,<XX=1>
  9148
  9149					;MULTIPLY A RIPPLED ONE BY -1
  9150						IFG	XX,<
  9151		777777	777777			V1=-1
  9152		777777	776000			V2=-XX>
  9153						IFL	XX,<
  9154						V1=1
  9155						V2=0>
  9156						MOP1	(\ADR,-1,0,XX,V1,V2)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0187

  9157					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9158					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9159					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9160					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9161
  9162		777777	777777		F34050:	AA1=-1				;INITIAL C(AC)
  9163	036371	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9164			000000			AA2=0				;INITIAL C(AC+1)
  9165	036372	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9166			002000			AEE=XX				;INITIAL C(E)
  9167	036373	200 02 0 00 044012 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9168	036374	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9169		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9170	036375	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9171	036376	003 04 0 00 034051 		ER3	AC,34051		;HIGH PRODUCT FAILED
  9172		777777	776000			AR2=V2				;EXPECTED RESULT IN AC+1
  9173	036377	312 05 0 00 044143 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9174	036400	004 05 0 00 034052 		ER4	AC+1,34052		;LOW PRODUCT FAILED
  9175			002000			AEE=XX				;INITIAL C(E)
  9176	036401	312 02 0 00 044012 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9177	036402	005 02 0 00 034053 		ER5	E,34053			;C(E) WAS CLOBBERED
  9178	036403	321 06 0 00 036371 		JUMPL	AC+2,F34050		;LOOP ON ERROR SWITCH^
  9179
  9180			003406			ADR=ADR+1
  9181			004000			XX=XX+XX
  9182						IFE	XX,<XX=1>
  9183
  9184					;MULTIPLY A RIPPLED ONE BY -1
  9185						IFG	XX,<
  9186		777777	777777			V1=-1
  9187		777777	774000			V2=-XX>
  9188						IFL	XX,<
  9189						V1=1
  9190						V2=0>
  9191						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9192					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9193					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9194					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9195					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9196
  9197		777777	777777		F34060:	AA1=-1				;INITIAL C(AC)
  9198	036404	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9199			000000			AA2=0				;INITIAL C(AC+1)
  9200	036405	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9201			004000			AEE=XX				;INITIAL C(E)
  9202	036406	200 02 0 00 044013 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9203	036407	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9204		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9205	036410	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9206	036411	003 04 0 00 034061 		ER3	AC,34061		;HIGH PRODUCT FAILED
  9207		777777	774000			AR2=V2				;EXPECTED RESULT IN AC+1
  9208	036412	312 05 0 00 044144 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9209	036413	004 05 0 00 034062 		ER4	AC+1,34062		;LOW PRODUCT FAILED
  9210			004000			AEE=XX				;INITIAL C(E)
  9211	036414	312 02 0 00 044013 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0188

  9212	036415	005 02 0 00 034063 		ER5	E,34063			;C(E) WAS CLOBBERED
  9213	036416	321 06 0 00 036404 		JUMPL	AC+2,F34060		;LOOP ON ERROR SWITCH^
  9214
  9215			003407			ADR=ADR+1
  9216			010000			XX=XX+XX
  9217						IFE	XX,<XX=1>
  9218
  9219					;MULTIPLY A RIPPLED ONE BY -1
  9220						IFG	XX,<
  9221		777777	777777			V1=-1
  9222		777777	770000			V2=-XX>
  9223						IFL	XX,<
  9224						V1=1
  9225						V2=0>
  9226						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9227					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9228					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9229					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9230					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9231
  9232		777777	777777		F34070:	AA1=-1				;INITIAL C(AC)
  9233	036417	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9234			000000			AA2=0				;INITIAL C(AC+1)
  9235	036420	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9236			010000			AEE=XX				;INITIAL C(E)
  9237	036421	200 02 0 00 044014 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9238	036422	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9239		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9240	036423	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9241	036424	003 04 0 00 034071 		ER3	AC,34071		;HIGH PRODUCT FAILED
  9242		777777	770000			AR2=V2				;EXPECTED RESULT IN AC+1
  9243	036425	312 05 0 00 044145 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9244	036426	004 05 0 00 034072 		ER4	AC+1,34072		;LOW PRODUCT FAILED
  9245			010000			AEE=XX				;INITIAL C(E)
  9246	036427	312 02 0 00 044014 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9247	036430	005 02 0 00 034073 		ER5	E,34073			;C(E) WAS CLOBBERED
  9248	036431	321 06 0 00 036417 		JUMPL	AC+2,F34070		;LOOP ON ERROR SWITCH^
  9249
  9250			003410			ADR=ADR+1
  9251			020000			XX=XX+XX
  9252						IFE	XX,<XX=1>
  9253
  9254					;MULTIPLY A RIPPLED ONE BY -1
  9255						IFG	XX,<
  9256		777777	777777			V1=-1
  9257		777777	760000			V2=-XX>
  9258						IFL	XX,<
  9259						V1=1
  9260						V2=0>
  9261						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9262					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9263					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9264					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9265					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9266
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0189

  9267		777777	777777		F34100:	AA1=-1				;INITIAL C(AC)
  9268	036432	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9269			000000			AA2=0				;INITIAL C(AC+1)
  9270	036433	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9271			020000			AEE=XX				;INITIAL C(E)
  9272	036434	200 02 0 00 044015 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9273	036435	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9274		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9275	036436	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9276	036437	003 04 0 00 034101 		ER3	AC,34101		;HIGH PRODUCT FAILED
  9277		777777	760000			AR2=V2				;EXPECTED RESULT IN AC+1
  9278	036440	312 05 0 00 044146 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9279	036441	004 05 0 00 034102 		ER4	AC+1,34102		;LOW PRODUCT FAILED
  9280			020000			AEE=XX				;INITIAL C(E)
  9281	036442	312 02 0 00 044015 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9282	036443	005 02 0 00 034103 		ER5	E,34103			;C(E) WAS CLOBBERED
  9283	036444	321 06 0 00 036432 		JUMPL	AC+2,F34100		;LOOP ON ERROR SWITCH^
  9284
  9285			003411			ADR=ADR+1
  9286			040000			XX=XX+XX
  9287						IFE	XX,<XX=1>
  9288
  9289					;MULTIPLY A RIPPLED ONE BY -1
  9290						IFG	XX,<
  9291		777777	777777			V1=-1
  9292		777777	740000			V2=-XX>
  9293						IFL	XX,<
  9294						V1=1
  9295						V2=0>
  9296						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9297					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9298					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9299					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9300					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9301
  9302		777777	777777		F34110:	AA1=-1				;INITIAL C(AC)
  9303	036445	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9304			000000			AA2=0				;INITIAL C(AC+1)
  9305	036446	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9306			040000			AEE=XX				;INITIAL C(E)
  9307	036447	200 02 0 00 044016 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9308	036450	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9309		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9310	036451	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9311	036452	003 04 0 00 034111 		ER3	AC,34111		;HIGH PRODUCT FAILED
  9312		777777	740000			AR2=V2				;EXPECTED RESULT IN AC+1
  9313	036453	312 05 0 00 044147 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9314	036454	004 05 0 00 034112 		ER4	AC+1,34112		;LOW PRODUCT FAILED
  9315			040000			AEE=XX				;INITIAL C(E)
  9316	036455	312 02 0 00 044016 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9317	036456	005 02 0 00 034113 		ER5	E,34113			;C(E) WAS CLOBBERED
  9318	036457	321 06 0 00 036445 		JUMPL	AC+2,F34110		;LOOP ON ERROR SWITCH^
  9319
  9320			003412			ADR=ADR+1
  9321			100000			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0190

  9322						IFE	XX,<XX=1>
  9323
  9324					;MULTIPLY A RIPPLED ONE BY -1
  9325						IFG	XX,<
  9326		777777	777777			V1=-1
  9327		777777	700000			V2=-XX>
  9328						IFL	XX,<
  9329						V1=1
  9330						V2=0>
  9331						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9332					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9333					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9334					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9335					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9336
  9337		777777	777777		F34120:	AA1=-1				;INITIAL C(AC)
  9338	036460	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9339			000000			AA2=0				;INITIAL C(AC+1)
  9340	036461	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9341			100000			AEE=XX				;INITIAL C(E)
  9342	036462	200 02 0 00 044017 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9343	036463	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9344		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9345	036464	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9346	036465	003 04 0 00 034121 		ER3	AC,34121		;HIGH PRODUCT FAILED
  9347		777777	700000			AR2=V2				;EXPECTED RESULT IN AC+1
  9348	036466	312 05 0 00 044150 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9349	036467	004 05 0 00 034122 		ER4	AC+1,34122		;LOW PRODUCT FAILED
  9350			100000			AEE=XX				;INITIAL C(E)
  9351	036470	312 02 0 00 044017 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9352	036471	005 02 0 00 034123 		ER5	E,34123			;C(E) WAS CLOBBERED
  9353	036472	321 06 0 00 036460 		JUMPL	AC+2,F34120		;LOOP ON ERROR SWITCH^
  9354
  9355			003413			ADR=ADR+1
  9356			200000			XX=XX+XX
  9357						IFE	XX,<XX=1>
  9358
  9359					;MULTIPLY A RIPPLED ONE BY -1
  9360						IFG	XX,<
  9361		777777	777777			V1=-1
  9362		777777	600000			V2=-XX>
  9363						IFL	XX,<
  9364						V1=1
  9365						V2=0>
  9366						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9367					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9368					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9369					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9370					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9371
  9372		777777	777777		F34130:	AA1=-1				;INITIAL C(AC)
  9373	036473	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9374			000000			AA2=0				;INITIAL C(AC+1)
  9375	036474	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9376			200000			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0191

  9377	036475	200 02 0 00 044020 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9378	036476	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9379		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9380	036477	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9381	036500	003 04 0 00 034131 		ER3	AC,34131		;HIGH PRODUCT FAILED
  9382		777777	600000			AR2=V2				;EXPECTED RESULT IN AC+1
  9383	036501	312 05 0 00 044151 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9384	036502	004 05 0 00 034132 		ER4	AC+1,34132		;LOW PRODUCT FAILED
  9385			200000			AEE=XX				;INITIAL C(E)
  9386	036503	312 02 0 00 044020 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9387	036504	005 02 0 00 034133 		ER5	E,34133			;C(E) WAS CLOBBERED
  9388	036505	321 06 0 00 036473 		JUMPL	AC+2,F34130		;LOOP ON ERROR SWITCH^
  9389
  9390			003414			ADR=ADR+1
  9391			400000			XX=XX+XX
  9392						IFE	XX,<XX=1>
  9393
  9394					;MULTIPLY A RIPPLED ONE BY -1
  9395						IFG	XX,<
  9396		777777	777777			V1=-1
  9397		777777	400000			V2=-XX>
  9398						IFL	XX,<
  9399						V1=1
  9400						V2=0>
  9401						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9402					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9403					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9404					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9405					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9406
  9407		777777	777777		F34140:	AA1=-1				;INITIAL C(AC)
  9408	036506	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9409			000000			AA2=0				;INITIAL C(AC+1)
  9410	036507	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9411			400000			AEE=XX				;INITIAL C(E)
  9412	036510	200 02 0 00 044021 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9413	036511	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9414		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9415	036512	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9416	036513	003 04 0 00 034141 		ER3	AC,34141		;HIGH PRODUCT FAILED
  9417		777777	400000			AR2=V2				;EXPECTED RESULT IN AC+1
  9418	036514	312 05 0 00 044152 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9419	036515	004 05 0 00 034142 		ER4	AC+1,34142		;LOW PRODUCT FAILED
  9420			400000			AEE=XX				;INITIAL C(E)
  9421	036516	312 02 0 00 044021 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9422	036517	005 02 0 00 034143 		ER5	E,34143			;C(E) WAS CLOBBERED
  9423	036520	321 06 0 00 036506 		JUMPL	AC+2,F34140		;LOOP ON ERROR SWITCH^
  9424
  9425			003415			ADR=ADR+1
  9426		000001	000000			XX=XX+XX
  9427						IFE	XX,<XX=1>
  9428
  9429					;MULTIPLY A RIPPLED ONE BY -1
  9430						IFG	XX,<
  9431		777777	777777			V1=-1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0192

  9432		777777	000000			V2=-XX>
  9433						IFL	XX,<
  9434						V1=1
  9435						V2=0>
  9436						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9437					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9438					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9439					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9440					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9441
  9442		777777	777777		F34150:	AA1=-1				;INITIAL C(AC)
  9443	036521	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9444			000000			AA2=0				;INITIAL C(AC+1)
  9445	036522	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9446		000001	000000			AEE=XX				;INITIAL C(E)
  9447	036523	200 02 0 00 044022 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9448	036524	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9449		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9450	036525	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9451	036526	003 04 0 00 034151 		ER3	AC,34151		;HIGH PRODUCT FAILED
  9452		777777	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9453	036527	312 05 0 00 044153 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9454	036530	004 05 0 00 034152 		ER4	AC+1,34152		;LOW PRODUCT FAILED
  9455		000001	000000			AEE=XX				;INITIAL C(E)
  9456	036531	312 02 0 00 044022 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9457	036532	005 02 0 00 034153 		ER5	E,34153			;C(E) WAS CLOBBERED
  9458	036533	321 06 0 00 036521 		JUMPL	AC+2,F34150		;LOOP ON ERROR SWITCH^
  9459
  9460			003416			ADR=ADR+1
  9461		000002	000000			XX=XX+XX
  9462						IFE	XX,<XX=1>
  9463
  9464					;MULTIPLY A RIPPLED ONE BY -1
  9465						IFG	XX,<
  9466		777777	777777			V1=-1
  9467		777776	000000			V2=-XX>
  9468						IFL	XX,<
  9469						V1=1
  9470						V2=0>
  9471						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9472					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9473					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9474					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9475					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9476
  9477		777777	777777		F34160:	AA1=-1				;INITIAL C(AC)
  9478	036534	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9479			000000			AA2=0				;INITIAL C(AC+1)
  9480	036535	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9481		000002	000000			AEE=XX				;INITIAL C(E)
  9482	036536	200 02 0 00 044023 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9483	036537	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9484		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9485	036540	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9486	036541	003 04 0 00 034161 		ER3	AC,34161		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0193

  9487		777776	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9488	036542	312 05 0 00 044154 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9489	036543	004 05 0 00 034162 		ER4	AC+1,34162		;LOW PRODUCT FAILED
  9490		000002	000000			AEE=XX				;INITIAL C(E)
  9491	036544	312 02 0 00 044023 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9492	036545	005 02 0 00 034163 		ER5	E,34163			;C(E) WAS CLOBBERED
  9493	036546	321 06 0 00 036534 		JUMPL	AC+2,F34160		;LOOP ON ERROR SWITCH^
  9494
  9495			003417			ADR=ADR+1
  9496		000004	000000			XX=XX+XX
  9497						IFE	XX,<XX=1>
  9498
  9499					;MULTIPLY A RIPPLED ONE BY -1
  9500						IFG	XX,<
  9501		777777	777777			V1=-1
  9502		777774	000000			V2=-XX>
  9503						IFL	XX,<
  9504						V1=1
  9505						V2=0>
  9506						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9507					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9508					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9509					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9510					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9511
  9512		777777	777777		F34170:	AA1=-1				;INITIAL C(AC)
  9513	036547	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9514			000000			AA2=0				;INITIAL C(AC+1)
  9515	036550	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9516		000004	000000			AEE=XX				;INITIAL C(E)
  9517	036551	200 02 0 00 044024 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9518	036552	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9519		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9520	036553	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9521	036554	003 04 0 00 034171 		ER3	AC,34171		;HIGH PRODUCT FAILED
  9522		777774	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9523	036555	312 05 0 00 044155 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9524	036556	004 05 0 00 034172 		ER4	AC+1,34172		;LOW PRODUCT FAILED
  9525		000004	000000			AEE=XX				;INITIAL C(E)
  9526	036557	312 02 0 00 044024 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9527	036560	005 02 0 00 034173 		ER5	E,34173			;C(E) WAS CLOBBERED
  9528	036561	321 06 0 00 036547 		JUMPL	AC+2,F34170		;LOOP ON ERROR SWITCH^
  9529
  9530			003420			ADR=ADR+1
  9531		000010	000000			XX=XX+XX
  9532						IFE	XX,<XX=1>
  9533
  9534					;MULTIPLY A RIPPLED ONE BY -1
  9535						IFG	XX,<
  9536		777777	777777			V1=-1
  9537		777770	000000			V2=-XX>
  9538						IFL	XX,<
  9539						V1=1
  9540						V2=0>
  9541						MOP1	(\ADR,-1,0,XX,V1,V2)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0194

  9542					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9543					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9544					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9545					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9546
  9547		777777	777777		F34200:	AA1=-1				;INITIAL C(AC)
  9548	036562	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9549			000000			AA2=0				;INITIAL C(AC+1)
  9550	036563	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9551		000010	000000			AEE=XX				;INITIAL C(E)
  9552	036564	200 02 0 00 044025 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9553	036565	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9554		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9555	036566	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9556	036567	003 04 0 00 034201 		ER3	AC,34201		;HIGH PRODUCT FAILED
  9557		777770	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9558	036570	312 05 0 00 044156 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9559	036571	004 05 0 00 034202 		ER4	AC+1,34202		;LOW PRODUCT FAILED
  9560		000010	000000			AEE=XX				;INITIAL C(E)
  9561	036572	312 02 0 00 044025 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9562	036573	005 02 0 00 034203 		ER5	E,34203			;C(E) WAS CLOBBERED
  9563	036574	321 06 0 00 036562 		JUMPL	AC+2,F34200		;LOOP ON ERROR SWITCH^
  9564
  9565			003421			ADR=ADR+1
  9566		000020	000000			XX=XX+XX
  9567						IFE	XX,<XX=1>
  9568
  9569					;MULTIPLY A RIPPLED ONE BY -1
  9570						IFG	XX,<
  9571		777777	777777			V1=-1
  9572		777760	000000			V2=-XX>
  9573						IFL	XX,<
  9574						V1=1
  9575						V2=0>
  9576						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9577					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9578					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9579					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9580					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9581
  9582		777777	777777		F34210:	AA1=-1				;INITIAL C(AC)
  9583	036575	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9584			000000			AA2=0				;INITIAL C(AC+1)
  9585	036576	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9586		000020	000000			AEE=XX				;INITIAL C(E)
  9587	036577	200 02 0 00 044026 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9588	036600	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9589		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9590	036601	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9591	036602	003 04 0 00 034211 		ER3	AC,34211		;HIGH PRODUCT FAILED
  9592		777760	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9593	036603	312 05 0 00 044157 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9594	036604	004 05 0 00 034212 		ER4	AC+1,34212		;LOW PRODUCT FAILED
  9595		000020	000000			AEE=XX				;INITIAL C(E)
  9596	036605	312 02 0 00 044026 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0195

  9597	036606	005 02 0 00 034213 		ER5	E,34213			;C(E) WAS CLOBBERED
  9598	036607	321 06 0 00 036575 		JUMPL	AC+2,F34210		;LOOP ON ERROR SWITCH^
  9599
  9600			003422			ADR=ADR+1
  9601		000040	000000			XX=XX+XX
  9602						IFE	XX,<XX=1>
  9603
  9604					;MULTIPLY A RIPPLED ONE BY -1
  9605						IFG	XX,<
  9606		777777	777777			V1=-1
  9607		777740	000000			V2=-XX>
  9608						IFL	XX,<
  9609						V1=1
  9610						V2=0>
  9611						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9612					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9613					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9614					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9615					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9616
  9617		777777	777777		F34220:	AA1=-1				;INITIAL C(AC)
  9618	036610	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9619			000000			AA2=0				;INITIAL C(AC+1)
  9620	036611	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9621		000040	000000			AEE=XX				;INITIAL C(E)
  9622	036612	200 02 0 00 044027 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9623	036613	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9624		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9625	036614	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9626	036615	003 04 0 00 034221 		ER3	AC,34221		;HIGH PRODUCT FAILED
  9627		777740	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9628	036616	312 05 0 00 044160 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9629	036617	004 05 0 00 034222 		ER4	AC+1,34222		;LOW PRODUCT FAILED
  9630		000040	000000			AEE=XX				;INITIAL C(E)
  9631	036620	312 02 0 00 044027 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9632	036621	005 02 0 00 034223 		ER5	E,34223			;C(E) WAS CLOBBERED
  9633	036622	321 06 0 00 036610 		JUMPL	AC+2,F34220		;LOOP ON ERROR SWITCH^
  9634
  9635			003423			ADR=ADR+1
  9636		000100	000000			XX=XX+XX
  9637						IFE	XX,<XX=1>
  9638
  9639					;MULTIPLY A RIPPLED ONE BY -1
  9640						IFG	XX,<
  9641		777777	777777			V1=-1
  9642		777700	000000			V2=-XX>
  9643						IFL	XX,<
  9644						V1=1
  9645						V2=0>
  9646						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9647					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9648					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9649					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9650					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9651
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0196

  9652		777777	777777		F34230:	AA1=-1				;INITIAL C(AC)
  9653	036623	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9654			000000			AA2=0				;INITIAL C(AC+1)
  9655	036624	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9656		000100	000000			AEE=XX				;INITIAL C(E)
  9657	036625	200 02 0 00 044030 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9658	036626	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9659		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9660	036627	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9661	036630	003 04 0 00 034231 		ER3	AC,34231		;HIGH PRODUCT FAILED
  9662		777700	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9663	036631	312 05 0 00 044161 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9664	036632	004 05 0 00 034232 		ER4	AC+1,34232		;LOW PRODUCT FAILED
  9665		000100	000000			AEE=XX				;INITIAL C(E)
  9666	036633	312 02 0 00 044030 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9667	036634	005 02 0 00 034233 		ER5	E,34233			;C(E) WAS CLOBBERED
  9668	036635	321 06 0 00 036623 		JUMPL	AC+2,F34230		;LOOP ON ERROR SWITCH^
  9669
  9670			003424			ADR=ADR+1
  9671		000200	000000			XX=XX+XX
  9672						IFE	XX,<XX=1>
  9673
  9674					;MULTIPLY A RIPPLED ONE BY -1
  9675						IFG	XX,<
  9676		777777	777777			V1=-1
  9677		777600	000000			V2=-XX>
  9678						IFL	XX,<
  9679						V1=1
  9680						V2=0>
  9681						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9682					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9683					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9684					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9685					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9686
  9687		777777	777777		F34240:	AA1=-1				;INITIAL C(AC)
  9688	036636	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9689			000000			AA2=0				;INITIAL C(AC+1)
  9690	036637	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9691		000200	000000			AEE=XX				;INITIAL C(E)
  9692	036640	200 02 0 00 044031 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9693	036641	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9694		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9695	036642	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9696	036643	003 04 0 00 034241 		ER3	AC,34241		;HIGH PRODUCT FAILED
  9697		777600	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9698	036644	312 05 0 00 044162 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9699	036645	004 05 0 00 034242 		ER4	AC+1,34242		;LOW PRODUCT FAILED
  9700		000200	000000			AEE=XX				;INITIAL C(E)
  9701	036646	312 02 0 00 044031 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9702	036647	005 02 0 00 034243 		ER5	E,34243			;C(E) WAS CLOBBERED
  9703	036650	321 06 0 00 036636 		JUMPL	AC+2,F34240		;LOOP ON ERROR SWITCH^
  9704
  9705			003425			ADR=ADR+1
  9706		000400	000000			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0197

  9707						IFE	XX,<XX=1>
  9708
  9709					;MULTIPLY A RIPPLED ONE BY -1
  9710						IFG	XX,<
  9711		777777	777777			V1=-1
  9712		777400	000000			V2=-XX>
  9713						IFL	XX,<
  9714						V1=1
  9715						V2=0>
  9716						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9717					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9718					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9719					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9720					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9721
  9722		777777	777777		F34250:	AA1=-1				;INITIAL C(AC)
  9723	036651	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9724			000000			AA2=0				;INITIAL C(AC+1)
  9725	036652	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9726		000400	000000			AEE=XX				;INITIAL C(E)
  9727	036653	200 02 0 00 044032 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9728	036654	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9729		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9730	036655	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9731	036656	003 04 0 00 034251 		ER3	AC,34251		;HIGH PRODUCT FAILED
  9732		777400	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9733	036657	312 05 0 00 044163 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9734	036660	004 05 0 00 034252 		ER4	AC+1,34252		;LOW PRODUCT FAILED
  9735		000400	000000			AEE=XX				;INITIAL C(E)
  9736	036661	312 02 0 00 044032 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9737	036662	005 02 0 00 034253 		ER5	E,34253			;C(E) WAS CLOBBERED
  9738	036663	321 06 0 00 036651 		JUMPL	AC+2,F34250		;LOOP ON ERROR SWITCH^
  9739
  9740			003426			ADR=ADR+1
  9741		001000	000000			XX=XX+XX
  9742						IFE	XX,<XX=1>
  9743
  9744					;MULTIPLY A RIPPLED ONE BY -1
  9745						IFG	XX,<
  9746		777777	777777			V1=-1
  9747		777000	000000			V2=-XX>
  9748						IFL	XX,<
  9749						V1=1
  9750						V2=0>
  9751						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9752					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9753					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9754					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9755					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9756
  9757		777777	777777		F34260:	AA1=-1				;INITIAL C(AC)
  9758	036664	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9759			000000			AA2=0				;INITIAL C(AC+1)
  9760	036665	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9761		001000	000000			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0198

  9762	036666	200 02 0 00 044033 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9763	036667	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9764		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9765	036670	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9766	036671	003 04 0 00 034261 		ER3	AC,34261		;HIGH PRODUCT FAILED
  9767		777000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9768	036672	312 05 0 00 044164 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9769	036673	004 05 0 00 034262 		ER4	AC+1,34262		;LOW PRODUCT FAILED
  9770		001000	000000			AEE=XX				;INITIAL C(E)
  9771	036674	312 02 0 00 044033 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9772	036675	005 02 0 00 034263 		ER5	E,34263			;C(E) WAS CLOBBERED
  9773	036676	321 06 0 00 036664 		JUMPL	AC+2,F34260		;LOOP ON ERROR SWITCH^
  9774
  9775			003427			ADR=ADR+1
  9776		002000	000000			XX=XX+XX
  9777						IFE	XX,<XX=1>
  9778
  9779					;MULTIPLY A RIPPLED ONE BY -1
  9780						IFG	XX,<
  9781		777777	777777			V1=-1
  9782		776000	000000			V2=-XX>
  9783						IFL	XX,<
  9784						V1=1
  9785						V2=0>
  9786						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9787					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9788					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9789					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9790					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9791
  9792		777777	777777		F34270:	AA1=-1				;INITIAL C(AC)
  9793	036677	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9794			000000			AA2=0				;INITIAL C(AC+1)
  9795	036700	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9796		002000	000000			AEE=XX				;INITIAL C(E)
  9797	036701	200 02 0 00 044034 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9798	036702	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9799		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9800	036703	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9801	036704	003 04 0 00 034271 		ER3	AC,34271		;HIGH PRODUCT FAILED
  9802		776000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9803	036705	312 05 0 00 044165 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9804	036706	004 05 0 00 034272 		ER4	AC+1,34272		;LOW PRODUCT FAILED
  9805		002000	000000			AEE=XX				;INITIAL C(E)
  9806	036707	312 02 0 00 044034 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9807	036710	005 02 0 00 034273 		ER5	E,34273			;C(E) WAS CLOBBERED
  9808	036711	321 06 0 00 036677 		JUMPL	AC+2,F34270		;LOOP ON ERROR SWITCH^
  9809
  9810			003430			ADR=ADR+1
  9811		004000	000000			XX=XX+XX
  9812						IFE	XX,<XX=1>
  9813
  9814					;MULTIPLY A RIPPLED ONE BY -1
  9815						IFG	XX,<
  9816		777777	777777			V1=-1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0199

  9817		774000	000000			V2=-XX>
  9818						IFL	XX,<
  9819						V1=1
  9820						V2=0>
  9821						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9822					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9823					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9824					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9825					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9826
  9827		777777	777777		F34300:	AA1=-1				;INITIAL C(AC)
  9828	036712	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9829			000000			AA2=0				;INITIAL C(AC+1)
  9830	036713	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9831		004000	000000			AEE=XX				;INITIAL C(E)
  9832	036714	200 02 0 00 044035 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9833	036715	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9834		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9835	036716	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9836	036717	003 04 0 00 034301 		ER3	AC,34301		;HIGH PRODUCT FAILED
  9837		774000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9838	036720	312 05 0 00 044166 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9839	036721	004 05 0 00 034302 		ER4	AC+1,34302		;LOW PRODUCT FAILED
  9840		004000	000000			AEE=XX				;INITIAL C(E)
  9841	036722	312 02 0 00 044035 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9842	036723	005 02 0 00 034303 		ER5	E,34303			;C(E) WAS CLOBBERED
  9843	036724	321 06 0 00 036712 		JUMPL	AC+2,F34300		;LOOP ON ERROR SWITCH^
  9844
  9845			003431			ADR=ADR+1
  9846		010000	000000			XX=XX+XX
  9847						IFE	XX,<XX=1>
  9848
  9849					;MULTIPLY A RIPPLED ONE BY -1
  9850						IFG	XX,<
  9851		777777	777777			V1=-1
  9852		770000	000000			V2=-XX>
  9853						IFL	XX,<
  9854						V1=1
  9855						V2=0>
  9856						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9857					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9858					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9859					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9860					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9861
  9862		777777	777777		F34310:	AA1=-1				;INITIAL C(AC)
  9863	036725	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9864			000000			AA2=0				;INITIAL C(AC+1)
  9865	036726	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9866		010000	000000			AEE=XX				;INITIAL C(E)
  9867	036727	200 02 0 00 044036 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9868	036730	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9869		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9870	036731	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9871	036732	003 04 0 00 034311 		ER3	AC,34311		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0200

  9872		770000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9873	036733	312 05 0 00 044167 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9874	036734	004 05 0 00 034312 		ER4	AC+1,34312		;LOW PRODUCT FAILED
  9875		010000	000000			AEE=XX				;INITIAL C(E)
  9876	036735	312 02 0 00 044036 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9877	036736	005 02 0 00 034313 		ER5	E,34313			;C(E) WAS CLOBBERED
  9878	036737	321 06 0 00 036725 		JUMPL	AC+2,F34310		;LOOP ON ERROR SWITCH^
  9879
  9880			003432			ADR=ADR+1
  9881		020000	000000			XX=XX+XX
  9882						IFE	XX,<XX=1>
  9883
  9884					;MULTIPLY A RIPPLED ONE BY -1
  9885						IFG	XX,<
  9886		777777	777777			V1=-1
  9887		760000	000000			V2=-XX>
  9888						IFL	XX,<
  9889						V1=1
  9890						V2=0>
  9891						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9892					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9893					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9894					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9895					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9896
  9897		777777	777777		F34320:	AA1=-1				;INITIAL C(AC)
  9898	036740	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9899			000000			AA2=0				;INITIAL C(AC+1)
  9900	036741	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9901		020000	000000			AEE=XX				;INITIAL C(E)
  9902	036742	200 02 0 00 044037 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9903	036743	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9904		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9905	036744	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9906	036745	003 04 0 00 034321 		ER3	AC,34321		;HIGH PRODUCT FAILED
  9907		760000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9908	036746	312 05 0 00 044170 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9909	036747	004 05 0 00 034322 		ER4	AC+1,34322		;LOW PRODUCT FAILED
  9910		020000	000000			AEE=XX				;INITIAL C(E)
  9911	036750	312 02 0 00 044037 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9912	036751	005 02 0 00 034323 		ER5	E,34323			;C(E) WAS CLOBBERED
  9913	036752	321 06 0 00 036740 		JUMPL	AC+2,F34320		;LOOP ON ERROR SWITCH^
  9914
  9915			003433			ADR=ADR+1
  9916		040000	000000			XX=XX+XX
  9917						IFE	XX,<XX=1>
  9918
  9919					;MULTIPLY A RIPPLED ONE BY -1
  9920						IFG	XX,<
  9921		777777	777777			V1=-1
  9922		740000	000000			V2=-XX>
  9923						IFL	XX,<
  9924						V1=1
  9925						V2=0>
  9926						MOP1	(\ADR,-1,0,XX,V1,V2)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-21
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0201

  9927					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9928					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9929					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9930					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9931
  9932		777777	777777		F34330:	AA1=-1				;INITIAL C(AC)
  9933	036753	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9934			000000			AA2=0				;INITIAL C(AC+1)
  9935	036754	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9936		040000	000000			AEE=XX				;INITIAL C(E)
  9937	036755	200 02 0 00 044040 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9938	036756	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9939		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9940	036757	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9941	036760	003 04 0 00 034331 		ER3	AC,34331		;HIGH PRODUCT FAILED
  9942		740000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9943	036761	312 05 0 00 044171 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9944	036762	004 05 0 00 034332 		ER4	AC+1,34332		;LOW PRODUCT FAILED
  9945		040000	000000			AEE=XX				;INITIAL C(E)
  9946	036763	312 02 0 00 044040 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9947	036764	005 02 0 00 034333 		ER5	E,34333			;C(E) WAS CLOBBERED
  9948	036765	321 06 0 00 036753 		JUMPL	AC+2,F34330		;LOOP ON ERROR SWITCH^
  9949
  9950			003434			ADR=ADR+1
  9951		100000	000000			XX=XX+XX
  9952						IFE	XX,<XX=1>
  9953
  9954					;MULTIPLY A RIPPLED ONE BY -1
  9955						IFG	XX,<
  9956		777777	777777			V1=-1
  9957		700000	000000			V2=-XX>
  9958						IFL	XX,<
  9959						V1=1
  9960						V2=0>
  9961						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9962					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9963					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9964					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
  9965					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  9966
  9967		777777	777777		F34340:	AA1=-1				;INITIAL C(AC)
  9968	036766	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9969			000000			AA2=0				;INITIAL C(AC+1)
  9970	036767	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9971		100000	000000			AEE=XX				;INITIAL C(E)
  9972	036770	200 02 0 00 044041 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9973	036771	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9974		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9975	036772	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9976	036773	003 04 0 00 034341 		ER3	AC,34341		;HIGH PRODUCT FAILED
  9977		700000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9978	036774	312 05 0 00 044172 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9979	036775	004 05 0 00 034342 		ER4	AC+1,34342		;LOW PRODUCT FAILED
  9980		100000	000000			AEE=XX				;INITIAL C(E)
  9981	036776	312 02 0 00 044041 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-22
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0202

  9982	036777	005 02 0 00 034343 		ER5	E,34343			;C(E) WAS CLOBBERED
  9983	037000	321 06 0 00 036766 		JUMPL	AC+2,F34340		;LOOP ON ERROR SWITCH^
  9984
  9985			003435			ADR=ADR+1
  9986		200000	000000			XX=XX+XX
  9987						IFE	XX,<XX=1>
  9988
  9989					;MULTIPLY A RIPPLED ONE BY -1
  9990						IFG	XX,<
  9991		777777	777777			V1=-1
  9992		600000	000000			V2=-XX>
  9993						IFL	XX,<
  9994						V1=1
  9995						V2=0>
  9996						MOP1	(\ADR,-1,0,XX,V1,V2)^
  9997					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
  9998					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  9999					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
 10000					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10001
 10002		777777	777777		F34350:	AA1=-1				;INITIAL C(AC)
 10003	037001	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 10004			000000			AA2=0				;INITIAL C(AC+1)
 10005	037002	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10006		200000	000000			AEE=XX				;INITIAL C(E)
 10007	037003	200 02 0 00 044042 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 10008	037004	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10009		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10010	037005	312 04 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10011	037006	003 04 0 00 034351 		ER3	AC,34351		;HIGH PRODUCT FAILED
 10012		600000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10013	037007	312 05 0 00 044173 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10014	037010	004 05 0 00 034352 		ER4	AC+1,34352		;LOW PRODUCT FAILED
 10015		200000	000000			AEE=XX				;INITIAL C(E)
 10016	037011	312 02 0 00 044042 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 10017	037012	005 02 0 00 034353 		ER5	E,34353			;C(E) WAS CLOBBERED
 10018	037013	321 06 0 00 037001 		JUMPL	AC+2,F34350		;LOOP ON ERROR SWITCH^
 10019
 10020			003436			ADR=ADR+1
 10021		400000	000000			XX=XX+XX
 10022						IFE	XX,<XX=1>
 10023
 10024					;MULTIPLY A RIPPLED ONE BY -1
 10025						IFG	XX,<
 10026						V1=-1
 10027						V2=-XX>
 10028						IFL	XX,<
 10029			000001			V1=1
 10030			000000			V2=0>
 10031						MOP1	(\ADR,-1,0,XX,V1,V2)^
 10032					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND
 10033					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10034					;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY.
 10035					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10036
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 12-23
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0203

 10037		777777	777777		F34360:	AA1=-1				;INITIAL C(AC)
 10038	037014	200 04 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 10039			000000			AA2=0				;INITIAL C(AC+1)
 10040	037015	200 05 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10041		400000	000000			AEE=XX				;INITIAL C(E)
 10042	037016	200 02 0 00 044043 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 10043	037017	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10044			000001			AR1=V1				;EXPECTED RESULT IN AC
 10045	037020	312 04 0 00 044000 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10046	037021	003 04 0 00 034361 		ER3	AC,34361		;HIGH PRODUCT FAILED
 10047			000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10048	037022	312 05 0 00 043776 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10049	037023	004 05 0 00 034362 		ER4	AC+1,34362		;LOW PRODUCT FAILED
 10050		400000	000000			AEE=XX				;INITIAL C(E)
 10051	037024	312 02 0 00 044043 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 10052	037025	005 02 0 00 034363 		ER5	E,34363			;C(E) WAS CLOBBERED
 10053	037026	321 06 0 00 037014 		JUMPL	AC+2,F34360		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0204

 10054			000003			AC=3
 10055			000001			E=<AC-2>&17
 10056						SAVEAC	(1,1)^
 10057	037027	201 05 0 00 037027 		MOVEI	AC+2,.		;SAVE TEST PC
 10058	037030	202 05 0 00 030051 		MOVEM	AC+2,TESTPC
 10059	037031	201 05 0 00 000005 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 10060	037032	202 05 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
 10061			000000			XX=0
 10062
 10063						REPEAT	^D36,<
 10064						ADR=ADR+1
 10065						XX=XX+XX
 10066						IFE	XX,<XX=1>
 10067					
 10068					;MULTIPLY -1 BY A RIPPLED 1
 10069						IFG	XX,<
 10070						V1=-1
 10071						V2=-XX>
 10072						IFL	XX,<
 10073						V1=1
 10074						V2=0>
 10075						MOP1	(\ADR,XX,0,-1,V1,V2)>
 10076
 10077			003437			ADR=ADR+1
 10078			000000			XX=XX+XX
 10079			000001			IFE	XX,<XX=1>
 10080
 10081					;MULTIPLY -1 BY A RIPPLED 1
 10082						IFG	XX,<
 10083		777777	777777			V1=-1
 10084		777777	777777			V2=-XX>
 10085						IFL	XX,<
 10086						V1=1
 10087						V2=0>
 10088						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10089					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10090					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10091					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10092					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10093
 10094			000001		F34370:	AA1=XX				;INITIAL C(AC)
 10095	037033	200 03 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10096			000000			AA2=0				;INITIAL C(AC+1)
 10097	037034	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10098		777777	777777			AEE=-1				;INITIAL C(E)
 10099	037035	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10100	037036	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10101		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10102	037037	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10103	037040	003 03 0 00 034371 		ER3	AC,34371		;HIGH PRODUCT FAILED
 10104		777777	777777			AR2=V2				;EXPECTED RESULT IN AC+1
 10105	037041	312 04 0 00 043777 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10106	037042	004 04 0 00 034372 		ER4	AC+1,34372		;LOW PRODUCT FAILED
 10107		777777	777777			AEE=-1				;INITIAL C(E)
 10108	037043	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0205

 10109	037044	005 01 0 00 034373 		ER5	E,34373			;C(E) WAS CLOBBERED
 10110	037045	321 05 0 00 037033 		JUMPL	AC+2,F34370		;LOOP ON ERROR SWITCH^
 10111
 10112			003440			ADR=ADR+1
 10113			000002			XX=XX+XX
 10114						IFE	XX,<XX=1>
 10115
 10116					;MULTIPLY -1 BY A RIPPLED 1
 10117						IFG	XX,<
 10118		777777	777777			V1=-1
 10119		777777	777776			V2=-XX>
 10120						IFL	XX,<
 10121						V1=1
 10122						V2=0>
 10123						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10124					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10125					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10126					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10127					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10128
 10129			000002		F34400:	AA1=XX				;INITIAL C(AC)
 10130	037046	200 03 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10131			000000			AA2=0				;INITIAL C(AC+1)
 10132	037047	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10133		777777	777777			AEE=-1				;INITIAL C(E)
 10134	037050	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10135	037051	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10136		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10137	037052	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10138	037053	003 03 0 00 034401 		ER3	AC,34401		;HIGH PRODUCT FAILED
 10139		777777	777776			AR2=V2				;EXPECTED RESULT IN AC+1
 10140	037054	312 04 0 00 044044 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10141	037055	004 04 0 00 034402 		ER4	AC+1,34402		;LOW PRODUCT FAILED
 10142		777777	777777			AEE=-1				;INITIAL C(E)
 10143	037056	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10144	037057	005 01 0 00 034403 		ER5	E,34403			;C(E) WAS CLOBBERED
 10145	037060	321 05 0 00 037046 		JUMPL	AC+2,F34400		;LOOP ON ERROR SWITCH^
 10146
 10147			003441			ADR=ADR+1
 10148			000004			XX=XX+XX
 10149						IFE	XX,<XX=1>
 10150
 10151					;MULTIPLY -1 BY A RIPPLED 1
 10152						IFG	XX,<
 10153		777777	777777			V1=-1
 10154		777777	777774			V2=-XX>
 10155						IFL	XX,<
 10156						V1=1
 10157						V2=0>
 10158						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10159					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10160					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10161					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10162					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10163
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0206

 10164			000004		F34410:	AA1=XX				;INITIAL C(AC)
 10165	037061	200 03 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10166			000000			AA2=0				;INITIAL C(AC+1)
 10167	037062	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10168		777777	777777			AEE=-1				;INITIAL C(E)
 10169	037063	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10170	037064	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10171		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10172	037065	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10173	037066	003 03 0 00 034411 		ER3	AC,34411		;HIGH PRODUCT FAILED
 10174		777777	777774			AR2=V2				;EXPECTED RESULT IN AC+1
 10175	037067	312 04 0 00 044123 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10176	037070	004 04 0 00 034412 		ER4	AC+1,34412		;LOW PRODUCT FAILED
 10177		777777	777777			AEE=-1				;INITIAL C(E)
 10178	037071	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10179	037072	005 01 0 00 034413 		ER5	E,34413			;C(E) WAS CLOBBERED
 10180	037073	321 05 0 00 037061 		JUMPL	AC+2,F34410		;LOOP ON ERROR SWITCH^
 10181
 10182			003442			ADR=ADR+1
 10183			000010			XX=XX+XX
 10184						IFE	XX,<XX=1>
 10185
 10186					;MULTIPLY -1 BY A RIPPLED 1
 10187						IFG	XX,<
 10188		777777	777777			V1=-1
 10189		777777	777770			V2=-XX>
 10190						IFL	XX,<
 10191						V1=1
 10192						V2=0>
 10193						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10194					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10195					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10196					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10197					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10198
 10199			000010		F34420:	AA1=XX				;INITIAL C(AC)
 10200	037074	200 03 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10201			000000			AA2=0				;INITIAL C(AC+1)
 10202	037075	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10203		777777	777777			AEE=-1				;INITIAL C(E)
 10204	037076	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10205	037077	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10206		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10207	037100	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10208	037101	003 03 0 00 034421 		ER3	AC,34421		;HIGH PRODUCT FAILED
 10209		777777	777770			AR2=V2				;EXPECTED RESULT IN AC+1
 10210	037102	312 04 0 00 044126 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10211	037103	004 04 0 00 034422 		ER4	AC+1,34422		;LOW PRODUCT FAILED
 10212		777777	777777			AEE=-1				;INITIAL C(E)
 10213	037104	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10214	037105	005 01 0 00 034423 		ER5	E,34423			;C(E) WAS CLOBBERED
 10215	037106	321 05 0 00 037074 		JUMPL	AC+2,F34420		;LOOP ON ERROR SWITCH^
 10216
 10217			003443			ADR=ADR+1
 10218			000020			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0207

 10219						IFE	XX,<XX=1>
 10220
 10221					;MULTIPLY -1 BY A RIPPLED 1
 10222						IFG	XX,<
 10223		777777	777777			V1=-1
 10224		777777	777760			V2=-XX>
 10225						IFL	XX,<
 10226						V1=1
 10227						V2=0>
 10228						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10229					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10230					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10231					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10232					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10233
 10234			000020		F34430:	AA1=XX				;INITIAL C(AC)
 10235	037107	200 03 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10236			000000			AA2=0				;INITIAL C(AC+1)
 10237	037110	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10238		777777	777777			AEE=-1				;INITIAL C(E)
 10239	037111	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10240	037112	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10241		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10242	037113	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10243	037114	003 03 0 00 034431 		ER3	AC,34431		;HIGH PRODUCT FAILED
 10244		777777	777760			AR2=V2				;EXPECTED RESULT IN AC+1
 10245	037115	312 04 0 00 044135 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10246	037116	004 04 0 00 034432 		ER4	AC+1,34432		;LOW PRODUCT FAILED
 10247		777777	777777			AEE=-1				;INITIAL C(E)
 10248	037117	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10249	037120	005 01 0 00 034433 		ER5	E,34433			;C(E) WAS CLOBBERED
 10250	037121	321 05 0 00 037107 		JUMPL	AC+2,F34430		;LOOP ON ERROR SWITCH^
 10251
 10252			003444			ADR=ADR+1
 10253			000040			XX=XX+XX
 10254						IFE	XX,<XX=1>
 10255
 10256					;MULTIPLY -1 BY A RIPPLED 1
 10257						IFG	XX,<
 10258		777777	777777			V1=-1
 10259		777777	777740			V2=-XX>
 10260						IFL	XX,<
 10261						V1=1
 10262						V2=0>
 10263						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10264					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10265					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10266					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10267					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10268
 10269			000040		F34440:	AA1=XX				;INITIAL C(AC)
 10270	037122	200 03 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10271			000000			AA2=0				;INITIAL C(AC+1)
 10272	037123	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10273		777777	777777			AEE=-1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0208

 10274	037124	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10275	037125	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10276		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10277	037126	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10278	037127	003 03 0 00 034441 		ER3	AC,34441		;HIGH PRODUCT FAILED
 10279		777777	777740			AR2=V2				;EXPECTED RESULT IN AC+1
 10280	037130	312 04 0 00 044136 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10281	037131	004 04 0 00 034442 		ER4	AC+1,34442		;LOW PRODUCT FAILED
 10282		777777	777777			AEE=-1				;INITIAL C(E)
 10283	037132	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10284	037133	005 01 0 00 034443 		ER5	E,34443			;C(E) WAS CLOBBERED
 10285	037134	321 05 0 00 037122 		JUMPL	AC+2,F34440		;LOOP ON ERROR SWITCH^
 10286
 10287			003445			ADR=ADR+1
 10288			000100			XX=XX+XX
 10289						IFE	XX,<XX=1>
 10290
 10291					;MULTIPLY -1 BY A RIPPLED 1
 10292						IFG	XX,<
 10293		777777	777777			V1=-1
 10294		777777	777700			V2=-XX>
 10295						IFL	XX,<
 10296						V1=1
 10297						V2=0>
 10298						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10299					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10300					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10301					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10302					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10303
 10304			000100		F34450:	AA1=XX				;INITIAL C(AC)
 10305	037135	200 03 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10306			000000			AA2=0				;INITIAL C(AC+1)
 10307	037136	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10308		777777	777777			AEE=-1				;INITIAL C(E)
 10309	037137	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10310	037140	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10311		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10312	037141	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10313	037142	003 03 0 00 034451 		ER3	AC,34451		;HIGH PRODUCT FAILED
 10314		777777	777700			AR2=V2				;EXPECTED RESULT IN AC+1
 10315	037143	312 04 0 00 044137 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10316	037144	004 04 0 00 034452 		ER4	AC+1,34452		;LOW PRODUCT FAILED
 10317		777777	777777			AEE=-1				;INITIAL C(E)
 10318	037145	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10319	037146	005 01 0 00 034453 		ER5	E,34453			;C(E) WAS CLOBBERED
 10320	037147	321 05 0 00 037135 		JUMPL	AC+2,F34450		;LOOP ON ERROR SWITCH^
 10321
 10322			003446			ADR=ADR+1
 10323			000200			XX=XX+XX
 10324						IFE	XX,<XX=1>
 10325
 10326					;MULTIPLY -1 BY A RIPPLED 1
 10327						IFG	XX,<
 10328		777777	777777			V1=-1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0209

 10329		777777	777600			V2=-XX>
 10330						IFL	XX,<
 10331						V1=1
 10332						V2=0>
 10333						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10334					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10335					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10336					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10337					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10338
 10339			000200		F34460:	AA1=XX				;INITIAL C(AC)
 10340	037150	200 03 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10341			000000			AA2=0				;INITIAL C(AC+1)
 10342	037151	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10343		777777	777777			AEE=-1				;INITIAL C(E)
 10344	037152	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10345	037153	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10346		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10347	037154	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10348	037155	003 03 0 00 034461 		ER3	AC,34461		;HIGH PRODUCT FAILED
 10349		777777	777600			AR2=V2				;EXPECTED RESULT IN AC+1
 10350	037156	312 04 0 00 044140 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10351	037157	004 04 0 00 034462 		ER4	AC+1,34462		;LOW PRODUCT FAILED
 10352		777777	777777			AEE=-1				;INITIAL C(E)
 10353	037160	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10354	037161	005 01 0 00 034463 		ER5	E,34463			;C(E) WAS CLOBBERED
 10355	037162	321 05 0 00 037150 		JUMPL	AC+2,F34460		;LOOP ON ERROR SWITCH^
 10356
 10357			003447			ADR=ADR+1
 10358			000400			XX=XX+XX
 10359						IFE	XX,<XX=1>
 10360
 10361					;MULTIPLY -1 BY A RIPPLED 1
 10362						IFG	XX,<
 10363		777777	777777			V1=-1
 10364		777777	777400			V2=-XX>
 10365						IFL	XX,<
 10366						V1=1
 10367						V2=0>
 10368						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10369					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10370					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10371					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10372					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10373
 10374			000400		F34470:	AA1=XX				;INITIAL C(AC)
 10375	037163	200 03 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10376			000000			AA2=0				;INITIAL C(AC+1)
 10377	037164	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10378		777777	777777			AEE=-1				;INITIAL C(E)
 10379	037165	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10380	037166	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10381		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10382	037167	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10383	037170	003 03 0 00 034471 		ER3	AC,34471		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0210

 10384		777777	777400			AR2=V2				;EXPECTED RESULT IN AC+1
 10385	037171	312 04 0 00 044141 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10386	037172	004 04 0 00 034472 		ER4	AC+1,34472		;LOW PRODUCT FAILED
 10387		777777	777777			AEE=-1				;INITIAL C(E)
 10388	037173	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10389	037174	005 01 0 00 034473 		ER5	E,34473			;C(E) WAS CLOBBERED
 10390	037175	321 05 0 00 037163 		JUMPL	AC+2,F34470		;LOOP ON ERROR SWITCH^
 10391
 10392			003450			ADR=ADR+1
 10393			001000			XX=XX+XX
 10394						IFE	XX,<XX=1>
 10395
 10396					;MULTIPLY -1 BY A RIPPLED 1
 10397						IFG	XX,<
 10398		777777	777777			V1=-1
 10399		777777	777000			V2=-XX>
 10400						IFL	XX,<
 10401						V1=1
 10402						V2=0>
 10403						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10404					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10405					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10406					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10407					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10408
 10409			001000		F34500:	AA1=XX				;INITIAL C(AC)
 10410	037176	200 03 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10411			000000			AA2=0				;INITIAL C(AC+1)
 10412	037177	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10413		777777	777777			AEE=-1				;INITIAL C(E)
 10414	037200	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10415	037201	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10416		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10417	037202	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10418	037203	003 03 0 00 034501 		ER3	AC,34501		;HIGH PRODUCT FAILED
 10419		777777	777000			AR2=V2				;EXPECTED RESULT IN AC+1
 10420	037204	312 04 0 00 044142 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10421	037205	004 04 0 00 034502 		ER4	AC+1,34502		;LOW PRODUCT FAILED
 10422		777777	777777			AEE=-1				;INITIAL C(E)
 10423	037206	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10424	037207	005 01 0 00 034503 		ER5	E,34503			;C(E) WAS CLOBBERED
 10425	037210	321 05 0 00 037176 		JUMPL	AC+2,F34500		;LOOP ON ERROR SWITCH^
 10426
 10427			003451			ADR=ADR+1
 10428			002000			XX=XX+XX
 10429						IFE	XX,<XX=1>
 10430
 10431					;MULTIPLY -1 BY A RIPPLED 1
 10432						IFG	XX,<
 10433		777777	777777			V1=-1
 10434		777777	776000			V2=-XX>
 10435						IFL	XX,<
 10436						V1=1
 10437						V2=0>
 10438						MOP1	(\ADR,XX,0,-1,V1,V2)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0211

 10439					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10440					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10441					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10442					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10443
 10444			002000		F34510:	AA1=XX				;INITIAL C(AC)
 10445	037211	200 03 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10446			000000			AA2=0				;INITIAL C(AC+1)
 10447	037212	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10448		777777	777777			AEE=-1				;INITIAL C(E)
 10449	037213	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10450	037214	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10451		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10452	037215	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10453	037216	003 03 0 00 034511 		ER3	AC,34511		;HIGH PRODUCT FAILED
 10454		777777	776000			AR2=V2				;EXPECTED RESULT IN AC+1
 10455	037217	312 04 0 00 044143 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10456	037220	004 04 0 00 034512 		ER4	AC+1,34512		;LOW PRODUCT FAILED
 10457		777777	777777			AEE=-1				;INITIAL C(E)
 10458	037221	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10459	037222	005 01 0 00 034513 		ER5	E,34513			;C(E) WAS CLOBBERED
 10460	037223	321 05 0 00 037211 		JUMPL	AC+2,F34510		;LOOP ON ERROR SWITCH^
 10461
 10462			003452			ADR=ADR+1
 10463			004000			XX=XX+XX
 10464						IFE	XX,<XX=1>
 10465
 10466					;MULTIPLY -1 BY A RIPPLED 1
 10467						IFG	XX,<
 10468		777777	777777			V1=-1
 10469		777777	774000			V2=-XX>
 10470						IFL	XX,<
 10471						V1=1
 10472						V2=0>
 10473						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10474					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10475					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10476					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10477					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10478
 10479			004000		F34520:	AA1=XX				;INITIAL C(AC)
 10480	037224	200 03 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10481			000000			AA2=0				;INITIAL C(AC+1)
 10482	037225	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10483		777777	777777			AEE=-1				;INITIAL C(E)
 10484	037226	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10485	037227	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10486		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10487	037230	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10488	037231	003 03 0 00 034521 		ER3	AC,34521		;HIGH PRODUCT FAILED
 10489		777777	774000			AR2=V2				;EXPECTED RESULT IN AC+1
 10490	037232	312 04 0 00 044144 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10491	037233	004 04 0 00 034522 		ER4	AC+1,34522		;LOW PRODUCT FAILED
 10492		777777	777777			AEE=-1				;INITIAL C(E)
 10493	037234	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0212

 10494	037235	005 01 0 00 034523 		ER5	E,34523			;C(E) WAS CLOBBERED
 10495	037236	321 05 0 00 037224 		JUMPL	AC+2,F34520		;LOOP ON ERROR SWITCH^
 10496
 10497			003453			ADR=ADR+1
 10498			010000			XX=XX+XX
 10499						IFE	XX,<XX=1>
 10500
 10501					;MULTIPLY -1 BY A RIPPLED 1
 10502						IFG	XX,<
 10503		777777	777777			V1=-1
 10504		777777	770000			V2=-XX>
 10505						IFL	XX,<
 10506						V1=1
 10507						V2=0>
 10508						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10509					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10510					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10511					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10512					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10513
 10514			010000		F34530:	AA1=XX				;INITIAL C(AC)
 10515	037237	200 03 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10516			000000			AA2=0				;INITIAL C(AC+1)
 10517	037240	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10518		777777	777777			AEE=-1				;INITIAL C(E)
 10519	037241	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10520	037242	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10521		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10522	037243	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10523	037244	003 03 0 00 034531 		ER3	AC,34531		;HIGH PRODUCT FAILED
 10524		777777	770000			AR2=V2				;EXPECTED RESULT IN AC+1
 10525	037245	312 04 0 00 044145 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10526	037246	004 04 0 00 034532 		ER4	AC+1,34532		;LOW PRODUCT FAILED
 10527		777777	777777			AEE=-1				;INITIAL C(E)
 10528	037247	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10529	037250	005 01 0 00 034533 		ER5	E,34533			;C(E) WAS CLOBBERED
 10530	037251	321 05 0 00 037237 		JUMPL	AC+2,F34530		;LOOP ON ERROR SWITCH^
 10531
 10532			003454			ADR=ADR+1
 10533			020000			XX=XX+XX
 10534						IFE	XX,<XX=1>
 10535
 10536					;MULTIPLY -1 BY A RIPPLED 1
 10537						IFG	XX,<
 10538		777777	777777			V1=-1
 10539		777777	760000			V2=-XX>
 10540						IFL	XX,<
 10541						V1=1
 10542						V2=0>
 10543						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10544					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10545					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10546					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10547					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10548
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0213

 10549			020000		F34540:	AA1=XX				;INITIAL C(AC)
 10550	037252	200 03 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10551			000000			AA2=0				;INITIAL C(AC+1)
 10552	037253	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10553		777777	777777			AEE=-1				;INITIAL C(E)
 10554	037254	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10555	037255	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10556		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10557	037256	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10558	037257	003 03 0 00 034541 		ER3	AC,34541		;HIGH PRODUCT FAILED
 10559		777777	760000			AR2=V2				;EXPECTED RESULT IN AC+1
 10560	037260	312 04 0 00 044146 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10561	037261	004 04 0 00 034542 		ER4	AC+1,34542		;LOW PRODUCT FAILED
 10562		777777	777777			AEE=-1				;INITIAL C(E)
 10563	037262	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10564	037263	005 01 0 00 034543 		ER5	E,34543			;C(E) WAS CLOBBERED
 10565	037264	321 05 0 00 037252 		JUMPL	AC+2,F34540		;LOOP ON ERROR SWITCH^
 10566
 10567			003455			ADR=ADR+1
 10568			040000			XX=XX+XX
 10569						IFE	XX,<XX=1>
 10570
 10571					;MULTIPLY -1 BY A RIPPLED 1
 10572						IFG	XX,<
 10573		777777	777777			V1=-1
 10574		777777	740000			V2=-XX>
 10575						IFL	XX,<
 10576						V1=1
 10577						V2=0>
 10578						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10579					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10580					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10581					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10582					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10583
 10584			040000		F34550:	AA1=XX				;INITIAL C(AC)
 10585	037265	200 03 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10586			000000			AA2=0				;INITIAL C(AC+1)
 10587	037266	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10588		777777	777777			AEE=-1				;INITIAL C(E)
 10589	037267	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10590	037270	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10591		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10592	037271	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10593	037272	003 03 0 00 034551 		ER3	AC,34551		;HIGH PRODUCT FAILED
 10594		777777	740000			AR2=V2				;EXPECTED RESULT IN AC+1
 10595	037273	312 04 0 00 044147 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10596	037274	004 04 0 00 034552 		ER4	AC+1,34552		;LOW PRODUCT FAILED
 10597		777777	777777			AEE=-1				;INITIAL C(E)
 10598	037275	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10599	037276	005 01 0 00 034553 		ER5	E,34553			;C(E) WAS CLOBBERED
 10600	037277	321 05 0 00 037265 		JUMPL	AC+2,F34550		;LOOP ON ERROR SWITCH^
 10601
 10602			003456			ADR=ADR+1
 10603			100000			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0214

 10604						IFE	XX,<XX=1>
 10605
 10606					;MULTIPLY -1 BY A RIPPLED 1
 10607						IFG	XX,<
 10608		777777	777777			V1=-1
 10609		777777	700000			V2=-XX>
 10610						IFL	XX,<
 10611						V1=1
 10612						V2=0>
 10613						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10614					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10615					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10616					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10617					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10618
 10619			100000		F34560:	AA1=XX				;INITIAL C(AC)
 10620	037300	200 03 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10621			000000			AA2=0				;INITIAL C(AC+1)
 10622	037301	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10623		777777	777777			AEE=-1				;INITIAL C(E)
 10624	037302	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10625	037303	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10626		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10627	037304	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10628	037305	003 03 0 00 034561 		ER3	AC,34561		;HIGH PRODUCT FAILED
 10629		777777	700000			AR2=V2				;EXPECTED RESULT IN AC+1
 10630	037306	312 04 0 00 044150 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10631	037307	004 04 0 00 034562 		ER4	AC+1,34562		;LOW PRODUCT FAILED
 10632		777777	777777			AEE=-1				;INITIAL C(E)
 10633	037310	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10634	037311	005 01 0 00 034563 		ER5	E,34563			;C(E) WAS CLOBBERED
 10635	037312	321 05 0 00 037300 		JUMPL	AC+2,F34560		;LOOP ON ERROR SWITCH^
 10636
 10637			003457			ADR=ADR+1
 10638			200000			XX=XX+XX
 10639						IFE	XX,<XX=1>
 10640
 10641					;MULTIPLY -1 BY A RIPPLED 1
 10642						IFG	XX,<
 10643		777777	777777			V1=-1
 10644		777777	600000			V2=-XX>
 10645						IFL	XX,<
 10646						V1=1
 10647						V2=0>
 10648						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10649					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10650					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10651					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10652					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10653
 10654			200000		F34570:	AA1=XX				;INITIAL C(AC)
 10655	037313	200 03 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10656			000000			AA2=0				;INITIAL C(AC+1)
 10657	037314	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10658		777777	777777			AEE=-1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0215

 10659	037315	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10660	037316	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10661		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10662	037317	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10663	037320	003 03 0 00 034571 		ER3	AC,34571		;HIGH PRODUCT FAILED
 10664		777777	600000			AR2=V2				;EXPECTED RESULT IN AC+1
 10665	037321	312 04 0 00 044151 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10666	037322	004 04 0 00 034572 		ER4	AC+1,34572		;LOW PRODUCT FAILED
 10667		777777	777777			AEE=-1				;INITIAL C(E)
 10668	037323	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10669	037324	005 01 0 00 034573 		ER5	E,34573			;C(E) WAS CLOBBERED
 10670	037325	321 05 0 00 037313 		JUMPL	AC+2,F34570		;LOOP ON ERROR SWITCH^
 10671
 10672			003460			ADR=ADR+1
 10673			400000			XX=XX+XX
 10674						IFE	XX,<XX=1>
 10675
 10676					;MULTIPLY -1 BY A RIPPLED 1
 10677						IFG	XX,<
 10678		777777	777777			V1=-1
 10679		777777	400000			V2=-XX>
 10680						IFL	XX,<
 10681						V1=1
 10682						V2=0>
 10683						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10684					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10685					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10686					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10687					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10688
 10689			400000		F34600:	AA1=XX				;INITIAL C(AC)
 10690	037326	200 03 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10691			000000			AA2=0				;INITIAL C(AC+1)
 10692	037327	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10693		777777	777777			AEE=-1				;INITIAL C(E)
 10694	037330	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10695	037331	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10696		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10697	037332	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10698	037333	003 03 0 00 034601 		ER3	AC,34601		;HIGH PRODUCT FAILED
 10699		777777	400000			AR2=V2				;EXPECTED RESULT IN AC+1
 10700	037334	312 04 0 00 044152 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10701	037335	004 04 0 00 034602 		ER4	AC+1,34602		;LOW PRODUCT FAILED
 10702		777777	777777			AEE=-1				;INITIAL C(E)
 10703	037336	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10704	037337	005 01 0 00 034603 		ER5	E,34603			;C(E) WAS CLOBBERED
 10705	037340	321 05 0 00 037326 		JUMPL	AC+2,F34600		;LOOP ON ERROR SWITCH^
 10706
 10707			003461			ADR=ADR+1
 10708		000001	000000			XX=XX+XX
 10709						IFE	XX,<XX=1>
 10710
 10711					;MULTIPLY -1 BY A RIPPLED 1
 10712						IFG	XX,<
 10713		777777	777777			V1=-1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0216

 10714		777777	000000			V2=-XX>
 10715						IFL	XX,<
 10716						V1=1
 10717						V2=0>
 10718						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10719					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10720					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10721					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10722					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10723
 10724		000001	000000		F34610:	AA1=XX				;INITIAL C(AC)
 10725	037341	200 03 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10726			000000			AA2=0				;INITIAL C(AC+1)
 10727	037342	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10728		777777	777777			AEE=-1				;INITIAL C(E)
 10729	037343	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10730	037344	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10731		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10732	037345	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10733	037346	003 03 0 00 034611 		ER3	AC,34611		;HIGH PRODUCT FAILED
 10734		777777	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10735	037347	312 04 0 00 044153 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10736	037350	004 04 0 00 034612 		ER4	AC+1,34612		;LOW PRODUCT FAILED
 10737		777777	777777			AEE=-1				;INITIAL C(E)
 10738	037351	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10739	037352	005 01 0 00 034613 		ER5	E,34613			;C(E) WAS CLOBBERED
 10740	037353	321 05 0 00 037341 		JUMPL	AC+2,F34610		;LOOP ON ERROR SWITCH^
 10741
 10742			003462			ADR=ADR+1
 10743		000002	000000			XX=XX+XX
 10744						IFE	XX,<XX=1>
 10745
 10746					;MULTIPLY -1 BY A RIPPLED 1
 10747						IFG	XX,<
 10748		777777	777777			V1=-1
 10749		777776	000000			V2=-XX>
 10750						IFL	XX,<
 10751						V1=1
 10752						V2=0>
 10753						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10754					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10755					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10756					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10757					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10758
 10759		000002	000000		F34620:	AA1=XX				;INITIAL C(AC)
 10760	037354	200 03 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10761			000000			AA2=0				;INITIAL C(AC+1)
 10762	037355	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10763		777777	777777			AEE=-1				;INITIAL C(E)
 10764	037356	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10765	037357	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10766		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10767	037360	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10768	037361	003 03 0 00 034621 		ER3	AC,34621		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0217

 10769		777776	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10770	037362	312 04 0 00 044154 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10771	037363	004 04 0 00 034622 		ER4	AC+1,34622		;LOW PRODUCT FAILED
 10772		777777	777777			AEE=-1				;INITIAL C(E)
 10773	037364	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10774	037365	005 01 0 00 034623 		ER5	E,34623			;C(E) WAS CLOBBERED
 10775	037366	321 05 0 00 037354 		JUMPL	AC+2,F34620		;LOOP ON ERROR SWITCH^
 10776
 10777			003463			ADR=ADR+1
 10778		000004	000000			XX=XX+XX
 10779						IFE	XX,<XX=1>
 10780
 10781					;MULTIPLY -1 BY A RIPPLED 1
 10782						IFG	XX,<
 10783		777777	777777			V1=-1
 10784		777774	000000			V2=-XX>
 10785						IFL	XX,<
 10786						V1=1
 10787						V2=0>
 10788						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10789					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10790					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10791					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10792					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10793
 10794		000004	000000		F34630:	AA1=XX				;INITIAL C(AC)
 10795	037367	200 03 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10796			000000			AA2=0				;INITIAL C(AC+1)
 10797	037370	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10798		777777	777777			AEE=-1				;INITIAL C(E)
 10799	037371	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10800	037372	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10801		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10802	037373	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10803	037374	003 03 0 00 034631 		ER3	AC,34631		;HIGH PRODUCT FAILED
 10804		777774	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10805	037375	312 04 0 00 044155 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10806	037376	004 04 0 00 034632 		ER4	AC+1,34632		;LOW PRODUCT FAILED
 10807		777777	777777			AEE=-1				;INITIAL C(E)
 10808	037377	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10809	037400	005 01 0 00 034633 		ER5	E,34633			;C(E) WAS CLOBBERED
 10810	037401	321 05 0 00 037367 		JUMPL	AC+2,F34630		;LOOP ON ERROR SWITCH^
 10811
 10812			003464			ADR=ADR+1
 10813		000010	000000			XX=XX+XX
 10814						IFE	XX,<XX=1>
 10815
 10816					;MULTIPLY -1 BY A RIPPLED 1
 10817						IFG	XX,<
 10818		777777	777777			V1=-1
 10819		777770	000000			V2=-XX>
 10820						IFL	XX,<
 10821						V1=1
 10822						V2=0>
 10823						MOP1	(\ADR,XX,0,-1,V1,V2)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0218

 10824					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10825					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10826					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10827					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10828
 10829		000010	000000		F34640:	AA1=XX				;INITIAL C(AC)
 10830	037402	200 03 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10831			000000			AA2=0				;INITIAL C(AC+1)
 10832	037403	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10833		777777	777777			AEE=-1				;INITIAL C(E)
 10834	037404	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10835	037405	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10836		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10837	037406	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10838	037407	003 03 0 00 034641 		ER3	AC,34641		;HIGH PRODUCT FAILED
 10839		777770	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10840	037410	312 04 0 00 044156 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10841	037411	004 04 0 00 034642 		ER4	AC+1,34642		;LOW PRODUCT FAILED
 10842		777777	777777			AEE=-1				;INITIAL C(E)
 10843	037412	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10844	037413	005 01 0 00 034643 		ER5	E,34643			;C(E) WAS CLOBBERED
 10845	037414	321 05 0 00 037402 		JUMPL	AC+2,F34640		;LOOP ON ERROR SWITCH^
 10846
 10847			003465			ADR=ADR+1
 10848		000020	000000			XX=XX+XX
 10849						IFE	XX,<XX=1>
 10850
 10851					;MULTIPLY -1 BY A RIPPLED 1
 10852						IFG	XX,<
 10853		777777	777777			V1=-1
 10854		777760	000000			V2=-XX>
 10855						IFL	XX,<
 10856						V1=1
 10857						V2=0>
 10858						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10859					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10860					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10861					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10862					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10863
 10864		000020	000000		F34650:	AA1=XX				;INITIAL C(AC)
 10865	037415	200 03 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10866			000000			AA2=0				;INITIAL C(AC+1)
 10867	037416	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10868		777777	777777			AEE=-1				;INITIAL C(E)
 10869	037417	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10870	037420	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10871		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10872	037421	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10873	037422	003 03 0 00 034651 		ER3	AC,34651		;HIGH PRODUCT FAILED
 10874		777760	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10875	037423	312 04 0 00 044157 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10876	037424	004 04 0 00 034652 		ER4	AC+1,34652		;LOW PRODUCT FAILED
 10877		777777	777777			AEE=-1				;INITIAL C(E)
 10878	037425	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0219

 10879	037426	005 01 0 00 034653 		ER5	E,34653			;C(E) WAS CLOBBERED
 10880	037427	321 05 0 00 037415 		JUMPL	AC+2,F34650		;LOOP ON ERROR SWITCH^
 10881
 10882			003466			ADR=ADR+1
 10883		000040	000000			XX=XX+XX
 10884						IFE	XX,<XX=1>
 10885
 10886					;MULTIPLY -1 BY A RIPPLED 1
 10887						IFG	XX,<
 10888		777777	777777			V1=-1
 10889		777740	000000			V2=-XX>
 10890						IFL	XX,<
 10891						V1=1
 10892						V2=0>
 10893						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10894					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10895					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10896					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10897					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10898
 10899		000040	000000		F34660:	AA1=XX				;INITIAL C(AC)
 10900	037430	200 03 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10901			000000			AA2=0				;INITIAL C(AC+1)
 10902	037431	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10903		777777	777777			AEE=-1				;INITIAL C(E)
 10904	037432	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10905	037433	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10906		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10907	037434	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10908	037435	003 03 0 00 034661 		ER3	AC,34661		;HIGH PRODUCT FAILED
 10909		777740	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10910	037436	312 04 0 00 044160 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10911	037437	004 04 0 00 034662 		ER4	AC+1,34662		;LOW PRODUCT FAILED
 10912		777777	777777			AEE=-1				;INITIAL C(E)
 10913	037440	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10914	037441	005 01 0 00 034663 		ER5	E,34663			;C(E) WAS CLOBBERED
 10915	037442	321 05 0 00 037430 		JUMPL	AC+2,F34660		;LOOP ON ERROR SWITCH^
 10916
 10917			003467			ADR=ADR+1
 10918		000100	000000			XX=XX+XX
 10919						IFE	XX,<XX=1>
 10920
 10921					;MULTIPLY -1 BY A RIPPLED 1
 10922						IFG	XX,<
 10923		777777	777777			V1=-1
 10924		777700	000000			V2=-XX>
 10925						IFL	XX,<
 10926						V1=1
 10927						V2=0>
 10928						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10929					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10930					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10931					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10932					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10933
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0220

 10934		000100	000000		F34670:	AA1=XX				;INITIAL C(AC)
 10935	037443	200 03 0 00 044030 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10936			000000			AA2=0				;INITIAL C(AC+1)
 10937	037444	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10938		777777	777777			AEE=-1				;INITIAL C(E)
 10939	037445	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10940	037446	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10941		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10942	037447	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10943	037450	003 03 0 00 034671 		ER3	AC,34671		;HIGH PRODUCT FAILED
 10944		777700	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10945	037451	312 04 0 00 044161 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10946	037452	004 04 0 00 034672 		ER4	AC+1,34672		;LOW PRODUCT FAILED
 10947		777777	777777			AEE=-1				;INITIAL C(E)
 10948	037453	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10949	037454	005 01 0 00 034673 		ER5	E,34673			;C(E) WAS CLOBBERED
 10950	037455	321 05 0 00 037443 		JUMPL	AC+2,F34670		;LOOP ON ERROR SWITCH^
 10951
 10952			003470			ADR=ADR+1
 10953		000200	000000			XX=XX+XX
 10954						IFE	XX,<XX=1>
 10955
 10956					;MULTIPLY -1 BY A RIPPLED 1
 10957						IFG	XX,<
 10958		777777	777777			V1=-1
 10959		777600	000000			V2=-XX>
 10960						IFL	XX,<
 10961						V1=1
 10962						V2=0>
 10963						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10964					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 10965					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 10966					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 10967					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 10968
 10969		000200	000000		F34700:	AA1=XX				;INITIAL C(AC)
 10970	037456	200 03 0 00 044031 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10971			000000			AA2=0				;INITIAL C(AC+1)
 10972	037457	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10973		777777	777777			AEE=-1				;INITIAL C(E)
 10974	037460	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10975	037461	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10976		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10977	037462	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10978	037463	003 03 0 00 034701 		ER3	AC,34701		;HIGH PRODUCT FAILED
 10979		777600	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10980	037464	312 04 0 00 044162 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10981	037465	004 04 0 00 034702 		ER4	AC+1,34702		;LOW PRODUCT FAILED
 10982		777777	777777			AEE=-1				;INITIAL C(E)
 10983	037466	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10984	037467	005 01 0 00 034703 		ER5	E,34703			;C(E) WAS CLOBBERED
 10985	037470	321 05 0 00 037456 		JUMPL	AC+2,F34700		;LOOP ON ERROR SWITCH^
 10986
 10987			003471			ADR=ADR+1
 10988		000400	000000			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0221

 10989						IFE	XX,<XX=1>
 10990
 10991					;MULTIPLY -1 BY A RIPPLED 1
 10992						IFG	XX,<
 10993		777777	777777			V1=-1
 10994		777400	000000			V2=-XX>
 10995						IFL	XX,<
 10996						V1=1
 10997						V2=0>
 10998						MOP1	(\ADR,XX,0,-1,V1,V2)^
 10999					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11000					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11001					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11002					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11003
 11004		000400	000000		F34710:	AA1=XX				;INITIAL C(AC)
 11005	037471	200 03 0 00 044032 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11006			000000			AA2=0				;INITIAL C(AC+1)
 11007	037472	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11008		777777	777777			AEE=-1				;INITIAL C(E)
 11009	037473	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11010	037474	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11011		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11012	037475	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11013	037476	003 03 0 00 034711 		ER3	AC,34711		;HIGH PRODUCT FAILED
 11014		777400	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11015	037477	312 04 0 00 044163 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11016	037500	004 04 0 00 034712 		ER4	AC+1,34712		;LOW PRODUCT FAILED
 11017		777777	777777			AEE=-1				;INITIAL C(E)
 11018	037501	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11019	037502	005 01 0 00 034713 		ER5	E,34713			;C(E) WAS CLOBBERED
 11020	037503	321 05 0 00 037471 		JUMPL	AC+2,F34710		;LOOP ON ERROR SWITCH^
 11021
 11022			003472			ADR=ADR+1
 11023		001000	000000			XX=XX+XX
 11024						IFE	XX,<XX=1>
 11025
 11026					;MULTIPLY -1 BY A RIPPLED 1
 11027						IFG	XX,<
 11028		777777	777777			V1=-1
 11029		777000	000000			V2=-XX>
 11030						IFL	XX,<
 11031						V1=1
 11032						V2=0>
 11033						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11034					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11035					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11036					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11037					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11038
 11039		001000	000000		F34720:	AA1=XX				;INITIAL C(AC)
 11040	037504	200 03 0 00 044033 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11041			000000			AA2=0				;INITIAL C(AC+1)
 11042	037505	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11043		777777	777777			AEE=-1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0222

 11044	037506	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11045	037507	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11046		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11047	037510	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11048	037511	003 03 0 00 034721 		ER3	AC,34721		;HIGH PRODUCT FAILED
 11049		777000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11050	037512	312 04 0 00 044164 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11051	037513	004 04 0 00 034722 		ER4	AC+1,34722		;LOW PRODUCT FAILED
 11052		777777	777777			AEE=-1				;INITIAL C(E)
 11053	037514	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11054	037515	005 01 0 00 034723 		ER5	E,34723			;C(E) WAS CLOBBERED
 11055	037516	321 05 0 00 037504 		JUMPL	AC+2,F34720		;LOOP ON ERROR SWITCH^
 11056
 11057			003473			ADR=ADR+1
 11058		002000	000000			XX=XX+XX
 11059						IFE	XX,<XX=1>
 11060
 11061					;MULTIPLY -1 BY A RIPPLED 1
 11062						IFG	XX,<
 11063		777777	777777			V1=-1
 11064		776000	000000			V2=-XX>
 11065						IFL	XX,<
 11066						V1=1
 11067						V2=0>
 11068						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11069					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11070					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11071					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11072					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11073
 11074		002000	000000		F34730:	AA1=XX				;INITIAL C(AC)
 11075	037517	200 03 0 00 044034 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11076			000000			AA2=0				;INITIAL C(AC+1)
 11077	037520	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11078		777777	777777			AEE=-1				;INITIAL C(E)
 11079	037521	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11080	037522	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11081		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11082	037523	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11083	037524	003 03 0 00 034731 		ER3	AC,34731		;HIGH PRODUCT FAILED
 11084		776000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11085	037525	312 04 0 00 044165 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11086	037526	004 04 0 00 034732 		ER4	AC+1,34732		;LOW PRODUCT FAILED
 11087		777777	777777			AEE=-1				;INITIAL C(E)
 11088	037527	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11089	037530	005 01 0 00 034733 		ER5	E,34733			;C(E) WAS CLOBBERED
 11090	037531	321 05 0 00 037517 		JUMPL	AC+2,F34730		;LOOP ON ERROR SWITCH^
 11091
 11092			003474			ADR=ADR+1
 11093		004000	000000			XX=XX+XX
 11094						IFE	XX,<XX=1>
 11095
 11096					;MULTIPLY -1 BY A RIPPLED 1
 11097						IFG	XX,<
 11098		777777	777777			V1=-1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0223

 11099		774000	000000			V2=-XX>
 11100						IFL	XX,<
 11101						V1=1
 11102						V2=0>
 11103						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11104					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11105					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11106					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11107					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11108
 11109		004000	000000		F34740:	AA1=XX				;INITIAL C(AC)
 11110	037532	200 03 0 00 044035 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11111			000000			AA2=0				;INITIAL C(AC+1)
 11112	037533	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11113		777777	777777			AEE=-1				;INITIAL C(E)
 11114	037534	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11115	037535	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11116		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11117	037536	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11118	037537	003 03 0 00 034741 		ER3	AC,34741		;HIGH PRODUCT FAILED
 11119		774000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11120	037540	312 04 0 00 044166 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11121	037541	004 04 0 00 034742 		ER4	AC+1,34742		;LOW PRODUCT FAILED
 11122		777777	777777			AEE=-1				;INITIAL C(E)
 11123	037542	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11124	037543	005 01 0 00 034743 		ER5	E,34743			;C(E) WAS CLOBBERED
 11125	037544	321 05 0 00 037532 		JUMPL	AC+2,F34740		;LOOP ON ERROR SWITCH^
 11126
 11127			003475			ADR=ADR+1
 11128		010000	000000			XX=XX+XX
 11129						IFE	XX,<XX=1>
 11130
 11131					;MULTIPLY -1 BY A RIPPLED 1
 11132						IFG	XX,<
 11133		777777	777777			V1=-1
 11134		770000	000000			V2=-XX>
 11135						IFL	XX,<
 11136						V1=1
 11137						V2=0>
 11138						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11139					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11140					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11141					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11142					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11143
 11144		010000	000000		F34750:	AA1=XX				;INITIAL C(AC)
 11145	037545	200 03 0 00 044036 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11146			000000			AA2=0				;INITIAL C(AC+1)
 11147	037546	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11148		777777	777777			AEE=-1				;INITIAL C(E)
 11149	037547	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11150	037550	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11151		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11152	037551	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11153	037552	003 03 0 00 034751 		ER3	AC,34751		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0224

 11154		770000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11155	037553	312 04 0 00 044167 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11156	037554	004 04 0 00 034752 		ER4	AC+1,34752		;LOW PRODUCT FAILED
 11157		777777	777777			AEE=-1				;INITIAL C(E)
 11158	037555	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11159	037556	005 01 0 00 034753 		ER5	E,34753			;C(E) WAS CLOBBERED
 11160	037557	321 05 0 00 037545 		JUMPL	AC+2,F34750		;LOOP ON ERROR SWITCH^
 11161
 11162			003476			ADR=ADR+1
 11163		020000	000000			XX=XX+XX
 11164						IFE	XX,<XX=1>
 11165
 11166					;MULTIPLY -1 BY A RIPPLED 1
 11167						IFG	XX,<
 11168		777777	777777			V1=-1
 11169		760000	000000			V2=-XX>
 11170						IFL	XX,<
 11171						V1=1
 11172						V2=0>
 11173						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11174					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11175					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11176					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11177					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11178
 11179		020000	000000		F34760:	AA1=XX				;INITIAL C(AC)
 11180	037560	200 03 0 00 044037 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11181			000000			AA2=0				;INITIAL C(AC+1)
 11182	037561	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11183		777777	777777			AEE=-1				;INITIAL C(E)
 11184	037562	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11185	037563	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11186		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11187	037564	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11188	037565	003 03 0 00 034761 		ER3	AC,34761		;HIGH PRODUCT FAILED
 11189		760000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11190	037566	312 04 0 00 044170 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11191	037567	004 04 0 00 034762 		ER4	AC+1,34762		;LOW PRODUCT FAILED
 11192		777777	777777			AEE=-1				;INITIAL C(E)
 11193	037570	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11194	037571	005 01 0 00 034763 		ER5	E,34763			;C(E) WAS CLOBBERED
 11195	037572	321 05 0 00 037560 		JUMPL	AC+2,F34760		;LOOP ON ERROR SWITCH^
 11196
 11197			003477			ADR=ADR+1
 11198		040000	000000			XX=XX+XX
 11199						IFE	XX,<XX=1>
 11200
 11201					;MULTIPLY -1 BY A RIPPLED 1
 11202						IFG	XX,<
 11203		777777	777777			V1=-1
 11204		740000	000000			V2=-XX>
 11205						IFL	XX,<
 11206						V1=1
 11207						V2=0>
 11208						MOP1	(\ADR,XX,0,-1,V1,V2)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-21
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0225

 11209					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11210					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11211					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11212					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11213
 11214		040000	000000		F34770:	AA1=XX				;INITIAL C(AC)
 11215	037573	200 03 0 00 044040 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11216			000000			AA2=0				;INITIAL C(AC+1)
 11217	037574	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11218		777777	777777			AEE=-1				;INITIAL C(E)
 11219	037575	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11220	037576	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11221		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11222	037577	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11223	037600	003 03 0 00 034771 		ER3	AC,34771		;HIGH PRODUCT FAILED
 11224		740000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11225	037601	312 04 0 00 044171 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11226	037602	004 04 0 00 034772 		ER4	AC+1,34772		;LOW PRODUCT FAILED
 11227		777777	777777			AEE=-1				;INITIAL C(E)
 11228	037603	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11229	037604	005 01 0 00 034773 		ER5	E,34773			;C(E) WAS CLOBBERED
 11230	037605	321 05 0 00 037573 		JUMPL	AC+2,F34770		;LOOP ON ERROR SWITCH^
 11231
 11232			003500			ADR=ADR+1
 11233		100000	000000			XX=XX+XX
 11234						IFE	XX,<XX=1>
 11235
 11236					;MULTIPLY -1 BY A RIPPLED 1
 11237						IFG	XX,<
 11238		777777	777777			V1=-1
 11239		700000	000000			V2=-XX>
 11240						IFL	XX,<
 11241						V1=1
 11242						V2=0>
 11243						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11244					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11245					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11246					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11247					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11248
 11249		100000	000000		F35000:	AA1=XX				;INITIAL C(AC)
 11250	037606	200 03 0 00 044041 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11251			000000			AA2=0				;INITIAL C(AC+1)
 11252	037607	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11253		777777	777777			AEE=-1				;INITIAL C(E)
 11254	037610	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11255	037611	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11256		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11257	037612	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11258	037613	003 03 0 00 035001 		ER3	AC,35001		;HIGH PRODUCT FAILED
 11259		700000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11260	037614	312 04 0 00 044172 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11261	037615	004 04 0 00 035002 		ER4	AC+1,35002		;LOW PRODUCT FAILED
 11262		777777	777777			AEE=-1				;INITIAL C(E)
 11263	037616	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-22
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0226

 11264	037617	005 01 0 00 035003 		ER5	E,35003			;C(E) WAS CLOBBERED
 11265	037620	321 05 0 00 037606 		JUMPL	AC+2,F35000		;LOOP ON ERROR SWITCH^
 11266
 11267			003501			ADR=ADR+1
 11268		200000	000000			XX=XX+XX
 11269						IFE	XX,<XX=1>
 11270
 11271					;MULTIPLY -1 BY A RIPPLED 1
 11272						IFG	XX,<
 11273		777777	777777			V1=-1
 11274		600000	000000			V2=-XX>
 11275						IFL	XX,<
 11276						V1=1
 11277						V2=0>
 11278						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11279					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11280					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11281					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11282					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11283
 11284		200000	000000		F35010:	AA1=XX				;INITIAL C(AC)
 11285	037621	200 03 0 00 044042 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11286			000000			AA2=0				;INITIAL C(AC+1)
 11287	037622	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11288		777777	777777			AEE=-1				;INITIAL C(E)
 11289	037623	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11290	037624	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11291		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11292	037625	312 03 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11293	037626	003 03 0 00 035011 		ER3	AC,35011		;HIGH PRODUCT FAILED
 11294		600000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11295	037627	312 04 0 00 044173 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11296	037630	004 04 0 00 035012 		ER4	AC+1,35012		;LOW PRODUCT FAILED
 11297		777777	777777			AEE=-1				;INITIAL C(E)
 11298	037631	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11299	037632	005 01 0 00 035013 		ER5	E,35013			;C(E) WAS CLOBBERED
 11300	037633	321 05 0 00 037621 		JUMPL	AC+2,F35010		;LOOP ON ERROR SWITCH^
 11301
 11302			003502			ADR=ADR+1
 11303		400000	000000			XX=XX+XX
 11304						IFE	XX,<XX=1>
 11305
 11306					;MULTIPLY -1 BY A RIPPLED 1
 11307						IFG	XX,<
 11308						V1=-1
 11309						V2=-XX>
 11310						IFL	XX,<
 11311			000001			V1=1
 11312			000000			V2=0>
 11313						MOP1	(\ADR,XX,0,-1,V1,V2)^
 11314					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 11315					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11316					;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY.
 11317					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11318
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 13-23
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0227

 11319		400000	000000		F35020:	AA1=XX				;INITIAL C(AC)
 11320	037634	200 03 0 00 044043 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11321			000000			AA2=0				;INITIAL C(AC+1)
 11322	037635	200 04 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11323		777777	777777			AEE=-1				;INITIAL C(E)
 11324	037636	200 01 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11325	037637	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11326			000001			AR1=V1				;EXPECTED RESULT IN AC
 11327	037640	312 03 0 00 044000 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11328	037641	003 03 0 00 035021 		ER3	AC,35021		;HIGH PRODUCT FAILED
 11329			000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11330	037642	312 04 0 00 043776 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11331	037643	004 04 0 00 035022 		ER4	AC+1,35022		;LOW PRODUCT FAILED
 11332		777777	777777			AEE=-1				;INITIAL C(E)
 11333	037644	312 01 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11334	037645	005 01 0 00 035023 		ER5	E,35023			;C(E) WAS CLOBBERED
 11335	037646	321 05 0 00 037634 		JUMPL	AC+2,F35020		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0228

 11336			000002			AC=2
 11337			000000			E=<AC-2>&17
 11338						SAVEAC	(1,1)^
 11339	037647	201 04 0 00 037647 		MOVEI	AC+2,.		;SAVE TEST PC
 11340	037650	202 04 0 00 030051 		MOVEM	AC+2,TESTPC
 11341	037651	201 04 0 00 000004 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 11342	037652	202 04 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
 11343			000000			XX=0
 11344
 11345						REPEAT	^D36,<
 11346						ADR=ADR+1
 11347						XX=XX+XX+1
 11348						IFE	<XX-1>,<XX=-2>
 11349					
 11350					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11351						IFL	XX,<V1=-1>
 11352						IFG	XX,<V1=0>
 11353						MOP1	(\ADR,1,0,XX,V1,XX)>
 11354
 11355			003503			ADR=ADR+1
 11356			000001			XX=XX+XX+1
 11357		777777	777776			IFE	<XX-1>,<XX=-2>
 11358
 11359					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11360		777777	777777			IFL	XX,<V1=-1>
 11361						IFG	XX,<V1=0>
 11362						MOP1	(\ADR,1,0,XX,V1,XX)^
 11363					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11364					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11365					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11366					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11367
 11368			000001		F35030:	AA1=1				;INITIAL C(AC)
 11369	037653	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11370			000000			AA2=0				;INITIAL C(AC+1)
 11371	037654	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11372		777777	777776			AEE=XX				;INITIAL C(E)
 11373	037655	200 00 0 00 044044 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11374	037656	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11375		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11376	037657	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11377	037660	003 02 0 00 035031 		ER3	AC,35031		;HIGH PRODUCT FAILED
 11378		777777	777776			AR2=XX				;EXPECTED RESULT IN AC+1
 11379	037661	312 03 0 00 044044 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11380	037662	004 03 0 00 035032 		ER4	AC+1,35032		;LOW PRODUCT FAILED
 11381		777777	777776			AEE=XX				;INITIAL C(E)
 11382	037663	312 00 0 00 044044 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11383	037664	005 00 0 00 035033 		ER5	E,35033			;C(E) WAS CLOBBERED
 11384	037665	321 04 0 00 037653 		JUMPL	AC+2,F35030		;LOOP ON ERROR SWITCH^
 11385
 11386			003504			ADR=ADR+1
 11387		777777	777775			XX=XX+XX+1
 11388						IFE	<XX-1>,<XX=-2>
 11389
 11390					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0229

 11391		777777	777777			IFL	XX,<V1=-1>
 11392						IFG	XX,<V1=0>
 11393						MOP1	(\ADR,1,0,XX,V1,XX)^
 11394					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11395					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11396					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11397					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11398
 11399			000001		F35040:	AA1=1				;INITIAL C(AC)
 11400	037666	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11401			000000			AA2=0				;INITIAL C(AC+1)
 11402	037667	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11403		777777	777775			AEE=XX				;INITIAL C(E)
 11404	037670	200 00 0 00 044045 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11405	037671	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11406		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11407	037672	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11408	037673	003 02 0 00 035041 		ER3	AC,35041		;HIGH PRODUCT FAILED
 11409		777777	777775			AR2=XX				;EXPECTED RESULT IN AC+1
 11410	037674	312 03 0 00 044045 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11411	037675	004 03 0 00 035042 		ER4	AC+1,35042		;LOW PRODUCT FAILED
 11412		777777	777775			AEE=XX				;INITIAL C(E)
 11413	037676	312 00 0 00 044045 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11414	037677	005 00 0 00 035043 		ER5	E,35043			;C(E) WAS CLOBBERED
 11415	037700	321 04 0 00 037666 		JUMPL	AC+2,F35040		;LOOP ON ERROR SWITCH^
 11416
 11417			003505			ADR=ADR+1
 11418		777777	777773			XX=XX+XX+1
 11419						IFE	<XX-1>,<XX=-2>
 11420
 11421					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11422		777777	777777			IFL	XX,<V1=-1>
 11423						IFG	XX,<V1=0>
 11424						MOP1	(\ADR,1,0,XX,V1,XX)^
 11425					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11426					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11427					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11428					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11429
 11430			000001		F35050:	AA1=1				;INITIAL C(AC)
 11431	037701	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11432			000000			AA2=0				;INITIAL C(AC+1)
 11433	037702	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11434		777777	777773			AEE=XX				;INITIAL C(E)
 11435	037703	200 00 0 00 044046 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11436	037704	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11437		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11438	037705	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11439	037706	003 02 0 00 035051 		ER3	AC,35051		;HIGH PRODUCT FAILED
 11440		777777	777773			AR2=XX				;EXPECTED RESULT IN AC+1
 11441	037707	312 03 0 00 044046 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11442	037710	004 03 0 00 035052 		ER4	AC+1,35052		;LOW PRODUCT FAILED
 11443		777777	777773			AEE=XX				;INITIAL C(E)
 11444	037711	312 00 0 00 044046 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11445	037712	005 00 0 00 035053 		ER5	E,35053			;C(E) WAS CLOBBERED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0230

 11446	037713	321 04 0 00 037701 		JUMPL	AC+2,F35050		;LOOP ON ERROR SWITCH^
 11447
 11448			003506			ADR=ADR+1
 11449		777777	777767			XX=XX+XX+1
 11450						IFE	<XX-1>,<XX=-2>
 11451
 11452					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11453		777777	777777			IFL	XX,<V1=-1>
 11454						IFG	XX,<V1=0>
 11455						MOP1	(\ADR,1,0,XX,V1,XX)^
 11456					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11457					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11458					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11459					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11460
 11461			000001		F35060:	AA1=1				;INITIAL C(AC)
 11462	037714	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11463			000000			AA2=0				;INITIAL C(AC+1)
 11464	037715	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11465		777777	777767			AEE=XX				;INITIAL C(E)
 11466	037716	200 00 0 00 044047 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11467	037717	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11468		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11469	037720	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11470	037721	003 02 0 00 035061 		ER3	AC,35061		;HIGH PRODUCT FAILED
 11471		777777	777767			AR2=XX				;EXPECTED RESULT IN AC+1
 11472	037722	312 03 0 00 044047 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11473	037723	004 03 0 00 035062 		ER4	AC+1,35062		;LOW PRODUCT FAILED
 11474		777777	777767			AEE=XX				;INITIAL C(E)
 11475	037724	312 00 0 00 044047 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11476	037725	005 00 0 00 035063 		ER5	E,35063			;C(E) WAS CLOBBERED
 11477	037726	321 04 0 00 037714 		JUMPL	AC+2,F35060		;LOOP ON ERROR SWITCH^
 11478
 11479			003507			ADR=ADR+1
 11480		777777	777757			XX=XX+XX+1
 11481						IFE	<XX-1>,<XX=-2>
 11482
 11483					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11484		777777	777777			IFL	XX,<V1=-1>
 11485						IFG	XX,<V1=0>
 11486						MOP1	(\ADR,1,0,XX,V1,XX)^
 11487					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11488					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11489					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11490					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11491
 11492			000001		F35070:	AA1=1				;INITIAL C(AC)
 11493	037727	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11494			000000			AA2=0				;INITIAL C(AC+1)
 11495	037730	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11496		777777	777757			AEE=XX				;INITIAL C(E)
 11497	037731	200 00 0 00 044050 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11498	037732	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11499		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11500	037733	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0231

 11501	037734	003 02 0 00 035071 		ER3	AC,35071		;HIGH PRODUCT FAILED
 11502		777777	777757			AR2=XX				;EXPECTED RESULT IN AC+1
 11503	037735	312 03 0 00 044050 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11504	037736	004 03 0 00 035072 		ER4	AC+1,35072		;LOW PRODUCT FAILED
 11505		777777	777757			AEE=XX				;INITIAL C(E)
 11506	037737	312 00 0 00 044050 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11507	037740	005 00 0 00 035073 		ER5	E,35073			;C(E) WAS CLOBBERED
 11508	037741	321 04 0 00 037727 		JUMPL	AC+2,F35070		;LOOP ON ERROR SWITCH^
 11509
 11510			003510			ADR=ADR+1
 11511		777777	777737			XX=XX+XX+1
 11512						IFE	<XX-1>,<XX=-2>
 11513
 11514					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11515		777777	777777			IFL	XX,<V1=-1>
 11516						IFG	XX,<V1=0>
 11517						MOP1	(\ADR,1,0,XX,V1,XX)^
 11518					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11519					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11520					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11521					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11522
 11523			000001		F35100:	AA1=1				;INITIAL C(AC)
 11524	037742	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11525			000000			AA2=0				;INITIAL C(AC+1)
 11526	037743	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11527		777777	777737			AEE=XX				;INITIAL C(E)
 11528	037744	200 00 0 00 044051 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11529	037745	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11530		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11531	037746	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11532	037747	003 02 0 00 035101 		ER3	AC,35101		;HIGH PRODUCT FAILED
 11533		777777	777737			AR2=XX				;EXPECTED RESULT IN AC+1
 11534	037750	312 03 0 00 044051 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11535	037751	004 03 0 00 035102 		ER4	AC+1,35102		;LOW PRODUCT FAILED
 11536		777777	777737			AEE=XX				;INITIAL C(E)
 11537	037752	312 00 0 00 044051 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11538	037753	005 00 0 00 035103 		ER5	E,35103			;C(E) WAS CLOBBERED
 11539	037754	321 04 0 00 037742 		JUMPL	AC+2,F35100		;LOOP ON ERROR SWITCH^
 11540
 11541			003511			ADR=ADR+1
 11542		777777	777677			XX=XX+XX+1
 11543						IFE	<XX-1>,<XX=-2>
 11544
 11545					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11546		777777	777777			IFL	XX,<V1=-1>
 11547						IFG	XX,<V1=0>
 11548						MOP1	(\ADR,1,0,XX,V1,XX)^
 11549					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11550					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11551					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11552					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11553
 11554			000001		F35110:	AA1=1				;INITIAL C(AC)
 11555	037755	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0232

 11556			000000			AA2=0				;INITIAL C(AC+1)
 11557	037756	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11558		777777	777677			AEE=XX				;INITIAL C(E)
 11559	037757	200 00 0 00 044052 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11560	037760	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11561		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11562	037761	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11563	037762	003 02 0 00 035111 		ER3	AC,35111		;HIGH PRODUCT FAILED
 11564		777777	777677			AR2=XX				;EXPECTED RESULT IN AC+1
 11565	037763	312 03 0 00 044052 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11566	037764	004 03 0 00 035112 		ER4	AC+1,35112		;LOW PRODUCT FAILED
 11567		777777	777677			AEE=XX				;INITIAL C(E)
 11568	037765	312 00 0 00 044052 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11569	037766	005 00 0 00 035113 		ER5	E,35113			;C(E) WAS CLOBBERED
 11570	037767	321 04 0 00 037755 		JUMPL	AC+2,F35110		;LOOP ON ERROR SWITCH^
 11571
 11572			003512			ADR=ADR+1
 11573		777777	777577			XX=XX+XX+1
 11574						IFE	<XX-1>,<XX=-2>
 11575
 11576					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11577		777777	777777			IFL	XX,<V1=-1>
 11578						IFG	XX,<V1=0>
 11579						MOP1	(\ADR,1,0,XX,V1,XX)^
 11580					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11581					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11582					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11583					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11584
 11585			000001		F35120:	AA1=1				;INITIAL C(AC)
 11586	037770	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11587			000000			AA2=0				;INITIAL C(AC+1)
 11588	037771	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11589		777777	777577			AEE=XX				;INITIAL C(E)
 11590	037772	200 00 0 00 044053 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11591	037773	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11592		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11593	037774	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11594	037775	003 02 0 00 035121 		ER3	AC,35121		;HIGH PRODUCT FAILED
 11595		777777	777577			AR2=XX				;EXPECTED RESULT IN AC+1
 11596	037776	312 03 0 00 044053 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11597	037777	004 03 0 00 035122 		ER4	AC+1,35122		;LOW PRODUCT FAILED
 11598		777777	777577			AEE=XX				;INITIAL C(E)
 11599	040000	312 00 0 00 044053 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11600	040001	005 00 0 00 035123 		ER5	E,35123			;C(E) WAS CLOBBERED
 11601	040002	321 04 0 00 037770 		JUMPL	AC+2,F35120		;LOOP ON ERROR SWITCH^
 11602
 11603			003513			ADR=ADR+1
 11604		777777	777377			XX=XX+XX+1
 11605						IFE	<XX-1>,<XX=-2>
 11606
 11607					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11608		777777	777777			IFL	XX,<V1=-1>
 11609						IFG	XX,<V1=0>
 11610						MOP1	(\ADR,1,0,XX,V1,XX)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0233

 11611					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11612					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11613					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11614					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11615
 11616			000001		F35130:	AA1=1				;INITIAL C(AC)
 11617	040003	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11618			000000			AA2=0				;INITIAL C(AC+1)
 11619	040004	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11620		777777	777377			AEE=XX				;INITIAL C(E)
 11621	040005	200 00 0 00 044054 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11622	040006	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11623		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11624	040007	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11625	040010	003 02 0 00 035131 		ER3	AC,35131		;HIGH PRODUCT FAILED
 11626		777777	777377			AR2=XX				;EXPECTED RESULT IN AC+1
 11627	040011	312 03 0 00 044054 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11628	040012	004 03 0 00 035132 		ER4	AC+1,35132		;LOW PRODUCT FAILED
 11629		777777	777377			AEE=XX				;INITIAL C(E)
 11630	040013	312 00 0 00 044054 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11631	040014	005 00 0 00 035133 		ER5	E,35133			;C(E) WAS CLOBBERED
 11632	040015	321 04 0 00 040003 		JUMPL	AC+2,F35130		;LOOP ON ERROR SWITCH^
 11633
 11634			003514			ADR=ADR+1
 11635		777777	776777			XX=XX+XX+1
 11636						IFE	<XX-1>,<XX=-2>
 11637
 11638					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11639		777777	777777			IFL	XX,<V1=-1>
 11640						IFG	XX,<V1=0>
 11641						MOP1	(\ADR,1,0,XX,V1,XX)^
 11642					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11643					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11644					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11645					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11646
 11647			000001		F35140:	AA1=1				;INITIAL C(AC)
 11648	040016	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11649			000000			AA2=0				;INITIAL C(AC+1)
 11650	040017	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11651		777777	776777			AEE=XX				;INITIAL C(E)
 11652	040020	200 00 0 00 044055 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11653	040021	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11654		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11655	040022	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11656	040023	003 02 0 00 035141 		ER3	AC,35141		;HIGH PRODUCT FAILED
 11657		777777	776777			AR2=XX				;EXPECTED RESULT IN AC+1
 11658	040024	312 03 0 00 044055 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11659	040025	004 03 0 00 035142 		ER4	AC+1,35142		;LOW PRODUCT FAILED
 11660		777777	776777			AEE=XX				;INITIAL C(E)
 11661	040026	312 00 0 00 044055 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11662	040027	005 00 0 00 035143 		ER5	E,35143			;C(E) WAS CLOBBERED
 11663	040030	321 04 0 00 040016 		JUMPL	AC+2,F35140		;LOOP ON ERROR SWITCH^
 11664
 11665			003515			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0234

 11666		777777	775777			XX=XX+XX+1
 11667						IFE	<XX-1>,<XX=-2>
 11668
 11669					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11670		777777	777777			IFL	XX,<V1=-1>
 11671						IFG	XX,<V1=0>
 11672						MOP1	(\ADR,1,0,XX,V1,XX)^
 11673					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11674					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11675					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11676					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11677
 11678			000001		F35150:	AA1=1				;INITIAL C(AC)
 11679	040031	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11680			000000			AA2=0				;INITIAL C(AC+1)
 11681	040032	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11682		777777	775777			AEE=XX				;INITIAL C(E)
 11683	040033	200 00 0 00 044056 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11684	040034	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11685		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11686	040035	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11687	040036	003 02 0 00 035151 		ER3	AC,35151		;HIGH PRODUCT FAILED
 11688		777777	775777			AR2=XX				;EXPECTED RESULT IN AC+1
 11689	040037	312 03 0 00 044056 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11690	040040	004 03 0 00 035152 		ER4	AC+1,35152		;LOW PRODUCT FAILED
 11691		777777	775777			AEE=XX				;INITIAL C(E)
 11692	040041	312 00 0 00 044056 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11693	040042	005 00 0 00 035153 		ER5	E,35153			;C(E) WAS CLOBBERED
 11694	040043	321 04 0 00 040031 		JUMPL	AC+2,F35150		;LOOP ON ERROR SWITCH^
 11695
 11696			003516			ADR=ADR+1
 11697		777777	773777			XX=XX+XX+1
 11698						IFE	<XX-1>,<XX=-2>
 11699
 11700					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11701		777777	777777			IFL	XX,<V1=-1>
 11702						IFG	XX,<V1=0>
 11703						MOP1	(\ADR,1,0,XX,V1,XX)^
 11704					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11705					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11706					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11707					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11708
 11709			000001		F35160:	AA1=1				;INITIAL C(AC)
 11710	040044	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11711			000000			AA2=0				;INITIAL C(AC+1)
 11712	040045	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11713		777777	773777			AEE=XX				;INITIAL C(E)
 11714	040046	200 00 0 00 044057 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11715	040047	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11716		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11717	040050	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11718	040051	003 02 0 00 035161 		ER3	AC,35161		;HIGH PRODUCT FAILED
 11719		777777	773777			AR2=XX				;EXPECTED RESULT IN AC+1
 11720	040052	312 03 0 00 044057 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0235

 11721	040053	004 03 0 00 035162 		ER4	AC+1,35162		;LOW PRODUCT FAILED
 11722		777777	773777			AEE=XX				;INITIAL C(E)
 11723	040054	312 00 0 00 044057 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11724	040055	005 00 0 00 035163 		ER5	E,35163			;C(E) WAS CLOBBERED
 11725	040056	321 04 0 00 040044 		JUMPL	AC+2,F35160		;LOOP ON ERROR SWITCH^
 11726
 11727			003517			ADR=ADR+1
 11728		777777	767777			XX=XX+XX+1
 11729						IFE	<XX-1>,<XX=-2>
 11730
 11731					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11732		777777	777777			IFL	XX,<V1=-1>
 11733						IFG	XX,<V1=0>
 11734						MOP1	(\ADR,1,0,XX,V1,XX)^
 11735					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11736					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11737					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11738					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11739
 11740			000001		F35170:	AA1=1				;INITIAL C(AC)
 11741	040057	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11742			000000			AA2=0				;INITIAL C(AC+1)
 11743	040060	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11744		777777	767777			AEE=XX				;INITIAL C(E)
 11745	040061	200 00 0 00 044060 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11746	040062	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11747		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11748	040063	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11749	040064	003 02 0 00 035171 		ER3	AC,35171		;HIGH PRODUCT FAILED
 11750		777777	767777			AR2=XX				;EXPECTED RESULT IN AC+1
 11751	040065	312 03 0 00 044060 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11752	040066	004 03 0 00 035172 		ER4	AC+1,35172		;LOW PRODUCT FAILED
 11753		777777	767777			AEE=XX				;INITIAL C(E)
 11754	040067	312 00 0 00 044060 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11755	040070	005 00 0 00 035173 		ER5	E,35173			;C(E) WAS CLOBBERED
 11756	040071	321 04 0 00 040057 		JUMPL	AC+2,F35170		;LOOP ON ERROR SWITCH^
 11757
 11758			003520			ADR=ADR+1
 11759		777777	757777			XX=XX+XX+1
 11760						IFE	<XX-1>,<XX=-2>
 11761
 11762					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11763		777777	777777			IFL	XX,<V1=-1>
 11764						IFG	XX,<V1=0>
 11765						MOP1	(\ADR,1,0,XX,V1,XX)^
 11766					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11767					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11768					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11769					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11770
 11771			000001		F35200:	AA1=1				;INITIAL C(AC)
 11772	040072	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11773			000000			AA2=0				;INITIAL C(AC+1)
 11774	040073	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11775		777777	757777			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0236

 11776	040074	200 00 0 00 044061 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11777	040075	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11778		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11779	040076	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11780	040077	003 02 0 00 035201 		ER3	AC,35201		;HIGH PRODUCT FAILED
 11781		777777	757777			AR2=XX				;EXPECTED RESULT IN AC+1
 11782	040100	312 03 0 00 044061 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11783	040101	004 03 0 00 035202 		ER4	AC+1,35202		;LOW PRODUCT FAILED
 11784		777777	757777			AEE=XX				;INITIAL C(E)
 11785	040102	312 00 0 00 044061 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11786	040103	005 00 0 00 035203 		ER5	E,35203			;C(E) WAS CLOBBERED
 11787	040104	321 04 0 00 040072 		JUMPL	AC+2,F35200		;LOOP ON ERROR SWITCH^
 11788
 11789			003521			ADR=ADR+1
 11790		777777	737777			XX=XX+XX+1
 11791						IFE	<XX-1>,<XX=-2>
 11792
 11793					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11794		777777	777777			IFL	XX,<V1=-1>
 11795						IFG	XX,<V1=0>
 11796						MOP1	(\ADR,1,0,XX,V1,XX)^
 11797					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11798					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11799					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11800					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11801
 11802			000001		F35210:	AA1=1				;INITIAL C(AC)
 11803	040105	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11804			000000			AA2=0				;INITIAL C(AC+1)
 11805	040106	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11806		777777	737777			AEE=XX				;INITIAL C(E)
 11807	040107	200 00 0 00 044062 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11808	040110	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11809		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11810	040111	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11811	040112	003 02 0 00 035211 		ER3	AC,35211		;HIGH PRODUCT FAILED
 11812		777777	737777			AR2=XX				;EXPECTED RESULT IN AC+1
 11813	040113	312 03 0 00 044062 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11814	040114	004 03 0 00 035212 		ER4	AC+1,35212		;LOW PRODUCT FAILED
 11815		777777	737777			AEE=XX				;INITIAL C(E)
 11816	040115	312 00 0 00 044062 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11817	040116	005 00 0 00 035213 		ER5	E,35213			;C(E) WAS CLOBBERED
 11818	040117	321 04 0 00 040105 		JUMPL	AC+2,F35210		;LOOP ON ERROR SWITCH^
 11819
 11820			003522			ADR=ADR+1
 11821		777777	677777			XX=XX+XX+1
 11822						IFE	<XX-1>,<XX=-2>
 11823
 11824					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11825		777777	777777			IFL	XX,<V1=-1>
 11826						IFG	XX,<V1=0>
 11827						MOP1	(\ADR,1,0,XX,V1,XX)^
 11828					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11829					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11830					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0237

 11831					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11832
 11833			000001		F35220:	AA1=1				;INITIAL C(AC)
 11834	040120	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11835			000000			AA2=0				;INITIAL C(AC+1)
 11836	040121	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11837		777777	677777			AEE=XX				;INITIAL C(E)
 11838	040122	200 00 0 00 044063 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11839	040123	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11840		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11841	040124	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11842	040125	003 02 0 00 035221 		ER3	AC,35221		;HIGH PRODUCT FAILED
 11843		777777	677777			AR2=XX				;EXPECTED RESULT IN AC+1
 11844	040126	312 03 0 00 044063 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11845	040127	004 03 0 00 035222 		ER4	AC+1,35222		;LOW PRODUCT FAILED
 11846		777777	677777			AEE=XX				;INITIAL C(E)
 11847	040130	312 00 0 00 044063 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11848	040131	005 00 0 00 035223 		ER5	E,35223			;C(E) WAS CLOBBERED
 11849	040132	321 04 0 00 040120 		JUMPL	AC+2,F35220		;LOOP ON ERROR SWITCH^
 11850
 11851			003523			ADR=ADR+1
 11852		777777	577777			XX=XX+XX+1
 11853						IFE	<XX-1>,<XX=-2>
 11854
 11855					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11856		777777	777777			IFL	XX,<V1=-1>
 11857						IFG	XX,<V1=0>
 11858						MOP1	(\ADR,1,0,XX,V1,XX)^
 11859					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11860					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11861					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11862					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11863
 11864			000001		F35230:	AA1=1				;INITIAL C(AC)
 11865	040133	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11866			000000			AA2=0				;INITIAL C(AC+1)
 11867	040134	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11868		777777	577777			AEE=XX				;INITIAL C(E)
 11869	040135	200 00 0 00 044064 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11870	040136	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11871		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11872	040137	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11873	040140	003 02 0 00 035231 		ER3	AC,35231		;HIGH PRODUCT FAILED
 11874		777777	577777			AR2=XX				;EXPECTED RESULT IN AC+1
 11875	040141	312 03 0 00 044064 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11876	040142	004 03 0 00 035232 		ER4	AC+1,35232		;LOW PRODUCT FAILED
 11877		777777	577777			AEE=XX				;INITIAL C(E)
 11878	040143	312 00 0 00 044064 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11879	040144	005 00 0 00 035233 		ER5	E,35233			;C(E) WAS CLOBBERED
 11880	040145	321 04 0 00 040133 		JUMPL	AC+2,F35230		;LOOP ON ERROR SWITCH^
 11881
 11882			003524			ADR=ADR+1
 11883		777777	377777			XX=XX+XX+1
 11884						IFE	<XX-1>,<XX=-2>
 11885
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0238

 11886					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11887		777777	777777			IFL	XX,<V1=-1>
 11888						IFG	XX,<V1=0>
 11889						MOP1	(\ADR,1,0,XX,V1,XX)^
 11890					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11891					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11892					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11893					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11894
 11895			000001		F35240:	AA1=1				;INITIAL C(AC)
 11896	040146	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11897			000000			AA2=0				;INITIAL C(AC+1)
 11898	040147	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11899		777777	377777			AEE=XX				;INITIAL C(E)
 11900	040150	200 00 0 00 044065 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11901	040151	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11902		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11903	040152	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11904	040153	003 02 0 00 035241 		ER3	AC,35241		;HIGH PRODUCT FAILED
 11905		777777	377777			AR2=XX				;EXPECTED RESULT IN AC+1
 11906	040154	312 03 0 00 044065 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11907	040155	004 03 0 00 035242 		ER4	AC+1,35242		;LOW PRODUCT FAILED
 11908		777777	377777			AEE=XX				;INITIAL C(E)
 11909	040156	312 00 0 00 044065 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11910	040157	005 00 0 00 035243 		ER5	E,35243			;C(E) WAS CLOBBERED
 11911	040160	321 04 0 00 040146 		JUMPL	AC+2,F35240		;LOOP ON ERROR SWITCH^
 11912
 11913			003525			ADR=ADR+1
 11914		777776	777777			XX=XX+XX+1
 11915						IFE	<XX-1>,<XX=-2>
 11916
 11917					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11918		777777	777777			IFL	XX,<V1=-1>
 11919						IFG	XX,<V1=0>
 11920						MOP1	(\ADR,1,0,XX,V1,XX)^
 11921					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11922					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11923					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11924					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11925
 11926			000001		F35250:	AA1=1				;INITIAL C(AC)
 11927	040161	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11928			000000			AA2=0				;INITIAL C(AC+1)
 11929	040162	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11930		777776	777777			AEE=XX				;INITIAL C(E)
 11931	040163	200 00 0 00 044066 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11932	040164	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11933		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11934	040165	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11935	040166	003 02 0 00 035251 		ER3	AC,35251		;HIGH PRODUCT FAILED
 11936		777776	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 11937	040167	312 03 0 00 044066 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11938	040170	004 03 0 00 035252 		ER4	AC+1,35252		;LOW PRODUCT FAILED
 11939		777776	777777			AEE=XX				;INITIAL C(E)
 11940	040171	312 00 0 00 044066 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0239

 11941	040172	005 00 0 00 035253 		ER5	E,35253			;C(E) WAS CLOBBERED
 11942	040173	321 04 0 00 040161 		JUMPL	AC+2,F35250		;LOOP ON ERROR SWITCH^
 11943
 11944			003526			ADR=ADR+1
 11945		777775	777777			XX=XX+XX+1
 11946						IFE	<XX-1>,<XX=-2>
 11947
 11948					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11949		777777	777777			IFL	XX,<V1=-1>
 11950						IFG	XX,<V1=0>
 11951						MOP1	(\ADR,1,0,XX,V1,XX)^
 11952					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11953					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11954					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11955					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11956
 11957			000001		F35260:	AA1=1				;INITIAL C(AC)
 11958	040174	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11959			000000			AA2=0				;INITIAL C(AC+1)
 11960	040175	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11961		777775	777777			AEE=XX				;INITIAL C(E)
 11962	040176	200 00 0 00 044067 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11963	040177	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11964		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11965	040200	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11966	040201	003 02 0 00 035261 		ER3	AC,35261		;HIGH PRODUCT FAILED
 11967		777775	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 11968	040202	312 03 0 00 044067 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11969	040203	004 03 0 00 035262 		ER4	AC+1,35262		;LOW PRODUCT FAILED
 11970		777775	777777			AEE=XX				;INITIAL C(E)
 11971	040204	312 00 0 00 044067 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11972	040205	005 00 0 00 035263 		ER5	E,35263			;C(E) WAS CLOBBERED
 11973	040206	321 04 0 00 040174 		JUMPL	AC+2,F35260		;LOOP ON ERROR SWITCH^
 11974
 11975			003527			ADR=ADR+1
 11976		777773	777777			XX=XX+XX+1
 11977						IFE	<XX-1>,<XX=-2>
 11978
 11979					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 11980		777777	777777			IFL	XX,<V1=-1>
 11981						IFG	XX,<V1=0>
 11982						MOP1	(\ADR,1,0,XX,V1,XX)^
 11983					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 11984					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 11985					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 11986					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11987
 11988			000001		F35270:	AA1=1				;INITIAL C(AC)
 11989	040207	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11990			000000			AA2=0				;INITIAL C(AC+1)
 11991	040210	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11992		777773	777777			AEE=XX				;INITIAL C(E)
 11993	040211	200 00 0 00 044070 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11994	040212	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11995		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0240

 11996	040213	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11997	040214	003 02 0 00 035271 		ER3	AC,35271		;HIGH PRODUCT FAILED
 11998		777773	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 11999	040215	312 03 0 00 044070 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12000	040216	004 03 0 00 035272 		ER4	AC+1,35272		;LOW PRODUCT FAILED
 12001		777773	777777			AEE=XX				;INITIAL C(E)
 12002	040217	312 00 0 00 044070 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12003	040220	005 00 0 00 035273 		ER5	E,35273			;C(E) WAS CLOBBERED
 12004	040221	321 04 0 00 040207 		JUMPL	AC+2,F35270		;LOOP ON ERROR SWITCH^
 12005
 12006			003530			ADR=ADR+1
 12007		777767	777777			XX=XX+XX+1
 12008						IFE	<XX-1>,<XX=-2>
 12009
 12010					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12011		777777	777777			IFL	XX,<V1=-1>
 12012						IFG	XX,<V1=0>
 12013						MOP1	(\ADR,1,0,XX,V1,XX)^
 12014					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12015					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12016					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12017					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12018
 12019			000001		F35300:	AA1=1				;INITIAL C(AC)
 12020	040222	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12021			000000			AA2=0				;INITIAL C(AC+1)
 12022	040223	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12023		777767	777777			AEE=XX				;INITIAL C(E)
 12024	040224	200 00 0 00 044071 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12025	040225	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12026		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12027	040226	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12028	040227	003 02 0 00 035301 		ER3	AC,35301		;HIGH PRODUCT FAILED
 12029		777767	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12030	040230	312 03 0 00 044071 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12031	040231	004 03 0 00 035302 		ER4	AC+1,35302		;LOW PRODUCT FAILED
 12032		777767	777777			AEE=XX				;INITIAL C(E)
 12033	040232	312 00 0 00 044071 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12034	040233	005 00 0 00 035303 		ER5	E,35303			;C(E) WAS CLOBBERED
 12035	040234	321 04 0 00 040222 		JUMPL	AC+2,F35300		;LOOP ON ERROR SWITCH^
 12036
 12037			003531			ADR=ADR+1
 12038		777757	777777			XX=XX+XX+1
 12039						IFE	<XX-1>,<XX=-2>
 12040
 12041					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12042		777777	777777			IFL	XX,<V1=-1>
 12043						IFG	XX,<V1=0>
 12044						MOP1	(\ADR,1,0,XX,V1,XX)^
 12045					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12046					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12047					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12048					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12049
 12050			000001		F35310:	AA1=1				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0241

 12051	040235	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12052			000000			AA2=0				;INITIAL C(AC+1)
 12053	040236	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12054		777757	777777			AEE=XX				;INITIAL C(E)
 12055	040237	200 00 0 00 044072 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12056	040240	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12057		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12058	040241	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12059	040242	003 02 0 00 035311 		ER3	AC,35311		;HIGH PRODUCT FAILED
 12060		777757	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12061	040243	312 03 0 00 044072 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12062	040244	004 03 0 00 035312 		ER4	AC+1,35312		;LOW PRODUCT FAILED
 12063		777757	777777			AEE=XX				;INITIAL C(E)
 12064	040245	312 00 0 00 044072 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12065	040246	005 00 0 00 035313 		ER5	E,35313			;C(E) WAS CLOBBERED
 12066	040247	321 04 0 00 040235 		JUMPL	AC+2,F35310		;LOOP ON ERROR SWITCH^
 12067
 12068			003532			ADR=ADR+1
 12069		777737	777777			XX=XX+XX+1
 12070						IFE	<XX-1>,<XX=-2>
 12071
 12072					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12073		777777	777777			IFL	XX,<V1=-1>
 12074						IFG	XX,<V1=0>
 12075						MOP1	(\ADR,1,0,XX,V1,XX)^
 12076					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12077					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12078					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12079					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12080
 12081			000001		F35320:	AA1=1				;INITIAL C(AC)
 12082	040250	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12083			000000			AA2=0				;INITIAL C(AC+1)
 12084	040251	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12085		777737	777777			AEE=XX				;INITIAL C(E)
 12086	040252	200 00 0 00 044073 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12087	040253	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12088		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12089	040254	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12090	040255	003 02 0 00 035321 		ER3	AC,35321		;HIGH PRODUCT FAILED
 12091		777737	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12092	040256	312 03 0 00 044073 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12093	040257	004 03 0 00 035322 		ER4	AC+1,35322		;LOW PRODUCT FAILED
 12094		777737	777777			AEE=XX				;INITIAL C(E)
 12095	040260	312 00 0 00 044073 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12096	040261	005 00 0 00 035323 		ER5	E,35323			;C(E) WAS CLOBBERED
 12097	040262	321 04 0 00 040250 		JUMPL	AC+2,F35320		;LOOP ON ERROR SWITCH^
 12098
 12099			003533			ADR=ADR+1
 12100		777677	777777			XX=XX+XX+1
 12101						IFE	<XX-1>,<XX=-2>
 12102
 12103					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12104		777777	777777			IFL	XX,<V1=-1>
 12105						IFG	XX,<V1=0>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0242

 12106						MOP1	(\ADR,1,0,XX,V1,XX)^
 12107					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12108					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12109					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12110					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12111
 12112			000001		F35330:	AA1=1				;INITIAL C(AC)
 12113	040263	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12114			000000			AA2=0				;INITIAL C(AC+1)
 12115	040264	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12116		777677	777777			AEE=XX				;INITIAL C(E)
 12117	040265	200 00 0 00 044074 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12118	040266	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12119		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12120	040267	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12121	040270	003 02 0 00 035331 		ER3	AC,35331		;HIGH PRODUCT FAILED
 12122		777677	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12123	040271	312 03 0 00 044074 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12124	040272	004 03 0 00 035332 		ER4	AC+1,35332		;LOW PRODUCT FAILED
 12125		777677	777777			AEE=XX				;INITIAL C(E)
 12126	040273	312 00 0 00 044074 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12127	040274	005 00 0 00 035333 		ER5	E,35333			;C(E) WAS CLOBBERED
 12128	040275	321 04 0 00 040263 		JUMPL	AC+2,F35330		;LOOP ON ERROR SWITCH^
 12129
 12130			003534			ADR=ADR+1
 12131		777577	777777			XX=XX+XX+1
 12132						IFE	<XX-1>,<XX=-2>
 12133
 12134					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12135		777777	777777			IFL	XX,<V1=-1>
 12136						IFG	XX,<V1=0>
 12137						MOP1	(\ADR,1,0,XX,V1,XX)^
 12138					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12139					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12140					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12141					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12142
 12143			000001		F35340:	AA1=1				;INITIAL C(AC)
 12144	040276	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12145			000000			AA2=0				;INITIAL C(AC+1)
 12146	040277	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12147		777577	777777			AEE=XX				;INITIAL C(E)
 12148	040300	200 00 0 00 044075 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12149	040301	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12150		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12151	040302	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12152	040303	003 02 0 00 035341 		ER3	AC,35341		;HIGH PRODUCT FAILED
 12153		777577	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12154	040304	312 03 0 00 044075 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12155	040305	004 03 0 00 035342 		ER4	AC+1,35342		;LOW PRODUCT FAILED
 12156		777577	777777			AEE=XX				;INITIAL C(E)
 12157	040306	312 00 0 00 044075 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12158	040307	005 00 0 00 035343 		ER5	E,35343			;C(E) WAS CLOBBERED
 12159	040310	321 04 0 00 040276 		JUMPL	AC+2,F35340		;LOOP ON ERROR SWITCH^
 12160
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0243

 12161			003535			ADR=ADR+1
 12162		777377	777777			XX=XX+XX+1
 12163						IFE	<XX-1>,<XX=-2>
 12164
 12165					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12166		777777	777777			IFL	XX,<V1=-1>
 12167						IFG	XX,<V1=0>
 12168						MOP1	(\ADR,1,0,XX,V1,XX)^
 12169					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12170					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12171					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12172					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12173
 12174			000001		F35350:	AA1=1				;INITIAL C(AC)
 12175	040311	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12176			000000			AA2=0				;INITIAL C(AC+1)
 12177	040312	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12178		777377	777777			AEE=XX				;INITIAL C(E)
 12179	040313	200 00 0 00 044076 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12180	040314	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12181		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12182	040315	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12183	040316	003 02 0 00 035351 		ER3	AC,35351		;HIGH PRODUCT FAILED
 12184		777377	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12185	040317	312 03 0 00 044076 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12186	040320	004 03 0 00 035352 		ER4	AC+1,35352		;LOW PRODUCT FAILED
 12187		777377	777777			AEE=XX				;INITIAL C(E)
 12188	040321	312 00 0 00 044076 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12189	040322	005 00 0 00 035353 		ER5	E,35353			;C(E) WAS CLOBBERED
 12190	040323	321 04 0 00 040311 		JUMPL	AC+2,F35350		;LOOP ON ERROR SWITCH^
 12191
 12192			003536			ADR=ADR+1
 12193		776777	777777			XX=XX+XX+1
 12194						IFE	<XX-1>,<XX=-2>
 12195
 12196					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12197		777777	777777			IFL	XX,<V1=-1>
 12198						IFG	XX,<V1=0>
 12199						MOP1	(\ADR,1,0,XX,V1,XX)^
 12200					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12201					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12202					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12203					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12204
 12205			000001		F35360:	AA1=1				;INITIAL C(AC)
 12206	040324	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12207			000000			AA2=0				;INITIAL C(AC+1)
 12208	040325	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12209		776777	777777			AEE=XX				;INITIAL C(E)
 12210	040326	200 00 0 00 044077 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12211	040327	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12212		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12213	040330	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12214	040331	003 02 0 00 035361 		ER3	AC,35361		;HIGH PRODUCT FAILED
 12215		776777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0244

 12216	040332	312 03 0 00 044077 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12217	040333	004 03 0 00 035362 		ER4	AC+1,35362		;LOW PRODUCT FAILED
 12218		776777	777777			AEE=XX				;INITIAL C(E)
 12219	040334	312 00 0 00 044077 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12220	040335	005 00 0 00 035363 		ER5	E,35363			;C(E) WAS CLOBBERED
 12221	040336	321 04 0 00 040324 		JUMPL	AC+2,F35360		;LOOP ON ERROR SWITCH^
 12222
 12223			003537			ADR=ADR+1
 12224		775777	777777			XX=XX+XX+1
 12225						IFE	<XX-1>,<XX=-2>
 12226
 12227					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12228		777777	777777			IFL	XX,<V1=-1>
 12229						IFG	XX,<V1=0>
 12230						MOP1	(\ADR,1,0,XX,V1,XX)^
 12231					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12232					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12233					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12234					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12235
 12236			000001		F35370:	AA1=1				;INITIAL C(AC)
 12237	040337	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12238			000000			AA2=0				;INITIAL C(AC+1)
 12239	040340	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12240		775777	777777			AEE=XX				;INITIAL C(E)
 12241	040341	200 00 0 00 044100 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12242	040342	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12243		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12244	040343	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12245	040344	003 02 0 00 035371 		ER3	AC,35371		;HIGH PRODUCT FAILED
 12246		775777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12247	040345	312 03 0 00 044100 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12248	040346	004 03 0 00 035372 		ER4	AC+1,35372		;LOW PRODUCT FAILED
 12249		775777	777777			AEE=XX				;INITIAL C(E)
 12250	040347	312 00 0 00 044100 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12251	040350	005 00 0 00 035373 		ER5	E,35373			;C(E) WAS CLOBBERED
 12252	040351	321 04 0 00 040337 		JUMPL	AC+2,F35370		;LOOP ON ERROR SWITCH^
 12253
 12254			003540			ADR=ADR+1
 12255		773777	777777			XX=XX+XX+1
 12256						IFE	<XX-1>,<XX=-2>
 12257
 12258					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12259		777777	777777			IFL	XX,<V1=-1>
 12260						IFG	XX,<V1=0>
 12261						MOP1	(\ADR,1,0,XX,V1,XX)^
 12262					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12263					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12264					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12265					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12266
 12267			000001		F35400:	AA1=1				;INITIAL C(AC)
 12268	040352	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12269			000000			AA2=0				;INITIAL C(AC+1)
 12270	040353	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0245

 12271		773777	777777			AEE=XX				;INITIAL C(E)
 12272	040354	200 00 0 00 044101 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12273	040355	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12274		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12275	040356	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12276	040357	003 02 0 00 035401 		ER3	AC,35401		;HIGH PRODUCT FAILED
 12277		773777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12278	040360	312 03 0 00 044101 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12279	040361	004 03 0 00 035402 		ER4	AC+1,35402		;LOW PRODUCT FAILED
 12280		773777	777777			AEE=XX				;INITIAL C(E)
 12281	040362	312 00 0 00 044101 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12282	040363	005 00 0 00 035403 		ER5	E,35403			;C(E) WAS CLOBBERED
 12283	040364	321 04 0 00 040352 		JUMPL	AC+2,F35400		;LOOP ON ERROR SWITCH^
 12284
 12285			003541			ADR=ADR+1
 12286		767777	777777			XX=XX+XX+1
 12287						IFE	<XX-1>,<XX=-2>
 12288
 12289					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12290		777777	777777			IFL	XX,<V1=-1>
 12291						IFG	XX,<V1=0>
 12292						MOP1	(\ADR,1,0,XX,V1,XX)^
 12293					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12294					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12295					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12296					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12297
 12298			000001		F35410:	AA1=1				;INITIAL C(AC)
 12299	040365	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12300			000000			AA2=0				;INITIAL C(AC+1)
 12301	040366	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12302		767777	777777			AEE=XX				;INITIAL C(E)
 12303	040367	200 00 0 00 044102 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12304	040370	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12305		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12306	040371	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12307	040372	003 02 0 00 035411 		ER3	AC,35411		;HIGH PRODUCT FAILED
 12308		767777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12309	040373	312 03 0 00 044102 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12310	040374	004 03 0 00 035412 		ER4	AC+1,35412		;LOW PRODUCT FAILED
 12311		767777	777777			AEE=XX				;INITIAL C(E)
 12312	040375	312 00 0 00 044102 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12313	040376	005 00 0 00 035413 		ER5	E,35413			;C(E) WAS CLOBBERED
 12314	040377	321 04 0 00 040365 		JUMPL	AC+2,F35410		;LOOP ON ERROR SWITCH^
 12315
 12316			003542			ADR=ADR+1
 12317		757777	777777			XX=XX+XX+1
 12318						IFE	<XX-1>,<XX=-2>
 12319
 12320					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12321		777777	777777			IFL	XX,<V1=-1>
 12322						IFG	XX,<V1=0>
 12323						MOP1	(\ADR,1,0,XX,V1,XX)^
 12324					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12325					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0246

 12326					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12327					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12328
 12329			000001		F35420:	AA1=1				;INITIAL C(AC)
 12330	040400	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12331			000000			AA2=0				;INITIAL C(AC+1)
 12332	040401	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12333		757777	777777			AEE=XX				;INITIAL C(E)
 12334	040402	200 00 0 00 044103 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12335	040403	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12336		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12337	040404	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12338	040405	003 02 0 00 035421 		ER3	AC,35421		;HIGH PRODUCT FAILED
 12339		757777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12340	040406	312 03 0 00 044103 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12341	040407	004 03 0 00 035422 		ER4	AC+1,35422		;LOW PRODUCT FAILED
 12342		757777	777777			AEE=XX				;INITIAL C(E)
 12343	040410	312 00 0 00 044103 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12344	040411	005 00 0 00 035423 		ER5	E,35423			;C(E) WAS CLOBBERED
 12345	040412	321 04 0 00 040400 		JUMPL	AC+2,F35420		;LOOP ON ERROR SWITCH^
 12346
 12347			003543			ADR=ADR+1
 12348		737777	777777			XX=XX+XX+1
 12349						IFE	<XX-1>,<XX=-2>
 12350
 12351					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12352		777777	777777			IFL	XX,<V1=-1>
 12353						IFG	XX,<V1=0>
 12354						MOP1	(\ADR,1,0,XX,V1,XX)^
 12355					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12356					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12357					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12358					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12359
 12360			000001		F35430:	AA1=1				;INITIAL C(AC)
 12361	040413	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12362			000000			AA2=0				;INITIAL C(AC+1)
 12363	040414	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12364		737777	777777			AEE=XX				;INITIAL C(E)
 12365	040415	200 00 0 00 044104 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12366	040416	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12367		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12368	040417	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12369	040420	003 02 0 00 035431 		ER3	AC,35431		;HIGH PRODUCT FAILED
 12370		737777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12371	040421	312 03 0 00 044104 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12372	040422	004 03 0 00 035432 		ER4	AC+1,35432		;LOW PRODUCT FAILED
 12373		737777	777777			AEE=XX				;INITIAL C(E)
 12374	040423	312 00 0 00 044104 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12375	040424	005 00 0 00 035433 		ER5	E,35433			;C(E) WAS CLOBBERED
 12376	040425	321 04 0 00 040413 		JUMPL	AC+2,F35430		;LOOP ON ERROR SWITCH^
 12377
 12378			003544			ADR=ADR+1
 12379		677777	777777			XX=XX+XX+1
 12380						IFE	<XX-1>,<XX=-2>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0247

 12381
 12382					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12383		777777	777777			IFL	XX,<V1=-1>
 12384						IFG	XX,<V1=0>
 12385						MOP1	(\ADR,1,0,XX,V1,XX)^
 12386					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12387					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12388					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12389					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12390
 12391			000001		F35440:	AA1=1				;INITIAL C(AC)
 12392	040426	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12393			000000			AA2=0				;INITIAL C(AC+1)
 12394	040427	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12395		677777	777777			AEE=XX				;INITIAL C(E)
 12396	040430	200 00 0 00 044105 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12397	040431	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12398		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12399	040432	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12400	040433	003 02 0 00 035441 		ER3	AC,35441		;HIGH PRODUCT FAILED
 12401		677777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12402	040434	312 03 0 00 044105 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12403	040435	004 03 0 00 035442 		ER4	AC+1,35442		;LOW PRODUCT FAILED
 12404		677777	777777			AEE=XX				;INITIAL C(E)
 12405	040436	312 00 0 00 044105 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12406	040437	005 00 0 00 035443 		ER5	E,35443			;C(E) WAS CLOBBERED
 12407	040440	321 04 0 00 040426 		JUMPL	AC+2,F35440		;LOOP ON ERROR SWITCH^
 12408
 12409			003545			ADR=ADR+1
 12410		577777	777777			XX=XX+XX+1
 12411						IFE	<XX-1>,<XX=-2>
 12412
 12413					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12414		777777	777777			IFL	XX,<V1=-1>
 12415						IFG	XX,<V1=0>
 12416						MOP1	(\ADR,1,0,XX,V1,XX)^
 12417					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12418					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12419					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12420					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12421
 12422			000001		F35450:	AA1=1				;INITIAL C(AC)
 12423	040441	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12424			000000			AA2=0				;INITIAL C(AC+1)
 12425	040442	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12426		577777	777777			AEE=XX				;INITIAL C(E)
 12427	040443	200 00 0 00 044106 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12428	040444	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12429		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12430	040445	312 02 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12431	040446	003 02 0 00 035451 		ER3	AC,35451		;HIGH PRODUCT FAILED
 12432		577777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12433	040447	312 03 0 00 044106 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12434	040450	004 03 0 00 035452 		ER4	AC+1,35452		;LOW PRODUCT FAILED
 12435		577777	777777			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 14-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0248

 12436	040451	312 00 0 00 044106 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12437	040452	005 00 0 00 035453 		ER5	E,35453			;C(E) WAS CLOBBERED
 12438	040453	321 04 0 00 040441 		JUMPL	AC+2,F35450		;LOOP ON ERROR SWITCH^
 12439
 12440			003546			ADR=ADR+1
 12441		377777	777777			XX=XX+XX+1
 12442						IFE	<XX-1>,<XX=-2>
 12443
 12444					;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
 12445						IFL	XX,<V1=-1>
 12446			000000			IFG	XX,<V1=0>
 12447						MOP1	(\ADR,1,0,XX,V1,XX)^
 12448					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND
 12449					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12450					;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY.
 12451					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12452
 12453			000001		F35460:	AA1=1				;INITIAL C(AC)
 12454	040454	200 02 0 00 044000 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12455			000000			AA2=0				;INITIAL C(AC+1)
 12456	040455	200 03 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12457		377777	777777			AEE=XX				;INITIAL C(E)
 12458	040456	200 00 0 00 044107 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12459	040457	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12460			000000			AR1=V1				;EXPECTED RESULT IN AC
 12461	040460	312 02 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12462	040461	003 02 0 00 035461 		ER3	AC,35461		;HIGH PRODUCT FAILED
 12463		377777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12464	040462	312 03 0 00 044107 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12465	040463	004 03 0 00 035462 		ER4	AC+1,35462		;LOW PRODUCT FAILED
 12466		377777	777777			AEE=XX				;INITIAL C(E)
 12467	040464	312 00 0 00 044107 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12468	040465	005 00 0 00 035463 		ER5	E,35463			;C(E) WAS CLOBBERED
 12469	040466	321 04 0 00 040454 		JUMPL	AC+2,F35460		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0249

 12470			000010			AC=10
 12471			000006			E=<AC-2>&17
 12472						SAVEAC	(1,1)^
 12473	040467	201 12 0 00 040467 		MOVEI	AC+2,.		;SAVE TEST PC
 12474	040470	202 12 0 00 030051 		MOVEM	AC+2,TESTPC
 12475	040471	201 12 0 00 000012 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 12476	040472	202 12 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
 12477			000000			XX=0
 12478
 12479						REPEAT	^D36,<
 12480						ADR=ADR+1
 12481						XX=XX+XX+1
 12482						IFE	<XX-1>,<XX=-2>
 12483					
 12484					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12485						IFL	XX,<V1=-1>
 12486						IFG	XX,<V1=0>
 12487						MOP1	(\ADR,XX,0,1,V1,XX)>
 12488
 12489			003547			ADR=ADR+1
 12490			000001			XX=XX+XX+1
 12491		777777	777776			IFE	<XX-1>,<XX=-2>
 12492
 12493					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12494		777777	777777			IFL	XX,<V1=-1>
 12495						IFG	XX,<V1=0>
 12496						MOP1	(\ADR,XX,0,1,V1,XX)^
 12497					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12498					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12499					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12500					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12501
 12502		777777	777776		F35470:	AA1=XX				;INITIAL C(AC)
 12503	040473	200 10 0 00 044044 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12504			000000			AA2=0				;INITIAL C(AC+1)
 12505	040474	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12506			000001			AEE=1				;INITIAL C(E)
 12507	040475	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12508	040476	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12509		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12510	040477	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12511	040500	003 10 0 00 035471 		ER3	AC,35471		;HIGH PRODUCT FAILED
 12512		777777	777776			AR2=XX				;EXPECTED RESULT IN AC+1
 12513	040501	312 11 0 00 044044 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12514	040502	004 11 0 00 035472 		ER4	AC+1,35472		;LOW PRODUCT FAILED
 12515			000001			AEE=1				;INITIAL C(E)
 12516	040503	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12517	040504	005 06 0 00 035473 		ER5	E,35473			;C(E) WAS CLOBBERED
 12518	040505	321 12 0 00 040473 		JUMPL	AC+2,F35470		;LOOP ON ERROR SWITCH^
 12519
 12520			003550			ADR=ADR+1
 12521		777777	777775			XX=XX+XX+1
 12522						IFE	<XX-1>,<XX=-2>
 12523
 12524					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0250

 12525		777777	777777			IFL	XX,<V1=-1>
 12526						IFG	XX,<V1=0>
 12527						MOP1	(\ADR,XX,0,1,V1,XX)^
 12528					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12529					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12530					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12531					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12532
 12533		777777	777775		F35500:	AA1=XX				;INITIAL C(AC)
 12534	040506	200 10 0 00 044045 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12535			000000			AA2=0				;INITIAL C(AC+1)
 12536	040507	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12537			000001			AEE=1				;INITIAL C(E)
 12538	040510	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12539	040511	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12540		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12541	040512	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12542	040513	003 10 0 00 035501 		ER3	AC,35501		;HIGH PRODUCT FAILED
 12543		777777	777775			AR2=XX				;EXPECTED RESULT IN AC+1
 12544	040514	312 11 0 00 044045 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12545	040515	004 11 0 00 035502 		ER4	AC+1,35502		;LOW PRODUCT FAILED
 12546			000001			AEE=1				;INITIAL C(E)
 12547	040516	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12548	040517	005 06 0 00 035503 		ER5	E,35503			;C(E) WAS CLOBBERED
 12549	040520	321 12 0 00 040506 		JUMPL	AC+2,F35500		;LOOP ON ERROR SWITCH^
 12550
 12551			003551			ADR=ADR+1
 12552		777777	777773			XX=XX+XX+1
 12553						IFE	<XX-1>,<XX=-2>
 12554
 12555					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12556		777777	777777			IFL	XX,<V1=-1>
 12557						IFG	XX,<V1=0>
 12558						MOP1	(\ADR,XX,0,1,V1,XX)^
 12559					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12560					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12561					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12562					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12563
 12564		777777	777773		F35510:	AA1=XX				;INITIAL C(AC)
 12565	040521	200 10 0 00 044046 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12566			000000			AA2=0				;INITIAL C(AC+1)
 12567	040522	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12568			000001			AEE=1				;INITIAL C(E)
 12569	040523	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12570	040524	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12571		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12572	040525	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12573	040526	003 10 0 00 035511 		ER3	AC,35511		;HIGH PRODUCT FAILED
 12574		777777	777773			AR2=XX				;EXPECTED RESULT IN AC+1
 12575	040527	312 11 0 00 044046 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12576	040530	004 11 0 00 035512 		ER4	AC+1,35512		;LOW PRODUCT FAILED
 12577			000001			AEE=1				;INITIAL C(E)
 12578	040531	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12579	040532	005 06 0 00 035513 		ER5	E,35513			;C(E) WAS CLOBBERED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0251

 12580	040533	321 12 0 00 040521 		JUMPL	AC+2,F35510		;LOOP ON ERROR SWITCH^
 12581
 12582			003552			ADR=ADR+1
 12583		777777	777767			XX=XX+XX+1
 12584						IFE	<XX-1>,<XX=-2>
 12585
 12586					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12587		777777	777777			IFL	XX,<V1=-1>
 12588						IFG	XX,<V1=0>
 12589						MOP1	(\ADR,XX,0,1,V1,XX)^
 12590					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12591					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12592					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12593					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12594
 12595		777777	777767		F35520:	AA1=XX				;INITIAL C(AC)
 12596	040534	200 10 0 00 044047 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12597			000000			AA2=0				;INITIAL C(AC+1)
 12598	040535	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12599			000001			AEE=1				;INITIAL C(E)
 12600	040536	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12601	040537	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12602		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12603	040540	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12604	040541	003 10 0 00 035521 		ER3	AC,35521		;HIGH PRODUCT FAILED
 12605		777777	777767			AR2=XX				;EXPECTED RESULT IN AC+1
 12606	040542	312 11 0 00 044047 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12607	040543	004 11 0 00 035522 		ER4	AC+1,35522		;LOW PRODUCT FAILED
 12608			000001			AEE=1				;INITIAL C(E)
 12609	040544	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12610	040545	005 06 0 00 035523 		ER5	E,35523			;C(E) WAS CLOBBERED
 12611	040546	321 12 0 00 040534 		JUMPL	AC+2,F35520		;LOOP ON ERROR SWITCH^
 12612
 12613			003553			ADR=ADR+1
 12614		777777	777757			XX=XX+XX+1
 12615						IFE	<XX-1>,<XX=-2>
 12616
 12617					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12618		777777	777777			IFL	XX,<V1=-1>
 12619						IFG	XX,<V1=0>
 12620						MOP1	(\ADR,XX,0,1,V1,XX)^
 12621					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12622					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12623					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12624					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12625
 12626		777777	777757		F35530:	AA1=XX				;INITIAL C(AC)
 12627	040547	200 10 0 00 044050 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12628			000000			AA2=0				;INITIAL C(AC+1)
 12629	040550	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12630			000001			AEE=1				;INITIAL C(E)
 12631	040551	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12632	040552	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12633		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12634	040553	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0252

 12635	040554	003 10 0 00 035531 		ER3	AC,35531		;HIGH PRODUCT FAILED
 12636		777777	777757			AR2=XX				;EXPECTED RESULT IN AC+1
 12637	040555	312 11 0 00 044050 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12638	040556	004 11 0 00 035532 		ER4	AC+1,35532		;LOW PRODUCT FAILED
 12639			000001			AEE=1				;INITIAL C(E)
 12640	040557	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12641	040560	005 06 0 00 035533 		ER5	E,35533			;C(E) WAS CLOBBERED
 12642	040561	321 12 0 00 040547 		JUMPL	AC+2,F35530		;LOOP ON ERROR SWITCH^
 12643
 12644			003554			ADR=ADR+1
 12645		777777	777737			XX=XX+XX+1
 12646						IFE	<XX-1>,<XX=-2>
 12647
 12648					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12649		777777	777777			IFL	XX,<V1=-1>
 12650						IFG	XX,<V1=0>
 12651						MOP1	(\ADR,XX,0,1,V1,XX)^
 12652					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12653					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12654					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12655					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12656
 12657		777777	777737		F35540:	AA1=XX				;INITIAL C(AC)
 12658	040562	200 10 0 00 044051 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12659			000000			AA2=0				;INITIAL C(AC+1)
 12660	040563	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12661			000001			AEE=1				;INITIAL C(E)
 12662	040564	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12663	040565	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12664		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12665	040566	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12666	040567	003 10 0 00 035541 		ER3	AC,35541		;HIGH PRODUCT FAILED
 12667		777777	777737			AR2=XX				;EXPECTED RESULT IN AC+1
 12668	040570	312 11 0 00 044051 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12669	040571	004 11 0 00 035542 		ER4	AC+1,35542		;LOW PRODUCT FAILED
 12670			000001			AEE=1				;INITIAL C(E)
 12671	040572	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12672	040573	005 06 0 00 035543 		ER5	E,35543			;C(E) WAS CLOBBERED
 12673	040574	321 12 0 00 040562 		JUMPL	AC+2,F35540		;LOOP ON ERROR SWITCH^
 12674
 12675			003555			ADR=ADR+1
 12676		777777	777677			XX=XX+XX+1
 12677						IFE	<XX-1>,<XX=-2>
 12678
 12679					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12680		777777	777777			IFL	XX,<V1=-1>
 12681						IFG	XX,<V1=0>
 12682						MOP1	(\ADR,XX,0,1,V1,XX)^
 12683					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12684					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12685					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12686					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12687
 12688		777777	777677		F35550:	AA1=XX				;INITIAL C(AC)
 12689	040575	200 10 0 00 044052 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0253

 12690			000000			AA2=0				;INITIAL C(AC+1)
 12691	040576	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12692			000001			AEE=1				;INITIAL C(E)
 12693	040577	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12694	040600	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12695		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12696	040601	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12697	040602	003 10 0 00 035551 		ER3	AC,35551		;HIGH PRODUCT FAILED
 12698		777777	777677			AR2=XX				;EXPECTED RESULT IN AC+1
 12699	040603	312 11 0 00 044052 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12700	040604	004 11 0 00 035552 		ER4	AC+1,35552		;LOW PRODUCT FAILED
 12701			000001			AEE=1				;INITIAL C(E)
 12702	040605	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12703	040606	005 06 0 00 035553 		ER5	E,35553			;C(E) WAS CLOBBERED
 12704	040607	321 12 0 00 040575 		JUMPL	AC+2,F35550		;LOOP ON ERROR SWITCH^
 12705
 12706			003556			ADR=ADR+1
 12707		777777	777577			XX=XX+XX+1
 12708						IFE	<XX-1>,<XX=-2>
 12709
 12710					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12711		777777	777777			IFL	XX,<V1=-1>
 12712						IFG	XX,<V1=0>
 12713						MOP1	(\ADR,XX,0,1,V1,XX)^
 12714					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12715					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12716					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12717					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12718
 12719		777777	777577		F35560:	AA1=XX				;INITIAL C(AC)
 12720	040610	200 10 0 00 044053 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12721			000000			AA2=0				;INITIAL C(AC+1)
 12722	040611	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12723			000001			AEE=1				;INITIAL C(E)
 12724	040612	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12725	040613	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12726		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12727	040614	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12728	040615	003 10 0 00 035561 		ER3	AC,35561		;HIGH PRODUCT FAILED
 12729		777777	777577			AR2=XX				;EXPECTED RESULT IN AC+1
 12730	040616	312 11 0 00 044053 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12731	040617	004 11 0 00 035562 		ER4	AC+1,35562		;LOW PRODUCT FAILED
 12732			000001			AEE=1				;INITIAL C(E)
 12733	040620	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12734	040621	005 06 0 00 035563 		ER5	E,35563			;C(E) WAS CLOBBERED
 12735	040622	321 12 0 00 040610 		JUMPL	AC+2,F35560		;LOOP ON ERROR SWITCH^
 12736
 12737			003557			ADR=ADR+1
 12738		777777	777377			XX=XX+XX+1
 12739						IFE	<XX-1>,<XX=-2>
 12740
 12741					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12742		777777	777777			IFL	XX,<V1=-1>
 12743						IFG	XX,<V1=0>
 12744						MOP1	(\ADR,XX,0,1,V1,XX)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0254

 12745					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12746					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12747					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12748					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12749
 12750		777777	777377		F35570:	AA1=XX				;INITIAL C(AC)
 12751	040623	200 10 0 00 044054 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12752			000000			AA2=0				;INITIAL C(AC+1)
 12753	040624	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12754			000001			AEE=1				;INITIAL C(E)
 12755	040625	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12756	040626	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12757		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12758	040627	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12759	040630	003 10 0 00 035571 		ER3	AC,35571		;HIGH PRODUCT FAILED
 12760		777777	777377			AR2=XX				;EXPECTED RESULT IN AC+1
 12761	040631	312 11 0 00 044054 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12762	040632	004 11 0 00 035572 		ER4	AC+1,35572		;LOW PRODUCT FAILED
 12763			000001			AEE=1				;INITIAL C(E)
 12764	040633	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12765	040634	005 06 0 00 035573 		ER5	E,35573			;C(E) WAS CLOBBERED
 12766	040635	321 12 0 00 040623 		JUMPL	AC+2,F35570		;LOOP ON ERROR SWITCH^
 12767
 12768			003560			ADR=ADR+1
 12769		777777	776777			XX=XX+XX+1
 12770						IFE	<XX-1>,<XX=-2>
 12771
 12772					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12773		777777	777777			IFL	XX,<V1=-1>
 12774						IFG	XX,<V1=0>
 12775						MOP1	(\ADR,XX,0,1,V1,XX)^
 12776					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12777					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12778					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12779					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12780
 12781		777777	776777		F35600:	AA1=XX				;INITIAL C(AC)
 12782	040636	200 10 0 00 044055 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12783			000000			AA2=0				;INITIAL C(AC+1)
 12784	040637	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12785			000001			AEE=1				;INITIAL C(E)
 12786	040640	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12787	040641	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12788		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12789	040642	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12790	040643	003 10 0 00 035601 		ER3	AC,35601		;HIGH PRODUCT FAILED
 12791		777777	776777			AR2=XX				;EXPECTED RESULT IN AC+1
 12792	040644	312 11 0 00 044055 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12793	040645	004 11 0 00 035602 		ER4	AC+1,35602		;LOW PRODUCT FAILED
 12794			000001			AEE=1				;INITIAL C(E)
 12795	040646	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12796	040647	005 06 0 00 035603 		ER5	E,35603			;C(E) WAS CLOBBERED
 12797	040650	321 12 0 00 040636 		JUMPL	AC+2,F35600		;LOOP ON ERROR SWITCH^
 12798
 12799			003561			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0255

 12800		777777	775777			XX=XX+XX+1
 12801						IFE	<XX-1>,<XX=-2>
 12802
 12803					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12804		777777	777777			IFL	XX,<V1=-1>
 12805						IFG	XX,<V1=0>
 12806						MOP1	(\ADR,XX,0,1,V1,XX)^
 12807					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12808					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12809					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12810					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12811
 12812		777777	775777		F35610:	AA1=XX				;INITIAL C(AC)
 12813	040651	200 10 0 00 044056 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12814			000000			AA2=0				;INITIAL C(AC+1)
 12815	040652	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12816			000001			AEE=1				;INITIAL C(E)
 12817	040653	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12818	040654	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12819		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12820	040655	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12821	040656	003 10 0 00 035611 		ER3	AC,35611		;HIGH PRODUCT FAILED
 12822		777777	775777			AR2=XX				;EXPECTED RESULT IN AC+1
 12823	040657	312 11 0 00 044056 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12824	040660	004 11 0 00 035612 		ER4	AC+1,35612		;LOW PRODUCT FAILED
 12825			000001			AEE=1				;INITIAL C(E)
 12826	040661	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12827	040662	005 06 0 00 035613 		ER5	E,35613			;C(E) WAS CLOBBERED
 12828	040663	321 12 0 00 040651 		JUMPL	AC+2,F35610		;LOOP ON ERROR SWITCH^
 12829
 12830			003562			ADR=ADR+1
 12831		777777	773777			XX=XX+XX+1
 12832						IFE	<XX-1>,<XX=-2>
 12833
 12834					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12835		777777	777777			IFL	XX,<V1=-1>
 12836						IFG	XX,<V1=0>
 12837						MOP1	(\ADR,XX,0,1,V1,XX)^
 12838					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12839					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12840					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12841					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12842
 12843		777777	773777		F35620:	AA1=XX				;INITIAL C(AC)
 12844	040664	200 10 0 00 044057 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12845			000000			AA2=0				;INITIAL C(AC+1)
 12846	040665	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12847			000001			AEE=1				;INITIAL C(E)
 12848	040666	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12849	040667	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12850		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12851	040670	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12852	040671	003 10 0 00 035621 		ER3	AC,35621		;HIGH PRODUCT FAILED
 12853		777777	773777			AR2=XX				;EXPECTED RESULT IN AC+1
 12854	040672	312 11 0 00 044057 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0256

 12855	040673	004 11 0 00 035622 		ER4	AC+1,35622		;LOW PRODUCT FAILED
 12856			000001			AEE=1				;INITIAL C(E)
 12857	040674	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12858	040675	005 06 0 00 035623 		ER5	E,35623			;C(E) WAS CLOBBERED
 12859	040676	321 12 0 00 040664 		JUMPL	AC+2,F35620		;LOOP ON ERROR SWITCH^
 12860
 12861			003563			ADR=ADR+1
 12862		777777	767777			XX=XX+XX+1
 12863						IFE	<XX-1>,<XX=-2>
 12864
 12865					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12866		777777	777777			IFL	XX,<V1=-1>
 12867						IFG	XX,<V1=0>
 12868						MOP1	(\ADR,XX,0,1,V1,XX)^
 12869					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12870					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12871					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12872					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12873
 12874		777777	767777		F35630:	AA1=XX				;INITIAL C(AC)
 12875	040677	200 10 0 00 044060 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12876			000000			AA2=0				;INITIAL C(AC+1)
 12877	040700	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12878			000001			AEE=1				;INITIAL C(E)
 12879	040701	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12880	040702	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12881		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12882	040703	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12883	040704	003 10 0 00 035631 		ER3	AC,35631		;HIGH PRODUCT FAILED
 12884		777777	767777			AR2=XX				;EXPECTED RESULT IN AC+1
 12885	040705	312 11 0 00 044060 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12886	040706	004 11 0 00 035632 		ER4	AC+1,35632		;LOW PRODUCT FAILED
 12887			000001			AEE=1				;INITIAL C(E)
 12888	040707	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12889	040710	005 06 0 00 035633 		ER5	E,35633			;C(E) WAS CLOBBERED
 12890	040711	321 12 0 00 040677 		JUMPL	AC+2,F35630		;LOOP ON ERROR SWITCH^
 12891
 12892			003564			ADR=ADR+1
 12893		777777	757777			XX=XX+XX+1
 12894						IFE	<XX-1>,<XX=-2>
 12895
 12896					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12897		777777	777777			IFL	XX,<V1=-1>
 12898						IFG	XX,<V1=0>
 12899						MOP1	(\ADR,XX,0,1,V1,XX)^
 12900					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12901					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12902					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12903					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12904
 12905		777777	757777		F35640:	AA1=XX				;INITIAL C(AC)
 12906	040712	200 10 0 00 044061 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12907			000000			AA2=0				;INITIAL C(AC+1)
 12908	040713	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12909			000001			AEE=1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0257

 12910	040714	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12911	040715	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12912		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12913	040716	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12914	040717	003 10 0 00 035641 		ER3	AC,35641		;HIGH PRODUCT FAILED
 12915		777777	757777			AR2=XX				;EXPECTED RESULT IN AC+1
 12916	040720	312 11 0 00 044061 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12917	040721	004 11 0 00 035642 		ER4	AC+1,35642		;LOW PRODUCT FAILED
 12918			000001			AEE=1				;INITIAL C(E)
 12919	040722	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12920	040723	005 06 0 00 035643 		ER5	E,35643			;C(E) WAS CLOBBERED
 12921	040724	321 12 0 00 040712 		JUMPL	AC+2,F35640		;LOOP ON ERROR SWITCH^
 12922
 12923			003565			ADR=ADR+1
 12924		777777	737777			XX=XX+XX+1
 12925						IFE	<XX-1>,<XX=-2>
 12926
 12927					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12928		777777	777777			IFL	XX,<V1=-1>
 12929						IFG	XX,<V1=0>
 12930						MOP1	(\ADR,XX,0,1,V1,XX)^
 12931					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12932					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12933					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12934					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12935
 12936		777777	737777		F35650:	AA1=XX				;INITIAL C(AC)
 12937	040725	200 10 0 00 044062 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12938			000000			AA2=0				;INITIAL C(AC+1)
 12939	040726	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12940			000001			AEE=1				;INITIAL C(E)
 12941	040727	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12942	040730	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12943		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12944	040731	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12945	040732	003 10 0 00 035651 		ER3	AC,35651		;HIGH PRODUCT FAILED
 12946		777777	737777			AR2=XX				;EXPECTED RESULT IN AC+1
 12947	040733	312 11 0 00 044062 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12948	040734	004 11 0 00 035652 		ER4	AC+1,35652		;LOW PRODUCT FAILED
 12949			000001			AEE=1				;INITIAL C(E)
 12950	040735	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12951	040736	005 06 0 00 035653 		ER5	E,35653			;C(E) WAS CLOBBERED
 12952	040737	321 12 0 00 040725 		JUMPL	AC+2,F35650		;LOOP ON ERROR SWITCH^
 12953
 12954			003566			ADR=ADR+1
 12955		777777	677777			XX=XX+XX+1
 12956						IFE	<XX-1>,<XX=-2>
 12957
 12958					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12959		777777	777777			IFL	XX,<V1=-1>
 12960						IFG	XX,<V1=0>
 12961						MOP1	(\ADR,XX,0,1,V1,XX)^
 12962					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12963					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12964					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0258

 12965					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12966
 12967		777777	677777		F35660:	AA1=XX				;INITIAL C(AC)
 12968	040740	200 10 0 00 044063 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12969			000000			AA2=0				;INITIAL C(AC+1)
 12970	040741	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12971			000001			AEE=1				;INITIAL C(E)
 12972	040742	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12973	040743	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12974		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12975	040744	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12976	040745	003 10 0 00 035661 		ER3	AC,35661		;HIGH PRODUCT FAILED
 12977		777777	677777			AR2=XX				;EXPECTED RESULT IN AC+1
 12978	040746	312 11 0 00 044063 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12979	040747	004 11 0 00 035662 		ER4	AC+1,35662		;LOW PRODUCT FAILED
 12980			000001			AEE=1				;INITIAL C(E)
 12981	040750	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12982	040751	005 06 0 00 035663 		ER5	E,35663			;C(E) WAS CLOBBERED
 12983	040752	321 12 0 00 040740 		JUMPL	AC+2,F35660		;LOOP ON ERROR SWITCH^
 12984
 12985			003567			ADR=ADR+1
 12986		777777	577777			XX=XX+XX+1
 12987						IFE	<XX-1>,<XX=-2>
 12988
 12989					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 12990		777777	777777			IFL	XX,<V1=-1>
 12991						IFG	XX,<V1=0>
 12992						MOP1	(\ADR,XX,0,1,V1,XX)^
 12993					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 12994					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 12995					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 12996					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12997
 12998		777777	577777		F35670:	AA1=XX				;INITIAL C(AC)
 12999	040753	200 10 0 00 044064 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13000			000000			AA2=0				;INITIAL C(AC+1)
 13001	040754	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13002			000001			AEE=1				;INITIAL C(E)
 13003	040755	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13004	040756	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13005		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13006	040757	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13007	040760	003 10 0 00 035671 		ER3	AC,35671		;HIGH PRODUCT FAILED
 13008		777777	577777			AR2=XX				;EXPECTED RESULT IN AC+1
 13009	040761	312 11 0 00 044064 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13010	040762	004 11 0 00 035672 		ER4	AC+1,35672		;LOW PRODUCT FAILED
 13011			000001			AEE=1				;INITIAL C(E)
 13012	040763	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13013	040764	005 06 0 00 035673 		ER5	E,35673			;C(E) WAS CLOBBERED
 13014	040765	321 12 0 00 040753 		JUMPL	AC+2,F35670		;LOOP ON ERROR SWITCH^
 13015
 13016			003570			ADR=ADR+1
 13017		777777	377777			XX=XX+XX+1
 13018						IFE	<XX-1>,<XX=-2>
 13019
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0259

 13020					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13021		777777	777777			IFL	XX,<V1=-1>
 13022						IFG	XX,<V1=0>
 13023						MOP1	(\ADR,XX,0,1,V1,XX)^
 13024					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13025					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13026					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13027					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13028
 13029		777777	377777		F35700:	AA1=XX				;INITIAL C(AC)
 13030	040766	200 10 0 00 044065 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13031			000000			AA2=0				;INITIAL C(AC+1)
 13032	040767	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13033			000001			AEE=1				;INITIAL C(E)
 13034	040770	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13035	040771	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13036		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13037	040772	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13038	040773	003 10 0 00 035701 		ER3	AC,35701		;HIGH PRODUCT FAILED
 13039		777777	377777			AR2=XX				;EXPECTED RESULT IN AC+1
 13040	040774	312 11 0 00 044065 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13041	040775	004 11 0 00 035702 		ER4	AC+1,35702		;LOW PRODUCT FAILED
 13042			000001			AEE=1				;INITIAL C(E)
 13043	040776	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13044	040777	005 06 0 00 035703 		ER5	E,35703			;C(E) WAS CLOBBERED
 13045	041000	321 12 0 00 040766 		JUMPL	AC+2,F35700		;LOOP ON ERROR SWITCH^
 13046
 13047			003571			ADR=ADR+1
 13048		777776	777777			XX=XX+XX+1
 13049						IFE	<XX-1>,<XX=-2>
 13050
 13051					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13052		777777	777777			IFL	XX,<V1=-1>
 13053						IFG	XX,<V1=0>
 13054						MOP1	(\ADR,XX,0,1,V1,XX)^
 13055					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13056					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13057					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13058					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13059
 13060		777776	777777		F35710:	AA1=XX				;INITIAL C(AC)
 13061	041001	200 10 0 00 044066 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13062			000000			AA2=0				;INITIAL C(AC+1)
 13063	041002	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13064			000001			AEE=1				;INITIAL C(E)
 13065	041003	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13066	041004	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13067		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13068	041005	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13069	041006	003 10 0 00 035711 		ER3	AC,35711		;HIGH PRODUCT FAILED
 13070		777776	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13071	041007	312 11 0 00 044066 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13072	041010	004 11 0 00 035712 		ER4	AC+1,35712		;LOW PRODUCT FAILED
 13073			000001			AEE=1				;INITIAL C(E)
 13074	041011	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0260

 13075	041012	005 06 0 00 035713 		ER5	E,35713			;C(E) WAS CLOBBERED
 13076	041013	321 12 0 00 041001 		JUMPL	AC+2,F35710		;LOOP ON ERROR SWITCH^
 13077
 13078			003572			ADR=ADR+1
 13079		777775	777777			XX=XX+XX+1
 13080						IFE	<XX-1>,<XX=-2>
 13081
 13082					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13083		777777	777777			IFL	XX,<V1=-1>
 13084						IFG	XX,<V1=0>
 13085						MOP1	(\ADR,XX,0,1,V1,XX)^
 13086					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13087					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13088					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13089					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13090
 13091		777775	777777		F35720:	AA1=XX				;INITIAL C(AC)
 13092	041014	200 10 0 00 044067 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13093			000000			AA2=0				;INITIAL C(AC+1)
 13094	041015	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13095			000001			AEE=1				;INITIAL C(E)
 13096	041016	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13097	041017	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13098		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13099	041020	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13100	041021	003 10 0 00 035721 		ER3	AC,35721		;HIGH PRODUCT FAILED
 13101		777775	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13102	041022	312 11 0 00 044067 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13103	041023	004 11 0 00 035722 		ER4	AC+1,35722		;LOW PRODUCT FAILED
 13104			000001			AEE=1				;INITIAL C(E)
 13105	041024	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13106	041025	005 06 0 00 035723 		ER5	E,35723			;C(E) WAS CLOBBERED
 13107	041026	321 12 0 00 041014 		JUMPL	AC+2,F35720		;LOOP ON ERROR SWITCH^
 13108
 13109			003573			ADR=ADR+1
 13110		777773	777777			XX=XX+XX+1
 13111						IFE	<XX-1>,<XX=-2>
 13112
 13113					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13114		777777	777777			IFL	XX,<V1=-1>
 13115						IFG	XX,<V1=0>
 13116						MOP1	(\ADR,XX,0,1,V1,XX)^
 13117					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13118					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13119					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13120					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13121
 13122		777773	777777		F35730:	AA1=XX				;INITIAL C(AC)
 13123	041027	200 10 0 00 044070 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13124			000000			AA2=0				;INITIAL C(AC+1)
 13125	041030	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13126			000001			AEE=1				;INITIAL C(E)
 13127	041031	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13128	041032	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13129		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0261

 13130	041033	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13131	041034	003 10 0 00 035731 		ER3	AC,35731		;HIGH PRODUCT FAILED
 13132		777773	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13133	041035	312 11 0 00 044070 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13134	041036	004 11 0 00 035732 		ER4	AC+1,35732		;LOW PRODUCT FAILED
 13135			000001			AEE=1				;INITIAL C(E)
 13136	041037	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13137	041040	005 06 0 00 035733 		ER5	E,35733			;C(E) WAS CLOBBERED
 13138	041041	321 12 0 00 041027 		JUMPL	AC+2,F35730		;LOOP ON ERROR SWITCH^
 13139
 13140			003574			ADR=ADR+1
 13141		777767	777777			XX=XX+XX+1
 13142						IFE	<XX-1>,<XX=-2>
 13143
 13144					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13145		777777	777777			IFL	XX,<V1=-1>
 13146						IFG	XX,<V1=0>
 13147						MOP1	(\ADR,XX,0,1,V1,XX)^
 13148					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13149					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13150					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13151					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13152
 13153		777767	777777		F35740:	AA1=XX				;INITIAL C(AC)
 13154	041042	200 10 0 00 044071 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13155			000000			AA2=0				;INITIAL C(AC+1)
 13156	041043	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13157			000001			AEE=1				;INITIAL C(E)
 13158	041044	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13159	041045	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13160		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13161	041046	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13162	041047	003 10 0 00 035741 		ER3	AC,35741		;HIGH PRODUCT FAILED
 13163		777767	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13164	041050	312 11 0 00 044071 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13165	041051	004 11 0 00 035742 		ER4	AC+1,35742		;LOW PRODUCT FAILED
 13166			000001			AEE=1				;INITIAL C(E)
 13167	041052	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13168	041053	005 06 0 00 035743 		ER5	E,35743			;C(E) WAS CLOBBERED
 13169	041054	321 12 0 00 041042 		JUMPL	AC+2,F35740		;LOOP ON ERROR SWITCH^
 13170
 13171			003575			ADR=ADR+1
 13172		777757	777777			XX=XX+XX+1
 13173						IFE	<XX-1>,<XX=-2>
 13174
 13175					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13176		777777	777777			IFL	XX,<V1=-1>
 13177						IFG	XX,<V1=0>
 13178						MOP1	(\ADR,XX,0,1,V1,XX)^
 13179					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13180					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13181					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13182					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13183
 13184		777757	777777		F35750:	AA1=XX				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0262

 13185	041055	200 10 0 00 044072 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13186			000000			AA2=0				;INITIAL C(AC+1)
 13187	041056	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13188			000001			AEE=1				;INITIAL C(E)
 13189	041057	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13190	041060	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13191		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13192	041061	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13193	041062	003 10 0 00 035751 		ER3	AC,35751		;HIGH PRODUCT FAILED
 13194		777757	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13195	041063	312 11 0 00 044072 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13196	041064	004 11 0 00 035752 		ER4	AC+1,35752		;LOW PRODUCT FAILED
 13197			000001			AEE=1				;INITIAL C(E)
 13198	041065	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13199	041066	005 06 0 00 035753 		ER5	E,35753			;C(E) WAS CLOBBERED
 13200	041067	321 12 0 00 041055 		JUMPL	AC+2,F35750		;LOOP ON ERROR SWITCH^
 13201
 13202			003576			ADR=ADR+1
 13203		777737	777777			XX=XX+XX+1
 13204						IFE	<XX-1>,<XX=-2>
 13205
 13206					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13207		777777	777777			IFL	XX,<V1=-1>
 13208						IFG	XX,<V1=0>
 13209						MOP1	(\ADR,XX,0,1,V1,XX)^
 13210					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13211					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13212					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13213					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13214
 13215		777737	777777		F35760:	AA1=XX				;INITIAL C(AC)
 13216	041070	200 10 0 00 044073 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13217			000000			AA2=0				;INITIAL C(AC+1)
 13218	041071	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13219			000001			AEE=1				;INITIAL C(E)
 13220	041072	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13221	041073	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13222		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13223	041074	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13224	041075	003 10 0 00 035761 		ER3	AC,35761		;HIGH PRODUCT FAILED
 13225		777737	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13226	041076	312 11 0 00 044073 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13227	041077	004 11 0 00 035762 		ER4	AC+1,35762		;LOW PRODUCT FAILED
 13228			000001			AEE=1				;INITIAL C(E)
 13229	041100	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13230	041101	005 06 0 00 035763 		ER5	E,35763			;C(E) WAS CLOBBERED
 13231	041102	321 12 0 00 041070 		JUMPL	AC+2,F35760		;LOOP ON ERROR SWITCH^
 13232
 13233			003577			ADR=ADR+1
 13234		777677	777777			XX=XX+XX+1
 13235						IFE	<XX-1>,<XX=-2>
 13236
 13237					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13238		777777	777777			IFL	XX,<V1=-1>
 13239						IFG	XX,<V1=0>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0263

 13240						MOP1	(\ADR,XX,0,1,V1,XX)^
 13241					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13242					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13243					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13244					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13245
 13246		777677	777777		F35770:	AA1=XX				;INITIAL C(AC)
 13247	041103	200 10 0 00 044074 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13248			000000			AA2=0				;INITIAL C(AC+1)
 13249	041104	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13250			000001			AEE=1				;INITIAL C(E)
 13251	041105	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13252	041106	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13253		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13254	041107	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13255	041110	003 10 0 00 035771 		ER3	AC,35771		;HIGH PRODUCT FAILED
 13256		777677	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13257	041111	312 11 0 00 044074 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13258	041112	004 11 0 00 035772 		ER4	AC+1,35772		;LOW PRODUCT FAILED
 13259			000001			AEE=1				;INITIAL C(E)
 13260	041113	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13261	041114	005 06 0 00 035773 		ER5	E,35773			;C(E) WAS CLOBBERED
 13262	041115	321 12 0 00 041103 		JUMPL	AC+2,F35770		;LOOP ON ERROR SWITCH^
 13263
 13264			003600			ADR=ADR+1
 13265		777577	777777			XX=XX+XX+1
 13266						IFE	<XX-1>,<XX=-2>
 13267
 13268					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13269		777777	777777			IFL	XX,<V1=-1>
 13270						IFG	XX,<V1=0>
 13271						MOP1	(\ADR,XX,0,1,V1,XX)^
 13272					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13273					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13274					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13275					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13276
 13277		777577	777777		F36000:	AA1=XX				;INITIAL C(AC)
 13278	041116	200 10 0 00 044075 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13279			000000			AA2=0				;INITIAL C(AC+1)
 13280	041117	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13281			000001			AEE=1				;INITIAL C(E)
 13282	041120	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13283	041121	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13284		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13285	041122	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13286	041123	003 10 0 00 036001 		ER3	AC,36001		;HIGH PRODUCT FAILED
 13287		777577	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13288	041124	312 11 0 00 044075 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13289	041125	004 11 0 00 036002 		ER4	AC+1,36002		;LOW PRODUCT FAILED
 13290			000001			AEE=1				;INITIAL C(E)
 13291	041126	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13292	041127	005 06 0 00 036003 		ER5	E,36003			;C(E) WAS CLOBBERED
 13293	041130	321 12 0 00 041116 		JUMPL	AC+2,F36000		;LOOP ON ERROR SWITCH^
 13294
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0264

 13295			003601			ADR=ADR+1
 13296		777377	777777			XX=XX+XX+1
 13297						IFE	<XX-1>,<XX=-2>
 13298
 13299					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13300		777777	777777			IFL	XX,<V1=-1>
 13301						IFG	XX,<V1=0>
 13302						MOP1	(\ADR,XX,0,1,V1,XX)^
 13303					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13304					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13305					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13306					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13307
 13308		777377	777777		F36010:	AA1=XX				;INITIAL C(AC)
 13309	041131	200 10 0 00 044076 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13310			000000			AA2=0				;INITIAL C(AC+1)
 13311	041132	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13312			000001			AEE=1				;INITIAL C(E)
 13313	041133	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13314	041134	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13315		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13316	041135	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13317	041136	003 10 0 00 036011 		ER3	AC,36011		;HIGH PRODUCT FAILED
 13318		777377	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13319	041137	312 11 0 00 044076 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13320	041140	004 11 0 00 036012 		ER4	AC+1,36012		;LOW PRODUCT FAILED
 13321			000001			AEE=1				;INITIAL C(E)
 13322	041141	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13323	041142	005 06 0 00 036013 		ER5	E,36013			;C(E) WAS CLOBBERED
 13324	041143	321 12 0 00 041131 		JUMPL	AC+2,F36010		;LOOP ON ERROR SWITCH^
 13325
 13326			003602			ADR=ADR+1
 13327		776777	777777			XX=XX+XX+1
 13328						IFE	<XX-1>,<XX=-2>
 13329
 13330					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13331		777777	777777			IFL	XX,<V1=-1>
 13332						IFG	XX,<V1=0>
 13333						MOP1	(\ADR,XX,0,1,V1,XX)^
 13334					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13335					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13336					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13337					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13338
 13339		776777	777777		F36020:	AA1=XX				;INITIAL C(AC)
 13340	041144	200 10 0 00 044077 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13341			000000			AA2=0				;INITIAL C(AC+1)
 13342	041145	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13343			000001			AEE=1				;INITIAL C(E)
 13344	041146	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13345	041147	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13346		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13347	041150	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13348	041151	003 10 0 00 036021 		ER3	AC,36021		;HIGH PRODUCT FAILED
 13349		776777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0265

 13350	041152	312 11 0 00 044077 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13351	041153	004 11 0 00 036022 		ER4	AC+1,36022		;LOW PRODUCT FAILED
 13352			000001			AEE=1				;INITIAL C(E)
 13353	041154	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13354	041155	005 06 0 00 036023 		ER5	E,36023			;C(E) WAS CLOBBERED
 13355	041156	321 12 0 00 041144 		JUMPL	AC+2,F36020		;LOOP ON ERROR SWITCH^
 13356
 13357			003603			ADR=ADR+1
 13358		775777	777777			XX=XX+XX+1
 13359						IFE	<XX-1>,<XX=-2>
 13360
 13361					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13362		777777	777777			IFL	XX,<V1=-1>
 13363						IFG	XX,<V1=0>
 13364						MOP1	(\ADR,XX,0,1,V1,XX)^
 13365					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13366					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13367					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13368					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13369
 13370		775777	777777		F36030:	AA1=XX				;INITIAL C(AC)
 13371	041157	200 10 0 00 044100 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13372			000000			AA2=0				;INITIAL C(AC+1)
 13373	041160	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13374			000001			AEE=1				;INITIAL C(E)
 13375	041161	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13376	041162	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13377		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13378	041163	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13379	041164	003 10 0 00 036031 		ER3	AC,36031		;HIGH PRODUCT FAILED
 13380		775777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13381	041165	312 11 0 00 044100 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13382	041166	004 11 0 00 036032 		ER4	AC+1,36032		;LOW PRODUCT FAILED
 13383			000001			AEE=1				;INITIAL C(E)
 13384	041167	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13385	041170	005 06 0 00 036033 		ER5	E,36033			;C(E) WAS CLOBBERED
 13386	041171	321 12 0 00 041157 		JUMPL	AC+2,F36030		;LOOP ON ERROR SWITCH^
 13387
 13388			003604			ADR=ADR+1
 13389		773777	777777			XX=XX+XX+1
 13390						IFE	<XX-1>,<XX=-2>
 13391
 13392					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13393		777777	777777			IFL	XX,<V1=-1>
 13394						IFG	XX,<V1=0>
 13395						MOP1	(\ADR,XX,0,1,V1,XX)^
 13396					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13397					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13398					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13399					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13400
 13401		773777	777777		F36040:	AA1=XX				;INITIAL C(AC)
 13402	041172	200 10 0 00 044101 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13403			000000			AA2=0				;INITIAL C(AC+1)
 13404	041173	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0266

 13405			000001			AEE=1				;INITIAL C(E)
 13406	041174	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13407	041175	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13408		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13409	041176	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13410	041177	003 10 0 00 036041 		ER3	AC,36041		;HIGH PRODUCT FAILED
 13411		773777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13412	041200	312 11 0 00 044101 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13413	041201	004 11 0 00 036042 		ER4	AC+1,36042		;LOW PRODUCT FAILED
 13414			000001			AEE=1				;INITIAL C(E)
 13415	041202	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13416	041203	005 06 0 00 036043 		ER5	E,36043			;C(E) WAS CLOBBERED
 13417	041204	321 12 0 00 041172 		JUMPL	AC+2,F36040		;LOOP ON ERROR SWITCH^
 13418
 13419			003605			ADR=ADR+1
 13420		767777	777777			XX=XX+XX+1
 13421						IFE	<XX-1>,<XX=-2>
 13422
 13423					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13424		777777	777777			IFL	XX,<V1=-1>
 13425						IFG	XX,<V1=0>
 13426						MOP1	(\ADR,XX,0,1,V1,XX)^
 13427					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13428					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13429					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13430					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13431
 13432		767777	777777		F36050:	AA1=XX				;INITIAL C(AC)
 13433	041205	200 10 0 00 044102 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13434			000000			AA2=0				;INITIAL C(AC+1)
 13435	041206	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13436			000001			AEE=1				;INITIAL C(E)
 13437	041207	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13438	041210	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13439		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13440	041211	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13441	041212	003 10 0 00 036051 		ER3	AC,36051		;HIGH PRODUCT FAILED
 13442		767777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13443	041213	312 11 0 00 044102 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13444	041214	004 11 0 00 036052 		ER4	AC+1,36052		;LOW PRODUCT FAILED
 13445			000001			AEE=1				;INITIAL C(E)
 13446	041215	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13447	041216	005 06 0 00 036053 		ER5	E,36053			;C(E) WAS CLOBBERED
 13448	041217	321 12 0 00 041205 		JUMPL	AC+2,F36050		;LOOP ON ERROR SWITCH^
 13449
 13450			003606			ADR=ADR+1
 13451		757777	777777			XX=XX+XX+1
 13452						IFE	<XX-1>,<XX=-2>
 13453
 13454					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13455		777777	777777			IFL	XX,<V1=-1>
 13456						IFG	XX,<V1=0>
 13457						MOP1	(\ADR,XX,0,1,V1,XX)^
 13458					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13459					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0267

 13460					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13461					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13462
 13463		757777	777777		F36060:	AA1=XX				;INITIAL C(AC)
 13464	041220	200 10 0 00 044103 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13465			000000			AA2=0				;INITIAL C(AC+1)
 13466	041221	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13467			000001			AEE=1				;INITIAL C(E)
 13468	041222	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13469	041223	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13470		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13471	041224	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13472	041225	003 10 0 00 036061 		ER3	AC,36061		;HIGH PRODUCT FAILED
 13473		757777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13474	041226	312 11 0 00 044103 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13475	041227	004 11 0 00 036062 		ER4	AC+1,36062		;LOW PRODUCT FAILED
 13476			000001			AEE=1				;INITIAL C(E)
 13477	041230	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13478	041231	005 06 0 00 036063 		ER5	E,36063			;C(E) WAS CLOBBERED
 13479	041232	321 12 0 00 041220 		JUMPL	AC+2,F36060		;LOOP ON ERROR SWITCH^
 13480
 13481			003607			ADR=ADR+1
 13482		737777	777777			XX=XX+XX+1
 13483						IFE	<XX-1>,<XX=-2>
 13484
 13485					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13486		777777	777777			IFL	XX,<V1=-1>
 13487						IFG	XX,<V1=0>
 13488						MOP1	(\ADR,XX,0,1,V1,XX)^
 13489					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13490					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13491					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13492					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13493
 13494		737777	777777		F36070:	AA1=XX				;INITIAL C(AC)
 13495	041233	200 10 0 00 044104 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13496			000000			AA2=0				;INITIAL C(AC+1)
 13497	041234	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13498			000001			AEE=1				;INITIAL C(E)
 13499	041235	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13500	041236	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13501		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13502	041237	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13503	041240	003 10 0 00 036071 		ER3	AC,36071		;HIGH PRODUCT FAILED
 13504		737777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13505	041241	312 11 0 00 044104 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13506	041242	004 11 0 00 036072 		ER4	AC+1,36072		;LOW PRODUCT FAILED
 13507			000001			AEE=1				;INITIAL C(E)
 13508	041243	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13509	041244	005 06 0 00 036073 		ER5	E,36073			;C(E) WAS CLOBBERED
 13510	041245	321 12 0 00 041233 		JUMPL	AC+2,F36070		;LOOP ON ERROR SWITCH^
 13511
 13512			003610			ADR=ADR+1
 13513		677777	777777			XX=XX+XX+1
 13514						IFE	<XX-1>,<XX=-2>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0268

 13515
 13516					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13517		777777	777777			IFL	XX,<V1=-1>
 13518						IFG	XX,<V1=0>
 13519						MOP1	(\ADR,XX,0,1,V1,XX)^
 13520					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13521					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13522					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13523					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13524
 13525		677777	777777		F36100:	AA1=XX				;INITIAL C(AC)
 13526	041246	200 10 0 00 044105 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13527			000000			AA2=0				;INITIAL C(AC+1)
 13528	041247	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13529			000001			AEE=1				;INITIAL C(E)
 13530	041250	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13531	041251	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13532		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13533	041252	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13534	041253	003 10 0 00 036101 		ER3	AC,36101		;HIGH PRODUCT FAILED
 13535		677777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13536	041254	312 11 0 00 044105 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13537	041255	004 11 0 00 036102 		ER4	AC+1,36102		;LOW PRODUCT FAILED
 13538			000001			AEE=1				;INITIAL C(E)
 13539	041256	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13540	041257	005 06 0 00 036103 		ER5	E,36103			;C(E) WAS CLOBBERED
 13541	041260	321 12 0 00 041246 		JUMPL	AC+2,F36100		;LOOP ON ERROR SWITCH^
 13542
 13543			003611			ADR=ADR+1
 13544		577777	777777			XX=XX+XX+1
 13545						IFE	<XX-1>,<XX=-2>
 13546
 13547					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13548		777777	777777			IFL	XX,<V1=-1>
 13549						IFG	XX,<V1=0>
 13550						MOP1	(\ADR,XX,0,1,V1,XX)^
 13551					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13552					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13553					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13554					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13555
 13556		577777	777777		F36110:	AA1=XX				;INITIAL C(AC)
 13557	041261	200 10 0 00 044106 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13558			000000			AA2=0				;INITIAL C(AC+1)
 13559	041262	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13560			000001			AEE=1				;INITIAL C(E)
 13561	041263	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13562	041264	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13563		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13564	041265	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13565	041266	003 10 0 00 036111 		ER3	AC,36111		;HIGH PRODUCT FAILED
 13566		577777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13567	041267	312 11 0 00 044106 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13568	041270	004 11 0 00 036112 		ER4	AC+1,36112		;LOW PRODUCT FAILED
 13569			000001			AEE=1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 15-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0269

 13570	041271	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13571	041272	005 06 0 00 036113 		ER5	E,36113			;C(E) WAS CLOBBERED
 13572	041273	321 12 0 00 041261 		JUMPL	AC+2,F36110		;LOOP ON ERROR SWITCH^
 13573
 13574			003612			ADR=ADR+1
 13575		377777	777777			XX=XX+XX+1
 13576						IFE	<XX-1>,<XX=-2>
 13577
 13578					;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
 13579						IFL	XX,<V1=-1>
 13580			000000			IFG	XX,<V1=0>
 13581						MOP1	(\ADR,XX,0,1,V1,XX)^
 13582					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 13583					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13584					;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY.
 13585					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13586
 13587		377777	777777		F36120:	AA1=XX				;INITIAL C(AC)
 13588	041274	200 10 0 00 044107 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13589			000000			AA2=0				;INITIAL C(AC+1)
 13590	041275	200 11 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13591			000001			AEE=1				;INITIAL C(E)
 13592	041276	200 06 0 00 044000 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13593	041277	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13594			000000			AR1=V1				;EXPECTED RESULT IN AC
 13595	041300	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13596	041301	003 10 0 00 036121 		ER3	AC,36121		;HIGH PRODUCT FAILED
 13597		377777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13598	041302	312 11 0 00 044107 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13599	041303	004 11 0 00 036122 		ER4	AC+1,36122		;LOW PRODUCT FAILED
 13600			000001			AEE=1				;INITIAL C(E)
 13601	041304	312 06 0 00 044000 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13602	041305	005 06 0 00 036123 		ER5	E,36123			;C(E) WAS CLOBBERED
 13603	041306	321 12 0 00 041274 		JUMPL	AC+2,F36120		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0270

 13604			000010			AC=10
 13605			000006			E=<AC-2>&17
 13606						SAVEAC	(1,1)^
 13607	041307	201 12 0 00 041307 		MOVEI	AC+2,.		;SAVE TEST PC
 13608	041310	202 12 0 00 030051 		MOVEM	AC+2,TESTPC
 13609	041311	201 12 0 00 000012 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 13610	041312	202 12 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
 13611			000000			XX=0
 13612
 13613						REPEAT	^D36,	<
 13614						ADR=ADR+1
 13615						XX=XX+XX+1
 13616						IFE	<XX-1>,<XX=-2>
 13617					
 13618					;MULTIPLY A RIPPLED 0 BY -1
 13619						MX=-XX
 13620						IFL	XX,<V1=0>
 13621						IFG	XX,<V1=-1>
 13622						MOP1	(\ADR,-1,-1,XX,V1,MX)>
 13623
 13624			003613			ADR=ADR+1
 13625			000001			XX=XX+XX+1
 13626		777777	777776			IFE	<XX-1>,<XX=-2>
 13627
 13628					;MULTIPLY A RIPPLED 0 BY -1
 13629			000002			MX=-XX
 13630			000000			IFL	XX,<V1=0>
 13631						IFG	XX,<V1=-1>
 13632						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13633					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13634					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13635					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13636					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13637
 13638		777777	777777		F36130:	AA1=-1				;INITIAL C(AC)
 13639	041313	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13640		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13641	041314	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13642		777777	777776			AEE=XX				;INITIAL C(E)
 13643	041315	200 06 0 00 044044 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13644	041316	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13645			000000			AR1=V1				;EXPECTED RESULT IN AC
 13646	041317	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13647	041320	003 10 0 00 036131 		ER3	AC,36131		;HIGH PRODUCT FAILED
 13648			000002			AR2=MX				;EXPECTED RESULT IN AC+1
 13649	041321	312 11 0 00 044001 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13650	041322	004 11 0 00 036132 		ER4	AC+1,36132		;LOW PRODUCT FAILED
 13651		777777	777776			AEE=XX				;INITIAL C(E)
 13652	041323	312 06 0 00 044044 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13653	041324	005 06 0 00 036133 		ER5	E,36133			;C(E) WAS CLOBBERED
 13654	041325	321 12 0 00 041313 		JUMPL	AC+2,F36130		;LOOP ON ERROR SWITCH^
 13655
 13656			003614			ADR=ADR+1
 13657		777777	777775			XX=XX+XX+1
 13658						IFE	<XX-1>,<XX=-2>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0271

 13659
 13660					;MULTIPLY A RIPPLED 0 BY -1
 13661			000003			MX=-XX
 13662			000000			IFL	XX,<V1=0>
 13663						IFG	XX,<V1=-1>
 13664						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13665					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13666					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13667					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13668					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13669
 13670		777777	777777		F36140:	AA1=-1				;INITIAL C(AC)
 13671	041326	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13672		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13673	041327	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13674		777777	777775			AEE=XX				;INITIAL C(E)
 13675	041330	200 06 0 00 044045 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13676	041331	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13677			000000			AR1=V1				;EXPECTED RESULT IN AC
 13678	041332	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13679	041333	003 10 0 00 036141 		ER3	AC,36141		;HIGH PRODUCT FAILED
 13680			000003			AR2=MX				;EXPECTED RESULT IN AC+1
 13681	041334	312 11 0 00 044110 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13682	041335	004 11 0 00 036142 		ER4	AC+1,36142		;LOW PRODUCT FAILED
 13683		777777	777775			AEE=XX				;INITIAL C(E)
 13684	041336	312 06 0 00 044045 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13685	041337	005 06 0 00 036143 		ER5	E,36143			;C(E) WAS CLOBBERED
 13686	041340	321 12 0 00 041326 		JUMPL	AC+2,F36140		;LOOP ON ERROR SWITCH^
 13687
 13688			003615			ADR=ADR+1
 13689		777777	777773			XX=XX+XX+1
 13690						IFE	<XX-1>,<XX=-2>
 13691
 13692					;MULTIPLY A RIPPLED 0 BY -1
 13693			000005			MX=-XX
 13694			000000			IFL	XX,<V1=0>
 13695						IFG	XX,<V1=-1>
 13696						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13697					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13698					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13699					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13700					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13701
 13702		777777	777777		F36150:	AA1=-1				;INITIAL C(AC)
 13703	041341	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13704		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13705	041342	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13706		777777	777773			AEE=XX				;INITIAL C(E)
 13707	041343	200 06 0 00 044046 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13708	041344	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13709			000000			AR1=V1				;EXPECTED RESULT IN AC
 13710	041345	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13711	041346	003 10 0 00 036151 		ER3	AC,36151		;HIGH PRODUCT FAILED
 13712			000005			AR2=MX				;EXPECTED RESULT IN AC+1
 13713	041347	312 11 0 00 044111 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0272

 13714	041350	004 11 0 00 036152 		ER4	AC+1,36152		;LOW PRODUCT FAILED
 13715		777777	777773			AEE=XX				;INITIAL C(E)
 13716	041351	312 06 0 00 044046 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13717	041352	005 06 0 00 036153 		ER5	E,36153			;C(E) WAS CLOBBERED
 13718	041353	321 12 0 00 041341 		JUMPL	AC+2,F36150		;LOOP ON ERROR SWITCH^
 13719
 13720			003616			ADR=ADR+1
 13721		777777	777767			XX=XX+XX+1
 13722						IFE	<XX-1>,<XX=-2>
 13723
 13724					;MULTIPLY A RIPPLED 0 BY -1
 13725			000011			MX=-XX
 13726			000000			IFL	XX,<V1=0>
 13727						IFG	XX,<V1=-1>
 13728						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13729					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13730					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13731					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13732					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13733
 13734		777777	777777		F36160:	AA1=-1				;INITIAL C(AC)
 13735	041354	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13736		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13737	041355	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13738		777777	777767			AEE=XX				;INITIAL C(E)
 13739	041356	200 06 0 00 044047 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13740	041357	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13741			000000			AR1=V1				;EXPECTED RESULT IN AC
 13742	041360	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13743	041361	003 10 0 00 036161 		ER3	AC,36161		;HIGH PRODUCT FAILED
 13744			000011			AR2=MX				;EXPECTED RESULT IN AC+1
 13745	041362	312 11 0 00 044114 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13746	041363	004 11 0 00 036162 		ER4	AC+1,36162		;LOW PRODUCT FAILED
 13747		777777	777767			AEE=XX				;INITIAL C(E)
 13748	041364	312 06 0 00 044047 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13749	041365	005 06 0 00 036163 		ER5	E,36163			;C(E) WAS CLOBBERED
 13750	041366	321 12 0 00 041354 		JUMPL	AC+2,F36160		;LOOP ON ERROR SWITCH^
 13751
 13752			003617			ADR=ADR+1
 13753		777777	777757			XX=XX+XX+1
 13754						IFE	<XX-1>,<XX=-2>
 13755
 13756					;MULTIPLY A RIPPLED 0 BY -1
 13757			000021			MX=-XX
 13758			000000			IFL	XX,<V1=0>
 13759						IFG	XX,<V1=-1>
 13760						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13761					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13762					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13763					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13764					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13765
 13766		777777	777777		F36170:	AA1=-1				;INITIAL C(AC)
 13767	041367	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13768		777777	777777			AA2=-1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0273

 13769	041370	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13770		777777	777757			AEE=XX				;INITIAL C(E)
 13771	041371	200 06 0 00 044050 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13772	041372	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13773			000000			AR1=V1				;EXPECTED RESULT IN AC
 13774	041373	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13775	041374	003 10 0 00 036171 		ER3	AC,36171		;HIGH PRODUCT FAILED
 13776			000021			AR2=MX				;EXPECTED RESULT IN AC+1
 13777	041375	312 11 0 00 044174 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13778	041376	004 11 0 00 036172 		ER4	AC+1,36172		;LOW PRODUCT FAILED
 13779		777777	777757			AEE=XX				;INITIAL C(E)
 13780	041377	312 06 0 00 044050 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13781	041400	005 06 0 00 036173 		ER5	E,36173			;C(E) WAS CLOBBERED
 13782	041401	321 12 0 00 041367 		JUMPL	AC+2,F36170		;LOOP ON ERROR SWITCH^
 13783
 13784			003620			ADR=ADR+1
 13785		777777	777737			XX=XX+XX+1
 13786						IFE	<XX-1>,<XX=-2>
 13787
 13788					;MULTIPLY A RIPPLED 0 BY -1
 13789			000041			MX=-XX
 13790			000000			IFL	XX,<V1=0>
 13791						IFG	XX,<V1=-1>
 13792						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13793					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13794					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13795					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13796					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13797
 13798		777777	777777		F36200:	AA1=-1				;INITIAL C(AC)
 13799	041402	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13800		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13801	041403	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13802		777777	777737			AEE=XX				;INITIAL C(E)
 13803	041404	200 06 0 00 044051 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13804	041405	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13805			000000			AR1=V1				;EXPECTED RESULT IN AC
 13806	041406	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13807	041407	003 10 0 00 036201 		ER3	AC,36201		;HIGH PRODUCT FAILED
 13808			000041			AR2=MX				;EXPECTED RESULT IN AC+1
 13809	041410	312 11 0 00 044175 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13810	041411	004 11 0 00 036202 		ER4	AC+1,36202		;LOW PRODUCT FAILED
 13811		777777	777737			AEE=XX				;INITIAL C(E)
 13812	041412	312 06 0 00 044051 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13813	041413	005 06 0 00 036203 		ER5	E,36203			;C(E) WAS CLOBBERED
 13814	041414	321 12 0 00 041402 		JUMPL	AC+2,F36200		;LOOP ON ERROR SWITCH^
 13815
 13816			003621			ADR=ADR+1
 13817		777777	777677			XX=XX+XX+1
 13818						IFE	<XX-1>,<XX=-2>
 13819
 13820					;MULTIPLY A RIPPLED 0 BY -1
 13821			000101			MX=-XX
 13822			000000			IFL	XX,<V1=0>
 13823						IFG	XX,<V1=-1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0274

 13824						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13825					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13826					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13827					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13828					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13829
 13830		777777	777777		F36210:	AA1=-1				;INITIAL C(AC)
 13831	041415	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13832		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13833	041416	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13834		777777	777677			AEE=XX				;INITIAL C(E)
 13835	041417	200 06 0 00 044052 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13836	041420	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13837			000000			AR1=V1				;EXPECTED RESULT IN AC
 13838	041421	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13839	041422	003 10 0 00 036211 		ER3	AC,36211		;HIGH PRODUCT FAILED
 13840			000101			AR2=MX				;EXPECTED RESULT IN AC+1
 13841	041423	312 11 0 00 044176 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13842	041424	004 11 0 00 036212 		ER4	AC+1,36212		;LOW PRODUCT FAILED
 13843		777777	777677			AEE=XX				;INITIAL C(E)
 13844	041425	312 06 0 00 044052 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13845	041426	005 06 0 00 036213 		ER5	E,36213			;C(E) WAS CLOBBERED
 13846	041427	321 12 0 00 041415 		JUMPL	AC+2,F36210		;LOOP ON ERROR SWITCH^
 13847
 13848			003622			ADR=ADR+1
 13849		777777	777577			XX=XX+XX+1
 13850						IFE	<XX-1>,<XX=-2>
 13851
 13852					;MULTIPLY A RIPPLED 0 BY -1
 13853			000201			MX=-XX
 13854			000000			IFL	XX,<V1=0>
 13855						IFG	XX,<V1=-1>
 13856						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13857					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13858					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13859					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13860					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13861
 13862		777777	777777		F36220:	AA1=-1				;INITIAL C(AC)
 13863	041430	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13864		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13865	041431	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13866		777777	777577			AEE=XX				;INITIAL C(E)
 13867	041432	200 06 0 00 044053 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13868	041433	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13869			000000			AR1=V1				;EXPECTED RESULT IN AC
 13870	041434	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13871	041435	003 10 0 00 036221 		ER3	AC,36221		;HIGH PRODUCT FAILED
 13872			000201			AR2=MX				;EXPECTED RESULT IN AC+1
 13873	041436	312 11 0 00 044177 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13874	041437	004 11 0 00 036222 		ER4	AC+1,36222		;LOW PRODUCT FAILED
 13875		777777	777577			AEE=XX				;INITIAL C(E)
 13876	041440	312 06 0 00 044053 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13877	041441	005 06 0 00 036223 		ER5	E,36223			;C(E) WAS CLOBBERED
 13878	041442	321 12 0 00 041430 		JUMPL	AC+2,F36220		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0275

 13879
 13880			003623			ADR=ADR+1
 13881		777777	777377			XX=XX+XX+1
 13882						IFE	<XX-1>,<XX=-2>
 13883
 13884					;MULTIPLY A RIPPLED 0 BY -1
 13885			000401			MX=-XX
 13886			000000			IFL	XX,<V1=0>
 13887						IFG	XX,<V1=-1>
 13888						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13889					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13890					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13891					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13892					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13893
 13894		777777	777777		F36230:	AA1=-1				;INITIAL C(AC)
 13895	041443	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13896		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13897	041444	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13898		777777	777377			AEE=XX				;INITIAL C(E)
 13899	041445	200 06 0 00 044054 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13900	041446	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13901			000000			AR1=V1				;EXPECTED RESULT IN AC
 13902	041447	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13903	041450	003 10 0 00 036231 		ER3	AC,36231		;HIGH PRODUCT FAILED
 13904			000401			AR2=MX				;EXPECTED RESULT IN AC+1
 13905	041451	312 11 0 00 044200 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13906	041452	004 11 0 00 036232 		ER4	AC+1,36232		;LOW PRODUCT FAILED
 13907		777777	777377			AEE=XX				;INITIAL C(E)
 13908	041453	312 06 0 00 044054 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13909	041454	005 06 0 00 036233 		ER5	E,36233			;C(E) WAS CLOBBERED
 13910	041455	321 12 0 00 041443 		JUMPL	AC+2,F36230		;LOOP ON ERROR SWITCH^
 13911
 13912			003624			ADR=ADR+1
 13913		777777	776777			XX=XX+XX+1
 13914						IFE	<XX-1>,<XX=-2>
 13915
 13916					;MULTIPLY A RIPPLED 0 BY -1
 13917			001001			MX=-XX
 13918			000000			IFL	XX,<V1=0>
 13919						IFG	XX,<V1=-1>
 13920						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13921					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13922					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13923					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13924					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13925
 13926		777777	777777		F36240:	AA1=-1				;INITIAL C(AC)
 13927	041456	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13928		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13929	041457	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13930		777777	776777			AEE=XX				;INITIAL C(E)
 13931	041460	200 06 0 00 044055 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13932	041461	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13933			000000			AR1=V1				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0276

 13934	041462	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13935	041463	003 10 0 00 036241 		ER3	AC,36241		;HIGH PRODUCT FAILED
 13936			001001			AR2=MX				;EXPECTED RESULT IN AC+1
 13937	041464	312 11 0 00 044201 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13938	041465	004 11 0 00 036242 		ER4	AC+1,36242		;LOW PRODUCT FAILED
 13939		777777	776777			AEE=XX				;INITIAL C(E)
 13940	041466	312 06 0 00 044055 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13941	041467	005 06 0 00 036243 		ER5	E,36243			;C(E) WAS CLOBBERED
 13942	041470	321 12 0 00 041456 		JUMPL	AC+2,F36240		;LOOP ON ERROR SWITCH^
 13943
 13944			003625			ADR=ADR+1
 13945		777777	775777			XX=XX+XX+1
 13946						IFE	<XX-1>,<XX=-2>
 13947
 13948					;MULTIPLY A RIPPLED 0 BY -1
 13949			002001			MX=-XX
 13950			000000			IFL	XX,<V1=0>
 13951						IFG	XX,<V1=-1>
 13952						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13953					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13954					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13955					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13956					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 13957
 13958		777777	777777		F36250:	AA1=-1				;INITIAL C(AC)
 13959	041471	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13960		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13961	041472	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13962		777777	775777			AEE=XX				;INITIAL C(E)
 13963	041473	200 06 0 00 044056 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13964	041474	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13965			000000			AR1=V1				;EXPECTED RESULT IN AC
 13966	041475	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13967	041476	003 10 0 00 036251 		ER3	AC,36251		;HIGH PRODUCT FAILED
 13968			002001			AR2=MX				;EXPECTED RESULT IN AC+1
 13969	041477	312 11 0 00 044202 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13970	041500	004 11 0 00 036252 		ER4	AC+1,36252		;LOW PRODUCT FAILED
 13971		777777	775777			AEE=XX				;INITIAL C(E)
 13972	041501	312 06 0 00 044056 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13973	041502	005 06 0 00 036253 		ER5	E,36253			;C(E) WAS CLOBBERED
 13974	041503	321 12 0 00 041471 		JUMPL	AC+2,F36250		;LOOP ON ERROR SWITCH^
 13975
 13976			003626			ADR=ADR+1
 13977		777777	773777			XX=XX+XX+1
 13978						IFE	<XX-1>,<XX=-2>
 13979
 13980					;MULTIPLY A RIPPLED 0 BY -1
 13981			004001			MX=-XX
 13982			000000			IFL	XX,<V1=0>
 13983						IFG	XX,<V1=-1>
 13984						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 13985					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 13986					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 13987					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 13988					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0277

 13989
 13990		777777	777777		F36260:	AA1=-1				;INITIAL C(AC)
 13991	041504	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13992		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13993	041505	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13994		777777	773777			AEE=XX				;INITIAL C(E)
 13995	041506	200 06 0 00 044057 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13996	041507	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13997			000000			AR1=V1				;EXPECTED RESULT IN AC
 13998	041510	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13999	041511	003 10 0 00 036261 		ER3	AC,36261		;HIGH PRODUCT FAILED
 14000			004001			AR2=MX				;EXPECTED RESULT IN AC+1
 14001	041512	312 11 0 00 044203 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14002	041513	004 11 0 00 036262 		ER4	AC+1,36262		;LOW PRODUCT FAILED
 14003		777777	773777			AEE=XX				;INITIAL C(E)
 14004	041514	312 06 0 00 044057 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14005	041515	005 06 0 00 036263 		ER5	E,36263			;C(E) WAS CLOBBERED
 14006	041516	321 12 0 00 041504 		JUMPL	AC+2,F36260		;LOOP ON ERROR SWITCH^
 14007
 14008			003627			ADR=ADR+1
 14009		777777	767777			XX=XX+XX+1
 14010						IFE	<XX-1>,<XX=-2>
 14011
 14012					;MULTIPLY A RIPPLED 0 BY -1
 14013			010001			MX=-XX
 14014			000000			IFL	XX,<V1=0>
 14015						IFG	XX,<V1=-1>
 14016						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14017					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14018					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14019					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14020					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14021
 14022		777777	777777		F36270:	AA1=-1				;INITIAL C(AC)
 14023	041517	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14024		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14025	041520	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14026		777777	767777			AEE=XX				;INITIAL C(E)
 14027	041521	200 06 0 00 044060 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14028	041522	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14029			000000			AR1=V1				;EXPECTED RESULT IN AC
 14030	041523	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14031	041524	003 10 0 00 036271 		ER3	AC,36271		;HIGH PRODUCT FAILED
 14032			010001			AR2=MX				;EXPECTED RESULT IN AC+1
 14033	041525	312 11 0 00 044204 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14034	041526	004 11 0 00 036272 		ER4	AC+1,36272		;LOW PRODUCT FAILED
 14035		777777	767777			AEE=XX				;INITIAL C(E)
 14036	041527	312 06 0 00 044060 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14037	041530	005 06 0 00 036273 		ER5	E,36273			;C(E) WAS CLOBBERED
 14038	041531	321 12 0 00 041517 		JUMPL	AC+2,F36270		;LOOP ON ERROR SWITCH^
 14039
 14040			003630			ADR=ADR+1
 14041		777777	757777			XX=XX+XX+1
 14042						IFE	<XX-1>,<XX=-2>
 14043
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0278

 14044					;MULTIPLY A RIPPLED 0 BY -1
 14045			020001			MX=-XX
 14046			000000			IFL	XX,<V1=0>
 14047						IFG	XX,<V1=-1>
 14048						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14049					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14050					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14051					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14052					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14053
 14054		777777	777777		F36300:	AA1=-1				;INITIAL C(AC)
 14055	041532	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14056		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14057	041533	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14058		777777	757777			AEE=XX				;INITIAL C(E)
 14059	041534	200 06 0 00 044061 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14060	041535	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14061			000000			AR1=V1				;EXPECTED RESULT IN AC
 14062	041536	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14063	041537	003 10 0 00 036301 		ER3	AC,36301		;HIGH PRODUCT FAILED
 14064			020001			AR2=MX				;EXPECTED RESULT IN AC+1
 14065	041540	312 11 0 00 044205 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14066	041541	004 11 0 00 036302 		ER4	AC+1,36302		;LOW PRODUCT FAILED
 14067		777777	757777			AEE=XX				;INITIAL C(E)
 14068	041542	312 06 0 00 044061 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14069	041543	005 06 0 00 036303 		ER5	E,36303			;C(E) WAS CLOBBERED
 14070	041544	321 12 0 00 041532 		JUMPL	AC+2,F36300		;LOOP ON ERROR SWITCH^
 14071
 14072			003631			ADR=ADR+1
 14073		777777	737777			XX=XX+XX+1
 14074						IFE	<XX-1>,<XX=-2>
 14075
 14076					;MULTIPLY A RIPPLED 0 BY -1
 14077			040001			MX=-XX
 14078			000000			IFL	XX,<V1=0>
 14079						IFG	XX,<V1=-1>
 14080						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14081					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14082					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14083					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14084					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14085
 14086		777777	777777		F36310:	AA1=-1				;INITIAL C(AC)
 14087	041545	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14088		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14089	041546	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14090		777777	737777			AEE=XX				;INITIAL C(E)
 14091	041547	200 06 0 00 044062 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14092	041550	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14093			000000			AR1=V1				;EXPECTED RESULT IN AC
 14094	041551	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14095	041552	003 10 0 00 036311 		ER3	AC,36311		;HIGH PRODUCT FAILED
 14096			040001			AR2=MX				;EXPECTED RESULT IN AC+1
 14097	041553	312 11 0 00 044206 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14098	041554	004 11 0 00 036312 		ER4	AC+1,36312		;LOW PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0279

 14099		777777	737777			AEE=XX				;INITIAL C(E)
 14100	041555	312 06 0 00 044062 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14101	041556	005 06 0 00 036313 		ER5	E,36313			;C(E) WAS CLOBBERED
 14102	041557	321 12 0 00 041545 		JUMPL	AC+2,F36310		;LOOP ON ERROR SWITCH^
 14103
 14104			003632			ADR=ADR+1
 14105		777777	677777			XX=XX+XX+1
 14106						IFE	<XX-1>,<XX=-2>
 14107
 14108					;MULTIPLY A RIPPLED 0 BY -1
 14109			100001			MX=-XX
 14110			000000			IFL	XX,<V1=0>
 14111						IFG	XX,<V1=-1>
 14112						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14113					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14114					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14115					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14116					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14117
 14118		777777	777777		F36320:	AA1=-1				;INITIAL C(AC)
 14119	041560	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14120		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14121	041561	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14122		777777	677777			AEE=XX				;INITIAL C(E)
 14123	041562	200 06 0 00 044063 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14124	041563	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14125			000000			AR1=V1				;EXPECTED RESULT IN AC
 14126	041564	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14127	041565	003 10 0 00 036321 		ER3	AC,36321		;HIGH PRODUCT FAILED
 14128			100001			AR2=MX				;EXPECTED RESULT IN AC+1
 14129	041566	312 11 0 00 044207 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14130	041567	004 11 0 00 036322 		ER4	AC+1,36322		;LOW PRODUCT FAILED
 14131		777777	677777			AEE=XX				;INITIAL C(E)
 14132	041570	312 06 0 00 044063 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14133	041571	005 06 0 00 036323 		ER5	E,36323			;C(E) WAS CLOBBERED
 14134	041572	321 12 0 00 041560 		JUMPL	AC+2,F36320		;LOOP ON ERROR SWITCH^
 14135
 14136			003633			ADR=ADR+1
 14137		777777	577777			XX=XX+XX+1
 14138						IFE	<XX-1>,<XX=-2>
 14139
 14140					;MULTIPLY A RIPPLED 0 BY -1
 14141			200001			MX=-XX
 14142			000000			IFL	XX,<V1=0>
 14143						IFG	XX,<V1=-1>
 14144						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14145					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14146					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14147					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14148					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14149
 14150		777777	777777		F36330:	AA1=-1				;INITIAL C(AC)
 14151	041573	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14152		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14153	041574	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0280

 14154		777777	577777			AEE=XX				;INITIAL C(E)
 14155	041575	200 06 0 00 044064 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14156	041576	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14157			000000			AR1=V1				;EXPECTED RESULT IN AC
 14158	041577	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14159	041600	003 10 0 00 036331 		ER3	AC,36331		;HIGH PRODUCT FAILED
 14160			200001			AR2=MX				;EXPECTED RESULT IN AC+1
 14161	041601	312 11 0 00 044210 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14162	041602	004 11 0 00 036332 		ER4	AC+1,36332		;LOW PRODUCT FAILED
 14163		777777	577777			AEE=XX				;INITIAL C(E)
 14164	041603	312 06 0 00 044064 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14165	041604	005 06 0 00 036333 		ER5	E,36333			;C(E) WAS CLOBBERED
 14166	041605	321 12 0 00 041573 		JUMPL	AC+2,F36330		;LOOP ON ERROR SWITCH^
 14167
 14168			003634			ADR=ADR+1
 14169		777777	377777			XX=XX+XX+1
 14170						IFE	<XX-1>,<XX=-2>
 14171
 14172					;MULTIPLY A RIPPLED 0 BY -1
 14173			400001			MX=-XX
 14174			000000			IFL	XX,<V1=0>
 14175						IFG	XX,<V1=-1>
 14176						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14177					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14178					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14179					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14180					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14181
 14182		777777	777777		F36340:	AA1=-1				;INITIAL C(AC)
 14183	041606	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14184		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14185	041607	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14186		777777	377777			AEE=XX				;INITIAL C(E)
 14187	041610	200 06 0 00 044065 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14188	041611	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14189			000000			AR1=V1				;EXPECTED RESULT IN AC
 14190	041612	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14191	041613	003 10 0 00 036341 		ER3	AC,36341		;HIGH PRODUCT FAILED
 14192			400001			AR2=MX				;EXPECTED RESULT IN AC+1
 14193	041614	312 11 0 00 044211 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14194	041615	004 11 0 00 036342 		ER4	AC+1,36342		;LOW PRODUCT FAILED
 14195		777777	377777			AEE=XX				;INITIAL C(E)
 14196	041616	312 06 0 00 044065 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14197	041617	005 06 0 00 036343 		ER5	E,36343			;C(E) WAS CLOBBERED
 14198	041620	321 12 0 00 041606 		JUMPL	AC+2,F36340		;LOOP ON ERROR SWITCH^
 14199
 14200			003635			ADR=ADR+1
 14201		777776	777777			XX=XX+XX+1
 14202						IFE	<XX-1>,<XX=-2>
 14203
 14204					;MULTIPLY A RIPPLED 0 BY -1
 14205		000001	000001			MX=-XX
 14206			000000			IFL	XX,<V1=0>
 14207						IFG	XX,<V1=-1>
 14208						MOP1	(\ADR,-1,-1,XX,V1,MX)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0281

 14209					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14210					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14211					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14212					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14213
 14214		777777	777777		F36350:	AA1=-1				;INITIAL C(AC)
 14215	041621	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14216		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14217	041622	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14218		777776	777777			AEE=XX				;INITIAL C(E)
 14219	041623	200 06 0 00 044066 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14220	041624	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14221			000000			AR1=V1				;EXPECTED RESULT IN AC
 14222	041625	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14223	041626	003 10 0 00 036351 		ER3	AC,36351		;HIGH PRODUCT FAILED
 14224		000001	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14225	041627	312 11 0 00 044212 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14226	041630	004 11 0 00 036352 		ER4	AC+1,36352		;LOW PRODUCT FAILED
 14227		777776	777777			AEE=XX				;INITIAL C(E)
 14228	041631	312 06 0 00 044066 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14229	041632	005 06 0 00 036353 		ER5	E,36353			;C(E) WAS CLOBBERED
 14230	041633	321 12 0 00 041621 		JUMPL	AC+2,F36350		;LOOP ON ERROR SWITCH^
 14231
 14232			003636			ADR=ADR+1
 14233		777775	777777			XX=XX+XX+1
 14234						IFE	<XX-1>,<XX=-2>
 14235
 14236					;MULTIPLY A RIPPLED 0 BY -1
 14237		000002	000001			MX=-XX
 14238			000000			IFL	XX,<V1=0>
 14239						IFG	XX,<V1=-1>
 14240						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14241					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14242					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14243					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14244					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14245
 14246		777777	777777		F36360:	AA1=-1				;INITIAL C(AC)
 14247	041634	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14248		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14249	041635	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14250		777775	777777			AEE=XX				;INITIAL C(E)
 14251	041636	200 06 0 00 044067 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14252	041637	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14253			000000			AR1=V1				;EXPECTED RESULT IN AC
 14254	041640	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14255	041641	003 10 0 00 036361 		ER3	AC,36361		;HIGH PRODUCT FAILED
 14256		000002	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14257	041642	312 11 0 00 044213 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14258	041643	004 11 0 00 036362 		ER4	AC+1,36362		;LOW PRODUCT FAILED
 14259		777775	777777			AEE=XX				;INITIAL C(E)
 14260	041644	312 06 0 00 044067 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14261	041645	005 06 0 00 036363 		ER5	E,36363			;C(E) WAS CLOBBERED
 14262	041646	321 12 0 00 041634 		JUMPL	AC+2,F36360		;LOOP ON ERROR SWITCH^
 14263
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0282

 14264			003637			ADR=ADR+1
 14265		777773	777777			XX=XX+XX+1
 14266						IFE	<XX-1>,<XX=-2>
 14267
 14268					;MULTIPLY A RIPPLED 0 BY -1
 14269		000004	000001			MX=-XX
 14270			000000			IFL	XX,<V1=0>
 14271						IFG	XX,<V1=-1>
 14272						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14273					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14274					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14275					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14276					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14277
 14278		777777	777777		F36370:	AA1=-1				;INITIAL C(AC)
 14279	041647	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14280		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14281	041650	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14282		777773	777777			AEE=XX				;INITIAL C(E)
 14283	041651	200 06 0 00 044070 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14284	041652	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14285			000000			AR1=V1				;EXPECTED RESULT IN AC
 14286	041653	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14287	041654	003 10 0 00 036371 		ER3	AC,36371		;HIGH PRODUCT FAILED
 14288		000004	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14289	041655	312 11 0 00 044214 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14290	041656	004 11 0 00 036372 		ER4	AC+1,36372		;LOW PRODUCT FAILED
 14291		777773	777777			AEE=XX				;INITIAL C(E)
 14292	041657	312 06 0 00 044070 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14293	041660	005 06 0 00 036373 		ER5	E,36373			;C(E) WAS CLOBBERED
 14294	041661	321 12 0 00 041647 		JUMPL	AC+2,F36370		;LOOP ON ERROR SWITCH^
 14295
 14296			003640			ADR=ADR+1
 14297		777767	777777			XX=XX+XX+1
 14298						IFE	<XX-1>,<XX=-2>
 14299
 14300					;MULTIPLY A RIPPLED 0 BY -1
 14301		000010	000001			MX=-XX
 14302			000000			IFL	XX,<V1=0>
 14303						IFG	XX,<V1=-1>
 14304						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14305					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14306					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14307					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14308					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14309
 14310		777777	777777		F36400:	AA1=-1				;INITIAL C(AC)
 14311	041662	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14312		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14313	041663	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14314		777767	777777			AEE=XX				;INITIAL C(E)
 14315	041664	200 06 0 00 044071 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14316	041665	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14317			000000			AR1=V1				;EXPECTED RESULT IN AC
 14318	041666	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0283

 14319	041667	003 10 0 00 036401 		ER3	AC,36401		;HIGH PRODUCT FAILED
 14320		000010	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14321	041670	312 11 0 00 044215 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14322	041671	004 11 0 00 036402 		ER4	AC+1,36402		;LOW PRODUCT FAILED
 14323		777767	777777			AEE=XX				;INITIAL C(E)
 14324	041672	312 06 0 00 044071 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14325	041673	005 06 0 00 036403 		ER5	E,36403			;C(E) WAS CLOBBERED
 14326	041674	321 12 0 00 041662 		JUMPL	AC+2,F36400		;LOOP ON ERROR SWITCH^
 14327
 14328			003641			ADR=ADR+1
 14329		777757	777777			XX=XX+XX+1
 14330						IFE	<XX-1>,<XX=-2>
 14331
 14332					;MULTIPLY A RIPPLED 0 BY -1
 14333		000020	000001			MX=-XX
 14334			000000			IFL	XX,<V1=0>
 14335						IFG	XX,<V1=-1>
 14336						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14337					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14338					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14339					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14340					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14341
 14342		777777	777777		F36410:	AA1=-1				;INITIAL C(AC)
 14343	041675	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14344		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14345	041676	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14346		777757	777777			AEE=XX				;INITIAL C(E)
 14347	041677	200 06 0 00 044072 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14348	041700	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14349			000000			AR1=V1				;EXPECTED RESULT IN AC
 14350	041701	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14351	041702	003 10 0 00 036411 		ER3	AC,36411		;HIGH PRODUCT FAILED
 14352		000020	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14353	041703	312 11 0 00 044216 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14354	041704	004 11 0 00 036412 		ER4	AC+1,36412		;LOW PRODUCT FAILED
 14355		777757	777777			AEE=XX				;INITIAL C(E)
 14356	041705	312 06 0 00 044072 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14357	041706	005 06 0 00 036413 		ER5	E,36413			;C(E) WAS CLOBBERED
 14358	041707	321 12 0 00 041675 		JUMPL	AC+2,F36410		;LOOP ON ERROR SWITCH^
 14359
 14360			003642			ADR=ADR+1
 14361		777737	777777			XX=XX+XX+1
 14362						IFE	<XX-1>,<XX=-2>
 14363
 14364					;MULTIPLY A RIPPLED 0 BY -1
 14365		000040	000001			MX=-XX
 14366			000000			IFL	XX,<V1=0>
 14367						IFG	XX,<V1=-1>
 14368						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14369					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14370					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14371					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14372					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14373
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0284

 14374		777777	777777		F36420:	AA1=-1				;INITIAL C(AC)
 14375	041710	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14376		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14377	041711	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14378		777737	777777			AEE=XX				;INITIAL C(E)
 14379	041712	200 06 0 00 044073 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14380	041713	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14381			000000			AR1=V1				;EXPECTED RESULT IN AC
 14382	041714	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14383	041715	003 10 0 00 036421 		ER3	AC,36421		;HIGH PRODUCT FAILED
 14384		000040	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14385	041716	312 11 0 00 044217 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14386	041717	004 11 0 00 036422 		ER4	AC+1,36422		;LOW PRODUCT FAILED
 14387		777737	777777			AEE=XX				;INITIAL C(E)
 14388	041720	312 06 0 00 044073 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14389	041721	005 06 0 00 036423 		ER5	E,36423			;C(E) WAS CLOBBERED
 14390	041722	321 12 0 00 041710 		JUMPL	AC+2,F36420		;LOOP ON ERROR SWITCH^
 14391
 14392			003643			ADR=ADR+1
 14393		777677	777777			XX=XX+XX+1
 14394						IFE	<XX-1>,<XX=-2>
 14395
 14396					;MULTIPLY A RIPPLED 0 BY -1
 14397		000100	000001			MX=-XX
 14398			000000			IFL	XX,<V1=0>
 14399						IFG	XX,<V1=-1>
 14400						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14401					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14402					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14403					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14404					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14405
 14406		777777	777777		F36430:	AA1=-1				;INITIAL C(AC)
 14407	041723	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14408		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14409	041724	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14410		777677	777777			AEE=XX				;INITIAL C(E)
 14411	041725	200 06 0 00 044074 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14412	041726	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14413			000000			AR1=V1				;EXPECTED RESULT IN AC
 14414	041727	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14415	041730	003 10 0 00 036431 		ER3	AC,36431		;HIGH PRODUCT FAILED
 14416		000100	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14417	041731	312 11 0 00 044220 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14418	041732	004 11 0 00 036432 		ER4	AC+1,36432		;LOW PRODUCT FAILED
 14419		777677	777777			AEE=XX				;INITIAL C(E)
 14420	041733	312 06 0 00 044074 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14421	041734	005 06 0 00 036433 		ER5	E,36433			;C(E) WAS CLOBBERED
 14422	041735	321 12 0 00 041723 		JUMPL	AC+2,F36430		;LOOP ON ERROR SWITCH^
 14423
 14424			003644			ADR=ADR+1
 14425		777577	777777			XX=XX+XX+1
 14426						IFE	<XX-1>,<XX=-2>
 14427
 14428					;MULTIPLY A RIPPLED 0 BY -1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0285

 14429		000200	000001			MX=-XX
 14430			000000			IFL	XX,<V1=0>
 14431						IFG	XX,<V1=-1>
 14432						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14433					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14434					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14435					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14436					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14437
 14438		777777	777777		F36440:	AA1=-1				;INITIAL C(AC)
 14439	041736	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14440		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14441	041737	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14442		777577	777777			AEE=XX				;INITIAL C(E)
 14443	041740	200 06 0 00 044075 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14444	041741	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14445			000000			AR1=V1				;EXPECTED RESULT IN AC
 14446	041742	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14447	041743	003 10 0 00 036441 		ER3	AC,36441		;HIGH PRODUCT FAILED
 14448		000200	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14449	041744	312 11 0 00 044221 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14450	041745	004 11 0 00 036442 		ER4	AC+1,36442		;LOW PRODUCT FAILED
 14451		777577	777777			AEE=XX				;INITIAL C(E)
 14452	041746	312 06 0 00 044075 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14453	041747	005 06 0 00 036443 		ER5	E,36443			;C(E) WAS CLOBBERED
 14454	041750	321 12 0 00 041736 		JUMPL	AC+2,F36440		;LOOP ON ERROR SWITCH^
 14455
 14456			003645			ADR=ADR+1
 14457		777377	777777			XX=XX+XX+1
 14458						IFE	<XX-1>,<XX=-2>
 14459
 14460					;MULTIPLY A RIPPLED 0 BY -1
 14461		000400	000001			MX=-XX
 14462			000000			IFL	XX,<V1=0>
 14463						IFG	XX,<V1=-1>
 14464						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14465					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14466					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14467					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14468					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14469
 14470		777777	777777		F36450:	AA1=-1				;INITIAL C(AC)
 14471	041751	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14472		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14473	041752	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14474		777377	777777			AEE=XX				;INITIAL C(E)
 14475	041753	200 06 0 00 044076 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14476	041754	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14477			000000			AR1=V1				;EXPECTED RESULT IN AC
 14478	041755	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14479	041756	003 10 0 00 036451 		ER3	AC,36451		;HIGH PRODUCT FAILED
 14480		000400	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14481	041757	312 11 0 00 044222 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14482	041760	004 11 0 00 036452 		ER4	AC+1,36452		;LOW PRODUCT FAILED
 14483		777377	777777			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0286

 14484	041761	312 06 0 00 044076 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14485	041762	005 06 0 00 036453 		ER5	E,36453			;C(E) WAS CLOBBERED
 14486	041763	321 12 0 00 041751 		JUMPL	AC+2,F36450		;LOOP ON ERROR SWITCH^
 14487
 14488			003646			ADR=ADR+1
 14489		776777	777777			XX=XX+XX+1
 14490						IFE	<XX-1>,<XX=-2>
 14491
 14492					;MULTIPLY A RIPPLED 0 BY -1
 14493		001000	000001			MX=-XX
 14494			000000			IFL	XX,<V1=0>
 14495						IFG	XX,<V1=-1>
 14496						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14497					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14498					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14499					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14500					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14501
 14502		777777	777777		F36460:	AA1=-1				;INITIAL C(AC)
 14503	041764	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14504		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14505	041765	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14506		776777	777777			AEE=XX				;INITIAL C(E)
 14507	041766	200 06 0 00 044077 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14508	041767	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14509			000000			AR1=V1				;EXPECTED RESULT IN AC
 14510	041770	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14511	041771	003 10 0 00 036461 		ER3	AC,36461		;HIGH PRODUCT FAILED
 14512		001000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14513	041772	312 11 0 00 044223 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14514	041773	004 11 0 00 036462 		ER4	AC+1,36462		;LOW PRODUCT FAILED
 14515		776777	777777			AEE=XX				;INITIAL C(E)
 14516	041774	312 06 0 00 044077 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14517	041775	005 06 0 00 036463 		ER5	E,36463			;C(E) WAS CLOBBERED
 14518	041776	321 12 0 00 041764 		JUMPL	AC+2,F36460		;LOOP ON ERROR SWITCH^
 14519
 14520			003647			ADR=ADR+1
 14521		775777	777777			XX=XX+XX+1
 14522						IFE	<XX-1>,<XX=-2>
 14523
 14524					;MULTIPLY A RIPPLED 0 BY -1
 14525		002000	000001			MX=-XX
 14526			000000			IFL	XX,<V1=0>
 14527						IFG	XX,<V1=-1>
 14528						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14529					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14530					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14531					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14532					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14533
 14534		777777	777777		F36470:	AA1=-1				;INITIAL C(AC)
 14535	041777	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14536		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14537	042000	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14538		775777	777777			AEE=XX				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0287

 14539	042001	200 06 0 00 044100 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14540	042002	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14541			000000			AR1=V1				;EXPECTED RESULT IN AC
 14542	042003	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14543	042004	003 10 0 00 036471 		ER3	AC,36471		;HIGH PRODUCT FAILED
 14544		002000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14545	042005	312 11 0 00 044224 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14546	042006	004 11 0 00 036472 		ER4	AC+1,36472		;LOW PRODUCT FAILED
 14547		775777	777777			AEE=XX				;INITIAL C(E)
 14548	042007	312 06 0 00 044100 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14549	042010	005 06 0 00 036473 		ER5	E,36473			;C(E) WAS CLOBBERED
 14550	042011	321 12 0 00 041777 		JUMPL	AC+2,F36470		;LOOP ON ERROR SWITCH^
 14551
 14552			003650			ADR=ADR+1
 14553		773777	777777			XX=XX+XX+1
 14554						IFE	<XX-1>,<XX=-2>
 14555
 14556					;MULTIPLY A RIPPLED 0 BY -1
 14557		004000	000001			MX=-XX
 14558			000000			IFL	XX,<V1=0>
 14559						IFG	XX,<V1=-1>
 14560						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14561					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14562					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14563					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14564					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14565
 14566		777777	777777		F36500:	AA1=-1				;INITIAL C(AC)
 14567	042012	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14568		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14569	042013	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14570		773777	777777			AEE=XX				;INITIAL C(E)
 14571	042014	200 06 0 00 044101 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14572	042015	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14573			000000			AR1=V1				;EXPECTED RESULT IN AC
 14574	042016	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14575	042017	003 10 0 00 036501 		ER3	AC,36501		;HIGH PRODUCT FAILED
 14576		004000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14577	042020	312 11 0 00 044225 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14578	042021	004 11 0 00 036502 		ER4	AC+1,36502		;LOW PRODUCT FAILED
 14579		773777	777777			AEE=XX				;INITIAL C(E)
 14580	042022	312 06 0 00 044101 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14581	042023	005 06 0 00 036503 		ER5	E,36503			;C(E) WAS CLOBBERED
 14582	042024	321 12 0 00 042012 		JUMPL	AC+2,F36500		;LOOP ON ERROR SWITCH^
 14583
 14584			003651			ADR=ADR+1
 14585		767777	777777			XX=XX+XX+1
 14586						IFE	<XX-1>,<XX=-2>
 14587
 14588					;MULTIPLY A RIPPLED 0 BY -1
 14589		010000	000001			MX=-XX
 14590			000000			IFL	XX,<V1=0>
 14591						IFG	XX,<V1=-1>
 14592						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14593					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0288

 14594					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14595					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14596					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14597
 14598		777777	777777		F36510:	AA1=-1				;INITIAL C(AC)
 14599	042025	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14600		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14601	042026	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14602		767777	777777			AEE=XX				;INITIAL C(E)
 14603	042027	200 06 0 00 044102 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14604	042030	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14605			000000			AR1=V1				;EXPECTED RESULT IN AC
 14606	042031	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14607	042032	003 10 0 00 036511 		ER3	AC,36511		;HIGH PRODUCT FAILED
 14608		010000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14609	042033	312 11 0 00 044226 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14610	042034	004 11 0 00 036512 		ER4	AC+1,36512		;LOW PRODUCT FAILED
 14611		767777	777777			AEE=XX				;INITIAL C(E)
 14612	042035	312 06 0 00 044102 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14613	042036	005 06 0 00 036513 		ER5	E,36513			;C(E) WAS CLOBBERED
 14614	042037	321 12 0 00 042025 		JUMPL	AC+2,F36510		;LOOP ON ERROR SWITCH^
 14615
 14616			003652			ADR=ADR+1
 14617		757777	777777			XX=XX+XX+1
 14618						IFE	<XX-1>,<XX=-2>
 14619
 14620					;MULTIPLY A RIPPLED 0 BY -1
 14621		020000	000001			MX=-XX
 14622			000000			IFL	XX,<V1=0>
 14623						IFG	XX,<V1=-1>
 14624						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14625					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14626					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14627					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14628					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14629
 14630		777777	777777		F36520:	AA1=-1				;INITIAL C(AC)
 14631	042040	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14632		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14633	042041	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14634		757777	777777			AEE=XX				;INITIAL C(E)
 14635	042042	200 06 0 00 044103 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14636	042043	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14637			000000			AR1=V1				;EXPECTED RESULT IN AC
 14638	042044	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14639	042045	003 10 0 00 036521 		ER3	AC,36521		;HIGH PRODUCT FAILED
 14640		020000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14641	042046	312 11 0 00 044227 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14642	042047	004 11 0 00 036522 		ER4	AC+1,36522		;LOW PRODUCT FAILED
 14643		757777	777777			AEE=XX				;INITIAL C(E)
 14644	042050	312 06 0 00 044103 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14645	042051	005 06 0 00 036523 		ER5	E,36523			;C(E) WAS CLOBBERED
 14646	042052	321 12 0 00 042040 		JUMPL	AC+2,F36520		;LOOP ON ERROR SWITCH^
 14647
 14648			003653			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0289

 14649		737777	777777			XX=XX+XX+1
 14650						IFE	<XX-1>,<XX=-2>
 14651
 14652					;MULTIPLY A RIPPLED 0 BY -1
 14653		040000	000001			MX=-XX
 14654			000000			IFL	XX,<V1=0>
 14655						IFG	XX,<V1=-1>
 14656						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14657					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14658					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14659					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14660					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14661
 14662		777777	777777		F36530:	AA1=-1				;INITIAL C(AC)
 14663	042053	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14664		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14665	042054	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14666		737777	777777			AEE=XX				;INITIAL C(E)
 14667	042055	200 06 0 00 044104 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14668	042056	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14669			000000			AR1=V1				;EXPECTED RESULT IN AC
 14670	042057	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14671	042060	003 10 0 00 036531 		ER3	AC,36531		;HIGH PRODUCT FAILED
 14672		040000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14673	042061	312 11 0 00 044230 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14674	042062	004 11 0 00 036532 		ER4	AC+1,36532		;LOW PRODUCT FAILED
 14675		737777	777777			AEE=XX				;INITIAL C(E)
 14676	042063	312 06 0 00 044104 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14677	042064	005 06 0 00 036533 		ER5	E,36533			;C(E) WAS CLOBBERED
 14678	042065	321 12 0 00 042053 		JUMPL	AC+2,F36530		;LOOP ON ERROR SWITCH^
 14679
 14680			003654			ADR=ADR+1
 14681		677777	777777			XX=XX+XX+1
 14682						IFE	<XX-1>,<XX=-2>
 14683
 14684					;MULTIPLY A RIPPLED 0 BY -1
 14685		100000	000001			MX=-XX
 14686			000000			IFL	XX,<V1=0>
 14687						IFG	XX,<V1=-1>
 14688						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14689					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14690					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14691					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14692					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14693
 14694		777777	777777		F36540:	AA1=-1				;INITIAL C(AC)
 14695	042066	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14696		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14697	042067	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14698		677777	777777			AEE=XX				;INITIAL C(E)
 14699	042070	200 06 0 00 044105 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14700	042071	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14701			000000			AR1=V1				;EXPECTED RESULT IN AC
 14702	042072	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14703	042073	003 10 0 00 036541 		ER3	AC,36541		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0290

 14704		100000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14705	042074	312 11 0 00 044231 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14706	042075	004 11 0 00 036542 		ER4	AC+1,36542		;LOW PRODUCT FAILED
 14707		677777	777777			AEE=XX				;INITIAL C(E)
 14708	042076	312 06 0 00 044105 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14709	042077	005 06 0 00 036543 		ER5	E,36543			;C(E) WAS CLOBBERED
 14710	042100	321 12 0 00 042066 		JUMPL	AC+2,F36540		;LOOP ON ERROR SWITCH^
 14711
 14712			003655			ADR=ADR+1
 14713		577777	777777			XX=XX+XX+1
 14714						IFE	<XX-1>,<XX=-2>
 14715
 14716					;MULTIPLY A RIPPLED 0 BY -1
 14717		200000	000001			MX=-XX
 14718			000000			IFL	XX,<V1=0>
 14719						IFG	XX,<V1=-1>
 14720						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14721					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14722					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14723					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14724					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14725
 14726		777777	777777		F36550:	AA1=-1				;INITIAL C(AC)
 14727	042101	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14728		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14729	042102	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14730		577777	777777			AEE=XX				;INITIAL C(E)
 14731	042103	200 06 0 00 044106 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14732	042104	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14733			000000			AR1=V1				;EXPECTED RESULT IN AC
 14734	042105	312 10 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14735	042106	003 10 0 00 036551 		ER3	AC,36551		;HIGH PRODUCT FAILED
 14736		200000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14737	042107	312 11 0 00 044232 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14738	042110	004 11 0 00 036552 		ER4	AC+1,36552		;LOW PRODUCT FAILED
 14739		577777	777777			AEE=XX				;INITIAL C(E)
 14740	042111	312 06 0 00 044106 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14741	042112	005 06 0 00 036553 		ER5	E,36553			;C(E) WAS CLOBBERED
 14742	042113	321 12 0 00 042101 		JUMPL	AC+2,F36550		;LOOP ON ERROR SWITCH^
 14743
 14744			003656			ADR=ADR+1
 14745		377777	777777			XX=XX+XX+1
 14746						IFE	<XX-1>,<XX=-2>
 14747
 14748					;MULTIPLY A RIPPLED 0 BY -1
 14749		400000	000001			MX=-XX
 14750						IFL	XX,<V1=0>
 14751		777777	777777			IFG	XX,<V1=-1>
 14752						MOP1	(\ADR,-1,-1,XX,V1,MX)^
 14753					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND
 14754					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14755					;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY.
 14756					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14757
 14758		777777	777777		F36560:	AA1=-1				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 16-21
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0291

 14759	042114	200 10 0 00 043777 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14760		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14761	042115	200 11 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14762		377777	777777			AEE=XX				;INITIAL C(E)
 14763	042116	200 06 0 00 044107 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14764	042117	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14765		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 14766	042120	312 10 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14767	042121	003 10 0 00 036561 		ER3	AC,36561		;HIGH PRODUCT FAILED
 14768		400000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14769	042122	312 11 0 00 044233 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14770	042123	004 11 0 00 036562 		ER4	AC+1,36562		;LOW PRODUCT FAILED
 14771		377777	777777			AEE=XX				;INITIAL C(E)
 14772	042124	312 06 0 00 044107 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14773	042125	005 06 0 00 036563 		ER5	E,36563			;C(E) WAS CLOBBERED
 14774	042126	321 12 0 00 042114 		JUMPL	AC+2,F36560		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0292

 14775			000014			AC=14
 14776			000012			E=<AC-2>&17
 14777						SAVEAC	(1,1)^
 14778	042127	201 16 0 00 042127 		MOVEI	AC+2,.		;SAVE TEST PC
 14779	042130	202 16 0 00 030051 		MOVEM	AC+2,TESTPC
 14780	042131	201 16 0 00 000016 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 14781	042132	202 16 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
 14782			000000			XX=0
 14783
 14784						REPEAT	^D36,	<
 14785						ADR=ADR+1
 14786						XX=XX+XX+1
 14787						IFE	<XX-1>,<XX=-2>
 14788					
 14789					;MULTIPLY -1 BY A RIPPLED 0
 14790						MX=-XX
 14791						IFL	XX,<V1=0>
 14792						IFG	XX,<V1=-1>
 14793						MOP1	(\ADR,XX,-1,-1,V1,MX)>
 14794
 14795			003657			ADR=ADR+1
 14796			000001			XX=XX+XX+1
 14797		777777	777776			IFE	<XX-1>,<XX=-2>
 14798
 14799					;MULTIPLY -1 BY A RIPPLED 0
 14800			000002			MX=-XX
 14801			000000			IFL	XX,<V1=0>
 14802						IFG	XX,<V1=-1>
 14803						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 14804					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 14805					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14806					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 14807					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14808
 14809		777777	777776		F36570:	AA1=XX				;INITIAL C(AC)
 14810	042133	200 14 0 00 044044 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14811		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14812	042134	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14813		777777	777777			AEE=-1				;INITIAL C(E)
 14814	042135	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14815	042136	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14816			000000			AR1=V1				;EXPECTED RESULT IN AC
 14817	042137	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14818	042140	003 14 0 00 036571 		ER3	AC,36571		;HIGH PRODUCT FAILED
 14819			000002			AR2=MX				;EXPECTED RESULT IN AC+1
 14820	042141	312 15 0 00 044001 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14821	042142	004 15 0 00 036572 		ER4	AC+1,36572		;LOW PRODUCT FAILED
 14822		777777	777777			AEE=-1				;INITIAL C(E)
 14823	042143	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14824	042144	005 12 0 00 036573 		ER5	E,36573			;C(E) WAS CLOBBERED
 14825	042145	321 16 0 00 042133 		JUMPL	AC+2,F36570		;LOOP ON ERROR SWITCH^
 14826
 14827			003660			ADR=ADR+1
 14828		777777	777775			XX=XX+XX+1
 14829						IFE	<XX-1>,<XX=-2>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0293

 14830
 14831					;MULTIPLY -1 BY A RIPPLED 0
 14832			000003			MX=-XX
 14833			000000			IFL	XX,<V1=0>
 14834						IFG	XX,<V1=-1>
 14835						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 14836					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 14837					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14838					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 14839					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14840
 14841		777777	777775		F36600:	AA1=XX				;INITIAL C(AC)
 14842	042146	200 14 0 00 044045 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14843		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14844	042147	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14845		777777	777777			AEE=-1				;INITIAL C(E)
 14846	042150	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14847	042151	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14848			000000			AR1=V1				;EXPECTED RESULT IN AC
 14849	042152	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14850	042153	003 14 0 00 036601 		ER3	AC,36601		;HIGH PRODUCT FAILED
 14851			000003			AR2=MX				;EXPECTED RESULT IN AC+1
 14852	042154	312 15 0 00 044110 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14853	042155	004 15 0 00 036602 		ER4	AC+1,36602		;LOW PRODUCT FAILED
 14854		777777	777777			AEE=-1				;INITIAL C(E)
 14855	042156	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14856	042157	005 12 0 00 036603 		ER5	E,36603			;C(E) WAS CLOBBERED
 14857	042160	321 16 0 00 042146 		JUMPL	AC+2,F36600		;LOOP ON ERROR SWITCH^
 14858
 14859			003661			ADR=ADR+1
 14860		777777	777773			XX=XX+XX+1
 14861						IFE	<XX-1>,<XX=-2>
 14862
 14863					;MULTIPLY -1 BY A RIPPLED 0
 14864			000005			MX=-XX
 14865			000000			IFL	XX,<V1=0>
 14866						IFG	XX,<V1=-1>
 14867						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 14868					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 14869					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14870					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 14871					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14872
 14873		777777	777773		F36610:	AA1=XX				;INITIAL C(AC)
 14874	042161	200 14 0 00 044046 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14875		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14876	042162	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14877		777777	777777			AEE=-1				;INITIAL C(E)
 14878	042163	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14879	042164	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14880			000000			AR1=V1				;EXPECTED RESULT IN AC
 14881	042165	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14882	042166	003 14 0 00 036611 		ER3	AC,36611		;HIGH PRODUCT FAILED
 14883			000005			AR2=MX				;EXPECTED RESULT IN AC+1
 14884	042167	312 15 0 00 044111 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0294

 14885	042170	004 15 0 00 036612 		ER4	AC+1,36612		;LOW PRODUCT FAILED
 14886		777777	777777			AEE=-1				;INITIAL C(E)
 14887	042171	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14888	042172	005 12 0 00 036613 		ER5	E,36613			;C(E) WAS CLOBBERED
 14889	042173	321 16 0 00 042161 		JUMPL	AC+2,F36610		;LOOP ON ERROR SWITCH^
 14890
 14891			003662			ADR=ADR+1
 14892		777777	777767			XX=XX+XX+1
 14893						IFE	<XX-1>,<XX=-2>
 14894
 14895					;MULTIPLY -1 BY A RIPPLED 0
 14896			000011			MX=-XX
 14897			000000			IFL	XX,<V1=0>
 14898						IFG	XX,<V1=-1>
 14899						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 14900					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 14901					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14902					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 14903					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14904
 14905		777777	777767		F36620:	AA1=XX				;INITIAL C(AC)
 14906	042174	200 14 0 00 044047 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14907		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14908	042175	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14909		777777	777777			AEE=-1				;INITIAL C(E)
 14910	042176	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14911	042177	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14912			000000			AR1=V1				;EXPECTED RESULT IN AC
 14913	042200	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14914	042201	003 14 0 00 036621 		ER3	AC,36621		;HIGH PRODUCT FAILED
 14915			000011			AR2=MX				;EXPECTED RESULT IN AC+1
 14916	042202	312 15 0 00 044114 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14917	042203	004 15 0 00 036622 		ER4	AC+1,36622		;LOW PRODUCT FAILED
 14918		777777	777777			AEE=-1				;INITIAL C(E)
 14919	042204	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14920	042205	005 12 0 00 036623 		ER5	E,36623			;C(E) WAS CLOBBERED
 14921	042206	321 16 0 00 042174 		JUMPL	AC+2,F36620		;LOOP ON ERROR SWITCH^
 14922
 14923			003663			ADR=ADR+1
 14924		777777	777757			XX=XX+XX+1
 14925						IFE	<XX-1>,<XX=-2>
 14926
 14927					;MULTIPLY -1 BY A RIPPLED 0
 14928			000021			MX=-XX
 14929			000000			IFL	XX,<V1=0>
 14930						IFG	XX,<V1=-1>
 14931						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 14932					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 14933					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14934					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 14935					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14936
 14937		777777	777757		F36630:	AA1=XX				;INITIAL C(AC)
 14938	042207	200 14 0 00 044050 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14939		777777	777777			AA2=-1				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0295

 14940	042210	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14941		777777	777777			AEE=-1				;INITIAL C(E)
 14942	042211	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14943	042212	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14944			000000			AR1=V1				;EXPECTED RESULT IN AC
 14945	042213	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14946	042214	003 14 0 00 036631 		ER3	AC,36631		;HIGH PRODUCT FAILED
 14947			000021			AR2=MX				;EXPECTED RESULT IN AC+1
 14948	042215	312 15 0 00 044174 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14949	042216	004 15 0 00 036632 		ER4	AC+1,36632		;LOW PRODUCT FAILED
 14950		777777	777777			AEE=-1				;INITIAL C(E)
 14951	042217	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14952	042220	005 12 0 00 036633 		ER5	E,36633			;C(E) WAS CLOBBERED
 14953	042221	321 16 0 00 042207 		JUMPL	AC+2,F36630		;LOOP ON ERROR SWITCH^
 14954
 14955			003664			ADR=ADR+1
 14956		777777	777737			XX=XX+XX+1
 14957						IFE	<XX-1>,<XX=-2>
 14958
 14959					;MULTIPLY -1 BY A RIPPLED 0
 14960			000041			MX=-XX
 14961			000000			IFL	XX,<V1=0>
 14962						IFG	XX,<V1=-1>
 14963						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 14964					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 14965					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14966					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 14967					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 14968
 14969		777777	777737		F36640:	AA1=XX				;INITIAL C(AC)
 14970	042222	200 14 0 00 044051 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14971		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14972	042223	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14973		777777	777777			AEE=-1				;INITIAL C(E)
 14974	042224	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14975	042225	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14976			000000			AR1=V1				;EXPECTED RESULT IN AC
 14977	042226	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14978	042227	003 14 0 00 036641 		ER3	AC,36641		;HIGH PRODUCT FAILED
 14979			000041			AR2=MX				;EXPECTED RESULT IN AC+1
 14980	042230	312 15 0 00 044175 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14981	042231	004 15 0 00 036642 		ER4	AC+1,36642		;LOW PRODUCT FAILED
 14982		777777	777777			AEE=-1				;INITIAL C(E)
 14983	042232	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14984	042233	005 12 0 00 036643 		ER5	E,36643			;C(E) WAS CLOBBERED
 14985	042234	321 16 0 00 042222 		JUMPL	AC+2,F36640		;LOOP ON ERROR SWITCH^
 14986
 14987			003665			ADR=ADR+1
 14988		777777	777677			XX=XX+XX+1
 14989						IFE	<XX-1>,<XX=-2>
 14990
 14991					;MULTIPLY -1 BY A RIPPLED 0
 14992			000101			MX=-XX
 14993			000000			IFL	XX,<V1=0>
 14994						IFG	XX,<V1=-1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0296

 14995						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 14996					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 14997					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 14998					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 14999					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15000
 15001		777777	777677		F36650:	AA1=XX				;INITIAL C(AC)
 15002	042235	200 14 0 00 044052 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15003		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15004	042236	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15005		777777	777777			AEE=-1				;INITIAL C(E)
 15006	042237	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15007	042240	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15008			000000			AR1=V1				;EXPECTED RESULT IN AC
 15009	042241	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15010	042242	003 14 0 00 036651 		ER3	AC,36651		;HIGH PRODUCT FAILED
 15011			000101			AR2=MX				;EXPECTED RESULT IN AC+1
 15012	042243	312 15 0 00 044176 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15013	042244	004 15 0 00 036652 		ER4	AC+1,36652		;LOW PRODUCT FAILED
 15014		777777	777777			AEE=-1				;INITIAL C(E)
 15015	042245	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15016	042246	005 12 0 00 036653 		ER5	E,36653			;C(E) WAS CLOBBERED
 15017	042247	321 16 0 00 042235 		JUMPL	AC+2,F36650		;LOOP ON ERROR SWITCH^
 15018
 15019			003666			ADR=ADR+1
 15020		777777	777577			XX=XX+XX+1
 15021						IFE	<XX-1>,<XX=-2>
 15022
 15023					;MULTIPLY -1 BY A RIPPLED 0
 15024			000201			MX=-XX
 15025			000000			IFL	XX,<V1=0>
 15026						IFG	XX,<V1=-1>
 15027						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15028					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15029					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15030					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15031					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15032
 15033		777777	777577		F36660:	AA1=XX				;INITIAL C(AC)
 15034	042250	200 14 0 00 044053 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15035		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15036	042251	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15037		777777	777777			AEE=-1				;INITIAL C(E)
 15038	042252	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15039	042253	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15040			000000			AR1=V1				;EXPECTED RESULT IN AC
 15041	042254	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15042	042255	003 14 0 00 036661 		ER3	AC,36661		;HIGH PRODUCT FAILED
 15043			000201			AR2=MX				;EXPECTED RESULT IN AC+1
 15044	042256	312 15 0 00 044177 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15045	042257	004 15 0 00 036662 		ER4	AC+1,36662		;LOW PRODUCT FAILED
 15046		777777	777777			AEE=-1				;INITIAL C(E)
 15047	042260	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15048	042261	005 12 0 00 036663 		ER5	E,36663			;C(E) WAS CLOBBERED
 15049	042262	321 16 0 00 042250 		JUMPL	AC+2,F36660		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0297

 15050
 15051			003667			ADR=ADR+1
 15052		777777	777377			XX=XX+XX+1
 15053						IFE	<XX-1>,<XX=-2>
 15054
 15055					;MULTIPLY -1 BY A RIPPLED 0
 15056			000401			MX=-XX
 15057			000000			IFL	XX,<V1=0>
 15058						IFG	XX,<V1=-1>
 15059						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15060					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15061					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15062					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15063					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15064
 15065		777777	777377		F36670:	AA1=XX				;INITIAL C(AC)
 15066	042263	200 14 0 00 044054 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15067		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15068	042264	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15069		777777	777777			AEE=-1				;INITIAL C(E)
 15070	042265	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15071	042266	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15072			000000			AR1=V1				;EXPECTED RESULT IN AC
 15073	042267	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15074	042270	003 14 0 00 036671 		ER3	AC,36671		;HIGH PRODUCT FAILED
 15075			000401			AR2=MX				;EXPECTED RESULT IN AC+1
 15076	042271	312 15 0 00 044200 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15077	042272	004 15 0 00 036672 		ER4	AC+1,36672		;LOW PRODUCT FAILED
 15078		777777	777777			AEE=-1				;INITIAL C(E)
 15079	042273	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15080	042274	005 12 0 00 036673 		ER5	E,36673			;C(E) WAS CLOBBERED
 15081	042275	321 16 0 00 042263 		JUMPL	AC+2,F36670		;LOOP ON ERROR SWITCH^
 15082
 15083			003670			ADR=ADR+1
 15084		777777	776777			XX=XX+XX+1
 15085						IFE	<XX-1>,<XX=-2>
 15086
 15087					;MULTIPLY -1 BY A RIPPLED 0
 15088			001001			MX=-XX
 15089			000000			IFL	XX,<V1=0>
 15090						IFG	XX,<V1=-1>
 15091						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15092					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15093					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15094					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15095					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15096
 15097		777777	776777		F36700:	AA1=XX				;INITIAL C(AC)
 15098	042276	200 14 0 00 044055 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15099		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15100	042277	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15101		777777	777777			AEE=-1				;INITIAL C(E)
 15102	042300	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15103	042301	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15104			000000			AR1=V1				;EXPECTED RESULT IN AC
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0298

 15105	042302	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15106	042303	003 14 0 00 036701 		ER3	AC,36701		;HIGH PRODUCT FAILED
 15107			001001			AR2=MX				;EXPECTED RESULT IN AC+1
 15108	042304	312 15 0 00 044201 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15109	042305	004 15 0 00 036702 		ER4	AC+1,36702		;LOW PRODUCT FAILED
 15110		777777	777777			AEE=-1				;INITIAL C(E)
 15111	042306	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15112	042307	005 12 0 00 036703 		ER5	E,36703			;C(E) WAS CLOBBERED
 15113	042310	321 16 0 00 042276 		JUMPL	AC+2,F36700		;LOOP ON ERROR SWITCH^
 15114
 15115			003671			ADR=ADR+1
 15116		777777	775777			XX=XX+XX+1
 15117						IFE	<XX-1>,<XX=-2>
 15118
 15119					;MULTIPLY -1 BY A RIPPLED 0
 15120			002001			MX=-XX
 15121			000000			IFL	XX,<V1=0>
 15122						IFG	XX,<V1=-1>
 15123						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15124					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15125					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15126					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15127					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15128
 15129		777777	775777		F36710:	AA1=XX				;INITIAL C(AC)
 15130	042311	200 14 0 00 044056 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15131		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15132	042312	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15133		777777	777777			AEE=-1				;INITIAL C(E)
 15134	042313	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15135	042314	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15136			000000			AR1=V1				;EXPECTED RESULT IN AC
 15137	042315	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15138	042316	003 14 0 00 036711 		ER3	AC,36711		;HIGH PRODUCT FAILED
 15139			002001			AR2=MX				;EXPECTED RESULT IN AC+1
 15140	042317	312 15 0 00 044202 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15141	042320	004 15 0 00 036712 		ER4	AC+1,36712		;LOW PRODUCT FAILED
 15142		777777	777777			AEE=-1				;INITIAL C(E)
 15143	042321	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15144	042322	005 12 0 00 036713 		ER5	E,36713			;C(E) WAS CLOBBERED
 15145	042323	321 16 0 00 042311 		JUMPL	AC+2,F36710		;LOOP ON ERROR SWITCH^
 15146
 15147			003672			ADR=ADR+1
 15148		777777	773777			XX=XX+XX+1
 15149						IFE	<XX-1>,<XX=-2>
 15150
 15151					;MULTIPLY -1 BY A RIPPLED 0
 15152			004001			MX=-XX
 15153			000000			IFL	XX,<V1=0>
 15154						IFG	XX,<V1=-1>
 15155						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15156					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15157					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15158					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15159					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0299

 15160
 15161		777777	773777		F36720:	AA1=XX				;INITIAL C(AC)
 15162	042324	200 14 0 00 044057 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15163		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15164	042325	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15165		777777	777777			AEE=-1				;INITIAL C(E)
 15166	042326	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15167	042327	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15168			000000			AR1=V1				;EXPECTED RESULT IN AC
 15169	042330	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15170	042331	003 14 0 00 036721 		ER3	AC,36721		;HIGH PRODUCT FAILED
 15171			004001			AR2=MX				;EXPECTED RESULT IN AC+1
 15172	042332	312 15 0 00 044203 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15173	042333	004 15 0 00 036722 		ER4	AC+1,36722		;LOW PRODUCT FAILED
 15174		777777	777777			AEE=-1				;INITIAL C(E)
 15175	042334	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15176	042335	005 12 0 00 036723 		ER5	E,36723			;C(E) WAS CLOBBERED
 15177	042336	321 16 0 00 042324 		JUMPL	AC+2,F36720		;LOOP ON ERROR SWITCH^
 15178
 15179			003673			ADR=ADR+1
 15180		777777	767777			XX=XX+XX+1
 15181						IFE	<XX-1>,<XX=-2>
 15182
 15183					;MULTIPLY -1 BY A RIPPLED 0
 15184			010001			MX=-XX
 15185			000000			IFL	XX,<V1=0>
 15186						IFG	XX,<V1=-1>
 15187						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15188					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15189					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15190					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15191					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15192
 15193		777777	767777		F36730:	AA1=XX				;INITIAL C(AC)
 15194	042337	200 14 0 00 044060 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15195		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15196	042340	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15197		777777	777777			AEE=-1				;INITIAL C(E)
 15198	042341	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15199	042342	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15200			000000			AR1=V1				;EXPECTED RESULT IN AC
 15201	042343	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15202	042344	003 14 0 00 036731 		ER3	AC,36731		;HIGH PRODUCT FAILED
 15203			010001			AR2=MX				;EXPECTED RESULT IN AC+1
 15204	042345	312 15 0 00 044204 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15205	042346	004 15 0 00 036732 		ER4	AC+1,36732		;LOW PRODUCT FAILED
 15206		777777	777777			AEE=-1				;INITIAL C(E)
 15207	042347	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15208	042350	005 12 0 00 036733 		ER5	E,36733			;C(E) WAS CLOBBERED
 15209	042351	321 16 0 00 042337 		JUMPL	AC+2,F36730		;LOOP ON ERROR SWITCH^
 15210
 15211			003674			ADR=ADR+1
 15212		777777	757777			XX=XX+XX+1
 15213						IFE	<XX-1>,<XX=-2>
 15214
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0300

 15215					;MULTIPLY -1 BY A RIPPLED 0
 15216			020001			MX=-XX
 15217			000000			IFL	XX,<V1=0>
 15218						IFG	XX,<V1=-1>
 15219						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15220					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15221					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15222					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15223					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15224
 15225		777777	757777		F36740:	AA1=XX				;INITIAL C(AC)
 15226	042352	200 14 0 00 044061 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15227		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15228	042353	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15229		777777	777777			AEE=-1				;INITIAL C(E)
 15230	042354	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15231	042355	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15232			000000			AR1=V1				;EXPECTED RESULT IN AC
 15233	042356	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15234	042357	003 14 0 00 036741 		ER3	AC,36741		;HIGH PRODUCT FAILED
 15235			020001			AR2=MX				;EXPECTED RESULT IN AC+1
 15236	042360	312 15 0 00 044205 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15237	042361	004 15 0 00 036742 		ER4	AC+1,36742		;LOW PRODUCT FAILED
 15238		777777	777777			AEE=-1				;INITIAL C(E)
 15239	042362	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15240	042363	005 12 0 00 036743 		ER5	E,36743			;C(E) WAS CLOBBERED
 15241	042364	321 16 0 00 042352 		JUMPL	AC+2,F36740		;LOOP ON ERROR SWITCH^
 15242
 15243			003675			ADR=ADR+1
 15244		777777	737777			XX=XX+XX+1
 15245						IFE	<XX-1>,<XX=-2>
 15246
 15247					;MULTIPLY -1 BY A RIPPLED 0
 15248			040001			MX=-XX
 15249			000000			IFL	XX,<V1=0>
 15250						IFG	XX,<V1=-1>
 15251						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15252					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15253					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15254					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15255					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15256
 15257		777777	737777		F36750:	AA1=XX				;INITIAL C(AC)
 15258	042365	200 14 0 00 044062 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15259		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15260	042366	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15261		777777	777777			AEE=-1				;INITIAL C(E)
 15262	042367	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15263	042370	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15264			000000			AR1=V1				;EXPECTED RESULT IN AC
 15265	042371	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15266	042372	003 14 0 00 036751 		ER3	AC,36751		;HIGH PRODUCT FAILED
 15267			040001			AR2=MX				;EXPECTED RESULT IN AC+1
 15268	042373	312 15 0 00 044206 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15269	042374	004 15 0 00 036752 		ER4	AC+1,36752		;LOW PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0301

 15270		777777	777777			AEE=-1				;INITIAL C(E)
 15271	042375	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15272	042376	005 12 0 00 036753 		ER5	E,36753			;C(E) WAS CLOBBERED
 15273	042377	321 16 0 00 042365 		JUMPL	AC+2,F36750		;LOOP ON ERROR SWITCH^
 15274
 15275			003676			ADR=ADR+1
 15276		777777	677777			XX=XX+XX+1
 15277						IFE	<XX-1>,<XX=-2>
 15278
 15279					;MULTIPLY -1 BY A RIPPLED 0
 15280			100001			MX=-XX
 15281			000000			IFL	XX,<V1=0>
 15282						IFG	XX,<V1=-1>
 15283						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15284					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15285					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15286					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15287					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15288
 15289		777777	677777		F36760:	AA1=XX				;INITIAL C(AC)
 15290	042400	200 14 0 00 044063 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15291		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15292	042401	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15293		777777	777777			AEE=-1				;INITIAL C(E)
 15294	042402	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15295	042403	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15296			000000			AR1=V1				;EXPECTED RESULT IN AC
 15297	042404	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15298	042405	003 14 0 00 036761 		ER3	AC,36761		;HIGH PRODUCT FAILED
 15299			100001			AR2=MX				;EXPECTED RESULT IN AC+1
 15300	042406	312 15 0 00 044207 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15301	042407	004 15 0 00 036762 		ER4	AC+1,36762		;LOW PRODUCT FAILED
 15302		777777	777777			AEE=-1				;INITIAL C(E)
 15303	042410	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15304	042411	005 12 0 00 036763 		ER5	E,36763			;C(E) WAS CLOBBERED
 15305	042412	321 16 0 00 042400 		JUMPL	AC+2,F36760		;LOOP ON ERROR SWITCH^
 15306
 15307			003677			ADR=ADR+1
 15308		777777	577777			XX=XX+XX+1
 15309						IFE	<XX-1>,<XX=-2>
 15310
 15311					;MULTIPLY -1 BY A RIPPLED 0
 15312			200001			MX=-XX
 15313			000000			IFL	XX,<V1=0>
 15314						IFG	XX,<V1=-1>
 15315						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15316					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15317					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15318					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15319					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15320
 15321		777777	577777		F36770:	AA1=XX				;INITIAL C(AC)
 15322	042413	200 14 0 00 044064 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15323		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15324	042414	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0302

 15325		777777	777777			AEE=-1				;INITIAL C(E)
 15326	042415	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15327	042416	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15328			000000			AR1=V1				;EXPECTED RESULT IN AC
 15329	042417	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15330	042420	003 14 0 00 036771 		ER3	AC,36771		;HIGH PRODUCT FAILED
 15331			200001			AR2=MX				;EXPECTED RESULT IN AC+1
 15332	042421	312 15 0 00 044210 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15333	042422	004 15 0 00 036772 		ER4	AC+1,36772		;LOW PRODUCT FAILED
 15334		777777	777777			AEE=-1				;INITIAL C(E)
 15335	042423	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15336	042424	005 12 0 00 036773 		ER5	E,36773			;C(E) WAS CLOBBERED
 15337	042425	321 16 0 00 042413 		JUMPL	AC+2,F36770		;LOOP ON ERROR SWITCH^
 15338
 15339			003700			ADR=ADR+1
 15340		777777	377777			XX=XX+XX+1
 15341						IFE	<XX-1>,<XX=-2>
 15342
 15343					;MULTIPLY -1 BY A RIPPLED 0
 15344			400001			MX=-XX
 15345			000000			IFL	XX,<V1=0>
 15346						IFG	XX,<V1=-1>
 15347						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15348					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15349					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15350					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15351					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15352
 15353		777777	377777		F37000:	AA1=XX				;INITIAL C(AC)
 15354	042426	200 14 0 00 044065 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15355		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15356	042427	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15357		777777	777777			AEE=-1				;INITIAL C(E)
 15358	042430	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15359	042431	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15360			000000			AR1=V1				;EXPECTED RESULT IN AC
 15361	042432	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15362	042433	003 14 0 00 037001 		ER3	AC,37001		;HIGH PRODUCT FAILED
 15363			400001			AR2=MX				;EXPECTED RESULT IN AC+1
 15364	042434	312 15 0 00 044211 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15365	042435	004 15 0 00 037002 		ER4	AC+1,37002		;LOW PRODUCT FAILED
 15366		777777	777777			AEE=-1				;INITIAL C(E)
 15367	042436	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15368	042437	005 12 0 00 037003 		ER5	E,37003			;C(E) WAS CLOBBERED
 15369	042440	321 16 0 00 042426 		JUMPL	AC+2,F37000		;LOOP ON ERROR SWITCH^
 15370
 15371			003701			ADR=ADR+1
 15372		777776	777777			XX=XX+XX+1
 15373						IFE	<XX-1>,<XX=-2>
 15374
 15375					;MULTIPLY -1 BY A RIPPLED 0
 15376		000001	000001			MX=-XX
 15377			000000			IFL	XX,<V1=0>
 15378						IFG	XX,<V1=-1>
 15379						MOP1	(\ADR,XX,-1,-1,V1,MX)^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0303

 15380					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15381					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15382					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15383					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15384
 15385		777776	777777		F37010:	AA1=XX				;INITIAL C(AC)
 15386	042441	200 14 0 00 044066 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15387		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15388	042442	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15389		777777	777777			AEE=-1				;INITIAL C(E)
 15390	042443	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15391	042444	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15392			000000			AR1=V1				;EXPECTED RESULT IN AC
 15393	042445	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15394	042446	003 14 0 00 037011 		ER3	AC,37011		;HIGH PRODUCT FAILED
 15395		000001	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15396	042447	312 15 0 00 044212 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15397	042450	004 15 0 00 037012 		ER4	AC+1,37012		;LOW PRODUCT FAILED
 15398		777777	777777			AEE=-1				;INITIAL C(E)
 15399	042451	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15400	042452	005 12 0 00 037013 		ER5	E,37013			;C(E) WAS CLOBBERED
 15401	042453	321 16 0 00 042441 		JUMPL	AC+2,F37010		;LOOP ON ERROR SWITCH^
 15402
 15403			003702			ADR=ADR+1
 15404		777775	777777			XX=XX+XX+1
 15405						IFE	<XX-1>,<XX=-2>
 15406
 15407					;MULTIPLY -1 BY A RIPPLED 0
 15408		000002	000001			MX=-XX
 15409			000000			IFL	XX,<V1=0>
 15410						IFG	XX,<V1=-1>
 15411						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15412					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15413					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15414					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15415					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15416
 15417		777775	777777		F37020:	AA1=XX				;INITIAL C(AC)
 15418	042454	200 14 0 00 044067 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15419		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15420	042455	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15421		777777	777777			AEE=-1				;INITIAL C(E)
 15422	042456	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15423	042457	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15424			000000			AR1=V1				;EXPECTED RESULT IN AC
 15425	042460	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15426	042461	003 14 0 00 037021 		ER3	AC,37021		;HIGH PRODUCT FAILED
 15427		000002	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15428	042462	312 15 0 00 044213 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15429	042463	004 15 0 00 037022 		ER4	AC+1,37022		;LOW PRODUCT FAILED
 15430		777777	777777			AEE=-1				;INITIAL C(E)
 15431	042464	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15432	042465	005 12 0 00 037023 		ER5	E,37023			;C(E) WAS CLOBBERED
 15433	042466	321 16 0 00 042454 		JUMPL	AC+2,F37020		;LOOP ON ERROR SWITCH^
 15434
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0304

 15435			003703			ADR=ADR+1
 15436		777773	777777			XX=XX+XX+1
 15437						IFE	<XX-1>,<XX=-2>
 15438
 15439					;MULTIPLY -1 BY A RIPPLED 0
 15440		000004	000001			MX=-XX
 15441			000000			IFL	XX,<V1=0>
 15442						IFG	XX,<V1=-1>
 15443						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15444					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15445					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15446					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15447					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15448
 15449		777773	777777		F37030:	AA1=XX				;INITIAL C(AC)
 15450	042467	200 14 0 00 044070 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15451		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15452	042470	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15453		777777	777777			AEE=-1				;INITIAL C(E)
 15454	042471	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15455	042472	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15456			000000			AR1=V1				;EXPECTED RESULT IN AC
 15457	042473	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15458	042474	003 14 0 00 037031 		ER3	AC,37031		;HIGH PRODUCT FAILED
 15459		000004	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15460	042475	312 15 0 00 044214 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15461	042476	004 15 0 00 037032 		ER4	AC+1,37032		;LOW PRODUCT FAILED
 15462		777777	777777			AEE=-1				;INITIAL C(E)
 15463	042477	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15464	042500	005 12 0 00 037033 		ER5	E,37033			;C(E) WAS CLOBBERED
 15465	042501	321 16 0 00 042467 		JUMPL	AC+2,F37030		;LOOP ON ERROR SWITCH^
 15466
 15467			003704			ADR=ADR+1
 15468		777767	777777			XX=XX+XX+1
 15469						IFE	<XX-1>,<XX=-2>
 15470
 15471					;MULTIPLY -1 BY A RIPPLED 0
 15472		000010	000001			MX=-XX
 15473			000000			IFL	XX,<V1=0>
 15474						IFG	XX,<V1=-1>
 15475						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15476					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15477					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15478					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15479					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15480
 15481		777767	777777		F37040:	AA1=XX				;INITIAL C(AC)
 15482	042502	200 14 0 00 044071 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15483		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15484	042503	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15485		777777	777777			AEE=-1				;INITIAL C(E)
 15486	042504	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15487	042505	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15488			000000			AR1=V1				;EXPECTED RESULT IN AC
 15489	042506	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0305

 15490	042507	003 14 0 00 037041 		ER3	AC,37041		;HIGH PRODUCT FAILED
 15491		000010	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15492	042510	312 15 0 00 044215 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15493	042511	004 15 0 00 037042 		ER4	AC+1,37042		;LOW PRODUCT FAILED
 15494		777777	777777			AEE=-1				;INITIAL C(E)
 15495	042512	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15496	042513	005 12 0 00 037043 		ER5	E,37043			;C(E) WAS CLOBBERED
 15497	042514	321 16 0 00 042502 		JUMPL	AC+2,F37040		;LOOP ON ERROR SWITCH^
 15498
 15499			003705			ADR=ADR+1
 15500		777757	777777			XX=XX+XX+1
 15501						IFE	<XX-1>,<XX=-2>
 15502
 15503					;MULTIPLY -1 BY A RIPPLED 0
 15504		000020	000001			MX=-XX
 15505			000000			IFL	XX,<V1=0>
 15506						IFG	XX,<V1=-1>
 15507						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15508					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15509					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15510					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15511					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15512
 15513		777757	777777		F37050:	AA1=XX				;INITIAL C(AC)
 15514	042515	200 14 0 00 044072 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15515		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15516	042516	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15517		777777	777777			AEE=-1				;INITIAL C(E)
 15518	042517	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15519	042520	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15520			000000			AR1=V1				;EXPECTED RESULT IN AC
 15521	042521	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15522	042522	003 14 0 00 037051 		ER3	AC,37051		;HIGH PRODUCT FAILED
 15523		000020	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15524	042523	312 15 0 00 044216 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15525	042524	004 15 0 00 037052 		ER4	AC+1,37052		;LOW PRODUCT FAILED
 15526		777777	777777			AEE=-1				;INITIAL C(E)
 15527	042525	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15528	042526	005 12 0 00 037053 		ER5	E,37053			;C(E) WAS CLOBBERED
 15529	042527	321 16 0 00 042515 		JUMPL	AC+2,F37050		;LOOP ON ERROR SWITCH^
 15530
 15531			003706			ADR=ADR+1
 15532		777737	777777			XX=XX+XX+1
 15533						IFE	<XX-1>,<XX=-2>
 15534
 15535					;MULTIPLY -1 BY A RIPPLED 0
 15536		000040	000001			MX=-XX
 15537			000000			IFL	XX,<V1=0>
 15538						IFG	XX,<V1=-1>
 15539						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15540					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15541					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15542					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15543					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15544
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0306

 15545		777737	777777		F37060:	AA1=XX				;INITIAL C(AC)
 15546	042530	200 14 0 00 044073 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15547		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15548	042531	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15549		777777	777777			AEE=-1				;INITIAL C(E)
 15550	042532	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15551	042533	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15552			000000			AR1=V1				;EXPECTED RESULT IN AC
 15553	042534	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15554	042535	003 14 0 00 037061 		ER3	AC,37061		;HIGH PRODUCT FAILED
 15555		000040	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15556	042536	312 15 0 00 044217 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15557	042537	004 15 0 00 037062 		ER4	AC+1,37062		;LOW PRODUCT FAILED
 15558		777777	777777			AEE=-1				;INITIAL C(E)
 15559	042540	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15560	042541	005 12 0 00 037063 		ER5	E,37063			;C(E) WAS CLOBBERED
 15561	042542	321 16 0 00 042530 		JUMPL	AC+2,F37060		;LOOP ON ERROR SWITCH^
 15562
 15563			003707			ADR=ADR+1
 15564		777677	777777			XX=XX+XX+1
 15565						IFE	<XX-1>,<XX=-2>
 15566
 15567					;MULTIPLY -1 BY A RIPPLED 0
 15568		000100	000001			MX=-XX
 15569			000000			IFL	XX,<V1=0>
 15570						IFG	XX,<V1=-1>
 15571						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15572					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15573					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15574					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15575					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15576
 15577		777677	777777		F37070:	AA1=XX				;INITIAL C(AC)
 15578	042543	200 14 0 00 044074 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15579		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15580	042544	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15581		777777	777777			AEE=-1				;INITIAL C(E)
 15582	042545	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15583	042546	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15584			000000			AR1=V1				;EXPECTED RESULT IN AC
 15585	042547	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15586	042550	003 14 0 00 037071 		ER3	AC,37071		;HIGH PRODUCT FAILED
 15587		000100	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15588	042551	312 15 0 00 044220 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15589	042552	004 15 0 00 037072 		ER4	AC+1,37072		;LOW PRODUCT FAILED
 15590		777777	777777			AEE=-1				;INITIAL C(E)
 15591	042553	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15592	042554	005 12 0 00 037073 		ER5	E,37073			;C(E) WAS CLOBBERED
 15593	042555	321 16 0 00 042543 		JUMPL	AC+2,F37070		;LOOP ON ERROR SWITCH^
 15594
 15595			003710			ADR=ADR+1
 15596		777577	777777			XX=XX+XX+1
 15597						IFE	<XX-1>,<XX=-2>
 15598
 15599					;MULTIPLY -1 BY A RIPPLED 0
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0307

 15600		000200	000001			MX=-XX
 15601			000000			IFL	XX,<V1=0>
 15602						IFG	XX,<V1=-1>
 15603						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15604					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15605					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15606					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15607					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15608
 15609		777577	777777		F37100:	AA1=XX				;INITIAL C(AC)
 15610	042556	200 14 0 00 044075 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15611		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15612	042557	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15613		777777	777777			AEE=-1				;INITIAL C(E)
 15614	042560	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15615	042561	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15616			000000			AR1=V1				;EXPECTED RESULT IN AC
 15617	042562	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15618	042563	003 14 0 00 037101 		ER3	AC,37101		;HIGH PRODUCT FAILED
 15619		000200	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15620	042564	312 15 0 00 044221 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15621	042565	004 15 0 00 037102 		ER4	AC+1,37102		;LOW PRODUCT FAILED
 15622		777777	777777			AEE=-1				;INITIAL C(E)
 15623	042566	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15624	042567	005 12 0 00 037103 		ER5	E,37103			;C(E) WAS CLOBBERED
 15625	042570	321 16 0 00 042556 		JUMPL	AC+2,F37100		;LOOP ON ERROR SWITCH^
 15626
 15627			003711			ADR=ADR+1
 15628		777377	777777			XX=XX+XX+1
 15629						IFE	<XX-1>,<XX=-2>
 15630
 15631					;MULTIPLY -1 BY A RIPPLED 0
 15632		000400	000001			MX=-XX
 15633			000000			IFL	XX,<V1=0>
 15634						IFG	XX,<V1=-1>
 15635						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15636					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15637					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15638					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15639					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15640
 15641		777377	777777		F37110:	AA1=XX				;INITIAL C(AC)
 15642	042571	200 14 0 00 044076 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15643		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15644	042572	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15645		777777	777777			AEE=-1				;INITIAL C(E)
 15646	042573	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15647	042574	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15648			000000			AR1=V1				;EXPECTED RESULT IN AC
 15649	042575	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15650	042576	003 14 0 00 037111 		ER3	AC,37111		;HIGH PRODUCT FAILED
 15651		000400	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15652	042577	312 15 0 00 044222 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15653	042600	004 15 0 00 037112 		ER4	AC+1,37112		;LOW PRODUCT FAILED
 15654		777777	777777			AEE=-1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0308

 15655	042601	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15656	042602	005 12 0 00 037113 		ER5	E,37113			;C(E) WAS CLOBBERED
 15657	042603	321 16 0 00 042571 		JUMPL	AC+2,F37110		;LOOP ON ERROR SWITCH^
 15658
 15659			003712			ADR=ADR+1
 15660		776777	777777			XX=XX+XX+1
 15661						IFE	<XX-1>,<XX=-2>
 15662
 15663					;MULTIPLY -1 BY A RIPPLED 0
 15664		001000	000001			MX=-XX
 15665			000000			IFL	XX,<V1=0>
 15666						IFG	XX,<V1=-1>
 15667						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15668					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15669					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15670					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15671					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15672
 15673		776777	777777		F37120:	AA1=XX				;INITIAL C(AC)
 15674	042604	200 14 0 00 044077 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15675		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15676	042605	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15677		777777	777777			AEE=-1				;INITIAL C(E)
 15678	042606	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15679	042607	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15680			000000			AR1=V1				;EXPECTED RESULT IN AC
 15681	042610	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15682	042611	003 14 0 00 037121 		ER3	AC,37121		;HIGH PRODUCT FAILED
 15683		001000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15684	042612	312 15 0 00 044223 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15685	042613	004 15 0 00 037122 		ER4	AC+1,37122		;LOW PRODUCT FAILED
 15686		777777	777777			AEE=-1				;INITIAL C(E)
 15687	042614	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15688	042615	005 12 0 00 037123 		ER5	E,37123			;C(E) WAS CLOBBERED
 15689	042616	321 16 0 00 042604 		JUMPL	AC+2,F37120		;LOOP ON ERROR SWITCH^
 15690
 15691			003713			ADR=ADR+1
 15692		775777	777777			XX=XX+XX+1
 15693						IFE	<XX-1>,<XX=-2>
 15694
 15695					;MULTIPLY -1 BY A RIPPLED 0
 15696		002000	000001			MX=-XX
 15697			000000			IFL	XX,<V1=0>
 15698						IFG	XX,<V1=-1>
 15699						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15700					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15701					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15702					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15703					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15704
 15705		775777	777777		F37130:	AA1=XX				;INITIAL C(AC)
 15706	042617	200 14 0 00 044100 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15707		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15708	042620	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15709		777777	777777			AEE=-1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0309

 15710	042621	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15711	042622	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15712			000000			AR1=V1				;EXPECTED RESULT IN AC
 15713	042623	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15714	042624	003 14 0 00 037131 		ER3	AC,37131		;HIGH PRODUCT FAILED
 15715		002000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15716	042625	312 15 0 00 044224 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15717	042626	004 15 0 00 037132 		ER4	AC+1,37132		;LOW PRODUCT FAILED
 15718		777777	777777			AEE=-1				;INITIAL C(E)
 15719	042627	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15720	042630	005 12 0 00 037133 		ER5	E,37133			;C(E) WAS CLOBBERED
 15721	042631	321 16 0 00 042617 		JUMPL	AC+2,F37130		;LOOP ON ERROR SWITCH^
 15722
 15723			003714			ADR=ADR+1
 15724		773777	777777			XX=XX+XX+1
 15725						IFE	<XX-1>,<XX=-2>
 15726
 15727					;MULTIPLY -1 BY A RIPPLED 0
 15728		004000	000001			MX=-XX
 15729			000000			IFL	XX,<V1=0>
 15730						IFG	XX,<V1=-1>
 15731						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15732					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15733					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15734					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15735					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15736
 15737		773777	777777		F37140:	AA1=XX				;INITIAL C(AC)
 15738	042632	200 14 0 00 044101 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15739		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15740	042633	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15741		777777	777777			AEE=-1				;INITIAL C(E)
 15742	042634	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15743	042635	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15744			000000			AR1=V1				;EXPECTED RESULT IN AC
 15745	042636	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15746	042637	003 14 0 00 037141 		ER3	AC,37141		;HIGH PRODUCT FAILED
 15747		004000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15748	042640	312 15 0 00 044225 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15749	042641	004 15 0 00 037142 		ER4	AC+1,37142		;LOW PRODUCT FAILED
 15750		777777	777777			AEE=-1				;INITIAL C(E)
 15751	042642	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15752	042643	005 12 0 00 037143 		ER5	E,37143			;C(E) WAS CLOBBERED
 15753	042644	321 16 0 00 042632 		JUMPL	AC+2,F37140		;LOOP ON ERROR SWITCH^
 15754
 15755			003715			ADR=ADR+1
 15756		767777	777777			XX=XX+XX+1
 15757						IFE	<XX-1>,<XX=-2>
 15758
 15759					;MULTIPLY -1 BY A RIPPLED 0
 15760		010000	000001			MX=-XX
 15761			000000			IFL	XX,<V1=0>
 15762						IFG	XX,<V1=-1>
 15763						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15764					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0310

 15765					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15766					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15767					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15768
 15769		767777	777777		F37150:	AA1=XX				;INITIAL C(AC)
 15770	042645	200 14 0 00 044102 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15771		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15772	042646	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15773		777777	777777			AEE=-1				;INITIAL C(E)
 15774	042647	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15775	042650	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15776			000000			AR1=V1				;EXPECTED RESULT IN AC
 15777	042651	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15778	042652	003 14 0 00 037151 		ER3	AC,37151		;HIGH PRODUCT FAILED
 15779		010000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15780	042653	312 15 0 00 044226 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15781	042654	004 15 0 00 037152 		ER4	AC+1,37152		;LOW PRODUCT FAILED
 15782		777777	777777			AEE=-1				;INITIAL C(E)
 15783	042655	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15784	042656	005 12 0 00 037153 		ER5	E,37153			;C(E) WAS CLOBBERED
 15785	042657	321 16 0 00 042645 		JUMPL	AC+2,F37150		;LOOP ON ERROR SWITCH^
 15786
 15787			003716			ADR=ADR+1
 15788		757777	777777			XX=XX+XX+1
 15789						IFE	<XX-1>,<XX=-2>
 15790
 15791					;MULTIPLY -1 BY A RIPPLED 0
 15792		020000	000001			MX=-XX
 15793			000000			IFL	XX,<V1=0>
 15794						IFG	XX,<V1=-1>
 15795						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15796					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15797					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15798					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15799					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15800
 15801		757777	777777		F37160:	AA1=XX				;INITIAL C(AC)
 15802	042660	200 14 0 00 044103 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15803		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15804	042661	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15805		777777	777777			AEE=-1				;INITIAL C(E)
 15806	042662	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15807	042663	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15808			000000			AR1=V1				;EXPECTED RESULT IN AC
 15809	042664	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15810	042665	003 14 0 00 037161 		ER3	AC,37161		;HIGH PRODUCT FAILED
 15811		020000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15812	042666	312 15 0 00 044227 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15813	042667	004 15 0 00 037162 		ER4	AC+1,37162		;LOW PRODUCT FAILED
 15814		777777	777777			AEE=-1				;INITIAL C(E)
 15815	042670	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15816	042671	005 12 0 00 037163 		ER5	E,37163			;C(E) WAS CLOBBERED
 15817	042672	321 16 0 00 042660 		JUMPL	AC+2,F37160		;LOOP ON ERROR SWITCH^
 15818
 15819			003717			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0311

 15820		737777	777777			XX=XX+XX+1
 15821						IFE	<XX-1>,<XX=-2>
 15822
 15823					;MULTIPLY -1 BY A RIPPLED 0
 15824		040000	000001			MX=-XX
 15825			000000			IFL	XX,<V1=0>
 15826						IFG	XX,<V1=-1>
 15827						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15828					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15829					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15830					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15831					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15832
 15833		737777	777777		F37170:	AA1=XX				;INITIAL C(AC)
 15834	042673	200 14 0 00 044104 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15835		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15836	042674	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15837		777777	777777			AEE=-1				;INITIAL C(E)
 15838	042675	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15839	042676	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15840			000000			AR1=V1				;EXPECTED RESULT IN AC
 15841	042677	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15842	042700	003 14 0 00 037171 		ER3	AC,37171		;HIGH PRODUCT FAILED
 15843		040000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15844	042701	312 15 0 00 044230 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15845	042702	004 15 0 00 037172 		ER4	AC+1,37172		;LOW PRODUCT FAILED
 15846		777777	777777			AEE=-1				;INITIAL C(E)
 15847	042703	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15848	042704	005 12 0 00 037173 		ER5	E,37173			;C(E) WAS CLOBBERED
 15849	042705	321 16 0 00 042673 		JUMPL	AC+2,F37170		;LOOP ON ERROR SWITCH^
 15850
 15851			003720			ADR=ADR+1
 15852		677777	777777			XX=XX+XX+1
 15853						IFE	<XX-1>,<XX=-2>
 15854
 15855					;MULTIPLY -1 BY A RIPPLED 0
 15856		100000	000001			MX=-XX
 15857			000000			IFL	XX,<V1=0>
 15858						IFG	XX,<V1=-1>
 15859						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15860					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15861					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15862					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15863					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15864
 15865		677777	777777		F37200:	AA1=XX				;INITIAL C(AC)
 15866	042706	200 14 0 00 044105 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15867		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15868	042707	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15869		777777	777777			AEE=-1				;INITIAL C(E)
 15870	042710	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15871	042711	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15872			000000			AR1=V1				;EXPECTED RESULT IN AC
 15873	042712	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15874	042713	003 14 0 00 037201 		ER3	AC,37201		;HIGH PRODUCT FAILED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0312

 15875		100000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15876	042714	312 15 0 00 044231 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15877	042715	004 15 0 00 037202 		ER4	AC+1,37202		;LOW PRODUCT FAILED
 15878		777777	777777			AEE=-1				;INITIAL C(E)
 15879	042716	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15880	042717	005 12 0 00 037203 		ER5	E,37203			;C(E) WAS CLOBBERED
 15881	042720	321 16 0 00 042706 		JUMPL	AC+2,F37200		;LOOP ON ERROR SWITCH^
 15882
 15883			003721			ADR=ADR+1
 15884		577777	777777			XX=XX+XX+1
 15885						IFE	<XX-1>,<XX=-2>
 15886
 15887					;MULTIPLY -1 BY A RIPPLED 0
 15888		200000	000001			MX=-XX
 15889			000000			IFL	XX,<V1=0>
 15890						IFG	XX,<V1=-1>
 15891						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15892					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15893					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15894					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15895					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15896
 15897		577777	777777		F37210:	AA1=XX				;INITIAL C(AC)
 15898	042721	200 14 0 00 044106 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15899		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15900	042722	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15901		777777	777777			AEE=-1				;INITIAL C(E)
 15902	042723	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15903	042724	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15904			000000			AR1=V1				;EXPECTED RESULT IN AC
 15905	042725	312 14 0 00 043776 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15906	042726	003 14 0 00 037211 		ER3	AC,37211		;HIGH PRODUCT FAILED
 15907		200000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15908	042727	312 15 0 00 044232 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15909	042730	004 15 0 00 037212 		ER4	AC+1,37212		;LOW PRODUCT FAILED
 15910		777777	777777			AEE=-1				;INITIAL C(E)
 15911	042731	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15912	042732	005 12 0 00 037213 		ER5	E,37213			;C(E) WAS CLOBBERED
 15913	042733	321 16 0 00 042721 		JUMPL	AC+2,F37210		;LOOP ON ERROR SWITCH^
 15914
 15915			003722			ADR=ADR+1
 15916		377777	777777			XX=XX+XX+1
 15917						IFE	<XX-1>,<XX=-2>
 15918
 15919					;MULTIPLY -1 BY A RIPPLED 0
 15920		400000	000001			MX=-XX
 15921						IFL	XX,<V1=0>
 15922		777777	777777			IFG	XX,<V1=-1>
 15923						MOP1	(\ADR,XX,-1,-1,V1,MX)^
 15924					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
 15925					;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15926					;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY.
 15927					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15928
 15929		377777	777777		F37220:	AA1=XX				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 17-21
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0313

 15930	042734	200 14 0 00 044107 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15931		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15932	042735	200 15 0 00 043777 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15933		777777	777777			AEE=-1				;INITIAL C(E)
 15934	042736	200 12 0 00 043777 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15935	042737	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15936		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 15937	042740	312 14 0 00 043777 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15938	042741	003 14 0 00 037221 		ER3	AC,37221		;HIGH PRODUCT FAILED
 15939		400000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15940	042742	312 15 0 00 044233 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15941	042743	004 15 0 00 037222 		ER4	AC+1,37222		;LOW PRODUCT FAILED
 15942		777777	777777			AEE=-1				;INITIAL C(E)
 15943	042744	312 12 0 00 043777 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15944	042745	005 12 0 00 037223 		ER5	E,37223			;C(E) WAS CLOBBERED
 15945	042746	321 16 0 00 042734 		JUMPL	AC+2,F37220		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0314

 15946		525252	525252			N1=525252525252
 15947		252525	252525			N2=252525252525
 15948			000013			AC=13
 15949			000011			E=<AC-2>&17
 15950						SAVEAC	(1,1)^
 15951	042747	201 15 0 00 042747 		MOVEI	AC+2,.		;SAVE TEST PC
 15952	042750	202 15 0 00 030051 		MOVEM	AC+2,TESTPC
 15953	042751	201 15 0 00 000015 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 15954	042752	202 15 0 00 044447 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
 15955			000044			WW=^D36
 15956			000000			XX=0
 15957			000000			ZZ=0
 15958
 15959						REPEAT	^D36,	<
 15960						ADR=ADR+1
 15961						WW=WW-1
 15962						XX=XX+XX
 15963						ZZ=ZZ+1
 15964						IFE	XX,<ZZ=0>
 15965						IFE	XX,<XX=1>
 15966					
 15967					;MULTIPLY 1010...1010 BY A FLOATING 1
 15968						V1=N1
 15969						V2=<N1_ZZ>!1B0
 15970						IFE	WW,<V2=0>
 15971						IFL	XX,<V3=N2+1>
 15972						IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 15973						MOP1	(\ADR,XX,0,V1,V3,V2)>
 15974
 15975			003723			ADR=ADR+1
 15976			000043			WW=WW-1
 15977			000000			XX=XX+XX
 15978			000001			ZZ=ZZ+1
 15979			000000			IFE	XX,<ZZ=0>
 15980			000001			IFE	XX,<XX=1>
 15981
 15982					;MULTIPLY 1010...1010 BY A FLOATING 1
 15983		525252	525252			V1=N1
 15984		525252	525252			V2=<N1_ZZ>!1B0
 15985						IFE	WW,<V2=0>
 15986						IFL	XX,<V3=N2+1>
 15987		777777	777777			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 15988						MOP1	(\ADR,XX,0,V1,V3,V2)^
 15989					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 15990					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 15991					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 15992					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 15993
 15994			000001		F37230:	AA1=XX				;INITIAL C(AC)
 15995	042753	200 13 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15996			000000			AA2=0				;INITIAL C(AC+1)
 15997	042754	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 15998		525252	525252			AEE=V1				;INITIAL C(E)
 15999	042755	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16000	042756	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-1
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0315

 16001		777777	777777			AR1=V3				;EXPECTED RESULT IN AC
 16002	042757	312 13 0 00 043777 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16003	042760	003 13 0 00 037231 		ER3	AC,37231		;HIGH PRODUCT FAILED
 16004		525252	525252			AR2=V2				;EXPECTED RESULT IN AC+1
 16005	042761	312 14 0 00 044234 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16006	042762	004 14 0 00 037232 		ER4	AC+1,37232		;LOW PRODUCT FAILED
 16007		525252	525252			AEE=V1				;INITIAL C(E)
 16008	042763	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16009	042764	005 11 0 00 037233 		ER5	E,37233			;C(E) WAS CLOBBERED
 16010	042765	321 15 0 00 042753 		JUMPL	AC+2,F37230		;LOOP ON ERROR SWITCH^
 16011
 16012			003724			ADR=ADR+1
 16013			000042			WW=WW-1
 16014			000002			XX=XX+XX
 16015			000001			ZZ=ZZ+1
 16016						IFE	XX,<ZZ=0>
 16017						IFE	XX,<XX=1>
 16018
 16019					;MULTIPLY 1010...1010 BY A FLOATING 1
 16020		525252	525252			V1=N1
 16021		652525	252524			V2=<N1_ZZ>!1B0
 16022						IFE	WW,<V2=0>
 16023						IFL	XX,<V3=N2+1>
 16024		777777	777776			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16025						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16026					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16027					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16028					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16029					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16030
 16031			000002		F37240:	AA1=XX				;INITIAL C(AC)
 16032	042766	200 13 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16033			000000			AA2=0				;INITIAL C(AC+1)
 16034	042767	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16035		525252	525252			AEE=V1				;INITIAL C(E)
 16036	042770	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16037	042771	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16038		777777	777776			AR1=V3				;EXPECTED RESULT IN AC
 16039	042772	312 13 0 00 044044 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16040	042773	003 13 0 00 037241 		ER3	AC,37241		;HIGH PRODUCT FAILED
 16041		652525	252524			AR2=V2				;EXPECTED RESULT IN AC+1
 16042	042774	312 14 0 00 044235 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16043	042775	004 14 0 00 037242 		ER4	AC+1,37242		;LOW PRODUCT FAILED
 16044		525252	525252			AEE=V1				;INITIAL C(E)
 16045	042776	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16046	042777	005 11 0 00 037243 		ER5	E,37243			;C(E) WAS CLOBBERED
 16047	043000	321 15 0 00 042766 		JUMPL	AC+2,F37240		;LOOP ON ERROR SWITCH^
 16048
 16049			003725			ADR=ADR+1
 16050			000041			WW=WW-1
 16051			000004			XX=XX+XX
 16052			000002			ZZ=ZZ+1
 16053						IFE	XX,<ZZ=0>
 16054						IFE	XX,<XX=1>
 16055
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-2
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0316

 16056					;MULTIPLY 1010...1010 BY A FLOATING 1
 16057		525252	525252			V1=N1
 16058		525252	525250			V2=<N1_ZZ>!1B0
 16059						IFE	WW,<V2=0>
 16060						IFL	XX,<V3=N2+1>
 16061		777777	777775			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16062						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16063					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16064					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16065					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16066					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16067
 16068			000004		F37250:	AA1=XX				;INITIAL C(AC)
 16069	043001	200 13 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16070			000000			AA2=0				;INITIAL C(AC+1)
 16071	043002	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16072		525252	525252			AEE=V1				;INITIAL C(E)
 16073	043003	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16074	043004	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16075		777777	777775			AR1=V3				;EXPECTED RESULT IN AC
 16076	043005	312 13 0 00 044045 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16077	043006	003 13 0 00 037251 		ER3	AC,37251		;HIGH PRODUCT FAILED
 16078		525252	525250			AR2=V2				;EXPECTED RESULT IN AC+1
 16079	043007	312 14 0 00 044236 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16080	043010	004 14 0 00 037252 		ER4	AC+1,37252		;LOW PRODUCT FAILED
 16081		525252	525252			AEE=V1				;INITIAL C(E)
 16082	043011	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16083	043012	005 11 0 00 037253 		ER5	E,37253			;C(E) WAS CLOBBERED
 16084	043013	321 15 0 00 043001 		JUMPL	AC+2,F37250		;LOOP ON ERROR SWITCH^
 16085
 16086			003726			ADR=ADR+1
 16087			000040			WW=WW-1
 16088			000010			XX=XX+XX
 16089			000003			ZZ=ZZ+1
 16090						IFE	XX,<ZZ=0>
 16091						IFE	XX,<XX=1>
 16092
 16093					;MULTIPLY 1010...1010 BY A FLOATING 1
 16094		525252	525252			V1=N1
 16095		652525	252520			V2=<N1_ZZ>!1B0
 16096						IFE	WW,<V2=0>
 16097						IFL	XX,<V3=N2+1>
 16098		777777	777772			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16099						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16100					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16101					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16102					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16103					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16104
 16105			000010		F37260:	AA1=XX				;INITIAL C(AC)
 16106	043014	200 13 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16107			000000			AA2=0				;INITIAL C(AC+1)
 16108	043015	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16109		525252	525252			AEE=V1				;INITIAL C(E)
 16110	043016	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-3
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0317

 16111	043017	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16112		777777	777772			AR1=V3				;EXPECTED RESULT IN AC
 16113	043020	312 13 0 00 044124 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16114	043021	003 13 0 00 037261 		ER3	AC,37261		;HIGH PRODUCT FAILED
 16115		652525	252520			AR2=V2				;EXPECTED RESULT IN AC+1
 16116	043022	312 14 0 00 044237 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16117	043023	004 14 0 00 037262 		ER4	AC+1,37262		;LOW PRODUCT FAILED
 16118		525252	525252			AEE=V1				;INITIAL C(E)
 16119	043024	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16120	043025	005 11 0 00 037263 		ER5	E,37263			;C(E) WAS CLOBBERED
 16121	043026	321 15 0 00 043014 		JUMPL	AC+2,F37260		;LOOP ON ERROR SWITCH^
 16122
 16123			003727			ADR=ADR+1
 16124			000037			WW=WW-1
 16125			000020			XX=XX+XX
 16126			000004			ZZ=ZZ+1
 16127						IFE	XX,<ZZ=0>
 16128						IFE	XX,<XX=1>
 16129
 16130					;MULTIPLY 1010...1010 BY A FLOATING 1
 16131		525252	525252			V1=N1
 16132		525252	525240			V2=<N1_ZZ>!1B0
 16133						IFE	WW,<V2=0>
 16134						IFL	XX,<V3=N2+1>
 16135		777777	777765			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16136						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16137					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16138					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16139					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16140					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16141
 16142			000020		F37270:	AA1=XX				;INITIAL C(AC)
 16143	043027	200 13 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16144			000000			AA2=0				;INITIAL C(AC+1)
 16145	043030	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16146		525252	525252			AEE=V1				;INITIAL C(E)
 16147	043031	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16148	043032	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16149		777777	777765			AR1=V3				;EXPECTED RESULT IN AC
 16150	043033	312 13 0 00 044130 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16151	043034	003 13 0 00 037271 		ER3	AC,37271		;HIGH PRODUCT FAILED
 16152		525252	525240			AR2=V2				;EXPECTED RESULT IN AC+1
 16153	043035	312 14 0 00 044240 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16154	043036	004 14 0 00 037272 		ER4	AC+1,37272		;LOW PRODUCT FAILED
 16155		525252	525252			AEE=V1				;INITIAL C(E)
 16156	043037	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16157	043040	005 11 0 00 037273 		ER5	E,37273			;C(E) WAS CLOBBERED
 16158	043041	321 15 0 00 043027 		JUMPL	AC+2,F37270		;LOOP ON ERROR SWITCH^
 16159
 16160			003730			ADR=ADR+1
 16161			000036			WW=WW-1
 16162			000040			XX=XX+XX
 16163			000005			ZZ=ZZ+1
 16164						IFE	XX,<ZZ=0>
 16165						IFE	XX,<XX=1>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-4
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0318

 16166
 16167					;MULTIPLY 1010...1010 BY A FLOATING 1
 16168		525252	525252			V1=N1
 16169		652525	252500			V2=<N1_ZZ>!1B0
 16170						IFE	WW,<V2=0>
 16171						IFL	XX,<V3=N2+1>
 16172		777777	777752			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16173						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16174					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16175					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16176					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16177					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16178
 16179			000040		F37300:	AA1=XX				;INITIAL C(AC)
 16180	043042	200 13 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16181			000000			AA2=0				;INITIAL C(AC+1)
 16182	043043	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16183		525252	525252			AEE=V1				;INITIAL C(E)
 16184	043044	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16185	043045	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16186		777777	777752			AR1=V3				;EXPECTED RESULT IN AC
 16187	043046	312 13 0 00 044241 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16188	043047	003 13 0 00 037301 		ER3	AC,37301		;HIGH PRODUCT FAILED
 16189		652525	252500			AR2=V2				;EXPECTED RESULT IN AC+1
 16190	043050	312 14 0 00 044242 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16191	043051	004 14 0 00 037302 		ER4	AC+1,37302		;LOW PRODUCT FAILED
 16192		525252	525252			AEE=V1				;INITIAL C(E)
 16193	043052	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16194	043053	005 11 0 00 037303 		ER5	E,37303			;C(E) WAS CLOBBERED
 16195	043054	321 15 0 00 043042 		JUMPL	AC+2,F37300		;LOOP ON ERROR SWITCH^
 16196
 16197			003731			ADR=ADR+1
 16198			000035			WW=WW-1
 16199			000100			XX=XX+XX
 16200			000006			ZZ=ZZ+1
 16201						IFE	XX,<ZZ=0>
 16202						IFE	XX,<XX=1>
 16203
 16204					;MULTIPLY 1010...1010 BY A FLOATING 1
 16205		525252	525252			V1=N1
 16206		525252	525200			V2=<N1_ZZ>!1B0
 16207						IFE	WW,<V2=0>
 16208						IFL	XX,<V3=N2+1>
 16209		777777	777725			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16210						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16211					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16212					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16213					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16214					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16215
 16216			000100		F37310:	AA1=XX				;INITIAL C(AC)
 16217	043055	200 13 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16218			000000			AA2=0				;INITIAL C(AC+1)
 16219	043056	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16220		525252	525252			AEE=V1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-5
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0319

 16221	043057	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16222	043060	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16223		777777	777725			AR1=V3				;EXPECTED RESULT IN AC
 16224	043061	312 13 0 00 044243 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16225	043062	003 13 0 00 037311 		ER3	AC,37311		;HIGH PRODUCT FAILED
 16226		525252	525200			AR2=V2				;EXPECTED RESULT IN AC+1
 16227	043063	312 14 0 00 044244 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16228	043064	004 14 0 00 037312 		ER4	AC+1,37312		;LOW PRODUCT FAILED
 16229		525252	525252			AEE=V1				;INITIAL C(E)
 16230	043065	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16231	043066	005 11 0 00 037313 		ER5	E,37313			;C(E) WAS CLOBBERED
 16232	043067	321 15 0 00 043055 		JUMPL	AC+2,F37310		;LOOP ON ERROR SWITCH^
 16233
 16234			003732			ADR=ADR+1
 16235			000034			WW=WW-1
 16236			000200			XX=XX+XX
 16237			000007			ZZ=ZZ+1
 16238						IFE	XX,<ZZ=0>
 16239						IFE	XX,<XX=1>
 16240
 16241					;MULTIPLY 1010...1010 BY A FLOATING 1
 16242		525252	525252			V1=N1
 16243		652525	252400			V2=<N1_ZZ>!1B0
 16244						IFE	WW,<V2=0>
 16245						IFL	XX,<V3=N2+1>
 16246		777777	777652			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16247						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16248					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16249					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16250					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16251					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16252
 16253			000200		F37320:	AA1=XX				;INITIAL C(AC)
 16254	043070	200 13 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16255			000000			AA2=0				;INITIAL C(AC+1)
 16256	043071	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16257		525252	525252			AEE=V1				;INITIAL C(E)
 16258	043072	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16259	043073	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16260		777777	777652			AR1=V3				;EXPECTED RESULT IN AC
 16261	043074	312 13 0 00 044245 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16262	043075	003 13 0 00 037321 		ER3	AC,37321		;HIGH PRODUCT FAILED
 16263		652525	252400			AR2=V2				;EXPECTED RESULT IN AC+1
 16264	043076	312 14 0 00 044246 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16265	043077	004 14 0 00 037322 		ER4	AC+1,37322		;LOW PRODUCT FAILED
 16266		525252	525252			AEE=V1				;INITIAL C(E)
 16267	043100	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16268	043101	005 11 0 00 037323 		ER5	E,37323			;C(E) WAS CLOBBERED
 16269	043102	321 15 0 00 043070 		JUMPL	AC+2,F37320		;LOOP ON ERROR SWITCH^
 16270
 16271			003733			ADR=ADR+1
 16272			000033			WW=WW-1
 16273			000400			XX=XX+XX
 16274			000010			ZZ=ZZ+1
 16275						IFE	XX,<ZZ=0>
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-6
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0320

 16276						IFE	XX,<XX=1>
 16277
 16278					;MULTIPLY 1010...1010 BY A FLOATING 1
 16279		525252	525252			V1=N1
 16280		525252	525000			V2=<N1_ZZ>!1B0
 16281						IFE	WW,<V2=0>
 16282						IFL	XX,<V3=N2+1>
 16283		777777	777525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16284						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16285					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16286					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16287					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16288					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16289
 16290			000400		F37330:	AA1=XX				;INITIAL C(AC)
 16291	043103	200 13 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16292			000000			AA2=0				;INITIAL C(AC+1)
 16293	043104	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16294		525252	525252			AEE=V1				;INITIAL C(E)
 16295	043105	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16296	043106	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16297		777777	777525			AR1=V3				;EXPECTED RESULT IN AC
 16298	043107	312 13 0 00 044247 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16299	043110	003 13 0 00 037331 		ER3	AC,37331		;HIGH PRODUCT FAILED
 16300		525252	525000			AR2=V2				;EXPECTED RESULT IN AC+1
 16301	043111	312 14 0 00 044250 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16302	043112	004 14 0 00 037332 		ER4	AC+1,37332		;LOW PRODUCT FAILED
 16303		525252	525252			AEE=V1				;INITIAL C(E)
 16304	043113	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16305	043114	005 11 0 00 037333 		ER5	E,37333			;C(E) WAS CLOBBERED
 16306	043115	321 15 0 00 043103 		JUMPL	AC+2,F37330		;LOOP ON ERROR SWITCH^
 16307
 16308			003734			ADR=ADR+1
 16309			000032			WW=WW-1
 16310			001000			XX=XX+XX
 16311			000011			ZZ=ZZ+1
 16312						IFE	XX,<ZZ=0>
 16313						IFE	XX,<XX=1>
 16314
 16315					;MULTIPLY 1010...1010 BY A FLOATING 1
 16316		525252	525252			V1=N1
 16317		652525	252000			V2=<N1_ZZ>!1B0
 16318						IFE	WW,<V2=0>
 16319						IFL	XX,<V3=N2+1>
 16320		777777	777252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16321						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16322					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16323					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16324					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16325					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16326
 16327			001000		F37340:	AA1=XX				;INITIAL C(AC)
 16328	043116	200 13 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16329			000000			AA2=0				;INITIAL C(AC+1)
 16330	043117	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-7
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0321

 16331		525252	525252			AEE=V1				;INITIAL C(E)
 16332	043120	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16333	043121	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16334		777777	777252			AR1=V3				;EXPECTED RESULT IN AC
 16335	043122	312 13 0 00 044251 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16336	043123	003 13 0 00 037341 		ER3	AC,37341		;HIGH PRODUCT FAILED
 16337		652525	252000			AR2=V2				;EXPECTED RESULT IN AC+1
 16338	043124	312 14 0 00 044252 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16339	043125	004 14 0 00 037342 		ER4	AC+1,37342		;LOW PRODUCT FAILED
 16340		525252	525252			AEE=V1				;INITIAL C(E)
 16341	043126	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16342	043127	005 11 0 00 037343 		ER5	E,37343			;C(E) WAS CLOBBERED
 16343	043130	321 15 0 00 043116 		JUMPL	AC+2,F37340		;LOOP ON ERROR SWITCH^
 16344
 16345			003735			ADR=ADR+1
 16346			000031			WW=WW-1
 16347			002000			XX=XX+XX
 16348			000012			ZZ=ZZ+1
 16349						IFE	XX,<ZZ=0>
 16350						IFE	XX,<XX=1>
 16351
 16352					;MULTIPLY 1010...1010 BY A FLOATING 1
 16353		525252	525252			V1=N1
 16354		525252	524000			V2=<N1_ZZ>!1B0
 16355						IFE	WW,<V2=0>
 16356						IFL	XX,<V3=N2+1>
 16357		777777	776525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16358						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16359					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16360					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16361					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16362					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16363
 16364			002000		F37350:	AA1=XX				;INITIAL C(AC)
 16365	043131	200 13 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16366			000000			AA2=0				;INITIAL C(AC+1)
 16367	043132	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16368		525252	525252			AEE=V1				;INITIAL C(E)
 16369	043133	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16370	043134	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16371		777777	776525			AR1=V3				;EXPECTED RESULT IN AC
 16372	043135	312 13 0 00 044253 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16373	043136	003 13 0 00 037351 		ER3	AC,37351		;HIGH PRODUCT FAILED
 16374		525252	524000			AR2=V2				;EXPECTED RESULT IN AC+1
 16375	043137	312 14 0 00 044254 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16376	043140	004 14 0 00 037352 		ER4	AC+1,37352		;LOW PRODUCT FAILED
 16377		525252	525252			AEE=V1				;INITIAL C(E)
 16378	043141	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16379	043142	005 11 0 00 037353 		ER5	E,37353			;C(E) WAS CLOBBERED
 16380	043143	321 15 0 00 043131 		JUMPL	AC+2,F37350		;LOOP ON ERROR SWITCH^
 16381
 16382			003736			ADR=ADR+1
 16383			000030			WW=WW-1
 16384			004000			XX=XX+XX
 16385			000013			ZZ=ZZ+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-8
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0322

 16386						IFE	XX,<ZZ=0>
 16387						IFE	XX,<XX=1>
 16388
 16389					;MULTIPLY 1010...1010 BY A FLOATING 1
 16390		525252	525252			V1=N1
 16391		652525	250000			V2=<N1_ZZ>!1B0
 16392						IFE	WW,<V2=0>
 16393						IFL	XX,<V3=N2+1>
 16394		777777	775252			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			004000		F37360:	AA1=XX				;INITIAL C(AC)
 16402	043144	200 13 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16403			000000			AA2=0				;INITIAL C(AC+1)
 16404	043145	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16405		525252	525252			AEE=V1				;INITIAL C(E)
 16406	043146	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16407	043147	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16408		777777	775252			AR1=V3				;EXPECTED RESULT IN AC
 16409	043150	312 13 0 00 044255 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16410	043151	003 13 0 00 037361 		ER3	AC,37361		;HIGH PRODUCT FAILED
 16411		652525	250000			AR2=V2				;EXPECTED RESULT IN AC+1
 16412	043152	312 14 0 00 044256 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16413	043153	004 14 0 00 037362 		ER4	AC+1,37362		;LOW PRODUCT FAILED
 16414		525252	525252			AEE=V1				;INITIAL C(E)
 16415	043154	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16416	043155	005 11 0 00 037363 		ER5	E,37363			;C(E) WAS CLOBBERED
 16417	043156	321 15 0 00 043144 		JUMPL	AC+2,F37360		;LOOP ON ERROR SWITCH^
 16418
 16419			003737			ADR=ADR+1
 16420			000027			WW=WW-1
 16421			010000			XX=XX+XX
 16422			000014			ZZ=ZZ+1
 16423						IFE	XX,<ZZ=0>
 16424						IFE	XX,<XX=1>
 16425
 16426					;MULTIPLY 1010...1010 BY A FLOATING 1
 16427		525252	525252			V1=N1
 16428		525252	520000			V2=<N1_ZZ>!1B0
 16429						IFE	WW,<V2=0>
 16430						IFL	XX,<V3=N2+1>
 16431		777777	772525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16432						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16433					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16434					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16435					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16436					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16437
 16438			010000		F37370:	AA1=XX				;INITIAL C(AC)
 16439	043157	200 13 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16440			000000			AA2=0				;INITIAL C(AC+1)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-9
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0323

 16441	043160	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16442		525252	525252			AEE=V1				;INITIAL C(E)
 16443	043161	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16444	043162	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16445		777777	772525			AR1=V3				;EXPECTED RESULT IN AC
 16446	043163	312 13 0 00 044257 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16447	043164	003 13 0 00 037371 		ER3	AC,37371		;HIGH PRODUCT FAILED
 16448		525252	520000			AR2=V2				;EXPECTED RESULT IN AC+1
 16449	043165	312 14 0 00 044260 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16450	043166	004 14 0 00 037372 		ER4	AC+1,37372		;LOW PRODUCT FAILED
 16451		525252	525252			AEE=V1				;INITIAL C(E)
 16452	043167	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16453	043170	005 11 0 00 037373 		ER5	E,37373			;C(E) WAS CLOBBERED
 16454	043171	321 15 0 00 043157 		JUMPL	AC+2,F37370		;LOOP ON ERROR SWITCH^
 16455
 16456			003740			ADR=ADR+1
 16457			000026			WW=WW-1
 16458			020000			XX=XX+XX
 16459			000015			ZZ=ZZ+1
 16460						IFE	XX,<ZZ=0>
 16461						IFE	XX,<XX=1>
 16462
 16463					;MULTIPLY 1010...1010 BY A FLOATING 1
 16464		525252	525252			V1=N1
 16465		652525	240000			V2=<N1_ZZ>!1B0
 16466						IFE	WW,<V2=0>
 16467						IFL	XX,<V3=N2+1>
 16468		777777	765252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16469						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16470					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16471					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16472					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16473					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16474
 16475			020000		F37400:	AA1=XX				;INITIAL C(AC)
 16476	043172	200 13 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16477			000000			AA2=0				;INITIAL C(AC+1)
 16478	043173	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16479		525252	525252			AEE=V1				;INITIAL C(E)
 16480	043174	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16481	043175	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16482		777777	765252			AR1=V3				;EXPECTED RESULT IN AC
 16483	043176	312 13 0 00 044261 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16484	043177	003 13 0 00 037401 		ER3	AC,37401		;HIGH PRODUCT FAILED
 16485		652525	240000			AR2=V2				;EXPECTED RESULT IN AC+1
 16486	043200	312 14 0 00 044262 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16487	043201	004 14 0 00 037402 		ER4	AC+1,37402		;LOW PRODUCT FAILED
 16488		525252	525252			AEE=V1				;INITIAL C(E)
 16489	043202	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16490	043203	005 11 0 00 037403 		ER5	E,37403			;C(E) WAS CLOBBERED
 16491	043204	321 15 0 00 043172 		JUMPL	AC+2,F37400		;LOOP ON ERROR SWITCH^
 16492
 16493			003741			ADR=ADR+1
 16494			000025			WW=WW-1
 16495			040000			XX=XX+XX
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-10
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0324

 16496			000016			ZZ=ZZ+1
 16497						IFE	XX,<ZZ=0>
 16498						IFE	XX,<XX=1>
 16499
 16500					;MULTIPLY 1010...1010 BY A FLOATING 1
 16501		525252	525252			V1=N1
 16502		525252	500000			V2=<N1_ZZ>!1B0
 16503						IFE	WW,<V2=0>
 16504						IFL	XX,<V3=N2+1>
 16505		777777	752525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16506						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16507					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16508					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16509					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16510					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16511
 16512			040000		F37410:	AA1=XX				;INITIAL C(AC)
 16513	043205	200 13 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16514			000000			AA2=0				;INITIAL C(AC+1)
 16515	043206	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16516		525252	525252			AEE=V1				;INITIAL C(E)
 16517	043207	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16518	043210	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16519		777777	752525			AR1=V3				;EXPECTED RESULT IN AC
 16520	043211	312 13 0 00 044263 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16521	043212	003 13 0 00 037411 		ER3	AC,37411		;HIGH PRODUCT FAILED
 16522		525252	500000			AR2=V2				;EXPECTED RESULT IN AC+1
 16523	043213	312 14 0 00 044264 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16524	043214	004 14 0 00 037412 		ER4	AC+1,37412		;LOW PRODUCT FAILED
 16525		525252	525252			AEE=V1				;INITIAL C(E)
 16526	043215	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16527	043216	005 11 0 00 037413 		ER5	E,37413			;C(E) WAS CLOBBERED
 16528	043217	321 15 0 00 043205 		JUMPL	AC+2,F37410		;LOOP ON ERROR SWITCH^
 16529
 16530			003742			ADR=ADR+1
 16531			000024			WW=WW-1
 16532			100000			XX=XX+XX
 16533			000017			ZZ=ZZ+1
 16534						IFE	XX,<ZZ=0>
 16535						IFE	XX,<XX=1>
 16536
 16537					;MULTIPLY 1010...1010 BY A FLOATING 1
 16538		525252	525252			V1=N1
 16539		652525	200000			V2=<N1_ZZ>!1B0
 16540						IFE	WW,<V2=0>
 16541						IFL	XX,<V3=N2+1>
 16542		777777	725252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16543						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16544					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16545					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16546					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16547					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16548
 16549			100000		F37420:	AA1=XX				;INITIAL C(AC)
 16550	043220	200 13 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-11
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0325

 16551			000000			AA2=0				;INITIAL C(AC+1)
 16552	043221	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16553		525252	525252			AEE=V1				;INITIAL C(E)
 16554	043222	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16555	043223	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16556		777777	725252			AR1=V3				;EXPECTED RESULT IN AC
 16557	043224	312 13 0 00 044265 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16558	043225	003 13 0 00 037421 		ER3	AC,37421		;HIGH PRODUCT FAILED
 16559		652525	200000			AR2=V2				;EXPECTED RESULT IN AC+1
 16560	043226	312 14 0 00 044266 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16561	043227	004 14 0 00 037422 		ER4	AC+1,37422		;LOW PRODUCT FAILED
 16562		525252	525252			AEE=V1				;INITIAL C(E)
 16563	043230	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16564	043231	005 11 0 00 037423 		ER5	E,37423			;C(E) WAS CLOBBERED
 16565	043232	321 15 0 00 043220 		JUMPL	AC+2,F37420		;LOOP ON ERROR SWITCH^
 16566
 16567			003743			ADR=ADR+1
 16568			000023			WW=WW-1
 16569			200000			XX=XX+XX
 16570			000020			ZZ=ZZ+1
 16571						IFE	XX,<ZZ=0>
 16572						IFE	XX,<XX=1>
 16573
 16574					;MULTIPLY 1010...1010 BY A FLOATING 1
 16575		525252	525252			V1=N1
 16576		525252	400000			V2=<N1_ZZ>!1B0
 16577						IFE	WW,<V2=0>
 16578						IFL	XX,<V3=N2+1>
 16579		777777	652525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16580						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16581					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16582					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16583					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16584					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16585
 16586			200000		F37430:	AA1=XX				;INITIAL C(AC)
 16587	043233	200 13 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16588			000000			AA2=0				;INITIAL C(AC+1)
 16589	043234	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16590		525252	525252			AEE=V1				;INITIAL C(E)
 16591	043235	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16592	043236	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16593		777777	652525			AR1=V3				;EXPECTED RESULT IN AC
 16594	043237	312 13 0 00 044267 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16595	043240	003 13 0 00 037431 		ER3	AC,37431		;HIGH PRODUCT FAILED
 16596		525252	400000			AR2=V2				;EXPECTED RESULT IN AC+1
 16597	043241	312 14 0 00 044270 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16598	043242	004 14 0 00 037432 		ER4	AC+1,37432		;LOW PRODUCT FAILED
 16599		525252	525252			AEE=V1				;INITIAL C(E)
 16600	043243	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16601	043244	005 11 0 00 037433 		ER5	E,37433			;C(E) WAS CLOBBERED
 16602	043245	321 15 0 00 043233 		JUMPL	AC+2,F37430		;LOOP ON ERROR SWITCH^
 16603
 16604			003744			ADR=ADR+1
 16605			000022			WW=WW-1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-12
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0326

 16606			400000			XX=XX+XX
 16607			000021			ZZ=ZZ+1
 16608						IFE	XX,<ZZ=0>
 16609						IFE	XX,<XX=1>
 16610
 16611					;MULTIPLY 1010...1010 BY A FLOATING 1
 16612		525252	525252			V1=N1
 16613		652525	000000			V2=<N1_ZZ>!1B0
 16614						IFE	WW,<V2=0>
 16615						IFL	XX,<V3=N2+1>
 16616		777777	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16617						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16618					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16619					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16620					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16621					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16622
 16623			400000		F37440:	AA1=XX				;INITIAL C(AC)
 16624	043246	200 13 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16625			000000			AA2=0				;INITIAL C(AC+1)
 16626	043247	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16627		525252	525252			AEE=V1				;INITIAL C(E)
 16628	043250	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16629	043251	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16630		777777	525252			AR1=V3				;EXPECTED RESULT IN AC
 16631	043252	312 13 0 00 044271 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16632	043253	003 13 0 00 037441 		ER3	AC,37441		;HIGH PRODUCT FAILED
 16633		652525	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16634	043254	312 14 0 00 044272 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16635	043255	004 14 0 00 037442 		ER4	AC+1,37442		;LOW PRODUCT FAILED
 16636		525252	525252			AEE=V1				;INITIAL C(E)
 16637	043256	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16638	043257	005 11 0 00 037443 		ER5	E,37443			;C(E) WAS CLOBBERED
 16639	043260	321 15 0 00 043246 		JUMPL	AC+2,F37440		;LOOP ON ERROR SWITCH^
 16640
 16641			003745			ADR=ADR+1
 16642			000021			WW=WW-1
 16643		000001	000000			XX=XX+XX
 16644			000022			ZZ=ZZ+1
 16645						IFE	XX,<ZZ=0>
 16646						IFE	XX,<XX=1>
 16647
 16648					;MULTIPLY 1010...1010 BY A FLOATING 1
 16649		525252	525252			V1=N1
 16650		525252	000000			V2=<N1_ZZ>!1B0
 16651						IFE	WW,<V2=0>
 16652						IFL	XX,<V3=N2+1>
 16653		777777	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16654						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16655					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16656					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16657					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16658					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16659
 16660		000001	000000		F37450:	AA1=XX				;INITIAL C(AC)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-13
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0327

 16661	043261	200 13 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16662			000000			AA2=0				;INITIAL C(AC+1)
 16663	043262	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16664		525252	525252			AEE=V1				;INITIAL C(E)
 16665	043263	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16666	043264	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16667		777777	252525			AR1=V3				;EXPECTED RESULT IN AC
 16668	043265	312 13 0 00 044273 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16669	043266	003 13 0 00 037451 		ER3	AC,37451		;HIGH PRODUCT FAILED
 16670		525252	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16671	043267	312 14 0 00 044274 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16672	043270	004 14 0 00 037452 		ER4	AC+1,37452		;LOW PRODUCT FAILED
 16673		525252	525252			AEE=V1				;INITIAL C(E)
 16674	043271	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16675	043272	005 11 0 00 037453 		ER5	E,37453			;C(E) WAS CLOBBERED
 16676	043273	321 15 0 00 043261 		JUMPL	AC+2,F37450		;LOOP ON ERROR SWITCH^
 16677
 16678			003746			ADR=ADR+1
 16679			000020			WW=WW-1
 16680		000002	000000			XX=XX+XX
 16681			000023			ZZ=ZZ+1
 16682						IFE	XX,<ZZ=0>
 16683						IFE	XX,<XX=1>
 16684
 16685					;MULTIPLY 1010...1010 BY A FLOATING 1
 16686		525252	525252			V1=N1
 16687		652524	000000			V2=<N1_ZZ>!1B0
 16688						IFE	WW,<V2=0>
 16689						IFL	XX,<V3=N2+1>
 16690		777776	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16691						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16692					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16693					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16694					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16695					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16696
 16697		000002	000000		F37460:	AA1=XX				;INITIAL C(AC)
 16698	043274	200 13 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16699			000000			AA2=0				;INITIAL C(AC+1)
 16700	043275	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16701		525252	525252			AEE=V1				;INITIAL C(E)
 16702	043276	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16703	043277	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16704		777776	525252			AR1=V3				;EXPECTED RESULT IN AC
 16705	043300	312 13 0 00 044275 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16706	043301	003 13 0 00 037461 		ER3	AC,37461		;HIGH PRODUCT FAILED
 16707		652524	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16708	043302	312 14 0 00 044276 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16709	043303	004 14 0 00 037462 		ER4	AC+1,37462		;LOW PRODUCT FAILED
 16710		525252	525252			AEE=V1				;INITIAL C(E)
 16711	043304	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16712	043305	005 11 0 00 037463 		ER5	E,37463			;C(E) WAS CLOBBERED
 16713	043306	321 15 0 00 043274 		JUMPL	AC+2,F37460		;LOOP ON ERROR SWITCH^
 16714
 16715			003747			ADR=ADR+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-14
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0328

 16716			000017			WW=WW-1
 16717		000004	000000			XX=XX+XX
 16718			000024			ZZ=ZZ+1
 16719						IFE	XX,<ZZ=0>
 16720						IFE	XX,<XX=1>
 16721
 16722					;MULTIPLY 1010...1010 BY A FLOATING 1
 16723		525252	525252			V1=N1
 16724		525250	000000			V2=<N1_ZZ>!1B0
 16725						IFE	WW,<V2=0>
 16726						IFL	XX,<V3=N2+1>
 16727		777775	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16728						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16729					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16730					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16731					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16732					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16733
 16734		000004	000000		F37470:	AA1=XX				;INITIAL C(AC)
 16735	043307	200 13 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16736			000000			AA2=0				;INITIAL C(AC+1)
 16737	043310	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16738		525252	525252			AEE=V1				;INITIAL C(E)
 16739	043311	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16740	043312	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16741		777775	252525			AR1=V3				;EXPECTED RESULT IN AC
 16742	043313	312 13 0 00 044277 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16743	043314	003 13 0 00 037471 		ER3	AC,37471		;HIGH PRODUCT FAILED
 16744		525250	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16745	043315	312 14 0 00 044300 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16746	043316	004 14 0 00 037472 		ER4	AC+1,37472		;LOW PRODUCT FAILED
 16747		525252	525252			AEE=V1				;INITIAL C(E)
 16748	043317	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16749	043320	005 11 0 00 037473 		ER5	E,37473			;C(E) WAS CLOBBERED
 16750	043321	321 15 0 00 043307 		JUMPL	AC+2,F37470		;LOOP ON ERROR SWITCH^
 16751
 16752			003750			ADR=ADR+1
 16753			000016			WW=WW-1
 16754		000010	000000			XX=XX+XX
 16755			000025			ZZ=ZZ+1
 16756						IFE	XX,<ZZ=0>
 16757						IFE	XX,<XX=1>
 16758
 16759					;MULTIPLY 1010...1010 BY A FLOATING 1
 16760		525252	525252			V1=N1
 16761		652520	000000			V2=<N1_ZZ>!1B0
 16762						IFE	WW,<V2=0>
 16763						IFL	XX,<V3=N2+1>
 16764		777772	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16765						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16766					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16767					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16768					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16769					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16770
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-15
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0329

 16771		000010	000000		F37500:	AA1=XX				;INITIAL C(AC)
 16772	043322	200 13 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16773			000000			AA2=0				;INITIAL C(AC+1)
 16774	043323	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16775		525252	525252			AEE=V1				;INITIAL C(E)
 16776	043324	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16777	043325	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16778		777772	525252			AR1=V3				;EXPECTED RESULT IN AC
 16779	043326	312 13 0 00 044301 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16780	043327	003 13 0 00 037501 		ER3	AC,37501		;HIGH PRODUCT FAILED
 16781		652520	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16782	043330	312 14 0 00 044302 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16783	043331	004 14 0 00 037502 		ER4	AC+1,37502		;LOW PRODUCT FAILED
 16784		525252	525252			AEE=V1				;INITIAL C(E)
 16785	043332	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16786	043333	005 11 0 00 037503 		ER5	E,37503			;C(E) WAS CLOBBERED
 16787	043334	321 15 0 00 043322 		JUMPL	AC+2,F37500		;LOOP ON ERROR SWITCH^
 16788
 16789			003751			ADR=ADR+1
 16790			000015			WW=WW-1
 16791		000020	000000			XX=XX+XX
 16792			000026			ZZ=ZZ+1
 16793						IFE	XX,<ZZ=0>
 16794						IFE	XX,<XX=1>
 16795
 16796					;MULTIPLY 1010...1010 BY A FLOATING 1
 16797		525252	525252			V1=N1
 16798		525240	000000			V2=<N1_ZZ>!1B0
 16799						IFE	WW,<V2=0>
 16800						IFL	XX,<V3=N2+1>
 16801		777765	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16802						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16803					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16804					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16805					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16806					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16807
 16808		000020	000000		F37510:	AA1=XX				;INITIAL C(AC)
 16809	043335	200 13 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16810			000000			AA2=0				;INITIAL C(AC+1)
 16811	043336	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16812		525252	525252			AEE=V1				;INITIAL C(E)
 16813	043337	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16814	043340	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16815		777765	252525			AR1=V3				;EXPECTED RESULT IN AC
 16816	043341	312 13 0 00 044303 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16817	043342	003 13 0 00 037511 		ER3	AC,37511		;HIGH PRODUCT FAILED
 16818		525240	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16819	043343	312 14 0 00 044304 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16820	043344	004 14 0 00 037512 		ER4	AC+1,37512		;LOW PRODUCT FAILED
 16821		525252	525252			AEE=V1				;INITIAL C(E)
 16822	043345	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16823	043346	005 11 0 00 037513 		ER5	E,37513			;C(E) WAS CLOBBERED
 16824	043347	321 15 0 00 043335 		JUMPL	AC+2,F37510		;LOOP ON ERROR SWITCH^
 16825
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-16
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0330

 16826			003752			ADR=ADR+1
 16827			000014			WW=WW-1
 16828		000040	000000			XX=XX+XX
 16829			000027			ZZ=ZZ+1
 16830						IFE	XX,<ZZ=0>
 16831						IFE	XX,<XX=1>
 16832
 16833					;MULTIPLY 1010...1010 BY A FLOATING 1
 16834		525252	525252			V1=N1
 16835		652500	000000			V2=<N1_ZZ>!1B0
 16836						IFE	WW,<V2=0>
 16837						IFL	XX,<V3=N2+1>
 16838		777752	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16839						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16840					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16841					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16842					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16843					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16844
 16845		000040	000000		F37520:	AA1=XX				;INITIAL C(AC)
 16846	043350	200 13 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16847			000000			AA2=0				;INITIAL C(AC+1)
 16848	043351	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16849		525252	525252			AEE=V1				;INITIAL C(E)
 16850	043352	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16851	043353	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16852		777752	525252			AR1=V3				;EXPECTED RESULT IN AC
 16853	043354	312 13 0 00 044305 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16854	043355	003 13 0 00 037521 		ER3	AC,37521		;HIGH PRODUCT FAILED
 16855		652500	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16856	043356	312 14 0 00 044306 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16857	043357	004 14 0 00 037522 		ER4	AC+1,37522		;LOW PRODUCT FAILED
 16858		525252	525252			AEE=V1				;INITIAL C(E)
 16859	043360	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16860	043361	005 11 0 00 037523 		ER5	E,37523			;C(E) WAS CLOBBERED
 16861	043362	321 15 0 00 043350 		JUMPL	AC+2,F37520		;LOOP ON ERROR SWITCH^
 16862
 16863			003753			ADR=ADR+1
 16864			000013			WW=WW-1
 16865		000100	000000			XX=XX+XX
 16866			000030			ZZ=ZZ+1
 16867						IFE	XX,<ZZ=0>
 16868						IFE	XX,<XX=1>
 16869
 16870					;MULTIPLY 1010...1010 BY A FLOATING 1
 16871		525252	525252			V1=N1
 16872		525200	000000			V2=<N1_ZZ>!1B0
 16873						IFE	WW,<V2=0>
 16874						IFL	XX,<V3=N2+1>
 16875		777725	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16876						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16877					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16878					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16879					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16880					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-17
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0331

 16881
 16882		000100	000000		F37530:	AA1=XX				;INITIAL C(AC)
 16883	043363	200 13 0 00 044030 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16884			000000			AA2=0				;INITIAL C(AC+1)
 16885	043364	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16886		525252	525252			AEE=V1				;INITIAL C(E)
 16887	043365	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16888	043366	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16889		777725	252525			AR1=V3				;EXPECTED RESULT IN AC
 16890	043367	312 13 0 00 044307 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16891	043370	003 13 0 00 037531 		ER3	AC,37531		;HIGH PRODUCT FAILED
 16892		525200	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16893	043371	312 14 0 00 044310 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16894	043372	004 14 0 00 037532 		ER4	AC+1,37532		;LOW PRODUCT FAILED
 16895		525252	525252			AEE=V1				;INITIAL C(E)
 16896	043373	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16897	043374	005 11 0 00 037533 		ER5	E,37533			;C(E) WAS CLOBBERED
 16898	043375	321 15 0 00 043363 		JUMPL	AC+2,F37530		;LOOP ON ERROR SWITCH^
 16899
 16900			003754			ADR=ADR+1
 16901			000012			WW=WW-1
 16902		000200	000000			XX=XX+XX
 16903			000031			ZZ=ZZ+1
 16904						IFE	XX,<ZZ=0>
 16905						IFE	XX,<XX=1>
 16906
 16907					;MULTIPLY 1010...1010 BY A FLOATING 1
 16908		525252	525252			V1=N1
 16909		652400	000000			V2=<N1_ZZ>!1B0
 16910						IFE	WW,<V2=0>
 16911						IFL	XX,<V3=N2+1>
 16912		777652	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16913						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16914					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16915					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16916					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16917					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16918
 16919		000200	000000		F37540:	AA1=XX				;INITIAL C(AC)
 16920	043376	200 13 0 00 044031 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16921			000000			AA2=0				;INITIAL C(AC+1)
 16922	043377	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16923		525252	525252			AEE=V1				;INITIAL C(E)
 16924	043400	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16925	043401	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16926		777652	525252			AR1=V3				;EXPECTED RESULT IN AC
 16927	043402	312 13 0 00 044311 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16928	043403	003 13 0 00 037541 		ER3	AC,37541		;HIGH PRODUCT FAILED
 16929		652400	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16930	043404	312 14 0 00 044312 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16931	043405	004 14 0 00 037542 		ER4	AC+1,37542		;LOW PRODUCT FAILED
 16932		525252	525252			AEE=V1				;INITIAL C(E)
 16933	043406	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16934	043407	005 11 0 00 037543 		ER5	E,37543			;C(E) WAS CLOBBERED
 16935	043410	321 15 0 00 043376 		JUMPL	AC+2,F37540		;LOOP ON ERROR SWITCH^
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-18
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0332

 16936
 16937			003755			ADR=ADR+1
 16938			000011			WW=WW-1
 16939		000400	000000			XX=XX+XX
 16940			000032			ZZ=ZZ+1
 16941						IFE	XX,<ZZ=0>
 16942						IFE	XX,<XX=1>
 16943
 16944					;MULTIPLY 1010...1010 BY A FLOATING 1
 16945		525252	525252			V1=N1
 16946		525000	000000			V2=<N1_ZZ>!1B0
 16947						IFE	WW,<V2=0>
 16948						IFL	XX,<V3=N2+1>
 16949		777525	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16950						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16951					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16952					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16953					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 16954					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16955
 16956		000400	000000		F37550:	AA1=XX				;INITIAL C(AC)
 16957	043411	200 13 0 00 044032 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16958			000000			AA2=0				;INITIAL C(AC+1)
 16959	043412	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16960		525252	525252			AEE=V1				;INITIAL C(E)
 16961	043413	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16962	043414	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16963		777525	252525			AR1=V3				;EXPECTED RESULT IN AC
 16964	043415	312 13 0 00 044313 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16965	043416	003 13 0 00 037551 		ER3	AC,37551		;HIGH PRODUCT FAILED
 16966		525000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16967	043417	312 14 0 00 044314 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16968	043420	004 14 0 00 037552 		ER4	AC+1,37552		;LOW PRODUCT FAILED
 16969		525252	525252			AEE=V1				;INITIAL C(E)
 16970	043421	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16971	043422	005 11 0 00 037553 		ER5	E,37553			;C(E) WAS CLOBBERED
 16972	043423	321 15 0 00 043411 		JUMPL	AC+2,F37550		;LOOP ON ERROR SWITCH^
 16973
 16974			003756			ADR=ADR+1
 16975			000010			WW=WW-1
 16976		001000	000000			XX=XX+XX
 16977			000033			ZZ=ZZ+1
 16978						IFE	XX,<ZZ=0>
 16979						IFE	XX,<XX=1>
 16980
 16981					;MULTIPLY 1010...1010 BY A FLOATING 1
 16982		525252	525252			V1=N1
 16983		652000	000000			V2=<N1_ZZ>!1B0
 16984						IFE	WW,<V2=0>
 16985						IFL	XX,<V3=N2+1>
 16986		777252	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 16987						MOP1	(\ADR,XX,0,V1,V3,V2)^
 16988					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 16989					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 16990					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-19
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0333

 16991					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16992
 16993		001000	000000		F37560:	AA1=XX				;INITIAL C(AC)
 16994	043424	200 13 0 00 044033 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16995			000000			AA2=0				;INITIAL C(AC+1)
 16996	043425	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16997		525252	525252			AEE=V1				;INITIAL C(E)
 16998	043426	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16999	043427	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17000		777252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17001	043430	312 13 0 00 044315 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17002	043431	003 13 0 00 037561 		ER3	AC,37561		;HIGH PRODUCT FAILED
 17003		652000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17004	043432	312 14 0 00 044316 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17005	043433	004 14 0 00 037562 		ER4	AC+1,37562		;LOW PRODUCT FAILED
 17006		525252	525252			AEE=V1				;INITIAL C(E)
 17007	043434	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17008	043435	005 11 0 00 037563 		ER5	E,37563			;C(E) WAS CLOBBERED
 17009	043436	321 15 0 00 043424 		JUMPL	AC+2,F37560		;LOOP ON ERROR SWITCH^
 17010
 17011			003757			ADR=ADR+1
 17012			000007			WW=WW-1
 17013		002000	000000			XX=XX+XX
 17014			000034			ZZ=ZZ+1
 17015						IFE	XX,<ZZ=0>
 17016						IFE	XX,<XX=1>
 17017
 17018					;MULTIPLY 1010...1010 BY A FLOATING 1
 17019		525252	525252			V1=N1
 17020		524000	000000			V2=<N1_ZZ>!1B0
 17021						IFE	WW,<V2=0>
 17022						IFL	XX,<V3=N2+1>
 17023		776525	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17024						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17025					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 17026					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 17027					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17028					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17029
 17030		002000	000000		F37570:	AA1=XX				;INITIAL C(AC)
 17031	043437	200 13 0 00 044034 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17032			000000			AA2=0				;INITIAL C(AC+1)
 17033	043440	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17034		525252	525252			AEE=V1				;INITIAL C(E)
 17035	043441	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17036	043442	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17037		776525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17038	043443	312 13 0 00 044317 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17039	043444	003 13 0 00 037571 		ER3	AC,37571		;HIGH PRODUCT FAILED
 17040		524000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17041	043445	312 14 0 00 044320 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17042	043446	004 14 0 00 037572 		ER4	AC+1,37572		;LOW PRODUCT FAILED
 17043		525252	525252			AEE=V1				;INITIAL C(E)
 17044	043447	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17045	043450	005 11 0 00 037573 		ER5	E,37573			;C(E) WAS CLOBBERED
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-20
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0334

 17046	043451	321 15 0 00 043437 		JUMPL	AC+2,F37570		;LOOP ON ERROR SWITCH^
 17047
 17048			003760			ADR=ADR+1
 17049			000006			WW=WW-1
 17050		004000	000000			XX=XX+XX
 17051			000035			ZZ=ZZ+1
 17052						IFE	XX,<ZZ=0>
 17053						IFE	XX,<XX=1>
 17054
 17055					;MULTIPLY 1010...1010 BY A FLOATING 1
 17056		525252	525252			V1=N1
 17057		650000	000000			V2=<N1_ZZ>!1B0
 17058						IFE	WW,<V2=0>
 17059						IFL	XX,<V3=N2+1>
 17060		775252	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17061						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17062					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 17063					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 17064					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17065					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17066
 17067		004000	000000		F37600:	AA1=XX				;INITIAL C(AC)
 17068	043452	200 13 0 00 044035 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17069			000000			AA2=0				;INITIAL C(AC+1)
 17070	043453	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17071		525252	525252			AEE=V1				;INITIAL C(E)
 17072	043454	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17073	043455	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17074		775252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17075	043456	312 13 0 00 044321 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17076	043457	003 13 0 00 037601 		ER3	AC,37601		;HIGH PRODUCT FAILED
 17077		650000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17078	043460	312 14 0 00 044322 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17079	043461	004 14 0 00 037602 		ER4	AC+1,37602		;LOW PRODUCT FAILED
 17080		525252	525252			AEE=V1				;INITIAL C(E)
 17081	043462	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17082	043463	005 11 0 00 037603 		ER5	E,37603			;C(E) WAS CLOBBERED
 17083	043464	321 15 0 00 043452 		JUMPL	AC+2,F37600		;LOOP ON ERROR SWITCH^
 17084
 17085			003761			ADR=ADR+1
 17086			000005			WW=WW-1
 17087		010000	000000			XX=XX+XX
 17088			000036			ZZ=ZZ+1
 17089						IFE	XX,<ZZ=0>
 17090						IFE	XX,<XX=1>
 17091
 17092					;MULTIPLY 1010...1010 BY A FLOATING 1
 17093		525252	525252			V1=N1
 17094		520000	000000			V2=<N1_ZZ>!1B0
 17095						IFE	WW,<V2=0>
 17096						IFL	XX,<V3=N2+1>
 17097		772525	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17098						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17099					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 17100					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-21
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0335

 17101					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17102					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17103
 17104		010000	000000		F37610:	AA1=XX				;INITIAL C(AC)
 17105	043465	200 13 0 00 044036 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17106			000000			AA2=0				;INITIAL C(AC+1)
 17107	043466	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17108		525252	525252			AEE=V1				;INITIAL C(E)
 17109	043467	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17110	043470	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17111		772525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17112	043471	312 13 0 00 044323 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17113	043472	003 13 0 00 037611 		ER3	AC,37611		;HIGH PRODUCT FAILED
 17114		520000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17115	043473	312 14 0 00 044324 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17116	043474	004 14 0 00 037612 		ER4	AC+1,37612		;LOW PRODUCT FAILED
 17117		525252	525252			AEE=V1				;INITIAL C(E)
 17118	043475	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17119	043476	005 11 0 00 037613 		ER5	E,37613			;C(E) WAS CLOBBERED
 17120	043477	321 15 0 00 043465 		JUMPL	AC+2,F37610		;LOOP ON ERROR SWITCH^
 17121
 17122			003762			ADR=ADR+1
 17123			000004			WW=WW-1
 17124		020000	000000			XX=XX+XX
 17125			000037			ZZ=ZZ+1
 17126						IFE	XX,<ZZ=0>
 17127						IFE	XX,<XX=1>
 17128
 17129					;MULTIPLY 1010...1010 BY A FLOATING 1
 17130		525252	525252			V1=N1
 17131		640000	000000			V2=<N1_ZZ>!1B0
 17132						IFE	WW,<V2=0>
 17133						IFL	XX,<V3=N2+1>
 17134		765252	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17135						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17136					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 17137					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 17138					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17139					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17140
 17141		020000	000000		F37620:	AA1=XX				;INITIAL C(AC)
 17142	043500	200 13 0 00 044037 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17143			000000			AA2=0				;INITIAL C(AC+1)
 17144	043501	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17145		525252	525252			AEE=V1				;INITIAL C(E)
 17146	043502	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17147	043503	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17148		765252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17149	043504	312 13 0 00 044325 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17150	043505	003 13 0 00 037621 		ER3	AC,37621		;HIGH PRODUCT FAILED
 17151		640000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17152	043506	312 14 0 00 044326 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17153	043507	004 14 0 00 037622 		ER4	AC+1,37622		;LOW PRODUCT FAILED
 17154		525252	525252			AEE=V1				;INITIAL C(E)
 17155	043510	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-22
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0336

 17156	043511	005 11 0 00 037623 		ER5	E,37623			;C(E) WAS CLOBBERED
 17157	043512	321 15 0 00 043500 		JUMPL	AC+2,F37620		;LOOP ON ERROR SWITCH^
 17158
 17159			003763			ADR=ADR+1
 17160			000003			WW=WW-1
 17161		040000	000000			XX=XX+XX
 17162			000040			ZZ=ZZ+1
 17163						IFE	XX,<ZZ=0>
 17164						IFE	XX,<XX=1>
 17165
 17166					;MULTIPLY 1010...1010 BY A FLOATING 1
 17167		525252	525252			V1=N1
 17168		500000	000000			V2=<N1_ZZ>!1B0
 17169						IFE	WW,<V2=0>
 17170						IFL	XX,<V3=N2+1>
 17171		752525	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17172						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17173					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 17174					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 17175					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17176					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17177
 17178		040000	000000		F37630:	AA1=XX				;INITIAL C(AC)
 17179	043513	200 13 0 00 044040 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17180			000000			AA2=0				;INITIAL C(AC+1)
 17181	043514	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17182		525252	525252			AEE=V1				;INITIAL C(E)
 17183	043515	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17184	043516	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17185		752525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17186	043517	312 13 0 00 044327 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17187	043520	003 13 0 00 037631 		ER3	AC,37631		;HIGH PRODUCT FAILED
 17188		500000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17189	043521	312 14 0 00 044330 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17190	043522	004 14 0 00 037632 		ER4	AC+1,37632		;LOW PRODUCT FAILED
 17191		525252	525252			AEE=V1				;INITIAL C(E)
 17192	043523	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17193	043524	005 11 0 00 037633 		ER5	E,37633			;C(E) WAS CLOBBERED
 17194	043525	321 15 0 00 043513 		JUMPL	AC+2,F37630		;LOOP ON ERROR SWITCH^
 17195
 17196			003764			ADR=ADR+1
 17197			000002			WW=WW-1
 17198		100000	000000			XX=XX+XX
 17199			000041			ZZ=ZZ+1
 17200						IFE	XX,<ZZ=0>
 17201						IFE	XX,<XX=1>
 17202
 17203					;MULTIPLY 1010...1010 BY A FLOATING 1
 17204		525252	525252			V1=N1
 17205		600000	000000			V2=<N1_ZZ>!1B0
 17206						IFE	WW,<V2=0>
 17207						IFL	XX,<V3=N2+1>
 17208		725252	525252			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17209						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17210					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-23
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0337

 17211					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 17212					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17213					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17214
 17215		100000	000000		F37640:	AA1=XX				;INITIAL C(AC)
 17216	043526	200 13 0 00 044041 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17217			000000			AA2=0				;INITIAL C(AC+1)
 17218	043527	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17219		525252	525252			AEE=V1				;INITIAL C(E)
 17220	043530	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17221	043531	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17222		725252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17223	043532	312 13 0 00 044331 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17224	043533	003 13 0 00 037641 		ER3	AC,37641		;HIGH PRODUCT FAILED
 17225		600000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17226	043534	312 14 0 00 044173 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17227	043535	004 14 0 00 037642 		ER4	AC+1,37642		;LOW PRODUCT FAILED
 17228		525252	525252			AEE=V1				;INITIAL C(E)
 17229	043536	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17230	043537	005 11 0 00 037643 		ER5	E,37643			;C(E) WAS CLOBBERED
 17231	043540	321 15 0 00 043526 		JUMPL	AC+2,F37640		;LOOP ON ERROR SWITCH^
 17232
 17233			003765			ADR=ADR+1
 17234			000001			WW=WW-1
 17235		200000	000000			XX=XX+XX
 17236			000042			ZZ=ZZ+1
 17237						IFE	XX,<ZZ=0>
 17238						IFE	XX,<XX=1>
 17239
 17240					;MULTIPLY 1010...1010 BY A FLOATING 1
 17241		525252	525252			V1=N1
 17242		400000	000000			V2=<N1_ZZ>!1B0
 17243						IFE	WW,<V2=0>
 17244						IFL	XX,<V3=N2+1>
 17245		652525	252525			IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17246						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17247					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 17248					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 17249					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17250					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17251
 17252		200000	000000		F37650:	AA1=XX				;INITIAL C(AC)
 17253	043541	200 13 0 00 044042 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17254			000000			AA2=0				;INITIAL C(AC+1)
 17255	043542	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17256		525252	525252			AEE=V1				;INITIAL C(E)
 17257	043543	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17258	043544	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17259		652525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17260	043545	312 13 0 00 044332 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17261	043546	003 13 0 00 037651 		ER3	AC,37651		;HIGH PRODUCT FAILED
 17262		400000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17263	043547	312 14 0 00 044043 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17264	043550	004 14 0 00 037652 		ER4	AC+1,37652		;LOW PRODUCT FAILED
 17265		525252	525252			AEE=V1				;INITIAL C(E)
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 18-24
DBKAKM	MAC	28-MAY-76 10:08		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0338

 17266	043551	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17267	043552	005 11 0 00 037653 		ER5	E,37653			;C(E) WAS CLOBBERED
 17268	043553	321 15 0 00 043541 		JUMPL	AC+2,F37650		;LOOP ON ERROR SWITCH^
 17269
 17270			003766			ADR=ADR+1
 17271			000000			WW=WW-1
 17272		400000	000000			XX=XX+XX
 17273			000043			ZZ=ZZ+1
 17274						IFE	XX,<ZZ=0>
 17275						IFE	XX,<XX=1>
 17276
 17277					;MULTIPLY 1010...1010 BY A FLOATING 1
 17278		525252	525252			V1=N1
 17279		400000	000000			V2=<N1_ZZ>!1B0
 17280			000000			IFE	WW,<V2=0>
 17281		252525	252526			IFL	XX,<V3=N2+1>
 17282						IFG	XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
 17283						MOP1	(\ADR,XX,0,V1,V3,V2)^
 17284					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND
 17285					;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
 17286					;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY.
 17287					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 17288
 17289		400000	000000		F37660:	AA1=XX				;INITIAL C(AC)
 17290	043554	200 13 0 00 044043 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17291			000000			AA2=0				;INITIAL C(AC+1)
 17292	043555	200 14 0 00 043776 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17293		525252	525252			AEE=V1				;INITIAL C(E)
 17294	043556	200 11 0 00 044234 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17295	043557	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17296		252525	252526			AR1=V3				;EXPECTED RESULT IN AC
 17297	043560	312 13 0 00 044333 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17298	043561	003 13 0 00 037661 		ER3	AC,37661		;HIGH PRODUCT FAILED
 17299			000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17300	043562	312 14 0 00 043776 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17301	043563	004 14 0 00 037662 		ER4	AC+1,37662		;LOW PRODUCT FAILED
 17302		525252	525252			AEE=V1				;INITIAL C(E)
 17303	043564	312 11 0 00 044234 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17304	043565	005 11 0 00 037663 		ER5	E,37663			;C(E) WAS CLOBBERED
 17305	043566	321 15 0 00 043554 		JUMPL	AC+2,F37660		;LOOP ON ERROR SWITCH^
 17306
 17307	043567	254 00 0 00 030057 	LAST1:	JRST	BEGEND
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1
UUOERR	KLM	22-APR-75		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975                       SEQ 0339

 17308					SUBTTL	*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975
 17309
 17310					;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S.
 17311
 17312	043570	202 00 0 00 044453 	ERRMES:	MOVEM	0,%ERAC0#	;SAVE AC0
 17313						IFDEF	EXCASB,<IFDEF	KI10,<
 17314	043571	336 00 0 00 030040 		SKIPN	KAIFLG
 17315	043572	254 00 0 00 043577 		JRST	.+5
 17316	043573	332 00 0 00 030037 		SKIPE	USER		;USER MODE ?
 17317	043574	254 00 0 00 043577 		JRST	.+3
 17318	043575	332 00 0 00 030055 		SKIPE	MARGIN
 17319	043576	7 000 14 0 00 044334 		DATAO	APR,[IMGNOF,,ISPDOF] ;CLR MARGINS >>
 17320	043577	202 01 0 00 044454 		MOVEM	1,%ERAC1#	;SAVE AC1
 17321	043600	202 02 0 00 044455 		MOVEM	2,%ERAC2#	;SAVE AC2
 17322	043601	350 00 0 00 030053 		AOS	ERRTLS		;INCREMENT ERROR TOTALS
 17323	043602	550 00 0 00 030114 		HRRZ	0,$SVUPC	;GET PC OF UUO
 17324	043603	316 00 0 00 030052 		CAMN	0,ERRPC		;PC = PC OF LAST ERROR ?
 17325	043604	350 00 0 00 044450 		AOS	MICNT#		;YES, ADD 1 TO ERROR COUNT
 17326	043605	200 00 0 00 044450 		MOVE	0,MICNT
 17327	043606	504 00 0 00 030114 		HRL	0,$SVUPC
 17328	043607	336 00 0 00 030041 		SKIPN	KLFLG		;NOT KL10
 17329	043610	332 00 0 00 030037 		SKIPE	USER		;AND NOT USER?
 17330	043611	254 00 0 00 043613 		JRST	.+2
 17331	043612	7 004 14 0 00 000000 		DATAO	PI,0		;YES, DISPLAY ERROR PC,ERROR COUNT
 17332	043613	402 00 0 00 044451 		SETZM	PROCED#		;CLEAR PROCEED FLAG
 17333	043614	037 10 0 00 000002 		SWITCH
 17334	043615	603 00 0 00 040000 		TLNE	NOPNT		;PRINTOUT ?
 17335	043616	254 00 0 00 043731 		JRST	%ERRS1		;NO, RESTORE AC'S AND RETURN
 17336	043617	200 01 0 00 030113 		MOVE	1,$SVUUO
 17337	043620	242 01 0 00 777745 		LSH	1,-^D27
 17338	043621	202 01 0 00 044452 		MOVEM	1,%ACS1A#	;SAVE UUO NUMBER
 17339	043622	200 00 0 00 044453 		MOVE	0,%ERAC0
 17340	043623	200 01 0 00 044454 		MOVE	1,%ERAC1
 17341	043624	335 00 1 00 044447 		SKIPGE	@ERRLOP		;ERR LOOP AC > OR = 0 ?
 17342	043625	254 00 0 00 043771 		JRST	%ERRS4		;NO, SEE IF PRINT ALL
 17343	043626	402 00 0 00 044450 	%ERMS1:	SETZM	MICNT		;CLEAR ERROR COUNT
 17344	043627	331 00 0 00 030043 		SKIPL	MONCTL		;DIAG MON OR SYS EXER ?
 17345	043630	254 00 0 00 043634 		JRST	.+4		;NO, DON'T NEED TITLE
 17346	043631	336 00 0 00 044456 		SKIPN	%ERFST#		;FIRST ERROR ?
 17347	043632	037 04 0 00 000002 		PNTNM			;YES, PRINT PROGRAM TITLE
 17348	043633	476 00 0 00 044456 		SETOM	%ERFST
 17349	043634	336 00 0 00 030047 		SKIPN	PASCNT		;FIRST PASS ?
 17350	043635	254 00 0 00 043641 		JRST	.+4		;YES
 17351						PMSG	<^TEST PASS COUNT = >^
 17352	043636	037 02 0 00 044335 		PSIXM	[SIXBIT\^TEST PASS COUNT = _\]^
 17353	043637	200 00 0 00 030047 		MOVE	PASCNT
 17354	043640	037 15 0 00 000000 		PNTDEC
 17355						PMSG	<^PC =   >^
 17356	043641	037 02 0 00 044341 		PSIXM	[SIXBIT\^PC =   _\]^
 17357	043642	550 00 0 00 030114 		HRRZ	0,$SVUPC	;GET PC OF UUO
 17358	043643	202 00 0 00 030052 		MOVEM	0,ERRPC		;SAVE FOR COMPARE
 17359	043644	037 06 0 00 000000 		PNT6			;PRINT UUO ADDRESS
 17360						XLIST
 17361						IFDEF	ERDIAG,<LIST
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 2
UUOERR	KLM	22-APR-75		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975                       SEQ 0340

 17362					;DIAGNOSTIC FORMAT ERROR PRINTER
 17363
 17364					;PRINT RESULT
 17365
 17366	043645				%ERMS2:	PMSG	<^RESULT  = >^
 17367	043645	037 02 0 00 044343 		PSIXM	[SIXBIT\^RESULT  = _\]^
 17368	043646	200 01 0 00 030113 		MOVE	1,$SVUUO	;GET AC # OF UUO
 17369	043647	242 01 0 00 777751 		LSH	1,-27
 17370	043650	405 01 0 00 000017 		ANDI	1,17
 17371	043651	200 00 0 01 000000 		MOVE	0,(1)		;GET C(AC)
 17372	043652	307 01 0 00 000001 		CAIG	1,1		;IS AC # = TO SAVE AC ?
 17373	043653	200 00 0 01 044453 		MOVE	0,%ERAC0(1)	;YES, GET SAVED AC
 17374	043654	037 13 0 00 000000 		PNTHW			;PRINT C(AC)
 17375
 17376	043655	200 00 0 00 030046 		MOVE	CONSW
 17377	043656	603 00 0 00 000200 		TLNE	TXTINH		;PRINT FAILURE DES AND FLT NBR ?
 17378	043657	254 00 0 00 043726 		JRST	%ERMORE		;NO, RESTORE AC'S ETC.
 17379
 17380					;PRINT FAILURE DESCRIPTOR
 17381
 17382	043660	200 01 0 00 044452 		MOVE	1,%ACS1A	;GET UUO NUMBER
 17383	043661	307 01 0 00 000001 		CAIG	1,1		;PRINT DESCRIPTOR ?
 17384	043662	254 00 0 00 043666 		JRST	%ERMS3		;NO, JUST PRINT FAULT NUMBER
 17385	043663	037 00 0 00 030242 		PCRL
 17386	043664	200 00 0 01 043712 		MOVE	%FLTTB(1)
 17387	043665	037 17 0 00 000000 		PNTAL			;PRINT FAULT DESCRIPTOR
 17388
 17389					;PRINT FAULT NUMBER
 17390
 17391	043666				%ERMS3:	PMSG	<^FAULT NUMBER = >^
 17392	043666	037 02 0 00 044345 		PSIXM	[SIXBIT\^FAULT NUMBER = _\]^
 17393	043667	201 00 0 00 043711 		MOVEI	TLET
 17394	043670	037 00 0 00 000000 		PNTA			;PRINT TEST LETTER
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 3
UUOERR	KLM	22-APR-75		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975                       SEQ 0341

 17395
 17396	043671	550 00 0 00 030113 		HRRZ	$SVUUO
 17397	043672	602 00 0 00 700000 		TRNE	700000
 17398	043673	254 00 0 00 043707 		JRST	%ER6X
 17399	043674	602 00 0 00 070000 		TRNE	070000
 17400	043675	254 00 0 00 043705 		JRST	%ER5X
 17401	043676	602 00 0 00 007000 		TRNE	007000
 17402	043677	254 00 0 00 043703 		JRST	%ER4X
 17403	043700	037 03 0 00 000000 		PNT3			;PRINT FAULT NUMBER
 17404	043701	037 00 0 00 030242 	%ER7X:	PCRL
 17405	043702	254 00 0 00 043726 		JRST	%ERMORE
 17406
 17407	043703	037 04 0 00 000000 	%ER4X:	PNT4
 17408	043704	254 00 0 00 043701 		JRST	%ER7X
 17409	043705	037 05 0 00 000000 	%ER5X:	PNT5
 17410	043706	254 00 0 00 043701 		JRST	%ER7X
 17411	043707	037 06 0 00 000000 	%ER6X:	PNT6
 17412	043710	254 00 0 00 043701 		JRST	%ER7X
 17413
 17414					;FAILURE DESCRIPTORS
 17415
 17416	043711	000000	000000		TLET:	0			;TEST LETTER
 17417	043712	000000	000000		%FLTTB:	0			;DESCRIPTOR TABLE
 17418	043713	000000	043776		%NODES:	[0]			;NO DESCRIPTOR
 17419	043714	000000	043776		SPDES:	[0]			;SPECIAL USER FAILURE DESCRIPTOR
 17420	043715	000000	044350		$ACF:	[ASCIZ/C(AC) FAILED/]
 17421	043716	000000	044353		%AC1F:	[ASCIZ/C(AC+1) FAILED/]
 17422	043717	000000	044356		%EF:	[ASCIZ/C(E) FAILED/]
 17423	043720	000000	044361		%E1F:	[ASCIZ/C(E+1) FAILED/]
 17424	043721	000000	044364		%ARF:	[ASCIZ/C(C(ACR)) FAILED/]
 17425	043722	000000	044370		%AR1F:	[ASCIZ/C(C(ACR+1)) FAILED/]
 17426	043723	000000	044374		%ALF:	[ASCIZ/C(C(ACL)) FAILED/]
 17427	043724	000000	044400		%EEF:	[ASCIZ/C(C(E)) FAILED/]
 17428	043725	000000	044403		%FF:	[ASCIZ/FLAG FAILED/]
 17429					>
 17430						XLIST
 17431						LIST
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 8
UUOERR	KLM	22-APR-75		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975                       SEQ 0342

 17432					;RESTORE AC'S AND RETURN OR HALT
 17433
 17434	043726	256 00 0 00 030101 	%ERMORE:XCT	ERMORE
 17435	043727	037 16 0 00 000002 		PNTMGN			;PRINT MARGINS	
 17436	043730	037 10 0 00 000002 		SWITCH
 17437
 17438	043731	037 07 0 00 000003 	%ERRS1:	TTALTM			;ALTMODE CHECK
 17439	043732	254 00 0 00 043736 		JRST	.+4		;NONE
 17440	043733	201 00 0 00 043736 		MOVEI	.+3		;SAVE CONT ADDRESS
 17441	043734	202 00 0 00 000130 		MOVEM	JOBOPC
 17442	043735	254 00 1 00 030063 		JRST	@ALTMGO		;PERFORM TRANSFER
 17443	043736	200 00 0 00 030046 		MOVE	CONSW
 17444	043737	603 00 0 00 002000 		TLNE	0,ERSTOP	;HALT ON ERROR SWITCH SET ?
 17445	043740	037 14 0 00 000004 		ERRHLT			;YES
 17446	043741	607 00 0 00 004000 		TLNN	0,LOOPER	;LOOP ON ERROR SWITCH SET ?
 17447	043742	476 00 0 00 044451 		SETOM	PROCED		;NO, SET THE PROCEED FLAG
 17448	043743	603 00 0 00 010000 		TLNE	0,DING		;RING BELL SWITCH SET ?
 17449	043744	037 01 0 00 000007 		PBELL			;YES, GO RING BELL
 17450
 17451	043745	200 02 0 00 044455 	%ERRS2:	MOVE	2,%ERAC2	;RESTORE AC'S
 17452	043746	200 01 0 00 044454 		MOVE	1,%ERAC1
 17453	043747	476 00 1 00 044447 		SETOM	@ERRLOP		;SET C(ERR LOOP AC) TO -1
 17454	043750	336 00 0 00 044451 		SKIPN	PROCED		;LOOP ON ERROR ?
 17455	043751	254 00 0 00 043761 		JRST	%ERRS5		;YES
 17456	043752	350 00 1 00 044447 		AOS	@ERRLOP		;NO, INC C(ERR LOOP AC)
 17457	043753	350 00 1 00 044447 		AOS	@ERRLOP		;SO IT ='S 1
 17458	043754	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
 17459	043755	254 00 0 00 043761 		JRST	%ERRS5		;NO, CONTINUE PROGRAM
 17460	043756	200 00 0 00 030053 		MOVE	0,ERRTLS	;YES
 17461	043757	301 00 0 00 000005 		CAIL	0,5		;PRINTED ALLOWED ERRORS ?
 17462	043760	254 00 0 00 030061 		JRST	$BEND2
 17463
 17464	043761	200 00 0 00 044453 	%ERRS5:	MOVE	0,%ERAC0	;NO, CONTINUE PROGRAM
 17465						IFDEF	EXCASB,<IFDEF KI10,<
 17466	043762	336 00 0 00 030040 		SKIPN	KAIFLG
 17467	043763	254 00 0 00 043770 		JRST	.+5
 17468	043764	332 00 0 00 030037 		SKIPE	USER
 17469	043765	254 00 0 00 043770 		JRST	.+3
 17470	043766	332 00 0 00 030055 		SKIPE	MARGIN
 17471	043767	7 000 14 0 00 030055 		DATAO	APR,MARGIN	;RESET MARGIN SYSTEM >>
 17472	043770	254 00 0 00 030065 		JRST	UUOEXT
 17473
 17474	043771	200 00 0 00 030046 	%ERRS4:	MOVE	0,CONSW
 17475	043772	607 00 0 00 001000 		TLNN	PALERS		;PRINT ALL ERRORS ?
 17476	043773	254 00 0 00 043731 		JRST	%ERRS1		;NO
 17477	043774	254 00 0 00 043626 		JRST	%ERMS1		;YES
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1
STOR	KLM	 5-JAN-76		*STOR* RESERVED STORAGE, JAN 5,1976                                                SEQ 0343

 17478					SUBTTL	*STOR* RESERVED STORAGE, JAN 5,1976
 17479
 17480					;PROGRAM LITERALS
 17481
 17482						XLIST
 17483					IFNDEF	$LPAPER,<LIST>
 17484	043775					LIT
 17485	043775	101 113 000 000 000 
 17486	043776	000000	000000
 17487	043777	777777	777777
 17488	044000	000000	000001
 17489	044001	000000	000002
 17490	044002	000000	000004
 17491	044003	000000	000010
 17492	044004	000000	000020
 17493	044005	000000	000040
 17494	044006	000000	000100
 17495	044007	000000	000200
 17496	044010	000000	000400
 17497	044011	000000	001000
 17498	044012	000000	002000
 17499	044013	000000	004000
 17500	044014	000000	010000
 17501	044015	000000	020000
 17502	044016	000000	040000
 17503	044017	000000	100000
 17504	044020	000000	200000
 17505	044021	000000	400000
 17506	044022	000001	000000
 17507	044023	000002	000000
 17508	044024	000004	000000
 17509	044025	000010	000000
 17510	044026	000020	000000
 17511	044027	000040	000000
 17512	044030	000100	000000
 17513	044031	000200	000000
 17514	044032	000400	000000
 17515	044033	001000	000000
 17516	044034	002000	000000
 17517	044035	004000	000000
 17518	044036	010000	000000
 17519	044037	020000	000000
 17520	044040	040000	000000
 17521	044041	100000	000000
 17522	044042	200000	000000
 17523	044043	400000	000000
 17524	044044	777777	777776
 17525	044045	777777	777775
 17526	044046	777777	777773
 17527	044047	777777	777767
 17528	044050	777777	777757
 17529	044051	777777	777737
 17530	044052	777777	777677
 17531	044053	777777	777577
 17532	044054	777777	777377
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1-1
STOR	KLM	 5-JAN-76		*STOR* RESERVED STORAGE, JAN 5,1976                                                SEQ 0344

 17533	044055	777777	776777
 17534	044056	777777	775777
 17535	044057	777777	773777
 17536	044060	777777	767777
 17537	044061	777777	757777
 17538	044062	777777	737777
 17539	044063	777777	677777
 17540	044064	777777	577777
 17541	044065	777777	377777
 17542	044066	777776	777777
 17543	044067	777775	777777
 17544	044070	777773	777777
 17545	044071	777767	777777
 17546	044072	777757	777777
 17547	044073	777737	777777
 17548	044074	777677	777777
 17549	044075	777577	777777
 17550	044076	777377	777777
 17551	044077	776777	777777
 17552	044100	775777	777777
 17553	044101	773777	777777
 17554	044102	767777	777777
 17555	044103	757777	777777
 17556	044104	737777	777777
 17557	044105	677777	777777
 17558	044106	577777	777777
 17559	044107	377777	777777
 17560	044110	000000	000003
 17561	044111	000000	000005
 17562	044112	000000	000006
 17563	044113	000000	000007
 17564	044114	000000	000011
 17565	044115	000000	000012
 17566	044116	000000	000013
 17567	044117	000000	000014
 17568	044120	000000	000015
 17569	044121	000000	000016
 17570	044122	000000	000017
 17571	044123	777777	777774
 17572	044124	777777	777772
 17573	044125	777777	777771
 17574	044126	777777	777770
 17575	044127	777777	777766
 17576	044130	777777	777765
 17577	044131	777777	777764
 17578	044132	777777	777763
 17579	044133	777777	777762
 17580	044134	777777	777761
 17581	044135	777777	777760
 17582	044136	777777	777740
 17583	044137	777777	777700
 17584	044140	777777	777600
 17585	044141	777777	777400
 17586	044142	777777	777000
 17587	044143	777777	776000
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1-2
STOR	KLM	 5-JAN-76		*STOR* RESERVED STORAGE, JAN 5,1976                                                SEQ 0345

 17588	044144	777777	774000
 17589	044145	777777	770000
 17590	044146	777777	760000
 17591	044147	777777	740000
 17592	044150	777777	700000
 17593	044151	777777	600000
 17594	044152	777777	400000
 17595	044153	777777	000000
 17596	044154	777776	000000
 17597	044155	777774	000000
 17598	044156	777770	000000
 17599	044157	777760	000000
 17600	044160	777740	000000
 17601	044161	777700	000000
 17602	044162	777600	000000
 17603	044163	777400	000000
 17604	044164	777000	000000
 17605	044165	776000	000000
 17606	044166	774000	000000
 17607	044167	770000	000000
 17608	044170	760000	000000
 17609	044171	740000	000000
 17610	044172	700000	000000
 17611	044173	600000	000000
 17612	044174	000000	000021
 17613	044175	000000	000041
 17614	044176	000000	000101
 17615	044177	000000	000201
 17616	044200	000000	000401
 17617	044201	000000	001001
 17618	044202	000000	002001
 17619	044203	000000	004001
 17620	044204	000000	010001
 17621	044205	000000	020001
 17622	044206	000000	040001
 17623	044207	000000	100001
 17624	044210	000000	200001
 17625	044211	000000	400001
 17626	044212	000001	000001
 17627	044213	000002	000001
 17628	044214	000004	000001
 17629	044215	000010	000001
 17630	044216	000020	000001
 17631	044217	000040	000001
 17632	044220	000100	000001
 17633	044221	000200	000001
 17634	044222	000400	000001
 17635	044223	001000	000001
 17636	044224	002000	000001
 17637	044225	004000	000001
 17638	044226	010000	000001
 17639	044227	020000	000001
 17640	044230	040000	000001
 17641	044231	100000	000001
 17642	044232	200000	000001
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1-3
STOR	KLM	 5-JAN-76		*STOR* RESERVED STORAGE, JAN 5,1976                                                SEQ 0346

 17643	044233	400000	000001
 17644	044234	525252	525252
 17645	044235	652525	252524
 17646	044236	525252	525250
 17647	044237	652525	252520
 17648	044240	525252	525240
 17649	044241	777777	777752
 17650	044242	652525	252500
 17651	044243	777777	777725
 17652	044244	525252	525200
 17653	044245	777777	777652
 17654	044246	652525	252400
 17655	044247	777777	777525
 17656	044250	525252	525000
 17657	044251	777777	777252
 17658	044252	652525	252000
 17659	044253	777777	776525
 17660	044254	525252	524000
 17661	044255	777777	775252
 17662	044256	652525	250000
 17663	044257	777777	772525
 17664	044260	525252	520000
 17665	044261	777777	765252
 17666	044262	652525	240000
 17667	044263	777777	752525
 17668	044264	525252	500000
 17669	044265	777777	725252
 17670	044266	652525	200000
 17671	044267	777777	652525
 17672	044270	525252	400000
 17673	044271	777777	525252
 17674	044272	652525	000000
 17675	044273	777777	252525
 17676	044274	525252	000000
 17677	044275	777776	525252
 17678	044276	652524	000000
 17679	044277	777775	252525
 17680	044300	525250	000000
 17681	044301	777772	525252
 17682	044302	652520	000000
 17683	044303	777765	252525
 17684	044304	525240	000000
 17685	044305	777752	525252
 17686	044306	652500	000000
 17687	044307	777725	252525
 17688	044310	525200	000000
 17689	044311	777652	525252
 17690	044312	652400	000000
 17691	044313	777525	252525
 17692	044314	525000	000000
 17693	044315	777252	525252
 17694	044316	652000	000000
 17695	044317	776525	252525
 17696	044320	524000	000000
 17697	044321	775252	525252
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1-4
STOR	KLM	 5-JAN-76		*STOR* RESERVED STORAGE, JAN 5,1976                                                SEQ 0347

 17698	044322	650000	000000
 17699	044323	772525	252525
 17700	044324	520000	000000
 17701	044325	765252	525252
 17702	044326	640000	000000
 17703	044327	752525	252525
 17704	044330	500000	000000
 17705	044331	725252	525252
 17706	044332	652525	252525
 17707	044333	252525	252526
 17708	044334	002000	010000
 17709	044335	76 64 45 63 64 00 
 17710	044336	60 41 63 63 00 43 
 17711	044337	57 65 56 64 00 35 
 17712	044340	00 77 00 00 00 00 
 17713	044341	76 60 43 00 35 00 
 17714	044342	00 00 77 00 00 00 
 17715	044343	76 62 45 63 65 54 
 17716	044344	64 00 00 35 00 77 
 17717	044345	76 46 41 65 54 64 
 17718	044346	00 56 65 55 42 45 
 17719	044347	62 00 35 00 77 00 
 17720	044350	103 050 101 103 051 
 17721	044351	040 106 101 111 114 
 17722	044352	105 104 000 000 000 
 17723	044353	103 050 101 103 053 
 17724	044354	061 051 040 106 101 
 17725	044355	111 114 105 104 000 
 17726	044356	103 050 105 051 040 
 17727	044357	106 101 111 114 105 
 17728	044360	104 000 000 000 000 
 17729	044361	103 050 105 053 061 
 17730	044362	051 040 106 101 111 
 17731	044363	114 105 104 000 000 
 17732	044364	103 050 103 050 101 
 17733	044365	103 122 051 051 040 
 17734	044366	106 101 111 114 105 
 17735	044367	104 000 000 000 000 
 17736	044370	103 050 103 050 101 
 17737	044371	103 122 053 061 051 
 17738	044372	051 040 106 101 111 
 17739	044373	114 105 104 000 000 
 17740	044374	103 050 103 050 101 
 17741	044375	103 114 051 051 040 
 17742	044376	106 101 111 114 105 
 17743	044377	104 000 000 000 000 
 17744	044400	103 050 103 050 105 
 17745	044401	051 051 040 106 101 
 17746	044402	111 114 105 104 000 
 17747	044403	106 114 101 107 040 
 17748	044404	106 101 111 114 105 
 17749	044405	104 000 000 000 000 
 17750						LIST
 17751	044406	000000	000000		ENDSLD:	0
 17752
DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2	MACRO %50A(432) 15:27  5-AUG-76 PAGE 1-5
STOR	KLM	 5-JAN-76		*STOR* RESERVED STORAGE, JAN 5,1976                                                SEQ 0348

 17753					IFDEF	DEBUG,<
 17754	044407				PATCH:	BLOCK DEBUG		;PATCHING AREA
 17755					>
 17756
 17757					;PROGRAM VARIABLES
 17758	044447					VAR
 17759
 17760					IFDEF	PGMEND,<
 17761	044457	000000	000000		END:	0
 17762			030000			END	BEGIN	>

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSLUTE BREAK IS 044460
CPU TIME USED 00:49.884

8K CORE USED

AA1	   767#	   813#	   842#	   871#	   900#	   929#	   958#	   987#	  1016#	  1045#	  1074#	  1103#	  1132#	  1161#
	  1190#	  1219#	  1248#	  1277#	  1306#	  1335#	  1364#	  1393#	  1422#	  1451#	  1480#	  1509#	  1538#	  1567#    SEQ 0349
	  1596#	  1625#	  1654#	  1683#	  1712#	  1741#	  1770#	  1799#	  1828#	  1873#	  1902#	  1931#	  1960#	  1989#
	  2018#	  2047#	  2076#	  2105#	  2134#	  2163#	  2192#	  2221#	  2250#	  2279#	  2308#	  2337#	  2366#	  2395#
	  2424#	  2453#	  2482#	  2511#	  2540#	  2569#	  2598#	  2627#	  2656#	  2685#	  2714#	  2743#	  2772#	  2801#
	  2830#	  2859#	  2888#	  2921#	  2990#	  3029#	  3068#	  3107#	  3146#	  3185#	  3224#	  3263#	  3302#	  3341#
	  3380#	  3419#	  3458#	  3497#	  3536#	  3575#	  3654#	  3699#	  3744#	  3789#	  3834#	  3879#	  3924#	  3969#
	  4014#	  4059#	  4104#	  4149#	  4194#	  4239#	  4284#	  4329#	  4376#	  4405#	  4434#	  4463#	  4492#	  4521#
	  4550#	  4579#	  4608#	  4637#	  4666#	  4695#	  4724#	  4753#	  4782#	  4811#	  4840#	  4869#	  4898#	  4927#
	  4956#	  4985#	  5014#	  5043#	  5072#	  5101#	  5130#	  5159#	  5188#	  5217#	  5246#	  5275#	  5304#	  5333#
	  5362#	  5391#	  5436#	  5465#	  5494#	  5523#	  5552#	  5581#	  5610#	  5639#	  5668#	  5697#	  5726#	  5755#
	  5784#	  5813#	  5842#	  5871#	  5900#	  5929#	  5958#	  5987#	  6016#	  6045#	  6074#	  6103#	  6132#	  6161#
	  6190#	  6219#	  6248#	  6277#	  6306#	  6335#	  6364#	  6393#	  6422#	  6451#	  6484#	  6536#	  6567#	  6598#
	  6629#	  6660#	  6691#	  6722#	  6753#	  6784#	  6815#	  6846#	  6877#	  6908#	  6939#	  6970#	  7001#	  7032#
	  7063#	  7094#	  7125#	  7156#	  7187#	  7218#	  7249#	  7280#	  7311#	  7342#	  7373#	  7404#	  7435#	  7466#
	  7497#	  7528#	  7559#	  7590#	  7621#	  7670#	  7701#	  7732#	  7763#	  7794#	  7825#	  7856#	  7887#	  7918#
	  7949#	  7980#	  8011#	  8042#	  8073#	  8104#	  8135#	  8166#	  8197#	  8228#	  8259#	  8290#	  8321#	  8352#
	  8383#	  8414#	  8445#	  8476#	  8507#	  8538#	  8569#	  8600#	  8631#	  8662#	  8693#	  8724#	  8755#	  8812#
	  8847#	  8882#	  8917#	  8952#	  8987#	  9022#	  9057#	  9092#	  9127#	  9162#	  9197#	  9232#	  9267#	  9302#
	  9337#	  9372#	  9407#	  9442#	  9477#	  9512#	  9547#	  9582#	  9617#	  9652#	  9687#	  9722#	  9757#	  9792#
	  9827#	  9862#	  9897#	  9932#	  9967#	 10002#	 10037#	 10094#	 10129#	 10164#	 10199#	 10234#	 10269#	 10304#
	 10339#	 10374#	 10409#	 10444#	 10479#	 10514#	 10549#	 10584#	 10619#	 10654#	 10689#	 10724#	 10759#	 10794#
	 10829#	 10864#	 10899#	 10934#	 10969#	 11004#	 11039#	 11074#	 11109#	 11144#	 11179#	 11214#	 11249#	 11284#
	 11319#	 11368#	 11399#	 11430#	 11461#	 11492#	 11523#	 11554#	 11585#	 11616#	 11647#	 11678#	 11709#	 11740#
	 11771#	 11802#	 11833#	 11864#	 11895#	 11926#	 11957#	 11988#	 12019#	 12050#	 12081#	 12112#	 12143#	 12174#
	 12205#	 12236#	 12267#	 12298#	 12329#	 12360#	 12391#	 12422#	 12453#	 12502#	 12533#	 12564#	 12595#	 12626#
	 12657#	 12688#	 12719#	 12750#	 12781#	 12812#	 12843#	 12874#	 12905#	 12936#	 12967#	 12998#	 13029#	 13060#
	 13091#	 13122#	 13153#	 13184#	 13215#	 13246#	 13277#	 13308#	 13339#	 13370#	 13401#	 13432#	 13463#	 13494#
	 13525#	 13556#	 13587#	 13638#	 13670#	 13702#	 13734#	 13766#	 13798#	 13830#	 13862#	 13894#	 13926#	 13958#
	 13990#	 14022#	 14054#	 14086#	 14118#	 14150#	 14182#	 14214#	 14246#	 14278#	 14310#	 14342#	 14374#	 14406#
	 14438#	 14470#	 14502#	 14534#	 14566#	 14598#	 14630#	 14662#	 14694#	 14726#	 14758#	 14809#	 14841#	 14873#
	 14905#	 14937#	 14969#	 15001#	 15033#	 15065#	 15097#	 15129#	 15161#	 15193#	 15225#	 15257#	 15289#	 15321#
	 15353#	 15385#	 15417#	 15449#	 15481#	 15513#	 15545#	 15577#	 15609#	 15641#	 15673#	 15705#	 15737#	 15769#
	 15801#	 15833#	 15865#	 15897#	 15929#	 15994#	 16031#	 16068#	 16105#	 16142#	 16179#	 16216#	 16253#	 16290#
	 16327#	 16364#	 16401#	 16438#	 16475#	 16512#	 16549#	 16586#	 16623#	 16660#	 16697#	 16734#	 16771#	 16808#
	 16845#	 16882#	 16919#	 16956#	 16993#	 17030#	 17067#	 17104#	 17141#	 17178#	 17215#	 17252#	 17289#
AA2	   769#	   815#	   844#	   873#	   902#	   931#	   960#	   989#	  1018#	  1047#	  1076#	  1105#	  1134#	  1163#
	  1192#	  1221#	  1250#	  1279#	  1308#	  1337#	  1366#	  1395#	  1424#	  1453#	  1482#	  1511#	  1540#	  1569#
	  1598#	  1627#	  1656#	  1685#	  1714#	  1743#	  1772#	  1801#	  1830#	  1875#	  1904#	  1933#	  1962#	  1991#
	  2020#	  2049#	  2078#	  2107#	  2136#	  2165#	  2194#	  2223#	  2252#	  2281#	  2310#	  2339#	  2368#	  2397#
	  2426#	  2455#	  2484#	  2513#	  2542#	  2571#	  2600#	  2629#	  2658#	  2687#	  2716#	  2745#	  2774#	  2803#
	  2832#	  2861#	  2890#	  2923#	  2992#	  3031#	  3070#	  3109#	  3148#	  3187#	  3226#	  3265#	  3304#	  3343#
	  3382#	  3421#	  3460#	  3499#	  3538#	  3577#	  3656#	  3701#	  3746#	  3791#	  3836#	  3881#	  3926#	  3971#
	  4016#	  4061#	  4106#	  4151#	  4196#	  4241#	  4286#	  4331#	  4378#	  4407#	  4436#	  4465#	  4494#	  4523#
	  4552#	  4581#	  4610#	  4639#	  4668#	  4697#	  4726#	  4755#	  4784#	  4813#	  4842#	  4871#	  4900#	  4929#
	  4958#	  4987#	  5016#	  5045#	  5074#	  5103#	  5132#	  5161#	  5190#	  5219#	  5248#	  5277#	  5306#	  5335#
	  5364#	  5393#	  5438#	  5467#	  5496#	  5525#	  5554#	  5583#	  5612#	  5641#	  5670#	  5699#	  5728#	  5757#
	  5786#	  5815#	  5844#	  5873#	  5902#	  5931#	  5960#	  5989#	  6018#	  6047#	  6076#	  6105#	  6134#	  6163#
	  6192#	  6221#	  6250#	  6279#	  6308#	  6337#	  6366#	  6395#	  6424#	  6453#	  6486#	  6538#	  6569#	  6600#
	  6631#	  6662#	  6693#	  6724#	  6755#	  6786#	  6817#	  6848#	  6879#	  6910#	  6941#	  6972#	  7003#	  7034#
	  7065#	  7096#	  7127#	  7158#	  7189#	  7220#	  7251#	  7282#	  7313#	  7344#	  7375#	  7406#	  7437#	  7468#
	  7499#	  7530#	  7561#	  7592#	  7623#	  7672#	  7703#	  7734#	  7765#	  7796#	  7827#	  7858#	  7889#	  7920#
	  7951#	  7982#	  8013#	  8044#	  8075#	  8106#	  8137#	  8168#	  8199#	  8230#	  8261#	  8292#	  8323#	  8354#
	  8385#	  8416#	  8447#	  8478#	  8509#	  8540#	  8571#	  8602#	  8633#	  8664#	  8695#	  8726#	  8757#	  8814#
	  8849#	  8884#	  8919#	  8954#	  8989#	  9024#	  9059#	  9094#	  9129#	  9164#	  9199#	  9234#	  9269#	  9304#    SEQ 0350
	  9339#	  9374#	  9409#	  9444#	  9479#	  9514#	  9549#	  9584#	  9619#	  9654#	  9689#	  9724#	  9759#	  9794#
	  9829#	  9864#	  9899#	  9934#	  9969#	 10004#	 10039#	 10096#	 10131#	 10166#	 10201#	 10236#	 10271#	 10306#
	 10341#	 10376#	 10411#	 10446#	 10481#	 10516#	 10551#	 10586#	 10621#	 10656#	 10691#	 10726#	 10761#	 10796#
	 10831#	 10866#	 10901#	 10936#	 10971#	 11006#	 11041#	 11076#	 11111#	 11146#	 11181#	 11216#	 11251#	 11286#
	 11321#	 11370#	 11401#	 11432#	 11463#	 11494#	 11525#	 11556#	 11587#	 11618#	 11649#	 11680#	 11711#	 11742#
	 11773#	 11804#	 11835#	 11866#	 11897#	 11928#	 11959#	 11990#	 12021#	 12052#	 12083#	 12114#	 12145#	 12176#
	 12207#	 12238#	 12269#	 12300#	 12331#	 12362#	 12393#	 12424#	 12455#	 12504#	 12535#	 12566#	 12597#	 12628#
	 12659#	 12690#	 12721#	 12752#	 12783#	 12814#	 12845#	 12876#	 12907#	 12938#	 12969#	 13000#	 13031#	 13062#
	 13093#	 13124#	 13155#	 13186#	 13217#	 13248#	 13279#	 13310#	 13341#	 13372#	 13403#	 13434#	 13465#	 13496#
	 13527#	 13558#	 13589#	 13640#	 13672#	 13704#	 13736#	 13768#	 13800#	 13832#	 13864#	 13896#	 13928#	 13960#
	 13992#	 14024#	 14056#	 14088#	 14120#	 14152#	 14184#	 14216#	 14248#	 14280#	 14312#	 14344#	 14376#	 14408#
	 14440#	 14472#	 14504#	 14536#	 14568#	 14600#	 14632#	 14664#	 14696#	 14728#	 14760#	 14811#	 14843#	 14875#
	 14907#	 14939#	 14971#	 15003#	 15035#	 15067#	 15099#	 15131#	 15163#	 15195#	 15227#	 15259#	 15291#	 15323#
	 15355#	 15387#	 15419#	 15451#	 15483#	 15515#	 15547#	 15579#	 15611#	 15643#	 15675#	 15707#	 15739#	 15771#
	 15803#	 15835#	 15867#	 15899#	 15931#	 15996#	 16033#	 16070#	 16107#	 16144#	 16181#	 16218#	 16255#	 16292#
	 16329#	 16366#	 16403#	 16440#	 16477#	 16514#	 16551#	 16588#	 16625#	 16662#	 16699#	 16736#	 16773#	 16810#
	 16847#	 16884#	 16921#	 16958#	 16995#	 17032#	 17069#	 17106#	 17143#	 17180#	 17217#	 17254#	 17291#
ABORT	   131#
AC	   751#	   752	   755	   756	   757	   758	   768	   770	   773	   775	   776	   778	   779	   783
	   785#	   786	   788	   789	   790	   791	   814	   816	   819	   821	   822	   824	   825	   829
	   843	   845	   848	   850	   851	   853	   854	   858	   872	   874	   877	   879	   880	   882
	   883	   887	   901	   903	   906	   908	   909	   911	   912	   916	   930	   932	   935	   937
	   938	   940	   941	   945	   959	   961	   964	   966	   967	   969	   970	   974	   988	   990
	   993	   995	   996	   998	   999	  1003	  1017	  1019	  1022	  1024	  1025	  1027	  1028	  1032
	  1046	  1048	  1051	  1053	  1054	  1056	  1057	  1061	  1075	  1077	  1080	  1082	  1083	  1085
	  1086	  1090	  1104	  1106	  1109	  1111	  1112	  1114	  1115	  1119	  1133	  1135	  1138	  1140
	  1141	  1143	  1144	  1148	  1162	  1164	  1167	  1169	  1170	  1172	  1173	  1177	  1191	  1193
	  1196	  1198	  1199	  1201	  1202	  1206	  1220	  1222	  1225	  1227	  1228	  1230	  1231	  1235
	  1249	  1251	  1254	  1256	  1257	  1259	  1260	  1264	  1278	  1280	  1283	  1285	  1286	  1288
	  1289	  1293	  1307	  1309	  1312	  1314	  1315	  1317	  1318	  1322	  1336	  1338	  1341	  1343
	  1344	  1346	  1347	  1351	  1365	  1367	  1370	  1372	  1373	  1375	  1376	  1380	  1394	  1396
	  1399	  1401	  1402	  1404	  1405	  1409	  1423	  1425	  1428	  1430	  1431	  1433	  1434	  1438
	  1452	  1454	  1457	  1459	  1460	  1462	  1463	  1467	  1481	  1483	  1486	  1488	  1489	  1491
	  1492	  1496	  1510	  1512	  1515	  1517	  1518	  1520	  1521	  1525	  1539	  1541	  1544	  1546
	  1547	  1549	  1550	  1554	  1568	  1570	  1573	  1575	  1576	  1578	  1579	  1583	  1597	  1599
	  1602	  1604	  1605	  1607	  1608	  1612	  1626	  1628	  1631	  1633	  1634	  1636	  1637	  1641
	  1655	  1657	  1660	  1662	  1663	  1665	  1666	  1670	  1684	  1686	  1689	  1691	  1692	  1694
	  1695	  1699	  1713	  1715	  1718	  1720	  1721	  1723	  1724	  1728	  1742	  1744	  1747	  1749
	  1750	  1752	  1753	  1757	  1771	  1773	  1776	  1778	  1779	  1781	  1782	  1786	  1800	  1802
	  1805	  1807	  1808	  1810	  1811	  1815	  1829	  1831	  1834	  1836	  1837	  1839	  1840	  1844
	  1845#	  1846	  1848	  1849	  1850	  1851	  1874	  1876	  1879	  1881	  1882	  1884	  1885	  1889
	  1903	  1905	  1908	  1910	  1911	  1913	  1914	  1918	  1932	  1934	  1937	  1939	  1940	  1942
	  1943	  1947	  1961	  1963	  1966	  1968	  1969	  1971	  1972	  1976	  1990	  1992	  1995	  1997
	  1998	  2000	  2001	  2005	  2019	  2021	  2024	  2026	  2027	  2029	  2030	  2034	  2048	  2050
	  2053	  2055	  2056	  2058	  2059	  2063	  2077	  2079	  2082	  2084	  2085	  2087	  2088	  2092
	  2106	  2108	  2111	  2113	  2114	  2116	  2117	  2121	  2135	  2137	  2140	  2142	  2143	  2145
	  2146	  2150	  2164	  2166	  2169	  2171	  2172	  2174	  2175	  2179	  2193	  2195	  2198	  2200
	  2201	  2203	  2204	  2208	  2222	  2224	  2227	  2229	  2230	  2232	  2233	  2237	  2251	  2253
	  2256	  2258	  2259	  2261	  2262	  2266	  2280	  2282	  2285	  2287	  2288	  2290	  2291	  2295
	  2309	  2311	  2314	  2316	  2317	  2319	  2320	  2324	  2338	  2340	  2343	  2345	  2346	  2348
	  2349	  2353	  2367	  2369	  2372	  2374	  2375	  2377	  2378	  2382	  2396	  2398	  2401	  2403
	  2404	  2406	  2407	  2411	  2425	  2427	  2430	  2432	  2433	  2435	  2436	  2440	  2454	  2456
	  2459	  2461	  2462	  2464	  2465	  2469	  2483	  2485	  2488	  2490	  2491	  2493	  2494	  2498     SEQ 0351
	  2512	  2514	  2517	  2519	  2520	  2522	  2523	  2527	  2541	  2543	  2546	  2548	  2549	  2551
	  2552	  2556	  2570	  2572	  2575	  2577	  2578	  2580	  2581	  2585	  2599	  2601	  2604	  2606
	  2607	  2609	  2610	  2614	  2628	  2630	  2633	  2635	  2636	  2638	  2639	  2643	  2657	  2659
	  2662	  2664	  2665	  2667	  2668	  2672	  2686	  2688	  2691	  2693	  2694	  2696	  2697	  2701
	  2715	  2717	  2720	  2722	  2723	  2725	  2726	  2730	  2744	  2746	  2749	  2751	  2752	  2754
	  2755	  2759	  2773	  2775	  2778	  2780	  2781	  2783	  2784	  2788	  2802	  2804	  2807	  2809
	  2810	  2812	  2813	  2817	  2831	  2833	  2836	  2838	  2839	  2841	  2842	  2846	  2860	  2862
	  2865	  2867	  2868	  2870	  2871	  2875	  2889	  2891	  2894	  2896	  2897	  2899	  2900	  2904
	  2906#	  2907	  2909	  2910	  2911	  2912	  2922	  2924	  2927	  2929	  2930	  2932	  2933	  2937
	  2940#	  2941	  2943	  2944	  2945	  2946	  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
	  3576	  3578	  3581	  3583	  3584	  3586	  3587	  3591	  3592#	  3593	  3595	  3596	  3597	  3598
	  3655	  3657	  3660	  3662	  3663	  3665	  3666	  3670	  3700	  3702	  3705	  3707	  3708	  3710
	  3711	  3715	  3745	  3747	  3750	  3752	  3753	  3755	  3756	  3760	  3790	  3792	  3795	  3797
	  3798	  3800	  3801	  3805	  3835	  3837	  3840	  3842	  3843	  3845	  3846	  3850	  3880	  3882
	  3885	  3887	  3888	  3890	  3891	  3895	  3925	  3927	  3930	  3932	  3933	  3935	  3936	  3940
	  3970	  3972	  3975	  3977	  3978	  3980	  3981	  3985	  4015	  4017	  4020	  4022	  4023	  4025
	  4026	  4030	  4060	  4062	  4065	  4067	  4068	  4070	  4071	  4075	  4105	  4107	  4110	  4112
	  4113	  4115	  4116	  4120	  4150	  4152	  4155	  4157	  4158	  4160	  4161	  4165	  4195	  4197
	  4200	  4202	  4203	  4205	  4206	  4210	  4240	  4242	  4245	  4247	  4248	  4250	  4251	  4255
	  4285	  4287	  4290	  4292	  4293	  4295	  4296	  4300	  4330	  4332	  4335	  4337	  4338	  4340
	  4341	  4345	  4348#	  4349	  4351	  4352	  4353	  4354	  4377	  4379	  4382	  4384	  4385	  4387
	  4388	  4392	  4406	  4408	  4411	  4413	  4414	  4416	  4417	  4421	  4435	  4437	  4440	  4442
	  4443	  4445	  4446	  4450	  4464	  4466	  4469	  4471	  4472	  4474	  4475	  4479	  4493	  4495
	  4498	  4500	  4501	  4503	  4504	  4508	  4522	  4524	  4527	  4529	  4530	  4532	  4533	  4537
	  4551	  4553	  4556	  4558	  4559	  4561	  4562	  4566	  4580	  4582	  4585	  4587	  4588	  4590
	  4591	  4595	  4609	  4611	  4614	  4616	  4617	  4619	  4620	  4624	  4638	  4640	  4643	  4645
	  4646	  4648	  4649	  4653	  4667	  4669	  4672	  4674	  4675	  4677	  4678	  4682	  4696	  4698
	  4701	  4703	  4704	  4706	  4707	  4711	  4725	  4727	  4730	  4732	  4733	  4735	  4736	  4740
	  4754	  4756	  4759	  4761	  4762	  4764	  4765	  4769	  4783	  4785	  4788	  4790	  4791	  4793
	  4794	  4798	  4812	  4814	  4817	  4819	  4820	  4822	  4823	  4827	  4841	  4843	  4846	  4848
	  4849	  4851	  4852	  4856	  4870	  4872	  4875	  4877	  4878	  4880	  4881	  4885	  4899	  4901
	  4904	  4906	  4907	  4909	  4910	  4914	  4928	  4930	  4933	  4935	  4936	  4938	  4939	  4943
	  4957	  4959	  4962	  4964	  4965	  4967	  4968	  4972	  4986	  4988	  4991	  4993	  4994	  4996
	  4997	  5001	  5015	  5017	  5020	  5022	  5023	  5025	  5026	  5030	  5044	  5046	  5049	  5051
	  5052	  5054	  5055	  5059	  5073	  5075	  5078	  5080	  5081	  5083	  5084	  5088	  5102	  5104
	  5107	  5109	  5110	  5112	  5113	  5117	  5131	  5133	  5136	  5138	  5139	  5141	  5142	  5146
	  5160	  5162	  5165	  5167	  5168	  5170	  5171	  5175	  5189	  5191	  5194	  5196	  5197	  5199
	  5200	  5204	  5218	  5220	  5223	  5225	  5226	  5228	  5229	  5233	  5247	  5249	  5252	  5254
	  5255	  5257	  5258	  5262	  5276	  5278	  5281	  5283	  5284	  5286	  5287	  5291	  5305	  5307
	  5310	  5312	  5313	  5315	  5316	  5320	  5334	  5336	  5339	  5341	  5342	  5344	  5345	  5349
	  5363	  5365	  5368	  5370	  5371	  5373	  5374	  5378	  5392	  5394	  5397	  5399	  5400	  5402
	  5403	  5407	  5408#	  5409	  5411	  5412	  5413	  5414	  5437	  5439	  5442	  5444	  5445	  5447
	  5448	  5452	  5466	  5468	  5471	  5473	  5474	  5476	  5477	  5481	  5495	  5497	  5500	  5502
	  5503	  5505	  5506	  5510	  5524	  5526	  5529	  5531	  5532	  5534	  5535	  5539	  5553	  5555
	  5558	  5560	  5561	  5563	  5564	  5568	  5582	  5584	  5587	  5589	  5590	  5592	  5593	  5597     SEQ 0352
	  5611	  5613	  5616	  5618	  5619	  5621	  5622	  5626	  5640	  5642	  5645	  5647	  5648	  5650
	  5651	  5655	  5669	  5671	  5674	  5676	  5677	  5679	  5680	  5684	  5698	  5700	  5703	  5705
	  5706	  5708	  5709	  5713	  5727	  5729	  5732	  5734	  5735	  5737	  5738	  5742	  5756	  5758
	  5761	  5763	  5764	  5766	  5767	  5771	  5785	  5787	  5790	  5792	  5793	  5795	  5796	  5800
	  5814	  5816	  5819	  5821	  5822	  5824	  5825	  5829	  5843	  5845	  5848	  5850	  5851	  5853
	  5854	  5858	  5872	  5874	  5877	  5879	  5880	  5882	  5883	  5887	  5901	  5903	  5906	  5908
	  5909	  5911	  5912	  5916	  5930	  5932	  5935	  5937	  5938	  5940	  5941	  5945	  5959	  5961
	  5964	  5966	  5967	  5969	  5970	  5974	  5988	  5990	  5993	  5995	  5996	  5998	  5999	  6003
	  6017	  6019	  6022	  6024	  6025	  6027	  6028	  6032	  6046	  6048	  6051	  6053	  6054	  6056
	  6057	  6061	  6075	  6077	  6080	  6082	  6083	  6085	  6086	  6090	  6104	  6106	  6109	  6111
	  6112	  6114	  6115	  6119	  6133	  6135	  6138	  6140	  6141	  6143	  6144	  6148	  6162	  6164
	  6167	  6169	  6170	  6172	  6173	  6177	  6191	  6193	  6196	  6198	  6199	  6201	  6202	  6206
	  6220	  6222	  6225	  6227	  6228	  6230	  6231	  6235	  6249	  6251	  6254	  6256	  6257	  6259
	  6260	  6264	  6278	  6280	  6283	  6285	  6286	  6288	  6289	  6293	  6307	  6309	  6312	  6314
	  6315	  6317	  6318	  6322	  6336	  6338	  6341	  6343	  6344	  6346	  6347	  6351	  6365	  6367
	  6370	  6372	  6373	  6375	  6376	  6380	  6394	  6396	  6399	  6401	  6402	  6404	  6405	  6409
	  6423	  6425	  6428	  6430	  6431	  6433	  6434	  6438	  6452	  6454	  6457	  6459	  6460	  6462
	  6463	  6467	  6468#	  6469	  6471	  6472	  6473	  6474	  6485	  6487	  6490	  6492	  6493	  6495
	  6496	  6500	  6503#	  6504	  6506	  6507	  6508	  6509	  6537	  6539	  6542	  6544	  6545	  6547
	  6548	  6552	  6568	  6570	  6573	  6575	  6576	  6578	  6579	  6583	  6599	  6601	  6604	  6606
	  6607	  6609	  6610	  6614	  6630	  6632	  6635	  6637	  6638	  6640	  6641	  6645	  6661	  6663
	  6666	  6668	  6669	  6671	  6672	  6676	  6692	  6694	  6697	  6699	  6700	  6702	  6703	  6707
	  6723	  6725	  6728	  6730	  6731	  6733	  6734	  6738	  6754	  6756	  6759	  6761	  6762	  6764
	  6765	  6769	  6785	  6787	  6790	  6792	  6793	  6795	  6796	  6800	  6816	  6818	  6821	  6823
	  6824	  6826	  6827	  6831	  6847	  6849	  6852	  6854	  6855	  6857	  6858	  6862	  6878	  6880
	  6883	  6885	  6886	  6888	  6889	  6893	  6909	  6911	  6914	  6916	  6917	  6919	  6920	  6924
	  6940	  6942	  6945	  6947	  6948	  6950	  6951	  6955	  6971	  6973	  6976	  6978	  6979	  6981
	  6982	  6986	  7002	  7004	  7007	  7009	  7010	  7012	  7013	  7017	  7033	  7035	  7038	  7040
	  7041	  7043	  7044	  7048	  7064	  7066	  7069	  7071	  7072	  7074	  7075	  7079	  7095	  7097
	  7100	  7102	  7103	  7105	  7106	  7110	  7126	  7128	  7131	  7133	  7134	  7136	  7137	  7141
	  7157	  7159	  7162	  7164	  7165	  7167	  7168	  7172	  7188	  7190	  7193	  7195	  7196	  7198
	  7199	  7203	  7219	  7221	  7224	  7226	  7227	  7229	  7230	  7234	  7250	  7252	  7255	  7257
	  7258	  7260	  7261	  7265	  7281	  7283	  7286	  7288	  7289	  7291	  7292	  7296	  7312	  7314
	  7317	  7319	  7320	  7322	  7323	  7327	  7343	  7345	  7348	  7350	  7351	  7353	  7354	  7358
	  7374	  7376	  7379	  7381	  7382	  7384	  7385	  7389	  7405	  7407	  7410	  7412	  7413	  7415
	  7416	  7420	  7436	  7438	  7441	  7443	  7444	  7446	  7447	  7451	  7467	  7469	  7472	  7474
	  7475	  7477	  7478	  7482	  7498	  7500	  7503	  7505	  7506	  7508	  7509	  7513	  7529	  7531
	  7534	  7536	  7537	  7539	  7540	  7544	  7560	  7562	  7565	  7567	  7568	  7570	  7571	  7575
	  7591	  7593	  7596	  7598	  7599	  7601	  7602	  7606	  7622	  7624	  7627	  7629	  7630	  7632
	  7633	  7637	  7638#	  7639	  7641	  7642	  7643	  7644	  7671	  7673	  7676	  7678	  7679	  7681
	  7682	  7686	  7702	  7704	  7707	  7709	  7710	  7712	  7713	  7717	  7733	  7735	  7738	  7740
	  7741	  7743	  7744	  7748	  7764	  7766	  7769	  7771	  7772	  7774	  7775	  7779	  7795	  7797
	  7800	  7802	  7803	  7805	  7806	  7810	  7826	  7828	  7831	  7833	  7834	  7836	  7837	  7841
	  7857	  7859	  7862	  7864	  7865	  7867	  7868	  7872	  7888	  7890	  7893	  7895	  7896	  7898
	  7899	  7903	  7919	  7921	  7924	  7926	  7927	  7929	  7930	  7934	  7950	  7952	  7955	  7957
	  7958	  7960	  7961	  7965	  7981	  7983	  7986	  7988	  7989	  7991	  7992	  7996	  8012	  8014
	  8017	  8019	  8020	  8022	  8023	  8027	  8043	  8045	  8048	  8050	  8051	  8053	  8054	  8058
	  8074	  8076	  8079	  8081	  8082	  8084	  8085	  8089	  8105	  8107	  8110	  8112	  8113	  8115
	  8116	  8120	  8136	  8138	  8141	  8143	  8144	  8146	  8147	  8151	  8167	  8169	  8172	  8174
	  8175	  8177	  8178	  8182	  8198	  8200	  8203	  8205	  8206	  8208	  8209	  8213	  8229	  8231
	  8234	  8236	  8237	  8239	  8240	  8244	  8260	  8262	  8265	  8267	  8268	  8270	  8271	  8275
	  8291	  8293	  8296	  8298	  8299	  8301	  8302	  8306	  8322	  8324	  8327	  8329	  8330	  8332
	  8333	  8337	  8353	  8355	  8358	  8360	  8361	  8363	  8364	  8368	  8384	  8386	  8389	  8391     SEQ 0353
	  8392	  8394	  8395	  8399	  8415	  8417	  8420	  8422	  8423	  8425	  8426	  8430	  8446	  8448
	  8451	  8453	  8454	  8456	  8457	  8461	  8477	  8479	  8482	  8484	  8485	  8487	  8488	  8492
	  8508	  8510	  8513	  8515	  8516	  8518	  8519	  8523	  8539	  8541	  8544	  8546	  8547	  8549
	  8550	  8554	  8570	  8572	  8575	  8577	  8578	  8580	  8581	  8585	  8601	  8603	  8606	  8608
	  8609	  8611	  8612	  8616	  8632	  8634	  8637	  8639	  8640	  8642	  8643	  8647	  8663	  8665
	  8668	  8670	  8671	  8673	  8674	  8678	  8694	  8696	  8699	  8701	  8702	  8704	  8705	  8709
	  8725	  8727	  8730	  8732	  8733	  8735	  8736	  8740	  8756	  8758	  8761	  8763	  8764	  8766
	  8767	  8771	  8772#	  8773	  8775	  8776	  8777	  8778	  8813	  8815	  8818	  8820	  8821	  8823
	  8824	  8828	  8848	  8850	  8853	  8855	  8856	  8858	  8859	  8863	  8883	  8885	  8888	  8890
	  8891	  8893	  8894	  8898	  8918	  8920	  8923	  8925	  8926	  8928	  8929	  8933	  8953	  8955
	  8958	  8960	  8961	  8963	  8964	  8968	  8988	  8990	  8993	  8995	  8996	  8998	  8999	  9003
	  9023	  9025	  9028	  9030	  9031	  9033	  9034	  9038	  9058	  9060	  9063	  9065	  9066	  9068
	  9069	  9073	  9093	  9095	  9098	  9100	  9101	  9103	  9104	  9108	  9128	  9130	  9133	  9135
	  9136	  9138	  9139	  9143	  9163	  9165	  9168	  9170	  9171	  9173	  9174	  9178	  9198	  9200
	  9203	  9205	  9206	  9208	  9209	  9213	  9233	  9235	  9238	  9240	  9241	  9243	  9244	  9248
	  9268	  9270	  9273	  9275	  9276	  9278	  9279	  9283	  9303	  9305	  9308	  9310	  9311	  9313
	  9314	  9318	  9338	  9340	  9343	  9345	  9346	  9348	  9349	  9353	  9373	  9375	  9378	  9380
	  9381	  9383	  9384	  9388	  9408	  9410	  9413	  9415	  9416	  9418	  9419	  9423	  9443	  9445
	  9448	  9450	  9451	  9453	  9454	  9458	  9478	  9480	  9483	  9485	  9486	  9488	  9489	  9493
	  9513	  9515	  9518	  9520	  9521	  9523	  9524	  9528	  9548	  9550	  9553	  9555	  9556	  9558
	  9559	  9563	  9583	  9585	  9588	  9590	  9591	  9593	  9594	  9598	  9618	  9620	  9623	  9625
	  9626	  9628	  9629	  9633	  9653	  9655	  9658	  9660	  9661	  9663	  9664	  9668	  9688	  9690
	  9693	  9695	  9696	  9698	  9699	  9703	  9723	  9725	  9728	  9730	  9731	  9733	  9734	  9738
	  9758	  9760	  9763	  9765	  9766	  9768	  9769	  9773	  9793	  9795	  9798	  9800	  9801	  9803
	  9804	  9808	  9828	  9830	  9833	  9835	  9836	  9838	  9839	  9843	  9863	  9865	  9868	  9870
	  9871	  9873	  9874	  9878	  9898	  9900	  9903	  9905	  9906	  9908	  9909	  9913	  9933	  9935
	  9938	  9940	  9941	  9943	  9944	  9948	  9968	  9970	  9973	  9975	  9976	  9978	  9979	  9983
	 10003	 10005	 10008	 10010	 10011	 10013	 10014	 10018	 10038	 10040	 10043	 10045	 10046	 10048
	 10049	 10053	 10054#	 10055	 10057	 10058	 10059	 10060	 10095	 10097	 10100	 10102	 10103	 10105
	 10106	 10110	 10130	 10132	 10135	 10137	 10138	 10140	 10141	 10145	 10165	 10167	 10170	 10172
	 10173	 10175	 10176	 10180	 10200	 10202	 10205	 10207	 10208	 10210	 10211	 10215	 10235	 10237
	 10240	 10242	 10243	 10245	 10246	 10250	 10270	 10272	 10275	 10277	 10278	 10280	 10281	 10285
	 10305	 10307	 10310	 10312	 10313	 10315	 10316	 10320	 10340	 10342	 10345	 10347	 10348	 10350
	 10351	 10355	 10375	 10377	 10380	 10382	 10383	 10385	 10386	 10390	 10410	 10412	 10415	 10417
	 10418	 10420	 10421	 10425	 10445	 10447	 10450	 10452	 10453	 10455	 10456	 10460	 10480	 10482
	 10485	 10487	 10488	 10490	 10491	 10495	 10515	 10517	 10520	 10522	 10523	 10525	 10526	 10530
	 10550	 10552	 10555	 10557	 10558	 10560	 10561	 10565	 10585	 10587	 10590	 10592	 10593	 10595
	 10596	 10600	 10620	 10622	 10625	 10627	 10628	 10630	 10631	 10635	 10655	 10657	 10660	 10662
	 10663	 10665	 10666	 10670	 10690	 10692	 10695	 10697	 10698	 10700	 10701	 10705	 10725	 10727
	 10730	 10732	 10733	 10735	 10736	 10740	 10760	 10762	 10765	 10767	 10768	 10770	 10771	 10775
	 10795	 10797	 10800	 10802	 10803	 10805	 10806	 10810	 10830	 10832	 10835	 10837	 10838	 10840
	 10841	 10845	 10865	 10867	 10870	 10872	 10873	 10875	 10876	 10880	 10900	 10902	 10905	 10907
	 10908	 10910	 10911	 10915	 10935	 10937	 10940	 10942	 10943	 10945	 10946	 10950	 10970	 10972
	 10975	 10977	 10978	 10980	 10981	 10985	 11005	 11007	 11010	 11012	 11013	 11015	 11016	 11020
	 11040	 11042	 11045	 11047	 11048	 11050	 11051	 11055	 11075	 11077	 11080	 11082	 11083	 11085
	 11086	 11090	 11110	 11112	 11115	 11117	 11118	 11120	 11121	 11125	 11145	 11147	 11150	 11152
	 11153	 11155	 11156	 11160	 11180	 11182	 11185	 11187	 11188	 11190	 11191	 11195	 11215	 11217
	 11220	 11222	 11223	 11225	 11226	 11230	 11250	 11252	 11255	 11257	 11258	 11260	 11261	 11265
	 11285	 11287	 11290	 11292	 11293	 11295	 11296	 11300	 11320	 11322	 11325	 11327	 11328	 11330
	 11331	 11335	 11336#	 11337	 11339	 11340	 11341	 11342	 11369	 11371	 11374	 11376	 11377	 11379
	 11380	 11384	 11400	 11402	 11405	 11407	 11408	 11410	 11411	 11415	 11431	 11433	 11436	 11438
	 11439	 11441	 11442	 11446	 11462	 11464	 11467	 11469	 11470	 11472	 11473	 11477	 11493	 11495
	 11498	 11500	 11501	 11503	 11504	 11508	 11524	 11526	 11529	 11531	 11532	 11534	 11535	 11539     SEQ 0354
	 11555	 11557	 11560	 11562	 11563	 11565	 11566	 11570	 11586	 11588	 11591	 11593	 11594	 11596
	 11597	 11601	 11617	 11619	 11622	 11624	 11625	 11627	 11628	 11632	 11648	 11650	 11653	 11655
	 11656	 11658	 11659	 11663	 11679	 11681	 11684	 11686	 11687	 11689	 11690	 11694	 11710	 11712
	 11715	 11717	 11718	 11720	 11721	 11725	 11741	 11743	 11746	 11748	 11749	 11751	 11752	 11756
	 11772	 11774	 11777	 11779	 11780	 11782	 11783	 11787	 11803	 11805	 11808	 11810	 11811	 11813
	 11814	 11818	 11834	 11836	 11839	 11841	 11842	 11844	 11845	 11849	 11865	 11867	 11870	 11872
	 11873	 11875	 11876	 11880	 11896	 11898	 11901	 11903	 11904	 11906	 11907	 11911	 11927	 11929
	 11932	 11934	 11935	 11937	 11938	 11942	 11958	 11960	 11963	 11965	 11966	 11968	 11969	 11973
	 11989	 11991	 11994	 11996	 11997	 11999	 12000	 12004	 12020	 12022	 12025	 12027	 12028	 12030
	 12031	 12035	 12051	 12053	 12056	 12058	 12059	 12061	 12062	 12066	 12082	 12084	 12087	 12089
	 12090	 12092	 12093	 12097	 12113	 12115	 12118	 12120	 12121	 12123	 12124	 12128	 12144	 12146
	 12149	 12151	 12152	 12154	 12155	 12159	 12175	 12177	 12180	 12182	 12183	 12185	 12186	 12190
	 12206	 12208	 12211	 12213	 12214	 12216	 12217	 12221	 12237	 12239	 12242	 12244	 12245	 12247
	 12248	 12252	 12268	 12270	 12273	 12275	 12276	 12278	 12279	 12283	 12299	 12301	 12304	 12306
	 12307	 12309	 12310	 12314	 12330	 12332	 12335	 12337	 12338	 12340	 12341	 12345	 12361	 12363
	 12366	 12368	 12369	 12371	 12372	 12376	 12392	 12394	 12397	 12399	 12400	 12402	 12403	 12407
	 12423	 12425	 12428	 12430	 12431	 12433	 12434	 12438	 12454	 12456	 12459	 12461	 12462	 12464
	 12465	 12469	 12470#	 12471	 12473	 12474	 12475	 12476	 12503	 12505	 12508	 12510	 12511	 12513
	 12514	 12518	 12534	 12536	 12539	 12541	 12542	 12544	 12545	 12549	 12565	 12567	 12570	 12572
	 12573	 12575	 12576	 12580	 12596	 12598	 12601	 12603	 12604	 12606	 12607	 12611	 12627	 12629
	 12632	 12634	 12635	 12637	 12638	 12642	 12658	 12660	 12663	 12665	 12666	 12668	 12669	 12673
	 12689	 12691	 12694	 12696	 12697	 12699	 12700	 12704	 12720	 12722	 12725	 12727	 12728	 12730
	 12731	 12735	 12751	 12753	 12756	 12758	 12759	 12761	 12762	 12766	 12782	 12784	 12787	 12789
	 12790	 12792	 12793	 12797	 12813	 12815	 12818	 12820	 12821	 12823	 12824	 12828	 12844	 12846
	 12849	 12851	 12852	 12854	 12855	 12859	 12875	 12877	 12880	 12882	 12883	 12885	 12886	 12890
	 12906	 12908	 12911	 12913	 12914	 12916	 12917	 12921	 12937	 12939	 12942	 12944	 12945	 12947
	 12948	 12952	 12968	 12970	 12973	 12975	 12976	 12978	 12979	 12983	 12999	 13001	 13004	 13006
	 13007	 13009	 13010	 13014	 13030	 13032	 13035	 13037	 13038	 13040	 13041	 13045	 13061	 13063
	 13066	 13068	 13069	 13071	 13072	 13076	 13092	 13094	 13097	 13099	 13100	 13102	 13103	 13107
	 13123	 13125	 13128	 13130	 13131	 13133	 13134	 13138	 13154	 13156	 13159	 13161	 13162	 13164
	 13165	 13169	 13185	 13187	 13190	 13192	 13193	 13195	 13196	 13200	 13216	 13218	 13221	 13223
	 13224	 13226	 13227	 13231	 13247	 13249	 13252	 13254	 13255	 13257	 13258	 13262	 13278	 13280
	 13283	 13285	 13286	 13288	 13289	 13293	 13309	 13311	 13314	 13316	 13317	 13319	 13320	 13324
	 13340	 13342	 13345	 13347	 13348	 13350	 13351	 13355	 13371	 13373	 13376	 13378	 13379	 13381
	 13382	 13386	 13402	 13404	 13407	 13409	 13410	 13412	 13413	 13417	 13433	 13435	 13438	 13440
	 13441	 13443	 13444	 13448	 13464	 13466	 13469	 13471	 13472	 13474	 13475	 13479	 13495	 13497
	 13500	 13502	 13503	 13505	 13506	 13510	 13526	 13528	 13531	 13533	 13534	 13536	 13537	 13541
	 13557	 13559	 13562	 13564	 13565	 13567	 13568	 13572	 13588	 13590	 13593	 13595	 13596	 13598
	 13599	 13603	 13604#	 13605	 13607	 13608	 13609	 13610	 13639	 13641	 13644	 13646	 13647	 13649
	 13650	 13654	 13671	 13673	 13676	 13678	 13679	 13681	 13682	 13686	 13703	 13705	 13708	 13710
	 13711	 13713	 13714	 13718	 13735	 13737	 13740	 13742	 13743	 13745	 13746	 13750	 13767	 13769
	 13772	 13774	 13775	 13777	 13778	 13782	 13799	 13801	 13804	 13806	 13807	 13809	 13810	 13814
	 13831	 13833	 13836	 13838	 13839	 13841	 13842	 13846	 13863	 13865	 13868	 13870	 13871	 13873
	 13874	 13878	 13895	 13897	 13900	 13902	 13903	 13905	 13906	 13910	 13927	 13929	 13932	 13934
	 13935	 13937	 13938	 13942	 13959	 13961	 13964	 13966	 13967	 13969	 13970	 13974	 13991	 13993
	 13996	 13998	 13999	 14001	 14002	 14006	 14023	 14025	 14028	 14030	 14031	 14033	 14034	 14038
	 14055	 14057	 14060	 14062	 14063	 14065	 14066	 14070	 14087	 14089	 14092	 14094	 14095	 14097
	 14098	 14102	 14119	 14121	 14124	 14126	 14127	 14129	 14130	 14134	 14151	 14153	 14156	 14158
	 14159	 14161	 14162	 14166	 14183	 14185	 14188	 14190	 14191	 14193	 14194	 14198	 14215	 14217
	 14220	 14222	 14223	 14225	 14226	 14230	 14247	 14249	 14252	 14254	 14255	 14257	 14258	 14262
	 14279	 14281	 14284	 14286	 14287	 14289	 14290	 14294	 14311	 14313	 14316	 14318	 14319	 14321
	 14322	 14326	 14343	 14345	 14348	 14350	 14351	 14353	 14354	 14358	 14375	 14377	 14380	 14382
	 14383	 14385	 14386	 14390	 14407	 14409	 14412	 14414	 14415	 14417	 14418	 14422	 14439	 14441     SEQ 0355
	 14444	 14446	 14447	 14449	 14450	 14454	 14471	 14473	 14476	 14478	 14479	 14481	 14482	 14486
	 14503	 14505	 14508	 14510	 14511	 14513	 14514	 14518	 14535	 14537	 14540	 14542	 14543	 14545
	 14546	 14550	 14567	 14569	 14572	 14574	 14575	 14577	 14578	 14582	 14599	 14601	 14604	 14606
	 14607	 14609	 14610	 14614	 14631	 14633	 14636	 14638	 14639	 14641	 14642	 14646	 14663	 14665
	 14668	 14670	 14671	 14673	 14674	 14678	 14695	 14697	 14700	 14702	 14703	 14705	 14706	 14710
	 14727	 14729	 14732	 14734	 14735	 14737	 14738	 14742	 14759	 14761	 14764	 14766	 14767	 14769
	 14770	 14774	 14775#	 14776	 14778	 14779	 14780	 14781	 14810	 14812	 14815	 14817	 14818	 14820
	 14821	 14825	 14842	 14844	 14847	 14849	 14850	 14852	 14853	 14857	 14874	 14876	 14879	 14881
	 14882	 14884	 14885	 14889	 14906	 14908	 14911	 14913	 14914	 14916	 14917	 14921	 14938	 14940
	 14943	 14945	 14946	 14948	 14949	 14953	 14970	 14972	 14975	 14977	 14978	 14980	 14981	 14985
	 15002	 15004	 15007	 15009	 15010	 15012	 15013	 15017	 15034	 15036	 15039	 15041	 15042	 15044
	 15045	 15049	 15066	 15068	 15071	 15073	 15074	 15076	 15077	 15081	 15098	 15100	 15103	 15105
	 15106	 15108	 15109	 15113	 15130	 15132	 15135	 15137	 15138	 15140	 15141	 15145	 15162	 15164
	 15167	 15169	 15170	 15172	 15173	 15177	 15194	 15196	 15199	 15201	 15202	 15204	 15205	 15209
	 15226	 15228	 15231	 15233	 15234	 15236	 15237	 15241	 15258	 15260	 15263	 15265	 15266	 15268
	 15269	 15273	 15290	 15292	 15295	 15297	 15298	 15300	 15301	 15305	 15322	 15324	 15327	 15329
	 15330	 15332	 15333	 15337	 15354	 15356	 15359	 15361	 15362	 15364	 15365	 15369	 15386	 15388
	 15391	 15393	 15394	 15396	 15397	 15401	 15418	 15420	 15423	 15425	 15426	 15428	 15429	 15433
	 15450	 15452	 15455	 15457	 15458	 15460	 15461	 15465	 15482	 15484	 15487	 15489	 15490	 15492
	 15493	 15497	 15514	 15516	 15519	 15521	 15522	 15524	 15525	 15529	 15546	 15548	 15551	 15553
	 15554	 15556	 15557	 15561	 15578	 15580	 15583	 15585	 15586	 15588	 15589	 15593	 15610	 15612
	 15615	 15617	 15618	 15620	 15621	 15625	 15642	 15644	 15647	 15649	 15650	 15652	 15653	 15657
	 15674	 15676	 15679	 15681	 15682	 15684	 15685	 15689	 15706	 15708	 15711	 15713	 15714	 15716
	 15717	 15721	 15738	 15740	 15743	 15745	 15746	 15748	 15749	 15753	 15770	 15772	 15775	 15777
	 15778	 15780	 15781	 15785	 15802	 15804	 15807	 15809	 15810	 15812	 15813	 15817	 15834	 15836
	 15839	 15841	 15842	 15844	 15845	 15849	 15866	 15868	 15871	 15873	 15874	 15876	 15877	 15881
	 15898	 15900	 15903	 15905	 15906	 15908	 15909	 15913	 15930	 15932	 15935	 15937	 15938	 15940
	 15941	 15945	 15948#	 15949	 15951	 15952	 15953	 15954	 15995	 15997	 16000	 16002	 16003	 16005
	 16006	 16010	 16032	 16034	 16037	 16039	 16040	 16042	 16043	 16047	 16069	 16071	 16074	 16076
	 16077	 16079	 16080	 16084	 16106	 16108	 16111	 16113	 16114	 16116	 16117	 16121	 16143	 16145
	 16148	 16150	 16151	 16153	 16154	 16158	 16180	 16182	 16185	 16187	 16188	 16190	 16191	 16195
	 16217	 16219	 16222	 16224	 16225	 16227	 16228	 16232	 16254	 16256	 16259	 16261	 16262	 16264
	 16265	 16269	 16291	 16293	 16296	 16298	 16299	 16301	 16302	 16306	 16328	 16330	 16333	 16335
	 16336	 16338	 16339	 16343	 16365	 16367	 16370	 16372	 16373	 16375	 16376	 16380	 16402	 16404
	 16407	 16409	 16410	 16412	 16413	 16417	 16439	 16441	 16444	 16446	 16447	 16449	 16450	 16454
	 16476	 16478	 16481	 16483	 16484	 16486	 16487	 16491	 16513	 16515	 16518	 16520	 16521	 16523
	 16524	 16528	 16550	 16552	 16555	 16557	 16558	 16560	 16561	 16565	 16587	 16589	 16592	 16594
	 16595	 16597	 16598	 16602	 16624	 16626	 16629	 16631	 16632	 16634	 16635	 16639	 16661	 16663
	 16666	 16668	 16669	 16671	 16672	 16676	 16698	 16700	 16703	 16705	 16706	 16708	 16709	 16713
	 16735	 16737	 16740	 16742	 16743	 16745	 16746	 16750	 16772	 16774	 16777	 16779	 16780	 16782
	 16783	 16787	 16809	 16811	 16814	 16816	 16817	 16819	 16820	 16824	 16846	 16848	 16851	 16853
	 16854	 16856	 16857	 16861	 16883	 16885	 16888	 16890	 16891	 16893	 16894	 16898	 16920	 16922
	 16925	 16927	 16928	 16930	 16931	 16935	 16957	 16959	 16962	 16964	 16965	 16967	 16968	 16972
	 16994	 16996	 16999	 17001	 17002	 17004	 17005	 17009	 17031	 17033	 17036	 17038	 17039	 17041
	 17042	 17046	 17068	 17070	 17073	 17075	 17076	 17078	 17079	 17083	 17105	 17107	 17110	 17112
	 17113	 17115	 17116	 17120	 17142	 17144	 17147	 17149	 17150	 17152	 17153	 17157	 17179	 17181
	 17184	 17186	 17187	 17189	 17190	 17194	 17216	 17218	 17221	 17223	 17224	 17226	 17227	 17231
	 17253	 17255	 17258	 17260	 17261	 17263	 17264	 17268	 17290	 17292	 17295	 17297	 17298	 17300
	 17301	 17305
ADR	   750#	   761	   802	   802#	   807	   831	   831#	   836	   860	   860#	   865	   889	   889#	   894
	   918	   918#	   923	   947	   947#	   952	   976	   976#	   981	  1005	  1005#	  1010	  1034	  1034#
	  1039	  1063	  1063#	  1068	  1092	  1092#	  1097	  1121	  1121#	  1126	  1150	  1150#	  1155	  1179
	  1179#	  1184	  1208	  1208#	  1213	  1237	  1237#	  1242	  1266	  1266#	  1271	  1295	  1295#	  1300     SEQ 0356
	  1324	  1324#	  1329	  1353	  1353#	  1358	  1382	  1382#	  1387	  1411	  1411#	  1416	  1440	  1440#
	  1445	  1469	  1469#	  1474	  1498	  1498#	  1503	  1527	  1527#	  1532	  1556	  1556#	  1561	  1585
	  1585#	  1590	  1614	  1614#	  1619	  1643	  1643#	  1648	  1672	  1672#	  1677	  1701	  1701#	  1706
	  1730	  1730#	  1735	  1759	  1759#	  1764	  1788	  1788#	  1793	  1817	  1817#	  1822	  1862	  1862#
	  1867	  1891	  1891#	  1896