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: LISTPARS867)}} ====== LISTPARS867 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDMODE|ADDMODE]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:AND|AND]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHEKLFN2|CHEKLFN2]], [[george:macro:CLOSE|CLOSE]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:COMPACT|COMPACT]], [[george:macro:DOWN|DOWN]], [[george:macro:ELSE|ELSE]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FI|FI]], [[george:macro:FNORM|FNORM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FREELINK|FREELINK]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:IF|IF]], [[george:macro:ISPER|ISPER]], [[george:macro:JBC|JBC]], [[george:macro:LDBIT|LDBIT]], [[george:macro:LFCHAIN|LFCHAIN]], [[george:macro:LFHUNT|LFHUNT]], [[george:macro:LFKEY|LFKEY]], [[george:macro:MBS|MBS]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OR|OR]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARALYSE|PARALYSE]], [[george:macro:PARAMOVE|PARAMOVE]], [[george:macro:PARANUMB|PARANUMB]], [[george:macro:REPERR|REPERR]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETENTRY|SETENTRY]], [[george:macro:SETMODE|SETMODE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SPARABEG|SPARABEG]], [[george:macro:SPARABEX|SPARABEX]], [[george:macro:SPARANOT|SPARANOT]], [[george:macro:SPARANOX|SPARANOX]], [[george:macro:SPARAPAS|SPARAPAS]], [[george:macro:STEP|STEP]], [[george:macro:TESTRACE|TESTRACE]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:THEN|THEN]], [[george:macro:TREPN2|TREPN2]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:USEROPEN|USEROPEN]], [[george:macro:USEROPEX|USEROPEX]], [[george:macro:VFREE|VFREE]], [[george:macro:ZERRORX|ZERRORX]], [[george:macro:ZERRORY|ZERRORY]] <code - 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 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In