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