154 lines
2.7 KiB
Text
154 lines
2.7 KiB
Text
;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>
|
|
|