;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,&17 ;INFORM ERROR ROUTINE WHICH MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> ;SPECIAL INSTRUCTIONS TO ASSEMBLER IF1, ;BYTBLK BEYOND AC RANGE FOR PASS 1 IF1, ;BLTBLK BEYOND AC RANGE FOR PASS 1 ;MACROS DEFINE GMOV (X1,DATA),< IFLE ,< MOVE X1,[DATA] ;PRELOAD X1 WITH DATA> IFG ,< MOVE AC+1,[DATA] MOVEM AC+1,X1 ;PRELOAD X1 WITH DATA>> DEFINE GCAM (X1,DATA),< SN=SN+1 IFG ,< MOVE AC-1,X1 CAME AC-1,[DATA] ;IS C(X1) = DATA IFIDN ,,< ER2 AC-1,SN ;DEST NOT LOADED CORRECTLY> IFDIF ,,< ER2 AC-1,SN ;C(X1) WAS CLOBBERED>> IFLE ,< CAME X1,[DATA] ;IS C(X1) = DATA IFIDN ,,< ER2 X1,SN ;DEST NOT LOADED CORRECTLY> IFDIF ,,< 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,) 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,) GCAM (SRCE+1,<770077007700>) GCAM (DEST-1,<070707070707>) GCAM (DEST,) GCAM (DEST+1,<552255225522>) JUMPL AC+2,G'A1 ;LOOP ON ERROR>