{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: PARAM865)}}
====== PARAM865 ======
(George Source)
**Macros used:** [[george:macro:CHARMOVE|CHARMOVE]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FINDLINK|FINDLINK]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GETCORE|GETCORE]], [[george:macro:HUNT|HUNT]], [[george:macro:MASK|MASK]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:PHOTO|PHOTO]], [[george:macro:PTYPE|PTYPE]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:WRONG|WRONG]]
22FL #LIS K0PARAM>K0ALLGEO>K0GREATGEO>K0COMMAND
22^= #SEG PARAM [ BILL IZATT : CENT
23DW 8HPARAM
23YG [ THE ENTRY POINTS
24D6 [ THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT
24XQ SEGENTRY K3PARAM,QENTRY3
25CB SEGENTRY K4PARAM,QENTRY4
25X2 SEGENTRY K5PARAM,QENTRY5
26BL SEGENTRY K7PARAM,QENTRY7
26W= SEGENTRY K8PARAM,QENTRY8
27*W SEGENTRY K9PARAM,QENTRY9
27QB ...[ ENTRY POINTS NO LONGER USED
286W ... BRN (GEOERR)
28HB ... BRN (GEOERR)
28XW ... BRN (GEOERR)
29#B SEGENTRY K14PARAM,QENTRY14
29S2 SEGENTRY K15PARAM,QENTRY15
2=?L SEGENTRY K16PARAM,QENTRY16
2=P2 ...[ ENTRY POINTS NO LONGER USED
2?6B ... BRN (GEOERR)
2?HQ ... BRN (GEOERR)
2?^6 ... SEGENTRY K19PARAM,QENTRY19
2#BG ... SEGENTRY K20PARAM,QENTRY20
2#RW ... SEGENTRY K25PARAM,QENTRY25
2*9B [
2*P2 [
2*XS ...[ THIS SEGMENT IS ENTERED BY THE PARAMETER PASSING MACROS
2B6L ...[ AND MISCELLANEOUS MACROS CONCERNED WITH COMMAND PARAMETERS
2B*D ...[ ENTRY POINTS - PARANOT - K3
2BJ= ...[ PARABEG - K4
2BR4 ...[ PARAPASS - K5
2B^W ...[ PARAFREE - K7
2C8N ...[ PARATYPE - K8
2CCG ...[ PARANUMB - K9
2CL# ...[ SPARABEG - K14
2CT6 ...[ SPARAPASS - K15
2D3Y ...[ SPARANOT - K16
2D=Q ...[ SPARUNAC - K19
2DFJ ...[ PARUNACC - K20
2DNB ...[ K25 - ENTRY FROM ANALYSEA TO COMPLETE PARANEXT ETC
2DX8 ...[ ON COMPLETION EACH ROUTINE GOES UP TO THE CALLING ROUTINE
2F6B #
2FL2 MASK #17777777
2G5L UPDT #10001
2GK= ...MINUS1 #77777777
2T*2 SPACE #20
2TSL ...WBLANK #20202020
2WRW #
2X?G [ SUBROUTINE TO LOCATE A COMMAND PARAMETER BLOCK ACCORDING
2XR6 [ TO THE ANALYSIS LEVEL SPECIFIED IN EXT+2 IN THE ACTIVITY
2Y=Q SEARCHLEV
2YQB LDX 2 FX2
2^=2 P2 LDX 2 FPTR(2)
2^PL LDCH 0 ATYPE(2) [CHECK IS A CPB BLOCK
329= SBN 0 CPB/64
32NW BNZ 0 P2 [BRANCH IF NOT
338G LDX 0 ATYPE(2)
33N6 SRL 0 12
347Q ERN 0 CPB+CUNI
34MB BZE 0 P2 [REJECT IF UNIBLOCK
3572 SMO FX2
35LL LDX 1 EXT+2 [ANALYSIS LEVEL OF REQUIRED BLOCK
366= BNG 1 RET [BRANCH IF ANALYSIS LEVEL 'LOWEST'
36KW TXL 1 ANALEV(2) [CHECK ANALYSIS LEVEL
375G BCS P3
37K6 TXU 1 ANALEV(2)
384Q BCC RET
38JB NGN 4 1
3942 BRN NOPARAM [ERROR IF ANALYSIS LEVEL TOO LARGE
39HL P3 LDX 2 FPTR(2)
3=3= TXU 1 ANALEV(2)
3=GW BCS P3 [BRANCH IF NOT CORRECT ANALYSIS LEVEL
3?2G RET EXIT 7 0 [BLOCK FOUND, RETURN
3?55 ...#
3?7N ...[ SUBROUTINE TO MOVE CHARACTERS (SAVES SPACE IN SEGMENT)
3?=? ...XCHMOVE
3?#W ... CHARMOVE 6,1
3?CF ... EXIT 4 0
3?G6 #
3?^Q [ ROUTINE IF PARAMETER NULL OR NON EXISTANT
3#FB NULLP SMO FX1
3#^2 LDX 7 UPDT
3*DL ADS 7 APTBEPAR(2) [UPDATE POINTER TO NEXT PAR. TO BE PA
3*Y= NULLQ LDX 3 ANALEV(2) [X3 HOLDS ANALYSIS LEVEL OF PARENT BL
3BCW LDX 6 CPBPROGLEV(2) [IF NOT ALAS BLOCK,HOLDS NO. IN ALAS
3BXG NOPARAM
3CC6 LDN 7 2
3CWQ GETCORE 7,1 [GET A BLOCK OF 2 WORDS
3DBB FINDCORE 2
3DW2 NAME 2,CPB,CUNI
3F*L STO 4 ANUM(2) [SET NULL OR ABSENT PARAMETER
3FT= BNZ 4 VAMOS [END IF NOT NULL PARAMETER
3G#W SMO FX2
3GSG LDX 1 EXT+3
3H#6 ORS 1 ATYPE(2) [STO NO. OF PARAMETER IN PARENT BLOCK
3HRQ BZE 3 XALAS [BRN IF ALAS BLOCK
3J?B LDX 1 6 [X1 NOW HOLDS NO OF PARAMETER IN ALAS
3JR2 XALAS STO 1 JPARNUM(2) [SET JPARNUM
3K=L UP
3KQ= VAMOS SMO FX2
3L9W LDX 7 EXT+2
3LPG NGN 5 1
3M96 LDX 3 2
3MNQ BZE 7 VAMOT
3N8B BNG 7 VAMOT
3NN2 HUNT 2,CPB,CMULTI
3P7L BNG 2 XJUMP
3PM= SBX 7 ANALEV(2)
3Q6W BZE 7 VAMOU
3QLG BPZ 7 XJUMP
3R66 VAMOT CALL 7 SEARCHLEV
3RKQ VAMOU LDX 5 APARANUM(2)
3S5B ADN 5 1
3SK2 ORS 5 ATYPE(3)
3T4L LDX 0 ANALEV(2)
3TJ= BZE 0 XJUMP
3W3W LDX 5 CPBPROGLEV(2)
3WHG XJUMP STO 5 JPARNUM(3)
3X36 UP
3XGQ #
3Y2B [ PARANOT
3YG2 #
3Y^L [ ON ENTRY,EXT+3(2) HOLDS THE NUMBER OF THE PARAMETER REQUE
3^F= [ AND EXT+2(2) HOLDS THE ANALYSIS LEVEL OF BLOCK CONTAINING
3^YW [ EXT+7 IS SET -1 IN THE CASE OF SPARANOT .
42DG QENTRY16
42Y6 NGN 0 1
43CQ STO 0 EXT+7(2)
43XB BRN ST2
44C2 QENTRY3
44WL STOZ EXT+7(2)
45B= ST2
45TW CALL 7 SEARCHLEV [FIND MULTI PARAMETER BLOCK
46*G #SKI K6PARAM>499-499
46T6 TRACE 2,NOT
47#Q SMO FX2
47SB LDX 1 EXT+3 [PARAMETER NUMBER
48#2 LDN 5 APARAFIR [POINTER TO FIRST PARAMETER
48RL BRN NCHA
49?= NPARA ANDN 4 #7777 [EXTRACT NO. OF CHARACTERS IN PARAMET
49QW ADN 4 7
4==G SRL 4 2
4=Q6 ADX 5 4 [POINTER TO NEXT PARAMETER
4?9Q NCHA SMO 5
4?PB LDX 4 0(2) [NO. OF CHARACTERS IN PARAMETER
4#92 SMO FX1
4#NL TXU 4 MINUS1
4*8= BCC NOPARAM [BRN IF END OF BLOCK
4*MW BCT 1 NPARA [BRANCH IF NOT N'TH PARAMETER
4B7G #SKI AJOBUSE<1$1
4BM6 (
4C6Q LDX 7 ANALEV(2)
4CLB BNZ 7 MULT1 [BRN NOT ALAS BLOCK
4D62 )
4DKL LDCT 7 #400
4F5= SMO 5
4FJW ORS 7 0(2) [INDICATE 'ACCESSED' IN TYPE WORD
4G4G LDXC 4 4 [REMOVE 'ACCESSEO' BIT IF SET
4GJ6 MULT1 BZE 4 NULLQ [N'TH PARAMETER,BRN IF NULL
4H3Q ANDN 4 #7777 [EXTRACT NO. OF CHARACTERS IN PARAMET
4HHB ADN 4 11
4J32 SRL 4 2 [SIZE OF PARAMETER IN WORDS
4JGL STO 2 6 [STORE ADDRESS OF MULTI BLOCK
4K2= PHOTO 7
4KFW GETCORE 4,1 [GET A BLOCK SIZE OF PARAMETER
4K^G FINDCORE 3
4LF6 NAME 3,CPB,CUNI [NAME BLOCK
4LYQ LDX 1 EXT+3(2)
4MDB ORS 1 ATYPE(3) [STORE NUMBER OF PARAMETER
4MY2 LDX 2 6 [LOAD ADDRESS OF MULTI BLOCK
4NCL TESTMOVE 7,NSER1
4NX= CALL 7 SEARCHLEV [FIND MULTI PARAMETER BLOCK IF MOVED
4PBW NSER1 LDX 7 ANALEV(2)
4PWG BZE 7 ZAL1 [BRN IF ALAS BLOCK
4QB6 LDX 7 CPBPROGLEV(2)
4QTQ BRN STJP1
4R*B ZAL1 SMO FX2
4RT2 LDX 7 EXT+3
4S#L STJP1 STO 7 JPARNUM(3) [STO NO. OF PAR. IN ORIGINAL ALAS BLO
4SS= SMO 5
4T?W LDX 1 0(2)
4TRG ANDN 1 #7777 [NO. OF CHARACTERS IN PARAMETER
4W?6 SMO 5
4WQQ LDN 6 0(2) [ADDRESS OF PARAMETER IN MULTI BLOCK
4X=B LDN 7 ANUM(3) [ADDRESS IN UNI BLOCK
4XQ2 MVCH 6 4 [STO PT/N WORD
4Y9L SMO FX2
4YP= LDX 0 EXT+7
4^8W BNG 0 SPAR1 [BRN IF SPARANOT
4^NG LDX 0 1 [NO.OF CHARS TO BE TRANSFERRED
5286 XGNC1 LDX 1 6 [ADDRESS OF NEXT CHAR IN MODIFIER
52MQ LDCH 4 0(1) [LOAD NEXT CHAR
537B SMO FX1
53M2 TXU 4 SPACE
546L BCS MVCH1 [BRN NOT SPACE
54L= LDN 5 1
555W SBS 5 ANUM(3) [REDUCE NO.OF CHARS FOR SPACE
55KG BCHX 6 £
5656 BRN XBCT1
56JQ MVCH1 MVCH 6 1 [STO A CHAR IN UNIBLOCK
574B XBCT1 BCT 0 XGNC1 [GET NEXT CHAR
57J2 LDX 1 ANUM(3)
583L ANDN 1 3
58H= ... BZE 1 XCSB [PAR IS EXACT NO OF WORDS
592W SBN 1 4
59GG NGX 1 1 [X1 HOLDS NO. OF SPACES NEEDED
5=26 SMO FX1
5=FQ LDN 6 WBLANK
5=^B MVCH 6 0(1) [SPACEFILL LAST WORD
5?F2 ... BRN XCSB
5?YL SPAR1 SMO FX1
5#D= LDX 0 WBLANK
5#XW ...XCHMV SMO 4
5*CG STO 0 A1-1(3) [SPACEFILL LAST WORD
5*X6 ... CALL 4 XCHMOVE
5BBQ ...XCSB SMO FX1
5BWB LDX 1 MASK
5CB2 ANDS 1 ANUM(3) [CLEAR ANY 'ACCESSED' BIT
5CTL UP
5D*= #
5DSW [ PARABEG
5F#G #
5FS6 [ ON ENTRY EXT+4(2) HOLDS A COUNT OF THE NO. OF CHARACTERS
5G?Q [ IN THE STRING CONTAINED IN EXT+5(2) AND EXT+6(2).EXT+3(2)
5GRB [ HOLDS THE NO. OF THE PARAMETER STARTING WITH THIS STRING
5H?2 [ REQUIRED, EXT+2(2) HOLDS THE ANALYSIS LEVEL OF THE BLOCK
5HQL [ CONTAINING THE PARAMETER. EXT+7(2) IS -1 FOR SPARABEG .
5J== QENTRY14
5JPW NGN 0 1
5K9G STO 0 EXT+7(2)
5KP6 BRN ST
5L8Q QENTRY4
5LNB STOZ EXT+7(2)
5M82 ST
5MML LDX 0 EXT(2)
5N7= STO 0 AWORK1(2)
5NLW [ REMOVE SPACES FROM SPECIFIED CHARACTER STRING
5P6G LDN 3 0
5PL6 LDX 4 EXT+4(2) [CHARACTER COUNT
5Q5Q LDN 0 8
5QKB TXL 0 4
5R52 BCC TACH
5RJL LDN 4 8
5S4= BRN TACH
5SHW UD2 BCHX 2 £
5T3G TACH LDCH 5 EXT+5(2) [TAKE A CHARACTER FROM STRING
5TH6 TXU 5 SPACE(1)
5W2Q BCS NSP [BRN IF NOT SPACE
5WGB LDN 0 1
5X22 SMO FX2
5XFL SBS 0 EXT+4 [REDUCE CHARACTER COUNT FOR SPACE
5X^= BRN SB4
5YDW NSP DCH 5 6(3) [STO A CHARACTER OF CENSORED STRING
5YYG BCHX 3 £
5^D6 SB4 BCT 4 UD2 [GO TO GET NEXT CHARACTER
5^XQ LDX 2 FX2
62CB STO 6 EXT+5(2)
62X2 STO 7 EXT+6(2) [STO CENSORED STRING
63BL CALL 7 SEARCHLEV
63W= #SKI K6PARAM>499-499
64*W TRACE 2,BEG
64TG LDX 3 FX2
65*6 LDX 1 2 [MULTIBLOCK DATUM
65SQ ADN 2 APARAFIR [POINTER TO FIRST PARAMETER
66#B LDX 0 EXT+4(3) [COUNT OF CHARACTERS IN STRING
66S2 LDN 5 0
67?L BRN NUMCH
67R= #
68=W WRONF STO 0 EXT+3(3) [UPDATE NO. OF PARAMETER REQUIRED
68QG WRONG LDX 3 FX2
69=6 LDX 4 EXT+1(3) [RELOAD CHARACTER COUNT
69PQ LDX 2 EXT(3)
6=9B LDX 0 EXT+4(3)
6=P2 NCPAR ADN 4 7
6?8L SRL 4 2 [GET LENGTH OF PARAMETER +1 IN WORDS
6?N= ADX 2 4 [UPDATE 2 TO POINT TO NEXT PARAMETER
6#7W NUMCH ADN 5 1 [NO OF PARAMETERS LOOKED AT
6#MG LDX 4 0(2)
6*76 SMO FX1
6*LQ TXU 4 MINUS1
6B6B BCC NOPARAM [END IF NO MORE PARAMETERS
6BL2 ANDN 4 #7777 [ISOLATE NO OF CHARACTERS
6C5L STO 4 EXT+1(3) [PRESERVE CHARACTER COUNT
6CK= TXL 4 EXT+4(3)
6D4W BCS NCPAR [WRONG PARAMETER IF SHORTER THAN STRI
6DJG STO 2 EXT(3) [HOLD POINTER TO PT/N WORD
6F46 SMO FX2
6FHQ LDX 6 AWORK1
6G3B BNG 6 XCOMP [ORDINARY PARABEG
6GH2 LDX 6 0(2)
6H2L BNG 6 WRONG [DO NOT CHECK ACCESSED PARAMETER
6HG= XCOMP LDCH 6 1(2) [GET A CHARACTER FROM PARAMETER
6H^W SMO FX1
6JFG TXU 6 SPACE
6J^6 BCS OK [BRN IF NOT SPACE
6KDQ BCHX 2 £ [IGNORE SPACE CHARACTER IN COMPARISON
6KYB SBN 4 1 [REDUCE CHARACTER COUNT FOR SPACE
6LD2 BRN XCOMP
6LXL OK LDCH 7 EXT+5(3)
6MC= TXU 6 7
6MWW BCS WRONG [BRN IF DISSIMILAR
6NBG BCHX 2 £
6NW6 BCHX 3 £
6P*Q BCT 0 XCOMP [BRN TO COMPARE ANOTHER CHARACTER
6PTB LDX 3 FX2
6Q*2 SBX 4 EXT+4(3) [NO OF CHARS IN RESIDUAL PARAMETER
6QSL BPZ 4 OK1 [BRN IF CORRECT PARAMETER
6R#= BRN WRONG [PARAMETER HAS GOT THROUGH BACK DOOR
6RRW OK1
6S?G LDX 0 EXT+3(3) [NO. OF 'CORRECT' PARAMETER REQUIRED
6SR6 BCT 0 WRONF [BRN IF NOT 'CORRECT' PARAMETER REQUI
6T=Q #SKI AJOBUSE<1$1
6TQB (
6W=2 LDX 7 ANALEV(1) [ANALYSIS LEVEL
6WPL BNZ 7 MULT3 [BRN NOT ALAS BLOCK
6X9= )
6XNW LDCT 7 #400
6Y8G SMO EXT(3)
6YN6 ORS 7 0 [SET 'ACCESSED' IF ALAS BLOCK PARAMET
6^7Q MULT3 STO 5 EXT+3(3) [HOLD NO OF PARAMETER IN PARENT BLOCK
6^MB BNZ 4 UNNUL [BRN IF NOT NULL PARAMETER
7272 LDX 2 1 [MULTIBLOCK DATUM
72LL BRN NULLQ
736= UNNUL
73KW STO 4 5
745G ADN 5 11
74K6 SRL 5 2 [LENGTH OF PARAMETER +2 IN X5
754Q SBS 1 EXT(3) [RELATIVISE POINTER
75JB GETCORE 5,1
7642 FINDCORE 3
76HL NAME 3,CPB,CUNI [NAME BLOCK
773= LDX 6 EXT+3(2)
77GW ORS 6 ATYPE(3) [STO NO OF PARAMETER
782G LDX 5 EXT(2)
78G6 CALL 7 SEARCHLEV [FIND MULTI PARAMETER BLOCK
78^Q LDX 7 ANALEV(2) [ANALYSIS LEVEL
79FB BZE 7 STJP3 [BRN IF ALAS BLOCK
79^2 LDX 6 CPBPROGLEV(2)
7=DL STJP3 STO 6 JPARNUM(3) [PASS ON ALAS BLOCK SOURCE PARAMETER
7=Y= STO 4 ANUM(3) [STORE CHARACTER COUNT
7?CW SMO FX1
7?XG LDX 1 MASK
7#C6 ANDS 1 ANUM(3) [CLEAR SIGN BIT
7#WQ SMO 5
7*BB LDN 6 1(2) [ADDRESS OF PARAMETER IN MULTI BLOCK
7*W2 SLC 6 2
7B*L SMO FX2
7BT= ADX 6 EXT+1 [EXT+1 - X4 REPRESENTS THE NO. OF
7C#W SBX 6 4 [CHARACTERS LOST DURING COMPARISON
7CSG SRC 6 2 [HENCE X6 IS NOW POINTER TO 1ST CHAR
7D#6 LDN 7 APARA(3) [ADDRESS IN UNI BLOCK
7DRQ SMO FX2
7F?B LDX 0 EXT+7
7FR2 BNG 0 SPAR3 [BRN IF SPARABEG
7G=L XGNC3 LDX 1 6
7GQ= LDCH 0 0(1) [GET NEXT CHARACTER OF PARAMETER
7H9W SMO FX1
7HPG TXU 0 SPACE
7J96 BCS MVCH3 [BRN IF NOT SPACE
7JNQ LDN 5 1
7K8B SBS 5 ANUM(3) [REDUCE NO.OF CHARS FOR SPACE
7KN2 BCHX 6 £
7L7L BRN XBCT3
7LM= MVCH3 MVCH 6 1 [PARABEG: STO A CHARACTER IN UNIBLOCK
7M6W XBCT3 BCT 4 XGNC3 [GET NEXT CHAR
7MLG LDX 4 ANUM(3)
7N66 SFILL [SPACEFILL LAST WORD OF PARAMETER
7NKQ ANDN 4 3
7P5B BZE 4 XEND3
7PK2 LDN 1 4
7Q4L SBX 1 4 [X1 HOLDS COUNT FOR SPACEFILLING
7QJ= SMO FX1
7R3W LDN 6 WBLANK
7RHG MVCH 6 0(1) [SPACEFILL TO COMPLETE WORD
7S36 XEND3
7SGQ [ EVALUATE PARAMETER TYPE
7T2B PTYPE CPB,CUNI,3,APARA,ANUM(3)
7TG2 XEND4
7T^L UP
7WF= [ REMOVE ANY LEADING SPACES
7WYW SPAR3 LDX 2 6
7XDG LDN 0 1
7XY6 BRN SBEG3
7YCQ SBEG1 SBS 0 ANUM(3)
7YXB BCT 4 SBEG2
7^C2 STOZ ANUM(3) [NULL PARAMETER
7^WL BRN XEND4
82B= SBEG2 BCHX 2 £
82TW SBEG3 LDCH 5 0(2)
83*G SMO FX1
83T6 TXU 5 SPACE
84#Q BCC SBEG1 [IF SPACE,LOOK AGAIN
84SB LDX 6 2 [NON-SPACE CHARACTER FOUND
8548 ... LDX 1 4 [TRANSFER X4 TO X1 FOR CALL
85#2 ... CALL 4 XCHMOVE [SPARABEG: STO PARAMETER IN UNIBLOCK
85HS ... STO 1 4 [RETURN X1 TO X4
85RL BRN SFILL
86?= #
86QW [ PARAPASS
87=G #
87Q6 [ ON ENTRY EXT+2(2) = THE ANALYSIS LEVEL OF THE BLOCK CONTA
889Q [ THE REQUIRED PARAMETER. EXT+7(2) = -1 IF SPARAPAS .
88PB QENTRY15
8992 NGN 0 1
89NL STO 0 EXT+7(2)
8=8= BRN ST1
8=MW QENTRY5
8?7G STOZ EXT+7(2)
8?M6 QENTRY25
8#6Q ST1
8#LB CALL 7 SEARCHLEV [FIND MULTI PARAMETER BLOCK
8*62 PASS LDX 5 APTBEPAR(2)
8*KL #SKI K6PARAM>499-499
8B5= TRACE 2,PASS
8BJW SRL 56 12 [POINTER TO PARAMETER IN X5
8C4G SRL 6 12 [NUMBER OF PARAMETER IN X6
8CJ6 SMO FX2
8D3Q STO 6 EXT+3
8DHB SMO 5
8F32 LDX 4 0(2) [NUMBER OF CHARACTERS IN PARAMETER
8FGL SMO FX1
8G2= TXU 4 MINUS1
8GFW BCC NOPARAM [BRN IF NO MORE PARAMETERS
8G^G #SKI AJOBUSE<1$1
8HF6 (
8HYQ LDX 7 ANALEV(2)
8JDB BNZ 7 MULT2
8JY2 )
8KCL LDCT 7 #400
8KX= SMO 5
8LBW ORS 7 0(2) [INDICATE 'ACCESSED' IN PARAMETER TYP
8LWG LDXC 4 4 [REMOVE 'ACCESSED' BIT IF PRESENT
8MB6 MULT2 BZE 4 NULLP [BRN IF NULL PARAMETER
8MTQ ANDN 4 #7777 [EXTRACT NO. OF CHARACTERS IN PARAMET
8N*B ADN 4 11
8NT2 SRL 4 2 [SIZE OF PARAMETER IN WORDS
8P#L STO 2 3 [STORE ADDRESS OF MULTI BLOCK
8PS= PHOTO 7
8Q?W GETCORE 4,1
8QRG FINDCORE 1
8R?6 LDX 2 3
8RQQ LDX 3 1
8S=B NAME 3,CPB,CUNI
8SQ2 ORS 6 ATYPE(3) [STO NO. OF PARAMETER IN PARENT BLOCK
8T9L TESTMOVE 7,NSER2
8TP= CALL 7 SEARCHLEV [FIND MULTI PARAMETER BLOCK IF MOVED
8W8W NSER2 LDX 7 ANALEV(2)
8WNG BZE 7 ZAL2 [BRN IF ALAS BLOCK
8X86 LDX 7 CPBPROGLEV(2)
8XMQ BRN STJP2
8Y7B ZAL2 SMO FX2
8YM2 LDX 7 EXT+3
8^6L STJP2 STO 7 JPARNUM(3) [SET NO. OF ALAS PAR. THIS PAR. DERIV
8^L= ADX 4 5 [UPDATE POINTER
925W SBN 4 1
92KG ADN 6 1 [UPDATE PARAMETER NUMBER
9356 STO 6 APTBEPAR(2) [STO NO. OF NEXT PARAMETER TO BE PASS
93JQ SLL 4 12
944B ORS 4 APTBEPAR(2) [STO POINTER TO NEXT PARAMETER TO BE
94J2 SMO 5
953L LDX 1 0(2) [SIZE OF PARAMETER
95H= ANDN 1 #7777
962W SMO 5
96GG LDN 6 0(2) [ADDRESS OF PARAMETER IN MULTI BLOCK
9726 LDN 7 ANUM(3) [ADDRESS IN UNI BLOCK
97FQ MVCH 6 4 [STO PT/N WORD
97^B SMO FX2
98F2 LDX 0 EXT+7
98YL BNG 0 SPAR2 [BRN IF SPARAPAS
99D= LDX 0 1 [NO OF CHARS TO BE TRANSFERRED
99XW XGNC2 LDX 1 6 [ADDRESS OF NEXT CHAR IN MODIFIER
9=CG LDCH 4 0(1) [LOAD NEXT CHAR
9=X6 SMO FX1
9?BQ TXU 4 SPACE
9?WB BCS MVCH2 [BRN NOT SPACE
9#B2 LDN 5 1
9#TL SBS 5 ANUM(3) [SPACE;REDUCE NO.OF CHARS
9**= SMO FX2
9*SW SBS 5 EXT+7 [SET EXT+7 -VE IF SPACE FOUND (JOB)
9B#G BCHX 6 £
9BS6 BRN XBCT2
9C?Q MVCH2 MVCH 6 1 [STO A CHAR IN UNIBLOCK
9CRB XBCT2 BCT 0 XGNC2 [GET NEXT CHAR
9D?2 LDX 1 ANUM(3)
9DQL ANDN 1 3
9F== ... BZE 1 XCSB [J IF PARAMETER IS EXACT NO. OF WORDS
9FPW SBN 1 4
9G9G NGX 1 1 [SPACE COUNT IN X1
9GP6 SMO FX1
9H8Q LDN 6 WBLANK
9HNB MVCH 6 0(1) [SPACEFILL LAST WORD OF PARAMETER
9J82 ... BRN XCSB
9JML SPAR2 SMO FX1
9K7= LDX 0 WBLANK
9KLW LDX 4 1
9L6G ADN 4 11
9LL6 SRL 4 2 [SIZE OF PARAMETER IN WORDS +2
9M5Q ... BRN XCHMV
9QH6 #
9R2Q [ PARUNACC AND SPARUNAC MACROS. TO GET THE FIRST UNACCESSED
9RGB [ PARAMETER AND UPDATE THE PARAPASS POINTER TO THE NEXT UNACCESSED
9S22 [ PARAMETER.
9SFL QENTRY19 [ SPARUNAC
9S^= NGN 0 1
9TDW STO 0 EXT+7(2)
9TYG BRN STACC
9WD6 QENTRY20 [ PARUNACC
9WXQ STOZ EXT+7(2)
9XCB STACC
9XX2 MHUNTW 3,CPB,CALAS
9YBL LDX 7 APTBEPAR(3)
9YW= LDN 6 0 [NUMBER OF PARAMETER
9^*W SRC 67 12
9^TG SRL 6 12 [POINTER TO PARAMETER
=2*6 XLOP SMO 7 [LOOK DOWN PARAMETERS IN CALAS BLOCK
=2SQ LDX 4 0(3) [FOR AN UNACCESSED PARAMETER
=3#B TXU 4 MINUS1(1)
=3S2 BCS XCO
=4?L STOZ EXT+2(2)
=4R= SLL 7 12
=5=W ORX 6 7
=5QG STO 6 APTBEPAR(3) [NOWT BUT ACCESSED
=6=6 BRN NOPARAM [PARAMETERS
=6PQ XCO BPZ 4 UNACC
=79B ANDN 4 #7777
=7P2 ADN 4 7
=88L SRL 4 2
=8N= ADX 7 4
=97W ADN 6 1
=9MG BRN XLOP
==76 [ UNACCESSED PARAMETER FOUND
==LQ UNACC ANDN 4 #7777
=?6B LDX 5 4
=?L2 ADN 5 11
=#5L SRL 5 2
=#K= SETUPCORE 5,3,CPB,CUNI
=*4W STO 6 JPARNUM(3) [PUT PARAMETER NUMBER AWAY
=*JG ORS 6 ATYPE(3)
=B46 MHUNTW 2,CPB,CALAS
=BHQ LDX 6 4
=C3B LDX 4 2
=CH2 LDX 5 3
=D2L ADX 4 7
=DG= ADN 5 ANUM
=D^W MVCH 4 4 [MOVE ANUM ACROSS
=FFG BZE 6 XPS
=F^6 SMO FX2
=GDQ LDX 0 EXT+7
=GYB BNG 0 SPR2 [J IF SPARUNAC
=HD2 XLP2 LDX 1 4
=HXL LDCH 0 0(1) [MOVE CHARACTERS ACROSS IGNORING
=JC= SMO FX1 [SPACES
=JWW TXU 0 SPACE
=KBG BCS MV
=KW6 LDN 0 1
=L*Q SBS 0 ANUM(3)
=LTB [ TO NOTIFY JOB-TYPE COMMANDS THAT THERE ARE SPACES
=M*2 SMO FX2
=MSL SBS 0 EXT+7
=N#= BCHX 4 £
=NRW BRN XBT
=P?G MV MVCH 4 1
=PR6 XBT BCT 6 XLP2
=Q=Q BRN SFIL
=QQB SPR2 CHARMOVE 4,6
=R=2 SFIL LDX 1 ANUM(3) [SPACEFILL LAST WORD
=RPL ANDN 1 3
=S9= BZE 1 XPS
=SNW SBN 1 4
=T8G NGX 1 1
=TN6 LDN 4 ACES
=W7Q MVCH 4 0(1)
=WMB XPS
=X72 LDX 1 FX1
=XLL LDX 0 GSIGN
=Y6= SMO 7
=YKW ORS 0 0(2)
=^5G LDX 6 JPARNUM(3)
=^K6 SMO 7
?24Q LDX 0 0(2)
?2JB XRET ANDN 0 #7777
?342 ADN 0 7
?3HL SRL 0 2
?43= ADX 7 0
?4GW ADN 6 1
?52G SMO 7 [LOOP LOOKING FOR NEXT UNACCESSED
?5G6 LDX 0 0(2) [PARAMETER
?5^Q TXU 0 MINUS1(1)
?6FB BCC XPNT
?6^2 BNG 0 XRET
?7DL XPNT
?7Y= SLL 7 12
?8CW ORX 6 7
?8XG STO 6 APTBEPAR(2)
?9C6 XST UP
?9WQ #
?=BB [ PARAFREE
?=W2 #
??*L [ ON ENTRY EXT+3(2) HOLDS THE ANALYSIS LEVEL INDICATING THE
??T= [ HIGHEST LEVEL OF CPB,CMULTI BLOCK TO BE FREED
?##W QENTRY7
?#SG NGN 7 1
?*#6 STO 7 EXT+2(2)
?*RQ BRN SRCH
?B?B MFREE FREECORE 2 [FREE TYPE CMULTI BLOCK
?BR2 SRCH CALL 7 SEARCHLEV [FIND FIRST MULTI PARAMETER BLOCK
?C=L LDX 7 ANALEV(2)
?CQ= SMO FX2
?D9W TXL 7 EXT+3 [COMPARE WITH SPECIFIED ANALYSIS LEVE
?DPG BCS XGOUP
?F96 BNZ 7 MFREE [BRANCH IF NOT A TYPE CALAS BLOCK
?FNQ XGOUP UP
?G8B #
?GN2 [ PARATYPE
?H7L #
?HM= [ ON ENTRY EXT+3(2) HOLDS THE ACCUMULATOR WHERE THE TYPE IS
?J6W [ TO BE STORED,AND EXT+2(2) THE ANALYSIS LEVEL OF THE MULTI
?JLG [ BLOCK DERIVED FROM THE PARAMETER OF WHICH TYPE IS REQUEST
?K66 QENTRY8
?KKQ LDX 4 EXT+3(2) [ACCUMULATOR WHERE TYPE TO BE STORED
?L5B LDX 7 EXT+2(2) [ANALYSIS LEVEL
?LK2 BZE 7 OKAY1
?M4L BNG 7 OKAY1
?MJ= HUNT 2,CPB,CMULTI
?N3W BNG 2 UNOK1 [NO MULTIBLOCK
?NHG TXL 7 ANALEV(2)
?P36 BCS OKAY1
?PGQ UNOK1 NGN 7 1 [SPECIFIED ANALYSIS LWEL TOO LARGE
?Q2B BRN TRACE
?QG2 OKAY1 CALL 7 SEARCHLEV
?Q^L LDX 7 APARANUM(2)
?RF= BNG 7 TRACE [NON EXISTENT PARAMETER
?RYW LDN 7 #7777
?SDG ANDX 7 ATYPE(2) [TYPE OF PARENT PARAMETER
?SY6 TRACE
?TCQ #SKI K6PARAM>499-499
?TXB TRACE 2,TYPE
?WC2 FINDLINK 3 [LOCATE LINE BLOCK
?WWL SBN 4 3
?XB= SMO 4
?XTW STO 7 ACC3(3) [STORE PARAMETER TYPE IN SPECIFIED AC
?Y*G UP
?YT6 #
?^#Q [ PARANUMB
?^SB #
#2#2 [ ON ENTRY,EXT+2(2) HOLDS AN ANALYSIS LEVEL. THE NUMBER OF.
#2RL [ PARAMETERS IN THE BLOCK CORRESPONDING TO THIS ANALYSIS LE
#3?= [ IS STORED IN THE ACCUMULATOR SPECIFIED IN EXT+3(2) .
#3QW QENTRY9
#4=G LDX 4 EXT+3(2) [ACCUMULATOR WHERE ANSWER TO BE STORE
#4Q6 LDX 7 EXT+2(2) [ANALYSIS LEVEL
#59Q BZE 7 OK2
#5PB BNG 7 OK2
#692 HUNT 2,CPB,CMULTI
#6NL BNG 2 UNOK2
#78= TXL 7 ANALEV(2)
#7MW BCS OK2 [SPECIFIED ANALYSIS LEVEL OK
#87G TXU 7 ANALEV(2)
#8M6 BCC OK2+1
#96Q UNOK2 NGN 7 1
#9LB BRN TPACE1
#=62 OK2 CALL 7 SEARCHLEV
#=KL LDX 7 APARANUM(2) [NUMBER OF PARAMETERS
#?5= TPACE1
#?JW #SKI K6PARAM>499-499
##4G TRACE 2,NUMB
##J6 STORE FINDLINK 3 [LOCATE LINK BLOCK
#*3Q SBN 4 3
#*HB SMO 4
#B32 STO 7 ACC3(3) [STORE NUMBER OF PARAMETERS IN SPECIF
#BGL UP
D^26 MENDAREA 1023-0?,K99PARAM
D^FQ #END
^^^^ ...77146016000300000000