Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/dbkait.mac
There are no other files named dbkait.mac in the archive.
;DBKAI
MCNVER==0
DECVER==3
XLIST
DEFINE NAME (MCNVER,DECVER)<
TITLE DBKAI PDP-10 KI10 BASIC INSTRUCTION DIAGNOSTIC (9) MCNVER,DECVER
>
LIST
LALL
NAME \MCNVER,\DECVER
;(LOGICAL SHIFT, ROTATE, ARITHMETIC SHIFT; SINGLE AND COMBINED)
;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
KLOLD==1
DEBUG=40
EXCASB=1
USRASB=1
KI10=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/DBKAI/
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 SETACS (WW,XX)<
MOVEI AC-1,WW ;SETUP AC-1
HRLI AC-1,WW ;FOR COMPARISION
MOVE AC-2,<AC-1>&17 ;SETUP AC-2 FOR COMPARISON
MOVEI AC,XX ;SETUP AC RIGHT
HRLI AC,XX ;SETUP AC LEFT
MOVEM AC,<AC+1>&17 ;SETUP AC2>
;USER DEFINED MACROS
DEFINE SR1 (T,D1A,D1B,R1A,R1B,OP,S)<
;THIS MACRO SHIFTS/ROTATES THE DATA SPECIFIED IN [XWD D1A,D1B] S BIT
;POSITIONS AND COMPARES THE RESULT IN THE AC TO THE DATA SPECIFIED IN [XWD R1A,R1B]
;IT ALSO CHECKS THAT C(AC+1) WAS NOT MODIFIED
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD 741703,607417];INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE S BIT POSITIONS
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD 741703,607417]
ER4 AC+1,T'01 ;C(AC+1) WAS MODIFIED INCORRECTLY
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SR2 (T,D1A,D1B,D2A,D2B,R1A,R1B,R2A,R2B,OP,S)<
;THIS MACRO PERFORMS A COMBINED SHIFT/ROTATE OPERATION ON THE
;DATA SPECIFIED IN [XWD D1A,D1B] AND [XWD D2A,D2B] S BIT POSITIONS AND
;COMPARES THE RESULT IN AC AND AC+1 TO THE DATA SPECIFIED IN [XWD R1A,R1B] AND
;[XWD R2A,R2B]
E'T'00: MOVE AC,[XWD D1A,D1B] ;INITIALIZE AC
MOVE AC+1,[XWD D2A,D2B] ;INITIALIZE AC+1
OP AC,S ;*SHIFT/ROTATE COMBINED S PLACES
CAME AC,[XWD R1A,R1B] ;IS RESULT IN AC CORRECT?
ER3 AC,T'01 ;RESULT IN AC IS INCORRECT
CAME AC+1,[XWD R2A,R2B] ;IS RESULT IN AC+1 CORRECT?
ER4 AC+1,T'01 ;RESULT IN AC+1 IS INCORRECT
JUMPL AC+2,E'T'00 ;LOOP ON ERROR SWITCH>