WLA867

(George Source)

Macros used: ABANDCOM, ACROSS, ALTLENG, AND, BITDEFS, BS, BXE, BXU, CLOSE, COMERR, DO, DX, ELSE, ELSF, FCJOB, FI, HUNT2J, HUNTMISB, IF, JBC, JBS, MFREE, MHUNT, MHUNTW, OPENSYS, OPSCON, PHOTO, PROPERTY, REPEAT, REWIND, SEGENTRY, SETNCORE, SETREP2, SETUPCORE, SPARANOX, STEP, TESTRACE, TESTREP2, TESTRPN2, THEN, VFREE, WHILE

WLA867.txt
22FL    #SEG           WLA                 [DEVT - STIG TOWNSEND
22^=    #OPT           K0WLA=0  
23DW    #LIS           K0WLA>K0ALLGEO>K0GREATGEO
23YG          8HWLA 
24D6       SEGENTRY K1WLA,WLAK1         [WHATLIST COMMAND   
24XQ       SEGENTRY K2WLA,WLAK2         [STOPLIST COMMAND   
25CB       SEGENTRY K3WLA,WLAK3         [CHANGELIST COMMAND 
25X2       SEGENTRY K4WLA,WLAK4         ['PR' PARAM ANALYSIS
26W=    [   
27*W    [   
27TG    [ CODING CONVENTIONS: ONLY X1 PTS TO APERI/APROPS   
28*6    [                     ONLY X2 PTS TO APERI/APRNUM   
28SQ    [                                    APERI/CONSOLE  
29#B    [                                    CPB/CUNI   
29S2    [                                    CPAT   
2=?L    [                     ONLY X3 PTS TO ADATA/AWHATLIST HEAD   
2=R=    [                                    (X1 MAY PT TO INNER WDS)   
2?=W    [ THESE MAY NOT BE ADHERED TO IN THE SUBROUTINES
2?QG    [   
2#=6    [   
2#PQ    [ THE FOLLOWING BIT IDENTIFIERS ARE RELEVANT TO A CPAT BLOCK
2*9B    [   
2*P2       BITDEFS  CONTEXT,19,WBUOPCON,,,WBNUCON,WBUCON
2B8L    [   
2BN=    [ THEY ARE THE OPS' CONSOLE, NOUSER AND USER CONTEXT
2C7W    [ BITS RESPECTIVELY 
2CMG    [   
2D76    [   
2DLQ    [ PRESET DATA   
2F6B    [ ===========   
2FL2    [   
2L^W    PVAL1          +1   
2MFG    PVAL2          +2   
2M^6    PVAL3          +3   
2NDQ    PVAL4          +4   
2NYB    PSTRCOLON      4H:  
2PD2    PSTRSTAR       4H*  
2PXL    PSTRUSER       8HUSER : 
2QC=    PSTRFULL       8HFULL   
2QWW    PSTRLIST       8HLIST   
2RBG    PSTRHERE       8HHERE   
2RW6    PSTRFILE       8HFILE   
2S*Q    PSTRDOCU       8HDOCU   
2STB    PSTRTOPR       8HTOPR   
2T*2    PSTRTOUR       8HTOUR   
2TSL    PSTRJOB        4HJOB
2W#=    PERITYPE       4HCP 
2WRW                   4HLP 
2X?G                   4HTP 
2XR6    PROPERTY       8HPROPERTY   
2Y=Q    PSTRPR         4HPR 
2YQB    PSTRDM         4HDM 
2^=2    PCT            0
2^PL    #FID           CBCT,CBCT,1  
329=    [   
32NW    [   
338G    [ SUBROUTINE 'SUBAREPROPS'  
33N6    [ ========================  
347Q    [   
34MB    [ THIS SUBROUTINE CHECKS WHETHER A GIVEN PROPERTY STRING IS DRASTICALLY 
3572    [ WRONG. IF IT IS, A REPLY IS SET, ELSE AN APERI/APRNUM BLOCK IS SET UP 
35LL    [ CONTAINING THE PROPERTY NUMBERS(B0=>CONSOLE, B1=>PERMANENT)   
366=    [   
36KW    [ ENVIRONMENT REQUIRED:-
375G    [    APERI/APROPS BLOCK EXISTS  
37K6    [    ADATA/CREADL DETAILS BLOCK EXISTS  
384Q    [    X1=GSIGN (MUST FIND DEFAULT PROPERTY)  
38JB    [       0     (DEFAULT IS CONSPROP OF PREVIOUS APROPS)  
3942    [   
39HL    [ ENVIRONMENT CHANGES:- 
3=3=    [    X0 LINK - KEPT IN AWORK1 THROUGHOUT
3=GW    [    X2:=FX2
3?2G    [    X1,X3->X7,AWORK1->AWORK4 DESTROYED 
3?G6    [    REPLY XPROP,CPROPS,MAXATT OR OK GIVEN  
3?^Q    [    APERI/APRNUM SET UP
3#FB    [    DETAILS BLOCK UPDATED TO INCLUDE 'PR' DETAILS  
3#^2    [    AWORK2 SET NON-ZERO IF BREAKIN BEFORE SYSPER OPENED
3*DL    [   
3*Y=    PRCENTRAL      4H 001              [PROPNO WD FOR 'CENTRAL' IN SYSPROP  
3BCW    SUBAREPROPS 
3BXG       SBX   0  FX1 
3CC6       ADX   0  1   
3CWQ       LDX   2  FX2 
3DBB       STO   0  AWORK1(2)           [STORE LINK 
3DW2       MHUNT    1,APERI,APROPS  
3F*L       LDX   7  A1+1(1)             [X7 := CT OF PROPNAMES  
3FT=       STO   7  AWORK3(2)           [AWORK3 := EXPECTED PROP COUNT  
3G#W       LDN   6  ATTMAX  
3GSG       SBX   6  7   
3H#6       BNG   6  TOOMANYPRS          [IF TOO MANY PROPNAMES, ERR FI  
3HRQ       ADN   7  2                   [X7 := LOGLEN OF APERI/APRNUM   
3J?B       SETUPCORE 7,2,APERI,APRNUM   
3JR2       SBN   7  2   
3K=L       STOZ     A1(2)               [COUNT OF PROPNOS := 0  
3KQ=       STOZ     A1+1(2)             [CLEAR CONSPROP WD (ASSUME NO CONSPROP) 
3L9W       OPENSYS  UBROKEIN,PROPERTY,READ,CAREFUL  
3LPG       IF       7,NZ                [IF PR PARAM (I.E. NOT JUST REMOTE) 
3M96       THEN 
3MNQ          WHILE    TRUE 
3N8B             STEP                      [FOR EACH :SYSTEM.PROPERTY RECORD
3NN2             MHUNT    1,APERI,APROPS
3P7L             MHUNTW   2,APERI,APRNUM
3PM=          AND      3,NZ 
3Q6W          AND      +A1(2),U,A1+1(1)    [UNTIL ALL REQUIRED NAMES FOUND  
3QLG          DO                           [DO  
3R66             SMO      FX2   
3RKQ             STOZ     AWORK2              [ZERO => 1ST PARAM
3S5B             LDX   5  APROPNAME(3)  
3SK2             LDX   6  APROPNAME+1(3)
3T4L             LDX   7  APROPNAME+2(3)      [X5->7:=THAT PROPNAME 
3TJ=             LDX   4  A1+1(1)             [USING X4 AS LOOP CONTROLLER, 
3W3W             ADN   1  A1+2                [FOR EACH NAME IN /APROPS DO  
3WHG             DO 
3X36                TXU   5  1(1)   
3XGQ                TXU   6  2(1)   
3Y2B                TXU   7  3(1)   
3YG2                IF       CC                  [IF THAT NAME=NAME IN SYSPROP  
3Y^L                THEN
3^F=                   NGNC  5  1                   [THEN DESTROY NAME IN X5->X7
3^YW                   ANDX  5  APROPNO(3)          [SET UP NON-CONSOLE PROPNO  
42DG                   SMO      FX1 
42Y6                   IF       5,E,PRCENTRAL       [IF CENTRAL 
43CQ                   THEN 
43XB                      LDX   5  GSIGN               [THEN PROPNO:=JUST SIGN B
44C2                   ELSF     +APROPGROUP(3),NG   [ELSF CONSPROP  
44WL                   THEN 
45B=                      ORX   5  GSIGN               [THEN SET CONSOLE BIT
45TW                   FI                           [FI 
46*G                   IF       5,NG                [IF CENTRAL OR CONSPROP THEN
46T6                   THEN 
47#Q                      LDX   7  A1+1(2)  
47SB                      BNZ   7  TWOCONSOLE          [IF 2ND CONSPROP THEN ERR
48#2                      STO   5  A1+1(2)             [PUT CONSPROP ON /APRNUM 
48RL                      SMO      FX2  
49?=                      IF       +AWORK2,NZ          [IF NOT 1ST NAME IN PARAM
49QW                      THEN  
4==G                         LDX   7  1                   [X7 KEEPS PTR 
4=Q6                         SMO      FX2   
4?9Q                         LDN   1  ACOMMUNE1 
4?PB                         LDN   0  2 
4#92                         MOVE  0  6                   [PRESERVE TOP 6 X'S   
4#NL                         MHUNT    1,APERI,APROPS
4*8=                         LDX   0  A1+1(1)   
4*MW                         SMO      FX2   
4B7G                         STO   0  ACOMMUNE3           [STORED X4 => 1ST PARA
4BM6                         LDN   6  A1+2(1)             [X6 -> START OF 1ST CE
4C6Q                         LDX   1  7 
4CLB                         SBN   1  1                   [X1 -> END OF PREV CEL
4D62                         LDX   0  1(1)                [X0 := CHARCT FOR CONS
4DKL                         DO                           [MOVE OTHER NAMES DOWN
4F5=                            LDX   5  0(1)   
4FJW                            STO   5  4(1)   
4G4G                            SBN   1  1  
4GJ6                         REPEAT   UNTIL,1,L,6   
4H3Q                         STO   0  1(1)                [PUT CONSPROP CT IN 1S
4HHB                         LDN   5  APROPNAME(3)  
4J32                         LDN   6  2(1)  
4JGL                         MOVE  5  3                   [PUT CONSPROP NAME IN 
4K2=                         LDN   6  A1+2(2)             [X6 -> 1ST PROPNO WD  
4KFW                         SMO      FX2   
4K^G                         LDX   1  AWORK3
4LF6                         ADX   1  6 
4LYQ                         SBX   1  4                   [X1 -> CURRENT PROPNO 
4MDB                         WHILE    6,L,1               [FOR PROPNOS ABOVE CUR
4MY2                         DO 
4NCL                            SBN   1  1  
4NX=                            LDX   0  0(1)                [SHIFT PROPNOS DOWN
4PBW                            STO   0  1(1)   
4PWG                         REPEAT                       [REPEAT   
4QB6                         SMO      FX2   
4QTQ                         LDN   0  ACOMMUNE1 
4R*B                         LDN   1  2 
4RT2                         MOVE  0  6                   [RESTORE TOP 6 X'S
4S#L                         LDX   1  7                   [RESTORE PTR  
4SS=                      FI                           [FI FIRST NAME   
4T?W                   FI                           [FI CENTRAL OR CONSPROP 
4TRG                   LDN   6  A1+2(2)             [PUT PROPNO INTO PRNUM IN ST
4W?6                   SMO      FX2 
4WQQ                   ADX   6  AWORK3  
4X=B                   SBX   6  4   
4XQ2                   SMO      6   
4Y9L                   STO   5  0   
4YP=                   LDN   4  1                   [ENSURE APROPS LOOP TERMINAT
4^8W                   ADS   4  A1(2)               [AND USE X4 TO UPDATE APRNUM
4^NG                   LDX   5  APROPNAME(3)
5286                   LDX   6  APROPNAME+1(3)  
52MQ                   LDX   7  APROPNAME+2(3)      [RESET NAME IN X5->7
537B                FI                           [FI
53M2                ADN   1  4  
546L                SMO      FX2
54L=                STO   1  AWORK2 
555W             REPEAT   CT 4                [REPEAT OVER NAMES IN BLOCK   
55KG          REPEAT                       [REPEAT OVER SYSPROP RECORDS 
5656          LDX   5  A1(2)
56JQ          MHUNT    1,APERI,APROPS   
574B          BXU   5  A1+1(1),PROPUNK     [IF NOT ALL NAMES FOUND,ERR FI   
57J2          LDN   1  A1+2(2)  
583L          LDN   3  A1+2(2)  
58H=          LDX   5  A1(2)               [FOR ALL PROPNOS DO  
592W          IF       5,NZ 
59GG          THEN  
5=26          DO
5=FQ             LDX   0  0(1)  
5=^B             IF       0,PZ                [IF NON-CONSOLE THEN  
5?F2             THEN   
5?YL                STO   0  0(3)                [PUT BACK IN BLOCK 
5#D=                ADN   3  1  
5#XW             ELSE                         [ELSE 
5*CG                LDN   0  1  
5*X6                SBS   0  A1(2)               [CORRECT NON-CONSOLE COUNT 
5BBQ             FI                           [FI   
5BWB             ADN   1  1 
5CB2          REPEAT   CT 5 
5CTL          FI                           [REPEAT  
5D*=       FI                           [FI 
5DSW       MHUNTW   1,APERI,APRNUM  
5F#G       MHUNTW   3,ADATA,AWHATLIST   
5FS6       IF       +A1+1(1),ZE         [IF NO CONSPROP IN PARAM
5G?Q          LDX   4  AWLCONS(3)   
5GRB       AND      4,NZ                [BUT ONE TO FIND (I.E. REMOTE)  
5H?2       THEN 
5HQL          ANDX  4  BSP16
5J==          LDCT  2  #600 
5JPW          ORX   2  4                   [ENSURE CONSOLE, PERMANENT SET   
5K9G          STO   2  A1+1(1)             [UPDATE PRNUM
5KP6          LDX   2  FX2  
5L8Q          LDX   0  AWORK1(2)
5LNB          IF       0,NG                [IF LOOKING FOR DEFAULT  
5M82          THEN  
5MML             REWIND 
5N7=             DO 
5NLW                STEP
5P6G                LDX   0  BSP16  
5PL6                ANDX  0  APROPNO(3) 
5Q5Q             REPEAT   UNTIL,0,E,4         [X3 -> ENTRY  
5QKB             LDCT  1  #600  
5R52             ADN   1  APROPNAME+2(3)      [X1 -> LAST CHAR OF NAME  
5RJL             WHILE    TRUE  
5S4=                LDCH  0  0(1)   
5SHW                SBN   0  #20
5T3G             AND      0,ZE  
5TH6             DO 
5W2Q                SLC   1  2  
5WGB                SBN   1  1  
5X22                SRC   1  2  
5XFL             REPEAT                       [X1 -> LAST NON-SPACE CHAR
5X^=             SBN   1  APROPNAME(3)  
5YDW             SLC   1  2 
5YYG             LDN   4  APROPNAME(3)  
5^D6             LDN   6  1(1)                [X6 := CHARCT 
5^XQ             MHUNT    3,APERI,APROPS
62CB          ELSE  
62X2             MHUNT    3,APERI,APROPS
63BL             HUNT2J   1,APERI,APROPS,3,(GEOERR) 
63W=             LDN   4  A1+3(1)   
64*W             LDX   6  A1+2(1)   
64TG          FI
65*6          SMO      FX2  
65SQ          LDN   5  AWORK2   
66#B          MOVE  4  3
66S2          LDX   7  A1(3)
67?L          ADN   7  4
67R=          PHOTO    5
68=W          ALTLENG  3,7,REFIND   
68QG          IF       5,U,BCOUNT   
69=6          THEN  
69PQ             MHUNT    2,APERI,APROPS
6=9B          ELSE  
6=P2             LDX   2  3 
6?8L          FI
6?N=          STO   7  A1(2)               [UPDATE HDDR WD  
6#7W          LDX   0  A1+1(2)  
6#MG          SLL   0  2                   [X0 := CT OF WDS TO MOVE DOWN
6*76          LDN   1  1
6*LQ          ADS   1  A1+1(2)             [UPDATE PROPCT WD
6B6B          LDN   1  A1+1(2)  
6BL2          ADX   1  0                   [X1 -> LAST WD TO BE MOVED   
6C5L          IF       0,NZ 
6CK=          THEN  
6D4W             DO 
6DJG                LDX   7  0(1)   
6F46                STO   7  4(1)   
6FHQ                SBN   1  1  
6G3B             REPEAT   CT 0                [BLOCK MOVED DOWN 
6GH2          FI
6H2L          STO   6  A1+2(2)  
6HG=          SMO      FX2  
6H^W          LDN   4  AWORK2   
6JFG          LDN   5  A1+3(2)  
6J^6          MOVE  4  3                   [FIRST CELL INSERTED 
6KDQ       ELSF     +A1+1(1),E,GSIGN    [ELSF 'CENTRAL' 1ST ELT THEN
6KYB       THEN 
6LD2          MHUNT    2,APERI,APROPS   
6LXL          STOZ     A1+2(2)             [ZERO THE CT WD  
6MC=       FI                           [FI FIND CONSPROP   
6MWW       CLOSE
6NBG       SETREP2  OK  
6NW6       BRN      XITISPROP           [NORMAL EXIT
6P*Q    UBROKEIN
6PTB       LDX   2  FX2 
6Q*2       STO   2  AWORK2(2)           [BREAKIN EXIT   
6QSL       BRN      XITBROKEN   
6R#=    TOOMANYPRS                         [ERROR EXITS FOLLOW  
6RRW       LDX   2  FX2 
6S?G       SETREP2  MAXATT  
6SR6       BRN      XITISPROP   
6T=Q    TWOCONSOLE  
6TQB       CLOSE
6W=2       SETREP2  CPROPS  
6WPL       BRN      XITISPROP   
6X9=    PROPUNK 
6XNW       CLOSE
6Y8G       SETREP2  XPROP   
6YN6    XITISPROP   
6^7Q       STOZ     AWORK2(2)   
6^MB    XITBROKEN   
7272       LDX   0  AWORK1(2)   
72LL       ADX   0  FX1 
736=       ANDX  0  BITS22LS
73KW       EXIT  0  0   
745G    [   
74K6    [   
754Q    [ SUBROUTINE 'SUBPROPOWN'   
75JB    [ =======================   
7642    [   
76HL    [ THIS SUBROUTINE TESTS A CONSOLE PROPERTY NUMBER TO SEE WHETHER
773=    [ IT IS ACCESSIBLE TO THE OPERATOR SOURCE REQUESTING IT.
77GW    [   
782G    [ ENVIRONMENT REQUIRED:-
78G6    [    COMMAND PROCESSING ACTIVITY - NOT CHECKED  
78^Q    [    LS 15 BITS OF ACOMMUNE1 HOLD REQUESTED CONSOLE PROPERTY
79FB    [    X2=FX2 
79^2    [   
7=DL    [ ENVIRONMENT CHANGES:- 
7=Y=    [    X1 LINK
7?CW    [    X2,X5 UNCHANGED
7?XG    [    ALL OTHER ACCUMULATORS DESTROYED   
7#C6    [   
7#WQ    [ REPLIES GIVEN:-   
7*BB    [    OK - PROPERTY ACCESSIBLE   
7*W2    [    CANT - CAN'T USE PROPERTY  
7B*L    [   
7BT=    [ PARAMETERS REQUIRED:- 
7C#W    [    NONE   
7CSG    [   
7D#6    SUBPROPOWN  
7DRQ       SBX   1  FX1 
7F?B       LDX   6  BSP16   
7FR2       ANDX  6  JSOURCE3(2)         [X6:=SRCE PROP  
7G=L       BZE   6  SUBPROK             [CENTRAL SOURCE MAY USE ANY 
7GQ=       LDX   4  BSP16   
7H9W       ANDX  4  ACOMMUNE1(2)        [X4:=REQUESTED PROP 
7HPG       BXE   6  4,SUBPROK           [REMOTE MAY USE ITS OWN 
7J96       HUNTMISB 3,APERI,CONSOLE 
7JNQ       BNG   3  SUBPROK             [IF NO REAL REMOTE CONSOLES THEN
7K8B                                    [ALL     CLUSTERS USE CENTRAL, SO   
7KN2                                    [MAY     ACCESS ALL OTHERS  
7L7L       STOZ     AWORK1(2)           [REQ COMMS DEVICE:=SCANNER  
7LM=       STOZ     AWORK2(2)           [REQ PROP NOT IN /CONSOLE   
7M6W       STOZ     AWORK3(2)           [SRCE COMMS DEVICE:=SCANNER 
7MLG       STOZ     AWORK4(2)           [SRCE PROP NOT IN /CONSOLE  
7N66       WHILE    +A1+1(3),NZ 
7NKQ       DO                           [FOR ALL PROPS IN /CONSOLE DO   
7P5B          ANDX  0  BSP16               [X0:=PROPNO  
7PK2          IF       0,E,4               [IF PROPNO=REQ PROP THEN 
7Q4L          THEN  
7QJ=             LDX   7  A1+1(3)   
7R3W             ANDX  7  GSIGN               [X7:=+(SCANNER) OR -(7900)
7RHG             STO   7  AWORK1(2)           [SET REQ COMMS DEVICE 
7S36             LDX   7  A1+2(3)   
7SGQ             STO   7  AWORK2(2)           [SET REQ CONS IDE 
7T2B          ELSF     0,E,6               [ELSF PROPNO=SRCE PROP THEN  
7TG2          THEN  
7T^L             LDX   7  A1+1(3)   
7WF=             ANDX  7  GSIGN 
7WYW             STO   7  AWORK3(2)           [SET SRCE COMMS DEVICE
7XDG             LDX   7  A1+2(3)   
7XY6             STO   7  AWORK4(2)           [SET SRCE CONS IDE
7YCQ          FI                           [FI  
7YXB       REPEAT   DX 3                [REPEAT 
7^C2       OPSCON   SUBOPCHK,SUBCOMCHK  
7^WL    SUBCOMCHK   
82B=       LDX   6  AWORK1(2)           [IF OP COMMAND OR USER THEN 
82TW       LDX   7  AWORK2(2)   
83*G       TXU   6  AWORK3(2)   
83T6       TXU   7  AWORK4(2)           [IF AU'D CONSOLE .NE. REQ'D 
84#Q       BCS      SUBCANT             [THEN ERROR 
84SB       BRN      SUBPROK             [ELSE OK FI 
85#2    SUBOPCHK
85RL       LDCT  7  #200
86?=       ANDX  7  JSOURCE2(2) 
86QW       IF       +AWORK1(2),NG       [ELSF REQ ON 7900 THEN  
87=G       THEN 
87Q6          BZE   7  SUBCANT             [IF SRCE NOT ON 7900, ERR FI 
889Q          LDX   7  JSOURCE2(2)  
88PB          SLL   7  12                  [X7:=GEOGNO:0
8992          LDX   6  JSOURCE1(2)  
89NL          ANDN  6  #7777               [X6:=0:IDE   
8=8=          ADX   7  6                   [X7:=GEOGNO:IDE (SRCE)   
8=MW          BXU   7  AWORK2(2),SUBCANT   [IF SRCE CONSOLE .NE. REQ,ERR
8?7G       ELSE                         [ELSE (REQ ON SCANNER)  
8?M6          BNZ   7  SUBCANT             [IF NOT SCANNER SRCE, ERR FI 
8#6Q          LDX   7  AWORK2(2)
8#LB          SRL   7  12                  [X7:=REQ TERM IDE
8*62          LDX   6  JSOURCE1(2)  
8*KL          SRL   6  6
8B5=          ANDN  6  #7777               [X6:=SRCE TERMINAL IDE   
8BJW          BXU   6  7,SUBCANT           [IF DIFFERENT THEN ERR FI
8C4G          LDX   7  AWORK2(2)
8CJ6          ANDN  7  #7777               [X7:=REQ LINE NO 
8D3Q          LDX   6  JSOURCE2(2)  
8DHB          SRL   6  9
8F32          ANDN  6  #7777               [X6:=SRCE LINE NO
8FGL          BXU   6  7,SUBCANT           [IF DIFFERENT THEN ERR FI
8G2=       FI                           [FI 
8GFW    SUBPROK                            [FI  
8G^G       SETREP2  OK                  [CAN USE REQ PROP   
8HF6       ADX   1  FX1 
8HYQ       EXIT  1  0   
8JDB    SUBCANT 
8JY2       SETREP2  CANT                [CAN'T USE IT   
8KCL       ADX   1  FX1 
8KX=       EXIT  1  0   
8LBW    [   
8LWG    [   
8MB6    REFIND  
8MTQ       MHUNT    2,APERI,APROPS  
8N*B       EXIT  1  0   
8NT2    [   
8P#L    [   
8PS=    [ SUBROUTINE 'SUBSET'   
8Q?W    [ ===================   
8QRG    [   
8R?6    [  SETS UP ADATA/CREADL AND ADATA/AWHATLIST BLOCKS  
8RQQ    [   
8S=B    [ ENVIRONMENT REQUIRED:-
8SQ2    [    ENTRY FROM COMMAND PROCESSOR   
8T9L    [   
8TP=    [ ENVIRONMENT CHANGES:- 
8W8W    [    BLOCKS SET UP  
8WNG    [    AWHATLIST INITIALISED WITH CONTEXTS AND DEFAULTS   
8X86    [    X7 LINK
8XMQ    [   
8Y7B    [ THE MAXIMUM SIZE OF DETAILS THAT MAY BE GIVEN IS :-   
8YM2    [ (:<12 CHAR USER>, <12 CHAR JOB>, *<PERIPH>, PR <PROP&PROP..>, FILE <37
8^6L    [ I.E. (ATTMAX*13) - 1 + 83 CHARS   
8^L=    [ HENCE NUMBER OF WORDS NEEDED TO HOLD INFO :-  
925W    #DEF           MAXMESSWDS=ATTMAX*13+85/4
92KG    [ THIS #DEF MUST ALSO BE MADE IN WLB
9356    [   
93JQ    SUBSET  
944B       SBX   7  FX1 
94J2       SETNCORE MAXMESSWDS+2,3,ADATA,CREADL 
953L       LDN   0  A1+2
95H=       STO   0  A1+1(3)             [SET PTR TO STRING START DISPLACEMENT   
962W       SETNCORE AWLPRNO+ATTMAX-AWLUSERNAM,3,ADATA,AWHATLIST 
96GG       LDX   0  ACES
9726       STO   0  AWLUSERNAM(3)   
97FQ       LDN   5  AWLUSERNAM(3)   
97^B       LDN   6  AWLUSERNAM+1(3) 
98F2       MOVE  5  5                   [NULL OUT THE STRING WDS
98YL       STOZ     AWLPERI(3)  
99D=       LDN   5  AWLPERI(3)  
99XW       LDN   6  AWLPERI+1(3)
9=CG       MOVE  5  AWLPRNO+ATTMAX-AWLPERI-1 [ZERO OUT THE NUMBER WDS   
9=X6    [   
9?BQ    [  SET CONTEXT BITS (AND JOB DETAILS IF USER CONTEXT)   
9?WB    [      AND SOURCE CONSOLE PROPERTY IF REMOTE
9#B2    [   
9#TL       OPSCON   SETOPER,SETOPCOM    [IF NOT (OP OR OPERATOR)
9**=       JBS      ZWRCNTXT,2,WBNUCON  [IF NOT USER THEN ERROR 
9*SW       BS       3,AWLBUSERCON       [ELSE SET USER CONTEXT  
9B#G       FCJOB    2,,,CPA             [POINT X2 AT JOB BLOCK  
9BS6       LDX   0  JOBNUM(2)   
9C?Q       STO   0  AWLPERI(3)          [STORE JOBNO
9CRB       LDN   4  JUSER(2)
9D?2       LDN   5  AWLUSERNAM(3)   
9DQL       CALL  6  SIGCHARS            [STORE USERNAME 
9F==       STO   5  AWLCOUNT(3)         [STORE COUNT
9FPW       BRN      NOTOP               [FI 
9G9G    SETOPER                            [ELSF OPERATOR CONTEXT   
9GP6       BS       3,AWLBOPER          [SET OPERATOR BIT   
9H8Q       BRN      NOTOP   
9HNB    SETOPCOM                           [ELSE
9J82       BS       3,AWLBOPCOM         [SET OP COMMAND BIT 
9JML    NOTOP                              [FI  
9K7=    [   
9KLW    [ ASSERTION:
9L6G    [    AN ADATA/AWHATLIST BLOCK EXISTS, IN THE FORMAT GIVEN ABOVE. THE
9LL6    [    ONLY INFORMATION IT CONTAINS IS ONE BIT SET OUT OF THE SET (USER   
9M5Q    [    CONTEXT , OPERATOR CONTEXT , OP COMMAND), AND IF USER CONTEXT, 
9MKB    [    THEN USERNAME BIT IS ALSO SET, AND THE USERNAME SET UP IN THE  
9N52    [    ADATA/AWHATLIST
9NJL    [   
9P4=       LDX   2  FX2 
9PHW       LDX   6  JSOURCE3(2) 
9Q3G       IF       6,NZ                [IF NOT CENTRALLY ISSUED THEN   
9QH6       THEN 
9R2Q          BS       3,AWLBREM           [SET REMOTE CONTEXT BIT  
9RGB          ANDX  6  BSP16
9S22          STO   6  AWLCONS(3)          [STORE CONSPROP  
9SFL       FI                           [FI 
9S^=       ADX   7  FX1 
9TDW       EXIT  7  0   
9TYG    [   
9WD6    SIGCHARS  [REQUIRES X45 SET TO MOVE A NAME  
9WXQ              [         LINK X6 
9XCB              [RETURNS  LENGTH IN X5
9XX2              [ 
9YBL       MOVE  4  3                   [COPY NAME OVER 
9YW=       LDX   1  4   
9^*W       LDN   5  12                  [GET NO. CHARS IN NAME  
9^TG       WHILE    TRUE
=2*6          SLC   1  2
=2SQ          SBN   1  1
=3#B          SRC   1  2
=3S2          LDCH  0  3(1) 
=4?L          SBN   0  #20  
=4R=       AND      0,ZE
=5=W       DO   
=5QG       REPEAT   CT 5
=6=6       EXIT  6  0   
=6PQ    [   
=79B    [   
=7P2    [ ASSERTION:
=88L    [    IF THE COMMAND WAS ISSUED IN REMOTE OR CLUSTER CONTEXT THEN THE
=8N=    [    REMOTE CONTEXT BIT IS SET, AND THE PROPNO ATTRIBUTED TO THAT CLUSTE
=97W    [    CONSOLE IS STORED IN THE ADATA/AWHATLIST   
=9MG    [   
==76    [   
==LQ    [   
=?6B    [       WW   WW       W               WWWWWWWW  
=?L2    [       WW  WW       WW                    WW   
=#5L    [       WW WW       WWW                   WW
=#K=    [       WWWW         WW                  WWW
=*4W    [       WWWWW        WW      WWWWWW        WW   
=*JG    [       WW  WW       WW               WW    WW  
=B46    [       WW   WW      WW               WW    WW  
=BHQ    [       WW    WW     WW                WWWWWW   
=C3B    [   
=CH2    [   
=D2L    WLAK1   
=DG=       CALL  7  SUBSET  
=D^W       [ENSURE THAT TRACING/REPORTING IS HIGH ENOUGH TO MAKE IT 
=FFG       [WORTHWHILE CARRYING ON. THE TEST IS ONLY MADE FOR 'WL', 
=F^6       [SINCE FOR 'SL' OR 'CH' TO GENERATE THE MESSAGE THEY MUST
=GDQ       [TRACE/REPORT NEITHER COMMENT NOR COMERR CATEGORY (THEIR 
=GYB       [OUTPUT MAY BE EITHER OR BOTH) - BUT IF THEY'RE NOT TRACING  
=HD2       [COMERR THEN THEY WON'T GET THE MESSAGE!!!   
=HXL       IF       BC,3,AWLBOPER       [IF (OP COMMAND OR USER)
=JC=       THEN 
=JWW          LDX   1  FX1  
=KBG          TESTRACE PCT(1),ZTRACEREP         [ERROR IF LESS  
=KW6       FI                           [FI 
=L*Q       BS       3,AWLBWL
=LTB       BRN      YANALYSE
=M*2    WLAK2   
=MSL       CALL  7  SUBSET  
=N#=       BS       3,AWLBSL
=NRW       BRN      YANALYSE
=P?G    WLAK3   
=PR6       CALL  7  SUBSET  
=Q=Q       BS       3,AWLBCH
=QQB    YANALYSE
=R=2       ACROSS   WLB,1   
=RPL    [   
=S9=    [   
=SNW    [  WW   WW      WW  
=T8G    [  WW  WW      WW   
=TN6    [  WW WW      WW
=W7Q    [  WWWW      WW WW  
=WMB    [  WWWWW     WWWWWWWW   
=X72    [  WW  WW       WW  
=XLL    [  WW   WW      WW  
=Y6=    [  WW    WW     WW  
=YKW    [   
=^5G    [   
=^K6    WLAK4   
?24Q    [   
?2JB       LDX   1  GSIGN   
?342       CALL  0  SUBAREPROPS 
?3HL       LDX   0  AWORK2(2)   
?43=       BNZ   0  ZBRKIN              [IF BREAKIN, ABANDON COMMAND
?4GW       TESTREP2 XPROP,ZNOSCHPROP    [ELSF UNKNOWN PROPERTY, ERR 
?52G       TESTREP2 MAXATT,Z2MANYPRPS   [ELSF TOO MANY PROPERTIES, ERR  
?5G6       TESTREP2 CPROPS,Z2CONSOLE    [ELSF TWO CONSOLE PROPERTIES, ERR   
?5^Q       MHUNTW   3,ADATA,AWHATLIST   [FI 
?6FB       MHUNTW   2,APERI,APRNUM  
?6^2       LDX   7  A1+1(2) 
?7DL       IF       7,E,GSIGN           [IF 'CENTRAL' SPECIFIED THEN
?7Y=       THEN 
?8CW          STOZ     A1+1(2)             [FORGET NUMBER   
?8XG          IF       BSC,3,AWLBREM       [IF REMOTE THEN  
?9C6          THEN  
?9WQ             STOZ     AWLCONS(3)          [MAKE CENTRAL 
?=BB             JBC      ZNOTOWNED,3,AWLBUSERCON [IF 'OP' OR OPERATOR, ERR FI  
?=W2          FI                           [FI  
??*L          BS       3,AWLBPRCENT        [SET CENTRAL BIT 
??T=       ELSF     7,NZ                [ELSF CONSOLE PROPERTY GIVEN THEN   
?##W       THEN                         [(OTHER THAN CENTRAL (TRAPPED ABOVE))   
?#SG          ANDX  7  BSP16
?*#6          LDX   6  7
?*RQ          BS       3,AWLBPROP          [SET 'PR' BIT
?B?B          IF       BSC,3,AWLBREM       [IF REMOTE   
?BR2          AND      BC,3,AWLBUSERCON    [AND NOT USER THEN   
?C=L          THEN  
?CQ=             LDX   2  FX2   
?D9W             STO   6  ACOMMUNE1(2)  
?DPG             CALL  1  SUBPROPOWN          [IF CAN'T USE PROPERTY
?F96             TESTRPN2 OK,ZNOTOWNED        [THEN ERROR FI
?FNQ             MHUNTW   2,APERI,APRNUM
?G8B             MHUNTW   3,ADATA,AWHATLIST 
?GN2             LDX   6  A1+1(2)   
?H7L             ANDX  6  BSP16 
?HM=          FI                           [FI  
?J6W          STO   6  AWLCONS(3)          [STORE PROPERTY  
?JLG       FI                           [FI 
?K66       IF       BSC,3,AWLBREM   
?KKQ       THEN 
?L5B          BS       3,AWLBPROP   
?LK2       FI   
?M4L       LDN   1  AWLPRNO(3)          [X1 := PTR TO PROPS DEST'N  
?MJ=       LDX   6  A1(2)               [X6 := COUNT OF NON-CONSOLE PROPS   
?N3W       IF       6,NZ                [IF NON-CONSOLE PROPS REQUIRED THEN 
?NHG       THEN 
?P36          STO   6  AWLPRCNT(3)         [UPDATE TOTAL MAND PROPS 
?PGQ          BS       3,AWLBPROP          [SET 'PR' BIT
?Q2B          ADN   2  A1+2                [PT AT /APRNUM PROPNOS   
?QG2          DO                           [COPY PROPS TO AWHATLIST 
?Q^L             LDX   7  0(2)  
?RF=             STO   7  0(1)  
?RYW             ADN   1  1 
?SDG             ADN   2  1 
?SY6          REPEAT   CT 6 
?TCQ       FI                           [FI 
?TXB       MFREE    APERI,APRNUM
?WC2       VFREE    CPB,CUNI
?WWL       ACROSS   WLB,2   
CDM=    [   
CF6W    [ ERROR LABELS  
CFLG    [ ============  
CG66    [   
CGKQ    ZTRACEREP   
CH5B       COMERR   JMTRACE 
CHK2    ZNOACTION   
CJ4L       COMERR   JPARMIS,ACTION  
CJJ=    ZWRQUAL 
CK3W       COMERR   BADQUAL             [ERROR IN 'LIST' QUALIFIER  
CKHG    ZDUFFPAR
CL36       LDX   3  2   
CLGQ       SPARANOX JPARNUM(3)  
CM2B    ZFORMERR
CMG2    ZUNRECOG
CM^L    ZLISTWR 
CNF=       COMERR   APFERR              [PARAM FORMAT ERROR 
CNYW    ZTOURTOPR   
CPDG    ZHL 
CPY6    ZKEYRPT 
CQCQ       COMERR   ASCOMBER            [ILLEGAL PARAMETER COMBINATION  
CQXB    ZBRKIN  
CRC2       ABANDCOM                     [ABANDONED DUE TO BREAKIN   
CRWL    ZNOSCHPROP  
CSB=       COMERR   JPROPUNK            [UNKNOWN PROPERTY   
CSTW    Z2MANYPRPS  
CT*G       COMERR   JPERR2              [TOO MANY PROPS 
CTT6    Z2CONSOLE   
CW#Q       COMERR   JPERR3              [TWO CONSOLE PROPS  
CWSB    ZNOTOWNED   
CX#2       COMERR   CONSNOTOWN          [REMOTE OP ASKS ABT OTHER CONSPROP  
CXRL    ZURINUSER   
CY?=       COMERR   JFORMCNTXT,JCOM 
CYQW    ZNULLPAR
C^=G    ZPRNULL 
C^Q6       COMERR   JNULLPAR
D29Q    ZWRCNTXT
D2PB       COMERR   JCONTINC,JNUNOP     [NO-USER, NOT-OPERATOR  
D2R^ ...#UNS  ANSTOOMANY
D2WJ ...(   
D2^7 ...ZMAXPAR 
D33Q ...      COMERR   JMAXPAR  
D36* ...)   
D392    #END
^^^^ ...623376560001
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1