CHANG867

(George Source)

Macros used: ALTLEN, ALTLENG, BXE, BXU, CHAIN, DOFINDGV, HUNT, JBC, MENDAREA, MFREE, MFREEW, MHUNTW, NAME, P, SEG, SEGENTRY, SETNCORE, UP, VFREE, VSKIP

CHANG867.txt
22FL     SEG  CHANG8,867,MULTIPLX HANDLING,,G501,G400   
22^=    [   
23DW    [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23YG ...[     THIS EXCLUDES CODE UNDER #SKI G501
24D6    [   
24XQ    #LIS  K0CHANG>K0MULTIPLX>K0ALLGEO>K0GREATGEO
25CB    #OPT G501 = 0   
25X2    #SKI G501&1 
26BL    # WITH G3UG EDIT M501 (3-SHIFT INPUT ON MOP)
26W=    # ENTRY POINTS  
27*W          SEGENTRY K1CHANG,Z1CHANG     [ MACRO 'CHANG'  
27TG          SEGENTRY K2CHANG,Z2CHANG     [ MACRO 'CHANGVD'
28*6    #UNS  ENHOPER   
28SQ          SEGENTRY K3CHANG,Z3CHANG     [ MACRO 'CHANGALL'   
29#B          MENDAREA 20,K100CHANG 
29S2    #   
29WK ...#UNS G400   
29^8 ...(   
2=3R ...#      THIS ROUTINE IS MODIFIED FOR G3PLUS-IH MK 2  
2=6B ...#   
2=8^ ...)   
2=?L    # THIS ROUTINE CONVERTS THE LINE OF INPUT FROM A MOP CONSOLE
2=R=    # FOUND IN A FILE/FRB BLOCK 
2?=W    # IE A FILESTORE FILE READ BLOCK
2?QG    # TO CARD IMAGE FORM,LEAVING IT IN A BLOCK ADATA/CREADL 
2#=6    # IE A READLINE BLOCK   
2#PQ    #   
2*9B    T13            #13  
2*P2    T41            #41  
2B8L    T67            #67  
2BN=    #UNS  ENHOPER   
2C7W    T68            #70  
2CMG    T74            #74  
2D76    T76            #76  
2DLQ    #SKI G501&1 
2F6B    (   
2FL2    T30            #30  
2G5L    T40            #40  
2GK=    )   
2H4W    Z1CHANG 
2HJG    #UNS  ENHOPER   
2J46    (   
2JHQ          STOZ     AWORK4(2)
2K3B    ZCONVONLY   
2KH2    )   
2L2L          MHUNTW   3,FILE,FRB          [INPUT BLOCK 
2LG=          STO   3  AWORK1(2)           [SAVE PTR
2L^W          LDN   6  0                   [COUNT OF CHS OUTPUT 
2MFG          LDX   4  A1(3)               [INPUT CH COUNT  
2M^6          ANDN  4  #7777
2NDQ    #SKI G501&1 
2NYB    (   
2PD2          JBC      P,2,G501SHIFT       [ STANDARD CODE IF NOT SHIFT 
2PXL          LDX   2  3
2QC=          LDN   0  #7400
2QWW          STO   0  GEN0                [ INITIAL SHIFT FOR RECORD   
2RBG          LDN   7  #74                 [ CURRENT INPUT SHIFT := 
2RW6          STO   7  GEN1                [  CURRENT OUTPUT SHIFT := ALPHA 
2S*Q    ZSEL  CALL  0  SELEC
2STB          TXL   5  T40(1)              [ SHIFT NOT REQD FOR CHARS < #40 
2T*2          BCS      ZSNA 
2TSL          TXL   5  T74(1)              [ IF >= #40 BUT NOT A SHIFT CHAR,
2W#=          BCS      ZXAB                [  MUST BE A SHIFT-SENSITIVE CHAR
2WRW          TXU   5  T76(1)   
2X?G          BCC      ZDELT
2XR6          LDX   7  5                   [ REMEMBER ALPHA OR BETA 
2Y=Q          BRN      ZSEL                [  FOR OUTPUT LATER IF NECESSARY 
2YQB    ZXAB  TXU   7  GEN1 
2^=2          BCC      ZSNA                [ ALREADY IN CORRECT SHIFT   
2^PL          LDX   0  7
329=          STO   7  GEN1 
32NW    ZPSH  DCH   0  CPDATA(2)           [ OUTPUT SHIFT CHAR FROM X0, 
338G          ADN   6  1
33N6          BCHX  2  £
347Q    ZSNA  CALL  0  SCOP                [  THEN OUTPUT CHAR  
34MB          BRN      ZSEL 
3572    ZDELT CALL  0  SELEC               [ NEED TO CHECK SPECIAL DELTA CHARS  
35LL          TXU   5  T13(1)   
366=          BCC      PEND 
36KW          TXU   5  T30(1)              [ BACKSPACE CHAR = BACK ARROW
375G          BCC      ZBSP 
37K6          LDN   0  #76  
384Q          TXU   5  T67(1)              [ UNLESS BACK ARROW (DELETE) 
38JB          BCS      ZPSH                [ OUTPUT DELTA SHIFT CHAR
3942    #   
39HL          SMO      FX2                 [ COPY BACK ARROW CHAR   
3=3=          TXL   0  AWORK4              [  IF Z3 ENTRY (FX2 > #76
3=GW          BCS      ZPSH                [  AND NO SPARE ACCS - SORRY!)   
3?2G    #   
3?G6    #              PROPER BACKSPACE - J.T.T. JUNE 1977  
3?^Q    ZBSP  LDN   0  2
3#FB    ZBKSP BZE   6  ZSEL                [ CAN'T BKSP IF NO CHARS OUTPUT  
3#^2          SLC   2  2                   [  AND DON'T NEED TO CHECK SHIFTS
3*DL          SBN   2  1                   [  IF ONLY ONE CHAR HAS BEEN OUTPUT  
3*Y=          SBN   6  1
3BCW          SRC   2  2
3BXG          BCT   0  ZBKSP
3CC6          LDCH  0  CPDATA(2)           [ LOOK IF SHIFT BEFORE DELETED CHAR  
3CWQ          TXU   0  T76(1)              [ REMOVE DELTA - NO PROBLEM  
3DBB          BCC      ZSEL 
3DW2          TXL   0  T74(1)   
3F*L          BCC      ZDAB 
3FT=          ADN   6  1
3G#W          BCHX  2  ZSEL                [ KEEP IF NOT ALPHA OR BETA  
3GSG    ZDAB  ERN   0  1                   [ PREVIOUS SHIFT IN OUTPUT BUFFER
3H#6          STO   0  GEN1                [  MUST HAVE BEEN THE OTHER ONE  
3HRQ          BRN      ZSEL 
3J?B    #   
3JR2    P     STOZ     GEN0                [ NOT SHIFT - USE OLD CODE   
3K=L    )   
3KQ=          LDX   2  3
3L9W    PSEL  CALL  0  SELEC               [SELECT CHARACTER
3LPG          TXU   5  T76(1)   
3M96          BCC      PTY76               [BRANCH IF CHARACTER TYPE = #76  
3MNQ          TXL   5  T74(1)   
3N8B          BCC      PSEL                [IGNORE IF > #74 
3NN2    PCOPY CALL  0  SCOP                [TRANSFER CHARACTER  
3P7L          BRN      PSEL 
3PM=    #   
3Q6W    PTY76 CALL  0  SELEC               [SELECT CHARACTER AFTER #76  
3QLG          TXU   5  T13(1)   
3R66          BCC      PEND                [BRN IF #7613 (N/L)  
3RKQ    #UNS  ENHOPER   
3S5B    (   
3SK2          SMO      FX2  
3T4L          LDX   0  AWORK4   
3TJ=          BNZ   0  PNDEL               [TRANSLATE BACK-ARROW FOR 'CHANGALL' 
3W3W    )   
3WHG          TXU   5  T67(1)   
3X36          BCC      PEDIT               [BRANCH IF #7667 (BACK-ARROW)
3XGQ    #UNS  ENHOPER   
3Y2B    PNDEL   
3YG2    #SKI G501&1 
3Y^L    (   
3^F=          TXU   5  T30(1)              [ BACKSPACE = BACK ARROW 
3^YW          BCC      PEDIT
42DG    )   
42Y6          TXL   5  T41(1)   
43CQ          BCS      PSEL                [IGNORE IF < #7641   
43XB          TXL   5  T68(1)   
44C2          BCC      PSEL                [IGNORE IF > #7667   
44WL          ADN   5  8                   [CONVERT CHARACTER   
45B=          BRN      PCOPY               [COPY ACROSS 
45TW    #   
46*G    PEDIT BZE   6  PSEL                [J. IF OUTPUT LINE EMPTY.
46T6          SLC   2  2                   [DELETE CHARACTER BY TAKING ONE  
47#Q          SBN   6  1                   [OFF COUNT AND STEPPING BACK 
47SB          SBN   2  1                   [THE OUTPUT POINTER. 
48#2          SRC   2  2
48RL          BRN      PSEL 
49?=    #   
49QW    PEND  SMO      FX2                 [RETREIVE POINTER TO BLOCK.  
4==G          LDX   3  AWORK1   
4=Q6          SBN   6  2000                [IF >/= 2000,TAKE FIRST 2000 CHARS   
4?9Q          BNG   6  RESCT               [<2000 CHARS 
4?PB          LDN   6  0
4#92    RESCT ADN   6  2000 
4#NL          STO   6  A1(3)               [STORE CONVERSION COUNT  
4*8=          ANDN  6  3                   [FORM CHARACTER REMAINDER COUNT  
4*MW    #SKI G501&1 
4B7G    (   
4BM6          LDX   0  6
4C6Q          SRC   0  2
4CLB          ORN   0  #41                 [ FORM 2ND RED TAPE WORD 
4D62          ORX   0  GEN0                [ PREVIOUS SHIFT ALPHA IF ALLCHAR
4DKL          STO   0  A1+1(3)  
4F5=          BZE   6  PFIL 
4FJW    )   
4G4G    #SKI G501&1$1   
4GJ6    (   
4H3Q          SRC   6  2                   [LAST CH POSITION
4HHB          ADN   6  #41  
4J32          STO   6  A1+1(3)  
4JGL          SBN   6  #41  
4K2=          BZE   6  PFIL                [BRANCH IF ZERO  
4KFW          SLC   6  2
4K^G    )   
4LF6          NGX   7  6
4LYQ          ADN   7  4                   [FORM SPACE FILL COUNT   
4MDB          LDN   5  #20                 [SPACE CHARACTER 
4MY2    PHIL  CALL  0  SCOP                [TRANSFER SPACE CHARACTER
4NCL          BCT   7  PHIL                [BRN ON COUNT
4NX=    PFIL  LDX   6  A1(3)
4PBW          ADN   6  CPDATA-A1*4+3       [ROUND UP CHARACTER COUNT
4PWG          SRL   6  2                   [TO NEARST FOUR  
4QB6          STO   6  A1(3)               [WORD COUNT  
4QTQ          TXU   6  ALOGLEN(3)          [COMPARE TO BLOCK LENGTH 
4R*B          BCC      PSAL                [BRN IF NOT EQUAL
4RT2          ALTLEN   3,6                 [DECREASE LENGTH 
4S#L    PSAL  UP                           [FINISH  
4SS=    #   
4T?W    # THIS SUBROUTINE SELECTS NEXT CHARACTER TO 
4TRG    # BE CONVERTED PUTS IT IN X5
4W?6    #   
4WQQ    SELEC BZE   4  PEND                [BRANCH IF END OF DATA   
4X=B          LDCH  5  A1+2(3)  
4XQ2          SBN   4  1                   [DECREASE COUNT BY 1 
4Y9L          BCHX  3  (0)                 [UPDATE INPUT POINTER, AND EXIT. 
4YP=    #   
4^8W    # THIS SUB INSERTS THE NEXT CHAR IN CONVERSION BLOCK (X2 POINTER)   
4^NG    # SCOP INSERTS THE CHAR IN X5 IN THE CONVERSION BLOCK   
5286    #SKI  A1+2-CPDATA&#40000000 
52MQ    ! CPDATA > A1+2 WILL CORRUPT THE INPUT MESSAGE DURING CONVERSION !  
537B    #   
53M2    SCOP  ADN   6  1                   [UPDATE COUNT
546L          DCH   5  CPDATA(2)           [THIS ASSUMES CPDATA<A1+3 ALWAYS.
54L=          BCHX  2  (0)                 [UPDATE OUTPUT POINTER, AND EXIT.
555W    #   
55KG    #   
5656    #   
56JQ    #     SUBROUTINE TO RE-FIND BLOCK BEING LENGTHENED BY ALTLENG   
574B    VREF  MHUNTW   2,FILE,FRB   
57J2          EXIT  1  0
583L    #   
58H=    #     THIS ROUTINE CONVERTS INPUT RECEIVED FROM A MOP DISPLAY   
592W    #     FOUND IN A FILE/FRB BLOCK 
59GG    #     TO GRAPHIC FORMAT 
5=26    #     AND LEAVES IT IN A NEW,POSSIBLY LONGER,FILE/FRB BLOCK 
5=FQ    #     THE CURSOR POSITIONING COUNTS IN THE AMXOR/ADCB BLOCK ARE UPDATED 
5=^B    #     UNLESS BREAK-IN HAS OCCURRED. 
5?F2    #   
5?YL    VCHARIN        16H0123456789:;<=>?  
5#D=                   16H !"£$%&'()*+,-./  
5#XW                   24H@ABCDEFGHIJKLMNOPQRSTUVW  
5*CG                   #70717273
5*X6                   #23757677
5BBQ    TIS4           #14  
5BWB    TNL            #32  
5CB2    T64            #64  
5CTL    T70            #70  
5D*=    Z2CHANG 
5DSW          MHUNTW   2,FILE,FRB          [RENAME INPUT DATA BLOCK 
5F#G          NAME     2,ADATA,CREADL   
5F#T ...      SEGENTRY  K30CHANG
5F*8 ...      BRN      X31CHANG 
5F*H ...#UNS G400   
5F*W ...(   
5FB9 ...      STOZ     7
5FBJ ...      LDCH  0  CPDATA(2)            [IS THERE A PID 
5FBX ...      BCHX  2  £
5FC= ...      BXU   0  T76(1),VNOPID        [J CANT BE NO SHIFT 
5FCK ...      LDCH  0  CPDATA(2)            [GET QUALIFIER  
5FCY ...      BXE   0  TIS4(1),VSETUP       [PID HERE OTHER CHECKS WILL DO  
5FD? ...VNOPID                              [CHECK TERMINAL FOR SECURITY
5FDL ...      VFREE    IUSER,BADGE  
5FD^ ...      LDX   2  FX2  
5FF# ...      LDN   5  4
5FFM ...      LDX   3  JSOURCE2(2)  
5FG2 ...VIDENCONV   
5FG* ...      SRL   34 3                    [GET TERM IDEN IN OCTAL 
5FGN ...      SRL   4  3
5FH3 ...      BCT   5  VIDENCONV            [ALLOW FOUR CHARS   
5FHB ...      LDX   3  FX1                  [FIND GLOBAL VARIABLE   
5FHP ...      DOFINDGV XSTRM(3),1   
5FJ4 ...      BNG   1  VSETUP               [J NO VARIABLE  
5FJC ...      LDX   5  VHEADER(1)   
5FJQ ...      SBN   5  5
5FK5 ...      BZE   5  VSETUP               [EMPTY LIST 
5FKD ...      SMO      FX1  
5FKR ...      LDX   0  VBAST
5FL6 ...      BXE   0  VDATA(1),VSETUP      [EMPTY LIST 
5FLF ...VCHSEC  
5FLS ...      BXE   4  VDATA(1),VSECONLY
5FM7 ...      ADN   1  1                    [TERM NOT FOUND 
5FMG ...      BCT   5  VCHSEC               [CHECK NEXT 
5FMT ...      BRN      VSETUP   
5FN8 ...VSECONLY
5FNH ...      NGN   7  1                    [PID MISSING - ERROR
5FNW ...VSETUP  
5FP9 ...VBADGE3 
5FPJ ...      MHUNTW   2,ADATA,CREADL   
5FPX ...)   
5FQ= ...      SEGENTRY  K31CHANG
5FQK ...X31CHANG
5FS6          LDX   6  ALOGLEN(2)          [SET UP BLOCK FOR CONVERTED DATA 
5G?Q          SETUPCOR 6,4,FILE,FRB 
5GRB          STO   4  AWORK4(2)           [SAVE ADDRESS OF FILE/FRB
5H?2          MHUNTW   2,ADATA,CREADL      [RE-FIND INPUT DATA BLOCK
5HQL          SMO      FX2  
5J==          STO   2  AWORK2              [SAVE ADDRESS OF ADATA/CREADL BLOCK  
5JPW          MHUNTW   3,AMXOR,ADCB 
5K9G          LDX   0  ICURPOS(3)   
5KP6          SMO      FX2  
5L8Q          STO   0  AWORK1              [SAVE CURSOR POSITIONING COUNTS  
5LNB          LDX   6  A1(2)
5M82          ANDN  6  #7777               [NO OF INPUT CHARS   
5MML          ADN   4  CPDATA              [CONVERTED DATA POINTER  
5N7=          BZE   6  VFREE               [CHAR COUNT ZERO : NO CONVERSION 
5NLW          ADN   2  CPDATA              [INPUT DATA POINTER  
5NS4 ...      SEGENTRY  K32CHANG
5N^= ...      BRN       X33CHANG
5P6G    #   
5P9L ...#UNS G400   
5P#Q ...      BNG   7  VBADY
5PCW ...      SEGENTRY  K33CHANG
5PH2 ...X33CHANG
5PL6          LDN   7  1                   [SET IGNORE BADGE DATA SWITCH TO OFF 
5Q5Q    V1ST  LDCH  0  0(2)                [GET FIRST CHAR  
5QKB          SBN   0  #20  
5R52          BNZ   0  VCONV               [NOT A SPACE CHAR
5RJL          SBN   6  1                   [DECREMENT COUNT OF INPUT CHARS  
5S4=          BRN      VCEND               [IGNORE THIS SPACE CHAR  
5SHW    #   
5T3G    VCONV LDCH  0  0(2)                [GET NEXT CHAR   
5TH6          SBN   6  1                   [DECREMENT COUNT OF INPUT CHARS  
5W2Q          TXL   0  T74(1)   
5WGB          BCS      VNIFT               [NOT A SHIFT CHAR
5X22          TXU   0  T76(1)   
5XFL          BCS      VCEND               [NOT DELTA, IGNORE ALPHA AND BETA
5X^=    #              DELTA SHIFT  
5YDW          BZE   6  VCEND               [INPUT ENDED WITH DELTA CHAR 
5YYG          BCHX  2  £                   [LOOK AT NEXT CHAR OF DELTA PAIR 
5^D6          LDCH  0  0(2) 
5^XQ          SBN   6  1                   [DECREMENT COUNT OF INPUT CHARS  
62CB          TXU   0  TIS4(1)  
62X2          BCS      VTNL                [NOT IS4 CHAR
63BL          NGX   7  7                   [NEGATE "IGNORE BADGE DATA" SWITCH   
63D8 ...      SEGENTRY  K34CHANG
63FQ ...      BRN       X35CHANG
63H# ...#UNS G400   
63JW ...(   
63LD ...      BNG   7  VBADGE   
63N2 ...      BRN      XB   
63PJ ...)   
63R6 ...      SEGENTRY    K35CHANG  
63SN ...X35CHANG
63W=          BNG   7  VCEND               [FIRST IS4 OF BADGE DATA FIELD   
64*W ...XB    BZE   6  VCEND               [LAST IS4 AND END OF INPUT   
64TG          BCHX  2  V1ST                [LAST IS4 : GET FIRST DATA CHAR  
65*6    VTNL  BNG   7  VCEND               [BADGE DATA : IGNORE 
65SQ          TXU   0  TNL(1)   
66#B          BCS      VSKIP               [NOT N/L CHAR
66S2    #   
67?L          LDX   1  FX2  
67R=          LDEX  7  ICHARS(3)           [DISPLAY WIDTH   
68=W          LDEX  0  AWORK1(1)           [COLUMN NO (SO FAR)  
68QG          SBX   7  0                   [COUNT OF CHARS TO END OF LINE   
69=6          SBX   2  AWORK2(1)
69PQ          STO   2  AWORK2(1)           [SAVE RELATIVE INPUT DATA POINTER
6=9B          LDX   5  AWORK4(1)           [ADDR OF CONVERTED DATA BLK(FILE/FRB)
6=P2          SBX   4  AWORK4(1)
6?8L          STO   4  AWORK4(1)           [SAVE RELATIVE CONVERTED DATA PTR
6?N=          LDX   4  7
6#7W          ADN   4  3
6#MG          SRL   4  2                   [NO OF WORDS REQUIRED FOR SPACING
6*76          SMO      5
6*LQ          ADX   4  ALOGLEN             [NEW BLOCK LENGTH
6B6B          ALTLENG  5,4,VREF            [LENGTHEN CONVERTED DATA BLOCK(FRB)  
6BL2          LDX   1  FX2  
6C5L          LDX   4  AWORK4(1)           [RESET CONVERTED DATA POINTER
6CK=          MHUNTW   2,FILE,FRB   
6D4W          STO   2  AWORK4(1)
6DJG          ADX   4  2
6F46          LDX   5  AWORK2(1)           [RESET INPUT DATA POINTER
6FHQ          MHUNTW   2,ADATA,CREADL   
6G3B          STO   2  AWORK2(1)
6GH2          ADX   2  5
6H2L          MHUNTW   3,AMXOR,ADCB        [RE-FIND DCB 
6HG=    #   
6H^W          LDN   0  #20                 [SPACEFILL TO COMPLETE THE CURR. LINE
6JFG    VFILL STO   4  1
6J^6          DCH   0  0(1) 
6KDQ          BCHX  4  £
6KYB          BCT   7  VFILL
6LD2          BRN      VLINE
6LXL    #   
6MC=    VSKIP TXL   0  T64(1)   
6MWW          BCS      VCEND               [<#64,IGNORE 
6NBG          TXL   0  T70(1)   
6NW6          BCC      VNAT                [>/=#70 : NATIONAL CHARACTER 
6P*Q          ADN   0  8
6PTB          BRN      VNIFT
6Q*2    VNAT  ADN   0  4
6QSL          BRN      VSTOC               [SKIP FURTHER CONVERSION 
6R#=    #   
6RRW    VNIFT BNG   7  VCEND               [BADGE DATA : IGNORE 
6S?G          LDXC  7  ICONTU(3)
6SR6          BCS      VSTOC               [CODE 2 VDU : SKIP CONVERSION
6T=Q    VCODE SRC   0  2                   [GET CHAR EQUIVALENT 
6TQB          STO   0  1
6W=2          SMO      FX1  
6WPL          LDCH  0  VCHARIN(1)   
6X9=    VSTOC STO   4  1                   [STORE CONVERTED CHAR
6XNW          DCH   0  0(1) 
6Y8G          BCHX  4  £                   [UPDATE CONVERTED DATA POINTER   
6YN6          SMO      FX2  
6^7Q          LDEX  0  AWORK1              [COLUMN NO (SO FAR)  
6^MB          ADN   0  1
7272          LDEX  7  ICHARS(3)           [DISPLAY WIDTH   
72LL          TXU   0  7
736=          BCS      VCOLM               [NOT END OF LINE 
73KW    VLINE LDCT  0  #010 
745G          SMO      FX2  
74K6          ADS   0  AWORK1              [UPDATE LINE NO  
754Q    VCOLM SMO      FX2  
75JB          DEX   0  AWORK1              [UPDATE COLUMN NO
7642    VCEND BCHX  2  £                   [UPDATE INPUT DATA POINTER   
76HL          LDX   1  FX1                 [RESET X1
773=          BNZ   6  VCONV               [NOT END OF INPUT
77GW    #   
782G          LDX   5  4
78G6          LDN   7  #20  
78^Q    VSFW  TXL   5  BITS22LS            [COMPLETE LAST WORD WITH SPACES  
79FB          BCS      VFREE               [COMPLETED   
79^2          STO   5  1
7=DL          DCH   7  0(1) 
7=Y=          BCHX  5  VSFW 
7?CW    VFREE MFREEW   ADATA,CREADL        [FREE INPUT DATA BLOCK   
7?XG          LDX   2  AWORK4(2)           [ADDR OF CONVERTED DATA BLK(FILE/FRB)
7#C6          SBX   4  2                   [RELATIVISE CONVERTED DATA POINTER   
7#WQ          SBN   4  CPDATA              [- RED TAPE  
7*BB          SLC   4  2                   [NO OF CONVERTED DATA CHARS  
7*W2          SBN   4  2000                [IF >/=2000,TAKE FIRST 2000 CHARS
7B*L          BNG   4  VDCT                [< 2000 CHARS
7BT=          LDN   4  0
7C#W    VDCT  ADN   4  2000 
7CSG          LDX   7  4
7D#6          ANDN  7  3
7DRQ          SRC   7  2                   [CHAR POSITION OF LAST CHAR + 1  
7F?B          ADN   7  #41                 [PFCC
7FR2          STO   7  A1+1(2)             [STORE SECOND WORD OF RED TAPE   
7G=L          ADN   4  CPDATA-A1*4+3       [ROUND UP CHAR CT TO NEAREST FOUR
7GQ=          SRL   4  2                   [WORD COUNT  
7H9W          STO   4  A1(2)               [STORE NO OF CONVERTED WORDS 
7HPG          TXU   4  ALOGLEN(2)   
7J96          BCC      VEB                 [BLOCK ALREADY CORRECT LENGTH
7JNQ          ALTLENG  2,4                 [DECREASE LENGTH 
7K8B    VEB   LDX   2  FX2  
7KN2          LDCT  6  #010 
7L7L          LDX   0  IWAIT(3) 
7LM=          ANDX  0  BIT9 
7M6W          ERS   0  IWAIT(3)            [UNSET BIT9 IF SET   
7MLG          BNZ   0  VUCCS               [NEWLINE SUPPRESSION ON INPUT REQUEST
7N66          LDEX  0  AWORK1(2)           [CURRENT COLUMN NO OF CURSOR 
7NKQ          BZE   0  VSCOL               [CURSOR ON COLUMN 0:STOR CURR LINE NO
7P5B          ADS   6  AWORK1(2)           [STORE NEXT LINE NO  
7PK2    VSCOL DEX   6  AWORK1(2)           [STORE COLUMN NO 0   
7Q4L    VUCCS ANDX  6  IWAIT(3) 
7QJ=          BNZ   6  VUP                 [G3 BREAK-IN:DON'T UPD CURSOR COUNTS 
7R3W          BCHX  3  £                   [-> CHAR 1   
7RHG          LDCH  0  ICHARS(3)           [DISPLAY LENGTH  
7S36          ANDX  3  BITS22LS 
7SGQ          LDCH  6  AWORK1(2)           [CURRENT LINE NO 
7T2B          TXL   6  0
7TG2          BCS      VUPC                [CURRENT LINE NO < DISPLAY LENGTH
7T^L          DCH   0  AWORK1(2) [WRAP ROUND : RESET LINE NO TO DISPLAY LENGTH  
7WF=    VUPC  LDX   0  AWORK1(2)
7WYW          STO   0  ICURPOS(3)          [UPDATE CURSOR POSITIONING COUNTS
7XDG    #SKI  K6IPB>100-100 
7XY6          STO   0  ACOMMUNE6(2) 
7YCQ    VUP   UP
7YXB    #UNS  ENHOPER   
7^C2    (   
7^WL    [   
82B=    [   
82TW    [                    WW   WW   WWWWW
83*G    [                    WW  WW   WW   WW   
83T6    [                    WW WW         WW   
84#Q    [                    WWWW       WWWW
84SB    [                    WWWW          WW   
85#2    [                    WW WW         WW   
85RL    [                    WW  WW   WW   WW   
86?=    [                    WW   WW   WWWWW
86QW    [   
87=G    [   
87Q6    Z3CHANG 
889Q          STO   2  AWORK4(2)           [TO DISTINGUISH FROM K1 ENTRY
88PB          BRN      ZCONVONLY
8992    )   
8995 ...#UNS G400   
8998 ...(   
899? ...VBADGE  
899B ...      HUNT     1,IUSER,BADGE
899F ...      BNG   1  VBADGE2  
899J ...      LDX   7  1
899M ...      LDN   5  0
899Q ...      STO   5  ANUM(1)  
899T ...      BCHX  2  £
899Y ...VBADGE1 
89=3 ...      BNZ   6  VBAD1      [END OF TEXT TEST 
89=6 ...      LDX   1  FX1        [TIDY UP  
89=9 ...      LDX   5  4
89=# ...      LDN   7  #20  
89=C ...      BRN      VSFW       [AND EXIT 
89=G ...VBAD1   
89=K ...      LDCH  0  0(2)       [GET NEXT CH  
89=N ...VBAD4   
89=R ...      BNG   5  VBAD6      [J IF BADGE TOO LONG  
89=W ...      DCH   0  APARA(1)   [STORE IT 
89=^ ...      BCHX  1  £          [STEP POINTERS
89?4 ...VBAD6   
89?7 ...      BCHX  2  £
89?= ...      SBN   6  1          [AND IP COUNT 
89?* ...      SMO      FX1  
89?D ...      TXU   0  T76        [TEST IF DELTA
89?H ...      BCC      VBAD2      [J IF SO  
89?L ...VBAD3   
89?P ...      BNG   5  VBADGE1    [J NO MORE BADGE ROOM 
89?S ...      ADN   5  1
89?X ...      SMO      7
89#2 ...      STO   5  ANUM       [UPDATE BADGE COUNT   
89#5 ...      SMO      FX1  
89#8 ...      TXL   5  T14  
89#? ...      BCS      VBADGE1    [J IF BADGE NOT FULL  
89#B ...      NGN   5  1          [MARK FULL
89#F ...      BRN      VBADGE1    [DO NEXT CH   
89#J ...VBAD2   
89#M ...      BZE   6  VBAD3
89#Q ...      LDCH  0  0(2)       [LOAD POST-DELTA CH   
89#T ...      SMO      FX1  
89#Y ...      TXU   0  TIS4       [TEST IF END OF BADGE 
89*3 ...      BCC      VBAD5      [J IF SO  
89*6 ...      BRN      VBAD3
89*9 ...VBAD5   
89*# ...      BCHX  2  £          [STEP IP POINTER  
89*C ...      SBN   6  1
89*G ...#   
89*K ...#      IF BADGE IN CO2/3 CODE ,CONVERT TO DECIMAL   
89*N ...#   
89*R ...      STO   2  GEN0             [SAVE X2
89*W ...      LDX   2  7                [POINTER TO BADGE BLOCK 
89*^ ...      LDX   0  ANUM(2)  
89B4 ...      SBN   0  2
89B7 ...      BNZ   0  VBCO1            [MUST BE TWO CHARS FOR CO2/3
89B= ...      LDCH  0  APARA(2) 
89B* ...      ANDN  0  #40  
89BD ...      BZE   0  VBCO1            [AND HAVE FIRST BIT OF CHAR SET 
89BH ...      LDCH  0  APARA(2)         [*  
89BL ...      LDN   1  0                [   
89BP ...      BCHX  2  £                [   
89BS ...      LDCH  1  APARA(2)         [   
89BX ...      SRC   1  4                [   
89C2 ...      SLL   01 4                [   
89C5 ...      ANDN  0  #377             [   
89C8 ...      LDN   1  0
89C? ...      SMO      FX1              [   
89CB ...      DVR   0  T1000            [   
89CF ...      LDX   0  1
89CJ ...      LDCT  1  #200 
89CM ...      LDX   2  7
89CQ ...      LDN   5  3
89CT ...      STO   5  ANUM(2)  
89CY ...      STOZ     APARA(2) 
89D3 ...VBCO2   
89D6 ...      CBD   0  APARA(2)         [CONVERT NEXT CHAR  
89D9 ...      BCHX  2  £                [STEP POINTER   
89D# ...      BCT   5  VBCO2            [BRANCH UNTIL COUNT ZERO
89DC ...      LDX   2  7
89DG ...VBCO1   
89DK ...      LDX   2  GEN0             [RETRIEVE X2
89DN ...#   
89DR ...#      CHECK BADGE IN RANGE 
89DW ...#   
89D^ ...      LDX   5  2                [ SAVE X2   
89F4 ...      LDX   2  7
89F7 ...      DOFINDGV APARA+4(2),1 
89F= ...      LDX   2  5                [ RESET X2  
89F* ...      BNG   1  VBADY            [ GLV NOT FOUND 
89FD ...      LDX   5  VHEADER(1)       [ BLOCK LENGTH  
89FH ...      SBN   5  5                [ REDUCE TO START OF DATA   
89FL ...      BZE   5  VBADY            [ NO DATA   
89FP ...      SMO      FX1  
89FS ...      LDX   0  VBAST            [ LOAD **** 
89FX ...      ERX   0  VDATA(1)         [ MASK WITH GLV DATA
89G2 ...      BZE   0  VBADZ            [ NO CHECK REQD.
89G5 ...VBCH2   
89G8 ...      SMO      7
89G? ...      LDX   0  APARA            [ BADGE CODE
89GB ...      ERX   0  VDATA(1)         [ GLV DATA  
89GF ...      SRL   0  6                [ REMOVE BITS 18-23 
89GJ ...      BZE   0  VBADZ            [ J. IF VALID PID   
89GM ...      ADN   1  1                [   
89GQ ...      BCT   5  VBCH2            [ J. UNTIL GLV DATA FINISHED
89GT ...VBADY   
89GY ...      LDN   6  0
89H3 ...      BRN      VCEND
89H6 ...VBADZ   
89H9 ...      BZE   6  VCEND            [ NO DATA ON LINE   
89H# ...      LDX   1  FX1  
89HC ...      LDN   7  1
89HG ...      BRN      V1ST             [ CONTINUE WITH TEXT PROPER 
89HK ...VBADGE2 
89HN ...      SETNCORE 7+APARA-A1,1,IUSER,BADGE 
89HR ...      SMO      FX1  
89HW ...      LDX   0  VBID 
89H^ ...      STO   0  APARA+4(1)   
89J4 ...      LDX   0  ACES 
89J7 ...      STO   0  APARA+6(1)   
89J= ...      LDX   7  JSOURCE2(2)  
89J* ...      SLL   7  12   
89JD ...      LDN   0  4
89JH ...VBCH1   
89JL ...      LDN   6  0
89JP ...      SLL   67 3
89JS ...      DCH   6  APARA+5(1)   
89JX ...      BCHX  1  £
89K2 ...      BCT   0  VBCH1
89K5 ...      SBN   1  1
89K8 ...      STOZ     ANUM(1)  
89K? ...      LDX   2  ACTRING(2)   
89KB ...      SBN   2  ACTRING  
89KF ...      LDX   2  BPTR(2)  
89KJ ...      CHAIN    1,2         [CHAIN TO AVOID CLEAN
89KM ...      MFREE    FILE,FRB 
89KQ ...      STOZ     7
89KT ...      BRN      VBADGE3     [START AGAIN 
89KY ...T14   +14   
89L3 ...T1000 +1000 
89L6 ...VBID  4HIDEN
89L9 ...VBAST 4H****
89L# ...XSTRM 12HSTRM   
89LC ...#DEF  VDATALEN=A1+2 
89LG ...#DEF  VHEADER=0 
89LK ...#DEF  REDTAPE2=1
89LN ...#DEF  VNAME=2   
89LR ...#DEF  VDATA=5   
89LW ...)   
89NL          MENDAREA 50,K100CHANG 
8=8=    #END
^^^^ ...622233410004