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