15 22FL #LIS K0ANALYSE>K0ALLGEO>K0GREATGEO>K0COMMAND 15 22_= #SEG ANALYSE5 [ BILL IZATT 9 23DW 8HANALYSE 8 23YG [ THE ENTRY POINTS 19 24D6 [ THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT 11 24XQ SEGENTRY K1ANALYSE,QENTRY1 11 25CB SEGENTRY K2ANALYSE,QENTRY2 11 25X2 SEGENTRY K3ANALYSE,QENTRY3 4 26BL [ 4 26W= [ 21 27*W # THIS SEGMENT IS ENTERED BY THE MACROS PARALYSE AND PARANEXT 21 27TG # AND THEIR ANALOGUES, AT K1ANALYSE AND K2ANALYSE RESPECTIVELY 21 28*6 # IT SETS UP A CPB,CMULTI BLOCK TO HOLD THE COMPONENTS OF THE 21 28SQ # PARAMETER TO BE SPLIT,AND GOES ACROSS TO K1ANALYSEA . ON ENT 21 29#B # EXT+2(2) HOLDS THE ANALYSIS LEVEL OF THE BLOCK CONTAINING TH 21 29S2 # PARAMETER TO BE SPLIT,EXT+3(2) HOLDS THE NUMBER OF THE PARAM 21 2=?L # IN THIS BLOCK,AND EXT+4(2) HOLDS THE SEPARATOR AT WHICH THE 21 2=R= # PARAMETER IS TO BE SPLIT .IF ANY OF THESE PARAMETERS OF THE 21 2?=W # MACRO ARE NOT GIVEN,THE CORRESPONDING EXT WORD IS SET TO -1 4 2?QG # 9 2#=6 #DEF SIZEPB=AVELINE+APB 9 2#PQ MINUS1 #77777777 4 2*9B # 21 2*P2 # THIS SUBROUTINE LOCATES THE CPB,CMULTI OR ALAS BLOCK WITH 21 2B8L # ANALYSIS LEVEL IN EXT+2, AND DELETES ANY AT LOWER LEVELS 6 2BN= SEARCHDEL 8 2C7W LDX 2 FX2 16 2CMG STO 7 EXT(2) [SET TO DELETE 9 2D76 P2 LDX 2 FPTR(2) 17 2DLQ LDCH 0 ATYPE(2) [CHECK IS A CPB BLOCK 9 2F6B SBN 0 CPB/64 16 2FL2 BNZ 0 P2 [BRANCH IF NOT 9 2G5L LDX 0 ATYPE(2) 8 2GK= SRL 0 12 9 2H4W ERN 0 CPB+CUNI 17 2HJG BZE 0 P2 [IGNORE IF UNIBLOCK 8 2J46 SMO FX2 20 2JHQ LDX 1 EXT+2 [ANALYSIS LEVEL OF REQUIRED BLOCK 21 2K3B BNG 1 RET [BRANCH IF ANALYSIS LEVEL 'LOWEST' 17 2KH2 TXL 1 ANALEV(2) [CHECK ANALYSIS LEVEL 8 2L2L BCS TDEL 9 2LG= TXU 1 ANALEV(2) 8 2L_W BCC RET 10 2MFG NAME 3,CPB,CMULTI 21 2M_6 BRN NMPARAM [ERROR IF ANALYSIS LEVEL TOO LARGE 9 2NDQ P3 LDX 2 FPTR(2) 8 2NYB SMO FX2 8 2PD2 LDX 1 EXT+2 9 2PXL TXU 1 ANALEV(2) 20 2QC= BCC RET [BRANCH IF CORRECT ANALYSIS LEVEL 4 2QWW TDEL 16 2RBG LDX 7 BPTR(2) [STORE POINTER 15 2RW6 FREECORE 2 [DELETE BLOCK 16 2S*Q LDX 2 7 [RESTORE POINTER 8 2STB BRN P3 8 2T*2 RET SMO FX2 8 2TSL LDX 7 EXT 7 2W#= EXIT 7 0 4 2WRW # 19 2X?G # ROUTINES IF PARENT PARAMETER NULL OR NON EXISTENT 4 2XR6 # 5 2Y=Q ZPARAM 7 2YQB NGN 7 1 16 2_=2 STO 7 APARAFIR+1(3) [SET END OF BLOCK 16 2_PL LDN 7 0 [NULL PARAMETER 10 329= STO 7 APARAFIR(3) 16 32NW LDN 7 1 [1 NULL PARAMETER 8 338G BRN STORE 5 33N6 NMPARAM 18 347Q NGN 7 1 [NON EXISTENT PARAMETER 16 34MB STO 7 APARAFIR(3) [SET END OF BLOCK 16 3572 LDN 7 0 [NO PARAMETERS 10 35LL STORE STO 7 APARANUM(3) 10 366= STOZ APTNECHA(2) 9 36KW LDN 7 APARAFIR 8 375G SLL 7 12 7 37K6 ADN 7 1 19 384Q STO 7 APTBEPAR(3) [POINTER TO FIRST PARAMETER 10 38JB STO 7 ADNOPARAL(3) 8 3942 BRN TWCH 4 39HL # 17 3=3= # ENTRY POINT FOR PARALYSE AND PARALYSX MACROS 5 3=GW QENTRY1 16 3?2G STOZ EXT+5(2) [SET 'PARALYSE' 8 3?G6 BRN PLYSE 4 3?_Q # 18 3#FB # ENTRY POINT FOR PARANEXT MACRO AND DERIVATIVES 5 3#_2 QENTRY3 7 3*DL NGN 0 1 9 3*Y= STO 0 EXT+5(2) 8 3BCW BRN PLYSE 5 3BXG QENTRY2 11 3CC6 #SKI K6ANALYSE>499-499 8 3CWQ TRACE 2,NEXT 7 3DBB LDN 0 1 9 3DW2 STO 0 EXT+5(2) 5 3F*L PLYSE 19 3FT= GETCOREN SIZEPB,1 [GET A MULTI PARAMETER BLOCK 7 3G#W FINDCORE 3 21 3GSG CALL 7 SEARCHDEL [FIND CORRECT MULTI BLOCK AND DELETE 11 3H#6 #SKI K6ANALYSE>499-499 9 3HRQ TRACE 2,ANALYSE 10 3J?B NAME 3,CPB,CMULTI 19 3JR2 STO 2 7 [STORE ADDRESS OF OLD BLOCK 9 3K=L LDX 2 BPTR(2) 20 3KQ= CHAIN 3,2 [CHAIN NEW BLOCK INFRONT OF OLD 19 3L9W LDX 2 7 [LOAD ADDRESS OF OLD BLOCK 19 3LPG LDX 7 ANALEV(2) [ANALYSIS LEVEL OF OLD BLOCK 7 3M96 ADN 7 1 21 3MNQ STO 7 ANALEV(3) [STORE ANALYSIS LEVEL OF NEW BLOCK 10 3N8B LDX 7 CPBCPLEV(2) 21 3NN2 STO 7 CPBCPLEV(3) [STORE COMMAND PROCESSOR LEVEL IN NEW 18 3P7L STOZ CPBFSD(3) [ZEROISE BRACKET COUNT 10 3PM= STOZ APARANUM(3) 21 3Q6W STOZ APARAFIR(3) [ZEROISE FIRST WORD OF FIRST PARAMETE 9 3QLG STOZ CMFMSK(3) 6 3QRN ...#UNS CMXMSK 9 3QYW ... STOZ CMXMSK(3) 10 3R66 STOZ CPBSTART(3) 10 3RKQ STOZ CPBSTOP(3) 9 3S5B LDN 7 APARAFIR 19 3SK2 STO 7 APTBEPAR(3) [POINTER IN TER SUBROUTINE 7 3T4L ADN 7 1 19 3TJ= STO 7 APTNECHA(3) [POINTER TO FIRST CHARACTER 10 3W3W LDX 6 APARANUM(2) 21 3WHG BZE 6 NMPARAM [BRN IF PARENT BLOCK HOLDS NO PARAMET 9 3X36 LDX 7 ANALEV(2) 15 3XGQ BZE 7 XALAS [BRN IF ALAS 10 3Y2B LDX 7 CPBPROGLEV(2) 20 3YG2 STO 7 CPBPROGLEV(3) [PASS ON PROGLEV FROM MULTIBLOCK 8 3Y_L XALAS SMO FX2 17 3_F= LDX 7 EXT+3 [NUMBER OF PARAMETER 20 3_YW BPZ 7 PFIND [BRANCH IF NOT 'NEXT' PARAMETER 10 42DG LDX 6 ADNOPARAL(2) 21 42Y6 SRL 6 12 [POINTER TO NEXT PARAMETER TO BE ANAL 7 43CQ SMO 6 21 43XB LDX 4 0(2) [NUMBER OF CHARACTERS IN PARAMETER 8 44C2 SMO FX1 9 44WL TXU 4 MINUS1 18 45B= BCC NMPARAM [BRANCH IF END OF BLOCK 8 45TW #SKI AJOBUSE<1$1 4 46*G ( 9 46T6 LDX 7 ANALEV(2) 17 47#Q BNZ 7 MULT3 [BRN IF MULTI BLOCK 4 47SB ) 8 48#2 LDCT 7 #400 7 48RL SMO 6 21 49?= ORS 7 0(2) [SET B0 IN TYPE WORD TO INDICATE 'ACC 7 49QW #SKI AJOBUSE 4 4==G ( 9 4=Q6 LDX 7 ANALEV(2) 17 4?9Q BNZ 7 MULT3 [BRN IF MULTI BLOCK 4 4?PB ) 10 4#92 LDX 7 ADNOPARAL(2) 8 4#NL ANDN 7 #7777 21 4*8= STO 7 CPBPROGLEV(3) [PASS ON ADNOPARAL FROM ALAS BLOCK 8 4*MW MULT3 LDN 5 #7777 20 4B7G ANDS 5 ADNOPARAL(2) [CLEARPOINTER TO NEXT PARAMETER 19 4BM6 ANDX 5 4 [EXTRACT NUMBER OF CHARACTERS 7 4C6Q ADN 5 7 19 4CLB SRL 5 2 [SIZE OF PARAMETER IN WORDS 7 4D62 ADX 5 6 8 4DKL SLL 5 12 17 4F5= ADN 5 1 [TO UPDATE L.S. HALF 20 4FJW ADS 5 ADNOPARAL(2) [POINTER IN AND NUMBER UPDATED 17 4G4G LDXC 4 4 [CLEAR ANY SIGS BIT 18 4GJ6 BZE 4 ZPARAM [BRN IF PARAMETER NULL 8 4H3Q BRN SPT 19 4HHB PFIND LDN 6 APARAFIR [POINTER TO FIRST PARAMETER 8 4J32 BRN NLD 21 4JGL NPAR ANDN 4 #7777 [EXTRACT NO. OF CHARACTERS IN PARAMET 7 4K2= ADN 4 7 7 4KFW SRL 4 2 19 4K_G ADX 6 4 [POINTER TO NEXT PARAMETER 7 4LF6 NLD SMO 6 21 4LYQ LDX 4 0(2) [NUMBER OF CHARACTERS IN PARAMETER 8 4MDB SMO FX1 9 4MY2 TXU 4 MINUS1 17 4NCL BCC NMPARAM [BRN IF END OF BLOCK 19 4NX= BCT 7 NPAR [BRANCH IF NOT N'TH PARAMETER 8 4PBW #SKI AJOBUSE<1$1 4 4PWG ( 9 4QB6 LDX 7 ANALEV(2) 17 4QTQ BNZ 7 MULT4 [BRN NOT ALAS BLOCK 4 4R*B ) 8 4RT2 LDCT 7 #400 7 4S#L SMO 6 21 4SS= ORS 7 0(2) [SET B0 IN TYPE WORD TO INDICATE 'ACC 7 4T?W #SKI AJOBUSE 4 4TRG ( 9 4W?6 LDX 7 ANALEV(2) 17 4WQQ BNZ 7 MULT4 [BRN IF MULTI BLOCK 4 4X=B ) 8 4XQ2 SMO FX2 8 4Y9L LDX 7 EXT+3 19 4YP= STO 7 CPBPROGLEV(3) [PASS ON EXT+3 FOR ALAS BLOCK 7 4_8W #SKI AJOBUSE 5 4_NG MULT4 17 5286 LDXC 4 4 [CLEAR ANY SIGN BIT 8 52MQ #SKI AJOBUSE<1$1 5 537B MULT4 16 53M2 BZE 4 ZPARAM [N'TH PARAMETER 18 546L SPT SRL 45 12 [ISOLATE PARAMETER TYPE 17 54L= ANDN 4 #3777 [CLEAR 'ACCESSED' BIT 17 555W ORS 4 ATYPE(3) [STORE IN NEW BLOCK 21 55KG SRL 5 12 [NUMBER OF CHARACTERS IN PARAMETER 8 5656 SETREP OK 8 56JQ SMO FX2 19 574B STO 5 EXT+7 [HOLD NUMBER OF CHARACTERS 7 57J2 ADN 6 1 7 583L STO 2 5 7 58H= PHOTO 7 10 592W ACROSS ANALYSEA,1 14 59GG # TEST FOR PARALYSE OR PARANEXT 8 5=26 TWCH SMO FX2 8 5=FQ LDX 7 EXT+5 8 5=_B SETREP OK 8 5?F2 BNZ 7 NEXT 17 5?YL UP [RETURN IF PARALYSE 4 5#D= NEXT 8 5#XW SMO FX2 19 5*CG STO 7 EXT+7 [SET EXT+7=-1 FOR SPARAPAS 7 5*X6 UDAL NGN 7 1 8 5BBQ SMO FX2 8 5BWB STO 7 EXT+2 19 5CB2 ACROSS PARAM,25 [BRN TO PASS FIRST PARAMETER 10 5CTL MENDAREA 20,K99ANALYSE 4 5D*= #END 8 ____ ...60657477000100000000