Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/dbkakt.mac
There are no other files named dbkakt.mac in the archive.
;DBKAK
	MCNVER==0
	DECVER==2
	XLIST
DEFINE	NAME	(MCNVER,DECVER)<
TITLE	DBKAK PDP-10 KL10 & KI10 BASIC INSTRUCTION DIAGNOSTIC (11) MCNVER,DECVER
>
	LIST
	LALL
	NAME	\MCNVER,\DECVER
;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE)
;COPYRIGHT 1975
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
	LOC	137
	MCNVER,,DECVER
	NOSYM
SUBTTL	DIAGNOSTIC PARAMETERS
;OPERATOR DEFINITIONS
OPDEF	ER1	[1B8]
OPDEF	ER2	[2B8]
OPDEF	ER3	[3B8]
OPDEF	ER4	[4B8]
OPDEF	ER5	[5B8]
OPDEF	ER6	[6B8]
OPDEF	ER7	[7B8]
OPDEF	ER10	[10B8]
OPDEF	ER11	[11B8]
OPDEF	ER12	[12B8]
OPDEF	ER13	[13B8]
LUUO1=ERRMES
LUUO2=ERRMES
LUUO3=ERRMES
LUUO4=ERRMES
LUUO5=ERRMES
LUUO6=ERRMES
LUUO7=ERRMES
LUUO10=ERRMES
LUUO11=ERRMES
LUUO12=ERRMES
LUUO13=ERRMES
;SUBROUTINE ASSEMBLY DEFINITIONS
DEBUG=40
EXCASB=1
USRASB=1
KI10=1
KL10=1
KL10P0=1
PGMEND=1
ERDIAG=1
;SPECIAL FEATURE DEFINITIONS
SADR1=BEGIN
SADR2=BEGIN
SADR3=BEGIN
SADR4=BEGIN
SADR5=JRST BEGIN
SADR6=JRST BEGIN
SADR7=JRST BEGIN
SADR8=JRST BEGIN
SADR9=JRST BEGIN
SADR10=JRST BEGIN
SADR11=JRST BEGIN
;SPECIAL FEATURE PARAMETERS
PAREA0=0
PAREA1=0
PAREA2=0
PAREA3=SIXBIT/DBKAK/
PAREA4=SIXBIT/PNT/
PAREA5=0
PAREA6=0
ITERAT==1000
;MACROS
DEFINE	SAVEAC	(A,B)<
	MOVEI	AC+2,.		;SAVE TEST PC
	MOVEM	AC+2,TESTPC
	MOVEI	AC+2,<AC+2>&17	;INFORM ERROR ROUTINE WHICH
	MOVEM	AC+2,ERRLOP#	;AC IS USED FOR ITERATION>
DEFINE	MOP1	(T,A1,A2,EE,R1,R2)<
;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND
;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1
;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY.
;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED
F'T'0:	AA1=A1				;INITIAL C(AC)
	MOVE	AC,[A1]			;PRELOAD AC (MULTIPLIER)
	AA2=A2				;INITIAL C(AC+1)
	MOVE	AC+1,[A2]		;PRELOAD AC+1
	AEE=EE				;INITIAL C(E)
	MOVE	E,[EE]			;PRELOAD E (MULTIPLICAND)
	MUL	AC,E			;*MULTIPLY C(E) BY C(AC)
	AR1=R1				;EXPECTED RESULT IN AC
	CAME	AC,[R1]			;IS HIGH PRODUCT CORRECT?
	ER3	AC,T'1		;HIGH PRODUCT FAILED
	AR2=R2				;EXPECTED RESULT IN AC+1
	CAME	AC+1,[R2]		;IS LOW PRODUCT CORRECT?
	ER4	AC+1,T'2		;LOW PRODUCT FAILED
	AEE=EE				;INITIAL C(E)
	CAME	E,[EE]			;WAS C(E) CLOBBERED?
	ER5	E,T'3			;C(E) WAS CLOBBERED
	JUMPL	AC+2,F'T'0		;LOOP ON ERROR SWITCH>