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: IDFCANC867)}} ====== IDFCANC867 ====== (George Source) **Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BXE|BXE]], [[george:macro:CLOSE|CLOSE]], [[george:macro:ERRORX|ERRORX]], [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTMISB|HUNTMISB]], [[george:macro:IDFOPEN|IDFOPEN]], [[george:macro:IDFWRITE|IDFWRITE]], [[george:macro:LFCCAT|LFCCAT]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEALL|MFREEALL]], [[george:macro:MGETCELL|MGETCELL]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MSEARCH|MSEARCH]], [[george:macro:MXB|MXB]], [[george:macro:OPEN|OPEN]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:PARSORT|PARSORT]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]] <code - IDFCANC867.txt>22FL #SEG IDFCANC8 [G CONSTANTINIDES 22PD ...# COPYRIGHT INTERNATIONAL COMPUTERS 1982 22^= #OPT K0IDFCANC=0 23DW #LIS K0IDFCANC>K0ALLGEO>K0GREATGEO>K0COMMAND>K0IDF 23YG 8HIDFCANC8 24D6 # ENTRY POINTS 24XQ SEGENTRY K1IDFCANC,Z1IDFCANC 25CB SEGENTRY K2IDFCANC,Z2IDFCANC 25X2 SEGENTRY K3IDFCANC,Z3IDFCANC 26#J ...# 26BL MENDAREA 50,K100IDFCANC 26W= XILLUN +ILLUN [ILLEGAL UNIT NO 27*W XILLINE +ILLINE [ILLEGAL LINE NO 27TG XILLIDE +ILLIDE [ILLEGAL IDENTIFIER 28*6 XINTEM +INTERM [7020 TERM/INTERFACE NOT IN IDF 28SQ # 29#B # THIS IS EXACTLY THE SAME IN IDFASAT-SEE IDFASAT FOR COMMENTS 29S2 PARSORT [CPAR/JSCE MUST ALREADY EXIST 2=?L [AND IT MUST DESCRIBE AN IPB,UX,MPX 2=R= MHUNTW 3,CPAR,JSCE 2?=W LDX 1 JSCEP(3) [DEVICE LIST POINTER 2?QG LGEOG 1,6 2#=6 LDX 4 JSCEB(3) 2#PQ BNG 4 XREMDEV 2*9B LDN 5 0 2*P2 BRN XFINI 2B8L XREMDEV 2BN= SLL 4 1 2C7W LDX 5 JSCEA(3) 2CMG BPZ 4 XONUXMX 2D76 LDCT 0 #400 2DLQ ORX 6 0 2F6B ANDN 5 #7777 2FL2 BRN XFINI 2G5L XONUXMX 2GK= SLL 5 6 2H4W BZE 5 XNOID 2HJG LDCT 0 #200 2J46 ORX 6 0 2JHQ XNOID 2K3B SRL 4 10 2KH2 DCH 4 5 2L2L XFINI STO 5 ACOMMUNE4(2) 2LG= STO 6 ACOMMUNE3(2) 2L^W LDX 1 FX1 2MFG EXIT 7 0 2M^6 OPEN SBX 6 FX1 [OPEN IDF 2N8Y ... IDFOPEN XBRK 2NYB ADX 6 FX1 2PD2 EXIT 6 0 2PMS ...XBRK UP 2PXL # 2QC= WRITECLOSE 2QWW SBX 7 FX1 2RBG IDFWRITE 2RW6 BRN WR 2S*Q ZCLOSE 2STB SBX 7 FX1 2T*2 MFREEALL FILE,FRRB 2TSL WR CLOSE 2W#= ADX 7 FX1 2WRW EXIT 7 0 2X?G # 2XR6 SELL SBX 7 FX1 2Y=Q MGETCELL 2,3 2YQB ADX 7 FX1 2^=2 EXIT 7 0 2^PL # 329= SFREE SBX 6 FX1 [FREE CELL ONTO FREE CHAIN 32NW MFREECEL 2,3 338G ADX 6 FX1 33N6 EXIT 6 0 347Q # 34MB SEARCH 3572 SBX 6 FX1 35LL MSEARCH 2,3,4 366= SMO FX2 36KW LDX 0 ACOMMUNE1 375G ADX 6 FX1 37K6 EXIT 6 0 384Q # 38JB RECFIND 3942 LDX 2 FX2 39HL REC HUNT2 2,FILE,FRRB 3=3= TXU 6 BRECNO+A1(2) 3=GW BCS REC 3?2G ADN 2 A1 3?G6 EXIT 7 0 3?^Q # 3#FB YREC BPZ 3 SAME [FIND CELL X3 POINTS TO 3#^2 YREC1 SBX 6 FX1 3*DL LDX 0 3 3*Y= SRL 0 9 3BCW ANDN 0 #7777 3BXG LDX 2 FX2 3CC6 STO 0 ACOMMUNE3(2) 3CWQ MXB 2 3DBB ADX 6 FX1 3DW2 SAME ANDN 3 #777 3F*L EXIT 6 0 3FT= # 3G#W TRACE LDX 4 ACOMMUNE3(2) [UNIT NO 3GSG LDX 5 ACOMMUNE4(2) [LINE/IDENTIFIER NO 3H#6 SBX 7 FX1 3HRQ LDX 0 ACOMMUNE2(2) 3J?B STO 0 AWORK2(2) [KEEP PROPERTY PARAMETER 3JR2 CALL 6 OPEN 3K=L BNG 4 T7900 [J.IF 7900 3KQ= LDN 3 BUNIT 3L9W CALL 6 SEARCH 3LPG BZE 0 UINV [J.IF NOT FOUND-INVALID UNIT 3M96 LDN 3 BLINE(3) 3MNQ SLL 4 1 [MOVE UP B1(SET IF 7020 INFO. IN X5) 3N8B ANDX 4 GSIGN [AND ONLY KEEP B1 3NN2 DCH 5 4 [LINE NO INTO X4 3P7L CALL 6 SEARCH 3PM= BZE 0 MINV [J.IF NOT FOUND-INVALID LINE 3Q6W BPZ 4 TR1 [J.IF NO IDENTIFIER 3QLG SMO 2 [NOW KEEP X4 AS MARKER 3R66 LDX 3 BLINE(3) 3RKQ TR3 BZE 3 TINV [J.FOR INVALID TERMINAL 3S5B CALL 6 YREC 3SK2 ADX 3 2 3T4L LDX 0 BNO(3) [IDENTIFIER/POLLING ADDRESS 3TJ= ERX 0 5 3W3W ANDX 0 HALFTOP [ONLY IDENTIFIER SIGNIFICANT 3WHG BZE 0 TR2 [J.IF RIGHT IDENTIFIER 3X36 LDX 3 0(3) 3XGQ BRN TR3 3Y2B TR2 ANDN 5 #7700 [MASK OUT INTERFACE NO 3YG2 BZE 5 TR11 [J.IF INTERFACE NOT REQUIRED 3Y^L SRL 5 6 [INTERFACE NO INTO CHAR3 3^F= TR4 LDX 0 BTYPE(3) 3^YW LDCH 6 0 42DG ERX 6 5 42Y6 BZE 6 TR11 [J.IF CORRECT INTERFACE 43CQ LDX 0 BTYPE+1(3) 43XB LDCH 6 0 [CHECK POSSIBLE CONSOLE INTERFACE 44C2 ERX 6 5 44WL BZE 6 TR11 [J.IF CORRECT INTERFACE 45B= LDX 0 BTYPE+2(3) 45TW BNG 0 TINV [J.FOR INVALID TERMINAL INTERFACE 46*G LDX 3 0(3) 46T6 BNZ 3 TR5 47#Q TGEO GEOERR 1,IDF7020 [SOMETHING UP WITH 7020'S IN IDF 47SB TR5 CALL 6 YREC 48#2 ADX 3 2 48RL BRN TR4 49?= TR11 SBX 3 2 49QW TR1 ADX 7 FX1 4==G EXIT 7 0 [ON EXIT X4 NEG IF 7020 IDENTIFIER EXISTED 4=Q6 T7900 LDN 3 BIPB 4?9Q CALL 6 SEARCH 4?PB BZE 0 UINV [J.FOR INVALID UNIT 4#92 LDN 3 BLINE(3) 4#NL LDX 4 5 4*8= CALL 6 SEARCH 4*MW BZE 0 RINV [J.FOR INVALID IDENTIFIER 4B7G BRN TR1 4BM6 # 4C6Q # ERRORS!!!! 4CLB UINV LDX 3 XILLUN(1) [ILLEGAL UNIT 4D62 ONVMA ANDN 4 #7777 4DKL ONUM OUTNUM 4,0 4F5= YERC CALL 7 ZCLOSE 4FJW ERRORX 3 4FSN ... UPPLUS 1 4GJ6 MINV LDX 3 XILLINE(1) [ILLEGAL LINE 4H3Q BRN ONVMA 4HHB RINV LDX 3 XILLIDE(1) [ILLEGAL IDENTIFIER 4J32 BRN ONVMA 4JGL TINV LDX 3 XINTEM(1) [7020 TERM/INTERFACE NOT IN IDF 4K2= BRN YERC 4KFW # 4K^G # 4LF6 ZACAN1 [PRE-ZACAN ENTRY:USE X4 TO SET UP X3 & X2 WITHOUT CO-ORD. 4LYQ LDX 3 4 4MDB CALL 6 YREC1 4MY2 ZACAN [ROUTINE TO CANCEL ASSOCIATES(IF X7=0) OR ATTRIBUTES(IF- 4NCL [X7=1.X2 & X3 POINT TO PARENT CELL:X4=IDF PTR TO PARENT 4NX= SBX 5 FX1 4PBW ADX 3 2 4PWG SMO 7 4QB6 LDX 3 BASS(3) [PICK UP ASS/ATT IDF POINTER 4QTQ BZE 3 ZC1 [J.NOTHING TO DO 4R*B CALL 6 YREC [FIND ASS/ATT CELL 4RT2 ADX 3 2 4S#L LDX 2 3 [EXTRA COPY OF ABSOLUTE POINTER 4SS= SMO FX2 4T?W LDX 6 AWORK2 [PICK UP PROPERTY NUMBER PARAMETER 4TRG BNZ 7 ZCATT [J.FOR ATT.CANCEL 4W?6 LDN 1 ASSMAX 4WQQ ZC3 ADN 3 2 [LOOK FOR PROPERTY THIS ASSOCIATION- 4X=B LDX 0 1(3) [CONCERNS 4XQ2 ERX 0 6 4Y9L ANDX 0 BITS22LS 4YP= BZE 0 ZC2 [J.IF PROPERTY FOUND 4^8W ZC11 BCT 1 ZC3 [OTHERWISE J.FOR NEXT PERHAPS 4^NG ZC1 ADX 5 FX1 [EXIT:REQUIRED ASS/ATT NOT FOUND 5286 EXIT 5 0 52MQ # 537B ZC2 SMO FX2 [REQUIRED ASSOC.FOUND PERHAPS:CLEAR!! 53M2 LDX 0 AWORK1 [PICK UP BIT WORD 546L ANDX 0 0(3) [MAKE SURE COMMANDS MATCH 54L= ANDX 0 HALFTOP 555W BZE 0 ZC11 [J.IF COMMANDS DIFFER 55KG SMO FX2 5656 LDX 0 AWORK1 [PICK UP BIT WORD AGAIN 56JQ ANDN 0 #7777 574B ORS 0 0(3) [MAKE SURE REQUIRED BITS SET AND SO- 57J2 ERS 0 0(3) [CLEAR OUT REQUIRED BITS 583L LDX 0 0(3) [PICK UP"ASSOC"WORD 58H= ANDN 0 #7777 [ONLY LOOK AT DEVICES-COMMAND IS SET! 592W BNZ 0 ZC4 [& J.IF SOME ASSOCS STILL EXIST:DONE! 59GG STOZ 0(3) [TO CLEAR OUT COMMAND BIT 5=26 ZC5 STOZ 1(3) [CLEAR 5=FQ ZC10 LDX 0 BNO(2) 5=^B SBN 0 1 5?F2 STO 0 BNO(2) [ADJUST COUNT 5?YL BNZ 0 ZC4 [& J.IF STILL SOME ASS/ATT LEFT 5#D= [OTHERWISE- 5#XW LDX 3 4 [FREE ASS/ATT CELL 5*CG CALL 6 YREC1 5*X6 SMO 7 5BBQ ADN 3 BASS 5BWB CALL 6 SFREE 5CB2 ZC4 ADX 5 FX1 5CTL EXIT 5 1 5D*= ZCATT 5DSW ADN 3 1 [ADJUST X3 FOR CONVENIENCE OF LOOP 5F#G BPZ 6 ZC6 [J.IF NON-CONSOLE PROP. 5FS6 ERX 6 1(3) [OTHERWISE INVESTIGATE CONSOLE PROP. 5G?Q ANDX 6 BITS22LS 5GRB BNZ 6 ZC1 [J.IF THIS CONSOLE PROP NOT ATT. 5H?2 BRN ZC5 [OTHERWISE GO & CANCEL ATTRIBUTION 5HQL ZC6 LDN 1 ATTMAX [ATTMAX<6 I HOPE! 5J== ZC7 ADN 3 1 5JPW LDX 0 1(3) [PICK UP NO.OF ATTRIBUTED PROPERTY 5K9G ERX 0 6 5KP6 ANDX 0 BITS22LS 5L8Q BZE 0 ZC8 [J.IF SAME AS REQUIRED NO. 5LNB BCT 1 ZC7 [J.FOR NEXT ATTRIBUTION 5M82 BRN ZC1 [EXIT-ATTRIBUTION NOT FOUND 5MML ZC8 SMO 1 [NOW MOVE 5N7= LDX 0 0(3) 5NLW BNZ 0 ZC9 5P6G BCT 1 ZC8 5PL6 GEOERR 1,ZEROPROP [ERROR CANCEL OF ZERO PROP.NO 5Q5Q ZC9 STO 0 1(3) 5QKB SMO 1 5R52 STOZ 0(3) 5RJL BRN ZC10 5S4= # 5SHW # 5T3G # 5TH6 Z1IDFCANC [CANCEL PROPERTY ENTRY 5W2Q LDX 7 ACOMMUNE2(2) 5WGB STO 7 AWORK2(2) [STORE PROPERTY NO 5X22 NGN 0 1 5XFL STO 0 AWORK1(2) [ASSOCIATES WORD FOR CANCELLING 5X^= CALL 6 OPEN 5YDW BPZ 7 YP1 [J.IF NOT CONSOLE PROP 5YYG LDN 5 BEXOT [X5 INITIALIZED:NEEDED FOR FREEING- 5^D6 LDX 4 BEXOT(2) [CONSOLE PROP.CELL 5^XQ BZE 4 YGEO 62CB YP2 LDX 3 4 62X2 CALL 6 YREC [FIND CONSOLE PROP CELL 63BL ADX 3 2 63W= LDX 0 BNO(3) 64*W ERX 0 7 [COMPARE PROP.NOS. 64TG ANDX 0 BITS22LS 65*6 BZE 0 YP3 [AND J.IF SAME 65SQ LDX 5 4 [OTHERWISE UPDATE X5 66#B LDX 4 0(3) [UPDATE X4 66S2 BNZ 4 YP2 [AND J.FOR NEXT CONSOLE PROP. 67?L YGEO GEOERR 1,CLUSTERC 67?^ ...# 67## ...# ENTRY IF PROPERTY NO. NOT FOUND IN APERI-CONSOLE BLOCK OR BLOCK 67#M ...# DOES NOT EXIST. 67*2 ...# 67** ...# VALUES ON ENTRY X4 = POINTER TO NOMINATED CONSOLE CELL 67*N ...# X5 = POINTER TO CONSOLE PROPERTY CELL 67B3 ...YGEO1 LDX 3 4 67BB ... CALL 6 YREC1 [FIND NOMINATED CONSOLE CELL 67BP ... LDX 1 4 [SV X4 IN X1 67C4 ... SMO 2 67CC ... LDX 6 BNUMB(3) 67CQ ... SLL 6 1 67D5 ... BNG 6 YGEO2 [J. IDENTIFIER CELL 67DD ... SMO 2 67DR ... LDX 4 4(3) [LD. WD. CONTAINING GEOG.NO. OF UNIT 67F6 ... SRL 4 6 67FF ... LDN 3 BUNIT [LD. BASE OF UNIT CELL 67FS ... BRN YGEO3 67G7 ...YGEO2 SMO 2 67GG ... LDX 4 BTYPE(3) [LD. GEOG.NO. 67GT ... LDN 3 BIPB [LD. BASE OF UNIT CHAIN - 7900. 67H8 ...YGEO3 ANDN 4 #7777 67HH ... LDN 6 0 67HW ... CALL 7 RECFIND [FIND RECORD ZERO. 67J9 ... LDX 7 1 [SV X1 WHICH HOLDS X4 IN X7 67JJ ... CALL 6 SEARCH [SEARCH FOR UNIT CELL 67JX ... LDX 1 7 [RELOAD X7 TO X1 WHICH IS X4 67K= ... SMO 3 67KK ... LDX 0 BNUMB(2) 67KY ... SLL 0 1 67L? ... BPZ 0 YGEO [J. ERROR UNIT RIGHTED. 67LL ... SMO 2 67L^ ... LDX 7 BTYPE(3) [LD. DEVICE TYPE OF IDF UNIT 67M# ... SLC 7 6 67MM ... ANDN 7 #77 67N2 ... FINDPEREC 3,APGEOG,4 [FIND DEVICE LIST 67N* ... BNG 3 YGEO4 [J. GEOG.NOS. DEVICE LIST NOT FOUND 67NN ... LTYPE 3,4 [X4 = DEVICE TYPE. 67P3 ... BXE 4 7,YGEO [J. SOMETHING WRONG - DEVICES MATCH 67PB ...YGEO4 LDX 4 1 [RE-LOAD VALUE OF X4 67PP ... BRN YP44 [J. TO REMOVE ENTRY. 67R= YP3 LDX 0 BLINE(3) [INVESTIGATE ANY ATTRIBUTIONS CELLS 68=W BZE 0 YP4 [AND J.IF NONE 68QG SBX 3 2 [OTHERWISE FREE THEM ALL 69=6 ADN 3 BLINE 69PQ YP5 CALL 6 SFREE 6=9B SMO 2 6=P2 LDX 0 0(3) 6?8L BNZ 0 YP5 [J.TO FREE NEXT SUBSID.CELL 6?N= SBN 3 BLINE 6#7W ADX 3 2 6#MG YP4 LDX 4 BTYPE(3) [NOW INVESTIGATE APERI/CONSOLE BLK?? 6*76 BZE 4 YP41 [J.IF INVESTIGATION NOT NEEDED 6*LQ HUNTMISB 2,APERI,CONSOLE 6B6B ... BNG 2 YGEO1 [BLOCK SHOULD EXIST! 6BL2 ... LDX 1 2 [KEEP COPY OF X2 6GH2 LDX 3 2 [KEEP COPY OF X2 6H2L YP42 ADN 2 2 6HG= LDX 0 A1-1(2) [PICK UP PROP.NO & COMPARE WITH X7 6H^W ... BZE 0 YGEO1 [BUT BIG ERROR IF AT END OF CONS.BLK 6JFG ERX 0 7 6J^6 ANDX 0 BITS22LS 6KDQ BNZ 0 YP42 [J.IF NOT SAME PROP.NO 6KYB LDX 7 A1(2) [KEEP DESCRIPTION OF CONSOLE 6LD2 LDN 2 A1-1(2) [NOW OVERWRITE OLD ENTRY IN- 6LXL LDN 0 2 [APERI/CONSOLE BLOCK(IF NECESSARY) 6MC= SBS 0 A1(1) 6MWW ADX 1 A1(1) 6NBG LDN 1 A1-1(1) 6NW6 MOVE 1 2 6P*Q STOZ 0(1) 6PCF ... LDX 1 3 [ADDITIONAL COPY OF X2 INTO X1 6PF8 ... LDX 6 A1(3) [PICK UP COUNT OF NO OF WORDS USED 6PGX ... SBN 6 2 6PJL ... BNZ 6 YP43 [J.IF CONSOLE BLOCK WONT BE EMPTY 6PL* ... FREECORE 1 [OTHERWISE FREE IT 6PN4 ... BRN YP44 [J.TO UNSET"THIS IS CLUSTER CONS"BIT. 6PPR ...YP43 SBX 6 ALOGLEN(1) 6PRG ... ADN 6 16 [PREPARE X6 FOR ALTLEN TEST 6PTB BPZ 6 YP45 [DONT ALTER LENGTH 6Q*2 LDX 6 A1(3) 6QSL ALTLEN 3,6 6R4D ... HUNTMISB 3,APERI,CONSOLE [RE-HUNT APERI-CONSOLE AFTER ALTLEN 6R#= YP45 LDN 6 0 [AS"CONSOLE NOT YET FOUND"SWITCH 6RRW YP48 TXU 7 A1+2(3) [NOW GO THROUGH APERI/CONSOLE BLOCK- 6S?G BCS YP46 [TO SET/UNSET B1 OF ENTRIES USING- 6SR6 BNZ 6 YP47 [CONSOLE DESCRIBED IN X7 6T=Q LDCT 6 #200 6TQB ORS 6 A1+1(3) 6W=2 ERS 6 A1+1(3) [MAKE SURE B1 UNSET 6WPL BRN YP46 6X9= YP47 ORS 6 A1+1(3) 6XNW YP46 ADN 3 2 6Y8G LDX 0 A1+1(3) 6YN6 BNZ 0 YP48 6^7Q BNZ 6 YP41 [J.AS NO NEED TO UNSET"THIS IS CLUS- 6^MB [CONS."BIT,FOR CONSOLE STILL USED 7272 YP44 LDX 3 4 72LL CALL 6 YREC1 [NOW FIND CLUSTER CONSOLE CELL IN IDF 736= LDCT 0 #40 73KW SMO 2 745G ERS 0 BTYPE+1(3) 74K6 YP41 LDX 3 5 [NOW FREE CONSOLE PROPERTY CELL USING 754Q CALL 6 YREC1 [-PTR PRESERVED IN X5 75JB CALL 6 SFREE 7642 YP1 LDN 6 0 76HL CALL 7 RECFIND [FIND RECORD ZERO 773= LDX 3 BUNIT(2) [INVESTIGATE 7007'S FIRST 77GW BZE 3 YP6 782G CALL 6 YREC 78G6 YP12 ADX 3 2 78^Q LDX 0 0(3) 79FB SMO FX2 79^2 STO 0 AWORK3 [POINTER TO NEXT UNIT IN AWORK3 7=DL LDX 4 BLINE(3) 7=Y= BZE 4 YGEO 7?CW YP10 LDX 3 4 [KEEP X4 SAFE FOR ZACAN 7?XG CALL 6 YREC 7#C6 LDN 7 0 7#WQ CALL 5 ZACAN 7*BB BRN £ 7*W2 LDN 7 BATT-BASS [ASSUMES BATT>BASS! 7B*L CALL 5 ZACAN1 7BT= BRN £ 7C#W LDX 3 4 7CSG CALL 6 YREC1 [GO BACK TO LINE CELL 7D#6 ADX 3 2 7DRQ LDX 4 BLINE(3) 7F?B BZE 4 YP7 [J.IF NO 7020 7FR2 LDX 0 0(3) 7G=L SMO FX2 7GQ= STO 0 AWORK4 [STORE POINTER TO NEXT LINE CELL 7H9W YP8 LDX 3 4 7HPG CALL 6 YREC 7J96 LDN 7 0 7JNQ CALL 5 ZACAN 7K8B BRN £ 7KN2 LDN 7 BATT-BASS 7L7L CALL 5 ZACAN1 7LM= BRN £ 7M6W LDX 3 4 7MLG CALL 6 YREC1 [FIND 7020 CELL AGAIN 7N66 ADX 3 2 7NKQ LDX 4 0(3) 7P5B BNZ 4 YP8 [J FOR NEXT 7020 CELL 7PK2 SMO FX2 7Q4L LDX 4 AWORK4 [RESCE"NEXT LINE PTR" 7QJ= BNZ 4 YP10 [J.FOR NEXT LINE 7R3W BRN YP9 [OTHERWISE NEXT UNIT 7RHG YP7 LDX 4 0(3) 7S36 BNZ 4 YP10 [J.FOR NEXT LINE 7SGQ YP9 SMO FX2 [OTHERWISE INVESTIGATE NEXT UNIT 7T2B LDX 3 AWORK3 7TG2 BZE 3 YP11 [J.IF NO MORE UNITS 7T^L CALL 6 YREC1 7WF= BRN YP12 7WYW YP11 LDN 6 0 [SEARCH IPB CHAIN 7XDG CALL 7 RECFIND 7XY6 YP6 LDX 3 BIPB(2) 7YCQ BZE 3 YP21 [J.IF NO IPB'S 7YXB CALL 6 YREC [OTHERWISE FIND FIRST IPB UNIT 7^C2 YP15 ADX 3 2 7^WL LDX 0 0(3) 82B= SMO FX2 82TW STO 0 AWORK3 [STORE POINTER TO NEXT IPB UNIT 83*G LDX 4 BLINE(3) 83T6 BZE 4 YP16 [J.IF NO IDENTIFIERS 84#Q LDX 3 4 84SB CALL 6 YREC 85#2 YP14 SMO 2 85RL LDX 0 0(3) 86?= SMO FX2 86QW STO 0 AWORK4 87=G LDN 7 0 87Q6 CALL 5 ZACAN 889Q BRN £ 88PB LDN 7 BATT-BASS 8992 CALL 5 ZACAN1 89NL BRN £ 8=8= SMO FX2 8=MW LDX 4 AWORK4 8?7G BZE 4 YP16 8?M6 LDX 3 4 8#6Q CALL 6 YREC1 8#LB BRN YP14 8*62 YP16 SMO FX2 8*KL LDX 3 AWORK3 8B5= BNZ 3 YP20 8BJW YP21 LFCCAT 8C4G CALL 7 WRITECLOSE 8C## ... UPPLUS 1 8D3Q YP20 CALL 6 YREC1 8DHB BRN YP15 8F32 # 8FGL # 8G2= Z2IDFCANC [CANCEL ASSOCIATE ENTRY 8GFW CALL 7 PARSORT 8G^G LDX 0 ACOMMUNE1(2) 8HF6 STO 0 AWORK1(2) [KEEP "BITS" WORD 8HYQ CALL 7 TRACE [FIND PARENT CELL 8JDB LDX 4 BRECNO(2) 8JY2 SLL 4 9 8KCL ORX 4 3 [MAKE IDF POINTER IN X4 TO PARENT CEL 8KX= LDN 7 0 ["ASSOCIATE" SWITCH 8LBW CALL 5 ZACAN [CANCEL ASSOC 8LWG BRN ZA1 [NOTHING DONE EXIT 8MB6 CALL 7 WRITECLOSE 8MKY ... UPPLUS 2 8N*B ZA1 CALL 7 ZCLOSE 8NK8 ... UPPLUS 2 8P#L # 8PS= # 8Q?W Z3IDFCANC [CANCEL ATTRIBUTE ENTRY 8QRG CALL 7 PARSORT 8R?6 CALL 7 TRACE [FIND PARENT CELL 8RQQ LDX 4 BRECNO(2) [CREATE IDF POINTER TO PARENT CELL 8S=B SLL 4 9 8SQ2 ORX 4 3 8T9L LDN 7 BATT-BASS [SET X7 FOR ZACAN 8TP= CALL 5 ZACAN 8W8W BRN ZT1 [J.IF ATTRIBUTION NOT FOUND 8WNG SMO FX2 8X86 LDX 5 AWORK2 8XMQ BNG 5 ZT2 [J.IF CONSOLE PROP 8Y7B ZTXIT 8YM2 LFCCAT 8^6L CALL 7 WRITECLOSE 8^BD ... UPPLUS 3 925W ZT1 CALL 7 ZCLOSE 92*N ... UPPLUS 2 9356 ZT2 LDN 6 0 [NOW REMOVE ATT FROM PROP.CONS.CELL 93JQ CALL 7 RECFIND 944B LDX 3 BEXOT(2) 94J2 BZE 3 YGEO 953L ZT4 LDN 5 BLINE(3) [LEAST THIS NEXT IS RIGHT CONS.PROP. 95H= CALL 6 YREC [FIND NEW CONSOLE PROP CELL 962W ADX 3 2 96GG LDX 0 BNO(3) 9726 SMO FX2 97FQ ERX 0 AWORK2 [TO COMPARE PROP.NOS 97^B ANDX 0 BITS22LS 98F2 BZE 0 ZT3 [J.IF PROPERTIES THE SAME 98YL LDX 3 0(3) 99D= BNZ 3 ZT4 [OTHERWISE J.FOR NEXT PROP. 99XW BRN YGEO 9=CG ZT3 LDN 6 5 [SET X6 AS CELL PTR TO FIRST ATT.PTR 9=X6 LDX 0 BNUMB(3) [COUVT OF NO OF ATTRIBUTIONS 9?BQ SBN 0 1 [ADJUST COUNT 9?WB STO 0 BNUMB(3) [STORE COUNT BACK 9#B2 BZE 0 ZT11 [& IF COUNT ZERO J.AS LESS TO DO 9#TL LDX 7 BLINE(3) 9**= SMO FX2 9*SW STO 5 AWORK3 9B#G LDN 5 3 [X5 IS CT.OF NO.OF ATTS LEFT IN CELL 9BS6 ZT6 SMO 6 9C?Q LDX 0 0(3) [PICK UP ATTRIB.PTR 9CRB ERX 0 4 [COMPARE WITH POINTER IN X4 9D?2 ANDX 0 BITS22LS 9DQL BZE 0 ZT5 [J.IF SAME 9F== ADN 6 1 [UPDATE X6 9FPW BCT 5 ZT6 [J.FOR NEXT POINTER IF NOT IN NEW CEL 9G9G BZE 7 YGEO 9GP6 LDX 3 7 [OTHERWISE GET NEW CELL 9H8Q LDX 1 FX2 9HNB LDX 0 AWORK3(1) [SWAP AROUND AND SO UPDATE "PREVIOUS" 9J82 STO 0 AWORK4(1) [-POINTERS 9JML STO 7 AWORK3(1) 9K7= CALL 6 YREC 9KLW ADX 3 2 9L6G LDX 7 0(3) [UPDATE X7,X6 & X5 9LL6 LDN 6 1 9M5Q LDN 5 7 9MKB BRN ZT6 [J.FOR NEXT COMPARISON 9N52 ZT5 LDX 4 BRECNO(2) [NOW MAKE IDF POINTER TO ATTRIB.PTR 9NJL SLL 4 9 9P4= SBX 3 2 [ADJUST X3 TO MAKE IDF POINTER 9PHW ORX 4 3 9Q3G ADX 4 6 [MAKE PTR POINT TO RIGHT PART OF CELL 9QH6 ADX 3 2 9R2Q BNZ 7 ZT7 [J.IF STILL MORE SUBSID.CELLS 9RGB BCT 5 ZT8 [J.IF NOT AT END OF CELL YET 9S22 ZT11 SMO 6 9SFL STOZ 0(3) [ZEROIZE ATT.PTR(LAST ENTRY) 9S^= BRN ZTXIT [ALL DONE! 9TDW ZT7 LDX 3 7 [NOW FIND LAST SUBSID CELL 9TYG LDX 1 FX2 9WD6 LDX 0 AWORK3(1) [SWAP TO UPDATE "PREVIOUS"POINTERS 9WXQ STO 0 AWORK4(1) 9XCB STO 7 AWORK3(1) 9XX2 CALL 6 YREC 9YBL ADX 3 2 9YW= LDX 7 0(3) 9^*W BNZ 7 ZT7 [J.IF LAST CELL NOT YET FOUND 9^TG LDN 6 0 =2*6 LDN 5 6 =2SQ LDN 5 7 =3#B ZT8 ADN 6 1 [INVESTIGATE LAST CELL TO FIND LAST- =3S2 SMO 6 [POINTER =4?L LDX 7 0(3) =4R= BZE 7 ZT9 [J.IF PAST LAST POINTER =5=W BCT 5 ZT8 [OTHERWISE CONTINUE INVESTIGATION =5QG SMO 6 =6=6 STOZ 0(3) =6PQ BRN ZT12 =79B ZT9 SBN 6 1 =7P2 SMO 6 =88L LDX 7 0(3) [PICK UP LAST POINTER =8N= SBN 6 1 [ADJUST X6 =97W BZE 6 ZT10 [& J.IF CELL MUST BE FREED =9MG SMO 6 [OTHERWISE ZEROIZE LAST ENTRY ==76 STOZ 1(3) ==LQ ZT12 LDX 3 4 [AND PUT LAST ENTRY ON TOP OF CANCEL =?6B CALL 6 YREC1 [LED ENTRY =?L2 ADX 3 2 =#5L LDX 0 0(3) [MAKE SURE THIS IS NOT LAST ENTRY =#K= BZE 0 ZTXIT [& J.IF IT IS =*4W ANDX 7 BITS22LS [NOW CHECK IF B0 OF X7 SHOULD BE SET =*JG ERX 4 7 [TO COMPARE RECORD NOS =B46 SRL 4 9 =BHQ ANDN 4 #7777 =C3B BZE 4 ZT14 [J.IF RECORD NOS EQUAL =CH2 ORX 7 GSIGN [OTHERWISE SET B0 =D2L ZT14 STO 7 0(3) =DG= BRN ZTXIT [ALL DONE =D^W ZT10 SMO FX2 [FREE LAST SUBSID.CELL =FFG LDX 3 AWORK4 =F^6 CALL 6 YREC1 =GDQ CALL 6 SFREE =GYB BRN ZT12 [J.TO PLACE LAST ENTRY IN NEW POSN. =GYH ...[ =H*^ ...[ =HD2 #END ^^^^ ...42553145000100000000 </code> Last modified: 17/01/2024 11:55by 127.0.0.1 Log In