(George Source)
Macros used: ALTLENG, BASEFCB, BLOCKTRACE, BMSTATS, BXE, BXL, BXU, CHAIN, COOR2, COOR2P, COOR3, DELFCB, DOWN, EMSCONWT, FON, FPUT, FREEBAX, FREECORE, GEOERR, GETACT, GRELOAD, HUNT, ICT, JBC, LINK, LINKSET, MEND, MENDAREA, MHUNT, MHUNTW, MONOUT, NAME, NAMETOP, NEXTFCB, POP, REWIND, SEG, SEGENTRY, SETNCORE, SETUPCORE, SIX, STEP, STEPAGAIN, STEPREWRITE, SUICIDE, TOPFCB2, TRACE, TRACEIF, UP, VOP
22^= [ 23DW [ 23YG [ FASTER BACKMAP DEVELOPMENT VERSION0REVISED K2 ENTRY PART FOR 24D6 [ SETTING FUSER BLOCK 24XQ [ NEW K4 ENTRY TO SET UP FTAPE BLOCK 25CB [ 25R5 ...[ 266S ... SEG BACKROOM,83,TONY MAY,BMAP 26GH ...#OPT BMTRACE=0 26W= SEGENTRY K1BACKROOM,Z1BACKROOM 27*W SEGENTRY K2BACKROOM,TABDICT 27TG SEGENTRY K3BACKROOM,ZCLEARFILE 28*6 SEGENTRY K11BACKROOM,ZBMAPFREE 28SQ SEGENTRY K4BACKROOM,ZTAPEDTAILS 294J ... SEGENTRY K12BACKROOM,SLAVELINK 29#B [ 29S2 # BACKROOM SETS UP A BSTB/FBSIB BLOCK FOR EACH BACKING STORE UNIT. T 2=?L [ UNIT NO. IS IN THE BOTTOM HALF OF ATYPE 2=R= # THE FOLLOWING MACRO REFERS TO THE AFTABLE AND SETS UP BSTB,FBSIB 2?=W # BLOCKS FOR EACH LOGICAL FILE WITH NO.>2. IN THESE BLOCKS IT 2?QG # SETS UP BIT PATTERNS REPRESENTING THE NUMBER OF BLKS IN THE LOG. 2#=6 # FILE. THESE BLKS ARE CHAIN AFTER THE CALLING ACTIVITY. 2#PQ SIX 6 2*9B N512 512 2*BJ ...MBSLINK 2*HQ ... LINK BACKROOM,12 2*P2 [ 2B8L SUB MHUNT 2,FI,FUSER 2BN= EXIT 1 0 2C7W [ 2CMG SUB1 MHUNT 2,FI,FTAPE 2D76 EXIT 1 0 2DLQ [ 2F6B Z1BACKROOM [ENTRY TOSET UP MAPPING BLOCKS 2FL2 [ 2G5L LDX 2 ALFTP [PTR TO ALFTABLE 2GK= LDX 6 ALOGLEN(2) 2H4W M1F 2HJG LDX 2 ALFTP 2J46 M1E SBN 6 2 [X6=DISTANCE OF DATA WRDS FROM A1 2JHQ BXL 6 SIX(1),XEND [J IF FILE NO < 3 2K3B LDCT 0 #600 2KH2 SMO 6 2L2L ANDX 0 A1(2) 2LG= BNZ 0 M1E [IF FILE DOES NOT EXIST OR IS SWAP FI 2L^W SMO 6 2MFG LDX 5 A1+1(2) [WRD1 2M^6 SRL 5 BLS [X5=NO.OF BLKS 2NDQ LDN 7 24 2NYB DVS 4 7 2PD2 ADN 5 1 [X5=ALOGLEN 2PXL SETUPCORE 5,3,BSTB,FBSIB 2QC= SRL 6 1 [X6=LOG FILE NUM 2QWW DSA 6 ATYPE(3) [DEPOSIT IT IN ATYPE 2RBG SLL 6 1 [RESET X6 2RW6 NGS 4 4 2S*Q ADN 4 24 2STB NGN 0 1 2T*2 STO 0 A1(3) 2TSL SMO 4 2W#= SLL 0 0 [BITS0-(24-REMAINDER) SET 2WRW SMO 5 2X?G STO 0 A1-1(3) 2XR6 SBN 5 2 2Y=Q BNG 5 M1F 2YQB ADN 3 A1 [FILL 2^=2 LDN 4 1(3) [REST OF 2^PL S2 329= BZE 5 M1F [NO MORE TO MOVE 32NW BXL 5 N512(1),S1 [MAY BE > 512 FOR FDS 338G SBN 5 512 33N6 MOVE 3 0 [MOVE 512 347Q ADN 3 512 34MB ADN 4 512 3572 BRN S2 35LL S1 366= SMO 5 [OF BLK WITH 36KW MOVE 3 0 [1'S 375G BRN M1F 37K6 XEND 384Q HUNT 3,BSTB,FBSIB 38JB BNG 3 M1K [NO LFS AT ALL 3942 LDX 6 ATYPE(3) [LOAD LOG FILE NUM 39HL ANDN 6 #7777 3=3= SBN 6 3 3=GW BNZ 6 M1K [MUST BE L.F. 3 3?2G LDCT 6 #400 3?G6 ERS 6 A1(3) [MARK MASTERS DIRENT BLOCK 3?^Q [ 3#FB ZCLEARFILE [ENTRY FOR CLEARFILE MACRO USED BY COREFLUSH 3#^2 [ 3*DL WAIT 3*WY ... BASEFCB 2,FILE,WEND,6 [SEARCH FCB RING 3B*= ...WAIT1 3BRJ ... SBN 2 FCBRING 3C9W ... JBC WAIT2,2,BFSOLE [J UNLESS AUTOCLOSE ELSE WAIT FOR 3CBL ...#UNS ICT 3CHB ...#SKI 3CN6 ... COOR2 3CSW ...#UNS ICT 3C^L ... COOR2P [IT TO GO AWAY 3D6G ... BRN WAIT 3DJS ...WAIT2 3F36 ... 3FFD ... ADN 2 FCBRING 3FXQ ... NEXTFCB 2,FILE,WAIT1,6 3GB4 ...WEND 3GSB ... LDN 4 BHALF 3H=N ...WEND1 3HP2 ... LDX 3 BHALF [ANY HALF OPEN FILES 3J7# ... BXE 3 4,WEND2 3JKL ... LDX 0 ATYPE(3) 3K3Y ... BXU 0 FFSFCB,WNFCB [NOT AN FCB 3KG= ... DELFCB 3,HALF [FREE FCB 3KYJ ... BRN WEND1 3LBW ...WNFCB 3LT8 ... FREECORE 3 [RELEASE NON FCB BLOCK 3M?G ... BRN WEND1 3MPS ...WEND2 [ALL HALF OPEN FILES FREED 3N8B UP 3NN2 M1K MONOUT BMRES3 3NXS ... EMSCONWT 3P7L GRELOAD 3PM= [FILE 3 3Q6W #PAG 3QLG [ ROUTINE TO SET UP FUSER BLOCK FOR TABULATION ON DICTIONARY 3R66 [ 3RKQ TABDICT 3S5B SETNCORE 501,1,FI,FUSER 3SK2 STOZ A1(1) 3T4L STOZ 7 [INITIALISE KEY CHECK ACC 3TJ= STEP 3W3W BZE 3 XDICTBENT [IF DICTIONARY IS EMPTY 3WHG LDX 0 CUSERN(3) 3X36 BNZ 0 XDICTBENT [IF RECORD 1 IS NOT LIST REC 3XGQ NEXTDICTENT 3Y2B STEP 3YG2 BZE 3 OKENDOFDICT 3Y^L LDX 0 CNEWZN(3) 3^F= SBN 0 1 3^YW BZE 0 OKDICTENT [IF DICT ENTRY 42DG SBN 0 1 42Y6 BZE 0 NEXTDICTENT [IF BUDGET RECORD 43CQ BRN XDICTBENT 43XB OKDICTENT 47#Q LDX 0 CUSERN(3) [ CALCULATE KEY OF ENTRY 47SB ADX 0 CUSERN+1(3) [ " " " 48#2 ADX 0 CUSERN+2(3) [ " " " 48RL BXL 0 7,XDICTBENT [CHECK KEY > OR = TO PREV 49?= STO 0 7 [NEW VAL INTO PREVIOUS KEY 49QW MHUNT 1,FI,FUSER 4==G LDX 4 A1(1) [USED SPACE IN FUSER BLOLK 4=Q6 LDX 5 ALOGLEN(1) 4?9Q ADN 4 1 4?PB BXL 4 5,NOLENFEN [IF NO NEED TO LENGTHEN FUSER 4#92 ADN 5 500 4#NL ALTLENG 1,5,SUB 4*8= STEPAGAIN 4*MW MHUNT 1,FI,FUSER 4B7G NOLENFEN 4BM6 LDX 2 A1(1) 4C6Q ADX 2 1 4CLB ADN 2 A1+1 4D62 LDN 5 5 4DKL ADS 5 A1(1) 4F5= ... LDN 1 CUSERN(3) 4FJW ... MOVE 1 3 [USERNAME INTO FUSER 4G4G STO 7 3(2) [KEY INTO FUSER 4GJ6 STOZ 4(2) 4H3Q BRN NEXTDICTENT 4HHB OKENDOFDICT 4J32 MHUNT 3,FI,FUSER 4JGL LDX 4 A1(3) 4JMS ... LDN 0 10 4JT2 ... BMSTATS 0,4 4JXL ... MHUNT 3,FI,FUSER 4K2= ADN 4 1 4KFW ALTLENG 3,4 [ SHORTEN FUSER TO DATA LENGTH 4K^G MHUNT 3,FI,FUSER 4LF6 CHAIN 3,BMISC+1 4LYQ REWIND 4M7T ...XTESTLOCK 4MBY ... LDX 3 BSACHAPTR 4ML3 ... POP XTESTLOCK,3,FTABWAIT 4MT6 ... LDN 0 1 4N49 ... SBS 0 AMAPDEPTH(3) 4N?# ... CHANGEFI 3,-2 4NGC ... LDX 3 BSACHAPTR 4NPG ... VOP 3,FTABWAIT 4NYK ... FON BMAPACT 4P7N ... SUICIDE 4PBW [ 4PLN ...MULTIPLIER 86*4 [TAPES PER BLOCK * WORDS PER TAPE 4PWG ZTAPEDTAILS 4QB6 [ 4QTQ [ ENTRY FROM BMOUTPUT TO SCAN SERIALLY THROUGTH 4R*B [ SYSTEM SERIAL AND TABULATE IT INTO A FTAPE BLOCK 4RFS ... TOPFCB2 3 4RL= ... LDX 4 FBLMOD(3) 4RQN ... SBN 4 FBLKS-A1 4RX6 ... MPY 4 MULTIPLIER(1) [NO. OF BLOCS=>MAX SIZE OF FTAPE 4S3J ... ADN 5 1 4S82 ... SETUPCOR 5,1,FI,FTAPE 4S#L STOZ A1(1) [INITIALISE USED DATA AIEA 4SS= LDN 7 1 4T?W NEXTSERIAL 4TRG STEP 4W?6 BZE 3 OKENDSERIAL 4WQQ LDX 0 1(3) 4X=B BXL 0 7,TSNRONG 4XQ2 STO 0 7 [UPDATE 'PREVIOUS'TSN 4Y9L LDX 0 2(3) 4YP= BZE 0 NOSTOZNAME [IF POOLTAPE OR UNUSED WORKTAPE 4^8W LDCT 0 #240 4^NG ... ANDX 0 5(3) 5286 ... BZE 0 NOSTOZNAME [IF NOT WT OR NAMED WT 52MQ STOZ 2(3) [ ZEROISE USERNAME 537B STOZ 3(3) [ " " 53M2 STOZ 4(3) [ " " 546L STEPREWRITE 54L= NOSTOZNAME 555W LDCT 6 #542 55KG ORN 6 #777 5656 ... ANDX 6 5(3) 56JQ ... BZE 6 STIKINFTAPE [IF NO BITS TO CLEAR IN SERIAL ENT 574B STEPREWRITE 57J2 ERS 6 5(3) [CLEAR ,TO BE RETURNED,DEADED,NAMED, 583L [ -WORKTAPE,BM,ANY REQUESTERS 58H= STIKINFTAPE 592W MHUNT 2,FI,FTAPE 59GG LDX 4 A1(2) 5=26 LDX 5 ALOGLEN(2) 5*X6 LDN 5 4 5BBQ ADS 5 A1(2) [INCREMENT'USED'DATA SPACE WORD 5BWB ADX 2 4 5CB2 LDN 5 A1+1(2) [POINTER TO SLOT FOR NEXT ENTRY 5CTL LDN 4 1(3) 5D*= MOVE 4 4 [TSN END NAME WORDS INTO FTAPE 5DSW BRN NEXTSERIAL [PROCESS NEXT RECORD IN SERIAL 5F#G OKENDSERIAL 5FS6 MHUNT 3,FI,FTAPE 5G?Q LDX 4 A1(3) 5GRB ADN 4 1 5H?2 ALTLENG 3,4 [SHORTEN FTAPE TO REMOVESPACE 5HQL MHUNT 3,FI,FTAPE 5J== CHAIN 3,BMISC+1 5JPW REWIND 5JXH ...XCHECKLOSE 5K58 ... LDX 3 BSACHAPTR 5K=T ... POP XCHECKLOSE,3,FTABWAIT 5KDG ... LDN 0 1 5KL7 ... SBS 0 AMAPDEPTH(3) 5KRS ... CHANGEFI 3,1 5K^F ... LDX 3 BSACHAPTR 5L76 ... VOP 3,FTABWAIT 5L#R ... FON BMAPACT 5LGD ... SUICIDE 5LNB [ 5M82 #PAG [FORMERLY SEGMENT BMAPFREE 5MML ZBMAPFREE [ENTRY TO FREEBAX ALL UNMAPPED BACKING STORE 5N7= DOWN FLAWMAP,1 5NLW LDN 3 BMISC 5P6G LDN 7 BMISC 5PL6 SEARCH 5Q5Q LDX 3 0(3) 5QKB BXE 3 7,MISCEND [J IF END OF MISC CHAIN 5R52 LDX 4 ATYPE(3) 5RJL SRL 4 12 5S4= SBN 4 BSTB+BSLIST 5SHW BNZ 4 SEARCH [J IF NOT BSLIST BLOCK 5T3G LDX 0 A1+4(3) 5TH6 BNG 0 SEARCH [J IF SWAPFILE 5W2Q ... NGX 0 BSRESERVE(3) 5WGB STO 0 BSFREE(3) 5X22 NGN 0 1 5XFL STO 0 BACK2(3) [EMPTY LISTS 5X^= STO 0 BSRLEN(3) 5YDW STOZ A1(3) 5YYG STOZ BSRLEN+1(3) 5^D6 LDX 2 ALOGLEN(3) [BSTB/BSLIST BLOCKS FOR 5^XQ SBN 2 BSRLEN-A1+2 62CB LDN 4 BSRLEN+1(3) 62X2 LDN 5 BSRLEN+2(3) 63BL LDEX 1 2 63W= SRL 2 9 64*W ADN 2 1 64TG BZE 1 NOODDS 65*6 MORE 65SQ MOVE 4 0(1) 66#B ADX 5 1 66S2 NOODDS 67?L LDN 1 512 67R= BCT 2 MORE 68=W BRN SEARCH 68QG MISCEND 694X ... LDX 2 FX2 69C# ... STOZ AMAPDEPTH(2) 69PQ NXTMB [NEXT FILE MAPPING BLOCK 6=9B HUNT 3,BSTB,FBSIB 6=P2 BNG 3 MEND 6=Q3 ... GETACT BSA,AUTOMAP 6=R4 ... LDX 2 BPTR(2) 6=S5 ... LINKSET 2,MBSLINK(1) 6=T6 ... HUNT 3,BSTB,FBSIB 6=W7 ... CHAIN 3,2 6=X8 ... LDX 2 BPTR(3) 6=Y9 ... FPUT 6=^= ... LDN 0 1 6?2? ... LDX 2 FX2 6?3# ... SBS 0 AMAPDEPTH(2) 6?4* ... BRN NXTMB 6?5B ...SLAVELINK 6?6C ... SETNCORE GSBS+2,2,BSTB,FULLB 6?7D ... HUNT 3,BSTB,FBSIB 6?8L LDEX 0 ATYPE(3) [BACKING STORE PREFIX 6?N= STO 0 A1+1(2) 6#7W LDX 0 ALOGLEN(3) 6#MG SMO FX2 6*76 STO 0 AWORK1 [LENGTH OF MAPPING LBLOCK 6*LQ LDN 0 GSBS [COUNT IN FULLB X0 6B6B NGN 7 24*BLN [POINTS TO BLK OF BACKING STORE 6BL2 NGN 5 1 [->TOPOS IN MAP BLK X5 6C5L LDN 1 2 [-> TO POS IN FREEB 6CK= MBENDTEST 6D4W ADN 5 1 6DJG ADN 7 24*BLN 6F46 LDN 6 0 [-> TO POS THIS MAP WD 6FHQ SMO FX2 6G3B TXL 5 AWORK1 6GH2 BCS NXTMWD 6H2L STO 1 A1(2) [REC HEAD 6HG= TRACEIF K6BACKROOM,99,299,ATYPE(3),FSMBHEAD 6H^W ... NAMETOP 3,FILE,FTAB 6JFG CALL 3 SFL 6JHJ ...TRYTOGIVE 6JKL ... LDX 2 BSACHAPTR 6JMN ... LDX 0 AMAPDEPTH(2) 6JPQ ... BPZ 0 NOWGIVEIT 6JQD ...#UNS ICT 6JR6 ...#SKI 6JRS ... COOR2 6JSG ...#UNS ICT 6JT8 ... COOR2P 6JTW ... BRN TRYTOGIVE 6JXY ...NOWGIVEIT 6K22 ... HUNT 3,FILE,FTAB 6K44 ... CHAIN 3,2 6K66 ... LDX 2 BSACHAPTR 6K88 ... LDN 0 1 6K== ... SBS 0 AMAPDEPTH(2) 6K## ... FON BMAPACT 6KBB ... SUICIDE 6KDQ NXTMWD [NEXT MAP WORD 6KYB SMO 5 6LD2 LDX 4 A1(3) 6LXL BZE 4 MBENDTEST [J IF NO BLOCKS LOST HERE 6MC= Z1 6MWW BPZ 4 NXTBIT 6NBG ADX 7 6 6NW6 SMO 2 6P*Q STO 7 A1(1) 6PTB ADN 1 1 6Q*2 SBX 7 6 6QSL BCT 0 NXTBIT 6R#= STO 1 A1(2) [RECORD HEADER 6RRW CALL 3 SFL 6S?G LDN 1 2 [-> TO POS IN FREEB 6SR6 MHUNT 3,BSTB,FBSIB 6T=Q LDN 0 GSBS 6TQB NXTBIT 6W=2 SLL 4 1 6WPL BZE 4 MBENDTEST [J IF NO MORE TO FREE IN THIS WD 6X9= ADN 6 BLN 6XNW BRN Z1 6Y8G MEND 6Y=P ... LDX 0 AMAPDEPTH(2) 6Y#Y ...N NGS 0 AMAPDEPTH(2) 6YC7 ...MENDB 6YFB ... LDX 0 AMAPDEPTH(2) 6YHK ... BZE 0 MENDA 6YKS ... COOR3 BMAPACT 6YN3 ... BRN MENDB 6YQ= ...MENDA 6YSF ... HUNT 3,FILE,FTAB 6YWN ... BNG 3 MENDUP 6YYX ... NAMETOP 3,BSTB,FBSIB 6^36 ... BRN MENDA 6^5* ...MENDUP 6^7Q UP 6^MB 7272 SFL [SETS UP FREE LISTS WITH BLOCKS FOUND 72LL SBX 3 FX1 736= #SKI K6BACKROOM>99-99 73KW ( 745G MHUNTW 2,BSTB,FULLB 74K6 #SKI K6BACKROOM<300-300 754Q TRACE A1(2),FREEBHED 75JB #SKI K6BACKROOM>299-299 7642 BLOCKTRACE 2,FREEBLKS,A1(2) 76HL ) 773= FREEBAX 77GW MHUNTW 2,BSTB,EMPTYB 782G NAME 2,BSTB,FULLB 78G6 ADX 3 FX1 78^Q EXIT 3 0 79FB XDICTBENT 79^2 GEOERR 1,DICTBENT 7=DL TSNRONG 7=Y= GEOERR 1,TSNUBENT 7?CW [ 7?XG MENDAREA BMAPGAP,K99BACKROOM 7#C6 #END ^^^^ ...036276170003