. 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