.         ADIT$ EDITING PACKAGE

.         PROCEDURES FOR BDIT$



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

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

P         PROC      *1
B$DT*     NAME      BDT$                BLANK AND ZERO COLUMN
B$DTZ*    NAME      BDTZ$               ZERO COLUMN
          LMJ       11,P(0,0)
          DO        P(1)>0 , B$MSGC P(1,1)
          END

P         PROC      *1
B$DT1*    NAME      BDT1$               NEW ADDRESS, BLANK, AND ZERO COLUMN
B$DTZ1*   NAME      BDTZ1$              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
B$CHAR*   NAME      BCHAR$              EDIT A CHARACTER
B$QCHR*   NAME      BQCHR$              ASCII QUARTER CHARACTER
B$COL*    NAME      BCOL$               POSITION TO A COLUMN
B$SKIP*   NAME      BSKIP$              SKIP AN AREA
B$FCHR*   NAME      BFCHR$              FIELDATA CHARACTER
B$SCHR*   NAME      BSCHR$              ASCII SIXTH CHARACTER
B$MSGC*   NAME      BMSGC$              STORE NEW BMSG$ CHARACTER
          DO        P(1)>1 , LA,15*(P(1)<3)+P(1,3) 12,+(B$AD 1,1)
          DO        P(1)=1 , LA,15 12,P(1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
B$OCTV*   NAME      BOCTV$              VARIABLE LENGTH OCTAL
B$DECV*   NAME      BDECV$              VARIABLE LENGTH DECIMAL
B$FD1*    NAME      BFD1$               ONE WORD FIELDATA
B$FD3*    NAME      BFD3$               FIELDATA
B$FD5*    NAME      BFD5$               FIELDATA
B$FI*     NAME      BFI$                I$ FORM
B$FH*     NAME      BFH$                18,18 FORM
B$SW1*    NAME      BSW1$               ASCII SIXTHS
B$SW3*    NAME      BSW3$               ASCII SIXTHS
B$QW1*    NAME      BQW1$               ASCII QUARTERS
B$QW3*    NAME      BQW3$               ASCII QUARTERS
B$HEXV*   NAME      BHEXV$              VARIABLE LENGTH HEXADECIMAL
          DO        P(1)>0 , LA,P(1,3) 12,+(B$AD 1,1)
          LMJ       11,P(0,0)
          END

P         PROC      0,1
B$COLN*   NAME      BCOLN$              COMPUTE COLUMN NUMBER
B$MSGR*   NAME      BMSGR$              RE-ENTER MESSAGE EDITOR
B$QMSR*   NAME      BQMSR$              RE-ENTER QUARTER WORD ASCII MESSAGE EDIT
B$FMSR*   NAME      BFMSR$              RE-ENTER FIELDATA MESSAGE EDITOR
B$LMSR*   NAME      BLMSR$              RE-ENTER MONOCASE ASCII EDITOR
          LMJ       11,P(0,0)
          END

P         PROC      *1
B$FD2*    NAME      BFD2$               TWO WORD FIELDATA
B$FD4*    NAME      BFD4$               FIELDATA
B$FD6*    NAME      BFD6$               FIELDATA
B$SW2*    NAME      BSW2$               ASCII SIXTHS
B$SW4*    NAME      BSW4$               ASCII SIXTHS
B$QW2*    NAME      BQW2$               ASCII QUARTERS
B$QW4*    NAME      BQW4$               ASCII QUARTERS
          DO        P(1)>0 , DL 12,+(B$AD 1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
B$MSG*    NAME      BMSG$               STRING EDIT
B$MSG1*   NAME      BMSG1$              STRING EDIT
B$QMSG*   NAME      BQMSG$              QUARTER WORD ASCII STRING EDIT
B$QMS1*   NAME      BQMS1$              QUARTER WORD ASCII STRING EDIT
B$FMSG*   NAME      BFMSG$              FIELDATA STRING EDIT
B$FMS1*   NAME      BFMS1$              FIELDATA STRING EDIT
B$LMSG*   NAME      BLMSG$              MONOCASE ASCII STRING EDIT
B$LMS1*   NAME      BLMS1$              MONOCASE ASCII STRING EDIT
          DO        P(1)>0 , LA,14*(P(1)<3)+P(1,3) 12,+(B$AD 1,1)
          DO        P(0)>1 , LXI,14*(P(0)<4)+P(0,3) 12,+(B$AD 0,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
B$COPY*   NAME      BCOPY$              STRING COPY ROUTINE
B$PACK*   NAME      BPACK$              STRING COPY WITH PACKING
B$QCOP*   NAME      BQCOP$              QUARTER WORD ASCII STRING COPY
B$QPAC*   NAME      BQPAC$              QUARTER WORD ASCII STRING PACK
B$FCOP*   NAME      BFCOP$              FIELDATA STRING COPY
B$FPAC*   NAME      BFPAC$              FIELDATA STRING PACK
          DO        P(1)>1 , LA,14*(P(1)<4)+P(1,4) 12,+(B$AD 1,2)
          DO        P(0)>1 , LXI,14*(P(0)<4)+P(0,3) 12,+(B$AD 0,1)
          DO        P(1)>0 , LA,14 13,P(1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
B$OCTF*   NAME      BOCTF$              FIXED LENGTH OCTAL EDITOR
B$DECF*   NAME      BDECF$              FIXED LENGTH DECIMAL EDITOR
B$DECZ*   NAME      BDECZ$              FIXED LENGTH LOADING ZERO DECIMAL
B$DCFZ*   NAME      BDCFZ$              FIXED LENGTH LOADING ZERO DECIMAL
B$HEXF*   NAME      BHEXF$              FIXED LENGTH HEXADECIMAL
          DO        P(1)>1 , LA,P(1,4) 12,+(B$AD 1,2)
          DO        P(1)>0 , LA,14 13,P(1,1)
          LMJ       11,P(0,0)
          END

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

P         PROC      *1
B$FLS1*   NAME      BFLS1$            SINGLE PRECISION SCIENTIFIC
B$FLG1*   NAME      BFLG1$            SINGLE PRECISION GENERALIZED FORMAT
B$FLF1*   NAME      BFLF1$            SINGLE PRECISION FIXED FORMAT
B$FLN1*   NAME      BFLN1$            SINGLE NICE EDIT
P(2,1)    EQU       1
B$FLS2*   NAME      BFLS2$            DOUBLE PRECISION SCIENTIFIC
B$FLG2*   NAME      BFLG2$            DOUBLE PRECISION GENERALIZED
B$FLF2*   NAME      BFLF2$            DOUBLE PRECISION FIXED
B$FLN2*   NAME      BFLN2$            DOUBLE NICE EDIT
          DO        P(2,1)**(P(1)>1) , LA 13,+(B$AD 1,2)
          DO        (1-P(2,1))**(P(1)>1) , DL 13,+(B$AD 1,2)
          DO        P(1)>0 , LA,14 12,P(1,1)
          LMJ       11,P(0,0)
          END

P         PROC      *1
B$TIM*    NAME      BTIME$              HH:MM:SS
B$TIME*   NAME      BTIME$              HH:MM:SS
B$DAY1*   NAME      BDAY1$              MM/DD/YY
B$DAY2*   NAME      BDAY2$              DD MMM YY
B$DAY3*   NAME      BDAY3$              MONTH DD, YEAR
B$DAY4*   NAME      BDAY4$              YYYYMMDD
B$DAY5*   NAME      BDAY5$              YYMMDD
B$DAYW*   NAME      BDAYW$              WEEKDAY
B$TIM1*   NAME      BTIM1$              HH:MM:SS XM
B$TIME1*  NAME      BTIME1$             HH:MM:SS XM
          DO        P(1)>0 , LA,P(1,3) 12,+(B$AD 1,1)
          LMJ       11,P(0,0)
          END

P         PROC      0,2
B$TD*     NAME      BTIME$              HH:MM:SS
B$DAT1*   NAME      BDAY1$              MM/DD/YY
B$DAT2*   NAME      BDAY2$              DD MMM YY
B$DAT3*   NAME      BDAY3$              MONTH DD, YEAR
B$DAT4*   NAME      BDAY4$              YYYYMMDD
B$DAT5*   NAME      BDAY5$              YYMMDD
B$DATW*   NAME      BDAYW$              WEEKDAY
B$TD1*    NAME      BTIM1$              HH:MM:SS XM
          TDATE$
          LMJ       11,P(0,0)
          END

B$AD*     PROC      1,1        COMPUTE GENERALIZED ADDRESS
S         EQU       B$AD(1,1)
T         EQU       B$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
B$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 BDIT$S AND BDIT$U

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

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


P         PROC      *0
D$POS3*   NAME      DPOS3$              POSITION BEFORE NEXT NON-BLANK CHARACTER
D$POS4*   NAME      DPOS4$              POSITION AFTER NEXT NON-BLANK CHARACTER
D$CHAR*   NAME      DCHAR$              A0 = 1 CHARACTER
D$LOOK*   NAME      DLOOK$              LOOK AT NEXT CHAR, POINTER UNTOUCHED
D$I*      NAME      DI$                 A0(A1) = INTEGER
D$DI*     NAME      DDI$                A0(A1) = DECIMAL INTEGER
D$OI*     NAME      DOI$                A0(A1) = OCTAL INTEGER
D$HI*     NAME      DHI$                A0,A1 = HEXADECIMAL INTEGER
          LMJ       11,P(0,0)
          END

P         PROC      *1
D$POS1*   NAME      DPOS1$              POSITION BEFORE CHARACTER IN A0
D$POS2*   NAME      DPOS2$              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
D$FP*     NAME      DFP$                FLOATING POINT UNEDIT
D$FP2*    NAME      DFP2$               DOUBLE PRECISION ENTRY
D$N*      NAME      DN$                 ANY TYPE WHATSOEVER
          LMJ       11,P(0,0)
          END