BACKROOM865

(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

BACKROOM865.txt
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