Google
 

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


	MCNVER==0
	DECVER==2


	XLIST
DEFINE	NAME	(MCNVER,DECVER)<

TITLE	DAKAM PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (13) MCNVER,DECVER
>
	LIST
	LALL

	NAME	\MCNVER,\DECVER

;(BYTE, BLOCK TRANSFER, JFFO AND OTHER BASIC MISCELLANEOUS INSTRUCTIONS)

;COPYRIGHT 1975,1977
;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
KA10=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/DAKAM/
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>
;SPECIAL INSTRUCTIONS TO ASSEMBLER

IF1,<BYTBLK=14773>	;BYTBLK BEYOND AC RANGE FOR PASS 1
IF1,<BLTBLK=15000>	;BLTBLK BEYOND AC RANGE FOR PASS 1

;MACROS

DEFINE	GMOV	(X1,DATA),<
	IFLE	<X1-20>,<
	MOVE	X1,[DATA]	;PRELOAD X1 WITH DATA>
	IFG	<X1-20>,<
	MOVE	AC+1,[DATA]
	MOVEM	AC+1,X1		;PRELOAD X1 WITH DATA>>

DEFINE	GCAM	(X1,DATA),<
SN=SN+1
	IFG	<X1-20>,<
	MOVE	AC-1,X1
	CAME	AC-1,[DATA]	;IS C(X1) = DATA
	IFIDN	<DEST>,<X1>,<
	ER2	AC-1,SN		;DEST NOT LOADED CORRECTLY>
	IFDIF	<DEST>,<X1>,<
	ER2	AC-1,SN		;C(X1) WAS CLOBBERED>>
	IFLE	<X1-20>,<
	CAME	X1,[DATA]	;IS C(X1) = DATA
	IFIDN	<DEST>,<X1>,<
	ER2	X1,SN		;DEST NOT LOADED CORRECTLY>
	IFDIF	<DEST>,<X1>,<
	ER2	X1,SN		;C(X1) WAS CLOBBERED>>>
DEFINE	BLTM1	(A1,C1,S1,D1,SC)<
;VERIFY THAT BLT WILL TRANSFER A 1 WORD BLOCK OF DATA
;WHERE SOURCE AND DESTINATION ARE DIFFERENT
;SOURCE DATA = SC

	AC=C1
	SAVEAC	(1,1)
SN=A1
	SRCE=S1			;1ST LOC OF SOURCE = S1
	DEST=D1			;1ST LOC OF DESTINATION = D1
	SIZ=1			;BLOCK SIZE = 1 WORD

G'A1:	MOVE	AC,[SRCE,,DEST]	;LOAD BLT AC
	GMOV	(SRCE-1,<252525252525>)
	GMOV	(SRCE,<SC>)
	GMOV	(SRCE+1,<770077007700>)
	GMOV	(DEST-1,<070707070707>)
	GMOV	(DEST,<123456765432>)
	GMOV	(DEST+1,<552255225522>)
	BLT	AC,DEST+SIZ-1	;*BLOCK TRANSFER
	GCAM	(SRCE-1,<252525252525>)
	GCAM	(SRCE,<SC>)
	GCAM	(SRCE+1,<770077007700>)
	GCAM	(DEST-1,<070707070707>)
	GCAM	(DEST,<SC>)
	GCAM	(DEST+1,<552255225522>)
	JUMPL	AC+2,G'A1		;LOOP ON ERROR>