* GROUP 11: COL1,COL4 
* GROUP 13: COL1,CLE,COL4 
* GROUP 15: COL1,SLA,COL4 - COL1,SLB,COL4 
* GROUP 17: COL1,CLE,SLA,COL4 - COL1,CLE,SLB,COL4 
* 
      CLA 
G11.7 STA REG       FOR REG _ 0,1 
      CLA 
G11.6 STA IE        FOR IE _ 0,1
      CLA 
G11.5 STA SLAB      FOR SLA OR SLB _ 0,1
      CLA 
G11.4 STA CLE       FOR CLE _ 0,1 
      LDB TBL2A 
      STB PT2         RESET TABLE 2 POINTER 
      LDB TBL1A 
      STB PT1X        INITIALIZE TABLE 1 POINTER
      CLA 
      CLB 
G11.3 STA K         FOR K _ 0,7 
      STB KX          K _ K*2**8
      CLA 
G11.2 STA J         FOR J _ 0,7 
      LDB PT1X
      STB PT1         RESET TABLE 1 POINTER 
      ADA REG 
      ADA BIT9
      ADA KX
      ADA CLE 
      ADA BIT4
      ADA SLAB        INSTR _ REG + BIT9 + KX + CLE 
      STA INSTR         + BIT4 + SLAB + J 
      LDB PATA
G11.1 STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      LDA PT1,I 
      STA EAB1        EAB1 = EXPECTED A OR B RESULT 
      CLA               AFTER 1ST SHIFT OR ROTATE 
      LDB K 
      CPB .5          EAB1 _ TBL1(K,I)
      LDA BIT15         + BIT15 * IE IF K=5 
      CPB .6            + BIT0 * IE IF K=6
      LDA BIT0
      AND IE
      IOR EAB1
      STA EAB1
      LDB SLAB
      STB ESKP
      SZB,RSS 
      JMP G11.C 
      AND BIT0
      XOR BIT0
      STA ESKP        ESKP _ SLAB * CMPL(BIT0 * EAB1) 
G11.C LDA IE
      STA EE1         EE1 _ EXPECT E AFTER 1ST SHIFT
      CLA 
      LDB K             ASSUME EE1 = IE 
      CPB .5
      LDA BIT0
      CPB .6            EE1 _ BIT0 * ARG IF K=5 
      LDA BIT15         EE1 _ BIT15 * ARG IF K=6
      SZA,RSS 
      JMP G11.A 
      AND ARG 
      SZA 
      CCA 
      STA EE1 
G11.A LDA CLE           IF CLE =1,  EE1 _ 0 
      CLB 
      SZA 
      STB EE1 
      LDA EE1         EE _ EE1 IF J NOT 5 OR 6
      STA EE
      CLA 
      LDB J            IF J=5, EE _ BIT0 * EAB1 
      CPB .5
      LDA BIT0         IF J=6, EE _ BIT15 * EAB1
      CPB .6
      LDA BIT15 
      SZA,RSS 
      JMP G11.B 
      AND EAB1
      SZA 
      CCA 
      STA EE
G11.B LDA PT2,I       ASSUME EAB _ TBL2(I,J,K)
      STA EAB 
      LDB J 
      CLA              IF J=5,
      CPB .5            EAB _ EAB + BIT15* EE1
      LDA BIT15 
      CPB .6          IF J=6
      LDA BIT0           EAB _ EAB + BIT0 * EE1 
      AND EE1 
      IOR EAB 
      STA EAB 
      CLA 
      LDB K            CHECK K: 
      CPB .5
      LDA TBL5A          IF K=5, A _ TABLE 5 ADDRESS
      CPB .6
      LDA TBL6A          IF K=6, A _ TABLE 6 ADDRESS
      SZA,RSS 
      JMP G11.Z          K NOT 5 OR 6 
      ADA J             ADDRESS IN TBL
      LDA A,I           BIT MASK = F(J) 
      AND IE
      IOR EAB 
      STA EAB           EAB _ EAB + BITS * IE 
G11.Z JSB E.C       GO EXECUTE & CHECK
      ISZ PT2         STEP TABLE POINTERS 
      ISZ PT1 
      LDB PTI 
      INB 
      CPB PATE
      CLA,INA,RSS 
      JMP G11.1     NEXT I
      ADA J 
      CPA .8
      CLA,INA,RSS 
      JMP G11.2     NEXT J
      LDB PT1 
      STB PT1X        ADJUST TABLE 1 POINTER
      LDB KX
      ADB B100
      ADA K 
      CPA .8
      RSS 
      JMP G11.3     NEXT K
      LDA CLE 
      ADA BIT5
      CPA BIT5
      JMP G11.4     NEXT CLE BIT
      LDA SLAB
      ADA BIT3
      CPA BIT3
      JMP G11.5     NEXT SLA OR SLB BIT 
      CCA 
      CPA IE
      RSS 
      JMP G11.6     NEXT IE 
      LDA REG 
      ADA BIT11 
      CPA BIT11 
      JMP G11.7     NEXT REG
      SPC 3 
* SPCEIAL GROUP:  ERA, ELA, ERB, ELB WITH D/E FIELD =0
*  EXPECT RESULT IN E SAME AS INSTRUCTION WITH D/E FIELD = 1
*  EXPECT NO CHANGE IN A OR B.
* 
      CLA 
      STA ESKP        ESKP _ 0
      LDA .5
      STA J           J = 5 FOR ERA OR ERB
      LDB SITA
SG.3  STB PT2         NEXT ADDR. IN SPEC. INSTR. TLB
      LDA PT2,I 
      STA INSTR       NEXT INSTRUCTION
      CLA 
SG.2  STA IE        FOR IE _ 0,1
      LDB PATA
SG.1  STB PTI       FOR I _ 1,7 
      LDA B,I 
      STA ARG         ARG _ PAT(I)
      STA EAB         EAB _ ARG 
      LDB J 
      JSB SC2         GET EE
      JSB E.C       GO EXECUTE & CHECK
      LDB PTI 
      INB 
      CPB PATE
      CCA,RSS 
      JMP SG.1      NEXT DATA PATTERN 
      CPA IE
      RSS 
      JMP SG.2      NEXT IE 
      LDA .6
      LDB PT2 
      INB 
      CPB SIT6A 
      STA J           J = 6 FOR ELA OR ELB
      CPB SITE
      RSS 
      JMP SG.3      NEXT INSTRUCTION
      SPC 3 
* OVERFLOW REGISTER TESTS 
* 
      CLO 
      SOC 
      HLT 40B       CLO - SOC COMBINATION FAILED
      CLO 
      SOS 
      RSS 
      HLT 41B       CLO - SOS COMBINATION FAILED
      STO 
      SOS 
      HLT 42B       STO - SOS COMBINATION FAILED
      STO 
      SOC 
      RSS 
      HLT 43B       STO - SOC COMBINATION FAILED
      STO 
      SOS C 
      HLT 44B       STO - SOS,C COMB. FAILED
      SOC 
      HLT 45B       SOS,C DID NOT CLEAR OVFLO 
      CLO 
      LDA SOVFC     A _ 077777
      INA 
      SOS 
      HLT 50B       INA DID NOT SET OVERFLOW
      CLO 
      CCA           A _ 177777
      INA 
      SOC 
      HLT 51B       INA SHOULD NOT HAVE SET OVERFLOW
      CLO 
      LDA SOVFC 
      ADA SOVFC     SUM OF 077777 & 077777 IN A 
      SOS 
      HLT 52B       ADA DID NOT SET OVERFLOW
      CLO 
      LDA BIT15 
      ADA BIT15     SUM OF 100000 & 100000 IN A 
      SOS 
      HLT 53B       ADA DID NOT SET OVERFLOW
      CLO 
      LDA SOVFC 
      ADA BIT15     SUM OF 0777777 & 100000 IN A
      SOC 
      HLT 54B       OV SET ON SUM ON UNLIKE SIGNS 
      CLO 
      CCA 
      ADA M1        SUM OF 177777 & 177777 IN A 
      SOC 
      HLT 55B       ILLEGAL SET OF OVERFLOW 
      CLO 
      CLA 
      ADA A         SUM OF 000000 & 00000 IN A
      SOC 
      HLT 56B       ILLEGAL SET OF OVERFLOW 
      CLO 
      LDB SOVFC     B _ 077777
      INB 
      SOS 
      HLT 60B       INB DID NOT SET OVERFLOW
      CLO 
      CCB           B _ 177777
      INB 
      SOC 
      HLT 61B       INB SHOULD NOT HAVE SET OVERFLOW
      CLO 
      LDB SOVFC 
      ADB SOVFC     SUM OF 077777 & 077777 IN B 
      SOS 
      HLT 62B       ADB DID NOT SET OVERFLOW
      CLO 
      LDB BIT15 
      ADB BIT15     SUM OF 100000 & 100000 IN B 
      SOS 
      HLT 63B       ADB DID NOT SET OVERFLOW
      CLO 
      LDB SOVFC 
      ADB BIT15     SUM OF 077777 & 100000 IN B 
      SOC 
      HLT 64B       OV SET ON SUM OF UNLIKE SIGNS 
      CLO 
      CCB 
      ADB M1        SUM OF 177777 & 177777 IN B 
      SOC 
      HLT 65B       ILLEGAL SET OF OVERFLOW 
      CLO 
      CLB 
      ADB B         SUM OF 000000 & 000000 IN B 
      SOC 
      HLT 66B       ILLEGAL SET OF OVERFLOW 
      SPC 3 
EOP   LDA PCA       STEP END OF PASS COUNT
      INA 
      STA PCA 
      LIA 1 
      AND BIT12 
      SZA 
      JMP SOP 
      LDA PCA 
      HLT 77B       END OF PASS HALT
      JMP SOP       GO AROUND AGAIN 
      SPC 3 
TBL5  OCT 100000
      OCT 140000
      OCT 1 
      OCT 40000 
      OCT 0 
      OCT 40000 
      OCT 0 
      OCT 10
TBL6  OCT 2 
      OCT 0 
      OCT 2 
      OCT 100000
      OCT 2 
      OCT 0 
      OCT 2 
      OCT 20
PAT1  OCT 1 
PAT2  OCT 100000
PAT3  OCT 100001
PAT4  OCT 074170
PAT5  OCT 103607
PAT6  OCT 125252
PAT7  OCT 052525
P0020 OCT 2 
      OCT 100000
      OCT 100002
      OCT 070360
      OCT 107416
      OCT 152524
      OCT 025252
P0021 OCT 0 
      OCT 140000
      OCT 140000
      OCT 036074
      OCT 141703
      OCT 152525
      OCT 025252
P0022 OCT 2 
      OCT 1 
      OCT 3 
      OCT 170360
      OCT 7417
      OCT 052525
      OCT 125252
P0023 OCT 100000
      OCT 40000 
      OCT 140000
      OCT 036074
      OCT 141703
      OCT 052525
      OCT 125252
P0024 OCT 2 
      OCT 0 
      OCT 2 
      OCT 070360
      OCT 7416
      OCT 52524 
      OCT 25252 
P0025 OCT 0 
      OCT 40000 
      OCT 40000 
      OCT 36074 
      OCT 41703 
      OCT 52525 
      OCT 25252 
P0026 OCT 2 
      OCT 0 
      OCT 2 
      OCT 170360
      OCT 7416
      OCT 52524 
      OCT 125252
P0027 OCT 20
      OCT 10
      OCT 30
      OCT 103607
      OCT 74170 
      OCT 125252
      OCT 52525 
P1020 OCT 4 
      OCT 100000
      OCT 100004
      OCT 60740 
      OCT 117034
      OCT 125250
      OCT 52524 
P1021 OCT 1 
      OCT 140000
      OCT 140001
      OCT 034170
      OCT 143607
      OCT 165252
      OCT 12525 
P1022 OCT 4 
      OCT 1 
      OCT 5 
      OCT 160740
      OCT 17035 
      OCT 125251
      OCT 52524 
P1023 OCT 1 
      OCT 40000 
      OCT 40001 
      OCT 34170 
      OCT 43607 
      OCT 65252 
      OCT 12525 
P1024 OCT 4 
      OCT 0 
      OCT 4 
      OCT 60740 
      OCT 17034 
      OCT 25250 
      OCT 52524 
P1025 OCT 1 
      OCT 40000 
      OCT 40001 
      OCT 34170 
      OCT 43607 
      OCT 65252 
      OCT 12525 
P1026 OCT 4 
      OCT 0 
      OCT 4 
      OCT 160740
      OCT 17034 
      OCT 125250
      OCT 52524 
P1027 OCT 40
      OCT 10
      OCT 50
      OCT 7407
      OCT 170350
      OCT 52515 
      OCT 125242
P1120 OCT 0 
      OCT 100000
      OCT 100000
      OCT 74170 
      OCT 103606
      OCT 125252
      OCT 52524 
P1121 OCT 0 
      OCT 160000
      OCT 160000
      OCT 17036 
      OCT 160741
      OCT 165252
      OCT 12525 
P1122 OCT 0 
      OCT 100001
      OCT 100001
      OCT 74170 
      OCT 103607
      OCT 125253
      OCT 52524 
P1123 OCT 0 
      OCT 60000 
      OCT 60000 
      OCT 17036 
      OCT 160741
      OCT 165252
      OCT 12525 
P1124 OCT 0 
      OCT 0 
      OCT 0 
      OCT 74170 
      OCT 3606
      OCT 25252 
      OCT 52524 
P1125 OCT 0 
      OCT 60000 
      OCT 60000 
      OCT 17036 
      OCT 60741 
      OCT 65252 
      OCT 12525 
P1126 OCT 0 
      OCT 100000
      OCT 100000
      OCT 74170 
      OCT 103606
      OCT 125252
      OCT 52524 
P1127 OCT 0 
      OCT 14
      OCT 14
      OCT 141703
      OCT 36074 
      OCT 52535 
      OCT 125242
P1220 OCT 4 
      OCT 2 
      OCT 6 
      OCT 160740
      OCT 17036 
      OCT 25252 
      OCT 152524
P1221 OCT 1 
      OCT 0 
      OCT 1 
      OCT 174170
      OCT 3607
      OCT 25252 
      OCT 152525
P1222 OCT 4 
      OCT 2 
      OCT 6 
      OCT 160741
      OCT 17036 
      OCT 125252
      OCT 52525 
P1223 OCT 1 
      OCT 100000
      OCT 100001
      OCT 74170 
      OCT 103607
      OCT 125252
      OCT 52525 
P0224 OCT 4 
      OCT 2 
      OCT 6 
      OCT 60740 
      OCT 17036 
      OCT 25252 
      OCT 52524 
P1225 OCT 1 
      OCT 0 
      OCT 1 
      OCT 74170 
      OCT 3607
      OCT 25252 
      OCT 52525 
P1226 OCT 4 
      OCT 2 
      OCT 6 
      OCT 160740
      OCT 17036 
      OCT 125252
      OCT 52524 
P1227 OCT 40
      OCT 20
      OCT 60
      OCT 7417
      OCT 170360
      OCT 52525 
      OCT 125252
P1320 OCT 100000
      OCT 0 
      OCT 100000
      OCT 74170 
      OCT 103606
      OCT 25252 
      OCT 152524
P1321 OCT 140000
      OCT 20000 
      OCT 160000
      OCT 17036 
      OCT 160741
      OCT 25252 
      OCT 152525
P1322 OCT 1 
      OCT 100000
      OCT 100001
      OCT 74170 
      OCT 103607
      OCT 125252
      OCT 52525 
P1323 OCT 40000 
      OCT 20000 
      OCT 60000 
      OCT 17036 
      OCT 160741
      OCT 125252
      OCT 52525 
P1324 OCT 0 
      OCT 0 
      OCT 0 
      OCT 74170 
      OCT 3606
      OCT 25252 
      OCT 52524 
P1325 OCT 40000 
      OCT 20000 
      OCT 60000 
      OCT 17036 
      OCT 60741 
      OCT 25252 
      OCT 52525 
P1326 OCT 0 
      OCT 100000
      OCT 100000
      OCT 74170 
      OCT 103606
      OCT 125252
      OCT 52524 
P1327 OCT 10
      OCT 4 
      OCT 14
      OCT 141703
      OCT 36074 
      OCT 52525 
      OCT 125252
P1420 OCT 4 
      OCT 0 
      OCT 4 
      OCT 60740 
      OCT 17034 
      OCT 25250 
      OCT 52524 
P1421 OCT 1 
      OCT 0 
      OCT 1 
      OCT 34170 
      OCT 3607
      OCT 25252 
      OCT 12525 
P1422 OCT 4 
      OCT 0 
      OCT 4 
      OCT 160740
      OCT 17034 
      OCT 125250
      OCT 52524 
P1423 OCT 1 
      OCT 0 
      OCT 1 
      OCT 34170 
      OCT 3607
      OCT 25252 
      OCT 12525 
P1424 OCT 4 
      OCT 0 
      OCT 4 
      OCT 60740 
      OCT 17034 
      OCT 25250 
      OCT 52524 
P1425 OCT 1 
      OCT 0 
      OCT 1 
      OCT 34170 
      OCT 3607
      OCT 25252 
      OCT 12525 
P1426 OCT 4 
      OCT 0 
      OCT 4 
      OCT 160740
      OCT 17034 
      OCT 125250
      OCT 52524 
P1427 OCT 40
      OCT 0 
      OCT 40
      OCT 7407
      OCT 170340
      OCT 52505 
      OCT 125242
P1520 OCT 0 
      OCT 0 
      OCT 0 
      OCT 74170 
      OCT 3606
      OCT 25252 
      OCT 52524 
P1521 OCT 0 
      OCT 20000 
      OCT 20000 
      OCT 17036 
      OCT 20741 
      OCT 25252 
      OCT 12525 
P1522 OCT 0 
      OCT 100000
      OCT 100000
      OCT 74170 
      OCT 103606
      OCT 125252
      OCT 52524 
P1523 OCT 0 
      OCT 20000 
      OCT 20000 
      OCT 17036 
      OCT 120741
      OCT 125252
      OCT 12525 
P1524 OCT 0 
      OCT 0 
      OCT 0 
      OCT 74170 
      OCT 3606
      OCT 25252 
      OCT 52524 
P1525 OCT 0,20000,20000,17036,20741,25252,12525 
P1526 OCT 0,100000,100000,74170,103606,125252,52524 
P1527 OCT 0 
      OCT 4 
      OCT 4 
      OCT 141703
      OCT 36064 
      OCT 52525 
      OCT 125242
P1620 OCT 4 
      OCT 0 
      OCT 4 
      OCT 160740
      OCT 17034 
      OCT 25250 
      OCT 152524
P1621 OCT 1 
      OCT 0 
      OCT 1 
      OCT 174170
      OCT 3607
      OCT 25252 
      OCT 152525
P1622 OCT 4 
      OCT 0 
      OCT 4 
      OCT 160741
      OCT 17034 
      OCT 125250
      OCT 52525 
P1623 OCT 1 
      OCT 0 
      OCT 1 
      OCT 74170 
      OCT 3607
      OCT 25252 
      OCT 52525 
P1624 OCT 4 
      OCT 0 
      OCT 4 
      OCT 60740 
      OCT 17034 
      OCT 25250 
      OCT 52524 
P1625 OCT 1,0,1,74170,3607,25252,52525
P1626 OCT 4,0,4,160740,17034,125250,52524 
P1627 OCT 40
      OCT 0 
      OCT 40
      OCT 7417
      OCT 170340
      OCT 52505 
      OCT 125252
P1720 OCT 40
      OCT 20
      OCT 60
      OCT 107416
      OCT 70360 
      OCT 152524
      OCT 25252 
P1721 OCT 10
      OCT 4 
      OCT 14
      OCT 141703
      OCT 36074 
      OCT 152525
      OCT 25252 
P1722 OCT 40
      OCT 20
      OCT 60
      OCT 7417
      OCT 170360
      OCT 52525 
      OCT 125252
P1723 OCT 10
      OCT 4 
      OCT 14
      OCT 141703
      OCT 36074 
      OCT 52525 
      OCT 125252
P1724 OCT 40
      OCT 20
      OCT 60
      OCT 7416
      OCT 70360 
      OCT 52524 
      OCT 25252 
P1725 OCT 10
      OCT 4 
      OCT 14
      OCT 41703 
      OCT 36074 
      OCT 52525 
      OCT 25252 
P1726 OCT 40
      OCT 20
      OCT 60
      OCT 7416
      OCT 170360
      OCT 52524 
      OCT 125252
P1727 OCT 400 
      OCT 200 
      OCT 600 
      OCT 74170 
      OCT 103607
      OCT 125252
      OCT 52525 
      OCT 0 
SIT   OCT 5         ERA  COL4  D/E=0
      OCT 500       ERA  COL1  D/E=0
      OCT 4005      ERB  COL4  D/E=0
      OCT 4500      ERB  COL1  D/E=0
SIT6  OCT 6         ELA  COL4  D/E=0
      OCT 600       ELA  COL1  D/E=0
      OCT 4006      ELB  COL4  D/E=0
      OCT 4600      ELB  COL1  D/E=0
* 
      END 
                                                                                                            