PARSORT867

(George Source)

Macros used: ACROSS, COOR3, DOWN, ERRORX, FINDPEREC, FREECORE, GROPEREC, HUNTMISB, HUNTW, JANON, JENV, JENVNOT, JEXOTIC, JPROP, JSWOUT, JSWOVER, LGEOG, LNLI, LTYPE, MENDAREA, MHUNT, NAME, NEXTW, PARAFREE, PARANEXT, PARANUMB, PARANXTX, PARAPASS, PARATYPE, PARSORTB, PARSORTX, PERCONA, SAWCE, SEGENTRY, SPARANOX, TESTREP, TESTREP2, TRACE, UNIFREE, UPPLUS, ZERRORX, ZERRORY

PARSORT867.txt
22FL    #SEG  PARSORT8                     [A.C.PUTMAN  
22PD ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983.   
22^=    #OPT  K0PARSORT=0   
23DW    #OPT  K6PARSORT=200 
23YG    #LIS  K0PARSORT>K0IDF>K0COMMAND>K0ALLGEO
24D6                   8HPARSORT
24XQ    #   
25CB    #     THIS SEGMENT ANALYSES COMMAND PARAMETERS OF PERIPHERAL DESCRIPTION
25X2    #     FORM, SETTING DETAILS OF THE DEVICE SO DESCRIBED INTO A CPAR/JSCE 
26BL    #     BLOCK. THE PARAMETER IS VALIDATED, BOTH FOR EXISTENCE AND 
26W=    #     CLUSTERING, AND THE APPROPRIATE ERROR MESSAGE IS OUTPUT TO THE
27*W    #     CLUSTER CONSOLE (OPTIONAL). THE MACROS SERVICED BY THE SEGMENT
27TG    #     ARE:- 
28*6    #              PARSORT             K1PARSORT
28SQ    #              PARSORTB            K1PARSORT
29#B    #              PARSORTX            K2PARSORT
29S2    #   
2=?L    #   
2=R=    #     THE PARAMETERS PERMISSIBLE ARE:-  
2?=W    #   
2?QG    #     A) LOCAL PERIPHERAL:- 
2#=6    #                              1   N
2#PQ    #                              2   UN   
2*9B    #   
2*P2    #     B) PCT PERIPHERAL:-   
2B8L    #                         1   IAAX  
2BN=    #                          2   UN.LM.IAAX   
2C7W    #                          3   UN.LM.IAA
2CMG    #                          4   UN.LM
2D76    #   
2DLQ    #     C) IPB PERIPHERALS:-  
2F6B    #                          1   IX   
2FL2    #                          2   UN.IX
2G5L    #   
2GK=    #     PLUS DEVICE QUALIFIER (N) FOR ANY OF ABOVE
2H4W    #   
2HJG    #              AND, FOR PARSORTB ONLY   
2J46    #                           *PERIPHERAL TYPE
2JHQ    #   
2K3B    #   
2KH2    #              ENTRY POINTS 
2L2L    #   
2LG=          SEGENTRY K1PARSORT,X1PARSORT  
2L^W          SEGENTRY K2PARSORT,X2PARSORT  
2MFG    #   
2M^6    #   
2NDQ    #PAGE   
2NYB    XTP            +1                  [TAPE PUNCH  
2PD2    XFOUR          +4   
2PMS ...XMT            +5   
2PXL    SEVEN          +7   
2QC=    ULESSI         +12                 ["U" - "I" (#14) 
2QM4 ...XDMNXX         4H00XX   
2QWW    TYPE                               [PARAMETER TYPE BRANCH TABLE 
2RBG          BRN      SIMPLE              [ SIMPLE 
2RW6          BRN      PSEUDO              [ PSEUDO-SIMPLE  
2S*Q          BRN      XCOMP               [ COMPOSITE (ERROR)  
2STB          BRN      QUAL                [ QUALIFIED  
2T*2    TABLE   
2TSL ...      BRN      NOPARAM  
2W#=          BRN      PARSORTB            [*PT PARAMETER   
2WRW          BRN      UNLMUNIM            [2 COMPONENT PSEUDO-SIMPLE   
2X?G          BRN      UNLMIAAX            [3 COMPONENT PSEUDO-SIMPLE   
2XR6    STABLE  
2Y=Q ...      BRN      NOPARAM  
2YQB          BRN      Z4   
2^=2          BRN      UNLMUNIM 
2^PL          BRN      UNLMIAAX 
2^Q* ...TDMNEM         4HTR 
2^R4 ...               4HTP 
2^RR ...               4HLP 
2^SG ...               4HCR 
2^T9 ...               4HCP 
2^TY ...               4HMC 
2^WM ...               4HGP 
2^XB ...               4HED 
2^Y5 ...               4HFD 
2^YS ...               4H   
2^^H ...TDTYPE         +0   
322= ...               +1   
322^ ...               +2   
323N ...               +3   
324C ...               +4   
3256 ...               +5   
325T ...               +20  
326J ...               +26  
327? ...               +26  
3282 ...               4H   
329=    #   
32NW    ZJNOPER        +JNOPER             [NOT ON INSTALLATION 
338G    ZNOCLUS        +INOCLUS            [NOT IN CORRECT CLUSTER  
33N6    ZJPARMIS       +JPARMIS            [PARAMETER MISSING   
347Q    ZJPERMIS       +JPERMIS            [PERIPHERAL DESCRIPTION  
34MB    ZJNOTPERI      +JNOTPERI           [NOT VALID PERIPHERAL DESCRIPTION
3572    ZILLIDE        +ILLIDE             [ILLEGAL IDENTIFIER NUMBER   
35LL    ZILLINO        +ILLINO             [ILLEGAL LINE NUMBER 
366=    ZILLQUAL       +ILLQUAL            [ILLEGAL QUALIFIER   
36?D    ZJNOPFD        +JNOPERFD
36DL    ZJERSO         +JERSWO  
36KW    #              *  *     *   
375G    #              * *     **   
37K6    #              **       *   
384Q    #              * *      *   
38JB    #              *  *    ***  
3942    #   
39HL    X1PARSORT                          [ENTRY POINT FOR PARSORT MACRO   
3=3=          LDX   0  ACOMMUNE1(2) 
3=GW          STO   0  AWORK1(2)           [PRESERVE PARAMETER OPTION WORD  
3?2G          ANDN  0  1
3?G6          BNZ   0  X1                  [BR IF "ALL" OPTION SPECIFIED
3?^Q          LDN   4  1                   [ELSE SET PARAMETER COUNT OF 1   
3#FB          BRN      X2   
3#^2    X1  
3*DL          LDN   5  0                   [ANALYSIS LEVEL 0
3*Y=          CALL  7  XPARANUMB           [FIND NO OF PARAMETERS PRESENT   
3BCW          TXL   4  XTP(1)   
3BXG          BCS      NOPARAM             [BR IF NO PARAMETERS PRESENT 
3CC6    REENTRY                            [REENTRY LABEL   
3CWQ    X2  
3DBB          STOZ     AWORK3(2)
3DW2          STOZ     AWORK4(2)
3F*L          STO   4  AWORK2(2)           [STORE NO OF PARAMETERS STILL TO DO  
3FT=          LDN   4  0                   [CURRENT ANALYSIS LEVEL  
3G#W          PARANEXT #36,4               [SPLIT PARAMETER AT ANY POINTS   
3GCF ...#UNS ANSTOOMANY 
3GG4 ...      TESTREP2 TOOMANY,XTOOMANY 
3GJN          TESTREPN OK,NOTPERI   
3GSG    PARSORTX                           [COMMON ENTRY FROM K2PARSORTX
3H#6          PARATYPE 4                   [PARAMETER TYPE TO X4
3HRQ    #SKI  K6PARSORT>199$199 
3J?B          TRACE    4,PARATYPE   
3JR2          MHUNT    3,CPB,CUNI   
3K=L          LDX   5  ANUM(3)  
3KQ=          TXL   5  XTP(1)   
3L9W          BCC      X3                  [BR IF PARAMETER EXISTENT
3LPG          LDX   0  AWORK1(2)
3M96          ANDN  0  BALL 
3MNQ          BZE   0  NOPARAM             [ERROR IF "ALL" NOT SPECIFIED
3N8B          BZE   5  NEXTW               [IGNORE IF PARAMETER NULL
3NN2          BNG   5  NOPARAM             [ERROR IF PARAMETER NON-EXISTENT 
3P7L    X3  
3PM=          ADX   4  1
3Q6W          EXIT  4  TYPE                [BR ACCORDING TO PARAMETER TYPE  
3QLG    Z4  
3R66          NGN   4  1                   [NO PARAMETER NUMBER IN THIS CASE
3RKQ          CALL  7  YPARANXTX           [SPLIT PARAMETER UP AT PARENTHESES   
3S5B    SIMPLE  
3SK2    # PARAMETER MAY BE: N; UN; IAAX; IN (IF VALID)  
3SSS ...#   
3T4L          LDN   2  APARA(3) 
3TJ=          CALL  0  ZCONV               [ATTEMPT QUICK CONVERSION (ASSUME N) 
3W3W          BRN      NONNUM              [CONVERSION FAILED   
3WHG    Z1  
3X36          LDX   2  FX2  
3XGQ          LDX   4  JPARNUM(3)          [LOAD PARAMETER NUMBER FOR PARANOTX  
3XQJ          BZE   7  Z2   
3Y2B          CALL  6  XFINDPEREC          [FIND THE DEVICE LIST
3Y8L          BRN      Z2A  
3YBW    Z2  
3YK6          CALL  6  XFINDOPER           [FIND DEVICE LIST FOR OPER UNIT 0
3YRB    Z2A 
3^6# ...      SAWCE    CENTRAL,Z3   
3^F=          LDX   0  AWORK1(2)           [OPTION WORD 
3^YW          ANDN  0  BNOCLUS  
42DG          BZE   0  NOCLUS              [BR TO ERROR IF CLUSTER CHECKING ON  
42Y6          LDCT  0  #600 
43CQ          ORX   3  0                   [SET CLUSTER CHECK FAILED BITS   
43XB    Z3  
44C2    # NOW HAVE VALID LOCAL PERIPHERAL PARAMETER, GEOG NO IN X7, AND DEVICE  
44WL    # LIST POINTER IN X3
45B=          STO   3  AWORK3(2)           [PRESERVE DEVICE LIST POINTER
45TW          CALL  7  XPARANOTX           [REACCESS PARAMETER  
46*G          CALL  7  SETUP               [SET UP CPAR/JSCE BLOCK  
46T6          LDX   1  AWORK3(2)           [RESTORE DEVICE LIST POINTER 
47#Q          STO   1  JSCEP(3) 
47SB          ANDX  1  BITS22LS            [TO CLEAR CLUSTER CHECK BITS 
48#2          LTYPE    1,0                 [LOAD DEVICE TYPE
48HS ...      STO   0  AWORK3(2)
48RL          DCH   0  JSCEA(3) 
48SK ...      JENVNOT  Z3A,CMESTAR  
48TJ ...      LDX   0  AWORK1(2)
48WH ...      ANDN  0  BDEVMN   
48XG ...      BZE   0  Z3A  
48YF ...      CALL  7  XCONTY   
48^D ...      LDX   0  AWORK4(2)
492C ...      STO   0  JSCEB(3) 
493B ...      SMO      FX1  
494* ...      LDX   0  XMT  
495# ...      TXU   0  AWORK3(2)
496? ...      BCS      Z3A  
497= ...      SMO      FX1  
4989 ...      LDX   0  XDMNXX   
4998 ...      STO   0  JSCEB(3) 
49=7 ...Z3A 
49?=          LGEOG    1,0                 [GEOGRAPHIC NO   
49QW          DEX   0  JSCEA(3)            [TYPE/GEOG NO WORD   
4==G    NEXT
4=Q6          LDX   2  FX2  
4?9Q          LDXC  0  AWORK2(2)
4?PB          BCC      NEXTW               [BR IF NO QUBLIFIER PRESENT  
4#92          CALL  7  XPARAPASS           [ACCESS DEVICE QUALIFIER 
4#NL          LDN   2  APARA(3) 
4*8=          BCHX  2  £                   [PARAMETER IS OF FORM
4*MW          ANDN  5  #7777               [ISOLATE PARAMETER LENGTH
4B7G          SBN   5  1                   [   (NUMBER) 
4BM6          MHUNT    3,CPAR              [FIND FIRST PARAMETER BLOCK  
4C6Q          CALL  0  ZCONV               [ATTEMPT CONVERSION  
4CLB          BRN      Z5   
4D62    Z6  
4DKL          FREECORE 3                   [ERROR - FREE BLOCK  
4F5=          BRN      NOTDEVQUAL          [BR IF DEVICE QUALIFIER INVALID  
4FJW    Z5  
4G4G          SBN   5  1                   [ERROR IF CONVERSION NOT FALED   
4GJ6          BNZ   5  Z6                  [ON CLOSE BRACKET
4H3Q          STO   7  JSCEK(3)            [STORE DEVICE QUALIFIER  
4HHB    NEXTW   
4J32          CALL  7  XFREE               [FREE ALL PARAMETER BLOCKS   
4JGL          LDX   4  AWORK2(2)           [NO OF PARAMETERS IN CPB/CALAS   
4K2=          BCT   4  REENTRY             [COUNT DOWN AND CARRY ON 
4KFW          BRN      PAREND              [BR IF NO MORE TO DO 
4K^G    NONNUM  
4LF6    # NON-NUMERIC CHARACTER FOUND ON FIRST ATTEMPTED CONVERSION 
4LYQ    # X3 POINTS TO CPB/CUNI BLOCK   
4MDB          TXU   5  ANUM(3)  
4MY2          BCS      PFERR               [ERROR IF 1ST CHARACTER NUMERIC  
4NCL          LDCH  4  APARA(3)            [LOAD 1ST CHARACTER  
4NX=          SBN   4  #51  
4PBW          BZE   4  Y2                  [BR IF 1ST CHARACTER "I" 
4PWG          TXU   4  ULESSI(1)
4PYP ...      BCC      Y2   
4Q2Y ...      JENVNOT  NOTPERI,CMESTAR  
4Q57 ...      LDX   2  FX2  
4Q7B ...      LDX   0  AWORK1(2)
4Q9K ...      ANDN  0  BDEVMN   
4Q?S ...      BZE   0  NOTPERI  
4Q#* ...      LDX   0  CONTEXT(2)   
4Q#W ...      ANDN  0  #210 
4Q*C ...      BNZ   0  NOTPERI  
4QB3 ...      LDX   0  AWORK1(2)
4QD= ...      STO   0  ACOMMUNE1(2) 
4QGF ...      DOWN     DUMMYA,1 
4QJN ...      BRN      NEXTW
4QLX ...      BRN      NOTPERI  
4QP6 ...      BRN      NOUNIT   
4QR* ...      BRN      NOTOUT   
4QTQ    Y2  
4R*B          SBN   5  1                   [1 LESS CHARACTER TO CONVERT 
4RT2          BCHX  2  £
4S#L          CALL  0  ZCONV               [ATTEMPT CONVERSION  
4SS=          BRN      Y3                  [BR IF FAILED (MAY BE IAAX)  
4T?W          BZE   4  XIDENT              [BR IF 1ST CHARACTER WAS "I" 
4TRG    # UN PARAMETER - GEOG NO IS IN X7   
4W?6          BRN      Z1                  [BR TO FIND DEVICE LIST ETC. 
4WQQ    Y3                                 [1ST CHAR "I"
4X=B          ADN   5  1                   [RESET X5
4XQ2          TXU   5  ANUM(3)  
4Y9L          BCS      NOTPERI             [ERROR IF 2ND CHAR NUMERIC   
4YP=          SBN   5  5
4^8W          BPZ   5  NOTPERI             [ERROR IF > 4 CHARACTERS 
4^NG    Y4  
5286          LDCH  0  0(2)                [LOAD NEXT CHARACTER 
52MQ          SBN   0  #41  
537B          BNG   0  NOTPERI  
53M2          SBN   0  #32                 [ERROR IF EITHER 2ND OR 3RD CHARS
546L          BPZ   0  NOTPERI             [NOT NUMERIC 
54L=          BCHX  2  £
555W          LDCH  0  0(2)                [CHECK 3RD CHARACTER 
55KG          SBN   0  10   
5656          BNG   0  T2                  [OK IF NUMERIC   
56JQ          SBN   0  23   
574B          BNG   0  NOTPERI  
57J2          SBN   0  26   
583L          BPZ   0  NOTPERI  
58H=    T2                                 [OR ALPHA
592W          BCHX  2  £
59GG          LDCH  0  0(2)                [LOAD 4TH CHARACTER  
5=26          BZE   0  NOTPERI             [BR IF INTERFACE 0 SPECIFIED 
5=FQ          TXL   0  SEVEN(1) 
5=^B          BCS      Y5                  [BR IF INTERFACE NO < 7  
5?F2          SBN   0  #20  
5?YL          BNZ   0  NOTPERI             [ERROR IF NOT SPACE  
5#D=          DCH   0  0(2)                [PU^ ZERO IN FOR SPACE   
5#XW    # AFTER ALL THIS WE NOW HAVE A PCT PARAMETER IN THE CORRECT FORMAT  
5*CG    # WHICH MAY OR MAY NOT EXIST
5*X6    Y5    LDX   4  APARA(3)            [LOAD IAAX PARAMETER 
5BBQ          SLL   4  6
5BWB          LDX   6  4
5CB2          SRL   6  6                   [ X6 IS NOW IN FORMAT 0AAX   
5CTL          ANDX  4  HALFTOP             [TERMINAL IDENTIFIER TO B0-11 OF X4  
5D*=          HUNTMISB 1,IDF,ITERMID       [FIND IDF/ITERMID TO VERIFY EXISTENCE
5DSW          LDX   2  FX2                 [OF TERMINAL/INTERFACE   
5F#G          BNG   1  NOUNIT              [BR IF NO TERMINALS ON INSTALLATION  
5FS6    T1  
5G?Q          LDX   5  A1+1(1)             [LOAD NEXT WORD OF ITERMID   
5GRB          BZE   5  NOUNIT              [BR IF TERMINAL NOT FOUND
5H?2          ANDX  5  HALFTOP             [ISOLATE TERMINAL IDENTIFIER 
5HQL          TXU   5  4
5J==          BCC      Y6                  [BR IF THIS TERMINAL 
5JPW          BDX   1  T1                  [ELSE LOOK FOR NEXT ONE  
5K9G    Y6  
5KP6          LDEX  5  A1+1(1)             [LINE NUMBER (ACTUAL)
5L8Q          LDX   0  AWORK3(2)           [LINE NUMBER (PARAMETER) 
5LNB          BZE   0  Y14                 [BR IF NONE SPECIFIED
5M82          TXU   5  AWORK4(2)           [ELSE CHECK IT   
5MML          BCS      NOUNIT   
5N7=    Y14 
5NLW          DCH   5  AWORK4(2)           [STORE LINE NUMBER (CHAR 0)  
5P6G    XTHERE                             [ENTRY FOUND IN ITERMID BLOCK
5PL6          LDXC  0  A1+2(1)             [IF 2ND WORD OF ENTRY IS -VE, 'PLEXOR
5Q5Q          BCS      NOUNIT              [IS NOT ON THIS INSTALLATION 
5QKB          SMO      0
5R52          LDX   4  CPPTR               [LOAD 'PLEXOR DEVICE LIST POINTER
5RJL          LDX   0  AWORK3(2)
5S4=          BZE   0  Y7                  [BR IF NO UNIT SPECIFIED 
5SHW          TXU   0  4
5T3G          BCS      NOUNIT              [BR IF WRONG UNIT SPECIFIED  
5TH6    Y7  
5W2Q          STO   4  AWORK3(2)
5WGB          LDX   4  JPARNUM(3)          [LOAD PARAMETER NUMBER   
5X22          CALL  7  XPARANOTX           [REACCESS PARAMETER  
5XFL          CALL  7  SETUP               [SET UP CPAR/JSCE BLOCK  
5X^=          LDCH  0  6                   [IF NO INTERFACE NO SPECIFIED, KEEP  
5YDW          BZE   0  Y13                 [OUT OF IDF  
5YYG          NAME     3,CPAR,CPCT         [RENAME IT FOR IDF VALIDATION
5^D6    Y13 
5^XQ          LDX   1  AWORK3(2)           [RESTORE 'PLEXOR DEVICE LIST POINTER 
62CB          STO   1  JSCEP(3) 
62X2          STO   6  JSCEA(3)            [JSCEA EXCEPT FOR BITS 0-6   
63BL          LDCT  4  #500                [B0, B2  
63W=          LDCH  0  AWORK4(2)           [LOAD 'PLEXOR LINE NUMBER
64*W          SLL   0  9
64TG          ORX   4  0
65*6          LGEOG    1,0                 [LOAD 'PLEXOR GEOG NO
65SQ          ORX   4  0                   [JSCEB   
66#B          STO   4  JSCEB(3) 
66S2          BRN      NEXT                [BR TO DO NEXT PARAMETER 
67?L    #   
67R=    # DOWN HERE WE HAVE AN IPB IDENTIFIER FRESHLY CONVERTED INTO X7 BY ZCONV
68=W    #   
68QG    XIDENT  
69=6          LDX   2  FX2  
69PQ          BZE   7  NOTIDENT            [BR IF I0 SPECIFIED  
6=9B          LDXC  0  GSIGN               [SET C   
6=P2          LDN   0  #7777               [THIS IS THE ONLY VALIDATION POSSIBLE
6?8L          TXL   7  0                   [FOR IPB IDENTIFIERS WITHOUT GOING   
6?N=          BCC      NOTIDENT            [TO THE IDF  
6#7W          STO   4  AWORK4(2)           [X4 = 0 IF JUST I73, D/L PTR FOR UN.I
6#MG          LDX   6  7                   [PRESERVE IDENTIFIER NO  
6*76          LDX   4  JPARNUM(3)          [LOAD PARAMETER NO FOR PARANOTX  
6*LQ          CALL  7  XPARANOTX           [REACCESS PARAMETER  
6B6B          CALL  7  SETUP               [SET UP CPAR/JSCE BLOCK  
6BL2          NAME     3,CPAR,AIPB         [... AND RENAME IT FOR IDF VALIDATION
6C5L          STO   6  JSCEA(3)            [STORE IDENTIFIER NUMBER 
6CK=          LDX   1  AWORK4(2)           [0 OR IPB D/L POINTER
6D4W          BZE   1  Y8                  [BR IF IPB NOT KNOWN 
6DJG          LGEOG    1,4  
6F46          STO   4  JSCEB(3)            [STORE IPB GEOG NO   
6FHQ    Y8  
6G3B          STO   1  JSCEP(3) 
6GH2          LDCT  0  #600                [IPB MARKER  
6H2L          ORS   0  JSCEB(3) 
6HG=          BRN      NEXT                [BR TO DO NEXT PARAMETER 
6H^W    #   
6JFG    # PSEUDO-SIMPLE TYPE PARAMETER. COULD BE UM.LN; UM.LN.IAAX; UM.IN; *PT  
6J^6    # OR UN.IAAX WHERE UN IS A UNIPLEXOR
6KDQ    #   
6KYB    PSEUDO  
6LD2          LDN   5  1                   [CURRENT ANALYSIS LEVEL  
6LXL          CALL  7  XPARANUMB           [FIND NUMBER OF COMPONENTS FORMED
6MC=          TXL   4  XFOUR(1)            [CAN'T BE PERIPHERAL DESCRIPTION 
6MWW          BCC      NOTPERI             [PARAMETER IF MORE THAN THREE PARTS  
6NBG          ADX   4  FX1  
6NW6          EXIT  4  TABLE               [BR ACCORDING TO NO OF COMPONENTS
6P*Q    UNLMUNIM                           [2 COMPONENTS
6PTB          MHUNT    3,CPB,CUNI          [FIND THE CPB/CUNI BLOCK 
6Q*2          LDX   0  ANUM(3)             [EXAMINE FIRST COMPONENT 
6QSL          BZE   0  NOTPERI  
6R#=          BNG   0  NOTPERI             [BR IF NULL OR NONEXISTENT   
6RRW          SRL   0  12   
6S?G          BNZ   0  NOTPERI             [BR IF TYPE NOT SIMPLE   
6SR6          LDCH  0  APARA(3) 
6T=Q          SBN   0  #65                 [ERROR IF 1ST PARAMETER NOT "U"  
6TQB          BNZ   0  NOTPERI  
6W=2          LDN   2  APARA(3) 
6WPL          BCHX  2  £                   [ADDRESS OF 1ST NUMERIC CHARACTER
6X9=          LDX   5  ANUM(3)             [LENGTH OF NUMERIC PART OF   
6XNW          SBN   5  1                   [PARAMETER   
6Y8G          CALL  0  ZCONV               [ATTEMPT CONVERSION  
6YN6          BRN      NOTPERI             [FAILED  
6YXY ...      LDX   2  FX2  
6^7Q          CALL  6  XFINDPEREC          [OK - TRY AND FIND PERIPHERAL N  
73KW          STO   3  AWORK3(2)           [PRESERVE DEVICE LIST POINTER
73TN          JEXOTIC  3,YEXOT  
73^K          LTYPE    3,0  
745G          SBN   0  10   
74K6          BZE   0  XUX                 [BR IF UNIPLEXOR 
754Q          SBN   0  1
75JB          BZE   0  XMX                 [BR IF MULTIPLEXOR   
7642          SBN   0  13   
76HL          BNZ   0  NOTMOP              [ERROR IF NOT IPB
773=          LDXC  0  AWORK2(2)
77GW          BCC      Y9                  [BR IF NO DEVICE QUALIFIER   
782G          CALL  7  XPARANXTX           [SPLIT PARAMETER UP AT BRACKETS  
78G6          BRN      Y10  
78^Q    Y9  
79FB          CALL  7  XPARAPASS           [GET NEXT PARAMETER  
79^2    Y10 
7=DL          BZE   5  NOTPERI             [X5 = ANUM   
7=Y=          BNG   5  NOTPERI             [BR IF NULL OR NONEXISTENT   
7?CW          SRL   5  12   
7?XG          BNZ   5  NOTPERI             [ERROR IF NOT SIMPLE PARAMETER   
7#C6          LDCH  0  APARA(3)            [LOAD 1ST CHARACTER OF PARAMETER 
7#WQ          SBN   0  #51  
7*BB          BNZ   0  NOTPERI             [ERROR IF 1ST CHARACTER NOT "I"  
7*W2          LDX   5  ANUM(3)  
7B*L          SBN   5  1                   [COUNT OF NUMERIC CHARACTERS 
7BT=          LDN   2  APARA(3) 
7C#W          BCHX  2  £                   [ADDRESS OF 1ST NUMERIC CHARACTER
7CSG          CALL  0  ZCONV               [ATTEMPT CONVERSION  
7D#6          BRN      NOTPERI             [BR IF FAILED
7DRQ          LDX   2  FX2  
7F?B          LDX   4  AWORK3(2)           [RELOAD DEVICE LIST POINTER  
7FR2          BRN      XIDENT              [IDENTIFIER TYPE PARAMETER   
7G=L    #   
7GQ=    # DOWN HERE UM HAS BEEN VALIDATED AND IS A MULTIPLEXOR OR UNIPLEXOR 
7H9W    # ITS DEVICE LIST POINTER IS IN X3 AND AWORK3   
7H#5    YEXOT   
7H*8          LTYPE    3,0  
7HB#          SBN   0  11   
7HDH          BNZ   0  NOTPERI             [ERROR IF NOT EXOTIC MX  
7HGQ          LDX   0  AWORK1(2)
7HJ^          ANDN  0  BSMLCC              [EXOTIC MX ALLOWED   
7HM8          BZE   0  NOTPERI             [IF SMLCC OPTION PRESENT 
7HPG    XUX 
7J96    XMX 
7JNQ          LDXC  0  AWORK2(2)
7K8B          BCC      Y11                 [BR IF NO DEVICE QUALIFIER   
7KN2          CALL  7  XPARANXTX
7L7L          BRN      Y12  
7LM=    Y11 
7M6W          CALL  7  XPARAPASS           [GET NEXT PARAMETER  
7MLG    Y12 
7N66          BZE   5  NOTPERI  
7NKQ          BNG   5  NOTPERI             [BR IF NULL OR NONEXISTENT   
7P5B          SRL   5  12   
7PK2          BNZ   5  NOTPERI             [ERROR IF NOT SIMPLE 
7Q4L          LDCH  0  APARA(3)            [LOAD 1ST CHARACTER  
7QJ=          SBN   0  #54  
7R3W          BNZ   0  S1                  [BR IF 1ST CHARACTER NOT "L" 
7RHG          LDX   5  ANUM(3)  
7S36          SBN   5  1                   [NO OF NUMERIC CHARACTERS
7SGQ          LDN   2  APARA(3) 
7T2B          BCHX  2  £                   [ADDRESS OF 1ST NUMERIC CHARACTER
7TG2          CALL  0  ZCONV               [ATTEMPT CONVERSION  
7T^L          BRN      NOTPERI             [FAILED  
7WF=          LDX   2  FX2  
7WYW          LNLI     AWORK3(2),4         [LOAD NUMBER OF LINES ON DEVICE  
7XDG          TXL   4  7
7XY6          BCS      NOLINE              [BR IF LINE NO TOO BIG   
7Y2P ...      LTYPE    AWORK3(2),4  
7Y5# ...      SBN   4  11   
7Y7X ...      BNZ   4  Y12AA
7Y=G ...      BZE   7  NOLINE              [BR IF ZERO LINE NO FOR SMLCC
7Y*5 ...Y12AA   
7YCQ          LDX   6  7                   [DON'T LOSE LINE NUMBER! 
7YXB    # LINE NUMBER VALID - I.E. VALID UM.LN PARAMETER
7^C2          LDX   4  JPARNUM(3)          [LOAD PARAMETER NUMBER   
7^WL          CALL  7  XPARANOTX           [REACCESS PARAMETER  
82B=          CALL  7  SETUP               [SET UP CPAR/JSCE BLOCK  
82TW          LDX   1  AWORK3(2)           [RESTORE DEVICE LIST POINTER 
835N          JEXOTIC  1,Y12A              [NO CHECKING FOR EXOTIC MX   
83*G          NAME     3,CPAR,CPCT         [RENAME FOR CLUSTER CHECKING LATER   
83K#    Y12A
83T6          STO   1  JSCEP(3) 
84#Q          STOZ     JSCEA(3) 
84SB          LDCT  4  #500                [B0, B2  
85#2          SLL   6  9
85RL          ORX   4  6
86?=          LGEOG    1,0                 [LOAD MX GEOG NO 
86QW          ORX   4  0                   [X4 = JSCEB FOR UM.LN PARAMETER  
87=G          STO   4  JSCEB(3) 
87Q6          BRN      NEXT                [BR TO DO NEXT PARAMETER 
889Q    S1                                 [DEVICE MIGHT BE UX  
88PB          ADN   0  3
8992          BNZ   0  NOTPERI             [ERROR IF 1ST CHARACTER NOT "I"  
89NL          LTYPE    AWORK3(2),0  
8=8=          SBN   0  10   
8=MW          BNZ   0  NOTPERI             [UN.IAAX ALLOWED FOR UX ONLY 
8?7G          LDX   0  ANUM(3)  
8?M6          SBN   0  5
8#6Q          BPZ   0  NOTPERI             [ERROR IF > 5 CHARACTERS 
8#LB          LDN   2  APARA(3) 
8*62    S2  
8*KL          BCHX  2  £
8B5=          LDCH  0  0(2)                [LOAD NEXT CHARACTER 
8BJW          SBN   0  #41  
8C4G          BNG   0  NOTPERI  
8CJ6          SBN   0  #32                 [ERROR IF 2ND CHARACTER  
8D3Q          BPZ   0  NOTPERI             [NOT ALPHA   
8DHB          BCHX  2  £                   [CHECK 3RD CHARACTER 
8F32          LDCH  0  0(2) 
8FGL          SBN   0  10   
8G2=          BNG   0  S5                  [OK IF NUMERIC   
8GFW          SBN   0  23   
8G^G          BNG   0  NOTPERI  
8HF6          SBN   0  26   
8HYQ          BPZ   0  NOTPERI  
8JDB    S5                                 [OR ALPHA
8JY2          BCHX  2  £
8KCL          LDCH  0  0(2)                [LOAD LAST CHARACTER 
8KX=          BZE   0  NOTPERI             [BR IF INTERFACE NO ZERO 
8LBW          TXL   0  SEVEN(1) 
8LWG          BCS      OK                  [BR IF BETWEEN 1 AND 6   
8MB6          SBN   0  #20  
8MTQ          BNZ   0  NOTPERI             [ERROR IF NOT SPACE  
8N*B          DCH   0  0(2)                [RESTORE INTERFACE NO IN CUNI BLOCK  
8NT2    OK  
8P#L          LDX   2  FX2  
8PS=          STOZ     AWORK4(2)           [LINE NUMBER 0 FOR UPX   
8Q?W          BRN      Y5                  [BR TO VERIFY EXISTENCE OF TERMINAL  
8QRG    #   
8R?6    #   
8RQQ    #   
8S=B    UNLMIAAX
8SQ2    #   
8T9L    # DOWN HERE WE HAVE A 3 COMPONENT PARAMETER WHICH OUGHT TO BE UN.LM.IAAX
8TP=    # THE UN BIT IS IN THE FIRST CPB/CUNI BLOCK, POINTED AT BY X3   
8W8W    #   
8WNG          BZE   5  NOTPERI             [BR IF NU-L OR NONEXISTENT   
8X86          BNG   5  NOTPERI             [ (X5 = ANUM)
8XMQ          SRL   5  12   
8Y7B          BNZ   5  NOTPERI             [BR IF NOT SIMPLE
8YC8          MHUNT    3,CPB,CUNI   
8YM2          LDCH  0  APARA(3) 
8^6L          SBN   0  #65  
8^L=          BNZ   0  NOTPERI             [BR IF 1ST CHARACTER NOT "U" 
925W          LDX   5  ANUM(3)  
92KG          SBN   5  1                   [CHARACTER COUNT OF NUMERIC CHARS
9356          LDN   2  APARA(3) 
93JQ          BCHX  2  £                   [ADDRESS OF FIRST NUMERIC CHARACTER  
944B          CALL  0  ZCONV               [ATTEMPT CONVERSION  
94J2          BRN      NOTPERI             [FAILED  
94RS ...      LDX   2  FX2  
953L          CALL  6  XFINDPEREC          [FIND DEVICE LIST
962W          LTYPE    3,0  
96GG          SBN   0  10   
9726          BZE   0  QUX                 [BR IF UNIPLEXOR 
97FQ          TXU   0  XTP(1)   
97^B          BCS      NOTPLEXOR           [BR IF NOT MULTIPLEXOR   
98F2    QUX 
98YL          JEXOTIC  3,NOTPERI           [EXOTICS NOT ALLOWED 
99D=          LDX   2  FX2  
99XW          STO   3  AWORK3(2)           [PRESERVE DEVICE LIST POINTER
9=CG    #   
9=X6    # UN BIT VALIDATED, AND IS A MX OR A UX 
9?BQ    #   
9?WB          CALL  7  XPARAPASS           [GET NEXT COMPONENT  
9#B2          BZE   5  NOTPERI  
9#TL          BNG   5  NOTPERI             [BR IF NULL OR NONEXISTENT   
9**=          SRL   5  12   
9*SW          BNZ   5  NOTPERI             [BR IF TYPE NOT SIMPLE   
9B#G          LDCH  0  APARA(3) 
9BS6          SBN   0  #54  
9C?Q          BNZ   0  NOTPERI             [BR IF 1ST CHAR OF 2ND BIT NOT "L"   
9CRB          LDX   5  ANUM(3)  
9D?2          SBN   5  1                   [NO OF NUMERIC CHARACTERS
9DQL          LDN   2  APARA(3) 
9F==          BCHX  2  £                   [ADDRESS OF 1ST NUMERIC CHARACTER
9FPW          CALL  0  ZCONV               [ATTEMPT CONVERSION  
9G9G          BRN      NOTPERI             [FAILED  
9GP6          LDX   2  FX2  
9H8Q          LNLI     AWORK3(2),4         [LOAD NUMBER OF LINES ON DEVICE  
9HNB          TXL   4  7
9J82          BCS      NOLINE              [BR IF LINE NO TOO BIG   
9JML          STO   7  AWORK4(2)           [STORE LINE NUMBER   
9K7=    #   
9KLW    # NOW HAVE VALID UNIT NUMBER AND LINE NUMBER. NOW TO CHECK FORMAT OF
9L6G    # NEXT COMPONENT
9LL6    #   
9M5Q          LDXC  0  AWORK2(2)
9MKB          BCC      S3                  [BR IF NO DEVICE QUALIFIER   
9N52          CALL  7  XPARANXTX
9NJL          BRN      S4   
9P4=    S3  
9PHW          CALL  7  XPARAPASS           [ACCESS NEXT PARAMETER   
9Q3G    S4  
9QH6          BZE   5  NOTPERI  
9R2Q          BNG   5  NOTPERI             [BR IF NULL OR NONEXISTENT   
9RGB          SBN   5  5
9S22          BPZ   5  NOTPERI             [ERROR IF > 4 CHARACTERS 
9SFL          LDCH  0  APARA(3)            [LOAD 1ST CHARACTER  
9S^=          SBN   0  #51  
9TDW          BNZ   0  NOTPERI             [BR IF 1ST CHAR NOT "I"  
9TYG          LDN   2  APARA(3) 
9WD6          BCHX  2  £
9WXQ          LDCH  0  0(2)                [LOAD 2ND CHARACTER  
9XCB          SBN   0  #41  
9XX2          BNG   0  NOTPERI  
9YBL          SBN   0  #32                 [ERROR IF 1ST CHARACTER NOT ALPHA
9YW=          BPZ   0  NOTPERI  
9^*W          BCHX  2  £
9^TG          LDCH  0  0(2)                [LOAD 3RD CHARACTER  
=2*6          SBN   0  10   
=2SQ          BNG   0  Q1                  [OK IF NUMERIC   
=3#B          SBN   0  #27  
=3S2          BNG   0  NOTPERI  
=4?L          SBN   0  #32                 [OR ALPHA
=4R=          BPZ   0  NOTPERI             [BUT NOT OTHERWISE   
=5=W    Q1  
=5QG          BCHX  2  £
=6=6          LDCH  0  0(2)                [LOAD LAST CHARACTER 
=6PQ          BZE   0  NOTPERI             [NO INTERFACE ZERO   
=79B          TXL   0  SEVEN(1) 
=7P2          BCS      Q2                  [BR IF < 7 - OK  
=88L          SBN   0  #20  
=8N=          BNZ   0  NOTPERI             [BR IF NOT SPACE 
=97W          DCH   0  0(2)                [PUT INTERFACE NO BACK IN UNI BLOCK  
=9MG    Q2  
==76          LDX   2  FX2  
==LQ          BRN      Y5                  [BR TO VERIFY EXISTENCE OF TERMINAL  
=?6B    #   
=?L2    #     PHEW! 
=#5L    #   
=#K=    #   
=*4W    QUAL
=*JG          LDX   0  GSIGN
=B46          ORS   0  AWORK2(2)           [SET DEVICE QUALIFIER SWITCH 
=BHQ          LDN   5  1
=C3B          CALL  7  XPARANUMB           [FIND NUMBER OF COMPONENTS IN
=CH2          TXL   4  XFOUR(1) 
=D2L          BCC      NOTPERI             [ERROR IF >4 COMPONENTS  
=DG=          ADX   4  1                   [PARAMETER, AND EXIT ACCORDINGLY 
=D^W          EXIT  4  STABLE   
=FFG    PARSORTB
=F^6          LDX   0  AWORK1(2)
=GDQ          ANDN  0  4
=GYB          BZE   0  NOTPERI             [ERROR IF NOT PARSORTB   
=HD2          PERCONA                      [CONVERT PARAMETER TYPE  
=HXL          TESTREP  PARERR,NEXT         [BR IF NOT OK
=JC=          LDXC  0  ACOMMUNE2(2) 
=JWW          BCC      NOTPERI             [ERROR IF UNIT NUMBER SPECIFIED *LP0 
=KBG          LDX   6  ACOMMUNE1(2)        [PERIPHERAL TYPE 
=KW6          MHUNT    3,CPB,CUNI   
=L*Q          LDX   4  JPARNUM(3)          [PARAMETER NUMBER
=LTB          CALL  7  SETUP               [SET UP CPAR/JSCE BLOCK  
=M*2          SLL   6  3                   [TYPE TO B0-5
=MSL          STO   6  JSCEA(3) 
=N#=          STOZ     JSCEP(3) 
=NRW          BRN      NEXTW
=P?G    #   
=PR6    # BELOW WE HAVE VARIOUS ASSORTED LABELS ETC.
=Q=Q    NOPARAM                            [NO PARAMETERS FOUND 
=QQB          LDX   1  FX1  
=R=2          LDX   6  ZJPARMIS(1)         [ERROR... :PERIPHERAL DESCRIPTION
=RPL          LDX   5  ZJPERMIS(1)         [PARAMETER MISSING   
=S9=          CALL  7  XERRORX  
=SNW          CALL  7  XFREE               [FREE CPB/CUNI BLOCKS
=T8G          PARAFREE                     [AND MULTI BLOCK 
=TN6    XIT                                [EXIT LABEL  
=W7Q          UPPLUS   1
=WMB    NOUNIT                             [PERIPHERAL NOT ON INSTALLATION  
=X72          LDX   1  FX1  
=XBS          JENV     NOUNITA,DME  
=XLL          LDX   6  ZJNOPER(1)   
=Y6=          BRN      REPORT              [BR TO OUTPUT ERROR MESSAGE  
=Y88    NOUNITA 
=Y=6          LDX   6  ZJNOPFD(1)   
=Y#4          BRN      REPORT   
=YB2    NOTOUT  
=YCY          LDX   1  FX1  
=YFW          LDX   6  ZJERSO(1)
=YHS          BRN      REPORT   
=YKW    NOCLUS                             [CLUSTERING NOT VALID
=^5G          LDX   1  FX1  
=^K6          LDX   6  ZNOCLUS(1)   
?24Q          BRN      REPORT   
?2JB    NOTDEVQUAL                         [DEVICE QUALIFIER INVALID
?342          LDX   1  FX1  
?3HL          LDX   6  ZILLQUAL(1)  
?43=          BRN      REPORT   
?4GW    NOLINE                             [ILLEGAL LINE NUMBER 
?52G          LDX   1  FX1  
?5G6          LDX   6  ZILLINO(1)   
?5^Q          BRN      REPORTA             [PARAMETER ALREADY PASSED
?6FB    NOTIDENT                           [ILLEGAL IDENTIFIER  
?6^2          LDX   1  FX1  
?7DL          LDX   6  ZILLIDE(1)   
?7Y=          BRN      REPORTA             [PARAMETER ALREADY PASSED
?8CW    PFERR   
?8XG    NOTMOP                             [UN NOT MOP DEVICE   
?9C6    XCOMP   
?9WQ    NOTPERI                            [NOT VALID PERIPHERAL DESCRIPTION
?=BB    NOTPLEXOR                          [UN NOT MPX OR UPX   
?=W2    #                                  [TEMPORARY   
??*L          LDX   1  FX1  
??T=          LDX   6  ZJNOTPERI(1) 
?##W    REPORT  
?#SG          MHUNT    3,CPB,CUNI          [RELOCATE CPB/CUNI   
?*#6          LDX   4  JPARNUM(3)          [LOAD PARAMETER NUMBER   
?*RQ          CALL  7  XPARANOTX           [REACCESS PARAMETER FOR OUTPARAM 
?B?B    REPORTA 
?BR2          NGN   5  1                   [SUB MESSAGE IN CUNI BLOCK   
?C=L          CALL   7  XERRORX            [SEND ERROR MESSAGE  
?CQ=          BRN      NEXTW
?D9W    PAREND                             [NO MORE PARAMETERS  
?DPG    PEEPINDIDF  
?F96    #   
?FNQ    # AT THIS STAGE IN THE PROCEEDINGS WE HAVE A STRIDE (WHICH MAY BE OF
?G8B    # ZERO LENGTH) OF CPAR/JSCE BLOCKS (LOCAL PERIPHERALS), CPAR/CPCT BLOCKS
?GN2    # (PCT PERIPHERALS), AND CPAR/AIPB BLOCKS (IPB IDENTIFIERS), ALL MIXED  
?H7L    # IN ANY ORDER. THIS SECTION OF THE CODE CHECKS THE PERIPHERAL DEFINED  
?HM=    # IN THE CPAR BLOCK WITH THE CURRENT STATE OF THE IDF.  
?J6W    #   
?JLG          PARAFREE                     [FREE REMAINING MULTI BLOCK  
?K66          HUNTW    3,CPAR,CPCT         [LOOK FOR PCT DEVICE BLOCK   
?KKQ          BPZ   3  QIDFPCT             [BR IF ONE FOUND 
?L5B          HUNTW    3,CPAR,AIPB         [LOOK FOR IPB DEVICE BLOCK   
?LK2          BNG   3  XIT                 [BR IF NO NEED TO OPEN IDF   
?M4L    QIDFPCT 
?MJ=          ACROSS   PARIDF,1            [GO TO SEARCH IDF
?N3W    #                              **** 
?NHG    #                          ************ 
?P36    #   
?PGQ    #              *  *     **  
?Q2B    #              * *     *  * 
?QG2    #              **         * 
?Q^L    #              * *      *   
?RF=    #              *  *    **** 
?RYW    #   
?SDG    X2PARSORT   
?SY6    #   
?TCQ    #     THIS ENTIY SERVICES THE PARSORTX MACRO. ON ENTRY ACOMMUNE1
?TXB    #     CONTAINS THE OPTIONS REQUIRED, AND ACOMMUNE2 CONTAINS THE NUMBER  
?WC2    #     OF THE PARAMETER TO BE ANALYSED   
?WWL    #   
?XB=          LDX   0  ACOMMUNE1(2) 
?XTW          STO   0  AWORK1(2)           [PRESERVE OPTION WOR4
?Y*G          LDX   5  ACOMMUNE2(2)        [PARAMETER NUMBER
?YT6          LDN   4  0                   [PARAMETER ANALYSIS LEVEL
?^#Q          PARANEXT #36,4,5             [SPLIT PARAMETER AT .
?^FY ...#UNS ANSTOOMANY 
?^M6 ...      TESTREP2 TOOMANY,XTOOMANY 
?^SB          MHUNT    3,CPB,CUNI   
#2#2          LDX   5  ANUM(3)  
#2RL          BZE   5  NOPARAM             [ERROR IF PARAMETER NULL 
#3?=          BNG   5  NOPARAM             [OR NON-EXRSTERT 
#3QW          LDN   4  1
#4=G          STO   4  AWORK2(2)           [ONLY ONE PARAMETER TO DO
#4Q6          STOZ     AWORK3(2)
#59Q          STOZ     AWORK4(2)
#5PB          BRN      PARSORTX            [JOIN COMMON PATH
#692    #   
#6NL    XPARANUMB   
#78=    # LOAD INTO X4 THE NUMBER OF PARAMETERS IN THE MULTI PARAMETER BLOCK AT 
#7MW    # THE NUMERICALLY HIGHEST ANALYSIS LEVEL
#87G    #     LINK IN X7
#8M6          SBX   7  FX1  
#96Q          PARANUMB 4,5                 [NO OF PARAMETERS TO X4  
#9LB          ADX   7  FX1  
#=62          BRN      (7)  
#=KL    #   
#?5=    XPARANXTX   
#?JW    # ISSUE PARANXTX WITH NO SEPARATOR TO SPLIT UP DEVICE QUALIFIER 
##4G    #     LINK IN X7
##J6          MHUNT    3,CPB,CUNI   
#*3Q          LDEX  4  ATYPE(3)            [LOAD NUMBER OF LAST COMPONENT   
#*HB          ADN   4  1                   [ACCESSED, AND ADD ONE   
#B32    YPARANXTX   
#BGL          SBX   7  FX1  
#C2=          PARANXTX ,,4                 [SPLIT PARAMETER 
#C7D ...#UNS ANSTOOMANY 
#C#L ...      TESTREP2 TOOMANY,XTOOMANY 
#CFW          MHUNT    3,CPB,CUNI   
#C^G          LDX   5  ANUM(3)  
#DF6          ADX   7  FX1  
#DYQ          BRN      (7)  
#FDB    #   
#FY2    XPARAPASS   
#GCL    # SPLIT OFF NEXT PARAMETER COMPONENT FROM THE MULTI PARAMETER BLOCK AT  
#GX=    # THE NUMERICALLY HIGHEST ANALYSIS LEVEL, THEN HUNT THE CPB/CUNI BLOCK  
#HBW    # ON X3. ALSO LOAD ANUM INTO X5 
#HWG    #     LINK IN X7
#JB6          SBX   7  FX1  
#JTQ          PARAPASS                     [SPLIT OFF NEXT PARAMETER
#K*B          MHUNT    3,CPB,CUNI          [FIND THE CPB/CUNI BLOCK 
#KT2          LDX   5  ANUM(3)  
#L#L          ADX   7  FX1  
#LS=          BRN      (7)  
#M?W    #   
#MRG    ZCONV   
#N?6    # CONVERT TO DECIMAL THE CONTENTS OF THE WORD POINTED AT BY X2. NO OF   
#NQQ    # SIGNIFICANT CHARACTERS IN X5, AND X2 IS CHARACTER SIGNIFICANT 
#P=B    #     LINK IN X0, AND RESULT IN X7  
#PQ2          LDN   6  0
#Q9L          LDN   7  0
#QP=    NXCHAR  
#R8W          CDB   6  0(2)                [CONVERT NEXT CHARACTER  
#RNG          BCS      (0)                 [BR IF NON-NUMERIC CHARACTER FOUND   
#S86          BCHX  2  £
#SMQ          BCT   5  NXCHAR              [X5 CONTAINS CHARACTER COUNT 
#T7B          EXIT  0  1                   [EXIT+1 FOR SUCCESSFUL CONVERSION
#TM2    #   
#W6L    XFINDPEREC  
#WL=    # FIND DEVICE LIST POINTER OF PERIPHERAL WHOSE GEOGRAPHIC NUMBER IS IN  
#X5W    # X7, AND STORE IT IN X3.   
#XKG    #     LINK IN X6
#XNL    #UNS AV7900S
#XRQ          FINDPEREC 3,APGEOG,7,,AV7900,XSWOUT  [FIND D.L. (INCL. V7900) 
#XWW    #UNS AV7900S
#Y22    #SKI
#Y44          FINDPERE 3,APGEOG,7,,,XSWOUT [FIND DEVICE LIST
#Y66          BPZ   3  (6)  
#Y77    XFAN
#Y7= ...      JENVNOT  XFAN1,CMESTAR
#Y7* ...      LDX   0  AWORK1(2)
#Y7D ...      ANDN  0  BDEVMN   
#Y7H ...      BZE   0  NOUNIT   
#Y7L ...      LDX   0  AWORK4(2)
#Y7P ...      BZE   0  NOUNIT   
#Y7S ...      BRN      (6)  
#Y7X ...XFAN1   
#Y88          LDX   0  AWORK1(2)
#Y==          ANDN  0  BGROPE   
#Y##          BZE   0  NOUNIT   
#Y#M          JENVNOT  NOUNIT,CME   
#Y*2          LDX   0  GANON               [J IF NO ANONYMOUS DEVICES   
#Y*N          BZE   0  NOUNIT   
#YB3          SBX   6  FX1  
#YBB          GROPEREC 3,APGEOG,7   
#YCC          ADX   6  FX1  
#YDD          BNG   3  NOUNIT   
#YGG          JSWOUT   3,XSWOUT 
#YJQ          BRN      (6)  
#YL^    XSWOUT  
#YP8          LDX   0  AWORK1(2)
#YRC          ANDN  0  BINCOUT  
#YTL          BNZ   0  XINOUT   
#YXT          NGN   3  4095 
#^24          BRN      NOTOUT   
#^25    XINOUT  
#^26 ...      JENVNOT  XINOUT1,CMESTAR  
#^27 ...      BRN      (6)  
#^28 ...XINOUT1 
#^29 ...      JSWOVER  3,XSWAIT 
#^2= ...      JANON    3,XFAN   
#^2? ...      BRN      (6)  
#^2# ...XSWAIT  
#^2* ...      SBX   6  FX1  
#^2B ...      COOR3    #62  
#^2C ...      ADX   6  FX1  
#^2D ...      BRN      XINOUT   
#^2F ...#   
#^2J    XFINDOPER   
#^2S    # FIND DEVICE LIST POINTER OF OPER CONSOLE  
#^34          LDN   7  #77  
#^3#          FINDPERE 3,APFOTY,7   
#^3J          BNG   3  NOUNIT   
#^3S          STOZ     7
#^44          EXIT  6  0
#^4B    #   
#^J2    XPARANOTX   
*23L    # REACCESS PARAMETER WHOSE NUMBER IS IN X4 FROM THE CPB/CALAS BLOCK 
*2H=    #     LINK IN X7
*32W          SBX   7  FX1  
*3GG          LDN   5  0                   [PARAMETER ANALYSIS LEVEL
*426          SPARANOX 4,5                 [REACCESS PARAMETER  
*4FQ          MHUNT    3,CPB,CUNI   
*4^B          ADX   7  FX1  
*5F2          BRN      (7)  
*5YL    #   
*6D=    SETUP   
*6XW    # SET UP A CPAR/JSCE BLOCK CHAINED NEXT TO THE CURRENT ACTIVITY, WITH A 
*7CG    # COPY OF THE CURRENT PARAMETER ALREADY STORED AWAY, TOGETHER WITH THE  
*7X6    # CHARACTER COUNT. X4 CONTAINS THE PARAMETER NUMBER 
*8BQ    #     LINK IN X7
*8WB          SBX   7  FX1  
*9B2          LDX   5  ALOGLEN(3)   
*9TL          ADN   5  JSCER-A1-2          [LENGTH OF CPAR/JSCE BLOCK REQUIRED  
*=*=          SETUPCOR 5,3,CPAR,JSCE       [SET UP CPAR/JSCE BLOCK  
*=SW          MHUNT    2,CPB,CUNI          [RELOCATE THE CPB/CUNI BLOCK 
*?#G          LDX   5  ANUM(2)  
*?S6          ANDN  5  #7777               [PARAMETER LENGTH
*#?Q          SLL   4  12                  [PARAMETER TYPE TO B0-11 
*#RB          ORX   4  5                   [ JSCEQ WORD 
**?2          STO   4  JSCEQ(3) 
**QL          STOZ     JSCEA(3) 
*B==          STOZ     JSCEB(3)            [CLEAR OUT BLOCK 
*BPW          STOZ     JSCEC(3) 
*C9G          NGN   0  1
*CP6          STO   0  JSCEK(3)            [SET JSCEK TO -1 INITIALLY   
*D8Q          ADN   2  APARA
*DNB          ADN   3  JSCER
*F82          ADN   5  3
*FML          SRL   5  2                   [X5 = NO OF WORDS IN PARAMETER   
*G7=          SMO      5                   [(TO RETAIN TRAILING SPACES  
*GLW          MOVE  2  0                   [MOVE PARAMETER INTO CPAR/JSCE BLOCK 
*H6G          SBN   3  JSCER               [RESET X3 AS BLOCK POINTER   
*HL6          ADX   7  FX1  
*J5Q          LDX   2  FX2  
*JKB          BRN      (7)  
*K52    #   
*KJL    XFREE   
*L4=    # FREE CPB/CUNI BLOCKS AT THE CURRENT COMMAND PROCESSOR LEVEL, AND THEN 
*LHW    #     LINK IN X7
*M3G          UNIFREE                      [FREE CPB/CUNI BLOCKS
*MH6          BRN      (7)  
*N2Q    #   
*NGB    XERRORX 
*P22    # SEND MESSAGE IDENTIFIED BY X6 TO CLUSTER CONSOLE  
*PFL    #     LINK IN X7
*P^=          SBX   7  FX1  
*QDW          ERRORX   6,5                 [SEND ERROR MESSAGE  
*QYG          ADX   7  FX1  
*RD6          BRN      (7)  
*RXQ    #   
*RYB ...      ZERRORY   
*R^2 ...#   
*R^N ...#UNS ANSTOOMANY 
*S3L ...(   
*S5J ...XTOOMANY
*S7G ...      CALL  7  XFREE
*S9D ...      PARAFREE  
*S?B ...      ZERRORX  JMAXPAR             [MAX NO OF PARAMETERS EXCEEDED   
*S*# ...)   
*SCB    #   
*SCX ...#   
*SDD ...XCONTY  
*SD^ ...#   
*SFG ...#   
*SG3 ...#   
*SGJ ...      STO   1  6
*SH5 ...      LDN   2  0
*SHL ...XCTY1 SMO      FX1  
*SJ7 ...      LDX   4  TDTYPE(2)
*SJN ...      TXU   4  ACES 
*SK9 ...      BCC      XCTY6
*SKQ ...      SMO      FX2  
*SL? ...      TXU   4  AWORK3   
*SLS ...      BCC      XCTY3
*SM* ...XCTY2 ADN   2  1
*SMW ...      BRN      XCTY1
*SNC ...XCTY3 JPROP    6,XCTY4,XCTY4
*SNY ...      BRN      XCTY5
*SPF ...XCTY4 ADN   2  1
*SQ2 ...XCTY5 SMO      FX1  
*SQH ...      LDX   4  TDMNEM(2)
*SR4 ...XCTY6 SRL   4  12   
*SRK ...      SMO      FX2  
*SS6 ...      STO   4  AWORK4   
*SSM ...      LDX   1  6
*ST8 ...      LDX  2  FX2   
*STP ...      BRN      (7)  
*SX2    #   
*TBL    #PAGE   
*TW=          MENDAREA 50,K100PARSORT   
*W*W    #END
^^^^ ...46062525000700000000