{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: BACKROOM865)}}
====== BACKROOM865 ======
(George Source)
**Macros used:** [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BASEFCB|BASEFCB]], [[george:macro:BLOCKTRACE|BLOCKTRACE]], [[george:macro:BMSTATS|BMSTATS]], [[george:macro:BXE|BXE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COOR2|COOR2]], [[george:macro:COOR2P|COOR2P]], [[george:macro:COOR3|COOR3]], [[george:macro:DELFCB|DELFCB]], [[george:macro:DOWN|DOWN]], [[george:macro:EMSCONWT|EMSCONWT]], [[george:macro:FON|FON]], [[george:macro:FPUT|FPUT]], [[george:macro:FREEBAX|FREEBAX]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:GRELOAD|GRELOAD]], [[george:macro:HUNT|HUNT]], [[george:macro:ICT|ICT]], [[george:macro:JBC|JBC]], [[george:macro:LINK|LINK]], [[george:macro:LINKSET|LINKSET]], [[george:macro:MEND|MEND]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:NEXTFCB|NEXTFCB]], [[george:macro:POP|POP]], [[george:macro:REWIND|REWIND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SIX|SIX]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:STEPREWRITE|STEPREWRITE]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:TRACE|TRACE]], [[george:macro:TRACEIF|TRACEIF]], [[george:macro:UP|UP]], [[george:macro:VOP|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