Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/dakalt.mac
There are no other files named dakalt.mac in the archive.
;DAKAL


	MCNVER==0
	DECVER==2


	XLIST
DEFINE	NAME	(MCNVER,DECVER)<

TITLE	DAKAL PDP-10  KI10 BASIC INSTRUCTION DIAGNOSTIC (12) MCNVER,DECVER
>
	LIST
	LALL

	NAME	\MCNVER,\DECVER

;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE)

;COPYRIGHT 1975,1977
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752

;JOHN R. KIRCHOFF

	LOC	137
	MCNVER,,DECVER

	.DIRECTIVE	.OKOVL
	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
KA10=1
KLOLD==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/DAKAL/
PAREA4=SIXBIT/TMP/
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>