Moved all the KA10 diagnostics into a ka10 folder
This commit is contained in:
parent
afd621dc79
commit
6eba847a18
57 changed files with 76 additions and 53 deletions
|
|
@ -1,445 +0,0 @@
|
|||
;DAKAK
|
||||
|
||||
MCNVER==0
|
||||
DECVER==2
|
||||
|
||||
|
||||
XLIST
|
||||
DEFINE NAME (MCNVER,DECVER)<
|
||||
|
||||
TITLE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 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
|
||||
|
||||
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
|
||||
KI10=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/DAKAK/
|
||||
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>
|
||||
|
||||
SUBTTL DIAGNOSTIC SECTION
|
||||
|
||||
EXIT: ;DROPDV ;CLOSE LOGICAL OUTPUT FILE
|
||||
;EXIT
|
||||
|
||||
PGMNAM: ASCIZ/
|
||||
PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) [DAKAK]
|
||||
/
|
||||
|
||||
;INITIALIZE
|
||||
|
||||
TESTPC: 0 ;SUBTEST PC
|
||||
|
||||
LOC 30621
|
||||
|
||||
START: ;PGMINT
|
||||
;MOVE [ASCIZ/AK/]
|
||||
;MOVEM TLET ;INITIALIZE TEST LETTER
|
||||
|
||||
STARTA: JRST F00 ;GO PERFORM DIAGNOSTIC
|
||||
SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
|
||||
|
||||
ADR=3000
|
||||
AC=14
|
||||
E=<AC-2>&17
|
||||
|
||||
F00: SAVEAC (1,1)
|
||||
|
||||
;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0
|
||||
MOP1 (\ADR,0,-1,0,0,0)
|
||||
|
||||
AC=13
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36, <
|
||||
ADR=ADR+1
|
||||
XX=XX+XX
|
||||
IFE XX,<XX=1>
|
||||
|
||||
;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0
|
||||
MOP1 (\ADR,0,-1,XX,0,0)>
|
||||
AC=12
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36, <
|
||||
ADR=ADR+1
|
||||
XX=XX+XX+1
|
||||
IFE <XX-1>,<XX=-2>
|
||||
|
||||
;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0
|
||||
MOP1 (\ADR,0,-1,XX,0,0)>
|
||||
ADR=ADR+1
|
||||
AC=14
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
|
||||
;MULTIPLY -1 BY 0 TO GET PRODUCT OF 0
|
||||
MOP1 (\ADR,0,-1,-1,0,0)
|
||||
SUBTTL DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM
|
||||
|
||||
AC=13
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
|
||||
XX=-1
|
||||
|
||||
;MULTIPLICAND=1
|
||||
REPEAT ^D16,<
|
||||
;TEST MULTIPLICATION ALGORITHM
|
||||
;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
|
||||
;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST
|
||||
;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
|
||||
;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
|
||||
;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
|
||||
;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
|
||||
;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND
|
||||
;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
|
||||
;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
|
||||
;OF C(E).
|
||||
|
||||
ADR=ADR+1
|
||||
XX=XX+1
|
||||
|
||||
MOP1 (\ADR,XX,-1,1,0,XX)>
|
||||
AC=12
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
|
||||
XX=-1
|
||||
|
||||
;MULTIPLICAND=-1
|
||||
REPEAT ^D16,<
|
||||
;TEST MULTIPLICATION ALGORITHM
|
||||
;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE
|
||||
;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST
|
||||
;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE
|
||||
;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM.
|
||||
;THIS PROCESS IS REPEATED 18 TIMES IN ORDER
|
||||
;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS
|
||||
;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND
|
||||
;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE
|
||||
;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT
|
||||
;OF C(E).
|
||||
|
||||
ADR=ADR+1
|
||||
XX=XX+1
|
||||
MX=-XX
|
||||
IFE XX,<
|
||||
V1=-1
|
||||
V2=0>
|
||||
IFN XX,<
|
||||
V1=0
|
||||
V2=-1>
|
||||
MOP1 (\ADR,XX,V1,-1,V2,MX)>
|
||||
SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT
|
||||
|
||||
AC=11
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36, <
|
||||
ADR=ADR+1
|
||||
XX=XX+XX
|
||||
IFE XX,<XX=1>
|
||||
|
||||
;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO
|
||||
MOP1 (\ADR,XX,-1,0,0,0)>
|
||||
AC=10
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36,<
|
||||
ADR=ADR+1
|
||||
XX=XX+XX+1
|
||||
IFE <XX-1>,<XX=-2>
|
||||
|
||||
;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0
|
||||
MOP1 (\ADR,XX,-1,0,0,0)>
|
||||
AC=7
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
ADR=ADR+1
|
||||
|
||||
;MULTIPLY 0 BY -1 TO GET PRODUCT OF 0
|
||||
MOP1 (\ADR,-1,-1,0,0,0)
|
||||
SUBTTL DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT
|
||||
|
||||
AC=6
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36, <
|
||||
ADR=ADR+1
|
||||
XX=XX+XX
|
||||
IFE XX,<XX=1>
|
||||
|
||||
;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1
|
||||
IFG XX,<V1=0>
|
||||
IFL XX,<V1=-1>
|
||||
MOP1 (\ADR,1,-1,XX,V1,XX)>
|
||||
AC=5
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D35,< ;LAST CASE IS DIFFERENT
|
||||
ADR=ADR+1
|
||||
XX=XX+XX
|
||||
IFE XX,<XX=1>
|
||||
|
||||
;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1
|
||||
IFG XX,<V1=0>
|
||||
IFL XX,<V1=-1>
|
||||
MOP1 (\ADR,XX,-1,1,V1,XX)>
|
||||
;MULTIPLY A 1 BY 400000,,0
|
||||
XX=400000000000
|
||||
ADR=ADR+1
|
||||
|
||||
MOP1 (\ADR,XX,-1,1,1,0)
|
||||
AC=4
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36,<
|
||||
ADR=ADR+1
|
||||
XX=XX+XX
|
||||
IFE XX,<XX=1>
|
||||
|
||||
;MULTIPLY A RIPPLED ONE BY -1
|
||||
IFG XX,<
|
||||
V1=-1
|
||||
V2=-XX>
|
||||
IFL XX,<
|
||||
V1=1
|
||||
V2=0>
|
||||
MOP1 (\ADR,-1,0,XX,V1,V2)>
|
||||
AC=3
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D35,< ;LAST CASE IS DIFFERENT
|
||||
ADR=ADR+1
|
||||
XX=XX+XX
|
||||
IFE XX,<XX=1>
|
||||
|
||||
;MULTIPLY -1 BY A RIPPLED 1
|
||||
IFG XX,<
|
||||
V1=-1
|
||||
V2=-XX>
|
||||
IFL XX,<
|
||||
V1=1
|
||||
V2=0>
|
||||
MOP1 (\ADR,XX,0,-1,V1,V2)>
|
||||
;MULTIPLY A -1 BY 400000,,0
|
||||
ADR=ADR+1
|
||||
XX=400000000000
|
||||
|
||||
MOP1 (\ADR,XX,0,-1,-1,XX)
|
||||
AC=2
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36,<
|
||||
ADR=ADR+1
|
||||
XX=XX+XX+1
|
||||
IFE <XX-1>,<XX=-2>
|
||||
|
||||
;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0
|
||||
IFL XX,<V1=-1>
|
||||
IFG XX,<V1=0>
|
||||
MOP1 (\ADR,1,0,XX,V1,XX)>
|
||||
AC=10
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36,<
|
||||
ADR=ADR+1
|
||||
XX=XX+XX+1
|
||||
IFE <XX-1>,<XX=-2>
|
||||
|
||||
;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0
|
||||
IFL XX,<V1=-1>
|
||||
IFG XX,<V1=0>
|
||||
MOP1 (\ADR,XX,0,1,V1,XX)>
|
||||
AC=10
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36, <
|
||||
ADR=ADR+1
|
||||
XX=XX+XX+1
|
||||
IFE <XX-1>,<XX=-2>
|
||||
|
||||
;MULTIPLY A RIPPLED 0 BY -1
|
||||
MX=-XX
|
||||
IFL XX,<V1=0>
|
||||
IFG XX,<V1=-1>
|
||||
MOP1 (\ADR,-1,-1,XX,V1,MX)>
|
||||
AC=14
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
XX=0
|
||||
|
||||
REPEAT ^D36, <
|
||||
ADR=ADR+1
|
||||
XX=XX+XX+1
|
||||
IFE <XX-1>,<XX=-2>
|
||||
|
||||
;MULTIPLY -1 BY A RIPPLED 0
|
||||
MX=-XX
|
||||
IFL XX,<V1=0>
|
||||
IFG XX,<V1=-1>
|
||||
MOP1 (\ADR,XX,-1,-1,V1,MX)>
|
||||
N1=525252525252
|
||||
N2=252525252525
|
||||
AC=13
|
||||
E=<AC-2>&17
|
||||
SAVEAC (1,1)
|
||||
WW=^D36
|
||||
XX=0
|
||||
ZZ=0
|
||||
|
||||
REPEAT ^D35, < ;LAST CASE DIFFERENT
|
||||
|
||||
ADR=ADR+1
|
||||
WW=WW-1
|
||||
XX=XX+XX
|
||||
ZZ=ZZ+1
|
||||
IFE XX,<ZZ=0>
|
||||
IFE XX,<XX=1>
|
||||
|
||||
;MULTIPLY 1010...1010 BY A FLOATING 1
|
||||
V1=N1
|
||||
V2=<N1_ZZ>!1B0
|
||||
IFE WW,<V2=0>
|
||||
IFL XX,<V3=N2+1>
|
||||
IFG XX,<V3=<<-1B<WW>>!<N1_<-WW>>>>
|
||||
MOP1 (\ADR,XX,0,V1,V3,V2)>
|
||||
|
||||
;MULTIPLY A 1010...1010 BY 400000,,0
|
||||
ADR=ADR+1
|
||||
XX=400000000000
|
||||
V1=525252525252
|
||||
V3=525252525252
|
||||
V2=400000000000
|
||||
|
||||
MOP1 (\ADR,XX,0,V1,V3,V2)
|
||||
LAST1: ;JRST BEGEND
|
||||
|
||||
END START
|
||||
Loading…
Reference in a new issue