14 22FL #LIS K0PARAMA>K0ALLGEO>K0GREATGEO>K0COMMAND 17 22_= #SEG PARAMA [ BILL IZATT : CENT 9 23DW 8HPARAMA 8 23YG [ THE ENTRY POINTS 19 24D6 [ THESE ENTRY POINTS MUST BE KEPT FIXED WITHIN THE SEGMENT 11 24XQ SEGENTRY K1PARAMA,QENTRY1 11 25CB SEGENTRY K2PARAMA,QENTRY2 11 25X2 SEGENTRY K3PARAMA,QENTRY3 11 26BL SEGENTRY K4PARAMA,QENTRY4 4 26W= [ 4 27*W [ 12 27TG [ ENTRY FOR THE PARABRAC MACRO 4 28*6 [ 16 28SQ #DEF RPAR=SHUTBRAK [ CONTAINS 4H000) 16 29#B #DEF XLPAR=OPENBRAK [ CONTAINS 4H000( 8 29S2 XARSGN 10H*/+-<>$_&, 4 2=?L [ 5 2=R= QENTRY1 10 2?=W HUNT 3,CPB,CUNI 9 2?QG STO 3 AWORK1(2) 9 2#=6 LDX 4 ANUM(3) 16 2#PQ BZE 4 XBAD [ERROR IF NULL OR 15 2*9B BNG 4 XBAD [NONEXISTENT 8 2*P2 ANDN 4 #7777 14 2B8L ADN 3 APARA [POINT X3 17 2BN= SLL 3 2 [TO LAST CHARACTER 15 2C7W ADX 3 4 [IN PARAMETER 7 2CMG SBN 3 1 7 2D76 SRC 3 2 18 2DLQ LDN 7 0 [INITIALISE BRACKET COUNT 8 2F6B LDCH 0 0(3) 9 2FL2 TXU 0 RPAR(1) 8 2G5L BCS PUP 7 2GK= XLP1 ADN 7 1 7 2H4W XLP2 SLC 3 2 7 2HJG BCT 3 / 7 2J46 SRC 3 2 7 2JHQ SBN 4 1 19 2K3B BZE 4 XBAD [J IF UNPAIRED PARENTHESIS 8 2KH2 LDCH 0 0(3) 9 2L2L TXU 0 RPAR(1) 8 2LG= BCC XLP1 9 2L_W TXU 0 XLPAR(1) 8 2MFG BCS XLP2 8 2M_6 BCT 7 XLP2 19 2NDQ SLC 3 2 [CORRESPONDING BRACKET FOUND 7 2NYB BCT 3 / 7 2PD2 SRC 3 2 7 2PXL SBN 4 1 16 2QC= BZE 4 XCOMP [J IF COMPOSITE 8 2QWW LDCH 0 0(3) 7 2RBG LDN 7 9 4 2RW6 XLP3 16 2S*Q LDCH 6 XARSGN(1) [ARITHMETIC SIGN 7 2STB TXU 6 0 20 2T*2 BCC PUP [NO ACTION TAKEN IF AN ARITH.SIGN 7 2TSL BCHX 1 / 8 2W#= BCT 7 XLP3 7 2WRW BCHX 3 / 9 2X?G LDCH 6 XARSGN(1) 8 2XR6 DCH 6 0(3) 9 2Y=Q LDX 3 AWORK1(2) 7 2YQB LDN 4 1 9 2_=2 SBS 4 ANUM(3) 9 2_PL PTYPE LDX 3 AWORK1(2) 9 329= LDX 4 ANUM(3) 8 32NW ANDN 4 #7777 9 338G STO 4 ANUM(3) 13 33N6 PTYPE CPB,CUNI,3,APARA,ANUM(3) 8 347Q PUP SETREP OK 5 34MB UP 9 3572 XBAD SETREP FORMAT 5 35LL UP 9 366= XCOMP LDX 3 AWORK1(2) 9 36KW LDX 5 ANUM(3) 8 375G ANDN 5 #7777 7 37K6 SBN 5 2 9 384Q STO 5 ANUM(3) 8 38JB BZE 5 PUP 8 3942 ADN 3 APARA 7 39HL LDX 4 3 7 3=3= BCHX 3 / 17 3=GW CHARMOVE 3,5 [ REMOVE PARENTHESES 8 3?2G BRN PTYPE 4 3?G6 [ 21 3?_Q [ PARASTRING MACRO-TO MOVE A CHARACTER STRING FROM A BLOCK TO A CPB 21 3#FB [ CMULTI BLOCK SPECIALLY CREATED FOR THE PURPOSE.THIS BLOCK WILL BE 20 3#_2 [ AT ANALYSIS LEVEL 1.IT WILL CONTAIN ONLY ONE PARAMETER.THIS 20 3*DL [ PARAMETER WILL BE THE CONTENTS OF THE CHARACTER STRING WITHIN 20 3*Y= [ PARENTHESES.A CHECK IS MADE THAT THE FIRST CHARACTER IS INDEED 19 3BCW [ A LEFT PARENTHESIS.LEADING AND TRAILING SPACES ARE THROWN. 4 3BXG [ 9 3CC6 #DEF SIZEPB=AVELINE+APB 6 3CWQ STRINGDELIM 9 3DBB 4H000? 9 3DW2 4H000' 9 3F*L 4H000/ 9 3FT= 4H000^ 9 3G#W OPENBRAK 4H000( 9 3GSG SHUTBRAK 4H000) 5 3H#6 QENTRY2 19 3HRQ LDX 3 ACOMMUNE1(2) [PTR WITHIN 'STRING' BLOCK 16 3J?B LDX 5 ACOMMUNE2(2) [CHARACTER COUNT 10 3JR2 LDX 7 ACOMMUNE3(2) 10 3K=L STOZ ACOMMUNE4(2) 8 3KQ= SLL 7 12 9 3L9W STO 7 AWORK1(2) 7 3LPG PARAFREE 8 3M96 MHUNTX 2,7 7 3MNQ SMO 2 19 3N8B LDCH 0 0(3) [PICK UP FIRST CHARACTER-IT 19 3NN2 TXU 0 XLPAR(1) [MUST BE A LEFT PARENTHESIS 8 3P7L BCC XOK 10 3PM= GEOERR 1,LPARENTH 7 3Q6W XSP SMO 2 18 3QLG LDCH 0 0(3) [IGNORE LEADING SPACES 9 3R66 TXU 0 SPACE(1) 8 3RKQ BCS XNSP 7 3S5B XOK BCHX 3 / 20 3SK2 BCT 5 XSP [COUNT DOWN ON CHARACTER COUNT 20 3T4L [ ERROR-EITHER NO MATCHING RIGHT PARENTHESIS AT END OR 13 3TJ= [ PARAMETER IS ALL SPACES 4 3W3W # 8 3WHG XERR SMO FX2 9 3X36 STOZ ACOMMUNE1 5 3XGQ UP 9 3Y2B XNSP TXU 0 RPAR(1) 8 3YG2 BCS XNSP2 8 3Y_L SETREP NULL 8 3_F= BRN XERR 5 3_YW XNSP2 17 42DG [ SO FAR SO GOOD SO SET UP A MULTI BLOCK 12 42Y6 SETNCORE SIZEPB,1,CPB,CMULTI 10 43CQ MHUNTW 2,CPB,CALAS 9 43XB LDX 2 BPTR(2) 7 44C2 LDX 6 1 21 44WL CHAIN 1,2 [CHAIN MULTI BLOCK BEFORE ALAS BLOCK 18 45B= STOZ AWORK2(2) [INITIALISE DEPTH COUNT 15 45TW STOZ AWORK3(2) [INITIALISE 8 46*G MHUNTX 2,7 18 46T6 LDX 7 2 [PTR TO 'STRING' BLOCK 18 47#Q LDN 2 APARAFIR+1 [PTR WITHIN MULTI BLOCK 21 47SB [ THE MAIN LOOP-LOADING A CHARACTER FROM THE 'STRING' BLOCK 20 48#2 [ AND DEPOSITING IT IN THE MULTI BLOCK,ENLARGING IT IF 9 48RL [ NECESSARY 7 49?= XLOP SMO 7 8 49QW LDCH 0 0(3) 17 4==G LDN 4 SHUTBRAK-STRINGDELIM+1 [ SIZE OF TABLE 7 4=Q6 XLOOP SMO 4 11 4?9Q TXU 0 STRINGDELIM-1(1) 9 4?PB BCC SDELIM 8 4#92 BCT 4 XLOOP 8 4#NL BRN XDCH 17 4*8= SDELIM [ THE CHAR IS A DELIM 8 4*MW SMO FX2 9 4B7G LDX 4 ACOMMUNE4 10 4BM6 TXU 0 SHUTBRAK(1) 8 4C6Q BCC SHTB 9 4CLB BZE 4 NOTINDELS 10 4D62 TXU 0 OPENBRAK(1) 8 4DKL BCC OPNB 20 4F5= TXU 0 4 [ IS CHAR THE CURRENT DELIMETER? 19 4FJW BCS XDCH [ IF NOT, TREAT AS ORD CHAR 5 4G4G XCLEAR 8 4GJ6 SMO FX2 9 4H3Q STOZ ACOMMUNE4 8 4HHB BRN XDCH 4 4J32 OPNB 10 4JGL TXU 4 SHUTBRAK(1) 8 4K2= BCS XDCH 8 4KFW BRN XLP 4 4K_G SHTB 20 4LF6 BZE 4 OUTPAR [ NOT IN DELS. END OF PARASTRING 10 4LYQ TXU 4 SHUTBRAK(1) 8 4MDB BCS XDCH 8 4MY2 SMO FX2 9 4NCL LDX 4 AWORK2 7 4NX= SBN 4 1 8 4PBW SMO FX2 9 4PWG STO 4 AWORK2 20 4QB6 BNZ 4 XDCH [ NOT AT ZERO SO STILL IN DELIMS 9 4QTQ BRN XCLEAR 6 4R*B NOTINDELS 8 4RT2 SMO FX2 9 4S#L STO 0 ACOMMUNE4 10 4SS= TXU 0 OPENBRAK(1) 8 4T?W BCS XDCH 10 4TRG LDX 4 SHUTBRAK(1) 8 4W?6 SMO FX2 18 4WQQ STO 4 ACOMMUNE4 [ PUT ) AS STRING DELIM 7 4X=B XLP LDN 4 1 8 4XQ2 SMO FX2 17 4Y9L ADS 4 AWORK2 [ADD 1 TO DEPTH COUNT 7 4YP= XDCH SMO 6 8 4_8W DCH 0 0(2) 7 4_NG BCHX 2 / 7 5286 LDN 4 1 8 52MQ SMO FX2 18 537B ADS 4 AWORK3 [ADD 1 TO CHARACTER COUNT 7 53M2 BCHX 3 / 8 546L BCT 5 XCON 19 54L= FREECORE 6 [RUN OUT OF CHARACTERS-ERROR 8 555W BRN XERR 8 55KG XCON SMO FX2 15 5656 STO 2 AWORK4 [PRESERVE X2 8 56JQ SMO FX2 15 574B STO 3 ACOMMUNE1 [PRESERVE X3 7 57J2 SLL 2 2 7 583L SRL 2 2 8 58H= SBN 2 A1 7 592W SMO 6 9 59GG TXL 2 ALOGLEN 19 5=26 BCS XALOG [J IF MULTI BLOCK BIG ENOUGH 7 5=FQ PHOTO 4 7 5=_B SMO 6 9 5?F2 LDX 3 ALOGLEN 9 5?YL ADN 3 AVELINE 8 5#D= ALTLEN 6,3 9 5#XW TESTMOVE 4,XNOM 9 5*CG LDX 7 AWORK1(2) 18 5*X6 MHUNTX 2,7 [REFIND 'STRING' BLOCK 7 5BBQ LDX 7 2 17 5BWB MHUNTW 2,CPB,CMULTI [REFIND MULTI BLOCK 7 5CB2 LDX 6 2 8 5CTL XNOM SMO FX2 14 5D*= LDX 3 ACOMMUNE1 [RESET X3 8 5DSW XALOG SMO FX2 14 5F#G LDX 2 AWORK4 [RESET X2 8 5FS6 BRN XLOP 17 5G?Q [ THE END-SET RED TAPE WORDS OF MULTI BLOCK 5 5GRB OUTPAR 7 5H?2 BCHX 3 / 8 5HQL LDX 2 FX2 7 5J== STO 3 7 7 5JPW SBN 5 1 7 5K9G LDX 3 6 7 5KP6 LDN 4 1 10 5L8Q STO 4 APARANUM(3) 9 5LNB STO 4 ANALEV(3) 10 5M82 STO 4 CPBPROGLEV(3) 9 5MML LDN 4 APARAFIR 8 5N7= SLL 4 12 7 5NLW ADN 4 1 10 5P6G STO 4 APTBEPAR(3) 10 5PL6 STO 4 ADNOPARAL(3) 16 5Q5Q LDX 4 AWORK3(2) [CHARACTER COUNT 10 5QKB LDN 2 APARAFIR+1(3) 7 5R52 SLL 2 2 7 5RJL ADX 2 4 7 5S4= SRC 2 2 7 5SHW XSLP SLC 2 2 7 5T3G SBN 2 1 18 5TH6 SRC 2 2 [IGNORE TRAILING SPACES 8 5W2Q LDCH 0 0(2) 9 5WGB TXU 0 SPACE(1) 8 5X22 BCS XENDL 7 5XFL SBN 4 1 8 5X_= BNZ 4 XSLP 10 5YDW XENDL STO 4 APARAFIR(3) 7 5YYG ADN 4 7 7 5_D6 SRL 4 2 7 5_XQ NGN 0 1 7 62CB SMO 4 10 62X2 STO 0 APARAFIR(3) 16 63BL PTYPE CPB,CMULTI,3,APARAFIR+1,APARAFIR(3) 10 63W= STO 7 ACOMMUNE1(2) 10 64*W STO 5 ACOMMUNE2(2) 5 64TG UP 4 65*6 # 13 65SQ [ ENTRY FROM PARALAS MACRO 4 66#B # 9 66S2 MINUS1 #77777777 8 67?L XCOMMA #34 5 67R= QENTRY3 10 68=W MHUNTW 2,CPB,CALAS 16 68QG LDX 5 APARANUM(2) [ALLOW FOR COMMAS 7 69=6 SBN 5 1 17 69PQ LDN 0 0 [SET X0 TO 1ST PARAM 7 6=9B XAR1 SMO 0 10 6=P2 LDX 4 APARAFIR(2) 9 6?8L TXU 4 MINUS1(1) 16 6?N= BCC XOUT1 [END OF PARAMS 8 6#7W ANDN 4 #7777 19 6#MG ADX 5 4 [ADD IN CHARS FROM THIS PARAM 7 6*76 ADN 4 7 7 6*LQ SRL 4 2 18 6B6B ADX 0 4 [STEP X0 TO NEXT PARAM 8 6BL2 BRN XAR1 7 6C5L XOUT1 LDX 4 5 7 6CK= ADN 4 7 7 6D4W SRL 4 2 20 6DJG SETUPCORE 4,3,ADATA,CSTORE [SET UP BLOCK OF CORE AND NAME IT 10 6F46 MHUNTW 2,CPB,CALAS 17 6FHQ STO 5 A1(3) [STORE CHAR COUNT 9 6G3B ADN 2 APARAFIR 8 6GH2 ADN 3 A1+1 8 6H2L LDX 4 0(2) 9 6HG= TXU 4 MINUS1(1) 8 6H_W BCC XOUT2 8 6JFG BRN XAR2 8 6J_6 XAR3 LDX 4 0(2) 9 6KDQ TXU 4 MINUS1(1) 16 6KYB BCC XOUT2 [END OF PARAMS 15 6LD2 LDX 6 XCOMMA(1) [DUMP COMMA 8 6LXL DCH 6 0(3) 7 6MC= BCHX 3 / 8 6MWW XAR2 ANDN 4 #7777 19 6NBG ADN 2 1 [ADJUST X2 TO START OF PARAM 15 6NW6 BZE 4 XAR3 [NULL PARAM 17 6P*Q CHARMOVE 2,4 [MOVE CHARACTERS IN 7 6PTB SLC 2 2 7 6Q*2 ADN 2 3 18 6QSL SRL 2 2 [ADJUST X2 FOR NEXT PARAM 8 6R#= BRN XAR3 5 6RRW XOUT2 UP 4 6S?G # 9 6SR6 [ PARFNAME 4 6T=Q # 21 6TQB [ TO TAKE A PARAMETER IN A FIL/FNAME AND SET IT IN A NEW CPB/CMULTI 4 6W=2 # 8 6WPL SPACE #20 5 6X9= QENTRY4 7 6XNW PARAFREE 9 6Y8G MHUNT 3,FILE,FNAME 9 6YN6 LDX 4 ATYPE(3) 9 6_7Q ANDX 4 HALFTOP 19 6_MB ORN 4 1 [PUT 1 IN LS 12 BITS OF ATYPE 9 7272 STO 4 ATYPE(3) 18 72LL LDX 4 3 [REMEBER FILE/FNAME PTR 19 736= LDX 5 ANUM(3) [CALCULATE LL FOR CPB/CMULTI 16 73KW LDX 6 5 [REM CHAR COUNT 9 745G ADN 5 APB*4+11 7 74K6 SRL 5 2 7 754Q PHOTO 7 13 75JB PTYPE FILE,FNAME,3,APARA,ANUM(3) 11 7642 SETUPCORE 5,3,CPB,CMULTI 17 76HL TESTMOVE 7,NOMOVE [B IF NO BLOCKS MOVED 9 773= MHUNT 2,FILE,FNAME 7 77GW LDX 4 2 5 782G NOMOVE 9 78G6 MHUNT 2,CPB,CALAS 10 78_Q LDX 7 CPBCPLEV(2) 20 79FB ANDN 7 #7777 [FIND THE CPB/LEV FOR CPB/CMULTI 21 79_2 CHAIN 3,BPTR(2) [CHAIN CPB/CMULTI BEFORE CPB/CALAS 7 7=DL LDX 2 4 18 7=Y= STO 7 CPBCPLEV(3) [INITIALISE CPB/CMULTI 9 7?CW LDN 7 APARAFIR 8 7?XG SLL 7 12 7 7#C6 ADN 7 1 10 7#WQ STO 7 APTBEPAR(3) 10 7*BB STO 7 ADNOPARAL(3) 10 7*W2 STOZ CPBSTART(3) 10 7B*L STOZ CPBSTOP(3) 10 7BT= LDX 7 JPARNUM(2) 18 7C#W STO 7 CPBPROGLEV(3) [LOAD CORRECT PARAM NO 7 7CSG LDN 7 1 18 7D#6 STO 7 ANALEV(3) [SET ANALYSIS LEVEL TO 1 18 7DRQ STO 7 APARANUM(3) [NO. OF PARAMETERS = 1 9 7F?B STOZ CMFMSK(3) 6 7FDJ ...#UNS CMXMSK 9 7FKQ ... STOZ CMXMSK(3) 7 7FR2 ADN 6 7 7 7G=L SLL 6 2 17 7GQ= SRL 6 2 [ROUND UP CHAR COUNT 8 7H9W ADN 2 ANUM 9 7HPG ADN 3 APARAFIR 17 7J96 CHARMOVE 2,6 [MOVE IN PARAMATER 7 7JNQ NGN 7 1 18 7K8B STO 7 0(3) [SET END OF PARAM MARKER 5 7KN2 UP 10 7L7L MENDAREA 30,K99PARAMA 4 7LM= #END 8 ____ ...51574464000100000000