PARAMA865

(George Source)

Macros used: ALTLEN, CHAIN, CHARMOVE, FREECORE, GEOERR, HUNT, MENDAREA, MHUNT, MHUNTW, MHUNTX, OUTPAR, PARAFREE, PHOTO, PTYPE, SEGENTRY, SETNCORE, SETREP, SETUPCORE, TESTMOVE, UP, XCLEAR

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