*DECK     POST
          IDENT  POST 
 POST     TITLE  POST - CONVERT ISSUED INSTRUCTIONS TO BCD
*CALL     SSTCALL 
 B=POST   RPVDEF
          PASS2TM 
 POST     SPACE  2
**        POST - CONVERT ISSUED INSTRUCTIONS TO DISPLAY CODE. 
*         MAINTAIN CODE LENGTH, DEFINE LABEL ADDRESS"S, 
*         SETUP SUB MACROS FOR F.P. REFERENCES. 
          SPACE  2
          TABLES TXT,PIT,APL,VDT
          EXT    O.LOOP,O.GLT,O.API,N.AP
          EXT    BN,N.IT,O.CFT,O.TET,O.BIT,O.LCT
 POST     SPACE  3
          DESCRIBE SI.,60 
 H2       DEFINE 1
 OC       DEFINE 11 
 CA       DEFINE 18 
 IH       DEFINE 18 
 RJ       DEFINE 6
 RI       DEFINE 6
  
 RK       DEQU   IH,6 
          SPACE  3
 BLPTR    ENTRY. =XCODE.     POINTER TO CURRENT USE BLOCK 
 BLEN     BSSZ   1           LEN OF CURRENT USE BLOCK 
 PARCEL   ENTRY. 0           LAST VALUE OF PARCEL COUNTER 
 LSR      BSSZ   1           LAST *SUB* REF  12/P(IH),48/CODE. ADDRESS
  
 FU       CON    0           FORCE UPPER FLAG ( 0 OR 1R+ )
 PO       BSS    1           SAVED VALUE OF O.PIT 
  
 RTT      BSS    0           REGISTER TRANSLATION TABLE 
          ECHO   2,T=(B,A,X)
          ECHO   1,N=(0,1,2,3,4,5,6,7)
          DATA   2R_T_N 
  
 ILN      DATA   20H* 
          DATA   4ALINE,0 
 WLIC     SPACE  2
 WLIC     MACRO  F,W
          R=     B6,F 
          R=     B7,W 
          RJ     =XWML
          ENDM
 WML      TITLE  WRITE MULTIPLE CODED LINES 
**        WML - WRITE MULTIPLE CODED LINES TO -COMPS- FILE. 
* 
*         ENTRY  (B6) = FWA FIRST LINE
*                (B7) = TOTAL LENGTH OF ALL LINES 
* 
*         EXIT   ALL LINES WRITTEN TO -COMPS-.
* 
*         CALLS  WRITEC 
  
 WML      ROUTINE 
          SB2    B7 
          SB5    B1 
  
 WML2     LE     B2,B0,WML   IF NOTHING LEFT TO WRITE, EXIT 
          SA1    B6          (X1) = FIRST WORD OF LINE
          MX6    -12
 WML3     BX7    -X6*X1 
          SA1    A1+B1
          NZ     X7,WML3     IF NOT ZERO BYTE LINE TERMINATOR 
  
          SB7    A1-B6       (B7) = CURRENT LINE LENGTH (WORDS) 
          SX7    A1          (X7) = FWA NEXT LINE 
          SX6    B2-B7       (X6) = TOTAL LENGTH OF NEXT LINES
          LX7    18 
          BX6    X7+X6
          NO
          SA6    WMLA        TEMP SAVE NEXT FWA, LENGTH 
          WRITEC =XF.CMPS,B6,B7    ONE LINE TO -COMPS-
          SA1    WMLA 
          SB5    B1 
          SB2    X1          (B2) = TOTAL LENGTH OF REMAINING LINES 
          AX1    18 
          SB6    X1          (B6) = FWA NEXT LINE 
          EQ     WML2        LOOP FOR NEXT LINE 
  
 WMLA     BSSZ   1           RESTART PARAMS - 24/0, 18/FWA, 18/LENGTH 
 FSU      TITLE  FSU FORCE NEXT SEQUENCE UPPER
**        FSU - FORCE NEXT SEQUENCE UPPER ( TO BEGIN ON A WORD BOUNDARY ) 
  
 FSU      ENTRY.
          SA1    PARCEL 
          ZR     X1,FSU      IF PARCEL = 0
          SA2    BLEN 
          SX6    1R+
          SX7    X2+B1       BLEN = BLEN + 1
          SA6    FU          FU = 1R+ 
          SA7    A2 
          MX6    0
          SA6    A1          PARCEL = 0 
          EQ     FSU
 CUB      SPACE  3
**        CUB - CHANGE USE BLOCKS 
* 
*         ENTRY  (A1,X1) = NEW USE BLK ADDR, 24/0,18/PARCEL,18/BLEN 
  
 CUB      ENTRY.
          SA2    PARCEL 
          SA3    BLEN 
          SA4    BLPTR
          LX2    18 
          BX6    X2+X3       [BLPTR] = SHIFT( PARCEL , 18 ) ! BLEN
          SA6    X4 
          SX7    X1 
          SA7    A3          BLEN = LEN[NEW]
          AX1    18 
          SX6    X1 
          SA6    A2          PARCEL = SHIFT( [NEW] , -18 )
          SX7    A1 
          SA7    A4          BLPTR = NEW
          EQ     CUB
 CII      SPACE  3           CII
**        REGISTER SETUP FOR THE MAIN LOOP
*                (A0) = (O.SYM) = FWA OF SYMTAB 
*                (A5,X5) = PI, [PI] = CURRENT *PIT* WORD
*                (A7) = SI = STORE ADDRESS
*                (X6,X7) = ASSEMBLY REGISTERS 
*                (X0) = MASK(-6)
* 
 SZ       MICRO  1,,/B2/     INSTRUCTION SIZE ( ON EXIT FROM PROCESSOR )
 BL       MICRO  1,,/B5/     BLOCK LENGTH 
*                (B6) = RTT 
 PC       MICRO  1,,/B7/     PARCEL COUNT - 4 
* 
*                B2 - B4 MAY BE USED FOR SCRATCH
  
*         ON ENTRY TO AN INSTRUCTION PROCESSOR
*                (X3) = INSTRUCTION SKELTON 
*                (X4) = RTT( REG[RI] )
*                (X5) = [PI]
 CII      TITLE  CII - CONVERT ISSUED INSTRUCTION 
 CII      ENTRY.
          TRACE  POST,PIT 
          SA2    O.PIT
          SA3    L.PIT
          SA1    =XMACFLAG
          BX6    X2          PO = O.PIT    */ SAVE FOR LATER RESTORE
          SA6    PO 
          SX7    X2+B1       O.PIT = O.PIT + 1
          SA7    A2 
          SX6    X3-1        L.PIT = L.PIT - 1
          SA6    A3 
          ZR     X1,CII0     IF MACFLAG = 0  */ NOT OL ! C ! E
  
*         WRITE COMMENT LINE WITH INITIAL LINE NUMBER TO *COMPS*
  
          SA4    X2 
          AX4    R1.INP 
          SX1    X4          LINENUM = IN[PO] 
          MX0    -12
          ZR     X1,CII0     IF LINE NUM = 0
          CALL   CDD
          LX6    30 
          BX7    X0*X6
          SA7    ILN+3
          WLIC   ILN,4       LIST INITIAL LINE NUMBER 
  
*         INITIALIZE REGISTERS FOR CONVERSION 
  
 CII0     SA1    BLEN 
          SA2    PARCEL 
          SA3    O.SYM
          SA4    O.TXT
          SA5    O.PIT
          S"BL"  X1          BL = BLEN
          SA0    X3 
          S"PC"  X2-4        PC = PARCEL   */ REALLY PARCEL - 4 
          MX0    -6 
          SA5    X5          PI = O.PIT    */ FETCH INDEX 
          SB6    RTT
          SA7    X4+4        TI = O.TXT + 4 
          EQ     CII2 
 CII      SPACE  2
*         RETURN POINT AFTER CONVERTING AN INSTRUCTION
*         ADVANCE PARCEL COUNT, BLOCK LENGTH
  
 CII1     S"PC"  "PC"+"SZ"   PC = PC + SZ  */ ADVANCE PARCEL COUNT
          SA5    A5+B1       PI = PI + 1   */ FETCH NEXT WORD 
          LT     "PC",CII2   IF PC < 4
  
          SB3    "PC"        S = PC 
          S"PC"  -4          PC = 0 
  
          S"BL"  "BL"+B1     BL = BL + 1   */ ADVANCE BLOCK LENGTH
          ZR     B3,CII2     IF S = 4      */ NO SIZE FAULT 
  
          S"PC"  -"SZ"       PC = SZ
 CII      SPACE  1,5
*         JUMP TO INSTRUCTION PROCESSOR 
  
 CII2     BX6    -X0*X5 
          UX7    B2,X5                     (X7) = LOWER 48 FOR *TLD*
          SA4    RTT+X6      RI = RTT( REG[PI] )
          JP     CIIA-OC.LAB+B2    JUMP( CIIA( OC[PI] ) ) 
 NOP      SPACE  3
**        NOP - FLUSH BUFFER ( BUFFER TERMINATOR )
  
 )NOP     EQU    L.PIT
  
 .NOP     SB4    A7+B1       TL = TI + 1
          SA2    O.PIT
          IX3    X2+X3
          SX6    A5+B1
          IX7    X3-X6       L.PIT = O.PIT+L.PIT - (PI+1) 
          SA6    A2          O.PIT = PI + 1 
          SA7    A3 
  
          SA1    FU 
          SA2    O.TXT
          ZR     X1,NOP1     IF FU = 0     */ NO FORCE UPPER AT BEGIN OF SEQ
          MX6    0
          SA6    A1          FU = 0 
          SA3    X2+5 
          LX3    6
          BX4    -X0*X3 
          SX5    X4-1R
          NZ     X5,NOP1     IF FIRST CHAR " 1R 
          BX3    X0*X3
          BX6    X3+X1       FIRST CHAR = 1R+ 
          LX6    54 
          SA6    A3 
  
 NOP1     SX6    "PC"+4 
          SA6    PARCEL      PARCEL = PC
          SX7    "BL" 
          SA7    BLEN        BLEN = BL
  
          SB6    X2+5 
          WLIC   B6,B4-B6    WRITE ACCUMULATED BUFFER TO *COMPS*
  
          SA1    L.PIT
          NZ     X1,CII0     IF L.PIT " 0 
  
          SA2    PO 
          BX6    X2          O.PIT = PO    */ RESTORE TO AVOID TBL MOVES
          SA6    O.PIT
          EQ     CII
 TLD      EJECT 
**        TLD/TST - COMPILER GENERATED TEMPORARIES
  
 )TLD     VFD    30/3L  S,30/5L IT.+
 )TST     EQU    )TLD 
  
          PROCESS (TLD,TST) 
          LX7    -SI.RJP
          BX6    -X0*X7 
          ZR     X6,TLD0     IF RJ[SI] = 0 */ NOT CHANGED TO SHORT INST 
  
          SA3    )LD         SKEL = )LD 
          EQ     .LD
  
 TLD0     LX4    30 
          SA1    O.TET
          BX7    X3+X4
          LX5    -SI.CAP     C = CA[PI] 
          SB3    59-T.FAP 
          SB2    X1                        (B2) = [O.TET] 
  
*         SEARCH *TET* TO FIND LOCATION IN IT. BLOCK ASSIGNED 
*         TO THIS TLD/TST . 
  
 TLD1     SA1    B2+X5       TI = TET(C)
          LX6    B3,X1
          SX5    X1+         C = CA[TI] 
          MI     X6,TLD3     IF FA[TI]     */ FINAL ASSIGNMENT MADE 
          LX6    T.FAP-T.EQVP 
          MI     X6,TLD1     IF EQV[TI]    */ EQUIVALENT TO ANOTHER 
  
*         CA NOT ASSIGNED, MUST BE OPT=1, GET NEXT CELL AND SAVE
*         VALUE IN *CA* FIELD OF *TET* ENTRY. 
  
          SA2    =XN.GT 
          BX5    X2          C = N.GT 
          MX3    -T.CAL 
          SX6    X2+B1       N.GT = N.GT + 1
          SA6    A2 
          SX2    B1 
          SA4    N.IT 
          BX1    X3*X1
          BX1    X1+X5       CA[TI] = C 
          LX2    T.FAP
          BX6    X1+X2       FA[TI] = 1 
          SA6    A1 
          SX6    X5+B1
          IX4    X4-X6
          PL     X4,TLD3     N.IT = MAX( N.IT , C+1 ) 
          SA6    A4 
  
 TLD3     SX6    X5 
          NZ     X6,TLD4     IF C " 0 
  
          S"SZ"  B1+B1       SZ = 2 
          SA4    =8L
          SX5    1R -1R+
          IX7    X7+X5
          SA7    A7+B1       TI = TI + 1;  [TI] = 10H  SRI .IT
          BX7    X4 
          SA7    A7+B1       TI = TI + 1;  [TI] = 8L
          EQ     CII1 
  
 TLD4     SA7    A7+B1       TI = TI + 1;  [TI] = 10H  SRI IT.+ 
          RJ     CON         CONVERT NUMBER 
          LX6    6
          SB4    66 
          BX7    X6 
          SB4    B4-B3       UBC = 66-6*CC
          RJ     TSB         TERMINATE STRING 
          S"SZ"  B1+B1       SZ = 2 
          EQ     CII1 
          SPACE  2
 L6B      VFD    12/0,48/6L 
 L7B      VFD    6/0,54/7L
 TYPEI    TITLE  INSTRUCTION PROCESSORS 
**        TYPE I BINARY INFIX INSTRUCTIONS - *  FXI XJOXK  *
  
 TYI      MACRO  NAM,LO 
          USE    SKEL 
 F        MICRO  1,1, LO
 O        MICRO  2,1, LO
 )NAM     VFD    30/3L  "F",18/1L ,12/1L"O" 
          USE    0
 .NAM     BSS    0
          ENDM
  
          TYI    AND,B* 
          TYI    OR,B+
          TYI    XOR,B- 
          TYI    ILS,(L,) 
          TYI    IRS,(A,) 
          TYI    NR,(N,)
          TYI    RNZ,(Z,) 
          TYI    PK,(P,)
          TYI    UP,(U,)
          TYI    FA,F+
          TYI    FS,F-
          TYI    DFA,D+ 
          TYI    DFS,D- 
          TYI    RFA,R+ 
          TYI    RFS,R- 
          TYI    IA,I+
          TYI    IS,I-
          TYI    FM,F*
          TYI    RFM,R* 
          TYI    DFM,D* 
          TYI    FD,F/
          TYI    RFD,R/ 
          ECHO   2,A=(IAZ,ISZ,IM),B=(IA,IS,DFM) 
 )A       EQU    )B 
 .A       BSS    0
          LX4    30 
          BX7    X4+X3
          LX5    -SI.RJP
          BX6    -X0*X5 
          SA3    B6+X6       RJ = RTT( REG[RJ] )
          LX5    SI.RJP-SI.RKP
          BX6    -X0*X5 
          SA2    B6+X6       RK = RTT( REG[RK] )
          SA1    L7B
          LX3    12 
          BX7    X3+X7
          LX2    -6 
          BX4    -X0*X2 
          IX6    X4+X7
          BX2    X0*X2
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  LRI RJOR 
          BX7    X2+X1
          S"SZ"  B1 
          SA7    A6+B1       TI = TI + 1;  [TI] = 8LK 
          EQ     CII1 
 BNAND    SPACE  3,8
**        BOOLEAN COMPLEMENT INSTRUCTIONS - *  BXI -XJOXK  *
  
 BNAND    MACRO  NAM,O
          USE    SKEL 
 )NAM     VFD    30/3L  B,24/2L -,6/1R_O
          USE    0
 .NAM     BSS    0
          ENDM
  
          BNAND  STR,*
          BNAND  IMP,+
          BNAND  EQV,-
  
          LX4    30 
          BX7    X3+X4
          LX5    -SI.RJP
          BX6    -X0*X5 
          SA4    B6+X6       RJ = RTT( REG[RJ] )
          LX5    SI.RJP-SI.RKP
          BX6    -X0*X5 
          SA2    B6+X6       RK = RTT( REG[RK] )
          SA1    L6B
          LX4    6
          BX6    X4+X7
          LX2    48 
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  BRI -RJO 
          IX7    X2+X1
          S"SZ"  B1          SZ = 1 
          SA7    A6+B1       TI = TI + 1;  [TI] = 8LRK
          EQ     CII1 
 XMTC     SPACE  3
**        XMTC - *  BXI -XJ  *
  
          BNAND  XMTC 
          LX4    30 
          BX6    X3+X4
          LX5    -SI.RJP
          BX7    -X0*X5 
          SA4    B6+X7       RJ 
          LX4    6
          SA1    =8L
          BX6    X4+X6
          S"SZ"  B1          SZ = 1 
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  BRI -RJ
          BX7    X1 
          SA7    A6+B1       TI = TI + 1;  [TI] = 8L
          EQ     CII1 
 UNARY    SPACE  3,14 
**        TYPE I UNARY INSTRUCTIONS - *  FXI XJ  *
  
          PURGMAC TYI 
 TYI      MACRO  NAM,F
          USE    SKEL 
 )NAM     VFD    30/3L  F,30/1L 
          USE    0
 .NAM     BSS    0
          ENDM
  
          TYI    XMT,B
          TYI    CX,C 
          TYI    DRL,R
          TYI    DWL,W
  
          LX5    -SI.RJP
          BX6    -X0*X5 
          SA2    B6+X6       RJ 
          LX4    30 
          BX6    X3+X4
          LX2    12 
          S"SZ"  B1          SZ = 1 
          BX7    X6+X2
          SA7    A7+B1       TI = TI + 1;  [TI] = 10H  LRI RJ 
          EQ     CII1 
 TYII     SPACE  3,14 
**        TYPE II INSTRUCTIONS ( FMA, KLS, KRS )
  
 TYII     MACRO  NAM,F
          USE    SKEL 
 )NAM     VFD    30/3L  F,30/5L 00B 
          USE    0
 .NAM     BSS    0
          ENDM
  
          TYII   KLS,L
          TYII   KRS,A
          TYII   FMA,M
          LX4    30 
          BX7    X4+X3
          SX4    70B
          LX5    -SI.CAP
          BX3    -X0*X5      AB 
          S"SZ"  B1          SZ = 1 
          BX5    X4*X3
          ZR     X5,TYII1    IF ONLY 1 DIGIT
          BX3    X3-X5
          LX5    18-3 
          LX3    12 
          SA1    =8L
          BX4    X3+X5
          IX6    X4+X7
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  LRI  NNB 
          BX7    X1 
          SA7    A6+B1       TI = TI + 1;  [TI] = 8L
          EQ     CII1 
  
 TYII1    LX3    18 
          IX6    X7+X3
          SX4    1LB&3R0B 
          BX7    X6-X4
          SA7    A7+B1       TI = TI + 1;  [TI] = 8L  LRI NB
          EQ     CII1 
 SET      SPACE  3,14 
 )S       VFD    30/3L  S,30/1L 
  
 .S       LX4    30 
          BX7    X3+X4
          LX5    -SI.CAP
          SX6    X5 
          NZ     X6,SET1     IF CA[PI] " 0
          SX4    2RB0 
          S"SZ"  B1          SZ = 1 
          LX4    12 
          BX7    X7+X4
          SA7    A7+B1       TI = TI + 1;  [TI] = 8L  SRI B0
          EQ     CII1 
  
 SET1     MI     X6,SET2     IF CA[PI] < 0
          RJ     CON         CONVERT THE NUMBER 
          SB3    B3-6 
          LX6    6
          EQ     SET3 
 SET2     BX6    -X6
          RJ     CON
          SX4    1R-
          LX4    54 
          BX6    X4+X6
  
 SET3     SB4    24          UBC = 24 
          RJ     ADC         ADD THE NUMBER TO THE STRING 
          RJ     TSB
          S"SZ"  B1+B1       SZ = 2 
          EQ     CII1 
 TYIM     TITLE  TYPE I MEMORY REFERENCES 
**        TYPE I MEMORY REFERENCES - *  SAI BJOBK  *
  
          NOREF  .Z 
 TYIM     MACRO  NAM,O
          USE    SKEL 
+         VFD    30/3L  S,18/1L ,12/1L_O
 .Z       SET    *-1
          USE    0
          IRP    NAM
 )NAM     EQU    .Z 
 .NAM     BSS    0
          IRP 
          ENDM
  
          TYIM   (SLD,SST,SA),+ 
          TYIM   (SDL,SDS,SS),- 
  
          LX4    30 
          BX7    X3+X4
          LX5    -SI.RJP
          BX6    -X0*X5 
          SA4    B6+X6       RJ = RTT(REG[RJ])
          LX5    SI.RJP-SI.RKP
          BX6    -X0*X5 
          LX4    12 
          S"SZ"  B1 
          BX7    X7+X4
          NZ     X6,TYIM1    IF RK " 0
          MX5    -12
          BX7    X5*X7
          SA7    A7+1        TI = TI + 1;  [TI] = 8L  SRI RJ
          EQ     CII1 
  
 TYIM1    SA4    B6+X6       RK = RTT(REG[RK])
          SA1    L7B
          LX4    -6 
          BX5    -X0*X4 
          BX6    X5+X7
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  SRI RJOR 
          BX4    X0*X4
          BX7    X4+X1
          SA7    A6+B1       TI = TI + 1;  [TI] = 8LK 
          EQ     CII1 
 PLD      SPACE  3,14 
**        PLD/PST - *  SAI BJ+CA *
  
          ECHO   2,N=(PLD,PST)
 )N       EQU    )SLD 
 .N       BSS    0
          LX4    30 
          BX6    X3+X4
          LX5    -SI.RJP
          BX2    -X0*X5 
          SA1    B6+X2       RJ = RTT( REG[RJ] )
          LX5    SI.RJP-SI.CAP
          LX1    12 
          BX6    X1+X6
          SX7    X5 
          NZ     X7,PLD1     IF CA[PI] " 0
          MX2    -12
          S"SZ"  B1          SZ = 1 
          BX7    X2*X6
          SA7    A7+B1       TI = TI + 1]  [TI] = 8L  SRI RJ
          EQ     CII1 
  
 PLD1     PL     X7,PLD2     IF CA[PI] > 0
          BX7    -X7
          SX4    2R+A&2R-A
          BX6    X6-X4
  
 PLD2     RJ     COD
          SB4    B2-6 
          AX3    B4,X4
          BX6    X6+X3
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  SRI RJ+N 
          SB2    B4-60
          LX4    -B2,X4 
          BX7    X0*X4
          SA1    =1HB 
          AX2    B4,X1
          MX3    -12
          BX5    X3*X2
          BX7    X5+X7
          S"SZ"  B1+B1       SZ = 2 
          SA7    A6+B1       TI = TI+1  ; [TI] = 8LNNNB 
          EQ     CII1 
 TYIII    TITLE  TYPE III MEMORY REFERENCES ( LD , ST , STT ) 
**        TYPE III MEMORY REFERENCES - *  SAI RJ+CA+IH-H2  *
  
 )ILD     EQU    )SLD 
 .ILD     SA2    =XIT.
          LX5    -SI.IHP
          BX1    X2-X5
          SB4    X1 
          LX5    SI.IHP 
          NZ     B4,.LD      IF IH[PI] " IT.
  
          SA3    )TLD 
          EQ     .TLD 
  
          ECHO   2,N=(LD,ST,STT)
 )N       EQU    )SLD 
 .N       BSS    0
  
          LX4    30 
          BX7    X3+X4
          LX5    -SI.RJP
          BX6    -X0*X5 
          LX5    SI.RJP-SI.IHP
          ZR     X6,LD1      IF RJ = 0
          SA4    B6+X6
          MX1    -IH.CAIHL
          BX6    -X1*X5 
          LX4    12 
          BX7    X4+X7
          SB4    6           UBC = 6
          NZ     X6,LD2      IF IHCA[PI] " 0
          MX2    -12
          BX7    X2*X7
          S"SZ"  B1          SZ = 1 
          SA7    A7+B1       TI = TI + 1;  [TI] = 8L  SRI RJ
          EQ     CII1 
  
 LD1      MX1    -24
          SB4    24          UBC = 24 
          BX7    X1*X7
  
 LD2      SX6    X5 
          ZR     X6,LD3      IF IH[PI] = 0
          RJ     ASN         ADD THE NAME 
  
 LD3      LX5    SI.IHP-SI.CAP
          SX6    X5 
          ZR     X6,LD7      IF CA[PI] = 0
          MI     X6,LD4      IF CA[PI] < 0
          RJ     CON
          SX4    1R+         SGN = 1R+
          EQ     LD5
  
 LD4      BX6    -X6
          RJ     CON
          SX4    1R-         SGN = 1R-
  
 LD5      AX3    B4,X7
          SX1    1R+
          BX2    -X0*X3 
          LX4    54 
          IX3    X1-X2
          NZ     X3,LD6      IF SHIFT( STR , -UBC ) & 77B " 1R+ 
          LX1    B4,X1
          BX7    X7-X1
          SB4    B4+6        UBC = UBC + 6
  
 LD6      BX6    X4+X6
          RJ     ADC         ADD CON TO STRING
  
 LD7      LX5    SI.CAP+59-SI.H2P 
          PL     X5,LD8      IF H2[PI] = 0
          SX6    1R-
          SB3    6
          LX6    54 
          RJ     ADC         ADD A -
          SA5    A5+B1       PI = PI + 1
          RJ     ASN         ADD THE NAME 
  
 LD8      RJ     TSB         TERMINATE THE LINE 
          S"SZ"  B1+B1       SZ = 2 
          PL     B6,CII1     IF FPFLAG = 0 */ IH NOT AN F.P.
  
          SX4    "PC"+B1
          MI     X4,LD9      IF PC < 3     */ NO SIZE FAULT 
          S"PC"  -4          PC = 0        */ FORCE UPPER 
          S"BL"  "BL"+B1     BL = BL + 1
  
 LD9      SA3    LSR         PSR = LSR
          SX2    "BL" 
          LX5    1+SI.H2P-SI.IHP
          SB3    X5 
          PX6    B3,X2
          SA6    A3          LSR = PACK(IH,BL)
          SA5    A5 
          LX5    -SI.IHP
          RJ     OSM         OUTPUT *SUB* MACRO 
          SB6    RTT
          S"SZ"  B1+B1       SZ = 2 
          EQ     CII1 
 OSM      SPACE  3,14 
**        OSM - OUTPUT *SUB* MACRO CALL 
* 
*         ENTRY  (X5) = 24/XX,18/CA,18/IH OF SYMBOL TO BE OUTPUT
*                (B6) = -2*IH 
  
 OSM      ROUTINE 
          SB6    B6-B1
          SA3    =6L  SUB 
          SA2    A0+B6       WORDB = [O.SYM-2*IH-1] 
          SX1    B1 
          SB4    24          UBC = 24 
          LX1    P.RA 
          IX6    X1+X2       RA[IH] = RA[IH] + 1  */ ADVANCE SUB BLK LEN
          BX7    X3 
          SA6    A2 
          RJ     ASN         ADD THE NAME 
          LX5    -IH.IHL
          SX6    X5 
          ZR     X6,OSM3     IF CA = 0
          MI     X6,OSM1     IF CA < 0
          RJ     CON
          EQ     OSM2 
  
 OSM1     BX6    -X6
          RJ     CON
          AX6    6
          SB3    B3+6 
          SX4    1R-
          LX4    48 
          BX6    X4+X6
 OSM2     SX4    1R,
          LX4    54 
          BX6    X4+X6
          RJ     ADC         ADD *,SNNNB* 
  
 OSM3     RJ     TSB         TERMINATE STRING 
          EQ     OSM
 CJUMPS   TITLE  CONDITIONAL JUMPS
**        X JUMPS - *  JT XI,IH  *
  
 )JPX     BSS    0
          ECHO   1,JT=("XJUMPS")
          VFD    42/5L  JT ,18/1L,
  
 .JPX     LX5    -SI.CAP
          SA3    )JPX+X5     SKEL = JPX( CA[CI] ) 
          LX4    18 
          BX6    X3+X4
          LX5    SI.CAP-SI.IHP
          RJ     RLV         FORM LABEL VALUE 
          LX4    12 
          MX5    -12
          BX3    -X5*X4 
          BX6    X6+X3
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  JX RI,LA 
          BX7    X5*X4
          SA7    A6+B1       TI = TI + 1;  [TI] = 8LBEL 
          S"SZ"  B1+B1       SZ = 2 
          ZR     X2,CII1     IF SFLAG = 0 
          EQ     CJP1 
  
**        B JUMPS - *  JT BI,BF,IH  * 
  
 )JPBB    BSS    0
          ECHO   1,JT=("BJUMPS")
          VFD    42/5L  JT ,18/1L,
  
 .JPBB    LX5    -SI.CAP
          SA3    )JPBB+X5 
          LX4    18 
          LX5    SI.CAP-SI.RJP
          BX7    X3+X4
          BX6    -X0*X5 
          SA4    B6+X6       RJ = RTT(REG[RJ])
          LX5    SI.RJP-SI.IHP
          BX7    X7+X4
          SA7    A7+B1       TI = TI + 1;  [TI] = 10H  JX RI,RJ 
          RJ     RLV         FORM LABEL VALUE 
          SX3    1R,&1R 
          MX1    -12
          BX5    X4-X3
          LX5    -6 
          BX7    X1*X5
          S"SZ"  B1+B1       SZ = 2 
          SA7    A7+B1       TI = TI + 1;  [TI] = 8L,LABEL
  
          ZR     X2,CII1     IF SFLAG = 0  */ LABEL NOT FROM SYMTAB 
  
 CJP1     SA1    A2-B1       WORDB = WORDA - 1
          LX1    59-P.GEN 
          PL     X1,CII1     IF ^GEN[WORDB]  */ NOT A DO GEN LABEL
          SA3    O.LOOP 
          ZR     X3,CII1     IF O.LOOP = 0  */ NO LOOP TABLE
 CJUMPS   SPACE  3,14 
*         R " 0, DETERMINE THE LENGTH OF THE LOOP ASSOCIATED WITH THE 
*         LABEL AND SAVE IT IN THE CORRESPOINDING LOOP TABLE ENTRY. 
  
          SA2    A2 
          LX2    18 
          SX2    X2-3R)AA 
          BX4    -X0*X2 
          SB3    X3 
          BX2    X0*X2       LABEL = 3RXY 
          AX2    1
          BX4    X2+X4       INDEX = (X-1RA)*40B + Y-1RA
          LX4    1           INDEX = 2*INDEX
          SA2    B3+X4
          SX7    "PC"+B1
          SX6    "PC"+4+2+3 
          NZ     X7,CJP2     P = PC + SZ + 3 + IF( PC < 3 ) THEN 0 ELSE1
          SX6    X6+1 
 CJP2     AX6    2
          LX1    1+P.GEN-P.RA 
          SX7    "BL"+X6     JPEND = BL + P/4 
          SX1    X1 
          IX4    X7-X1       LPLEN[O.LOOP+INDEX] = JPEND - RA[WORDB[IH]]
          BX6    X2+X4
          SA6    A2 
          EQ     CII1 
 RJXJ     SPACE  2,14 
*         RJXJ   JT,XI,IH #  +  JT XI,*+1    , -  RJ IH 
  
 .PLI     IFNE   .PLI,0                                          ?PL/I
 )RJXJ    VFD    42/7L+ RJXJ ,18/1R,
  
 .RJXJ    LX5    -SI.CAP
          SA2    )JPX+X5
          MX1    -12
          LX2    -36
          BX1    -X1*X2 
          LX1    6
          BX7    X3+X1
          SA7    A7+B1       SI = SI + 1;  [SI] = 10H  RJXJ JT, 
          LX5    SI.CAP-SI.IHP
          SX3    1R,
          LX4    6
          BX7    X4+X3
          LX7    42 
          SB4    60-18       UBC = 42 
          RJ     ASN         ADD THE NAME 
          SX6    "PC"+4 
          ZR     X6,RJ63     IF PC = 0
          S"PC"  -4          PC = 0 
          S"BL"  "BL"+1      BL = BL + 1
          EQ     RJ63 
 .PLI     ENDIF                                                  'PL/I
 JIN      TITLE  UNCONDITIONAL JUMPS
**        INDEXED B JUMP - *  JP BI+IH *
  
 )JIN     VFD    42/5L  JP ,18/1L+
  
 .JIN     LX4    18 
          BX6    X3+X4
          LX5    -SI.IHP
          SX7    X5 
          NZ     X7,JIN1     IF IH[PI] " 0
          SX4    1L -1L+
          MX5    -12
          BX6    X5*X6
          IX7    X6+X4
          SA7    A7+B1       TI = TI + 1;  [TI] = 8L  JP BI 
          EQ     JIN2 
  
 JIN1     RJ     FLV         FORM LABEL VALUE 
          LX4    12 
          MX5    -12
          BX3    -X5*X4 
          BX6    X6+X3
          SA6    A7+B1       TI = TI + 1;  [TI] = 10H  JP BI+LA 
          BX7    X5*X4
          SA7    A6+1        TI = TI + 1;  [TI] = 8LBEL 
  
*         ADVANCE PARCEL COUNT, FORCE UPPER AFTER 
  
 JIN2     SX6    "PC"+B1     S = PC - 3 
          S"BL"  "BL"+B1     BL = BL + 1
          S"PC"  -4          PC = 0        */ FORCE UPPER 
          SA5    A5+B1       PI = PI + 1
          MI     X6,CII2     IF S < 0      */ PC < 3
          S"BL"  "BL"+B1     BL = BL + 1
          EQ     CII2 
 UJP      SPACE  3,14 
**        UNCONDITIONAL JUMP - *  EQ IH  * OR *  ED IH,CA  *
  
 )UJP     VFD    60/5L  EQ
  
 .UJP     LX5    R1.INP 
          BX6    X3 
          SB4    X5 
          LX5    R1.INP 
          RJ     RLV         FORM LABEL VALUE 
          BX7    X6 
          LX6    X4 
          RJ     CCC
          NZ     B4,UJP2     IF IN[R1] " 0
          SB4    60-30       UBC = 60-30
 UJP1     RJ     ADC
          RJ     TSB
          EQ     JIN2 
  
 UJP2     SA3    =5L  ED
          SX5    B4-B1
          BX7    X3 
          SB4    60-30       UBC = 60-30
          RJ     ADC
          BX6    X5 
          RJ     CON
          SX5    1R,
          LX5    54 
          BX6    X5+X6
          EQ     UJP1 
 ENT      SPACE  3,14 
**        ENT - ALTERNATE ENTRY POINT DEFINITION
  
 )ENT     DATA   8L  ENTR.
  
 .ENT     SX6    "PC"+4 
          ZR     X6,ENT1     IF PC=0
          S"PC"  -4          PC=0           */FORCE UPPER 
          S"BL"  "BL"+1      BL=BL+1
 ENT1     BX7    X3 
          SB4    12          UBC = 12 
          RJ     ASN         ADD NAME 
          RJ     TSB         TERMINATE BUFFER 
          SA3    WB.LAB 
          LX5    1
          SB2    X5+B1
          SX1    "BL" 
          SA2    A0-B2       WORDB = [O.SYM-2*IH-1] 
          LX1    P.RA 
          MX7    -L.ADF 
          IX4    X3+X1
          MX7    P.ADF
          BX2    X7*X2
          BX6    X4+X2       RA[WORDB] = BL 
          SA6    A2 
          S"PC"  -4          PC = 0 
          SA1    =XTEMPA0.
          S"BL"  "BL"+4 
          ZR     X1,ENT2     BL = BL + IF( TEMPA0. = 0 ) THEN 4; ELSE 10
          S"BL"  "BL"+6 
  
 ENT2     SA5    A5+B1       PI = PI + 1
          EQ     CII2 
 LAB      TITLE  LABEL DEFINATION 
**        LABEL DEFINITION - FORCE UPPER BEFORE, DEFINE ADDRESS OF SYMBOL 
  
 )LAB     DATA   7L BSS 0B
  
 .LAB     SX6    "PC"+4 
          ZR     X6,LAB1     IF PC = 0
          S"PC"  -4          PC = 0        */ FORCE UPPER BEFORE
          S"BL"  "BL"+1      BL = BL + 1
  
 LAB1     SX7    X5-I.GL
          PL     X7,LAB2     IF IH[R1] > I.GL 
  
          LX6    B1,X5
          SX4    "BL" 
          SB2    X6+B1
          SA2    A0-B2       WORDB = [O.SYM-2*IH[R1]-1] 
          SA1    =XWB.LAB 
          LX4    P.RA 
          IX7    X1+X4       RA[WORDB] = BL 
          BX6    X2+X7
          SA6    A2 
          EQ     LAB3 
  
 LAB2     SA1    O.GLT
          SA2    =XL.ELT
          SX6    "BL" 
          SB3    X7-1 
          SA6    X1+B3       GLT(H-1) = BL
          ZR     X2,LAB3     IF L.ELT = 0  */ NO ELIMINATED LABEL DEFS
  
*         SEARCH *ELT* TO SEE IF THIS LABEL IS EQUIVALENT TO A
*         PROGRAMMER DEFINED LABEL, AND SET FLAG TO OUTPUT THE DEFINITION 
*         OF IT 
  
          BX6    X7 
          SA1    =XO.ELT
          SA6    X1          [ELT] = H     */ STORE SEARCH TERMINATOR 
          SB4    X2 
          SA3    X1+B4             */ SEARCH TABLE
+         BX6    X3-X7
          SA3    A3-B1
          SB4    X6 
          AX6    18 
          NZ     B4,*-1 
          SA6    LABA        LABA = IH OF EQUIVALENT OR 0 
  
  
*         OUTPUT LABEL DEFINITION - *IH BSS 0B  * 
  
 LAB3     SB4    60          UBC = 60 
          RJ     FLV         FORM LABEL 
          BX6    X4 
          RJ     CCC         COUNT CHARS
          SA3    )LAB 
          LX7    X6 
          SB4    B4-B3       UBC = UBC - CCC(LAB) 
          LX6    X3 
          SB3    42 
          RJ     ADC         ADD * BSS 0B*
          RJ     TSB
          SA4    LABA 
          NZ     X4,LAB4     IF LABA " 0
          SA5    A5+B1       PI = PI + 1
          EQ     CII2 
  
*         OUTPUT LABEL DEF OF ELIMINATED LABEL
  
 LAB4     MX6    0
          SA6    A4          CLEAR FLAG 
          BX5    X4          SETUP X5 
          EQ     LAB1 
  
 LABA     BSSZ   1
 RJX      TITLE  RETURN JUMPS 
**        RETURN JUMP - *  RJ IH  * 
  
 )RJ3     VFD    60/5L  RJ
  
 .RJ3     BX7    X3 
          SB4    60-30       UBC = 60-30
          RJ     ASN
          RJ     TSB
          EQ     JIN2 
 RJ6      SPACE  3,14 
**        RETURN JUMP WITH TRACEBACK - *+ RJT IH,CA,F  *
  
 )RJ6     VFD    60/6L+ RJT 
  
 .RJ6     SB2    4
          BX7    X3 
          SX6    "PC"+B2
          ZR     X6,RJ61     IF PC = 0     */ FORCE UPPER BEFORE
          S"BL"  "BL"+B1     BL = BL + 1
          S"PC"  -B2         PC = 0 
  
 RJ61     SB4    60-36       UBC = 60-36
          RJ     ASN         ADD NAME TO STRING 
          LX5    -R1.INP
          SX1    X5-7777B 
          SX6    X5 
          MI     X1,RJ62     IF IN[R1] < 7777B
          S"BL"  "BL"+B1     BL = BL + 1   */ ACCOUNT FOR EXTRA WORD
  
 RJ62     RJ     CON         CONVERT LINE NUMBER
          SX4    1R,
          LX4    54 
          BX6    X4+X6
          RJ     ADC
          PL     B6,RJ63     IF FPFLAG = 0
          SB2    B6-B1
          SX1    B1 
          SA2    A0+B2       WORDB = [O.SYM-2*IH-1] 
          SB6    RTT
          LX1    P.RA 
          IX6    X1+X2       RA[IH] = RA[IH] + 1
          SA6    A2 
          SA6    LSR         LSR = WORDB   */ INDICATE SUB REFS 
          SB3    12 
          SX6    2R,F 
          LX6    48 
          RJ     ADC         ADD *,F* 
  
 RJ63     RJ     TSB         TERMINATE STRING 
          SA5    A5+B1       PI = PI + 1
          S"BL"  "BL"+B1     BL = BL + 1   */ COUNT LENGTH OF RJ
          EQ     CII2 
 ASN      TITLE  ASN - ADD SYMBOLIC NAME
**        ASN - ADD SYMBOLIC NAME TO CHAR STRING
*         ENTRY  (X5) = SHIFT( [PI] , -SI.IHP ) 
*                (B4) = UBC , ETC 
* 
*         EXIT   (B6) = FPFLAG < 0 IF SYMBOL WAS A F.P. 
* 
*         USES   X - 1, 2, 3, 4, 6 , B - 2, 3 
  
 ASN0     BX3    X6 
          SA4    =6R000000
          AX3    IH.IP
          SA1    ASNA+X3
          MX2    -3 
          SB2    B0 
          MX3    -IH.HL 
          SB3    60 
          BX6    -X3*X5 
  
 ASN1     BX3    -X2*X6 
          AX6    3
          LX3    B2,X3
          IX4    X3+X4
          SB2    B2+6 
          NZ     X6,ASN1
  
          SB3    B3-B2
          LX4    B3,X4
          MX6    30 
          BX4    X6*X4
          LX4    -18
          BX6    X1+X4
          SB3    B2+18
 ASN2     RJ     ADC         ADD NAME TO STRING 
  
 ASN      ROUTINE 
          SX6    X5-I.GL
          PL     X6,ASN0     IF IH[PI] \ I.GL 
  
          MX1    -12
          BX6    -X1*X5 
          SB3    X6 
          SB2    B3+B3
          MX1    -18
          SA2    A0-B2       WORDA = [O.SYM-2*IH[PI]] 
          SA3    =3R
          BX4    X1*X2
        MX1      -24
          LX2    59-P.FP
          BX1    -X1*X4 
          PL     X2,ASN3     IF ^FP[WORDA]
          SB6    -B2         FPFLAG = -2*IH[PI] 
  
 ASN3     NZ     X1,ASN4     IF CHAR 7 " 0
          SA3    =4R
 ASN4     BX6    X4+X3
          RJ     CCC         COUNT CHARS
          EQ     ASN2 
  
 ASNA     LIT    3L#GL,3L[AP,3L]IO
 FLV      TITLE  FLV - FORM LABEL VALUE 
**        FLV - FORM LABEL VALUE
* 
*         ENTRY  (X5) = SHIFT( [PI] , -SI.IHP ) 
* 
*         EXIT   (X4) = 10HLABEL
*                (X2) = 0 IF LABEL NOT FROM SYMTAB, ELSE (A2) = WORDA 
* 
*         USES   X - 1, 2, 3, 4, 5, 7 , B - 2,3 
  
 FLV0     SB3    X5 
          SA1    =4R
          SB2    B3+B3
          SA2    A0-B2       WORDA = [O.SYM-2*IH[PI]] 
          MX7    36 
          BX5    X7*X2
          BX4    X5+X1
 FLV      ROUTINE 
          SX7    X5-I.GL
          MI     X7,FLV0     IF IH[PI] < I.GL 
          SA1    =3L#GL 
          RJ     COD         CONVERT H FIELD TO DIGITS
          SB3    B2-42
          SA3    =10H 
          AX4    B3,X4
          MX7    18 
          BX4    X1+X4       GLNNN
          AX7    B2,X7
          BX2    -X7*X3 
          BX4    X2+X4
          SX2    0
          EQ     FLV
  
**        RLV - FROM REFERENCED LABEL VALUE, SAME AS *FLV*, EXCEPT IT 
*         CHECKS THE *LC* BIT FOR A LABEL SUBSTITUTION. 
  
 RLV0     SA1    =3L#GL 
          RJ     COD
          SA3    =10H 
          SB3    B2-42
          AX4    B3,X4
          MX7    18 
          BX4    X1+X4       #GLNNN 
          AX7    B2,X7
          BX2    -X7*X3 
          BX4    X2+X4       PAD WITH BLANKS
          SX2    0           X2 = 0 
 RLV      ROUTINE 
          SX7    X5-I.GL
          PL     X7,RLV0     IF IH[PI] \ I.GL 
          SB3    X5 
          SB2    B3+B3
          SA2    A0-B2       WORDA = SYM(IH)
          MX7    36 
          SA1    =4R
          BX5    X7*X2
          LX2    59-P.LC
          BX4    X5+X1
          PL     X2,RLV      IF ^LC[WORDA]
  
*         CHECK *LCT* AND *BN* TO SEE IF THIS REFERENCE TO THE LABEL
*         IS FROM INSIDE THE LOOP FOR WHICH THE LABEL WAS CHANGED.
  
          SA2    A2-B1       WORDB = WORDA - 1
          MX7    -L.LCO 
          BX3    -X7*X2      L = LCO[WORDB] 
          SA1    O.LCT
          SA2    O.BIT
          SB2    X1 
          SB3    X2 
 RLV1     SA1    B2+X3       LCW = LCT(L) 
          SA3    BN          K = BN 
          MX5    -BI.OLNL 
  
 RLV2     BX7    X1-X3
          BX7    -X5*X7 
          ZR     X7,RLV3     IF K = HBN[LCW]
          SA3    B3+X3
          LX3    -BI.OLNP 
          BX3    -X5*X3      K = OLN[BIT(K)]
          NZ     X3,RLV2     IF K " 0 
  
          LX1    -LC.NEXTP
          SX3    X1          L = NEXT[LCW]
          NZ     X3,RLV1     IF L " 0      */ NOT END OF CHAIN
          EQ     RLV
  
 RLV3     LX1    -LC.GLNP 
          SX7    X1          H = GLN[LCW]  */ CHANGE TO A *GL*
          EQ     RLV0 
 COD      SPACE  2           COD
**        COD - CONVERT OCTAL DIGITS
* 
*         ENTRY  (X7) = BINARY NUMBER 
* 
*         EXIT   (X4) = RIGHT JUSTIFIED BCD STRING
*                (B2) = 6*DIGIT COUNT 
* 
*         USES   X - 2, 3, 4, 5, 7
  
 COD      ROUTINE 
          SA4    =6R000000
          MX2    -3 
          SB2    B0 
 COD1     BX5    -X2*X7 
          LX3    B2,X5
          IX4    X3+X4
          AX7    3
          SB2    B2+6 
          NZ     X7,COD1
          MX7    1
          SB3    B2-59
          LX7    B3,X7
          BX4    -X7*X4 
          EQ     COD
 ADC      SPACE  3,14        ADC
**        ADC - ADD CHARACTERS TO STRING
* 
*         ENTRY  (X6) = CHAR STRING 
*                (B3) = BIT COUNT OF CHARS IN STRING
*                (X7) = ASSEMBLED STRING, 0L FORMAT 
*                (B4) = UBC , UNUSED BIT COUNT ( FOR X7 ) 
* 
*         USES   X - 1, 2, 3, 4, 6 , B - 2
  
 ADC      ROUTINE 
          SB2    B4-B1
          MX4    1
          AX4    B2,X4
          BX3    X4*X6
          LX2    B4,X3
          BX7    X2+X7
          BX1    -X4*X6 
          LX6    B4,X1
          SB4    B4-B3       UBC = UBC - CC 
          GT     B4,ADC      IF UBC > 0 
          SA7    A7+B1       TI = TI + 1;  [TI] = STRING
          SB4    B4+60       UBC = UBC + 60 
          BX7    X6 
          EQ     ADC
 CCC      SPACE  3,14        CCC
**        CCC - COUNT CHARS IN LEFT JUSTIFIED BLANK FILLED STRING 
*                ALGORITHM IS A VARIANT OF *SFN* ( SPACE FILL NAME )
* 
*         ENTRY  (X6) = STRING TO BE ADDED ( @ 8 CHARS )
* 
*         EXIT   (B3) = 6*CHAR COUNT
*                (X6) = 0L_STRING  ( TRAILING BLANKS REMOVED )
* 
*         USES   X - 1, 2, 3, 4 , B - 3 
  
 CCC      ROUTINE 
          SA1    =1H
          SB3    60-5 
          BX2    X1-X6
          SX3    B1 
          SA1    =40404040404040404040B 
          IX4    X2-X3       10LXXXX-177... 
          BX3    -X4+X2      77...774X00...00 
          BX4    X1*X3
          LX3    B3,X4
          IX2    X4-X3       373700..00 
          BX1    X2+X4       7777770...0
          BX6    X1*X6
          AX1    12 
          BX2    -X1
          PX3    X2 
          NX4    B3,X3
          EQ     CCC
 CON      SPACE  3,14        CON
**        CON - CONVERT OCTAL NUMBER
* 
*         ENTRY  (X6) = BINARY NUMBER 
* 
*         EXIT   (X6) = 0L;NNNNB
*                (B3) = 6*CHAR COUNT
* 
*         USES   X - 2, 3, 4, 6  , B - 2, 3 
  
 CON      ROUTINE 
          SA3    CONA 
          MX2    -3 
          UX4    B3,X3
  
 CON1     BX3    -X2*X6 
          LX3    B3,X3
          IX4    X3+X4
          AX6    3
          SB3    B3+6 
          NZ     X6,CON1
  
          MX6    1
          SB2    B3-59
          AX2    -B2,X6 
          BX4    -X2*X4 
          SB2    B3-54
          LX6    -B2,X4 
          SB3    B3+6 
          EQ     CON
  
 CONA     VFD    12/2006B,48/7R000000B
 TSB      SPACE  3,14        TSB
**        TSB - TERMINATE STRING BUFFER 
* 
*         ENTRY  (X7) = LAST WORD OF ASSEMBLED STRING 
*                (B4) = UNUSED BIT COUNT
  
 TSB0     BX4    X4*X2
          BX7    X7+X4
          SA7    A7+1 
 TSB      ROUTINE 
          SB3    B4-12
          SA1    =1H
          SB4    B4-59
          MX2    1
          AX3    -B4,X2 
          BX2    -X3*X1 
          MX4    -12
          GE     B3,TSB0     IF UBC \ 12
          BX6    X2+X7
          SA6    A7+B1
          BX7    X4*X1
          SA7    A6+B1
          EQ     TSB
 JUMPT    TITLE  OPCODE JUMP TABLE VECTOR 
**        OPR - DEFINE OPR MACRO TO FORM JUMP TABLE ENTRIES 
  
          MACRO  OPR,NAM
 X        IFGE   OC.NAM,OC.LAB
 X        IFLT   OC.NAM,OC.CLR
          NOREF  )NAM,.NAM
          SA3    )NAM 
          EQ     .NAM 
 X        ENDIF 
          ENDM
  
 CIIA     BSS    0
          LIST   -R 
          LOC    OC.LAB 
*CALL     OPRDEFS 
          LOC    *O 
          LIST   R
 OTC      TITLE  OTC- OUTPUT TERMINAL CODE
**        OTC - OUTPUT TERMINAL CODE
* 
*         OUTPUT CODE FOR - 
*                APLISTS
*                STORAGE FOR TEMPORARIES
*                VARDIM INITIALIZATION CODE 
*                TERMINATE F.P. SUBSTITUTION LISTS
*                ISSUE LEVEL 2/3 ADDRESS WORDS
  
 OTC      ENTRY.
          RJ     FSU         FORCE CODE. UPPER
          RJ     OPL         OUTPUT PARAMETER LIST CODE 
          RJ     OVC         OUTPUT VARDIM CODE 
          RJ     IST         ISSUE STORAGE FOR TEMPS
          RJ     TSL         TERMINATE F.P. SUBSTITUTION LISTS
          RJ     ILW         ISSUE LEVEL WORDS
          RJ     FSU         FORCE CURRENT BLOCK UPPER
          SA1    BLEN 
          SA2    BLPTR
          BX6    X1          [BLPTR] = BLEN  */ SAVE LENGTH OF LAST BLOCK 
          SA6    X2 
          EQ     OTC
 AI       SPACE  3
**        AI. - APLIST INDEX TABLE ENTRY FORMAT 
  
          DESCRIBE AI.,60 
 EQV      DEFINE 1           "0 IF EQUIVALENCED TO ANOTHER APLIST 
          DEFINE 5
 LINK     DEFINE 18          LINK TO NEXT IN EQV CHAIN
 LEN      DEFINE 18          NUMBER OF ENTRIES IN APLIST
 INDX     DEFINE 18          INDEX TO LWA+1 IN *APL*
  
 BIAS     DEQU   LEN         BIAS FOR EQUIV ENTRIES 
 ORD      DEQU   INDX        ORDINAL OF EQUIVALENT
 OPL      TITLE  OPL - OUTPUT PARAMETER LISTS 
**        OPL - OUTPUT PARAMETER LISTS ( AP LISTS ) 
  
          USE    /TABLES/ 
 EAC      BSS    1           EQUIV APLIST CHAIN 
 AI       BSS    2           LOOP INDEX AND LIMIT 
 OPLA     BSS    2*64        WORKING STORAGE BUFFER 
          USE    0
  
 OPLI     LX5    1+AP.STP 
          RJ     AAN         PLUG FOR INDIRECT MODE 
  
OPL       ROUTINE 
          SA1    =XLEVEL2 
          ZR     X1,OPL0     IF NO LEVEL STATEMENTS 
          SA2    OPLI 
          BX6    X2          [OPL5] = OPLI  */ PLUG THE RJ
          SA6    OPL5 
  
 OPL0     ALLOC  TXT,400     ALLOC( TXT , 400 ) 
          SA1    O.API
          SA2    N.AP 
          BX6    X1          AI = O.API 
          IX7    X1+X2       AL = O.API + N.AP
          ZR     X2,OPL      IF N.AP = 0, EXIT..
          SA6    AI 
          SA7    A6+B1
          MX7    0
          SA7    EAC         EAC = 0
  
*         LOOP ON *API* AND OUTPUT THE APLISTS
  
          SA2    AI 
 OPL1     SA1    X2          AP = [AI]
          LX1    59-AI.EQVP 
          PL     X1,OPL3     IF ^EQV[AP]
  
          SA4    EAC
          LX4    AI.LINKP 
          LX1    1+AI.EQVP
          BX6    X1+X4       LINK[AP] = EAC 
          SA6    A1 
          SX7    X2          EAC = AI 
          SX2    X2+B1       AI = AI + 1
          SA7    A4 
  
 OPL2     SA5    A2+B1
          IX0    X2-X5
          MI     X0,OPL1     IF AI < AL 
          EQ     OPL11
  
*         SETUP REGISTERS, OUTPUT APLIST LABEL DEF - *[APNNN BSS 0B * 
  
 OPL3     SA5    O.APL
          SA3    O.TXT
          LX1    1+AI.EQVP-AI.INDXP 
          SA4    O.API
          IX6    X1+X5
          SB7    X6          II = O.APL + INDX[AP]
          SX6    X2+B1       AI = AI + 1
          IX7    X6-X4       N = AI - O.API 
          SA6    A2 
          LX1    AI.INDXP-AI.LENP 
          SA7    X3+B1       SI = O.TXT + 1 
          SB6    A7+B1       TI = SI + 1   */ START OF BUFFER 
          SA3    BLEN 
          BX6    X3          [AP] = BLEN   */ DEFINE ADDR 
          SA6    A1 
          SB5    X1+B1       LI = LEN[AP] + 1 
          SX6    X6+B5       BLEN = BLEN + LI  */ ADVANCE BLOCK LENGTH
          SA6    A3 
          RJ     COD         CONVERT DIGITS 
          SA2    =3L[AP 
          SA3    )LAB 
          SB3    42 
          SB4    B3-B2       UBC = 42 - CC(NNN) 
          LX4    B4,X4
          BX7    X4+X2
          LX6    X3 
          RJ     ADC         FORMAT *[APNNN BSS 0B* 
          RJ     TSB
          SA1    O.SYM
          SA0    X1 
  
*         OUTPUT THE PARAMTERS,  *  APL  SYM+CA*
  
 OPL4     SB5    B5-B1       LI = LI - 1
          SA3    =10H  APL
          SA5    B7-B5       AW = [II-LI] 
          SB4    60 
          BX7    X3 
          SA7    A7+B1
          SX6    X5 
          MX7    0
          LX5    59-AP.STP
          PL     X5,OPL5     IF ^ST[AW]    */ NOT A -0 WORD 
          SA3    =8L-0B 
          BX7    X3 
          SA7    A7+B1
          EQ     OPL8 
  
 OPL5     LX5    1+AP.STP 
          RJ     ASN         ADD THE NAME 
          LX5    -AP.CAP
          SX6    X5 
          ZR     X6,OPL7     IF CA = 0
          SX1    1R+
          PL     X6,OPL6     IF CA > 0
          SX1    1R-
          BX6    -X6
 OPL6     LX1    54 
          RJ     CON         CONVERT NUMBER 
          BX6    X1+X6
          RJ     ADC         +-NNNB TO STRING 
  
 OPL7     RJ     TSB
          PL     B6,OPL8     IF FPFLAG = 0 */ IH NOT AN F.P.
          SA5    A5 
          SX6    B1          LSR = 1
          SA6    LSR
          RJ     OSM         OUTPUT *SUB* MACRO 
          SA3    O.TXT
          SB6    X3+2        TI = [O.TXT] + 2 
  
 OPL8     GT     B5,B1,OPL4  IF LI > 1
  
          SA3    =10H  APL
          MX4    -12
          BX7    X4*X3
          SA7    A7+B1       OUTPUT *  APL   *   */ PARAM LIST TERM 
  
          SB4    A7+B1
          WLIC   B6,B4-B6    WRITE LINE IMAGES TO *COMPS* 
          SA2    AI 
          EQ     OPL2 
 OPL      SPACE  3,14 
**        OUTPUT APLIST EQUIVALENCES
  
 OPL11    SA1    EAC
          ZR     X1,OPL      IF EAC = 0, EXIT.. 
          SA2    O.API
          SB6    X2-1        BASE = O.API - 1 
          SA5    X1          I = EAC;  AJ = [I] 
          SX0    A5-B6       N = I - BASE  */ ORD OF EQV LIST 
          SB5    B0          CA = 0 
          LX5    -AI.LINKP
          SX6    X5 
          LX5    AI.LINKP-AI.BIASP
          SA6    A1          EAC = LINK[AJ] 
  
*         CHAIN BACK TO FIND A NON-EQUIV ENTRY
  
 OPL12    SB5    B5+X5       CA = CA + BIAS[AJ] 
          LX5    AI.BIASP-AI.ORDP 
          SB7    X5          OI = ORD[AJ] 
          SA5    B6+X5       AJ = BASE + OI 
          LX5    59-AI.EQVP 
          PL     X5,OPL13    IF ^EQV[AJ]
          LX5    1+AI.EQVP-AI.BIASP 
          EQ     OPL12
  
 OPL13    LX5    1+AI.EQVP
          SX6    X5+B5       [BASE+I] = [AJ] + CA  */ DEFINE ADDRESS
          SA6    B6+X0
  
*         OUTPUT EQU TO EQUIVALENCE THE APLISTS 
  
          SA3    =10H  EPL
          SB6    OPLA 
          BX7    X3 
          SA7    B6          SI = OPLA;  [SI] = 10H  EAL
          SX7    X0 
          RJ     COD
          SB4    60          UBC = 60 
          SB4    B4-B2
          LX6    B4,X4
          SX7    B7 
          RJ     COD
          SX3    1R,
          LX3    B2,X3
          SB2    B2+6 
          BX4    X3+X4
          SB4    B4-B2
          LX4    B4,X4
          BX7    X4+X6
          SX6    B5 
          RJ     CON         CONVERT CA 
          SX4    1R,
          LX4    54 
          BX6    X4+X6
          RJ     ADC
          RJ     TSB         *  EPL   N,I,CA *
          SB4    A7+B1
          WLIC   B6,B4-B6    WRITE LINE IMAGES TO *COMPS* 
          EQ     OPL11
 AAN      EJECT              AAN
**        AAN - OUTPUT APLIST NAME
* 
*         ENTRY  (X5) = *IH* OF NAME
  
 AAN0     RJ     ASN
 AAN      ROUTINE 
          SX6    X5-I.GL
          PL     X6,AAN0
          SB3    X5 
          SB2    B3+B3
          SB3    B2+B1
          SA2    A0-B3       WORDB = [O.SYM-2*IH-1] 
          LX2    59-P.LCM 
          PL     X2,AAN0     IF ^LCM[WORDB] 
          BX3    X2 
          LX3    1+P.LCM
          R=     X6,10B-T.LAB 
          ERRMI  10B-T.LAB
          LX6    P.TYP
          IX3    X6+X3
          MI     X3,AAN0     IF TYPE[WORDB] \ T.LAB 
  
          SA3    =10H  LAP
          LX2    1+P.LCM-P.RB 
          BX7    X3 
          MX6    -L.RB
          SA7    A7          [SI] = 10H  LAP
          MX7    0
          SA4    =XDIRECT 
          ZR     X4,AAN0     IF DIRECT MODE 
          BX7    -X6*X2 
          LX5    -AP.CAP
          LX2    P.RB-P.RA
          SB2    X5 
          SX6    B2+X2       CA = CA[AW] + RA[WORDB]
          RJ     COD
          SX7    1R?
          SB4    54          UBC = 54 
          LX7    54 
          SB4    B4-B2       UBC = UBC - CC 
          LX4    B4,X4
          BX7    X4+X7
          ZR     X6,AAN      IF C = 0 
          RJ     CON
          SX4    1R,
          LX4    54 
          BX6    X4+X6       *,NNNNB* 
          RJ     ADC
          MX5    0
          EQ     AAN
 IST      TITLE  IST - ISSUE STORAGE FOR TEMPORARIES
**        IST - ISSUE STORAGE FOR TEMPORARIES 
*                OUTPUT BSS"S FOR COMPILER GENERATED SYMBOLS
  
 IST      ROUTINE 
          SA5    ISTA 
          SA4    O.SYM
          SA0    X4-1 
          SB6    OPLA+1 
          SB7    ISTB 
          SA7    B6-B1
          SB4    B0          K = 0
          MX0    12 
          SA1    =8R.   BSS 
  
 IST1     SA4    X5          N = [N.ZZ] 
          BX7    X0*X5
          ZR     X4,IST2     IF N = 0      */ NO TEMP OF THIS TYPE
          LX5    30 
          SA3    X5          IH = [ZZ.] 
          ZR     X3,IST2     IF [ZZ.] = 0  */ SYMBOL NOT DEF
          LX3    1
          SB2    X3 
          SA2    A0-B2       WORDB = [O.SYM-1-2*IH] 
          SA3    BLEN 
          IX6    X4+X3       BLEN = BLEN + N
          LX3    P.RA 
          SA6    A3 
          BX6    X2+X3       RA[WORDB] = BLEN - N  */ DEFINE ADDRESS
          SA6    A2 
          SB4    B4+B1       K = K + 1
          BX7    X1+X7
          SA7    A7+B1
          BX6    X4 
          RJ     CON         CONVERT N TO BCD 
          LX6    6
          BX7    X6 
          SA7    A7+B1
 IST2     SB7    B7-B1
          SA5    A5+B1
          NZ     B7,IST1
          ZR     B4,IST      IF K = 0 
  
          WLIC   B6,B4+B4    WRITE LINE IMAGES TO *COMPS* 
          EQ     IST
  
 ISTA     BSS    0
          ECHO   1,ZZ=(FP,ST,OT,VD,IT)
          VFD    12/2L_ZZ,18/=X_ZZ.,12/0,18/=XN.ZZ
 ISTB     EQU    *-ISTA 
 TSL      TITLE  TSL - TERMINATE F.P. SUBSTITUTION LISTS
**        TSL - TERMINATE F.P. SUBSTITUTION LISTS 
*         OUTPUT A *USE F.P.* AND *VFD 12/2000,48/0* FOR THE LAST 
*         F.P. ONLY.
  
 TSL      ROUTINE 
          SA1    LSR
          ZR     X1,TSL      IF LSR = 0    */ NO SUBS 
  
          SX0    B1 
          SA3    N.FP 
          LX0    P.RA 
          IX2    X3+X3
          SA4    O.SYM
          SB5    X2+2 
          MX7    -12
          SB3    X4 
          SA2    =6L  USE 
          SA5    B3-B5       WORDA[LAST F.P.] = O.SYM-2 - 2*N.FP
          MX3    -24
          SA4    A5-B1       WORDB = WORDA - 1
          LX5    24 
          SA1    =10H  VFD 12/2 
          IX7    X4+X0       RA[WORDB] = RA[WORDB] + 1
          BX4    -X3*X5      1*ST FOUR CHARACTERS OF F.P. NAME
          MX0    18 
          SA7    A4 
          BX6    X2+X4       *  USE XXXX* 
          BX7    X0*X5       LAST THREE CHARACTERS OF F.P. NAME 
          SA6    OPLA 
          SA7    A6+B1
          SA2    =10H000B,48/0B 
          BX6    X1 
          BX7    X2 
          SA6    A7+B1
          SA7    A6+B1
          IX6    X6-X6
          SA6    A7+B1
          WLIC   OPLA,5 
          EQ     TSL         EXIT.. 
 OVC      TITLE  OVC - OUTPUT VARDIM CODE 
**        OVC - OUTPUT VARDIM INITIALIZATION CODE 
  
 OVC      ROUTINE 
          SA1    LSR
          SA2    L.VDT
          BX3    X1+X2
          ZR     X3,OVC      IF LSR & L.VDT = 0 
  
          OUTUSE VARDIM 
          SA1    =XVARDIM.
          CALL   CUB         CUB( VARDIM. )  */ SWITCH TO VARDIM BLOCK
          SA1    LSR
          ZR     X1,OVC1     IF LSR = 0    */ NO SUB REFS 
  
          SA2    O.SYM
          MX0    L.NAME 
          MX1    -4*6 
          SA3    X2-4 
          BX5    X0*X3
          SA2    OVCA 
          LX5    4*6
          MX0    3*6
          BX3    -X1*X5      FIRST 4 CHARACTERS 
          BX7    X0*X5       LAST 3 CHARACTERS
          BX6    X1*X2
          SA7    A2+B1
          SA1    BLEN        BUMP BLOCK LENGTH BY 1 
          BX6    X6+X3
          SX7    X1+B1
          SA6    A2 
          SA7    A1 
          WLIC   A6,OVCL     *SA3 1*ST F.P.*, *RJ SPA.* 
  
 OVC1     SA1    L.VDT
          ZR     X1,OVC5     IF L.VDT = 0 
  
*         FORM IL INSTRUCTIONS FOR *VD* INITIALIZATION AND CODE THEM. 
  
          MX6    0
          SA6    L.TXT       L.TXT = 0
          ADDWRD VDT,B0      ADDWRD( VDT , 0 ) */ TABLE TERMINATOR
          LX3    4
          ALLOC  TXT,X3      ALLOC( TXT , 16*L.VDT )
          SA4    O.VDT
          SB7    X2          TB = O.TXT 
          SB3    X2          TI = O.TXT 
          SA5    X4          VI = [O.VDT] 
          SB5    -4 
          SX0    -B5         RN = 4 
          SB4    IH.CAP 
          SA2    =XVD.
          MX1    0           BIAS = 0 
          LX2    IH.IHP 
          SB2    OC.BOS 
          SX6    B1 
          LX6    R1.INP 
          MX7    0
          RJ     SRI         SRI(  BOS  0,0  )
  
 OVC2     SX7    X5 
          SB2    OC.LD
          BX6    X0 
          RJ     SRI         SRI(  LD  RN,,,IH[VI]  ) 
          AX5    18 
          ZR     X5,OVC3     IF IH2[VI] = 0 
  
          BX6    X0 
          SX7    X5 
          RJ     SRI         SRI(  LD  RN,,,IH2[VI]  )
  
          SX4    X0+B5
          SB2    OC.IM
          SX5    X4+B5
          LX4    R1.RJP 
          LX5    R1.RKP 
          BX4    X4+X5
          BX6    X0+X4
          MX7    0
          RJ     SRI         SRI(  IM  RN,RN-4,RN-8 ) 
          EQ     OVC4 
  
 OVC3     SX4    X0+B5
          SB2    OC.XMT 
          LX4    R1.RJP 
          MX7    0
          BX6    X4+X0
          RJ     SRI         SRI(  XMT  RN,RN-4 ) 
  
 OVC4     SX0    X0+B5       RN = RN - 4
          LX4    B4,X1
          SB2    OC.ST
          BX7    X4+X2
          BX6    X0 
          RJ     SRI         SRI(  ST  RN,,BIAS,VD.  )
          SA5    A5+B1       VI = VI + 1
          SX1    X1+B1       BIAS = BIAS + 1
          NZ     X5,OVC2     IF [VI] " 0
  
          R=     B2,OC.EOQ
          MX6    0
          RJ     SRI         SRI(  EOQ  0,0 ) 
          SX6    B3-B7
          SA6    L.TXT       L.TXT = TI - TB
          BX7    X1 
          SA7    =XN.VD      N.VD = BIAS
          CALL   PSB         PROPAGATE SPECIAL BITS 
          CALL   SSP         MOVE BLOCK TO *SEQ*
          SX5    3
          SX6    1
          CALL   ESR         EXPAND SPECIAL REFS AND SQUEEZE
          MX6    0
          CALL   MCG         CODE THE SEQUENCE
          CALL   CII         CONVERT TO COMPASS 
          RJ     FSU         FORCE VARDIM UPPER 
  
 OVC5     SA1    =XCODE.
          CALL   CUB         CUB( CODE. )  */ SWITCH BACK TO CODE BLOCK 
          OUTUSE CODE.
          EQ     OVC
 SRI      SPACE  3,8         SRI
**        SRI - STORE RLIST INSTRUCTION 
* 
*         ENTRY  (B2) = OPCODE , (X6,X7) = R1,R2 WORDS
  
 SRI      ROUTINE 
          SA4    =XF.RDT+B2 
          PX6    B2,X6
          SA6    B3          [TI] = R1
          SA7    B3+B1       [TI+1] = R2
          BX6    X4 
          SA6    A7+B1       [TI+2] = RDT(OC) 
          SX0    X0+4        RN = RN + 4
          MX7    0
          SA7    A6+B1       [TI+3] = 0 
          SB3    A7+B1       TI = TI + 4
          EQ     SRI
  
 OVCA     DATA   C$  SA3 XXXXXXX$ 
          DATA   C$  RJ SPA.$ 
 OVCL     EQU    *-OVCA 
 ILW      SPACE  3,14        ILW
**        ILW - ISSUE LEVEL ADDRESS WORDS FOR LEVEL 2 AND 3 SYMBOLS 
  
 ILWA     BSS    1           SAVE DATA. 
  
 ILW0     SA1    ILWA 
          SA2    =XDATA.
          IX6    X2-X1
          ZR     X6,ILW      IF NO LEVEL WORDS ISSUED 
          BX6    X1 
          SA6    =XSDATA.    FOR *ALA* IN FAX.
  
 ILW      ROUTINE 
          SA1    =XLEVEL2 
          SA5    =XDIRECT 
          SX6    -1 
          SA6    SDATA.      SDATA. = -1
          ZR     X1,ILW      IF LEVEL = 0  */ NO LEVEL STMTS IN SUBPROGR
          ZR     X5,ILW      IF LCM=D MODE
          SA1    =XFSTEX
          ZR     X1,ILW      IF FSTEX = 0  */ NO EXECUTABLE STMTS 
  
          OUTUSE DATA.
          SA1    =XDATA.
          SX6    X1+
          SA6    ILWA        SAVE DATA. 
  
          SA5    =XST.
          LX5    1
          SB6    X5          I = 2*ST.     */ INDEX 
  
*         SCAN SYMBOL TABLE FOR *LEVEL 2/3* SYMBOLS 
  
 ILW1     SA3    O.SYM
          SA4    =XSYMORD 
          SA0    X3-1 
          LX4    1
          SB7    X4          LIMIT = 2*SYMORD 
  
 ILW2     SA5    A0-B6       WORDB = [O.SYM-I]
          GE     B6,B7,ILW0  IF I \ LIMIT  */ END OF OF SYMTAB
          LX5    59-P.LCM 
          SB6    B6+2        I = I + 2
          PL     X5,ILW2     IF ^LCM[WORDB] 
          BX3    X5 
          SX7    10B-T.LAB
          ERRMI  10B-T.LAB   TEST RELIES ON OVERFLOW
          LX3    1+P.LCM
          LX7    P.TYP
          IX3    X7+X3
          MI     X3,ILW2     IF TYPE[WORDB] \ T.LAB 
  
*         ISSUE  * NAME LAP  ?MM,NNNB * TO COMPS
  
          SA3    DATA.
          SX7    X3+B1       DATA. = DATA. + 1
          SA7    A3 
          SA4    A5+B1       WORDA = WORDB + 1
          SA2    =3R LA 
          MX0    L.NAME 
          BX7    X0*X4
          BX7    X2+X7
          SA7    OPLA+1 
          LX5    1+P.LCM-P.RB 
          MX0    -L.RB
          BX6    -X0*X5      BLOCK NUMBER 
          RJ     CON
          SX4    1R,-1RB
          SB2    B3-66
          LX6    6
          LX4    -B2,X4 
          SX7    3RP ?
          IX6    X6+X4       CHANGE B TO ,
          SB4    42          UBC = 42 
          LX7    42 
          SB3    B3-6 
          RJ     ADC         ADD ?MM, 
          LX5    P.RB-P.RA
          SX6    X5 
          RJ     CON         CONVERT OFFSET 
          LX6    6
          SB3    B3-6 
          RJ     ADC
          RJ     TSB
          SX6    B6 
          SA6    OPLA 
          SB6    A6+B1
          SB7    A7+B1
          WRITEC F.CMPS,B6,B7-B6
          SA5    OPLA 
          SB6    X5 
          EQ     ILW1 
  
          END 
