TRANSFOR1

(George Source)

Macros used: ALTLEN, BXE, BXGE, BXL, BXU, GEOERR, HUNT, MENDAREA, MHUNT, SEG, SEGENTRY, SETREP, SETREP2, SETUPCORE, UP

TRANSFOR1.txt
22FL          SEG      TRANSFOR,1,BIDGOOD   
22^=    #   
23DW    #     THIS SEGMENT CONVERTS THE RECORD  FROM ADATA/ALINE BLOCK  
23YG    #     TO SPECIFIED MODE.
24D6    #   
24XQ    #           AWORK1=IF ALPHA-PREVIOUS;SHIFT CHARACTER
25CB    #           AWORK2=        "        ;       "   
25X2    #           AWORK3=        "        ;NO/UNUSED CHARS IN LAST WORD   
26BL    #           AWORK1=IF SHIFT-GRAPHIC; TERMINAL SHIFT 
26W=    #           AWORK2=        "        ; PTR TO ADATA/AREST
27*W    #           AWORK3=        "       ; N/CH IN ADATA/AREST
27TG    #     AWORK4: B7 SET INDICATES LAST CH. OF PREVIOUS TP PERI WAS A DELTA.
28*6    #           ACOMMUNE1=OVERWRITTEN;SRMOVE SUBROUTINE 
28SQ    #   
29#B          SEGENTRY K1TRANSFOR,Z1TRANSFOR
29S2    SPACE          #20202020
2=?L    PLUS           #20000000
2=R=    TEN            +10  
2?=W    X37            +37  
2?QG    X40            #40  
2#=6    X64            #64  
2#PQ    X74            #74  
2*9B    XDELTA         #76  
2*P2    X77            #77  
2B8L    NORM           +5   
2BN=    NOPM           +5   
2C7W    TABLEREC       #00000420
2CMG                   #24100000
2D76                   #00000203
2DLQ                   #05070000
2F6B                   #04010004
2FL2                   #03100000
2G5L                   #20000200
2GK=                   #02070000
2H4W                   #24010001
2HJG                   #00100000
2J46                   #10060606
2JHQ                   #06000000
2K3B    Z1TRANSFOR  
2KH2          LDX   4  ACOMMUNE1(2) 
2L2L          ANDN  4  #7775               [IGNORE B22  
2LG=          LDX   3  FX1  
2L^W          LDX   5  NORM(1)             [NO OF RECORD MODES  
2MFG    TESRM BCHX  3  £
2M^6          LDCH  0  TABLEREC(3)  
2NDQ          BXE   0  4,RMFOUND           [J IF REC.MODE HAS BEEN FOUND
2NYB          BCT   5  TESRM
2PD2          BRN      REPER               [J IF MODE IS ILLEGAL
2PXL    RMFOUND 
2QC=          SBX   3  1                   [PTR.RELATIVE TO TABLEREC
2QWW          LDX   4  ACOMMUNE2(2)        [PERI MODE   
2RBG          ANDN  4  #7775               [IGNORE B22  
2RW6          LDN   2  TABLEREC(1)  
2S*Q          LDX   5  NOPM(1)             [NO OF PERI MODES
2STB    TESPM ADN   2  2
2T*2          LDCH  0  0(2) 
2TSL          BXE   0  4,PMFOUND           [J IF PERI MODE FOUND
2W#=          BCT   5  TESPM               [J TO TEST NEXT MODE 
2WRW          BRN      REPER               [J IF MODE IS ILLEGAL
2X?G    PMFOUND 
2XR6          SETREP   COORED   
2Y=Q          ADX   2  3                   [MAKE PTR.TO TABLE   
2YQB          LDCH  4  0(2) 
2^=2          BZE   4  UP                  [J IF NO CONVERSION  
2^PL          ADN   4  PTR(1)   
329=          HUNT     3,ADATA,ACONV
32NW          BNG   3  UP   
338G          ADN   3  A1   
33N6          CALL  6  RECLEN              [GET LENGTH OF RECORD
347Q    #   
34MB    #              EXIT:X3=PTR TO RECORD
3572    #                   X5=RECORD LENGTH IN CHARS.  
35LL    #                   X7=N/CH IN RECORD   
366=    #   
36KW          STO   4  GEN0 
375G          SBN   3  1
37K6          LDCT  4  #006                [TEST IF BITS SET INDICATING 'DELTA L
384Q          ANDX  4  0(3)                [CH. IN 2000 CH. RECORD OR LAST CH. O
38JB          ERS   4  0(3)                [TP PERI. CLEAR ANY BIT THAT IS SET. 
3942          ADN   3  1
39HL          LDX   0  4                   [X0 INDICATES STATE OF BOTH BITS.
3=3=          SLL   0  7
3=GW          SRL   0  7                   [GET RID OF BIT 6.   
3?2G          LDX   2  FX2  
3?G6          STO   0  AWORK4(2)           [PRESERVE STATE OF B7 IN AWORK4. 
3?^Q    PTR 
3#FB          BRN      (GEN0)   
3#^2          BRN      XALPR               [ALP-PREV
3*DL          BRN      XPRAL               [PREV-ALP
3*Y=          BRN      XACNM               [ALLC-NORM   
3BCW          BRN      XAANP               [ALLCALP-NORMPREV
3BXG          BRN      XAPNA               [ALLCPREV-NORMALP
3CC6          BRN      XSHGR               [SHIFT-GRAP  
3CWQ          BRN      XGRAL               [GRAP-SHIFT,ALPH 
3DBB          BRN      XGRPR               [GRAP-SHIFT,PREV 
3DW2    #   
3F*L    REPER SETREP   ILLMODE  
3FT=    UP    UP
3G#W    #   
3GSG    #              ALLCHAR-NORMAL   
3H#6    #   
3HRQ    XACNM   
3J?B          CALL  4  SRACNM              [CONVERSION ROUTINE  
3JR2          UP
3K=L    #   
3KQ=    SRACNM  
3L9W          BZE   5  UP                  [EMPTY RECORD
3LPG          LDX   6  3                   [REMEMBER PTR TO RECORD  
3LWN          LDCT  7  #002 
3M3W          ANDX  7  AWORK4(2)
3M96          LDX   2  3                   [INPUT PTR   
3MDY          BNZ   7  TNCH                [J IF LAST CH OF PREVIOUS WAS A ^
3MNQ    NEXT  LDCH  0  0(2)                [LOAD CHAR   
3N8B          BCHX  2  £
3NN2          SBN   0  #76  
3P7L          BZE   0  RUND                [J IF DELTA  
3PM=          ADN   0  #76  
3Q6W    SUDEP DCH   0  0(3)                [DEPOSIT CHAR
3QLG          BCHX  3  £
3R66    RUNDL BCT   5  NEXT                [J IF MORE TO TEST   
3RKQ    UPRT  CALL  5  NEWRT               [UPDATE R/T  
3S5B          EXIT  4  0
3SK2    #   
3T4L    RUND  BCT   5  TNCH                [J IF MORE TO TEST   
3TJ=          LDN   0  #76  
3W3W          DCH   0  0(3)                [DEPOSIT DELTA   
3WHG          BCHX  3  £
3X36          BRN      UPRT 
3XGQ    #   
3Y2B    TNCH  LDCH  0  0(2)                [LOAD SUCCESSOR  
3YG2          BCHX  2  £
3Y^L          SBN   0  #20  
3^F=          BZE   0  RUNDL1               [J IF RUNOUT
3^YW          SBN   0  #53  
42DG          BZE   0  RUNDL1               [J IF DELETE
42Y6          ADN   0  #73                 [SUCCESSOR   
433=          BZE   7  TNORM               [J IF LAST CH OF PREVIOUS NOT A ^
436B          STOZ     7
439G          BRN      SUDEP
43#L    TNORM   
43CQ          LDN   1  #76  
43XB          DCH   1  0(3)                [DEPOSIT DELTA   
44C2          BCHX  3  £
44WL          LDX   1  FX1  
45B=          BRN      SUDEP
45CM    RUNDL1  
45F4          BZE   7  RUNDL
45GF          SMO      FX2                 [UNSET SWITCH TO INDICATE WE HAVE TAK
45HW ...      ERS   7  AWORK4              [ACCOUNT OF ^ SPLIT OVER TWO PERIS.  
45K?          STOZ     7
45LN          MHUNT    1,ADATA,ALINE
45N5          LDN   0  1                   [REMOVE ^ FROM PREVIOUS PERI SINCE   
45PG          SBS   0  A1(1)               [IT IT PART OF ALLCHAR CHARACTER 
45QX          LDX   1  FX1                 [WHICH MUST BE REMOVED.  
45S#          BRN      RUNDL
45TW    #   
46*G    #              SHIFT-GRAPHIC
46T6    #   
47#Q    XSHGR   
47SB          STOZ     AWORK4(2)
48#2          LDX   6  3                   [REMEMBER PTR TO RECORD  
48RL          SLC   3  2
49?=          SBN   3  2
49QW          SRC   3  2
4==G          LDCH  0  0(3)                [TERMINAL SHIFT  
4=Q6          STO   0  AWORK1(2)
4?9Q          LDN   0  0
4?PB          DCH   0  0(3)                [MODE=0  
4#92          BZE   5  UP                  [EMPTY RECORD
4#NL          LDX   1  6                   [INPUT PTR   
4*8=          LDX   3  6                   [OUTPUT PTR  
4*MW          BNZ   4  SUCLO               [J IF DELTA AT 2000  
4B7G    NEXT1 LDCH  0  0(1)                [LOAD CHARACTER  
4BM6          BCHX  1  £
4C6Q          SBN   0  #74  
4CLB          BPZ   0  XFUCH               [J IF SHIFT  
4D62    PUTCH   
4DKL          ADN   0  #74  
4F5=          DCH   0  0(3)                [DEPOSIT CHAR
4FJW          BCHX  3  £
4G4G    TMOR  BCT   5  NEXT1               [J IF MORE CHARS 
4GJ6    RTUP  CALL  5  NEWRT               [UPDATE R/T  
4H3Q          UP
4HHB    XFUCH   
4J32          SBN   0  2
4JGL          BNZ   0  TMOR                [IGNORE IF $ OR ]
4K2=          BCT   5  SUCLO               [J IF MORE CHARS 
4KFW          BRN      RTUP 
4K^G    SUCLO LDCH  0  0(1)                [LOAD SUCCESSOR  
4LF6          BCHX  1  £
4LYQ          SBN   0  #64  
4MDB          BNG   0  STMAY               [J IF MAYBE STOP 
4MY2          SBN   0  4
4NCL          BPZ   0  TMOR               [J IF NATIONAL CHAR   
4NX=          ADN   0  4
4PBW          BRN      PUTCH
4PWG    STMAY   
4QB6          ADN   0  #43  
4QTQ          BNG   0  TMOR                [J IF TO BE IGNORED  
4R*B          LDN   0  2
4RT2          ANDX  0  ACOMMUNE2(2) 
4S#L          BZE   0  TMOR                [J IF READ N CHARS   
4SS=          BCT   5  ONCAR               [J IF MORE CHARS 
4T?W          SETREP2  STOP 
4TRG          BRN      RTUP 
4W?6    ONCAR SBX   1  3                   [INPUT PTR-OUTPUT PTR
4WQQ          STO   1  AWORK2(2)           [REMEMBER
4X=B          LDX   4  5                   [N/CH NOT CONVERTED  
4XQ2          ADN   4  15                  [ORUND UP
4Y9L          SRL   4  2                   [N/W 
4YP=          MHUNT    2,ADATA,AREST
4^8W          BPZ   2  PRESB               [J IF EXISTS 
4^NG          SETUPCORE 4,2,ADATA,AREST 
5286          BRN      OKLEN
52MQ    PRESB BXL   4  ALOGLEN(2),OKBL     [LENGHT OK   
537B          LDX   7  2                   [PTR TO AREST
53M2          ALTLEN   7,4                 [ALTER AREST'S LENGTH
546L          MHUNT    2,ADATA,AREST
54L=    OKLEN MHUNT    1,ADATA,ACONV
555W          ADN   1  A1+2                [PTR TO RECORD   
55KG          BXE   1  6,OKBL              [ACONV DID NOT MOVE  
5656          SBX   3  6                   [RELATIVE PTR
56JQ          LDX   6  1                   [PTR TO RECORD   
574B          ADX   3  1                   [NEW OUTPUT PTR  
57J2    OKBL  LDX   7  2                   [REMEMBER PTR TO AREST   
583L          LDX   1  FX2  
58H=          STO   5  AWORK3(1)           [N/CH IN AREST   
592W          ADN   2  A1+2 
59GG          LDX   1  AWORK2(1)           [RELATIVE INPUT PTR  
5=26          ADX   1  3                   [ABSOLUTE INPUT PTR  
5=FQ          CALL  0  SRMOVE              [RESIDUE TO AREST
5=^B          CALL  5  NEWRT               [UPDATE R/T IN ACONV 
5?F2          LDX   2  FX2  
5?YL          LDX   0  AWORK1(2)           [TERMINAL SHIFT  
5#D=          LDX   1  7                   [PTR TO AREST
5#XW          SLL   0  6
5*CG          ORN   0  #41                 [PFCC
5*X6          STO   0  A1+1(1)  
5BBQ          LDN   6  A1+2(1)             [PTR TO RECORD   
5BWB          LDX   3  AWORK3(2)           [N/CH IN AREST   
5CB2          CALL  5  NEWR1               [UPDATE R/T IN AREST 
5CTL          SETREP   STOP 
5D*=          UP
5DSW    #   
5F#G    #              PREVIOUS-ALPHA   
5FS6    #   
5G?Q    XPRAL   
5GRB          LDX   2  FX2  
5H?2          LDN   0  #74  
5HQL          STO   0  AWORK1(2)           [STORE ALPHA 
5J==          LDN   0  #75  
5JPW          STO   0  AWORK2(2)           [STORE BETA  
5K9G          BRN      XCONV
5KP6    #   
5L8Q    #              ALPHA-PREVIOUS   
5LNB    #   
5M82    XALPR   
5MML          LDX   2  FX2  
5N7=          LDN   0  #75  
5NLW          STO   0  AWORK1(2)           [STORE BETA  
5P6G          LDN   0  #74  
5PL6          STO   0  AWORK2(2)           [STORE ALPHA 
5Q5Q    #   
5QKB    XCONV   
5R52          BZE   5  UP                  [EMPTY RECORD
5RJL          LDX   6  3                   [REMEMBER PTR TO RECORD  
5S4=          SBN   3  2                   [PTR TO N/W  
5SHW          LDX   0  0(3)                [N/W 
5T3G          SBN   0  2                   [- RED TAPE  
5TH6          SLL   0  2                   [N/CH
5W2Q          SBX   0  5                   [NO/UNUSED CHARS IN LAST WORD
5WGB          STO   0  AWORK3(2)
5X22          SLC   3  2
5XFL          ADN   3  6
5X^=          SRC   3  2
5YDW          LDCH  0  0(3)                [END SHIFT OF PRECEDING RECORD   
5YYG          SBN   0  #75  
5^D6          BNZ   0  SHUP                [JIF ALPHA   
5^XQ          LDX   0  AWORK1(2)
62CB          DCH   0  0(3)                [STOR ALPHA IF CONVERSION TO ALPHA   
62X2          LDX   3  6                   [RESTORE PTR TO RCD  
63BL    NEXT2 LDCH  0  0(3)                [LOAD CHAR   
63W=          BCHX  3  £
64*W          BXGE  0  X40(1),SHCH         [J IF SHIFT OR SENSITIVE CHAR.   
64TG    TRCH  BCT   5  NEXT2
65*6          BRN      UP                  [J IF NO CONVERSION  
65SQ    SHCH  BXU   0  AWORK1(2),NOTAL     [J IF IT ISN'T ALPHA 
66#B          LDX   1  3
66S2          SLC   3  2
67?L          SBN   3  1
67R=          SRC   3  2
68=W          LDX   2  3
68QG          CALL  0  SRMOVE              [DELETE ALPHA,CLOSE GAP  
69=6          LDX   3  7                   [N/CH IN RECORD  
69PQ          SBN   3  1
6=9B    SETRP CALL  5  NEWR1               [UPDATE RED TAPE 
6=P2    SHUP  SETREP   SHIFT
6?8L          UP
6?N=    NOTAL LDX   2  FX2  
6#7W ...      BXE   0  AWORK2(2),UP      [J IF BETA 
6#MG          BXU   0  XDELTA(1),SENCH     [J IF SHIFT-SENS.CHAR.   
6*76          BCT   5  SKISC
6*LQ          BRN      UP   
6B6B    SKISC BCHX  3  £                   [IF DELTA,SKIP ITS SUCCESOR  
6BL2          BCT   5  NEXT2
6C5L          BRN      UP   
6CK=    SENCH LDX   1  6
6D4W          SBN   1  2                   [PTR TO RECORD RED TAPE  
6DJG          LDX   4  7                   [N/USED CHARS
6F46          LDX   7  0(1)                [N/W IN RCD  
6FHQ          ADX   7  1                   [ADDR OF LAST WORD   
6G3B          LDX   2  FX2  
6GH2    NCHTE LDX   1  FX1  
6H2L          BXL   5  X37(1),RESTM        [J TO SHIFT REST OF RECORD   
6HG=          SBN   7  9                   [UPDATE END ADDR.
6H^W          LDN   0  ACOMMUNE1(2) 
6JFG          MOVE  7  9                   [MOVE 9 WORDS TO BUFFER  
6J^6          LDX   1  7
6KDQ          BCHX  1  £
6KYB          MVCH  0  36                  [SHIFT 9 WORDS 1 CHAR.POS.ONWARDS
6LD2          SBN   5  36                  [UPDATE REMAINDER OF CHARS   
6LXL          ADX   5  AWORK3(2)           [ADD N/CH IN LAST WORD   
6MC=          STOZ  AWORK3(2)   
6MWW          BRN      NCHTE               [J TO SHIFT IT   
6NBG    RESTM SLC   3  2
6NW6          SBN   3  1
6P*Q          SRC   3  2
6PTB          BZE   5  SHINS               [J TO INSERT SHIFT   
6Q*2          LDX   7  3
6QSL          LDN   0  ACOMMUNE1(2) 
6R#=          SMO      5
6RRW          MVCH  7  0                   [MOVE REST OF RCD TO BUFFER  
6S?G          LDX   1  3
6SR6          BCHX  1  £
6T=Q          LDN   0  ACOMMUNE1(2) 
6TQB          SMO      5                   [SHIFT REST OF RCD.1 CHAR.POS.ONWARDS
6W=2          MVCH  0  0
6WPL    SHINS LDX   0  AWORK2(2)
6X9=          DCH   0  0(3)                [INSERT SHIFT CHAR   
6XNW          LDX   3  4                   [N/CH
6Y8G          ADN   3  1                   [UPDATE N/CH 
6YN6          BRN      SETRP
6^7Q    #   
6^MB    #              ALLCHAR,ALPHA-NORMAL,PREVIOUS
7272    #   
72LL    XAANP   
736=          CALL  4  SRACNM              [ALLCHAR-NORMAL  
73KW          LDX   3  2                   [PTR TO RED TAPE 
745G          LDX   2  FX2  
74K6          LDN   0  #75  
754Q          STO   0  AWORK1(2)           [STORE BETA  
75JB          LDN   0  #74  
7642          BRN      STAW 
76HL    #   
773=    #              ALLCHAR,PREVIOUS-NORMAL,ALPHA
77GW    #   
782G    XAPNA   
78G6          CALL  4  SRACNM   
78^Q          LDX   3  2                   [PTR TO RED TAPE 
79FB          LDX   2  FX2  
79^2          LDN   0  #74  
7=DL          STO   0  AWORK1(2)           [STORE ALPHA 
7=Y=          LDN   0  #75  
7?CW    STAW  STO   0  AWORK2(2)
7?XG          CALL  6  RECLEN              [RCD LENGTH  
7#C6          BRN      XCONV               [PREVIOUS-ALPHA  
7#WQ    #   
7*BB    #              GRAPHIC-SHIFT,PREVIOUS   
7*W2    #   
7B*L    XGRPR   
7BT=          SBN   3  1
7C#W          LDCT  2  #400 
7CSG          ORX   2  3
7D#6          LDCH  0  0(2)                [TERMINAL SHIFT  
7DRQ          SBN   0  #75  
7F?B          BZE   0  XB                  [J IF BETA   
7FR2          BRN      XAL                 [J IF ALPHA  
7G=L    #   
7GQ=    #              GRAPHIC-SHIFT,ALPHA  
7H9W    #   
7HPG    XGRAL   
7J96          SBN   3  1
7JNQ          LDCT  2  #400 
7K8B          ORX   2  3
7KN2    #   
7L7L    XAL   LDN   0  #74                 [ALPHA   
7LM=          DCH   0  0(2)                [LAST SHIFT=ALPHA
7M6W    XB    BZE   5  UP                  [EMPTY RECORD
7MLG          SBN   3  A1+1 
7N66          LDX   0  ALOGLEN(3)          [BLOCK LENGTH
7NKQ          LDX   4  A1(3)               [N/W IN RECORD   
7P5B          SLL   4  1                   [MULTIPLY BY 2   
7PK2          BXGE  0  4,OK                [J IF BLOCK IS LONG ENOUGH   
7Q4L          ALTLEN   3,4                 [ALTER LENGTH OF BLOCK   
7QJ=          HUNT     3,ADATA,ACONV
7R3W    OK    LDX   4  A1(3)               [N/W IN RECORD   
7RHG          SBN   4  2                   [SUBTRACT RED TAPE   
7S36          ADN   3  A1+2 
7SGQ          LDX   6  3                   [PTR TO RCD  
7T2B          LDX   2  3                   [OLD PTR TO RECORD   
7TG2          ADX   3  4                   [NEW PTR TO RCD  
7T^L          SMO      4
7WF=          MOVE  2  0                   [MOVE WHOLE RECORD   
7WYW    NEXT3 LDCH  0  0(3)                [PICK UP CHAR
7XDG          BCHX  3  £
7XY6          SBN   0  #74  
7YCQ          BPZ   0  SHEXP               [J IF A SHIFT
7YXB          ADN   0  #74                 [RESTORE CHAR
7^C2          DCH   0  0(2) 
7^WL          BCHX  2  £
82B=          BCT   5  NEXT3               [J IF MORE TO TEST   
82TW          BRN      URT  
83*G    SHEXP LDN   1  #76  
83T6          DCH   1  0(2)                [TRANSFER DELTA  
84#Q          BCHX  2  £
84SB          ADN   0  #64  
85#2          DCH   0  0(2)                [DEPOSIT SUCCESSOR   
85RL          BCHX  2  £
86?=          BCT   5  NEXT3               [J IF MORE TO TEST   
86QW    URT   LDX   3  2                   [PTR TO THE END OF THE RECORD
87=G          CALL  5  NEWRT               [UPDATE RED TAPE 
87Q6          SBN   6  A1+2                [PTR TO ADATA/ALINE  
889Q          ADN   3  1
88PB          ALTLEN   6,3                 [SHORTEN ADATA BLOCK 
8992          HUNT     3,ADATA,ACONV
89NL          ADN   3  A1   
8=8=          LDX   0  1(3)                [2ND WORD RT 
8=MW          SRL   0  6
8?7G          ANDN  0  #77  
8?M6          SBN   0  #76  
8#6Q          BNZ   0  UP                  [J IF TERMINAL SHIFT IS ALPHA
8#LB          CALL  6  RECLEN              [RECORD LENGTH   
8*62          BRN      XALPR               [CONVERT TO PREVIOUS 
8*KL    #   
8B5=    #                      S U B R O U T I N E S :  
8BJW    #   
8C4G    #     SUBROUTINE TO UPDATE RED TAPE AND SPACEFILL LAST WORD 
8CJ6    #   
8D3Q    #              ENTRY:X3=PTR TO THE END OF THE RECORD
8DHB    #                    X6=PTR TO THE FIRST CHAR OF THE RECORD 
8F32    #                    X7=N/CH BEFORE THE CONVERSION  
8FGL    #                    X5=LINK
8G2=    #              EXIT :X2=PTR TO RED TAPE 
8GFW    NEWRT SBX   3  6                   [REC LENGTH  
8G^G          SLC   3  2                   [N/CH IN NEW RCD 
8HF6          BXU   3  7,NEWR1  
8HYQ          LDX   2  6
8JDB          SBN   2  2                   [PTR TO RED TAPE 
8JY2          BRN      SREX                [EXIT
8KCL    #              ENTRY:X3=N/CH IN NEW RCD 
8KX=    NEWR1 LDX   2  6
8LBW          SBN   2  2                   [PTR TO RECORD RED TAPE  
8LWG          NGX   0  3
8MB6          BNG   3  NEGNCH              [J IF NEGATIVE N/CH  
8MTQ          SRC   3  2
8N*B          LDN   1  #7777
8NT2          ANDS  1  1(2)                [CLEAR B0,B1 
8P#L          LDCT  1  #600 
8PS=          ANDX  1  3
8Q?W          ORS   1  1(2)                [UPDATE N/CH IN LAST WORD
8QRG          ANDN  0  #3   
8R?6          BZE   0  X2                  [J IF LAST WORD IS FULL  
8RQQ          LDN   1  #20  
8S=B    STOR  SMO      2
8SQ2          DCH   1  2(3)                [SPACEFILL   
8T9L          BCHX  3  £
8TP=          BCT   0  STOR 
8W8W    X2    ADN   3  2
8WNG          STO   3  0(2) 
8X86          LDX   1  FX1  
8XMQ    SREX
8Y7B          SMO      FX2  
8YM2          LDX   0  AWORK4              [RESTORE STATE OF B7 INTO RED TAPE OF
8^6L          ORS   0  1(2)                [FOR TPOBJ AS TRANSFOR MAY NOT HAVE  
8^L=          EXIT  5  0                   [DEALT WITH IT.  
925W    #   
92KG    #     SUBROUTINE TO GET LENGTH OF RECORD
9356    #              ENTRY:X3=PTR TO RED TAPE 
93JQ    #                    X6=LINK
944B    #              EXIT: X5,7=N/CH IN RECORD
94J2    #                    X0=OVERWRITTEN 
953L    #                    X3=PTR TO RECORD   
95H=    #   
962W    RECLEN  
96GG          LDX   5  0(3)                [N/W IN RECORD   
9726          SBN   5  2
97FQ          BZE   5  NUCH 
97^B          SLL   5  2
98F2          LDCH  0  1(3) 
98YL          SRL   0  4                   [NO OF USED CHARS
99D=          BZE   0  NUCH 
99XW          SBN   5  4
9=CG          ADX   5  0                   [ADD N/CH IN LAST WORD   
9=X6    NUCH  LDX   7  5
9?BQ          ADN   3  2                   [ADD RED TAPE
9?WB          EXIT  6  0
9#B2    #   
9#TL    #     SUBROUTINE TO MOVE RECORD 
9**=    #              ENTRY:X0=LINK
9*SW    #                    X1=START CHAR ADDRESS  
9B#G    #                    X2=END CHAR ADDRESS
9BS6    #                    X5=N/CH TO MOVE
9C?Q    #   
9CRB    SRMOVE  
9D?2          SMO      FX2  
9DQL          STO   5  ACOMMUNE1           [STORE X5
9F==    TEST5 SBN   5  512  
9FPW          BNG   5  SHALL               [J TO MOVE THE REST  
9G9G          MVCH  1  0                   [MOVE 512 CHARS  
9GP6          BNZ   5  TEST5
9H8Q          BRN      RESX5
9HNB    SHALL ADN   5  512  
9J82          SMO      5
9JML          MVCH  1  0                   [MOVE THE REST   
9K7=    RESX5 SMO      FX2  
9KLW          LDX   5  ACOMMUNE1           [RESTORE X5  
9L6G          EXIT  0  0
9LL6    #   
9M5Q    NEGNCH  
9MKB          GEOERR   1,NEG N/CH   
9N52    #   
9NJL          MENDAREA 100,K99TRANSFOR  
9P4=    #END
^^^^ ...65662612000800000000