*COMDECK  SKEL - INSTRUCTION SKELETON EXPANSIONS. 
          CTEXT  SKEL - INSTRUCTION SKELETON EXPANSIONS.
  
  
***       SKEL - INSTRUCTION SKELETON EXPANSIONS. 
* 
*         THE SKELETONS DESCRIBE TO PASS 2 (QCG OR BRIDGE) WHAT 
*         PREBINARY INSTRUCTIONS SHOULD BE ISSUED IN RESPONSE TO
*         A PARTICULAR TURPLE.
  
ILL       SKEL
          CALL   ILL
          ENDS
  
  
  
  
 ADD.I    SKEL
          IA     R1,L1,L2 
          ENDS
  
 ADD.R    SKEL
          FAR    T1,L1,L2 
          NR     R1,0,T1
          ENDS
  
 ADD.D    SKEL
          FA     T1,LU1,LU2 
          DFA    T2,LU1,LU2 
          FA     T3,LL1,LL2 
 ADD.D1   NR     T4,0,T1
          FA     T5,T2,T3 
          FA     T6,T4,T5 
          NR     T7,0,T6
          DFA    T8,T4,T5 
          NR     T9,0,T8
          FA     RU1,T7,T9
          DFA    RL1,T7,T9
          ENDS
  
 ADD.C    SKEL
          FAR    T1,LU1,LU2 
          NR     RU1,0,T1 
          FAR    T2,LL1,LL2 
          NR     RL1,0,T2 
          ENDS
  
 ADD.B    SKEQU  ADD.I
 SUBTR.   SPACE  4,8
*         SUBTRACT INSTRUCTIONS.
  
  
 SUB.I    SKEL
          IS     R1,L1,L2 
          ENDS
  
 SUB.R    SKEL
          FSR    T1,L1,L2 
          NR     R1,0,T1
          ENDS
  
 SUB.D    SKEL
          FS     T1,LU1,LU2 
          DFS    T2,LU1,LU2 
          FS     T3,LL1,LL2 
          BRANCH ADD.D1,(T1,T2,T3)
          ENDS
  
 SUB.C    SKEL
          FSR    T1,LU1,LU2 
          NR     RU1,0,T1 
          FSR    T2,LL1,LL2 
          NR     RL1,0,T2 
          ENDS
  
 SUB.B    SKEQU  SUB.I
 MULT.    SPACE  4,8
*         MULTIPLY INSTRUCTIONS.
  
  
  
 MUL.I    SKEL   IMVC 
          CALL   IM 
          ENDS
  
 IMVC     SUBSKEL 
          IM     R1,L1,L2 
          ENDS
  
 IMV      SUBEQU IMVC 
  
*         OPERATIONS THAT UTILIZE THE SHIFT INSTRUCTION.
*         INTEGER MULTIPLY SKELETONS. 
  
 #CD      IFEQ   .CG,.OPT 
 IM2      SUBSKEL 
*         MULTIPLY BY 2.
          IA     R1,L1,L1 
          ENDS
 #CD      ENDIF 
  
 SHFC     SUBSKEL 
*         MULTIPLY POWER OF 2.
          KLS    T2,L1,GP1
          XMT    R1,T2
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
 SHFS     SUBSKEL 
*         MULTIPLY SUM OF TWO POWERS OF 2.
          KLS    T2,L1,GP2
          IA     T3,T2,L1 
          KLS    T5,T3,GP1
          XMT    R1,T5
          ENDS
  
 SHFD     SUBSKEL 
*         MULTIPLY DIFFERENCE OF TWO POWERS OF 2. 
          KLS    T2,L1,GP1
          KLS    T4,L1,GP2
          IS     R1,T4,T2 
          ENDS
  
 SHFS1    SUBSKEL 
*         MULTIPLY POWER OF 2 PLUS 1. 
          KLS    T2,L1,GP1
          IA     R1,T2,L1 
          ENDS
  
 SHFD1    SUBSKEL 
*         MULTIPLY POWER OF 2 MINUS 1.
          KLS    T2,L1,GP1
          IS     R1,T2,L1 
          ENDS
 #CD      ENDIF 
  
 MUL.R    SKEL
          FMR    R1,L1,L2 
          ENDS
  
 MUL.D    SKEL
          FM     T1,LL1,LU2 
          FM     T2,LU1,LL2 
          FA     T3,T1,T2 
          FM     T4,LU1,LU2 
          DFM    T5,LU1,LU2 
          FA     T6,T3,T5 
          FA     RU1,T4,T6
          DFA    RL1,T4,T6
          ENDS
  
 MUL.C    SKEL
          FMR    T1,LU1,LU2 
          FMR    T2,LL1,LL2 
          FSR    T3,T1,T2 
          NR     RU1,0,T3 
          FMR    T4,LU1,LL2 
          FMR    T5,LL1,LU2 
          FAR    T6,T4,T5 
          NR     RL1,0,T6 
          ENDS
  
 MUL.B    SKEQU  MUL.I
 DIV.     SPACE  4,8
*         DIVIDE INSTRUCTIONS.
  
  
  
 DIV.I    SKEL   IDVC 
          CALL   ID 
          ENDS
  
 IDVC     SUBSKEL 
          PK     T1,0,L2
          NR     T2,0,T1
          PK     T3,0,L1
          FDR    T4,T3,T2 
 .IDZ     IFEQ   .IDC,1 
          FMA    T5,60
          FA     T6,T5,T4 
          UP     T7,"TBR",T6
          ILS    R1,"TBR",T7
 .IDZ     ELSE
          UP     T5,"TBR",T4
          ILS    R1,"TBR",T5
 .IDZ     ENDIF 
          ENDS
  
 IDV      SUBEQU IDVC 
  
 IDP2     SUBSKEL 
*         INTEGER DIVIDE BY POWER OF 2 SKELETON.
          KRS    T2,L1,GP1
          XMT    R1,T2
          ENDS
  
 DIV.R    SKEL
          FDR    R1,L1,L2 
          ENDS
  
 DIV.D    SKEL
          FD     T1,LU1,LU2 
          FM     T2,T1,LU2
          FS     T3,LU1,T2
          DFS    T4,LU1,T2
          NR     T5,0,T3
          FA     T6,T4,T5 
          DFM    T7,T1,LU2
          FS     T8,LL1,T7
          FA     T9,T6,T8 
          FM     T10,T1,LL2 
          FS     T11,T9,T10 
          FD     T12,T11,LU2
          FA     T13,T1,T12 
          NR     T14,0,T13
          DFA    T15,T1,T12 
          FA     RU1,T15,T14
          DFA    RL1,T15,T14
          ENDS
  
 DIV.C    SKEL
          FMR    T1,LU1,LL2 
          FMR    T2,LL1,LU2 
          FSR    T3,T2,T1 
          NR     T4,0,T3
          FMR    T5,LU1,LU2 
          FMR    T6,LL1,LL2 
          FAR    T7,T5,T6 
          NR     T8,0,T7
          FMR    T9,LU2,LU2 
          FMR    T10,LL2,LL2
          FAR    T11,T9,T10 
          NR     T12,0,T11
          FDR    RU1,T8,T12 
          FDR    RL1,T4,T12 
          ENDS
  
 DIV.B    SKEQU  DIV.I
  
 DVC.R    SKEL               SPECIAL COMPLEX/REAL 
          FDR    RU1,LU1,L2 
          FDR    RL1,LL1,L2 
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
 DIR.R    SKEL               SPECIAL REAL ROUNDED DIVIDE FOR 1/CON
          RFD    R1,L1,L2 
          ENDS
  
 DIR.C    SKEL               SPECIAL ROUNDED DIVIDE FOR 1/CON 
          FMR    T1,LU1,LL2 
          FMR    T2,LL1,LU2 
          FSR    T3,T2,T1 
          NR     T4,0,T3
          FMR    T5,LU1,LU2 
          FMR    T6,LL1,LL2 
          FAR    T7,T5,T6 
          NR     T8,0,T7
          FMR    T9,LU2,LU2 
          FMR    T10,LL2,LL2
          FAR    T11,T9,T10 
          NR     T12,0,T11
          RFD    RU1,T8,T12 
          RFD    RL1,T4,T12 
          ENDS
 #CD      ENDIF 
 UMIN.    SPACE  4,8
*         UNARY MINUS INSTRUCTIONS. 
  
  
  
 UMI.I    SKEL
          XMTC   R1,L1
          ENDS
  
 UMI.R    SKEQU  UMI.I
  
 UMI.D    SKEL
          XMTC   RU1,LU1
          XMTC   RL1,LL1
          ENDS
  
 UMI.C    SKEQU  UMI.D
 RELAT    SPACE  4,8
*         RELATIONAL OPERATORS. 
* 
*             VAR1 .OP. VAR2 = PERFORM IN VAR MODE, RESULTS = LOGICAL 
*             LOG1 .OP. LOG2 = ILLEGAL. 
  
 LT.I     SKEL
          IS     T1,L1,L2 
          CLR    T2 
          IAZ    R1,T1,T2 
          ENDS
  
 LT.R     SKEL
          FSR    T1,L1,L2 
          PNR    R1,0,T1
          ENDS
  
 LT.D     SKEL
          FS     T1,LL1,LL2 
          FS     T2,LU1,LU2 
          PNR    T3,0,T2
          DFS    T4,LU1,LU2 
          FA     T5,T1,T4 
          FA     RU1,T3,T5
          ENDS
  
 LT.H     SKEL
          CALL   HREL 
 LTH1     DEF    R1,,"X6."
          ENDS
  
 LLT      SKEL               ASCII LT 
          CALL   HLEX 
          BRANCH LTH1 
          ENDS
  
 LT.B     SKEQU  LT.I 
  
 GE.I     SKEL
          IS     T1,L1,L2 
          CLR    T2 
          IAZ    T3,T1,T2 
          XMTC   R1,T3
          ENDS
  
 GE.R     SKEL
          FSR    T1,L1,L2 
          PNR    T2,0,T1
          XMTC   R1,T2
          ENDS
  
 GE.D     SKEL
          DFS    T1,LU1,LU2 
          FS     T2,LU1,LU2 
          PNR    T3,0,T2
          FS     T4,LL1,LL2 
          FA     T5,T1,T4 
          FA     T6,T3,T5 
          XMTC   RU1,T6 
          ENDS
  
 GE.B     SKEQU  GE.I 
  
 GE.H     SKEL
          CALL   HREL 
 GEH1     DEF    T1,,"X6."
          XMTC   R1,T1
          ENDS
  
 LGE      SKEL               ASCII GE 
          CALL   HLEX 
          BRANCH GEH1 
          ENDS
  
 NE.I     SKEL
          CLR    T1 
          IS     T2,L1,L2 
          IAZ    T3,T2,T1 
          ISZ    T4,T1,T3 
          OR     R1,T4,T3 
          ENDS
  
 NE.R     SKEL
          FSR    T1,L1,L2 
          PNR    T2,0,T1
          CLR    T3 
          ISZ    T4,T3,T2 
          OR     R1,T2,T4 
          ENDS
  
 NE.D     SKEL
          FS     T1,LU1,LU2 
          FS     T2,LL1,LL2 
          PNR    T3,0,T1
          DFS    T4,LU1,LU2 
          PNR    T5,0,T4
          CLR    T6 
          PNR    T7,0,T2
          OR     T8,T3,T7 
          OR     T9,T8,T5 
          ISZ    T10,T6,T9
          OR     RU1,T10,T9 
          ENDS
  
 NE.C     SKEQU  NE.D 
  
 NE.B     SKEQU  NE.I 
  
 NE.H     SKEL
          CALL   HREL 
 NEH1     DEF    T1,,"X6."
          KLS    T3,T1,1
          XMT    R1,T3
          ENDS
  
 LNE      SKEL               ASCII NE 
          CALL   HLEX 
          BRANCH NEH1 
          ENDS
  
 EQ.I     SKEL
          IS     T1,L1,L2 
          CLR    T2 
          IAZ    T3,T1,T2 
          ISZ    T4,T2,T3 
          EQV    R1,T3,T4 
          ENDS
  
 EQ.R     SKEL
          FSR    T1,L1,L2 
          PNR    T2,0,T1
          CLR    T3 
          ISZ    T4,T3,T2 
          EQV    R1,T4,T2 
          ENDS
  
 EQ.D     SKEL
          FS     T1,LU1,LU2 
          PNR    T2,0,T1
          DFS    T3,LU1,LU2 
          PNR    T4,0,T3
          FS     T5,LL1,LL2 
          CLR    T6 
          PNR    T7,0,T5
          OR     T8,T2,T7 
          OR     T9,T8,T4 
          ISZ    T10,T6,T9
          EQV    RU1,T9,T10 
          ENDS
  
 EQ.C     SKEQU  EQ.D 
  
 EQ.B     SKEQU  EQ.I 
  
 EQ.H     SKEL
          CALL   HREL 
 EQH1     DEF    T1,,"X6."
          KLS    T3,T1,1
          XMTC   R1,T3
          ENDS
  
 LEQ      SKEL               ASCII EQ 
          CALL   HLEX 
          BRANCH EQH1 
          ENDS
 STORES   SPACE  4,8
*         STORE SKELETONS.
* 
  
  
 STR.I    SKEL
          ST     L2,L1
          ENDS
  
 STR.R    SKEQU  STR.I
  
 STR.D    SKEL
          XMT    T1,LL1 
          ST     LL2,T1 
          ST     LU2,LU1
          ENDS
  
 STR.H    SKEL
          CALL   HSTO 
          ENDS
  
 STR.C    SKEQU  STR.D
  
 STR.B    SKEQU  STR.I
 CHAR     SPACE  4,10 
*         CHARACTER SUBSTRING, CATENATION SKELETONS.
  
  
 CAT      SKEL
          CALL   HCAT 
          ENDS
  
  
 COLON    SKEL               (P1=FIRST, P2=LAST)
          CALL   HCOL 
          ENDS
  
 SUBST    SKEL               (P1=SYMBOL, P2=COLON INTERMEDIATE) 
          CALL   HSBS 
          ENDS
 MODECON  SPACE  4,10 
**        MODE CONVERSION SKELETONS.
  
  
 ITOR     SKEL
          PK     T1,0,L1     INTEGER TO REAL CONVERSION 
          NR     R1,0,T1
          ENDS
  
 ITOB     SKEL               XMIT -- NO CONVERSION
          XMT    R1,LU1 
          ENDS
  
 ITOD     SKEL
          PK     T1,0,L1     INTEGER TO DOUBLE CONVERSION 
          NR     RU1,0,T1 
          CLR    RL1
          ENDS
  
 ITOC     SKEQU  ITOD        INTEGER TO COMPLEX CONVERSION
  
  
 RTOI     SKEL
          UP     T1,"TBR",L1     REAL TO INTEGER CONVERSION 
          ILS    R1,"TBR",T1
          ENDS
  
 RTOD     SKEL
          XMT    RU1,L1      REAL TO DOUBLE CONVERSION
          CLR    RL1
          ENDS
  
 RTOC     SKEQU  RTOD 
 RTOB     SKEQU  ITOB        XMIT 
  
  
 DTOI     SKEQU  RTOI 
 DTOR     SKEQU  ITOB        XMIT 
 DTOB     SKEQU  DTOR 
  
 DTOC     SKEL
          XMT    RU1,LU1     DOUBLE TO COMPLEX CONVERSION 
          CLR    RL1
          ENDS
  
 XMIT     SKEQU  ITOB 
  
  
 CTOI     SKEQU  DTOI 
 CTOR     SKEQU  DTOR 
 CTOB     SKEQU  CTOR 
 CTOD     SKEQU  DTOC        COMPLEX TO DOUBLE
  
 BTOD     SKEQU  RTOD 
 BTOR     SKEQU  ITOB        XMIT 
 BTOI     SKEQU  ITOB        XMIT 
 BTOC     SKEQU  RTOD 
 LOGICAL  EJECT  4,20 
**        LOGICAL AND BOOLEAN OPERATORS.
* 
*         MUST OCCUR BEFORE INLINE FUNCTION SKELS.
*         MUST OCCUR AFTER MODE CONVERSION SKELS. 
  
  
 NOT.L    SKEL
          XMTC   R1,L1
          ENDS
  
 NOT.B    SKEQU  NOT.L
  
  
 AND.L    SKEL
          AND    R1,L1,L2 
          ENDS
  
 AND.B    SKEQU  AND.L
  
  
 EQV.L    SKEL
          EQV    R1,L1,L2 
          ENDS
  
 EQV.B    SKEQU  EQV.L
  
  
 OR.L     SKEL
          OR     R1,L1,L2 
          ENDS
  
 OR.B     SKEQU  OR.L 
  
  
 XOR.L    SKEL
          XOR    R1,L1,L2 
          ENDS
  
 XOR.B    SKEQU  XOR.L
 NEQV.B   SKEQU  XOR.L
 NEQV.L   SKEQU  XOR.L
 INTRINS  SPACE  4,20 
**        INTRINSIC FUNCTION SKELETONS. 
  
  
 ABS      SKEL
          KRS    T2,L1,59 
          XOR    R1,L1,T2 
          ENDS
  
  
 SUM1S    SKEL
          CX     R1,L1
          ENDS
  
  
 AIMAG    SKEL
          XMT    R1,LL1      IMAGINARY PART OF COMPLEX (1OP)
          ENDS
  
 AINT     SKEL
          CLR    T1 
          PK     T2,0,T1
          FA     T3,L1,T2 
          NR     R1,0,T3
          ENDS
  
 ANINT    SKEL
 ANINT1   KRS    T2,L1,59 
          PK     T3,0,T2
          RFA    T4,L1,T3 
          NR     R1,0,T4
          ENDS
  
  
 MAX0     SKEL
          IS     T1,L1,L2  I=MAX0(I1,I2)
 MAX01    KRS    T3,T1,59 
          XOR    T4,L1,L2 
          AND    T5,T4,T3 
          XOR    R1,T5,L1 
          ENDS
  
 DMAX1    SKEL
          FS     T1,LU1,LU2 
          DFS    T2,LU1,LU2 
          FS     T3,LL1,LL2 
 DMAX11   NR     T4,0,T1
          FA     T5,T2,T3 
          FA     T6,T4,T5 
          KRS    T8,T6,59 
          XOR    T9,LU1,LU2 
          XOR    T10,LL1,LL2
          AND    T11,T8,T9
          XOR    RU1,T11,LU1
          AND    T12,T8,T10 
          XOR    RL1,T12,LL1
          ENDS
  
 MIN0     SKEL
          IS     T1,L2,L1   I=MIN0(I1,I2) 
          BRANCH MAX01,(T1,L1,L2) 
          ENDS
  
 DMIN1    SKEL
          FS     T1,LU2,LU1 
          DFS    T2,LU2,LU1 
          FS     T3,LL2,LL1 
          BRANCH DMAX11,(T1,T2,T3,LL1,LL2,LU1,LU2)
          ENDS
  
 AMAX1    SKEL
          FS     T1,L1,L2  R=AMAX1(R1,R2) 
          BRANCH MAX01,(T1,L1,L2) 
          ENDS
  
 AMIN1    SKEL
          FS     T1,L2,L1  R=AMIN1(R1,R2) 
          BRANCH MAX01,(T1,L1,L2) 
          ENDS
  
 MAX1     SKEQU  AMAX1
 MIN1     SKEQU  AMIN1
 AMAX0    SKEQU  MAX0 
 AMIN0    SKEQU  MIN0 
  
 AMOD     SKEL
          FD     T1,L1,L2 
          CLR    T2 
          PK     T3,0,T2
          FA     T4,T1,T3 
          NR     T5,0,T4
          FM     T6,T5,L2 
          DFM    T7,T5,L2 
          DFS    T8,L1,T6 
          FS     T9,L1,T6 
          FS     T10,T8,T7
          NR     T11,0,T9 
          FA     T12,T10,T11
          NR     R1,0,T12 
          ENDS
  
  
 AND      SKEQU  AND.B
  
  
 BOOL     SKEQU  ITOB        BOOLEAN TO INTEGER 
  
 COMPL    SKEQU  NOT.B
  
  
 CONJG    SKEL
          XMT    RU1,LU1
          XMTC   RL1,LL1
          ENDS
  
  
 CMPLX    SKEL
          XMT    RU1,L1 
          XMT    RL1,L2 
          ENDS
  
  
 DABS     SKEL
          KRS    T2,LU1,59
          XOR    RU1,T2,LU1 
          XOR    RL1,T2,LL1 
          ENDS
  
  
 DBLE     SKEQU  RTOD 
  
  
 DDIM     SKEL
  
*         MOST OF THIS SKEL IS SUB.D .  A VIABLE CALLSKEL 
*         WOULD BE USEFUL HERE. 
  
          FS     T1,LU1,LU2 
          DFS    T2,LU1,LU2 
          FS     T3,LL1,LL2 
          NR     T4,0,T1
          FA     T5,T2,T3 
          FA     T6,T4,T5 
          NR     T7,0,T6
          DFA    T8,T4,T5 
          NR     T9,0,T8
          FA     T10,T7,T9
          DFA    T11,T7,T9
          KRS    T13,T10,59 
          STR    RU1,T13,T10
          STR    RL1,T13,T11
          ENDS
  
 DIM      SKEL
          FS     T1,L1,L2 
          NR     T2,0,T1
          KRS    T4,T1,59 
          STR    R1,T4,T2 
          ENDS
  
  
 DINT     SKEL
          KRS    T2,LU1,59
          PK     T3,0,T2
          FA     T4,T3,LU1
          NR     T5,0,T4
          FA     T6,T3,LL1
          NR     T7,0,T6
          FA     RU1,T7,T5
          DFA    RL1,T7,T5
          ENDS
  
 DPROD    SKEL
          FM     RU1,L1,L2
          DFM    RL1,L1,L2
          ENDS
  
 DNINT    SKEL
          KRS    T2,LU1,59
          PK     T3,0,T2
          RFA    T4,T3,LU1
          NR     T5,0,T4
          RFA    T6,T3,LL1
          NR     T7,0,T6
          FA     RU1,T7,T5
          DFA    RL1,T7,T5
          ENDS
  
  
 DSIGN    SKEL
          KRS    T2,LU1,59
          XOR    T3,T2,LU1
          XOR    T4,T2,LL1
          CLR    T5 
          IAZ    T6,T5,LU2
          KRS    T8,T6,59 
          XOR    RU1,T3,T8
          XOR    RL1,T4,T8
          ENDS
  
  
 EQV      SKEQU  EQV.B
  
  
 FLOAT    SKEQU  ITOR 
  
  
 IABS     SKEQU  ABS
  
  
 IDINT    SKEQU  RTOI 
  
 IDNINT   SKEL
          KRS    T2,L1,59 
          PK     T3,0,T2
          RFA    T4,T3,L1 
          UP     R1,0,T4
          ENDS
  
  
 IFIX     SKEQU  RTOI 
  
  
 INT      SKEQU  RTOI 
  
  
 ISIGN    SKEL
          KRS    T2,L1,59 
          XOR    T3,T2,L1 
          CLR    T4 
          IAZ    T5,T4,L2 
          KRS    T7,T5,59 
          XOR    R1,T7,T3 
          ENDS
  
  
 IDIM     SKEL
          IS     T1,L1,L2 
          KRS    T3,T1,59 
          STR    R1,T3,T1 
          ENDS
  
 MASK     SKEL
          CALL   MASK 
          ENDS
  
 MASKV    SUBSKEL 
          FMA    T1,1 
          SB=XK  "TBR",L1,-1
          IRS    T2,"TBR",T1
          KRS    T4,T2,59 
          AND    R1,T4,T2 
          ENDS
  
 MASKC    SUBSKEL 
          FMA    R1,P1
          ENDS
  
 MOD      SKEL   MODG 
          CALL   MOD
          ENDS
  
 MODG     SUBSKEL 
          PK     T1,0,L2    I=MOD(J,K)
          NR     T2,0,T1
          PK     T3,0,L1
          FD     T4,T3,T2 
          UP     T5,"TBR",T4
          ILS    T6,"TBR",T5
          IM     T7,T6,L2 
          IS     R1,L1,T7 
          ENDS
  
 MODP2    SUBSKEL 
          KRS    T2,L1,59 
          XOR    T3,L1,T2 
          FMA    T4,GP1 
          STR    T5,T4,T3 
          XOR    R1,T5,T2 
          ENDS
  
  
 NEQV     SKEQU  XOR.B
  
 NINT     SKEQU  IDNINT 
  
  
 OR       SKEQU  OR.B 
  
  
 RANF     SKEL
          DFM    T1,LL2,LU1 
          ST     L1,T1
          NR     R1,0,T1
          ENDS
  
 REAL     SKEQU  CTOR        COMPLEX TO REAL
  
  
 SIGN     SKEQU  ISIGN
  
  
 SNGL     SKEQU  REAL 
  
  
 SHIFT    SKEL   SHIFV
          CALL   SHIFT
          ENDS
  
 SHIFV    SUBSKEL 
          SB=XB  "TBR",L2 
          ILS    R1,"TBR",L1
          ENDS
  
 SHLC     SUBEQU SHFC 
  
 SHRC     SUBEQU IDP2 
  
  
 XOR      SKEQU  NEQV 
          EJECT 
**        V=DOB - DO BEGIN EXPANSION. 
*                (L1) = CONTROL INDEX    (I)
*                (L2) = NUMBER OF TRIPS  (TC) 
*                (L3) = TRIP COUNTER     (DC.N) 
*                (L4) = UPPER LIMIT      (M2) 
*                (P5) = DOBEGIN LABEL 
*                (P6) = DOEND LABEL      (ONLY IF ZERO-TRIP LOOP) 
*         MEGATURPLE SIZE = 3 TURPLES.
  
  
  
 DOBS     SKEL               ONE-TRIP DO BEGIN
          CALLC  DOO         SEE IF OPTIMIZABLE 
 DOBS1    CALL   DOBZ        GL1 = 1
          IS     T1,L2,GL1
          ST     L3,T1
          CALLQ  CAR
          CALL   DOB,P5 
          ENDS
  
 DOBL     SKEL
          CALLC  DOL         FLAG LONG DO 
          BRANCH DOBS1
          ENDS
  
 DOBZS    SKEL               ZERO-TRIP DO BEGIN, SHORT TRIP COUNT 
          CALLC  DZO         SEE IF OPTIMIZABLE 
          SX=XK  T1,L2,-1 
          ST     L3,T1
 DOBZ1    MI     T1,P6       IF (TRIP COUNT) <= 0 THEN SKIP LOOP
          CALLC  DOZ,P5 
          CALLQ  CAR
          CALL   DOB,P5 
          ENDS
  
 DOBZL    SKEL               ZERO TRIP DO BEGIN, LONG COUNT 
          CALLC  DOL         FLAG LONG DO 
          CALL   DOBZ        SET GL1 = -1 
          IS     T1,L2,GL1
          ST     L3,T1
          BRANCH DOBZ1,T1 
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
 DOBO     SUBSKEL                  OPTIMIZED (NO TRIP COUNT) LOOP 
          CALL   DOB,P5 
          ENDS
  
 DOZO     SUBSKEL                  OPTIMIZED ZERO TRIP LOOP 
          SX=XK  T1,L2,-1 
          BRANCH DOBZ1,T1 
          ENDS
  
 #CD      ENDIF 
 V=DOC    SPACE  4,10 
**        V=DOC - DO CONCLUSION CODE. 
*                (L1) = CONTROL INDEX    (I)
*                (L2) = INCREMENT VALUE  (M3) 
*                (P3) = DO BEGIN LABEL
*                (L4) = TRIP COUNTER     (DC.N) 
*         MEGATURPLE LENGTH = 2 TURPLES.
  
  
 DOC.S    SKEL               INTEGER, SHORT LOOP
          CALL   DOC,0       SET (GL1) = INTEGER -1 
          IA     T1,L2,L1 
 DOCS1    ST     L1,T1       CONTROL = CONTROL + INCREMENT
          SX=XK  T3,L4,-1    DECREMENT TRIP COUNTER 
 DOCS2    ST     L4,T3
          PL     T3,P3
          CALL   PDE
          ENDS
  
 DOC.O    SKEL
          CALL   DOC,0
          IA     T1,L2,L1 
          ST     L1,T1       CONTROL = CONTROL + INCREMENT
          CALL   PDE
          ENDS
  
 DOC.K    SUBSKEL            INTEGER, SHORT LOOP, CONSTANT INCREMENT
          SX=XK  T1,L1,P2 
          BRANCH DOCS1,(T1) 
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
 DOC.1    SKEL
          IA     T1,L1,L2 
          ST     L1,T1       CONTROL = CONTROL + INCREMENT
          CALL   PDE1 
          ENDS
  
 DC.OV    SUBSKEL            OPTIMIZED (NO TRIP COUNT), VAR. INCREMENT
          IA     T1,L1,L2 
 DC.O1    ST     L1,T1       I = I + INC
          IS     T3,GL1,T1
          PL     T3,P3
          CALL   PDE
          ENDS
  
 DC.OC    SUBSKEL            OPTIMIZED (NO TRIP COUNT), CON. INCREMENT
          SX=XK  T1,L1,P2 
          BRANCH DC.O1 ,T1
          ENDS
  
 DC.OS    SUBSKEL                  OPTIMIZED, CON. INCREMENT AND ULIM 
          SX=XK  T1,L1,P2 
          ST     L1,T1
          SX=XK  T2,T1,GP1
          MI     T2,P3
          CALL   PDE
          ENDS
  
 DC.O1    SUBSKEL            OPTIMIZED FOR I=J,J
          IA     T1,L1,L2 
          ST     L1,T1       CV = CV + INC
          CALL   PDE1 
          ENDS
  
 #CD      ENDIF 
  
  
 DOC.L    SKEL               INTEGER, LONG LOOP 
          CALL   DOC,1
          IA     T1,L1,L2 
 DOCL1    ST     L1,T1       CONTROL = CONTROL + INCREMENT
 DOCL2    IA     T3,L4,GL1   DECREMENT TRIP COUNTER 
          BRANCH DOCS2,(T3) 
          ENDS
  
 DOC.R    SKEL               REAL, ALWAYS LONG
          CALL   DOC,1
          FAR    T2,L1,L2 
          NR     T1,0,T2
          BRANCH DOCL1,(T1) 
          ENDS
  
 DOC.D    SKEL               DOUBLE, ALWAYS LONG
          CALL   DOC,1
          FA     T1,LU1,LU2 
          DFA    T2,LU1,LU2 
          FA     T3,LL1,LL2 
          NR     T4,0,T1
          FA     T5,T2,T3 
          FA     T6,T4,T5 
          NR     T7,0,T6
          DFA    T8,T4,T5 
          NR     T9,0,T8
          FA     T10,T7,T9
          DFA    T11,T7,T9
          ST     LU1,T10
          ST     LL1,T11
          BRANCH DOCL2
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
  
 IOLC     SKEL               IO LIST COLLAPSE 
          CALL   IOLC 
          ENDS
  
 IOLC1    SUBSKEL                  ONE TRIP (OPTIMIZED) HEADER
          IA     T1,L3,L4    CV = ULIM + INCR (1) 
          ST     L1,T1
          ENDS
  
 IOLC0    SUBSKEL                  ZERO TRIP COLLAPSE HEADER
 #CD      ELSE
 IOLC     SKEL               IO LIST COLLAPSE - DEFINE CONTROL VAR
 #CD      ENDIF 
          IS     T1,L3,L2 
          KRS    T3,T1,59 
          IA     T4,L3,L4 
          AND    T5,T3,L2 
          STR    T6,T3,T4 
          OR     T7,T5,T6 
          ST     L1,T7
          ENDS
  
 LCIF     SKEL               PROTECT INNER CV DEFINITIONS 
          IS     T1,L3,L2 
          MI     T1,P1
          CALLC  IF,1 
          ENDS
 GOTO     SPACE  4,10 
**        *GO TO* INSTRUCTIONS. 
  
  
  
 GOTO     SKEL                         UNCONDITIONAL GOTO 
          UJP    P1 
          CALLC  PGT
          ENDS
  
  
 AGOTO    SKEL                         ASSIGNED GOTO
          IR     L1,=XS=BU
          SB=XK  "TBR",L1,=XS=TRACE 
          JIN    "TBR"
          CALLC  PAG
          ENDS
  
  
 CGOTO    SKEL                         COMPUTED GOTO
*                            (X1) = EXPRESSION VALUE
          SX=BK  T1,0,P2     SX6 N.BRANCHES 
          SX=XK  T2,L1,-1    SX0 X1-1 
          IS     T3,T2,T1    IX2 X0-X6
          IMP    T4,T3,T2    BX3 -X2+X0 
          KRS    T6,T4,59    AX3 59 
          STR    T7,T6,T2    BX4 -X3*X0 
          AND    T8,T6,T1    BX5 X3*X6
          IA     T9,T7,T8    BX6 X4+X5
          SB=XB  "TBR",T9    SB2 X6 
          CALLQ  CAR
          CALL   PCG,"TBR"
          ENDS
  
 JGOTO    SKEL                         JUMP TO A COMPUTED GOTO BRANCH 
          UJP    P1 
          CALLC  JGOC 
          ENDS
  
 RGOTO    SKEL               INDEXED JUMP TO ALTERNATE RETURN LABELS
          CALL   RGT
          DEF    T1,,"X1."
          SX=XK  T2,T1,-1 
          SX=XK  T3,T2,GP2
          IMP    T4,T3,T2 
          KRS    T6,T4,59 
          STR    T7,T6,T1 
          LOAD   T8,T7,GP1
          SB=XB  "TBR",T8 
          CALLQ  CAR
          JIN    "TBR"
          ENDS
  
  
 ASSGN    SKEL
 #CD      IFEQ   .CG,.FAST
          CALL   PASG         SETS GL1 TO LA.+K 
          ST     L2,GL1 
  
 #CD      ELSE
          CALL   PASG,L1      ISSUES ST1 L1-TEMPA0. 
          ENDS
  
 ASLAB    SUBSKEL                  ASSIGN TO CODE LABEL 
  
*         P=PASG DEFINES T1.
  
          FMA    T2,1 
          OR     T3,T1,T2 
          ST     L2,T3
          ENDS
  
 ASFMT    SUBSKEL                  ASSIGN TO FORMAT LABEL 
          ST     L2,T1
 #CD      ENDIF 
          ENDS
  
 BSS      SKEL
          CALL   PLA,P1 
          ENDS
  
 ARY      SKEL                     SUBSCRIPTED ARRAY LOAD 
          CALL   PAR         PROCESS ARRAY REFERENCE
          ENDS
 APL      SPACE  4,10 
**        AP-LIST CONSTRUCTION. 
  
  
 GAP      SKEL
          CALL   GAP         PROCESS GENERAL ACTUAL PARAMETER 
          ENDS
  
 FAP      SKEL
          CALL   FAP         FUNCTION APLIST FOLLOWS
          ENDS
  
 IAP      SKEL
          CALL   IAP         PROCESS INTRINSIC ACTUAL PARAMETER 
          ENDS
 V=RAG    SPACE  4,10 
**        V=RAG - REGISTER ASSIGNEMENT AND LOAD FOR CALL BY VALUE SKELS.
*                (1OP) = FIRST  ARGUMENT. 
*                (2OP) = SECOND ARGUMENT (OR NIL).
*         QCG ONLY.  CCG DOES THIS WITH REGISTER STORES.
  
  
 #CD      IFEQ   .CG,.FAST
  
 IAPS1    SUBSKEL 
          LD     L1,,+R.X1   FIRST ARGUMENT 
          ENDS
  
 IAPD1    SUBSKEL 
          LD     LU1,,+R.X1  FIRST ARGUMENT, DOUBLE 
          LD     LL1,,+R.X2 
          ENDS
  
 IAPS2    SUBSKEL 
          LD     L1,,+R.X3   SECOND ARGUMENT
          ENDS
  
 IAPD2    SUBSKEL 
          LD     LU1,,+R.X3  SECOND ARGUMENT, DOUBLE
          LD     LL1,,+R.X4 
          ENDS
 #CD      ENDIF 
  
**        CALL BY REFERENCE APLIST SETUP AND CODE  SKELETONS
  
 APIOC    SKEL
          CALL   IOC         PROCESS I/O CONTROL PARAMETER
          ENDS
  
 APIOD    SKEL
          CALL   IOD         PROCESS I/O DATA PARAMETER (LIST ITEM) 
          ENDS
  
 APIOU    SKEL
          CALL   IOU         PROCESS I/O UNIT 
          ENDS
  
  
 APSTR    SUBSKEL 
          ST     GL2,GL1
          CALL   APRET
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
 IPLUG    SUBSKEL                  MUST FOLLOW APSTR
          FMA    T1,36       PLUG ADDRESS INTO I/O AP-LIST
          AND    T2,T1,GL2
          OR     T3,T2,GL1
          ST     GL2,T3 
          CALL   APRET
          ENDS
  
 IPLG1    SUBSKEL 
          FMA    T1,36
          AND    T2,T1,GL2
          STR    T3,T1,GL1
          OR     T4,T2,T3 
          ST     GL2,T4 
          CALL   APRET
          ENDS
  
 IPLG2    SUBSKEL 
          FMA    T1,25
          KLS    T3,T1,24 
          STR    T4,T3,GL2
          AND    T5,T3,GL1
          OR     T6,T4,T5 
          ST     GL2,T6 
          CALL   APRET
          ENDS
 #CD      ENDIF 
  
 IPLG0    SUBSKEL                  PLUG LEVEL 0 I/O APLIST
          FMA    T1,25       MX1   25 
          KLS    T3,T1,24    LX3   X1,24
          STR    T4,T3,GL2   BX4   -X1*X.GL2
          OR     T5,T4,GL1   BX5   X4+X.GL1 
          ST     GL2,T5 
          CALL   APRET
          ENDS
  
*         CHARACTER APLIST STORES.
  
 CAPST    SUBSKEL            NON IO CHARACTER APSTORE 
          DEF    T1,,"X6."
          ST     GL1,T1 
          CALL   SCRET
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
 CISST    SUBSKEL            CHARACTER I/O SCALAR 
          DEF    T1,,"X6."
          FMA    T2,49
          KLS    T4,T2,48 
          STR    T5,T4,GL1
          AND    T7,T4,T1 
          OR     T6,T7,T5 
          ST     GL1,T6 
          CALL   SCRET
          ENDS
  
 CIAST    SUBSKEL            CHARACTER I/O ARRAY
          DEF    T1,,"X6."
          FMA    T2,30
          AND    T3,T2,GL1
          STR    T4,T2,T1 
          OR     T5,T3,T4 
          ST     GL1,T5 
          CALL   SCRET
          ENDS
 #CD      ENDIF 
  
 CIS0S    SUBSKEL            CHARACTER I/O SCALAR (LEVEL 0) 
          DEF    T1,,"X6."
          FMA    T2,49
          KLS    T4,T2,48 
          STR    T5,T4,GL1
          AND    T7,T4,T1 
          OR     T6,T7,T5 
          ST     GL1,T6 
          CALL   SCRET
          ENDS
  
 CIA0S    SUBSKEL            CHARACTER I/O ARRAY (LEVEL 0)
          DEF    T1,,"X6."
          FMA    T2,31
          KLS    T4,T2,30 
          AND    T5,T4,T1 
          STR    T6,T4,GL1
          OR     T7,T5,T6 
          ST     GL1,T7 
          CALL   SCRET
          ENDS
  
 #CD      IFEQ   .CG,.FAST
 LUA      SUBSKEL                  LOAD UNKNOWN-LENGTH APLIST ITEM
          XMT    "X6.",GL1
          CALL   LURET
          ENDS
  
 SUA      SUBSKEL                  STORE UNKNOWN-LENGTH APLIST ITEM 
          DEF    T1,,"X6."
          ST     GL1,T1 
          CALL   SURET
          ENDS
 #CD      ENDIF 
  
  
 SUBR     SKEL
          CALL   SUB         PROCESS SUBROUTINE 
          ENDS
  
 FUNC     SKEL
          CALL   FUN         PROCESS GENERAL FUNCTION 
          ENDS
  
 LIBF     SKEL               LIBRARY FUNCTION (NO ZERO TERMINATOR)
          CALL   LIBF 
          ENDS
 INTF     SKEL
          CALL   INF         PROCESS INTRINSIC FUNCTION CALL
          ENDS
  
 IOSUB    SKEL
          CALL   IOF         PROCESS I/O ROUTINE
          ENDS
  
 #CD      IFEQ   .CG,.OPT 
  
 DFRS     SUBSKEL            DEFINE SINGLE-VALUED FUNCTION RESULT 
          DEF    R1,,"X6."
          CALL   FRRET
          ENDS
  
 DFRD     SUBSKEL            DOUBLE-VALUED FUNCTION RESULT
          DEF    R1,,"X6."
          DEF    RL1,,"X7." 
          CALL   FRRET
          ENDS
  
 #CD      ENDIF 
  
  
 ERR      SKEL                         SOURCE PROGRAM FATAL ERROR 
          CALLQ  CDW         DRITE
          RJT    =XS=ERR
          CALLQ  CAR         CLEAR REGS 
          ENDS
 EXIT.    SPACE  4,10 
**        SUBPROGRAM EXIT INSTRUCTIONS. 
  
  
 STOP     SKEL
          CALL   LIB
          CALLC  PEX
          ENDS
  
 PEND     SKEQU  STOP 
  
 PAUS     SKEL
          CALL   LIB
          ENDS
  
 RET      SKEL
          CALLQ  CDW         DRITE
          UJP    =XS=EXIT 
          CALLC  PEX
          ENDS
  
 RTNK     SKEL               ALTERNATE RETURN 
          XMTL   X1,T1,L1 
          CALLQ  CDW         CALL DRITE 
          UJP    =XS=AEXIT
          CALLC  PEX
          ENDS
 ENTRY.   SPACE  4,8
**        COMMON ENTRY DEFINITION CODE SKELETONS. 
* 
*         V=ENTR PROCESS INITIAL REFERENCE TO AN ALT ENTRY
*         V=BVD  BEGIN VAR DIM CODE 
*         V=EVD  END VAR DIM CODE 
  
  
 GPL      SKEL               GET PASSED LENGTH (OF FP)
          FMA    T1,42
          KRS    T3,L1,30 
          STR    R1,T1,T3 
          ENDS
  
 ENTR     SKEL
          CALL   ENT
          ENDS
  
  
 BVD      SKEL               BEGIN VARDIM CODE
          CALL   BVD
          ENDS
  
  
 EVD      SKEL               END VARDIM CODE
          CALL   EVD
          ENDS
  
 #CD      IFEQ   .CG,.FAST
  
**        QCG PROLOGUE AND ENTRY CODE SKELETONS 
* 
*         V=PROM  - MAIN PROGRAM PROGLOGUE CODE.
*         V=PROS  - SUB PROGRAM PROGLOGUE CODE. 
* 
*         V=MFPNT - FP CODE UNIQUE TO A MAIN ENTRY CODE OF A SUBR 
*         V=FUNT  - FUNCTION SUBPROGRAM RESULT CODE 
*         V=DFENT - DOUBLE PRECISION FUNCTION CODE
*         V=TMENT - ENTRY/EXIT SETUP + A CALL TO GENERAL ENTRY FP CODE
*         V=ALENT - NORMAL ALTERNATE ENTRY CODE 
*         V=TENT  - TERMINATE ALTERNATE ENTRY CODE
*         V=FPENT - FP CODE FOR ALL ENTRY POINTS INCLUDES ANY VARDIM
*         V=VDENT - VAR DIM CODE EXPANSION (CALLS A NEW I. L.)
  
 PROM     SUBSKEL                  MAIN PROGRAM PROLOG
          LABL   =XS=ENTRY
          XMTL   X1,T1,=XS=FILES
          RJ3    =XS=INIT 
          CALL   FINX 
          ENDS
  
 PROS     SUBSKEL                  SUB PROGRAM PROLOG 
          CALL   GENT              GENERATE ALT ENT CODE(CALLS V=ALENT) 
 PROS.M   CALL   MENT              MAIN ENT (CALLS V=MFPNT OR V=TMENT)
          ENDS
  
*         MAIN ENTRY CODE SUBSKELETONS
  
 MFPNT    SUBSKEL                  RESET A0 FOR CALLER
          SA=BK  A2,=XS=TA0 
          SA=XB  A0,X2
          ENDF
  
 FUNT     SUBSKEL                  FUNCTION ENTRY CODE
          CALL   FUNT 
          SA=BK  A4,=XS=VALUE 
          XMT    X6,X4
          BRANCH TMENT1            TERMINATE MAIN ENTRY 
          ENDS
  
 DFENT    SUBSKEL                  DOUBLE PRECISION CODE
          SA=BK  A4,=XS=VALUE 
          SA=AK  A3,A4,+1 
          XMT    X6,X4
          ILS    X7,,X3 
          ENDF
  
 TMENT    SUBSKEL                  TERMINATE MAIN ENTRY CODE
 TMENT1   LABL   =XS=ENTRY
          UJP    =XS=ENTRY         RETURN ADDRESS WORD
          CALL   FPHDR       PROCESS HEADER INITIAL CODE
          CALL   FINX 
          ENDS
  
*         ALTERNATE ENTRY SUBSKELS
  
 ALENT    SUBSKEL                  STANDARD ALT-ENTRY CODE
          LABL   GP1               GP1 IS ALENT TAG 
          UJP    GP1
          SA=BK  A4,GP1 
          XMT    X6,X4
          SA=BK  A6,=XS=ENTRY      STORE RETURN ADDR IN ENTRY/EXIT
          CALL   FPENT
          ENDF
  
*         FP CODE CAN SANDWICH IN HERE. 
  
 TENT     SUBSKEL                  TERMINATE ALT ENT CODE 
          UJP    GP2               (GP2) = ENTRY GENERATED LABEL
          CALL   GENTX             LOOP FOR NEXT ENTRY
          BRANCH PROS.M            GENTERAT MAIN ENTRY CODE 
          ENDS
  
  
  
 #CD      ENDIF 
 HDR      SPACE  4,10 
**        IL STRUCTURE AND BOILER-PLATE.
  
  
 SEG      SKEL
          CALLC  SEG
          ENDS
  
 NOOP     SKEL   ILL
          CALLQ  NOOP 
          ENDS
  
 HDR      SKEL                         BEGIN NEW PROGRAM-UNIT 
          CALL   HDR
          ENDS
  
 FILE     SKEL
          CALL   GFD         GENERATE FILE DECLARATION
          ENDS
  
 PLIM     SKEL                     END OF FILE DECLARATIONS 
          CALL   PLIM 
          ENDS
  
 SEX      SKEL                         START OF EXECUTABLES 
          CALL   SEX
          ENDS
  
 CDLOO    SKEL               OBJECT LIST ON/OFF 
          CALL   CDLOO
          ENDS
  
 CDDOT    SKEL               ZERO/ONE-TRIP DO 
          CALL   CDDOT
          ENDS
  
 CDCS     SKEL               USER/FIXED COLLATE 
          CALL   CDCS 
          ENDS
  
 DATA     SKEL               DATA TABLE INFO
          CALL   DATA 
          ENDS
  
 FIN      SKEL                         END OF IL
          CALLQ  CDW
          CALLQ  CAR
          CALL   FIN
          ENDS
  
 LCC      SKEL                         LOADER CONTROL CARD
          CALL   LCC
          ENDS
  
 DVI      SKEL
          CALL   ILL
          ENDS
  
 EXP.I    SKEL               I**J FOR DATA
          CALL   ILL
          ENDS
  
 DOBD2    SKEL
          CALLQ  NOOP 
          ENDS
 IF       SPACE  4,10 
*         *IF* INSTRUCTION SKELETONS. 
  
  
 IFI123   SKEL
          XMT    T1,L1
          ZR     T1,"N2"
          PL     T1,"N3"
  
          UJP    "N1" 
          CALLC  IF,3 
          ENDS
  
 IFI122   SKEL
          CLR    T1 
          IAZ    T2,T1,L1 
          PL     T2,"N2"
          UJP    "N1" 
          CALLC  IF,2 
          ENDS
  
 IFR122   SKEL
          PNR    T1,0,L1
          PL     T1,"N2"
          UJP    "N1" 
          CALLC  IF,2 
          ENDS
  
 IFI113   SKEL
          CLR    T1 
          ISZ    T2,T1,L1 
          PL     T2,"N1"
          UJP    "N3" 
          CALLC  IF,2 
          ENDS
  
 IFR113   SKEL
          XMTC   T1,L1
          PNR    T2,0,T1
          PL     T2,"N1"
          UJP    "N3" 
          CALLC  IF,2 
          ENDS
  
 IFI121   SKEL
          ZR     L1,"N2"
          UJP    "N1" 
          CALLC  IF,2 
          ENDS
  
 IFIN23   SKEL
          XMT    T1,L1
          ZR     T1,"N2"
          PL     T1,"N3"
          CALLC  IF,2 
          ENDS
  
 IFI1N3   SKEL
          CLR    T1 
          IAZ    T2,T1,L1 
          MI     T2,"N1"
          NZ     T2,"N3"
          CALLC  IF,2 
          ENDS
  
 IFR1N3   SKEL
          PNR    T1,0,L1
          MI     T1,"N1"
          NZ     T1,"N3"
          CALLC  IF,2 
          ENDS
  
 IFI12N   SKEL
          XMT    T1,L1
          ZR     T1,"N2"
          MI     T1,"N1"
          CALLC  IF,2 
          ENDS
  
 IFIN22   SKEL
          CLR    T1 
          IAZ    T2,T1,L1 
          PL     T2,"N2"
          CALLC  IF,1 
          ENDS
  
 IFRN22   SKEL
          PNR    T1,0,L1
          PL     T1,"N2"
          CALLC  IF,1 
          ENDS
  
 IFI1NN   SKEL
          CLR    T1 
          IAZ    T2,T1,L1 
          MI     T2,"N1"
          CALLC  IF,1 
          ENDS
  
 IFR1NN   SKEL
          PNR    T1,0,L1
          MI     T1,"N1"
          CALLC  IF,1 
          ENDS
  
 IFINN3   SKEL
          CLR    T1 
          ISZ    T2,T1,L1 
          MI     T2,"N3"
          CALLC  IF,1 
          ENDS
  
 IFRNN3   SKEL
          XMTC   T1,L1
          PNR    T2,0,T1
          MI     T2,"N3"
          CALLC  IF,1 
          ENDS
  
 IFI11N   SKEL
          CLR    T1 
          ISZ    T2,T1,L1 
          PL     T2,"N1"
          CALLC  IF,1 
          ENDS
  
 IFR11N   SKEL
          XMTC   T1,L1
          PNR    T2,0,T1
          PL     T2,"N1"
          CALLC  IF,1 
          ENDS
  
 IFIN2N   SKEL
          ZR     L1,"N2"
          CALLC  IF,1 
          ENDS
  
 IFI1N1   SKEL
          NZ     L1,"N1"
          CALLC  IF,1 
          ENDS
  
  
  
 IFIFT    SKEL               JUMP TO ("N3") IF (L1) TRUE
          MI     L1,"N3"
          CALLC  IF,1 
          ENDS
  
 IFIFF    SKEL               JUMP TO ("N3") IF (L1) FALSE 
          PL     L1,"N3"
          CALLC  IF,1 
          ENDS
  
 IFI111   SKEL
          UJP    P2 
          CALLC  PGT
          ENDS
  
*         IF SKELETON EQUIVALENTS.
  
*         REAL
  
 IFRN2N   SKEQU  IFIN2N 
 IFRN23   SKEQU  IFIN23 
 IFR111   SKEQU  IFI111 
 IFR12N   SKEQU  IFI12N 
 IFR123   SKEQU  IFI123 
  
*         DOUBLE PRECISION
  
 IFDNN3   SKEQU  IFRNN3 
 IFDN2N   SKEQU  IFIN2N 
 IFDN22   SKEQU  IFRN22 
 IFDN23   SKEQU  IFIN23 
 IFD1NN   SKEQU  IFR1NN 
 IFD1N3   SKEQU  IFR1N3 
 IFD11N   SKEQU  IFR11N 
 IFD113   SKEQU  IFR113 
 IFD111   SKEQU  IFI111 
 IFD12N   SKEQU  IFI12N 
 IFD122   SKEQU  IFR122 
 IFD123   SKEQU  IFI123 
  
  
*         IF(ONE RELATIONAL) SKELETONS. 
*         THESE MUST BE DEFINED IN PAIRS (EQ/NE OR LT/GE).
  
 IEQ.I    SKEL
          IS     T1,L1,L2 
          ZR     T1,"N3"
          CALLC  IF,1 
          ENDS
  
 IEQ.R    SKEL
          FSR    T1,L1,L2 
          NR     T2,,T1 
          ZR     T2,"N3"
          CALLC  IF,1 
          ENDS
  
 IEQ.D    SKEL
          FSR    T1,LU1,LU2 
          PNR    T2,,T1 
          FSR    T3,LL1,LL2 
          PNR    T4,,T3 
          OR     T5,T2,T4 
          ZR     T5,"N3"
          CALLC  IF,1 
          ENDS
  
 IEQ.C    SKEL
          FSR    T1,LU1,LU2 
          PNR    T2,,T1 
          FSR    T3,LL1,LL2 
          PNR    T4,,T3 
          OR     T5,T2,T4 
          CLR    T6 
          ISZ    T7,T6,T5 
          EQV    T8,T7,T5 
          MI     T8,"N3"
          CALLC  IF,1 
          ENDS
  
 INE.I    SKEL
          IS     T1,L1,L2 
          NZ     T1,"N3"
          CALLC  IF,1 
          ENDS
  
 INE.R    SKEL
          FSR    T1,L1,L2 
          NR     T2,,T1 
          NZ     T2,"N3"
          CALLC  IF,1 
          ENDS
  
 INE.D    SKEL
          FSR    T1,LU1,LU2 
          PNR    T2,,T1 
          FSR    T3,LL1,LL2 
          PNR    T4,,T3 
          OR     T5,T2,T4 
          NZ     T5,"N3"
          CALLC  IF,1 
          ENDS
  
 INE.C    SKEL
          FSR    T1,LU1,LU2 
          NR     T2,,T1 
          FSR    T3,LL1,LL2 
          NR     T4,,T3 
          NZ     T2,"N3"
          NZ     T4,"N3"
          CALLC  IF,2 
          ENDS
  
  
 SKEL     ENDX
