ASMB,A,B,L,C
      HED 2100 SERIES COMPUTER SHIFT-ROTATE TEST
      ORG 2B
* 
******************************************************************* 
* 
* 
* DIAGNOSTIC CHECKS SHIFT-ROTATE INSTR GROUP
*            CHECKS INSTRS & CONDITIONS AFFECTING OVERFLOW REG. 
* 
* DIAGNOSTIC ASSUMES THE FOLLOWING TESTS HAVE BEEN RUN
* 
*    MEMORY REFERENCE GROUP  DSN 101000 
*    ALTER-SKIP GROUP        DSN 101001 
* 
* RUNS IN 4K MEMORY 
* 
* TELETYPE NOT REQUIRED 
* 
* DIAGNOSTIC CONFIGURATOR NOT REQUIRED
* 
* DIAGNOSTIC SERIAL NO (DSN) 101002 
* 
* OPERATING INSTRUCTIONS: 
* 
*     1.  LOAD SRG DIAGNOSTIC.
* 
*     2.  SET P REGISTER TO 100.
* 
*     3.  SELECT PROGRAM OPTIONS: 
* 
*************** SWITCH REGISTER OPTIONS *************************** 
* 
*   BIT        MEANING
* 
*    0         LOOP BACK TO REPEAT A FAILING INSTRUCTION
*              BUT HALT 76 BEFORE EXECUTION 
*   1-11       RESERVED 
*   12         CLEAR TO HALT 102077 AT END OF PASS(A = PASS COUNT). 
*              SET TO LOOP ON DIAGNOSTIC. 
*   13-15      RESERVED 
* 
* 
*     4.  PRESS PRESET(INT. & EXT. IF PRESENT) AND RUN. 
* 
      SKP 
* 
* 
*************** COMPUTER HALTS *************************************
* 
*   HALT       MEANING
* 
*  10200X      X= 1, A OR B ERROR; =2, E ERROR; =4, SKIP ERROR
*              A = ACTUAL A OR B RESULT 
*              B = EXPECTED A OR B RESULT 
*              E = ACTUAL E RESULT
*  102000      ERROR DISPLAY HALT 
*              A = FAILING INSTR CODE 
*              B = ORIGINAL VALUE IN A OR B 
*              E = ORIGINAL VALUE IN E
*  10204X      OVERFLOW INSTR ERROR (X=ERROR #) 
*  10205X      OVERFLOW ERROR FROM ARITHMETIC OPERATION WITH A REG
*  10206X      OVERFLOW ERROR FROM ARITHMETIC OPERATION WITH B REG
*  102076      HALT BEFORE REPEATING ERROR CONDITION
*  102077      END OF PASS HALT(A = PASS COUNT) 
*  103000      UNEXPECTED CHANGE IN A REG 
*  103001      UNEXPECTED CHANGE IN B REG 
*  106077      UNEXPECTED TRAP CELL HALT
* 
******************************************************************* 
      SKP 
*     UNL 
*     REP 62        FILL TRAP CELLS 
*     OCT 106077    LOC 2 THRU 77 
      UNL 
      REP 62
      OCT 106077
      LST 
      ORG 100B
      JMP START 
      ORG 126B
      OCT 101002    DIAGNOSTIC SERIAL NO
      ORG 130B
      JMP START 
      JMP START 
      SPC 3 
A     EQU 0 
B     EQU 1 
BIT0  OCT 1 
BIT1  OCT 2 
BIT2  OCT 4 
BIT3  OCT 10
BIT4  OCT 20
BIT5  OCT 40
BIT6  OCT 100 
BIT9  OCT 1000
BIT11 OCT 4000
BIT12 OCT 10000 
BIT15 OCT 100000
.5    DEC 5 
.6    DEC 6 
.8    EQU BIT3
B100  EQU BIT6
PATX  OCT 173567   FIXED PATTERN FOR NON WORKING
SOVFC OCT 77777 
M1    OCT 177777
PCA   NOP           PASS COUNT
IE    NOP           INITIAL CONTENTS OF E REG 
ARG   NOP           ORGINAL A OR B REG PATTERN
EAB   NOP           EXPECTED A OR B REG RESULT
AAB   NOP           ACTUAL A OR B REG RESULT
EE    NOP           EXPECTED E REGISTER RESULT
PTI   NOP           PATTERN POINTER 
PT1   NOP           TABLE 1 POINTER 
PT2   NOP           TABLE 2 POINTER 
REG   NOP           BIT11 OF INSTRUCTION
ESKP  NOP           EXPECTED SKIP FLAG (0= NO SKIP) 
J     NOP           COLUMN 4 INDEX
K     NOP           COLUMN 1 INDEX
KX    NOP           COLUMN 1 FIELD
EE1   NOP           EXPECTED E AFTER 1ST SHIFT OR ROTATE
EAB1  NOP           EXPECTED A OR B AFTER 1ST SHIFT 
PT1X  NOP           TEMPORARY STORAGE FOR PT1 
CLE   NOP           BIT 5 OF INSTRUCTION
SLAB  NOP           BIT 3 OF INSTRUCTION
TBL5A DEF TBL5
TBL6A DEF TBL6
PATA  DEF PAT1      FWA PATTERNS
PATE  DEF P0020     LWA PATTERNS
TBL1A EQU PATE      FWA TABLE 1 
TBL2A DEF P1020     FWA TABLE 2 
SITA  DEF SIT       FWA SPECIAL INSTRUCTION TABLE 
SIT6A DEF SIT6      ADDR. OF 1ST ELA INSTR. IN TBL. 
SITE  DEF SIT+8     LWA SPECIAL INSTRUCTION TABLE 
      SPC 3 
* EXECUTE & CHECK ROUTINE FOR SHIFT ROTATE INSTRUCTIONS 
* 
E.C   NOP 
      LDB INSTR     B _ INSTRUCTION 
      LDA ESKP
      SZA           TEST EXPECTED SKIP
      JMP E.C1        SKIP EXPECTED 
      JSB INITT     INITIALIZE
      RSS           SKIP OVER REPEAT HALT 
RPTNS HLT 76B         HLT BEFORE REPEAT 
INSTR NOP           EXECUTE SHIFT ROTATE INSTRUCTION
      RSS             NO SKIP EXPECTED
      ISZ SKPEI     UNEXPECTED SKIP - STEP INDICATOR
      JMP E.C2
E.C1  STB INSTX     PUT INSTRUCTION IN LINE 
      JSB INITT     INITIALIZE
      RSS           SKIP OVER REPEAT HALT 
RPTS  HLT 76B         HLT BEFORE REPEAT 
INSTX NOP           EXECUTE SHIFT ROTATE INSTRUCTION
      ISZ SKPEI     DID NOT SKIP - STEP INDICATOR 
E.C2  STA AAB       ASSUME ACTUAL A OR B IS A REG.
      LDA INSTR 
      AND BIT11 
      SZA           TEST REGISTER INVOLVED
      JMP E.C4        ACTUAL REG. IS B
      CPB PATX        ACTUAL REG. IS A
      JMP E.C5
      LDA INSTR     ERROR: UNEXPECTED CHANGE IN B 
      OCT 103001      HALT:  T_103001, A_INSTR
      JMP E.C9        GO CHECK FOR REPEAT 
E.C4  LDA AAB       RESTORE A REG RESULT
      STB AAB       ACTUAL REGISTER IS B REGISTER 
      CPA PATX
      JMP E.C5
      LDB INSTR     ERROR: UNEXPECTED CHANGE IN A 
      OCT 103000      HALT:  T_103000, B_INSTR
      JMP E.C9        GO CHECK FOR REPEAT 
E.C5  CLB           INITIALIZE POSSIBLE HALT CODE 
      ISZ SKPEI     CHECK SKIP INDICATOR - IT SHOULD
      RSS             HAVE BEEN -2
      ADB BIT2      WAS -1:  SKIP OR NO SKIP ERROR
      LDA EAB 
      CPA AAB       COMPARE ACTUAL & EXPECTED A OR B
      RSS             REGISTER RESULTS
      ADB BIT0      A OR B REGISTER ERROR 
      CLA,SEZ 
      CCA           A _ ACTUAL E REG:  -1 IF NOT 0
      CPA EE        CHECK ACTUAL & EXPECTED E RESULT
      RSS 
      ADB BIT1      E REGISTER RESULT ERROR 
      SZB,RSS 
      JMP E.C,I     B=0, NO ERRORS, RETURN P+1
* 
* ERROR HALT & DISPLAY 1
* 
      ADB HLT0      FORM HALT 10200X INSTRUCTION
      STB HLTI        STORE IT IN LINE
      LDA AAB       A _ ACTUAL A OR B REG. RESULT 
      LDB EAB       B _ EXPECTED A OR B REG. RESULT 
HLTI  HLT .0X       E _ ACTUAL E RESULT, T_10200X 
* 
* 2ND DISPLAY HALT
* 
      LDA IE
      CLE,SZA 
      CCE           E _ ORGINAL E REG. CONTENTS 
      LDA INSTR     A _ SHIFT ROTATE INSTRUCTION
      LDB ARG       B _ ORGINAL A OR B REG. CONTENTS
HLT0  HLT 0         T _ 102000
* 
E.C9  LIA 1 
      AND BIT0
      SZA,RSS       SWITCH 0 CLEAR
      JMP E.C,I       DON'T LOOP REPEAT ON ERROR
      LDA ESKP      BEFORE REPEATING, CHECK THE 
      SZA             EXPECTED SKIP INDICATOR AGAIN 
      JMP E.C3
      JSB INITT     REINITIALIZE
      JMP RPTNS       DO AGAIN - NO SKIP EXPECTED 
E.C3  JSB INITT 
      JMP RPTS        DO AGAIN - SKIP EXPECTED
* 
INITT NOP 
      LDB M2
      STB SKPEI     RESET SKIP ERROR INDICATOR TO -2
      LDA IE
      CLE,SZA 
      CCE           INITIALIZE E REGISTER 
      LDA INSTR 
      AND BIT11 
      SZA 
      JMP INIT1 
      LDA ARG       A REGISTER INSTRUCTION
      LDB PATX        A_ARG, B_043210 
      JMP INITT,I 
INIT1 LDA PATX      B REGISTER INSTRUCTION
      LDB ARG         A_043210, B_REG 
      JMP INITT,I 
* 
M2    DEC -2
SKPEI NOP           SKIP ERROR INDICATOR:  0 = ERROR
.0X   EQU 0 
      SPC 3 
* SUBROUTINE TO UPDATE EAB WHEN J OR K IS 5 OR 6
*  GIVEN J OR K IN B
* 
SC1   NOP 
      CLA 
      CPB .5        IF J OR K = 5,
      LDA BIT15       EAB _ EAB + BIT15 * IE
      CPB .6        IF J OR K = 6 
      LDA BIT0        EAB _ EAB + BIT0 * IE 
      AND IE
      IOR EAB 
      STA EAB 
      JMP SC1,I 
      SPC 3 
* SUBROUTINE TO CHANGE EE WHEN J OR K IS 5 OR 6 
*  GIVEN J OR K IN B
* 
SC2   NOP 
      CLA 
      CPB .5        IF J OR K IS 5, 
      LDA BIT0        THEN EE _ BIT0 * ARG
      CPB .6        IF J OR K IS 6, 
      LDA BIT15       THEN EE _ BIT15 * ARG 
      SZA,RSS 
      JMP SC2,I     IF NEITHER 5 OR 6, LEAVE
      AND ARG         EE UNCHANGED
      SZA 
      CCA           MAKE EE -1 IF NOT 0 
      STA EE
      JMP SC2,I 
      SPC 3 
START CLC 0,C       TURN EVERYTHING OFF 
      CLA 
      STA PCA       RESET END OF PASS COUNT 
      SPC 3 
* GROUP 0:  NOP 
* 
SOP   CLA 
      STA ESKP        ESKP _ 0
      STA INSTR       INSTR _ 0 
G0.2  STA IE        FOR IE _ 0,1
      STA EE          EE _ IE 
      LDB PATA
G0.1  STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      STA EAB         EAB _ ARG 
      JSB E.C       GO EXECUTE & CHECK INSTRUCTION
      LDB PTI 
      INB 
      CPB PATE
      CCA,RSS 
      JMP G0.1      NEXT I
      CPA IE
      RSS 
      JMP G0.2      NEXT IE 
      SPC 3 
* GROUP 4:  CLE 
* 
      CLA 
      STA ESKP        ESKP _ 0
      STA EE          EE _ 0
G4.3  STA REG       FOR REG _ 0,1 
      IOR BIT5
      STA INSTR       INSTR _ REG + BIT5
      CLA 
G4.2  STA IE        FOR IE _ 0,1
      LDB PATA
G4.1  STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      STA EAB         EAB _ ARG 
      JSB E.C       EXECUTE & CHECK 
      LDB PTI 
      INB 
      CPB PATE
      CCA,RSS 
      JMP G4.1      NEXT I
      CPA IE
      RSS 
      JMP G4.2      NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G4.3      NEXT REG
      SPC 3 
* GROUP 2:  SLA - SLB 
* 
      CLA 
G2.3  STA REG       FOR REG _ 0,1 
      ADA BIT3
      STA INSTR       INSTR _ REG + BIT3
      CLA 
G2.2  STA IE        FOR IE _ 0,1
      STA EE          EE _ IE 
      LDB PATA
G2.1  STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      STA EAB         EAB _ ARG 
      AND BIT0
      XOR BIT0
      STA ESKP      ESKP _ CMPL(BIT0 * ARG) 
      JSB E.C       GO EXECUTE & CHECK
      LDB PTI 
      INB 
      CPB PATE
      CCA,RSS 
      JMP G2.1      NEXT I
      CPA IE
      RSS 
      JMP G2.2      NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G2.3      NEXT REG
      SPC 3 
* GROUP 6:  CLE,SLA - CLE,SLB 
* 
      CLA 
      STA EE          EE _ 0
G6.3  STA REG       FOR REG _ 0,1 
      ADA BIT5
      ADA BIT3
      STA INSTR       INSTR _ REG + BIT3 + BIT5 
      CLA 
G6.2  STA IE        FOR IE _ 0,1
      LDB PATA
G6.1  STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      STA EAB         EAB _ ARG 
      AND BIT0
      XOR BIT0
      STA ESKP      ESKP _ CMPL(BIT0 * ARG) 
      JSB E.C       GO EXECUTE & CHECK
      LDB PTI 
      INB 
      CPB PATE
      CCA,RSS 
      JMP G6.1      NEXT I
      CPA IE
      RSS 
      JMP G6.2      NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G6.3      NEXT REG
      SPC 3 
* GROUP 1:  COL4
* 
      CLA 
      STA ESKP        ESKP _ 0
G1.4  STA REG       FOR REG _ 0,1 
      CLA 
G1.3  STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE 1 POINTER 
      CLA 
G1.2  STA J         FOR J _ 0,7 
      ADA BIT4
      ADA REG 
      STA INSTR       INSTR _ REG + BIT4 + J
      LDB PATA
G1.1  STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      LDA PT1,I 
      STA EAB         ASSUME EAB = TBL1(I,J)
      LDA IE
      STA EE          ASSUME EE = IE
      LDB J 
      JSB SC1         CHECK EAB FOR J = 5 OR 6
      LDB J 
      JSB SC2         CHECK EE FOR J = 5 OR 6 
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G1.1      NEXT I
      ADA J 
      CPA .8
      CCA,RSS 
      JMP G1.2      NEXT J
      CPA IE
      RSS 
      JMP G1.3      NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G1.4      NEXT REG
      SPC 3 
* GROUP 10:  COL1 
* 
      CLA 
      STA ESKP        ESKP _ 0
G10.4 STA REG       FOR REG _ 0,1 
      CLA 
G10.3 STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE 1 POINTER 
      CLA 
      CLB 
G10.2 STA K         FOR K _ 0,7 
      STB KX          KX _ K*2**8 
      ADB BIT9
      ADB REG 
      STB INSTR       INSTR _ REG + BIT9 + KX 
      LDB PATA
G10.1 STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      LDA PT1,I 
      STA EAB         EAB _ TBL1(I,K) 
      LDA IE
      STA EE          EE _ IE 
      LDB K 
      JSB SC1         CHECK EAB FOR K = 5 OR 6
      LDB K 
      JSB SC2         CHECK EE FOR K = 5 OR 6 
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G10.1     NEXT I
      LDB KX
      ADB B100
      ADA K 
      CPA .8
      CCA,RSS 
      JMP G10.2     NEXT K
      CPA IE
      RSS 
      JMP G10.3     NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G10.4     NEXT REG
      SPC 3 
* GROUP 3: SLA,COL4 - SLB,COL4
* 
      CLA 
G3.4  STA REG       FOR REG _ 0,1 
      CLA 
G3.3  STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE 1 POINTER 
      CLA 
G3.2  STA J         FOR J _ 0,7 
      ADA BIT3
      ADA BIT4
      ADA REG 
      STA INSTR       INSTR _ REG + BIT4 + BIT3 + J 
      LDB PATA
G3.1  STB PTI       FOR I - 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      AND BIT0
      XOR BIT0
      STA ESKP      ESKP _ CMPL(BIT0 * ARG) 
      LDA IE
      STA EE          EE _ IE 
      LDA PT1,I 
      STA EAB         EAB _ TBL1(I,J) 
      LDB J 
      JSB SC1         CHECK EAB FOR K = 5 OR 6
      LDB J 
      JSB SC2         CHECK EE FOR K = 5 OR 6 
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G3.1      NEXT I
      ADA J 
      CPA .8
      CCA,RSS 
      JMP G3.2      NEXT J
      CPA IE
      RSS 
      JMP G3.3      NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G3.4      NEXT REG
      SPC 3 
* GROUP 5:  CLE,COL4
* 
      CLA 
      STA ESKP        ESKP _ 0
G5.4  STA REG       FOR REG _ 0,1 
      CLA 
G5.3  STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE 1 POINTER 
      CLA 
G5.2  STA J         FOR J _ 0,7 
      ADA BIT5
      ADA BIT4
      ADA REG 
      STA INSTR       INSTR _ REG + BIT5 + BIT4 + J 
      LDB PATA
G5.1  STB PTI       FOR I _ 0,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      CLA 
      STA EE          EE _ 0
      LDA PT1,I 
      STA EAB         IAB _ TBL1(I,J) 
      LDB J 
      JSB SC2         CHECK EE FOR K = 5 OR 6 
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G5.1      NEXT I
      ADA J 
      CPA .8
      CCA,RSS 
      JMP G5.2      NEXT J
      CPA IE
      RSS 
      JMP G5.3      NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G5.4      NEXT REG
      SPC 3 
* GROUP 7:  CLE,SLA,COL4 - CLE,SLB,COL4 
* 
      CLA 
G7.4  STA REG       FOR REG _ 0,1 
      CLA 
G7.3  STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE POINTER 
      CLA 
G7.2  STA J         FOR J _ 0,7 
      ADA BIT5
      ADA BIT4
      ADA BIT3
      ADA REG         INSTR _ REG + BIT5 + BIT4 
      STA INSTR         + BIT3 + J
      LDB PATA
G7.1  STB PTI       FOR I _ 0,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      AND BIT0
      XOR BIT0
      STA ESKP      ESKP _ CMPL(BIT0 * ARG) 
      LDA PT1,I 
      STA EAB         EAB _ TBL1(I,J) 
      CLA 
      STA EE          EE _ 0
      LDB J 
      JSB SC2       CHECK IE FOR J = 5 OR 6 
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G7.1      NEXT I
      ADA J 
      CPA .8
      CCA,RSS 
      JMP G7.2      NEXT J
      CPA IE
      RSS 
      JMP G7.3      NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G7.4      NEXT REG
      SPC 3 
* GROUP 14:  COL1,CLE 
* 
      CLA 
      STA EE          EE _ 0
      STA ESKP        ESKP _ 0
G14.4 STA REG       FOR REG _ 0,1 
      CLA 
G14.3 STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE 1 POINTER 
      CLA 
      CLB 
G14.2 STA K         FOR K _ 0,7 
      STB KX          KX _ K*2**8 
      ADB BIT5
      ADB BIT9
      ADB REG 
      STB INSTR       INSTR _ REG + BIT9 + BIT5 + KX
      LDB PATA
G14.1 STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      LDA PT1,I 
      STA EAB         EAB _ TBL1(I,K) 
      LDB K 
      JSB SC1         CHECK EAB FOR K = 5 OR 6
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G14.1     NEXT I
      LDB KX
      ADB B100
      ADA K 
      CPA .8
      CCA,RSS 
      JMP G14.2     NEXT K
      CPA IE
      RSS 
      JMP G14.3     NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G14.4     NEXT REG
      SPC 3 
* GROUP 12:  COL1,SLA - COL1,SLB
* 
      CLA 
G12.4 STA REG       FOR REG _ 0,1 
      CLA 
G12.3 STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE 1 POINTER 
      CLA 
      CLB 
G12.2 STA K         FOR K _ 0,7 
      STB KX          KX _ K*2**8 
      ADB BIT9
      ADB BIT3
      ADB REG 
      STB INSTR       INSTR _ REG + BIT9 + BIT3 + KX
      LDB PATA
G12.1 STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      LDA IE
      STA EE          EE _ IE 
      LDB K 
      JSB SC2         CHECK EE FOR K = 5 OR 6 
      LDA PT1,I 
      STA EAB         EAB _ TBL1(I,K) 
      LDB K 
      JSB SC1         CHECK EAB FOR K = 5 OR 6
      AND BIT0
      XOR BIT0
      STA ESKP        ESKP _ CMPL(BIT0 * EAB) 
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G12.1     NEXT I
      LDB KX
      ADB B100
      ADA K 
      CPA .8
      CCA,RSS 
      JMP G12.2     NEXT K
      CPA IE
      RSS 
      JMP G12.3     NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G12.4     NEXT REG
      SPC 3 
* GROUP 16:  COL1,CLE,SLA - COL1,CLE,SLB
* 
      CLA 
      STA EE          EE _ 0
G16.4 STA REG       FOR REG _ 0,1 
      CLA 
G16.3 STA IE        FOR IE _ 0,1
      LDB TBL1A 
      STB PT1         RESET TABLE 1 POINTER 
      CLA 
      CLB 
G16.2 STA K         FOR K _ 0,7 
      STB KX          KX _ K*2**8 
      ADB BIT9
      ADB BIT5
      ADB BIT3
      ADB REG         INSTR _ REG + BIT9 + BIT5 
      STB INSTR         + BIT3 + KX 
      LDB PATA
G16.1 STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      LDA PT1,I 
      STA EAB         EAB _ TBL1(I,K) 
      LDB K 
      JSB SC1         CHECK EAB FOR K = 5 OR 6
      AND BIT0
      XOR BIT0
      STA ESKP        ESKP _ CMPL(BIT0 * EAB) 
      JSB E.C       GO EXECUTE & CHECK
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G16.1     NEXT I
      LDB KX
      ADB B100
      ADA K 
      CPA .8
      CCA,RSS 
      JMP G16.2     NEXT K
      CPA IE
      RSS 
      JMP G16.3     NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G16.4     NEXT REG
      SPC 3 
                                                                                                                                                                                                                                        