{{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