FFFNORM7

(George Source)

Macros used: BXE, BXU, CHNUMCO1, FINDWFL, FREECORE, IET, IETS, MENDAREA, MHUNT, P, PHOTO, R, SEGENTRY, SETREP, SETREP2, SETUPCORE, T, TESTMOVE, TESTREP, TESTRPN2, UP, UPPLUS, V, VFREE, WORKNUMB

FFFNORM7.txt
22FL    #LIS  K0FFFNORM>K0ALLGEO>0  
22^=    #SEG  FFFNORM7                     [ J BILLINGHAM   
23DW    #   
23YG    #     FANTASTICALLY FAST FNORM. 
24D6    #     ------------------------- 
24XQ    #   
25CB    # THIS SEGMENT CONVERTS AN UN-QUALIFIED <FILE-DESCRIPTION> HELD IN A
25X2    # FILE/FNAME BLOCK INTO AN ABSOLUTE NAME IN A FILE/FABSNB BLOCK USING   
26BL    # THE MINIMUM NUMBER OF COORDINATIONS (NORMALLY NONE).  
26W=    #   
27*W    # EXITS ARE AS FOLLOWS -
27TG    #   
28*6    # DOWN+2       ALL IS WELL, FABSNB SET UP, REPLY 'OK' SET.  
28SQ    #   
29#B    # DOWN+1       SOMETHIG WRONG, NO FABSNB SET UP, NO ERROR MESSAGE.  
29S2    #   
2=?L    #     REPLY 'NAMEFORM' - A GENUINE SYNTAX ERROR 
2=R=    #     REPLY 'ADJUNCTS' - LOOKS IF ADJUNCTS ARE PRESENT ( NOT CATERED FOR
2?=W    #     REPLY 'CHNUMERR' - ERROR IN A NUMBER SOMEWHERE.   
2?QG    #   
2#=6     8HFFFNORM  
2#PQ    #   
2*9B     SEGENTRY K1FFFNORM,N1FFFNORM      [ONLY ENTRY POINT
2*P2    #   
2B8L    #   
2BN=    # NUMBER CONVERSION ROUTINE. WORKS FASTEST IF THE NUMBER IS DECIMAL.
2C7W    # OTHERWISE A CPB/CUNI MUST BE SET UP AND ONE OF THE CHNUMCON ROUTINES  
2CMG    # ENTERED. NOTE THAT ANY ERROR REQUIRES THE MESSAGE SUPPRESSED BECAUSE  
2D76    # ONLY THE ESSENTIAL DETAILS OF THE CPB/CUNI ARE SET UP.
2DLQ    # ENTERED AT NUMCON1 TO START AT CURRENT CHARACTER, NUMCON2 TO START
2F6B    # AT NEXT CHARACTER. [X0] AND [X2] ARE UPDATED PROPERLY.
2FL2    #   
2G5L    NUMCON1 
2GK=    #   
2H4W          SBX   6  FX1  
2HJG          STO   6  AWRK1(1) 
2J46          LDN   5  0
2JHQ          LDX   6  2                   [WE MUST SET 
2K3B          SLC   6  2                   [ACOM5 TO THE
2KH2          SBN   6  1                   [RELATIVE CHARACTER  
2L2L          SRC   6  2                   [ADDRESS OF START IN 
2LG=          SBX   6  AWORK2(1)           [CASE NON-NUMERIC AND
2L^W          STO   6  ACOM5(1)            [WE HAVE TO START AGEN   
2MFG          LDX   6  0
2M^6          ADN   6  1
2NDQ          STO   6  ACOM3(1)            [SAVE CHAR COUNT ALSO
2NYB          LDN   6  0
2PD2          BNZ   0  N2   
2PXL          BRN   M                      [ERROR NO MORE   
2QC=    #   
2QWW    NUMCON2 
2RBG    #   
2RW6          SBX   6  FX1  
2S*Q          STO   6  AWRK1(1) 
2STB          LDN   5  0
2T*2          STO   2  ACOM5(1) 
2TSL          LDX   6  AWORK2(1)
2W#=          SBS   6  ACOM5(1)            [SAVE CHAR ADDRESS   
2WRW          STO   0  ACOM3(1)            [AND CHAR COUNT  
2X?G          LDN   6  0
2XR6    N1    BZE   0  M                   [ERROR IF NO MORE LEFT   
2Y=Q          LDCH  7  0(2) 
2YQB          BCHX  2  £
2^=2          SBN   0  1
2^PL    N2    LDN   4  #31  
329=          SBS   7  4
32NW          BZE   4  N9                  [END IF RP   
338G          ADN   4  3
33N6          BZE   4  N9                  [END FI COMMA
347Q          ADN   4  3
34MB          BZE   4  N9                  [END IF SLASH
3572          CDB   5  7                   [CONVERT 
35LL          BCC      N1                  [J IF OK 
366=    #   
36KW    # TURNS OUT THAT THE EXPRESSION WAS NOT DECIMAL AFTER ALL. WE MUST DO A 
375G    # CHNUMCON WHICH INVOLVES SETTING UP A UNI-PARAMETER BLOCK. 
37K6    #   
384Q          LDX   1  AWRK2(1)            [HERE WE MAKE THE UNI BOOCK THESAME  
38JB          SETUPCORE ALOGL(1),3,CPB,CUNI[LENGTH AS THE FNAME (EASY WAY OUT)  
3942          LDX   7  AWRK3(2) 
39HL          TESTMOVE 7,N3                [J IF NOTHING MOVED  
3=3=          CALL  5  UNT                 [HUNT BLOCKS 
3=GW    N3    LDX   1  FX2  
3?2G          LDX   0  ACOM3(1)            [RESET POINTERS  
3?G6          LDX   2  ACOM5(1) 
3?^Q          ADX   2  AWRK2(1) 
3#FB          LDN   1  APARA(3)            [START OF O/P
3#^2          STOZ  ANUM(3) 
3*DL          LDN   5  1
3*Y=          LDN   6  0
3BCW          BRN      N40  
3BXG    N4    BCHX  2  £
3CC6          SBN   0  1
3CWQ    N40   BZE   0  M                   [ERROR IF NO RP  
3DBB          LDCH  7  0(2) 
3DW2          LDX   4  7
3F*L          SBN   4  #30  
3FT=          BNZ   4  N6                  [J NOT LP
3G#W          ADN   6  1                   [COUNT IT
3GSG    N5    DCH   7  0(1) 
3H#6          BCHX  1  £                   [INSERT IN CUNI  
3HRQ          ADS   5  ANUM(3)  
3J?B          BRN   N4  
3JR2    N6    ADN   4  #30-#20  
3K=L          BZE   4  N4                  [IGNORE SPACE
3KQ=          SBN   4  #31-#20  
3L9W          BNZ   4  N10                 [IF RP AND NESTED CARRY ON   
3LPG          SBN   6  1
3M96          BPZ   6  N5   
3MNQ    N60   LDX   1  FX2  
3N8B          SBX   2  AWRK2(1) 
3NN2          STO   2  ACOM5(1) 
3P7L          STO   0  ACOM3(1) 
3PM=          CHNUMCO1 1                   [CONVERT 
3Q6W          FREECORE 3                   [FREE THE CPB/CUNI   
3QLG          TESTRPN2 OK,NUMERR            [J IF FAILED
3R66          LDX   7  AWRK3(2) 
3RKQ          TESTMOVE 7,N7                [J NOT MOVED 
3S5B          CALL  5  UNT                 [HUNT BLOCKS 
3SK2    N7    LDX   1  FX2  
3T4L          LDX   0  ACOM3(1) 
3TJ=          LDX   2  ACOM5(1) 
3W3W          ADX   2  AWRK2(1) 
3WHG          LDCH  7  0(2) 
3X36          BCHX  2  £                   [UPDATE POINTER  
3XGQ          SBN   0  1                   [AND COUNT   
3Y2B    N8    LDX   6  AWRK1(1) 
3YG2          ADX   6  FX1  
3Y^L          EXIT  6  0
3^F=    N9    STO   6  ACOM1(1) 
3^YW          BRN   N8  
42DG    N10   SBN   4  #34-#31             [J TO CONVERT
42Y6          BZE   4  N60                 [IF COMMA
43CQ          SBN   4  #37-#34  
43XB          BNZ   4  N5   
44C2          BZE  6   N60                 [SLASH IN PARENTHESIS?   
44WL          BRN      N5   
45B=    #   
45TW    UNT   MHUNT 1,FILE,FABSNB   
46*G          STO   1  AWRK4(2) 
46T6          MHUNT 1,FILE,FNAME
47#Q          PHOTO 7   
47SB          STO   1  AWRK2(2) 
48#2          STO   7  AWRK3(2) 
48RL          EXIT  5  0
49?=    #PAG
49QW    TABLE          [SYNTAX OF <GENERAL-LOCAL-NAME>  
4==G    #REP  #20   
4=Q6          0 
4?9Q    TABDET         [SYNTAX OF <DETAILS> 
4?PB    #REP  #20   
4#92          0 
4#NL    O12   #12                          [:   
4*8=    O30   #30                          [(   
4*MW    O31   #31                          [)   
4B7G    O34   #34                          [,   
4BM6    O36   #36                          [.   
4C6Q    #   
4CLB    TAILS 12H00010001C1 
4D62    #   
4DKL    N1FFFNORM                          [ENTRY FROM MACRO FFFNORM
4F5=    #   
4FJW          MHUNT    3,FILE,FNAME        [FIND NAME BLOCK 
4G4G          BNG   3  N                   [ERROR IF LOST   
4GJ6          LDXC  4  ANUM(3)             [PARAMETER LENGTH
4H3Q          BCS      N                   [ERROR IF NULL   
4HHB          BZE   4  N                   [ERROR IF EMPTY  
4J32          ANDN  4  #7777               [CLEAR TYPE BITS (NOT NEEDED )   
4JGL          PHOTO    7
4K2=          STO   3  AWRK2(2)            [STORE BLOCK'S   
4KFW          STO   7  AWRK3(2)            [WHERE AND WHEN  
4K^G          SETREP2  OK                   [ONLY TENTATIVE 
4LF6          LDN   3  APARA(3)            [WE NOW HAVE TO  
4LYQ          LDN   5  0                   [COUNT THE NUMBER
4MDB          LDN   6  0                   [OF FULL STOPS   
4MY2    S1    LDCH  7  0(3)                [AND COLONS  
4NCL          BCHX  3  £
4NX=          BXU   7  O12(1),S2
4PBW          ADN   6  1                   [COUNT COLON 
4PWG    S2    BXU   7  O36(1),S3
4QB6          ADN   5  1                   [COUNT FULL STOP 
4QTQ    S3    BXE   7  O30(1),S4           [FINISHED IF <DETAILS>   
4R*B          BCT   4  S1   
4RT2    #   
4S#L    # WE CAN NOW CALCULATE THE LENGTH OF TH FILE/FABSNB. ALGORITHM IS:  
4SS=    #   
4T?W    # ALOGLEN=6X(1+NUMBER OF STOPS-NUMBER OF COLONS)+4  
4TRG    #   
4W?6    S4    LDN   0  1
4WQQ          SBS   6  0                   [ERROR IF TWO OR MORE COLONS 
4X=B          BNG   0  N
4XQ2          LDX   0  5                   [CHECK IF ONE COLON BUT  
4Y9L          SBX   0  6                   [NO STOPS
4YP=          BNG   0  N                   [ERROR IF SO 
4^8W          STO   6  AWRK1(2) 
4^NG          LDN   7  6
5286          SBX   5  6                   [CALCULATE   
52MQ          LDX   3  5                   [CALCULATE   
537B          LDN   4  10   
53M2          MPA   3  7
546L          SETUPCORE 4,3,FILE,FABSNB    [GET UPT PUT BLOCK   
54L=          STO   3  AWRK4(2) 
555W          LDX   0  ACES                [MOVE SPACES 
55KG          LDN   6  HDREC+1(3)          [INTO MOST OF THE
5656          LDN   7  HDREC+2(3)          [WORDS   
56JQ          STO   0  HDREC+1(3)          [AUTOMATICALLY MAKES LOCAL NAMES UP T
574B          SMO      4                   [TWELVE CHARACTERS   
57J2          MOVE  6  -5   
583L          LDN   4  4                   [INSERT ADDRESS OF FIRST 
58H=          STO   4  HDREC(3)            [LOCAL NUME  
592W          LDX   6  AWRK1(2) 
59GG          BNZ   6  S5                  [J IF USERNAME SPECIFIED 
5=26          LDN   6  CPFIX(2) 
5=FQ          LDN   7  A1+1(3)             [MOVE IN YOUR NAME   
5=^B          MOVE  6  3
5?F2    S5    BZE   5  S7                  [J IF ONLY ONE LOCAL NAME
5?YL          LDN   6  TAILS(1) 
5#D=          LDN   7  A1+7(3)             [MOVE IN STANDARD <DETAILS>  
5#XW    S6    MOVE  6  3                   [FOR DIRECTORY NAMES 
5*CG          ADN   7  6
5*X6          BCT   5  S6   
5BBQ    S7    LDX   7  AWRK3(2) 
5BWB          LDX   2  AWRK2(2) 
5CB2          TESTMOVE 7,S8                [SET UP NAME BLOCK AGAIN 
5CTL          MHUNT 2,FILE,FNAME
5D*=          SMO      FX2  
5DSW          STO   2  AWRK2
5F#G    #   
5FS6    # THE OUTPUT BLOCK IS NOW SET UP SO WE CAN START TO PROCESS NAME BLOCK. 
5G?Q    # [X0]=CHARACTERS LEFT; [X3]=ADDRESS OF NEXT CHARACTER TO ANALYSE;  
5GRB    # [X1]=ADDRESS OF NEXT CHARACTER IN LOCAL NAME (O/P).   
5H?2    #   
5HQL    S8    LDN   1  0                   [SET UP POINTERS 
5J==          LDX   0  ANUM(2)  
5JPW          LDN   2  APARA(2) 
5K9G          ANDN  0  #7777
5KP6    S9    LDCH  7  0(2)                [SKIP INITIAL SPACES 
5L8Q          SBN   7  #20  
5LNB          BNZ   7  S10                 [J NOT SPACE 
5M82          BCHX  2  £
5MML          BCT   0  S9   
5N7=          BRN      M                   [ERROR IF ONLY SPACES
5NLW    S10   BZE   0  TIDY                [J IF FINISHED   
5P6G          STO   3  6
5PL6          LDCH  7  0(2) 
5Q5Q          BCHX  2  £
5QKB          STO   7  3
5R52          SRC   3  2
5RJL          ADX   3  FX1  
5S4=          LDCH  5  TABLE(3)            [LOOK UP IN TABLE
5SHW          SBN   0  1
5T3G          ADX   5  FX1  
5TH6          LDX   3  6
5W2Q          EXIT  5  £                   [FANOUT  
5WGB    #   
5X22    M     FREECORE 3                   [SYNTAX ERROR: FREE FILE/FABSNB  
5XFL    N     SETREP   NAMEFORM            [REPLY INCOMPREHENSIBLE  
5X^=          UP                           [GIVE UP 
5YDW    #   
5YYG    OO    IETS     #20,OO-M,TABLE      [SPACE   
5^D6          BZE   1  S10                 [IGNORE IF INITIAL   
5^XQ    #   
62CB    O     IETS     -,O-M               [NUMERIC AND HYPHEN  
62X2          IET   1,2,3,4,5,6,7,8,9,0 
63BL          BZE   1  M                   [NOT ALLOWED AS FIRST CHARACTER  
63W=    #   
64*W    P     IETS  A,P-M                  [ALPHABETIC  
64TG          IET   B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q 
65*6          IET   R,S,T,U,V,W,X,Y,Z   
65SQ          LDN   4  3
66#B          SBS   1  4
66S2          BZE   4  M                   [ERROR IF THIRTENTH CHARACTER
67?L          ADX   1  3
67R=          SMO      HDREC(3) 
68=W          DCH   7  A1(1)               [ELSE OK TO  
68QG          SBX   1  3
69=6          BCHX  1  £                   [SHOVE IT IN 
69PQ          BRN      S10  
6=9B    #   
6=P2    Q     IETS  (,Q-M                  [LP - STARTS <DETAILS>   
6?8L          BNZ   1  QUALIF              [ERROR IF PRECEEDED BY NULL NAME ELSE
6?N=          BRN      M                   [WORK OUT <DETAILS>  
6#7W    #   
6#MG    R     IETS  :,R-M                  [COLON (INTRODUCES USETNAME) 
6*76          LDN   6  1
6*LQ          LDN   4  #1000
6B6B          STO   6  HDREC(3) 
6BL2          ANDX  4  ATYPE(3)            [ERROR IF . (POSSIBLE) OR : (
6C5L          BNZ   4  M                   [POSSIBLE) ALREADY   
6CK=    R1    LDN   4  #1000
6D4W          LDN   1  0
6DJG          ORS   4  ATYPE(3)            [MARK 'NOT LOCAL'
6F46          BRN      S10  
6FHQ    #   
6G3B    SHRIEK IETS    !,SHRIEK-M   
6GH2          BNZ   1  M                   [ERROR IF NOT INITIAL
6H2L          BNZ   0  SH1                 [J IF NOT A LONE !   
6HG=          LDN   5  0
6H^W          BRN      SH5  
6JFG    #   
6J^6    S     IETS  .,S-M                  [FULL STOP   
6KDQ          LDX   4  HDREC(3) 
6KYB          SBN   4  1
6LD2          BZE   4  T                   [J IF ONLY USERNAME ANALYSED 
6LXL          LDN   4  6
6MC=          ADS   4  HDREC(3)            [LAST LOCAL NAME WAS 6 WORDS 
6MWW          BRN   R1                     [THEN AS FOR USERNAME
6NBG    T     LDN   4  4
6NW6          STO   4  HDREC(3) 
6P*Q          BRN   R1  
6PTB    #   
6Q*2    SH1   LDN   4  0
6QSL          LDN   5  0                    [INITIALISE 
6R#=          LDN   1  0
6RRW          LDCH  7  0(2)                 [GET NEXT CHAR  
6S?G          BCHX  2  £
6SR6          SBN   0  1
6T=Q          LDX   6  7
6TQB          SBN   6  #35  
6W=2          BNZ   6  SH3                  [J IF NOT - 
6WPL          LDN   1  1                    [MARK -VE   
6X9=    SH2   BZE   0  SH4                  [J NO MORE  
6XNW          LDCH  7  0(2)                 [GET NEXT CHAR  
6Y8G          BCHX  2  £
6YN6          SBN   0  1                    [DECREASE COUNT 
6^7Q    SH3   LDX   6  7
6^MB          SBN   6  #20  
7272          BZE   6  SH2                  [J IF SPACE 
72LL          CDB   4  7
736=          BCS      M                    [NON-DECIMAL
73KW          BVSR     M                    [TOO MUCH   
745G          BRN      SH2  
74K6    SH4   BNZ   4  M                    [TOO BIG
754Q          BZE   1  SH5                  [J IF +VE   
75JB          NGX   5  5
7642          WORKNUMB    3                [IF NEG CALCULATE
76HL          ADX   5  3                   [POSITIVE COUNT  
773=    SH5   SMO      FX2  
77GW          LDX   3  AWORK4              [ADDRESS OF FABSNB   
782G          STO   5  A1+1(3)             [DEPTH OF WORKFILE   
78G6          LDN   7  4
78^Q          STO   7  HDREC(3) 
79FB          STOZ     A1+2(3)  
79^2          SMO      FX2  
7=DL          LDX   7  JOBNO               [JOB NUMBER  
7=Y=          STO   7  A1+3(3)  
7?CW          FINDWFL  2                   [FIND WORKFILE   
7?XG          TESTREP  OK,SH6              [J IF FOUND  
7#C6          SETREP   NOFILE              [ELSE NON-EXISTANT   
7#WQ          UP
7*BB    SH6   LDN   7  10                  [SET UP 10 WD FABSNB 
7*W2          STO   7  HDREC(3) 
7B*L          LDN   6  FUSER1(2)
7BT=          LDN   7  A1+1(3)  
7C#W          MOVE  6  9
7CSG          LDN   0  #200                 [SET B16 OF ATYPE   
7D#6          ORS   0  ATYPE(3)             [SINCE WORKFILE 
7DRQ          UPPLUS   1
7F?B    #PAG
7FR2    #   
7G=L    # WE HAVE ALLL THE INFORMATION IN THE ABSOLUTE NAME BLOCK EXEPT FOR 
7GQ=    # <DETAILS> WHIC ARE NOT SPECIFIED SO WE MUST INSERT DEFAULT SETTINGS.  
7H9W    #   
7HPG    TIDY
7J96    #   
7JNQ          LDN   6  6
7K8B          LDX   2  HDREC(3)            [SET LENGTH TO END   
7KN2          ADS   3  2
7L7L          ADS   6  HDREC(3) 
7LM=          STOZ     A1+3(2)             [ANY REEL
7M6W          STOZ     A1+4(2)             [ANY GENERATION (UGH UGH UGH UGH UGH)
7MLG          STOZ     A1+5(2)             [UNSPECIFIED LANGUAGE
7N66    #   
7NKQ    VRYTIDY 
7P5B    #   
7PK2          LDN   6  #1000               [JUST BEFORE WE FINISH NOTE THATBWE  
7Q4L          ERS   6  ATYPE(3)            [HAVE INVERTED .LOCAL NAME ONLY. BIT 
7QJ=          UPPLUS   1                   [SO PUT IT BACK. BYE-EE. 
7R3W    #   
7RHG    UNCTS                              [LOOKS LIKE ADJUNCTS 
7S36    #   
7SGQ          SETREP   ADJUNCTS 
7T2B    #   
7TG2    NUMERR                             [ERROR IN NUMBER 
7T^L    #   
7WF=          VFREE FILE,FABSNB 
7WYW          UP
7XDG    #PAG
7XY6    #   
7YCQ    # QUALIF IS THE ROUTINE WHICH DISENTANGLES <DETAILS>. CHECKS ARE MADE   
7YXB    # ON ABSENCE OF <ADJUNCTS> (NOT HANDLED).   
7^C2    #   
7^WL    QUALIF  
82B=    #   
82TW          LDX   1  HDREC(3) 
83*G          ADS   3  1
83T6          STOZ     A1+3(1)             [SET DEFAULT VALUES  
84#Q          STOZ     A1+4(1)  
84SB          STOZ     A1+5(1)             [OF REEL, GEN & LANG.
85#2          LDX   1  FX2  
85RL    QUAL2 BZE   0  M                   [ERROR NO RP 
86?=          LDCH  7  0(2) 
86QW          BCHX  2  £
87=G          SBN   0  1
87Q6    QUAL3 STO   3  6
889Q          STO   7  3
88PB          SRC   3  2
8992          SMO   FX1 
89NL          LDCH  5  TABDET(3)           [LOOK UP TABLE   
8=8=          LDX   3  6
8=MW          ADX   5  FX1  
8?7G          EXIT  5  £                   [FANOUT  
8?M6    #   
8#6Q    U     BRN   M                      [ERROR   
8#LB    #   
8*62    V     IETS  #20,V-U,TABDET         [SPACE, IGNORE   
8*KL          BRN   QUAL2   
8B5=    #   
8BJW    UA    IETS  A,UA-U                 [ADJUNCTS?   
8C4G          IET   B,C,D,E,F,G,H,I,J,K,L,M,N   
8CJ6          IET   O,P,Q,R,S,T,U,V,W,X,Y,Z,*   
8D3Q          BRN   UNCTS                  [SORRY   
8DHB    #   
8F32    W     IETS  +,W-U                  [GENERATION, RELATIVE
8FGL          LDCT  6  #200 
8G2=          BRN   X+1 
8GFW    #   
8G^G    X     IETS  -,X-U                  [GENERATION, RELATIVE
8HF6          LDCT  6  #400 
8HYQ          SMO   HDREC(3)
8JDB          STO   6  A1+4(3)  
8JY2          CALL  6  NUMCON2             [CONVERT 
8KCL          LDX   3  AWRK4(1) 
8KX=          LDX   6  ACOM1(1) 
8L74 ...      BNG   6  NUMERR   
8LBW          SMO   HDREC(3)
8LWG          DLA   6  A1+4(3)             [STORE   
8MB6          BRN   QUAL3   
8MTQ    #   
8N*B    Y     IETS  0,Y-U                  [GENERATION, ABSOLUTE
8NT2          IET   1,2,3,4,5,6,7,8,9,(,],#23   
8P#L          IET   #73 [IE [   
8PS=          CALL  6  NUMCON1  
8Q?W          LDX   3  AWRK4(1) 
8QRG          LDX   6  ACOM1(1) 
8R?6          SMO   HDREC(3)
8RQQ          STO   6  A1+4(3)  
8S=B          BRN   QUAL3   
8SQ2    #   
8T9L    Z     IETS  #34,Z-U                [COMMA, IE REEL  
8TP=          CALL  6  NUMCON2             [CONVERT 
8W8W          LDX   3  AWRK4(1) 
8WNG          LDX   6  ACOM1(1) 
8X86          BNZ   6  Z2                  [IF ZERO SET BIT 2   
8XMQ          LDCT  6  #100                [BECAUSE ITS REALLY MEANT
8Y7B    Z2    SMO   HDREC(3)
8YM2          STO   6  A1+3(3)             [STORE   
8^6L          LDN   6  #400 
8^L=          ORS   6  ATYPE(3)            [MARK FOR GETDIR 
925W          BRN   QUAL3   
92KG    #   
9356    MM    IETS  /,MM-U                 [SLASH, LANGUAGE 
93JQ          LDN   6  5
944B          LDX   5  ACES 
94J2          LDN   1  0
953L    MM1   BZE   0  M                   [ERROR NO RP 
95H=          LDCH  7  0(2) 
962W          BCHX  2  £
96GG          SBN   0  1
9726          LDX   4  7
97FQ          SBN   4  #20  
97^B          BZE   4  MM1                 [IGNORE SPACE
98F2          SBN   4  #31-#20  
98YL          BZE   4  MM3                 [END IF *31  
99D=          SBN   4  #34-#31  
99XW          BZE   4  MM3                 [END IF *34  
9=CG          BCT   6  MM2  
9=X6          BRN      MM3                 [J IF 4 CHARACTERS HAD   
9?BQ    MM2   DCH   7  5(1) 
9?WB          BCHX  1  £
9#B2          BRN   MM1 
9#TL    MM3   SMO   HDREC(3)
9**=          STO   5  A1+5(3)             [INSERT LANGUAGE 
9*SW          LDN   5  #100 
9B#G          ORS   5  ATYPE(3)            [SET B17 FOR LANGUAGE
9BS6          LDX   1  FX2  
9C?Q          BRN   QUAL3   
9CRB    #   
9D?2    NN    IETS  ),NN-U                 [RP ENDS 
9DQL          LDN   6  6
9F==          ADS   6  HDREC(3)            [SET FINAL LENGTH
9FPW    NN1   BZE   0  VRYTIDY             [END IF END OF STRING
9G9G          LDCH  7  0(2)                [JUST A QUICK CHECK ON   
9GP6          SBN   0  1                   [WHAT FOLLOWS THE RP OF  
9H8Q          SBN   7  #30                 [<DETAILS>. IF IT IS 
9HNB          BCHX  2  £                   [A LP IT COULD BE ADJUNCTS   
9J82          BZE   7  UNCTS               [WHICH IS A GREAT SHAME  
9JML          BRN   NN1                    [AT THIS POINT   
9K7=    #   
9KLW     MENDAREA 50,K100FFFNORM
9L6G    #END
^^^^ ...63554023000200000000