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