{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PARSORT867)}}
====== PARSORT867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:COOR3|COOR3]], [[george:macro:DOWN|DOWN]], [[george:macro:ERRORX|ERRORX]], [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GROPEREC|GROPEREC]], [[george:macro:HUNTMISB|HUNTMISB]], [[george:macro:HUNTW|HUNTW]], [[george:macro:JANON|JANON]], [[george:macro:JENV|JENV]], [[george:macro:JENVNOT|JENVNOT]], [[george:macro:JEXOTIC|JEXOTIC]], [[george:macro:JPROP|JPROP]], [[george:macro:JSWOUT|JSWOUT]], [[george:macro:JSWOVER|JSWOVER]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LNLI|LNLI]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NAME|NAME]], [[george:macro:NEXTW|NEXTW]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARANEXT|PARANEXT]], [[george:macro:PARANUMB|PARANUMB]], [[george:macro:PARANXTX|PARANXTX]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:PARATYPE|PARATYPE]], [[george:macro:PARSORTB|PARSORTB]], [[george:macro:PARSORTX|PARSORTX]], [[george:macro:PERCONA|PERCONA]], [[george:macro:SAWCE|SAWCE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SPARANOX|SPARANOX]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TRACE|TRACE]], [[george:macro:UNIFREE|UNIFREE]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:ZERRORX|ZERRORX]], [[george:macro:ZERRORY|ZERRORY]]
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