.         EDIT$ EDITING PACKAGE

.         PROCEDURES FOR FDIT$


P         PROC      1,2
F$*       NAME
          LXI,U     X11,P(1,1)
          J         F$
          END

P         PROC      1,2
F$PRT*    NAME      1                   PRINT, BLANK, AND ZERO COLUMN
          LA,U      12,(P(1)=0)+P(1,1)
          LMJ       11,FPRT$
          END

P         PROC      *1
F$DT*     NAME      FDT$                BLANK AND ZERO COLUMN
F$DTZ*    NAME      FDTZ$               ZERO COLUMN
          LMJ       11,P(0,0)
          DO        P(1)>0 , F$MSGC P(1,1)
          END

P         PROC      *1
F$DT1*    NAME      FDT1$               NEW ADDRESS, BLANK, AND ZERO COLUMN
F$DTZ1*   NAME      FDTZ1$              NEW ADDRESS AND ZERO COLUMN
          DO        P(1)>0 , LA 12,(P(1,1),P(1,2))
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$CHAR*   NAME      FCHAR$              EDIT A CHARACTER
F$COL*    NAME      FCOL$               POSITION TO A COLUMN
F$SKIP*   NAME      FSKIP$              SKIP AN AREA
F$MSGC*   NAME      FMSGC$              STORE NEW FMSG$ CHARACTER
          DO        P(1)>1 , LA,15*(P(1)<3)+P(1,3) 12,+(F$AD 1,1)
          DO        P(1)=1 , LA,15 12,P(1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$OCTV*   NAME      FOCTV$              VARIABLE LENGTH OCTAL
F$DECV*   NAME      FDECV$              VARIABLE LENGTH DECIMAL
F$FD1*    NAME      FFD1$               ONE WORD FIELDATA
F$FD3*    NAME      FFD3$               FIELDATA
F$FI*     NAME      FFI$                I$ FORM
F$FH*     NAME      FFH$                18,18 FORM
F$FD5*    NAME      FFD5$               FIELDATA
F$HEXV*   NAME      FHEXV$              VARIABLE LENGTH HEXADECIMAL
          DO        P(1)>0 , LA,P(1,3) 12,+(F$AD 1,1)
          LMJ       11,P(0,0)
          END

P         PROC      0,1
F$COLN*   NAME      FCOLN$              COMPUTE COLUMN NUMBER
F$MSGR*   NAME      FMSGR$              RE-ENTER MESSAGE EDITOR
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$FD2*    NAME      FFD2$               TWO WORD FIELDATA
F$FD4*    NAME      FFD4$               FIELDATA
F$FD6*    NAME      FFD6$               FIELDATA
          DO        P(1)>0 , DL 12,+(F$AD 1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$MSG*    NAME      FMSG$
F$MSG1*   NAME      FMSG1$
          DO        P(1)>0 , LA,14*(P(1)<3)+P(1,3) 12,+(F$AD 1,1)
          DO        P(0)>1 , LXI,14*(P(0)<4)+P(0,3) 12,+(F$AD 0,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$COPY*   NAME      FCOPY$              STRING COPY ROUTINE
F$PACK*   NAME      FPACK$              STRING COPY WITH PACKING
          DO        P(1)>1 , LA,14*(P(1)<4)+P(1,4) 12,+(F$AD 1,2)
          DO        P(0)>1 , LXI,14*(P(0)<4)+P(0,3) 12,+(F$AD 0,1)
          DO        P(1)>0 , LA,14 13,P(1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$OCTF*   NAME      FOCTF$              FIXED LENGTH OCTAL EDITOR
F$DECF*   NAME      FDECF$              FIXED LENGTH DECIMAL EDITOR
F$DECZ*   NAME      FDECZ$              FIXED LENGTH LEADING ZERO DECIMAL
F$DCFZ*   NAME      FDCFZ$              FIXED LENGTH LEADING ZERO DECIMAL
F$HEXF*   NAME      FHEXF$              FIXED LENGTH HEXADECIMAL EDITOR
          DO        P(1)>1 , LA,P(1,4) 12,+(F$AD 1,2)
          DO        P(1)>0 , LA,14 13,P(1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$FORM*   NAME      1                   GENERAL FORM EDIT
          DO        P(1)>1 , LA,P(1,4) 12,+(F$AD 1,2)
          DO        P(1)>0 , LA 13,P(1,1)
          LMJ       11,FFORM$
          END

P         PROC      *1
F$FLS1*   NAME      FFLS1$              SINGLE PRECISION SCIENTIFIC
F$FLG1*   NAME      FFLG1$              SINGLE PRECISION GENERALIZED FORMAT
F$FLF1*   NAME      FFLF1$              SINGLE PRECISION FIXED FORMAT
F$FLN1*   NAME      FFLN1$              SINGLE NICE EDIT
P(2,1)    EQU       1
F$FLS2*   NAME      FFLS2$              DOUBLE PRECISION SCIENTIFIC
F$FLG2*   NAME      FFLG2$              DOUBLE PRECISION GENERALIZED
F$FLF2*   NAME      FFLF2$              DOUBLE PRECISION FIXED
F$FLN2*   NAME      FFLN2$              DOUBLE NICE EDIT
          DO        P(2,1)**(P(1)>1) , LA 13,+(F$AD 1,2)
          DO        (1-P(2,1))**(P(1)>1) , DL 13,+(F$AD 1,2)
          DO        P(1)>0 , LA,14 12,P(1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
F$TIM*    NAME      FTIME$              HH:MM:SS
F$TIME*   NAME      FTIME$              HH:MM:SS
F$DAY1*   NAME      FDAY1$              MM/DD/YY
F$DAY2*   NAME      FDAY2$              DD MMM YY
F$DAY3*   NAME      FDAY3$              MONTH DD, YEAR
F$DAY4*   NAME      FDAY4$              YYYYMMDD
F$DAY5*   NAME      FDAY5$              YYMMDD
F$DAYW*   NAME      FDAYW$              WEEKDAY
F$TIM1*   NAME      FTIM1$              HH:MM:SS XM
F$TIME1*  NAME      FTIM1$              HH:MM:SS XM
          DO        P(1)>0 , LA,P(1,3) 12,+(F$AD 1,1)
          LMJ       11,P(0,0)
          END

P         PROC      0,2
F$TD*     NAME      FTIME$              HH:MM:SS
F$DAT1*   NAME      FDAY1$              MM/DD/YY
F$DAT2*   NAME      FDAY2$              DD MMM YY
F$DAT3*   NAME      FDAY3$              MONTH DD, YEAR
F$DAT4*   NAME      FDAY4$              YYYYMMDD
F$DAT5*   NAME      FDAY5$              YYMMDD
F$DATW*   NAME      FDAYW$              WEEKDAY
F$TD1*    NAME      FTIM1$              HH:MM:SS XM
          TDATE$
          LMJ       11,P(0,0)
          END

F$AD*     PROC      1,1        COMPUTE GENERALIZED ADDRESS
S         EQU       F$AD(1,1)
T         EQU       F$AD(1,2)
          +(I$      0,0,0,P(S,T+1),2*P(S,*T+1)+P(S,*T),P(S,T))
          END


P         PROC      1,1
F$FW*     NAME      1                   GENERATE FORM WORD
I         DO        P(1) ,F(1) EQU (F(1)*/P(1,I))++(1*/(P(1,I)-1))
          +         F(1)
          END




.         PROCEDURES FOR FDIT$S AND FDIT$U

P         PROC      1,2
V02$*     NAME
          LXI,14    11,P(1,1)
          J         V02$
          END

P         PROC      1,2
V0123$*   NAME
          LXI,14    11,P(1,1)
          J         V0123$
          END


P         PROC      *0
V$POS3*   NAME      VPOS3$              POSITION BEFORE NEXT NON-BLANK CHARACTER
V$POS4*   NAME      VPOS4$              POSITION AFTER NEXT NON-BLANK CHARACTER
V$CHAR*   NAME      VCHAR$              A0 = 1 CHARACTER
V$LOOK*   NAME      VLOOK$              LOOK AT NEXT CHAR, POINTER UNTOUCHED
V$I*      NAME      VI$                 A0(A1) = INTEGER
V$DI*     NAME      VDI$                A0(A1) = DECIMAL INTEGER
V$OI*     NAME      VOI$                A0(A1) = OCTAL INTEGER
V$HI*     NAME      VHI$                A0,A1 = HEXADECIMAL INTEGER
          LMJ       11,P(0,0)
          END

P         PROC      *1
V$POS1*   NAME      VPOS1$              POSITION BEFORE CHARACTER IN A0
V$POS2*   NAME      VPOS2$              POSITION AFTER CHARACTER IN A0
          DO        P(1)>0 , LA,14 12,P(1,1)-(P(0,*0)=1)
          LMJ       11,P(0,0)
          END

P         PROC      *0
V$FP*     NAME      VFP$                FLOATING POINT UNEDIT
V$FP2*    NAME      VFP2$               DOUBLE PRECISION ENTRY
V$N*      NAME      VN$                 ANY TYPE WHATSOEVER
          LMJ       11,P(0,0)
          END