User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:xedit.002

Deck XEDIT Part 002

25 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
03736  M00S03568.xedit   +++|*                B - 2, 6, 7.
03737  M00S03569.xedit   +++|*
03738  M00S03570.xedit   +++|*         CALLS  IEM.
03739  M00S03571.xedit   +++|
03740  M00S03572.xedit   +++|
03741  M00S03573.xedit   +++| CER      ERROR  B2          ISSUE ERROR MESSAGE
03742  M00S03574.xedit   +++|
03743  M00S03575.xedit   +++|*         ENTRY POINT FOR COMMAND ERROR, BUT ISSUED OWN MESSAGE.
03744  M00S03576.xedit   +++|
03745  M00S03577.xedit   +++| CER1     SA2    BATCH       ABORT/ELSE RETURN TO MAIN INPUT
03746  M00S03578.xedit   +++|          SB6    =C* BATCH ABORT - COMMAND ERROR.*
03747  M00S03579.xedit   +++|          NZ     X2,ABT      IF BATCH MODE
03748  M00S03580.xedit   +++|          SA1    INPMODE
03749  M00S03581.xedit   +++|          SB7    -I.DEV      SET DEVICE TO CHECK AGAINST
03750  M00S03582.xedit   +++|          PL     X1,CER2     IF NOT IN INPUT MODE
Line S00001 Modification History
M01 (Added by) xedit7
Seq #  *Modification Id* Act 
----------------------------+
03751  M01S00001.xedit7  +++|          SA5    C.ON        GET CURRENT DEVICE
03752  M01S00002.xedit7  +++|          SB7    -Y.DEV
03753  M01S00003.xedit7  +++|          SB2    X5+B7
03754  M01S00004.xedit7  +++|          ZR     B2,NCL      IF *Y/Z* COMMAND DEVICE
03755  M00S03583.xedit   +++|          SB7    -S.DEV      SET SPECIAL INPUT DEVICE LINE
03756  M00S03584.xedit   +++| CER2     SA5    C.ON        POP STACK AND GET NEXT COMMAND LINE
03757  M00S03585.xedit   +++|          SB2    X5+B7       COMPARE DEVICES
03758  M00S03586.xedit   +++|          MX6    1           PREPARE TO IDLE DEVICE
03759  M00S03587.xedit   +++|          ZR     B2,NCL      IF POPPED TO PROPER DEVICE, EXIT
03760  M00S03588.xedit   +++|          SA5    X5          GET NEW DEVICE
03761  M00S03589.xedit   +++|          SA6    A5          IDLE OLD DEVICE
03762  M00S03590.xedit   +++|          SA2    X5+B1       GET OLD C.STR-1 WORD
03763  M00S03591.xedit   +++|          BX7    X5
03764  M00S03592.xedit   +++|          LX6    X2
03765  M00S03593.xedit   +++|          SA7    C.ON        POP STACK
03766  M00S03594.xedit   +++|          SA6    C.STR-1
03767  M00S03595.xedit   +++|          EQ     CER2        CHECK TO SEE IF AT PRIMARY
03768  M00S03596.xedit   +++| CFF      SPACE  4,20
03769  M00S03597.xedit   +++|**        CFF - COPY FAST FILE.
03770  M00S03598.xedit   +++|*
03771  M00S03599.xedit   +++|*         ENTRY  (CFET) LOADED WITH FILE NAME.
03772  M00S03600.xedit   +++|*                AT LEAST ONE READ STARTED ON *E.IN*.
03773  M00S03601.xedit   +++|*
03774  M00S03602.xedit   +++|*         EXIT   FILE COPIED.
03775  M00S03603.xedit   +++|*                BOTH FILES *NOT BUSY*.
03776  M00S03604.xedit   +++|*
03777  M00S03605.xedit   +++|*         USES   A - 1, 2, 3, 6, 7.
03778  M00S03606.xedit   +++|*                X - 1, 2, 3, 6, 7.
03779  M00S03607.xedit   +++|*
03780  M00S03608.xedit   +++|*         MACROS READ, RECALL, WRITE, WRITEF, WRITER.
03781  M00S03609.xedit   +++|*
03782  M00S03610.xedit   +++|*         COPIES INCOMING EDIT FILE STARTING AT CURRENT BUFFER
03783  M00S03611.xedit   +++|*         POSITION, TO THE FILE NAME WHICH IS IN *CFET*.
03784  M00S03612.xedit   +++|*         NEITHER FILE IS REWOUND BEFORE COPYING.
03785  M00S03613.xedit   +++|*         WARNING, THIS ROUTINE ASSUMES THAT THE BUFFER POINTERS
03786  M00S03614.xedit   +++|*         FOR THE TWO FILES ARE IDENTICAL - THUS USE ONLY ON *E.IN*
03787  M00S03615.xedit   +++|*         AND *CFET*.
03788  M00S03616.xedit   +++|
03789  M00S03617.xedit   +++|
03790  M00S03618.xedit   +++| CFF      PS                 ENTRY/EXIT
03791  M00S03619.xedit   +++|          SA1    E.IN+2      INITIALIZE OUTPUT FET TO AGREE WITH
03792  M00S03620.xedit   +++|          SA2    A1+B1       THE INPUT FET
03793  M00S03621.xedit   +++|          BX6    X1
03794  M00S03622.xedit   +++|          SA3    A1-B1       GET *FIRST*
03795  M00S03623.xedit   +++|          LX7    X2
03796  M00S03624.xedit   +++|          SX3    X3          MASK OUT ADDRESS FIELD OF *FIRST*
03797  M00S03625.xedit   +++|          SA1    A2+B1       GET *LIMIT*
03798  M00S03626.xedit   +++|          SA6    CFET+2
03799  M00S03627.xedit   +++|          SX1    X1          MASK OUT ADDRESS FIELD OF *LIMIT*
03800  M00S03628.xedit   +++|          SA7    A6+B1
03801  M00S03629.xedit   +++|          IX6    X1-X3       BUFFER SIZE (LIMIT-FIRST)
03802  M00S03630.xedit   +++|          SA6    CFFA        SAVE CALCULATED BUFFER SIZE
03803  M00S03631.xedit   +++|          SA3    E.IN        CHECK READ FET STATUS
03804  M00S03632.xedit   +++|          EQ     CFF3        CHECK FOR EOR/EOF/EOI AT ENTRY
03805  M00S03633.xedit   +++|
03806  M00S03634.xedit   +++| CFF1     SA1    CFET+3      GET WRITE FET OUTPUT POINTER
03807  M00S03635.xedit   +++|          BX6    X1
03808  M00S03636.xedit   +++|          SA6    E.IN+3      REFLECT WRITE PROCESSING IN READ FET
03809  M00S03637.xedit   +++|          READ   E.IN        RESTART READ FET
03810  M00S03638.xedit   +++|          RECALL CFET        WAIT FOR *WRITE* TO COMPLETE
03811  M00S03639.xedit   +++| CFF2     SA3    E.IN        SET READ FET STATUS
03812  M00S03640.xedit   +++|          SA1    E.IN+2
03813  M00S03641.xedit   +++|          SA2    CFET+3      INFORM THE TWO FETS ABOUT ACTIVITY
03814  M00S03642.xedit   +++|          BX6    X1          IN THE OTHER FET
03815  M00S03643.xedit   +++|          LX7    X2
03816  M00S03644.xedit   +++|          SA6    A2-B1
03817  M00S03645.xedit   +++|          SA7    A1+B1
03818  M00S03646.xedit   +++| CFF3     LX3    59-0
03819  M00S03647.xedit   +++|          PL     X3,CFF4     IF READ FET BUSY
03820  M00S03648.xedit   +++|          LX3    59-4-59+0
03821  M00S03649.xedit   +++|          NG     X3,CFF6     IF AT EOR/EOF/EOI
03822  M00S03650.xedit   +++|
03823  M00S03651.xedit   +++|*         CALL *CIO* FOR *READ* IF SUFFICIENT SPACE IS IN THE BUFFER.
03824  M00S03652.xedit   +++|
03825  M00S03653.xedit   +++|          IX6    X2-X1       OUT - IN
03826  M00S03654.xedit   +++|          ZR     X6,CFF3.1   IF BUFFER IS EMPTY
03827  M00S03655.xedit   +++|          BX3    X6
03828  M00S03656.xedit   +++|          SA1    CFFA        GET BUFFER SIZE
03829  M00S03657.xedit   +++|          AX3    60          SIGN OF (OUT-IN)
03830  M00S03658.xedit   +++|          BX2    X3*X1       BUFFER SIZE IF (OUT.LT.IN), ELSE 0
03831  M00S03659.xedit   +++|          IX7    X2+X6       SPACE IN BUFFER
03832  M00S03660.xedit   +++|          AX7    7           0 IF .LT. 200B WORDS OF SPACE
03833  M00S03661.xedit   +++|          ZR     X7,CFF4     IF NOT ENOUGH SPACE
03834  M00S03662.xedit   +++| CFF3.1   READ   A3          RESTART THE READ FET
03835  M00S03663.xedit   +++| CFF4     SA3    CFET
03836  M00S03664.xedit   +++|          LX3    59-0
03837  M00S03665.xedit   +++|          PL     X3,CFF5     IF WRITE FET BUSY
03838  M00S03666.xedit   +++|
03839  M00S03667.xedit   +++|*         CALL *CIO* FOR *WRITE* IF SUFFICIENT DATA IS IN THE BUFFER.
03840  M00S03668.xedit   +++|
03841  M00S03669.xedit   +++|          SA1    CFET+2      GET *IN*
03842  M00S03670.xedit   +++|          SA2    A1+B1       GET *OUT*
03843  M00S03671.xedit   +++|          IX6    X1-X2       IN - OUT
03844  M00S03672.xedit   +++|          BX3    X6
03845  M00S03673.xedit   +++|          SA1    CFFA        GET CALCULATED BUFFER SIZE
03846  M00S03674.xedit   +++|          AX3    60          SIGN OF (IN-OUT)
03847  M00S03675.xedit   +++|          BX2    X3*X1       BUFFER SIZE IF (IN.LT.OUT), ELSE 0
03848  M00S03676.xedit   +++|          IX7    X2+X6       AVAILABLE DATA IN BUFFER
03849  M00S03677.xedit   +++|          AX7    7           0 IF .LT. 200B WORDS OF DATA
03850  M00S03678.xedit   +++|          ZR     X7,CFF5     IF NOT ENOUGH DATA AVAILABLE
03851  M00S03679.xedit   +++|          WRITE  CFET        RESTART THE WRITE FET
03852  M00S03680.xedit   +++| CFF5     RECALL             WAIT FOR SOMETHING TO HAPPEN
03853  M00S03681.xedit   +++|          EQ     CFF2        CONTINUE COPY
03854  M00S03682.xedit   +++|
03855  M00S03683.xedit   +++|*         CHECK EOR/EOF/EOI AND PROCESS ACCORDINGLY
03856  M00S03684.xedit   +++|
Line S03685 Modification History
M01 (Removed by) xedit24
Seq #  *Modification Id* Act 
----------------------------+
03857  M01S03685.xedit24 ---| CFF6     LX3    59-3-59+4
Line S00001 Modification History
M01 (Added by) xedit24
Seq #  *Modification Id* Act 
----------------------------+
03858  M01S00001.xedit24 +++| CFF6     SA1    E.IN+2      UPDATE OUTPUT BUFFER POINTER
03859  M01S00002.xedit24 +++|          LX3    59-3-59+4
03860  M01S00003.xedit24 +++|          BX6    X1
03861  M01S00004.xedit24 +++|          SA6    CFET+2
03862  M00S03686.xedit   +++|          NG     X3,CFF7     IF NOT EOR
03863  M00S03687.xedit   +++|          WRITER CFET
03864  M00S03688.xedit   +++|          EQ     CFF1        CONTINUE COPY
03865  M00S03689.xedit   +++|
03866  M00S03690.xedit   +++| CFF7     LX3    59-9-59+3
03867  M00S03691.xedit   +++|          NG     X3,CFF8     IF EOI
03868  M00S03692.xedit   +++|          WRITEF CFET
03869  M00S03693.xedit   +++|          EQ     CFF1        CONTINUE COPY
03870  M00S03694.xedit   +++|
03871  M00S03695.xedit   +++| CFF8     RECALL CFET          WAIT FOR OUTPUT TO SETTLE
03872  M00S03696.xedit   +++|          EQ     CFF         RETURN
03873  M00S03697.xedit   +++|
03874  M00S03698.xedit   +++| CFFA     CON    0           TEMPORARY STORAGE FOR BUFFER SIZE
03875  M00S03699.xedit   +++| CHS      SPACE  4,20
03876  M00S03700.xedit   +++|**        CHS - CHANGE STRING(S).
03877  M00S03701.xedit   +++|*
03878  M00S03702.xedit   +++|*         ENTRY  (A0) = FWA OF SCRATCH BUFFER.
03879  M00S03703.xedit   +++|*                (X0) = LWA+1 OF SCRATCH BUFFER.
03880  M00S03704.xedit   +++|*                (SIGN BIT OF X0 = 1 IF *STRING* MODE).
03881  M00S03705.xedit   +++|*
03882  M00S03706.xedit   +++|*         EXIT   (B5) = 0, IF STRING NOT FOUND.
03883  M00S03707.xedit   +++|*                (X5) = 0, IF TRUNCATION OCCURED.
03884  M00S03708.xedit   +++|*                NEW CHANGED LINE (IF STRING FOUND) IN SCRATCH BUFFER.
03885  M00S03709.xedit   +++|*                THE NEW LINE SHOULD BE RUN THROUGH *TSL*.
03886  M00S03710.xedit   +++|*                B5 SHOULD BE TESTED BEFORE X5.
03887  M00S03711.xedit   +++|*
03888  M00S03712.xedit   +++|*         USES   A - 0, 1, 2, 5, 6.
03889  M00S03713.xedit   +++|*                X - 1, 2, 4, 5, 6.
03890  M00S03714.xedit   +++|*                B - 2, 3, 4, 5, 6, 7.
03891  M00S03715.xedit   +++|*
03892  M00S03716.xedit   +++|*         CALLS  LOC.
03893  M00S03717.xedit   +++|
03894  M00S03718.xedit   +++|
03895  M00S03719.xedit   +++| CHS15    SX5    0           SET TRUNCATION OCCURED
03896  M00S03720.xedit   +++| CHS16    MX6    2           SET END OF LINE IN SCRATCH BUFFER
03897  M00S03721.xedit   +++|          SB5    1           SET STRING FOUND
03898  M00S03722.xedit   +++|          SA6    B6
03899  M00S03723.xedit   +++|
03900  M00S03724.xedit   +++| CHS      PS                 ENTRY/EXIT
03901  M00S03725.xedit   +++|          MX6    0
03902  M00S03726.xedit   +++|          SB4    E.STR-1     SET FIRST SEARCH ADDR
03903  M00S03727.xedit   +++|          SA5    B4+B1
03904  M00S03728.xedit   +++|          SA6    CHSB        COUNT COUNTER (VOID INFINITE LENGTH)
03905  M00S03729.xedit   +++|          RJ     LOC         SEARCH FOR STRING
03906  M00S03730.xedit   +++|          SB6    A0
03907  M00S03731.xedit   +++|          SB3    X0
03908  M00S03732.xedit   +++|          SA1    LOC+1
03909  M00S03733.xedit   +++|          ZR     B5,CHS      IF STRING NOT FOUND, RETURN
03910  M00S03734.xedit   +++|          SB7    X1+         IF C//STR/ FORM, 0
03911  M00S03735.xedit   +++|
03912  M00S03736.xedit   +++|*         COPY TO SCRATCH THAT PORTION OF LINE BEFORE MATCH.
03913  M00S03737.xedit   +++|
03914  M00S03738.xedit   +++| CHS1     SB2    A5
03915  M00S03739.xedit   +++|          SX4    B1
03916  M00S03740.xedit   +++|          GE     B2,B4,CHS5  IF ALREADY AT START OF MATCH
03917  M00S03741.xedit   +++| CHS2     PL     X5,CHS3     IF NOT AT END OF EDIT LINE
03918  M00S03742.xedit   +++|          SA5    CHSA        SET TO BLANK(SPECIAL CASE)
03919  M00S03743.xedit   +++| CHS3     LT     B6,B3,CHS4  IF NOT FULL SCRATCH BUFFER
03920  M00S03744.xedit   +++|          SX4    X5-1R
03921  M00S03745.xedit   +++|          NZ     X4,CHS15    IF TRUNCATION
03922  M00S03746.xedit   +++| CHS4     BX6    X5
03923  M00S03747.xedit   +++|          SB2    B2+B1       STEP A5 VALUE
03924  M00S03748.xedit   +++|          SA6    B6
03925  M00S03749.xedit   +++|          SA5    A5+B1
03926  M00S03750.xedit   +++|          SB6    B6+X4       CONDITIONALLY INCREMENT SCRATCH POINTER
03927  M00S03751.xedit   +++|          LT     B2,B4,CHS2  IF MORE TO COPY
03928  M00S03752.xedit   +++|
03929  M00S03753.xedit   +++|*         COPY TO SCRATCH THE NEW STRING, PREPARE FOR NEXT SEARCH.
03930  M00S03754.xedit   +++|
03931  M00S03755.xedit   +++| CHS5     SB4    B5-B1       SET TO SKIP MATCHED STRING
03932  M00S03756.xedit   +++|          NG     X5,CHS6     IF AT END OF EDIT LINE (REMAIN THERE)
03933  M00S03757.xedit   +++|          NG     X5,CHS14    IF AT END OF LINE
03934  M00S03758.xedit   +++|
03935  M00S03759.xedit   +++|*         RESET TO AFTER MATCHED STRING, NEVER PAST EOL CHARACTER.
03936  M00S03760.xedit   +++|
03937  M00S03761.xedit   +++|          SA5    B5
03938  M00S03762.xedit   +++| CHS6     SA2    P3RP
03939  M00S03763.xedit   +++|          SA1    A2-B1       P3LP
03940  M00S03764.xedit   +++|          ZR     X2,CHS9     IF NO STRING FOR REPLACEMENT
03941  M00S03765.xedit   +++|          SB2    X1
03942  M00S03766.xedit   +++|          SB5    X2
03943  M00S03767.xedit   +++|          GE     B2,B5,CHS9  IF NO STRING (NULL)
03944  M00S03768.xedit   +++|          SA1    B2
03945  M00S03769.xedit   +++| CHS7     BX6    X1
03946  M00S03770.xedit   +++|          SB2    B2+B1
03947  M00S03771.xedit   +++|          LT     B6,B3,CHS8  IF END OF SCRATCH BUFFER
03948  M00S03772.xedit   +++|          SX4    X1-1R
03949  M00S03773.xedit   +++|          NZ     X4,CHS15    IF TRUNCATION
03950  M00S03774.xedit   +++| CHS8     SA6    B6+
03951  M00S03775.xedit   +++|          SB6    B6+X4       CONDITIONALLY INCREMENT SCRATCH POINTER
03952  M00S03776.xedit   +++|          SA1    B2
03953  M00S03777.xedit   +++|          LT     B2,B5,CHS7  IF MORE TO TRANSFER
03954  M00S03778.xedit   +++|
03955  M00S03779.xedit   +++|*         READY TO LOOK FOR NEXT STRING.
03956  M00S03780.xedit   +++|
03957  M00S03781.xedit   +++| CHS9     SA0    B6          UPDATE A0
03958  M00S03782.xedit   +++|          NG     X0,CHS13    IF STRING MODE
03959  M00S03783.xedit   +++| CHS10    ZR     B7,CHS11    IF C//STR/ OPTION
03960  M00S03784.xedit   +++|          RJ     LOC         CHECK FOR NEXT MATCH
03961  M00S03785.xedit   +++|          SB6    A0
03962  M00S03786.xedit   +++|          SB3    X0
03963  M00S03787.xedit   +++|          SA1    CHSB
03964  M00S03788.xedit   +++|          SB7    B1          SET NOT C//STR/ OPTION
03965  M00S03789.xedit   +++|          SX6    X1+B1
03966  M00S03790.xedit   +++|          AX1    9
03967  M00S03791.xedit   +++|          SA6    A1
03968  M00S03792.xedit   +++|          NZ     X1,CHS10.1  IF IN INFINITE LOOP
03969  M00S03793.xedit   +++|          NZ     B5,CHS1     IF MATCH FOUND
03970  M00S03794.xedit   +++| CHS10.1  SX4    1           RESET (X4)
03971  M00S03795.xedit   +++|
03972  M00S03796.xedit   +++|*         COPY REMAINDER OF LINE TO SCRATCH.
03973  M00S03797.xedit   +++|
03974  M00S03798.xedit   +++| CHS11    NG     X5,CHS16    IF FINISHED
03975  M00S03799.xedit   +++|          LT     B6,B3,CHS12 IF END OF SCRATCH BUFFER
03976  M00S03800.xedit   +++|          SX4    X5-1R
03977  M00S03801.xedit   +++|          NZ     X4,CHS15    IF TRUNCATION
03978  M00S03802.xedit   +++| CHS12    BX6    X5
03979  M00S03803.xedit   +++|          SA6    B6
03980  M00S03804.xedit   +++|          SA5    A5+B1
03981  M00S03805.xedit   +++|          SB6    B6+X4
03982  M00S03806.xedit   +++|          EQ     CHS11       CONTINUE COPY
03983  M00S03807.xedit   +++|
03984  M00S03808.xedit   +++|*         STRING MODE - CHECK TO SEE IF FINISHED.
03985  M00S03809.xedit   +++|
03986  M00S03810.xedit   +++| CHS13    SA1    NUMS
Line S03811 Modification History
M01 (Removed by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
03987  M01S03811.xedit21 ---|          SX6    X1-1
Line S00064 Modification History
M01 (Added by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
03988  M01S00064.xedit21 +++|          SX6    B1
03989  M01S00065.xedit21 +++|          IX6    X1-X6
03990  M00S03812.xedit   +++|          AX1    1
03991  M00S03813.xedit   +++|          SA6    A1
03992  M00S03814.xedit   +++|          NZ     X1,CHS10    IF MORE STRINGS
03993  M00S03815.xedit   +++|          EQ     CHS11       COPY REST OF LINE
03994  M00S03816.xedit   +++|
03995  M00S03817.xedit   +++|*         CHECK FOR ANY INFINITE LOOPS
03996  M00S03818.xedit   +++|
03997  M00S03819.xedit   +++| CHS14    SA1    CHSB
03998  M00S03820.xedit   +++|          SX6    X1+B1
03999  M00S03821.xedit   +++|          SA6    A1
04000  M00S03822.xedit   +++|          AX1    9
04001  M00S03823.xedit   +++|          ZR     X1,CHS6     IF NOT INFINITE
04002  M00S03824.xedit   +++|          EQ     CHS         RETURN
04003  M00S03825.xedit   +++|
04004  M00S03826.xedit   +++| CHSA     DATA   1R          SPECIAL CASE HANDLING
04005  M00S03827.xedit   +++|          VFD    2/-0,*P/
04006  M00S03828.xedit   +++| CHSB     BSS    1           INFINITE LOOP KLUDGE
04007  M00S03829.xedit   +++| ETL      SPACE  4,20
04008  M00S03830.xedit   +++|**        ETL - ECHO TEXT LINE.
04009  M00S03831.xedit   +++|*
04010  M00S03832.xedit   +++|*         ENTRY  (A1) = FWA OF TEXT LINE.
04011  M00S03833.xedit   +++|*                (X1) = TEXT.
04012  M00S03834.xedit   +++|*                (X3) = PREFIX DEFINITIONS (SEE ETLA FOR EXAMPLE).
04013  M00S03835.xedit   +++|*
04014  M00S03836.xedit   +++|*         EXIT   DESIRED TEXT LINE ECHOED AFTER INSERTING UP
04015  M00S03837.xedit   +++|*                TO NINE LEADING CHARACTERS.
04016  M00S03838.xedit   +++|*
04017  M00S03839.xedit   +++|*         USES   A - 1, 6, 7.
04018  M00S03840.xedit   +++|*                X - 1, 2, 3, 4, 6 ,7.
04019  M00S03841.xedit   +++|*                B - 2.
04020  M00S03842.xedit   +++|*                E.SCR.
04021  M00S03843.xedit   +++|*
04022  M00S03844.xedit   +++|*         MACROS WRITEC.
04023  M00S03845.xedit   +++|
04024  M00S03846.xedit   +++|
04025  M00S03847.xedit   +++| ETL1     BX6    -X4*X1      GET END OF LINE BYTE
04026  M00S03848.xedit   +++|          LX1    B2          SHIFT WORD
04027  M00S03849.xedit   +++|          BX7    -X2*X1
04028  M00S03850.xedit   +++|          IX7    X7+X3
04029  M00S03851.xedit   +++|          BX3    X2*X1
04030  M00S03852.xedit   +++|          SA7    A7+1        SAVE NEXT WORD
04031  M00S03853.xedit   +++|          SA1    A1+B1       READ AHEAD TO NEXT
04032  M00S03854.xedit   +++|          NZ     X6,ETL1     IF NOT END OF LINE
04033  M00S03855.xedit   +++|          BX7    X3
04034  M00S03856.xedit   +++|          SA7    A7+B1
04035  M00S03857.xedit   +++|          SA6    A7+B1       INSURE PROPER END OF LINE BYTE
04036  M00S03858.xedit   +++|          WRITEC OUTPUT,E.SCR+1
04037  M00S03859.xedit   +++|
04038  M00S03860.xedit   +++| ETL      PS                 ENTRY/EXIT
04039  M00S03861.xedit   +++|          MX2    1
04040  M00S03862.xedit   +++|          SB2    X3          GET SHIFT COUNT-1
04041  M00S03863.xedit   +++|          SA7    E.SCR
04042  M00S03864.xedit   +++|          AX2    B2          EXTEND MASK
04043  M00S03865.xedit   +++|          SB2    B2-59
04044  M00S03866.xedit   +++|          BX3    X2*X3       CLEAR SHIFT COUNT
04045  M00S03867.xedit   +++|          MX4    -12
04046  M00S03868.xedit   +++|          SB2    -B2
04047  M00S03869.xedit   +++|          EQ     ETL1        WRITE TEXT
04048  M00S03870.xedit   +++|
04049  M00S03871.xedit   +++| ETLA     CHAR   (VFD 6/0),QM.  DATA LINE PROMPT
04050  M00S03872.xedit   +++|          VFD    6/1R ,*P/11
04051  M00S03873.xedit   +++| ETLB     CHAR   (VFD 6/0),QM.  COMMAND LINE PROMPT
04052  M00S03874.xedit   +++|          CHAR   (VFD 6/0),QM.
04053  M00S03875.xedit   +++|          VFD    6/1R ,*P/17
04054  M00S03876.xedit   +++|
04055  M00S03877.xedit   +++| ETL      RMT                REMOTE FOR BATCH ORIGIN
04056  M00S03878.xedit   +++|          CHAR   (VFD 12/1L ),QM.
04057  M00S03879.xedit   +++|          VFD    6/1R ,*P/17
04058  M00S03880.xedit   +++|          CHAR   (VFD 12/1L ),QM.
04059  M00S03881.xedit   +++|          CHAR   (VFD 6/0),QM.
04060  M00S03882.xedit   +++|          VFD    6/1R ,*P/23D
04061  M00S03883.xedit   +++|          RMT
04062  M00S03884.xedit   +++| EXT      SPACE  4,15
04063  M00S03885.xedit   +++|**        EXT - EXIT XEDIT.
04064  M00S03886.xedit   +++|*
04065  M00S03887.xedit   +++|*         ENTRY  (EXTA) = EXIT CODE.
04066  M00S03888.xedit   +++|*
04067  M00S03889.xedit   +++|*         EXIT   PROGRAM TERMINATED.
04068  M00S03890.xedit   +++|*
04069  M00S03891.xedit   +++|*         USES   A - 0, 1, 2, 4, 5.
04070  M00S03892.xedit   +++|*                X - 0, 1, 2, 3, 4, 5, 6.
04071  M00S03893.xedit   +++|*
04072  M00S03894.xedit   +++|*         MACROS CSET, DISTC, MESSAGE, RETURN, REWIND, WRITEO, WRITER.
04073  M00S03895.xedit   +++|*
04074  M00S03896.xedit   +++|*         NOTES  ROUTINE RETURNS SCRATCH FILES (SCRA-SCRG),
04075  M00S03897.xedit   +++|*                TURNS OFF ASCII MODE (IF *AS* PARAMETER USED)
04076  M00S03898.xedit   +++|*                AND DOES OTHER HOUSEKEEPING.
04077  M00S03899.xedit   +++|
04078  M00S03900.xedit   +++|
04079  M00S03901.xedit   +++| EXT      SA1    COPY
04080  M00S03902.xedit   +++|          ZR     X1,EXT1     IF NO COPY FILE
04081  M00S03903.xedit   +++|          WRITER FTD,RECALL  CLOSE COPY FILE
04082  M00S03904.xedit   +++|          REWIND X2
04083  M00S03905.xedit   +++| EXT1     MX0    3
04084  M00S03906.xedit   +++|          SA0    FTD         SET FIRST FET TO LOOK AT
04085  M00S03907.xedit   +++|          LX0    -21D        POSITION A-G MASK
04086  M00S03908.xedit   +++|          SA5    =0LSCR
04087  M00S03909.xedit   +++| EXT2     SA4    A0          GET FILE NAME
04088  M00S03910.xedit   +++|          BX2    X4-X5       COMPARE NAMES
04089  M00S03911.xedit   +++|          BX1    -X0*X4      CLEAR A-G BITS
04090  M00S03912.xedit   +++|          AX2    18
04091  M00S03913.xedit   +++|          ZR     X2,EXT3     IF NAME IS *SCR* (NOT ONE OF XEDIT,S)
04092  M00S03914.xedit   +++|          BX1    X1-X5
04093  M00S03915.xedit   +++|          AX1    18
04094  M00S03916.xedit   +++|          NZ     X1,EXT3     IF NOT SRCA-SRCG
04095  M00S03917.xedit   +++|          RETURN A0
04096  M00S03918.xedit   +++| EXT3     SA0    A0+7        STEP TO NEXT FET
04097  M00S03919.xedit   +++|          SX3    A0-LFET
04098  M00S03920.xedit   +++|          NG     X3,EXT2     IF SCAN NEXT FET
04099  M00S03921.xedit   +++|
04100  M00S03922.xedit   +++|*         CLEAN UP TELEX SPECIAL STATUS.
04101  M00S03923.xedit   +++|
04102  M00S03924.xedit   +++|          SA2    PROMPT
04103  M00S03925.xedit   +++|          ZR     X2,EXT4     IF DISTC NOT ON
04104  M00S03926.xedit   +++|          SX6    B1
04105  M00S03927.xedit   +++|          LX6    48          0001 BYTE
04106  M00S03928.xedit   +++|          WRITEO OUTPUT
04107  M00S03929.xedit   +++|          DISTC  OFF
Line S03930 Modification History
M01 (Removed by) xedit12
Seq #  *Modification Id* Act 
----------------------------+
04108  M01S03930.xedit12 ---| EXT4     SA2    AS
Line S00008 Modification History
M01 (Added by) xedit12
Seq #  *Modification Id* Act 
----------------------------+
04109  M01S00008.xedit12 +++| EXT4     SA1    OUTPUT+2
04110  M01S00009.xedit12 +++|          SA2    A1+B1
04111  M01S00010.xedit12 +++|          IX2    X2-X1       COMPARE *IN* AND *OUT*
04112  M01S00011.xedit12 +++|          ZR     X2,EXT5     IF NOTHING IN BUFFER TO FLUSH
04113  M01S00012.xedit12 +++|          WRITER OUTPUT,R    FLUSH BUFFER (WITH RECALL)
04114  M01S00013.xedit12 +++| EXT5     SA2    AS
04115  M00S03931.xedit   +++|          SX2    X2-3RASC
Line S03932 Modification History
M01 (Removed by) xedit12
Seq #  *Modification Id* Act 
----------------------------+
04116  M01S03932.xedit12 ---|          NZ     X2,EXT5     IF NOT SPECIAL ASCII MODE
04117  M01S03933.xedit12 ---|          CSET   RESTORE
04118  M01S03934.xedit12 ---| EXT5     MESSAGE  (=0),1    CLEAR MESSAGE
04119  M01S03935.xedit12 ---|          SA1    OUTPUT+2
04120  M01S03936.xedit12 ---|          SA2    A1+B1
04121  M01S03937.xedit12 ---|          IX2    X2-X1       COMPARE *IN* AND *OUT*
04122  M01S03938.xedit12 ---|          ZR     X2,EXT6     IF NOTHING IN BUFFER TO FLUSH
04123  M01S03939.xedit12 ---|          WRITER OUTPUT      FLUSH BUFFER
04124  M01S03940.xedit12 ---| EXT6     SA1    EXTA
Line S00014 Modification History
M01 (Added by) xedit12
Seq #  *Modification Id* Act 
----------------------------+
04125  M01S00014.xedit12 +++|          NZ     X2,EXT6     IF NOT SPECIAL ASCII MODE
04126  M01S00015.xedit12 +++|          CSET   RESTORE     RESTORE INITIAL MODE
04127  M01S00016.xedit12 +++| EXT6     RJ     FNL         ISSUE DAYFILE MESSAGE
04128  M01S00017.xedit12 +++|          MESSAGE  (=0),1    CLEAR MESSAGE BUFFER
04129  M01S00018.xedit12 +++|          SA1    EXTA
04130  M00S03941.xedit   +++|          NG     X1,EXT7     IF ABORT XEDIT
04131  M00S03942.xedit   +++|          ENDRUN             END XEDIT
04132  M00S03943.xedit   +++|
04133  M00S03944.xedit   +++| EXT7     ABORT              ABORT     XEDIT
04134  M00S03945.xedit   +++|
04135  M00S03946.xedit   +++| GFN      SPACE  4,20
04136  M00S03947.xedit   +++|**        GFN - GET FILE NAME.
04137  M00S03948.xedit   +++|*
04138  M00S03949.xedit   +++|*         ENTRY  (A5) = ADDRESS OF PRESET CHARACTER.
04139  M00S03950.xedit   +++|*                (X5) = PRESET CHARACTER.
04140  M00S03951.xedit   +++|*
04141  M00S03952.xedit   +++|*         EXIT   (X6) = FILE NAME IF .NE. 0.
04142  M00S03953.xedit   +++|*                     = 0, IF RESERVED OR BAD (NOT INCLUDING SPECIAL).
04143  M00S03954.xedit   +++|*                (A1) = ADDRESS OF SPECIAL NAME ENTRY (IF SPECIAL).
04144  M00S03955.xedit   +++|*                       0, THEN NULL.
04145  M00S03956.xedit   +++|*                       1, THEN OUTPUT.
04146  M00S03957.xedit   +++|*                (X1) = NON-ZERO IF SPECIAL, RESERVED OR BAD NAME.
04147  M00S03958.xedit   +++|*                (B4) = 0, IF TOO MANY CHARACTERS IN THE FILE NAME.
04148  M00S03959.xedit   +++|*                     = 1, IF SPECIAL CHARACTERS IN THE FILE NAME.
04149  M00S03960.xedit   +++|*                (B6) = ERROR MESSAGE ORDINAL (IF ERROR).
04150  M00S03961.xedit   +++|*                (A5) = ADDRESS OF NEXT NON-BLANK OR SECOND COMMA.
04151  M00S03962.xedit   +++|*                (X5) = NEXT NON-BLANK CHARACTER OR SECOND COMMA.
04152  M00S03963.xedit   +++|*
04153  M00S03964.xedit   +++|*         USES   A - 1, 5.
04154  M00S03965.xedit   +++|*                X - 1, 3, 4, 5, 6, 7.
04155  M00S03966.xedit   +++|*                B - 4, 6.
04156  M00S03967.xedit   +++|
04157  M00S03968.xedit   +++|
04158  M00S03969.xedit   +++| GFN7     NG     X5,GFN8     IF AT END OF LINE
04159  M00S03970.xedit   +++|          SB4    X5-1R
04160  M00S03971.xedit   +++|          ZR     B4,GFN8     IF BLANK
04161  M00S03972.xedit   +++|          NE     B4,B1,GFN3.1  IF SPECIAL CHARACTER
04162  M00S03973.xedit   +++| GFN8     LX6    6
04163  M00S03974.xedit   +++|          PL     X6,GFN8     IF NOT LEFT JUSTIFIED
04164  M00S03975.xedit   +++|          BX7    X7-X7       SET NO COMMA FOUND
04165  M00S03976.xedit   +++| GFN9     SX4    X5-1R
04166  M00S03977.xedit   +++|          ZR     X4,GFN10    IF BLANK CHARACTER
04167  M00S03978.xedit   +++|          SX4    X5-1R,
04168  M00S03979.xedit   +++|          NZ     X4,GFN11    IF NOT COMMA
04169  M00S03980.xedit   +++|          NZ     X7,GFN11    IF 2ND COMMA
04170  M00S03981.xedit   +++|          SX7    1           SET COMMA ENCOUNTERED
04171  M00S03982.xedit   +++| GFN10    SA5    A5+1
04172  M00S03983.xedit   +++|          PL     X5,GFN9     IF NOT END OF LINE
04173  M00S03984.xedit   +++| GFN11    MX7    1           REMOVE POSITION BIT
04174  M00S03985.xedit   +++|          BX6    -X7*X6
04175  M00S03986.xedit   +++|          SB6    B0          INDICATE NO ERROR
04176  M00S03987.xedit   +++|          LX6    12          LEFT JUSTIFY NAME
04177  M00S03988.xedit   +++|          SA1    GFNA-1      PRESET TO LIST OF RESERVED NAMES
04178  M00S03989.xedit   +++|          ZR     X6,GFN6     IF NO FILE NAME
04179  M00S03990.xedit   +++| GFN12    SA1    A1+B1
04180  M00S03991.xedit   +++|          ZR     X1,GFN      IF END OF LIST
04181  M00S03992.xedit   +++|          BX3    X6-X1
04182  M00S03993.xedit   +++|          AX4    B1,X3
04183  M00S03994.xedit   +++|          NZ     X4,GFN12    IF NOT THIS FILE NAME
04184  M00S03995.xedit   +++|          LX3    -1
04185  M00S03996.xedit   +++|          AX3    59
04186  M00S03997.xedit   +++|          BX6    X3*X6       IF BAD, WILL ZERO - ELSE LEAVE IT ALONE
04187  M00S03998.xedit   +++|          SB6    BFN.*100B+3 SET -RESERVED FILE NAME-
04188  M00S03999.xedit   +++|
04189  M00S04000.xedit   +++| GFN      PS                 ENTRY/EXIT
04190  M00S04001.xedit   +++|          BX6    X6-X6       CLEAR ASSEMBLY
04191  M00S04002.xedit   +++|          SB6    B0          SET NO ERROR (END OF LINE)
04192  M00S04003.xedit   +++|          NG     X5,GFN6     IF END OF LINE
04193  M00S04004.xedit   +++|          SX6    4000B       SET POSITION INDICATOR
04194  M00S04005.xedit   +++| GFN1     ZR     X5,GFN4     IF BAD FILE NAME
04195  M00S04006.xedit   +++|          SX4    X5-1R9-1
04196  M00S04007.xedit   +++| GFN2     PL     X4,GFN3     IF NOT ALPHANUMERIC
04197  M00S04008.xedit   +++|          LX6    6
04198  M00S04009.xedit   +++|          BX6    X6+X5
04199  M00S04010.xedit   +++|          NG     X6,GFN3.2   IF TOO MANY CHARACTERS
04200  M00S04011.xedit   +++|          SA5    A5+1
04201  M00S04012.xedit   +++|          PL     X5,GFN1     IF NOT END OF LINE
04202  M00S04013.xedit   +++|          EQ     GFN7        GET FILE NAME
04203  M00S04014.xedit   +++|
04204  M00S04015.xedit   +++| GFN3     SX3    X5-7601B
04205  M00S04016.xedit   +++|          NG     X3,GFN7     IF LESS THAN 7601B
04206  M00S04017.xedit   +++|          SX4    X3-1RZ
04207  M00S04018.xedit   +++|          PL     X4,GFN7     IF .GT. LOWER CASE Z
04208  M00S04019.xedit   +++|          SX5    X3+B1       GET LOWER CASE LETTER
04209  M00S04020.xedit   +++|          EQ     GFN2        TEST CHARACTER
04210  M00S04021.xedit   +++|
04211  M00S04022.xedit   +++|*         BAD FILE NAME PROCESSING.
04212  M00S04023.xedit   +++|
04213  M00S04024.xedit   +++| GFN3.1   SB4    B1+
04214  M00S04025.xedit   +++|          EQ     GFN4        PROCESS BAD FILE ERROR
04215  M00S04026.xedit   +++|
04216  M00S04027.xedit   +++| GFN3.2   SB4    B0+
04217  M00S04028.xedit   +++| GFN4     SB6    BFN.*100B+1 SET -BAD FILE NAME-
04218  M00S04029.xedit   +++| GFN5     SX6    B0          CLEAR FILE NAME
04219  M00S04030.xedit   +++|          MX1    1           SET ERROR FLAG
04220  M00S04031.xedit   +++|          EQ     GFN         RETURN
04221  M00S04032.xedit   +++|
04222  M00S04033.xedit   +++| GFN6     SB6    BFN.*100B+2 SET -NO FILE NAME-
04223  M00S04034.xedit   +++|          EQ     GFN5        CLEAR FILE NAME
04224  M00S04035.xedit   +++|
04225  M00S04036.xedit   +++|*         RESERVED FILE NAMES.
04226  M00S04037.xedit   +++|
04227  M00S04038.xedit   +++| GFNA     DATA   0LSCRA,0LSCRB,0LSCRC,0LSCRD,5LINPUT
04228  M00S04039.xedit   +++|          DATA   0LSCRE,0LSCRF,0LSCRG
04229  M00S04040.xedit   +++|
04230  M00S04041.xedit   +++|*         FILES REQUIRING SPECIAL HANDLING.
04231  M00S04042.xedit   +++|
04232  M00S04043.xedit   +++| GFNB     CON    4LNULL+1
04233  M00S04044.xedit   +++|          CON    6LOUTPUT+1
04234  M00S04045.xedit   +++| GFNBL    EQU    *-GFNB      NUMBER OF SPECIAL NAMES
04235  M00S04046.xedit   +++|          DATA   0           END MARKER
04236  M00S04047.xedit   +++| GLN      SPACE  4,30
04237  M00S04048.xedit   +++|**        GLN - GET LINE NUMBER (ADVANCE TO IT).
04238  M00S04049.xedit   +++|*
04239  M00S04050.xedit   +++|*         ENTRY  (X1) = LINE NUMBER TO FIND.
04240  M00S04051.xedit   +++|*                       IF SIGN BIT SET, THEN ASSUMED CALLED FROM *MPR*
04241  M00S04052.xedit   +++|*                       WHICH IMPLIES-
04242  M00S04053.xedit   +++|*                       1. THAT THE VERIFY FLAG IS ALREADY SET UP.
04243  M00S04054.xedit   +++|*                       2. THAT X1 CONTAINS THE ABSOLUTE LINE POSITION.
04244  M00S04055.xedit   +++|*                       3. THAT THE FILE IS ALREADY REWOUND IF NEEDED.
04245  M00S04056.xedit   +++|*
04246  M00S04057.xedit   +++|*         EXIT   (X6) = 0 IF LINE NUMBER FOUND.
04247  M00S04058.xedit   +++|*
04248  M00S04059.xedit   +++|*         USES   A - 1, 2, 6, 7.
04249  M00S04060.xedit   +++|*                X - 1, 2, 3, 6, 7.
04250  M00S04061.xedit   +++|*
04251  M00S04062.xedit   +++|*         CALLS  RDF, TOP, WTF.
04252  M00S04063.xedit   +++|*
04253  M00S04064.xedit   +++|*         ROUTINE WILL REWIND THE FILE IF THE LINE NUMBER LIES
04254  M00S04065.xedit   +++|*         BEFORE THE CURRENT POINTER POSITION. IF THE USER
04255  M00S04066.xedit   +++|*         IS IN *WHERE* MODE, THIS ROUTINE WILL POSITION
04256  M00S04067.xedit   +++|*         THE FILE TO THE SPECIFIED LINE.
04257  M00S04068.xedit   +++|*
04258  M00S04069.xedit   +++|*         NOTES  UNLESS CALLED FROM *MPR*, THIS ROUTINE WILL
04259  M00S04070.xedit   +++|*         AUTOMATICALLY CANCEL THE VERIFICATION OF EOR/EOF,S
04260  M00S04071.xedit   +++|*         IF THE FILE NEEDS TO BE RESET. THIS IS DONE BY
04261  M00S04072.xedit   +++|*         SHIFTING *VERIFY* RIGHT AND THEN CLEARING THE SIGN
04262  M00S04073.xedit   +++|*         BIT (VERIFY OFF) - WHEN EXITING *GLN*, BIT 58 IS
04263  M00S04074.xedit   +++|*         SHIFTED TO BIT 59 (RESTORING PREVIOUS VERIFICATION).
04264  M00S04075.xedit   +++|*
04265  M00S04076.xedit   +++|
04266  M00S04077.xedit   +++|
04267  M00S04078.xedit   +++| GLN9     SA1    VERIFY      RESTORE OLD VERIFICATION STATUS
04268  M00S04079.xedit   +++|          LX7    B1,X1
04269  M00S04080.xedit   +++|          SA7    A1
04270  M00S04081.xedit   +++|
04271  M00S04082.xedit   +++|
04272  M00S04083.xedit   +++| GLN      PS                 ENTRY/EXIT
Line S04084 Modification History
M01 (Removed by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
04273  M01S04084.xedit21 ---|          SX6    X1          MOVE NUMBER (STRIP OFF SIGN BIT)
Line S00066 Modification History
M01 (Added by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
04274  M01S00066.xedit21 +++|          MX6    1
04275  M01S00067.xedit21 +++|          BX6    -X6*X1      STRIP OFF SIGN BIT
04276  M00S04085.xedit   +++|          MX7    0
04277  M00S04086.xedit   +++|          SA6    GLNA        SAVE LINE TO FIND
04278  M00S04087.xedit   +++|          SA7    GLNB        SAVE *NOT REWOUND* FLAG
04279  M00S04088.xedit   +++|          ZR     X6,GLN      IF NO LINE NUMBER TO FIND
04280  M00S04089.xedit   +++|          NG     X1,GLN7     IF CALLED FROM *MPR*
04281  M00S04090.xedit   +++|          SA2    VERIFY
04282  M00S04091.xedit   +++|          AX2    60          EXTEND FLAG STATUS
04283  M00S04092.xedit   +++|          BX6    X2
04284  M00S04093.xedit   +++|          SA6    A2+
04285  M00S04094.xedit   +++|          SA1    LNFLAG
04286  M00S04095.xedit   +++|          PL     X1,GLN7     IF PROCESSING AS IWHERE.
04287  M00S04096.xedit   +++| GLN1     SA1    E.LMOD
04288  M00S04097.xedit   +++|          NZ     X1,GLN3     IF LINE IS UNPACKED
04289  M00S04098.xedit   +++|          SA1    E.LINE      GET LINE NUMBER
04290  M00S04099.xedit   +++|          BX6    X6-X6       CLEAR ASSEMBLY
04291  M00S04100.xedit   +++|          MX7    -6          CHARACTER MASK
04292  M00S04101.xedit   +++|
04293  M00S04102.xedit   +++|*         ASSEMBLE LINE NUMBER FROM PACKED WORD.
04294  M00S04103.xedit   +++|
04295  M00S04104.xedit   +++| GLN2     LX1    6
04296  M00S04105.xedit   +++|          BX2    -X7*X1      GET CHARACTER
04297  M00S04106.xedit   +++|          ZR     X2,GLN5     IF END OF NUMBER
04298  M00S04107.xedit   +++|          SX3    X2-1R9-1    NEGATIVE IF OK
04299  M00S04108.xedit   +++|          SX2    X2-1R0      POSITIVE IF OK
04300  M00S04109.xedit   +++|          BX1    X7*X1       REMOVE PRESENT CHARACTER
04301  M00S04110.xedit   +++|          BX3    -X2*X3
04302  M00S04111.xedit   +++|          PL     X3,GLN5     IF CHARACTER IS NOT NUMBER
04303  M00S04112.xedit   +++|          BX3    X6
04304  M00S04113.xedit   +++|          LX6    2           *4
04305  M00S04114.xedit   +++|          IX6    X6+X3       *5
04306  M00S04115.xedit   +++|          LX6    1           *10
04307  M00S04116.xedit   +++|          IX6    X6+X2       ADD NEW CHARACTER
04308  M00S04117.xedit   +++|          EQ     GLN2        ASSEMBLE NEXT CHARACTER
04309  M00S04118.xedit   +++|
04310  M00S04119.xedit   +++|*         ASSEMBLE LINE FROM STRING.
04311  M00S04120.xedit   +++|
04312  M00S04121.xedit   +++| GLN3     SA1    E.STR
04313  M00S04122.xedit   +++|          BX6    X6-X6       CLEAR ASSEMBLY
04314  M00S04123.xedit   +++|          MX7    -10         CHARACTER COUNT
04315  M00S04124.xedit   +++| GLN4     NG     X1,GLN5     IF END OF LINE
04316  M00S04125.xedit   +++|          SX3    X2-1R9-1
04317  M00S04126.xedit   +++|          SX2    X2-1R0
04318  M00S04127.xedit   +++|          AX7    1           DECREMENT CHARACTER COUNT
04319  M00S04128.xedit   +++|          BX3    -X2*X3      NEGATIVE IF NUMBER
04320  M00S04129.xedit   +++|          PL     X3,GLN5     IF NOT A NUMBER
04321  M00S04130.xedit   +++|          BX3    X6
04322  M00S04131.xedit   +++|          LX6    2           *4
04323  M00S04132.xedit   +++|          IX6    X6+X3       *5
04324  M00S04133.xedit   +++|          SA1    A1+B1       NEXT CHAR.
04325  M00S04134.xedit   +++|          LX6    1
04326  M00S04135.xedit   +++|          IX6    X6+X2       ADD NEXT NUMBER
04327  M00S04136.xedit   +++|          NZ     X7,GLN4     IF NOT 10 CHARACTERS
04328  M00S04137.xedit   +++|
04329  M00S04138.xedit   +++|*         CHECK TO SEE IF GOT LINE NUMBER.
04330  M00S04139.xedit   +++|
04331  M00S04140.xedit   +++| GLN5     SA1    GLNA
04332  M00S04141.xedit   +++|          IX6    X6-X1
04333  M00S04142.xedit   +++|          PL     X6,GLN6     IF ON OR PAST NUMBER
04334  M00S04143.xedit   +++|          RJ     WTF
04335  M00S04144.xedit   +++|          RJ     RDF
04336  M00S04145.xedit   +++|          EQ     GLN1        CHECK NEXT LINE
04337  M00S04146.xedit   +++|
04338  M00S04147.xedit   +++| GLN6     ZR     X6,GLN9     IF FOUND LINE NUMBER
04339  M00S04148.xedit   +++|          SA2    GLNB
04340  M00S04149.xedit   +++|          NZ     X2,GLN9     IF RESET FILE AT LEAST ONCE
04341  M00S04150.xedit   +++|          MX6    -1
04342  M00S04151.xedit   +++|          SA6    A2
04343  M00S04152.xedit   +++|          RJ     TOP
04344  M00S04153.xedit   +++|          SA1    VERIFY
04345  M00S04154.xedit   +++|          MX6    1
04346  M00S04155.xedit   +++|          BX6    -X6*X1      CLEAR EOR/EOF VERIFICATION
04347  M00S04156.xedit   +++|          SA6    A1
04348  M00S04157.xedit   +++|          EQ     GLN1        SEARCH FROM TOP OF FILE
04349  M00S04158.xedit   +++|
04350  M00S04159.xedit   +++|*         IF REALLY IN *IWHERE* MODE.
04351  M00S04160.xedit   +++|
04352  M00S04161.xedit   +++| GLN7     SA1    GLNA
04353  M00S04162.xedit   +++|          SA2    IWHERE
04354  M00S04163.xedit   +++|          IX6    X2-X1
04355  M00S04164.xedit   +++|          PL     X6,GLN8     IF AT OR PAST POSITION
04356  M00S04165.xedit   +++|          RJ     WTF
04357  M00S04166.xedit   +++|          RJ     RDF
04358  M00S04167.xedit   +++|          EQ     GLN7        GET NEXT LINE
04359  M00S04168.xedit   +++|
04360  M00S04169.xedit   +++| GLN8     ZR     X6,GLN9     IF FOUND
04361  M00S04170.xedit   +++|          RJ     TOP         RESET AND RE-TRY
04362  M00S04171.xedit   +++|          SA1    VERIFY
04363  M00S04172.xedit   +++|          MX6    1
04364  M00S04173.xedit   +++|          BX6    -X6*X1      CLEAR AUTO VERIFICATION
04365  M00S04174.xedit   +++|          SA6    A1
04366  M00S04175.xedit   +++|          EQ     GLN7        GET NEXT LINE
04367  M00S04176.xedit   +++|
04368  M00S04177.xedit   +++| GLNA     DATA   0           LINE NUMBER TO FIND
04369  M00S04178.xedit   +++| GLNB     DATA   0           RESET FILE FLAG
04370  M00S04179.xedit   +++| ICH      SPACE  4,10
04371  M00S04180.xedit   +++|**        ICH - INITIALIZE CHARACTERS.
04372  M00S04181.xedit   +++|*
04373  M00S04182.xedit   +++|*         ENTRY  (A1) = FWA OF PARAMETER LIST.
04374  M00S04183.xedit   +++|*                (X1) = FIRST WORD OF PARAMETERS.
04375  M00S04184.xedit   +++|*
04376  M00S04185.xedit   +++|*         EXIT   CHARACTERS LOADED INTO PROPER CELLS.
04377  M00S04186.xedit   +++|*
04378  M00S04187.xedit   +++|*         USES   A - 1, 2, 3, 6.
04379  M00S04188.xedit   +++|*                X - 1, 2, 3, 6.
04380  M00S04189.xedit   +++|*                B - 6, 7.
04381  M00S04190.xedit   +++|
04382  M00S04191.xedit   +++|
04383  M00S04192.xedit   +++| ICH1     SA2    CHARSFT     OBTAIN SHIFT VALUE
04384  M00S04193.xedit   +++|          SB6    X2
04385  M00S04194.xedit   +++| ICH2     SA2    X1          GET REPLACEMENT CHARACTER
04386  M00S04195.xedit   +++|          UX1,B7 X1          GET SHIFT COUNT
04387  M00S04196.xedit   +++|          AX2    B6
04388  M00S04197.xedit   +++|          AX1    18
04389  M00S04198.xedit   +++|          SX2    X2          REMOVE EXCESS CHARACTER
04390  M00S04199.xedit   +++|          SA3    X1          WORD TO MODIFY
04391  M00S04200.xedit   +++|          LX2    B7          SHIFT INTO POSITION
04392  M00S04201.xedit   +++|          SA1    A1+B1
04393  M00S04202.xedit   +++|          BX6    X3-X2       ADD CHARACTERS
04394  M00S04203.xedit   +++|          SA6    A3
04395  M00S04204.xedit   +++|          NZ     X1,ICH2     IF MORE TO LIST
04396  M00S04205.xedit   +++|
04397  M00S04206.xedit   +++| ICH      PS                 ENTRY/EXIT
04398  M00S04207.xedit   +++|          NZ     X1,ICH1     IF THERE IS A TABLE
04399  M00S04208.xedit   +++|          EQ     ICH         RETURN
04400  M00S04209.xedit   +++|
04401  M00S04210.xedit   +++| IEM      SPACE  4,15
04402  M00S04211.xedit   +++|**        IEM - ISSUE EXPLAIN ERROR MESSAGE.
04403  M00S04212.xedit   +++|*
04404  M00S04213.xedit   +++|*         ENTRY  (B2) = ERROR MESSAGE ORDINAL IN THE FOLLOWING FORMS -
04405  M00S04214.xedit   +++|*                     FORM 1 - 18/PRIMARY ORDINAL.
04406  M00S04215.xedit   +++|*                     FORM 2 - 13/PRIMARY ORDINAL,5/SECONDARY ORDINAL.
04407  M00S04216.xedit   +++|*
04408  M00S04217.xedit   +++|*         EXIT   (EXPLAIN) = UPDATED ERROR MESSAGE ENTRIES.
04409  M00S04218.xedit   +++|*                MESSAGE ISSUED.
04410  M00S04219.xedit   +++|*
04411  M00S04220.xedit   +++|*         USES   A - 1, 4, 6.
04412  M00S04221.xedit   +++|*                X - 1, 4, 6.
04413  M00S04222.xedit   +++|*                B - 2.
04414  M00S04223.xedit   +++|*
04415  M00S04224.xedit   +++|*         MACROS WRITEC.
04416  M00S04225.xedit   +++|
04417  M00S04226.xedit   +++|
04418  M00S04227.xedit   +++| IEM      PS                 ENTRY/EXIT
04419  M00S04228.xedit   +++|          SA1    EXPLAIN
04420  M00S04229.xedit   +++|          SX4    B2
04421  M00S04230.xedit   +++|          AX4    6
04422  M00S04231.xedit   +++|          LX1    -12         SHIFT EXPLAIN WORD
04423  M00S04232.xedit   +++|          NZ     X4,IEM1     IF GOTTEN PRIMARY
04424  M00S04233.xedit   +++|          SX4    B2
04425  M00S04234.xedit   +++| IEM1     PX6    B2,X1       PUT NEW EXPLAIN ENTRY
04426  M00S04235.xedit   +++|          SA6    A1
04427  M00S04236.xedit   +++|          SA4    MESSAGE+X4  GET MESSAGE STARTING ADDR
04428  M00S04237.xedit   +++|          WRITEC OUTPUT,X4   ISSUE MESSAGE
04429  M00S04238.xedit   +++|          EQ     IEM         RETURN
04430  M00S04239.xedit   +++|
04431  M00S04240.xedit   +++| IFM      SPACE  4,15
04432  M00S04241.xedit   +++|**        IFM - ISSUE FILE MESSAGE.
04433  M00S04242.xedit   +++|*
04434  M00S04243.xedit   +++|*         ENTRY  (X1) = FILE NAME TO USE (LOWER 18 CAN BE GARBAGE).
04435  M00S04244.xedit   +++|*                (B2) = ERROR MESSAGE (SEE *IEM* FOR FORMATS).
04436  M00S04245.xedit   +++|*
04437  M00S04246.xedit   +++|*         EXIT   (EXPLAIN) = UPDATED EXPLAIN ERROR MESSAGE ENTRIES.
04438  M00S04247.xedit   +++|*                MESSAGE ISSUED.
04439  M00S04248.xedit   +++|*
04440  M00S04249.xedit   +++|*         USES   A - 2, 3, 4, 6.
04441  M00S04250.xedit   +++|*                X - 1, 2, 3, 4, 6, 7.
04442  M00S04251.xedit   +++|*                B - 3.
04443  M00S04252.xedit   +++|*
04444  M00S04253.xedit   +++|*         MACROS WRITEC.
04445  M00S04254.xedit   +++|
04446  M00S04255.xedit   +++|
04447  M00S04256.xedit   +++| IFM      PS                 ENTRY/EXIT
04448  M00S04257.xedit   +++|          SX4    B2
04449  M00S04258.xedit   +++|          AX4    6
04450  M00S04259.xedit   +++|          SA2    EXPLAIN
04451  M00S04260.xedit   +++|          LX2    -12
04452  M00S04261.xedit   +++|          NZ     X4,IFM1     IF NOT LONGER FORM
04453  M00S04262.xedit   +++|          SX4    B2
04454  M00S04263.xedit   +++| IFM1     SA3    MESSAGE+X4  GET MESSAGE POINTER
04455  M00S04264.xedit   +++|          PX6    B2,X2
04456  M00S04265.xedit   +++|          SA3    X3          GET FIRST WORD OF MESSAGE
04457  M00S04266.xedit   +++|          MX7    6
04458  M00S04267.xedit   +++|          BX7    X7*X3       GET UPPER CHARACTER
04459  M00S04268.xedit   +++|          MX2    42
04460  M00S04269.xedit   +++|          SA6    A2
04461  M00S04270.xedit   +++|          SB3    60-12
04462  M00S04271.xedit   +++|          ZR     X7,IFM2     IF CHARACTER IS 00B (FIRST PART OF 0007B)
04463  M00S04272.xedit   +++|          BX6    X7
04464  M00S04273.xedit   +++|          LX7    2
04465  M00S04274.xedit   +++|          SB3    60-6
04466  M00S04275.xedit   +++|          BX7    X7*X6       NEGATIVE IF UPPER CHARACTER = 55B (BLANK)
04467  M00S04276.xedit   +++|          NG     X7,IFM2     IF BATCH STYLE MESSAGE
04468  M00S04277.xedit   +++|          SB3    B0
04469  M00S04278.xedit   +++| IFM2     BX1    X2*X1       REMOVE LOWER 18 BITS
04470  M00S04279.xedit   +++|          SX6    B1
04471  M00S04280.xedit   +++|          SA4    =01010101010101010101B
04472  M00S04281.xedit   +++|          IX6    X1-X6       SPACE FILL FILE NAME
04473  M00S04282.xedit   +++|          BX6    X6-X1
04474  M00S04283.xedit   +++|          AX6    6
04475  M00S04284.xedit   +++|          BX6    X4*X6
04476  M00S04285.xedit   +++|          BX7    X6
04477  M00S04286.xedit   +++|          SA4    =10H
04478  M00S04287.xedit   +++|          LX6    5
04479  M00S04288.xedit   +++|          IX7    X6-X7
04480  M00S04289.xedit   +++|          BX6    X6+X7
04481  M00S04290.xedit   +++|          BX4    X6*X4       MASK BLANKS FOR LOWER BITS
04482  M00S04291.xedit   +++|          LX7    B3,X2
04483  M00S04292.xedit   +++|          BX3    -X7*X3      REMOVE EXISTING FILE NAME
04484  M00S04293.xedit   +++|          BX4    X4*X2       REMOVE LOWER 18 BITS OF BLANKS
04485  M00S04294.xedit   +++|          IX4    X4+X1       MERGE BLANKS WITH FILENAME
04486  M00S04295.xedit   +++|          LX4    B3          POSITION NAME
04487  M00S04296.xedit   +++|          BX6    X4+X3       MERGE INTO MESSAGE
04488  M00S04297.xedit   +++|          SA6    A3
04489  M00S04298.xedit   +++|          WRITEC OUTPUT,A6   ISSUE MESSAGE
04490  M00S04299.xedit   +++|          EQ     IFM         RETURN
04491  M00S04300.xedit   +++|
04492  M00S04301.xedit   +++| ITM      SPACE  4,15
04493  M00S04302.xedit   +++|**        ITM - ISSUE TRUNCATION MESSAGE.
04494  M00S04303.xedit   +++|*
04495  M00S04304.xedit   +++|*         ENTRY  (IWHERE) = LINE POSITION.
04496  M00S04305.xedit   +++|*
04497  M00S04306.xedit   +++|*         EXIT   MESSAGE ISSUED.
04498  M00S04307.xedit   +++|*
04499  M00S04308.xedit   +++|*         USES   A - 1, 6.
04500  M00S04309.xedit   +++|*                X - 1, 6.
04501  M00S04310.xedit   +++|*                B - 2.
04502  M00S04311.xedit   +++|*
04503  M00S04312.xedit   +++|*         CALLS  CDD, IEM.
04504  M00S04313.xedit   +++|
04505  M00S04314.xedit   +++|
04506  M00S04315.xedit   +++| ITM      PS                 ENTRY/EXIT
04507  M00S04316.xedit   +++|          SA1    IWHERE
04508  M00S04317.xedit   +++|          RJ     CDD
04509  M00S04318.xedit   +++|          SA1    MESSAGE+TRUNC.
04510  M00S04319.xedit   +++|          MX6    -12
04511  M00S04320.xedit   +++|          BX6    X6*X4       SET EOL BYTE
04512  M00S04321.xedit   +++|          SB2    TRUNC.
04513  M00S04322.xedit   +++|          SA6    X1+2        PLACE POSITION (CHANGE MESSAGE)
04514  M00S04323.xedit   +++|          RJ     IEM
04515  M00S04324.xedit   +++|          EQ     ITM         RETURN
04516  M00S04325.xedit   +++|
04517  M00S04326.xedit   +++| PCN      SPACE  4,10
04518  M00S04327.xedit   +++|**        PCN - PRINT COLUMN NUMBERS.
04519  M00S04328.xedit   +++|*
04520  M00S04329.xedit   +++|*         ENTRY  NONE.
04521  M00S04330.xedit   +++|*
04522  M00S04331.xedit   +++|*         EXIT   COLUMN NUMBERS PRINTED.
04523  M00S04332.xedit   +++|*
04524  M00S04333.xedit   +++|*         MACROS WRITEC.
04525  M00S04334.xedit   +++|
04526  M00S04335.xedit   +++|
04527  M00S04336.xedit   +++| PCN      PS                 ENTRY/EXIT
04528  M00S04337.xedit   +++|          WRITEC OUTPUT,PCNA
04529  M00S04338.xedit   +++|          WRITEC X2,PCNB
04530  M00S04339.xedit   +++|          EQ     PCN         RETURN
04531  M00S04340.xedit   +++|
04532  M00S04341.xedit   +++| PCNA     CON    3H  0,2H 1,2H 2,2H 3,2H 4,2H 5,2L 6
04533  M00S04342.xedit   +++| PCNB     BSS    0
04534  M00S04343.xedit   +++|          DATA   H*  12345678901234567890123456789012345678*
04535  M00S04344.xedit   +++|          DATA   C*90123456789012345678901234567890*
04536  M00S04345.xedit   +++| PCNAL    EQU    *-PCNA
04537  M00S04346.xedit   +++| ERD      SPACE  4,15
04538  M00S04347.xedit   +++|**        ERD - PROCESS END OF FILE READ.
04539  M00S04348.xedit   +++|*
04540  M00S04349.xedit   +++|*         ENTRY  AT *ERD*.
04541  M00S04350.xedit   +++|*                AT *ERD1*.
04542  M00S04351.xedit   +++|*                AT *ERD5*.
04543  M00S04352.xedit   +++|*
04544  M00S04353.xedit   +++|*         EXIT   TO *TOP*.
Line S00008 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04545  M01S00008.xedit20 +++|*                TO *TOP1.1* IF IN LOOK MODE.
04546  M00S04354.xedit   +++|*
04547  M00S04355.xedit   +++|*         USES   A - 1, 2, 4, 6, 7.
04548  M00S04356.xedit   +++|*                X - 2, 4, 6, 7.
Line S00009 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04549  M01S00009.xedit20 +++|*                B - 6.
04550  M00S04357.xedit   +++|*
Line S04358 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04551  M01S04358.xedit20 ---|*         CALL   RDF, TOP.
Line S00010 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04552  M01S00010.xedit20 +++|*         CALLS  RDF.
04553  M00S04359.xedit   +++|*
04554  M00S04360.xedit   +++|*         MACROS  READ, RECALL, REWIND, WRITER.
04555  M00S04361.xedit   +++|
04556  M00S04362.xedit   +++|
Line S04363 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04557  M01S04363.xedit20 ---| ERD      PS                 ENTRY/EXIT
Line S00011 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04558  M01S00011.xedit20 +++| ERD      PS                 ENTRY
04559  M00S04364.xedit   +++|          SA1    *-1
04560  M00S04365.xedit   +++|          MX7    0
04561  M00S04366.xedit   +++|          BX6    X1          COPY ENTRY WORD TO EXIT WORD
04562  M00S04367.xedit   +++|          SA7    DF          NO MORE DELETES OF EOF-S
04563  M00S04368.xedit   +++|          SA6    TOP         EXIT WORD
04564  M00S04369.xedit   +++|          SA7    DR          NO MORE DELETES OF EOR-S
Line S00012 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04565  M01S00012.xedit20 +++|          SA4    UPDATE
04566  M01S00013.xedit20 +++|          PL     X4,TOP1.1   IF IN LOOK MODE
04567  M00S04370.xedit   +++|
04568  M00S04371.xedit   +++|*         ENTRY FROM *TOP*.
04569  M00S04372.xedit   +++|
04570  M00S04373.xedit   +++| ERD1     SA2    RC
04571  M00S04374.xedit   +++|          NZ     X2,ERD2     IF NO DATA READ
04572  M00S04375.xedit   +++|          WRITER E.OUT
04573  M00S04376.xedit   +++| ERD2     SA4    E.IN
04574  M00S04377.xedit   +++|          LX4    59-9
04575  M00S04378.xedit   +++|          PL     X4,ERD9     IF EOI NOT SET
04576  M00S04379.xedit   +++|          REWIND E.OUT
04577  M00S04380.xedit   +++|          REWIND E.IN,RECALL
04578  M00S04381.xedit   +++|          RECALL E.OUT
04579  M00S04382.xedit   +++|          SA1    FS          CHECK READ FILE NAME STATUS
04580  M00S04383.xedit   +++|          NG     X1,ERD4     IF NAME TOP1
04581  M00S04384.xedit   +++|          SA4    E.OUT
Line S04385 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04582  M01S04385.xedit20 ---|          SA1    TOPA
Line S00014 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04583  M01S00014.xedit20 +++|          SA1    ERDA
04584  M00S04386.xedit   +++|          MX2    42
04585  M00S04387.xedit   +++|          BX6    X4-X1
04586  M00S04388.xedit   +++|          BX6    X2*X6       REMOVE UNWANTED
04587  M00S04389.xedit   +++|          NZ     X6,ERD3     IF NOT A MATCH
Line S04390 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04588  M01S04390.xedit20 ---|          SA1    A1+B1       GET OTHER SCRATCH NAME
Line S00015 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04589  M01S00015.xedit20 +++|          SA1    A1+1        GET OTHER SCRATCH NAME
04590  M00S04391.xedit   +++| ERD3     BX6    X1
04591  M00S04392.xedit   +++|          MX7    60
04592  M00S04393.xedit   +++|          SA6    E.IN
04593  M00S04394.xedit   +++|          SA7    FS
04594  M00S04395.xedit   +++|          REWIND A6,RECALL   REWIND FILE TO BE WRITTEN ON
04595  M00S04396.xedit   +++| ERD4     SA1    E.OUT       SWITCH FILE NAMES IN FETS
04596  M00S04397.xedit   +++|          SA2    E.IN
04597  M00S04398.xedit   +++|          BX6    X1
04598  M00S04399.xedit   +++|          BX7    X2
04599  M00S04400.xedit   +++|          SA6    A2
04600  M00S04401.xedit   +++|          SA7    A1
04601  M00S04402.xedit   +++|
04602  M00S04403.xedit   +++|*         ENTRY FROM *TOP*.
04603  M00S04404.xedit   +++|
04604  M00S04405.xedit   +++| ERD5     SA1    INDEX
04605  M00S04406.xedit   +++|          SX6    B1          RESET *IWHERE*
04606  M00S04407.xedit   +++|          MX7    60
04607  M00S04408.xedit   +++|          SA6    IWHERE
04608  M00S04409.xedit   +++|          SA7    NOMOD       SET NO MODIFICATIONS
04609  M00S04410.xedit   +++|          SX1    X1-.QUIT
04610  M00S04411.xedit   +++|          ZR     X1,ERD6     IF QUIT COMMAND
04611  M00S04412.xedit   +++|          SX1    X1+.QUIT-.END
04612  M00S04413.xedit   +++|          ZR     X1,ERD6     IF END COMMAND
04613  M00S04414.xedit   +++|          SX1    X1+.END-.FILE
04614  M00S04415.xedit   +++|          NZ     X1,ERD7     IF NOT FILE COMMAND
04615  M00S04416.xedit   +++| ERD6     RECALL E.IN
04616  M00S04417.xedit   +++|          EQ     TOP         EXIT
04617  M00S04418.xedit   +++|
04618  M00S04419.xedit   +++| ERD7     READ   E.IN
04619  M00S04420.xedit   +++|          MX6    1
04620  M00S04421.xedit   +++|          SA6    RC          SET *NO DATA READ* FLAG
04621  M00S04422.xedit   +++|          SA1    INDEX
04622  M00S04423.xedit   +++|          SB6    X1-.TOPNUL
04623  M00S04424.xedit   +++|          ZR     B6,ERD8     IF TOPNULL COMMAND
04624  M00S04425.xedit   +++|          RJ     RDF
04625  M00S04426.xedit   +++|          EQ     TOP         EXIT
04626  M00S04427.xedit   +++|
04627  M00S04428.xedit   +++| ERD8     SX6    2R
04628  M00S04429.xedit   +++|          BX7    X7-X7
04629  M00S04430.xedit   +++|          LX6    -12
04630  M00S04431.xedit   +++|          SA7    E.LMOD      SET NO LINE MODIFICATION
04631  M00S04432.xedit   +++|          SA6    E.LINE      SET BLANK LINE AS EXISTING
04632  M00S04433.xedit   +++|          SA7    E.CMODE     SET CURRENT MODE
04633  M00S04434.xedit   +++|          EQ     TOP         EXIT
04634  M00S04435.xedit   +++|
04635  M00S04436.xedit   +++|*         XEDIT SHOULD NEVER JUMP TO HERE.
04636  M00S04437.xedit   +++|
04637  M00S04438.xedit   +++| ERD9     SB6    =C* XEDIT INTERNAL ERROR (ERD). NOTIFY CONSULTANT.*
04638  M00S04439.xedit   +++|          EQ     ABT         ABORT, EXIT
04639  M00S04440.xedit   +++|
Line S04441 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04640  M01S04441.xedit20 ---| TOPA     CON    0LSCRA+1
Line S00016 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04641  M01S00016.xedit20 +++| ERDA     CON    0LSCRA+1
04642  M00S04442.xedit   +++|          CON    0LSCRB+1
Line S04443 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04643  M01S04443.xedit20 ---| TOPB     BSS    1
Line S00017 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
04644  M01S00017.xedit20 +++| ERDB     BSS    1
04645  M00S04444.xedit   +++| LOC      SPACE  4,15
04646  M00S04445.xedit   +++|**        LOC - LOCATE STRING SPECIFIED.
04647  M00S04446.xedit   +++|*
04648  M00S04447.xedit   +++|*         ENTRY  (X3) = NUMBER OF CHARACTERS IN LINE.
04649  M00S04448.xedit   +++|*                (X4) = EDIT LINE STARTING ADDRESS - 1.
04650  M00S04449.xedit   +++|*                (X5) = FIRST CHARACTER OF EDIT LINE.
04651  M00S04450.xedit   +++|*                (B4) = DESIRED STARTING ADDRESS - 1 FOR SEARCH
04652  M00S04451.xedit   +++|*                       (E.STR).
04653  M00S04452.xedit   +++|*                (LOCA - LOCC) = PARAMETERS.
04654  M00S04453.xedit   +++|*                (SPCP) = NEGATIVE IF WINDOW WAS SPECIFIED.
04655  M00S04454.xedit   +++|*
04656  M00S04455.xedit   +++|*         EXIT   (B4) = FWA OF MATCH (IN E.STR).
04657  M00S04456.xedit   +++|*                (B5) = LWA +1 OF MATCH (IN E.STR).
04658  M00S04457.xedit   +++|*                       0, IF STRING NOT FOUND.
04659  M00S04458.xedit   +++|*
04660  M00S04459.xedit   +++|*         USES   A- 1, 2, 3, 4, 7.
04661  M00S04460.xedit   +++|*                X- 1, 2, 3, 4, 6, 7.
04662  M00S04461.xedit   +++|*                B- 2, 3, 4, 5, 6, 7.
04663  M00S04462.xedit   +++|*
04664  M00S04463.xedit   +++|*         CALLS  LST.
04665  M00S04464.xedit   +++|
04666  M00S04465.xedit   +++|
04667  M00S04466.xedit   +++| LOC9     SB5    0           SET STRING NOT FOUND
04668  M00S04467.xedit   +++|
04669  M00S04468.xedit   +++| LOC      PS                 ENTRY/EXIT
04670  M00S04469.xedit   +++|
04671  M00S04470.xedit   +++|*         THERE ARE THREE OPTIONS, EACH SET BY CODE MODIFICATION.
04672  M00S04471.xedit   +++|*         THE THREE WORDS ARE GIVEN BELOW.
04673  M00S04472.xedit   +++|
04674  M00S04473.xedit   +++| LOC      RMT
04675  M00S04474.xedit   +++|
04676  M00S04475.xedit   +++| LOCD     SB5    1           THERE ARE NO STRINGS
04677  M00S04476.xedit   +++|          EQ     LOC         EXIT
04678  M00S04477.xedit   +++|
04679  M00S04478.xedit   +++| LOCE     SA4    LOCA        NORMAL STRING SEARCH REQUIRED
04680  M00S04479.xedit   +++|          SA3    E.STR-1
04681  M00S04480.xedit   +++| LOCF     EQ     LOC8        NULL STRING ROUTINE
04682  M00S04481.xedit   +++|-         VFD    *P/0        SPECIAL FLAG (SEE CHS)
04683  M00S04482.xedit   +++|          RMT
04684  M00S04483.xedit   +++|
04685  M00S04484.xedit   +++|          BSSZ   1           ALLOCATE SPACE FOR WORD
04686  M00S04485.xedit   +++|          SB7    X4+         LEFTMOST STARTING ADDRESS - 1
04687  M00S04486.xedit   +++|          SB2    X3+E.STR    ADDRESS OF END OF LINE
04688  M00S04487.xedit   +++|          SA1    TRIM
04689  M00S04488.xedit   +++|          SA2    SPCP
04690  M00S04489.xedit   +++|          NG     X1,LOC1.1   IF *TRIM* FLAG SET
04691  M00S04490.xedit   +++|          PL     X2,LOC1.1   IF WINDOW NOT SPECIFIED
04692  M00S04491.xedit   +++|
04693  M00S04492.xedit   +++|*         BLANK FILL LINE OUT TO THE SPECIFIED WINDOW.
04694  M00S04493.xedit   +++|
04695  M00S04494.xedit   +++|          SA2    RTWD        SET TO RIGHT WINDOW MARGIN
04696  M00S04495.xedit   +++|          ZR     X2,LOC1.1   IF WINDOW NOT SPECIFIED
04697  M00S04496.xedit   +++|          SB3    X3          SET TO LENGTH OF LINE
04698  M00S04497.xedit   +++|          SB6    X2
04699  M00S04498.xedit   +++|          GE     B3,B6,LOC1.1  IF LINE IS LONGER THAN WINDOW
04700  M00S04499.xedit   +++|          SB3    B6-B3
04701  M00S04500.xedit   +++|          SB3    B2+B3
04702  M00S04501.xedit   +++|          SX6    1R          SET TO BLANK
04703  M00S04502.xedit   +++| LOC1     SA6    B2
04704  M00S04503.xedit   +++|          SB2    B2+B1
04705  M00S04504.xedit   +++|          NE     B2,B3,LOC1  IF NOT FILLED TO RIGHT WINDOW
04706  M00S04505.xedit   +++|          MX6    2           SET END OF LINE INDICATOR
04707  M00S04506.xedit   +++|          SA6    B2
04708  M00S04507.xedit   +++| LOC1.1   SA2    A4+B1       1/TRIM,11/LENGTH,12/,18/COMPARE,18/R.MAR
04709  M00S04508.xedit   +++|          AX4    18
04710  M00S04509.xedit   +++|          GE     B7,B4,LOC1.2  IF LEFT START = MAX(DESIRED,WINDOW)
04711  M00S04510.xedit   +++|          SB7    B4
04712  M00S04511.xedit   +++| LOC1.2   UX6,B6 X2          STRING LENGTH, X6 = TRIM FLAG
04713  M00S04512.xedit   +++|          SA1    B7          SET STARTING CHARACTER-1 (E.STR)
04714  M00S04513.xedit   +++|          AX2    18
04715  M00S04514.xedit   +++|          SB3    X6          RIGHT MARGIN (VIA WINDOW/ANCHOR)
04716  M00S04515.xedit   +++|          PL     X4,LOC2     IF NOT ANCHOR MODE
04717  M00S04516.xedit   +++|          SB3    B3+B6       ADD LENGTH OF STRING
04718  M00S04517.xedit   +++|          SB3    B3-B1       COMPENSATE FOR EXTRA WORD IN ADDITION
04719  M00S04518.xedit   +++| LOC2     SA2    X2          GET STARTING ADDR OF COMPARE STRING
04720  M00S04519.xedit   +++|          GE     B2,B3,LOC3  IF RIGHT MARGIN NOT PAST LINE WIDTH
04721  M00S04520.xedit   +++|          SB3    B2          RESET TO LINE WIDTH
04722  M00S04521.xedit   +++| LOC3     LX7    X2
04723  M00S04522.xedit   +++|          SA7    B2+B1       SET COMPARE (IMMEDIATELY AFTER EOL)
04724  M00S04523.xedit   +++|          SB5    B5-B5       SET FAILURE
04725  M00S04524.xedit   +++|          SX7    X4          PUT GLOBAL CHARACTER
04726  M00S04525.xedit   +++|          ZR     B6,LOC4     IF NO STRING
04727  M00S04526.xedit   +++|          RJ     LST         LOCATE STRING
04728  M00S04527.xedit   +++|          NZ     B7,LOC      IF STRING NOT FOUND (FAILURE)
04729  M00S04528.xedit   +++|          SB4    A1          SET FIRST CHARACTER OF MATCH
04730  M00S04529.xedit   +++|          SB5    A1+B6       SET LWA+1
04731  M00S04530.xedit   +++|          SB7    B5-1
04732  M00S04531.xedit   +++|          SX4    0           SET NO ANCHOR
04733  M00S04532.xedit   +++| LOC4     SA3    LOCC        1/TRIM,11/LENGTH,30/STARTING,18/MARGIN
04734  M00S04533.xedit   +++|          UX6,B6 X3          (X3) = TRIM, (B6) = LENGTH
04735  M00S04534.xedit   +++|          AX6    18
04736  M00S04535.xedit   +++|          NG     X4,LOC5     IF ANCHOR (AND NULL FIRST STRING)
04737  M00S04536.xedit   +++|          SB3    X3+         RESET RIGHT MARGIN
04738  M00S04537.xedit   +++| LOC5     SA2    X6
04739  M00S04538.xedit   +++|          GE     B2,B3,LOC6  IF TO SET TO MINIMUM (MARGIN,LINE WIDTH)
04740  M00S04539.xedit   +++|          SB3    B2
04741  M00S04540.xedit   +++| LOC6     ZR     B6,LOC      IF NO SECOND STRING
04742  M00S04541.xedit   +++|          SX4    X7
04743  M00S04542.xedit   +++|          LX7    X2
04744  M00S04543.xedit   +++|          SA7    B2+B1       SET COMPARE AFTER END OF STRING
04745  M00S04544.xedit   +++|          SX7    X4          RESTORE GLOBAL CHARACTER
04746  M00S04545.xedit   +++|          SA1    B7+         SET POINTER FOR SECOND STRING
04747  M00S04546.xedit   +++|          RJ     LST
04748  M00S04547.xedit   +++|          LX6    59-18
04749  M00S04548.xedit   +++|          SB5    A1+B6       SET ENDING CHARACTER
04750  M00S04549.xedit   +++|          NG     X6,LOC7     IF NEGATIVE LOGIC
04751  M00S04550.xedit   +++|          ZR     B7,LOC      IF POSITIVE AND FOUND IT
04752  M00S04551.xedit   +++|          EQ     LOC9        SET FAILURE
04753  M00S04552.xedit   +++|
04754  M00S04553.xedit   +++| LOC7     NZ     B7,LOC      IF NEGATIVE AND NOT FOUND
04755  M00S04554.xedit   +++|          EQ     LOC9        STRING NOT FOUND
04756  M00S04555.xedit   +++|
04757  M00S04556.xedit   +++|*         SEARCHING FOR NULL STRING. FOUND ONLY WHEN AT
04758  M00S04557.xedit   +++|*         THE BEGINNING OF A LINE/WINDOW (DEPENDING ON TRIM SET).
04759  M00S04558.xedit   +++|
04760  M00S04559.xedit   +++| LOC8     SA4    LOCA
04761  M00S04560.xedit   +++|          SB7    X4
04762  M00S04561.xedit   +++|          SB5    X4+B1       SET LWA+1 OF SEARCH
04763  M00S04562.xedit   +++|          SA2    TRIM
04764  M00S04563.xedit   +++|          GT     B4,B7,LOC9  IF STARTING PAST MINIMUM (FAIL)
04765  M00S04564.xedit   +++|          SB4    X4+1        SET FWA OF MATCH
04766  M00S04565.xedit   +++|          PL     X2,LOC      IF NOT TRIM (SUCCESSFUL)
04767  M00S04566.xedit   +++|          MX2    2           CHECK FOR EOL
04768  M00S04567.xedit   +++|          BX2    X2-X5
04769  M00S04568.xedit   +++|          ZR     X2,LOC9     IF NOT EOL
04770  M00S04569.xedit   +++|          SA1    E.STR-1     GET LINE WIDTH
04771  M00S04570.xedit   +++|          SB3    X1+E.STR
04772  M00S04571.xedit   +++|          GE     B7,B3,LOC9  IF PAST LAST NON-BLANK (FAIL)
04773  M00S04572.xedit   +++|          EQ     LOC         RETURN
04774  M00S04573.xedit   +++|
04775  M00S04574.xedit   +++| LOC      HEREL              ASSEMBLE ENTRY OPTIONS
04776  M00S04575.xedit   +++|
04777  M00S04576.xedit   +++|**        LOCA - LOCC - LOCATE DEFINITION CELLS.
04778  M00S04577.xedit   +++|*
04779  M00S04578.xedit   +++|*         FORMAT FOR THE THREE WORDS IS-
04780  M00S04579.xedit   +++|*
04781  M00S04580.xedit   +++|*         1/A,11/ ,12/,18,GLOBAL  ,18/L.MARGIN.
04782  M00S04581.xedit   +++|*         1,T,11/L,12/,18,COMPARE ,18/R.MARGIN.
04783  M00S04582.xedit   +++|*         1/T,11/L,12/,18,COMPARE ,18/R.MARGIN.
04784  M00S04583.xedit   +++|*
04785  M00S04584.xedit   +++|*         WHERE-
04786  M00S04585.xedit   +++|*         *A* = 1 IF ANCHOR IS SET.
04787  M00S04586.xedit   +++|*         *T* = 1 IF TRIM SET (ALL CHARS IN STRING SIGNIFICANT).
04788  M00S04587.xedit   +++|*         *L* = LENGTH OF ASSOCIATED STRING.
04789  M00S04588.xedit   +++|*         *GLOBAL* = THE CHARACTER THAT MATCHES ALL.
04790  M00S04589.xedit   +++|*         *COMPARE* = FWA IF ASSOCIATED STRING (IN COMMAND).
04791  M00S04590.xedit   +++|*         *RMARGIN* = ADDRESS OF LEFTMOST POSSIBLE STARTING
04792  M00S04591.xedit   +++|*         CHARACTER-1.
04793  M00S04592.xedit   +++|*         *L.MARGIN* = ADDRESS OF RIGHTMOST POSSIBLE ENDING
04794  M00S04593.xedit   +++|*         CHARACTER+1.
04795  M00S04594.xedit   +++|
04796  M00S04595.xedit   +++| LOCA     BSSZ   1           LOCATE ENVIRONMENT WORD
04797  M00S04596.xedit   +++| LOCB     BSSZ   1           FIELD ONE DEFINITION
04798  M00S04597.xedit   +++| LOCC     BSSZ   1           FIELD TWO DEFINITION
04799  M00S04598.xedit   +++| LST      SPACE  4,20
04800  M00S04599.xedit   +++|**        LST - LOCATE STRING IN EDIT LINE.
04801  M00S04600.xedit   +++|*
04802  M00S04601.xedit   +++|*         ENTRY  (A1) = FWA-1 OF START OF SCAN IN EDIT LINE.
04803  M00S04602.xedit   +++|*                (A2) = FWA OF COMPARE STRING IN COMMAND LINE.
04804  M00S04603.xedit   +++|*                (X2) = FIRST WORD OF STRING IN COMMAND LINE.
04805  M00S04604.xedit   +++|*                (X6) = NEGATIVE IF TRAILING GLOBAL/BLANKS ARE
04806  M00S04605.xedit   +++|*                       IMPORTANT.
04807  M00S04606.xedit   +++|*                (X7) = GLOBAL CHARACTER (MUST NOT BE MASK OF 2).
04808  M00S04607.xedit   +++|*                (B3) = LWA+1 AVAILABLE FOR SCANNING (USUALLY EOL).
04809  M00S04608.xedit   +++|*                (B6) = LENGTH OF COMPARE STRING.
04810  M00S04609.xedit   +++|*                ASSUMES THAT THE FIRST CHARACTER OF THE COMPARE
04811  M00S04610.xedit   +++|*                STRING HAS BEEN PLACED AT EOL+1.
04812  M00S04611.xedit   +++|*
04813  M00S04612.xedit   +++|*         EXIT   (A1) = FWA OF POSSIBLE MATCH.
04814  M00S04613.xedit   +++|*                (B6) = LENGTH-1 OF POSSIBLE MATCH.
04815  M00S04614.xedit   +++|*                (B7) = 0, IF MATCH.
04816  M00S04615.xedit   +++|*                IF (A1)+1 .GE. (B3) AT ENTRY, THEN IF THE COMPARE
04817  M00S04616.xedit   +++|*                STRING IS BLANK/GLOBAL AND TRIM IS OFF, THEN THE
04818  M00S04617.xedit   +++|*                RESPONSE IS -
04819  M00S04618.xedit   +++|*                (B7) = 0 (SUCCESSFUL MATCH).
04820  M00S04619.xedit   +++|*                (A1) = (A1) AT ENTRY.
04821  M00S04620.xedit   +++|*                (B6) = 0.
04822  M00S04621.xedit   +++|*
04823  M00S04622.xedit   +++|*         USES   A - 1, 3, 4.
04824  M00S04623.xedit   +++|*                X - 1, 3, 4.
04825  M00S04624.xedit   +++|*                B - 6, 7.
04826  M00S04625.xedit   +++|
04827  M00S04626.xedit   +++|
04828  M00S04627.xedit   +++| LST4     SA1    A1+B1       MOVE START OF STRING POINTER
04829  M00S04628.xedit   +++|          BX3    X1-X2
04830  M00S04629.xedit   +++|          ZR     X3,LST6     IF MATCH
04831  M00S04630.xedit   +++|          IX3    X2-X7
04832  M00S04631.xedit   +++|          ZR     X3,LST6     IF FIRST COMPARE IS GLOBAL
04833  M00S04632.xedit   +++| LST5     SA1    A1+B1       MOVE START OF STRING POINTER
04834  M00S04633.xedit   +++|          IX3    X1-X2
04835  M00S04634.xedit   +++|          NZ     X3,LST5     IF NOT A MATCH
04836  M00S04635.xedit   +++| LST6     SB7    A1-B3       DETERMINE LENGTH OF EDIT LEFT
04837  M00S04636.xedit   +++|          SB7    -B7
04838  M00S04637.xedit   +++|          LT     B7,B6,LST8  IF NOT ENOUGH SPACE LEFT FOR MATCH
04839  M00S04638.xedit   +++|          SB7    B6-1
04840  M00S04639.xedit   +++| LST7     ZR     B7,LST      IF END OF STRING (MATCH)
04841  M00S04640.xedit   +++|          SA3    A1+B7
04842  M00S04641.xedit   +++|          SA4    A2+B7
04843  M00S04642.xedit   +++|          SB7    B7-B1
04844  M00S04643.xedit   +++|          IX3    X3-X4
04845  M00S04644.xedit   +++|          ZR     X3,LST7     IF MATCH (TRY NEXT)
04846  M00S04645.xedit   +++|          NG     X7,LST4     IF GLOBAL NOT USED (IN STACK)
04847  M00S04646.xedit   +++|          IX4    X4-X7
04848  M00S04647.xedit   +++|          ZR     X4,LST7     IF COMPARE IS GLOBAL
04849  M00S04648.xedit   +++|          EQ     LST4        CONTINUE
04850  M00S04649.xedit   +++|
04851  M00S04650.xedit   +++| LST8     NG     X6,LST2     IF TRAILING CHARACTERS SIGNIFICANT
04852  M00S04651.xedit   +++|          SX4    B7-1
04853  M00S04652.xedit   +++|          NG     X4,LST3     IF PAST LWA AVAILABLE
04854  M00S04653.xedit   +++|          SB6    B6-B1       DECREASE COMPARE STRING
04855  M00S04654.xedit   +++|          SA4    A2+B6
04856  M00S04655.xedit   +++|          SX3    X4-1R
04857  M00S04656.xedit   +++|          ZR     X3,LST6     IF LAST COMPARE IS BLANK (REMOVE IT)
04858  M00S04657.xedit   +++|          IX3    X4-X7
04859  M00S04658.xedit   +++|          ZR     X3,LST6     IF LAST COMPARE IS GLOBAL (REMOVE IT)
04860  M00S04659.xedit   +++| LST      PS                 ENTRY/EXIT
04861  M00S04660.xedit   +++|
04862  M00S04661.xedit   +++|          SB7    A1-B3       CHECK A1 VS B3
04863  M00S04662.xedit   +++|          SB7    B7+B1
04864  M00S04663.xedit   +++|          LT     B7,LST4     IF STARTING NOT PAST LAST CHARACTER
04865  M00S04664.xedit   +++|          NG     X6,LST2     IF TRIM (FAILURE)
04866  M00S04665.xedit   +++|          SA1    A1+B1       CHANGE POINTER
04867  M00S04666.xedit   +++|          SB7    B0          SET SUCCESSFUL
04868  M00S04667.xedit   +++| LST1     LE     B6,LST      IF COMPARE IS ALL BLANKS/GLOBAL
04869  M00S04668.xedit   +++|          SB6    B6-B1
04870  M00S04669.xedit   +++|          SA4    A2+B6
04871  M00S04670.xedit   +++|          SX3    X4-1R
04872  M00S04671.xedit   +++|          ZR     X3,LST1     IF COMPARE IS BLANK
04873  M00S04672.xedit   +++|          IX3    X4-X7
04874  M00S04673.xedit   +++|          ZR     X3,LST1     IF COMPARE IS GLOBAL
04875  M00S04674.xedit   +++| LST2     SB7    B1          SET STRING NOT FOUND
04876  M00S04675.xedit   +++|          EQ     LST         BEGIN SCANNING
04877  M00S04676.xedit   +++|
04878  M00S04677.xedit   +++| LST3     SA1    B3-B1
04879  M00S04678.xedit   +++|          EQ     LST+1       RESTART SCAN AT END OF LINE
04880  M00S04679.xedit   +++|
04881  M00S04680.xedit   +++| MDY      SPACE  4,15
04882  M00S04681.xedit   +++|**        MDY - PROCESS MODIFY DIRECTIVES.
04883  M00S04682.xedit   +++|*
04884  M00S04683.xedit   +++|*         ENTRY  (E.STR) = ORIGINAL LINE (UNPACKED).
04885  M00S04684.xedit   +++|*                (D.STR) = DIRECTIVES LINE (UNPACKED).
04886  M00S04685.xedit   +++|*
04887  M00S04686.xedit   +++|*         EXIT   (B3) = NEGATIVE, IF TRUNCATION ENCOUNTERED.
04888  M00S04687.xedit   +++|*                (E.STR) = NEW TEXT LINE.
04889  M00S04688.xedit   +++|*
04890  M00S04689.xedit   +++|*         USES   A - 1, 2, 6.
04891  M00S04690.xedit   +++|*                X - 1, 2, 6, 7.
04892  M00S04691.xedit   +++|*                B - 2, 3, 4, 6.
04893  M00S04692.xedit   +++|*                E.SCR.
04894  M00S04693.xedit   +++|*
04895  M00S04694.xedit   +++|*         CALLS  TSL.
04896  M00S04695.xedit   +++|
04897  M00S04696.xedit   +++|
04898  M00S04697.xedit   +++| MDY5     SX6    1R          SET BLANK CHARACTER
04899  M00S04698.xedit   +++| MDY6     GT     B3,B4,MDY1  IF AT END OF BUFFER
04900  M00S04699.xedit   +++|          SA6    B3
04901  M00S04700.xedit   +++|          SB3    B3+B1       SET TO NEXT PLACE TO SAVE
04902  M00S04701.xedit   +++| MDY7     SA2    A2+B2       GET NEXT *E.STR* CHARACTER
04903  M00S04702.xedit   +++|          NO
04904  M00S04703.xedit   +++|          PL     X2,MDY8     IF NOT AT END OF LINE
04905  M00S04704.xedit   +++|          SX6    1R
04906  M00S04705.xedit   +++|          SB2    B0          SET TO NOT ESCAPE END OF LIE
04907  M00S04706.xedit   +++|          BX2    X2+X6       GET END LINE (WITH BLANK)
04908  M00S04707.xedit   +++| MDY8     SA1    A1+B1       GET NEXT DIRECTIVES CHARACTER
04909  M00S04708.xedit   +++|          SX6    X2          MOVE CURRENT TEXT CHAR
04910  M00S04709.xedit   +++|          SX7    X1-1R
04911  M00S04710.xedit   +++|          ZR     X7,MDY6     IF SPACE DIRECTIVE
04912  M00S04711.xedit   +++|          NG     X1,MDY16    IF END OF DIRECTIVE LINE
04913  M00S04712.xedit   +++|          CHAR   (SX7 X1-0),SH.
04914  M00S04713.xedit   +++|          ZR     X7,MDY7     IF SHARP (DELETE TEXT CHAR)
04915  M00S04714.xedit   +++|          CHAR   (SX7 X1-0),AM.
04916  M00S04715.xedit   +++|          ZR     X7,MDY5     IF AMPERSAND (SET TEXT TO BLANK)
04917  M00S04716.xedit   +++|          BX6    X1
04918  M00S04717.xedit   +++|          SB6    X1+B5       B5 = -UP ARROW
04919  M00S04718.xedit   +++|          NZ     B6,MDY6     IF CHARACTER (REPLACE TEXT)
04920  M00S04719.xedit   +++| MDY9     SA1    A1+B1       GET NEXT DIRECTIVES
04921  M00S04720.xedit   +++|          CHAR   (SX3 X1-0),SH.
04922  M00S04721.xedit   +++|          BX6    X1
04923  M00S04722.xedit   +++|          SX7    B6+B1       SET NUMBER OF CHARACTERS SCANNED
04924  M00S04723.xedit   +++|          NG     X1,MDY10    IF END OF DIRECTIVES
04925  M00S04724.xedit   +++|          SB6    B6+B1       INCREMENT COUNT OF CHARACTERS SCANNED
04926  M00S04725.xedit   +++|          ZR     X3,MDY11    IF SHARP
04927  M00S04726.xedit   +++|          GT     B3,B4,MDY2  IF PAST 160 CHARACTERS
04928  M00S04727.xedit   +++|          SA6    B3
04929  M00S04728.xedit   +++|          SB3    B3+B1
04930  M00S04729.xedit   +++|          EQ     MDY9        LOOP
04931  M00S04730.xedit   +++|
04932  M00S04731.xedit   +++| MDY10    SX6    1R
04933  M00S04732.xedit   +++|          NZ     B6,MDY14    IF SOMETHING WAS AFTER THE UPARROW
04934  M00S04733.xedit   +++|          SX7    X7+B1       INCREMENT CHARACTER COUNT
Line S04734 Modification History
M01 (Removed by) xedit3
Seq #  *Modification Id* Act 
----------------------------+
04935  M01S04734.xedit3  ---|          SA2    A2-B1       RESET CHARACTER POINTER
Line S00001 Modification History
M01 (Added by) xedit3
Seq #  *Modification Id* Act 
----------------------------+
04936  M01S00001.xedit3  +++|          SA2    A2-B2       RESET CHARACTER POINTER
04937  M00S04735.xedit   +++|          EQ     MDY12       ELSE INSERT ONE SPACE
04938  M00S04736.xedit   +++|
04939  M00S04737.xedit   +++| MDY11    SX7    B6+B1
04940  M00S04738.xedit   +++|          NE     B6,B1,MDY14 IF NOT (UP ARROW)(SHARP)
04941  M00S04739.xedit   +++|          SX7    B1          RESET COPY COUNTER
04942  M00S04740.xedit   +++| MDY12    GT     B3,B4,MDY4  IF POSSIBLE TRUNCATION
04943  M00S04741.xedit   +++|          SA6    B3
04944  M00S04742.xedit   +++|          SB3    B3+B1
04945  M00S04743.xedit   +++| MDY13    SA2    A2+B2       GET NEXT E.STR CHARACTER
04946  M00S04744.xedit   +++|          PL     X2,MDY14    IF NOT END OF LINE
04947  M00S04745.xedit   +++|          SB2    B0
04948  M00S04746.xedit   +++|          SX6    1R
04949  M00S04747.xedit   +++|          BX2    X2+X6
04950  M00S04748.xedit   +++| MDY14    SX6    X2
04951  M00S04749.xedit   +++|          SX7    X7-1
04952  M00S04750.xedit   +++| MDY15    PL     X7,MDY12    IF MORE TO MOVE
04953  M00S04751.xedit   +++|          PL     X1,MDY8     IF MORE DIRECTIVES
04954  M00S04752.xedit   +++|
04955  M00S04753.xedit   +++|*         END OF DIRECTIVES, COPY REST OF TEXT.
04956  M00S04754.xedit   +++|
04957  M00S04755.xedit   +++| MDY16    NG     X2,MDY19    IF END OF TEXT
04958  M00S04756.xedit   +++|          GT     B3,B4,MDY3  IF END OF BUFFER
04959  M00S04757.xedit   +++|          SX6    X2+
Line S04758 Modification History
M01 (Removed by) xedit14
Seq #  *Modification Id* Act 
----------------------------+
04960  M01S04758.xedit14 ---|          SA6    B3+
Line S00001 Modification History
M01 (Added by) xedit14
Seq #  *Modification Id* Act 
----------------------------+
04961  M01S00001.xedit14 +++|          SA6    B3
04962  M01S00002.xedit14 +++|          SB3    B3+B1
04963  M00S04759.xedit   +++| MDY17    SA2    A2+B1       GET NEXT TEXT
Line S04760 Modification History
M01 (Removed by) xedit14
Seq #  *Modification Id* Act 
----------------------------+
04964  M01S04760.xedit14 ---|          SB3    B3+B1
Line S00003 Modification History
M01 (Added by) xedit14
Seq #  *Modification Id* Act 
----------------------------+
04965  M01S00003.xedit14 +++|          SX6    X2
04966  M00S04761.xedit   +++|          EQ     MDY16       CONTINUE COPY
04967  M00S04762.xedit   +++|
04968  M00S04763.xedit   +++|*         SET TRUNCATION FLAG AND CLEANUP.
04969  M00S04764.xedit   +++|
04970  M00S04765.xedit   +++| MDY18    SB2    -1
04971  M00S04766.xedit   +++|
04972  M00S04767.xedit   +++|*         SET END OF LINE AND COPY BACK TO *E.STR*.
04973  M00S04768.xedit   +++|
04974  M00S04769.xedit   +++| MDY19    MX6    2
04975  M00S04770.xedit   +++|          NO
04976  M00S04771.xedit   +++|          SA6    B3+         SA6/SA1 *MUST* BE IN THIS ORDER
04977  M00S04772.xedit   +++|          SB6    E.STR
04978  M00S04773.xedit   +++|          SA1    E.SCR
04979  M00S04774.xedit   +++| MDY20    BX6    X1
04980  M00S04775.xedit   +++|          SB6    B6+B1
04981  M00S04776.xedit   +++|          SA1    A1+B1
04982  M00S04777.xedit   +++|          SA6    B6-B1
04983  M00S04778.xedit   +++|          PL     X6,MDY20    IF NOT FINISHED
04984  M00S04779.xedit   +++|          SB6    E.STR-1     SET LINE WIDTH CELL
04985  M00S04780.xedit   +++|          SB3    B2          MOVE TRUNCATION FLAG
04986  M00S04781.xedit   +++|          RJ     TSL         TRIM ANY TRAILING SPACES
04987  M00S04782.xedit   +++| MDY      PS                 ENTRY/EXIT
04988  M00S04783.xedit   +++|
04989  M00S04784.xedit   +++|          CHAR   (SB5 -0),UA.
04990  M00S04785.xedit   +++|          SB2    B1          SET NOT AT END OF TEXT LINE
04991  M00S04786.xedit   +++|          SB3    E.SCR       SET NEXT SAVE CHAR ADDR
04992  M00S04787.xedit   +++|          SB4    E.SCR+159   SET LWA
04993  M00S04788.xedit   +++|          SA1    D.STR-1
04994  M00S04789.xedit   +++|          SA2    E.STR-1
04995  M00S04790.xedit   +++|          EQ     MDY7        BEGIN LOOP
04996  M00S04791.xedit   +++|
04997  M00S04792.xedit   +++|*         HANDLE SPECIAL CASES OF FULL BUFFER, ADDING CHARACTERS.
04998  M00S04793.xedit   +++|
04999  M00S04794.xedit   +++| MDY1     SX7    X6-1R
05000  M00S04795.xedit   +++|          ZR     X7,MDY7     IF SPACE (NO TRUNCATION)
05001  M00S04796.xedit   +++|          EQ     MDY18       TRUNCATE
05002  M00S04797.xedit   +++|
05003  M00S04798.xedit   +++|
05004  M00S04799.xedit   +++| MDY2     SX7    X6-1R
05005  M00S04800.xedit   +++|          ZR     X7,MDY9     IF SPACE (NO TRUNCATION)
05006  M00S04801.xedit   +++|          EQ     MDY18       TRUNCATE
05007  M00S04802.xedit   +++|
05008  M00S04803.xedit   +++| MDY3     SX7    X6-1R
05009  M00S04804.xedit   +++|          ZR     X7,MDY17    IF SPACE (NO TRUNCATION)
05010  M00S04805.xedit   +++|          EQ     MDY18       TRUNCATE
05011  M00S04806.xedit   +++|
05012  M00S04807.xedit   +++| MDY4     SX7    X6-1R
05013  M00S04808.xedit   +++|          ZR     X7,MDY13    IF SPACE (NO TRUNCATION)
05014  M00S04809.xedit   +++|          EQ     MDY18       TRUNCATE
05015  M00S04810.xedit   +++|
05016  M00S04811.xedit   +++| MPR      SPACE  4,15
05017  M00S04812.xedit   +++|**        MPR - MOVE POINTER.
05018  M00S04813.xedit   +++|*
05019  M00S04814.xedit   +++|*         ENTRY  (X1) = NUMBER OF LINES TO MOVE.
05020  M00S04815.xedit   +++|*
05021  M00S04816.xedit   +++|*         EXIT   IF (X1) IS NEGATIVE AT ENTRY, THE FILE IS REWOUND.
05022  M00S04817.xedit   +++|*
05023  M00S04818.xedit   +++|*         USES   A - 1, 3, 4, 6, 7.
05024  M00S04819.xedit   +++|*                X - 1, 2, 3, 4, 6, 7.
Line S04820 Modification History
M01 (Removed by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
05025  M01S04820.xedit21 ---|*                B - 7.
05026  M00S04821.xedit   +++|*
05027  M00S04822.xedit   +++|*         CALLS  GLN, TOP.
05028  M00S04823.xedit   +++|*
05029  M00S04824.xedit   +++|*         NOTES  IF (X1) = -0 AT ENTRY, THIS ROUTINE WILL FORCE A COPY
05030  M00S04825.xedit   +++|*                TO THE NEXT SCRATCH FILE AND RETURN THE POINTER
05031  M00S04826.xedit   +++|*                TO THE CURRENT POINTER POSITION.
05032  M00S04827.xedit   +++|
05033  M00S04828.xedit   +++|
05034  M00S04829.xedit   +++| MPR1     SA1    GLNA        RETRIEVE DESIRED LINE FROM HOLDING
05035  M00S04830.xedit   +++|          RJ     GLN         ADVANCE TO LINE
05036  M00S04831.xedit   +++| MPR      PS                 ENTRY/EXIT
05037  M00S04832.xedit   +++|
05038  M00S04833.xedit   +++|          SA3    IWHERE
05039  M00S04834.xedit   +++|          SA4    VERIFY
05040  M00S04835.xedit   +++|          MX2    1
05041  M00S04836.xedit   +++|          IX6    X3+X1       GET DESIRED *IWHERE* VALUE
05042  M00S04837.xedit   +++|          BX7    X2*X1       GET DIRECTION OF MOVE
Line S04838 Modification History
M01 (Removed by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
05043  M01S04838.xedit21 ---|          AX4    60          EXTEND STATUS OF VERIFY
05044  M01S04839.xedit21 ---|          SB7    X6
05045  M01S04840.xedit21 ---|          GT     B7,B0,MPR0  IF MOVING TO A LEGAL POSITION
Line S00068 Modification History
M01 (Added by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
05046  M01S00068.xedit21 +++|          SX3    B1
05047  M01S00069.xedit21 +++|          IX3    X6-X3
05048  M01S00070.xedit21 +++|          PL     X3,MPR0     IF MOVING TO A LEGAL POSITION
05049  M00S04841.xedit   +++|          SX6    B1          SET DESIRED TO 1
05050  M00S04842.xedit   +++| MPR0     IX6    X6+X2       SET SIGN BIT (*MPR* FLAG)
Line S00071 Modification History
M01 (Added by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
05051  M01S00071.xedit21 +++|          AX4    60          EXTEND STATUS OF VERIFY
05052  M01S00072.xedit21 +++|          SA6    GLNA        HOLD DESIRED POSITION
05053  M00S04843.xedit   +++|          BX7    -X7*X4      SET TEMPORARY VERIFICATION STATUS
Line S04844 Modification History
M01 (Removed by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
05054  M01S04844.xedit21 ---|          SA6    GLNA        HOLD DESIRED POSITION
05055  M00S04845.xedit   +++|          SA7    A4          RESET VERIFICATION FLAG
05056  M00S04846.xedit   +++|          PL     X1,MPR1     IF FORWARD MOTION
05057  M00S04847.xedit   +++|          RJ     TOP
05058  M00S04848.xedit   +++|          EQ     MPR1        MOVE TO DESIRED POSITION
05059  M00S04849.xedit   +++| RDF      SPACE  4,30
05060  M00S04850.xedit   +++|**        RDF - READ EDIT FILE LINE.
05061  M00S04851.xedit   +++|*
05062  M00S04852.xedit   +++|*         ENTRY  LINE CONTROL (*E.NMODE*, ETC) SET.
05063  M00S04853.xedit   +++|*
05064  M00S04854.xedit   +++|*         EXIT   LINE READ INTO *E,LINE*.
05065  M00S04855.xedit   +++|*                IF *E.NMODE* = ASCII, THEN THE LINE IS UNPACKED
05066  M00S04856.xedit   +++|*                TO *E.STR*.
05067  M00S04857.xedit   +++|*                THIS ROUTINE USUALLY EXITS NORMALLY. IF THE ROUTINE
05068  M00S04858.xedit   +++|*                ENCOUNTERS THE END OF INFORMATION, THE ROUTINE EXITS
05069  M00S04859.xedit   +++|*                TO *NCM*, UNLESS PRESETTING, THEN TO *RDF2*.
05070  M00S04860.xedit   +++|*                IF IN CREATION MODE, THIS ROUTINE RETURNS WITHOUT
05071  M00S04861.xedit   +++|*                READING.
05072  M00S04862.xedit   +++|*
05073  M00S04863.xedit   +++|*         USES   A - 1, 2, 3, 4, 6, 7.
05074  M00S04864.xedit   +++|*                X - 1, 2, 3, 4, 6, 7.
05075  M00S04865.xedit   +++|*                B - 2, 4, 6, 7.
05076  M00S04866.xedit   +++|*
Line S04867 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
05077  M01S04867.xedit20 ---|*         CALLS  CIO=, ERO, RTB, UPL, VIS.
Line S00018 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
05078  M01S00018.xedit20 +++|*         CALLS  CIO=, ERO, RTB, STL, UPL, VIS.
05079  M00S04868.xedit   +++|*
05080  M00S04869.xedit   +++|*         MACROS READ, READC, WRITEC.
05081  M00S04870.xedit   +++|*
05082  M00S04871.xedit   +++|*         NOTES  FILE MARKS WILL BE RETAINED ACROSS THE FILE UNLESS
05083  M00S04872.xedit   +++|*                THE CORRESPONDING COUNTER IS SET (DF/DR).
05084  M00S04873.xedit   +++|*                IN ADDITION, IF IN VERIFY MODE (AND TOGGLE SET), THE
05085  M00S04874.xedit   +++|*                MESSAGE --EOR--/--EOF-- WILL BE PRINTED.
05086  M00S04875.xedit   +++|*                AFTER EACH TEXT LINE IS READ, *TLX* (TELEX INTERRUPT)
05087  M00S04876.xedit   +++|*                IS CHECKED. IF SET, ROUTINE EXITS TO *NCM*.
05088  M00S04877.xedit   +++|
05089  M00S04878.xedit   +++|
05090  M00S04879.xedit   +++| RDF11    SA1    TLX
05091  M00S04880.xedit   +++|          ZR     X1,RDF      IF NO INTERRUPT
05092  M00S04881.xedit   +++|          RJ     STL         PROCESS INTERRUPT
05093  M00S04882.xedit   +++| RDF      PS                 ENTRY/EXIT
05094  M00S04883.xedit   +++|
05095  M00S04884.xedit   +++|*         FIRST WORD OF ROUTINE IS REPLACED WHEN OUT
05096  M00S04885.xedit   +++|*         OF CREATION MODE.
05097  M00S04886.xedit   +++|
05098  M00S04887.xedit   +++|          SA1    IWHERE      PREPARE FOR CREATION MODE CHECK
05099  M00S04888.xedit   +++|          EQ     RDF1        CHECK CREATION MODE
05100  M00S04889.xedit   +++|
05101  M00S04890.xedit   +++| RDF      RMT                NORMAL CODE FOLLOWS
05102  M00S04891.xedit   +++|          SB0    0           TEMPORARY
05103  M00S04892.xedit   +++|          SB0    0
05104  M00S04893.xedit   +++|          RMT
05105  M00S04894.xedit   +++|
05106  M00S04895.xedit   +++|          READC  E.IN,E.LINE,33D
05107  M00S04896.xedit   +++|          SB4    X1+B1
05108  M00S04897.xedit   +++|          NG     B4,RDF9     IF AT EOI
05109  M00S04898.xedit   +++|
05110  M00S04899.xedit   +++|*         WORD IS REPLACED IF TO VERIFY EOR/EOF.
05111  M00S04900.xedit   +++|
05112  M00S04901.xedit   +++| RDFA     NE     B4,B1,RDF3  IF EOR/EOF
05113  M00S04902.xedit   +++|          SB7    E.LINE
05114  M00S04903.xedit   +++|          RJ     RTB         TRIM OFF TRAILING BLANKS
05115  M00S04904.xedit   +++|          SA1    E.NMODE     GET NEEDED MODE
05116  M00S04905.xedit   +++|          MX6    0
05117  M00S04906.xedit   +++|          SA3    IW
05118  M00S04907.xedit   +++|          SA6    A1+B1       SET CURRENT MODE TO CODED
05119  M00S04908.xedit   +++|          SA6    A6+B1       SET NO MODIFICATIONS
05120  M00S04909.xedit   +++|          SA6    RC          SET DATA READ
05121  M00S04910.xedit   +++|          ZR     X1,RDF11    IF CODED MODE DESIRED
05122  M00S04911.xedit   +++|          SA1    E.LINE      CONVERT TO ASCII
05123  M00S04912.xedit   +++|          SB6    E.STR
05124  M00S04913.xedit   +++|          RJ     UPL
05125  M00S04914.xedit   +++|          SA6    E.STR-1     SET NUMBER OF CHARS IN LINE
05126  M00S04915.xedit   +++|          SX7    B1          SET CURRENT MODE TO ASCII
05127  M00S04916.xedit   +++|          SA7    E.CMODE     SET CURRENT MODE OF LINE
05128  M00S04917.xedit   +++|          EQ     RDF11       CHECK FOR INTERRUPT
05129  M00S04918.xedit   +++|
05130  M00S04919.xedit   +++|*         CREATION MODE CHECK.
05131  M00S04920.xedit   +++|
05132  M00S04921.xedit   +++| RDF1     NG     X1,RDF      IF IN CREATION MODE
05133  M00S04922.xedit   +++|          SA2    INITZ
05134  M00S04923.xedit   +++|          ZR     X2,RDF2     IF INITIALIZING (CREATION MODE POSSIBLE)
05135  M00S04924.xedit   +++|          SA1    RDFG        CHANGE INSTRUCTIONS
05136  M00S04925.xedit   +++|          BX6    X1
05137  M00S04926.xedit   +++|          SA6    RDF+1       CHANGE CREATION MODE CHECKER
05138  M00S04927.xedit   +++|          RJ     VIS         VOID INSTRUCTION STACK
05139  M00S04928.xedit   +++| RDF2     BSS    0
05140  M00S04929.xedit   +++| RDFG     BSS    0
05141  M00S04930.xedit   +++| RDF      HEREL
05142  M00S04931.xedit   +++|          JP     RDF+2       CONTINUE PROCESSING
05143  M00S04932.xedit   +++|
05144  M00S04933.xedit   +++|*         EOF/EOR ENCOUNTERED.
05145  M00S04934.xedit   +++|
05146  M00S04935.xedit   +++| RDF3     SB7    B6-E.LINE
05147  M00S04936.xedit   +++|          NZ     B7,BTL      IF ENCOUNTERED NON-TEXT LINE
05148  M00S04937.xedit   +++|          ZR     B4,RDF3.1   IF EOF
05149  M00S04938.xedit   +++|          SB4    B1+         SET (B4) = EOR TYPE
05150  M00S04939.xedit   +++| RDF3.1   SA1    ITOGGLF+B4
05151  M00S04940.xedit   +++|          SA2    VERIFY
05152  M00S04941.xedit   +++|          BX6    X1*X2
05153  M00S04942.xedit   +++|          PL     X6,RDF4     IF NO VERIFICATION
05154  M00S04943.xedit   +++|          SA3    RDFE
05155  M00S04944.xedit   +++|          SX6    B4
05156  M00S04945.xedit   +++|          BX7    X3
05157  M00S04946.xedit   +++|          SA7    RDFA        RESET CODE AT RDFA
05158  M00S04947.xedit   +++|          SA6    RDFB
05159  M00S04948.xedit   +++|          RJ     VIS         VOID INSTRUCTION STACK
Line S04949 Modification History
M01 (Removed by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
05160  M01S04949.xedit20 ---| RDF4     SA3    DF+B4       DELETION COUNT
Line S00019 Modification History
M01 (Added by) xedit20
Seq #  *Modification Id* Act 
----------------------------+
05161  M01S00019.xedit20 +++| RDF4     SA4    UPDATE
05162  M01S00020.xedit20 +++|          PL     X4,RDF6     IF IN LOOK MODE
05163  M01S00021.xedit20 +++|          SA3    DF+B4       DELETION COUNT
05164  M00S04950.xedit   +++|          SA4    RDFC+B4
05165  M00S04951.xedit   +++|          ZR     X3,RDF5     IF NOT DELETING RECORD MARK
Line S04952 Modification History
M01 (Removed by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
05166  M01S04952.xedit21 ---|          SX6    X3-1
Line S00073 Modification History
M01 (Added by) xedit21
Seq #  *Modification Id* Act 
----------------------------+
05167  M01S00073.xedit21 +++|          SX6    B1+
05168  M01S00074.xedit21 +++|          IX6    X3-X6
05169  M00S04953.xedit   +++|          SA6    A3          REPLACE COUNTER
05170  M00S04954.xedit   +++|          EQ     RDF6        READ, DELETE RECORD MARK
05171  M00S04955.xedit   +++|
05172  M00S04956.xedit   +++| RDF5     SX2    E.OUT
05173  M00S04957.xedit   +++|          MX6    1
05174  M00S04958.xedit   +++|          BX7    -X4         SET FUNCTION AND AUTO-RECALL
05175  M00S04959.xedit   +++|          SA6    RC          SET NO DATA READ
05176  M00S04960.xedit   +++|          RJ     CIO=
05177  M00S04961.xedit   +++| RDF6     READ   E.IN
05178  M00S04962.xedit   +++|          EQ     RDF2        RESTART ROUTINE
05179  M00S04963.xedit   +++|
05180  M00S04964.xedit   +++|*         VERIFY EOR/EOF.
05181  M00S04965.xedit   +++|
05182  M00S04966.xedit   +++| RDF7     SA1    RDFB
05183  M00S04967.xedit   +++|          MX6    1
05184  M00S04968.xedit   +++|          SX7    B4
05185  M00S04969.xedit   +++|          PX7    B6,X7
05186  M00S04970.xedit   +++|          SA7    RDFD        SAVE B4
05187  M00S04971.xedit   +++|          NG     X1,RDF8     IF NOTHING TO VERIFY
05188  M00S04972.xedit   +++|          SB4    EOF.+X1
05189  M00S04973.xedit   +++|          SA3    EXPLAIN
05190  M00S04974.xedit   +++|          SA4    MESSAGE+B4  GET MESSAGE POINTER
05191  M00S04975.xedit   +++|          AX3    12
05192  M00S04976.xedit   +++|          SA6    A1          CLEAR MESSAGE FLAG
05193  M00S04977.xedit   +++|          PX7    B4,X3
05194  M00S04978.xedit   +++|          SA7    A3          REPLACE EXPLAIN WORD
05195  M00S04979.xedit   +++|          WRITEC OUTPUT,X4
05196  M00S04980.xedit   +++| RDF8     SA1    RDFF        RESET INSTRUCTION WORD
05197  M00S04981.xedit   +++|          SA2    RDFD        RETRIEVE STATUS OF B4
05198  M00S04982.xedit   +++|          BX6    X1
05199  M00S04983.xedit   +++|          SB4    X2
05200  M00S04984.xedit   +++|          UX2,B6 X2          RETRIEVE *B6*
05201  M00S04985.xedit   +++|          SA6    RDFA
05202  M00S04986.xedit   +++|          RJ     VIS         VOID INSTRUCTION STACK
05203  M00S04987.xedit   +++|          JP     RDFA        CONTINUE AND VOID STACK
05204  M00S04988.xedit   +++|
05205  M00S04989.xedit   +++|*         EOI ENCOUNTERED.
05206  M00S04990.xedit   +++|
05207  M00S04991.xedit   +++| RDF9     BX6    X6-X6
05208  M00S04992.xedit   +++|          MX7    1
05209  M00S04993.xedit   +++|          SA6    DF          DELETE NO MORE EOF,S
05210  M00S04994.xedit   +++|          SA7    RDFB        SET NO VERIFICATION NECESSARY
05211  M00S04995.xedit   +++|          SA6    DR          DELETE NO MORE EOR,S
05212  M00S04996.xedit   +++|          SA1    INITZ
05213  M00S04997.xedit   +++|          ZR     X1,/PRESET/PRF1  IF PRESETTING XEDIT
05214  M00S04998.xedit   +++|          SA4    EXPLAIN
05215  M00S04999.xedit   +++|          SB2    EOI.
05216  M00S05000.xedit   +++|          AX4    12
05217  M00S05001.xedit   +++|          SA3    MESSAGE+B2
05218  M00S05002.xedit   +++|          PX6    B2,X4
05219  M00S05003.xedit   +++|          SA6    A4
05220  M00S05004.xedit   +++|          WRITEC OUTPUT,X3   ISSUE *END OF FILE* MESSAGE
05221  M00S05005.xedit   +++|          SA1    IWHERE
05222  M00S05006.xedit   +++|          AX1    1           ZERO IF CREATION MODE OR IWHERE = 1
05223  M00S05007.xedit   +++|          ZR     X1,RDF10    IF NO FILE
05224  M00S05008.xedit   +++|          RJ     ERD         PROCESS END OF FILE
05225  M00S05009.xedit   +++|          EQ     NCM         EXIT
05226  M00S05010.xedit   +++|
05227  M00S05011.xedit   +++|*         EOI AND NOTHING IN FILE.
05228  M00S05012.xedit   +++|
05229  M00S05013.xedit   +++| RDF10    SB6    =C* YOU DELETED THE ENTIRE FILE.*
05230  M00S05014.xedit   +++|          EQ     ABT         ABORT XEDIT
05231  M00S05015.xedit   +++|
05232  M00S05016.xedit   +++| RDFB     DATA   -1          EOF/EOR ENCOUNTERED (LEVEL NUMBER)
05233  M00S05017.xedit   +++| RDFC     CON    34B,24B     CIO CODES FOR WRITEF/WRITER
05234  M00S05018.xedit   +++| RDFD     BSSZ   1           STORAGE FOR B4 WHEN VERIFYING
05235  M00S05019.xedit   +++| RDFE     EQ     RDF7        CODE TO CAUSE EOR/EOF MESSAGE ON RE-ENTRY
05236  M00S05020.xedit   +++| RDFF     NE     B4,B1,RDF3  IF EOR/EOF (EXACT IMAGE OF *RDFA*)
05237  M00S05021.xedit   +++|          SB7    E.LINE
05238  M00S05022.xedit   +++| RDL      SPACE  4,30
05239  M00S05023.xedit   +++|*         RDL - READ DATA LINE INTO *D.LINE*.
05240  M00S05024.xedit   +++|*
05241  M00S05025.xedit   +++|*         ENTRY  NONE.
05242  M00S05026.xedit   +++|*
05243  M00S05027.xedit   +++|*         EXIT   (X1) = READC X1 REGESTER CONVENTION AS FOLLOWS -
05244  M00S05028.xedit   +++|*                (X1) = 0 FOR TRANSFER COMPLETE.
05245  M00S05029.xedit   +++|*                (X1) = -1 IF EOF DETECTED ON FILE.
05246  M00S05030.xedit   +++|*                (X1) = -2 IF EOI DETECTED ON FILE.
05247  M00S05031.xedit   +++|*                (X1) = ADDRESS PLUS ONE OF LAST WORD TRANSFERED TO
05248  M00S05032.xedit   +++|*                       WORKING BUFFER, IF EOR WAS DETECTED ON FILE
05249  M00S05033.xedit   +++|*                       BEFORE TRANSFER WAS COMPLETE.
05250  M00S05034.xedit   +++|*                IF (X1) .NE. 0, THEN *D.LINE* IS NOT CHANGED.
05251  M00S05035.xedit   +++|*                TO *ABT* IF FATAL ERROR.
05252  M00S05036.xedit   +++|*                IF (X1) = 0, THEN THE FOLLOWING IS ALSO DONE -
05253  M00S05037.xedit   +++|*                IF *E.NMODE* = 1 (ASCII), THEN THE DATA LINE IS
05254  M00S05038.xedit   +++|*                UNPACKED TO *D.STR*, AND THE DATA LINE WIDTH IS
05255  M00S05039.xedit   +++|*                ENTERED INTO *D.STR*.
05256  M00S05040.xedit   +++|*
05257  M00S05041.xedit   +++|*         USES   A - 1, 2, 3, 4, 6, 7.
05258  M00S05042.xedit   +++|*                X - 1, 2, 3, 4, 6, 7.
05259  M00S05043.xedit   +++|*                B - 2, 3, 5, 6, 7.
05260  M00S05044.xedit   +++|*
05261  M00S05045.xedit   +++|*         CALLS  NDL, RTB, RTOA, UPL.
05262  M00S05046.xedit   +++|*
05263  M00S05047.xedit   +++|*         MACROS READ, READC.
05264  M00S05048.xedit   +++|
05265  M00S05049.xedit   +++|
05266  M00S05050.xedit   +++| RDL8     SX7    2R          SET BLANK LINE AS LINE
05267  M00S05051.xedit   +++|          LX7    -12
05268  M00S05052.xedit   +++|          SA7    D.LINE
05269  M00S05053.xedit   +++| RDL9     SA2    A2
05270  M00S05054.xedit   +++|          PX6    B0,X2
05271  M00S05055.xedit   +++|          SA6    A2          *C.STR*-1
05272  M00S05056.xedit   +++|          MX1    0           SET SUCCESSFUL READ
05273  M00S05057.xedit   +++|
05274  M00S05058.xedit   +++|*         CHECK DESIRED MODE OF LINE.
05275  M00S05059.xedit   +++|
05276  M00S05060.xedit   +++| RDL10    SA2    E.NMODE
05277  M00S05061.xedit   +++|          ZR     X2,RDL      IF CODED
05278  M00S05062.xedit   +++|          SA1    D.LINE
05279  M00S05063.xedit   +++|          SB6    D.STR
05280  M00S05064.xedit   +++|          RJ     UPL         UNPACK DATA LINE
05281  M00S05065.xedit   +++|          MX1    0           SET SUCCESSFUL READ
05282  M00S05066.xedit   +++|          SA6    D.STR-1     SET LENGTH
05283  M00S05067.xedit   +++|
05284  M00S05068.xedit   +++| RDL      PS                 ENTRY/EXIT
05285  M00S05069.xedit   +++|          SA1    PREFIX
05286  M00S05070.xedit   +++|          SA2    C.STR-1
05287  M00S05071.xedit   +++|          LX1    59-/PREFIX/PLUS
05288  M00S05072.xedit   +++|          UX3    B3,X2
05289  M00S05073.xedit   +++| .CYB     IF     DEF,CYBRNET
05290  M00S05074.xedit   +++|          PL     X1,RDL4     IF + PREFIX GET DATA FROM COMMAND
05291  M00S05075.xedit   +++| .CYB     ELSE
05292  M00S05076.xedit   +++|          NG     X1,RDL4     IF + PREFIX (READ REQUIRED)
05293  M00S05077.xedit   +++| .CYB     ENDIF
05294  M00S05078.xedit   +++|          LE     B3,RDL3     IF POINTER FLAG IS READ
05295  M00S05079.xedit   +++|          SA4    A2+B3       GET NEXT CHARACTER FROM COMMAND LINE
05296  M00S05080.xedit   +++|          SB4    X2          DELIMITER
05297  M00S05081.xedit   +++|          NG     X4,RDL8     IF AT END OF LINE
05298  M00S05082.xedit   +++|          SB6    A2+B3       GET FIRST CHARACTER
05299  M00S05083.xedit   +++|          SB7    D.LINE      SET DESTINATION FOR RTOA
05300  M00S05084.xedit   +++| RDL1     SB5    X4
05301  M00S05085.xedit   +++|          EQ     B5,B4,RDL2  IF FOUND DELIMITER
05302  M00S05086.xedit   +++|          SB3    B3+B1
05303  M00S05087.xedit   +++|          SA4    A2+B3       GET NEXT CHARACTER
05304  M00S05088.xedit   +++|          PL     X4,RDL1     IF NOT AT END OF LINE
05305  M00S05089.xedit   +++|          SB3    -B1         SET POSITION
05306  M00S05090.xedit   +++| RDL2     MX6    1
05307  M00S05091.xedit   +++|          SB2    A4          SET END OF DATA LINE ADDRESS
05308  M00S05092.xedit   +++|          BX6    X6+X4
05309  M00S05093.xedit   +++|          SB3    B3+B1       SET NEXT AVAILABLE CHARACTER
05310  M00S05094.xedit   +++|          SA6    A4          SET PSEUDO END OF LINE
05311  M00S05095.xedit   +++|          PX7    B3,X2
05312  M00S05096.xedit   +++|          SA7    A2          REPLACE CHARACTER POINTER
05313  M00S05097.xedit   +++|          RJ     RTOA        PACK DATA LINE TO D.LINE
05314  M00S05098.xedit   +++|          ZR     B3,RDL9     IF AT REAL END OF LINE
05315  M00S05099.xedit   +++|          SA2    B2
05316  M00S05100.xedit   +++|          MX1    0           SET READ SUCCESSFUL
05317  M00S05101.xedit   +++|          SX6    X2          CLEAR PSEUDO END LINE
05318  M00S05102.xedit   +++|          SA6    A2
05319  M00S05103.xedit   +++|          EQ     RDL10       CHECK MODE OF LINE
05320  M00S05104.xedit   +++|
05321  M00S05105.xedit   +++|*         READ REQUIRED FROM COMMAND LINE SOURCE.
05322  M00S05106.xedit   +++|
05323  M00S05107.xedit   +++| RDL3     RJ     NDL
05324  M00S05108.xedit   +++|          ZR     X1,RDL+1    IF NOT <CR>, RETRY READ
05325  M00S05109.xedit   +++|          EQ     RDL         ELSE RETURN
05326  M00S05110.xedit   +++|
05327  M00S05111.xedit   +++|*         READ REQUIRED FROM PRIMARY INPUT SOURCE.
05328  M00S05112.xedit   +++|
05329  M00S05113.xedit   +++| RDL4     SA1    NCLA
05330  M00S05114.xedit   +++|          SA3    TTYIN
05331  M00S05115.xedit   +++|          BX6    X1+X3
05332  M00S05116.xedit   +++|          SA6    A1          REPLACE READ REQ,D FLAG
05333  M00S05117.xedit   +++|          NZ     X1,RDL6     IF READ NOT NEEDED
05334  M00S05118.xedit   +++| RDL5     READ   INPUT,RECALL
05335  M00S05119.xedit   +++| RDL6     READC  INPUT,D.LINE,33D  READ DATA
05336  M00S05120.xedit   +++|          ZR     X1,RDL7     IF SUCCESSFUL
05337  M00S05121.xedit   +++|          SA2    TTYIN
05338  M00S05122.xedit   +++|          SB6    =C* BATCH MODE ABORT. END OF RECORD ENCOUNTERED.*
05339  M00S05123.xedit   +++|          SA3    TLX
05340  M00S05124.xedit   +++|          MX6    0
05341  M00S05125.xedit   +++|          SA6    A3          CLEAR INTERRUPT STATUS
05342  M00S05126.xedit   +++|          NZ     X2,ABT      IF NOT *TTY* INPUT FILE
05343  M00S05127.xedit   +++|          NZ     X3,RDL5     IF INTERRUPTED
05344  M00S05128.xedit   +++|          EQ     RDL         RETURN
05345  M00S05129.xedit   +++|
05346  M00S05130.xedit   +++| RDL7     SB7    D.LINE
05347  M00S05131.xedit   +++|          RJ     RTB         TRIM TRAILING BLANKS
05348  M00S05132.xedit   +++|          BX7    X7-X7
05349  M00S05133.xedit   +++|          MX1    0           SET SUCCESSFUL READ
05350  M00S05134.xedit   +++|          SA7    TLX         IGNORE INTERRUPTS
05351  M00S05135.xedit   +++|          EQ     RDL10       CHECK MODE OF LINE
05352  M00S05136.xedit   +++|
05353  M00S05137.xedit   +++| RTA      SPACE  4,10
05354  M00S05138.xedit   +++|**        RTA - CONVERT 160K1 TO C FORMAT (MAX 33 WORDS).
05355  M00S05139.xedit   +++|*
05356  M00S05140.xedit   +++|*         ENTRY  (B6) = INCOMING STRING ADDRESS.
05357  M00S05141.xedit   +++|*                (B7) = OUTGOING STRING ADDRESS.
05358  M00S05142.xedit   +++|*
05359  M00S05143.xedit   +++|*         EXIT   STRING IS CONVERTED.
05360  M00S05144.xedit   +++|*
05361  M00S05145.xedit   +++|*         USES   A - 1, 6.
05362  M00S05146.xedit   +++|*                X - 1, 2, 6, 7.
05363  M00S05147.xedit   +++|*                B - 4, 6, 7.
05364  M00S05148.xedit   +++|
05365  M00S05149.xedit   +++|
05366  M00S05150.xedit   +++| RTA      PS                 ENTRY/EXIT
05367  M00S05151.xedit   +++| RTOA     EQU    RTA
05368  M00S05152.xedit   +++|          SB4    6           SHIFT VALUE
05369  M00S05153.xedit   +++|          BX6    X6-X6       CLEAR ASSEMBLY
05370  M00S05154.xedit   +++|          MX7    1           POSITION INDICATOR
05371  M00S05155.xedit   +++|          SX1    B0+         INITIALIZE FOR POSSIBLE BLANK LINE
05372  M00S05156.xedit   +++|          EQ     RTA2        BEGIN CONVERSION
05373  M00S05157.xedit   +++|
05374  M00S05158.xedit   +++| RTA1     LX7    6           SHIFT POSITION
05375  M00S05159.xedit   +++|          BX6    X6+X1       MERGE CHARACTERS
05376  M00S05160.xedit   +++|          PL     X7,RTA2     IF NOT FULL WORD
05377  M00S05161.xedit   +++|          SA6    B7
05378  M00S05162.xedit   +++|          SB7    B7+1
05379  M00S05163.xedit   +++|          BX6    X6-X6       CLEAR ASSEMBLY
05380  M00S05164.xedit   +++| RTA2     BX2    X1
05381  M00S05165.xedit   +++|          SA1    B6          GET NEXT CHARACTER
05382  M00S05166.xedit   +++|          NG     X1,RTA4     IF END OF BUFFER REACHED
05383  M00S05167.xedit   +++| RTA3     LX6    6
05384  M00S05168.xedit   +++|          SB6    B6+1
05385  M00S05169.xedit   +++|          AX2    B4,X1
05386  M00S05170.xedit   +++|          ZR     X2,RTA1     IF NO ASCII ESCAPE CHARACTER
05387  M00S05171.xedit   +++|          LX7    6
05388  M00S05172.xedit   +++|          LX6    6
05389  M00S05173.xedit   +++|          PL     X7,RTA1     IF ASCII CAN FIT INTO THIS WORD
05390  M00S05174.xedit   +++|          LX6    -6          SHIFT ASSEMBLY BACK
05391  M00S05175.xedit   +++|          LX1    -7
05392  M00S05176.xedit   +++|          BX6    X6+X2
05393  M00S05177.xedit   +++|          LX7    6
05394  M00S05178.xedit   +++|          AX1    60-7        REMOVE ASCII ESCAPE
05395  M00S05179.xedit   +++|          SA6    B7          SAVE WORD
05396  M00S05180.xedit   +++|          SB7    B7+B1
05397  M00S05181.xedit   +++|          BX6    X1
05398  M00S05182.xedit   +++|          EQ     RTA2        LOOP, PROCESS NEXT WORD
05399  M00S05183.xedit   +++|
05400  M00S05184.xedit   +++| RTA4     SB6    B6-1        RESET CHARACTER POINTER
05401  M00S05185.xedit   +++|          ZR     X2,RTA6     IF LAST CHARACTER WAS A COLON
05402  M00S05186.xedit   +++| RTA5     SA1    =40004000400040004000B
05403  M00S05187.xedit   +++|          SA6    B7
05404  M00S05188.xedit   +++|          BX2    X1*X7
05405  M00S05189.xedit   +++|          NZ     X2,RTA7     IF ON BYTE BOUNDRY
05406  M00S05190.xedit   +++|
05407  M00S05191.xedit   +++| RTA6     SX1    1R
05408  M00S05192.xedit   +++|          EQ     RTA3        BLANK FILL TO BYTE BOUNDARY
05409  M00S05193.xedit   +++|
05410  M00S05194.xedit   +++| RTA7     NG     X7,RTA      IF WORD IS FULL, RETURN
05411  M00S05195.xedit   +++| RTA8     LX7    12
05412  M00S05196.xedit   +++|          LX6    12
05413  M00S05197.xedit   +++|          PL     X7,RTA8     IF NOT LEFT JUSTIFIED
05414  M00S05198.xedit   +++|          SA6    B7
05415  M00S05199.xedit   +++|          ZR     X6,RTA      IF ASSURE A ZERO WORD, RETURN
05416  M00S05200.xedit   +++|          BX6    X6-X6
05417  M00S05201.xedit   +++|          SA6    A6+B1
05418  M00S05202.xedit   +++|          EQ     RTA         RETURN
05419  M00S05203.xedit   +++| RTB      SPACE  4,15
05420  M00S05204.xedit   +++|**        RTB - REMOVE TRAILING BLANKS FROM A CODED LINE.
05421  M00S05205.xedit   +++|*
05422  M00S05206.xedit   +++|*         ENTRY  (B6) = LWA+1 OF CODED LINE.
05423  M00S05207.xedit   +++|*                (B7) = FWA OF CODED LINE.
05424  M00S05208.xedit   +++|*
05425  M00S05209.xedit   +++|*         EXIT   UNSIGNIFICANT BLANKS REMOVED FROM LINE.
05426  M00S05210.xedit   +++|*
05427  M00S05211.xedit   +++|*         USES   A - 1, 2, 3, 6, 7.
05428  M00S05212.xedit   +++|*                X - 1, 2, 3, 4, 6, 7.
05429  M00S05213.xedit   +++|*                B - 3, 5, 6.
05430  M00S05214.xedit   +++|*
05431  M00S05215.xedit   +++|*         CALLS  RTA, UPL.
05432  M00S05216.xedit   +++|*
05433  M00S05217.xedit   +++|*         NOTES  THIS ROUTINE IS DESIGNED TO BE CALLED IMMEDIATELY
05434  M00S05218.xedit   +++|*                FOLLOWING A CALL TO *RDC*. THE ONLY PRESET NEEDED
05435  M00S05219.xedit   +++|*                IN THAT CASE IS TO SET B7. B6 IS SET VIA *RDC*.
05436  M00S05220.xedit   +++|
05437  M00S05221.xedit   +++|
05438  M00S05222.xedit   +++| RTB7     SA1    B6-B1       GET NEXT WORD
05439  M00S05223.xedit   +++|          SB6    A1
05440  M00S05224.xedit   +++|          LT     B6,B7,RTB5  IF BEGINNING OF LINE
05441  M00S05225.xedit   +++| RTB8     BSS    0
05442  M00S05226.xedit   +++|          BX6    -X2-X1      111111 WHERE BLANK
05443  M00S05227.xedit   +++|          BX4    X3*X6       100000 WHERE POSSIBLE BLANK
05444  M00S05228.xedit   +++|          BX6    -X3*X6      011111 WHERE POSSIBLE BLANK
05445  M00S05229.xedit   +++|          LX4    -5          000001 WHERE POSSIBLE BLANK
05446  M00S05230.xedit   +++|          IX6    X4+X6       100000 WHERE BLANK
05447  M00S05231.xedit   +++|          BX6    X3*X6       100000 ONLY WHERE BLANK
05448  M00S05232.xedit   +++|          ZR     X6,RTB5     IF NO BLANKS
05449  M00S05233.xedit   +++|          SX4    B3
05450  M00S05234.xedit   +++|          IX4    X1-X4       FIND LEFT MOST BIT
05451  M00S05235.xedit   +++|          BX4    X1-X4       REMOVE EXCESS UPPER BITS
05452  M00S05236.xedit   +++|          AX4    1           POSITION MASK
05453  M00S05237.xedit   +++|          BX4    X3*X4       100000 ONLY WHERE RIGHT 00B
05454  M00S05238.xedit   +++|          BX6    X6+X4       MERGE BLANKS AND 00B
05455  M00S05239.xedit   +++|          BX4    X6-X3       40 WHERE NOT (BLANK.OR.RIGHT 00)
05456  M00S05240.xedit   +++|          LX4    -1
05457  M00S05241.xedit   +++|          IX6    X4-X7       FIND LEFT MOST BIT
05458  M00S05242.xedit   +++|          BX4    X4-X6       REMOVE EXCESS UPPER BITS
05459  M00S05243.xedit   +++|          AX4    5           POSITION MASK
05460  M00S05244.xedit   +++|          BX6    -X4*X1      REMOVE CHARACTERS FROM WORD
05461  M00S05245.xedit   +++|          IX1    X6-X1       COMPARE INITIAL AND FINAL
05462  M00S05246.xedit   +++|          ZR     X1,RTB4     IF NO CHANGE
05463  M00S05247.xedit   +++|          SA6    A1          REPLACE WORD
05464  M00S05248.xedit   +++|          SB3    B0          SET ZERO SEARCH OFF
05465  M00S05249.xedit   +++|          NG     X4,RTB7     IF THIS WORD ENTIRELY ZEROED
05466  M00S05250.xedit   +++|          BX7    X4          CHECK LAST CHARACTER FOR 00B
05467  M00S05251.xedit   +++|          AX7    6
05468  M00S05252.xedit   +++|          BX4    X7-X4       77 AT LAST CHAR REMOVED
05469  M00S05253.xedit   +++|          SA3    =00770077007700770077B
05470  M00S05254.xedit   +++|          BX7    X4*X3
05471  M00S05255.xedit   +++|          NZ     X7,RTB9     IF LAST CHAR REMOVED IS ODD-ADD BLANK
05472  M00S05256.xedit   +++|          LX4    6
05473  M00S05257.xedit   +++|          BX7    X6*X4       =0 IF LAST CHARACTER IS 00B
05474  M00S05258.xedit   +++|          NZ     X7,RTB      IF NEXT TO LAST NOT 00B
05475  M00S05259.xedit   +++|          BX3    X4          ADD 2 BLANKS
05476  M00S05260.xedit   +++|          LX4    -6
05477  M00S05261.xedit   +++|          LX3    -12
05478  M00S05262.xedit   +++|          BX4    X4+X3
05479  M00S05263.xedit   +++| RTB9     BX2    X4*X2       ADD 1 OR 2 BLANKS
05480  M00S05264.xedit   +++|          IX6    X6+X2
05481  M00S05265.xedit   +++|          SA6    A1
05482  M00S05266.xedit   +++|
05483  M00S05267.xedit   +++| RTB      PS                 ENTRY/EXIT
05484  M00S05268.xedit   +++|          SA1    B6-B1
05485  M00S05269.xedit   +++|          NZ     X1,RTB0     IF WORD CONTAINS DATA
05486  M00S05270.xedit   +++|          SB6    B6-B1
05487  M00S05271.xedit   +++|
05488  M00S05272.xedit   +++|*         CHECK FOR AUTOMATIC TRUNCATION TO 160 CHARACTERS.
05489  M00S05273.xedit   +++|
05490  M00S05274.xedit   +++| RTB0     SX7    B6-B7
05491  M00S05275.xedit   +++|          SB3    B1          SET CHECK FOR TRAILING 00,S
05492  M00S05276.xedit   +++|          SX7    X7-16D
05493  M00S05277.xedit   +++|          NG     X7,RTB3     IF .LT. 16 WORDS SIGNIFICANT NO TRUNCATE
05494  M00S05278.xedit   +++|          SA2    AS
05495  M00S05279.xedit   +++|          SX6    2R          PREPARE BLANKS
05496  M00S05280.xedit   +++|          ZR     X2,RTB2     IF NOT IN ASCII MODE (TRUNCATE)
05497  M00S05281.xedit   +++|          SA2    =74747474747474747474B
05498  M00S05282.xedit   +++|          SA3    =01010101010101010101B
05499  M00S05283.xedit   +++|          SB5    B6-1
05500  M00S05284.xedit   +++|
05501  M00S05285.xedit   +++|*         SEARCH FOR 74/76 CODES.
05502  M00S05286.xedit   +++|
05503  M00S05287.xedit   +++| RTB1     SA1    B5          GET CURRENT WORD
05504  M00S05288.xedit   +++|          BX4    -X1*X3      ISOLATE COMPLEMENT OF LOWER BIT
05505  M00S05289.xedit   +++|          BX7    X2*X1       GET UPPER 4 BITS
05506  M00S05290.xedit   +++|          LX4    2
05507  M00S05291.xedit   +++|          SB5    B5-B1
05508  M00S05292.xedit   +++|          IX4    X4+X7
05509  M00S05293.xedit   +++|          BX4    X4*X3
05510  M00S05294.xedit   +++|          NZ     X4,RTB6     IF WORD CONTAINS ASCII
05511  M00S05295.xedit   +++|          GE     B5,B7,RTB1  IF MORE TO CHECK
05512  M00S05296.xedit   +++| RTB2     LX6    -12         ASSURE TRUNCATION BUT HANDLE COLON
05513  M00S05297.xedit   +++|          SA6    B7+16D
05514  M00S05298.xedit   +++|          SB6    A6+B1       RESET LWA+1 POINTER
05515  M00S05299.xedit   +++| RTB3     SA2    =10H
05516  M00S05300.xedit   +++|          SA3    =40404040404040404040B
05517  M00S05301.xedit   +++|          SX7    B1
05518  M00S05302.xedit   +++|          EQ     RTB7        REMOVE TRAILING BLANKS
05519  M00S05303.xedit   +++|
05520  M00S05304.xedit   +++| RTB4     NZ     X4,RTB      IF TRAILING ZEROS LOOKED FOR AND FOUND
05521  M00S05305.xedit   +++|
05522  M00S05306.xedit   +++|*         HERE IF NO BLANKS FOUND IN WORD.
05523  M00S05307.xedit   +++|
05524  M00S05308.xedit   +++| RTB5     NZ     B3,RTB      IF NO CHANGES MADE
05525  M00S05309.xedit   +++|          SX6    2R          PLACE BLANK IN LAST WORD. JUST IN CASE
05526  M00S05310.xedit   +++|          LX6    -12         OF POSSIBLE 00B CHARACTER IN CURRENT WORD
05527  M00S05311.xedit   +++|          SA6    A1+B1
05528  M00S05312.xedit   +++|          EQ     RTB         RETURN
05529  M00S05313.xedit   +++|
05530  M00S05314.xedit   +++|*         PROCESS TRUNCATION WHEN UNPACK NECESSARY.
05531  M00S05315.xedit   +++|
05532  M00S05316.xedit   +++| RTB6     SA1    B7          SET FIRST WORD
05533  M00S05317.xedit   +++|          SB6    E.SCR       SET TO SCRATCH AREA
05534  M00S05318.xedit   +++|          SB3    B7          SAVE FWA OF CODED BUFFER
05535  M00S05319.xedit   +++|          RJ     UPL
05536  M00S05320.xedit   +++|          SB6    E.SCR
05537  M00S05321.xedit   +++|          SB7    B3
05538  M00S05322.xedit   +++|          RJ     RTA         RE-PACK TRUNCATED LINE
05539  M00S05323.xedit   +++|          EQ     RTB         RETURN
05540  M00S05324.xedit   +++| SAC      SPACE  4,15
05541  M00S05325.xedit   +++|**        SAC - SET ASCII MODE LINE AND READS.
05542  M00S05326.xedit   +++|*
05543  M00S05327.xedit   +++|*         ENTRY  NONE.
05544  M00S05328.xedit   +++|*
05545  M00S05329.xedit   +++|*         EXIT   LINE IN *E.STR* BUFFER,
05546  M00S05330.xedit   +++|*                *E.NMODE* SET TO ASCII.
05547  M00S05331.xedit   +++|*
05548  M00S05332.xedit   +++|*         USES   A - 1, 6, 7.
05549  M00S05333.xedit   +++|*                X - 1, 6, 7.
05550  M00S05334.xedit   +++|*                B - 6.
05551  M00S05335.xedit   +++|*
05552  M00S05336.xedit   +++|*         CALLS  UPL.
05553  M00S05337.xedit   +++|
05554  M00S05338.xedit   +++|
05555  M00S05339.xedit   +++| SAC      PS                 ENTRY/EXIT
05556  M00S05340.xedit   +++|          SA1    E.CMODE
05557  M00S05341.xedit   +++|          SX6    B1
05558  M00S05342.xedit   +++|          BX1    X1-X6
05559  M00S05343.xedit   +++|          SA6    A1-B1       SET E.NMODE TO ASCII
05560  M00S05344.xedit   +++|          ZR     X1,SAC      IF LINE ALREADY UNPACKED
05561  M00S05345.xedit   +++|          MX7    0
05562  M00S05346.xedit   +++|          SA6    A1          SET CURRENT MODE TO ASCII
05563  M00S05347.xedit   +++|          SA7    A1+B1       SET NO LINE MODIFICATIONS
05564  M00S05348.xedit   +++|
05565  M00S05349.xedit   +++|*         UNPACK LINE.
05566  M00S05350.xedit   +++|
05567  M00S05351.xedit   +++|          SA1    E.LINE
05568  M00S05352.xedit   +++|          SB6    E.STR
05569  M00S05353.xedit   +++|          RJ     UPL         UNPACK LINE
05570  M00S05354.xedit   +++|          SA6    E.STR-1     SET NUMBER OF CHARACTERS IN LINE
05571  M00S05355.xedit   +++|          EQ     SAC         RETURN
05572  M00S05356.xedit   +++| SCD      SPACE  4,10
05573  M00S05357.xedit   +++|**        SCD - SET CODED LINE.
05574  M00S05358.xedit   +++|*
05575  M00S05359.xedit   +++|*         ENTRY  NONE.
05576  M00S05360.xedit   +++|*
05577  M00S05361.xedit   +++|*         EXIT   CURRENT LINE IN *E.LINE*.
05578  M00S05362.xedit   +++|*                *E.CMODE* SET TO CODED.
05579  M00S05363.xedit   +++|*
05580  M00S05364.xedit   +++|*         USES   A - 1, 2, 6.
05581  M00S05365.xedit   +++|*                X - 1, 2, 6.
05582  M00S05366.xedit   +++|*                B - 6, 7.
05583  M00S05367.xedit   +++|*
05584  M00S05368.xedit   +++|*         CALLS  RTA.
05585  M00S05369.xedit   +++|
05586  M00S05370.xedit   +++|
05587  M00S05371.xedit   +++| SCD      PS                 ENTRY/EXIT
05588  M00S05372.xedit   +++|          SA1    E.CMODE
05589  M00S05373.xedit   +++|          MX6    0
05590  M00S05374.xedit   +++|          SA2    A1+B1       GET E.LMOD
05591  M00S05375.xedit   +++|          SA6    A1-B1       SET E.NMODE TO CODED
05592  M00S05376.xedit   +++|          SA6    A1          SET CURRENT MODE TO CODED
05593  M00S05377.xedit   +++|          ZR     X2,SCD      IF NO LINE MODIFICATIONS
05594  M00S05378.xedit   +++|          SA6    A1+B1       SET NO MODIFICATIONS
05595  M00S05379.xedit   +++|          SB6    E.STR
05596  M00S05380.xedit   +++|          SB7    E.LINE
05597  M00S05381.xedit   +++|          RJ     RTA         PACK LINE
05598  M00S05382.xedit   +++|          EQ     SCD         RETURN
05599  M00S05383.xedit   +++| STL      SPACE  4,15
05600  M00S05384.xedit   +++|**        STL - PROCESS TLX INTERRUPTS.
05601  M00S05385.xedit   +++|*
05602  M00S05386.xedit   +++|*         ENTRY  NONE.
05603  M00S05387.xedit   +++|*
05604  M00S05388.xedit   +++|*         EXIT   RETURNS TO CALLER IF NO TLX INTERRUPT SENSED,
05605  M00S05389.xedit   +++|*                ELSE REWINDS THE OUTPUT BUFFER AND EXITS TO *CER1* TO
05606  M00S05390.xedit   +++|*                POP THE INPUT STACK.
05607  M00S05391.xedit   +++|*
05608  M00S05392.xedit   +++|*         USES   A - 1, 2, 6.
05609  M00S05393.xedit   +++|*                X - 1, 2, 6.
05610  M00S05394.xedit   +++|*
05611  M00S05395.xedit   +++|*         MACROS DISTC, RECALL.
05612  M00S05396.xedit   +++|
05613  M00S05397.xedit   +++|
05614  M00S05398.xedit   +++| STL      PS                 ENTRY/EXIT
05615  M00S05399.xedit   +++|          MX6    0
05616  M00S05400.xedit   +++|          SA2    TLX
05617  M00S05401.xedit   +++|          ZR     X2,STL      IF NO INTERRUPT, RETURN
05618  M00S05402.xedit   +++|          SA6    A2
05619  M00S05403.xedit   +++|          DISTC  ON,TLX
05620  M00S05404.xedit   +++|          RECALL OUTPUT
05621  M00S05405.xedit   +++|          SA1    =XOUTPUT+1
05622  M00S05406.xedit   +++|          MX6    -18
05623  M00S05407.xedit   +++|          BX6    -X6*X1
05624  M00S05408.xedit   +++|          SA6    A1+1        IN=OUT=FIRST
05625  M00S05409.xedit   +++|          SA6    A6+1
05626  M00S05410.xedit   +++|          EQ     CER1        GET NEXT INPUT LINE, EXIT
05627  M00S05411.xedit   +++| STK      SPACE  4,15
05628  M00S05412.xedit   +++|**        STK - STACK INPUT DEVICES.
05629  M00S05413.xedit   +++|*
05630  M00S05414.xedit   +++|*         ENTRY  (A1) = NEW DEVICE ADDRESS (EG. *I.DEV*).
05631  M00S05415.xedit   +++|*
05632  M00S05416.xedit   +++|*         EXIT   RETURNS IF DEVICE IS NOT AVAILABLE (USUALLY BUSY),
05633  M00S05417.xedit   +++|*                ELSE, ROUTINE EXITS TO NCM TO PROCESS THE NEW DEVICE.
05634  M00S05418.xedit   +++|*
05635  M00S05419.xedit   +++|*         USES   A - 1, 3, 4, 6, 7.
05636  M00S05420.xedit   +++|*                X - 1, 3, 4, 6, 7.
05637  M00S05421.xedit   +++|*                B- 7.
05638  M00S05422.xedit   +++|*
05639  M00S05423.xedit   +++|*         CALLS  UPL.
05640  M00S05424.xedit   +++|*
05641  M00S05425.xedit   +++|*         NOTES  THIS ROUTINE ASSUMES THAT .LINE FOR THE DEVICE HAS
05642  M00S05426.xedit   +++|*         BEEN PRE-LOADED WITH THE SPECIFIED COMMAND LINE.
05643  M00S05427.xedit   +++|
05644  M00S05428.xedit   +++|
05645  M00S05429.xedit   +++| STK      PS                 ENTRY/EXIT
05646  M00S05430.xedit   +++|          SA3    C.STR-1     MOVE TO DEVICE WORD
05647  M00S05431.xedit   +++|          SA4    C.ON        GET POINTER TO CURRENT DEVICE
05648  M00S05432.xedit   +++|          BX6    X3
05649  M00S05433.xedit   +++|          SA6    X4+1
05650  M00S05434.xedit   +++|
05651  M00S05435.xedit   +++|*         UNSTACK ANYTHING THAT CAN BE SAFELY REMOVED.
05652  M00S05436.xedit   +++|
05653  M00S05437.xedit   +++| STK1     SA3    X4+B1       GET CHARACTER POINTER WORD
05654  M00S05438.xedit   +++|          SX6    X4-I.DEV
05655  M00S05439.xedit   +++|          UX7,B7 X3          B7 .LE. 0, IF READY TO READ NEXT LINE
05656  M00S05440.xedit   +++|          ZR     X6,STK2     IF ON PRIMARY INPUT DEVICE
05657  M00S05441.xedit   +++|          GT     B7,STK2     IF DEVICE NOT AT END OF LINE
05658  M00S05442.xedit   +++|          SA3    X4-1        OBTAIN FET POINTER FOR DEVICE
05659  M00S05443.xedit   +++|          BX6    X3
05660  M00S05444.xedit   +++|          AX3    60          EXTEND *CMDPOP* FLAG
05661  M00S05445.xedit   +++|          BX6    -X3*X6      0, IF OK TO POP DEVICE
05662  M00S05446.xedit   +++|          NZ     X6,STK2     IF (FET) .AND. (.NOT. *CMDPOP*)
05663  M00S05447.xedit   +++|
05664  M00S05448.xedit   +++|*         POP STACK AND RE-TEST.
05665  M00S05449.xedit   +++|
Proceed to Part 3
cdc/nos2.source/opl.opl871/deck/xedit.002.txt ยท Last modified: (external edit)