Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/dskak.seq
There are no other files named dskak.seq in the archive.
;DSKAK







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

	PRODUCT CODE:		AH-E317A-DD

	DIAGNOSTIC CODE:	DSKAK

	PRODUCT NAME:	 	DSKAKA0 DECSYSTEM 2020 BASIC
				INSTRUCTION DIAGNOSTIC (11)

	VERSION:		0.1

	DATE RELEASED:		MARCH 1978

	MAINTAINED BY:		DIAGNOSTIC ENGINEERING

	AUTHOR:			JOHN R. KIRCHOFF

		        COPYRIGHT (C) 1978

	        DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

	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 EXCEPT 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  DIGITAL  EQUIPMENT
	CORPORATION.

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

	DIGITAL EQUIPMENT CORPORATION ASSUMES NO  RESPONSIBILITY FOR THE
	USE  OR  RELIABILITY  OF  ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
	SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
							MAINDEC-10-DSKAK.TXT
							PAGE 2                                                             SEQ 0003

			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-DSKAK.TXT
							PAGE 3                                                             SEQ 0004

1.0	ABSTRACT

	THIS DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC IS THE
	ELEVENTH IN A SERIES OF DECSYSTEM 2020 PROCESSOR DIAGNOSTICS.

	THE DIAGNOSTIC PERFORMS LOGIC TESTING OF THE PROCESSOR
	AND MICRO-CODE MULTIPLY, INTERGER MULTIPLY, DIVIDE
	AND INTEGER DIVIDE FUNCTIONS.

2.0	REQUIREMENTS

2.1	EQUIPMENT

	A DECSYSTEM 2020 EQUIPPED WITH A MINIMUM OF 32K OF MEMORY

	CONSOLE PROCESSOR
	CONSOLE TELETYPE
	LOAD DEVICE

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

	****** NOTE ******
	THIS DIAGNOSTIC REQUIRES THAT THE DECSYSTEM 2020 SUBROUTINE
	PROGRAM BE RESIDENT IN THE DECSYSTEM 2020.

	FOLLOW THE APPROPRIATE DIAGNOSTIC LOADING PROCEDURES.
							MAINDEC-10-DSKAK.TXT
							PAGE 4                                                             SEQ 0005

3.2	STARTING PROCEDURE

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

	    RUN UNDER "SMMON".
	    THE FOLLOWING QUESTIONS WILL BE ASKED TO 
	    SELECT THE OPERATIONAL SWITCHES:

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

		    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-DSKAK.TXT
							PAGE 5                                                             SEQ 0006

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-DSKAK.TXT
							PAGE 6                                                             SEQ 0007

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	0	ALLOW CACHE USE
			1	INHIBIT CACHE
							MAINDEC-10-DSKAK.TXT
							PAGE 7                                                             SEQ 0008

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.

	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 PRINTED BY THE
	CONSOLE PROCESSOR.

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-DSKAK.TXT
							PAGE 8                                                             SEQ 0009

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 'DSKAK.LPT'

	    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-DSKAK.TXT
							PAGE 9                                                             SEQ 0010

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
		HISTORY FILE FOR DSKAK                                                                                     SEQ 0011
		----------------------

---------------------------------------------------------------

CODE:		MAINDEC-10-DSKAK

TITLE:		DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11)

VERSION:	0.1

DATE:		MARCH 1978

REASON:		ORIGINAL RELEASE OF THIS PROGRAM FOR KS-10.
---------------------------------------------------------------
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1
DSKAKT	MAC	29-Mar-78 09:55		CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978                                        SEQ 0012

     1					;DSKAK
     2
     3			000000		MCNVER==0
     4			000001		DECVER==1
     5
     6
     7						XLIST
     8						LIST
     9						LALL
    10
    11						NAME	\MCNVER,\DECVER^
    12
    13					TITLE	DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1
    14					^
    15
    16
    17					;MULTIPLY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE
    18
    19					;COPYRIGHT 1978
    20					;DIGITAL EQUIPMENT CORPORATION
    21					;MARLBORO, MASS. 01752
    22
    23					;JOHN R. KIRCHOFF
    24
    25	000137					LOC	137
    26	000137	000000	000001			MCNVER,,DECVER
    27
    28						.DIRECTIVE	.OKOVL
    29						NOSYM
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2
DSKAKT	MAC	29-Mar-78 09:55		DIAGNOSTIC PARAMETERS                                                              SEQ 0013

    30					SUBTTL	DIAGNOSTIC PARAMETERS
    31
    32					;OPERATOR DEFINITIONS
    33
    34		001000	000000		OPDEF	ER1	[1B8]
    35		002000	000000		OPDEF	ER2	[2B8]
    36		003000	000000		OPDEF	ER3	[3B8]
    37		004000	000000		OPDEF	ER4	[4B8]
    38		005000	000000		OPDEF	ER5	[5B8]
    39		006000	000000		OPDEF	ER6	[6B8]
    40		007000	000000		OPDEF	ER7	[7B8]
    41		010000	000000		OPDEF	ER10	[10B8]
    42		011000	000000		OPDEF	ER11	[11B8]
    43		012000	000000		OPDEF	ER12	[12B8]
    44		013000	000000		OPDEF	ER13	[13B8]
    45
    46			043573		LUUO1=ERRMES
    47			043573		LUUO2=ERRMES
    48			043573		LUUO3=ERRMES
    49			043573		LUUO4=ERRMES
    50			043573		LUUO5=ERRMES
    51			043573		LUUO6=ERRMES
    52			043573		LUUO7=ERRMES
    53			043573		LUUO10=ERRMES
    54			043573		LUUO11=ERRMES
    55			043573		LUUO12=ERRMES
    56			043573		LUUO13=ERRMES
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3
DSKAKT	MAC	29-Mar-78 09:55		DIAGNOSTIC PARAMETERS                                                              SEQ 0014

    57					;SUBROUTINE ASSEMBLY DEFINITIONS
    58
    59			000040		DEBUG=40
    60			000001		EXCASB=1
    61			000001		USRASB=1
    62			000001		PGMEND=1
    63			000001		ERDIAG=1
    64
    65					;SPECIAL FEATURE DEFINITIONS
    66
    67			030000		SADR1=BEGIN
    68			030000		SADR2=BEGIN
    69			030000		SADR3=BEGIN
    70			030007		SADR4=SRTDDT
    71		254000	030061		SADR5=JRST $BEND2
    72		254000	030000		SADR6=JRST BEGIN
    73		254000	030000		SADR7=JRST BEGIN
    74		254000	030000		SADR8=JRST BEGIN
    75		254000	030000		SADR9=JRST BEGIN
    76		254000	030000		SADR10=JRST BEGIN
    77		254000	030000		SADR11=JRST BEGIN
    78
    79					;SPECIAL FEATURE PARAMETERS
    80
    81			000000		PAREA0=0
    82			000000		PAREA1=0
    83			000000		PAREA2=0
    84		446353	415300		PAREA3=SIXBIT/DSKAK/
    85		645560	000000		PAREA4=SIXBIT/TMP/
    86			000000		PAREA5=0
    87			000000		PAREA6=0
    88			000001		ITERAT==1
    89
    90					;MACROS
    91
    92					DEFINE	SAVEAC	(A,B)<
    93						MOVEI	AC+2,.		;SAVE TEST PC
    94						MOVEM	AC+2,TESTPC
    95						MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
    96						MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 4
DSKAKT	MAC	29-Mar-78 09:55		DIAGNOSTIC PARAMETERS                                                              SEQ 0015

    97					DEFINE	MOP1	(T,A1,A2,EE,R1,R2)<
    98					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND
    99					;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   100					;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY.
   101					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   102					
   103					F'T'0:	AA1=A1				;INITIAL C(AC)
   104						MOVE	AC,[A1]			;PRELOAD AC (MULTIPLIER)
   105						AA2=A2				;INITIAL C(AC+1)
   106						MOVE	AC+1,[A2]		;PRELOAD AC+1
   107						AEE=EE				;INITIAL C(E)
   108						MOVE	E,[EE]			;PRELOAD E (MULTIPLICAND)
   109						MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   110						AR1=R1				;EXPECTED RESULT IN AC
   111						CAME	AC,[R1]			;IS HIGH PRODUCT CORRECT?
   112						ER3	AC,T'1		;HIGH PRODUCT FAILED
   113						AR2=R2				;EXPECTED RESULT IN AC+1
   114						CAME	AC+1,[R2]		;IS LOW PRODUCT CORRECT?
   115						ER4	AC+1,T'2		;LOW PRODUCT FAILED
   116						AEE=EE				;INITIAL C(E)
   117						CAME	E,[EE]			;WAS C(E) CLOBBERED?
   118						ER5	E,T'3			;C(E) WAS CLOBBERED
   119						JUMPL	AC+2,F'T'0		;LOOP ON ERROR SWITCH>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1
PARAM	KSM	28-Mar-78 11:27		CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978                                        SEQ 0016

   120					SUBTTL	CONSOLE DATA SWITCH ASSIGNMENTS, MARCH 1978
   121
   122					DEFINE	S,<;*********************************************************************>
   123
   124					S^;*********************************************************************^
   125					;*DATA SWITCHES
   126					;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
   127					;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
   128					S^;*********************************************************************^
   129
   130			400000		ABORT==	400000			;ABORT PROGRAM ON PASS COMPLETION
   131			200000		RSTART==200000			;RESTART TEST, PRINT TOTALS
   132			100000		TOTALS==100000			;PRINT TOTALS, CONTINUE
   133
   134			040000		NOPNT==	040000			;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
   135			020000		PNTLPT==020000			;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
   136			010000		DING==	010000			;RING BELL ON ERROR
   137
   138			004000		LOOPER==004000			;ENTER EXERCISE/CHECK LOOP ON ERROR
   139			002000		ERSTOP==002000			;HALT ON TEST ERROR
   140			001000		PALERS==001000			;PRINT ALL ERRORS
   141
   142			000400		RELIAB==000400			;RELIABILITY MODE
   143			000200		TXTINH==000200			;INHIBIT ERROR TEXT
   144			000100		INHPAG==000100			;INHIBIT PAGING
   145
   146			000040		MODDVC==000040			;MODIFY DEVICE CODE
   147			000020		INHCSH==000020			;INHIBIT CACHE
   148			000010		OPRSEL==000010			;OPERATOR SELECTION
   149
   150			000004		CHAIN==	000004			;CHAIN CONTROL SWITCH
   151
   152									;SWITCH 16 RESERVED
   153
   154									;SWITCH 17 RESERVED !!!
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0017

   155					SUBTTL	PROGRAM/SUBROUTINE PARAMETERS
   156
   157					S^;*********************************************************************^
   158					;*SPECIAL SUBPROGRAM LINKAGES
   159					S^;*********************************************************************^
   160
   161			027772		FSELNK=	27772	;FILE SELECT LINK
   162			027773		FRDLNK=	27773	;FILE READ LINK
   163			027774		LDLNK=	27774	;LOAD LINKAGE ADDRESS
   164			027775		DDTLNK=	27775	;DDT LINKAGE ADDRESS
   165			027776		MODLNK=	27776	;OPERATIONAL MODE CHECK LINKAGE ADDRESS
   166			027777		SUBLNK=	27777	;SUBROUTINE LINKAGE ADDRESS
   167
   168					S^;*********************************************************************^
   169					;*SPECIAL SUBROUTINE FATAL HALTS
   170					;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
   171					S^;*********************************************************************^
   172
   173					;ADDRESS   TAG	REASON
   174					;---------------------
   175
   176					; 1010 	NOEXEC	;PROGRAM NOT CODED FOR EXEC MODE OPERATION
   177					; 1011  PLERR	;FATAL PUSH LIST POINTER ERROR
   178					; 1012  PLERR1	;INITIAL PUSH LIST POINTER ERROR
   179					; 1013  MUOERR	;MUUO WITH LUUO HANDLER WIPED OUT
   180					; 1014  SMBER	;KS-10 INTERRUPT WITHOUT DOORBELL
   181					; 1015  SMCER	;KS-10 CLOCK INTERRUPT WITHOUT FLAG SET
   182					; 1016  CPIERR	;CPU INITIALIZATION ERROR
   183					; 1017  EOPERR	;END OF PROGRAM ERROR
   184					; 1020  LUOERR	;INTERRUPT WITH LUUO HANDLER WIPED OUT
   185
   186					S^;*********************************************************************^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0018

   187					S^;*********************************************************************^
   188					;OPERATOR DEFINITIONS (NON-UUO'S)
   189					S^;*********************************************************************^
   190
   191		260740	000000		OPDEF	GO	[PUSHJ	P,]	;SUBROUTINE CALL
   192		263740	000000		OPDEF	RTN	[POPJ	P,]	;SUBROUTINE RETURN 
   193		261740	000000		OPDEF	PUT	[PUSH	P,]	;PUT DATA ON PUSH LIST
   194		262740	000000		OPDEF	GET	[POP	P,]	;GET DATA FROM PUSH LIST 
   195		254000	000000		OPDEF	PJRST	[JRST	]	;JRST TO ROUTINE THAT RTN'S
   196		254200	000000		OPDEF	HALT	[JRST	4,]	;DEFINITION FOR DDT
   197		254100	000000		OPDEF	JRSTF	[JRST	2,]	;DEFINITION FOR DDT
   198		254500	000000		OPDEF	JEN	[JRST	12,]	;DEFINITION FOR DDT
   199
   200					S^;*********************************************************************^
   201					;*SUBROUTINE INITIALIZATION CALL
   202					S^;*********************************************************************^
   203
   204		265000	030011		OPDEF	PGMINT	[JSP	0,SBINIT]	;SUBROUTINE INITIALIZATION
   205
   206					S^;*********************************************************************^
   207					;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
   208					S^;*********************************************************************^
   209
   210		037640	000004		OPDEF	FATAL	[37B8!15B12!4]	;FATAL PROGRAMMING HALT
   211		037600	000004		OPDEF	ERRHLT	[37B8!14B12!4]	;PROGRAM ERROR HALT
   212
   213					S^;*********************************************************************^
   214					;*TERMINAL INPUT UUO'S
   215					;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
   216					;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
   217					S^;*********************************************************************^
   218
   219		037000	000003		OPDEF	TTICHR 	[37B8!0B12!3]	;TTY, INPUT ANY CHARACTER
   220		037040	000003		OPDEF	TTIYES	[37B8!1B12!3]	;TTY, NORMAL RETURN Y
   221		037100	000003		OPDEF	TTINO	[37B8!2B12!3]	;TTY, NORMAL RETURN N
   222		037140	000003		OPDEF	TTIOCT	[37B8!3B12!3]	;TTY, INPUT OCTAL WORD
   223		037200	000003		OPDEF	TTIDEC	[37B8!4B12!3]	;TTY, INPUT DECIMAL WORD
   224		037240	000003		OPDEF	TTICNV	[37B8!5B12!3]	;TTY, INPUT CONVERTABLE WORD
   225		037300	000003		OPDEF	TTLOOK	[37B8!6B12!3]	;TTY, KEYBOARD CHECK
   226		037340	000003		OPDEF	TTALTM	[37B8!7B12!3]	;TTY, ALT-MODE CHECK
   227		037400	000003		OPDEF	TTSIXB	[37B8!10B12!3]	;TTY, INPUT SIXBIT WORD
   228		037440	000003		OPDEF	TTYINP	[37B8!11B12!3]	;TTY, IMAGE MODE INPUT
   229		037500	000003		OPDEF	TTICLR	[37B8!12B12!3]	;TTY, CLEAR INPUT
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 4
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0019

   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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0020

   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 - CLOCK
   311		037200	000004		OPDEF	MTROP	[37B8!4B12!4]	;CLOCK OPERATION UUO - METER
   312
   313					;*KS-10 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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6
PARAM	KSM	28-Mar-78 11:27		PROGRAM/SUBROUTINE PARAMETERS                                                      SEQ 0021

   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						XLIST
   356					IFNDEF	EROLD,<LIST
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7
PARAM	KSM	28-Mar-78 11:27		ERROR HANDLING UUO DEFINITIONS                                                     SEQ 0022

   357					SUBTTL	ERROR HANDLING UUO DEFINITIONS
   358
   359					S^;*********************************************************************^
   360					;*ERROR HANDLER PARAMETERS
   361					S^;*********************************************************************^
   362
   363		036000	000000		OPDEF	ERUUO	[36B8]		;ERROR CALL UUO
   364		035000	000000		OPDEF	ERLOOP	[35B8]		;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
   365		035040	000000		OPDEF	ERLP1	[35B8!1B12]	;ERROR LOOP IF PC'S MATCH
   366		035100	000000		OPDEF	ERLP2	[35B8!2B12]	;ERROR LOOP IF ANY ERROR
   367		034000	000000		OPDEF	REPTUO	[34B8]		;REPEAT LOOP UUO
   368
   369					;*THE ERROR HANDLER MACROS
   370
   371					;*A MACRO TO REPORT AN ERROR AND LOOP
   372
   373						DEFINE	ERROR	(ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
   374												SALL
   375						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   376							   CORECT,,ACTUAL
   377							   [SIXBIT\D'_\],,ERR]
   378												XALL
   379						ERLOOP	ADR		;IF ERROR, LOOP TO ADR
   380					>
   381
   382					;*A MACRO TO REPORT AN ERROR AND NOT LOOP
   383
   384						DEFINE	ERROR1	(FORMAT,CORECT,ACTUAL,F,D,ERR)<
   385												SALL
   386						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
   387							   CORECT,,ACTUAL
   388							   [SIXBIT\D'_\],,ERR]
   389												XALL>
   390
   391					>;END OF EROLD CONDITIONAL
   392
   393						XLIST
   394						LIST
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0023

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

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

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

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

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

   624					S^;*********************************************************************^
   625					;*PUSHDOWN LIST CONTROL INFORMATION
   626					S^;*********************************************************************^
   627
   628	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
   629	030304				PLISTS:	BLOCK	200
   630	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
   631
   632					S^;*********************************************************************^
   633					;*POWER LINE CLOCK FREQUENCY FLAG
   634					S^;*********************************************************************^
   635
   636	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
   637
   638					S^;*********************************************************************^
   639					;*KL10 CACHE CONTROL FLAGS
   640					S^;*********************************************************************^
   641
   642	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
   643	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
   644
   645					S^;*********************************************************************^
   646					;*NUMBER INPUT DIGIT FLAG
   647					S^;*********************************************************************^
   648
   649	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
   650
   651					S^;*********************************************************************^
   652					;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
   653					S^;*********************************************************************^
   654
   655	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
   656
   657					S^;*********************************************************************^
   658					;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
   659					S^;*********************************************************************^
   660
   661	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
   662	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
   663	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
   664
   665					S^;*********************************************************************^
   666					;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
   667					S^;*********************************************************************^
   668
   669	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7
FIXED	KSM	28-Mar-78 11:28		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0029

   670					S^;*********************************************************************^
   671					;*USER MODE MONITOR TYPE FLAG
   672					S^;*********************************************************************^
   673
   674	030516	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
   675
   676					S^;*********************************************************************^
   677					;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
   678					S^;*********************************************************************^
   679
   680	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
   681
   682					S^;*********************************************************************^
   683					;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
   684					S^;*********************************************************************^
   685
   686	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
   687
   688					S^;*********************************************************************^
   689					;*"SWITCH" CALL USAGE CONTROL
   690					S^;*********************************************************************^
   691
   692	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
   693
   694					S^;*********************************************************************^
   695					;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
   696					S^;*********************************************************************^
   697
   698	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
   699	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
   700
   701					S^;*********************************************************************^
   702					;*SM10 (KS-10) PROCESSOR TYPE FLAG
   703					S^;*********************************************************************^
   704
   705	030524	000000	000000		SM10:	0	;IF -1 THIS IS AN KS-10
   706
   707					S^;*********************************************************************^
   708					;*RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
   709					S^;*********************************************************************^
   710
   711	030525	000000	000000		SWPTAB:	0	;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
   712
   713					S^;*********************************************************************^
   714					;*SPECIAL FUTURE EXPANSION ROOM
   715					S^;*********************************************************************^
   716
   717					S^;*********************************************************************^
   718					;*END OF FIXED STORAGE
   719					S^;*********************************************************************^
   720
   721	030577					LOC	30577
   722	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1
DSKAK1	MAC	29-Mar-78 09:56		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, MARCH 1978                             SEQ 0030

   723	030600	037 05 0 00 000002 	EXIT:	DROPDV			;CLOSE LOGICAL OUTPUT FILE
   724	030601	000000	030600			EXIT
   725
   726	030602				PGMNAM:	ASCIZ	%
   727	030602	015 012 104 105 103 	DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC [DSKAK]
   728	030603	123 131 123 124 105 
   729	030604	115 040 062 060 062 
   730	030605	060 040 102 101 123 
   731	030606	111 103 040 111 116 
   732	030607	123 124 122 125 103 
   733	030610	124 111 117 116 040 
   734	030611	104 111 101 107 116 
   735	030612	117 123 124 111 103 
   736	030613	040 133 104 123 113 
   737	030614	101 113 135 015 012 	MULTIPLY & DIVIDE
   738	030615	115 125 114 124 111 
   739	030616	120 114 131 040 046 
   740	030617	040 104 111 126 111 
   741	030620	104 105 015 012 000 	%
   742
   743					;INITIALIZE SUBROUTINES
   744
   745	030621	265 00 0 00 030011 	START:	PGMINT
   746	030622	200 00 0 00 043761 		MOVE	[ASCIZ/AK/]
   747	030623	202 00 0 00 043702 		MOVEM	TLET
   748
   749	030624	254 00 0 00 030625 	STARTA:	JRST	PART1		;GO PERFORM DIAGNOSTIC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0031

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

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

   860	030675	321 15 0 00 030663 		JUMPL	AC+2,F30020		;LOOP ON ERROR SWITCH^
   861
   862			003003			ADR=ADR+1
   863			000004			XX=XX+XX
   864						IFE	XX,<XX=1>
   865
   866					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   867						MOP1	(\ADR,0,-1,XX,0,0)^
   868					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   869					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   870					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   871					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   872
   873			000000		F30030:	AA1=0				;INITIAL C(AC)
   874	030676	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   875		777777	777777			AA2=-1				;INITIAL C(AC+1)
   876	030677	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   877			000004			AEE=XX				;INITIAL C(E)
   878	030700	200 11 0 00 043766 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   879	030701	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   880			000000			AR1=0				;EXPECTED RESULT IN AC
   881	030702	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   882	030703	003 13 0 00 030031 		ER3	AC,30031		;HIGH PRODUCT FAILED
   883			000000			AR2=0				;EXPECTED RESULT IN AC+1
   884	030704	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   885	030705	004 14 0 00 030032 		ER4	AC+1,30032		;LOW PRODUCT FAILED
   886			000004			AEE=XX				;INITIAL C(E)
   887	030706	312 11 0 00 043766 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   888	030707	005 11 0 00 030033 		ER5	E,30033			;C(E) WAS CLOBBERED
   889	030710	321 15 0 00 030676 		JUMPL	AC+2,F30030		;LOOP ON ERROR SWITCH^
   890
   891			003004			ADR=ADR+1
   892			000010			XX=XX+XX
   893						IFE	XX,<XX=1>
   894
   895					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   896						MOP1	(\ADR,0,-1,XX,0,0)^
   897					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   898					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   899					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   900					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   901
   902			000000		F30040:	AA1=0				;INITIAL C(AC)
   903	030711	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   904		777777	777777			AA2=-1				;INITIAL C(AC+1)
   905	030712	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   906			000010			AEE=XX				;INITIAL C(E)
   907	030713	200 11 0 00 043767 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   908	030714	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   909			000000			AR1=0				;EXPECTED RESULT IN AC
   910	030715	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   911	030716	003 13 0 00 030041 		ER3	AC,30041		;HIGH PRODUCT FAILED
   912			000000			AR2=0				;EXPECTED RESULT IN AC+1
   913	030717	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   914	030720	004 14 0 00 030042 		ER4	AC+1,30042		;LOW PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0034

   915			000010			AEE=XX				;INITIAL C(E)
   916	030721	312 11 0 00 043767 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   917	030722	005 11 0 00 030043 		ER5	E,30043			;C(E) WAS CLOBBERED
   918	030723	321 15 0 00 030711 		JUMPL	AC+2,F30040		;LOOP ON ERROR SWITCH^
   919
   920			003005			ADR=ADR+1
   921			000020			XX=XX+XX
   922						IFE	XX,<XX=1>
   923
   924					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   925						MOP1	(\ADR,0,-1,XX,0,0)^
   926					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   927					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   928					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   929					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   930
   931			000000		F30050:	AA1=0				;INITIAL C(AC)
   932	030724	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   933		777777	777777			AA2=-1				;INITIAL C(AC+1)
   934	030725	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   935			000020			AEE=XX				;INITIAL C(E)
   936	030726	200 11 0 00 043770 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   937	030727	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   938			000000			AR1=0				;EXPECTED RESULT IN AC
   939	030730	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   940	030731	003 13 0 00 030051 		ER3	AC,30051		;HIGH PRODUCT FAILED
   941			000000			AR2=0				;EXPECTED RESULT IN AC+1
   942	030732	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   943	030733	004 14 0 00 030052 		ER4	AC+1,30052		;LOW PRODUCT FAILED
   944			000020			AEE=XX				;INITIAL C(E)
   945	030734	312 11 0 00 043770 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   946	030735	005 11 0 00 030053 		ER5	E,30053			;C(E) WAS CLOBBERED
   947	030736	321 15 0 00 030724 		JUMPL	AC+2,F30050		;LOOP ON ERROR SWITCH^
   948
   949			003006			ADR=ADR+1
   950			000040			XX=XX+XX
   951						IFE	XX,<XX=1>
   952
   953					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   954						MOP1	(\ADR,0,-1,XX,0,0)^
   955					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   956					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   957					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   958					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   959
   960			000000		F30060:	AA1=0				;INITIAL C(AC)
   961	030737	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   962		777777	777777			AA2=-1				;INITIAL C(AC+1)
   963	030740	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   964			000040			AEE=XX				;INITIAL C(E)
   965	030741	200 11 0 00 043771 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   966	030742	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   967			000000			AR1=0				;EXPECTED RESULT IN AC
   968	030743	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   969	030744	003 13 0 00 030061 		ER3	AC,30061		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0035

   970			000000			AR2=0				;EXPECTED RESULT IN AC+1
   971	030745	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
   972	030746	004 14 0 00 030062 		ER4	AC+1,30062		;LOW PRODUCT FAILED
   973			000040			AEE=XX				;INITIAL C(E)
   974	030747	312 11 0 00 043771 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
   975	030750	005 11 0 00 030063 		ER5	E,30063			;C(E) WAS CLOBBERED
   976	030751	321 15 0 00 030737 		JUMPL	AC+2,F30060		;LOOP ON ERROR SWITCH^
   977
   978			003007			ADR=ADR+1
   979			000100			XX=XX+XX
   980						IFE	XX,<XX=1>
   981
   982					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
   983						MOP1	(\ADR,0,-1,XX,0,0)^
   984					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
   985					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
   986					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
   987					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
   988
   989			000000		F30070:	AA1=0				;INITIAL C(AC)
   990	030752	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
   991		777777	777777			AA2=-1				;INITIAL C(AC+1)
   992	030753	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
   993			000100			AEE=XX				;INITIAL C(E)
   994	030754	200 11 0 00 043772 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
   995	030755	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
   996			000000			AR1=0				;EXPECTED RESULT IN AC
   997	030756	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
   998	030757	003 13 0 00 030071 		ER3	AC,30071		;HIGH PRODUCT FAILED
   999			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1000	030760	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1001	030761	004 14 0 00 030072 		ER4	AC+1,30072		;LOW PRODUCT FAILED
  1002			000100			AEE=XX				;INITIAL C(E)
  1003	030762	312 11 0 00 043772 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1004	030763	005 11 0 00 030073 		ER5	E,30073			;C(E) WAS CLOBBERED
  1005	030764	321 15 0 00 030752 		JUMPL	AC+2,F30070		;LOOP ON ERROR SWITCH^
  1006
  1007			003010			ADR=ADR+1
  1008			000200			XX=XX+XX
  1009						IFE	XX,<XX=1>
  1010
  1011					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1012						MOP1	(\ADR,0,-1,XX,0,0)^
  1013					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1014					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1015					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1016					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1017
  1018			000000		F30100:	AA1=0				;INITIAL C(AC)
  1019	030765	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1020		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1021	030766	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1022			000200			AEE=XX				;INITIAL C(E)
  1023	030767	200 11 0 00 043773 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1024	030770	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0036

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

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

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

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

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

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

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

  1410	031215	005 11 0 00 030253 		ER5	E,30253			;C(E) WAS CLOBBERED
  1411	031216	321 15 0 00 031204 		JUMPL	AC+2,F30250		;LOOP ON ERROR SWITCH^
  1412
  1413			003026			ADR=ADR+1
  1414		000010	000000			XX=XX+XX
  1415						IFE	XX,<XX=1>
  1416
  1417					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1418						MOP1	(\ADR,0,-1,XX,0,0)^
  1419					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1420					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1421					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1422					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1423
  1424			000000		F30260:	AA1=0				;INITIAL C(AC)
  1425	031217	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1426		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1427	031220	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1428		000010	000000			AEE=XX				;INITIAL C(E)
  1429	031221	200 11 0 00 044011 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1430	031222	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1431			000000			AR1=0				;EXPECTED RESULT IN AC
  1432	031223	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1433	031224	003 13 0 00 030261 		ER3	AC,30261		;HIGH PRODUCT FAILED
  1434			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1435	031225	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1436	031226	004 14 0 00 030262 		ER4	AC+1,30262		;LOW PRODUCT FAILED
  1437		000010	000000			AEE=XX				;INITIAL C(E)
  1438	031227	312 11 0 00 044011 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1439	031230	005 11 0 00 030263 		ER5	E,30263			;C(E) WAS CLOBBERED
  1440	031231	321 15 0 00 031217 		JUMPL	AC+2,F30260		;LOOP ON ERROR SWITCH^
  1441
  1442			003027			ADR=ADR+1
  1443		000020	000000			XX=XX+XX
  1444						IFE	XX,<XX=1>
  1445
  1446					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1447						MOP1	(\ADR,0,-1,XX,0,0)^
  1448					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1449					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1450					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1451					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1452
  1453			000000		F30270:	AA1=0				;INITIAL C(AC)
  1454	031232	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1455		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1456	031233	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1457		000020	000000			AEE=XX				;INITIAL C(E)
  1458	031234	200 11 0 00 044012 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1459	031235	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1460			000000			AR1=0				;EXPECTED RESULT IN AC
  1461	031236	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1462	031237	003 13 0 00 030271 		ER3	AC,30271		;HIGH PRODUCT FAILED
  1463			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1464	031240	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0044

  1465	031241	004 14 0 00 030272 		ER4	AC+1,30272		;LOW PRODUCT FAILED
  1466		000020	000000			AEE=XX				;INITIAL C(E)
  1467	031242	312 11 0 00 044012 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1468	031243	005 11 0 00 030273 		ER5	E,30273			;C(E) WAS CLOBBERED
  1469	031244	321 15 0 00 031232 		JUMPL	AC+2,F30270		;LOOP ON ERROR SWITCH^
  1470
  1471			003030			ADR=ADR+1
  1472		000040	000000			XX=XX+XX
  1473						IFE	XX,<XX=1>
  1474
  1475					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1476						MOP1	(\ADR,0,-1,XX,0,0)^
  1477					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1478					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1479					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1480					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1481
  1482			000000		F30300:	AA1=0				;INITIAL C(AC)
  1483	031245	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1484		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1485	031246	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1486		000040	000000			AEE=XX				;INITIAL C(E)
  1487	031247	200 11 0 00 044013 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1488	031250	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1489			000000			AR1=0				;EXPECTED RESULT IN AC
  1490	031251	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1491	031252	003 13 0 00 030301 		ER3	AC,30301		;HIGH PRODUCT FAILED
  1492			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1493	031253	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1494	031254	004 14 0 00 030302 		ER4	AC+1,30302		;LOW PRODUCT FAILED
  1495		000040	000000			AEE=XX				;INITIAL C(E)
  1496	031255	312 11 0 00 044013 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1497	031256	005 11 0 00 030303 		ER5	E,30303			;C(E) WAS CLOBBERED
  1498	031257	321 15 0 00 031245 		JUMPL	AC+2,F30300		;LOOP ON ERROR SWITCH^
  1499
  1500			003031			ADR=ADR+1
  1501		000100	000000			XX=XX+XX
  1502						IFE	XX,<XX=1>
  1503
  1504					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1505						MOP1	(\ADR,0,-1,XX,0,0)^
  1506					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1507					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1508					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1509					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1510
  1511			000000		F30310:	AA1=0				;INITIAL C(AC)
  1512	031260	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1513		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1514	031261	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1515		000100	000000			AEE=XX				;INITIAL C(E)
  1516	031262	200 11 0 00 044014 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1517	031263	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1518			000000			AR1=0				;EXPECTED RESULT IN AC
  1519	031264	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0045

  1520	031265	003 13 0 00 030311 		ER3	AC,30311		;HIGH PRODUCT FAILED
  1521			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1522	031266	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1523	031267	004 14 0 00 030312 		ER4	AC+1,30312		;LOW PRODUCT FAILED
  1524		000100	000000			AEE=XX				;INITIAL C(E)
  1525	031270	312 11 0 00 044014 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1526	031271	005 11 0 00 030313 		ER5	E,30313			;C(E) WAS CLOBBERED
  1527	031272	321 15 0 00 031260 		JUMPL	AC+2,F30310		;LOOP ON ERROR SWITCH^
  1528
  1529			003032			ADR=ADR+1
  1530		000200	000000			XX=XX+XX
  1531						IFE	XX,<XX=1>
  1532
  1533					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1534						MOP1	(\ADR,0,-1,XX,0,0)^
  1535					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1536					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1537					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1538					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1539
  1540			000000		F30320:	AA1=0				;INITIAL C(AC)
  1541	031273	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1542		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1543	031274	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1544		000200	000000			AEE=XX				;INITIAL C(E)
  1545	031275	200 11 0 00 044015 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  1546	031276	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  1547			000000			AR1=0				;EXPECTED RESULT IN AC
  1548	031277	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  1549	031300	003 13 0 00 030321 		ER3	AC,30321		;HIGH PRODUCT FAILED
  1550			000000			AR2=0				;EXPECTED RESULT IN AC+1
  1551	031301	312 14 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  1552	031302	004 14 0 00 030322 		ER4	AC+1,30322		;LOW PRODUCT FAILED
  1553		000200	000000			AEE=XX				;INITIAL C(E)
  1554	031303	312 11 0 00 044015 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  1555	031304	005 11 0 00 030323 		ER5	E,30323			;C(E) WAS CLOBBERED
  1556	031305	321 15 0 00 031273 		JUMPL	AC+2,F30320		;LOOP ON ERROR SWITCH^
  1557
  1558			003033			ADR=ADR+1
  1559		000400	000000			XX=XX+XX
  1560						IFE	XX,<XX=1>
  1561
  1562					;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
  1563						MOP1	(\ADR,0,-1,XX,0,0)^
  1564					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  1565					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  1566					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  1567					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  1568
  1569			000000		F30330:	AA1=0				;INITIAL C(AC)
  1570	031306	200 13 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  1571		777777	777777			AA2=-1				;INITIAL C(AC+1)
  1572	031307	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  1573		000400	000000			AEE=XX				;INITIAL C(E)
  1574	031310	200 11 0 00 044016 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0046

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

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

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

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

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

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

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

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

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

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

  2122	031631	005 10 0 00 030553 		ER5	E,30553			;C(E) WAS CLOBBERED
  2123	031632	321 14 0 00 031620 		JUMPL	AC+2,F30550		;LOOP ON ERROR SWITCH^
  2124
  2125			003056			ADR=ADR+1
  2126		777777	776777			XX=XX+XX+1
  2127						IFE	<XX-1>,<XX=-2>
  2128
  2129					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2130						MOP1	(\ADR,0,-1,XX,0,0)^
  2131					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2132					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2133					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2134					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2135
  2136			000000		F30560:	AA1=0				;INITIAL C(AC)
  2137	031633	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2138		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2139	031634	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2140		777777	776777			AEE=XX				;INITIAL C(E)
  2141	031635	200 10 0 00 044041 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2142	031636	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2143			000000			AR1=0				;EXPECTED RESULT IN AC
  2144	031637	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2145	031640	003 12 0 00 030561 		ER3	AC,30561		;HIGH PRODUCT FAILED
  2146			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2147	031641	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2148	031642	004 13 0 00 030562 		ER4	AC+1,30562		;LOW PRODUCT FAILED
  2149		777777	776777			AEE=XX				;INITIAL C(E)
  2150	031643	312 10 0 00 044041 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2151	031644	005 10 0 00 030563 		ER5	E,30563			;C(E) WAS CLOBBERED
  2152	031645	321 14 0 00 031633 		JUMPL	AC+2,F30560		;LOOP ON ERROR SWITCH^
  2153
  2154			003057			ADR=ADR+1
  2155		777777	775777			XX=XX+XX+1
  2156						IFE	<XX-1>,<XX=-2>
  2157
  2158					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2159						MOP1	(\ADR,0,-1,XX,0,0)^
  2160					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2161					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2162					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2163					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2164
  2165			000000		F30570:	AA1=0				;INITIAL C(AC)
  2166	031646	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2167		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2168	031647	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2169		777777	775777			AEE=XX				;INITIAL C(E)
  2170	031650	200 10 0 00 044042 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2171	031651	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2172			000000			AR1=0				;EXPECTED RESULT IN AC
  2173	031652	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2174	031653	003 12 0 00 030571 		ER3	AC,30571		;HIGH PRODUCT FAILED
  2175			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2176	031654	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0057

  2177	031655	004 13 0 00 030572 		ER4	AC+1,30572		;LOW PRODUCT FAILED
  2178		777777	775777			AEE=XX				;INITIAL C(E)
  2179	031656	312 10 0 00 044042 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2180	031657	005 10 0 00 030573 		ER5	E,30573			;C(E) WAS CLOBBERED
  2181	031660	321 14 0 00 031646 		JUMPL	AC+2,F30570		;LOOP ON ERROR SWITCH^
  2182
  2183			003060			ADR=ADR+1
  2184		777777	773777			XX=XX+XX+1
  2185						IFE	<XX-1>,<XX=-2>
  2186
  2187					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2188						MOP1	(\ADR,0,-1,XX,0,0)^
  2189					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2190					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2191					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2192					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2193
  2194			000000		F30600:	AA1=0				;INITIAL C(AC)
  2195	031661	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2196		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2197	031662	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2198		777777	773777			AEE=XX				;INITIAL C(E)
  2199	031663	200 10 0 00 044043 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2200	031664	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2201			000000			AR1=0				;EXPECTED RESULT IN AC
  2202	031665	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2203	031666	003 12 0 00 030601 		ER3	AC,30601		;HIGH PRODUCT FAILED
  2204			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2205	031667	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2206	031670	004 13 0 00 030602 		ER4	AC+1,30602		;LOW PRODUCT FAILED
  2207		777777	773777			AEE=XX				;INITIAL C(E)
  2208	031671	312 10 0 00 044043 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2209	031672	005 10 0 00 030603 		ER5	E,30603			;C(E) WAS CLOBBERED
  2210	031673	321 14 0 00 031661 		JUMPL	AC+2,F30600		;LOOP ON ERROR SWITCH^
  2211
  2212			003061			ADR=ADR+1
  2213		777777	767777			XX=XX+XX+1
  2214						IFE	<XX-1>,<XX=-2>
  2215
  2216					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2217						MOP1	(\ADR,0,-1,XX,0,0)^
  2218					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2219					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2220					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2221					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2222
  2223			000000		F30610:	AA1=0				;INITIAL C(AC)
  2224	031674	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2225		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2226	031675	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2227		777777	767777			AEE=XX				;INITIAL C(E)
  2228	031676	200 10 0 00 044044 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2229	031677	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2230			000000			AR1=0				;EXPECTED RESULT IN AC
  2231	031700	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0058

  2232	031701	003 12 0 00 030611 		ER3	AC,30611		;HIGH PRODUCT FAILED
  2233			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2234	031702	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2235	031703	004 13 0 00 030612 		ER4	AC+1,30612		;LOW PRODUCT FAILED
  2236		777777	767777			AEE=XX				;INITIAL C(E)
  2237	031704	312 10 0 00 044044 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2238	031705	005 10 0 00 030613 		ER5	E,30613			;C(E) WAS CLOBBERED
  2239	031706	321 14 0 00 031674 		JUMPL	AC+2,F30610		;LOOP ON ERROR SWITCH^
  2240
  2241			003062			ADR=ADR+1
  2242		777777	757777			XX=XX+XX+1
  2243						IFE	<XX-1>,<XX=-2>
  2244
  2245					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2246						MOP1	(\ADR,0,-1,XX,0,0)^
  2247					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2248					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2249					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2250					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2251
  2252			000000		F30620:	AA1=0				;INITIAL C(AC)
  2253	031707	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2254		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2255	031710	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2256		777777	757777			AEE=XX				;INITIAL C(E)
  2257	031711	200 10 0 00 044045 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2258	031712	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2259			000000			AR1=0				;EXPECTED RESULT IN AC
  2260	031713	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2261	031714	003 12 0 00 030621 		ER3	AC,30621		;HIGH PRODUCT FAILED
  2262			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2263	031715	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2264	031716	004 13 0 00 030622 		ER4	AC+1,30622		;LOW PRODUCT FAILED
  2265		777777	757777			AEE=XX				;INITIAL C(E)
  2266	031717	312 10 0 00 044045 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2267	031720	005 10 0 00 030623 		ER5	E,30623			;C(E) WAS CLOBBERED
  2268	031721	321 14 0 00 031707 		JUMPL	AC+2,F30620		;LOOP ON ERROR SWITCH^
  2269
  2270			003063			ADR=ADR+1
  2271		777777	737777			XX=XX+XX+1
  2272						IFE	<XX-1>,<XX=-2>
  2273
  2274					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2275						MOP1	(\ADR,0,-1,XX,0,0)^
  2276					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2277					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2278					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2279					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2280
  2281			000000		F30630:	AA1=0				;INITIAL C(AC)
  2282	031722	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2283		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2284	031723	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2285		777777	737777			AEE=XX				;INITIAL C(E)
  2286	031724	200 10 0 00 044046 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0059

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

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

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

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

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

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

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

  2672	032151	312 10 0 00 044063 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2673	032152	005 10 0 00 031003 		ER5	E,31003			;C(E) WAS CLOBBERED
  2674	032153	321 14 0 00 032141 		JUMPL	AC+2,F31000		;LOOP ON ERROR SWITCH^
  2675
  2676			003101			ADR=ADR+1
  2677		775777	777777			XX=XX+XX+1
  2678						IFE	<XX-1>,<XX=-2>
  2679
  2680					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2681						MOP1	(\ADR,0,-1,XX,0,0)^
  2682					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2683					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2684					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2685					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2686
  2687			000000		F31010:	AA1=0				;INITIAL C(AC)
  2688	032154	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2689		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2690	032155	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2691		775777	777777			AEE=XX				;INITIAL C(E)
  2692	032156	200 10 0 00 044064 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2693	032157	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2694			000000			AR1=0				;EXPECTED RESULT IN AC
  2695	032160	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2696	032161	003 12 0 00 031011 		ER3	AC,31011		;HIGH PRODUCT FAILED
  2697			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2698	032162	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2699	032163	004 13 0 00 031012 		ER4	AC+1,31012		;LOW PRODUCT FAILED
  2700		775777	777777			AEE=XX				;INITIAL C(E)
  2701	032164	312 10 0 00 044064 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2702	032165	005 10 0 00 031013 		ER5	E,31013			;C(E) WAS CLOBBERED
  2703	032166	321 14 0 00 032154 		JUMPL	AC+2,F31010		;LOOP ON ERROR SWITCH^
  2704
  2705			003102			ADR=ADR+1
  2706		773777	777777			XX=XX+XX+1
  2707						IFE	<XX-1>,<XX=-2>
  2708
  2709					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2710						MOP1	(\ADR,0,-1,XX,0,0)^
  2711					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2712					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2713					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2714					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2715
  2716			000000		F31020:	AA1=0				;INITIAL C(AC)
  2717	032167	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2718		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2719	032170	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2720		773777	777777			AEE=XX				;INITIAL C(E)
  2721	032171	200 10 0 00 044065 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2722	032172	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2723			000000			AR1=0				;EXPECTED RESULT IN AC
  2724	032173	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2725	032174	003 12 0 00 031021 		ER3	AC,31021		;HIGH PRODUCT FAILED
  2726			000000			AR2=0				;EXPECTED RESULT IN AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0067

  2727	032175	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2728	032176	004 13 0 00 031022 		ER4	AC+1,31022		;LOW PRODUCT FAILED
  2729		773777	777777			AEE=XX				;INITIAL C(E)
  2730	032177	312 10 0 00 044065 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2731	032200	005 10 0 00 031023 		ER5	E,31023			;C(E) WAS CLOBBERED
  2732	032201	321 14 0 00 032167 		JUMPL	AC+2,F31020		;LOOP ON ERROR SWITCH^
  2733
  2734			003103			ADR=ADR+1
  2735		767777	777777			XX=XX+XX+1
  2736						IFE	<XX-1>,<XX=-2>
  2737
  2738					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2739						MOP1	(\ADR,0,-1,XX,0,0)^
  2740					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2741					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2742					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2743					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2744
  2745			000000		F31030:	AA1=0				;INITIAL C(AC)
  2746	032202	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2747		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2748	032203	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2749		767777	777777			AEE=XX				;INITIAL C(E)
  2750	032204	200 10 0 00 044066 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2751	032205	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2752			000000			AR1=0				;EXPECTED RESULT IN AC
  2753	032206	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2754	032207	003 12 0 00 031031 		ER3	AC,31031		;HIGH PRODUCT FAILED
  2755			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2756	032210	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2757	032211	004 13 0 00 031032 		ER4	AC+1,31032		;LOW PRODUCT FAILED
  2758		767777	777777			AEE=XX				;INITIAL C(E)
  2759	032212	312 10 0 00 044066 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2760	032213	005 10 0 00 031033 		ER5	E,31033			;C(E) WAS CLOBBERED
  2761	032214	321 14 0 00 032202 		JUMPL	AC+2,F31030		;LOOP ON ERROR SWITCH^
  2762
  2763			003104			ADR=ADR+1
  2764		757777	777777			XX=XX+XX+1
  2765						IFE	<XX-1>,<XX=-2>
  2766
  2767					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2768						MOP1	(\ADR,0,-1,XX,0,0)^
  2769					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2770					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2771					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2772					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2773
  2774			000000		F31040:	AA1=0				;INITIAL C(AC)
  2775	032215	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2776		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2777	032216	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2778		757777	777777			AEE=XX				;INITIAL C(E)
  2779	032217	200 10 0 00 044067 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2780	032220	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2781			000000			AR1=0				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0068

  2782	032221	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2783	032222	003 12 0 00 031041 		ER3	AC,31041		;HIGH PRODUCT FAILED
  2784			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2785	032223	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2786	032224	004 13 0 00 031042 		ER4	AC+1,31042		;LOW PRODUCT FAILED
  2787		757777	777777			AEE=XX				;INITIAL C(E)
  2788	032225	312 10 0 00 044067 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2789	032226	005 10 0 00 031043 		ER5	E,31043			;C(E) WAS CLOBBERED
  2790	032227	321 14 0 00 032215 		JUMPL	AC+2,F31040		;LOOP ON ERROR SWITCH^
  2791
  2792			003105			ADR=ADR+1
  2793		737777	777777			XX=XX+XX+1
  2794						IFE	<XX-1>,<XX=-2>
  2795
  2796					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2797						MOP1	(\ADR,0,-1,XX,0,0)^
  2798					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2799					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2800					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2801					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2802
  2803			000000		F31050:	AA1=0				;INITIAL C(AC)
  2804	032230	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2805		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2806	032231	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2807		737777	777777			AEE=XX				;INITIAL C(E)
  2808	032232	200 10 0 00 044070 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2809	032233	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2810			000000			AR1=0				;EXPECTED RESULT IN AC
  2811	032234	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2812	032235	003 12 0 00 031051 		ER3	AC,31051		;HIGH PRODUCT FAILED
  2813			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2814	032236	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2815	032237	004 13 0 00 031052 		ER4	AC+1,31052		;LOW PRODUCT FAILED
  2816		737777	777777			AEE=XX				;INITIAL C(E)
  2817	032240	312 10 0 00 044070 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2818	032241	005 10 0 00 031053 		ER5	E,31053			;C(E) WAS CLOBBERED
  2819	032242	321 14 0 00 032230 		JUMPL	AC+2,F31050		;LOOP ON ERROR SWITCH^
  2820
  2821			003106			ADR=ADR+1
  2822		677777	777777			XX=XX+XX+1
  2823						IFE	<XX-1>,<XX=-2>
  2824
  2825					;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
  2826						MOP1	(\ADR,0,-1,XX,0,0)^
  2827					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND
  2828					;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2829					;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY.
  2830					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2831
  2832			000000		F31060:	AA1=0				;INITIAL C(AC)
  2833	032243	200 12 0 00 043762 		MOVE	AC,[0]			;PRELOAD AC (MULTIPLIER)
  2834		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2835	032244	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2836		677777	777777			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0069

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

  2892		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2893	032272	200 13 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  2894		377777	777777			AEE=XX				;INITIAL C(E)
  2895	032273	200 10 0 00 044073 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  2896	032274	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2897			000000			AR1=0				;EXPECTED RESULT IN AC
  2898	032275	312 12 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  2899	032276	003 12 0 00 031101 		ER3	AC,31101		;HIGH PRODUCT FAILED
  2900			000000			AR2=0				;EXPECTED RESULT IN AC+1
  2901	032277	312 13 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  2902	032300	004 13 0 00 031102 		ER4	AC+1,31102		;LOW PRODUCT FAILED
  2903		377777	777777			AEE=XX				;INITIAL C(E)
  2904	032301	312 10 0 00 044073 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  2905	032302	005 10 0 00 031103 		ER5	E,31103			;C(E) WAS CLOBBERED
  2906	032303	321 14 0 00 032271 		JUMPL	AC+2,F31100		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0071

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

  2940					SUBTTL	DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM
  2941
  2942			000013			AC=13
  2943			000011			E=<AC-2>&17
  2944						SAVEAC	(1,1)^
  2945	032323	201 15 0 00 032323 		MOVEI	AC+2,.		;SAVE TEST PC
  2946	032324	202 15 0 00 030051 		MOVEM	AC+2,TESTPC
  2947	032325	201 15 0 00 000015 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  2948	032326	202 15 0 00 044437 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  2949
  2950		777777	777777			XX=-1
  2951
  2952						REPEAT	^D16,<			;MULTIPLICAND=1	
  2953					;TEST MULTIPLICATION ALGORITHM
  2954					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  2955					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  2956					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  2957					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  2958					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  2959					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  2960					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  2961					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  2962					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  2963					;OF C(E).
  2964					
  2965						ADR=ADR+1
  2966						XX=XX+1
  2967					
  2968						MOP1	(\ADR,XX,-1,1,0,XX)>
  2969								;MULTIPLICAND=1	
  2970					;TEST MULTIPLICATION ALGORITHM
  2971					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  2972					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  2973					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  2974					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  2975					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  2976					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  2977					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  2978					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  2979					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  2980					;OF C(E).
  2981
  2982			003112			ADR=ADR+1
  2983			000000			XX=XX+1
  2984
  2985						MOP1	(\ADR,XX,-1,1,0,XX)^
  2986					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  2987					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  2988					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  2989					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  2990
  2991			000000		F31120:	AA1=XX				;INITIAL C(AC)
  2992	032327	200 13 0 00 043762 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  2993		777777	777777			AA2=-1				;INITIAL C(AC+1)
  2994	032330	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0073

  2995			000001			AEE=1				;INITIAL C(E)
  2996	032331	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  2997	032332	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  2998			000000			AR1=0				;EXPECTED RESULT IN AC
  2999	032333	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3000	032334	003 13 0 00 031121 		ER3	AC,31121		;HIGH PRODUCT FAILED
  3001			000000			AR2=XX				;EXPECTED RESULT IN AC+1
  3002	032335	312 14 0 00 043762 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3003	032336	004 14 0 00 031122 		ER4	AC+1,31122		;LOW PRODUCT FAILED
  3004			000001			AEE=1				;INITIAL C(E)
  3005	032337	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3006	032340	005 11 0 00 031123 		ER5	E,31123			;C(E) WAS CLOBBERED
  3007	032341	321 15 0 00 032327 		JUMPL	AC+2,F31120		;LOOP ON ERROR SWITCH^
  3008								;MULTIPLICAND=1	
  3009					;TEST MULTIPLICATION ALGORITHM
  3010					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3011					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3012					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3013					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3014					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3015					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3016					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3017					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3018					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3019					;OF C(E).
  3020
  3021			003113			ADR=ADR+1
  3022			000001			XX=XX+1
  3023
  3024						MOP1	(\ADR,XX,-1,1,0,XX)^
  3025					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3026					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3027					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3028					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3029
  3030			000001		F31130:	AA1=XX				;INITIAL C(AC)
  3031	032342	200 13 0 00 043764 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3032		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3033	032343	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3034			000001			AEE=1				;INITIAL C(E)
  3035	032344	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3036	032345	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3037			000000			AR1=0				;EXPECTED RESULT IN AC
  3038	032346	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3039	032347	003 13 0 00 031131 		ER3	AC,31131		;HIGH PRODUCT FAILED
  3040			000001			AR2=XX				;EXPECTED RESULT IN AC+1
  3041	032350	312 14 0 00 043764 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3042	032351	004 14 0 00 031132 		ER4	AC+1,31132		;LOW PRODUCT FAILED
  3043			000001			AEE=1				;INITIAL C(E)
  3044	032352	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3045	032353	005 11 0 00 031133 		ER5	E,31133			;C(E) WAS CLOBBERED
  3046	032354	321 15 0 00 032342 		JUMPL	AC+2,F31130		;LOOP ON ERROR SWITCH^
  3047								;MULTIPLICAND=1	
  3048					;TEST MULTIPLICATION ALGORITHM
  3049					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0074

  3050					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3051					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3052					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3053					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3054					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3055					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3056					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3057					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3058					;OF C(E).
  3059
  3060			003114			ADR=ADR+1
  3061			000002			XX=XX+1
  3062
  3063						MOP1	(\ADR,XX,-1,1,0,XX)^
  3064					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3065					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3066					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3067					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3068
  3069			000002		F31140:	AA1=XX				;INITIAL C(AC)
  3070	032355	200 13 0 00 043765 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3071		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3072	032356	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3073			000001			AEE=1				;INITIAL C(E)
  3074	032357	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3075	032360	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3076			000000			AR1=0				;EXPECTED RESULT IN AC
  3077	032361	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3078	032362	003 13 0 00 031141 		ER3	AC,31141		;HIGH PRODUCT FAILED
  3079			000002			AR2=XX				;EXPECTED RESULT IN AC+1
  3080	032363	312 14 0 00 043765 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3081	032364	004 14 0 00 031142 		ER4	AC+1,31142		;LOW PRODUCT FAILED
  3082			000001			AEE=1				;INITIAL C(E)
  3083	032365	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3084	032366	005 11 0 00 031143 		ER5	E,31143			;C(E) WAS CLOBBERED
  3085	032367	321 15 0 00 032355 		JUMPL	AC+2,F31140		;LOOP ON ERROR SWITCH^
  3086								;MULTIPLICAND=1	
  3087					;TEST MULTIPLICATION ALGORITHM
  3088					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3089					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3090					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3091					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3092					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3093					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3094					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3095					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3096					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3097					;OF C(E).
  3098
  3099			003115			ADR=ADR+1
  3100			000003			XX=XX+1
  3101
  3102						MOP1	(\ADR,XX,-1,1,0,XX)^
  3103					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3104					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0075

  3105					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3106					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3107
  3108			000003		F31150:	AA1=XX				;INITIAL C(AC)
  3109	032370	200 13 0 00 044074 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3110		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3111	032371	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3112			000001			AEE=1				;INITIAL C(E)
  3113	032372	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3114	032373	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3115			000000			AR1=0				;EXPECTED RESULT IN AC
  3116	032374	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3117	032375	003 13 0 00 031151 		ER3	AC,31151		;HIGH PRODUCT FAILED
  3118			000003			AR2=XX				;EXPECTED RESULT IN AC+1
  3119	032376	312 14 0 00 044074 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3120	032377	004 14 0 00 031152 		ER4	AC+1,31152		;LOW PRODUCT FAILED
  3121			000001			AEE=1				;INITIAL C(E)
  3122	032400	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3123	032401	005 11 0 00 031153 		ER5	E,31153			;C(E) WAS CLOBBERED
  3124	032402	321 15 0 00 032370 		JUMPL	AC+2,F31150		;LOOP ON ERROR SWITCH^
  3125								;MULTIPLICAND=1	
  3126					;TEST MULTIPLICATION ALGORITHM
  3127					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3128					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3129					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3130					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3131					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3132					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3133					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3134					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3135					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3136					;OF C(E).
  3137
  3138			003116			ADR=ADR+1
  3139			000004			XX=XX+1
  3140
  3141						MOP1	(\ADR,XX,-1,1,0,XX)^
  3142					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3143					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3144					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3145					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3146
  3147			000004		F31160:	AA1=XX				;INITIAL C(AC)
  3148	032403	200 13 0 00 043766 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3149		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3150	032404	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3151			000001			AEE=1				;INITIAL C(E)
  3152	032405	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3153	032406	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3154			000000			AR1=0				;EXPECTED RESULT IN AC
  3155	032407	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3156	032410	003 13 0 00 031161 		ER3	AC,31161		;HIGH PRODUCT FAILED
  3157			000004			AR2=XX				;EXPECTED RESULT IN AC+1
  3158	032411	312 14 0 00 043766 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3159	032412	004 14 0 00 031162 		ER4	AC+1,31162		;LOW PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0076

  3160			000001			AEE=1				;INITIAL C(E)
  3161	032413	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3162	032414	005 11 0 00 031163 		ER5	E,31163			;C(E) WAS CLOBBERED
  3163	032415	321 15 0 00 032403 		JUMPL	AC+2,F31160		;LOOP ON ERROR SWITCH^
  3164								;MULTIPLICAND=1	
  3165					;TEST MULTIPLICATION ALGORITHM
  3166					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3167					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3168					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3169					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3170					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3171					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3172					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3173					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3174					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3175					;OF C(E).
  3176
  3177			003117			ADR=ADR+1
  3178			000005			XX=XX+1
  3179
  3180						MOP1	(\ADR,XX,-1,1,0,XX)^
  3181					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3182					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3183					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3184					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3185
  3186			000005		F31170:	AA1=XX				;INITIAL C(AC)
  3187	032416	200 13 0 00 044075 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3188		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3189	032417	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3190			000001			AEE=1				;INITIAL C(E)
  3191	032420	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3192	032421	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3193			000000			AR1=0				;EXPECTED RESULT IN AC
  3194	032422	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3195	032423	003 13 0 00 031171 		ER3	AC,31171		;HIGH PRODUCT FAILED
  3196			000005			AR2=XX				;EXPECTED RESULT IN AC+1
  3197	032424	312 14 0 00 044075 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3198	032425	004 14 0 00 031172 		ER4	AC+1,31172		;LOW PRODUCT FAILED
  3199			000001			AEE=1				;INITIAL C(E)
  3200	032426	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3201	032427	005 11 0 00 031173 		ER5	E,31173			;C(E) WAS CLOBBERED
  3202	032430	321 15 0 00 032416 		JUMPL	AC+2,F31170		;LOOP ON ERROR SWITCH^
  3203								;MULTIPLICAND=1	
  3204					;TEST MULTIPLICATION ALGORITHM
  3205					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3206					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3207					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3208					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3209					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3210					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3211					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3212					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3213					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3214					;OF C(E).
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0077

  3215
  3216			003120			ADR=ADR+1
  3217			000006			XX=XX+1
  3218
  3219						MOP1	(\ADR,XX,-1,1,0,XX)^
  3220					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3221					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3222					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3223					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3224
  3225			000006		F31200:	AA1=XX				;INITIAL C(AC)
  3226	032431	200 13 0 00 044076 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3227		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3228	032432	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3229			000001			AEE=1				;INITIAL C(E)
  3230	032433	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3231	032434	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3232			000000			AR1=0				;EXPECTED RESULT IN AC
  3233	032435	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3234	032436	003 13 0 00 031201 		ER3	AC,31201		;HIGH PRODUCT FAILED
  3235			000006			AR2=XX				;EXPECTED RESULT IN AC+1
  3236	032437	312 14 0 00 044076 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3237	032440	004 14 0 00 031202 		ER4	AC+1,31202		;LOW PRODUCT FAILED
  3238			000001			AEE=1				;INITIAL C(E)
  3239	032441	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3240	032442	005 11 0 00 031203 		ER5	E,31203			;C(E) WAS CLOBBERED
  3241	032443	321 15 0 00 032431 		JUMPL	AC+2,F31200		;LOOP ON ERROR SWITCH^
  3242								;MULTIPLICAND=1	
  3243					;TEST MULTIPLICATION ALGORITHM
  3244					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3245					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3246					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3247					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3248					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3249					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3250					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3251					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3252					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3253					;OF C(E).
  3254
  3255			003121			ADR=ADR+1
  3256			000007			XX=XX+1
  3257
  3258						MOP1	(\ADR,XX,-1,1,0,XX)^
  3259					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3260					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3261					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3262					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3263
  3264			000007		F31210:	AA1=XX				;INITIAL C(AC)
  3265	032444	200 13 0 00 044077 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3266		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3267	032445	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3268			000001			AEE=1				;INITIAL C(E)
  3269	032446	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0078

  3270	032447	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3271			000000			AR1=0				;EXPECTED RESULT IN AC
  3272	032450	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3273	032451	003 13 0 00 031211 		ER3	AC,31211		;HIGH PRODUCT FAILED
  3274			000007			AR2=XX				;EXPECTED RESULT IN AC+1
  3275	032452	312 14 0 00 044077 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3276	032453	004 14 0 00 031212 		ER4	AC+1,31212		;LOW PRODUCT FAILED
  3277			000001			AEE=1				;INITIAL C(E)
  3278	032454	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3279	032455	005 11 0 00 031213 		ER5	E,31213			;C(E) WAS CLOBBERED
  3280	032456	321 15 0 00 032444 		JUMPL	AC+2,F31210		;LOOP ON ERROR SWITCH^
  3281								;MULTIPLICAND=1	
  3282					;TEST MULTIPLICATION ALGORITHM
  3283					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3284					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3285					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3286					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3287					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3288					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3289					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3290					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3291					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3292					;OF C(E).
  3293
  3294			003122			ADR=ADR+1
  3295			000010			XX=XX+1
  3296
  3297						MOP1	(\ADR,XX,-1,1,0,XX)^
  3298					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3299					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3300					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3301					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3302
  3303			000010		F31220:	AA1=XX				;INITIAL C(AC)
  3304	032457	200 13 0 00 043767 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3305		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3306	032460	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3307			000001			AEE=1				;INITIAL C(E)
  3308	032461	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3309	032462	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3310			000000			AR1=0				;EXPECTED RESULT IN AC
  3311	032463	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3312	032464	003 13 0 00 031221 		ER3	AC,31221		;HIGH PRODUCT FAILED
  3313			000010			AR2=XX				;EXPECTED RESULT IN AC+1
  3314	032465	312 14 0 00 043767 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3315	032466	004 14 0 00 031222 		ER4	AC+1,31222		;LOW PRODUCT FAILED
  3316			000001			AEE=1				;INITIAL C(E)
  3317	032467	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3318	032470	005 11 0 00 031223 		ER5	E,31223			;C(E) WAS CLOBBERED
  3319	032471	321 15 0 00 032457 		JUMPL	AC+2,F31220		;LOOP ON ERROR SWITCH^
  3320								;MULTIPLICAND=1	
  3321					;TEST MULTIPLICATION ALGORITHM
  3322					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3323					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3324					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0079

  3325					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3326					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3327					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3328					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3329					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3330					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3331					;OF C(E).
  3332
  3333			003123			ADR=ADR+1
  3334			000011			XX=XX+1
  3335
  3336						MOP1	(\ADR,XX,-1,1,0,XX)^
  3337					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3338					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3339					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3340					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3341
  3342			000011		F31230:	AA1=XX				;INITIAL C(AC)
  3343	032472	200 13 0 00 044100 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3344		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3345	032473	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3346			000001			AEE=1				;INITIAL C(E)
  3347	032474	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3348	032475	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3349			000000			AR1=0				;EXPECTED RESULT IN AC
  3350	032476	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3351	032477	003 13 0 00 031231 		ER3	AC,31231		;HIGH PRODUCT FAILED
  3352			000011			AR2=XX				;EXPECTED RESULT IN AC+1
  3353	032500	312 14 0 00 044100 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3354	032501	004 14 0 00 031232 		ER4	AC+1,31232		;LOW PRODUCT FAILED
  3355			000001			AEE=1				;INITIAL C(E)
  3356	032502	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3357	032503	005 11 0 00 031233 		ER5	E,31233			;C(E) WAS CLOBBERED
  3358	032504	321 15 0 00 032472 		JUMPL	AC+2,F31230		;LOOP ON ERROR SWITCH^
  3359								;MULTIPLICAND=1	
  3360					;TEST MULTIPLICATION ALGORITHM
  3361					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3362					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3363					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3364					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3365					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3366					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3367					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3368					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3369					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3370					;OF C(E).
  3371
  3372			003124			ADR=ADR+1
  3373			000012			XX=XX+1
  3374
  3375						MOP1	(\ADR,XX,-1,1,0,XX)^
  3376					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3377					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3378					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3379					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0080

  3380
  3381			000012		F31240:	AA1=XX				;INITIAL C(AC)
  3382	032505	200 13 0 00 044101 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3383		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3384	032506	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3385			000001			AEE=1				;INITIAL C(E)
  3386	032507	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3387	032510	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3388			000000			AR1=0				;EXPECTED RESULT IN AC
  3389	032511	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3390	032512	003 13 0 00 031241 		ER3	AC,31241		;HIGH PRODUCT FAILED
  3391			000012			AR2=XX				;EXPECTED RESULT IN AC+1
  3392	032513	312 14 0 00 044101 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3393	032514	004 14 0 00 031242 		ER4	AC+1,31242		;LOW PRODUCT FAILED
  3394			000001			AEE=1				;INITIAL C(E)
  3395	032515	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3396	032516	005 11 0 00 031243 		ER5	E,31243			;C(E) WAS CLOBBERED
  3397	032517	321 15 0 00 032505 		JUMPL	AC+2,F31240		;LOOP ON ERROR SWITCH^
  3398								;MULTIPLICAND=1	
  3399					;TEST MULTIPLICATION ALGORITHM
  3400					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3401					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3402					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3403					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3404					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3405					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3406					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3407					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3408					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3409					;OF C(E).
  3410
  3411			003125			ADR=ADR+1
  3412			000013			XX=XX+1
  3413
  3414						MOP1	(\ADR,XX,-1,1,0,XX)^
  3415					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3416					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3417					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3418					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3419
  3420			000013		F31250:	AA1=XX				;INITIAL C(AC)
  3421	032520	200 13 0 00 044102 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3422		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3423	032521	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3424			000001			AEE=1				;INITIAL C(E)
  3425	032522	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3426	032523	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3427			000000			AR1=0				;EXPECTED RESULT IN AC
  3428	032524	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3429	032525	003 13 0 00 031251 		ER3	AC,31251		;HIGH PRODUCT FAILED
  3430			000013			AR2=XX				;EXPECTED RESULT IN AC+1
  3431	032526	312 14 0 00 044102 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3432	032527	004 14 0 00 031252 		ER4	AC+1,31252		;LOW PRODUCT FAILED
  3433			000001			AEE=1				;INITIAL C(E)
  3434	032530	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0081

  3435	032531	005 11 0 00 031253 		ER5	E,31253			;C(E) WAS CLOBBERED
  3436	032532	321 15 0 00 032520 		JUMPL	AC+2,F31250		;LOOP ON ERROR SWITCH^
  3437								;MULTIPLICAND=1	
  3438					;TEST MULTIPLICATION ALGORITHM
  3439					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3440					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3441					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3442					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3443					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3444					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3445					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3446					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3447					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3448					;OF C(E).
  3449
  3450			003126			ADR=ADR+1
  3451			000014			XX=XX+1
  3452
  3453						MOP1	(\ADR,XX,-1,1,0,XX)^
  3454					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3455					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3456					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3457					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3458
  3459			000014		F31260:	AA1=XX				;INITIAL C(AC)
  3460	032533	200 13 0 00 044103 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3461		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3462	032534	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3463			000001			AEE=1				;INITIAL C(E)
  3464	032535	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3465	032536	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3466			000000			AR1=0				;EXPECTED RESULT IN AC
  3467	032537	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3468	032540	003 13 0 00 031261 		ER3	AC,31261		;HIGH PRODUCT FAILED
  3469			000014			AR2=XX				;EXPECTED RESULT IN AC+1
  3470	032541	312 14 0 00 044103 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3471	032542	004 14 0 00 031262 		ER4	AC+1,31262		;LOW PRODUCT FAILED
  3472			000001			AEE=1				;INITIAL C(E)
  3473	032543	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3474	032544	005 11 0 00 031263 		ER5	E,31263			;C(E) WAS CLOBBERED
  3475	032545	321 15 0 00 032533 		JUMPL	AC+2,F31260		;LOOP ON ERROR SWITCH^
  3476								;MULTIPLICAND=1	
  3477					;TEST MULTIPLICATION ALGORITHM
  3478					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3479					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3480					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3481					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3482					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3483					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3484					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3485					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3486					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3487					;OF C(E).
  3488
  3489			003127			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0082

  3490			000015			XX=XX+1
  3491
  3492						MOP1	(\ADR,XX,-1,1,0,XX)^
  3493					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3494					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3495					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3496					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3497
  3498			000015		F31270:	AA1=XX				;INITIAL C(AC)
  3499	032546	200 13 0 00 044104 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3500		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3501	032547	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3502			000001			AEE=1				;INITIAL C(E)
  3503	032550	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3504	032551	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3505			000000			AR1=0				;EXPECTED RESULT IN AC
  3506	032552	312 13 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  3507	032553	003 13 0 00 031271 		ER3	AC,31271		;HIGH PRODUCT FAILED
  3508			000015			AR2=XX				;EXPECTED RESULT IN AC+1
  3509	032554	312 14 0 00 044104 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  3510	032555	004 14 0 00 031272 		ER4	AC+1,31272		;LOW PRODUCT FAILED
  3511			000001			AEE=1				;INITIAL C(E)
  3512	032556	312 11 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  3513	032557	005 11 0 00 031273 		ER5	E,31273			;C(E) WAS CLOBBERED
  3514	032560	321 15 0 00 032546 		JUMPL	AC+2,F31270		;LOOP ON ERROR SWITCH^
  3515								;MULTIPLICAND=1	
  3516					;TEST MULTIPLICATION ALGORITHM
  3517					;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
  3518					;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
  3519					;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
  3520					;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
  3521					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
  3522					;TO MULTIPLY ALL 36 BITS OF THE AC.  THIS TEST IS
  3523					;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
  3524					;C(E)=1.  IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
  3525					;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
  3526					;OF C(E).
  3527
  3528			003130			ADR=ADR+1
  3529			000016			XX=XX+1
  3530
  3531						MOP1	(\ADR,XX,-1,1,0,XX)^
  3532					;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND
  3533					;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
  3534					;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY.
  3535					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  3536
  3537			000016		F31300:	AA1=XX				;INITIAL C(AC)
  3538	032561	200 13 0 00 044105 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3539		777777	777777			AA2=-1				;INITIAL C(AC+1)
  3540	032562	200 14 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  3541			000001			AEE=1				;INITIAL C(E)
  3542	032563	200 11 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  3543	032564	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3544			000000			AR1=0				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 5-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0083

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

  3593			000012			AC=12
  3594			000010			E=<AC-2>&17
  3595						SAVEAC	(1,1)^
  3596	032607	201 14 0 00 032607 		MOVEI	AC+2,.		;SAVE TEST PC
  3597	032610	202 14 0 00 030051 		MOVEM	AC+2,TESTPC
  3598	032611	201 14 0 00 000014 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  3599	032612	202 14 0 00 044437 		MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION^
  3600
  3601		777777	777777			XX=-1
  3602
  3603						REPEAT	^D16,<			;MULTIPLICAND=-1 
  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								;MULTIPLICAND=-1 
  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
  3647						V2=-1>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0085

  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	032613	200 12 0 00 043762 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3656		777777	777777			AA2=V1				;INITIAL C(AC+1)
  3657	032614	200 13 0 00 043763 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3658		777777	777777			AEE=-1				;INITIAL C(E)
  3659	032615	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3660	032616	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3661			000000			AR1=V2				;EXPECTED RESULT IN AC
  3662	032617	312 12 0 00 043762 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3663	032620	003 12 0 00 031321 		ER3	AC,31321		;HIGH PRODUCT FAILED
  3664			000000			AR2=MX				;EXPECTED RESULT IN AC+1
  3665	032621	312 13 0 00 043762 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3666	032622	004 13 0 00 031322 		ER4	AC+1,31322		;LOW PRODUCT FAILED
  3667		777777	777777			AEE=-1				;INITIAL C(E)
  3668	032623	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3669	032624	005 10 0 00 031323 		ER5	E,31323			;C(E) WAS CLOBBERED
  3670	032625	321 14 0 00 032613 		JUMPL	AC+2,F31320		;LOOP ON ERROR SWITCH^
  3671								;MULTIPLICAND=-1 
  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	032626	200 12 0 00 043764 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3701			000000			AA2=V1				;INITIAL C(AC+1)
  3702	032627	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0086

  3703		777777	777777			AEE=-1				;INITIAL C(E)
  3704	032630	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3705	032631	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3706		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3707	032632	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3708	032633	003 12 0 00 031331 		ER3	AC,31331		;HIGH PRODUCT FAILED
  3709		777777	777777			AR2=MX				;EXPECTED RESULT IN AC+1
  3710	032634	312 13 0 00 043763 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3711	032635	004 13 0 00 031332 		ER4	AC+1,31332		;LOW PRODUCT FAILED
  3712		777777	777777			AEE=-1				;INITIAL C(E)
  3713	032636	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3714	032637	005 10 0 00 031333 		ER5	E,31333			;C(E) WAS CLOBBERED
  3715	032640	321 14 0 00 032626 		JUMPL	AC+2,F31330		;LOOP ON ERROR SWITCH^
  3716								;MULTIPLICAND=-1 
  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	032641	200 12 0 00 043765 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3746			000000			AA2=V1				;INITIAL C(AC+1)
  3747	032642	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3748		777777	777777			AEE=-1				;INITIAL C(E)
  3749	032643	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3750	032644	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3751		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3752	032645	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3753	032646	003 12 0 00 031341 		ER3	AC,31341		;HIGH PRODUCT FAILED
  3754		777777	777776			AR2=MX				;EXPECTED RESULT IN AC+1
  3755	032647	312 13 0 00 044030 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3756	032650	004 13 0 00 031342 		ER4	AC+1,31342		;LOW PRODUCT FAILED
  3757		777777	777777			AEE=-1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0087

  3758	032651	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3759	032652	005 10 0 00 031343 		ER5	E,31343			;C(E) WAS CLOBBERED
  3760	032653	321 14 0 00 032641 		JUMPL	AC+2,F31340		;LOOP ON ERROR SWITCH^
  3761								;MULTIPLICAND=-1 
  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	032654	200 12 0 00 044074 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3791			000000			AA2=V1				;INITIAL C(AC+1)
  3792	032655	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3793		777777	777777			AEE=-1				;INITIAL C(E)
  3794	032656	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3795	032657	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3796		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3797	032660	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3798	032661	003 12 0 00 031351 		ER3	AC,31351		;HIGH PRODUCT FAILED
  3799		777777	777775			AR2=MX				;EXPECTED RESULT IN AC+1
  3800	032662	312 13 0 00 044031 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3801	032663	004 13 0 00 031352 		ER4	AC+1,31352		;LOW PRODUCT FAILED
  3802		777777	777777			AEE=-1				;INITIAL C(E)
  3803	032664	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3804	032665	005 10 0 00 031353 		ER5	E,31353			;C(E) WAS CLOBBERED
  3805	032666	321 14 0 00 032654 		JUMPL	AC+2,F31350		;LOOP ON ERROR SWITCH^
  3806								;MULTIPLICAND=-1 
  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.
  3812					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0088

  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	032667	200 12 0 00 043766 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3836			000000			AA2=V1				;INITIAL C(AC+1)
  3837	032670	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3838		777777	777777			AEE=-1				;INITIAL C(E)
  3839	032671	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3840	032672	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3841		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3842	032673	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3843	032674	003 12 0 00 031361 		ER3	AC,31361		;HIGH PRODUCT FAILED
  3844		777777	777774			AR2=MX				;EXPECTED RESULT IN AC+1
  3845	032675	312 13 0 00 044107 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3846	032676	004 13 0 00 031362 		ER4	AC+1,31362		;LOW PRODUCT FAILED
  3847		777777	777777			AEE=-1				;INITIAL C(E)
  3848	032677	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3849	032700	005 10 0 00 031363 		ER5	E,31363			;C(E) WAS CLOBBERED
  3850	032701	321 14 0 00 032667 		JUMPL	AC+2,F31360		;LOOP ON ERROR SWITCH^
  3851								;MULTIPLICAND=-1 
  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
  3867						IFE	XX,<
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0089

  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	032702	200 12 0 00 044075 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3881			000000			AA2=V1				;INITIAL C(AC+1)
  3882	032703	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3883		777777	777777			AEE=-1				;INITIAL C(E)
  3884	032704	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3885	032705	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3886		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3887	032706	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3888	032707	003 12 0 00 031371 		ER3	AC,31371		;HIGH PRODUCT FAILED
  3889		777777	777773			AR2=MX				;EXPECTED RESULT IN AC+1
  3890	032710	312 13 0 00 044032 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3891	032711	004 13 0 00 031372 		ER4	AC+1,31372		;LOW PRODUCT FAILED
  3892		777777	777777			AEE=-1				;INITIAL C(E)
  3893	032712	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3894	032713	005 10 0 00 031373 		ER5	E,31373			;C(E) WAS CLOBBERED
  3895	032714	321 14 0 00 032702 		JUMPL	AC+2,F31370		;LOOP ON ERROR SWITCH^
  3896								;MULTIPLICAND=-1 
  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.
  3922					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0090

  3923
  3924			000006		F31400:	AA1=XX				;INITIAL C(AC)
  3925	032715	200 12 0 00 044076 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3926			000000			AA2=V1				;INITIAL C(AC+1)
  3927	032716	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3928		777777	777777			AEE=-1				;INITIAL C(E)
  3929	032717	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3930	032720	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3931		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3932	032721	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  3933	032722	003 12 0 00 031401 		ER3	AC,31401		;HIGH PRODUCT FAILED
  3934		777777	777772			AR2=MX				;EXPECTED RESULT IN AC+1
  3935	032723	312 13 0 00 044110 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3936	032724	004 13 0 00 031402 		ER4	AC+1,31402		;LOW PRODUCT FAILED
  3937		777777	777777			AEE=-1				;INITIAL C(E)
  3938	032725	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3939	032726	005 10 0 00 031403 		ER5	E,31403			;C(E) WAS CLOBBERED
  3940	032727	321 14 0 00 032715 		JUMPL	AC+2,F31400		;LOOP ON ERROR SWITCH^
  3941								;MULTIPLICAND=-1 
  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	032730	200 12 0 00 044077 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  3971			000000			AA2=V1				;INITIAL C(AC+1)
  3972	032731	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  3973		777777	777777			AEE=-1				;INITIAL C(E)
  3974	032732	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  3975	032733	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  3976		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  3977	032734	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0091

  3978	032735	003 12 0 00 031411 		ER3	AC,31411		;HIGH PRODUCT FAILED
  3979		777777	777771			AR2=MX				;EXPECTED RESULT IN AC+1
  3980	032736	312 13 0 00 044111 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  3981	032737	004 13 0 00 031412 		ER4	AC+1,31412		;LOW PRODUCT FAILED
  3982		777777	777777			AEE=-1				;INITIAL C(E)
  3983	032740	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  3984	032741	005 10 0 00 031413 		ER5	E,31413			;C(E) WAS CLOBBERED
  3985	032742	321 14 0 00 032730 		JUMPL	AC+2,F31410		;LOOP ON ERROR SWITCH^
  3986								;MULTIPLICAND=-1 
  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	032743	200 12 0 00 043767 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4016			000000			AA2=V1				;INITIAL C(AC+1)
  4017	032744	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4018		777777	777777			AEE=-1				;INITIAL C(E)
  4019	032745	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4020	032746	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4021		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4022	032747	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4023	032750	003 12 0 00 031421 		ER3	AC,31421		;HIGH PRODUCT FAILED
  4024		777777	777770			AR2=MX				;EXPECTED RESULT IN AC+1
  4025	032751	312 13 0 00 044112 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4026	032752	004 13 0 00 031422 		ER4	AC+1,31422		;LOW PRODUCT FAILED
  4027		777777	777777			AEE=-1				;INITIAL C(E)
  4028	032753	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4029	032754	005 10 0 00 031423 		ER5	E,31423			;C(E) WAS CLOBBERED
  4030	032755	321 14 0 00 032743 		JUMPL	AC+2,F31420		;LOOP ON ERROR SWITCH^
  4031								;MULTIPLICAND=-1 
  4032					;TEST MULTIPLICATION ALGORITHM
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0092

  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	032756	200 12 0 00 044100 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4061			000000			AA2=V1				;INITIAL C(AC+1)
  4062	032757	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4063		777777	777777			AEE=-1				;INITIAL C(E)
  4064	032760	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4065	032761	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4066		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4067	032762	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4068	032763	003 12 0 00 031431 		ER3	AC,31431		;HIGH PRODUCT FAILED
  4069		777777	777767			AR2=MX				;EXPECTED RESULT IN AC+1
  4070	032764	312 13 0 00 044033 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4071	032765	004 13 0 00 031432 		ER4	AC+1,31432		;LOW PRODUCT FAILED
  4072		777777	777777			AEE=-1				;INITIAL C(E)
  4073	032766	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4074	032767	005 10 0 00 031433 		ER5	E,31433			;C(E) WAS CLOBBERED
  4075	032770	321 14 0 00 032756 		JUMPL	AC+2,F31430		;LOOP ON ERROR SWITCH^
  4076								;MULTIPLICAND=-1 
  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
  4087					;OF C(E).
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0093

  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	032771	200 12 0 00 044101 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4106			000000			AA2=V1				;INITIAL C(AC+1)
  4107	032772	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4108		777777	777777			AEE=-1				;INITIAL C(E)
  4109	032773	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4110	032774	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4111		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4112	032775	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4113	032776	003 12 0 00 031441 		ER3	AC,31441		;HIGH PRODUCT FAILED
  4114		777777	777766			AR2=MX				;EXPECTED RESULT IN AC+1
  4115	032777	312 13 0 00 044113 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4116	033000	004 13 0 00 031442 		ER4	AC+1,31442		;LOW PRODUCT FAILED
  4117		777777	777777			AEE=-1				;INITIAL C(E)
  4118	033001	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4119	033002	005 10 0 00 031443 		ER5	E,31443			;C(E) WAS CLOBBERED
  4120	033003	321 14 0 00 032771 		JUMPL	AC+2,F31440		;LOOP ON ERROR SWITCH^
  4121								;MULTIPLICAND=-1 
  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
  4142		777777	777777			V2=-1>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0094

  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	033004	200 12 0 00 044102 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4151			000000			AA2=V1				;INITIAL C(AC+1)
  4152	033005	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4153		777777	777777			AEE=-1				;INITIAL C(E)
  4154	033006	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4155	033007	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4156		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4157	033010	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4158	033011	003 12 0 00 031451 		ER3	AC,31451		;HIGH PRODUCT FAILED
  4159		777777	777765			AR2=MX				;EXPECTED RESULT IN AC+1
  4160	033012	312 13 0 00 044114 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4161	033013	004 13 0 00 031452 		ER4	AC+1,31452		;LOW PRODUCT FAILED
  4162		777777	777777			AEE=-1				;INITIAL C(E)
  4163	033014	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4164	033015	005 10 0 00 031453 		ER5	E,31453			;C(E) WAS CLOBBERED
  4165	033016	321 14 0 00 033004 		JUMPL	AC+2,F31450		;LOOP ON ERROR SWITCH^
  4166								;MULTIPLICAND=-1 
  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	033017	200 12 0 00 044103 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4196			000000			AA2=V1				;INITIAL C(AC+1)
  4197	033020	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0095

  4198		777777	777777			AEE=-1				;INITIAL C(E)
  4199	033021	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4200	033022	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4201		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4202	033023	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4203	033024	003 12 0 00 031461 		ER3	AC,31461		;HIGH PRODUCT FAILED
  4204		777777	777764			AR2=MX				;EXPECTED RESULT IN AC+1
  4205	033025	312 13 0 00 044115 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4206	033026	004 13 0 00 031462 		ER4	AC+1,31462		;LOW PRODUCT FAILED
  4207		777777	777777			AEE=-1				;INITIAL C(E)
  4208	033027	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4209	033030	005 10 0 00 031463 		ER5	E,31463			;C(E) WAS CLOBBERED
  4210	033031	321 14 0 00 033017 		JUMPL	AC+2,F31460		;LOOP ON ERROR SWITCH^
  4211								;MULTIPLICAND=-1 
  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	033032	200 12 0 00 044104 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4241			000000			AA2=V1				;INITIAL C(AC+1)
  4242	033033	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4243		777777	777777			AEE=-1				;INITIAL C(E)
  4244	033034	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4245	033035	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4246		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4247	033036	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4248	033037	003 12 0 00 031471 		ER3	AC,31471		;HIGH PRODUCT FAILED
  4249		777777	777763			AR2=MX				;EXPECTED RESULT IN AC+1
  4250	033040	312 13 0 00 044116 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4251	033041	004 13 0 00 031472 		ER4	AC+1,31472		;LOW PRODUCT FAILED
  4252		777777	777777			AEE=-1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0096

  4253	033042	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4254	033043	005 10 0 00 031473 		ER5	E,31473			;C(E) WAS CLOBBERED
  4255	033044	321 14 0 00 033032 		JUMPL	AC+2,F31470		;LOOP ON ERROR SWITCH^
  4256								;MULTIPLICAND=-1 
  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	033045	200 12 0 00 044105 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4286			000000			AA2=V1				;INITIAL C(AC+1)
  4287	033046	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4288		777777	777777			AEE=-1				;INITIAL C(E)
  4289	033047	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4290	033050	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4291		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4292	033051	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4293	033052	003 12 0 00 031501 		ER3	AC,31501		;HIGH PRODUCT FAILED
  4294		777777	777762			AR2=MX				;EXPECTED RESULT IN AC+1
  4295	033053	312 13 0 00 044117 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4296	033054	004 13 0 00 031502 		ER4	AC+1,31502		;LOW PRODUCT FAILED
  4297		777777	777777			AEE=-1				;INITIAL C(E)
  4298	033055	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4299	033056	005 10 0 00 031503 		ER5	E,31503			;C(E) WAS CLOBBERED
  4300	033057	321 14 0 00 033045 		JUMPL	AC+2,F31500		;LOOP ON ERROR SWITCH^
  4301								;MULTIPLICAND=-1 
  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.
  4307					;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 6-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM                                      SEQ 0097

  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	033060	200 12 0 00 044106 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4331			000000			AA2=V1				;INITIAL C(AC+1)
  4332	033061	200 13 0 00 043762 		MOVE	AC+1,[V1]		;PRELOAD AC+1
  4333		777777	777777			AEE=-1				;INITIAL C(E)
  4334	033062	200 10 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
  4335	033063	224 12 0 00 000010 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4336		777777	777777			AR1=V2				;EXPECTED RESULT IN AC
  4337	033064	312 12 0 00 043763 		CAME	AC,[V2]			;IS HIGH PRODUCT CORRECT?
  4338	033065	003 12 0 00 031511 		ER3	AC,31511		;HIGH PRODUCT FAILED
  4339		777777	777761			AR2=MX				;EXPECTED RESULT IN AC+1
  4340	033066	312 13 0 00 044120 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
  4341	033067	004 13 0 00 031512 		ER4	AC+1,31512		;LOW PRODUCT FAILED
  4342		777777	777777			AEE=-1				;INITIAL C(E)
  4343	033070	312 10 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
  4344	033071	005 10 0 00 031513 		ER5	E,31513			;C(E) WAS CLOBBERED
  4345	033072	321 14 0 00 033060 		JUMPL	AC+2,F31510		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0098

  4346					SUBTTL	DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
  4347
  4348			000011			AC=11
  4349			000007			E=<AC-2>&17
  4350						SAVEAC	(1,1)^
  4351	033073	201 13 0 00 033073 		MOVEI	AC+2,.		;SAVE TEST PC
  4352	033074	202 13 0 00 030051 		MOVEM	AC+2,TESTPC
  4353	033075	201 13 0 00 000013 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  4354	033076	202 13 0 00 044437 		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	033077	200 11 0 00 043764 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4378		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4379	033100	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4380			000000			AEE=0				;INITIAL C(E)
  4381	033101	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4382	033102	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4383			000000			AR1=0				;EXPECTED RESULT IN AC
  4384	033103	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4385	033104	003 11 0 00 031521 		ER3	AC,31521		;HIGH PRODUCT FAILED
  4386			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4387	033105	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4388	033106	004 12 0 00 031522 		ER4	AC+1,31522		;LOW PRODUCT FAILED
  4389			000000			AEE=0				;INITIAL C(E)
  4390	033107	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4391	033110	005 07 0 00 031523 		ER5	E,31523			;C(E) WAS CLOBBERED
  4392	033111	321 13 0 00 033077 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0099

  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	033112	200 11 0 00 043765 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4407		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4408	033113	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4409			000000			AEE=0				;INITIAL C(E)
  4410	033114	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4411	033115	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4412			000000			AR1=0				;EXPECTED RESULT IN AC
  4413	033116	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4414	033117	003 11 0 00 031531 		ER3	AC,31531		;HIGH PRODUCT FAILED
  4415			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4416	033120	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4417	033121	004 12 0 00 031532 		ER4	AC+1,31532		;LOW PRODUCT FAILED
  4418			000000			AEE=0				;INITIAL C(E)
  4419	033122	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4420	033123	005 07 0 00 031533 		ER5	E,31533			;C(E) WAS CLOBBERED
  4421	033124	321 13 0 00 033112 		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	033125	200 11 0 00 043766 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4436		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4437	033126	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4438			000000			AEE=0				;INITIAL C(E)
  4439	033127	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4440	033130	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4441			000000			AR1=0				;EXPECTED RESULT IN AC
  4442	033131	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4443	033132	003 11 0 00 031541 		ER3	AC,31541		;HIGH PRODUCT FAILED
  4444			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4445	033133	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4446	033134	004 12 0 00 031542 		ER4	AC+1,31542		;LOW PRODUCT FAILED
  4447			000000			AEE=0				;INITIAL C(E)
  4448	033135	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4449	033136	005 07 0 00 031543 		ER5	E,31543			;C(E) WAS CLOBBERED
  4450	033137	321 13 0 00 033125 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0100

  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	033140	200 11 0 00 043767 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4465		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4466	033141	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4467			000000			AEE=0				;INITIAL C(E)
  4468	033142	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4469	033143	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4470			000000			AR1=0				;EXPECTED RESULT IN AC
  4471	033144	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4472	033145	003 11 0 00 031551 		ER3	AC,31551		;HIGH PRODUCT FAILED
  4473			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4474	033146	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4475	033147	004 12 0 00 031552 		ER4	AC+1,31552		;LOW PRODUCT FAILED
  4476			000000			AEE=0				;INITIAL C(E)
  4477	033150	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4478	033151	005 07 0 00 031553 		ER5	E,31553			;C(E) WAS CLOBBERED
  4479	033152	321 13 0 00 033140 		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	033153	200 11 0 00 043770 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4494		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4495	033154	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4496			000000			AEE=0				;INITIAL C(E)
  4497	033155	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4498	033156	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4499			000000			AR1=0				;EXPECTED RESULT IN AC
  4500	033157	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4501	033160	003 11 0 00 031561 		ER3	AC,31561		;HIGH PRODUCT FAILED
  4502			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4503	033161	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4504	033162	004 12 0 00 031562 		ER4	AC+1,31562		;LOW PRODUCT FAILED
  4505			000000			AEE=0				;INITIAL C(E)
  4506	033163	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4507	033164	005 07 0 00 031563 		ER5	E,31563			;C(E) WAS CLOBBERED
  4508	033165	321 13 0 00 033153 		JUMPL	AC+2,F31560		;LOOP ON ERROR SWITCH^
  4509
  4510			003157			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0101

  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	033166	200 11 0 00 043771 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4523		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4524	033167	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4525			000000			AEE=0				;INITIAL C(E)
  4526	033170	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4527	033171	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4528			000000			AR1=0				;EXPECTED RESULT IN AC
  4529	033172	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4530	033173	003 11 0 00 031571 		ER3	AC,31571		;HIGH PRODUCT FAILED
  4531			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4532	033174	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4533	033175	004 12 0 00 031572 		ER4	AC+1,31572		;LOW PRODUCT FAILED
  4534			000000			AEE=0				;INITIAL C(E)
  4535	033176	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4536	033177	005 07 0 00 031573 		ER5	E,31573			;C(E) WAS CLOBBERED
  4537	033200	321 13 0 00 033166 		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	033201	200 11 0 00 043772 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4552		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4553	033202	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4554			000000			AEE=0				;INITIAL C(E)
  4555	033203	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4556	033204	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4557			000000			AR1=0				;EXPECTED RESULT IN AC
  4558	033205	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4559	033206	003 11 0 00 031601 		ER3	AC,31601		;HIGH PRODUCT FAILED
  4560			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4561	033207	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4562	033210	004 12 0 00 031602 		ER4	AC+1,31602		;LOW PRODUCT FAILED
  4563			000000			AEE=0				;INITIAL C(E)
  4564	033211	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4565	033212	005 07 0 00 031603 		ER5	E,31603			;C(E) WAS CLOBBERED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0102

  4566	033213	321 13 0 00 033201 		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	033214	200 11 0 00 043773 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4581		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4582	033215	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4583			000000			AEE=0				;INITIAL C(E)
  4584	033216	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4585	033217	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4586			000000			AR1=0				;EXPECTED RESULT IN AC
  4587	033220	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4588	033221	003 11 0 00 031611 		ER3	AC,31611		;HIGH PRODUCT FAILED
  4589			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4590	033222	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4591	033223	004 12 0 00 031612 		ER4	AC+1,31612		;LOW PRODUCT FAILED
  4592			000000			AEE=0				;INITIAL C(E)
  4593	033224	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4594	033225	005 07 0 00 031613 		ER5	E,31613			;C(E) WAS CLOBBERED
  4595	033226	321 13 0 00 033214 		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	033227	200 11 0 00 043774 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4610		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4611	033230	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4612			000000			AEE=0				;INITIAL C(E)
  4613	033231	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4614	033232	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4615			000000			AR1=0				;EXPECTED RESULT IN AC
  4616	033233	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4617	033234	003 11 0 00 031621 		ER3	AC,31621		;HIGH PRODUCT FAILED
  4618			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4619	033235	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4620	033236	004 12 0 00 031622 		ER4	AC+1,31622		;LOW PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0103

  4621			000000			AEE=0				;INITIAL C(E)
  4622	033237	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4623	033240	005 07 0 00 031623 		ER5	E,31623			;C(E) WAS CLOBBERED
  4624	033241	321 13 0 00 033227 		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	033242	200 11 0 00 043775 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4639		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4640	033243	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4641			000000			AEE=0				;INITIAL C(E)
  4642	033244	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4643	033245	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4644			000000			AR1=0				;EXPECTED RESULT IN AC
  4645	033246	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4646	033247	003 11 0 00 031631 		ER3	AC,31631		;HIGH PRODUCT FAILED
  4647			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4648	033250	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4649	033251	004 12 0 00 031632 		ER4	AC+1,31632		;LOW PRODUCT FAILED
  4650			000000			AEE=0				;INITIAL C(E)
  4651	033252	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4652	033253	005 07 0 00 031633 		ER5	E,31633			;C(E) WAS CLOBBERED
  4653	033254	321 13 0 00 033242 		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	033255	200 11 0 00 043776 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4668		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4669	033256	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4670			000000			AEE=0				;INITIAL C(E)
  4671	033257	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4672	033260	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4673			000000			AR1=0				;EXPECTED RESULT IN AC
  4674	033261	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4675	033262	003 11 0 00 031641 		ER3	AC,31641		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0104

  4676			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4677	033263	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4678	033264	004 12 0 00 031642 		ER4	AC+1,31642		;LOW PRODUCT FAILED
  4679			000000			AEE=0				;INITIAL C(E)
  4680	033265	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4681	033266	005 07 0 00 031643 		ER5	E,31643			;C(E) WAS CLOBBERED
  4682	033267	321 13 0 00 033255 		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	033270	200 11 0 00 043777 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4697		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4698	033271	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4699			000000			AEE=0				;INITIAL C(E)
  4700	033272	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4701	033273	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4702			000000			AR1=0				;EXPECTED RESULT IN AC
  4703	033274	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4704	033275	003 11 0 00 031651 		ER3	AC,31651		;HIGH PRODUCT FAILED
  4705			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4706	033276	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4707	033277	004 12 0 00 031652 		ER4	AC+1,31652		;LOW PRODUCT FAILED
  4708			000000			AEE=0				;INITIAL C(E)
  4709	033300	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4710	033301	005 07 0 00 031653 		ER5	E,31653			;C(E) WAS CLOBBERED
  4711	033302	321 13 0 00 033270 		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	033303	200 11 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4726		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4727	033304	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4728			000000			AEE=0				;INITIAL C(E)
  4729	033305	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4730	033306	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0105

  4731			000000			AR1=0				;EXPECTED RESULT IN AC
  4732	033307	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4733	033310	003 11 0 00 031661 		ER3	AC,31661		;HIGH PRODUCT FAILED
  4734			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4735	033311	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4736	033312	004 12 0 00 031662 		ER4	AC+1,31662		;LOW PRODUCT FAILED
  4737			000000			AEE=0				;INITIAL C(E)
  4738	033313	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4739	033314	005 07 0 00 031663 		ER5	E,31663			;C(E) WAS CLOBBERED
  4740	033315	321 13 0 00 033303 		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	033316	200 11 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4755		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4756	033317	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4757			000000			AEE=0				;INITIAL C(E)
  4758	033320	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4759	033321	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4760			000000			AR1=0				;EXPECTED RESULT IN AC
  4761	033322	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4762	033323	003 11 0 00 031671 		ER3	AC,31671		;HIGH PRODUCT FAILED
  4763			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4764	033324	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4765	033325	004 12 0 00 031672 		ER4	AC+1,31672		;LOW PRODUCT FAILED
  4766			000000			AEE=0				;INITIAL C(E)
  4767	033326	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4768	033327	005 07 0 00 031673 		ER5	E,31673			;C(E) WAS CLOBBERED
  4769	033330	321 13 0 00 033316 		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	033331	200 11 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4784		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4785	033332	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0106

  4786			000000			AEE=0				;INITIAL C(E)
  4787	033333	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4788	033334	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4789			000000			AR1=0				;EXPECTED RESULT IN AC
  4790	033335	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4791	033336	003 11 0 00 031701 		ER3	AC,31701		;HIGH PRODUCT FAILED
  4792			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4793	033337	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4794	033340	004 12 0 00 031702 		ER4	AC+1,31702		;LOW PRODUCT FAILED
  4795			000000			AEE=0				;INITIAL C(E)
  4796	033341	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4797	033342	005 07 0 00 031703 		ER5	E,31703			;C(E) WAS CLOBBERED
  4798	033343	321 13 0 00 033331 		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	033344	200 11 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4813		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4814	033345	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4815			000000			AEE=0				;INITIAL C(E)
  4816	033346	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4817	033347	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4818			000000			AR1=0				;EXPECTED RESULT IN AC
  4819	033350	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4820	033351	003 11 0 00 031711 		ER3	AC,31711		;HIGH PRODUCT FAILED
  4821			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4822	033352	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4823	033353	004 12 0 00 031712 		ER4	AC+1,31712		;LOW PRODUCT FAILED
  4824			000000			AEE=0				;INITIAL C(E)
  4825	033354	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4826	033355	005 07 0 00 031713 		ER5	E,31713			;C(E) WAS CLOBBERED
  4827	033356	321 13 0 00 033344 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0107

  4841	033357	200 11 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4842		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4843	033360	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4844			000000			AEE=0				;INITIAL C(E)
  4845	033361	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4846	033362	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4847			000000			AR1=0				;EXPECTED RESULT IN AC
  4848	033363	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4849	033364	003 11 0 00 031721 		ER3	AC,31721		;HIGH PRODUCT FAILED
  4850			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4851	033365	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4852	033366	004 12 0 00 031722 		ER4	AC+1,31722		;LOW PRODUCT FAILED
  4853			000000			AEE=0				;INITIAL C(E)
  4854	033367	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4855	033370	005 07 0 00 031723 		ER5	E,31723			;C(E) WAS CLOBBERED
  4856	033371	321 13 0 00 033357 		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	033372	200 11 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4871		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4872	033373	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4873			000000			AEE=0				;INITIAL C(E)
  4874	033374	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4875	033375	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4876			000000			AR1=0				;EXPECTED RESULT IN AC
  4877	033376	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4878	033377	003 11 0 00 031731 		ER3	AC,31731		;HIGH PRODUCT FAILED
  4879			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4880	033400	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4881	033401	004 12 0 00 031732 		ER4	AC+1,31732		;LOW PRODUCT FAILED
  4882			000000			AEE=0				;INITIAL C(E)
  4883	033402	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4884	033403	005 07 0 00 031733 		ER5	E,31733			;C(E) WAS CLOBBERED
  4885	033404	321 13 0 00 033372 		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.
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0108

  4896					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  4897
  4898		000001	000000		F31740:	AA1=XX				;INITIAL C(AC)
  4899	033405	200 11 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4900		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4901	033406	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4902			000000			AEE=0				;INITIAL C(E)
  4903	033407	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4904	033410	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4905			000000			AR1=0				;EXPECTED RESULT IN AC
  4906	033411	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4907	033412	003 11 0 00 031741 		ER3	AC,31741		;HIGH PRODUCT FAILED
  4908			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4909	033413	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4910	033414	004 12 0 00 031742 		ER4	AC+1,31742		;LOW PRODUCT FAILED
  4911			000000			AEE=0				;INITIAL C(E)
  4912	033415	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4913	033416	005 07 0 00 031743 		ER5	E,31743			;C(E) WAS CLOBBERED
  4914	033417	321 13 0 00 033405 		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	033420	200 11 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4929		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4930	033421	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4931			000000			AEE=0				;INITIAL C(E)
  4932	033422	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4933	033423	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4934			000000			AR1=0				;EXPECTED RESULT IN AC
  4935	033424	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4936	033425	003 11 0 00 031751 		ER3	AC,31751		;HIGH PRODUCT FAILED
  4937			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4938	033426	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4939	033427	004 12 0 00 031752 		ER4	AC+1,31752		;LOW PRODUCT FAILED
  4940			000000			AEE=0				;INITIAL C(E)
  4941	033430	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4942	033431	005 07 0 00 031753 		ER5	E,31753			;C(E) WAS CLOBBERED
  4943	033432	321 13 0 00 033420 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0109

  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	033433	200 11 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4958		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4959	033434	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4960			000000			AEE=0				;INITIAL C(E)
  4961	033435	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4962	033436	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4963			000000			AR1=0				;EXPECTED RESULT IN AC
  4964	033437	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4965	033440	003 11 0 00 031761 		ER3	AC,31761		;HIGH PRODUCT FAILED
  4966			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4967	033441	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4968	033442	004 12 0 00 031762 		ER4	AC+1,31762		;LOW PRODUCT FAILED
  4969			000000			AEE=0				;INITIAL C(E)
  4970	033443	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  4971	033444	005 07 0 00 031763 		ER5	E,31763			;C(E) WAS CLOBBERED
  4972	033445	321 13 0 00 033433 		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	033446	200 11 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  4987		777777	777777			AA2=-1				;INITIAL C(AC+1)
  4988	033447	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  4989			000000			AEE=0				;INITIAL C(E)
  4990	033450	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  4991	033451	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  4992			000000			AR1=0				;EXPECTED RESULT IN AC
  4993	033452	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  4994	033453	003 11 0 00 031771 		ER3	AC,31771		;HIGH PRODUCT FAILED
  4995			000000			AR2=0				;EXPECTED RESULT IN AC+1
  4996	033454	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  4997	033455	004 12 0 00 031772 		ER4	AC+1,31772		;LOW PRODUCT FAILED
  4998			000000			AEE=0				;INITIAL C(E)
  4999	033456	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5000	033457	005 07 0 00 031773 		ER5	E,31773			;C(E) WAS CLOBBERED
  5001	033460	321 13 0 00 033446 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0110

  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	033461	200 11 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5016		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5017	033462	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5018			000000			AEE=0				;INITIAL C(E)
  5019	033463	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5020	033464	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5021			000000			AR1=0				;EXPECTED RESULT IN AC
  5022	033465	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5023	033466	003 11 0 00 032001 		ER3	AC,32001		;HIGH PRODUCT FAILED
  5024			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5025	033467	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5026	033470	004 12 0 00 032002 		ER4	AC+1,32002		;LOW PRODUCT FAILED
  5027			000000			AEE=0				;INITIAL C(E)
  5028	033471	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5029	033472	005 07 0 00 032003 		ER5	E,32003			;C(E) WAS CLOBBERED
  5030	033473	321 13 0 00 033461 		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	033474	200 11 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5045		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5046	033475	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5047			000000			AEE=0				;INITIAL C(E)
  5048	033476	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5049	033477	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5050			000000			AR1=0				;EXPECTED RESULT IN AC
  5051	033500	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5052	033501	003 11 0 00 032011 		ER3	AC,32011		;HIGH PRODUCT FAILED
  5053			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5054	033502	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5055	033503	004 12 0 00 032012 		ER4	AC+1,32012		;LOW PRODUCT FAILED
  5056			000000			AEE=0				;INITIAL C(E)
  5057	033504	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5058	033505	005 07 0 00 032013 		ER5	E,32013			;C(E) WAS CLOBBERED
  5059	033506	321 13 0 00 033474 		JUMPL	AC+2,F32010		;LOOP ON ERROR SWITCH^
  5060
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0111

  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	033507	200 11 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5074		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5075	033510	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5076			000000			AEE=0				;INITIAL C(E)
  5077	033511	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5078	033512	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5079			000000			AR1=0				;EXPECTED RESULT IN AC
  5080	033513	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5081	033514	003 11 0 00 032021 		ER3	AC,32021		;HIGH PRODUCT FAILED
  5082			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5083	033515	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5084	033516	004 12 0 00 032022 		ER4	AC+1,32022		;LOW PRODUCT FAILED
  5085			000000			AEE=0				;INITIAL C(E)
  5086	033517	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5087	033520	005 07 0 00 032023 		ER5	E,32023			;C(E) WAS CLOBBERED
  5088	033521	321 13 0 00 033507 		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	033522	200 11 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5103		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5104	033523	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5105			000000			AEE=0				;INITIAL C(E)
  5106	033524	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5107	033525	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5108			000000			AR1=0				;EXPECTED RESULT IN AC
  5109	033526	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5110	033527	003 11 0 00 032031 		ER3	AC,32031		;HIGH PRODUCT FAILED
  5111			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5112	033530	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5113	033531	004 12 0 00 032032 		ER4	AC+1,32032		;LOW PRODUCT FAILED
  5114			000000			AEE=0				;INITIAL C(E)
  5115	033532	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0112

  5116	033533	005 07 0 00 032033 		ER5	E,32033			;C(E) WAS CLOBBERED
  5117	033534	321 13 0 00 033522 		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	033535	200 11 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5132		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5133	033536	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5134			000000			AEE=0				;INITIAL C(E)
  5135	033537	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5136	033540	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5137			000000			AR1=0				;EXPECTED RESULT IN AC
  5138	033541	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5139	033542	003 11 0 00 032041 		ER3	AC,32041		;HIGH PRODUCT FAILED
  5140			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5141	033543	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5142	033544	004 12 0 00 032042 		ER4	AC+1,32042		;LOW PRODUCT FAILED
  5143			000000			AEE=0				;INITIAL C(E)
  5144	033545	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5145	033546	005 07 0 00 032043 		ER5	E,32043			;C(E) WAS CLOBBERED
  5146	033547	321 13 0 00 033535 		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	033550	200 11 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5161		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5162	033551	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5163			000000			AEE=0				;INITIAL C(E)
  5164	033552	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5165	033553	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5166			000000			AR1=0				;EXPECTED RESULT IN AC
  5167	033554	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5168	033555	003 11 0 00 032051 		ER3	AC,32051		;HIGH PRODUCT FAILED
  5169			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5170	033556	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0113

  5171	033557	004 12 0 00 032052 		ER4	AC+1,32052		;LOW PRODUCT FAILED
  5172			000000			AEE=0				;INITIAL C(E)
  5173	033560	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5174	033561	005 07 0 00 032053 		ER5	E,32053			;C(E) WAS CLOBBERED
  5175	033562	321 13 0 00 033550 		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	033563	200 11 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5190		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5191	033564	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5192			000000			AEE=0				;INITIAL C(E)
  5193	033565	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5194	033566	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5195			000000			AR1=0				;EXPECTED RESULT IN AC
  5196	033567	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5197	033570	003 11 0 00 032061 		ER3	AC,32061		;HIGH PRODUCT FAILED
  5198			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5199	033571	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5200	033572	004 12 0 00 032062 		ER4	AC+1,32062		;LOW PRODUCT FAILED
  5201			000000			AEE=0				;INITIAL C(E)
  5202	033573	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5203	033574	005 07 0 00 032063 		ER5	E,32063			;C(E) WAS CLOBBERED
  5204	033575	321 13 0 00 033563 		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	033576	200 11 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5219		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5220	033577	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5221			000000			AEE=0				;INITIAL C(E)
  5222	033600	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5223	033601	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5224			000000			AR1=0				;EXPECTED RESULT IN AC
  5225	033602	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0114

  5226	033603	003 11 0 00 032071 		ER3	AC,32071		;HIGH PRODUCT FAILED
  5227			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5228	033604	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5229	033605	004 12 0 00 032072 		ER4	AC+1,32072		;LOW PRODUCT FAILED
  5230			000000			AEE=0				;INITIAL C(E)
  5231	033606	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5232	033607	005 07 0 00 032073 		ER5	E,32073			;C(E) WAS CLOBBERED
  5233	033610	321 13 0 00 033576 		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	033611	200 11 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5248		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5249	033612	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5250			000000			AEE=0				;INITIAL C(E)
  5251	033613	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5252	033614	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5253			000000			AR1=0				;EXPECTED RESULT IN AC
  5254	033615	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5255	033616	003 11 0 00 032101 		ER3	AC,32101		;HIGH PRODUCT FAILED
  5256			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5257	033617	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5258	033620	004 12 0 00 032102 		ER4	AC+1,32102		;LOW PRODUCT FAILED
  5259			000000			AEE=0				;INITIAL C(E)
  5260	033621	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5261	033622	005 07 0 00 032103 		ER5	E,32103			;C(E) WAS CLOBBERED
  5262	033623	321 13 0 00 033611 		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	033624	200 11 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5277		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5278	033625	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5279			000000			AEE=0				;INITIAL C(E)
  5280	033626	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0115

  5281	033627	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5282			000000			AR1=0				;EXPECTED RESULT IN AC
  5283	033630	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5284	033631	003 11 0 00 032111 		ER3	AC,32111		;HIGH PRODUCT FAILED
  5285			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5286	033632	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5287	033633	004 12 0 00 032112 		ER4	AC+1,32112		;LOW PRODUCT FAILED
  5288			000000			AEE=0				;INITIAL C(E)
  5289	033634	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5290	033635	005 07 0 00 032113 		ER5	E,32113			;C(E) WAS CLOBBERED
  5291	033636	321 13 0 00 033624 		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	033637	200 11 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5306		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5307	033640	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5308			000000			AEE=0				;INITIAL C(E)
  5309	033641	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5310	033642	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5311			000000			AR1=0				;EXPECTED RESULT IN AC
  5312	033643	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5313	033644	003 11 0 00 032121 		ER3	AC,32121		;HIGH PRODUCT FAILED
  5314			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5315	033645	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5316	033646	004 12 0 00 032122 		ER4	AC+1,32122		;LOW PRODUCT FAILED
  5317			000000			AEE=0				;INITIAL C(E)
  5318	033647	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5319	033650	005 07 0 00 032123 		ER5	E,32123			;C(E) WAS CLOBBERED
  5320	033651	321 13 0 00 033637 		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	033652	200 11 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5335		777777	777777			AA2=-1				;INITIAL C(AC+1)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0116

  5336	033653	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5337			000000			AEE=0				;INITIAL C(E)
  5338	033654	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5339	033655	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5340			000000			AR1=0				;EXPECTED RESULT IN AC
  5341	033656	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5342	033657	003 11 0 00 032131 		ER3	AC,32131		;HIGH PRODUCT FAILED
  5343			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5344	033660	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5345	033661	004 12 0 00 032132 		ER4	AC+1,32132		;LOW PRODUCT FAILED
  5346			000000			AEE=0				;INITIAL C(E)
  5347	033662	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5348	033663	005 07 0 00 032133 		ER5	E,32133			;C(E) WAS CLOBBERED
  5349	033664	321 13 0 00 033652 		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	033665	200 11 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5364		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5365	033666	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5366			000000			AEE=0				;INITIAL C(E)
  5367	033667	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5368	033670	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5369			000000			AR1=0				;EXPECTED RESULT IN AC
  5370	033671	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5371	033672	003 11 0 00 032141 		ER3	AC,32141		;HIGH PRODUCT FAILED
  5372			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5373	033673	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5374	033674	004 12 0 00 032142 		ER4	AC+1,32142		;LOW PRODUCT FAILED
  5375			000000			AEE=0				;INITIAL C(E)
  5376	033675	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5377	033676	005 07 0 00 032143 		ER5	E,32143			;C(E) WAS CLOBBERED
  5378	033677	321 13 0 00 033665 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 7-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0117

  5391		400000	000000		F32150:	AA1=XX				;INITIAL C(AC)
  5392	033700	200 11 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5393		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5394	033701	200 12 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5395			000000			AEE=0				;INITIAL C(E)
  5396	033702	200 07 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5397	033703	224 11 0 00 000007 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5398			000000			AR1=0				;EXPECTED RESULT IN AC
  5399	033704	312 11 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5400	033705	003 11 0 00 032151 		ER3	AC,32151		;HIGH PRODUCT FAILED
  5401			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5402	033706	312 12 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5403	033707	004 12 0 00 032152 		ER4	AC+1,32152		;LOW PRODUCT FAILED
  5404			000000			AEE=0				;INITIAL C(E)
  5405	033710	312 07 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5406	033711	005 07 0 00 032153 		ER5	E,32153			;C(E) WAS CLOBBERED
  5407	033712	321 13 0 00 033700 		JUMPL	AC+2,F32150		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0118

  5408			000010			AC=10
  5409			000006			E=<AC-2>&17
  5410						SAVEAC	(1,1)^
  5411	033713	201 12 0 00 033713 		MOVEI	AC+2,.		;SAVE TEST PC
  5412	033714	202 12 0 00 030051 		MOVEM	AC+2,TESTPC
  5413	033715	201 12 0 00 000012 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  5414	033716	202 12 0 00 044437 		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	033717	200 10 0 00 044030 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5438		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5439	033720	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5440			000000			AEE=0				;INITIAL C(E)
  5441	033721	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5442	033722	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5443			000000			AR1=0				;EXPECTED RESULT IN AC
  5444	033723	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5445	033724	003 10 0 00 032161 		ER3	AC,32161		;HIGH PRODUCT FAILED
  5446			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5447	033725	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5448	033726	004 11 0 00 032162 		ER4	AC+1,32162		;LOW PRODUCT FAILED
  5449			000000			AEE=0				;INITIAL C(E)
  5450	033727	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5451	033730	005 06 0 00 032163 		ER5	E,32163			;C(E) WAS CLOBBERED
  5452	033731	321 12 0 00 033717 		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.
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0119

  5463					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  5464
  5465		777777	777775		F32170:	AA1=XX				;INITIAL C(AC)
  5466	033732	200 10 0 00 044031 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5467		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5468	033733	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5469			000000			AEE=0				;INITIAL C(E)
  5470	033734	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5471	033735	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5472			000000			AR1=0				;EXPECTED RESULT IN AC
  5473	033736	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5474	033737	003 10 0 00 032171 		ER3	AC,32171		;HIGH PRODUCT FAILED
  5475			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5476	033740	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5477	033741	004 11 0 00 032172 		ER4	AC+1,32172		;LOW PRODUCT FAILED
  5478			000000			AEE=0				;INITIAL C(E)
  5479	033742	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5480	033743	005 06 0 00 032173 		ER5	E,32173			;C(E) WAS CLOBBERED
  5481	033744	321 12 0 00 033732 		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	033745	200 10 0 00 044032 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5496		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5497	033746	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5498			000000			AEE=0				;INITIAL C(E)
  5499	033747	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5500	033750	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5501			000000			AR1=0				;EXPECTED RESULT IN AC
  5502	033751	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5503	033752	003 10 0 00 032201 		ER3	AC,32201		;HIGH PRODUCT FAILED
  5504			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5505	033753	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5506	033754	004 11 0 00 032202 		ER4	AC+1,32202		;LOW PRODUCT FAILED
  5507			000000			AEE=0				;INITIAL C(E)
  5508	033755	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5509	033756	005 06 0 00 032203 		ER5	E,32203			;C(E) WAS CLOBBERED
  5510	033757	321 12 0 00 033745 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0120

  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	033760	200 10 0 00 044033 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5525		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5526	033761	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5527			000000			AEE=0				;INITIAL C(E)
  5528	033762	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5529	033763	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5530			000000			AR1=0				;EXPECTED RESULT IN AC
  5531	033764	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5532	033765	003 10 0 00 032211 		ER3	AC,32211		;HIGH PRODUCT FAILED
  5533			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5534	033766	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5535	033767	004 11 0 00 032212 		ER4	AC+1,32212		;LOW PRODUCT FAILED
  5536			000000			AEE=0				;INITIAL C(E)
  5537	033770	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5538	033771	005 06 0 00 032213 		ER5	E,32213			;C(E) WAS CLOBBERED
  5539	033772	321 12 0 00 033760 		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	033773	200 10 0 00 044034 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5554		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5555	033774	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5556			000000			AEE=0				;INITIAL C(E)
  5557	033775	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5558	033776	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5559			000000			AR1=0				;EXPECTED RESULT IN AC
  5560	033777	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5561	034000	003 10 0 00 032221 		ER3	AC,32221		;HIGH PRODUCT FAILED
  5562			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5563	034001	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5564	034002	004 11 0 00 032222 		ER4	AC+1,32222		;LOW PRODUCT FAILED
  5565			000000			AEE=0				;INITIAL C(E)
  5566	034003	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5567	034004	005 06 0 00 032223 		ER5	E,32223			;C(E) WAS CLOBBERED
  5568	034005	321 12 0 00 033773 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0121

  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	034006	200 10 0 00 044035 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5583		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5584	034007	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5585			000000			AEE=0				;INITIAL C(E)
  5586	034010	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5587	034011	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5588			000000			AR1=0				;EXPECTED RESULT IN AC
  5589	034012	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5590	034013	003 10 0 00 032231 		ER3	AC,32231		;HIGH PRODUCT FAILED
  5591			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5592	034014	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5593	034015	004 11 0 00 032232 		ER4	AC+1,32232		;LOW PRODUCT FAILED
  5594			000000			AEE=0				;INITIAL C(E)
  5595	034016	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5596	034017	005 06 0 00 032233 		ER5	E,32233			;C(E) WAS CLOBBERED
  5597	034020	321 12 0 00 034006 		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	034021	200 10 0 00 044036 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5612		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5613	034022	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5614			000000			AEE=0				;INITIAL C(E)
  5615	034023	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5616	034024	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5617			000000			AR1=0				;EXPECTED RESULT IN AC
  5618	034025	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5619	034026	003 10 0 00 032241 		ER3	AC,32241		;HIGH PRODUCT FAILED
  5620			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5621	034027	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5622	034030	004 11 0 00 032242 		ER4	AC+1,32242		;LOW PRODUCT FAILED
  5623			000000			AEE=0				;INITIAL C(E)
  5624	034031	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5625	034032	005 06 0 00 032243 		ER5	E,32243			;C(E) WAS CLOBBERED
  5626	034033	321 12 0 00 034021 		JUMPL	AC+2,F32240		;LOOP ON ERROR SWITCH^
  5627
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0122

  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	034034	200 10 0 00 044037 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5641		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5642	034035	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5643			000000			AEE=0				;INITIAL C(E)
  5644	034036	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5645	034037	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5646			000000			AR1=0				;EXPECTED RESULT IN AC
  5647	034040	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5648	034041	003 10 0 00 032251 		ER3	AC,32251		;HIGH PRODUCT FAILED
  5649			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5650	034042	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5651	034043	004 11 0 00 032252 		ER4	AC+1,32252		;LOW PRODUCT FAILED
  5652			000000			AEE=0				;INITIAL C(E)
  5653	034044	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5654	034045	005 06 0 00 032253 		ER5	E,32253			;C(E) WAS CLOBBERED
  5655	034046	321 12 0 00 034034 		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	034047	200 10 0 00 044040 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5670		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5671	034050	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5672			000000			AEE=0				;INITIAL C(E)
  5673	034051	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5674	034052	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5675			000000			AR1=0				;EXPECTED RESULT IN AC
  5676	034053	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5677	034054	003 10 0 00 032261 		ER3	AC,32261		;HIGH PRODUCT FAILED
  5678			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5679	034055	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5680	034056	004 11 0 00 032262 		ER4	AC+1,32262		;LOW PRODUCT FAILED
  5681			000000			AEE=0				;INITIAL C(E)
  5682	034057	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0123

  5683	034060	005 06 0 00 032263 		ER5	E,32263			;C(E) WAS CLOBBERED
  5684	034061	321 12 0 00 034047 		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	034062	200 10 0 00 044041 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5699		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5700	034063	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5701			000000			AEE=0				;INITIAL C(E)
  5702	034064	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5703	034065	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5704			000000			AR1=0				;EXPECTED RESULT IN AC
  5705	034066	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5706	034067	003 10 0 00 032271 		ER3	AC,32271		;HIGH PRODUCT FAILED
  5707			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5708	034070	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5709	034071	004 11 0 00 032272 		ER4	AC+1,32272		;LOW PRODUCT FAILED
  5710			000000			AEE=0				;INITIAL C(E)
  5711	034072	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5712	034073	005 06 0 00 032273 		ER5	E,32273			;C(E) WAS CLOBBERED
  5713	034074	321 12 0 00 034062 		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	034075	200 10 0 00 044042 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5728		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5729	034076	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5730			000000			AEE=0				;INITIAL C(E)
  5731	034077	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5732	034100	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5733			000000			AR1=0				;EXPECTED RESULT IN AC
  5734	034101	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5735	034102	003 10 0 00 032301 		ER3	AC,32301		;HIGH PRODUCT FAILED
  5736			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5737	034103	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0124

  5738	034104	004 11 0 00 032302 		ER4	AC+1,32302		;LOW PRODUCT FAILED
  5739			000000			AEE=0				;INITIAL C(E)
  5740	034105	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5741	034106	005 06 0 00 032303 		ER5	E,32303			;C(E) WAS CLOBBERED
  5742	034107	321 12 0 00 034075 		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	034110	200 10 0 00 044043 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5757		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5758	034111	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5759			000000			AEE=0				;INITIAL C(E)
  5760	034112	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5761	034113	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5762			000000			AR1=0				;EXPECTED RESULT IN AC
  5763	034114	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5764	034115	003 10 0 00 032311 		ER3	AC,32311		;HIGH PRODUCT FAILED
  5765			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5766	034116	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5767	034117	004 11 0 00 032312 		ER4	AC+1,32312		;LOW PRODUCT FAILED
  5768			000000			AEE=0				;INITIAL C(E)
  5769	034120	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5770	034121	005 06 0 00 032313 		ER5	E,32313			;C(E) WAS CLOBBERED
  5771	034122	321 12 0 00 034110 		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	034123	200 10 0 00 044044 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5786		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5787	034124	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5788			000000			AEE=0				;INITIAL C(E)
  5789	034125	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5790	034126	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5791			000000			AR1=0				;EXPECTED RESULT IN AC
  5792	034127	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0125

  5793	034130	003 10 0 00 032321 		ER3	AC,32321		;HIGH PRODUCT FAILED
  5794			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5795	034131	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5796	034132	004 11 0 00 032322 		ER4	AC+1,32322		;LOW PRODUCT FAILED
  5797			000000			AEE=0				;INITIAL C(E)
  5798	034133	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5799	034134	005 06 0 00 032323 		ER5	E,32323			;C(E) WAS CLOBBERED
  5800	034135	321 12 0 00 034123 		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	034136	200 10 0 00 044045 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5815		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5816	034137	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5817			000000			AEE=0				;INITIAL C(E)
  5818	034140	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5819	034141	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5820			000000			AR1=0				;EXPECTED RESULT IN AC
  5821	034142	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5822	034143	003 10 0 00 032331 		ER3	AC,32331		;HIGH PRODUCT FAILED
  5823			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5824	034144	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5825	034145	004 11 0 00 032332 		ER4	AC+1,32332		;LOW PRODUCT FAILED
  5826			000000			AEE=0				;INITIAL C(E)
  5827	034146	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5828	034147	005 06 0 00 032333 		ER5	E,32333			;C(E) WAS CLOBBERED
  5829	034150	321 12 0 00 034136 		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	034151	200 10 0 00 044046 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5844		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5845	034152	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5846			000000			AEE=0				;INITIAL C(E)
  5847	034153	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0126

  5848	034154	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5849			000000			AR1=0				;EXPECTED RESULT IN AC
  5850	034155	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5851	034156	003 10 0 00 032341 		ER3	AC,32341		;HIGH PRODUCT FAILED
  5852			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5853	034157	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5854	034160	004 11 0 00 032342 		ER4	AC+1,32342		;LOW PRODUCT FAILED
  5855			000000			AEE=0				;INITIAL C(E)
  5856	034161	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5857	034162	005 06 0 00 032343 		ER5	E,32343			;C(E) WAS CLOBBERED
  5858	034163	321 12 0 00 034151 		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	034164	200 10 0 00 044047 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5873		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5874	034165	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5875			000000			AEE=0				;INITIAL C(E)
  5876	034166	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5877	034167	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5878			000000			AR1=0				;EXPECTED RESULT IN AC
  5879	034170	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5880	034171	003 10 0 00 032351 		ER3	AC,32351		;HIGH PRODUCT FAILED
  5881			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5882	034172	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5883	034173	004 11 0 00 032352 		ER4	AC+1,32352		;LOW PRODUCT FAILED
  5884			000000			AEE=0				;INITIAL C(E)
  5885	034174	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5886	034175	005 06 0 00 032353 		ER5	E,32353			;C(E) WAS CLOBBERED
  5887	034176	321 12 0 00 034164 		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	034177	200 10 0 00 044050 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5902		777777	777777			AA2=-1				;INITIAL C(AC+1)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0127

  5903	034200	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5904			000000			AEE=0				;INITIAL C(E)
  5905	034201	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5906	034202	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5907			000000			AR1=0				;EXPECTED RESULT IN AC
  5908	034203	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5909	034204	003 10 0 00 032361 		ER3	AC,32361		;HIGH PRODUCT FAILED
  5910			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5911	034205	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5912	034206	004 11 0 00 032362 		ER4	AC+1,32362		;LOW PRODUCT FAILED
  5913			000000			AEE=0				;INITIAL C(E)
  5914	034207	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5915	034210	005 06 0 00 032363 		ER5	E,32363			;C(E) WAS CLOBBERED
  5916	034211	321 12 0 00 034177 		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	034212	200 10 0 00 044051 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5931		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5932	034213	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5933			000000			AEE=0				;INITIAL C(E)
  5934	034214	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5935	034215	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5936			000000			AR1=0				;EXPECTED RESULT IN AC
  5937	034216	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5938	034217	003 10 0 00 032371 		ER3	AC,32371		;HIGH PRODUCT FAILED
  5939			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5940	034220	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5941	034221	004 11 0 00 032372 		ER4	AC+1,32372		;LOW PRODUCT FAILED
  5942			000000			AEE=0				;INITIAL C(E)
  5943	034222	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5944	034223	005 06 0 00 032373 		ER5	E,32373			;C(E) WAS CLOBBERED
  5945	034224	321 12 0 00 034212 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0128

  5958		777776	777777		F32400:	AA1=XX				;INITIAL C(AC)
  5959	034225	200 10 0 00 044052 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5960		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5961	034226	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5962			000000			AEE=0				;INITIAL C(E)
  5963	034227	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5964	034230	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5965			000000			AR1=0				;EXPECTED RESULT IN AC
  5966	034231	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5967	034232	003 10 0 00 032401 		ER3	AC,32401		;HIGH PRODUCT FAILED
  5968			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5969	034233	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5970	034234	004 11 0 00 032402 		ER4	AC+1,32402		;LOW PRODUCT FAILED
  5971			000000			AEE=0				;INITIAL C(E)
  5972	034235	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  5973	034236	005 06 0 00 032403 		ER5	E,32403			;C(E) WAS CLOBBERED
  5974	034237	321 12 0 00 034225 		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	034240	200 10 0 00 044053 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  5989		777777	777777			AA2=-1				;INITIAL C(AC+1)
  5990	034241	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  5991			000000			AEE=0				;INITIAL C(E)
  5992	034242	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  5993	034243	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  5994			000000			AR1=0				;EXPECTED RESULT IN AC
  5995	034244	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  5996	034245	003 10 0 00 032411 		ER3	AC,32411		;HIGH PRODUCT FAILED
  5997			000000			AR2=0				;EXPECTED RESULT IN AC+1
  5998	034246	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  5999	034247	004 11 0 00 032412 		ER4	AC+1,32412		;LOW PRODUCT FAILED
  6000			000000			AEE=0				;INITIAL C(E)
  6001	034250	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6002	034251	005 06 0 00 032413 		ER5	E,32413			;C(E) WAS CLOBBERED
  6003	034252	321 12 0 00 034240 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0129

  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	034253	200 10 0 00 044054 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6018		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6019	034254	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6020			000000			AEE=0				;INITIAL C(E)
  6021	034255	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6022	034256	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6023			000000			AR1=0				;EXPECTED RESULT IN AC
  6024	034257	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6025	034260	003 10 0 00 032421 		ER3	AC,32421		;HIGH PRODUCT FAILED
  6026			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6027	034261	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6028	034262	004 11 0 00 032422 		ER4	AC+1,32422		;LOW PRODUCT FAILED
  6029			000000			AEE=0				;INITIAL C(E)
  6030	034263	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6031	034264	005 06 0 00 032423 		ER5	E,32423			;C(E) WAS CLOBBERED
  6032	034265	321 12 0 00 034253 		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	034266	200 10 0 00 044055 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6047		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6048	034267	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6049			000000			AEE=0				;INITIAL C(E)
  6050	034270	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6051	034271	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6052			000000			AR1=0				;EXPECTED RESULT IN AC
  6053	034272	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6054	034273	003 10 0 00 032431 		ER3	AC,32431		;HIGH PRODUCT FAILED
  6055			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6056	034274	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6057	034275	004 11 0 00 032432 		ER4	AC+1,32432		;LOW PRODUCT FAILED
  6058			000000			AEE=0				;INITIAL C(E)
  6059	034276	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6060	034277	005 06 0 00 032433 		ER5	E,32433			;C(E) WAS CLOBBERED
  6061	034300	321 12 0 00 034266 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0130

  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	034301	200 10 0 00 044056 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6076		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6077	034302	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6078			000000			AEE=0				;INITIAL C(E)
  6079	034303	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6080	034304	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6081			000000			AR1=0				;EXPECTED RESULT IN AC
  6082	034305	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6083	034306	003 10 0 00 032441 		ER3	AC,32441		;HIGH PRODUCT FAILED
  6084			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6085	034307	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6086	034310	004 11 0 00 032442 		ER4	AC+1,32442		;LOW PRODUCT FAILED
  6087			000000			AEE=0				;INITIAL C(E)
  6088	034311	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6089	034312	005 06 0 00 032443 		ER5	E,32443			;C(E) WAS CLOBBERED
  6090	034313	321 12 0 00 034301 		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	034314	200 10 0 00 044057 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6105		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6106	034315	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6107			000000			AEE=0				;INITIAL C(E)
  6108	034316	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6109	034317	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6110			000000			AR1=0				;EXPECTED RESULT IN AC
  6111	034320	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6112	034321	003 10 0 00 032451 		ER3	AC,32451		;HIGH PRODUCT FAILED
  6113			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6114	034322	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6115	034323	004 11 0 00 032452 		ER4	AC+1,32452		;LOW PRODUCT FAILED
  6116			000000			AEE=0				;INITIAL C(E)
  6117	034324	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6118	034325	005 06 0 00 032453 		ER5	E,32453			;C(E) WAS CLOBBERED
  6119	034326	321 12 0 00 034314 		JUMPL	AC+2,F32450		;LOOP ON ERROR SWITCH^
  6120
  6121			003246			ADR=ADR+1
  6122		777677	777777			XX=XX+XX+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0131

  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	034327	200 10 0 00 044060 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6134		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6135	034330	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6136			000000			AEE=0				;INITIAL C(E)
  6137	034331	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6138	034332	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6139			000000			AR1=0				;EXPECTED RESULT IN AC
  6140	034333	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6141	034334	003 10 0 00 032461 		ER3	AC,32461		;HIGH PRODUCT FAILED
  6142			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6143	034335	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6144	034336	004 11 0 00 032462 		ER4	AC+1,32462		;LOW PRODUCT FAILED
  6145			000000			AEE=0				;INITIAL C(E)
  6146	034337	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6147	034340	005 06 0 00 032463 		ER5	E,32463			;C(E) WAS CLOBBERED
  6148	034341	321 12 0 00 034327 		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	034342	200 10 0 00 044061 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6163		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6164	034343	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6165			000000			AEE=0				;INITIAL C(E)
  6166	034344	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6167	034345	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6168			000000			AR1=0				;EXPECTED RESULT IN AC
  6169	034346	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6170	034347	003 10 0 00 032471 		ER3	AC,32471		;HIGH PRODUCT FAILED
  6171			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6172	034350	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6173	034351	004 11 0 00 032472 		ER4	AC+1,32472		;LOW PRODUCT FAILED
  6174			000000			AEE=0				;INITIAL C(E)
  6175	034352	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6176	034353	005 06 0 00 032473 		ER5	E,32473			;C(E) WAS CLOBBERED
  6177	034354	321 12 0 00 034342 		JUMPL	AC+2,F32470		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0132

  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	034355	200 10 0 00 044062 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6192		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6193	034356	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6194			000000			AEE=0				;INITIAL C(E)
  6195	034357	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6196	034360	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6197			000000			AR1=0				;EXPECTED RESULT IN AC
  6198	034361	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6199	034362	003 10 0 00 032501 		ER3	AC,32501		;HIGH PRODUCT FAILED
  6200			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6201	034363	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6202	034364	004 11 0 00 032502 		ER4	AC+1,32502		;LOW PRODUCT FAILED
  6203			000000			AEE=0				;INITIAL C(E)
  6204	034365	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6205	034366	005 06 0 00 032503 		ER5	E,32503			;C(E) WAS CLOBBERED
  6206	034367	321 12 0 00 034355 		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	034370	200 10 0 00 044063 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6221		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6222	034371	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6223			000000			AEE=0				;INITIAL C(E)
  6224	034372	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6225	034373	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6226			000000			AR1=0				;EXPECTED RESULT IN AC
  6227	034374	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6228	034375	003 10 0 00 032511 		ER3	AC,32511		;HIGH PRODUCT FAILED
  6229			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6230	034376	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6231	034377	004 11 0 00 032512 		ER4	AC+1,32512		;LOW PRODUCT FAILED
  6232			000000			AEE=0				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0133

  6233	034400	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6234	034401	005 06 0 00 032513 		ER5	E,32513			;C(E) WAS CLOBBERED
  6235	034402	321 12 0 00 034370 		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	034403	200 10 0 00 044064 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6250		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6251	034404	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6252			000000			AEE=0				;INITIAL C(E)
  6253	034405	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6254	034406	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6255			000000			AR1=0				;EXPECTED RESULT IN AC
  6256	034407	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6257	034410	003 10 0 00 032521 		ER3	AC,32521		;HIGH PRODUCT FAILED
  6258			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6259	034411	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6260	034412	004 11 0 00 032522 		ER4	AC+1,32522		;LOW PRODUCT FAILED
  6261			000000			AEE=0				;INITIAL C(E)
  6262	034413	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6263	034414	005 06 0 00 032523 		ER5	E,32523			;C(E) WAS CLOBBERED
  6264	034415	321 12 0 00 034403 		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	034416	200 10 0 00 044065 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6279		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6280	034417	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6281			000000			AEE=0				;INITIAL C(E)
  6282	034420	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6283	034421	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6284			000000			AR1=0				;EXPECTED RESULT IN AC
  6285	034422	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6286	034423	003 10 0 00 032531 		ER3	AC,32531		;HIGH PRODUCT FAILED
  6287			000000			AR2=0				;EXPECTED RESULT IN AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0134

  6288	034424	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6289	034425	004 11 0 00 032532 		ER4	AC+1,32532		;LOW PRODUCT FAILED
  6290			000000			AEE=0				;INITIAL C(E)
  6291	034426	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6292	034427	005 06 0 00 032533 		ER5	E,32533			;C(E) WAS CLOBBERED
  6293	034430	321 12 0 00 034416 		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	034431	200 10 0 00 044066 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6308		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6309	034432	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6310			000000			AEE=0				;INITIAL C(E)
  6311	034433	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6312	034434	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6313			000000			AR1=0				;EXPECTED RESULT IN AC
  6314	034435	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6315	034436	003 10 0 00 032541 		ER3	AC,32541		;HIGH PRODUCT FAILED
  6316			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6317	034437	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6318	034440	004 11 0 00 032542 		ER4	AC+1,32542		;LOW PRODUCT FAILED
  6319			000000			AEE=0				;INITIAL C(E)
  6320	034441	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6321	034442	005 06 0 00 032543 		ER5	E,32543			;C(E) WAS CLOBBERED
  6322	034443	321 12 0 00 034431 		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	034444	200 10 0 00 044067 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6337		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6338	034445	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6339			000000			AEE=0				;INITIAL C(E)
  6340	034446	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6341	034447	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6342			000000			AR1=0				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0135

  6343	034450	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6344	034451	003 10 0 00 032551 		ER3	AC,32551		;HIGH PRODUCT FAILED
  6345			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6346	034452	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6347	034453	004 11 0 00 032552 		ER4	AC+1,32552		;LOW PRODUCT FAILED
  6348			000000			AEE=0				;INITIAL C(E)
  6349	034454	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6350	034455	005 06 0 00 032553 		ER5	E,32553			;C(E) WAS CLOBBERED
  6351	034456	321 12 0 00 034444 		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	034457	200 10 0 00 044070 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6366		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6367	034460	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6368			000000			AEE=0				;INITIAL C(E)
  6369	034461	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6370	034462	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6371			000000			AR1=0				;EXPECTED RESULT IN AC
  6372	034463	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6373	034464	003 10 0 00 032561 		ER3	AC,32561		;HIGH PRODUCT FAILED
  6374			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6375	034465	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6376	034466	004 11 0 00 032562 		ER4	AC+1,32562		;LOW PRODUCT FAILED
  6377			000000			AEE=0				;INITIAL C(E)
  6378	034467	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6379	034470	005 06 0 00 032563 		ER5	E,32563			;C(E) WAS CLOBBERED
  6380	034471	321 12 0 00 034457 		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	034472	200 10 0 00 044071 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6395		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6396	034473	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6397			000000			AEE=0				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0136

  6398	034474	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6399	034475	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6400			000000			AR1=0				;EXPECTED RESULT IN AC
  6401	034476	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6402	034477	003 10 0 00 032571 		ER3	AC,32571		;HIGH PRODUCT FAILED
  6403			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6404	034500	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6405	034501	004 11 0 00 032572 		ER4	AC+1,32572		;LOW PRODUCT FAILED
  6406			000000			AEE=0				;INITIAL C(E)
  6407	034502	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6408	034503	005 06 0 00 032573 		ER5	E,32573			;C(E) WAS CLOBBERED
  6409	034504	321 12 0 00 034472 		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	034505	200 10 0 00 044072 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  6424		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6425	034506	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6426			000000			AEE=0				;INITIAL C(E)
  6427	034507	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6428	034510	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6429			000000			AR1=0				;EXPECTED RESULT IN AC
  6430	034511	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6431	034512	003 10 0 00 032601 		ER3	AC,32601		;HIGH PRODUCT FAILED
  6432			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6433	034513	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6434	034514	004 11 0 00 032602 		ER4	AC+1,32602		;LOW PRODUCT FAILED
  6435			000000			AEE=0				;INITIAL C(E)
  6436	034515	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6437	034516	005 06 0 00 032603 		ER5	E,32603			;C(E) WAS CLOBBERED
  6438	034517	321 12 0 00 034505 		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	034520	200 10 0 00 044073 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0137

  6453		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6454	034521	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6455			000000			AEE=0				;INITIAL C(E)
  6456	034522	200 06 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6457	034523	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6458			000000			AR1=0				;EXPECTED RESULT IN AC
  6459	034524	312 10 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6460	034525	003 10 0 00 032611 		ER3	AC,32611		;HIGH PRODUCT FAILED
  6461			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6462	034526	312 11 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6463	034527	004 11 0 00 032612 		ER4	AC+1,32612		;LOW PRODUCT FAILED
  6464			000000			AEE=0				;INITIAL C(E)
  6465	034530	312 06 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6466	034531	005 06 0 00 032613 		ER5	E,32613			;C(E) WAS CLOBBERED
  6467	034532	321 12 0 00 034520 		JUMPL	AC+2,F32610		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT                                       SEQ 0138

  6468			000007			AC=7
  6469			000005			E=<AC-2>&17
  6470						SAVEAC	(1,1)^
  6471	034533	201 11 0 00 034533 		MOVEI	AC+2,.		;SAVE TEST PC
  6472	034534	202 11 0 00 030051 		MOVEM	AC+2,TESTPC
  6473	034535	201 11 0 00 000011 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  6474	034536	202 11 0 00 044437 		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	034537	200 07 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  6486		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6487	034540	200 10 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6488			000000			AEE=0				;INITIAL C(E)
  6489	034541	200 05 0 00 043762 		MOVE	E,[0]			;PRELOAD E (MULTIPLICAND)
  6490	034542	224 07 0 00 000005 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6491			000000			AR1=0				;EXPECTED RESULT IN AC
  6492	034543	312 07 0 00 043762 		CAME	AC,[0]			;IS HIGH PRODUCT CORRECT?
  6493	034544	003 07 0 00 032621 		ER3	AC,32621		;HIGH PRODUCT FAILED
  6494			000000			AR2=0				;EXPECTED RESULT IN AC+1
  6495	034545	312 10 0 00 043762 		CAME	AC+1,[0]		;IS LOW PRODUCT CORRECT?
  6496	034546	004 10 0 00 032622 		ER4	AC+1,32622		;LOW PRODUCT FAILED
  6497			000000			AEE=0				;INITIAL C(E)
  6498	034547	312 05 0 00 043762 		CAME	E,[0]			;WAS C(E) CLOBBERED?
  6499	034550	005 05 0 00 032623 		ER5	E,32623			;C(E) WAS CLOBBERED
  6500	034551	321 11 0 00 034537 		JUMPL	AC+2,F32620		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0139

  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	034552	201 10 0 00 034552 		MOVEI	AC+2,.		;SAVE TEST PC
  6507	034553	202 10 0 00 030051 		MOVEM	AC+2,TESTPC
  6508	034554	201 10 0 00 000010 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  6509	034555	202 10 0 00 044437 		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	034556	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6538		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6539	034557	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6540			000001			AEE=XX				;INITIAL C(E)
  6541	034560	200 04 0 00 043764 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6542	034561	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6543			000000			AR1=V1				;EXPECTED RESULT IN AC
  6544	034562	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6545	034563	003 06 0 00 032631 		ER3	AC,32631		;HIGH PRODUCT FAILED
  6546			000001			AR2=XX				;EXPECTED RESULT IN AC+1
  6547	034564	312 07 0 00 043764 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6548	034565	004 07 0 00 032632 		ER4	AC+1,32632		;LOW PRODUCT FAILED
  6549			000001			AEE=XX				;INITIAL C(E)
  6550	034566	312 04 0 00 043764 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6551	034567	005 04 0 00 032633 		ER5	E,32633			;C(E) WAS CLOBBERED
  6552	034570	321 10 0 00 034556 		JUMPL	AC+2,F32630		;LOOP ON ERROR SWITCH^
  6553
  6554			003264			ADR=ADR+1
  6555			000002			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0140

  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	034571	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6569		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6570	034572	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6571			000002			AEE=XX				;INITIAL C(E)
  6572	034573	200 04 0 00 043765 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6573	034574	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6574			000000			AR1=V1				;EXPECTED RESULT IN AC
  6575	034575	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6576	034576	003 06 0 00 032641 		ER3	AC,32641		;HIGH PRODUCT FAILED
  6577			000002			AR2=XX				;EXPECTED RESULT IN AC+1
  6578	034577	312 07 0 00 043765 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6579	034600	004 07 0 00 032642 		ER4	AC+1,32642		;LOW PRODUCT FAILED
  6580			000002			AEE=XX				;INITIAL C(E)
  6581	034601	312 04 0 00 043765 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6582	034602	005 04 0 00 032643 		ER5	E,32643			;C(E) WAS CLOBBERED
  6583	034603	321 10 0 00 034571 		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	034604	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6600		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6601	034605	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6602			000004			AEE=XX				;INITIAL C(E)
  6603	034606	200 04 0 00 043766 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6604	034607	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6605			000000			AR1=V1				;EXPECTED RESULT IN AC
  6606	034610	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6607	034611	003 06 0 00 032651 		ER3	AC,32651		;HIGH PRODUCT FAILED
  6608			000004			AR2=XX				;EXPECTED RESULT IN AC+1
  6609	034612	312 07 0 00 043766 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6610	034613	004 07 0 00 032652 		ER4	AC+1,32652		;LOW PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0141

  6611			000004			AEE=XX				;INITIAL C(E)
  6612	034614	312 04 0 00 043766 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6613	034615	005 04 0 00 032653 		ER5	E,32653			;C(E) WAS CLOBBERED
  6614	034616	321 10 0 00 034604 		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	034617	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6631		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6632	034620	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6633			000010			AEE=XX				;INITIAL C(E)
  6634	034621	200 04 0 00 043767 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6635	034622	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6636			000000			AR1=V1				;EXPECTED RESULT IN AC
  6637	034623	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6638	034624	003 06 0 00 032661 		ER3	AC,32661		;HIGH PRODUCT FAILED
  6639			000010			AR2=XX				;EXPECTED RESULT IN AC+1
  6640	034625	312 07 0 00 043767 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6641	034626	004 07 0 00 032662 		ER4	AC+1,32662		;LOW PRODUCT FAILED
  6642			000010			AEE=XX				;INITIAL C(E)
  6643	034627	312 04 0 00 043767 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6644	034630	005 04 0 00 032663 		ER5	E,32663			;C(E) WAS CLOBBERED
  6645	034631	321 10 0 00 034617 		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	034632	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6662		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6663	034633	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6664			000020			AEE=XX				;INITIAL C(E)
  6665	034634	200 04 0 00 043770 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0142

  6666	034635	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6667			000000			AR1=V1				;EXPECTED RESULT IN AC
  6668	034636	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6669	034637	003 06 0 00 032671 		ER3	AC,32671		;HIGH PRODUCT FAILED
  6670			000020			AR2=XX				;EXPECTED RESULT IN AC+1
  6671	034640	312 07 0 00 043770 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6672	034641	004 07 0 00 032672 		ER4	AC+1,32672		;LOW PRODUCT FAILED
  6673			000020			AEE=XX				;INITIAL C(E)
  6674	034642	312 04 0 00 043770 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6675	034643	005 04 0 00 032673 		ER5	E,32673			;C(E) WAS CLOBBERED
  6676	034644	321 10 0 00 034632 		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	034645	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6693		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6694	034646	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6695			000040			AEE=XX				;INITIAL C(E)
  6696	034647	200 04 0 00 043771 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6697	034650	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6698			000000			AR1=V1				;EXPECTED RESULT IN AC
  6699	034651	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6700	034652	003 06 0 00 032701 		ER3	AC,32701		;HIGH PRODUCT FAILED
  6701			000040			AR2=XX				;EXPECTED RESULT IN AC+1
  6702	034653	312 07 0 00 043771 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6703	034654	004 07 0 00 032702 		ER4	AC+1,32702		;LOW PRODUCT FAILED
  6704			000040			AEE=XX				;INITIAL C(E)
  6705	034655	312 04 0 00 043771 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6706	034656	005 04 0 00 032703 		ER5	E,32703			;C(E) WAS CLOBBERED
  6707	034657	321 10 0 00 034645 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0143

  6721
  6722			000001		F32710:	AA1=1				;INITIAL C(AC)
  6723	034660	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6724		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6725	034661	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6726			000100			AEE=XX				;INITIAL C(E)
  6727	034662	200 04 0 00 043772 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6728	034663	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6729			000000			AR1=V1				;EXPECTED RESULT IN AC
  6730	034664	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6731	034665	003 06 0 00 032711 		ER3	AC,32711		;HIGH PRODUCT FAILED
  6732			000100			AR2=XX				;EXPECTED RESULT IN AC+1
  6733	034666	312 07 0 00 043772 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6734	034667	004 07 0 00 032712 		ER4	AC+1,32712		;LOW PRODUCT FAILED
  6735			000100			AEE=XX				;INITIAL C(E)
  6736	034670	312 04 0 00 043772 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6737	034671	005 04 0 00 032713 		ER5	E,32713			;C(E) WAS CLOBBERED
  6738	034672	321 10 0 00 034660 		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	034673	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6755		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6756	034674	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6757			000200			AEE=XX				;INITIAL C(E)
  6758	034675	200 04 0 00 043773 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6759	034676	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6760			000000			AR1=V1				;EXPECTED RESULT IN AC
  6761	034677	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6762	034700	003 06 0 00 032721 		ER3	AC,32721		;HIGH PRODUCT FAILED
  6763			000200			AR2=XX				;EXPECTED RESULT IN AC+1
  6764	034701	312 07 0 00 043773 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6765	034702	004 07 0 00 032722 		ER4	AC+1,32722		;LOW PRODUCT FAILED
  6766			000200			AEE=XX				;INITIAL C(E)
  6767	034703	312 04 0 00 043773 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6768	034704	005 04 0 00 032723 		ER5	E,32723			;C(E) WAS CLOBBERED
  6769	034705	321 10 0 00 034673 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0144

  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	034706	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6786		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6787	034707	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6788			000400			AEE=XX				;INITIAL C(E)
  6789	034710	200 04 0 00 043774 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6790	034711	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6791			000000			AR1=V1				;EXPECTED RESULT IN AC
  6792	034712	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6793	034713	003 06 0 00 032731 		ER3	AC,32731		;HIGH PRODUCT FAILED
  6794			000400			AR2=XX				;EXPECTED RESULT IN AC+1
  6795	034714	312 07 0 00 043774 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6796	034715	004 07 0 00 032732 		ER4	AC+1,32732		;LOW PRODUCT FAILED
  6797			000400			AEE=XX				;INITIAL C(E)
  6798	034716	312 04 0 00 043774 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6799	034717	005 04 0 00 032733 		ER5	E,32733			;C(E) WAS CLOBBERED
  6800	034720	321 10 0 00 034706 		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	034721	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6817		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6818	034722	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6819			001000			AEE=XX				;INITIAL C(E)
  6820	034723	200 04 0 00 043775 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6821	034724	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6822			000000			AR1=V1				;EXPECTED RESULT IN AC
  6823	034725	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6824	034726	003 06 0 00 032741 		ER3	AC,32741		;HIGH PRODUCT FAILED
  6825			001000			AR2=XX				;EXPECTED RESULT IN AC+1
  6826	034727	312 07 0 00 043775 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6827	034730	004 07 0 00 032742 		ER4	AC+1,32742		;LOW PRODUCT FAILED
  6828			001000			AEE=XX				;INITIAL C(E)
  6829	034731	312 04 0 00 043775 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6830	034732	005 04 0 00 032743 		ER5	E,32743			;C(E) WAS CLOBBERED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0145

  6831	034733	321 10 0 00 034721 		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	034734	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6848		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6849	034735	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6850			002000			AEE=XX				;INITIAL C(E)
  6851	034736	200 04 0 00 043776 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6852	034737	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6853			000000			AR1=V1				;EXPECTED RESULT IN AC
  6854	034740	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6855	034741	003 06 0 00 032751 		ER3	AC,32751		;HIGH PRODUCT FAILED
  6856			002000			AR2=XX				;EXPECTED RESULT IN AC+1
  6857	034742	312 07 0 00 043776 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6858	034743	004 07 0 00 032752 		ER4	AC+1,32752		;LOW PRODUCT FAILED
  6859			002000			AEE=XX				;INITIAL C(E)
  6860	034744	312 04 0 00 043776 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6861	034745	005 04 0 00 032753 		ER5	E,32753			;C(E) WAS CLOBBERED
  6862	034746	321 10 0 00 034734 		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	034747	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6879		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6880	034750	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6881			004000			AEE=XX				;INITIAL C(E)
  6882	034751	200 04 0 00 043777 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6883	034752	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6884			000000			AR1=V1				;EXPECTED RESULT IN AC
  6885	034753	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0146

  6886	034754	003 06 0 00 032761 		ER3	AC,32761		;HIGH PRODUCT FAILED
  6887			004000			AR2=XX				;EXPECTED RESULT IN AC+1
  6888	034755	312 07 0 00 043777 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6889	034756	004 07 0 00 032762 		ER4	AC+1,32762		;LOW PRODUCT FAILED
  6890			004000			AEE=XX				;INITIAL C(E)
  6891	034757	312 04 0 00 043777 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6892	034760	005 04 0 00 032763 		ER5	E,32763			;C(E) WAS CLOBBERED
  6893	034761	321 10 0 00 034747 		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	034762	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6910		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6911	034763	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6912			010000			AEE=XX				;INITIAL C(E)
  6913	034764	200 04 0 00 044000 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6914	034765	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6915			000000			AR1=V1				;EXPECTED RESULT IN AC
  6916	034766	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6917	034767	003 06 0 00 032771 		ER3	AC,32771		;HIGH PRODUCT FAILED
  6918			010000			AR2=XX				;EXPECTED RESULT IN AC+1
  6919	034770	312 07 0 00 044000 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6920	034771	004 07 0 00 032772 		ER4	AC+1,32772		;LOW PRODUCT FAILED
  6921			010000			AEE=XX				;INITIAL C(E)
  6922	034772	312 04 0 00 044000 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6923	034773	005 04 0 00 032773 		ER5	E,32773			;C(E) WAS CLOBBERED
  6924	034774	321 10 0 00 034762 		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	034775	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0147

  6941		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6942	034776	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6943			020000			AEE=XX				;INITIAL C(E)
  6944	034777	200 04 0 00 044001 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6945	035000	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6946			000000			AR1=V1				;EXPECTED RESULT IN AC
  6947	035001	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6948	035002	003 06 0 00 033001 		ER3	AC,33001		;HIGH PRODUCT FAILED
  6949			020000			AR2=XX				;EXPECTED RESULT IN AC+1
  6950	035003	312 07 0 00 044001 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6951	035004	004 07 0 00 033002 		ER4	AC+1,33002		;LOW PRODUCT FAILED
  6952			020000			AEE=XX				;INITIAL C(E)
  6953	035005	312 04 0 00 044001 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6954	035006	005 04 0 00 033003 		ER5	E,33003			;C(E) WAS CLOBBERED
  6955	035007	321 10 0 00 034775 		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	035010	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  6972		777777	777777			AA2=-1				;INITIAL C(AC+1)
  6973	035011	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  6974			040000			AEE=XX				;INITIAL C(E)
  6975	035012	200 04 0 00 044002 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  6976	035013	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  6977			000000			AR1=V1				;EXPECTED RESULT IN AC
  6978	035014	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  6979	035015	003 06 0 00 033011 		ER3	AC,33011		;HIGH PRODUCT FAILED
  6980			040000			AR2=XX				;EXPECTED RESULT IN AC+1
  6981	035016	312 07 0 00 044002 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  6982	035017	004 07 0 00 033012 		ER4	AC+1,33012		;LOW PRODUCT FAILED
  6983			040000			AEE=XX				;INITIAL C(E)
  6984	035020	312 04 0 00 044002 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  6985	035021	005 04 0 00 033013 		ER5	E,33013			;C(E) WAS CLOBBERED
  6986	035022	321 10 0 00 035010 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0148

  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	035023	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7003		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7004	035024	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7005			100000			AEE=XX				;INITIAL C(E)
  7006	035025	200 04 0 00 044003 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7007	035026	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7008			000000			AR1=V1				;EXPECTED RESULT IN AC
  7009	035027	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7010	035030	003 06 0 00 033021 		ER3	AC,33021		;HIGH PRODUCT FAILED
  7011			100000			AR2=XX				;EXPECTED RESULT IN AC+1
  7012	035031	312 07 0 00 044003 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7013	035032	004 07 0 00 033022 		ER4	AC+1,33022		;LOW PRODUCT FAILED
  7014			100000			AEE=XX				;INITIAL C(E)
  7015	035033	312 04 0 00 044003 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7016	035034	005 04 0 00 033023 		ER5	E,33023			;C(E) WAS CLOBBERED
  7017	035035	321 10 0 00 035023 		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	035036	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7034		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7035	035037	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7036			200000			AEE=XX				;INITIAL C(E)
  7037	035040	200 04 0 00 044004 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7038	035041	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7039			000000			AR1=V1				;EXPECTED RESULT IN AC
  7040	035042	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7041	035043	003 06 0 00 033031 		ER3	AC,33031		;HIGH PRODUCT FAILED
  7042			200000			AR2=XX				;EXPECTED RESULT IN AC+1
  7043	035044	312 07 0 00 044004 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7044	035045	004 07 0 00 033032 		ER4	AC+1,33032		;LOW PRODUCT FAILED
  7045			200000			AEE=XX				;INITIAL C(E)
  7046	035046	312 04 0 00 044004 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7047	035047	005 04 0 00 033033 		ER5	E,33033			;C(E) WAS CLOBBERED
  7048	035050	321 10 0 00 035036 		JUMPL	AC+2,F33030		;LOOP ON ERROR SWITCH^
  7049
  7050			003304			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0149

  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	035051	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7065		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7066	035052	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7067			400000			AEE=XX				;INITIAL C(E)
  7068	035053	200 04 0 00 044005 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7069	035054	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7070			000000			AR1=V1				;EXPECTED RESULT IN AC
  7071	035055	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7072	035056	003 06 0 00 033041 		ER3	AC,33041		;HIGH PRODUCT FAILED
  7073			400000			AR2=XX				;EXPECTED RESULT IN AC+1
  7074	035057	312 07 0 00 044005 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7075	035060	004 07 0 00 033042 		ER4	AC+1,33042		;LOW PRODUCT FAILED
  7076			400000			AEE=XX				;INITIAL C(E)
  7077	035061	312 04 0 00 044005 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7078	035062	005 04 0 00 033043 		ER5	E,33043			;C(E) WAS CLOBBERED
  7079	035063	321 10 0 00 035051 		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	035064	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7096		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7097	035065	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7098		000001	000000			AEE=XX				;INITIAL C(E)
  7099	035066	200 04 0 00 044006 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7100	035067	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7101			000000			AR1=V1				;EXPECTED RESULT IN AC
  7102	035070	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7103	035071	003 06 0 00 033051 		ER3	AC,33051		;HIGH PRODUCT FAILED
  7104		000001	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7105	035072	312 07 0 00 044006 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0150

  7106	035073	004 07 0 00 033052 		ER4	AC+1,33052		;LOW PRODUCT FAILED
  7107		000001	000000			AEE=XX				;INITIAL C(E)
  7108	035074	312 04 0 00 044006 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7109	035075	005 04 0 00 033053 		ER5	E,33053			;C(E) WAS CLOBBERED
  7110	035076	321 10 0 00 035064 		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	035077	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7127		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7128	035100	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7129		000002	000000			AEE=XX				;INITIAL C(E)
  7130	035101	200 04 0 00 044007 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7131	035102	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7132			000000			AR1=V1				;EXPECTED RESULT IN AC
  7133	035103	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7134	035104	003 06 0 00 033061 		ER3	AC,33061		;HIGH PRODUCT FAILED
  7135		000002	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7136	035105	312 07 0 00 044007 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7137	035106	004 07 0 00 033062 		ER4	AC+1,33062		;LOW PRODUCT FAILED
  7138		000002	000000			AEE=XX				;INITIAL C(E)
  7139	035107	312 04 0 00 044007 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7140	035110	005 04 0 00 033063 		ER5	E,33063			;C(E) WAS CLOBBERED
  7141	035111	321 10 0 00 035077 		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	035112	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7158		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7159	035113	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7160		000004	000000			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0151

  7161	035114	200 04 0 00 044010 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7162	035115	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7163			000000			AR1=V1				;EXPECTED RESULT IN AC
  7164	035116	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7165	035117	003 06 0 00 033071 		ER3	AC,33071		;HIGH PRODUCT FAILED
  7166		000004	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7167	035120	312 07 0 00 044010 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7168	035121	004 07 0 00 033072 		ER4	AC+1,33072		;LOW PRODUCT FAILED
  7169		000004	000000			AEE=XX				;INITIAL C(E)
  7170	035122	312 04 0 00 044010 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7171	035123	005 04 0 00 033073 		ER5	E,33073			;C(E) WAS CLOBBERED
  7172	035124	321 10 0 00 035112 		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	035125	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7189		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7190	035126	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7191		000010	000000			AEE=XX				;INITIAL C(E)
  7192	035127	200 04 0 00 044011 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7193	035130	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7194			000000			AR1=V1				;EXPECTED RESULT IN AC
  7195	035131	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7196	035132	003 06 0 00 033101 		ER3	AC,33101		;HIGH PRODUCT FAILED
  7197		000010	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7198	035133	312 07 0 00 044011 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7199	035134	004 07 0 00 033102 		ER4	AC+1,33102		;LOW PRODUCT FAILED
  7200		000010	000000			AEE=XX				;INITIAL C(E)
  7201	035135	312 04 0 00 044011 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7202	035136	005 04 0 00 033103 		ER5	E,33103			;C(E) WAS CLOBBERED
  7203	035137	321 10 0 00 035125 		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.
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0152

  7216					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  7217
  7218			000001		F33110:	AA1=1				;INITIAL C(AC)
  7219	035140	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7220		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7221	035141	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7222		000020	000000			AEE=XX				;INITIAL C(E)
  7223	035142	200 04 0 00 044012 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7224	035143	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7225			000000			AR1=V1				;EXPECTED RESULT IN AC
  7226	035144	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7227	035145	003 06 0 00 033111 		ER3	AC,33111		;HIGH PRODUCT FAILED
  7228		000020	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7229	035146	312 07 0 00 044012 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7230	035147	004 07 0 00 033112 		ER4	AC+1,33112		;LOW PRODUCT FAILED
  7231		000020	000000			AEE=XX				;INITIAL C(E)
  7232	035150	312 04 0 00 044012 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7233	035151	005 04 0 00 033113 		ER5	E,33113			;C(E) WAS CLOBBERED
  7234	035152	321 10 0 00 035140 		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	035153	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7251		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7252	035154	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7253		000040	000000			AEE=XX				;INITIAL C(E)
  7254	035155	200 04 0 00 044013 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7255	035156	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7256			000000			AR1=V1				;EXPECTED RESULT IN AC
  7257	035157	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7258	035160	003 06 0 00 033121 		ER3	AC,33121		;HIGH PRODUCT FAILED
  7259		000040	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7260	035161	312 07 0 00 044013 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7261	035162	004 07 0 00 033122 		ER4	AC+1,33122		;LOW PRODUCT FAILED
  7262		000040	000000			AEE=XX				;INITIAL C(E)
  7263	035163	312 04 0 00 044013 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7264	035164	005 04 0 00 033123 		ER5	E,33123			;C(E) WAS CLOBBERED
  7265	035165	321 10 0 00 035153 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0153

  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	035166	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7282		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7283	035167	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7284		000100	000000			AEE=XX				;INITIAL C(E)
  7285	035170	200 04 0 00 044014 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7286	035171	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7287			000000			AR1=V1				;EXPECTED RESULT IN AC
  7288	035172	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7289	035173	003 06 0 00 033131 		ER3	AC,33131		;HIGH PRODUCT FAILED
  7290		000100	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7291	035174	312 07 0 00 044014 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7292	035175	004 07 0 00 033132 		ER4	AC+1,33132		;LOW PRODUCT FAILED
  7293		000100	000000			AEE=XX				;INITIAL C(E)
  7294	035176	312 04 0 00 044014 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7295	035177	005 04 0 00 033133 		ER5	E,33133			;C(E) WAS CLOBBERED
  7296	035200	321 10 0 00 035166 		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	035201	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7313		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7314	035202	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7315		000200	000000			AEE=XX				;INITIAL C(E)
  7316	035203	200 04 0 00 044015 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7317	035204	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7318			000000			AR1=V1				;EXPECTED RESULT IN AC
  7319	035205	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7320	035206	003 06 0 00 033141 		ER3	AC,33141		;HIGH PRODUCT FAILED
  7321		000200	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7322	035207	312 07 0 00 044015 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7323	035210	004 07 0 00 033142 		ER4	AC+1,33142		;LOW PRODUCT FAILED
  7324		000200	000000			AEE=XX				;INITIAL C(E)
  7325	035211	312 04 0 00 044015 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0154

  7326	035212	005 04 0 00 033143 		ER5	E,33143			;C(E) WAS CLOBBERED
  7327	035213	321 10 0 00 035201 		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	035214	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7344		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7345	035215	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7346		000400	000000			AEE=XX				;INITIAL C(E)
  7347	035216	200 04 0 00 044016 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7348	035217	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7349			000000			AR1=V1				;EXPECTED RESULT IN AC
  7350	035220	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7351	035221	003 06 0 00 033151 		ER3	AC,33151		;HIGH PRODUCT FAILED
  7352		000400	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7353	035222	312 07 0 00 044016 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7354	035223	004 07 0 00 033152 		ER4	AC+1,33152		;LOW PRODUCT FAILED
  7355		000400	000000			AEE=XX				;INITIAL C(E)
  7356	035224	312 04 0 00 044016 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7357	035225	005 04 0 00 033153 		ER5	E,33153			;C(E) WAS CLOBBERED
  7358	035226	321 10 0 00 035214 		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	035227	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7375		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7376	035230	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7377		001000	000000			AEE=XX				;INITIAL C(E)
  7378	035231	200 04 0 00 044017 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7379	035232	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7380			000000			AR1=V1				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0155

  7381	035233	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7382	035234	003 06 0 00 033161 		ER3	AC,33161		;HIGH PRODUCT FAILED
  7383		001000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7384	035235	312 07 0 00 044017 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7385	035236	004 07 0 00 033162 		ER4	AC+1,33162		;LOW PRODUCT FAILED
  7386		001000	000000			AEE=XX				;INITIAL C(E)
  7387	035237	312 04 0 00 044017 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7388	035240	005 04 0 00 033163 		ER5	E,33163			;C(E) WAS CLOBBERED
  7389	035241	321 10 0 00 035227 		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	035242	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7406		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7407	035243	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7408		002000	000000			AEE=XX				;INITIAL C(E)
  7409	035244	200 04 0 00 044020 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7410	035245	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7411			000000			AR1=V1				;EXPECTED RESULT IN AC
  7412	035246	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7413	035247	003 06 0 00 033171 		ER3	AC,33171		;HIGH PRODUCT FAILED
  7414		002000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7415	035250	312 07 0 00 044020 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7416	035251	004 07 0 00 033172 		ER4	AC+1,33172		;LOW PRODUCT FAILED
  7417		002000	000000			AEE=XX				;INITIAL C(E)
  7418	035252	312 04 0 00 044020 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7419	035253	005 04 0 00 033173 		ER5	E,33173			;C(E) WAS CLOBBERED
  7420	035254	321 10 0 00 035242 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0156

  7436	035255	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7437		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7438	035256	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7439		004000	000000			AEE=XX				;INITIAL C(E)
  7440	035257	200 04 0 00 044021 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7441	035260	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7442			000000			AR1=V1				;EXPECTED RESULT IN AC
  7443	035261	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7444	035262	003 06 0 00 033201 		ER3	AC,33201		;HIGH PRODUCT FAILED
  7445		004000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7446	035263	312 07 0 00 044021 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7447	035264	004 07 0 00 033202 		ER4	AC+1,33202		;LOW PRODUCT FAILED
  7448		004000	000000			AEE=XX				;INITIAL C(E)
  7449	035265	312 04 0 00 044021 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7450	035266	005 04 0 00 033203 		ER5	E,33203			;C(E) WAS CLOBBERED
  7451	035267	321 10 0 00 035255 		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	035270	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7468		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7469	035271	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7470		010000	000000			AEE=XX				;INITIAL C(E)
  7471	035272	200 04 0 00 044022 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7472	035273	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7473			000000			AR1=V1				;EXPECTED RESULT IN AC
  7474	035274	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7475	035275	003 06 0 00 033211 		ER3	AC,33211		;HIGH PRODUCT FAILED
  7476		010000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7477	035276	312 07 0 00 044022 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7478	035277	004 07 0 00 033212 		ER4	AC+1,33212		;LOW PRODUCT FAILED
  7479		010000	000000			AEE=XX				;INITIAL C(E)
  7480	035300	312 04 0 00 044022 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7481	035301	005 04 0 00 033213 		ER5	E,33213			;C(E) WAS CLOBBERED
  7482	035302	321 10 0 00 035270 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0157

  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	035303	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7499		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7500	035304	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7501		020000	000000			AEE=XX				;INITIAL C(E)
  7502	035305	200 04 0 00 044023 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7503	035306	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7504			000000			AR1=V1				;EXPECTED RESULT IN AC
  7505	035307	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7506	035310	003 06 0 00 033221 		ER3	AC,33221		;HIGH PRODUCT FAILED
  7507		020000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7508	035311	312 07 0 00 044023 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7509	035312	004 07 0 00 033222 		ER4	AC+1,33222		;LOW PRODUCT FAILED
  7510		020000	000000			AEE=XX				;INITIAL C(E)
  7511	035313	312 04 0 00 044023 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7512	035314	005 04 0 00 033223 		ER5	E,33223			;C(E) WAS CLOBBERED
  7513	035315	321 10 0 00 035303 		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	035316	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7530		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7531	035317	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7532		040000	000000			AEE=XX				;INITIAL C(E)
  7533	035320	200 04 0 00 044024 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7534	035321	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7535			000000			AR1=V1				;EXPECTED RESULT IN AC
  7536	035322	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7537	035323	003 06 0 00 033231 		ER3	AC,33231		;HIGH PRODUCT FAILED
  7538		040000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7539	035324	312 07 0 00 044024 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7540	035325	004 07 0 00 033232 		ER4	AC+1,33232		;LOW PRODUCT FAILED
  7541		040000	000000			AEE=XX				;INITIAL C(E)
  7542	035326	312 04 0 00 044024 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7543	035327	005 04 0 00 033233 		ER5	E,33233			;C(E) WAS CLOBBERED
  7544	035330	321 10 0 00 035316 		JUMPL	AC+2,F33230		;LOOP ON ERROR SWITCH^
  7545
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0158

  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	035331	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7561		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7562	035332	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7563		100000	000000			AEE=XX				;INITIAL C(E)
  7564	035333	200 04 0 00 044025 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7565	035334	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7566			000000			AR1=V1				;EXPECTED RESULT IN AC
  7567	035335	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7568	035336	003 06 0 00 033241 		ER3	AC,33241		;HIGH PRODUCT FAILED
  7569		100000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7570	035337	312 07 0 00 044025 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7571	035340	004 07 0 00 033242 		ER4	AC+1,33242		;LOW PRODUCT FAILED
  7572		100000	000000			AEE=XX				;INITIAL C(E)
  7573	035341	312 04 0 00 044025 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7574	035342	005 04 0 00 033243 		ER5	E,33243			;C(E) WAS CLOBBERED
  7575	035343	321 10 0 00 035331 		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	035344	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7592		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7593	035345	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7594		200000	000000			AEE=XX				;INITIAL C(E)
  7595	035346	200 04 0 00 044026 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7596	035347	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7597			000000			AR1=V1				;EXPECTED RESULT IN AC
  7598	035350	312 06 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7599	035351	003 06 0 00 033251 		ER3	AC,33251		;HIGH PRODUCT FAILED
  7600		200000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 10-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0159

  7601	035352	312 07 0 00 044026 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7602	035353	004 07 0 00 033252 		ER4	AC+1,33252		;LOW PRODUCT FAILED
  7603		200000	000000			AEE=XX				;INITIAL C(E)
  7604	035354	312 04 0 00 044026 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7605	035355	005 04 0 00 033253 		ER5	E,33253			;C(E) WAS CLOBBERED
  7606	035356	321 10 0 00 035344 		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	035357	200 06 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
  7623		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7624	035360	200 07 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7625		400000	000000			AEE=XX				;INITIAL C(E)
  7626	035361	200 04 0 00 044027 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  7627	035362	224 06 0 00 000004 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7628		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  7629	035363	312 06 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7630	035364	003 06 0 00 033261 		ER3	AC,33261		;HIGH PRODUCT FAILED
  7631		400000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  7632	035365	312 07 0 00 044027 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7633	035366	004 07 0 00 033262 		ER4	AC+1,33262		;LOW PRODUCT FAILED
  7634		400000	000000			AEE=XX				;INITIAL C(E)
  7635	035367	312 04 0 00 044027 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  7636	035370	005 04 0 00 033263 		ER5	E,33263			;C(E) WAS CLOBBERED
  7637	035371	321 10 0 00 035357 		JUMPL	AC+2,F33260		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0160

  7638			000005			AC=5
  7639			000003			E=<AC-2>&17
  7640						SAVEAC	(1,1)^
  7641	035372	201 07 0 00 035372 		MOVEI	AC+2,.		;SAVE TEST PC
  7642	035373	202 07 0 00 030051 		MOVEM	AC+2,TESTPC
  7643	035374	201 07 0 00 000007 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  7644	035375	202 07 0 00 044437 		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	035376	200 05 0 00 043764 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7672		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7673	035377	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7674			000001			AEE=1				;INITIAL C(E)
  7675	035400	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7676	035401	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7677			000000			AR1=V1				;EXPECTED RESULT IN AC
  7678	035402	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7679	035403	003 05 0 00 033271 		ER3	AC,33271		;HIGH PRODUCT FAILED
  7680			000001			AR2=XX				;EXPECTED RESULT IN AC+1
  7681	035404	312 06 0 00 043764 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7682	035405	004 06 0 00 033272 		ER4	AC+1,33272		;LOW PRODUCT FAILED
  7683			000001			AEE=1				;INITIAL C(E)
  7684	035406	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7685	035407	005 03 0 00 033273 		ER5	E,33273			;C(E) WAS CLOBBERED
  7686	035410	321 07 0 00 035376 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0161

  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	035411	200 05 0 00 043765 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7703		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7704	035412	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7705			000001			AEE=1				;INITIAL C(E)
  7706	035413	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7707	035414	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7708			000000			AR1=V1				;EXPECTED RESULT IN AC
  7709	035415	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7710	035416	003 05 0 00 033301 		ER3	AC,33301		;HIGH PRODUCT FAILED
  7711			000002			AR2=XX				;EXPECTED RESULT IN AC+1
  7712	035417	312 06 0 00 043765 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7713	035420	004 06 0 00 033302 		ER4	AC+1,33302		;LOW PRODUCT FAILED
  7714			000001			AEE=1				;INITIAL C(E)
  7715	035421	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7716	035422	005 03 0 00 033303 		ER5	E,33303			;C(E) WAS CLOBBERED
  7717	035423	321 07 0 00 035411 		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	035424	200 05 0 00 043766 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7734		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7735	035425	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7736			000001			AEE=1				;INITIAL C(E)
  7737	035426	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7738	035427	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7739			000000			AR1=V1				;EXPECTED RESULT IN AC
  7740	035430	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7741	035431	003 05 0 00 033311 		ER3	AC,33311		;HIGH PRODUCT FAILED
  7742			000004			AR2=XX				;EXPECTED RESULT IN AC+1
  7743	035432	312 06 0 00 043766 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7744	035433	004 06 0 00 033312 		ER4	AC+1,33312		;LOW PRODUCT FAILED
  7745			000001			AEE=1				;INITIAL C(E)
  7746	035434	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7747	035435	005 03 0 00 033313 		ER5	E,33313			;C(E) WAS CLOBBERED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0162

  7748	035436	321 07 0 00 035424 		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	035437	200 05 0 00 043767 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7765		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7766	035440	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7767			000001			AEE=1				;INITIAL C(E)
  7768	035441	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7769	035442	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7770			000000			AR1=V1				;EXPECTED RESULT IN AC
  7771	035443	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7772	035444	003 05 0 00 033321 		ER3	AC,33321		;HIGH PRODUCT FAILED
  7773			000010			AR2=XX				;EXPECTED RESULT IN AC+1
  7774	035445	312 06 0 00 043767 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7775	035446	004 06 0 00 033322 		ER4	AC+1,33322		;LOW PRODUCT FAILED
  7776			000001			AEE=1				;INITIAL C(E)
  7777	035447	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7778	035450	005 03 0 00 033323 		ER5	E,33323			;C(E) WAS CLOBBERED
  7779	035451	321 07 0 00 035437 		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	035452	200 05 0 00 043770 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7796		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7797	035453	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7798			000001			AEE=1				;INITIAL C(E)
  7799	035454	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7800	035455	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7801			000000			AR1=V1				;EXPECTED RESULT IN AC
  7802	035456	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0163

  7803	035457	003 05 0 00 033331 		ER3	AC,33331		;HIGH PRODUCT FAILED
  7804			000020			AR2=XX				;EXPECTED RESULT IN AC+1
  7805	035460	312 06 0 00 043770 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7806	035461	004 06 0 00 033332 		ER4	AC+1,33332		;LOW PRODUCT FAILED
  7807			000001			AEE=1				;INITIAL C(E)
  7808	035462	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7809	035463	005 03 0 00 033333 		ER5	E,33333			;C(E) WAS CLOBBERED
  7810	035464	321 07 0 00 035452 		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	035465	200 05 0 00 043771 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7827		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7828	035466	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7829			000001			AEE=1				;INITIAL C(E)
  7830	035467	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7831	035470	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7832			000000			AR1=V1				;EXPECTED RESULT IN AC
  7833	035471	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7834	035472	003 05 0 00 033341 		ER3	AC,33341		;HIGH PRODUCT FAILED
  7835			000040			AR2=XX				;EXPECTED RESULT IN AC+1
  7836	035473	312 06 0 00 043771 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7837	035474	004 06 0 00 033342 		ER4	AC+1,33342		;LOW PRODUCT FAILED
  7838			000001			AEE=1				;INITIAL C(E)
  7839	035475	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7840	035476	005 03 0 00 033343 		ER5	E,33343			;C(E) WAS CLOBBERED
  7841	035477	321 07 0 00 035465 		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	035500	200 05 0 00 043772 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0164

  7858		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7859	035501	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7860			000001			AEE=1				;INITIAL C(E)
  7861	035502	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7862	035503	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7863			000000			AR1=V1				;EXPECTED RESULT IN AC
  7864	035504	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7865	035505	003 05 0 00 033351 		ER3	AC,33351		;HIGH PRODUCT FAILED
  7866			000100			AR2=XX				;EXPECTED RESULT IN AC+1
  7867	035506	312 06 0 00 043772 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7868	035507	004 06 0 00 033352 		ER4	AC+1,33352		;LOW PRODUCT FAILED
  7869			000001			AEE=1				;INITIAL C(E)
  7870	035510	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7871	035511	005 03 0 00 033353 		ER5	E,33353			;C(E) WAS CLOBBERED
  7872	035512	321 07 0 00 035500 		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	035513	200 05 0 00 043773 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7889		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7890	035514	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7891			000001			AEE=1				;INITIAL C(E)
  7892	035515	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7893	035516	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7894			000000			AR1=V1				;EXPECTED RESULT IN AC
  7895	035517	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7896	035520	003 05 0 00 033361 		ER3	AC,33361		;HIGH PRODUCT FAILED
  7897			000200			AR2=XX				;EXPECTED RESULT IN AC+1
  7898	035521	312 06 0 00 043773 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7899	035522	004 06 0 00 033362 		ER4	AC+1,33362		;LOW PRODUCT FAILED
  7900			000001			AEE=1				;INITIAL C(E)
  7901	035523	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7902	035524	005 03 0 00 033363 		ER5	E,33363			;C(E) WAS CLOBBERED
  7903	035525	321 07 0 00 035513 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0165

  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	035526	200 05 0 00 043774 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7920		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7921	035527	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7922			000001			AEE=1				;INITIAL C(E)
  7923	035530	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7924	035531	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7925			000000			AR1=V1				;EXPECTED RESULT IN AC
  7926	035532	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7927	035533	003 05 0 00 033371 		ER3	AC,33371		;HIGH PRODUCT FAILED
  7928			000400			AR2=XX				;EXPECTED RESULT IN AC+1
  7929	035534	312 06 0 00 043774 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7930	035535	004 06 0 00 033372 		ER4	AC+1,33372		;LOW PRODUCT FAILED
  7931			000001			AEE=1				;INITIAL C(E)
  7932	035536	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7933	035537	005 03 0 00 033373 		ER5	E,33373			;C(E) WAS CLOBBERED
  7934	035540	321 07 0 00 035526 		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	035541	200 05 0 00 043775 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7951		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7952	035542	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7953			000001			AEE=1				;INITIAL C(E)
  7954	035543	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7955	035544	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7956			000000			AR1=V1				;EXPECTED RESULT IN AC
  7957	035545	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7958	035546	003 05 0 00 033401 		ER3	AC,33401		;HIGH PRODUCT FAILED
  7959			001000			AR2=XX				;EXPECTED RESULT IN AC+1
  7960	035547	312 06 0 00 043775 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7961	035550	004 06 0 00 033402 		ER4	AC+1,33402		;LOW PRODUCT FAILED
  7962			000001			AEE=1				;INITIAL C(E)
  7963	035551	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7964	035552	005 03 0 00 033403 		ER5	E,33403			;C(E) WAS CLOBBERED
  7965	035553	321 07 0 00 035541 		JUMPL	AC+2,F33400		;LOOP ON ERROR SWITCH^
  7966
  7967			003341			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0166

  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	035554	200 05 0 00 043776 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  7982		777777	777777			AA2=-1				;INITIAL C(AC+1)
  7983	035555	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  7984			000001			AEE=1				;INITIAL C(E)
  7985	035556	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  7986	035557	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  7987			000000			AR1=V1				;EXPECTED RESULT IN AC
  7988	035560	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  7989	035561	003 05 0 00 033411 		ER3	AC,33411		;HIGH PRODUCT FAILED
  7990			002000			AR2=XX				;EXPECTED RESULT IN AC+1
  7991	035562	312 06 0 00 043776 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  7992	035563	004 06 0 00 033412 		ER4	AC+1,33412		;LOW PRODUCT FAILED
  7993			000001			AEE=1				;INITIAL C(E)
  7994	035564	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  7995	035565	005 03 0 00 033413 		ER5	E,33413			;C(E) WAS CLOBBERED
  7996	035566	321 07 0 00 035554 		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	035567	200 05 0 00 043777 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8013		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8014	035570	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8015			000001			AEE=1				;INITIAL C(E)
  8016	035571	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8017	035572	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8018			000000			AR1=V1				;EXPECTED RESULT IN AC
  8019	035573	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8020	035574	003 05 0 00 033421 		ER3	AC,33421		;HIGH PRODUCT FAILED
  8021			004000			AR2=XX				;EXPECTED RESULT IN AC+1
  8022	035575	312 06 0 00 043777 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0167

  8023	035576	004 06 0 00 033422 		ER4	AC+1,33422		;LOW PRODUCT FAILED
  8024			000001			AEE=1				;INITIAL C(E)
  8025	035577	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8026	035600	005 03 0 00 033423 		ER5	E,33423			;C(E) WAS CLOBBERED
  8027	035601	321 07 0 00 035567 		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	035602	200 05 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8044		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8045	035603	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8046			000001			AEE=1				;INITIAL C(E)
  8047	035604	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8048	035605	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8049			000000			AR1=V1				;EXPECTED RESULT IN AC
  8050	035606	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8051	035607	003 05 0 00 033431 		ER3	AC,33431		;HIGH PRODUCT FAILED
  8052			010000			AR2=XX				;EXPECTED RESULT IN AC+1
  8053	035610	312 06 0 00 044000 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8054	035611	004 06 0 00 033432 		ER4	AC+1,33432		;LOW PRODUCT FAILED
  8055			000001			AEE=1				;INITIAL C(E)
  8056	035612	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8057	035613	005 03 0 00 033433 		ER5	E,33433			;C(E) WAS CLOBBERED
  8058	035614	321 07 0 00 035602 		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	035615	200 05 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8075		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8076	035616	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8077			000001			AEE=1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0168

  8078	035617	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8079	035620	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8080			000000			AR1=V1				;EXPECTED RESULT IN AC
  8081	035621	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8082	035622	003 05 0 00 033441 		ER3	AC,33441		;HIGH PRODUCT FAILED
  8083			020000			AR2=XX				;EXPECTED RESULT IN AC+1
  8084	035623	312 06 0 00 044001 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8085	035624	004 06 0 00 033442 		ER4	AC+1,33442		;LOW PRODUCT FAILED
  8086			000001			AEE=1				;INITIAL C(E)
  8087	035625	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8088	035626	005 03 0 00 033443 		ER5	E,33443			;C(E) WAS CLOBBERED
  8089	035627	321 07 0 00 035615 		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	035630	200 05 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8106		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8107	035631	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8108			000001			AEE=1				;INITIAL C(E)
  8109	035632	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8110	035633	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8111			000000			AR1=V1				;EXPECTED RESULT IN AC
  8112	035634	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8113	035635	003 05 0 00 033451 		ER3	AC,33451		;HIGH PRODUCT FAILED
  8114			040000			AR2=XX				;EXPECTED RESULT IN AC+1
  8115	035636	312 06 0 00 044002 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8116	035637	004 06 0 00 033452 		ER4	AC+1,33452		;LOW PRODUCT FAILED
  8117			000001			AEE=1				;INITIAL C(E)
  8118	035640	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8119	035641	005 03 0 00 033453 		ER5	E,33453			;C(E) WAS CLOBBERED
  8120	035642	321 07 0 00 035630 		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.
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0169

  8133					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
  8134
  8135			100000		F33460:	AA1=XX				;INITIAL C(AC)
  8136	035643	200 05 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8137		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8138	035644	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8139			000001			AEE=1				;INITIAL C(E)
  8140	035645	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8141	035646	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8142			000000			AR1=V1				;EXPECTED RESULT IN AC
  8143	035647	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8144	035650	003 05 0 00 033461 		ER3	AC,33461		;HIGH PRODUCT FAILED
  8145			100000			AR2=XX				;EXPECTED RESULT IN AC+1
  8146	035651	312 06 0 00 044003 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8147	035652	004 06 0 00 033462 		ER4	AC+1,33462		;LOW PRODUCT FAILED
  8148			000001			AEE=1				;INITIAL C(E)
  8149	035653	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8150	035654	005 03 0 00 033463 		ER5	E,33463			;C(E) WAS CLOBBERED
  8151	035655	321 07 0 00 035643 		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	035656	200 05 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8168		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8169	035657	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8170			000001			AEE=1				;INITIAL C(E)
  8171	035660	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8172	035661	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8173			000000			AR1=V1				;EXPECTED RESULT IN AC
  8174	035662	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8175	035663	003 05 0 00 033471 		ER3	AC,33471		;HIGH PRODUCT FAILED
  8176			200000			AR2=XX				;EXPECTED RESULT IN AC+1
  8177	035664	312 06 0 00 044004 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8178	035665	004 06 0 00 033472 		ER4	AC+1,33472		;LOW PRODUCT FAILED
  8179			000001			AEE=1				;INITIAL C(E)
  8180	035666	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8181	035667	005 03 0 00 033473 		ER5	E,33473			;C(E) WAS CLOBBERED
  8182	035670	321 07 0 00 035656 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0170

  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	035671	200 05 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8199		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8200	035672	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8201			000001			AEE=1				;INITIAL C(E)
  8202	035673	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8203	035674	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8204			000000			AR1=V1				;EXPECTED RESULT IN AC
  8205	035675	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8206	035676	003 05 0 00 033501 		ER3	AC,33501		;HIGH PRODUCT FAILED
  8207			400000			AR2=XX				;EXPECTED RESULT IN AC+1
  8208	035677	312 06 0 00 044005 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8209	035700	004 06 0 00 033502 		ER4	AC+1,33502		;LOW PRODUCT FAILED
  8210			000001			AEE=1				;INITIAL C(E)
  8211	035701	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8212	035702	005 03 0 00 033503 		ER5	E,33503			;C(E) WAS CLOBBERED
  8213	035703	321 07 0 00 035671 		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	035704	200 05 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8230		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8231	035705	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8232			000001			AEE=1				;INITIAL C(E)
  8233	035706	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8234	035707	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8235			000000			AR1=V1				;EXPECTED RESULT IN AC
  8236	035710	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8237	035711	003 05 0 00 033511 		ER3	AC,33511		;HIGH PRODUCT FAILED
  8238		000001	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8239	035712	312 06 0 00 044006 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8240	035713	004 06 0 00 033512 		ER4	AC+1,33512		;LOW PRODUCT FAILED
  8241			000001			AEE=1				;INITIAL C(E)
  8242	035714	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0171

  8243	035715	005 03 0 00 033513 		ER5	E,33513			;C(E) WAS CLOBBERED
  8244	035716	321 07 0 00 035704 		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	035717	200 05 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8261		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8262	035720	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8263			000001			AEE=1				;INITIAL C(E)
  8264	035721	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8265	035722	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8266			000000			AR1=V1				;EXPECTED RESULT IN AC
  8267	035723	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8268	035724	003 05 0 00 033521 		ER3	AC,33521		;HIGH PRODUCT FAILED
  8269		000002	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8270	035725	312 06 0 00 044007 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8271	035726	004 06 0 00 033522 		ER4	AC+1,33522		;LOW PRODUCT FAILED
  8272			000001			AEE=1				;INITIAL C(E)
  8273	035727	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8274	035730	005 03 0 00 033523 		ER5	E,33523			;C(E) WAS CLOBBERED
  8275	035731	321 07 0 00 035717 		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	035732	200 05 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8292		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8293	035733	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8294			000001			AEE=1				;INITIAL C(E)
  8295	035734	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8296	035735	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8297			000000			AR1=V1				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0172

  8298	035736	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8299	035737	003 05 0 00 033531 		ER3	AC,33531		;HIGH PRODUCT FAILED
  8300		000004	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8301	035740	312 06 0 00 044010 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8302	035741	004 06 0 00 033532 		ER4	AC+1,33532		;LOW PRODUCT FAILED
  8303			000001			AEE=1				;INITIAL C(E)
  8304	035742	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8305	035743	005 03 0 00 033533 		ER5	E,33533			;C(E) WAS CLOBBERED
  8306	035744	321 07 0 00 035732 		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	035745	200 05 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8323		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8324	035746	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8325			000001			AEE=1				;INITIAL C(E)
  8326	035747	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8327	035750	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8328			000000			AR1=V1				;EXPECTED RESULT IN AC
  8329	035751	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8330	035752	003 05 0 00 033541 		ER3	AC,33541		;HIGH PRODUCT FAILED
  8331		000010	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8332	035753	312 06 0 00 044011 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8333	035754	004 06 0 00 033542 		ER4	AC+1,33542		;LOW PRODUCT FAILED
  8334			000001			AEE=1				;INITIAL C(E)
  8335	035755	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8336	035756	005 03 0 00 033543 		ER5	E,33543			;C(E) WAS CLOBBERED
  8337	035757	321 07 0 00 035745 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0173

  8353	035760	200 05 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8354		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8355	035761	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8356			000001			AEE=1				;INITIAL C(E)
  8357	035762	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8358	035763	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8359			000000			AR1=V1				;EXPECTED RESULT IN AC
  8360	035764	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8361	035765	003 05 0 00 033551 		ER3	AC,33551		;HIGH PRODUCT FAILED
  8362		000020	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8363	035766	312 06 0 00 044012 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8364	035767	004 06 0 00 033552 		ER4	AC+1,33552		;LOW PRODUCT FAILED
  8365			000001			AEE=1				;INITIAL C(E)
  8366	035770	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8367	035771	005 03 0 00 033553 		ER5	E,33553			;C(E) WAS CLOBBERED
  8368	035772	321 07 0 00 035760 		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	035773	200 05 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8385		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8386	035774	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8387			000001			AEE=1				;INITIAL C(E)
  8388	035775	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8389	035776	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8390			000000			AR1=V1				;EXPECTED RESULT IN AC
  8391	035777	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8392	036000	003 05 0 00 033561 		ER3	AC,33561		;HIGH PRODUCT FAILED
  8393		000040	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8394	036001	312 06 0 00 044013 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8395	036002	004 06 0 00 033562 		ER4	AC+1,33562		;LOW PRODUCT FAILED
  8396			000001			AEE=1				;INITIAL C(E)
  8397	036003	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8398	036004	005 03 0 00 033563 		ER5	E,33563			;C(E) WAS CLOBBERED
  8399	036005	321 07 0 00 035773 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0174

  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	036006	200 05 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8416		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8417	036007	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8418			000001			AEE=1				;INITIAL C(E)
  8419	036010	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8420	036011	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8421			000000			AR1=V1				;EXPECTED RESULT IN AC
  8422	036012	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8423	036013	003 05 0 00 033571 		ER3	AC,33571		;HIGH PRODUCT FAILED
  8424		000100	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8425	036014	312 06 0 00 044014 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8426	036015	004 06 0 00 033572 		ER4	AC+1,33572		;LOW PRODUCT FAILED
  8427			000001			AEE=1				;INITIAL C(E)
  8428	036016	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8429	036017	005 03 0 00 033573 		ER5	E,33573			;C(E) WAS CLOBBERED
  8430	036020	321 07 0 00 036006 		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	036021	200 05 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8447		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8448	036022	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8449			000001			AEE=1				;INITIAL C(E)
  8450	036023	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8451	036024	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8452			000000			AR1=V1				;EXPECTED RESULT IN AC
  8453	036025	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8454	036026	003 05 0 00 033601 		ER3	AC,33601		;HIGH PRODUCT FAILED
  8455		000200	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8456	036027	312 06 0 00 044015 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8457	036030	004 06 0 00 033602 		ER4	AC+1,33602		;LOW PRODUCT FAILED
  8458			000001			AEE=1				;INITIAL C(E)
  8459	036031	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8460	036032	005 03 0 00 033603 		ER5	E,33603			;C(E) WAS CLOBBERED
  8461	036033	321 07 0 00 036021 		JUMPL	AC+2,F33600		;LOOP ON ERROR SWITCH^
  8462
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0175

  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	036034	200 05 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8478		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8479	036035	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8480			000001			AEE=1				;INITIAL C(E)
  8481	036036	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8482	036037	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8483			000000			AR1=V1				;EXPECTED RESULT IN AC
  8484	036040	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8485	036041	003 05 0 00 033611 		ER3	AC,33611		;HIGH PRODUCT FAILED
  8486		000400	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8487	036042	312 06 0 00 044016 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8488	036043	004 06 0 00 033612 		ER4	AC+1,33612		;LOW PRODUCT FAILED
  8489			000001			AEE=1				;INITIAL C(E)
  8490	036044	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8491	036045	005 03 0 00 033613 		ER5	E,33613			;C(E) WAS CLOBBERED
  8492	036046	321 07 0 00 036034 		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	036047	200 05 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8509		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8510	036050	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8511			000001			AEE=1				;INITIAL C(E)
  8512	036051	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8513	036052	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8514			000000			AR1=V1				;EXPECTED RESULT IN AC
  8515	036053	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8516	036054	003 05 0 00 033621 		ER3	AC,33621		;HIGH PRODUCT FAILED
  8517		001000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0176

  8518	036055	312 06 0 00 044017 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8519	036056	004 06 0 00 033622 		ER4	AC+1,33622		;LOW PRODUCT FAILED
  8520			000001			AEE=1				;INITIAL C(E)
  8521	036057	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8522	036060	005 03 0 00 033623 		ER5	E,33623			;C(E) WAS CLOBBERED
  8523	036061	321 07 0 00 036047 		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	036062	200 05 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8540		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8541	036063	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8542			000001			AEE=1				;INITIAL C(E)
  8543	036064	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8544	036065	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8545			000000			AR1=V1				;EXPECTED RESULT IN AC
  8546	036066	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8547	036067	003 05 0 00 033631 		ER3	AC,33631		;HIGH PRODUCT FAILED
  8548		002000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8549	036070	312 06 0 00 044020 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8550	036071	004 06 0 00 033632 		ER4	AC+1,33632		;LOW PRODUCT FAILED
  8551			000001			AEE=1				;INITIAL C(E)
  8552	036072	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8553	036073	005 03 0 00 033633 		ER5	E,33633			;C(E) WAS CLOBBERED
  8554	036074	321 07 0 00 036062 		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	036075	200 05 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8571		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8572	036076	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0177

  8573			000001			AEE=1				;INITIAL C(E)
  8574	036077	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8575	036100	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8576			000000			AR1=V1				;EXPECTED RESULT IN AC
  8577	036101	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8578	036102	003 05 0 00 033641 		ER3	AC,33641		;HIGH PRODUCT FAILED
  8579		004000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8580	036103	312 06 0 00 044021 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8581	036104	004 06 0 00 033642 		ER4	AC+1,33642		;LOW PRODUCT FAILED
  8582			000001			AEE=1				;INITIAL C(E)
  8583	036105	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8584	036106	005 03 0 00 033643 		ER5	E,33643			;C(E) WAS CLOBBERED
  8585	036107	321 07 0 00 036075 		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	036110	200 05 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8602		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8603	036111	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8604			000001			AEE=1				;INITIAL C(E)
  8605	036112	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8606	036113	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8607			000000			AR1=V1				;EXPECTED RESULT IN AC
  8608	036114	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8609	036115	003 05 0 00 033651 		ER3	AC,33651		;HIGH PRODUCT FAILED
  8610		010000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8611	036116	312 06 0 00 044022 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8612	036117	004 06 0 00 033652 		ER4	AC+1,33652		;LOW PRODUCT FAILED
  8613			000001			AEE=1				;INITIAL C(E)
  8614	036120	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8615	036121	005 03 0 00 033653 		ER5	E,33653			;C(E) WAS CLOBBERED
  8616	036122	321 07 0 00 036110 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0178

  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	036123	200 05 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8633		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8634	036124	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8635			000001			AEE=1				;INITIAL C(E)
  8636	036125	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8637	036126	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8638			000000			AR1=V1				;EXPECTED RESULT IN AC
  8639	036127	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8640	036130	003 05 0 00 033661 		ER3	AC,33661		;HIGH PRODUCT FAILED
  8641		020000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8642	036131	312 06 0 00 044023 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8643	036132	004 06 0 00 033662 		ER4	AC+1,33662		;LOW PRODUCT FAILED
  8644			000001			AEE=1				;INITIAL C(E)
  8645	036133	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8646	036134	005 03 0 00 033663 		ER5	E,33663			;C(E) WAS CLOBBERED
  8647	036135	321 07 0 00 036123 		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	036136	200 05 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8664		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8665	036137	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8666			000001			AEE=1				;INITIAL C(E)
  8667	036140	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8668	036141	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8669			000000			AR1=V1				;EXPECTED RESULT IN AC
  8670	036142	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8671	036143	003 05 0 00 033671 		ER3	AC,33671		;HIGH PRODUCT FAILED
  8672		040000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8673	036144	312 06 0 00 044024 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8674	036145	004 06 0 00 033672 		ER4	AC+1,33672		;LOW PRODUCT FAILED
  8675			000001			AEE=1				;INITIAL C(E)
  8676	036146	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8677	036147	005 03 0 00 033673 		ER5	E,33673			;C(E) WAS CLOBBERED
  8678	036150	321 07 0 00 036136 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0179

  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	036151	200 05 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8695		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8696	036152	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8697			000001			AEE=1				;INITIAL C(E)
  8698	036153	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8699	036154	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8700			000000			AR1=V1				;EXPECTED RESULT IN AC
  8701	036155	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8702	036156	003 05 0 00 033701 		ER3	AC,33701		;HIGH PRODUCT FAILED
  8703		100000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8704	036157	312 06 0 00 044025 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8705	036160	004 06 0 00 033702 		ER4	AC+1,33702		;LOW PRODUCT FAILED
  8706			000001			AEE=1				;INITIAL C(E)
  8707	036161	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8708	036162	005 03 0 00 033703 		ER5	E,33703			;C(E) WAS CLOBBERED
  8709	036163	321 07 0 00 036151 		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	036164	200 05 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8726		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8727	036165	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8728			000001			AEE=1				;INITIAL C(E)
  8729	036166	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8730	036167	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8731			000000			AR1=V1				;EXPECTED RESULT IN AC
  8732	036170	312 05 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8733	036171	003 05 0 00 033711 		ER3	AC,33711		;HIGH PRODUCT FAILED
  8734		200000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8735	036172	312 06 0 00 044026 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8736	036173	004 06 0 00 033712 		ER4	AC+1,33712		;LOW PRODUCT FAILED
  8737			000001			AEE=1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 11-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0180

  8738	036174	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8739	036175	005 03 0 00 033713 		ER5	E,33713			;C(E) WAS CLOBBERED
  8740	036176	321 07 0 00 036164 		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	036177	200 05 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
  8757		777777	777777			AA2=-1				;INITIAL C(AC+1)
  8758	036200	200 06 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
  8759			000001			AEE=1				;INITIAL C(E)
  8760	036201	200 03 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
  8761	036202	224 05 0 00 000003 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8762		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8763	036203	312 05 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8764	036204	003 05 0 00 033721 		ER3	AC,33721		;HIGH PRODUCT FAILED
  8765		400000	000000			AR2=XX				;EXPECTED RESULT IN AC+1
  8766	036205	312 06 0 00 044027 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
  8767	036206	004 06 0 00 033722 		ER4	AC+1,33722		;LOW PRODUCT FAILED
  8768			000001			AEE=1				;INITIAL C(E)
  8769	036207	312 03 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
  8770	036210	005 03 0 00 033723 		ER5	E,33723			;C(E) WAS CLOBBERED
  8771	036211	321 07 0 00 036177 		JUMPL	AC+2,F33720		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0181

  8772			000004			AC=4
  8773			000002			E=<AC-2>&17
  8774						SAVEAC	(1,1)^
  8775	036212	201 06 0 00 036212 		MOVEI	AC+2,.		;SAVE TEST PC
  8776	036213	202 06 0 00 030051 		MOVEM	AC+2,TESTPC
  8777	036214	201 06 0 00 000006 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
  8778	036215	202 06 0 00 044437 		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	036216	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8814			000000			AA2=0				;INITIAL C(AC+1)
  8815	036217	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8816			000001			AEE=XX				;INITIAL C(E)
  8817	036220	200 02 0 00 043764 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8818	036221	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8819		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8820	036222	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8821	036223	003 04 0 00 033731 		ER3	AC,33731		;HIGH PRODUCT FAILED
  8822		777777	777777			AR2=V2				;EXPECTED RESULT IN AC+1
  8823	036224	312 05 0 00 043763 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8824	036225	004 05 0 00 033732 		ER4	AC+1,33732		;LOW PRODUCT FAILED
  8825			000001			AEE=XX				;INITIAL C(E)
  8826	036226	312 02 0 00 043764 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0182

  8827	036227	005 02 0 00 033733 		ER5	E,33733			;C(E) WAS CLOBBERED
  8828	036230	321 06 0 00 036216 		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	036231	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8849			000000			AA2=0				;INITIAL C(AC+1)
  8850	036232	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8851			000002			AEE=XX				;INITIAL C(E)
  8852	036233	200 02 0 00 043765 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8853	036234	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8854		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8855	036235	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8856	036236	003 04 0 00 033741 		ER3	AC,33741		;HIGH PRODUCT FAILED
  8857		777777	777776			AR2=V2				;EXPECTED RESULT IN AC+1
  8858	036237	312 05 0 00 044030 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8859	036240	004 05 0 00 033742 		ER4	AC+1,33742		;LOW PRODUCT FAILED
  8860			000002			AEE=XX				;INITIAL C(E)
  8861	036241	312 02 0 00 043765 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8862	036242	005 02 0 00 033743 		ER5	E,33743			;C(E) WAS CLOBBERED
  8863	036243	321 06 0 00 036231 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0183

  8882		777777	777777		F33750:	AA1=-1				;INITIAL C(AC)
  8883	036244	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8884			000000			AA2=0				;INITIAL C(AC+1)
  8885	036245	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8886			000004			AEE=XX				;INITIAL C(E)
  8887	036246	200 02 0 00 043766 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8888	036247	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8889		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8890	036250	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8891	036251	003 04 0 00 033751 		ER3	AC,33751		;HIGH PRODUCT FAILED
  8892		777777	777774			AR2=V2				;EXPECTED RESULT IN AC+1
  8893	036252	312 05 0 00 044107 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8894	036253	004 05 0 00 033752 		ER4	AC+1,33752		;LOW PRODUCT FAILED
  8895			000004			AEE=XX				;INITIAL C(E)
  8896	036254	312 02 0 00 043766 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8897	036255	005 02 0 00 033753 		ER5	E,33753			;C(E) WAS CLOBBERED
  8898	036256	321 06 0 00 036244 		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	036257	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8919			000000			AA2=0				;INITIAL C(AC+1)
  8920	036260	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8921			000010			AEE=XX				;INITIAL C(E)
  8922	036261	200 02 0 00 043767 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8923	036262	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8924		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8925	036263	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8926	036264	003 04 0 00 033761 		ER3	AC,33761		;HIGH PRODUCT FAILED
  8927		777777	777770			AR2=V2				;EXPECTED RESULT IN AC+1
  8928	036265	312 05 0 00 044112 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8929	036266	004 05 0 00 033762 		ER4	AC+1,33762		;LOW PRODUCT FAILED
  8930			000010			AEE=XX				;INITIAL C(E)
  8931	036267	312 02 0 00 043767 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8932	036270	005 02 0 00 033763 		ER5	E,33763			;C(E) WAS CLOBBERED
  8933	036271	321 06 0 00 036257 		JUMPL	AC+2,F33760		;LOOP ON ERROR SWITCH^
  8934
  8935			003377			ADR=ADR+1
  8936			000020			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0184

  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	036272	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8954			000000			AA2=0				;INITIAL C(AC+1)
  8955	036273	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8956			000020			AEE=XX				;INITIAL C(E)
  8957	036274	200 02 0 00 043770 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8958	036275	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8959		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8960	036276	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8961	036277	003 04 0 00 033771 		ER3	AC,33771		;HIGH PRODUCT FAILED
  8962		777777	777760			AR2=V2				;EXPECTED RESULT IN AC+1
  8963	036300	312 05 0 00 044121 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8964	036301	004 05 0 00 033772 		ER4	AC+1,33772		;LOW PRODUCT FAILED
  8965			000020			AEE=XX				;INITIAL C(E)
  8966	036302	312 02 0 00 043770 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  8967	036303	005 02 0 00 033773 		ER5	E,33773			;C(E) WAS CLOBBERED
  8968	036304	321 06 0 00 036272 		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	036305	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  8989			000000			AA2=0				;INITIAL C(AC+1)
  8990	036306	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  8991			000040			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0185

  8992	036307	200 02 0 00 043771 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  8993	036310	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  8994		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  8995	036311	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  8996	036312	003 04 0 00 034001 		ER3	AC,34001		;HIGH PRODUCT FAILED
  8997		777777	777740			AR2=V2				;EXPECTED RESULT IN AC+1
  8998	036313	312 05 0 00 044122 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  8999	036314	004 05 0 00 034002 		ER4	AC+1,34002		;LOW PRODUCT FAILED
  9000			000040			AEE=XX				;INITIAL C(E)
  9001	036315	312 02 0 00 043771 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9002	036316	005 02 0 00 034003 		ER5	E,34003			;C(E) WAS CLOBBERED
  9003	036317	321 06 0 00 036305 		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	036320	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9024			000000			AA2=0				;INITIAL C(AC+1)
  9025	036321	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9026			000100			AEE=XX				;INITIAL C(E)
  9027	036322	200 02 0 00 043772 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9028	036323	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9029		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9030	036324	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9031	036325	003 04 0 00 034011 		ER3	AC,34011		;HIGH PRODUCT FAILED
  9032		777777	777700			AR2=V2				;EXPECTED RESULT IN AC+1
  9033	036326	312 05 0 00 044123 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9034	036327	004 05 0 00 034012 		ER4	AC+1,34012		;LOW PRODUCT FAILED
  9035			000100			AEE=XX				;INITIAL C(E)
  9036	036330	312 02 0 00 043772 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9037	036331	005 02 0 00 034013 		ER5	E,34013			;C(E) WAS CLOBBERED
  9038	036332	321 06 0 00 036320 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0186

  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	036333	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9059			000000			AA2=0				;INITIAL C(AC+1)
  9060	036334	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9061			000200			AEE=XX				;INITIAL C(E)
  9062	036335	200 02 0 00 043773 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9063	036336	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9064		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9065	036337	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9066	036340	003 04 0 00 034021 		ER3	AC,34021		;HIGH PRODUCT FAILED
  9067		777777	777600			AR2=V2				;EXPECTED RESULT IN AC+1
  9068	036341	312 05 0 00 044124 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9069	036342	004 05 0 00 034022 		ER4	AC+1,34022		;LOW PRODUCT FAILED
  9070			000200			AEE=XX				;INITIAL C(E)
  9071	036343	312 02 0 00 043773 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9072	036344	005 02 0 00 034023 		ER5	E,34023			;C(E) WAS CLOBBERED
  9073	036345	321 06 0 00 036333 		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	036346	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9094			000000			AA2=0				;INITIAL C(AC+1)
  9095	036347	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9096			000400			AEE=XX				;INITIAL C(E)
  9097	036350	200 02 0 00 043774 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9098	036351	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9099		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9100	036352	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9101	036353	003 04 0 00 034031 		ER3	AC,34031		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0187

  9102		777777	777400			AR2=V2				;EXPECTED RESULT IN AC+1
  9103	036354	312 05 0 00 044125 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9104	036355	004 05 0 00 034032 		ER4	AC+1,34032		;LOW PRODUCT FAILED
  9105			000400			AEE=XX				;INITIAL C(E)
  9106	036356	312 02 0 00 043774 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9107	036357	005 02 0 00 034033 		ER5	E,34033			;C(E) WAS CLOBBERED
  9108	036360	321 06 0 00 036346 		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	036361	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9129			000000			AA2=0				;INITIAL C(AC+1)
  9130	036362	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9131			001000			AEE=XX				;INITIAL C(E)
  9132	036363	200 02 0 00 043775 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9133	036364	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9134		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9135	036365	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9136	036366	003 04 0 00 034041 		ER3	AC,34041		;HIGH PRODUCT FAILED
  9137		777777	777000			AR2=V2				;EXPECTED RESULT IN AC+1
  9138	036367	312 05 0 00 044126 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9139	036370	004 05 0 00 034042 		ER4	AC+1,34042		;LOW PRODUCT FAILED
  9140			001000			AEE=XX				;INITIAL C(E)
  9141	036371	312 02 0 00 043775 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9142	036372	005 02 0 00 034043 		ER5	E,34043			;C(E) WAS CLOBBERED
  9143	036373	321 06 0 00 036361 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0188

  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	036374	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9164			000000			AA2=0				;INITIAL C(AC+1)
  9165	036375	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9166			002000			AEE=XX				;INITIAL C(E)
  9167	036376	200 02 0 00 043776 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9168	036377	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9169		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9170	036400	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9171	036401	003 04 0 00 034051 		ER3	AC,34051		;HIGH PRODUCT FAILED
  9172		777777	776000			AR2=V2				;EXPECTED RESULT IN AC+1
  9173	036402	312 05 0 00 044127 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9174	036403	004 05 0 00 034052 		ER4	AC+1,34052		;LOW PRODUCT FAILED
  9175			002000			AEE=XX				;INITIAL C(E)
  9176	036404	312 02 0 00 043776 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9177	036405	005 02 0 00 034053 		ER5	E,34053			;C(E) WAS CLOBBERED
  9178	036406	321 06 0 00 036374 		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	036407	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9199			000000			AA2=0				;INITIAL C(AC+1)
  9200	036410	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9201			004000			AEE=XX				;INITIAL C(E)
  9202	036411	200 02 0 00 043777 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9203	036412	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9204		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9205	036413	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9206	036414	003 04 0 00 034061 		ER3	AC,34061		;HIGH PRODUCT FAILED
  9207		777777	774000			AR2=V2				;EXPECTED RESULT IN AC+1
  9208	036415	312 05 0 00 044130 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9209	036416	004 05 0 00 034062 		ER4	AC+1,34062		;LOW PRODUCT FAILED
  9210			004000			AEE=XX				;INITIAL C(E)
  9211	036417	312 02 0 00 043777 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0189

  9212	036420	005 02 0 00 034063 		ER5	E,34063			;C(E) WAS CLOBBERED
  9213	036421	321 06 0 00 036407 		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	036422	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9234			000000			AA2=0				;INITIAL C(AC+1)
  9235	036423	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9236			010000			AEE=XX				;INITIAL C(E)
  9237	036424	200 02 0 00 044000 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9238	036425	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9239		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9240	036426	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9241	036427	003 04 0 00 034071 		ER3	AC,34071		;HIGH PRODUCT FAILED
  9242		777777	770000			AR2=V2				;EXPECTED RESULT IN AC+1
  9243	036430	312 05 0 00 044131 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9244	036431	004 05 0 00 034072 		ER4	AC+1,34072		;LOW PRODUCT FAILED
  9245			010000			AEE=XX				;INITIAL C(E)
  9246	036432	312 02 0 00 044000 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9247	036433	005 02 0 00 034073 		ER5	E,34073			;C(E) WAS CLOBBERED
  9248	036434	321 06 0 00 036422 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0190

  9267		777777	777777		F34100:	AA1=-1				;INITIAL C(AC)
  9268	036435	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9269			000000			AA2=0				;INITIAL C(AC+1)
  9270	036436	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9271			020000			AEE=XX				;INITIAL C(E)
  9272	036437	200 02 0 00 044001 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9273	036440	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9274		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9275	036441	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9276	036442	003 04 0 00 034101 		ER3	AC,34101		;HIGH PRODUCT FAILED
  9277		777777	760000			AR2=V2				;EXPECTED RESULT IN AC+1
  9278	036443	312 05 0 00 044132 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9279	036444	004 05 0 00 034102 		ER4	AC+1,34102		;LOW PRODUCT FAILED
  9280			020000			AEE=XX				;INITIAL C(E)
  9281	036445	312 02 0 00 044001 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9282	036446	005 02 0 00 034103 		ER5	E,34103			;C(E) WAS CLOBBERED
  9283	036447	321 06 0 00 036435 		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	036450	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9304			000000			AA2=0				;INITIAL C(AC+1)
  9305	036451	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9306			040000			AEE=XX				;INITIAL C(E)
  9307	036452	200 02 0 00 044002 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9308	036453	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9309		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9310	036454	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9311	036455	003 04 0 00 034111 		ER3	AC,34111		;HIGH PRODUCT FAILED
  9312		777777	740000			AR2=V2				;EXPECTED RESULT IN AC+1
  9313	036456	312 05 0 00 044133 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9314	036457	004 05 0 00 034112 		ER4	AC+1,34112		;LOW PRODUCT FAILED
  9315			040000			AEE=XX				;INITIAL C(E)
  9316	036460	312 02 0 00 044002 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9317	036461	005 02 0 00 034113 		ER5	E,34113			;C(E) WAS CLOBBERED
  9318	036462	321 06 0 00 036450 		JUMPL	AC+2,F34110		;LOOP ON ERROR SWITCH^
  9319
  9320			003412			ADR=ADR+1
  9321			100000			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0191

  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	036463	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9339			000000			AA2=0				;INITIAL C(AC+1)
  9340	036464	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9341			100000			AEE=XX				;INITIAL C(E)
  9342	036465	200 02 0 00 044003 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9343	036466	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9344		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9345	036467	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9346	036470	003 04 0 00 034121 		ER3	AC,34121		;HIGH PRODUCT FAILED
  9347		777777	700000			AR2=V2				;EXPECTED RESULT IN AC+1
  9348	036471	312 05 0 00 044134 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9349	036472	004 05 0 00 034122 		ER4	AC+1,34122		;LOW PRODUCT FAILED
  9350			100000			AEE=XX				;INITIAL C(E)
  9351	036473	312 02 0 00 044003 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9352	036474	005 02 0 00 034123 		ER5	E,34123			;C(E) WAS CLOBBERED
  9353	036475	321 06 0 00 036463 		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	036476	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9374			000000			AA2=0				;INITIAL C(AC+1)
  9375	036477	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9376			200000			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0192

  9377	036500	200 02 0 00 044004 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9378	036501	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9379		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9380	036502	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9381	036503	003 04 0 00 034131 		ER3	AC,34131		;HIGH PRODUCT FAILED
  9382		777777	600000			AR2=V2				;EXPECTED RESULT IN AC+1
  9383	036504	312 05 0 00 044135 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9384	036505	004 05 0 00 034132 		ER4	AC+1,34132		;LOW PRODUCT FAILED
  9385			200000			AEE=XX				;INITIAL C(E)
  9386	036506	312 02 0 00 044004 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9387	036507	005 02 0 00 034133 		ER5	E,34133			;C(E) WAS CLOBBERED
  9388	036510	321 06 0 00 036476 		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	036511	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9409			000000			AA2=0				;INITIAL C(AC+1)
  9410	036512	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9411			400000			AEE=XX				;INITIAL C(E)
  9412	036513	200 02 0 00 044005 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9413	036514	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9414		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9415	036515	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9416	036516	003 04 0 00 034141 		ER3	AC,34141		;HIGH PRODUCT FAILED
  9417		777777	400000			AR2=V2				;EXPECTED RESULT IN AC+1
  9418	036517	312 05 0 00 044136 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9419	036520	004 05 0 00 034142 		ER4	AC+1,34142		;LOW PRODUCT FAILED
  9420			400000			AEE=XX				;INITIAL C(E)
  9421	036521	312 02 0 00 044005 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9422	036522	005 02 0 00 034143 		ER5	E,34143			;C(E) WAS CLOBBERED
  9423	036523	321 06 0 00 036511 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0193

  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	036524	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9444			000000			AA2=0				;INITIAL C(AC+1)
  9445	036525	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9446		000001	000000			AEE=XX				;INITIAL C(E)
  9447	036526	200 02 0 00 044006 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9448	036527	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9449		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9450	036530	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9451	036531	003 04 0 00 034151 		ER3	AC,34151		;HIGH PRODUCT FAILED
  9452		777777	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9453	036532	312 05 0 00 044137 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9454	036533	004 05 0 00 034152 		ER4	AC+1,34152		;LOW PRODUCT FAILED
  9455		000001	000000			AEE=XX				;INITIAL C(E)
  9456	036534	312 02 0 00 044006 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9457	036535	005 02 0 00 034153 		ER5	E,34153			;C(E) WAS CLOBBERED
  9458	036536	321 06 0 00 036524 		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	036537	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9479			000000			AA2=0				;INITIAL C(AC+1)
  9480	036540	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9481		000002	000000			AEE=XX				;INITIAL C(E)
  9482	036541	200 02 0 00 044007 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9483	036542	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9484		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9485	036543	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9486	036544	003 04 0 00 034161 		ER3	AC,34161		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0194

  9487		777776	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9488	036545	312 05 0 00 044140 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9489	036546	004 05 0 00 034162 		ER4	AC+1,34162		;LOW PRODUCT FAILED
  9490		000002	000000			AEE=XX				;INITIAL C(E)
  9491	036547	312 02 0 00 044007 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9492	036550	005 02 0 00 034163 		ER5	E,34163			;C(E) WAS CLOBBERED
  9493	036551	321 06 0 00 036537 		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	036552	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9514			000000			AA2=0				;INITIAL C(AC+1)
  9515	036553	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9516		000004	000000			AEE=XX				;INITIAL C(E)
  9517	036554	200 02 0 00 044010 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9518	036555	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9519		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9520	036556	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9521	036557	003 04 0 00 034171 		ER3	AC,34171		;HIGH PRODUCT FAILED
  9522		777774	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9523	036560	312 05 0 00 044141 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9524	036561	004 05 0 00 034172 		ER4	AC+1,34172		;LOW PRODUCT FAILED
  9525		000004	000000			AEE=XX				;INITIAL C(E)
  9526	036562	312 02 0 00 044010 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9527	036563	005 02 0 00 034173 		ER5	E,34173			;C(E) WAS CLOBBERED
  9528	036564	321 06 0 00 036552 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0195

  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	036565	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9549			000000			AA2=0				;INITIAL C(AC+1)
  9550	036566	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9551		000010	000000			AEE=XX				;INITIAL C(E)
  9552	036567	200 02 0 00 044011 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9553	036570	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9554		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9555	036571	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9556	036572	003 04 0 00 034201 		ER3	AC,34201		;HIGH PRODUCT FAILED
  9557		777770	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9558	036573	312 05 0 00 044142 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9559	036574	004 05 0 00 034202 		ER4	AC+1,34202		;LOW PRODUCT FAILED
  9560		000010	000000			AEE=XX				;INITIAL C(E)
  9561	036575	312 02 0 00 044011 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9562	036576	005 02 0 00 034203 		ER5	E,34203			;C(E) WAS CLOBBERED
  9563	036577	321 06 0 00 036565 		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	036600	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9584			000000			AA2=0				;INITIAL C(AC+1)
  9585	036601	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9586		000020	000000			AEE=XX				;INITIAL C(E)
  9587	036602	200 02 0 00 044012 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9588	036603	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9589		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9590	036604	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9591	036605	003 04 0 00 034211 		ER3	AC,34211		;HIGH PRODUCT FAILED
  9592		777760	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9593	036606	312 05 0 00 044143 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9594	036607	004 05 0 00 034212 		ER4	AC+1,34212		;LOW PRODUCT FAILED
  9595		000020	000000			AEE=XX				;INITIAL C(E)
  9596	036610	312 02 0 00 044012 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0196

  9597	036611	005 02 0 00 034213 		ER5	E,34213			;C(E) WAS CLOBBERED
  9598	036612	321 06 0 00 036600 		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	036613	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9619			000000			AA2=0				;INITIAL C(AC+1)
  9620	036614	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9621		000040	000000			AEE=XX				;INITIAL C(E)
  9622	036615	200 02 0 00 044013 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9623	036616	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9624		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9625	036617	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9626	036620	003 04 0 00 034221 		ER3	AC,34221		;HIGH PRODUCT FAILED
  9627		777740	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9628	036621	312 05 0 00 044144 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9629	036622	004 05 0 00 034222 		ER4	AC+1,34222		;LOW PRODUCT FAILED
  9630		000040	000000			AEE=XX				;INITIAL C(E)
  9631	036623	312 02 0 00 044013 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9632	036624	005 02 0 00 034223 		ER5	E,34223			;C(E) WAS CLOBBERED
  9633	036625	321 06 0 00 036613 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0197

  9652		777777	777777		F34230:	AA1=-1				;INITIAL C(AC)
  9653	036626	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9654			000000			AA2=0				;INITIAL C(AC+1)
  9655	036627	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9656		000100	000000			AEE=XX				;INITIAL C(E)
  9657	036630	200 02 0 00 044014 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9658	036631	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9659		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9660	036632	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9661	036633	003 04 0 00 034231 		ER3	AC,34231		;HIGH PRODUCT FAILED
  9662		777700	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9663	036634	312 05 0 00 044145 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9664	036635	004 05 0 00 034232 		ER4	AC+1,34232		;LOW PRODUCT FAILED
  9665		000100	000000			AEE=XX				;INITIAL C(E)
  9666	036636	312 02 0 00 044014 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9667	036637	005 02 0 00 034233 		ER5	E,34233			;C(E) WAS CLOBBERED
  9668	036640	321 06 0 00 036626 		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	036641	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9689			000000			AA2=0				;INITIAL C(AC+1)
  9690	036642	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9691		000200	000000			AEE=XX				;INITIAL C(E)
  9692	036643	200 02 0 00 044015 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9693	036644	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9694		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9695	036645	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9696	036646	003 04 0 00 034241 		ER3	AC,34241		;HIGH PRODUCT FAILED
  9697		777600	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9698	036647	312 05 0 00 044146 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9699	036650	004 05 0 00 034242 		ER4	AC+1,34242		;LOW PRODUCT FAILED
  9700		000200	000000			AEE=XX				;INITIAL C(E)
  9701	036651	312 02 0 00 044015 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9702	036652	005 02 0 00 034243 		ER5	E,34243			;C(E) WAS CLOBBERED
  9703	036653	321 06 0 00 036641 		JUMPL	AC+2,F34240		;LOOP ON ERROR SWITCH^
  9704
  9705			003425			ADR=ADR+1
  9706		000400	000000			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0198

  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	036654	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9724			000000			AA2=0				;INITIAL C(AC+1)
  9725	036655	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9726		000400	000000			AEE=XX				;INITIAL C(E)
  9727	036656	200 02 0 00 044016 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9728	036657	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9729		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9730	036660	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9731	036661	003 04 0 00 034251 		ER3	AC,34251		;HIGH PRODUCT FAILED
  9732		777400	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9733	036662	312 05 0 00 044147 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9734	036663	004 05 0 00 034252 		ER4	AC+1,34252		;LOW PRODUCT FAILED
  9735		000400	000000			AEE=XX				;INITIAL C(E)
  9736	036664	312 02 0 00 044016 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9737	036665	005 02 0 00 034253 		ER5	E,34253			;C(E) WAS CLOBBERED
  9738	036666	321 06 0 00 036654 		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	036667	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9759			000000			AA2=0				;INITIAL C(AC+1)
  9760	036670	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9761		001000	000000			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0199

  9762	036671	200 02 0 00 044017 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9763	036672	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9764		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9765	036673	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9766	036674	003 04 0 00 034261 		ER3	AC,34261		;HIGH PRODUCT FAILED
  9767		777000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9768	036675	312 05 0 00 044150 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9769	036676	004 05 0 00 034262 		ER4	AC+1,34262		;LOW PRODUCT FAILED
  9770		001000	000000			AEE=XX				;INITIAL C(E)
  9771	036677	312 02 0 00 044017 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9772	036700	005 02 0 00 034263 		ER5	E,34263			;C(E) WAS CLOBBERED
  9773	036701	321 06 0 00 036667 		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	036702	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9794			000000			AA2=0				;INITIAL C(AC+1)
  9795	036703	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9796		002000	000000			AEE=XX				;INITIAL C(E)
  9797	036704	200 02 0 00 044020 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9798	036705	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9799		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9800	036706	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9801	036707	003 04 0 00 034271 		ER3	AC,34271		;HIGH PRODUCT FAILED
  9802		776000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9803	036710	312 05 0 00 044151 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9804	036711	004 05 0 00 034272 		ER4	AC+1,34272		;LOW PRODUCT FAILED
  9805		002000	000000			AEE=XX				;INITIAL C(E)
  9806	036712	312 02 0 00 044020 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9807	036713	005 02 0 00 034273 		ER5	E,34273			;C(E) WAS CLOBBERED
  9808	036714	321 06 0 00 036702 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0200

  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	036715	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9829			000000			AA2=0				;INITIAL C(AC+1)
  9830	036716	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9831		004000	000000			AEE=XX				;INITIAL C(E)
  9832	036717	200 02 0 00 044021 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9833	036720	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9834		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9835	036721	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9836	036722	003 04 0 00 034301 		ER3	AC,34301		;HIGH PRODUCT FAILED
  9837		774000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9838	036723	312 05 0 00 044152 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9839	036724	004 05 0 00 034302 		ER4	AC+1,34302		;LOW PRODUCT FAILED
  9840		004000	000000			AEE=XX				;INITIAL C(E)
  9841	036725	312 02 0 00 044021 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9842	036726	005 02 0 00 034303 		ER5	E,34303			;C(E) WAS CLOBBERED
  9843	036727	321 06 0 00 036715 		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	036730	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9864			000000			AA2=0				;INITIAL C(AC+1)
  9865	036731	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9866		010000	000000			AEE=XX				;INITIAL C(E)
  9867	036732	200 02 0 00 044022 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9868	036733	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9869		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9870	036734	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9871	036735	003 04 0 00 034311 		ER3	AC,34311		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0201

  9872		770000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9873	036736	312 05 0 00 044153 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9874	036737	004 05 0 00 034312 		ER4	AC+1,34312		;LOW PRODUCT FAILED
  9875		010000	000000			AEE=XX				;INITIAL C(E)
  9876	036740	312 02 0 00 044022 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9877	036741	005 02 0 00 034313 		ER5	E,34313			;C(E) WAS CLOBBERED
  9878	036742	321 06 0 00 036730 		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	036743	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9899			000000			AA2=0				;INITIAL C(AC+1)
  9900	036744	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9901		020000	000000			AEE=XX				;INITIAL C(E)
  9902	036745	200 02 0 00 044023 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9903	036746	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9904		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9905	036747	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9906	036750	003 04 0 00 034321 		ER3	AC,34321		;HIGH PRODUCT FAILED
  9907		760000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9908	036751	312 05 0 00 044154 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9909	036752	004 05 0 00 034322 		ER4	AC+1,34322		;LOW PRODUCT FAILED
  9910		020000	000000			AEE=XX				;INITIAL C(E)
  9911	036753	312 02 0 00 044023 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9912	036754	005 02 0 00 034323 		ER5	E,34323			;C(E) WAS CLOBBERED
  9913	036755	321 06 0 00 036743 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-21
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0202

  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	036756	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9934			000000			AA2=0				;INITIAL C(AC+1)
  9935	036757	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9936		040000	000000			AEE=XX				;INITIAL C(E)
  9937	036760	200 02 0 00 044024 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9938	036761	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9939		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9940	036762	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9941	036763	003 04 0 00 034331 		ER3	AC,34331		;HIGH PRODUCT FAILED
  9942		740000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9943	036764	312 05 0 00 044155 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9944	036765	004 05 0 00 034332 		ER4	AC+1,34332		;LOW PRODUCT FAILED
  9945		040000	000000			AEE=XX				;INITIAL C(E)
  9946	036766	312 02 0 00 044024 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
  9947	036767	005 02 0 00 034333 		ER5	E,34333			;C(E) WAS CLOBBERED
  9948	036770	321 06 0 00 036756 		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	036771	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
  9969			000000			AA2=0				;INITIAL C(AC+1)
  9970	036772	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
  9971		100000	000000			AEE=XX				;INITIAL C(E)
  9972	036773	200 02 0 00 044025 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
  9973	036774	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
  9974		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
  9975	036775	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
  9976	036776	003 04 0 00 034341 		ER3	AC,34341		;HIGH PRODUCT FAILED
  9977		700000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
  9978	036777	312 05 0 00 044156 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
  9979	037000	004 05 0 00 034342 		ER4	AC+1,34342		;LOW PRODUCT FAILED
  9980		100000	000000			AEE=XX				;INITIAL C(E)
  9981	037001	312 02 0 00 044025 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-22
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0203

  9982	037002	005 02 0 00 034343 		ER5	E,34343			;C(E) WAS CLOBBERED
  9983	037003	321 06 0 00 036771 		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	037004	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 10004			000000			AA2=0				;INITIAL C(AC+1)
 10005	037005	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10006		200000	000000			AEE=XX				;INITIAL C(E)
 10007	037006	200 02 0 00 044026 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 10008	037007	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10009		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10010	037010	312 04 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10011	037011	003 04 0 00 034351 		ER3	AC,34351		;HIGH PRODUCT FAILED
 10012		600000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10013	037012	312 05 0 00 044157 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10014	037013	004 05 0 00 034352 		ER4	AC+1,34352		;LOW PRODUCT FAILED
 10015		200000	000000			AEE=XX				;INITIAL C(E)
 10016	037014	312 02 0 00 044026 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 10017	037015	005 02 0 00 034353 		ER5	E,34353			;C(E) WAS CLOBBERED
 10018	037016	321 06 0 00 037004 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 12-23
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0204

 10037		777777	777777		F34360:	AA1=-1				;INITIAL C(AC)
 10038	037017	200 04 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 10039			000000			AA2=0				;INITIAL C(AC+1)
 10040	037020	200 05 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10041		400000	000000			AEE=XX				;INITIAL C(E)
 10042	037021	200 02 0 00 044027 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 10043	037022	224 04 0 00 000002 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10044			000001			AR1=V1				;EXPECTED RESULT IN AC
 10045	037023	312 04 0 00 043764 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10046	037024	003 04 0 00 034361 		ER3	AC,34361		;HIGH PRODUCT FAILED
 10047			000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10048	037025	312 05 0 00 043762 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10049	037026	004 05 0 00 034362 		ER4	AC+1,34362		;LOW PRODUCT FAILED
 10050		400000	000000			AEE=XX				;INITIAL C(E)
 10051	037027	312 02 0 00 044027 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 10052	037030	005 02 0 00 034363 		ER5	E,34363			;C(E) WAS CLOBBERED
 10053	037031	321 06 0 00 037017 		JUMPL	AC+2,F34360		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0205

 10054			000003			AC=3
 10055			000001			E=<AC-2>&17
 10056						SAVEAC	(1,1)^
 10057	037032	201 05 0 00 037032 		MOVEI	AC+2,.		;SAVE TEST PC
 10058	037033	202 05 0 00 030051 		MOVEM	AC+2,TESTPC
 10059	037034	201 05 0 00 000005 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 10060	037035	202 05 0 00 044437 		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	037036	200 03 0 00 043764 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10096			000000			AA2=0				;INITIAL C(AC+1)
 10097	037037	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10098		777777	777777			AEE=-1				;INITIAL C(E)
 10099	037040	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10100	037041	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10101		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10102	037042	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10103	037043	003 03 0 00 034371 		ER3	AC,34371		;HIGH PRODUCT FAILED
 10104		777777	777777			AR2=V2				;EXPECTED RESULT IN AC+1
 10105	037044	312 04 0 00 043763 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10106	037045	004 04 0 00 034372 		ER4	AC+1,34372		;LOW PRODUCT FAILED
 10107		777777	777777			AEE=-1				;INITIAL C(E)
 10108	037046	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0206

 10109	037047	005 01 0 00 034373 		ER5	E,34373			;C(E) WAS CLOBBERED
 10110	037050	321 05 0 00 037036 		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	037051	200 03 0 00 043765 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10131			000000			AA2=0				;INITIAL C(AC+1)
 10132	037052	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10133		777777	777777			AEE=-1				;INITIAL C(E)
 10134	037053	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10135	037054	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10136		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10137	037055	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10138	037056	003 03 0 00 034401 		ER3	AC,34401		;HIGH PRODUCT FAILED
 10139		777777	777776			AR2=V2				;EXPECTED RESULT IN AC+1
 10140	037057	312 04 0 00 044030 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10141	037060	004 04 0 00 034402 		ER4	AC+1,34402		;LOW PRODUCT FAILED
 10142		777777	777777			AEE=-1				;INITIAL C(E)
 10143	037061	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10144	037062	005 01 0 00 034403 		ER5	E,34403			;C(E) WAS CLOBBERED
 10145	037063	321 05 0 00 037051 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0207

 10164			000004		F34410:	AA1=XX				;INITIAL C(AC)
 10165	037064	200 03 0 00 043766 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10166			000000			AA2=0				;INITIAL C(AC+1)
 10167	037065	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10168		777777	777777			AEE=-1				;INITIAL C(E)
 10169	037066	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10170	037067	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10171		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10172	037070	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10173	037071	003 03 0 00 034411 		ER3	AC,34411		;HIGH PRODUCT FAILED
 10174		777777	777774			AR2=V2				;EXPECTED RESULT IN AC+1
 10175	037072	312 04 0 00 044107 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10176	037073	004 04 0 00 034412 		ER4	AC+1,34412		;LOW PRODUCT FAILED
 10177		777777	777777			AEE=-1				;INITIAL C(E)
 10178	037074	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10179	037075	005 01 0 00 034413 		ER5	E,34413			;C(E) WAS CLOBBERED
 10180	037076	321 05 0 00 037064 		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	037077	200 03 0 00 043767 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10201			000000			AA2=0				;INITIAL C(AC+1)
 10202	037100	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10203		777777	777777			AEE=-1				;INITIAL C(E)
 10204	037101	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10205	037102	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10206		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10207	037103	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10208	037104	003 03 0 00 034421 		ER3	AC,34421		;HIGH PRODUCT FAILED
 10209		777777	777770			AR2=V2				;EXPECTED RESULT IN AC+1
 10210	037105	312 04 0 00 044112 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10211	037106	004 04 0 00 034422 		ER4	AC+1,34422		;LOW PRODUCT FAILED
 10212		777777	777777			AEE=-1				;INITIAL C(E)
 10213	037107	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10214	037110	005 01 0 00 034423 		ER5	E,34423			;C(E) WAS CLOBBERED
 10215	037111	321 05 0 00 037077 		JUMPL	AC+2,F34420		;LOOP ON ERROR SWITCH^
 10216
 10217			003443			ADR=ADR+1
 10218			000020			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0208

 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	037112	200 03 0 00 043770 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10236			000000			AA2=0				;INITIAL C(AC+1)
 10237	037113	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10238		777777	777777			AEE=-1				;INITIAL C(E)
 10239	037114	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10240	037115	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10241		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10242	037116	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10243	037117	003 03 0 00 034431 		ER3	AC,34431		;HIGH PRODUCT FAILED
 10244		777777	777760			AR2=V2				;EXPECTED RESULT IN AC+1
 10245	037120	312 04 0 00 044121 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10246	037121	004 04 0 00 034432 		ER4	AC+1,34432		;LOW PRODUCT FAILED
 10247		777777	777777			AEE=-1				;INITIAL C(E)
 10248	037122	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10249	037123	005 01 0 00 034433 		ER5	E,34433			;C(E) WAS CLOBBERED
 10250	037124	321 05 0 00 037112 		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	037125	200 03 0 00 043771 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10271			000000			AA2=0				;INITIAL C(AC+1)
 10272	037126	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10273		777777	777777			AEE=-1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0209

 10274	037127	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10275	037130	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10276		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10277	037131	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10278	037132	003 03 0 00 034441 		ER3	AC,34441		;HIGH PRODUCT FAILED
 10279		777777	777740			AR2=V2				;EXPECTED RESULT IN AC+1
 10280	037133	312 04 0 00 044122 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10281	037134	004 04 0 00 034442 		ER4	AC+1,34442		;LOW PRODUCT FAILED
 10282		777777	777777			AEE=-1				;INITIAL C(E)
 10283	037135	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10284	037136	005 01 0 00 034443 		ER5	E,34443			;C(E) WAS CLOBBERED
 10285	037137	321 05 0 00 037125 		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	037140	200 03 0 00 043772 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10306			000000			AA2=0				;INITIAL C(AC+1)
 10307	037141	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10308		777777	777777			AEE=-1				;INITIAL C(E)
 10309	037142	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10310	037143	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10311		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10312	037144	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10313	037145	003 03 0 00 034451 		ER3	AC,34451		;HIGH PRODUCT FAILED
 10314		777777	777700			AR2=V2				;EXPECTED RESULT IN AC+1
 10315	037146	312 04 0 00 044123 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10316	037147	004 04 0 00 034452 		ER4	AC+1,34452		;LOW PRODUCT FAILED
 10317		777777	777777			AEE=-1				;INITIAL C(E)
 10318	037150	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10319	037151	005 01 0 00 034453 		ER5	E,34453			;C(E) WAS CLOBBERED
 10320	037152	321 05 0 00 037140 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0210

 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	037153	200 03 0 00 043773 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10341			000000			AA2=0				;INITIAL C(AC+1)
 10342	037154	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10343		777777	777777			AEE=-1				;INITIAL C(E)
 10344	037155	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10345	037156	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10346		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10347	037157	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10348	037160	003 03 0 00 034461 		ER3	AC,34461		;HIGH PRODUCT FAILED
 10349		777777	777600			AR2=V2				;EXPECTED RESULT IN AC+1
 10350	037161	312 04 0 00 044124 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10351	037162	004 04 0 00 034462 		ER4	AC+1,34462		;LOW PRODUCT FAILED
 10352		777777	777777			AEE=-1				;INITIAL C(E)
 10353	037163	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10354	037164	005 01 0 00 034463 		ER5	E,34463			;C(E) WAS CLOBBERED
 10355	037165	321 05 0 00 037153 		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	037166	200 03 0 00 043774 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10376			000000			AA2=0				;INITIAL C(AC+1)
 10377	037167	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10378		777777	777777			AEE=-1				;INITIAL C(E)
 10379	037170	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10380	037171	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10381		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10382	037172	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10383	037173	003 03 0 00 034471 		ER3	AC,34471		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0211

 10384		777777	777400			AR2=V2				;EXPECTED RESULT IN AC+1
 10385	037174	312 04 0 00 044125 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10386	037175	004 04 0 00 034472 		ER4	AC+1,34472		;LOW PRODUCT FAILED
 10387		777777	777777			AEE=-1				;INITIAL C(E)
 10388	037176	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10389	037177	005 01 0 00 034473 		ER5	E,34473			;C(E) WAS CLOBBERED
 10390	037200	321 05 0 00 037166 		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	037201	200 03 0 00 043775 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10411			000000			AA2=0				;INITIAL C(AC+1)
 10412	037202	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10413		777777	777777			AEE=-1				;INITIAL C(E)
 10414	037203	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10415	037204	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10416		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10417	037205	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10418	037206	003 03 0 00 034501 		ER3	AC,34501		;HIGH PRODUCT FAILED
 10419		777777	777000			AR2=V2				;EXPECTED RESULT IN AC+1
 10420	037207	312 04 0 00 044126 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10421	037210	004 04 0 00 034502 		ER4	AC+1,34502		;LOW PRODUCT FAILED
 10422		777777	777777			AEE=-1				;INITIAL C(E)
 10423	037211	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10424	037212	005 01 0 00 034503 		ER5	E,34503			;C(E) WAS CLOBBERED
 10425	037213	321 05 0 00 037201 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0212

 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	037214	200 03 0 00 043776 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10446			000000			AA2=0				;INITIAL C(AC+1)
 10447	037215	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10448		777777	777777			AEE=-1				;INITIAL C(E)
 10449	037216	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10450	037217	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10451		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10452	037220	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10453	037221	003 03 0 00 034511 		ER3	AC,34511		;HIGH PRODUCT FAILED
 10454		777777	776000			AR2=V2				;EXPECTED RESULT IN AC+1
 10455	037222	312 04 0 00 044127 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10456	037223	004 04 0 00 034512 		ER4	AC+1,34512		;LOW PRODUCT FAILED
 10457		777777	777777			AEE=-1				;INITIAL C(E)
 10458	037224	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10459	037225	005 01 0 00 034513 		ER5	E,34513			;C(E) WAS CLOBBERED
 10460	037226	321 05 0 00 037214 		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	037227	200 03 0 00 043777 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10481			000000			AA2=0				;INITIAL C(AC+1)
 10482	037230	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10483		777777	777777			AEE=-1				;INITIAL C(E)
 10484	037231	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10485	037232	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10486		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10487	037233	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10488	037234	003 03 0 00 034521 		ER3	AC,34521		;HIGH PRODUCT FAILED
 10489		777777	774000			AR2=V2				;EXPECTED RESULT IN AC+1
 10490	037235	312 04 0 00 044130 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10491	037236	004 04 0 00 034522 		ER4	AC+1,34522		;LOW PRODUCT FAILED
 10492		777777	777777			AEE=-1				;INITIAL C(E)
 10493	037237	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0213

 10494	037240	005 01 0 00 034523 		ER5	E,34523			;C(E) WAS CLOBBERED
 10495	037241	321 05 0 00 037227 		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	037242	200 03 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10516			000000			AA2=0				;INITIAL C(AC+1)
 10517	037243	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10518		777777	777777			AEE=-1				;INITIAL C(E)
 10519	037244	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10520	037245	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10521		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10522	037246	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10523	037247	003 03 0 00 034531 		ER3	AC,34531		;HIGH PRODUCT FAILED
 10524		777777	770000			AR2=V2				;EXPECTED RESULT IN AC+1
 10525	037250	312 04 0 00 044131 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10526	037251	004 04 0 00 034532 		ER4	AC+1,34532		;LOW PRODUCT FAILED
 10527		777777	777777			AEE=-1				;INITIAL C(E)
 10528	037252	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10529	037253	005 01 0 00 034533 		ER5	E,34533			;C(E) WAS CLOBBERED
 10530	037254	321 05 0 00 037242 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0214

 10549			020000		F34540:	AA1=XX				;INITIAL C(AC)
 10550	037255	200 03 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10551			000000			AA2=0				;INITIAL C(AC+1)
 10552	037256	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10553		777777	777777			AEE=-1				;INITIAL C(E)
 10554	037257	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10555	037260	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10556		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10557	037261	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10558	037262	003 03 0 00 034541 		ER3	AC,34541		;HIGH PRODUCT FAILED
 10559		777777	760000			AR2=V2				;EXPECTED RESULT IN AC+1
 10560	037263	312 04 0 00 044132 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10561	037264	004 04 0 00 034542 		ER4	AC+1,34542		;LOW PRODUCT FAILED
 10562		777777	777777			AEE=-1				;INITIAL C(E)
 10563	037265	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10564	037266	005 01 0 00 034543 		ER5	E,34543			;C(E) WAS CLOBBERED
 10565	037267	321 05 0 00 037255 		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	037270	200 03 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10586			000000			AA2=0				;INITIAL C(AC+1)
 10587	037271	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10588		777777	777777			AEE=-1				;INITIAL C(E)
 10589	037272	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10590	037273	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10591		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10592	037274	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10593	037275	003 03 0 00 034551 		ER3	AC,34551		;HIGH PRODUCT FAILED
 10594		777777	740000			AR2=V2				;EXPECTED RESULT IN AC+1
 10595	037276	312 04 0 00 044133 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10596	037277	004 04 0 00 034552 		ER4	AC+1,34552		;LOW PRODUCT FAILED
 10597		777777	777777			AEE=-1				;INITIAL C(E)
 10598	037300	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10599	037301	005 01 0 00 034553 		ER5	E,34553			;C(E) WAS CLOBBERED
 10600	037302	321 05 0 00 037270 		JUMPL	AC+2,F34550		;LOOP ON ERROR SWITCH^
 10601
 10602			003456			ADR=ADR+1
 10603			100000			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0215

 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	037303	200 03 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10621			000000			AA2=0				;INITIAL C(AC+1)
 10622	037304	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10623		777777	777777			AEE=-1				;INITIAL C(E)
 10624	037305	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10625	037306	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10626		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10627	037307	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10628	037310	003 03 0 00 034561 		ER3	AC,34561		;HIGH PRODUCT FAILED
 10629		777777	700000			AR2=V2				;EXPECTED RESULT IN AC+1
 10630	037311	312 04 0 00 044134 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10631	037312	004 04 0 00 034562 		ER4	AC+1,34562		;LOW PRODUCT FAILED
 10632		777777	777777			AEE=-1				;INITIAL C(E)
 10633	037313	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10634	037314	005 01 0 00 034563 		ER5	E,34563			;C(E) WAS CLOBBERED
 10635	037315	321 05 0 00 037303 		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	037316	200 03 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10656			000000			AA2=0				;INITIAL C(AC+1)
 10657	037317	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10658		777777	777777			AEE=-1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0216

 10659	037320	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10660	037321	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10661		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10662	037322	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10663	037323	003 03 0 00 034571 		ER3	AC,34571		;HIGH PRODUCT FAILED
 10664		777777	600000			AR2=V2				;EXPECTED RESULT IN AC+1
 10665	037324	312 04 0 00 044135 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10666	037325	004 04 0 00 034572 		ER4	AC+1,34572		;LOW PRODUCT FAILED
 10667		777777	777777			AEE=-1				;INITIAL C(E)
 10668	037326	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10669	037327	005 01 0 00 034573 		ER5	E,34573			;C(E) WAS CLOBBERED
 10670	037330	321 05 0 00 037316 		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	037331	200 03 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10691			000000			AA2=0				;INITIAL C(AC+1)
 10692	037332	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10693		777777	777777			AEE=-1				;INITIAL C(E)
 10694	037333	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10695	037334	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10696		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10697	037335	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10698	037336	003 03 0 00 034601 		ER3	AC,34601		;HIGH PRODUCT FAILED
 10699		777777	400000			AR2=V2				;EXPECTED RESULT IN AC+1
 10700	037337	312 04 0 00 044136 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10701	037340	004 04 0 00 034602 		ER4	AC+1,34602		;LOW PRODUCT FAILED
 10702		777777	777777			AEE=-1				;INITIAL C(E)
 10703	037341	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10704	037342	005 01 0 00 034603 		ER5	E,34603			;C(E) WAS CLOBBERED
 10705	037343	321 05 0 00 037331 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0217

 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	037344	200 03 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10726			000000			AA2=0				;INITIAL C(AC+1)
 10727	037345	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10728		777777	777777			AEE=-1				;INITIAL C(E)
 10729	037346	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10730	037347	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10731		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10732	037350	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10733	037351	003 03 0 00 034611 		ER3	AC,34611		;HIGH PRODUCT FAILED
 10734		777777	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10735	037352	312 04 0 00 044137 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10736	037353	004 04 0 00 034612 		ER4	AC+1,34612		;LOW PRODUCT FAILED
 10737		777777	777777			AEE=-1				;INITIAL C(E)
 10738	037354	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10739	037355	005 01 0 00 034613 		ER5	E,34613			;C(E) WAS CLOBBERED
 10740	037356	321 05 0 00 037344 		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	037357	200 03 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10761			000000			AA2=0				;INITIAL C(AC+1)
 10762	037360	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10763		777777	777777			AEE=-1				;INITIAL C(E)
 10764	037361	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10765	037362	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10766		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10767	037363	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10768	037364	003 03 0 00 034621 		ER3	AC,34621		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0218

 10769		777776	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10770	037365	312 04 0 00 044140 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10771	037366	004 04 0 00 034622 		ER4	AC+1,34622		;LOW PRODUCT FAILED
 10772		777777	777777			AEE=-1				;INITIAL C(E)
 10773	037367	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10774	037370	005 01 0 00 034623 		ER5	E,34623			;C(E) WAS CLOBBERED
 10775	037371	321 05 0 00 037357 		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	037372	200 03 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10796			000000			AA2=0				;INITIAL C(AC+1)
 10797	037373	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10798		777777	777777			AEE=-1				;INITIAL C(E)
 10799	037374	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10800	037375	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10801		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10802	037376	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10803	037377	003 03 0 00 034631 		ER3	AC,34631		;HIGH PRODUCT FAILED
 10804		777774	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10805	037400	312 04 0 00 044141 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10806	037401	004 04 0 00 034632 		ER4	AC+1,34632		;LOW PRODUCT FAILED
 10807		777777	777777			AEE=-1				;INITIAL C(E)
 10808	037402	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10809	037403	005 01 0 00 034633 		ER5	E,34633			;C(E) WAS CLOBBERED
 10810	037404	321 05 0 00 037372 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0219

 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	037405	200 03 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10831			000000			AA2=0				;INITIAL C(AC+1)
 10832	037406	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10833		777777	777777			AEE=-1				;INITIAL C(E)
 10834	037407	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10835	037410	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10836		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10837	037411	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10838	037412	003 03 0 00 034641 		ER3	AC,34641		;HIGH PRODUCT FAILED
 10839		777770	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10840	037413	312 04 0 00 044142 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10841	037414	004 04 0 00 034642 		ER4	AC+1,34642		;LOW PRODUCT FAILED
 10842		777777	777777			AEE=-1				;INITIAL C(E)
 10843	037415	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10844	037416	005 01 0 00 034643 		ER5	E,34643			;C(E) WAS CLOBBERED
 10845	037417	321 05 0 00 037405 		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	037420	200 03 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10866			000000			AA2=0				;INITIAL C(AC+1)
 10867	037421	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10868		777777	777777			AEE=-1				;INITIAL C(E)
 10869	037422	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10870	037423	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10871		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10872	037424	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10873	037425	003 03 0 00 034651 		ER3	AC,34651		;HIGH PRODUCT FAILED
 10874		777760	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10875	037426	312 04 0 00 044143 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10876	037427	004 04 0 00 034652 		ER4	AC+1,34652		;LOW PRODUCT FAILED
 10877		777777	777777			AEE=-1				;INITIAL C(E)
 10878	037430	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0220

 10879	037431	005 01 0 00 034653 		ER5	E,34653			;C(E) WAS CLOBBERED
 10880	037432	321 05 0 00 037420 		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	037433	200 03 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10901			000000			AA2=0				;INITIAL C(AC+1)
 10902	037434	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10903		777777	777777			AEE=-1				;INITIAL C(E)
 10904	037435	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10905	037436	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10906		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10907	037437	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10908	037440	003 03 0 00 034661 		ER3	AC,34661		;HIGH PRODUCT FAILED
 10909		777740	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10910	037441	312 04 0 00 044144 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10911	037442	004 04 0 00 034662 		ER4	AC+1,34662		;LOW PRODUCT FAILED
 10912		777777	777777			AEE=-1				;INITIAL C(E)
 10913	037443	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10914	037444	005 01 0 00 034663 		ER5	E,34663			;C(E) WAS CLOBBERED
 10915	037445	321 05 0 00 037433 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0221

 10934		000100	000000		F34670:	AA1=XX				;INITIAL C(AC)
 10935	037446	200 03 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10936			000000			AA2=0				;INITIAL C(AC+1)
 10937	037447	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10938		777777	777777			AEE=-1				;INITIAL C(E)
 10939	037450	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10940	037451	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10941		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10942	037452	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10943	037453	003 03 0 00 034671 		ER3	AC,34671		;HIGH PRODUCT FAILED
 10944		777700	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10945	037454	312 04 0 00 044145 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10946	037455	004 04 0 00 034672 		ER4	AC+1,34672		;LOW PRODUCT FAILED
 10947		777777	777777			AEE=-1				;INITIAL C(E)
 10948	037456	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10949	037457	005 01 0 00 034673 		ER5	E,34673			;C(E) WAS CLOBBERED
 10950	037460	321 05 0 00 037446 		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	037461	200 03 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 10971			000000			AA2=0				;INITIAL C(AC+1)
 10972	037462	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 10973		777777	777777			AEE=-1				;INITIAL C(E)
 10974	037463	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 10975	037464	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 10976		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 10977	037465	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 10978	037466	003 03 0 00 034701 		ER3	AC,34701		;HIGH PRODUCT FAILED
 10979		777600	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 10980	037467	312 04 0 00 044146 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 10981	037470	004 04 0 00 034702 		ER4	AC+1,34702		;LOW PRODUCT FAILED
 10982		777777	777777			AEE=-1				;INITIAL C(E)
 10983	037471	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 10984	037472	005 01 0 00 034703 		ER5	E,34703			;C(E) WAS CLOBBERED
 10985	037473	321 05 0 00 037461 		JUMPL	AC+2,F34700		;LOOP ON ERROR SWITCH^
 10986
 10987			003471			ADR=ADR+1
 10988		000400	000000			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0222

 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	037474	200 03 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11006			000000			AA2=0				;INITIAL C(AC+1)
 11007	037475	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11008		777777	777777			AEE=-1				;INITIAL C(E)
 11009	037476	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11010	037477	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11011		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11012	037500	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11013	037501	003 03 0 00 034711 		ER3	AC,34711		;HIGH PRODUCT FAILED
 11014		777400	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11015	037502	312 04 0 00 044147 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11016	037503	004 04 0 00 034712 		ER4	AC+1,34712		;LOW PRODUCT FAILED
 11017		777777	777777			AEE=-1				;INITIAL C(E)
 11018	037504	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11019	037505	005 01 0 00 034713 		ER5	E,34713			;C(E) WAS CLOBBERED
 11020	037506	321 05 0 00 037474 		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	037507	200 03 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11041			000000			AA2=0				;INITIAL C(AC+1)
 11042	037510	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11043		777777	777777			AEE=-1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0223

 11044	037511	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11045	037512	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11046		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11047	037513	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11048	037514	003 03 0 00 034721 		ER3	AC,34721		;HIGH PRODUCT FAILED
 11049		777000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11050	037515	312 04 0 00 044150 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11051	037516	004 04 0 00 034722 		ER4	AC+1,34722		;LOW PRODUCT FAILED
 11052		777777	777777			AEE=-1				;INITIAL C(E)
 11053	037517	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11054	037520	005 01 0 00 034723 		ER5	E,34723			;C(E) WAS CLOBBERED
 11055	037521	321 05 0 00 037507 		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	037522	200 03 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11076			000000			AA2=0				;INITIAL C(AC+1)
 11077	037523	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11078		777777	777777			AEE=-1				;INITIAL C(E)
 11079	037524	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11080	037525	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11081		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11082	037526	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11083	037527	003 03 0 00 034731 		ER3	AC,34731		;HIGH PRODUCT FAILED
 11084		776000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11085	037530	312 04 0 00 044151 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11086	037531	004 04 0 00 034732 		ER4	AC+1,34732		;LOW PRODUCT FAILED
 11087		777777	777777			AEE=-1				;INITIAL C(E)
 11088	037532	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11089	037533	005 01 0 00 034733 		ER5	E,34733			;C(E) WAS CLOBBERED
 11090	037534	321 05 0 00 037522 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0224

 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	037535	200 03 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11111			000000			AA2=0				;INITIAL C(AC+1)
 11112	037536	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11113		777777	777777			AEE=-1				;INITIAL C(E)
 11114	037537	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11115	037540	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11116		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11117	037541	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11118	037542	003 03 0 00 034741 		ER3	AC,34741		;HIGH PRODUCT FAILED
 11119		774000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11120	037543	312 04 0 00 044152 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11121	037544	004 04 0 00 034742 		ER4	AC+1,34742		;LOW PRODUCT FAILED
 11122		777777	777777			AEE=-1				;INITIAL C(E)
 11123	037545	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11124	037546	005 01 0 00 034743 		ER5	E,34743			;C(E) WAS CLOBBERED
 11125	037547	321 05 0 00 037535 		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	037550	200 03 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11146			000000			AA2=0				;INITIAL C(AC+1)
 11147	037551	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11148		777777	777777			AEE=-1				;INITIAL C(E)
 11149	037552	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11150	037553	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11151		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11152	037554	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11153	037555	003 03 0 00 034751 		ER3	AC,34751		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0225

 11154		770000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11155	037556	312 04 0 00 044153 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11156	037557	004 04 0 00 034752 		ER4	AC+1,34752		;LOW PRODUCT FAILED
 11157		777777	777777			AEE=-1				;INITIAL C(E)
 11158	037560	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11159	037561	005 01 0 00 034753 		ER5	E,34753			;C(E) WAS CLOBBERED
 11160	037562	321 05 0 00 037550 		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	037563	200 03 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11181			000000			AA2=0				;INITIAL C(AC+1)
 11182	037564	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11183		777777	777777			AEE=-1				;INITIAL C(E)
 11184	037565	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11185	037566	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11186		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11187	037567	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11188	037570	003 03 0 00 034761 		ER3	AC,34761		;HIGH PRODUCT FAILED
 11189		760000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11190	037571	312 04 0 00 044154 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11191	037572	004 04 0 00 034762 		ER4	AC+1,34762		;LOW PRODUCT FAILED
 11192		777777	777777			AEE=-1				;INITIAL C(E)
 11193	037573	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11194	037574	005 01 0 00 034763 		ER5	E,34763			;C(E) WAS CLOBBERED
 11195	037575	321 05 0 00 037563 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-21
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0226

 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	037576	200 03 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11216			000000			AA2=0				;INITIAL C(AC+1)
 11217	037577	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11218		777777	777777			AEE=-1				;INITIAL C(E)
 11219	037600	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11220	037601	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11221		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11222	037602	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11223	037603	003 03 0 00 034771 		ER3	AC,34771		;HIGH PRODUCT FAILED
 11224		740000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11225	037604	312 04 0 00 044155 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11226	037605	004 04 0 00 034772 		ER4	AC+1,34772		;LOW PRODUCT FAILED
 11227		777777	777777			AEE=-1				;INITIAL C(E)
 11228	037606	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11229	037607	005 01 0 00 034773 		ER5	E,34773			;C(E) WAS CLOBBERED
 11230	037610	321 05 0 00 037576 		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	037611	200 03 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11251			000000			AA2=0				;INITIAL C(AC+1)
 11252	037612	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11253		777777	777777			AEE=-1				;INITIAL C(E)
 11254	037613	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11255	037614	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11256		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11257	037615	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11258	037616	003 03 0 00 035001 		ER3	AC,35001		;HIGH PRODUCT FAILED
 11259		700000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11260	037617	312 04 0 00 044156 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11261	037620	004 04 0 00 035002 		ER4	AC+1,35002		;LOW PRODUCT FAILED
 11262		777777	777777			AEE=-1				;INITIAL C(E)
 11263	037621	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-22
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0227

 11264	037622	005 01 0 00 035003 		ER5	E,35003			;C(E) WAS CLOBBERED
 11265	037623	321 05 0 00 037611 		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	037624	200 03 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11286			000000			AA2=0				;INITIAL C(AC+1)
 11287	037625	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11288		777777	777777			AEE=-1				;INITIAL C(E)
 11289	037626	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11290	037627	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11291		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11292	037630	312 03 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11293	037631	003 03 0 00 035011 		ER3	AC,35011		;HIGH PRODUCT FAILED
 11294		600000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11295	037632	312 04 0 00 044157 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11296	037633	004 04 0 00 035012 		ER4	AC+1,35012		;LOW PRODUCT FAILED
 11297		777777	777777			AEE=-1				;INITIAL C(E)
 11298	037634	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11299	037635	005 01 0 00 035013 		ER5	E,35013			;C(E) WAS CLOBBERED
 11300	037636	321 05 0 00 037624 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 13-23
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0228

 11319		400000	000000		F35020:	AA1=XX				;INITIAL C(AC)
 11320	037637	200 03 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 11321			000000			AA2=0				;INITIAL C(AC+1)
 11322	037640	200 04 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11323		777777	777777			AEE=-1				;INITIAL C(E)
 11324	037641	200 01 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 11325	037642	224 03 0 00 000001 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11326			000001			AR1=V1				;EXPECTED RESULT IN AC
 11327	037643	312 03 0 00 043764 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11328	037644	003 03 0 00 035021 		ER3	AC,35021		;HIGH PRODUCT FAILED
 11329			000000			AR2=V2				;EXPECTED RESULT IN AC+1
 11330	037645	312 04 0 00 043762 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 11331	037646	004 04 0 00 035022 		ER4	AC+1,35022		;LOW PRODUCT FAILED
 11332		777777	777777			AEE=-1				;INITIAL C(E)
 11333	037647	312 01 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 11334	037650	005 01 0 00 035023 		ER5	E,35023			;C(E) WAS CLOBBERED
 11335	037651	321 05 0 00 037637 		JUMPL	AC+2,F35020		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0229

 11336			000002			AC=2
 11337			000000			E=<AC-2>&17
 11338						SAVEAC	(1,1)^
 11339	037652	201 04 0 00 037652 		MOVEI	AC+2,.		;SAVE TEST PC
 11340	037653	202 04 0 00 030051 		MOVEM	AC+2,TESTPC
 11341	037654	201 04 0 00 000004 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 11342	037655	202 04 0 00 044437 		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	037656	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11370			000000			AA2=0				;INITIAL C(AC+1)
 11371	037657	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11372		777777	777776			AEE=XX				;INITIAL C(E)
 11373	037660	200 00 0 00 044030 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11374	037661	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11375		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11376	037662	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11377	037663	003 02 0 00 035031 		ER3	AC,35031		;HIGH PRODUCT FAILED
 11378		777777	777776			AR2=XX				;EXPECTED RESULT IN AC+1
 11379	037664	312 03 0 00 044030 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11380	037665	004 03 0 00 035032 		ER4	AC+1,35032		;LOW PRODUCT FAILED
 11381		777777	777776			AEE=XX				;INITIAL C(E)
 11382	037666	312 00 0 00 044030 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11383	037667	005 00 0 00 035033 		ER5	E,35033			;C(E) WAS CLOBBERED
 11384	037670	321 04 0 00 037656 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0230

 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	037671	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11401			000000			AA2=0				;INITIAL C(AC+1)
 11402	037672	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11403		777777	777775			AEE=XX				;INITIAL C(E)
 11404	037673	200 00 0 00 044031 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11405	037674	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11406		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11407	037675	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11408	037676	003 02 0 00 035041 		ER3	AC,35041		;HIGH PRODUCT FAILED
 11409		777777	777775			AR2=XX				;EXPECTED RESULT IN AC+1
 11410	037677	312 03 0 00 044031 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11411	037700	004 03 0 00 035042 		ER4	AC+1,35042		;LOW PRODUCT FAILED
 11412		777777	777775			AEE=XX				;INITIAL C(E)
 11413	037701	312 00 0 00 044031 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11414	037702	005 00 0 00 035043 		ER5	E,35043			;C(E) WAS CLOBBERED
 11415	037703	321 04 0 00 037671 		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	037704	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11432			000000			AA2=0				;INITIAL C(AC+1)
 11433	037705	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11434		777777	777773			AEE=XX				;INITIAL C(E)
 11435	037706	200 00 0 00 044032 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11436	037707	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11437		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11438	037710	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11439	037711	003 02 0 00 035051 		ER3	AC,35051		;HIGH PRODUCT FAILED
 11440		777777	777773			AR2=XX				;EXPECTED RESULT IN AC+1
 11441	037712	312 03 0 00 044032 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11442	037713	004 03 0 00 035052 		ER4	AC+1,35052		;LOW PRODUCT FAILED
 11443		777777	777773			AEE=XX				;INITIAL C(E)
 11444	037714	312 00 0 00 044032 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11445	037715	005 00 0 00 035053 		ER5	E,35053			;C(E) WAS CLOBBERED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0231

 11446	037716	321 04 0 00 037704 		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	037717	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11463			000000			AA2=0				;INITIAL C(AC+1)
 11464	037720	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11465		777777	777767			AEE=XX				;INITIAL C(E)
 11466	037721	200 00 0 00 044033 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11467	037722	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11468		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11469	037723	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11470	037724	003 02 0 00 035061 		ER3	AC,35061		;HIGH PRODUCT FAILED
 11471		777777	777767			AR2=XX				;EXPECTED RESULT IN AC+1
 11472	037725	312 03 0 00 044033 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11473	037726	004 03 0 00 035062 		ER4	AC+1,35062		;LOW PRODUCT FAILED
 11474		777777	777767			AEE=XX				;INITIAL C(E)
 11475	037727	312 00 0 00 044033 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11476	037730	005 00 0 00 035063 		ER5	E,35063			;C(E) WAS CLOBBERED
 11477	037731	321 04 0 00 037717 		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	037732	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11494			000000			AA2=0				;INITIAL C(AC+1)
 11495	037733	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11496		777777	777757			AEE=XX				;INITIAL C(E)
 11497	037734	200 00 0 00 044034 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11498	037735	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11499		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11500	037736	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0232

 11501	037737	003 02 0 00 035071 		ER3	AC,35071		;HIGH PRODUCT FAILED
 11502		777777	777757			AR2=XX				;EXPECTED RESULT IN AC+1
 11503	037740	312 03 0 00 044034 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11504	037741	004 03 0 00 035072 		ER4	AC+1,35072		;LOW PRODUCT FAILED
 11505		777777	777757			AEE=XX				;INITIAL C(E)
 11506	037742	312 00 0 00 044034 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11507	037743	005 00 0 00 035073 		ER5	E,35073			;C(E) WAS CLOBBERED
 11508	037744	321 04 0 00 037732 		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	037745	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11525			000000			AA2=0				;INITIAL C(AC+1)
 11526	037746	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11527		777777	777737			AEE=XX				;INITIAL C(E)
 11528	037747	200 00 0 00 044035 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11529	037750	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11530		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11531	037751	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11532	037752	003 02 0 00 035101 		ER3	AC,35101		;HIGH PRODUCT FAILED
 11533		777777	777737			AR2=XX				;EXPECTED RESULT IN AC+1
 11534	037753	312 03 0 00 044035 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11535	037754	004 03 0 00 035102 		ER4	AC+1,35102		;LOW PRODUCT FAILED
 11536		777777	777737			AEE=XX				;INITIAL C(E)
 11537	037755	312 00 0 00 044035 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11538	037756	005 00 0 00 035103 		ER5	E,35103			;C(E) WAS CLOBBERED
 11539	037757	321 04 0 00 037745 		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	037760	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0233

 11556			000000			AA2=0				;INITIAL C(AC+1)
 11557	037761	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11558		777777	777677			AEE=XX				;INITIAL C(E)
 11559	037762	200 00 0 00 044036 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11560	037763	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11561		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11562	037764	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11563	037765	003 02 0 00 035111 		ER3	AC,35111		;HIGH PRODUCT FAILED
 11564		777777	777677			AR2=XX				;EXPECTED RESULT IN AC+1
 11565	037766	312 03 0 00 044036 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11566	037767	004 03 0 00 035112 		ER4	AC+1,35112		;LOW PRODUCT FAILED
 11567		777777	777677			AEE=XX				;INITIAL C(E)
 11568	037770	312 00 0 00 044036 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11569	037771	005 00 0 00 035113 		ER5	E,35113			;C(E) WAS CLOBBERED
 11570	037772	321 04 0 00 037760 		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	037773	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11587			000000			AA2=0				;INITIAL C(AC+1)
 11588	037774	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11589		777777	777577			AEE=XX				;INITIAL C(E)
 11590	037775	200 00 0 00 044037 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11591	037776	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11592		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11593	037777	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11594	040000	003 02 0 00 035121 		ER3	AC,35121		;HIGH PRODUCT FAILED
 11595		777777	777577			AR2=XX				;EXPECTED RESULT IN AC+1
 11596	040001	312 03 0 00 044037 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11597	040002	004 03 0 00 035122 		ER4	AC+1,35122		;LOW PRODUCT FAILED
 11598		777777	777577			AEE=XX				;INITIAL C(E)
 11599	040003	312 00 0 00 044037 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11600	040004	005 00 0 00 035123 		ER5	E,35123			;C(E) WAS CLOBBERED
 11601	040005	321 04 0 00 037773 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0234

 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	040006	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11618			000000			AA2=0				;INITIAL C(AC+1)
 11619	040007	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11620		777777	777377			AEE=XX				;INITIAL C(E)
 11621	040010	200 00 0 00 044040 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11622	040011	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11623		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11624	040012	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11625	040013	003 02 0 00 035131 		ER3	AC,35131		;HIGH PRODUCT FAILED
 11626		777777	777377			AR2=XX				;EXPECTED RESULT IN AC+1
 11627	040014	312 03 0 00 044040 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11628	040015	004 03 0 00 035132 		ER4	AC+1,35132		;LOW PRODUCT FAILED
 11629		777777	777377			AEE=XX				;INITIAL C(E)
 11630	040016	312 00 0 00 044040 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11631	040017	005 00 0 00 035133 		ER5	E,35133			;C(E) WAS CLOBBERED
 11632	040020	321 04 0 00 040006 		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	040021	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11649			000000			AA2=0				;INITIAL C(AC+1)
 11650	040022	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11651		777777	776777			AEE=XX				;INITIAL C(E)
 11652	040023	200 00 0 00 044041 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11653	040024	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11654		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11655	040025	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11656	040026	003 02 0 00 035141 		ER3	AC,35141		;HIGH PRODUCT FAILED
 11657		777777	776777			AR2=XX				;EXPECTED RESULT IN AC+1
 11658	040027	312 03 0 00 044041 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11659	040030	004 03 0 00 035142 		ER4	AC+1,35142		;LOW PRODUCT FAILED
 11660		777777	776777			AEE=XX				;INITIAL C(E)
 11661	040031	312 00 0 00 044041 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11662	040032	005 00 0 00 035143 		ER5	E,35143			;C(E) WAS CLOBBERED
 11663	040033	321 04 0 00 040021 		JUMPL	AC+2,F35140		;LOOP ON ERROR SWITCH^
 11664
 11665			003515			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0235

 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	040034	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11680			000000			AA2=0				;INITIAL C(AC+1)
 11681	040035	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11682		777777	775777			AEE=XX				;INITIAL C(E)
 11683	040036	200 00 0 00 044042 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11684	040037	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11685		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11686	040040	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11687	040041	003 02 0 00 035151 		ER3	AC,35151		;HIGH PRODUCT FAILED
 11688		777777	775777			AR2=XX				;EXPECTED RESULT IN AC+1
 11689	040042	312 03 0 00 044042 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11690	040043	004 03 0 00 035152 		ER4	AC+1,35152		;LOW PRODUCT FAILED
 11691		777777	775777			AEE=XX				;INITIAL C(E)
 11692	040044	312 00 0 00 044042 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11693	040045	005 00 0 00 035153 		ER5	E,35153			;C(E) WAS CLOBBERED
 11694	040046	321 04 0 00 040034 		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	040047	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11711			000000			AA2=0				;INITIAL C(AC+1)
 11712	040050	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11713		777777	773777			AEE=XX				;INITIAL C(E)
 11714	040051	200 00 0 00 044043 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11715	040052	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11716		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11717	040053	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11718	040054	003 02 0 00 035161 		ER3	AC,35161		;HIGH PRODUCT FAILED
 11719		777777	773777			AR2=XX				;EXPECTED RESULT IN AC+1
 11720	040055	312 03 0 00 044043 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0236

 11721	040056	004 03 0 00 035162 		ER4	AC+1,35162		;LOW PRODUCT FAILED
 11722		777777	773777			AEE=XX				;INITIAL C(E)
 11723	040057	312 00 0 00 044043 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11724	040060	005 00 0 00 035163 		ER5	E,35163			;C(E) WAS CLOBBERED
 11725	040061	321 04 0 00 040047 		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	040062	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11742			000000			AA2=0				;INITIAL C(AC+1)
 11743	040063	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11744		777777	767777			AEE=XX				;INITIAL C(E)
 11745	040064	200 00 0 00 044044 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11746	040065	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11747		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11748	040066	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11749	040067	003 02 0 00 035171 		ER3	AC,35171		;HIGH PRODUCT FAILED
 11750		777777	767777			AR2=XX				;EXPECTED RESULT IN AC+1
 11751	040070	312 03 0 00 044044 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11752	040071	004 03 0 00 035172 		ER4	AC+1,35172		;LOW PRODUCT FAILED
 11753		777777	767777			AEE=XX				;INITIAL C(E)
 11754	040072	312 00 0 00 044044 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11755	040073	005 00 0 00 035173 		ER5	E,35173			;C(E) WAS CLOBBERED
 11756	040074	321 04 0 00 040062 		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	040075	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11773			000000			AA2=0				;INITIAL C(AC+1)
 11774	040076	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11775		777777	757777			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0237

 11776	040077	200 00 0 00 044045 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11777	040100	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11778		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11779	040101	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11780	040102	003 02 0 00 035201 		ER3	AC,35201		;HIGH PRODUCT FAILED
 11781		777777	757777			AR2=XX				;EXPECTED RESULT IN AC+1
 11782	040103	312 03 0 00 044045 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11783	040104	004 03 0 00 035202 		ER4	AC+1,35202		;LOW PRODUCT FAILED
 11784		777777	757777			AEE=XX				;INITIAL C(E)
 11785	040105	312 00 0 00 044045 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11786	040106	005 00 0 00 035203 		ER5	E,35203			;C(E) WAS CLOBBERED
 11787	040107	321 04 0 00 040075 		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	040110	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11804			000000			AA2=0				;INITIAL C(AC+1)
 11805	040111	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11806		777777	737777			AEE=XX				;INITIAL C(E)
 11807	040112	200 00 0 00 044046 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11808	040113	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11809		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11810	040114	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11811	040115	003 02 0 00 035211 		ER3	AC,35211		;HIGH PRODUCT FAILED
 11812		777777	737777			AR2=XX				;EXPECTED RESULT IN AC+1
 11813	040116	312 03 0 00 044046 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11814	040117	004 03 0 00 035212 		ER4	AC+1,35212		;LOW PRODUCT FAILED
 11815		777777	737777			AEE=XX				;INITIAL C(E)
 11816	040120	312 00 0 00 044046 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11817	040121	005 00 0 00 035213 		ER5	E,35213			;C(E) WAS CLOBBERED
 11818	040122	321 04 0 00 040110 		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.
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0238

 11831					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 11832
 11833			000001		F35220:	AA1=1				;INITIAL C(AC)
 11834	040123	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11835			000000			AA2=0				;INITIAL C(AC+1)
 11836	040124	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11837		777777	677777			AEE=XX				;INITIAL C(E)
 11838	040125	200 00 0 00 044047 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11839	040126	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11840		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11841	040127	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11842	040130	003 02 0 00 035221 		ER3	AC,35221		;HIGH PRODUCT FAILED
 11843		777777	677777			AR2=XX				;EXPECTED RESULT IN AC+1
 11844	040131	312 03 0 00 044047 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11845	040132	004 03 0 00 035222 		ER4	AC+1,35222		;LOW PRODUCT FAILED
 11846		777777	677777			AEE=XX				;INITIAL C(E)
 11847	040133	312 00 0 00 044047 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11848	040134	005 00 0 00 035223 		ER5	E,35223			;C(E) WAS CLOBBERED
 11849	040135	321 04 0 00 040123 		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	040136	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11866			000000			AA2=0				;INITIAL C(AC+1)
 11867	040137	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11868		777777	577777			AEE=XX				;INITIAL C(E)
 11869	040140	200 00 0 00 044050 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11870	040141	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11871		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11872	040142	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11873	040143	003 02 0 00 035231 		ER3	AC,35231		;HIGH PRODUCT FAILED
 11874		777777	577777			AR2=XX				;EXPECTED RESULT IN AC+1
 11875	040144	312 03 0 00 044050 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11876	040145	004 03 0 00 035232 		ER4	AC+1,35232		;LOW PRODUCT FAILED
 11877		777777	577777			AEE=XX				;INITIAL C(E)
 11878	040146	312 00 0 00 044050 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11879	040147	005 00 0 00 035233 		ER5	E,35233			;C(E) WAS CLOBBERED
 11880	040150	321 04 0 00 040136 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0239

 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	040151	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11897			000000			AA2=0				;INITIAL C(AC+1)
 11898	040152	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11899		777777	377777			AEE=XX				;INITIAL C(E)
 11900	040153	200 00 0 00 044051 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11901	040154	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11902		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11903	040155	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11904	040156	003 02 0 00 035241 		ER3	AC,35241		;HIGH PRODUCT FAILED
 11905		777777	377777			AR2=XX				;EXPECTED RESULT IN AC+1
 11906	040157	312 03 0 00 044051 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11907	040160	004 03 0 00 035242 		ER4	AC+1,35242		;LOW PRODUCT FAILED
 11908		777777	377777			AEE=XX				;INITIAL C(E)
 11909	040161	312 00 0 00 044051 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11910	040162	005 00 0 00 035243 		ER5	E,35243			;C(E) WAS CLOBBERED
 11911	040163	321 04 0 00 040151 		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	040164	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11928			000000			AA2=0				;INITIAL C(AC+1)
 11929	040165	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11930		777776	777777			AEE=XX				;INITIAL C(E)
 11931	040166	200 00 0 00 044052 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11932	040167	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11933		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11934	040170	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11935	040171	003 02 0 00 035251 		ER3	AC,35251		;HIGH PRODUCT FAILED
 11936		777776	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 11937	040172	312 03 0 00 044052 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11938	040173	004 03 0 00 035252 		ER4	AC+1,35252		;LOW PRODUCT FAILED
 11939		777776	777777			AEE=XX				;INITIAL C(E)
 11940	040174	312 00 0 00 044052 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0240

 11941	040175	005 00 0 00 035253 		ER5	E,35253			;C(E) WAS CLOBBERED
 11942	040176	321 04 0 00 040164 		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	040177	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11959			000000			AA2=0				;INITIAL C(AC+1)
 11960	040200	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11961		777775	777777			AEE=XX				;INITIAL C(E)
 11962	040201	200 00 0 00 044053 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11963	040202	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11964		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 11965	040203	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11966	040204	003 02 0 00 035261 		ER3	AC,35261		;HIGH PRODUCT FAILED
 11967		777775	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 11968	040205	312 03 0 00 044053 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 11969	040206	004 03 0 00 035262 		ER4	AC+1,35262		;LOW PRODUCT FAILED
 11970		777775	777777			AEE=XX				;INITIAL C(E)
 11971	040207	312 00 0 00 044053 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 11972	040210	005 00 0 00 035263 		ER5	E,35263			;C(E) WAS CLOBBERED
 11973	040211	321 04 0 00 040177 		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	040212	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 11990			000000			AA2=0				;INITIAL C(AC+1)
 11991	040213	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 11992		777773	777777			AEE=XX				;INITIAL C(E)
 11993	040214	200 00 0 00 044054 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 11994	040215	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 11995		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0241

 11996	040216	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 11997	040217	003 02 0 00 035271 		ER3	AC,35271		;HIGH PRODUCT FAILED
 11998		777773	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 11999	040220	312 03 0 00 044054 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12000	040221	004 03 0 00 035272 		ER4	AC+1,35272		;LOW PRODUCT FAILED
 12001		777773	777777			AEE=XX				;INITIAL C(E)
 12002	040222	312 00 0 00 044054 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12003	040223	005 00 0 00 035273 		ER5	E,35273			;C(E) WAS CLOBBERED
 12004	040224	321 04 0 00 040212 		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	040225	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12021			000000			AA2=0				;INITIAL C(AC+1)
 12022	040226	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12023		777767	777777			AEE=XX				;INITIAL C(E)
 12024	040227	200 00 0 00 044055 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12025	040230	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12026		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12027	040231	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12028	040232	003 02 0 00 035301 		ER3	AC,35301		;HIGH PRODUCT FAILED
 12029		777767	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12030	040233	312 03 0 00 044055 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12031	040234	004 03 0 00 035302 		ER4	AC+1,35302		;LOW PRODUCT FAILED
 12032		777767	777777			AEE=XX				;INITIAL C(E)
 12033	040235	312 00 0 00 044055 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12034	040236	005 00 0 00 035303 		ER5	E,35303			;C(E) WAS CLOBBERED
 12035	040237	321 04 0 00 040225 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0242

 12051	040240	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12052			000000			AA2=0				;INITIAL C(AC+1)
 12053	040241	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12054		777757	777777			AEE=XX				;INITIAL C(E)
 12055	040242	200 00 0 00 044056 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12056	040243	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12057		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12058	040244	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12059	040245	003 02 0 00 035311 		ER3	AC,35311		;HIGH PRODUCT FAILED
 12060		777757	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12061	040246	312 03 0 00 044056 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12062	040247	004 03 0 00 035312 		ER4	AC+1,35312		;LOW PRODUCT FAILED
 12063		777757	777777			AEE=XX				;INITIAL C(E)
 12064	040250	312 00 0 00 044056 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12065	040251	005 00 0 00 035313 		ER5	E,35313			;C(E) WAS CLOBBERED
 12066	040252	321 04 0 00 040240 		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	040253	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12083			000000			AA2=0				;INITIAL C(AC+1)
 12084	040254	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12085		777737	777777			AEE=XX				;INITIAL C(E)
 12086	040255	200 00 0 00 044057 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12087	040256	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12088		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12089	040257	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12090	040260	003 02 0 00 035321 		ER3	AC,35321		;HIGH PRODUCT FAILED
 12091		777737	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12092	040261	312 03 0 00 044057 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12093	040262	004 03 0 00 035322 		ER4	AC+1,35322		;LOW PRODUCT FAILED
 12094		777737	777777			AEE=XX				;INITIAL C(E)
 12095	040263	312 00 0 00 044057 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12096	040264	005 00 0 00 035323 		ER5	E,35323			;C(E) WAS CLOBBERED
 12097	040265	321 04 0 00 040253 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0243

 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	040266	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12114			000000			AA2=0				;INITIAL C(AC+1)
 12115	040267	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12116		777677	777777			AEE=XX				;INITIAL C(E)
 12117	040270	200 00 0 00 044060 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12118	040271	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12119		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12120	040272	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12121	040273	003 02 0 00 035331 		ER3	AC,35331		;HIGH PRODUCT FAILED
 12122		777677	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12123	040274	312 03 0 00 044060 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12124	040275	004 03 0 00 035332 		ER4	AC+1,35332		;LOW PRODUCT FAILED
 12125		777677	777777			AEE=XX				;INITIAL C(E)
 12126	040276	312 00 0 00 044060 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12127	040277	005 00 0 00 035333 		ER5	E,35333			;C(E) WAS CLOBBERED
 12128	040300	321 04 0 00 040266 		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	040301	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12145			000000			AA2=0				;INITIAL C(AC+1)
 12146	040302	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12147		777577	777777			AEE=XX				;INITIAL C(E)
 12148	040303	200 00 0 00 044061 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12149	040304	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12150		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12151	040305	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12152	040306	003 02 0 00 035341 		ER3	AC,35341		;HIGH PRODUCT FAILED
 12153		777577	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12154	040307	312 03 0 00 044061 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12155	040310	004 03 0 00 035342 		ER4	AC+1,35342		;LOW PRODUCT FAILED
 12156		777577	777777			AEE=XX				;INITIAL C(E)
 12157	040311	312 00 0 00 044061 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12158	040312	005 00 0 00 035343 		ER5	E,35343			;C(E) WAS CLOBBERED
 12159	040313	321 04 0 00 040301 		JUMPL	AC+2,F35340		;LOOP ON ERROR SWITCH^
 12160
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0244

 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	040314	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12176			000000			AA2=0				;INITIAL C(AC+1)
 12177	040315	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12178		777377	777777			AEE=XX				;INITIAL C(E)
 12179	040316	200 00 0 00 044062 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12180	040317	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12181		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12182	040320	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12183	040321	003 02 0 00 035351 		ER3	AC,35351		;HIGH PRODUCT FAILED
 12184		777377	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12185	040322	312 03 0 00 044062 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12186	040323	004 03 0 00 035352 		ER4	AC+1,35352		;LOW PRODUCT FAILED
 12187		777377	777777			AEE=XX				;INITIAL C(E)
 12188	040324	312 00 0 00 044062 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12189	040325	005 00 0 00 035353 		ER5	E,35353			;C(E) WAS CLOBBERED
 12190	040326	321 04 0 00 040314 		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	040327	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12207			000000			AA2=0				;INITIAL C(AC+1)
 12208	040330	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12209		776777	777777			AEE=XX				;INITIAL C(E)
 12210	040331	200 00 0 00 044063 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12211	040332	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12212		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12213	040333	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12214	040334	003 02 0 00 035361 		ER3	AC,35361		;HIGH PRODUCT FAILED
 12215		776777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0245

 12216	040335	312 03 0 00 044063 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12217	040336	004 03 0 00 035362 		ER4	AC+1,35362		;LOW PRODUCT FAILED
 12218		776777	777777			AEE=XX				;INITIAL C(E)
 12219	040337	312 00 0 00 044063 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12220	040340	005 00 0 00 035363 		ER5	E,35363			;C(E) WAS CLOBBERED
 12221	040341	321 04 0 00 040327 		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	040342	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12238			000000			AA2=0				;INITIAL C(AC+1)
 12239	040343	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12240		775777	777777			AEE=XX				;INITIAL C(E)
 12241	040344	200 00 0 00 044064 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12242	040345	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12243		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12244	040346	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12245	040347	003 02 0 00 035371 		ER3	AC,35371		;HIGH PRODUCT FAILED
 12246		775777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12247	040350	312 03 0 00 044064 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12248	040351	004 03 0 00 035372 		ER4	AC+1,35372		;LOW PRODUCT FAILED
 12249		775777	777777			AEE=XX				;INITIAL C(E)
 12250	040352	312 00 0 00 044064 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12251	040353	005 00 0 00 035373 		ER5	E,35373			;C(E) WAS CLOBBERED
 12252	040354	321 04 0 00 040342 		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	040355	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12269			000000			AA2=0				;INITIAL C(AC+1)
 12270	040356	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0246

 12271		773777	777777			AEE=XX				;INITIAL C(E)
 12272	040357	200 00 0 00 044065 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12273	040360	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12274		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12275	040361	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12276	040362	003 02 0 00 035401 		ER3	AC,35401		;HIGH PRODUCT FAILED
 12277		773777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12278	040363	312 03 0 00 044065 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12279	040364	004 03 0 00 035402 		ER4	AC+1,35402		;LOW PRODUCT FAILED
 12280		773777	777777			AEE=XX				;INITIAL C(E)
 12281	040365	312 00 0 00 044065 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12282	040366	005 00 0 00 035403 		ER5	E,35403			;C(E) WAS CLOBBERED
 12283	040367	321 04 0 00 040355 		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	040370	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12300			000000			AA2=0				;INITIAL C(AC+1)
 12301	040371	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12302		767777	777777			AEE=XX				;INITIAL C(E)
 12303	040372	200 00 0 00 044066 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12304	040373	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12305		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12306	040374	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12307	040375	003 02 0 00 035411 		ER3	AC,35411		;HIGH PRODUCT FAILED
 12308		767777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12309	040376	312 03 0 00 044066 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12310	040377	004 03 0 00 035412 		ER4	AC+1,35412		;LOW PRODUCT FAILED
 12311		767777	777777			AEE=XX				;INITIAL C(E)
 12312	040400	312 00 0 00 044066 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12313	040401	005 00 0 00 035413 		ER5	E,35413			;C(E) WAS CLOBBERED
 12314	040402	321 04 0 00 040370 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0247

 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	040403	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12331			000000			AA2=0				;INITIAL C(AC+1)
 12332	040404	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12333		757777	777777			AEE=XX				;INITIAL C(E)
 12334	040405	200 00 0 00 044067 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12335	040406	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12336		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12337	040407	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12338	040410	003 02 0 00 035421 		ER3	AC,35421		;HIGH PRODUCT FAILED
 12339		757777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12340	040411	312 03 0 00 044067 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12341	040412	004 03 0 00 035422 		ER4	AC+1,35422		;LOW PRODUCT FAILED
 12342		757777	777777			AEE=XX				;INITIAL C(E)
 12343	040413	312 00 0 00 044067 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12344	040414	005 00 0 00 035423 		ER5	E,35423			;C(E) WAS CLOBBERED
 12345	040415	321 04 0 00 040403 		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	040416	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12362			000000			AA2=0				;INITIAL C(AC+1)
 12363	040417	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12364		737777	777777			AEE=XX				;INITIAL C(E)
 12365	040420	200 00 0 00 044070 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12366	040421	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12367		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12368	040422	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12369	040423	003 02 0 00 035431 		ER3	AC,35431		;HIGH PRODUCT FAILED
 12370		737777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12371	040424	312 03 0 00 044070 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12372	040425	004 03 0 00 035432 		ER4	AC+1,35432		;LOW PRODUCT FAILED
 12373		737777	777777			AEE=XX				;INITIAL C(E)
 12374	040426	312 00 0 00 044070 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12375	040427	005 00 0 00 035433 		ER5	E,35433			;C(E) WAS CLOBBERED
 12376	040430	321 04 0 00 040416 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0248

 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	040431	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12393			000000			AA2=0				;INITIAL C(AC+1)
 12394	040432	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12395		677777	777777			AEE=XX				;INITIAL C(E)
 12396	040433	200 00 0 00 044071 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12397	040434	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12398		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12399	040435	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12400	040436	003 02 0 00 035441 		ER3	AC,35441		;HIGH PRODUCT FAILED
 12401		677777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12402	040437	312 03 0 00 044071 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12403	040440	004 03 0 00 035442 		ER4	AC+1,35442		;LOW PRODUCT FAILED
 12404		677777	777777			AEE=XX				;INITIAL C(E)
 12405	040441	312 00 0 00 044071 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12406	040442	005 00 0 00 035443 		ER5	E,35443			;C(E) WAS CLOBBERED
 12407	040443	321 04 0 00 040431 		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	040444	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12424			000000			AA2=0				;INITIAL C(AC+1)
 12425	040445	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12426		577777	777777			AEE=XX				;INITIAL C(E)
 12427	040446	200 00 0 00 044072 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12428	040447	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12429		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12430	040450	312 02 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12431	040451	003 02 0 00 035451 		ER3	AC,35451		;HIGH PRODUCT FAILED
 12432		577777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12433	040452	312 03 0 00 044072 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12434	040453	004 03 0 00 035452 		ER4	AC+1,35452		;LOW PRODUCT FAILED
 12435		577777	777777			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 14-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0249

 12436	040454	312 00 0 00 044072 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12437	040455	005 00 0 00 035453 		ER5	E,35453			;C(E) WAS CLOBBERED
 12438	040456	321 04 0 00 040444 		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	040457	200 02 0 00 043764 		MOVE	AC,[1]			;PRELOAD AC (MULTIPLIER)
 12455			000000			AA2=0				;INITIAL C(AC+1)
 12456	040460	200 03 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12457		377777	777777			AEE=XX				;INITIAL C(E)
 12458	040461	200 00 0 00 044073 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 12459	040462	224 02 0 00 000000 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12460			000000			AR1=V1				;EXPECTED RESULT IN AC
 12461	040463	312 02 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12462	040464	003 02 0 00 035461 		ER3	AC,35461		;HIGH PRODUCT FAILED
 12463		377777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 12464	040465	312 03 0 00 044073 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12465	040466	004 03 0 00 035462 		ER4	AC+1,35462		;LOW PRODUCT FAILED
 12466		377777	777777			AEE=XX				;INITIAL C(E)
 12467	040467	312 00 0 00 044073 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 12468	040470	005 00 0 00 035463 		ER5	E,35463			;C(E) WAS CLOBBERED
 12469	040471	321 04 0 00 040457 		JUMPL	AC+2,F35460		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0250

 12470			000010			AC=10
 12471			000006			E=<AC-2>&17
 12472						SAVEAC	(1,1)^
 12473	040472	201 12 0 00 040472 		MOVEI	AC+2,.		;SAVE TEST PC
 12474	040473	202 12 0 00 030051 		MOVEM	AC+2,TESTPC
 12475	040474	201 12 0 00 000012 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 12476	040475	202 12 0 00 044437 		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	040476	200 10 0 00 044030 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12504			000000			AA2=0				;INITIAL C(AC+1)
 12505	040477	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12506			000001			AEE=1				;INITIAL C(E)
 12507	040500	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12508	040501	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12509		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12510	040502	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12511	040503	003 10 0 00 035471 		ER3	AC,35471		;HIGH PRODUCT FAILED
 12512		777777	777776			AR2=XX				;EXPECTED RESULT IN AC+1
 12513	040504	312 11 0 00 044030 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12514	040505	004 11 0 00 035472 		ER4	AC+1,35472		;LOW PRODUCT FAILED
 12515			000001			AEE=1				;INITIAL C(E)
 12516	040506	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12517	040507	005 06 0 00 035473 		ER5	E,35473			;C(E) WAS CLOBBERED
 12518	040510	321 12 0 00 040476 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0251

 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	040511	200 10 0 00 044031 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12535			000000			AA2=0				;INITIAL C(AC+1)
 12536	040512	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12537			000001			AEE=1				;INITIAL C(E)
 12538	040513	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12539	040514	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12540		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12541	040515	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12542	040516	003 10 0 00 035501 		ER3	AC,35501		;HIGH PRODUCT FAILED
 12543		777777	777775			AR2=XX				;EXPECTED RESULT IN AC+1
 12544	040517	312 11 0 00 044031 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12545	040520	004 11 0 00 035502 		ER4	AC+1,35502		;LOW PRODUCT FAILED
 12546			000001			AEE=1				;INITIAL C(E)
 12547	040521	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12548	040522	005 06 0 00 035503 		ER5	E,35503			;C(E) WAS CLOBBERED
 12549	040523	321 12 0 00 040511 		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	040524	200 10 0 00 044032 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12566			000000			AA2=0				;INITIAL C(AC+1)
 12567	040525	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12568			000001			AEE=1				;INITIAL C(E)
 12569	040526	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12570	040527	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12571		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12572	040530	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12573	040531	003 10 0 00 035511 		ER3	AC,35511		;HIGH PRODUCT FAILED
 12574		777777	777773			AR2=XX				;EXPECTED RESULT IN AC+1
 12575	040532	312 11 0 00 044032 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12576	040533	004 11 0 00 035512 		ER4	AC+1,35512		;LOW PRODUCT FAILED
 12577			000001			AEE=1				;INITIAL C(E)
 12578	040534	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12579	040535	005 06 0 00 035513 		ER5	E,35513			;C(E) WAS CLOBBERED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0252

 12580	040536	321 12 0 00 040524 		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	040537	200 10 0 00 044033 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12597			000000			AA2=0				;INITIAL C(AC+1)
 12598	040540	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12599			000001			AEE=1				;INITIAL C(E)
 12600	040541	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12601	040542	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12602		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12603	040543	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12604	040544	003 10 0 00 035521 		ER3	AC,35521		;HIGH PRODUCT FAILED
 12605		777777	777767			AR2=XX				;EXPECTED RESULT IN AC+1
 12606	040545	312 11 0 00 044033 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12607	040546	004 11 0 00 035522 		ER4	AC+1,35522		;LOW PRODUCT FAILED
 12608			000001			AEE=1				;INITIAL C(E)
 12609	040547	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12610	040550	005 06 0 00 035523 		ER5	E,35523			;C(E) WAS CLOBBERED
 12611	040551	321 12 0 00 040537 		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	040552	200 10 0 00 044034 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12628			000000			AA2=0				;INITIAL C(AC+1)
 12629	040553	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12630			000001			AEE=1				;INITIAL C(E)
 12631	040554	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12632	040555	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12633		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12634	040556	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0253

 12635	040557	003 10 0 00 035531 		ER3	AC,35531		;HIGH PRODUCT FAILED
 12636		777777	777757			AR2=XX				;EXPECTED RESULT IN AC+1
 12637	040560	312 11 0 00 044034 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12638	040561	004 11 0 00 035532 		ER4	AC+1,35532		;LOW PRODUCT FAILED
 12639			000001			AEE=1				;INITIAL C(E)
 12640	040562	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12641	040563	005 06 0 00 035533 		ER5	E,35533			;C(E) WAS CLOBBERED
 12642	040564	321 12 0 00 040552 		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	040565	200 10 0 00 044035 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12659			000000			AA2=0				;INITIAL C(AC+1)
 12660	040566	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12661			000001			AEE=1				;INITIAL C(E)
 12662	040567	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12663	040570	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12664		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12665	040571	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12666	040572	003 10 0 00 035541 		ER3	AC,35541		;HIGH PRODUCT FAILED
 12667		777777	777737			AR2=XX				;EXPECTED RESULT IN AC+1
 12668	040573	312 11 0 00 044035 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12669	040574	004 11 0 00 035542 		ER4	AC+1,35542		;LOW PRODUCT FAILED
 12670			000001			AEE=1				;INITIAL C(E)
 12671	040575	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12672	040576	005 06 0 00 035543 		ER5	E,35543			;C(E) WAS CLOBBERED
 12673	040577	321 12 0 00 040565 		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	040600	200 10 0 00 044036 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0254

 12690			000000			AA2=0				;INITIAL C(AC+1)
 12691	040601	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12692			000001			AEE=1				;INITIAL C(E)
 12693	040602	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12694	040603	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12695		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12696	040604	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12697	040605	003 10 0 00 035551 		ER3	AC,35551		;HIGH PRODUCT FAILED
 12698		777777	777677			AR2=XX				;EXPECTED RESULT IN AC+1
 12699	040606	312 11 0 00 044036 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12700	040607	004 11 0 00 035552 		ER4	AC+1,35552		;LOW PRODUCT FAILED
 12701			000001			AEE=1				;INITIAL C(E)
 12702	040610	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12703	040611	005 06 0 00 035553 		ER5	E,35553			;C(E) WAS CLOBBERED
 12704	040612	321 12 0 00 040600 		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	040613	200 10 0 00 044037 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12721			000000			AA2=0				;INITIAL C(AC+1)
 12722	040614	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12723			000001			AEE=1				;INITIAL C(E)
 12724	040615	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12725	040616	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12726		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12727	040617	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12728	040620	003 10 0 00 035561 		ER3	AC,35561		;HIGH PRODUCT FAILED
 12729		777777	777577			AR2=XX				;EXPECTED RESULT IN AC+1
 12730	040621	312 11 0 00 044037 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12731	040622	004 11 0 00 035562 		ER4	AC+1,35562		;LOW PRODUCT FAILED
 12732			000001			AEE=1				;INITIAL C(E)
 12733	040623	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12734	040624	005 06 0 00 035563 		ER5	E,35563			;C(E) WAS CLOBBERED
 12735	040625	321 12 0 00 040613 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0255

 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	040626	200 10 0 00 044040 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12752			000000			AA2=0				;INITIAL C(AC+1)
 12753	040627	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12754			000001			AEE=1				;INITIAL C(E)
 12755	040630	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12756	040631	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12757		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12758	040632	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12759	040633	003 10 0 00 035571 		ER3	AC,35571		;HIGH PRODUCT FAILED
 12760		777777	777377			AR2=XX				;EXPECTED RESULT IN AC+1
 12761	040634	312 11 0 00 044040 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12762	040635	004 11 0 00 035572 		ER4	AC+1,35572		;LOW PRODUCT FAILED
 12763			000001			AEE=1				;INITIAL C(E)
 12764	040636	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12765	040637	005 06 0 00 035573 		ER5	E,35573			;C(E) WAS CLOBBERED
 12766	040640	321 12 0 00 040626 		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	040641	200 10 0 00 044041 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12783			000000			AA2=0				;INITIAL C(AC+1)
 12784	040642	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12785			000001			AEE=1				;INITIAL C(E)
 12786	040643	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12787	040644	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12788		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12789	040645	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12790	040646	003 10 0 00 035601 		ER3	AC,35601		;HIGH PRODUCT FAILED
 12791		777777	776777			AR2=XX				;EXPECTED RESULT IN AC+1
 12792	040647	312 11 0 00 044041 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12793	040650	004 11 0 00 035602 		ER4	AC+1,35602		;LOW PRODUCT FAILED
 12794			000001			AEE=1				;INITIAL C(E)
 12795	040651	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12796	040652	005 06 0 00 035603 		ER5	E,35603			;C(E) WAS CLOBBERED
 12797	040653	321 12 0 00 040641 		JUMPL	AC+2,F35600		;LOOP ON ERROR SWITCH^
 12798
 12799			003561			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0256

 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	040654	200 10 0 00 044042 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12814			000000			AA2=0				;INITIAL C(AC+1)
 12815	040655	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12816			000001			AEE=1				;INITIAL C(E)
 12817	040656	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12818	040657	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12819		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12820	040660	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12821	040661	003 10 0 00 035611 		ER3	AC,35611		;HIGH PRODUCT FAILED
 12822		777777	775777			AR2=XX				;EXPECTED RESULT IN AC+1
 12823	040662	312 11 0 00 044042 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12824	040663	004 11 0 00 035612 		ER4	AC+1,35612		;LOW PRODUCT FAILED
 12825			000001			AEE=1				;INITIAL C(E)
 12826	040664	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12827	040665	005 06 0 00 035613 		ER5	E,35613			;C(E) WAS CLOBBERED
 12828	040666	321 12 0 00 040654 		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	040667	200 10 0 00 044043 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12845			000000			AA2=0				;INITIAL C(AC+1)
 12846	040670	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12847			000001			AEE=1				;INITIAL C(E)
 12848	040671	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12849	040672	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12850		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12851	040673	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12852	040674	003 10 0 00 035621 		ER3	AC,35621		;HIGH PRODUCT FAILED
 12853		777777	773777			AR2=XX				;EXPECTED RESULT IN AC+1
 12854	040675	312 11 0 00 044043 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0257

 12855	040676	004 11 0 00 035622 		ER4	AC+1,35622		;LOW PRODUCT FAILED
 12856			000001			AEE=1				;INITIAL C(E)
 12857	040677	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12858	040700	005 06 0 00 035623 		ER5	E,35623			;C(E) WAS CLOBBERED
 12859	040701	321 12 0 00 040667 		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	040702	200 10 0 00 044044 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12876			000000			AA2=0				;INITIAL C(AC+1)
 12877	040703	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12878			000001			AEE=1				;INITIAL C(E)
 12879	040704	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12880	040705	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12881		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12882	040706	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12883	040707	003 10 0 00 035631 		ER3	AC,35631		;HIGH PRODUCT FAILED
 12884		777777	767777			AR2=XX				;EXPECTED RESULT IN AC+1
 12885	040710	312 11 0 00 044044 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12886	040711	004 11 0 00 035632 		ER4	AC+1,35632		;LOW PRODUCT FAILED
 12887			000001			AEE=1				;INITIAL C(E)
 12888	040712	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12889	040713	005 06 0 00 035633 		ER5	E,35633			;C(E) WAS CLOBBERED
 12890	040714	321 12 0 00 040702 		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	040715	200 10 0 00 044045 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12907			000000			AA2=0				;INITIAL C(AC+1)
 12908	040716	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12909			000001			AEE=1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0258

 12910	040717	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12911	040720	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12912		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12913	040721	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12914	040722	003 10 0 00 035641 		ER3	AC,35641		;HIGH PRODUCT FAILED
 12915		777777	757777			AR2=XX				;EXPECTED RESULT IN AC+1
 12916	040723	312 11 0 00 044045 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12917	040724	004 11 0 00 035642 		ER4	AC+1,35642		;LOW PRODUCT FAILED
 12918			000001			AEE=1				;INITIAL C(E)
 12919	040725	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12920	040726	005 06 0 00 035643 		ER5	E,35643			;C(E) WAS CLOBBERED
 12921	040727	321 12 0 00 040715 		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	040730	200 10 0 00 044046 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12938			000000			AA2=0				;INITIAL C(AC+1)
 12939	040731	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12940			000001			AEE=1				;INITIAL C(E)
 12941	040732	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12942	040733	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12943		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12944	040734	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12945	040735	003 10 0 00 035651 		ER3	AC,35651		;HIGH PRODUCT FAILED
 12946		777777	737777			AR2=XX				;EXPECTED RESULT IN AC+1
 12947	040736	312 11 0 00 044046 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12948	040737	004 11 0 00 035652 		ER4	AC+1,35652		;LOW PRODUCT FAILED
 12949			000001			AEE=1				;INITIAL C(E)
 12950	040740	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12951	040741	005 06 0 00 035653 		ER5	E,35653			;C(E) WAS CLOBBERED
 12952	040742	321 12 0 00 040730 		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.
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0259

 12965					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 12966
 12967		777777	677777		F35660:	AA1=XX				;INITIAL C(AC)
 12968	040743	200 10 0 00 044047 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 12969			000000			AA2=0				;INITIAL C(AC+1)
 12970	040744	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 12971			000001			AEE=1				;INITIAL C(E)
 12972	040745	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 12973	040746	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 12974		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 12975	040747	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 12976	040750	003 10 0 00 035661 		ER3	AC,35661		;HIGH PRODUCT FAILED
 12977		777777	677777			AR2=XX				;EXPECTED RESULT IN AC+1
 12978	040751	312 11 0 00 044047 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 12979	040752	004 11 0 00 035662 		ER4	AC+1,35662		;LOW PRODUCT FAILED
 12980			000001			AEE=1				;INITIAL C(E)
 12981	040753	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 12982	040754	005 06 0 00 035663 		ER5	E,35663			;C(E) WAS CLOBBERED
 12983	040755	321 12 0 00 040743 		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	040756	200 10 0 00 044050 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13000			000000			AA2=0				;INITIAL C(AC+1)
 13001	040757	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13002			000001			AEE=1				;INITIAL C(E)
 13003	040760	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13004	040761	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13005		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13006	040762	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13007	040763	003 10 0 00 035671 		ER3	AC,35671		;HIGH PRODUCT FAILED
 13008		777777	577777			AR2=XX				;EXPECTED RESULT IN AC+1
 13009	040764	312 11 0 00 044050 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13010	040765	004 11 0 00 035672 		ER4	AC+1,35672		;LOW PRODUCT FAILED
 13011			000001			AEE=1				;INITIAL C(E)
 13012	040766	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13013	040767	005 06 0 00 035673 		ER5	E,35673			;C(E) WAS CLOBBERED
 13014	040770	321 12 0 00 040756 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0260

 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	040771	200 10 0 00 044051 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13031			000000			AA2=0				;INITIAL C(AC+1)
 13032	040772	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13033			000001			AEE=1				;INITIAL C(E)
 13034	040773	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13035	040774	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13036		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13037	040775	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13038	040776	003 10 0 00 035701 		ER3	AC,35701		;HIGH PRODUCT FAILED
 13039		777777	377777			AR2=XX				;EXPECTED RESULT IN AC+1
 13040	040777	312 11 0 00 044051 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13041	041000	004 11 0 00 035702 		ER4	AC+1,35702		;LOW PRODUCT FAILED
 13042			000001			AEE=1				;INITIAL C(E)
 13043	041001	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13044	041002	005 06 0 00 035703 		ER5	E,35703			;C(E) WAS CLOBBERED
 13045	041003	321 12 0 00 040771 		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	041004	200 10 0 00 044052 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13062			000000			AA2=0				;INITIAL C(AC+1)
 13063	041005	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13064			000001			AEE=1				;INITIAL C(E)
 13065	041006	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13066	041007	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13067		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13068	041010	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13069	041011	003 10 0 00 035711 		ER3	AC,35711		;HIGH PRODUCT FAILED
 13070		777776	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13071	041012	312 11 0 00 044052 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13072	041013	004 11 0 00 035712 		ER4	AC+1,35712		;LOW PRODUCT FAILED
 13073			000001			AEE=1				;INITIAL C(E)
 13074	041014	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0261

 13075	041015	005 06 0 00 035713 		ER5	E,35713			;C(E) WAS CLOBBERED
 13076	041016	321 12 0 00 041004 		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	041017	200 10 0 00 044053 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13093			000000			AA2=0				;INITIAL C(AC+1)
 13094	041020	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13095			000001			AEE=1				;INITIAL C(E)
 13096	041021	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13097	041022	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13098		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13099	041023	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13100	041024	003 10 0 00 035721 		ER3	AC,35721		;HIGH PRODUCT FAILED
 13101		777775	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13102	041025	312 11 0 00 044053 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13103	041026	004 11 0 00 035722 		ER4	AC+1,35722		;LOW PRODUCT FAILED
 13104			000001			AEE=1				;INITIAL C(E)
 13105	041027	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13106	041030	005 06 0 00 035723 		ER5	E,35723			;C(E) WAS CLOBBERED
 13107	041031	321 12 0 00 041017 		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	041032	200 10 0 00 044054 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13124			000000			AA2=0				;INITIAL C(AC+1)
 13125	041033	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13126			000001			AEE=1				;INITIAL C(E)
 13127	041034	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13128	041035	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13129		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0262

 13130	041036	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13131	041037	003 10 0 00 035731 		ER3	AC,35731		;HIGH PRODUCT FAILED
 13132		777773	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13133	041040	312 11 0 00 044054 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13134	041041	004 11 0 00 035732 		ER4	AC+1,35732		;LOW PRODUCT FAILED
 13135			000001			AEE=1				;INITIAL C(E)
 13136	041042	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13137	041043	005 06 0 00 035733 		ER5	E,35733			;C(E) WAS CLOBBERED
 13138	041044	321 12 0 00 041032 		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	041045	200 10 0 00 044055 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13155			000000			AA2=0				;INITIAL C(AC+1)
 13156	041046	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13157			000001			AEE=1				;INITIAL C(E)
 13158	041047	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13159	041050	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13160		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13161	041051	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13162	041052	003 10 0 00 035741 		ER3	AC,35741		;HIGH PRODUCT FAILED
 13163		777767	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13164	041053	312 11 0 00 044055 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13165	041054	004 11 0 00 035742 		ER4	AC+1,35742		;LOW PRODUCT FAILED
 13166			000001			AEE=1				;INITIAL C(E)
 13167	041055	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13168	041056	005 06 0 00 035743 		ER5	E,35743			;C(E) WAS CLOBBERED
 13169	041057	321 12 0 00 041045 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0263

 13185	041060	200 10 0 00 044056 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13186			000000			AA2=0				;INITIAL C(AC+1)
 13187	041061	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13188			000001			AEE=1				;INITIAL C(E)
 13189	041062	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13190	041063	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13191		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13192	041064	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13193	041065	003 10 0 00 035751 		ER3	AC,35751		;HIGH PRODUCT FAILED
 13194		777757	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13195	041066	312 11 0 00 044056 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13196	041067	004 11 0 00 035752 		ER4	AC+1,35752		;LOW PRODUCT FAILED
 13197			000001			AEE=1				;INITIAL C(E)
 13198	041070	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13199	041071	005 06 0 00 035753 		ER5	E,35753			;C(E) WAS CLOBBERED
 13200	041072	321 12 0 00 041060 		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	041073	200 10 0 00 044057 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13217			000000			AA2=0				;INITIAL C(AC+1)
 13218	041074	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13219			000001			AEE=1				;INITIAL C(E)
 13220	041075	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13221	041076	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13222		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13223	041077	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13224	041100	003 10 0 00 035761 		ER3	AC,35761		;HIGH PRODUCT FAILED
 13225		777737	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13226	041101	312 11 0 00 044057 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13227	041102	004 11 0 00 035762 		ER4	AC+1,35762		;LOW PRODUCT FAILED
 13228			000001			AEE=1				;INITIAL C(E)
 13229	041103	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13230	041104	005 06 0 00 035763 		ER5	E,35763			;C(E) WAS CLOBBERED
 13231	041105	321 12 0 00 041073 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0264

 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	041106	200 10 0 00 044060 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13248			000000			AA2=0				;INITIAL C(AC+1)
 13249	041107	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13250			000001			AEE=1				;INITIAL C(E)
 13251	041110	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13252	041111	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13253		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13254	041112	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13255	041113	003 10 0 00 035771 		ER3	AC,35771		;HIGH PRODUCT FAILED
 13256		777677	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13257	041114	312 11 0 00 044060 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13258	041115	004 11 0 00 035772 		ER4	AC+1,35772		;LOW PRODUCT FAILED
 13259			000001			AEE=1				;INITIAL C(E)
 13260	041116	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13261	041117	005 06 0 00 035773 		ER5	E,35773			;C(E) WAS CLOBBERED
 13262	041120	321 12 0 00 041106 		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	041121	200 10 0 00 044061 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13279			000000			AA2=0				;INITIAL C(AC+1)
 13280	041122	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13281			000001			AEE=1				;INITIAL C(E)
 13282	041123	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13283	041124	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13284		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13285	041125	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13286	041126	003 10 0 00 036001 		ER3	AC,36001		;HIGH PRODUCT FAILED
 13287		777577	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13288	041127	312 11 0 00 044061 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13289	041130	004 11 0 00 036002 		ER4	AC+1,36002		;LOW PRODUCT FAILED
 13290			000001			AEE=1				;INITIAL C(E)
 13291	041131	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13292	041132	005 06 0 00 036003 		ER5	E,36003			;C(E) WAS CLOBBERED
 13293	041133	321 12 0 00 041121 		JUMPL	AC+2,F36000		;LOOP ON ERROR SWITCH^
 13294
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0265

 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	041134	200 10 0 00 044062 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13310			000000			AA2=0				;INITIAL C(AC+1)
 13311	041135	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13312			000001			AEE=1				;INITIAL C(E)
 13313	041136	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13314	041137	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13315		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13316	041140	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13317	041141	003 10 0 00 036011 		ER3	AC,36011		;HIGH PRODUCT FAILED
 13318		777377	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13319	041142	312 11 0 00 044062 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13320	041143	004 11 0 00 036012 		ER4	AC+1,36012		;LOW PRODUCT FAILED
 13321			000001			AEE=1				;INITIAL C(E)
 13322	041144	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13323	041145	005 06 0 00 036013 		ER5	E,36013			;C(E) WAS CLOBBERED
 13324	041146	321 12 0 00 041134 		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	041147	200 10 0 00 044063 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13341			000000			AA2=0				;INITIAL C(AC+1)
 13342	041150	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13343			000001			AEE=1				;INITIAL C(E)
 13344	041151	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13345	041152	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13346		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13347	041153	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13348	041154	003 10 0 00 036021 		ER3	AC,36021		;HIGH PRODUCT FAILED
 13349		776777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0266

 13350	041155	312 11 0 00 044063 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13351	041156	004 11 0 00 036022 		ER4	AC+1,36022		;LOW PRODUCT FAILED
 13352			000001			AEE=1				;INITIAL C(E)
 13353	041157	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13354	041160	005 06 0 00 036023 		ER5	E,36023			;C(E) WAS CLOBBERED
 13355	041161	321 12 0 00 041147 		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	041162	200 10 0 00 044064 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13372			000000			AA2=0				;INITIAL C(AC+1)
 13373	041163	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13374			000001			AEE=1				;INITIAL C(E)
 13375	041164	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13376	041165	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13377		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13378	041166	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13379	041167	003 10 0 00 036031 		ER3	AC,36031		;HIGH PRODUCT FAILED
 13380		775777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13381	041170	312 11 0 00 044064 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13382	041171	004 11 0 00 036032 		ER4	AC+1,36032		;LOW PRODUCT FAILED
 13383			000001			AEE=1				;INITIAL C(E)
 13384	041172	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13385	041173	005 06 0 00 036033 		ER5	E,36033			;C(E) WAS CLOBBERED
 13386	041174	321 12 0 00 041162 		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	041175	200 10 0 00 044065 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13403			000000			AA2=0				;INITIAL C(AC+1)
 13404	041176	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0267

 13405			000001			AEE=1				;INITIAL C(E)
 13406	041177	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13407	041200	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13408		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13409	041201	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13410	041202	003 10 0 00 036041 		ER3	AC,36041		;HIGH PRODUCT FAILED
 13411		773777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13412	041203	312 11 0 00 044065 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13413	041204	004 11 0 00 036042 		ER4	AC+1,36042		;LOW PRODUCT FAILED
 13414			000001			AEE=1				;INITIAL C(E)
 13415	041205	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13416	041206	005 06 0 00 036043 		ER5	E,36043			;C(E) WAS CLOBBERED
 13417	041207	321 12 0 00 041175 		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	041210	200 10 0 00 044066 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13434			000000			AA2=0				;INITIAL C(AC+1)
 13435	041211	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13436			000001			AEE=1				;INITIAL C(E)
 13437	041212	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13438	041213	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13439		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13440	041214	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13441	041215	003 10 0 00 036051 		ER3	AC,36051		;HIGH PRODUCT FAILED
 13442		767777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13443	041216	312 11 0 00 044066 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13444	041217	004 11 0 00 036052 		ER4	AC+1,36052		;LOW PRODUCT FAILED
 13445			000001			AEE=1				;INITIAL C(E)
 13446	041220	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13447	041221	005 06 0 00 036053 		ER5	E,36053			;C(E) WAS CLOBBERED
 13448	041222	321 12 0 00 041210 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0268

 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	041223	200 10 0 00 044067 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13465			000000			AA2=0				;INITIAL C(AC+1)
 13466	041224	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13467			000001			AEE=1				;INITIAL C(E)
 13468	041225	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13469	041226	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13470		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13471	041227	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13472	041230	003 10 0 00 036061 		ER3	AC,36061		;HIGH PRODUCT FAILED
 13473		757777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13474	041231	312 11 0 00 044067 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13475	041232	004 11 0 00 036062 		ER4	AC+1,36062		;LOW PRODUCT FAILED
 13476			000001			AEE=1				;INITIAL C(E)
 13477	041233	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13478	041234	005 06 0 00 036063 		ER5	E,36063			;C(E) WAS CLOBBERED
 13479	041235	321 12 0 00 041223 		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	041236	200 10 0 00 044070 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13496			000000			AA2=0				;INITIAL C(AC+1)
 13497	041237	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13498			000001			AEE=1				;INITIAL C(E)
 13499	041240	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13500	041241	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13501		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13502	041242	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13503	041243	003 10 0 00 036071 		ER3	AC,36071		;HIGH PRODUCT FAILED
 13504		737777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13505	041244	312 11 0 00 044070 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13506	041245	004 11 0 00 036072 		ER4	AC+1,36072		;LOW PRODUCT FAILED
 13507			000001			AEE=1				;INITIAL C(E)
 13508	041246	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13509	041247	005 06 0 00 036073 		ER5	E,36073			;C(E) WAS CLOBBERED
 13510	041250	321 12 0 00 041236 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0269

 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	041251	200 10 0 00 044071 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13527			000000			AA2=0				;INITIAL C(AC+1)
 13528	041252	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13529			000001			AEE=1				;INITIAL C(E)
 13530	041253	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13531	041254	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13532		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13533	041255	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13534	041256	003 10 0 00 036101 		ER3	AC,36101		;HIGH PRODUCT FAILED
 13535		677777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13536	041257	312 11 0 00 044071 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13537	041260	004 11 0 00 036102 		ER4	AC+1,36102		;LOW PRODUCT FAILED
 13538			000001			AEE=1				;INITIAL C(E)
 13539	041261	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13540	041262	005 06 0 00 036103 		ER5	E,36103			;C(E) WAS CLOBBERED
 13541	041263	321 12 0 00 041251 		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	041264	200 10 0 00 044072 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13558			000000			AA2=0				;INITIAL C(AC+1)
 13559	041265	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13560			000001			AEE=1				;INITIAL C(E)
 13561	041266	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13562	041267	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13563		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 13564	041270	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13565	041271	003 10 0 00 036111 		ER3	AC,36111		;HIGH PRODUCT FAILED
 13566		577777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13567	041272	312 11 0 00 044072 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13568	041273	004 11 0 00 036112 		ER4	AC+1,36112		;LOW PRODUCT FAILED
 13569			000001			AEE=1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 15-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0270

 13570	041274	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13571	041275	005 06 0 00 036113 		ER5	E,36113			;C(E) WAS CLOBBERED
 13572	041276	321 12 0 00 041264 		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	041277	200 10 0 00 044073 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 13589			000000			AA2=0				;INITIAL C(AC+1)
 13590	041300	200 11 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 13591			000001			AEE=1				;INITIAL C(E)
 13592	041301	200 06 0 00 043764 		MOVE	E,[1]			;PRELOAD E (MULTIPLICAND)
 13593	041302	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13594			000000			AR1=V1				;EXPECTED RESULT IN AC
 13595	041303	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13596	041304	003 10 0 00 036121 		ER3	AC,36121		;HIGH PRODUCT FAILED
 13597		377777	777777			AR2=XX				;EXPECTED RESULT IN AC+1
 13598	041305	312 11 0 00 044073 		CAME	AC+1,[XX]		;IS LOW PRODUCT CORRECT?
 13599	041306	004 11 0 00 036122 		ER4	AC+1,36122		;LOW PRODUCT FAILED
 13600			000001			AEE=1				;INITIAL C(E)
 13601	041307	312 06 0 00 043764 		CAME	E,[1]			;WAS C(E) CLOBBERED?
 13602	041310	005 06 0 00 036123 		ER5	E,36123			;C(E) WAS CLOBBERED
 13603	041311	321 12 0 00 041277 		JUMPL	AC+2,F36120		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0271

 13604			000010			AC=10
 13605			000006			E=<AC-2>&17
 13606						SAVEAC	(1,1)^
 13607	041312	201 12 0 00 041312 		MOVEI	AC+2,.		;SAVE TEST PC
 13608	041313	202 12 0 00 030051 		MOVEM	AC+2,TESTPC
 13609	041314	201 12 0 00 000012 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 13610	041315	202 12 0 00 044437 		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	041316	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13640		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13641	041317	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13642		777777	777776			AEE=XX				;INITIAL C(E)
 13643	041320	200 06 0 00 044030 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13644	041321	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13645			000000			AR1=V1				;EXPECTED RESULT IN AC
 13646	041322	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13647	041323	003 10 0 00 036131 		ER3	AC,36131		;HIGH PRODUCT FAILED
 13648			000002			AR2=MX				;EXPECTED RESULT IN AC+1
 13649	041324	312 11 0 00 043765 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13650	041325	004 11 0 00 036132 		ER4	AC+1,36132		;LOW PRODUCT FAILED
 13651		777777	777776			AEE=XX				;INITIAL C(E)
 13652	041326	312 06 0 00 044030 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13653	041327	005 06 0 00 036133 		ER5	E,36133			;C(E) WAS CLOBBERED
 13654	041330	321 12 0 00 041316 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0272

 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	041331	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13672		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13673	041332	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13674		777777	777775			AEE=XX				;INITIAL C(E)
 13675	041333	200 06 0 00 044031 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13676	041334	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13677			000000			AR1=V1				;EXPECTED RESULT IN AC
 13678	041335	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13679	041336	003 10 0 00 036141 		ER3	AC,36141		;HIGH PRODUCT FAILED
 13680			000003			AR2=MX				;EXPECTED RESULT IN AC+1
 13681	041337	312 11 0 00 044074 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13682	041340	004 11 0 00 036142 		ER4	AC+1,36142		;LOW PRODUCT FAILED
 13683		777777	777775			AEE=XX				;INITIAL C(E)
 13684	041341	312 06 0 00 044031 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13685	041342	005 06 0 00 036143 		ER5	E,36143			;C(E) WAS CLOBBERED
 13686	041343	321 12 0 00 041331 		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	041344	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13704		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13705	041345	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13706		777777	777773			AEE=XX				;INITIAL C(E)
 13707	041346	200 06 0 00 044032 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13708	041347	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13709			000000			AR1=V1				;EXPECTED RESULT IN AC
 13710	041350	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13711	041351	003 10 0 00 036151 		ER3	AC,36151		;HIGH PRODUCT FAILED
 13712			000005			AR2=MX				;EXPECTED RESULT IN AC+1
 13713	041352	312 11 0 00 044075 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0273

 13714	041353	004 11 0 00 036152 		ER4	AC+1,36152		;LOW PRODUCT FAILED
 13715		777777	777773			AEE=XX				;INITIAL C(E)
 13716	041354	312 06 0 00 044032 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13717	041355	005 06 0 00 036153 		ER5	E,36153			;C(E) WAS CLOBBERED
 13718	041356	321 12 0 00 041344 		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	041357	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13736		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13737	041360	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13738		777777	777767			AEE=XX				;INITIAL C(E)
 13739	041361	200 06 0 00 044033 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13740	041362	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13741			000000			AR1=V1				;EXPECTED RESULT IN AC
 13742	041363	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13743	041364	003 10 0 00 036161 		ER3	AC,36161		;HIGH PRODUCT FAILED
 13744			000011			AR2=MX				;EXPECTED RESULT IN AC+1
 13745	041365	312 11 0 00 044100 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13746	041366	004 11 0 00 036162 		ER4	AC+1,36162		;LOW PRODUCT FAILED
 13747		777777	777767			AEE=XX				;INITIAL C(E)
 13748	041367	312 06 0 00 044033 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13749	041370	005 06 0 00 036163 		ER5	E,36163			;C(E) WAS CLOBBERED
 13750	041371	321 12 0 00 041357 		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	041372	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13768		777777	777777			AA2=-1				;INITIAL C(AC+1)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0274

 13769	041373	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13770		777777	777757			AEE=XX				;INITIAL C(E)
 13771	041374	200 06 0 00 044034 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13772	041375	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13773			000000			AR1=V1				;EXPECTED RESULT IN AC
 13774	041376	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13775	041377	003 10 0 00 036171 		ER3	AC,36171		;HIGH PRODUCT FAILED
 13776			000021			AR2=MX				;EXPECTED RESULT IN AC+1
 13777	041400	312 11 0 00 044160 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13778	041401	004 11 0 00 036172 		ER4	AC+1,36172		;LOW PRODUCT FAILED
 13779		777777	777757			AEE=XX				;INITIAL C(E)
 13780	041402	312 06 0 00 044034 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13781	041403	005 06 0 00 036173 		ER5	E,36173			;C(E) WAS CLOBBERED
 13782	041404	321 12 0 00 041372 		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	041405	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13800		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13801	041406	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13802		777777	777737			AEE=XX				;INITIAL C(E)
 13803	041407	200 06 0 00 044035 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13804	041410	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13805			000000			AR1=V1				;EXPECTED RESULT IN AC
 13806	041411	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13807	041412	003 10 0 00 036201 		ER3	AC,36201		;HIGH PRODUCT FAILED
 13808			000041			AR2=MX				;EXPECTED RESULT IN AC+1
 13809	041413	312 11 0 00 044161 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13810	041414	004 11 0 00 036202 		ER4	AC+1,36202		;LOW PRODUCT FAILED
 13811		777777	777737			AEE=XX				;INITIAL C(E)
 13812	041415	312 06 0 00 044035 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13813	041416	005 06 0 00 036203 		ER5	E,36203			;C(E) WAS CLOBBERED
 13814	041417	321 12 0 00 041405 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0275

 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	041420	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13832		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13833	041421	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13834		777777	777677			AEE=XX				;INITIAL C(E)
 13835	041422	200 06 0 00 044036 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13836	041423	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13837			000000			AR1=V1				;EXPECTED RESULT IN AC
 13838	041424	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13839	041425	003 10 0 00 036211 		ER3	AC,36211		;HIGH PRODUCT FAILED
 13840			000101			AR2=MX				;EXPECTED RESULT IN AC+1
 13841	041426	312 11 0 00 044162 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13842	041427	004 11 0 00 036212 		ER4	AC+1,36212		;LOW PRODUCT FAILED
 13843		777777	777677			AEE=XX				;INITIAL C(E)
 13844	041430	312 06 0 00 044036 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13845	041431	005 06 0 00 036213 		ER5	E,36213			;C(E) WAS CLOBBERED
 13846	041432	321 12 0 00 041420 		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	041433	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13864		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13865	041434	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13866		777777	777577			AEE=XX				;INITIAL C(E)
 13867	041435	200 06 0 00 044037 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13868	041436	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13869			000000			AR1=V1				;EXPECTED RESULT IN AC
 13870	041437	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13871	041440	003 10 0 00 036221 		ER3	AC,36221		;HIGH PRODUCT FAILED
 13872			000201			AR2=MX				;EXPECTED RESULT IN AC+1
 13873	041441	312 11 0 00 044163 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13874	041442	004 11 0 00 036222 		ER4	AC+1,36222		;LOW PRODUCT FAILED
 13875		777777	777577			AEE=XX				;INITIAL C(E)
 13876	041443	312 06 0 00 044037 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13877	041444	005 06 0 00 036223 		ER5	E,36223			;C(E) WAS CLOBBERED
 13878	041445	321 12 0 00 041433 		JUMPL	AC+2,F36220		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0276

 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	041446	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13896		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13897	041447	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13898		777777	777377			AEE=XX				;INITIAL C(E)
 13899	041450	200 06 0 00 044040 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13900	041451	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13901			000000			AR1=V1				;EXPECTED RESULT IN AC
 13902	041452	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13903	041453	003 10 0 00 036231 		ER3	AC,36231		;HIGH PRODUCT FAILED
 13904			000401			AR2=MX				;EXPECTED RESULT IN AC+1
 13905	041454	312 11 0 00 044164 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13906	041455	004 11 0 00 036232 		ER4	AC+1,36232		;LOW PRODUCT FAILED
 13907		777777	777377			AEE=XX				;INITIAL C(E)
 13908	041456	312 06 0 00 044040 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13909	041457	005 06 0 00 036233 		ER5	E,36233			;C(E) WAS CLOBBERED
 13910	041460	321 12 0 00 041446 		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	041461	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13928		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13929	041462	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13930		777777	776777			AEE=XX				;INITIAL C(E)
 13931	041463	200 06 0 00 044041 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13932	041464	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13933			000000			AR1=V1				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0277

 13934	041465	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13935	041466	003 10 0 00 036241 		ER3	AC,36241		;HIGH PRODUCT FAILED
 13936			001001			AR2=MX				;EXPECTED RESULT IN AC+1
 13937	041467	312 11 0 00 044165 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13938	041470	004 11 0 00 036242 		ER4	AC+1,36242		;LOW PRODUCT FAILED
 13939		777777	776777			AEE=XX				;INITIAL C(E)
 13940	041471	312 06 0 00 044041 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13941	041472	005 06 0 00 036243 		ER5	E,36243			;C(E) WAS CLOBBERED
 13942	041473	321 12 0 00 041461 		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	041474	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13960		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13961	041475	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13962		777777	775777			AEE=XX				;INITIAL C(E)
 13963	041476	200 06 0 00 044042 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13964	041477	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13965			000000			AR1=V1				;EXPECTED RESULT IN AC
 13966	041500	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13967	041501	003 10 0 00 036251 		ER3	AC,36251		;HIGH PRODUCT FAILED
 13968			002001			AR2=MX				;EXPECTED RESULT IN AC+1
 13969	041502	312 11 0 00 044166 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 13970	041503	004 11 0 00 036252 		ER4	AC+1,36252		;LOW PRODUCT FAILED
 13971		777777	775777			AEE=XX				;INITIAL C(E)
 13972	041504	312 06 0 00 044042 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 13973	041505	005 06 0 00 036253 		ER5	E,36253			;C(E) WAS CLOBBERED
 13974	041506	321 12 0 00 041474 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0278

 13989
 13990		777777	777777		F36260:	AA1=-1				;INITIAL C(AC)
 13991	041507	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 13992		777777	777777			AA2=-1				;INITIAL C(AC+1)
 13993	041510	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 13994		777777	773777			AEE=XX				;INITIAL C(E)
 13995	041511	200 06 0 00 044043 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 13996	041512	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 13997			000000			AR1=V1				;EXPECTED RESULT IN AC
 13998	041513	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 13999	041514	003 10 0 00 036261 		ER3	AC,36261		;HIGH PRODUCT FAILED
 14000			004001			AR2=MX				;EXPECTED RESULT IN AC+1
 14001	041515	312 11 0 00 044167 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14002	041516	004 11 0 00 036262 		ER4	AC+1,36262		;LOW PRODUCT FAILED
 14003		777777	773777			AEE=XX				;INITIAL C(E)
 14004	041517	312 06 0 00 044043 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14005	041520	005 06 0 00 036263 		ER5	E,36263			;C(E) WAS CLOBBERED
 14006	041521	321 12 0 00 041507 		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	041522	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14024		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14025	041523	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14026		777777	767777			AEE=XX				;INITIAL C(E)
 14027	041524	200 06 0 00 044044 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14028	041525	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14029			000000			AR1=V1				;EXPECTED RESULT IN AC
 14030	041526	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14031	041527	003 10 0 00 036271 		ER3	AC,36271		;HIGH PRODUCT FAILED
 14032			010001			AR2=MX				;EXPECTED RESULT IN AC+1
 14033	041530	312 11 0 00 044170 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14034	041531	004 11 0 00 036272 		ER4	AC+1,36272		;LOW PRODUCT FAILED
 14035		777777	767777			AEE=XX				;INITIAL C(E)
 14036	041532	312 06 0 00 044044 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14037	041533	005 06 0 00 036273 		ER5	E,36273			;C(E) WAS CLOBBERED
 14038	041534	321 12 0 00 041522 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0279

 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	041535	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14056		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14057	041536	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14058		777777	757777			AEE=XX				;INITIAL C(E)
 14059	041537	200 06 0 00 044045 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14060	041540	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14061			000000			AR1=V1				;EXPECTED RESULT IN AC
 14062	041541	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14063	041542	003 10 0 00 036301 		ER3	AC,36301		;HIGH PRODUCT FAILED
 14064			020001			AR2=MX				;EXPECTED RESULT IN AC+1
 14065	041543	312 11 0 00 044171 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14066	041544	004 11 0 00 036302 		ER4	AC+1,36302		;LOW PRODUCT FAILED
 14067		777777	757777			AEE=XX				;INITIAL C(E)
 14068	041545	312 06 0 00 044045 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14069	041546	005 06 0 00 036303 		ER5	E,36303			;C(E) WAS CLOBBERED
 14070	041547	321 12 0 00 041535 		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	041550	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14088		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14089	041551	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14090		777777	737777			AEE=XX				;INITIAL C(E)
 14091	041552	200 06 0 00 044046 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14092	041553	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14093			000000			AR1=V1				;EXPECTED RESULT IN AC
 14094	041554	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14095	041555	003 10 0 00 036311 		ER3	AC,36311		;HIGH PRODUCT FAILED
 14096			040001			AR2=MX				;EXPECTED RESULT IN AC+1
 14097	041556	312 11 0 00 044172 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14098	041557	004 11 0 00 036312 		ER4	AC+1,36312		;LOW PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0280

 14099		777777	737777			AEE=XX				;INITIAL C(E)
 14100	041560	312 06 0 00 044046 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14101	041561	005 06 0 00 036313 		ER5	E,36313			;C(E) WAS CLOBBERED
 14102	041562	321 12 0 00 041550 		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	041563	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14120		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14121	041564	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14122		777777	677777			AEE=XX				;INITIAL C(E)
 14123	041565	200 06 0 00 044047 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14124	041566	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14125			000000			AR1=V1				;EXPECTED RESULT IN AC
 14126	041567	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14127	041570	003 10 0 00 036321 		ER3	AC,36321		;HIGH PRODUCT FAILED
 14128			100001			AR2=MX				;EXPECTED RESULT IN AC+1
 14129	041571	312 11 0 00 044173 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14130	041572	004 11 0 00 036322 		ER4	AC+1,36322		;LOW PRODUCT FAILED
 14131		777777	677777			AEE=XX				;INITIAL C(E)
 14132	041573	312 06 0 00 044047 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14133	041574	005 06 0 00 036323 		ER5	E,36323			;C(E) WAS CLOBBERED
 14134	041575	321 12 0 00 041563 		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	041576	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14152		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14153	041577	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0281

 14154		777777	577777			AEE=XX				;INITIAL C(E)
 14155	041600	200 06 0 00 044050 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14156	041601	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14157			000000			AR1=V1				;EXPECTED RESULT IN AC
 14158	041602	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14159	041603	003 10 0 00 036331 		ER3	AC,36331		;HIGH PRODUCT FAILED
 14160			200001			AR2=MX				;EXPECTED RESULT IN AC+1
 14161	041604	312 11 0 00 044174 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14162	041605	004 11 0 00 036332 		ER4	AC+1,36332		;LOW PRODUCT FAILED
 14163		777777	577777			AEE=XX				;INITIAL C(E)
 14164	041606	312 06 0 00 044050 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14165	041607	005 06 0 00 036333 		ER5	E,36333			;C(E) WAS CLOBBERED
 14166	041610	321 12 0 00 041576 		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	041611	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14184		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14185	041612	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14186		777777	377777			AEE=XX				;INITIAL C(E)
 14187	041613	200 06 0 00 044051 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14188	041614	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14189			000000			AR1=V1				;EXPECTED RESULT IN AC
 14190	041615	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14191	041616	003 10 0 00 036341 		ER3	AC,36341		;HIGH PRODUCT FAILED
 14192			400001			AR2=MX				;EXPECTED RESULT IN AC+1
 14193	041617	312 11 0 00 044175 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14194	041620	004 11 0 00 036342 		ER4	AC+1,36342		;LOW PRODUCT FAILED
 14195		777777	377777			AEE=XX				;INITIAL C(E)
 14196	041621	312 06 0 00 044051 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14197	041622	005 06 0 00 036343 		ER5	E,36343			;C(E) WAS CLOBBERED
 14198	041623	321 12 0 00 041611 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0282

 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	041624	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14216		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14217	041625	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14218		777776	777777			AEE=XX				;INITIAL C(E)
 14219	041626	200 06 0 00 044052 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14220	041627	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14221			000000			AR1=V1				;EXPECTED RESULT IN AC
 14222	041630	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14223	041631	003 10 0 00 036351 		ER3	AC,36351		;HIGH PRODUCT FAILED
 14224		000001	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14225	041632	312 11 0 00 044176 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14226	041633	004 11 0 00 036352 		ER4	AC+1,36352		;LOW PRODUCT FAILED
 14227		777776	777777			AEE=XX				;INITIAL C(E)
 14228	041634	312 06 0 00 044052 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14229	041635	005 06 0 00 036353 		ER5	E,36353			;C(E) WAS CLOBBERED
 14230	041636	321 12 0 00 041624 		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	041637	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14248		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14249	041640	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14250		777775	777777			AEE=XX				;INITIAL C(E)
 14251	041641	200 06 0 00 044053 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14252	041642	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14253			000000			AR1=V1				;EXPECTED RESULT IN AC
 14254	041643	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14255	041644	003 10 0 00 036361 		ER3	AC,36361		;HIGH PRODUCT FAILED
 14256		000002	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14257	041645	312 11 0 00 044177 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14258	041646	004 11 0 00 036362 		ER4	AC+1,36362		;LOW PRODUCT FAILED
 14259		777775	777777			AEE=XX				;INITIAL C(E)
 14260	041647	312 06 0 00 044053 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14261	041650	005 06 0 00 036363 		ER5	E,36363			;C(E) WAS CLOBBERED
 14262	041651	321 12 0 00 041637 		JUMPL	AC+2,F36360		;LOOP ON ERROR SWITCH^
 14263
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0283

 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	041652	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14280		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14281	041653	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14282		777773	777777			AEE=XX				;INITIAL C(E)
 14283	041654	200 06 0 00 044054 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14284	041655	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14285			000000			AR1=V1				;EXPECTED RESULT IN AC
 14286	041656	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14287	041657	003 10 0 00 036371 		ER3	AC,36371		;HIGH PRODUCT FAILED
 14288		000004	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14289	041660	312 11 0 00 044200 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14290	041661	004 11 0 00 036372 		ER4	AC+1,36372		;LOW PRODUCT FAILED
 14291		777773	777777			AEE=XX				;INITIAL C(E)
 14292	041662	312 06 0 00 044054 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14293	041663	005 06 0 00 036373 		ER5	E,36373			;C(E) WAS CLOBBERED
 14294	041664	321 12 0 00 041652 		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	041665	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14312		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14313	041666	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14314		777767	777777			AEE=XX				;INITIAL C(E)
 14315	041667	200 06 0 00 044055 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14316	041670	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14317			000000			AR1=V1				;EXPECTED RESULT IN AC
 14318	041671	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0284

 14319	041672	003 10 0 00 036401 		ER3	AC,36401		;HIGH PRODUCT FAILED
 14320		000010	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14321	041673	312 11 0 00 044201 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14322	041674	004 11 0 00 036402 		ER4	AC+1,36402		;LOW PRODUCT FAILED
 14323		777767	777777			AEE=XX				;INITIAL C(E)
 14324	041675	312 06 0 00 044055 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14325	041676	005 06 0 00 036403 		ER5	E,36403			;C(E) WAS CLOBBERED
 14326	041677	321 12 0 00 041665 		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	041700	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14344		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14345	041701	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14346		777757	777777			AEE=XX				;INITIAL C(E)
 14347	041702	200 06 0 00 044056 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14348	041703	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14349			000000			AR1=V1				;EXPECTED RESULT IN AC
 14350	041704	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14351	041705	003 10 0 00 036411 		ER3	AC,36411		;HIGH PRODUCT FAILED
 14352		000020	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14353	041706	312 11 0 00 044202 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14354	041707	004 11 0 00 036412 		ER4	AC+1,36412		;LOW PRODUCT FAILED
 14355		777757	777777			AEE=XX				;INITIAL C(E)
 14356	041710	312 06 0 00 044056 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14357	041711	005 06 0 00 036413 		ER5	E,36413			;C(E) WAS CLOBBERED
 14358	041712	321 12 0 00 041700 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0285

 14374		777777	777777		F36420:	AA1=-1				;INITIAL C(AC)
 14375	041713	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14376		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14377	041714	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14378		777737	777777			AEE=XX				;INITIAL C(E)
 14379	041715	200 06 0 00 044057 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14380	041716	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14381			000000			AR1=V1				;EXPECTED RESULT IN AC
 14382	041717	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14383	041720	003 10 0 00 036421 		ER3	AC,36421		;HIGH PRODUCT FAILED
 14384		000040	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14385	041721	312 11 0 00 044203 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14386	041722	004 11 0 00 036422 		ER4	AC+1,36422		;LOW PRODUCT FAILED
 14387		777737	777777			AEE=XX				;INITIAL C(E)
 14388	041723	312 06 0 00 044057 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14389	041724	005 06 0 00 036423 		ER5	E,36423			;C(E) WAS CLOBBERED
 14390	041725	321 12 0 00 041713 		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	041726	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14408		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14409	041727	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14410		777677	777777			AEE=XX				;INITIAL C(E)
 14411	041730	200 06 0 00 044060 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14412	041731	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14413			000000			AR1=V1				;EXPECTED RESULT IN AC
 14414	041732	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14415	041733	003 10 0 00 036431 		ER3	AC,36431		;HIGH PRODUCT FAILED
 14416		000100	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14417	041734	312 11 0 00 044204 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14418	041735	004 11 0 00 036432 		ER4	AC+1,36432		;LOW PRODUCT FAILED
 14419		777677	777777			AEE=XX				;INITIAL C(E)
 14420	041736	312 06 0 00 044060 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14421	041737	005 06 0 00 036433 		ER5	E,36433			;C(E) WAS CLOBBERED
 14422	041740	321 12 0 00 041726 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0286

 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	041741	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14440		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14441	041742	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14442		777577	777777			AEE=XX				;INITIAL C(E)
 14443	041743	200 06 0 00 044061 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14444	041744	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14445			000000			AR1=V1				;EXPECTED RESULT IN AC
 14446	041745	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14447	041746	003 10 0 00 036441 		ER3	AC,36441		;HIGH PRODUCT FAILED
 14448		000200	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14449	041747	312 11 0 00 044205 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14450	041750	004 11 0 00 036442 		ER4	AC+1,36442		;LOW PRODUCT FAILED
 14451		777577	777777			AEE=XX				;INITIAL C(E)
 14452	041751	312 06 0 00 044061 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14453	041752	005 06 0 00 036443 		ER5	E,36443			;C(E) WAS CLOBBERED
 14454	041753	321 12 0 00 041741 		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	041754	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14472		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14473	041755	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14474		777377	777777			AEE=XX				;INITIAL C(E)
 14475	041756	200 06 0 00 044062 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14476	041757	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14477			000000			AR1=V1				;EXPECTED RESULT IN AC
 14478	041760	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14479	041761	003 10 0 00 036451 		ER3	AC,36451		;HIGH PRODUCT FAILED
 14480		000400	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14481	041762	312 11 0 00 044206 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14482	041763	004 11 0 00 036452 		ER4	AC+1,36452		;LOW PRODUCT FAILED
 14483		777377	777777			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0287

 14484	041764	312 06 0 00 044062 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14485	041765	005 06 0 00 036453 		ER5	E,36453			;C(E) WAS CLOBBERED
 14486	041766	321 12 0 00 041754 		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	041767	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14504		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14505	041770	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14506		776777	777777			AEE=XX				;INITIAL C(E)
 14507	041771	200 06 0 00 044063 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14508	041772	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14509			000000			AR1=V1				;EXPECTED RESULT IN AC
 14510	041773	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14511	041774	003 10 0 00 036461 		ER3	AC,36461		;HIGH PRODUCT FAILED
 14512		001000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14513	041775	312 11 0 00 044207 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14514	041776	004 11 0 00 036462 		ER4	AC+1,36462		;LOW PRODUCT FAILED
 14515		776777	777777			AEE=XX				;INITIAL C(E)
 14516	041777	312 06 0 00 044063 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14517	042000	005 06 0 00 036463 		ER5	E,36463			;C(E) WAS CLOBBERED
 14518	042001	321 12 0 00 041767 		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	042002	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14536		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14537	042003	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14538		775777	777777			AEE=XX				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0288

 14539	042004	200 06 0 00 044064 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14540	042005	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14541			000000			AR1=V1				;EXPECTED RESULT IN AC
 14542	042006	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14543	042007	003 10 0 00 036471 		ER3	AC,36471		;HIGH PRODUCT FAILED
 14544		002000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14545	042010	312 11 0 00 044210 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14546	042011	004 11 0 00 036472 		ER4	AC+1,36472		;LOW PRODUCT FAILED
 14547		775777	777777			AEE=XX				;INITIAL C(E)
 14548	042012	312 06 0 00 044064 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14549	042013	005 06 0 00 036473 		ER5	E,36473			;C(E) WAS CLOBBERED
 14550	042014	321 12 0 00 042002 		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	042015	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14568		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14569	042016	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14570		773777	777777			AEE=XX				;INITIAL C(E)
 14571	042017	200 06 0 00 044065 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14572	042020	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14573			000000			AR1=V1				;EXPECTED RESULT IN AC
 14574	042021	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14575	042022	003 10 0 00 036501 		ER3	AC,36501		;HIGH PRODUCT FAILED
 14576		004000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14577	042023	312 11 0 00 044211 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14578	042024	004 11 0 00 036502 		ER4	AC+1,36502		;LOW PRODUCT FAILED
 14579		773777	777777			AEE=XX				;INITIAL C(E)
 14580	042025	312 06 0 00 044065 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14581	042026	005 06 0 00 036503 		ER5	E,36503			;C(E) WAS CLOBBERED
 14582	042027	321 12 0 00 042015 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0289

 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	042030	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14600		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14601	042031	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14602		767777	777777			AEE=XX				;INITIAL C(E)
 14603	042032	200 06 0 00 044066 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14604	042033	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14605			000000			AR1=V1				;EXPECTED RESULT IN AC
 14606	042034	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14607	042035	003 10 0 00 036511 		ER3	AC,36511		;HIGH PRODUCT FAILED
 14608		010000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14609	042036	312 11 0 00 044212 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14610	042037	004 11 0 00 036512 		ER4	AC+1,36512		;LOW PRODUCT FAILED
 14611		767777	777777			AEE=XX				;INITIAL C(E)
 14612	042040	312 06 0 00 044066 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14613	042041	005 06 0 00 036513 		ER5	E,36513			;C(E) WAS CLOBBERED
 14614	042042	321 12 0 00 042030 		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	042043	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14632		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14633	042044	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14634		757777	777777			AEE=XX				;INITIAL C(E)
 14635	042045	200 06 0 00 044067 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14636	042046	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14637			000000			AR1=V1				;EXPECTED RESULT IN AC
 14638	042047	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14639	042050	003 10 0 00 036521 		ER3	AC,36521		;HIGH PRODUCT FAILED
 14640		020000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14641	042051	312 11 0 00 044213 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14642	042052	004 11 0 00 036522 		ER4	AC+1,36522		;LOW PRODUCT FAILED
 14643		757777	777777			AEE=XX				;INITIAL C(E)
 14644	042053	312 06 0 00 044067 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14645	042054	005 06 0 00 036523 		ER5	E,36523			;C(E) WAS CLOBBERED
 14646	042055	321 12 0 00 042043 		JUMPL	AC+2,F36520		;LOOP ON ERROR SWITCH^
 14647
 14648			003653			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0290

 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	042056	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14664		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14665	042057	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14666		737777	777777			AEE=XX				;INITIAL C(E)
 14667	042060	200 06 0 00 044070 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14668	042061	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14669			000000			AR1=V1				;EXPECTED RESULT IN AC
 14670	042062	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14671	042063	003 10 0 00 036531 		ER3	AC,36531		;HIGH PRODUCT FAILED
 14672		040000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14673	042064	312 11 0 00 044214 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14674	042065	004 11 0 00 036532 		ER4	AC+1,36532		;LOW PRODUCT FAILED
 14675		737777	777777			AEE=XX				;INITIAL C(E)
 14676	042066	312 06 0 00 044070 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14677	042067	005 06 0 00 036533 		ER5	E,36533			;C(E) WAS CLOBBERED
 14678	042070	321 12 0 00 042056 		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	042071	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14696		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14697	042072	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14698		677777	777777			AEE=XX				;INITIAL C(E)
 14699	042073	200 06 0 00 044071 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14700	042074	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14701			000000			AR1=V1				;EXPECTED RESULT IN AC
 14702	042075	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14703	042076	003 10 0 00 036541 		ER3	AC,36541		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0291

 14704		100000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14705	042077	312 11 0 00 044215 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14706	042100	004 11 0 00 036542 		ER4	AC+1,36542		;LOW PRODUCT FAILED
 14707		677777	777777			AEE=XX				;INITIAL C(E)
 14708	042101	312 06 0 00 044071 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14709	042102	005 06 0 00 036543 		ER5	E,36543			;C(E) WAS CLOBBERED
 14710	042103	321 12 0 00 042071 		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	042104	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14728		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14729	042105	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14730		577777	777777			AEE=XX				;INITIAL C(E)
 14731	042106	200 06 0 00 044072 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14732	042107	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14733			000000			AR1=V1				;EXPECTED RESULT IN AC
 14734	042110	312 10 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14735	042111	003 10 0 00 036551 		ER3	AC,36551		;HIGH PRODUCT FAILED
 14736		200000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14737	042112	312 11 0 00 044216 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14738	042113	004 11 0 00 036552 		ER4	AC+1,36552		;LOW PRODUCT FAILED
 14739		577777	777777			AEE=XX				;INITIAL C(E)
 14740	042114	312 06 0 00 044072 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14741	042115	005 06 0 00 036553 		ER5	E,36553			;C(E) WAS CLOBBERED
 14742	042116	321 12 0 00 042104 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 16-21
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0292

 14759	042117	200 10 0 00 043763 		MOVE	AC,[-1]			;PRELOAD AC (MULTIPLIER)
 14760		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14761	042120	200 11 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14762		377777	777777			AEE=XX				;INITIAL C(E)
 14763	042121	200 06 0 00 044073 		MOVE	E,[XX]			;PRELOAD E (MULTIPLICAND)
 14764	042122	224 10 0 00 000006 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14765		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 14766	042123	312 10 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14767	042124	003 10 0 00 036561 		ER3	AC,36561		;HIGH PRODUCT FAILED
 14768		400000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 14769	042125	312 11 0 00 044217 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14770	042126	004 11 0 00 036562 		ER4	AC+1,36562		;LOW PRODUCT FAILED
 14771		377777	777777			AEE=XX				;INITIAL C(E)
 14772	042127	312 06 0 00 044073 		CAME	E,[XX]			;WAS C(E) CLOBBERED?
 14773	042130	005 06 0 00 036563 		ER5	E,36563			;C(E) WAS CLOBBERED
 14774	042131	321 12 0 00 042117 		JUMPL	AC+2,F36560		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0293

 14775			000014			AC=14
 14776			000012			E=<AC-2>&17
 14777						SAVEAC	(1,1)^
 14778	042132	201 16 0 00 042132 		MOVEI	AC+2,.		;SAVE TEST PC
 14779	042133	202 16 0 00 030051 		MOVEM	AC+2,TESTPC
 14780	042134	201 16 0 00 000016 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 14781	042135	202 16 0 00 044437 		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	042136	200 14 0 00 044030 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14811		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14812	042137	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14813		777777	777777			AEE=-1				;INITIAL C(E)
 14814	042140	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14815	042141	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14816			000000			AR1=V1				;EXPECTED RESULT IN AC
 14817	042142	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14818	042143	003 14 0 00 036571 		ER3	AC,36571		;HIGH PRODUCT FAILED
 14819			000002			AR2=MX				;EXPECTED RESULT IN AC+1
 14820	042144	312 15 0 00 043765 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14821	042145	004 15 0 00 036572 		ER4	AC+1,36572		;LOW PRODUCT FAILED
 14822		777777	777777			AEE=-1				;INITIAL C(E)
 14823	042146	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14824	042147	005 12 0 00 036573 		ER5	E,36573			;C(E) WAS CLOBBERED
 14825	042150	321 16 0 00 042136 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0294

 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	042151	200 14 0 00 044031 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14843		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14844	042152	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14845		777777	777777			AEE=-1				;INITIAL C(E)
 14846	042153	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14847	042154	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14848			000000			AR1=V1				;EXPECTED RESULT IN AC
 14849	042155	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14850	042156	003 14 0 00 036601 		ER3	AC,36601		;HIGH PRODUCT FAILED
 14851			000003			AR2=MX				;EXPECTED RESULT IN AC+1
 14852	042157	312 15 0 00 044074 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14853	042160	004 15 0 00 036602 		ER4	AC+1,36602		;LOW PRODUCT FAILED
 14854		777777	777777			AEE=-1				;INITIAL C(E)
 14855	042161	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14856	042162	005 12 0 00 036603 		ER5	E,36603			;C(E) WAS CLOBBERED
 14857	042163	321 16 0 00 042151 		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	042164	200 14 0 00 044032 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14875		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14876	042165	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14877		777777	777777			AEE=-1				;INITIAL C(E)
 14878	042166	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14879	042167	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14880			000000			AR1=V1				;EXPECTED RESULT IN AC
 14881	042170	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14882	042171	003 14 0 00 036611 		ER3	AC,36611		;HIGH PRODUCT FAILED
 14883			000005			AR2=MX				;EXPECTED RESULT IN AC+1
 14884	042172	312 15 0 00 044075 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0295

 14885	042173	004 15 0 00 036612 		ER4	AC+1,36612		;LOW PRODUCT FAILED
 14886		777777	777777			AEE=-1				;INITIAL C(E)
 14887	042174	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14888	042175	005 12 0 00 036613 		ER5	E,36613			;C(E) WAS CLOBBERED
 14889	042176	321 16 0 00 042164 		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	042177	200 14 0 00 044033 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14907		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14908	042200	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14909		777777	777777			AEE=-1				;INITIAL C(E)
 14910	042201	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14911	042202	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14912			000000			AR1=V1				;EXPECTED RESULT IN AC
 14913	042203	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14914	042204	003 14 0 00 036621 		ER3	AC,36621		;HIGH PRODUCT FAILED
 14915			000011			AR2=MX				;EXPECTED RESULT IN AC+1
 14916	042205	312 15 0 00 044100 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14917	042206	004 15 0 00 036622 		ER4	AC+1,36622		;LOW PRODUCT FAILED
 14918		777777	777777			AEE=-1				;INITIAL C(E)
 14919	042207	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14920	042210	005 12 0 00 036623 		ER5	E,36623			;C(E) WAS CLOBBERED
 14921	042211	321 16 0 00 042177 		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	042212	200 14 0 00 044034 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14939		777777	777777			AA2=-1				;INITIAL C(AC+1)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0296

 14940	042213	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14941		777777	777777			AEE=-1				;INITIAL C(E)
 14942	042214	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14943	042215	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14944			000000			AR1=V1				;EXPECTED RESULT IN AC
 14945	042216	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14946	042217	003 14 0 00 036631 		ER3	AC,36631		;HIGH PRODUCT FAILED
 14947			000021			AR2=MX				;EXPECTED RESULT IN AC+1
 14948	042220	312 15 0 00 044160 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14949	042221	004 15 0 00 036632 		ER4	AC+1,36632		;LOW PRODUCT FAILED
 14950		777777	777777			AEE=-1				;INITIAL C(E)
 14951	042222	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14952	042223	005 12 0 00 036633 		ER5	E,36633			;C(E) WAS CLOBBERED
 14953	042224	321 16 0 00 042212 		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	042225	200 14 0 00 044035 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 14971		777777	777777			AA2=-1				;INITIAL C(AC+1)
 14972	042226	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 14973		777777	777777			AEE=-1				;INITIAL C(E)
 14974	042227	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 14975	042230	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 14976			000000			AR1=V1				;EXPECTED RESULT IN AC
 14977	042231	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 14978	042232	003 14 0 00 036641 		ER3	AC,36641		;HIGH PRODUCT FAILED
 14979			000041			AR2=MX				;EXPECTED RESULT IN AC+1
 14980	042233	312 15 0 00 044161 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 14981	042234	004 15 0 00 036642 		ER4	AC+1,36642		;LOW PRODUCT FAILED
 14982		777777	777777			AEE=-1				;INITIAL C(E)
 14983	042235	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 14984	042236	005 12 0 00 036643 		ER5	E,36643			;C(E) WAS CLOBBERED
 14985	042237	321 16 0 00 042225 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0297

 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	042240	200 14 0 00 044036 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15003		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15004	042241	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15005		777777	777777			AEE=-1				;INITIAL C(E)
 15006	042242	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15007	042243	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15008			000000			AR1=V1				;EXPECTED RESULT IN AC
 15009	042244	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15010	042245	003 14 0 00 036651 		ER3	AC,36651		;HIGH PRODUCT FAILED
 15011			000101			AR2=MX				;EXPECTED RESULT IN AC+1
 15012	042246	312 15 0 00 044162 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15013	042247	004 15 0 00 036652 		ER4	AC+1,36652		;LOW PRODUCT FAILED
 15014		777777	777777			AEE=-1				;INITIAL C(E)
 15015	042250	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15016	042251	005 12 0 00 036653 		ER5	E,36653			;C(E) WAS CLOBBERED
 15017	042252	321 16 0 00 042240 		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	042253	200 14 0 00 044037 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15035		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15036	042254	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15037		777777	777777			AEE=-1				;INITIAL C(E)
 15038	042255	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15039	042256	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15040			000000			AR1=V1				;EXPECTED RESULT IN AC
 15041	042257	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15042	042260	003 14 0 00 036661 		ER3	AC,36661		;HIGH PRODUCT FAILED
 15043			000201			AR2=MX				;EXPECTED RESULT IN AC+1
 15044	042261	312 15 0 00 044163 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15045	042262	004 15 0 00 036662 		ER4	AC+1,36662		;LOW PRODUCT FAILED
 15046		777777	777777			AEE=-1				;INITIAL C(E)
 15047	042263	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15048	042264	005 12 0 00 036663 		ER5	E,36663			;C(E) WAS CLOBBERED
 15049	042265	321 16 0 00 042253 		JUMPL	AC+2,F36660		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0298

 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	042266	200 14 0 00 044040 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15067		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15068	042267	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15069		777777	777777			AEE=-1				;INITIAL C(E)
 15070	042270	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15071	042271	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15072			000000			AR1=V1				;EXPECTED RESULT IN AC
 15073	042272	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15074	042273	003 14 0 00 036671 		ER3	AC,36671		;HIGH PRODUCT FAILED
 15075			000401			AR2=MX				;EXPECTED RESULT IN AC+1
 15076	042274	312 15 0 00 044164 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15077	042275	004 15 0 00 036672 		ER4	AC+1,36672		;LOW PRODUCT FAILED
 15078		777777	777777			AEE=-1				;INITIAL C(E)
 15079	042276	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15080	042277	005 12 0 00 036673 		ER5	E,36673			;C(E) WAS CLOBBERED
 15081	042300	321 16 0 00 042266 		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	042301	200 14 0 00 044041 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15099		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15100	042302	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15101		777777	777777			AEE=-1				;INITIAL C(E)
 15102	042303	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15103	042304	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15104			000000			AR1=V1				;EXPECTED RESULT IN AC
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0299

 15105	042305	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15106	042306	003 14 0 00 036701 		ER3	AC,36701		;HIGH PRODUCT FAILED
 15107			001001			AR2=MX				;EXPECTED RESULT IN AC+1
 15108	042307	312 15 0 00 044165 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15109	042310	004 15 0 00 036702 		ER4	AC+1,36702		;LOW PRODUCT FAILED
 15110		777777	777777			AEE=-1				;INITIAL C(E)
 15111	042311	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15112	042312	005 12 0 00 036703 		ER5	E,36703			;C(E) WAS CLOBBERED
 15113	042313	321 16 0 00 042301 		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	042314	200 14 0 00 044042 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15131		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15132	042315	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15133		777777	777777			AEE=-1				;INITIAL C(E)
 15134	042316	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15135	042317	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15136			000000			AR1=V1				;EXPECTED RESULT IN AC
 15137	042320	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15138	042321	003 14 0 00 036711 		ER3	AC,36711		;HIGH PRODUCT FAILED
 15139			002001			AR2=MX				;EXPECTED RESULT IN AC+1
 15140	042322	312 15 0 00 044166 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15141	042323	004 15 0 00 036712 		ER4	AC+1,36712		;LOW PRODUCT FAILED
 15142		777777	777777			AEE=-1				;INITIAL C(E)
 15143	042324	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15144	042325	005 12 0 00 036713 		ER5	E,36713			;C(E) WAS CLOBBERED
 15145	042326	321 16 0 00 042314 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0300

 15160
 15161		777777	773777		F36720:	AA1=XX				;INITIAL C(AC)
 15162	042327	200 14 0 00 044043 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15163		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15164	042330	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15165		777777	777777			AEE=-1				;INITIAL C(E)
 15166	042331	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15167	042332	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15168			000000			AR1=V1				;EXPECTED RESULT IN AC
 15169	042333	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15170	042334	003 14 0 00 036721 		ER3	AC,36721		;HIGH PRODUCT FAILED
 15171			004001			AR2=MX				;EXPECTED RESULT IN AC+1
 15172	042335	312 15 0 00 044167 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15173	042336	004 15 0 00 036722 		ER4	AC+1,36722		;LOW PRODUCT FAILED
 15174		777777	777777			AEE=-1				;INITIAL C(E)
 15175	042337	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15176	042340	005 12 0 00 036723 		ER5	E,36723			;C(E) WAS CLOBBERED
 15177	042341	321 16 0 00 042327 		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	042342	200 14 0 00 044044 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15195		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15196	042343	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15197		777777	777777			AEE=-1				;INITIAL C(E)
 15198	042344	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15199	042345	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15200			000000			AR1=V1				;EXPECTED RESULT IN AC
 15201	042346	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15202	042347	003 14 0 00 036731 		ER3	AC,36731		;HIGH PRODUCT FAILED
 15203			010001			AR2=MX				;EXPECTED RESULT IN AC+1
 15204	042350	312 15 0 00 044170 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15205	042351	004 15 0 00 036732 		ER4	AC+1,36732		;LOW PRODUCT FAILED
 15206		777777	777777			AEE=-1				;INITIAL C(E)
 15207	042352	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15208	042353	005 12 0 00 036733 		ER5	E,36733			;C(E) WAS CLOBBERED
 15209	042354	321 16 0 00 042342 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0301

 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	042355	200 14 0 00 044045 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15227		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15228	042356	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15229		777777	777777			AEE=-1				;INITIAL C(E)
 15230	042357	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15231	042360	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15232			000000			AR1=V1				;EXPECTED RESULT IN AC
 15233	042361	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15234	042362	003 14 0 00 036741 		ER3	AC,36741		;HIGH PRODUCT FAILED
 15235			020001			AR2=MX				;EXPECTED RESULT IN AC+1
 15236	042363	312 15 0 00 044171 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15237	042364	004 15 0 00 036742 		ER4	AC+1,36742		;LOW PRODUCT FAILED
 15238		777777	777777			AEE=-1				;INITIAL C(E)
 15239	042365	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15240	042366	005 12 0 00 036743 		ER5	E,36743			;C(E) WAS CLOBBERED
 15241	042367	321 16 0 00 042355 		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	042370	200 14 0 00 044046 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15259		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15260	042371	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15261		777777	777777			AEE=-1				;INITIAL C(E)
 15262	042372	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15263	042373	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15264			000000			AR1=V1				;EXPECTED RESULT IN AC
 15265	042374	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15266	042375	003 14 0 00 036751 		ER3	AC,36751		;HIGH PRODUCT FAILED
 15267			040001			AR2=MX				;EXPECTED RESULT IN AC+1
 15268	042376	312 15 0 00 044172 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15269	042377	004 15 0 00 036752 		ER4	AC+1,36752		;LOW PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0302

 15270		777777	777777			AEE=-1				;INITIAL C(E)
 15271	042400	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15272	042401	005 12 0 00 036753 		ER5	E,36753			;C(E) WAS CLOBBERED
 15273	042402	321 16 0 00 042370 		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	042403	200 14 0 00 044047 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15291		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15292	042404	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15293		777777	777777			AEE=-1				;INITIAL C(E)
 15294	042405	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15295	042406	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15296			000000			AR1=V1				;EXPECTED RESULT IN AC
 15297	042407	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15298	042410	003 14 0 00 036761 		ER3	AC,36761		;HIGH PRODUCT FAILED
 15299			100001			AR2=MX				;EXPECTED RESULT IN AC+1
 15300	042411	312 15 0 00 044173 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15301	042412	004 15 0 00 036762 		ER4	AC+1,36762		;LOW PRODUCT FAILED
 15302		777777	777777			AEE=-1				;INITIAL C(E)
 15303	042413	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15304	042414	005 12 0 00 036763 		ER5	E,36763			;C(E) WAS CLOBBERED
 15305	042415	321 16 0 00 042403 		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	042416	200 14 0 00 044050 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15323		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15324	042417	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0303

 15325		777777	777777			AEE=-1				;INITIAL C(E)
 15326	042420	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15327	042421	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15328			000000			AR1=V1				;EXPECTED RESULT IN AC
 15329	042422	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15330	042423	003 14 0 00 036771 		ER3	AC,36771		;HIGH PRODUCT FAILED
 15331			200001			AR2=MX				;EXPECTED RESULT IN AC+1
 15332	042424	312 15 0 00 044174 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15333	042425	004 15 0 00 036772 		ER4	AC+1,36772		;LOW PRODUCT FAILED
 15334		777777	777777			AEE=-1				;INITIAL C(E)
 15335	042426	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15336	042427	005 12 0 00 036773 		ER5	E,36773			;C(E) WAS CLOBBERED
 15337	042430	321 16 0 00 042416 		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	042431	200 14 0 00 044051 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15355		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15356	042432	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15357		777777	777777			AEE=-1				;INITIAL C(E)
 15358	042433	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15359	042434	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15360			000000			AR1=V1				;EXPECTED RESULT IN AC
 15361	042435	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15362	042436	003 14 0 00 037001 		ER3	AC,37001		;HIGH PRODUCT FAILED
 15363			400001			AR2=MX				;EXPECTED RESULT IN AC+1
 15364	042437	312 15 0 00 044175 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15365	042440	004 15 0 00 037002 		ER4	AC+1,37002		;LOW PRODUCT FAILED
 15366		777777	777777			AEE=-1				;INITIAL C(E)
 15367	042441	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15368	042442	005 12 0 00 037003 		ER5	E,37003			;C(E) WAS CLOBBERED
 15369	042443	321 16 0 00 042431 		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)^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0304

 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	042444	200 14 0 00 044052 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15387		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15388	042445	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15389		777777	777777			AEE=-1				;INITIAL C(E)
 15390	042446	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15391	042447	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15392			000000			AR1=V1				;EXPECTED RESULT IN AC
 15393	042450	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15394	042451	003 14 0 00 037011 		ER3	AC,37011		;HIGH PRODUCT FAILED
 15395		000001	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15396	042452	312 15 0 00 044176 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15397	042453	004 15 0 00 037012 		ER4	AC+1,37012		;LOW PRODUCT FAILED
 15398		777777	777777			AEE=-1				;INITIAL C(E)
 15399	042454	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15400	042455	005 12 0 00 037013 		ER5	E,37013			;C(E) WAS CLOBBERED
 15401	042456	321 16 0 00 042444 		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	042457	200 14 0 00 044053 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15419		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15420	042460	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15421		777777	777777			AEE=-1				;INITIAL C(E)
 15422	042461	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15423	042462	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15424			000000			AR1=V1				;EXPECTED RESULT IN AC
 15425	042463	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15426	042464	003 14 0 00 037021 		ER3	AC,37021		;HIGH PRODUCT FAILED
 15427		000002	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15428	042465	312 15 0 00 044177 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15429	042466	004 15 0 00 037022 		ER4	AC+1,37022		;LOW PRODUCT FAILED
 15430		777777	777777			AEE=-1				;INITIAL C(E)
 15431	042467	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15432	042470	005 12 0 00 037023 		ER5	E,37023			;C(E) WAS CLOBBERED
 15433	042471	321 16 0 00 042457 		JUMPL	AC+2,F37020		;LOOP ON ERROR SWITCH^
 15434
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0305

 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	042472	200 14 0 00 044054 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15451		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15452	042473	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15453		777777	777777			AEE=-1				;INITIAL C(E)
 15454	042474	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15455	042475	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15456			000000			AR1=V1				;EXPECTED RESULT IN AC
 15457	042476	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15458	042477	003 14 0 00 037031 		ER3	AC,37031		;HIGH PRODUCT FAILED
 15459		000004	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15460	042500	312 15 0 00 044200 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15461	042501	004 15 0 00 037032 		ER4	AC+1,37032		;LOW PRODUCT FAILED
 15462		777777	777777			AEE=-1				;INITIAL C(E)
 15463	042502	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15464	042503	005 12 0 00 037033 		ER5	E,37033			;C(E) WAS CLOBBERED
 15465	042504	321 16 0 00 042472 		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	042505	200 14 0 00 044055 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15483		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15484	042506	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15485		777777	777777			AEE=-1				;INITIAL C(E)
 15486	042507	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15487	042510	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15488			000000			AR1=V1				;EXPECTED RESULT IN AC
 15489	042511	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0306

 15490	042512	003 14 0 00 037041 		ER3	AC,37041		;HIGH PRODUCT FAILED
 15491		000010	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15492	042513	312 15 0 00 044201 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15493	042514	004 15 0 00 037042 		ER4	AC+1,37042		;LOW PRODUCT FAILED
 15494		777777	777777			AEE=-1				;INITIAL C(E)
 15495	042515	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15496	042516	005 12 0 00 037043 		ER5	E,37043			;C(E) WAS CLOBBERED
 15497	042517	321 16 0 00 042505 		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	042520	200 14 0 00 044056 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15515		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15516	042521	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15517		777777	777777			AEE=-1				;INITIAL C(E)
 15518	042522	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15519	042523	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15520			000000			AR1=V1				;EXPECTED RESULT IN AC
 15521	042524	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15522	042525	003 14 0 00 037051 		ER3	AC,37051		;HIGH PRODUCT FAILED
 15523		000020	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15524	042526	312 15 0 00 044202 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15525	042527	004 15 0 00 037052 		ER4	AC+1,37052		;LOW PRODUCT FAILED
 15526		777777	777777			AEE=-1				;INITIAL C(E)
 15527	042530	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15528	042531	005 12 0 00 037053 		ER5	E,37053			;C(E) WAS CLOBBERED
 15529	042532	321 16 0 00 042520 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0307

 15545		777737	777777		F37060:	AA1=XX				;INITIAL C(AC)
 15546	042533	200 14 0 00 044057 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15547		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15548	042534	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15549		777777	777777			AEE=-1				;INITIAL C(E)
 15550	042535	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15551	042536	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15552			000000			AR1=V1				;EXPECTED RESULT IN AC
 15553	042537	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15554	042540	003 14 0 00 037061 		ER3	AC,37061		;HIGH PRODUCT FAILED
 15555		000040	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15556	042541	312 15 0 00 044203 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15557	042542	004 15 0 00 037062 		ER4	AC+1,37062		;LOW PRODUCT FAILED
 15558		777777	777777			AEE=-1				;INITIAL C(E)
 15559	042543	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15560	042544	005 12 0 00 037063 		ER5	E,37063			;C(E) WAS CLOBBERED
 15561	042545	321 16 0 00 042533 		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	042546	200 14 0 00 044060 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15579		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15580	042547	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15581		777777	777777			AEE=-1				;INITIAL C(E)
 15582	042550	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15583	042551	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15584			000000			AR1=V1				;EXPECTED RESULT IN AC
 15585	042552	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15586	042553	003 14 0 00 037071 		ER3	AC,37071		;HIGH PRODUCT FAILED
 15587		000100	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15588	042554	312 15 0 00 044204 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15589	042555	004 15 0 00 037072 		ER4	AC+1,37072		;LOW PRODUCT FAILED
 15590		777777	777777			AEE=-1				;INITIAL C(E)
 15591	042556	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15592	042557	005 12 0 00 037073 		ER5	E,37073			;C(E) WAS CLOBBERED
 15593	042560	321 16 0 00 042546 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0308

 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	042561	200 14 0 00 044061 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15611		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15612	042562	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15613		777777	777777			AEE=-1				;INITIAL C(E)
 15614	042563	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15615	042564	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15616			000000			AR1=V1				;EXPECTED RESULT IN AC
 15617	042565	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15618	042566	003 14 0 00 037101 		ER3	AC,37101		;HIGH PRODUCT FAILED
 15619		000200	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15620	042567	312 15 0 00 044205 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15621	042570	004 15 0 00 037102 		ER4	AC+1,37102		;LOW PRODUCT FAILED
 15622		777777	777777			AEE=-1				;INITIAL C(E)
 15623	042571	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15624	042572	005 12 0 00 037103 		ER5	E,37103			;C(E) WAS CLOBBERED
 15625	042573	321 16 0 00 042561 		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	042574	200 14 0 00 044062 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15643		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15644	042575	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15645		777777	777777			AEE=-1				;INITIAL C(E)
 15646	042576	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15647	042577	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15648			000000			AR1=V1				;EXPECTED RESULT IN AC
 15649	042600	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15650	042601	003 14 0 00 037111 		ER3	AC,37111		;HIGH PRODUCT FAILED
 15651		000400	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15652	042602	312 15 0 00 044206 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15653	042603	004 15 0 00 037112 		ER4	AC+1,37112		;LOW PRODUCT FAILED
 15654		777777	777777			AEE=-1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0309

 15655	042604	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15656	042605	005 12 0 00 037113 		ER5	E,37113			;C(E) WAS CLOBBERED
 15657	042606	321 16 0 00 042574 		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	042607	200 14 0 00 044063 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15675		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15676	042610	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15677		777777	777777			AEE=-1				;INITIAL C(E)
 15678	042611	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15679	042612	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15680			000000			AR1=V1				;EXPECTED RESULT IN AC
 15681	042613	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15682	042614	003 14 0 00 037121 		ER3	AC,37121		;HIGH PRODUCT FAILED
 15683		001000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15684	042615	312 15 0 00 044207 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15685	042616	004 15 0 00 037122 		ER4	AC+1,37122		;LOW PRODUCT FAILED
 15686		777777	777777			AEE=-1				;INITIAL C(E)
 15687	042617	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15688	042620	005 12 0 00 037123 		ER5	E,37123			;C(E) WAS CLOBBERED
 15689	042621	321 16 0 00 042607 		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	042622	200 14 0 00 044064 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15707		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15708	042623	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15709		777777	777777			AEE=-1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0310

 15710	042624	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15711	042625	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15712			000000			AR1=V1				;EXPECTED RESULT IN AC
 15713	042626	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15714	042627	003 14 0 00 037131 		ER3	AC,37131		;HIGH PRODUCT FAILED
 15715		002000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15716	042630	312 15 0 00 044210 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15717	042631	004 15 0 00 037132 		ER4	AC+1,37132		;LOW PRODUCT FAILED
 15718		777777	777777			AEE=-1				;INITIAL C(E)
 15719	042632	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15720	042633	005 12 0 00 037133 		ER5	E,37133			;C(E) WAS CLOBBERED
 15721	042634	321 16 0 00 042622 		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	042635	200 14 0 00 044065 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15739		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15740	042636	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15741		777777	777777			AEE=-1				;INITIAL C(E)
 15742	042637	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15743	042640	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15744			000000			AR1=V1				;EXPECTED RESULT IN AC
 15745	042641	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15746	042642	003 14 0 00 037141 		ER3	AC,37141		;HIGH PRODUCT FAILED
 15747		004000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15748	042643	312 15 0 00 044211 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15749	042644	004 15 0 00 037142 		ER4	AC+1,37142		;LOW PRODUCT FAILED
 15750		777777	777777			AEE=-1				;INITIAL C(E)
 15751	042645	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15752	042646	005 12 0 00 037143 		ER5	E,37143			;C(E) WAS CLOBBERED
 15753	042647	321 16 0 00 042635 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0311

 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	042650	200 14 0 00 044066 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15771		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15772	042651	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15773		777777	777777			AEE=-1				;INITIAL C(E)
 15774	042652	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15775	042653	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15776			000000			AR1=V1				;EXPECTED RESULT IN AC
 15777	042654	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15778	042655	003 14 0 00 037151 		ER3	AC,37151		;HIGH PRODUCT FAILED
 15779		010000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15780	042656	312 15 0 00 044212 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15781	042657	004 15 0 00 037152 		ER4	AC+1,37152		;LOW PRODUCT FAILED
 15782		777777	777777			AEE=-1				;INITIAL C(E)
 15783	042660	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15784	042661	005 12 0 00 037153 		ER5	E,37153			;C(E) WAS CLOBBERED
 15785	042662	321 16 0 00 042650 		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	042663	200 14 0 00 044067 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15803		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15804	042664	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15805		777777	777777			AEE=-1				;INITIAL C(E)
 15806	042665	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15807	042666	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15808			000000			AR1=V1				;EXPECTED RESULT IN AC
 15809	042667	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15810	042670	003 14 0 00 037161 		ER3	AC,37161		;HIGH PRODUCT FAILED
 15811		020000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15812	042671	312 15 0 00 044213 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15813	042672	004 15 0 00 037162 		ER4	AC+1,37162		;LOW PRODUCT FAILED
 15814		777777	777777			AEE=-1				;INITIAL C(E)
 15815	042673	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15816	042674	005 12 0 00 037163 		ER5	E,37163			;C(E) WAS CLOBBERED
 15817	042675	321 16 0 00 042663 		JUMPL	AC+2,F37160		;LOOP ON ERROR SWITCH^
 15818
 15819			003717			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0312

 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	042676	200 14 0 00 044070 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15835		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15836	042677	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15837		777777	777777			AEE=-1				;INITIAL C(E)
 15838	042700	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15839	042701	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15840			000000			AR1=V1				;EXPECTED RESULT IN AC
 15841	042702	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15842	042703	003 14 0 00 037171 		ER3	AC,37171		;HIGH PRODUCT FAILED
 15843		040000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15844	042704	312 15 0 00 044214 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15845	042705	004 15 0 00 037172 		ER4	AC+1,37172		;LOW PRODUCT FAILED
 15846		777777	777777			AEE=-1				;INITIAL C(E)
 15847	042706	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15848	042707	005 12 0 00 037173 		ER5	E,37173			;C(E) WAS CLOBBERED
 15849	042710	321 16 0 00 042676 		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	042711	200 14 0 00 044071 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15867		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15868	042712	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15869		777777	777777			AEE=-1				;INITIAL C(E)
 15870	042713	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15871	042714	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15872			000000			AR1=V1				;EXPECTED RESULT IN AC
 15873	042715	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15874	042716	003 14 0 00 037201 		ER3	AC,37201		;HIGH PRODUCT FAILED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0313

 15875		100000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15876	042717	312 15 0 00 044215 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15877	042720	004 15 0 00 037202 		ER4	AC+1,37202		;LOW PRODUCT FAILED
 15878		777777	777777			AEE=-1				;INITIAL C(E)
 15879	042721	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15880	042722	005 12 0 00 037203 		ER5	E,37203			;C(E) WAS CLOBBERED
 15881	042723	321 16 0 00 042711 		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	042724	200 14 0 00 044072 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15899		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15900	042725	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15901		777777	777777			AEE=-1				;INITIAL C(E)
 15902	042726	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15903	042727	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15904			000000			AR1=V1				;EXPECTED RESULT IN AC
 15905	042730	312 14 0 00 043762 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15906	042731	003 14 0 00 037211 		ER3	AC,37211		;HIGH PRODUCT FAILED
 15907		200000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15908	042732	312 15 0 00 044216 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15909	042733	004 15 0 00 037212 		ER4	AC+1,37212		;LOW PRODUCT FAILED
 15910		777777	777777			AEE=-1				;INITIAL C(E)
 15911	042734	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15912	042735	005 12 0 00 037213 		ER5	E,37213			;C(E) WAS CLOBBERED
 15913	042736	321 16 0 00 042724 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 17-21
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0314

 15930	042737	200 14 0 00 044073 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15931		777777	777777			AA2=-1				;INITIAL C(AC+1)
 15932	042740	200 15 0 00 043763 		MOVE	AC+1,[-1]		;PRELOAD AC+1
 15933		777777	777777			AEE=-1				;INITIAL C(E)
 15934	042741	200 12 0 00 043763 		MOVE	E,[-1]			;PRELOAD E (MULTIPLICAND)
 15935	042742	224 14 0 00 000012 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 15936		777777	777777			AR1=V1				;EXPECTED RESULT IN AC
 15937	042743	312 14 0 00 043763 		CAME	AC,[V1]			;IS HIGH PRODUCT CORRECT?
 15938	042744	003 14 0 00 037221 		ER3	AC,37221		;HIGH PRODUCT FAILED
 15939		400000	000001			AR2=MX				;EXPECTED RESULT IN AC+1
 15940	042745	312 15 0 00 044217 		CAME	AC+1,[MX]		;IS LOW PRODUCT CORRECT?
 15941	042746	004 15 0 00 037222 		ER4	AC+1,37222		;LOW PRODUCT FAILED
 15942		777777	777777			AEE=-1				;INITIAL C(E)
 15943	042747	312 12 0 00 043763 		CAME	E,[-1]			;WAS C(E) CLOBBERED?
 15944	042750	005 12 0 00 037223 		ER5	E,37223			;C(E) WAS CLOBBERED
 15945	042751	321 16 0 00 042737 		JUMPL	AC+2,F37220		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0315

 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	042752	201 15 0 00 042752 		MOVEI	AC+2,.		;SAVE TEST PC
 15952	042753	202 15 0 00 030051 		MOVEM	AC+2,TESTPC
 15953	042754	201 15 0 00 000015 		MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
 15954	042755	202 15 0 00 044437 		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	042756	200 13 0 00 043764 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 15996			000000			AA2=0				;INITIAL C(AC+1)
 15997	042757	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 15998		525252	525252			AEE=V1				;INITIAL C(E)
 15999	042760	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16000	042761	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-1
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0316

 16001		777777	777777			AR1=V3				;EXPECTED RESULT IN AC
 16002	042762	312 13 0 00 043763 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16003	042763	003 13 0 00 037231 		ER3	AC,37231		;HIGH PRODUCT FAILED
 16004		525252	525252			AR2=V2				;EXPECTED RESULT IN AC+1
 16005	042764	312 14 0 00 044220 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16006	042765	004 14 0 00 037232 		ER4	AC+1,37232		;LOW PRODUCT FAILED
 16007		525252	525252			AEE=V1				;INITIAL C(E)
 16008	042766	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16009	042767	005 11 0 00 037233 		ER5	E,37233			;C(E) WAS CLOBBERED
 16010	042770	321 15 0 00 042756 		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	042771	200 13 0 00 043765 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16033			000000			AA2=0				;INITIAL C(AC+1)
 16034	042772	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16035		525252	525252			AEE=V1				;INITIAL C(E)
 16036	042773	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16037	042774	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16038		777777	777776			AR1=V3				;EXPECTED RESULT IN AC
 16039	042775	312 13 0 00 044030 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16040	042776	003 13 0 00 037241 		ER3	AC,37241		;HIGH PRODUCT FAILED
 16041		652525	252524			AR2=V2				;EXPECTED RESULT IN AC+1
 16042	042777	312 14 0 00 044221 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16043	043000	004 14 0 00 037242 		ER4	AC+1,37242		;LOW PRODUCT FAILED
 16044		525252	525252			AEE=V1				;INITIAL C(E)
 16045	043001	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16046	043002	005 11 0 00 037243 		ER5	E,37243			;C(E) WAS CLOBBERED
 16047	043003	321 15 0 00 042771 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-2
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0317

 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	043004	200 13 0 00 043766 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16070			000000			AA2=0				;INITIAL C(AC+1)
 16071	043005	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16072		525252	525252			AEE=V1				;INITIAL C(E)
 16073	043006	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16074	043007	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16075		777777	777775			AR1=V3				;EXPECTED RESULT IN AC
 16076	043010	312 13 0 00 044031 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16077	043011	003 13 0 00 037251 		ER3	AC,37251		;HIGH PRODUCT FAILED
 16078		525252	525250			AR2=V2				;EXPECTED RESULT IN AC+1
 16079	043012	312 14 0 00 044222 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16080	043013	004 14 0 00 037252 		ER4	AC+1,37252		;LOW PRODUCT FAILED
 16081		525252	525252			AEE=V1				;INITIAL C(E)
 16082	043014	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16083	043015	005 11 0 00 037253 		ER5	E,37253			;C(E) WAS CLOBBERED
 16084	043016	321 15 0 00 043004 		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	043017	200 13 0 00 043767 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16107			000000			AA2=0				;INITIAL C(AC+1)
 16108	043020	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16109		525252	525252			AEE=V1				;INITIAL C(E)
 16110	043021	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-3
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0318

 16111	043022	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16112		777777	777772			AR1=V3				;EXPECTED RESULT IN AC
 16113	043023	312 13 0 00 044110 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16114	043024	003 13 0 00 037261 		ER3	AC,37261		;HIGH PRODUCT FAILED
 16115		652525	252520			AR2=V2				;EXPECTED RESULT IN AC+1
 16116	043025	312 14 0 00 044223 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16117	043026	004 14 0 00 037262 		ER4	AC+1,37262		;LOW PRODUCT FAILED
 16118		525252	525252			AEE=V1				;INITIAL C(E)
 16119	043027	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16120	043030	005 11 0 00 037263 		ER5	E,37263			;C(E) WAS CLOBBERED
 16121	043031	321 15 0 00 043017 		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	043032	200 13 0 00 043770 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16144			000000			AA2=0				;INITIAL C(AC+1)
 16145	043033	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16146		525252	525252			AEE=V1				;INITIAL C(E)
 16147	043034	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16148	043035	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16149		777777	777765			AR1=V3				;EXPECTED RESULT IN AC
 16150	043036	312 13 0 00 044114 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16151	043037	003 13 0 00 037271 		ER3	AC,37271		;HIGH PRODUCT FAILED
 16152		525252	525240			AR2=V2				;EXPECTED RESULT IN AC+1
 16153	043040	312 14 0 00 044224 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16154	043041	004 14 0 00 037272 		ER4	AC+1,37272		;LOW PRODUCT FAILED
 16155		525252	525252			AEE=V1				;INITIAL C(E)
 16156	043042	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16157	043043	005 11 0 00 037273 		ER5	E,37273			;C(E) WAS CLOBBERED
 16158	043044	321 15 0 00 043032 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-4
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0319

 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	043045	200 13 0 00 043771 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16181			000000			AA2=0				;INITIAL C(AC+1)
 16182	043046	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16183		525252	525252			AEE=V1				;INITIAL C(E)
 16184	043047	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16185	043050	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16186		777777	777752			AR1=V3				;EXPECTED RESULT IN AC
 16187	043051	312 13 0 00 044225 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16188	043052	003 13 0 00 037301 		ER3	AC,37301		;HIGH PRODUCT FAILED
 16189		652525	252500			AR2=V2				;EXPECTED RESULT IN AC+1
 16190	043053	312 14 0 00 044226 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16191	043054	004 14 0 00 037302 		ER4	AC+1,37302		;LOW PRODUCT FAILED
 16192		525252	525252			AEE=V1				;INITIAL C(E)
 16193	043055	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16194	043056	005 11 0 00 037303 		ER5	E,37303			;C(E) WAS CLOBBERED
 16195	043057	321 15 0 00 043045 		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	043060	200 13 0 00 043772 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16218			000000			AA2=0				;INITIAL C(AC+1)
 16219	043061	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16220		525252	525252			AEE=V1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-5
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0320

 16221	043062	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16222	043063	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16223		777777	777725			AR1=V3				;EXPECTED RESULT IN AC
 16224	043064	312 13 0 00 044227 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16225	043065	003 13 0 00 037311 		ER3	AC,37311		;HIGH PRODUCT FAILED
 16226		525252	525200			AR2=V2				;EXPECTED RESULT IN AC+1
 16227	043066	312 14 0 00 044230 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16228	043067	004 14 0 00 037312 		ER4	AC+1,37312		;LOW PRODUCT FAILED
 16229		525252	525252			AEE=V1				;INITIAL C(E)
 16230	043070	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16231	043071	005 11 0 00 037313 		ER5	E,37313			;C(E) WAS CLOBBERED
 16232	043072	321 15 0 00 043060 		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	043073	200 13 0 00 043773 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16255			000000			AA2=0				;INITIAL C(AC+1)
 16256	043074	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16257		525252	525252			AEE=V1				;INITIAL C(E)
 16258	043075	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16259	043076	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16260		777777	777652			AR1=V3				;EXPECTED RESULT IN AC
 16261	043077	312 13 0 00 044231 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16262	043100	003 13 0 00 037321 		ER3	AC,37321		;HIGH PRODUCT FAILED
 16263		652525	252400			AR2=V2				;EXPECTED RESULT IN AC+1
 16264	043101	312 14 0 00 044232 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16265	043102	004 14 0 00 037322 		ER4	AC+1,37322		;LOW PRODUCT FAILED
 16266		525252	525252			AEE=V1				;INITIAL C(E)
 16267	043103	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16268	043104	005 11 0 00 037323 		ER5	E,37323			;C(E) WAS CLOBBERED
 16269	043105	321 15 0 00 043073 		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>
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-6
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0321

 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	043106	200 13 0 00 043774 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16292			000000			AA2=0				;INITIAL C(AC+1)
 16293	043107	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16294		525252	525252			AEE=V1				;INITIAL C(E)
 16295	043110	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16296	043111	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16297		777777	777525			AR1=V3				;EXPECTED RESULT IN AC
 16298	043112	312 13 0 00 044233 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16299	043113	003 13 0 00 037331 		ER3	AC,37331		;HIGH PRODUCT FAILED
 16300		525252	525000			AR2=V2				;EXPECTED RESULT IN AC+1
 16301	043114	312 14 0 00 044234 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16302	043115	004 14 0 00 037332 		ER4	AC+1,37332		;LOW PRODUCT FAILED
 16303		525252	525252			AEE=V1				;INITIAL C(E)
 16304	043116	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16305	043117	005 11 0 00 037333 		ER5	E,37333			;C(E) WAS CLOBBERED
 16306	043120	321 15 0 00 043106 		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	043121	200 13 0 00 043775 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16329			000000			AA2=0				;INITIAL C(AC+1)
 16330	043122	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-7
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0322

 16331		525252	525252			AEE=V1				;INITIAL C(E)
 16332	043123	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16333	043124	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16334		777777	777252			AR1=V3				;EXPECTED RESULT IN AC
 16335	043125	312 13 0 00 044235 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16336	043126	003 13 0 00 037341 		ER3	AC,37341		;HIGH PRODUCT FAILED
 16337		652525	252000			AR2=V2				;EXPECTED RESULT IN AC+1
 16338	043127	312 14 0 00 044236 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16339	043130	004 14 0 00 037342 		ER4	AC+1,37342		;LOW PRODUCT FAILED
 16340		525252	525252			AEE=V1				;INITIAL C(E)
 16341	043131	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16342	043132	005 11 0 00 037343 		ER5	E,37343			;C(E) WAS CLOBBERED
 16343	043133	321 15 0 00 043121 		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	043134	200 13 0 00 043776 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16366			000000			AA2=0				;INITIAL C(AC+1)
 16367	043135	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16368		525252	525252			AEE=V1				;INITIAL C(E)
 16369	043136	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16370	043137	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16371		777777	776525			AR1=V3				;EXPECTED RESULT IN AC
 16372	043140	312 13 0 00 044237 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16373	043141	003 13 0 00 037351 		ER3	AC,37351		;HIGH PRODUCT FAILED
 16374		525252	524000			AR2=V2				;EXPECTED RESULT IN AC+1
 16375	043142	312 14 0 00 044240 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16376	043143	004 14 0 00 037352 		ER4	AC+1,37352		;LOW PRODUCT FAILED
 16377		525252	525252			AEE=V1				;INITIAL C(E)
 16378	043144	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16379	043145	005 11 0 00 037353 		ER5	E,37353			;C(E) WAS CLOBBERED
 16380	043146	321 15 0 00 043134 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-8
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0323

 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	043147	200 13 0 00 043777 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16403			000000			AA2=0				;INITIAL C(AC+1)
 16404	043150	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16405		525252	525252			AEE=V1				;INITIAL C(E)
 16406	043151	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16407	043152	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16408		777777	775252			AR1=V3				;EXPECTED RESULT IN AC
 16409	043153	312 13 0 00 044241 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16410	043154	003 13 0 00 037361 		ER3	AC,37361		;HIGH PRODUCT FAILED
 16411		652525	250000			AR2=V2				;EXPECTED RESULT IN AC+1
 16412	043155	312 14 0 00 044242 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16413	043156	004 14 0 00 037362 		ER4	AC+1,37362		;LOW PRODUCT FAILED
 16414		525252	525252			AEE=V1				;INITIAL C(E)
 16415	043157	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16416	043160	005 11 0 00 037363 		ER5	E,37363			;C(E) WAS CLOBBERED
 16417	043161	321 15 0 00 043147 		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	043162	200 13 0 00 044000 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16440			000000			AA2=0				;INITIAL C(AC+1)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-9
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0324

 16441	043163	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16442		525252	525252			AEE=V1				;INITIAL C(E)
 16443	043164	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16444	043165	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16445		777777	772525			AR1=V3				;EXPECTED RESULT IN AC
 16446	043166	312 13 0 00 044243 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16447	043167	003 13 0 00 037371 		ER3	AC,37371		;HIGH PRODUCT FAILED
 16448		525252	520000			AR2=V2				;EXPECTED RESULT IN AC+1
 16449	043170	312 14 0 00 044244 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16450	043171	004 14 0 00 037372 		ER4	AC+1,37372		;LOW PRODUCT FAILED
 16451		525252	525252			AEE=V1				;INITIAL C(E)
 16452	043172	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16453	043173	005 11 0 00 037373 		ER5	E,37373			;C(E) WAS CLOBBERED
 16454	043174	321 15 0 00 043162 		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	043175	200 13 0 00 044001 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16477			000000			AA2=0				;INITIAL C(AC+1)
 16478	043176	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16479		525252	525252			AEE=V1				;INITIAL C(E)
 16480	043177	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16481	043200	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16482		777777	765252			AR1=V3				;EXPECTED RESULT IN AC
 16483	043201	312 13 0 00 044245 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16484	043202	003 13 0 00 037401 		ER3	AC,37401		;HIGH PRODUCT FAILED
 16485		652525	240000			AR2=V2				;EXPECTED RESULT IN AC+1
 16486	043203	312 14 0 00 044246 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16487	043204	004 14 0 00 037402 		ER4	AC+1,37402		;LOW PRODUCT FAILED
 16488		525252	525252			AEE=V1				;INITIAL C(E)
 16489	043205	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16490	043206	005 11 0 00 037403 		ER5	E,37403			;C(E) WAS CLOBBERED
 16491	043207	321 15 0 00 043175 		JUMPL	AC+2,F37400		;LOOP ON ERROR SWITCH^
 16492
 16493			003741			ADR=ADR+1
 16494			000025			WW=WW-1
 16495			040000			XX=XX+XX
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-10
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0325

 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	043210	200 13 0 00 044002 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16514			000000			AA2=0				;INITIAL C(AC+1)
 16515	043211	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16516		525252	525252			AEE=V1				;INITIAL C(E)
 16517	043212	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16518	043213	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16519		777777	752525			AR1=V3				;EXPECTED RESULT IN AC
 16520	043214	312 13 0 00 044247 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16521	043215	003 13 0 00 037411 		ER3	AC,37411		;HIGH PRODUCT FAILED
 16522		525252	500000			AR2=V2				;EXPECTED RESULT IN AC+1
 16523	043216	312 14 0 00 044250 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16524	043217	004 14 0 00 037412 		ER4	AC+1,37412		;LOW PRODUCT FAILED
 16525		525252	525252			AEE=V1				;INITIAL C(E)
 16526	043220	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16527	043221	005 11 0 00 037413 		ER5	E,37413			;C(E) WAS CLOBBERED
 16528	043222	321 15 0 00 043210 		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	043223	200 13 0 00 044003 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-11
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0326

 16551			000000			AA2=0				;INITIAL C(AC+1)
 16552	043224	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16553		525252	525252			AEE=V1				;INITIAL C(E)
 16554	043225	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16555	043226	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16556		777777	725252			AR1=V3				;EXPECTED RESULT IN AC
 16557	043227	312 13 0 00 044251 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16558	043230	003 13 0 00 037421 		ER3	AC,37421		;HIGH PRODUCT FAILED
 16559		652525	200000			AR2=V2				;EXPECTED RESULT IN AC+1
 16560	043231	312 14 0 00 044252 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16561	043232	004 14 0 00 037422 		ER4	AC+1,37422		;LOW PRODUCT FAILED
 16562		525252	525252			AEE=V1				;INITIAL C(E)
 16563	043233	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16564	043234	005 11 0 00 037423 		ER5	E,37423			;C(E) WAS CLOBBERED
 16565	043235	321 15 0 00 043223 		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	043236	200 13 0 00 044004 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16588			000000			AA2=0				;INITIAL C(AC+1)
 16589	043237	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16590		525252	525252			AEE=V1				;INITIAL C(E)
 16591	043240	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16592	043241	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16593		777777	652525			AR1=V3				;EXPECTED RESULT IN AC
 16594	043242	312 13 0 00 044253 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16595	043243	003 13 0 00 037431 		ER3	AC,37431		;HIGH PRODUCT FAILED
 16596		525252	400000			AR2=V2				;EXPECTED RESULT IN AC+1
 16597	043244	312 14 0 00 044254 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16598	043245	004 14 0 00 037432 		ER4	AC+1,37432		;LOW PRODUCT FAILED
 16599		525252	525252			AEE=V1				;INITIAL C(E)
 16600	043246	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16601	043247	005 11 0 00 037433 		ER5	E,37433			;C(E) WAS CLOBBERED
 16602	043250	321 15 0 00 043236 		JUMPL	AC+2,F37430		;LOOP ON ERROR SWITCH^
 16603
 16604			003744			ADR=ADR+1
 16605			000022			WW=WW-1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-12
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0327

 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	043251	200 13 0 00 044005 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16625			000000			AA2=0				;INITIAL C(AC+1)
 16626	043252	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16627		525252	525252			AEE=V1				;INITIAL C(E)
 16628	043253	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16629	043254	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16630		777777	525252			AR1=V3				;EXPECTED RESULT IN AC
 16631	043255	312 13 0 00 044255 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16632	043256	003 13 0 00 037441 		ER3	AC,37441		;HIGH PRODUCT FAILED
 16633		652525	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16634	043257	312 14 0 00 044256 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16635	043260	004 14 0 00 037442 		ER4	AC+1,37442		;LOW PRODUCT FAILED
 16636		525252	525252			AEE=V1				;INITIAL C(E)
 16637	043261	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16638	043262	005 11 0 00 037443 		ER5	E,37443			;C(E) WAS CLOBBERED
 16639	043263	321 15 0 00 043251 		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)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-13
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0328

 16661	043264	200 13 0 00 044006 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16662			000000			AA2=0				;INITIAL C(AC+1)
 16663	043265	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16664		525252	525252			AEE=V1				;INITIAL C(E)
 16665	043266	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16666	043267	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16667		777777	252525			AR1=V3				;EXPECTED RESULT IN AC
 16668	043270	312 13 0 00 044257 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16669	043271	003 13 0 00 037451 		ER3	AC,37451		;HIGH PRODUCT FAILED
 16670		525252	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16671	043272	312 14 0 00 044260 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16672	043273	004 14 0 00 037452 		ER4	AC+1,37452		;LOW PRODUCT FAILED
 16673		525252	525252			AEE=V1				;INITIAL C(E)
 16674	043274	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16675	043275	005 11 0 00 037453 		ER5	E,37453			;C(E) WAS CLOBBERED
 16676	043276	321 15 0 00 043264 		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	043277	200 13 0 00 044007 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16699			000000			AA2=0				;INITIAL C(AC+1)
 16700	043300	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16701		525252	525252			AEE=V1				;INITIAL C(E)
 16702	043301	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16703	043302	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16704		777776	525252			AR1=V3				;EXPECTED RESULT IN AC
 16705	043303	312 13 0 00 044261 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16706	043304	003 13 0 00 037461 		ER3	AC,37461		;HIGH PRODUCT FAILED
 16707		652524	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16708	043305	312 14 0 00 044262 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16709	043306	004 14 0 00 037462 		ER4	AC+1,37462		;LOW PRODUCT FAILED
 16710		525252	525252			AEE=V1				;INITIAL C(E)
 16711	043307	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16712	043310	005 11 0 00 037463 		ER5	E,37463			;C(E) WAS CLOBBERED
 16713	043311	321 15 0 00 043277 		JUMPL	AC+2,F37460		;LOOP ON ERROR SWITCH^
 16714
 16715			003747			ADR=ADR+1
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-14
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0329

 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	043312	200 13 0 00 044010 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16736			000000			AA2=0				;INITIAL C(AC+1)
 16737	043313	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16738		525252	525252			AEE=V1				;INITIAL C(E)
 16739	043314	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16740	043315	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16741		777775	252525			AR1=V3				;EXPECTED RESULT IN AC
 16742	043316	312 13 0 00 044263 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16743	043317	003 13 0 00 037471 		ER3	AC,37471		;HIGH PRODUCT FAILED
 16744		525250	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16745	043320	312 14 0 00 044264 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16746	043321	004 14 0 00 037472 		ER4	AC+1,37472		;LOW PRODUCT FAILED
 16747		525252	525252			AEE=V1				;INITIAL C(E)
 16748	043322	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16749	043323	005 11 0 00 037473 		ER5	E,37473			;C(E) WAS CLOBBERED
 16750	043324	321 15 0 00 043312 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-15
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0330

 16771		000010	000000		F37500:	AA1=XX				;INITIAL C(AC)
 16772	043325	200 13 0 00 044011 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16773			000000			AA2=0				;INITIAL C(AC+1)
 16774	043326	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16775		525252	525252			AEE=V1				;INITIAL C(E)
 16776	043327	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16777	043330	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16778		777772	525252			AR1=V3				;EXPECTED RESULT IN AC
 16779	043331	312 13 0 00 044265 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16780	043332	003 13 0 00 037501 		ER3	AC,37501		;HIGH PRODUCT FAILED
 16781		652520	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16782	043333	312 14 0 00 044266 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16783	043334	004 14 0 00 037502 		ER4	AC+1,37502		;LOW PRODUCT FAILED
 16784		525252	525252			AEE=V1				;INITIAL C(E)
 16785	043335	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16786	043336	005 11 0 00 037503 		ER5	E,37503			;C(E) WAS CLOBBERED
 16787	043337	321 15 0 00 043325 		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	043340	200 13 0 00 044012 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16810			000000			AA2=0				;INITIAL C(AC+1)
 16811	043341	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16812		525252	525252			AEE=V1				;INITIAL C(E)
 16813	043342	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16814	043343	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16815		777765	252525			AR1=V3				;EXPECTED RESULT IN AC
 16816	043344	312 13 0 00 044267 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16817	043345	003 13 0 00 037511 		ER3	AC,37511		;HIGH PRODUCT FAILED
 16818		525240	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16819	043346	312 14 0 00 044270 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16820	043347	004 14 0 00 037512 		ER4	AC+1,37512		;LOW PRODUCT FAILED
 16821		525252	525252			AEE=V1				;INITIAL C(E)
 16822	043350	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16823	043351	005 11 0 00 037513 		ER5	E,37513			;C(E) WAS CLOBBERED
 16824	043352	321 15 0 00 043340 		JUMPL	AC+2,F37510		;LOOP ON ERROR SWITCH^
 16825
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-16
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0331

 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	043353	200 13 0 00 044013 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16847			000000			AA2=0				;INITIAL C(AC+1)
 16848	043354	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16849		525252	525252			AEE=V1				;INITIAL C(E)
 16850	043355	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16851	043356	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16852		777752	525252			AR1=V3				;EXPECTED RESULT IN AC
 16853	043357	312 13 0 00 044271 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16854	043360	003 13 0 00 037521 		ER3	AC,37521		;HIGH PRODUCT FAILED
 16855		652500	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16856	043361	312 14 0 00 044272 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16857	043362	004 14 0 00 037522 		ER4	AC+1,37522		;LOW PRODUCT FAILED
 16858		525252	525252			AEE=V1				;INITIAL C(E)
 16859	043363	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16860	043364	005 11 0 00 037523 		ER5	E,37523			;C(E) WAS CLOBBERED
 16861	043365	321 15 0 00 043353 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-17
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0332

 16881
 16882		000100	000000		F37530:	AA1=XX				;INITIAL C(AC)
 16883	043366	200 13 0 00 044014 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16884			000000			AA2=0				;INITIAL C(AC+1)
 16885	043367	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16886		525252	525252			AEE=V1				;INITIAL C(E)
 16887	043370	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16888	043371	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16889		777725	252525			AR1=V3				;EXPECTED RESULT IN AC
 16890	043372	312 13 0 00 044273 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16891	043373	003 13 0 00 037531 		ER3	AC,37531		;HIGH PRODUCT FAILED
 16892		525200	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16893	043374	312 14 0 00 044274 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16894	043375	004 14 0 00 037532 		ER4	AC+1,37532		;LOW PRODUCT FAILED
 16895		525252	525252			AEE=V1				;INITIAL C(E)
 16896	043376	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16897	043377	005 11 0 00 037533 		ER5	E,37533			;C(E) WAS CLOBBERED
 16898	043400	321 15 0 00 043366 		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	043401	200 13 0 00 044015 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16921			000000			AA2=0				;INITIAL C(AC+1)
 16922	043402	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16923		525252	525252			AEE=V1				;INITIAL C(E)
 16924	043403	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16925	043404	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16926		777652	525252			AR1=V3				;EXPECTED RESULT IN AC
 16927	043405	312 13 0 00 044275 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16928	043406	003 13 0 00 037541 		ER3	AC,37541		;HIGH PRODUCT FAILED
 16929		652400	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16930	043407	312 14 0 00 044276 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16931	043410	004 14 0 00 037542 		ER4	AC+1,37542		;LOW PRODUCT FAILED
 16932		525252	525252			AEE=V1				;INITIAL C(E)
 16933	043411	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16934	043412	005 11 0 00 037543 		ER5	E,37543			;C(E) WAS CLOBBERED
 16935	043413	321 15 0 00 043401 		JUMPL	AC+2,F37540		;LOOP ON ERROR SWITCH^
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-18
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0333

 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	043414	200 13 0 00 044016 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16958			000000			AA2=0				;INITIAL C(AC+1)
 16959	043415	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16960		525252	525252			AEE=V1				;INITIAL C(E)
 16961	043416	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16962	043417	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 16963		777525	252525			AR1=V3				;EXPECTED RESULT IN AC
 16964	043420	312 13 0 00 044277 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 16965	043421	003 13 0 00 037551 		ER3	AC,37551		;HIGH PRODUCT FAILED
 16966		525000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 16967	043422	312 14 0 00 044300 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 16968	043423	004 14 0 00 037552 		ER4	AC+1,37552		;LOW PRODUCT FAILED
 16969		525252	525252			AEE=V1				;INITIAL C(E)
 16970	043424	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 16971	043425	005 11 0 00 037553 		ER5	E,37553			;C(E) WAS CLOBBERED
 16972	043426	321 15 0 00 043414 		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.
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-19
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0334

 16991					;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
 16992
 16993		001000	000000		F37560:	AA1=XX				;INITIAL C(AC)
 16994	043427	200 13 0 00 044017 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 16995			000000			AA2=0				;INITIAL C(AC+1)
 16996	043430	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 16997		525252	525252			AEE=V1				;INITIAL C(E)
 16998	043431	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 16999	043432	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17000		777252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17001	043433	312 13 0 00 044301 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17002	043434	003 13 0 00 037561 		ER3	AC,37561		;HIGH PRODUCT FAILED
 17003		652000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17004	043435	312 14 0 00 044302 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17005	043436	004 14 0 00 037562 		ER4	AC+1,37562		;LOW PRODUCT FAILED
 17006		525252	525252			AEE=V1				;INITIAL C(E)
 17007	043437	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17008	043440	005 11 0 00 037563 		ER5	E,37563			;C(E) WAS CLOBBERED
 17009	043441	321 15 0 00 043427 		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	043442	200 13 0 00 044020 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17032			000000			AA2=0				;INITIAL C(AC+1)
 17033	043443	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17034		525252	525252			AEE=V1				;INITIAL C(E)
 17035	043444	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17036	043445	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17037		776525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17038	043446	312 13 0 00 044303 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17039	043447	003 13 0 00 037571 		ER3	AC,37571		;HIGH PRODUCT FAILED
 17040		524000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17041	043450	312 14 0 00 044304 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17042	043451	004 14 0 00 037572 		ER4	AC+1,37572		;LOW PRODUCT FAILED
 17043		525252	525252			AEE=V1				;INITIAL C(E)
 17044	043452	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17045	043453	005 11 0 00 037573 		ER5	E,37573			;C(E) WAS CLOBBERED
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-20
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0335

 17046	043454	321 15 0 00 043442 		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	043455	200 13 0 00 044021 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17069			000000			AA2=0				;INITIAL C(AC+1)
 17070	043456	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17071		525252	525252			AEE=V1				;INITIAL C(E)
 17072	043457	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17073	043460	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17074		775252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17075	043461	312 13 0 00 044305 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17076	043462	003 13 0 00 037601 		ER3	AC,37601		;HIGH PRODUCT FAILED
 17077		650000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17078	043463	312 14 0 00 044306 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17079	043464	004 14 0 00 037602 		ER4	AC+1,37602		;LOW PRODUCT FAILED
 17080		525252	525252			AEE=V1				;INITIAL C(E)
 17081	043465	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17082	043466	005 11 0 00 037603 		ER5	E,37603			;C(E) WAS CLOBBERED
 17083	043467	321 15 0 00 043455 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-21
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0336

 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	043470	200 13 0 00 044022 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17106			000000			AA2=0				;INITIAL C(AC+1)
 17107	043471	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17108		525252	525252			AEE=V1				;INITIAL C(E)
 17109	043472	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17110	043473	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17111		772525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17112	043474	312 13 0 00 044307 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17113	043475	003 13 0 00 037611 		ER3	AC,37611		;HIGH PRODUCT FAILED
 17114		520000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17115	043476	312 14 0 00 044310 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17116	043477	004 14 0 00 037612 		ER4	AC+1,37612		;LOW PRODUCT FAILED
 17117		525252	525252			AEE=V1				;INITIAL C(E)
 17118	043500	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17119	043501	005 11 0 00 037613 		ER5	E,37613			;C(E) WAS CLOBBERED
 17120	043502	321 15 0 00 043470 		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	043503	200 13 0 00 044023 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17143			000000			AA2=0				;INITIAL C(AC+1)
 17144	043504	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17145		525252	525252			AEE=V1				;INITIAL C(E)
 17146	043505	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17147	043506	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17148		765252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17149	043507	312 13 0 00 044311 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17150	043510	003 13 0 00 037621 		ER3	AC,37621		;HIGH PRODUCT FAILED
 17151		640000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17152	043511	312 14 0 00 044312 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17153	043512	004 14 0 00 037622 		ER4	AC+1,37622		;LOW PRODUCT FAILED
 17154		525252	525252			AEE=V1				;INITIAL C(E)
 17155	043513	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-22
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0337

 17156	043514	005 11 0 00 037623 		ER5	E,37623			;C(E) WAS CLOBBERED
 17157	043515	321 15 0 00 043503 		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	043516	200 13 0 00 044024 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17180			000000			AA2=0				;INITIAL C(AC+1)
 17181	043517	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17182		525252	525252			AEE=V1				;INITIAL C(E)
 17183	043520	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17184	043521	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17185		752525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17186	043522	312 13 0 00 044313 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17187	043523	003 13 0 00 037631 		ER3	AC,37631		;HIGH PRODUCT FAILED
 17188		500000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17189	043524	312 14 0 00 044314 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17190	043525	004 14 0 00 037632 		ER4	AC+1,37632		;LOW PRODUCT FAILED
 17191		525252	525252			AEE=V1				;INITIAL C(E)
 17192	043526	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17193	043527	005 11 0 00 037633 		ER5	E,37633			;C(E) WAS CLOBBERED
 17194	043530	321 15 0 00 043516 		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
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-23
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0338

 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	043531	200 13 0 00 044025 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17217			000000			AA2=0				;INITIAL C(AC+1)
 17218	043532	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17219		525252	525252			AEE=V1				;INITIAL C(E)
 17220	043533	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17221	043534	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17222		725252	525252			AR1=V3				;EXPECTED RESULT IN AC
 17223	043535	312 13 0 00 044315 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17224	043536	003 13 0 00 037641 		ER3	AC,37641		;HIGH PRODUCT FAILED
 17225		600000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17226	043537	312 14 0 00 044157 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17227	043540	004 14 0 00 037642 		ER4	AC+1,37642		;LOW PRODUCT FAILED
 17228		525252	525252			AEE=V1				;INITIAL C(E)
 17229	043541	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17230	043542	005 11 0 00 037643 		ER5	E,37643			;C(E) WAS CLOBBERED
 17231	043543	321 15 0 00 043531 		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	043544	200 13 0 00 044026 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17254			000000			AA2=0				;INITIAL C(AC+1)
 17255	043545	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17256		525252	525252			AEE=V1				;INITIAL C(E)
 17257	043546	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17258	043547	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17259		652525	252525			AR1=V3				;EXPECTED RESULT IN AC
 17260	043550	312 13 0 00 044316 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17261	043551	003 13 0 00 037651 		ER3	AC,37651		;HIGH PRODUCT FAILED
 17262		400000	000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17263	043552	312 14 0 00 044027 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17264	043553	004 14 0 00 037652 		ER4	AC+1,37652		;LOW PRODUCT FAILED
 17265		525252	525252			AEE=V1				;INITIAL C(E)
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 18-24
DSKAK1	MAC	29-Mar-78 09:56		DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT                                   SEQ 0339

 17266	043554	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17267	043555	005 11 0 00 037653 		ER5	E,37653			;C(E) WAS CLOBBERED
 17268	043556	321 15 0 00 043544 		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	043557	200 13 0 00 044027 		MOVE	AC,[XX]			;PRELOAD AC (MULTIPLIER)
 17291			000000			AA2=0				;INITIAL C(AC+1)
 17292	043560	200 14 0 00 043762 		MOVE	AC+1,[0]		;PRELOAD AC+1
 17293		525252	525252			AEE=V1				;INITIAL C(E)
 17294	043561	200 11 0 00 044220 		MOVE	E,[V1]			;PRELOAD E (MULTIPLICAND)
 17295	043562	224 13 0 00 000011 		MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
 17296		252525	252526			AR1=V3				;EXPECTED RESULT IN AC
 17297	043563	312 13 0 00 044317 		CAME	AC,[V3]			;IS HIGH PRODUCT CORRECT?
 17298	043564	003 13 0 00 037661 		ER3	AC,37661		;HIGH PRODUCT FAILED
 17299			000000			AR2=V2				;EXPECTED RESULT IN AC+1
 17300	043565	312 14 0 00 043762 		CAME	AC+1,[V2]		;IS LOW PRODUCT CORRECT?
 17301	043566	004 14 0 00 037662 		ER4	AC+1,37662		;LOW PRODUCT FAILED
 17302		525252	525252			AEE=V1				;INITIAL C(E)
 17303	043567	312 11 0 00 044220 		CAME	E,[V1]			;WAS C(E) CLOBBERED?
 17304	043570	005 11 0 00 037663 		ER5	E,37663			;C(E) WAS CLOBBERED
 17305	043571	321 15 0 00 043557 		JUMPL	AC+2,F37660		;LOOP ON ERROR SWITCH^
 17306
 17307	043572	254 00 0 00 030057 		JRST	BEGEND
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1
UUOERR	KSM	28-Mar-78 11:17		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, MARCH 1978                              SEQ 0340

 17308					SUBTTL	*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, MARCH 1978
 17309
 17310					;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S.
 17311
 17312	043573	202 00 0 00 044443 	ERRMES:	MOVEM	0,%ERAC0#	;SAVE AC0
 17313	043574	202 01 0 00 044444 		MOVEM	1,%ERAC1#	;SAVE AC1
 17314	043575	202 02 0 00 044445 		MOVEM	2,%ERAC2#	;SAVE AC2
 17315	043576	350 00 0 00 030053 		AOS	ERRTLS		;INCREMENT ERROR TOTALS
 17316	043577	550 00 0 00 030114 		HRRZ	0,$SVUPC	;GET PC OF UUO
 17317	043600	316 00 0 00 030052 		CAMN	0,ERRPC		;PC = PC OF LAST ERROR ?
 17318	043601	350 00 0 00 044440 		AOS	MICNT#		;YES, ADD 1 TO ERROR COUNT
 17319	043602	200 00 0 00 044440 		MOVE	0,MICNT
 17320	043603	504 00 0 00 030114 		HRL	0,$SVUPC
 17321	043604	402 00 0 00 044441 		SETZM	PROCED#		;CLEAR PROCEED FLAG
 17322	043605	037 10 0 00 000002 		SWITCH
 17323	043606	603 00 0 00 040000 		TLNE	NOPNT		;PRINTOUT ?
 17324	043607	254 00 0 00 043721 		JRST	%ERRS1		;NO, RESTORE AC'S AND RETURN
 17325	043610	200 01 0 00 030113 		MOVE	1,$SVUUO
 17326	043611	242 01 0 00 777745 		LSH	1,-^D27
 17327	043612	202 01 0 00 044442 		MOVEM	1,%ACS1A#	;SAVE UUO NUMBER
 17328	043613	200 00 0 00 044443 		MOVE	0,%ERAC0
 17329	043614	200 01 0 00 044444 		MOVE	1,%ERAC1
 17330	043615	335 00 1 00 044437 		SKIPGE	@ERRLOP		;ERR LOOP AC > OR = 0 ?
 17331	043616	254 00 0 00 043753 		JRST	%ERRS4		;NO, SEE IF PRINT ALL
 17332	043617	402 00 0 00 044440 	%ERMS1:	SETZM	MICNT		;CLEAR ERROR COUNT
 17333	043620	331 00 0 00 030043 		SKIPL	MONCTL		;DIAG MON OR SYS EXER ?
 17334	043621	254 00 0 00 043625 		JRST	.+4		;NO, DON'T NEED TITLE
 17335	043622	336 00 0 00 044446 		SKIPN	%ERFST#		;FIRST ERROR ?
 17336	043623	037 04 0 00 000002 		PNTNM			;YES, PRINT PROGRAM TITLE
 17337	043624	476 00 0 00 044446 		SETOM	%ERFST
 17338	043625	336 00 0 00 030047 		SKIPN	PASCNT		;FIRST PASS ?
 17339	043626	254 00 0 00 043632 		JRST	.+4		;YES
 17340						PMSG	<^TEST PASS COUNT = >^
 17341	043627	037 02 0 00 044320 		PSIXM	[SIXBIT\^TEST PASS COUNT = _\]^
 17342	043630	200 00 0 00 030047 		MOVE	PASCNT
 17343	043631	037 15 0 00 000000 		PNTDEC
 17344						PMSG	<^PC =   >^
 17345	043632	037 02 0 00 044324 		PSIXM	[SIXBIT\^PC =   _\]^
 17346	043633	550 00 0 00 030114 		HRRZ	0,$SVUPC	;GET PC OF UUO
 17347	043634	202 00 0 00 030052 		MOVEM	0,ERRPC		;SAVE FOR COMPARE
 17348	043635	037 06 0 00 000000 		PNT6			;PRINT UUO ADDRESS
 17349						XLIST
 17350						IFDEF	ERDIAG,<LIST
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 2
UUOERR	KSM	28-Mar-78 11:17		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, MARCH 1978                              SEQ 0341

 17351					;DIAGNOSTIC FORMAT ERROR PRINTER
 17352
 17353					;PRINT RESULT
 17354
 17355	043636				%ERMS2:	PMSG	<^RESULT  = >^
 17356	043636	037 02 0 00 044326 		PSIXM	[SIXBIT\^RESULT  = _\]^
 17357	043637	200 01 0 00 030113 		MOVE	1,$SVUUO	;GET AC # OF UUO
 17358	043640	242 01 0 00 777751 		LSH	1,-27
 17359	043641	405 01 0 00 000017 		ANDI	1,17
 17360	043642	200 00 0 01 000000 		MOVE	0,(1)		;GET C(AC)
 17361	043643	307 01 0 00 000001 		CAIG	1,1		;IS AC # = TO SAVE AC ?
 17362	043644	200 00 0 01 044443 		MOVE	0,%ERAC0(1)	;YES, GET SAVED AC
 17363	043645	037 13 0 00 000000 		PNTHW			;PRINT C(AC)
 17364
 17365	043646	200 00 0 00 030046 		MOVE	CONSW
 17366	043647	603 00 0 00 000200 		TLNE	TXTINH		;PRINT FAILURE DES AND FLT NBR ?
 17367	043650	254 00 0 00 043717 		JRST	%ERMORE		;NO, RESTORE AC'S ETC.
 17368
 17369					;PRINT FAILURE DESCRIPTOR
 17370
 17371	043651	200 01 0 00 044442 		MOVE	1,%ACS1A	;GET UUO NUMBER
 17372	043652	307 01 0 00 000001 		CAIG	1,1		;PRINT DESCRIPTOR ?
 17373	043653	254 00 0 00 043657 		JRST	%ERMS3		;NO, JUST PRINT FAULT NUMBER
 17374	043654	037 00 0 00 030242 		PCRL
 17375	043655	200 00 0 01 043703 		MOVE	%FLTTB(1)
 17376	043656	037 17 0 00 000000 		PNTAL			;PRINT FAULT DESCRIPTOR
 17377
 17378					;PRINT FAULT NUMBER
 17379
 17380	043657				%ERMS3:	PMSG	<^FAULT NUMBER = >^
 17381	043657	037 02 0 00 044330 		PSIXM	[SIXBIT\^FAULT NUMBER = _\]^
 17382	043660	201 00 0 00 043702 		MOVEI	TLET
 17383	043661	037 00 0 00 000000 		PNTA			;PRINT TEST LETTER
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 3
UUOERR	KSM	28-Mar-78 11:17		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, MARCH 1978                              SEQ 0342

 17384
 17385	043662	550 00 0 00 030113 		HRRZ	$SVUUO
 17386	043663	602 00 0 00 700000 		TRNE	700000
 17387	043664	254 00 0 00 043700 		JRST	%ER6X
 17388	043665	602 00 0 00 070000 		TRNE	070000
 17389	043666	254 00 0 00 043676 		JRST	%ER5X
 17390	043667	602 00 0 00 007000 		TRNE	007000
 17391	043670	254 00 0 00 043674 		JRST	%ER4X
 17392	043671	037 03 0 00 000000 		PNT3			;PRINT FAULT NUMBER
 17393	043672	037 00 0 00 030242 	%ER7X:	PCRL
 17394	043673	254 00 0 00 043717 		JRST	%ERMORE
 17395
 17396	043674	037 04 0 00 000000 	%ER4X:	PNT4
 17397	043675	254 00 0 00 043672 		JRST	%ER7X
 17398	043676	037 05 0 00 000000 	%ER5X:	PNT5
 17399	043677	254 00 0 00 043672 		JRST	%ER7X
 17400	043700	037 06 0 00 000000 	%ER6X:	PNT6
 17401	043701	254 00 0 00 043672 		JRST	%ER7X
 17402
 17403					;FAILURE DESCRIPTORS
 17404
 17405	043702	000000	000000		TLET:	0			;TEST LETTER
 17406	043703	000000	000000		%FLTTB:	0			;DESCRIPTOR TABLE
 17407	043704	000000	043762		%NODES:	[0]			;NO DESCRIPTOR
 17408	043705	000000	043762		SPDES:	[0]			;SPECIAL USER FAILURE DESCRIPTOR
 17409	043706	000000	044333		$ACF:	[ASCIZ/C(AC) FAILED/]
 17410	043707	000000	044336		%AC1F:	[ASCIZ/C(AC+1) FAILED/]
 17411	043710	000000	044341		%EF:	[ASCIZ/C(E) FAILED/]
 17412	043711	000000	044344		%E1F:	[ASCIZ/C(E+1) FAILED/]
 17413	043712	000000	044347		%ARF:	[ASCIZ/C(C(ACR)) FAILED/]
 17414	043713	000000	044353		%AR1F:	[ASCIZ/C(C(ACR+1)) FAILED/]
 17415	043714	000000	044357		%ALF:	[ASCIZ/C(C(ACL)) FAILED/]
 17416	043715	000000	044363		%EEF:	[ASCIZ/C(C(E)) FAILED/]
 17417	043716	000000	044366		%FF:	[ASCIZ/FLAG FAILED/]
 17418					>
 17419						XLIST
 17420						LIST
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 8
UUOERR	KSM	28-Mar-78 11:17		*UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, MARCH 1978                              SEQ 0343

 17421					;RESTORE AC'S AND RETURN OR HALT
 17422
 17423	043717	256 00 0 00 030101 	%ERMORE:XCT	ERMORE
 17424	043720	037 10 0 00 000002 		SWITCH
 17425
 17426	043721	037 07 0 00 000003 	%ERRS1:	TTALTM			;ALTMODE CHECK
 17427	043722	254 00 0 00 043726 		JRST	.+4		;NONE
 17428	043723	201 00 0 00 043726 		MOVEI	.+3		;SAVE CONT ADDRESS
 17429	043724	202 00 0 00 000130 		MOVEM	JOBOPC
 17430	043725	254 00 1 00 030063 		JRST	@ALTMGO		;PERFORM TRANSFER
 17431	043726	200 00 0 00 030046 		MOVE	CONSW
 17432	043727	603 00 0 00 002000 		TLNE	0,ERSTOP	;HALT ON ERROR SWITCH SET ?
 17433	043730	037 14 0 00 000004 		ERRHLT			;YES
 17434	043731	607 00 0 00 004000 		TLNN	0,LOOPER	;LOOP ON ERROR SWITCH SET ?
 17435	043732	476 00 0 00 044441 		SETOM	PROCED		;NO, SET THE PROCEED FLAG
 17436	043733	603 00 0 00 010000 		TLNE	0,DING		;RING BELL SWITCH SET ?
 17437	043734	037 01 0 00 000007 		PBELL			;YES, GO RING BELL
 17438
 17439	043735	200 02 0 00 044445 	%ERRS2:	MOVE	2,%ERAC2	;RESTORE AC'S
 17440	043736	200 01 0 00 044444 		MOVE	1,%ERAC1
 17441	043737	476 00 1 00 044437 		SETOM	@ERRLOP		;SET C(ERR LOOP AC) TO -1
 17442	043740	336 00 0 00 044441 		SKIPN	PROCED		;LOOP ON ERROR ?
 17443	043741	254 00 0 00 043751 		JRST	%ERRS5		;YES
 17444	043742	350 00 1 00 044437 		AOS	@ERRLOP		;NO, INC C(ERR LOOP AC)
 17445	043743	350 00 1 00 044437 		AOS	@ERRLOP		;SO IT ='S 1
 17446	043744	331 00 0 00 030043 		SKIPL	MONCTL		;UNDER DIAGNOSTIC MONITOR ?
 17447	043745	254 00 0 00 043751 		JRST	%ERRS5		;NO, CONTINUE PROGRAM
 17448	043746	200 00 0 00 030053 		MOVE	0,ERRTLS	;YES
 17449	043747	301 00 0 00 000024 		CAIL	0,^D20		;PRINTED ALLOWED ERRORS ?
 17450	043750	254 00 0 00 043757 		JRST	%ERRS6
 17451
 17452	043751	200 00 0 00 044443 	%ERRS5:	MOVE	0,%ERAC0	;NO, CONTINUE PROGRAM
 17453	043752	254 00 0 00 030065 		JRST	UUOEXT
 17454
 17455	043753	200 00 0 00 030046 	%ERRS4:	MOVE	0,CONSW
 17456	043754	607 00 0 00 001000 		TLNN	PALERS		;PRINT ALL ERRORS ?
 17457	043755	254 00 0 00 043721 		JRST	%ERRS1		;NO
 17458	043756	254 00 0 00 043617 		JRST	%ERMS1		;YES
 17459
 17460	043757				%ERRS6:	PMSGF	<^EXCEEDED ALLOWED ERRORS^>^
 17461	043757	037 04 0 00 044371 		PSIXMF	[SIXBIT\^EXCEEDED ALLOWED ERRORS^_\]^
 17462	043760	254 00 0 00 030061 		JRST	$BEND2
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1
STOR	KSM	28-Mar-78 11:25		*STOR* RESERVED STORAGE, MARCH 1978                                                SEQ 0344

 17463					SUBTTL	*STOR* RESERVED STORAGE, MARCH 1978
 17464
 17465					;PROGRAM LITERALS
 17466
 17467						XLIST
 17468					IFNDEF	$LPAPER,<LIST>
 17469	043761					LIT
 17470	043761	101 113 000 000 000 
 17471	043762	000000	000000
 17472	043763	777777	777777
 17473	043764	000000	000001
 17474	043765	000000	000002
 17475	043766	000000	000004
 17476	043767	000000	000010
 17477	043770	000000	000020
 17478	043771	000000	000040
 17479	043772	000000	000100
 17480	043773	000000	000200
 17481	043774	000000	000400
 17482	043775	000000	001000
 17483	043776	000000	002000
 17484	043777	000000	004000
 17485	044000	000000	010000
 17486	044001	000000	020000
 17487	044002	000000	040000
 17488	044003	000000	100000
 17489	044004	000000	200000
 17490	044005	000000	400000
 17491	044006	000001	000000
 17492	044007	000002	000000
 17493	044010	000004	000000
 17494	044011	000010	000000
 17495	044012	000020	000000
 17496	044013	000040	000000
 17497	044014	000100	000000
 17498	044015	000200	000000
 17499	044016	000400	000000
 17500	044017	001000	000000
 17501	044020	002000	000000
 17502	044021	004000	000000
 17503	044022	010000	000000
 17504	044023	020000	000000
 17505	044024	040000	000000
 17506	044025	100000	000000
 17507	044026	200000	000000
 17508	044027	400000	000000
 17509	044030	777777	777776
 17510	044031	777777	777775
 17511	044032	777777	777773
 17512	044033	777777	777767
 17513	044034	777777	777757
 17514	044035	777777	777737
 17515	044036	777777	777677
 17516	044037	777777	777577
 17517	044040	777777	777377
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1-1
STOR	KSM	28-Mar-78 11:25		*STOR* RESERVED STORAGE, MARCH 1978                                                SEQ 0345

 17518	044041	777777	776777
 17519	044042	777777	775777
 17520	044043	777777	773777
 17521	044044	777777	767777
 17522	044045	777777	757777
 17523	044046	777777	737777
 17524	044047	777777	677777
 17525	044050	777777	577777
 17526	044051	777777	377777
 17527	044052	777776	777777
 17528	044053	777775	777777
 17529	044054	777773	777777
 17530	044055	777767	777777
 17531	044056	777757	777777
 17532	044057	777737	777777
 17533	044060	777677	777777
 17534	044061	777577	777777
 17535	044062	777377	777777
 17536	044063	776777	777777
 17537	044064	775777	777777
 17538	044065	773777	777777
 17539	044066	767777	777777
 17540	044067	757777	777777
 17541	044070	737777	777777
 17542	044071	677777	777777
 17543	044072	577777	777777
 17544	044073	377777	777777
 17545	044074	000000	000003
 17546	044075	000000	000005
 17547	044076	000000	000006
 17548	044077	000000	000007
 17549	044100	000000	000011
 17550	044101	000000	000012
 17551	044102	000000	000013
 17552	044103	000000	000014
 17553	044104	000000	000015
 17554	044105	000000	000016
 17555	044106	000000	000017
 17556	044107	777777	777774
 17557	044110	777777	777772
 17558	044111	777777	777771
 17559	044112	777777	777770
 17560	044113	777777	777766
 17561	044114	777777	777765
 17562	044115	777777	777764
 17563	044116	777777	777763
 17564	044117	777777	777762
 17565	044120	777777	777761
 17566	044121	777777	777760
 17567	044122	777777	777740
 17568	044123	777777	777700
 17569	044124	777777	777600
 17570	044125	777777	777400
 17571	044126	777777	777000
 17572	044127	777777	776000
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1-2
STOR	KSM	28-Mar-78 11:25		*STOR* RESERVED STORAGE, MARCH 1978                                                SEQ 0346

 17573	044130	777777	774000
 17574	044131	777777	770000
 17575	044132	777777	760000
 17576	044133	777777	740000
 17577	044134	777777	700000
 17578	044135	777777	600000
 17579	044136	777777	400000
 17580	044137	777777	000000
 17581	044140	777776	000000
 17582	044141	777774	000000
 17583	044142	777770	000000
 17584	044143	777760	000000
 17585	044144	777740	000000
 17586	044145	777700	000000
 17587	044146	777600	000000
 17588	044147	777400	000000
 17589	044150	777000	000000
 17590	044151	776000	000000
 17591	044152	774000	000000
 17592	044153	770000	000000
 17593	044154	760000	000000
 17594	044155	740000	000000
 17595	044156	700000	000000
 17596	044157	600000	000000
 17597	044160	000000	000021
 17598	044161	000000	000041
 17599	044162	000000	000101
 17600	044163	000000	000201
 17601	044164	000000	000401
 17602	044165	000000	001001
 17603	044166	000000	002001
 17604	044167	000000	004001
 17605	044170	000000	010001
 17606	044171	000000	020001
 17607	044172	000000	040001
 17608	044173	000000	100001
 17609	044174	000000	200001
 17610	044175	000000	400001
 17611	044176	000001	000001
 17612	044177	000002	000001
 17613	044200	000004	000001
 17614	044201	000010	000001
 17615	044202	000020	000001
 17616	044203	000040	000001
 17617	044204	000100	000001
 17618	044205	000200	000001
 17619	044206	000400	000001
 17620	044207	001000	000001
 17621	044210	002000	000001
 17622	044211	004000	000001
 17623	044212	010000	000001
 17624	044213	020000	000001
 17625	044214	040000	000001
 17626	044215	100000	000001
 17627	044216	200000	000001
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1-3
STOR	KSM	28-Mar-78 11:25		*STOR* RESERVED STORAGE, MARCH 1978                                                SEQ 0347

 17628	044217	400000	000001
 17629	044220	525252	525252
 17630	044221	652525	252524
 17631	044222	525252	525250
 17632	044223	652525	252520
 17633	044224	525252	525240
 17634	044225	777777	777752
 17635	044226	652525	252500
 17636	044227	777777	777725
 17637	044230	525252	525200
 17638	044231	777777	777652
 17639	044232	652525	252400
 17640	044233	777777	777525
 17641	044234	525252	525000
 17642	044235	777777	777252
 17643	044236	652525	252000
 17644	044237	777777	776525
 17645	044240	525252	524000
 17646	044241	777777	775252
 17647	044242	652525	250000
 17648	044243	777777	772525
 17649	044244	525252	520000
 17650	044245	777777	765252
 17651	044246	652525	240000
 17652	044247	777777	752525
 17653	044250	525252	500000
 17654	044251	777777	725252
 17655	044252	652525	200000
 17656	044253	777777	652525
 17657	044254	525252	400000
 17658	044255	777777	525252
 17659	044256	652525	000000
 17660	044257	777777	252525
 17661	044260	525252	000000
 17662	044261	777776	525252
 17663	044262	652524	000000
 17664	044263	777775	252525
 17665	044264	525250	000000
 17666	044265	777772	525252
 17667	044266	652520	000000
 17668	044267	777765	252525
 17669	044270	525240	000000
 17670	044271	777752	525252
 17671	044272	652500	000000
 17672	044273	777725	252525
 17673	044274	525200	000000
 17674	044275	777652	525252
 17675	044276	652400	000000
 17676	044277	777525	252525
 17677	044300	525000	000000
 17678	044301	777252	525252
 17679	044302	652000	000000
 17680	044303	776525	252525
 17681	044304	524000	000000
 17682	044305	775252	525252
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1-4
STOR	KSM	28-Mar-78 11:25		*STOR* RESERVED STORAGE, MARCH 1978                                                SEQ 0348

 17683	044306	650000	000000
 17684	044307	772525	252525
 17685	044310	520000	000000
 17686	044311	765252	525252
 17687	044312	640000	000000
 17688	044313	752525	252525
 17689	044314	500000	000000
 17690	044315	725252	525252
 17691	044316	652525	252525
 17692	044317	252525	252526
 17693	044320	76 64 45 63 64 00 
 17694	044321	60 41 63 63 00 43 
 17695	044322	57 65 56 64 00 35 
 17696	044323	00 77 00 00 00 00 
 17697	044324	76 60 43 00 35 00 
 17698	044325	00 00 77 00 00 00 
 17699	044326	76 62 45 63 65 54 
 17700	044327	64 00 00 35 00 77 
 17701	044330	76 46 41 65 54 64 
 17702	044331	00 56 65 55 42 45 
 17703	044332	62 00 35 00 77 00 
 17704	044333	103 050 101 103 051 
 17705	044334	040 106 101 111 114 
 17706	044335	105 104 000 000 000 
 17707	044336	103 050 101 103 053 
 17708	044337	061 051 040 106 101 
 17709	044340	111 114 105 104 000 
 17710	044341	103 050 105 051 040 
 17711	044342	106 101 111 114 105 
 17712	044343	104 000 000 000 000 
 17713	044344	103 050 105 053 061 
 17714	044345	051 040 106 101 111 
 17715	044346	114 105 104 000 000 
 17716	044347	103 050 103 050 101 
 17717	044350	103 122 051 051 040 
 17718	044351	106 101 111 114 105 
 17719	044352	104 000 000 000 000 
 17720	044353	103 050 103 050 101 
 17721	044354	103 122 053 061 051 
 17722	044355	051 040 106 101 111 
 17723	044356	114 105 104 000 000 
 17724	044357	103 050 103 050 101 
 17725	044360	103 114 051 051 040 
 17726	044361	106 101 111 114 105 
 17727	044362	104 000 000 000 000 
 17728	044363	103 050 103 050 105 
 17729	044364	051 051 040 106 101 
 17730	044365	111 114 105 104 000 
 17731	044366	106 114 101 107 040 
 17732	044367	106 101 111 114 105 
 17733	044370	104 000 000 000 000 
 17734	044371	76 45 70 43 45 45 
 17735	044372	44 45 44 00 41 54 
 17736	044373	54 57 67 45 44 00 
 17737	044374	45 62 62 57 62 63 
DSKAK DECSYSTEM 2020 BASIC INSTRUCTION DIAGNOSTIC (11) 0,1	MACRO %53(1020) 10:50 29-Mar-78 Page 1-5
STOR	KSM	28-Mar-78 11:25		*STOR* RESERVED STORAGE, MARCH 1978                                                SEQ 0349

 17738	044375	76 77 00 00 00 00 
 17739						LIST
 17740	044376	000000	000000		ENDSLD:	0
 17741
 17742					IFDEF	DEBUG,<
 17743	044377				PATCH:	BLOCK DEBUG		;PATCHING AREA
 17744					>
 17745
 17746					;PROGRAM VARIABLES
 17747	044437					VAR
 17748
 17749					IFDEF	PGMEND,<
 17750	044447	000000	000000		END:	0
 17751			030000			END	BEGIN	>

NO ERRORS DETECTED

PROGRAM BREAK IS 000000
ABSOLUTE BREAK IS 044450
CPU TIME USED 00:53.681

34P CORE USED

AA1	   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#    SEQ 0350
	  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#	  2991#	  3030#	  3069#	  3108#	  3147#	  3186#	  3225#	  3264#	  3303#	  3342#
	  3381#	  3420#	  3459#	  3498#	  3537#	  3576#	  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	   771#	   817#	   846#	   875#	   904#	   933#	   962#	   991#	  1020#	  1049#	  1078#	  1107#	  1136#	  1165#
	  1194#	  1223#	  1252#	  1281#	  1310#	  1339#	  1368#	  1397#	  1426#	  1455#	  1484#	  1513#	  1542#	  1571#
	  1600#	  1629#	  1658#	  1687#	  1716#	  1745#	  1774#	  1803#	  1832#	  1877#	  1906#	  1935#	  1964#	  1993#
	  2022#	  2051#	  2080#	  2109#	  2138#	  2167#	  2196#	  2225#	  2254#	  2283#	  2312#	  2341#	  2370#	  2399#
	  2428#	  2457#	  2486#	  2515#	  2544#	  2573#	  2602#	  2631#	  2660#	  2689#	  2718#	  2747#	  2776#	  2805#
	  2834#	  2863#	  2892#	  2925#	  2993#	  3032#	  3071#	  3110#	  3149#	  3188#	  3227#	  3266#	  3305#	  3344#
	  3383#	  3422#	  3461#	  3500#	  3539#	  3578#	  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 0351
	  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	   130#
AC	   753#	   754	   757	   758	   759	   760	   770	   772	   775	   777	   778	   780	   781	   785
	   787#	   788	   790	   791	   792	   793	   816	   818	   821	   823	   824	   826	   827	   831
	   845	   847	   850	   852	   853	   855	   856	   860	   874	   876	   879	   881	   882	   884
	   885	   889	   903	   905	   908	   910	   911	   913	   914	   918	   932	   934	   937	   939
	   940	   942	   943	   947	   961	   963	   966	   968	   969	   971	   972	   976	   990	   992
	   995	   997	   998	  1000	  1001	  1005	  1019	  1021	  1024	  1026	  1027	  1029	  1030	  1034
	  1048	  1050	  1053	  1055	  1056	  1058	  1059	  1063	  1077	  1079	  1082	  1084	  1085	  1087
	  1088	  1092	  1106	  1108	  1111	  1113	  1114	  1116	  1117	  1121	  1135	  1137	  1140	  1142
	  1143	  1145	  1146	  1150	  1164	  1166	  1169	  1171	  1172	  1174	  1175	  1179	  1193	  1195
	  1198	  1200	  1201	  1203	  1204	  1208	  1222	  1224	  1227	  1229	  1230	  1232	  1233	  1237
	  1251	  1253	  1256	  1258	  1259	  1261	  1262	  1266	  1280	  1282	  1285	  1287	  1288	  1290
	  1291	  1295	  1309	  1311	  1314	  1316	  1317	  1319	  1320	  1324	  1338	  1340	  1343	  1345
	  1346	  1348	  1349	  1353	  1367	  1369	  1372	  1374	  1375	  1377	  1378	  1382	  1396	  1398
	  1401	  1403	  1404	  1406	  1407	  1411	  1425	  1427	  1430	  1432	  1433	  1435	  1436	  1440
	  1454	  1456	  1459	  1461	  1462	  1464	  1465	  1469	  1483	  1485	  1488	  1490	  1491	  1493
	  1494	  1498	  1512	  1514	  1517	  1519	  1520	  1522	  1523	  1527	  1541	  1543	  1546	  1548
	  1549	  1551	  1552	  1556	  1570	  1572	  1575	  1577	  1578	  1580	  1581	  1585	  1599	  1601
	  1604	  1606	  1607	  1609	  1610	  1614	  1628	  1630	  1633	  1635	  1636	  1638	  1639	  1643
	  1657	  1659	  1662	  1664	  1665	  1667	  1668	  1672	  1686	  1688	  1691	  1693	  1694	  1696
	  1697	  1701	  1715	  1717	  1720	  1722	  1723	  1725	  1726	  1730	  1744	  1746	  1749	  1751
	  1752	  1754	  1755	  1759	  1773	  1775	  1778	  1780	  1781	  1783	  1784	  1788	  1802	  1804
	  1807	  1809	  1810	  1812	  1813	  1817	  1831	  1833	  1836	  1838	  1839	  1841	  1842	  1846
	  1847#	  1848	  1850	  1851	  1852	  1853	  1876	  1878	  1881	  1883	  1884	  1886	  1887	  1891
	  1905	  1907	  1910	  1912	  1913	  1915	  1916	  1920	  1934	  1936	  1939	  1941	  1942	  1944
	  1945	  1949	  1963	  1965	  1968	  1970	  1971	  1973	  1974	  1978	  1992	  1994	  1997	  1999
	  2000	  2002	  2003	  2007	  2021	  2023	  2026	  2028	  2029	  2031	  2032	  2036	  2050	  2052
	  2055	  2057	  2058	  2060	  2061	  2065	  2079	  2081	  2084	  2086	  2087	  2089	  2090	  2094
	  2108	  2110	  2113	  2115	  2116	  2118	  2119	  2123	  2137	  2139	  2142	  2144	  2145	  2147
	  2148	  2152	  2166	  2168	  2171	  2173	  2174	  2176	  2177	  2181	  2195	  2197	  2200	  2202
	  2203	  2205	  2206	  2210	  2224	  2226	  2229	  2231	  2232	  2234	  2235	  2239	  2253	  2255
	  2258	  2260	  2261	  2263	  2264	  2268	  2282	  2284	  2287	  2289	  2290	  2292	  2293	  2297
	  2311	  2313	  2316	  2318	  2319	  2321	  2322	  2326	  2340	  2342	  2345	  2347	  2348	  2350
	  2351	  2355	  2369	  2371	  2374	  2376	  2377	  2379	  2380	  2384	  2398	  2400	  2403	  2405
	  2406	  2408	  2409	  2413	  2427	  2429	  2432	  2434	  2435	  2437	  2438	  2442	  2456	  2458
	  2461	  2463	  2464	  2466	  2467	  2471	  2485	  2487	  2490	  2492	  2493	  2495	  2496	  2500     SEQ 0352
	  2514	  2516	  2519	  2521	  2522	  2524	  2525	  2529	  2543	  2545	  2548	  2550	  2551	  2553
	  2554	  2558	  2572	  2574	  2577	  2579	  2580	  2582	  2583	  2587	  2601	  2603	  2606	  2608
	  2609	  2611	  2612	  2616	  2630	  2632	  2635	  2637	  2638	  2640	  2641	  2645	  2659	  2661
	  2664	  2666	  2667	  2669	  2670	  2674	  2688	  2690	  2693	  2695	  2696	  2698	  2699	  2703
	  2717	  2719	  2722	  2724	  2725	  2727	  2728	  2732	  2746	  2748	  2751	  2753	  2754	  2756
	  2757	  2761	  2775	  2777	  2780	  2782	  2783	  2785	  2786	  2790	  2804	  2806	  2809	  2811
	  2812	  2814	  2815	  2819	  2833	  2835	  2838	  2840	  2841	  2843	  2844	  2848	  2862	  2864
	  2867	  2869	  2870	  2872	  2873	  2877	  2891	  2893	  2896	  2898	  2899	  2901	  2902	  2906
	  2908#	  2909	  2911	  2912	  2913	  2914	  2924	  2926	  2929	  2931	  2932	  2934	  2935	  2939
	  2942#	  2943	  2945	  2946	  2947	  2948	  2992	  2994	  2997	  2999	  3000	  3002	  3003	  3007
	  3031	  3033	  3036	  3038	  3039	  3041	  3042	  3046	  3070	  3072	  3075	  3077	  3078	  3080
	  3081	  3085	  3109	  3111	  3114	  3116	  3117	  3119	  3120	  3124	  3148	  3150	  3153	  3155
	  3156	  3158	  3159	  3163	  3187	  3189	  3192	  3194	  3195	  3197	  3198	  3202	  3226	  3228
	  3231	  3233	  3234	  3236	  3237	  3241	  3265	  3267	  3270	  3272	  3273	  3275	  3276	  3280
	  3304	  3306	  3309	  3311	  3312	  3314	  3315	  3319	  3343	  3345	  3348	  3350	  3351	  3353
	  3354	  3358	  3382	  3384	  3387	  3389	  3390	  3392	  3393	  3397	  3421	  3423	  3426	  3428
	  3429	  3431	  3432	  3436	  3460	  3462	  3465	  3467	  3468	  3470	  3471	  3475	  3499	  3501
	  3504	  3506	  3507	  3509	  3510	  3514	  3538	  3540	  3543	  3545	  3546	  3548	  3549	  3553
	  3577	  3579	  3582	  3584	  3585	  3587	  3588	  3592	  3593#	  3594	  3596	  3597	  3598	  3599
	  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 0353
	  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 0354
	  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 0355
	 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 0356
	 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	   752#	   763	   804	   804#	   809	   833	   833#	   838	   862	   862#	   867	   891	   891#	   896
	   920	   920#	   925	   949	   949#	   954	   978	   978#	   983	  1007	  1007#	  1012	  1036	  1036#
	  1041	  1065	  1065#	  1070	  1094	  1094#	  1099	  1123	  1123#	  1128	  1152	  1152#	  1157	  1181
	  1181#	  1186	  1210	  1210#	  1215	  1239	  1239#	  1244	  1268	  1268#	  1273	  1297	  1297#	  1302     SEQ 0357
	  1326	  1326#	  1331	  1355	  1355#	  1360	  1384	  1384#	  1389	  1413	  1413#	  1418	  1442	  1442#
	  1447	  1471	  1471#	  1476	  1500	  1500#	  1505	  1529	  1529#	  1534	  1558	  1558#	  1563	  1587
	  1587#	  1592	  1616	  1616#	  1621	  1645	  1645#	  1650	  1674	  1674#	  1679	  1703	  1703#	  1708
	  1732	  1732#	  1737	  1761	  1761#	  1766	  1790	  1790#	  1795	  1819	  1819#	  1824	  1864	  1864#
	  1869	  1893	  1893#	  1898	  1922	  1922#	  1927	  1951	  1951#	  1956	  1980	  1980#	  1985	  2009
	  2009#	  2014	  2038	  2038#	  2043	  2067	  2067#	  2072	  2096	  2096#	  2101	  2125	  2125#	  2130
	  2154	  2154#	  2159	  2183	  2183#	  2188	  2212	  2212#	  2217	  2241	  2241#	  2246	  2270	  2270#
	  2275	  2299	  2299#	  2304	  2328	  2328#	  2333	  2357	  2357#	  2362	  2386	  2386#	  2391	  2415
	  2415#	  2420	  2444	  2444#	  2449	  2473	  2473#	  2478	  2502	  2502#	  2507	  2531	  2531#	  2536
	  2560	  2560#	  2565	  2589	  2589#	  2594