LISTPARS867

(George Source)

Macros used: ACROSS, ADDMODE, ALTLEN, AND, BS, BXE, BXU, CHAIN, CHEKLFN2, CLOSE, CLOSETOP, COMBRKIN, COMERRX, COMPACT, DOWN, ELSE, ENDCOM, FI, FNORM, FREECORE, FREELINK, FSHENTRY, GEOERR, HUNTW, IF, ISPER, JBC, LDBIT, LFCHAIN, LFHUNT, LFKEY, MBS, MFREE, MHUNT, MHUNTW, MONOUT, NAME, NAMETOP, OR, PARAFREE, PARALYSE, PARAMOVE, PARANUMB, REPERR, SEG, SEGENTRY, SETENTRY, SETMODE, SETUPCORE, SPARABEG, SPARABEX, SPARANOT, SPARANOX, SPARAPAS, STEP, TESTRACE, TESTREP2, TESTRPN2, THEN, TREPN2, UP, UPPLUS, USEROPEN, USEROPEX, VFREE, ZERRORX, ZERRORY

LISTPARS867.txt
22FL    #OPT           K0LISTPARS=0 
22^=    #LIS           K0LISTPARS>K0LISTFILE>K0ALLGEO   
233K ... SEG LISTPARS,,,,G253,G502,G503 
235Y ...[   
238? ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23=L ...[     THIS EXCLUDES CODE UNDER #SKI G253
23#^ ...[                    AND UNDER #SKI G502
23FM ...[   
23J2 ...#OPT G234 = 0   
23L* ...#OPT G253 = 0   
23NN ...#SKI G253&1 
23R3 ...# WITH UGUG EDIT M253 (LISTFILE IN NO-USER CONTEXT) 
23TB ...#OPT G254 = 0   
23XP ...#OPT G264 = 0   
2424 ...#OPT G502 = 0   
244C ...#SKI G502&1 
246Q ...# WITH UGUG EDIT M502 (SHIFT AND GRAPHICS OUTPUT ON MOP)
2495 ...#OPT G503 = 0   
24?D ...#SKI G503&1 
24*R ...# WITH UGUG EDIT M503 (PAGING AND FRAMING ON MOP LISTFILES) 
24D6          SETENTRY LISTPARS,POINT,5 
24XQ          FSHENTRY K7LISTPARS,,POINT7,POINT7
25X2    [   
26BL    [THIS SEGMENT CHECKS THE PROPERTY AND SETUP PARAMETERS.IT SETS UP THE   
26W=    [PROPERTY BLOCK IF ANY,AND PERFORMS AN ISPER,DEALING WITH ANY ERRORS
27*W    [IF THIS IS SUCCESSFUL,ENTRY IS MADE TO LISTFREE TO FREEZE ANY FILES
27TG    [THIS SEGMENT CONTAINS THE CODE FOR THE MACROS PROPERTY AND LFMULT. 
28*6    [   
28SQ    [***********************************************************************
29#B    [DATA AREA  
29D?    [   
29J8    SETUP   
29N5          8HSETUP   
2?=W    PERFREBIT   
2?QG          #20                          [ PERI IS FREE AT ISPER  
2#=6    PROPBIT 
2#PQ          #4000000                     [ PROPERTY BLOCK 
2*9B    SETUPBIT
2*P2          #10000000                    [ SETUP FILE 
2B8L    PERISBIT
2BN=          #200                         [ ISPER BEING PERFORMED  
2C7W    SMULTFILE   
2CMG          #2000 
2D76    SMULTSETBIT 
2DLQ          #10                          [ MULTIFILE WITH SETUP   
2F6B    [***********************************************************************
2FL2    [MAIN BODY OF SEGMENT   
2G5L    [***********************************************************************
2GK=    [   
2H4W    POINT1  
2HJG    [THIS IS THE ENTRY POINT FROM ONLINE WHERE ANY PROPERTY PARAMETER HAS   
2J46    [ALREADY BEEN ANALYSED.WE ARE ABOUT TO CHECK ON THE EXISTENCE AND   
2JHQ    [AVAILABILITY OF A PERIPHERAL TO MEET THE REQUIREMENTS OF COMMAND PARS  
2K3B    [JOB SOURCE.THIS IS DONE BY THE 'ISPER' MACRO.  
2KH2    [FIRST THOUGH,THE GOUT/INFO IS CHAINED IN THE LISTFILE CHAIN(HAVING 
2L2L    [BEEN RENAMED A GOUT/GKEY TO WARD OFF INTEREST BY THE SCHEDULER).   
2LG=    [THIS IS TO PROVIDE AN INTERLOCK WITH THE SCHEDULER,WHEN THE LATTER 
2L^W    [IS AWARE OF A FREE PERIPHERAL BUT CAN FIND NO IMMEDIATE USE FOR IT.
2MFG    [OUR ISPER MIGHT MISS THIS PERIPHERAL SO THE SCHEDULER OBLIGINGLY   
2M^6    [SETS A BIT IN GMODE IN THE GOUT/GKEY IF THE DEVICE WAS OF THE REQUIRED 
2NDQ    [TYPE.  
2NYB    [THE REASON FOR THESE ACROBATICS IS THAT THE SCHEDULER WILL ONLY TRY
2PD2    [TO OBTAIN PERIPHERALS FOR THOSE REQUESTS WHICH INDICATE THAT A 
2PXL    [POTENTIALLY SUITABLE DEVICE WAS FREE AT ISPER TIME.
2QC=    XISPER  
2QWW          MHUNTW   3,GOUT,INFO  
2RBG          LDX   5  GMODE(3) 
2RW6          LDCT  6  #400                [ SET BIT 0 OR 1 DEPENDING ON WHEATHE
2S*Q          ANDX  6  GMODE(3) 
2STB          BPZ   6  OFL                 [ ONLINE OR NOT FOR THE ISPER
2T*2          SRA   6  1
2TSL          LDX   4  GOPTY(3) 
2W#=          SLL   4  3
2WRW          STO   4  GOPTY(3) 
2X?G    [WE MUST CREATE A KEY PAIR FOR ONLINE   
2XR6          LFKEY    ,3   
2Y=Q          BRN      WISP 
2YQB    OFL 
2^=2          LDX   0  GSIGN
2^PL          ORS   0  GMODE(3)            [ NO MAINFILE NAME BLOCK YET 
329=    WISP
32NW          ERX   6  GSIGN
338G          LDX   4  GOPTY(3) 
33N6          BZE   4  NMONFOP             [ J IF LISTING TO MONITORING FILE
347Q    [WE NOW REMEMBER INDEX KEY AND COMPLETE DELAILS OF GOUT/GKEY
34MB          LDX   0  GOUTKEY1(3)  
3572          STO   0  AWORK2(2)
35LL          LDX   0  GSIGN
366=          STO   0  GOUTYPE(3)   
36KW          STOZ     GMULTID(3)   
375G          STOZ     GCOUNT(3)
37K6          NAME     3,GOUT,GKEY  
384Q          LDX   0  PERISBIT(1)         [ SHOW ISPER IS BEING PERFORMED  
38JB          ORS   0  GMODE(3) 
3942          LFCHAIN  GOUT,GKEY           [ HANG BL6CK ON LISTFILE C8AIN.  
39HL          SRL   4  18                  [ PUT IN LAST 6 BITS FOR ISPER   
3=3=          ORX   4  6                   [ TO INDICATE WHETHER OL OR LF   
3=GW          STOZ     AWORK4(2)           [ SET UP SUB-KEY 
3?2G          ISPER    4,SBRKIN 
3?9R ...OLREJ   
3?F4 ...      BPZ   5  TREPLY            [J IF NOT ONLINE   
3?N* ...[ SPECIAL CODE FOR OLREJECT MACRO   
3?XL ...[COMMAND ERROR NOTAV OR WRNG REPLIES ROM ISPER  
3#6X ...[TO PREVENT ONLINE WAITING  
3#B8 ...      SEGENTRY K50LISTPARS  
3#KF ...      BRN      OLWRNG   
3#SQ ...      TESTREP2 NOTAV,NFRIG,WRNG,NFRIG   
3*43 ...OLWRNG  
3*?# ...      SEGENTRY K51LISTPARS  
3*GK ...      BRN      TREPLY   
3*PW ...      TESTREP2 WRNG,NFRIG   
3*^7 ...TREPLY  
3B8D ...      SEGENTRY K52LISTPARS  
3BCW          TESTREP2 OKAY,OK,NOTAV,OK1,WRNG,OK1   
3BLJ ...      BPZ   5  TREPLY2            [J IF NOT ONLINE  
3BT= ...      SEGENTRY K53LISTPARS  
3C3Y ...      BRN      TREPLY2  
3C=L ...      TESTREP2 NOPROP,NFRIG,PERMEXCL,NFRIG  
3CF# ...TREPLY2 
3CN2 ...      SEGENTRY K54LISTPARS  
3CWQ    [  SPECIAL CODE FOR LFDBAID MACRO !!
3DBB    [  WE ALLOW NOPROP OR PERMEXCL REPLIES FROM ISPER   
3DW2    [  ONLY IF LISTING TO A LOCAL DEVICE !! 
3F8C ...      SEGENTRY K60LISTPARS  
3FGS ...      BRN      NFRIG
3FT=          TESTREP2 NOPROP,TDBAID,PERMEXCL,TDBAID
3G#W          BRN      NFRIG
3GSG    TDBAID  
3H#6          HUNTW    3,APERI,APROPNOS 
3HRQ          BNG   3  OK1  
3J?B          LDX   0  CPROPNO(3)   
3JR2          BZE   0  OK1  
3K=L    NFRIG   
3KQ=          SEGENTRY K61LISTPARS  
3L9W    [A SUITABLE DEVICE DOES NOT EXIST. W5 MUST TIDY UP  AND REPORT ERROR.   
3LPG    [FIRST WE THROW A6AY THE GOUT/GKEY ON THE LISTFILE CHAIN.   
3M96          STOZ     AWORK4(2)           [ CREATE INDEX SUB-KEY   
3MNQ          STO   6  ACOMMUNE2(2) 
3N8B          LFHUNT   7,AWORK2(2),AWORK4(2)
3NN2          LDX   6  ACOMMUNE2(2) 
3P7L          LDX   7  GMODE(3) 
3PM=          FREECORE 3
3Q6W          ANDN  7  4                   [ CHECK FOR MONFILE  
3QLG          BZE   7  NOTMONL  
3R66          LDX   7  EXEC3(2)            [ PRESERVE REPLY 
3RKQ          LDX   5  ACOMMUNE1(2)        [ PRESERVE POSS ERRONEOUS PROP PTR   
3S5B          MONOUT   JLFMONFG            [ MONFILE LISTFILE FAILED
3SK2          STO   7  EXEC3(2)            [ RESET REPLY
3T4L          STO   5  ACOMMUNE1(2)        [ RESET ERRONEOUS PROP PTR   
3TJ=    NOTMONL 
3TLF ...      BNG   6  TREPLY3            [BRN IF NOT ONLINE
3TNN ...      SEGENTRY K62LISTPARS  
3TQX ...      BRN      TREPLY3  
3TT6 ...      TESTREP2 NOTAV,NAV,WRNG,WR
3TX* ...TREPLY3 
3T^J ...      SEGENTRY K63LISTPARS  
3W3W          TESTREP2 NOPER,NOP,XPROP,XP,PERMEXCL,PE,NOPROP,NOPR   
3WHG    [   
3X36    [ OKAY      =  DEVICE IS FREE   
3XGQ    [ NOTAV     =  DEVICE EXISTS BUT IS NOT AVAILABLE   
3Y2B    [ NOPER     =  DEVICE IS NOT ALLOCATED TO GEORGE
3YG2    [ XPROP     =  PROPERTY POINTED AT BY ACOM1 DOES NOT EXIST  
3Y^L    [ PERMEXCL  =  ALL DEVICES OF THIS TYPE HAVE UNSPECIFIED PERMANENT  
3^F=    [              EXCLUSIVE PROPERTIES 
3^YW    [ NOPROP    =  NO DEVICE HAS PERMANENT PROPERTIES REQUESTED 
4264    [ TWOMEEPS  =  TWO SIGNET PROPERTIES REQUESTED IN LF
42?=    [ XMEEP     =  MEEP PROPERTY NOT ALLOWED WITH CONSOLE PROPERTY  
42DG    [   
42HL    #UNS G3SIGNET   
42LQ    (   
42PW           TESTREP2  TWOMEEPS,XMEEPERR,XMEEP,XMECON 
42T2    )   
42Y6          TESTREP2 XCPROP,XC,MAXATT,XT,CPROPS,XLF   
43CQ    XGEO
43XB          GEOERR   1,PERIPHLF   
44C2    [   
44WL    [ XCPROP    =  THIS IS AN ONLINE REQUEST,AND THE PROPERTY POINTED   
45B=    [              AT BY ACOM1 IS A CONSOLE PROPERTY
45TW    [ MAXATT    =  TO MANY PROPERTIES SPECIFIED 
46*G    [ CPROPS    =  MORE THAN ONE OF THE PROPERTIES IS A CONSOLE PROPERTY
46T6    [ WRNG      =  ALL SUITABLE DEVICES ARE WRONGED 
47#Q          ZERRORY   
47SB    NOP 
48#2          SPARANOX AWORK3(2)           [ GET PERIPHERAL TYPE
48RL          ZERRORX  JPERNA   
48TT ...NAV 
48Y4 ...      SPARANOT 1
492? ...      ZERRORX JPERNCA   
494G ...WR  
496P ...      SPARANOT 1
498Y ...      ZERRORX JPERWR
49?=    PE  
49QW          ZERRORX  JPERMX   
4==G    XT  
4=Q6          ZERRORX  JPERR2   
4=S4    #UNS G3SIGNET   
4=W2    (   
4=XY    XMEEPERR
4=^W          ZERRORX  JTWOMP   
4?3S    XMECON  
4?5Q          ZERRORX  JMECON   
4?7N    )   
4?9Q    XLF 
4?PB          BPZ   6  XC                  [ ERROR IF ONLINE
4#92          ZERRORX  JPERR3   
4#NL    PARER   
4*8=          [        S/R FOR PICKING UP PROPERTY NAME 
4*MW          SBX   4  FX1  
4B7G          LDN   5  6
4BM6          MHUNT    3,CPB,CUNI   
4C6Q          ALTLEN   3,5,CPB,CUNI        [ ENSURE BIG ENOUGH  
4CLB          MHUNTW   1,APERI,APROPS   
4D62          MHUNT    3,CPB,CUNI   
4DKL          ADX   1  ACOMMUNE1(2) 
4F5=          LDN   2  ANUM(3)  
4FJW          LDX   5  0(1)                [ LOAD NO.OF CHARACTERS IN PROPERTY  
4G4G          ADN   5  4                   [ ADD 4 FOR COUNT
4GJ6          SMO      5
4H3Q          MVCH  1  0
4HHB          ADX   4  FX1  
4J32          EXIT  4  0
4JGL    XP  
4K2=          CALL  4  PARER
4KFW          ZERRORX  JPROPUNK 
4K^G    XC  
4LF6          BNG   6  XGEO                [ J IF NOT ONLINE
4LYQ          CALL  4  PARER
4MDB          ZERRORX  JPERR1   
4MY2    NOPR
4NCL          ZERRORX  JLFNPERM 
4PWG    [   
4QB6    [              **************************************** 
4QTQ    [   
4R*B    [SUCCESS
58H=    OK  
592W          ORX   5  PERFREBIT(1) 
59GG    OK1 
5=26          STO   5  AWORK1(2)
5=FQ          SLL   4  18   
5=^B          STO   4  AWORK3(2)           [ PRESERVE GOPTY 
5?F2          LDX   6  AWORK4(2)           [ NUMBER OF PARAMETERS LEFT  
5?YL          STOZ     AWORK4(2)           [ INDEX SUB-KEY  
5#D=          LFHUNT   7,AWORK2(2),AWORK4(2)
5#XW          LDX   0  PERISBIT(1)  
5*CG          ERS   0  GMODE(3) 
5*X6          LDX   0  PERFREBIT(1) 
5BBQ          ANDX  0  AWORK1(2)
5BWB          ORS   0  GMODE(3) 
5CB2          HUNTW    1,APERI,APROPNOS 
5CTL          BNG   1  NOPRO
5D*=          NAME     1,GOUT,INFO4 
5DSW          SMO      FX1  
5F#G          LDX   0  PROPBIT  
5FS6          ORS   0  AWORK1(2)
5G?Q          ORS   0  GMODE(3) 
5GRB          CHAIN    1,3  
5H?2          VFREE    CPB,CUNI 
5HQL    NOPRO   
5J==          LDX   1  FX1                 [ SET X1=FX1 
5JPW    [   
5K9G    [NEXT ANALYSE THE SETUP PARAMETER   
5KP6    [   
5L8Q          BZE   6  NOSETUP             [ NO MORE PARAMETERS 
5LNB          LDN   6  1
5M82          LDN   7  5
5MML    XAGAIN  
5N7=          SPARABEX 6,7,SETUP(1),,0  
5NLW          MHUNT    1,CPB,CUNI   
5P6G          LDX   4  ANUM(1)  
5PL6          BPZ   4  XOK                 [ J IF NOT NONEXISTSTENT 
5Q5Q          FREECORE 1
5QKB          SBN   7  3
5R52          LDN   6  1                   [ RESET X6   
5RJL          BPZ   7  XAGAIN              [ IF NOT'SETUP',TRY'SE'  
5S4=          BRN      NOSETUP             [ J NOT FOUND
5SHW    XOK 
5YDW          LDX   6  JPARNUM(1)   
5YYG          BZE   4  NOFILENAME   
5^D6          COMPACT                      [ REMOVES REDUNDANT FILENAME SPACES  
5^XQ          MHUNT    1,CPB,CUNI   
62CB          NAMETOP  1,FILE,FNAME 
62X2          BPZ   5  NOMSGE              [ J IF NOT ONLINE
63BL          MONOUT   JSEWT               [ WAITING FOR PRINTER TO BE LINED UP 
63W=    NOMSGE  
64*W          PARAMOVE 7,6                 [ GET SE PARAM WITHOUT SE IN CALAS   
64TG          LDX   0  SETUPBIT(1)         [ TO SHOW THERE IS   
65*6          ORS   0  AWORK1(2)           [ A SETUP FILE   
65SQ          LDCH  4  AWORK3(2)           [ OUTPUT PERI TYPE   
66#B          ANDN  4  2
66S2          BZE   4  WRONGPERIF          [ J NOT LP   
66T? ...#SKI G253&1 
66WJ ...(   
66XT ...      IF       BC,2,CXTUSER 
66^6 ...      THEN  
672C ...         FNORM    2 
673N ...         TESTRPN2 OK,SEND   
674^ ...         MHUNT    1,FILE,FNAME  
676= ...         NAMETOP  1,CPB,CUNI
677H ...         CALL  4  RU2   
678S ...      FI
67=5 ...)   
67?L          ACROSS   LISTFREE,1   
67R=    NOSETUP 
67YD ...#SKI G253&1 
685L ...      CALL  4  RU2                 [ CHANGE CPREFIX FOR TRAPS   
68=W          ACROSS   LISTFREE,2   
68QG    SBRKIN  
69=6          LFHUNT   7,AWORK2(2),AWORK4(2)
69PQ          FREECORE 3
6=9B    SCOM
6=P2          COMBRKIN  
6?8L    SEND
6?N=          ENDCOM
6?P9 ...#SKI G253&1 
6?Q8 ...(   
6?R7 ...RU2                                [ NO USER CONTEXT TIDY UP
6?S6 ...      IF       BC,2,CXTUSER 
6?T5 ...      THEN  
6?W4 ...         MHUNT    1,IUSER,JBL   
6?X3 ...         LDN   5  JUSER(1)            [ PROPER USERNAME 
6?Y2 ...         LDN   6  CPREFIX(2)
6?Y^ ...         MOVE  5  3 
6?^Y ...         FREECORE 1 
6#2X ...         MHUNT    1,FILE,FNAME  
6#3W ...         NAMETOP  1,CPB,CUNI          [ FOR REPERR  
6#4T ...      FI
6#5S ...      EXIT  4  0
6#6R ...)   
6#7W    [   
6#MG    [THIS DEALS WITH CASE WHERE THERE IS NO MULTIREEL FILE ALLOWED  
6*76    [I.E. WHERE THERE IS NO PERIPHERAL PARAMETER
6*LQ    [   
6B6B    NMONFOP 
6B?J ...#SKI G253&1 
6BDQ ...      CALL  4  RU2  
6BL2          LDN   4  4                   [ MASK FOR TESTRACE MACRO
6C5L          TESTRACE 4,NOMON  
6C73 ...#SKI G253&1 
6C8D ...(   
6C9T ...      LDBIT    4,ECVUSER
6C?= ...      ANDX  4  CONTEXT(2)   
6C#M ...      SETMODE  3,READ,LEAVE 
6CB4 ...      BNZ   4  USER1               [ SET 'TERMDIR' IN NO-USER CXT TO
6CCF ...      ADDMODE  3,TERMDIR           [  AVOID 'ASSIDIR' PRIV CHECK WHICH  
6CDW ...USER1 USEROPEX SCOM,3              [  BREAKS IF SUPERIOR IS :MASTER.
6CG? ...)   
6CHN ...#SKI G253&1$1   
6CK=          USEROPEN SCOM,READ,LEAVE  
6D4W          REPERR   OKAY1
6DJG          BRN      SEND                [ ENDCOM 
6F46    OKAY1   
6F48    [   
6F49          SMO      FX2  
6F4=          LDX   3  CONTEXT  
6F4?          BNG   3  OKAY2               [J IF SYSTEM ISSUED JOB  
6F4#    [ MUST CHECK FILE NOT A VITAL SYSTEM FILE OR MACRO  
6F4*          MHUNTW   3,FILE,ENT   
6F4B          JBC      OKAY2,3,BECARE   
6F4D          CLOSE 
6F4G          ZERRORX  ERWRONG  
6F4J          BRN      SEND 
6F4L    OKAY2   
6F4N ...#SKI G253&1 
6F4Q ...(   
6F4S ...      BNZ   4  USER2
6F4W ...      TREPN2   DIR,USER2
6F4Y ...      CLOSETOP  
6F52 ...      ZERRORX  ERWRONG             [ STOP NO-USER LF OF DIRECTORY   
6F54 ...USER2   
6F56 ...)   
6FHQ          MHUNTW   3,GOUT,INFO  
6MWW          MHUNTW   1,FILE,ENT   
6N4Y          IF       +ETM(1),NZ          [ NOT AMORPHOUS FILE 
6N?2          THEN  
6NF4             BS       3,BLFBASIC
6NF# ...#SKI G502&1 
6NFJ ...(   
6NFS ...#     THIS INSERTION GIVES DEFAULT MODES OF ONLINE MOP LISTING FOR THE  
6NG4 ...#     FILE TYPES  GRAPHIC,  NORMAL,  ALLCHAR.   THESE ARE OVERRIDDEN BY 
6NG# ...#     USE OF ANY OF THE PARAMETERS  'GRAPHIC', 'NORMAL', 'ALLCHAR', 
6NGJ ...#     'SHIF', 'GR', 'PICT'  IN THE LISTFILE COMMAND.
6NGS ...#   
6NH4 ...         IF       MBAC,3,BLFXTRASHIF,BLFXTRAGR,BLFSPECIAL   
6NH# ...            LDN   4  #10
6NHJ ...            ANDX  4  ETM(1) 
6NHS ...         AND      4,ZE  
6NJ4 ...         THEN                         [ NOT GRAPHIC 
6NJ# ...            LDN   4  #20
6NJJ ...            ANDX  4  ETM(1) 
6NJS ...            IF       4,ZE   
6NK4 ...            THEN                         [ NORMAL   
6NK# ...               BS       3,BLFXTRASHIF   
6NKJ ...            ELSE                         [ ALLCHAR  
6NKS ...               MBS      3,BLFXTRASHIF,BLFXTRANOPA   
6NL4 ...            FI  
6NL# ...         FI 
6NLJ ...)   
6NM6          FI
6NT8          FREECORE 1
6P3=          IF       EITHER,+GFLI(3),NZ  [ "FROM" SELECTION   
6P9#          OR       BS,3,BLFTOCTEXT     [ "TO" CONTEXT SELECTION 
6PCB          THEN  
6PKD             DOWN     LISTRING,2
6PRG          ELSE  
6P^J             STEP   
6Q7L             IF       3,ZE                [ FILE EMPTY  
6Q*N             THEN   
6QHQ                DOWN     LISTRING,3 
6QPS             FI 
6QXW          FI
6R5Y          ACROSS   LISTMOP,1
6R#=
6RRW    [   
6S?G    [   
6SR6    WRONGPERIF  
6T=Q          ZERRORX  HSETUP   
6TQB    WRONGFN 
6W=2    XFORMAT 
6WPL          ZERRORX  APFERR   
6X9=    NOFILENAME  
6XNW          LDX   1  FX1  
6Y8G          BZE   3  NOPROPERTY   
6YN6          LDX   2  XJFNAME(1)   
6^7Q          BRN      XCOMR
6^MB    NOPROPERTY  
7272          LDX   2  XJPROPNA(1)  
72LL    XCOMR   
736=          LDX   1  XJPARMIS(1)  
73KW          COMERRX  1,2  
745G    NOMON   
74K6          MONOUT   JMTRACE1 
754Q          BRN      SEND 
75JB    XJFNAME 
7642          +JFNAME   
76HL    XJPROPNA
773=          +JPROPNA  
77GW    XJPARMIS
782G          +JPARMIS  
78G6    [   
78^Q          ZERRORY   
79FB    [THIS ENTRY POINT IS FROM MACROS SAR AND DOES MOST OF THE WORK FOR THE  
79^2    [PROPERTY MACRO 
7=DL    [ %A  LABEL TO JUMP TO IF THE PARAMETER IS NULL OR NONEXISTENT  
7=Y=    [ %B  NO. OF THE FIRST PARAMETER NOT TO BE CHECKED FOR PR OR PROPERTY   
7?CW    [ %C  NO. OF THE 2ND   PARAMETER NOT TO BE CHECKED FOR PR OR PROPERTY   
7?XG    [ ALL ACCUMULATORS ARE OVERWRITTEN  
7#C6    [ A CPB/CUNI IS LEFT AS AFTER A SPARABEG ON PR OR PROPERTY  
7#WQ    [   
7*BB    ZFRELINK
7*W2          LDX   0  AWORK1(2)
7B*L          BZE   0  ZNFR 
7BT=          FREELINK  
7C#W    ZNFR
7CSG          EXIT  7  0
7D#6    ZPROPERTY   
7DRQ          8HPROPERTY
7F?B    POINT4  
7FR2          STO   1  AWORK1(2)
7G=L    PRTEST  
7GQ=          LDN   6  1
7H9W          LDN   7  8
7HPG    ZAGAIN  
7J96          SPARABEX 6,7,ZPROPERTY(1)    [ ANALYSE PR OR PROPERTY 
7JNQ          MHUNT    1,CPB,CUNI   
7K8B          LDX   3  ANUM(1)  
7KN2          BNG   3  ZNONE
7L7L          BNZ   3  ZOK                 [ J IF PRESENT   
7LM=    ZNONE   
7M6W          FREECORE 1
7MLG          SRL   7  2                   [ X7=0 OR 2  
7N66          LDN   6  1                   [ RESET X6   
7NKQ          BNZ   7  ZAGAIN   
7P5B          LDX   0  AWORK1(2)           [ TEST IF WE HAVE COME HERE FROM 
7PK2          BZE   0  XISPER              [ WITHIN THIS SEGMENT
7Q4L          UP
7QJ=    ZOK 
7R3W          LDX   0  JPARNUM(1)   
7RHG          SBX   0  4
7S36          BZE   0  ZNOT 
7SGQ          SBX   0  5
7T2B    ZNOT
7TG2          BNZ   0  ZOK1 
7T^L          ADN   6  1
7WF=          FREECORE 1
7WYW          BRN      ZAGAIN   
7XDG    ZEND1   
7XY6          CALL  7  ZFRELINK 
7YCQ          ZERRORX  JNLFNF   
83T6    ZZ  
84#Q          CALL  7  ZFRELINK 
84SB          ZERRORX  APFERR   
84WK    #UNS  ANSTOOMANY
84YS    (   
8533    XTOOMANY
855=          CALL  7  ZFRELINK 
857F          ZERRORX    JMAXPAR
859N    )   
85#2    ZOK1
85RL          BZE   2  ZZ   
86?=    [ THE FOLLOWING PARALYSE USES JPARNUM OF /CUNI, WHICH   
86QW    [ HOLDS THE PARAMETER NUMBER OF THE PARENT PARAMETER IN 
87=G    [ THE CPB/CALAS. FOR THIS REASON, MACROS 'PROPERTY' AND 
87Q6    [ 'PROPUNAC' MAY ONLY BE USED AT ANALYSIS LEVEL ZERO.   
889Q          PARALYSE #26,,JPARNUM(1)     [ SPLIT AT & 
88BY    #UNS  ANSTOOMANY
88J6          TESTREP2  TOOMANY,XTOOMANY
88PB          PARANUMB 6
8992          LDX   3  6
89NL          SLL   3  2
8=8=          ADN   3  2                   [ BLOCK LENGTH   
8=MW          SETUPCORE 3,2,APERI,APROPS   [ SET UP APERI APROPS FOR ISPER  
8?7G          STO   3  A1+FRH(2)           [ STORE FR+1 
8?M6          STO   6  A1+1(2)             [ STORE PROPERTY COUNT   
8#6Q          SPARAPAS                     [ SET UP POINTER FOR NEXT SPARAPAS   
8#LB          MFREE    CPB,CUNI 
8*62          LDX   0  AWORK1(2)
8*KL          SBN   0  1
8B5=          BZE   0  ZSPAR               [ IF NOT PROPUNAC THEN   
8BJW          LDX   4  ZPROPERTY(1)        [ X45 := 'PROPERTY'  
8C4G          LDX   5  1+ZPROPERTY(1)      [ (OTHERWISE ALREADY KEYSTRING)  
8CJ6    ZSPAR   
8D3Q                                       [ FI 
8DHB          SPARABEG 1,7,4
8F32          LDN   5  A1+2                [ START OF PROPERTY RECORD   
8FGL          BRN      ZFIRST   
8G2=    ZNEXT   
8GFW          SPARAPAS                     [ PASS 1ST PROPERTY  
8G^G    ZFIRST  
8HF6          MHUNT    3,CPB,CUNI   
8HYQ          CHEKLFN2 ZZ,ZEND1,3   
8JDB          MHUNTW   1,APERI,APROPS   
8JY2          LDN   4  APARA(3) 
8KCL          ADN   5  0(1) 
8KX=          LDEX  2  ANUM(3)  
8LBW          SMO      5
8LWG          STO   2  0                   [ STORE CHARACTER COUNT  
8MB6          ADN   5  1
8MTQ          ADN   2  3
8N*B          SRL   2  2                   [ NO OF WORDS TO MOVE
8NT2          MOVE  4  0(2)                [ MOVE PROPERTY TO BLOCK 
8P#L          ADX   5  2
8PS=          ERN   2  3                   [ NO OF WORDS TO SPACE FILL  
8Q?W          BZE   2  ZOK4 
8QRG          LDX   0  ACES 
8R?6    ZSF 
8RQQ          SMO      5
8S=B          STO   0  0                   [ STORE SPACES   
8SQ2          ADN   5  1
8T9L          BCT   2  ZSF  
8TP=    ZOK4
8W8W    [   
8WNG    [ THE FOLLOWING SECTION CHECKS WHETHER THE PROPERTY NAME JUST ADDED 
8X86    [ ALREADY EXISTS IN THE APROPS BLOCK (I.E. WAS DUPLICATED IN THE
8XMQ    [ PARAMETER). IF IT DOES, THEN THE NAME IS FORGOTTEN AND THE
8Y7B    [ RELEVANT POINTERS AND HEADERS DECREMENTED 
8YM2    [   
8^6L    [ ACCUMULATORS 0,2,3,4 DESTROYED IN THIS SECTION
8^L=    [   
925W          LDX   4  1
92KG          FREECORE 3
9356          LDX   1  4
93JQ          LDN   2  A1+2(1)             [ X2(CURRENT CELL) -> FIRST CELL 
944B    UNTILJUST   
94J2          LDX   3  5                   [ X3 -> CELL JUST COPIED OVER
953L          SBN   3  4
95H=          BXE   2  3,UNIQUECELL        [ UNTIL CURRENT IS JUSTCOPIED DO 
962W          LDN   4  4
96GG    TINYLOOP
9726          LDX   0  0(2) 
97FQ          BXU   0  0(3),THESEDIFF      [ IF CELLS EQUAL 
97^B          ADN   2  1
98F2          ADN   3  1
98YL          BCT   4  TINYLOOP            [ THEN   
99D=          LDN   0  4
99XW          SBS   0  A1(1)               [ REDUCE HDDR WD 
9=CG          LDN   0  1
9=X6          SBS   0  A1+1(1)             [ REDUCE PROP COUNT WD   
9?BQ          SBN   5  4                   [ SET WRITE PTR BACK ONE CELL
9?WB          BRN      UNIQUECELL          [ GOTO UNIQUECELL
9#B2    THESEDIFF   
9#TL                                       [ FI 
9**=          ADX   2  4
9*SW          BRN      UNTILJUST           [ REPEAT 
9B#G    UNIQUECELL  
9BS6    [   
9C?Q    [ END OF DUPLICATION CHECK  
9CRB    [   
9D?2          SBN   5  0(1) 
9DQL          BCT   6  ZNEXT
9F==          PARAFREE  
9FPW          LDX   0  AWORK1(2)           [ TEST IF WE HAVE COME HERE FROM 
9G9G          BZE   0  XISPER              [ WITHIN THIS SEGMENT
9GP6          SBN   0  1
9H8Q          BZE   0  ZUP2                [ IF FROM K4 (PROPERTY) ...  
9HNB          UPPLUS   1                   [ THEN AVOID BRN %A  
9J82    ZUP2
9JML                                       [ ELSE FROM K5 (PROPUNAC)
9K7=          UPPLUS   2                   [ WHEN ALSO MUST AVOID BRN %B
9KLW    [   
9L6G    [ ****************************************************************  
9LL6    [   
9M5Q    [     W   W  WWWWW  
9MKB    [     W  W   W  
9N52    [     W W    WWWW   
9NJL    [     WW        WW  
9P4=    [     W W        W  
9PHW    [     W  W      WW  
9Q3G    [     W   W  WWWW   
9QH6    [   
9R2Q    [   
9RGB    [ MACRO 'PROPUNAC' FINDS THE FIRST UNACCESSED PARAMETER COMMENCING  
9S22    [ WITH A SPECIFIED STRING. IF NONE GIVEN,TRIES FOR  
9SFL    [ 'PROPERTY', OR IF THERE ISN'T ONE, THE FIRST COMMENCING 'PR', 
9S^=    [   
9TDW    [ %A - LABEL TO GOTO IF PARAMETER IS ABSENT 
9TYG    [ %B - LABEL TO GOTO IF PARAMETER IS NULL   
9WD6    [ %C - CHAR CT OF KEYSTRING (OPTIONAL)  
9WXQ    [ %D - KEYSTRING IF %C GIVEN (DEFAULT 1+%C) 
9XCB    [   
9XX2    [  BLOCKS SET UP :  
9YBL    [     CPB/CUNI AS AFTER SPARABEG ON KEYSTRING   
9YW=    [     (IF PARAMETER EXISTS) 
9^*W    [     APERI/APROPS CONTAINING PROPERTY NAMES
9^TG    [     (IF NON-NULL PARAM FOUND) 
=2*6    [   
=2SQ    [   
=3#B    POINT5  
=3S2          LDN   7  1
=4?L          STO   7  AWORK1(2)           [ TO CONTROL THE EXIT AFTER ZOK4 
=4R=          LDN   6  0                   [ X6=0 => KEYSTRING PARAM
=5=W          LDX   7  ACOMMUNE1(2) 
=5QG          BZE   7  STDEFAULT           [ IF KEY WAS GIVEN THEN  
=6=6          LDX   4  ACOMMUNE2(2) 
=6PQ          LDX   5  ACOMMUNE3(2)        [ X45 := KEY 
=79B          BRN      NXTPROPTEST         [ ELSE   
=7P2    STDEFAULT   
=88L          LDN   6  1                   [ X6 => NO KEYSTRING 
=8N=          LDX   4  ZPROPERTY(1) 
=97W          LDX   5  1+ZPROPERTY(1)      [ X45 := 'PROPERTY'  
=9MG          LDN   7  8
==76    NXTPROPTEST 
==LQ          SPARABEG 1,7,4,,0 
=?6B          MHUNT    1,CPB,CUNI   
=?L2          LDX   3  ANUM(1)  
=#5L          BNG   3  ZNONE1              [ IF PARAM FOUND THEN
=#K=          BNZ   3  ZOK1                [ IF NOT NULL, SET UP APROPS 
=*4W          UPPLUS   1                   [ ELSE BRN %B - NULL PARAM   
=*JG    ZNONE1  
=B46                                       [ FI 
=BHQ          FREECORE 1
=C3B          SRL   7  2                   [ ELSE   
=CH2          BZE   6  STK5UP              [ (NO RETRY IF KEY SPECIFIED)
=D2L          BNZ   7  NXTPROPTEST         [ IF LOOKED FOR 'PROPERTY', TRY 'PR' 
=DG=    STK5UP  
=D^W          UP                           [ ELSE BRN %A - NO PARAM FI  
=FFG                                       [ FI 
=F^6
=GDQ    [   
=GYB    [***********************************************************************
=HD2    POINT2  
=HXL    [THIS IS THE ENTRY POINT FROM LISTFILE  
=JC=    [WE CHECK FOR ANY PROPERTY PARAMETERS   
=JD^ ...#SKI G253&1 
=JGN ...(   
=JJC ...      LDX   5  AWORK2(2)           [ NO OF PARAMS BEFORE FILENAME   
=JL6 ...      BZE   5  RU1                 [ J IF ORDINARY LISTFILE 
=JMT ...      LDX   4  GSIGN
=JPJ ...      ORS   4  ALFCNT(2)           [ MARKER NOT TO COUNT THIS LISTING   
=JR? ...RU1 
=JT2 ...)   
=JWW          LDX   0  AWORK4(2)
=KBG          BZE   0  XISPER              [ J IF NO MORE PARAMETERS
=KW6          MHUNTW   3,GOUT,INFO  
=L5Y ...#SKI G253&1$1   
=L*Q          LDN   5  0
=LTB          LDN   4  1
=M*2          STOZ     AWORK1(2)
=MSL          BRN      PRTEST   
=N#=    [***********************************************************************
=NRW    POINT3  
=P?G    [THIS ENTRY POINT IMPLEMENTS THE MACRO LFMULT.  
=PR6    [AND SETS UP GWAKECOUNT AND GMULTID.
=Q=Q    [   
=QQB          MHUNTW   1,GOUT,INFO  
=R=2          LFHUNT   7,GOUTKEY1(1),GOUTKEY2(1)
=RPL          SMO      FX1  
=S9=          LDX   0  SETUPBIT 
=SNW          ANDX  0  GMODE(3) 
=T8G          BZE   0  NOSETUPM            [ J IF NO SETUP FILE 
=TN6          SMO      FX1  
=W7Q          LDX   0  SMULTSETBIT  
=WMB          ORS   0  GMODE(3)            [ TO PREVENT THAWING AT LISTNEXT 
=X72    NOSETUPM
=XLL          SMO      FX1  
=Y6=          LDX   0  SMULTFILE
=YKW          ORS   0  GMODE(3)            [ SET B13 TO IND. MF 
=^5G          LDX   0  ACOMMUNE1(2) 
=^K6          STO   0  GWAKECOUNT(3)
?24Q          LDX   0  ACOMMUNE2(2) 
?2JB          STO   0  GMULTID(3)   
?342    [   
?3HL          MHUNT    1,FILE,FABSNB       [ UPDATE GEN. NO. IN FABSNB  
?43=          ADX   1  HDREC(1)            [ SO THAT IT NOW NAMES THE   
?4GW          SBN   1  2                   [ FIRST COMPONENT AND NOT
?52G          LDN   0  1                   [ THE S.D.F. 
?5G6          ADS   0  HDREC(1) 
?5^Q          CLOSETOP                     [ CLOSE DIRECTORY
?6FB          UP
?6^2    #END
^^^^ ...610755360003
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1