BSTS867

(George Source)

Macros used: ADDRESS, ADJUSTLK, BSON, BUTTONUP, BXE, BXL, CHAIN, CHAIND, CLINK, COOR1, COOR2, COOR2P, COOR3, DCA, DERING, DISENGPER, FINDBSA, FINDCORE, FINDFAIL, FIXTRA, FON, FPUT, FPUTX, FREECORE, FREEPAGE, FSHCODE, FSHSKIP, GEOERR, GPERI, HUNT2J, JENG, JPROP, LABFIX, LOCK, MHUNT, NAMEX, NAMFREEW, OFF, OFFQUE, READ, REQUE, TRACE, TRANSFIX, TWAIT, UNLOCK

BSTS867.txt
22FL    #LIS  K0BSTS
22^=    #SEG  BSTS65                       [BOB NICHOLSON   
23DW    #   
23YG    #     NEW INTERFACE VERSION 
24D6    #   
24XQ    #     THIS SEGMENT IS CONCERNED WITH EXECUTING PERI'S TO BACKING
25CB    #     STORE DEVICES. QUEUE BLOCKS ARE CHAINED TO THE RELEVANT BACKING   
25X2    #     STORE ACTIVITY ON THE PRIMARY OR SECONDARY QUEUES BY BSQ WHICH
26BL    #     OPTIMISES THE TRANSFERS TO OBTAIN MINIMUM HEAD MOUEMENT.  
26W=    #     BSTS TAKES THE FIRST/NEXT QUEUE BLOCK OFF THE PRIMARY QUEUE   
27*W    #     AND EXECUTES THE CORRESPONDING TRANSFER. WHEN THE PRIMARY QUEUE   
27TG    #     IS EMPTY THE CONTENTS OF SECONDARY QUEUE (IF ANY) ARE TRANSFERED  
28*6    #     TO THE PRIMARY AND DEAL WITH:OTHERWISE COOR1Y IS OBEYED.  
28SQ    #   
29#B    #     ACTIVITY BLOCKS ARE TREATED AS QUEUE BLOCKS FOR CHAPTER CHANGES   
29S2    #     AND NON-AUTONOMOUS TRANSFERS;AND BSTB/BQBLK FOR AUTONOMUS TRANSFER
2=?L    #     THE CONTENTS OF THESE BLOCKS IS AS FOLLOWS:-  
2=R=    #   
2?=W    #         IDENTIFIERS FOR   
2?QG    #       ACTIVITIES  BSTB/BQBLK          CONTENTS
2#=6    #   
2#PQ    #           BA1       ATRAN        SEE BELOW
2*9B    #           BA2       ALENLFN      B0-B15  LENGTH OF TRANSFER B16-B23 LF
2*P2    #           BA3       BLKNO        UNDATUMISED BLOCK NUMBER 
2B8L    #           BA4       CORADD       CORE ADDRESS IF SET CORE OR OBJECT PR
2BN=    #           BA5       APCA         ADDRESS OF ASSOCIATED PCA (OBJECT PRO
2C7W    #        ACOMMUNE7    BSMODE       MODE OF TRANSFER 
2CMG    #        ACOMMUNE8    ABSA         ADDRESS OF BSA (FOR TRANFAIL)
2D76    #        ACOMMUNE9    ADBLKNO      DATUMISED BLOCK NUMBER   
2DLQ    #   
2F6B    #     CONTENTS OF BA1 OR ATRAN :-   
2FL2    #   
2G5L    #     B0=1     IF AUTONOMOUS TRANSFER   
2GK=    #     B1=1     IF CHAPTER CHANGE (SEE BELOW)
2H4W    #     B2=1     IF FAILED AUTONMOUS TRANSFER 
2HJG    #     B3       MODE 
2J46    #     B4        OF  
2JHQ    #     B5       TRANSFER 
2K3B    #     B6       REQUIRED 
2KH2    #     B7=1     IF TRANSFER FROM SWAPTRAN
2L2L    #     B8=1     BSTS SHOULD FPUT THE PCA (SEE SWAPWAIT MACRO)
2LG=    #     B9       *
2L^W    #     B10=1    BSTS SHOULD FPUT CALLING ACTIVITY ON COMPLETION OF TRANSF
2MFG    #     B11=1    USED BY BACKWAIT IF %B AND %C ARE SPECIFIED  
2M^6    #     B12=1    USED BY PAGE TURNING (G4 ONLY)  (BPAGE)  
2NDQ    #     B13=1    BSTS SHOULD TAKE SPECIAL ACTION IF BLANKET TRANFSER FAILS
2NYB    #     B14=1    FAILURE MACRO SHOULD UPDATE BA3 IN THIS ACTIVITY IF NEED 
2PD2    #     B15=1    TRANSFER FAIL ACTIVITY SHOULD UNSET CORRUPT BLOCK MARK   
2PXL    #     B16=1    SWAPTYPE TRANSFER (ASWAP)
2QC=    #     B17=1    OVERRIDE FLAW (FLAW) 
2QWW    #     B18=1    DEAL WITH FAIL (FAIL)
2RBG    #     B19=1    FREE WRITE BLOCK AT END OF TRANSFER (FREE)   
2RW6    #     B20=1    USE FREED WRITE BLOCK (BUSE) 
2S*Q    #     B21=1    SET CORE TRANSFER (BSET) 
2STB    #     B22=1    ONLINE TRANSFER (BONL)   
2T*2    #     B23=1    OBJECT PROGRAM TRANSFER (BOBJ)   
2TSL    #   
2W#=    #   
2WRW    #     FOR CHAPTER CHANGES THE BA AREA IS AS FOLLOWS:-   
2X?G    #   
2XR6    #     BA1      B1=1  INDICATES CHAPTER CHANGE   
2Y=Q    #     BA2      LENGTH OF CHAPTER
2YQB    #     BA3      =0 IF ONE TRANSFER OR LENGTH OF FIRST TRANSFER IF TWO
2^=2    #     BA4      DATUMISED BS ADDRESS OF FIRST TRANSFER   
2^PL    #     BA5      DATUMISED BS ADDRESS OF SECOND TRANSFER.RUBBISN IF BA3=0 
329=    #   
32NW    #   
338G    #   
33N6          FIXTRA   K1BSTS   
347Q     LABFIX AP10
34MB          LABFIX   BSTS10   
3572    TO  
35LL    #   
366=    #     ACTUAL ENTRY POINT
36KW    #   
375G    #SKI  K6BSTS>3-3
37K6    (   
384Q          LDN   1  BSCHANAD(2)         [SEE IF ANYTHING ON QUEUE
38JB          TXU   1  BSBKCHAN(2)  
3942          BCS      R1   
39HL    #UNS ICTON  
3=3=    (   
3=GW     FIXTRA ASFBSTS                    [USED BY BSPRI RESTORE TIME MACRO
3?2G          NULL                         [MENDED TO BRN ASFBSTS2  
3?G6    )   
3?^Q          GEOERR   0,NO QUEUE          [ERROR IF NOT
3#FB    )   
3#^2    R1    LDX   3  BSCHANAD(2)  
3*DL          SBN   3  CHAINADD            [POINTER TO FIRST QBLK   
3*Y=          LDX   0  ATYPE(3)            [TYPE OF QBLK
3BCW    #SKI  K6BSTS>699-699
3BXG          TRACE    0,QBLKTYPE   
3CC6          TXL   0  CACT 
3CWQ          BCC      R3AC                [J IF ACTIVITY BLOCK 
3DBB    #SKI  K6BSTS>99-99  
3DW2    (   
3F*L          SBX   0  BSP10               [SUBTRACT QBLK TYPE  
3FT=          BZE   0  R3AB                [J IF ACTUAL QUEUE BLOCK 
3G#W          GEOERR   0,QBLKTYPE          [OTHERWISE GEOERR
3GSG    )   
3H#6    R3AB  LDN   4  ATRAN(3)            [START OF AREA IN QBLK   
3HRQ          LDX   6  ADBLKNO(3)          [DATUMISED BS ADDRESS FROM QUEUE BLK 
3J?B          LDX   7  BSMODE(3)           [MODE OF TRANSFER FROM QBLK  
3JR2          BRN      R4   
3K=L    #   
3KQ=    #     ENTRY MADE HERE IF THE WAIT FOR KARTCONT BIT  
3L9W    #     IS SET. WE MUST IMPLEMENT KARTCONTS READ  
3LPG    #     OF SCA SO THAT DEVICE CAN BE CORRECTLY
3M96    #     ENGAGED .OTHER TRANSFERS TO WAIT UNTIL DEVICE 
3MNQ    #     IS ENGAGED AND BIT CLEARED
3N8B    TWAIT LDX   0  ACOMMUNE1(2) 
3NN2          ANDN  0  BONL 
3P7L          BZE   0  TCOOR
3PM=          LDX   0  ACOMMUNE1(2) 
3Q6W          ANDN  0  BLFAIL   
3QLG          BZE   0  TCOOR
3R66          BRN      R3                   [IMPLEMENT TRANSFER 
3RKQ    #   
3S5B    #   
3SK2    #     ENTRY MADE HERE WHEN A CURRENT FAIL IS DETECTED   
3T4L    #     IF FLAW IS SET THE TRANSFER IS ATTEMPTED REGARDLESS,OTHERWISE 
3TJ=    #     ALL ONLINE TRANSFERS ARE HELD UP ON THE WAITING QUEUE IF THE  
3W3W    #     ONLINE FAIL BIT IS SET IN BSFAIL  
3WHG    #     NON-ONLINE TRANSFERS ARE ONLY HELD UP IF THE NON-ONLINE FAIL BIT  
3X36    #     IS SET AND IF THERE IS AN ENTRY IN THE BSTB/BFAIL BLOCK FOR THE   
3XGQ    #     APPROPRIATE BLOCK NUMBER. 
3Y2B    #   
3YG2    TF3   LDX   7  ACOMMUNE1(2) 
3Y^L          ANDN  7  FLAW 
3^F=          BNZ   7  R3                  [IMPLIMENT TRANSFER IF FLAW SET  
3^YW          LDX   7  ACOMMUNE1(2) 
42DG          ANDN  7  BONL 
42Y6          BZE   7  TF2                 [J NOT ONLINE
43CQ          ANDN  0  BOFB 
43XB          BZE   0  R3                  [ONLINE FAIL BIT NOT SET 
44C2    TF4   LDX   2  BSQWBACK(2)  
44WL    TF4A  LDN   3  CHAINADD(3)  
45B=          REQUE    3,2                 [PUT QUEUE BLK ON WAITING Q  
45TW    R30C  LDX   2  FX2  
46*G          BRN      R30B                [SEE IF ANYTHING ELSE TO DO  
46T6    TF2   ANDN  0  BNOFB
47#Q          BZE   0  R6                  [NON ONLINE FAIL BIT NOT SET 
47SB          LDX   7  ACOMMUNE3(2) 
48#2          ANDX  7  BSTSMASK            [BLOCK NO. ROUNDED DOWN  
48RL          LDX   6  ACOMMUNE2(2) 
49?=          ANDN  6  #377                [LOGICAL FILE NUMBER 
49QW          FINDFAIL 4,7,6,CFL,R6T,FX2   [SEE IF CURRENT FAIL FOR THIS BLOCK  
4==G          BRN      TF4                 [ENTRY FOUND-GO TO PUT ON WAIT QUEUE 
4=Q6    #   
4?9Q    #     ENTRY NOT FOUND IN CURRENT FAIL LIST SO CHECK IF BLANKET HAS  
4?PB    #     HAD ANY FAILED TRANSFERS WHILE WRITING AWAY FILE/FUWB BLOCKS BY   
4#92    #     CHECKING IF THERE ARE ANY BSTB/BWRITE BLOCKS IN THE TRANSFER FAIL 
4#NL    #     ACTIVITY OR IF BLANKF1 AND BLANKF2 CONTAIN SAME BACKING STORE HOME
4*8=    #   
4*MW    R6T   LDX   1  ATFAPTR             [POINTER TO TRANS
4B7G    NA    LDX   1  FPTR(1)             [NEXT BLOCK  
4BM6          LDX   0  ATYPE(1) 
4C6Q          TXL   0  CACT 
4CLB          BCC      NB                  [J NOT FOUND 
4D62          SRL   0  12   
4DKL          SBN   0  BSTB+BWRITE  
4F5=          BNZ   0  NA                  [NOT BSTB/BWRITE SO GO FOR NEXT BLOCK
4FJW          LDXC  0  BACK1(1) 
4G4G          BCS      £
4GJ6          TXU   6  0                   [COMPARE BS HOMES
4H3Q          TXU   7  BACK2(1)            [
4HHB          BCS      NA                  [J IF UNEQUAL SO GO FOR NEXT 
4J32    NCC   LDX   2  FPTR(3)             [NEXT BLOCK - CHECK THE TYPE 
4JGL          LDX   1  ATYPE(2)            [TYPE
4K2=          SRL   1  12   
4KFW          SBN   1  BSTB+FLOUR          [IS IT BSTB FLOUR BLOCK? 
4K^G          BNZ   1  NBF                 [J IF NOT
4LF6          FREECORE  2                  [FREE THE BLOCK IF SO
4LYQ    NBF   LDX   2  FX2  
4MDB          BRN      TF4                 [ PUT THIS QBLK ON WAIT QUEUE
4MY2    NB    LDXC  0  BLANKF1  
4NCL          BCS      £
4NX=          TXU   6  0                   [NOW CHECK THE BS HOMES IN   
4PBW          TXU   7  BLANKF2             [FIXED THAT BSTS SET UP IF BLANKET FA
4PWG          BCC      NCC                 [BRANCH TO CHECK FOR BSTB FLOUR  
4QB6          LDX   1  CPPTR(2)            [RELOAD PTR TO DEVICE LIST   
4QTQ          BRN      R6                  [CARRY ON
4R*B    #   
4RT2    #   
4S#L    X13   GEOERR   0,NO REC 
4SS=    #   
4T?W    #     GET TRANSFER DETAILS FROM QBLOCK  
4TRG    #     AND CHECK IF ANY PREVIOUS FAILS   
4W?6    #   
4WQQ    R3AC  LDN   4  BA1(3)              [START OF BS AREA IN ACTIVITY
4X=B          LDX   6  ACOMMUNE9(3)        [DATUMISED BS ADDRESS FROM ACTIVITY  
4XQ2          LDX   7  ACOMMUNE7(3)        [MODE OF TRANSFER FROM ACTIVITY  
4Y9L    R4    LDN   5  ACOMMUNE1(2)        [MOVE DETAILS OF TRANSFER
4YP=          MOVE  4  5                   [TO BSA ACTIVITY 
4^8W    #SKI  K6BSTS>199-199
4^NG    (   
5286          TRACE    ACOMMUNE1(2),PERCENTA
52MQ          TRACE ACOMMUNE3(2),BLOCK NO   
537B    )   
53M2          LDX   1  CPPTR(2) 
546L          DCA      1,DLA,7,MODE        [MODE TRANSFER TO CONTROL AREA   
54L=          LDCT  7  #200 
555W          ANDX  7  ACOMMUNE1(2) 
55KG          BNZ   7  R5                  [J IF A CHAPTER CHANGE   
5656          DCA      1,STO,6,DTSA        [B5 HARDWARE ADDRESS TO CA IN DEVICE 
56JQ          LDX   0  BSFAIL(2)
574B          ANDN  0  BKARTWT  
57J2          BNZ   0  TWAIT               [J IF WAIT FOR KARTCONT BIT SET  
583L          LDXC  0  BSFAIL(2)
58H=          BCS      TF3                 [J IF FAIL(S) BEING DEALT WITH   
592W          LDX   0  ACOMMUNE1(2) 
59GG          ANDN  0  BONL 
5=26          BNZ   0  R3                  [DON'T CHECK FOR CORRUPT BLOCK IF ONL
5=FQ    R6    LDX   7  ACOMMUNE3(2) 
5=^B          SLL   7  1
5?F2          BPZ   7  R3                  [NOT CORRUPT BLOCK   
5?YL    #   
5#D=    #     IF B1 OF THE WORD CONTAINING THE BLOCK NUMBER IS SET WE HAVE A
5#XW    #     CORRUPT BLOCK ON OUR HANDS,I.E. ONE OR MORE OF THE BLOCKLETS  
5*CG    #     COMPRISING THE BLOCK ARE CORRUPT. IF THE TRANSFER IS A WRITE WE   
5*X6    #     ASSUME THE TRANSFER IS GOING TO BE O.K. AND UNSET THE CORRUPT 
5BBQ    #     BLOCKLET MARKERS IN THE PERMENANT FAIL LIST AND CARRY ON. IF THE  
5BWB    #     TRANSFER IS A READ WE SEE IF THE TRANSFER CAN BE IMPLIMENTED, 
5CB2    #     OTHERWISE THE TRANSFER IS FAILED. 
5CTL          FSHCODE  AORB 
5D*=    (   
5DSW    #       IN A SHARED FILESTORE ENVIRONMENT PARTIAL CLEARANCE OF  
5F#G    #     CORRUPTION WILL BE DEALT WITH BY TRANFAIL (NOTE BIT15 OF  
5FS6    #     BA1). TRANFAIL LEAVES BIT15 SET FOR BSTS TO DETERMINE THAT
5G?Q    #     THIS HAS HAPPENED AND CLEAR BIT15. THE TRANSFER CAN NOW PROCEED.  
5GRB          LDX   4  ACOMMUNE1(2) 
5H?2          ANDN  4  #400 
5HQL          BZE   4  SHFS2
5J==          ERS   4  ACOMMUNE1(2) 
5JPW          LDX   0  ACOMMUNE1(2) 
5K9G          BPZ   0  SHFS1
5KP6          ERS   4  ATRAN(3) 
5L8Q          BRN      R3N  
5LNB    SHFS1   
5M82          ERS   4  BA1(3)   
5MML          BRN      R3N  
5N7=    SHFS2   
5NLW    )   
5P6G          SRL   7  1
5PL6          ANDX  7  BSTSMASK            [BLOCK NO. ROUNDED DOWN TO NEXT BLK  
5Q5Q          LDX   5  ACOMMUNE2(2) 
5QKB          SRL   56 8                   [X5=LENGTH OF TRANSFER   
5R52          SRL   6  16                  [X6=LOGICAL FILE NUMBER  
5RJL          FINDFAIL 4,7,6,PFL,X13,FX2   [GET RECORD FROM PERMENANT FAIL LIST 
5S4=          LDX   1  ACOMMUNE3(2) 
5SHW          ANDN  1  3                   [GET STARTING BLOCKLET NUMBER
5T3G          SRC   1  2
5TH6          LDCH  7  BSMAGIC(1)          [STARTING BLOCKLET TO PFL FORM   
5W2Q          STO   7  0
5WGB          LDX   5  ACOMMUNE2(2) 
5X22          SRL   5  8                   [LENGTH  
5XFL    X16   SBN   5  GSBS4               [SUBTRACT CHUNK LENGTH   
5X^=          BNG   5  X20  
5YDW          BZE   5  X20  
5YYG          BCHX  1  £                   [UPDATE MOD  
5^D6          LDCH  7  BSMAGIC(1)          [NEXT BLOCKLET TO PFL FORM   
5^XQ          ADX   0  7
62CB          BRN      X16  
62X2    X20   LDX   1  4                   [POINTER TO PERMENANT FAIL RECORD
63BL          LDX   7  1(1)                [SECOND WD OF RECORD FROM PFL
63W=          SLC   7  6
64*W          ANDN  7  #17  
64TG          DCA      ,LDEX,4,MODE        [MODE
65*6          BZE   4  X17  
65SQ          ERX   0  7
66#B          ANDX  0  7
66S2          BZE   0  X18                 [GO TO TFA TO UNSET CORRUPT BLOCK MAR
67?L          FSHCODE  AORB 
67R=    (   
68=W          SBX   7  0                   [
68QG          BZE   7  R3N                 [J IF TRANSFER WONT ALTER CORRUPTION 
69=6          BRN      X18                 [STATE - ELSE PFL ENTRY NEEDS UPDATE 
69PQ    )   
6=9B          FSHSKIP   
6=P2    (   
6?8L          SRC   0  6
6?N=          STO   0  1(1)                [FAILED BLOCKLET MARKERS TO PFL  
6#7W          DSA   6  1(1)                [AND LFN 
6#MG          LDCT  0  #200 
6*76          ORS   0  1(1)                [INDICATE PFL RECORD 
6*LQ          BRN      R3N                 [CARRY ON
6B6B    )   
6BL2    X17   ANDX  7  0
6C5L          BZE   7  R3N                 [J IF THIS BLOCKLET CAN BE READ  
6CK=          LDCT  7  #10                 [FRIGGED REPLY   
6D4W          STO   7  CPRW1(2)            [TO REPLY WD 
6DJG          BRN      XRF  
6F46    X18   LDCT  0  BFB  
6FHQ          ORS   0  1(1)                [SET CFB WHILE REMOVING CBM  
6G3B          ADN   0  BNOFB
6GH2          ORS   0  BSFAIL(2)           [SET BFB AND BNOFB   
6H2L          LDX   6  ACOMMUNE1(2) 
6HG=          LDN   0  #400            [BIT TO INFORM TRANFAIL THAT IT IS TO
6H^W                                   [UNSET THE CORRUPT BLOCK MARK
6JFG          BPZ   6  X19             [J IF NON-AUTONOMUS  
6J^6          ORS   0  ATRAN(3) 
6KDQ    X21A  STO   2  ABSA(3)             [ADDRESS OF BSA FOR TFA  
6KYB          BRN      X21  
6LD2    X19   ORS   0  BA1(3)   
6LXL    X19A  STO   2  ACOMMUNE8(3)    [BSA ADDRESS TO ACTIVITY FOR TFA USE 
6MC=    X21   LDX   2  ATFAPTR  
6MWW     TRANSFIX CALL 7,BP8               [FPUT TFA IF NECESSARY   
6NBG          LDX   2  BSBKCHAN(2)         [POINTER TO CHAINADD OF LAST BLOCK   
6NW6          BRN      TF4A                [GO TO CHAIN QUEUE BLK ON TFA
6P*Q    R3N   LDX   1  CPPTR(2) 
6PTB    #   
6Q*2    #     SET UP CONTROL AREA AND SET DATA BLOCKS UP FOR TRANSFER   
6QSL    #   
6R#=    R3    LDX   4  BSFAIL(2)
6RRW          ANDN  4  CGINPROG            [SEE IF CARTRIDGE COMMAND IN PROGRESS
6S?G          BZE   4  XR2                 [....BRANCH IF NOT   
6SR6          LDN   6  0
6T=Q          LDX   4  ACOMMUNE1(2) 
6TQB          ANDN  4  BONL                [SEE IF ONLINE(EXOFILE)TRANSFER  
6W=2          BZE   4  XR1                 [....BRANCH IF NOT(MUST BE FILESTORE)
6WPL          LDCT  7  #10  
6X9=          STO   7  CPRW1(2)            [SET INOPERABLE REPLY
6XNW          BRN      R16C 
6Y8G    XR1 
6YN6     TRANSFIX CALL  7,XFIND            [CHECK FOR BLANKETTOMOVCART DEPENDENT
6^7Q          BNG   5  TRW3                [BLOCKS,AND J IF FOUND   
6^MB          COOR3    CARTWAIT,3          [WAIT FOR COMMAND TO TERMINATE   
7272          STOZ     BA5(2)   
72LL          BRN      TO   
736=    XR2   LDX   4  ACOMMUNE2(2) 
73KW          SRL   4  8                   [LENGTH  
745G          DCA      1,STO,4,COUNT       [LENGTH TO CONTROL AREA  
74K6          LDN   6  0                   [INDICATE NOT CHAPTER CHANGE 
754Q          LDX   0  ACOMMUNE1(2) 
75JB          ANDN  0  BSET+BOBJ           [
7642          BNZ   0  R7                  [J IF SET CORE OR OBJECT PROGRAM 
76HL          DCA      1,LDEX,7,MODE       [MODE OF TRANSFER
773=          BZE   7  R9   
77GW          HUNT2J   3,BSTB,BWRITE,,R12  [GET POINTER TO BWRITE   
782G          BRN      R10  
78G6    R12   GEOERR   0,WRONGBLK   
78^Q    R9    HUNT2J   3,BSTB,FLOUR,,R12  [GET POINTERTO FLOUR  
79FB    #SKI  G4
79^2    (   
7=DL    R10   LOCK     3                   [LOCK DOWN DATA BLOCK
7=Y=    R10A  LDN   3  A1(3)               [CORE TRANSFER ADDRESS   
7?CW          BRN      R8A  
7?XG    R7    LDX   3  ACOMMUNE4(2)        [CORE ADDRESS IF SET CORE OR OBJ PROG
7#C6          ANDN  0  BOBJ 
7#WQ          BZE   0  R8A                 [J IF NOT OBJECT PROGRAM 
7*BB          SMO      ACOMMUNE5(2) 
7*W2          LDX   0  ASEGTAB             [POINTER TO PROGRAMS SEGMENT TABLE   
7B*L          DCA      1,STO,0,SEGTAB      [SEG TABLE ADDRESS   
7BT=          LDX   0  BIT9 
7C#W          DCA      1,ORS,0,MODE        [ADDITIVE MODE #40000 FOR OBJ RPOG   
7CSG    )   
7D#6    #SKI  G3
7DRQ    (   
7F?B    R10   LOCK     3                   [LOCK DOWN DATA BLOCK
7FR2    R10A  LDN   3  A1(3)               [CORE TRANSFER ADDRESS   
7G=L          BRN      R8A  
7GQ=    R7    ANDN  0  BOBJ 
7H9W          BZE   0  R8                  [JUMP IF NOT OBJECT PROGRAM TRANSFER 
7HPG          ADDRESS  ACOMMUNE5(2),ACOMMUNE4(2),3 [DATUMISE O/P CORE ADDRESS   
7J96          BRN      R8A  
7JNQ    R8    LDX   3  ACOMMUNE4(2)        [CORE ADDRESS IF SET CORE
7K8B    )   
7KN2    R8A   DCA      ,STO,3,CTSA  
7L7L    #SKI  CPERFCHAP 
7LM=    (   
7M6W    #   
7MLG    #     FOR MEASUREMENT PACKAGE   
7N66    #   
7NKQ          LDX   3  JMBSTS              [720200200   
7P5B          ANDX  3  ACOMMUNE1(2) 
7PK2          BZE   3  ZA                  [J IF NOT SWAP OR CHAPTER CHANGE 
7Q4L          SLL   3  1
7QJ=          LDN   1  BSAPS               [MOD FOR SWAP
7R3W          BPZ   3  ZB                  [J IF SWAP   
7RHG          LDN   1  BSCHCH              [MOD FOR CHCH
7S36          BRN      ZB   
7SGQ    ZA    LDX   3  ACOMMUNE1(2) 
7T2B          ANDN  3  BONL 
7TG2          BZE   3  ZC                  [J IF FILESTORE  
7T^L          LDN   1  BSONLY              [MOD FOR ONLINE  
7WF=          BRN      ZB   
7WYW    ZC    DCA      ,LDEX,3,MODE        [MODE
7XDG
7XY6          LDN   1  BSFSR               [MOD FOR READS   
7YCQ          BZE   3  ZB                  [JUMP IF NOT READS   
7YXB          LDN   1  BSFSW               [MOD FOR WRITES  
7^C2    ZB    LDN   3  1
7^WL          ADSC  3  1(1)                [LEAST SIG   
82B=          LDN   3  0
82TW          ADS   3  0(1) 
83*G    )   
83T6     LABFIX BSPERI  
84#Q    R16B  GPERI    ,2   
84SB          COOR1    ,3                  [WAIT FOR COMPLETION OF PERI 
85#2    R16C  LDX   3  BSCHANAD(2)         [
85RL          SBN   3  CHAINADD 
86?=    #SKI  K6BSTS>99-99  
86QW    (   
87=G          LDN   0  1
87Q6          ADS   0  AWORK4(2)           [NO OF TRANSFERS ON THIS DEVICE  
889Q    )   
88PB          LDX   0  ACOMMUNE1(2) 
8992          BPZ   0  R20B            [J IF NON-AUTO   
89NL    R20A  LDX   0  ATRAN(3)            [RESET THIS VALUE SINCE BACKWAIT OR  
8=8=          STO   0  ACOMMUNE1(2)        [SWAPWAIT MAY HAVE INSERTED BITS 
8=MW                                       [DURING THE COORDINATION 
8?7G    R20B  LDCH  1  CPRW1(2)            [TOP CHARACTER OF REPLY  
8?M6          BNZ   1  R21A                [J IF TRANSFER FAIL OR INOP OR HOLD  
8#6Q          LDX   1  CPPTR(2)            [ DEVICE LIST PTR
8#LB          DCA      1,LDEX,0,MODE       [  FOR MODES OTHER THAN 0 AND 1 .....
8*62          SBN   0  2                   [ ..THE REPLY IS INDETERMINATE, SO ..
8*KL          BPZ   0  REPGD               [ ..JUMP ROUND CHECK.
8B5=          DCA      1,LDX,0,CTSA        [ START ADDRESS IN CORE  
8BJW          DCA      1,ADX,0,COUNT       [  + COUNT   
8C4G          ANDX  0  BSB18
8CJ6          BXE   0  CPRW1(2),REPGD      [ = CORE ADDR IN REPLY ? J IF SO 
8D3Q          BXL   0  CPRW1(2),TERR       [ J IF OVERWRITING HAS OCCURRED  
8DHB          BRN      R21A                [ J IF SHORT TRANSFER
8F32    REPGD LDX   0  ACOMMUNE1(2)        [ RESTORE  X0
8FGL    R20C  BNZ   6  R22                 [JUMP IF CHAPTER CHANGE  
8G2=    #SKI  G3
8GFW    (   
8G^G          ANDN  0  BOBJ+BSET
8HF6          BNZ   0  R26                 [J IF SET CORE OR OBJECT PROGRAM 
8HYQ    )   
8JDB    #SKI  G4
8JY2    (   
8KCL          ANDN  0  BOBJ+BSET+BPAGE  
8KX=          BZE   0  R56X                [J IF NOT SET CORE,OBJ OR PAGE TRANSF
8LBW          ANDN  0  BPAGE
8LWG          BZE   0  R26                 [NOT PAGE TRANSFER   
8MB6          LDX   1  ACOMMUNE5(2)        [ADDRESS OF PAGE TABLE ENTRY 
8MTQ          NGN   0  5
8N*B          ANDS  0  0(1)                [CLEAR BIT 21
8NT2          LDCT  0  #200 
8P#L          ANDX  0  0(1) 
8PS=          BZE   0  R26                 [NO NEED TO FREE PAGE IF B1 CLEAR
8Q?W          LDX   0  BN2T13   
8QRG          ANDS  0  0(1) 
8R?6    #UNS  ISTDP 
8RQQ          FREEPAGE ACOMMUNE4(2),1   
8S=B    #UNS  ISTDP 
8SQ2    #SKI
8T9L          FREEPAGE ACOMMUNE4(2)        [FREE THE PAGE   
8TP=          BRN      R26  
8W8W    R56X
8WNG    )   
8X86          UNLOCK   FPTR(3)             [UNLOCK READ OR WRITE BLOCK  
8XMQ          DCA      ,LDEX,0,MODE        [GET MODE
8Y7B          LDX   1  FPTR(3)  
8YM2          BNZ   0  R23                 [J NOT READ  
8^6L          LDX   0  BJREAD              [X0=BSTB/BREAD   
8^L=    #SKI  CAMK7>1-1 
925W    (   
92KG          NAMEX    1
9356          BRN      R26  
93JQ    )   
944B    #SKI  CAMK7<2-2 
94J2          BRN      R26A 
953L    R23   LDX   0  ACOMMUNE1(2) 
95H=          ANDN  0  FREE 
962W          BNZ   0  R24                 [J IF FREE SET   
96GG    #SKI  CAMK7<2-2 
9726    (   
97FQ          LDX   0  BJFREEW             [X0=BSTB/BFREEW  
97^B    R26A  NAMEX    1                   [RENAME BLOCK BSTB/BREAD OR BFREEW   
98F2    )   
98YL    #SKI  CAMK7>1-1 
99D=          NAMFREEW 1,R24               [J IF WRITE BLOCK TO BE FREED ANYWAY 
99XW          BRN      R26  
9=CG    R24   FREECORE 1                   [FREE WRITE BLOCK
9=X6    R26   LDN   3  CHAINADD(3)  
9?BQ          OFFQUE   3                   [DECHAIN QBLK
9?WB          SBN   3  CHAINADD 
9#B2          LDX   0  ACOMMUNE1(2) 
9#TL          BNG   0  R27                 [J IF AUTO   
9**=          LDX   7  CPRW1(2) 
9*SW          STO   7  ACOMMUNE9(3)        [STO REPLY IN ACTIVITY   
9B#G          ANDN  0  BONL+ASWAP   
9BS6          BNZ   0  V1                  [J IF ONLINE OR SWAP 
9C?Q          LDN   0  #1000               [FAILURE MACRO SHOULD
9CRB          ERS   0  BA1(3)              [NOT UPDATE BA3 ANY MORE 
9D?2    VTRS
9DQL          LDX   0  ACOMMUNE1(2) 
9F==          ANDN  0  FAIL                [SEE IF FAIL IS SET  
9FPW          BNZ   0  V2                  [AND J IF IT IS AS LINK IS OK
9G9G    V3    LDN   0  1
9GP6          ADJUSTLK 3                   [UPDATE LINK 
9H8Q    V2    LDX   2  3
9HNB          FPUT                         [SET ACTIVITY GOING AGAIN
9J82    R30B
9JML    #SKI  CPERFCHAP 
9K7=    (   
9KLW          LDN   0  1
9L6G          SBS   0  ACOMMUNE7(2)        [REDUCE COUNT OF OUTSTANDING TRANSFER
9LL6    )   
9M5Q          BNG   5  XNCLFL   
9MKB          STOZ     BA5(2)   
9N52    XNCLFL  
9NJL          LDN   4  BSCHANAD(2)         [SEE IF ANYTHING LEFT
9P4=          TXU   4  BSBKCHAN(2)         [ON THE  PRIMARY QUEUE   
9PHW          BCS      R1                  [J IF THERE IS   
9Q3G    #UNS ICTON  
9QH6    (   
9R2Q     FIXTRA ASFBSTS1                   [USED BY BSPRI RESTORE TIME MACRO
9RGB          NULL                         [MENDED TO BRN ASFBSTS2  
9S22    )   
9SFL    #SKI  BSOPT 
9S^=    (   
9TDW          LDN   3  BSSCHAD(2)          [SEE IF ANYTHING ON THE  
9TYG          TXU   3  BSSCHAD(2)          [SECONDARY QUEUE 
9WD6          BCC      R30                 [J IF NOT
9WXQ    #   
9XCB    #     NOW TRANSFER THE CONTENTS OF THE SECONDARY QUEUE INTO THE 
9XX2    #     PRIMARY QUEUE AND REVERSE THE DIRECTION INDICATOR 
9YBL    #   
9YW=          NGN   0  1
9^*W          ERS   0  AWAY(2)             [INVERT DIRECTION INDICATOR  
9^TG          MOVE  3  2                   [MOVE PTRS TO FIRST&LAST QUEUE BLKS T
=2*6                                       [PRIMARY QUEUE BASE  
=2SQ          SMO      BPTR(3)             [UPDATE  
=3#B          STO   4  FPTR                [POINTERS IN 
=3S2          SMO      FPTR(3)             [FIRST AND LAST  
=4?L          STO   4  BPTR                [QUEUE BLOCKS
=4R=          STO   3  BSSCHAD(2)          [MAKE SECONDARY QUEUE
=5=W          STO   3  BSSBKCHN(2)         [EMPTY   
=5QG          BRN      R1                  [GO TO DO NEXT TRANSFER  
=6=6    )   
=6PQ    R30   COOR1    ,3                  [GO TO SLEEP-NOTHING MORE TO DO  
=79B          BRN      TO   
=7P2    #   
=88L    #UNS ICTON  
=8N=    (   
=97W     FIXTRA ASFBSTS2
=9MG    #   
==76    #     WHEN THE ALTERNATIVE OPTIMISING ROUTINE FOR   
==LQ    #     ICT IS IN USE WE NEED TO TRANSFER THE FIRST   
=?6B    #     TRANSFER ON SECONDARY QUEUE TO PRIMARY IF 
=?L2    #     PRIMARY QUEUE EMPTY   
=#5L    #   
=#K=          LDN   0  BSSCHAD(2)          [SEE IF ANYTHING ON THE  
=*4W          LDX   3  BSSCHAD(2)          [SECONDARY QUEUE 
=*JG          BXE   3  0,R30               [J IF NOT
=B46          DERING   3                   [REMOVE FIRST TRANSFER FROM PRIMARY Q
=BHQ          LDX   1  BSCHANAD(2)         [AND PUT ON  
=C3B          STO   3  BSCHANAD(2)         [PRIMARY QUEUE   
=CH2          STO   3  BSBKCHAN(2)  
=D2L          STO   1  FPTR(3)  
=DG=          STO   1  BPTR(3)  
=D^W          BRN      R1                  [GO TO DO TRANSFER   
=FFG    #   
=F^6    )   
=GDQ    #   
=GYB    #   
=HD2    V1    ANDN  0  BONL 
=HXL          BNZ   0  V2                  [J IF ONLINE 
=JC=          BRN      VTRS                [ J TO TEST FOR READ SWAP
=JWW    R27   ANDN  0  BOBJ+BPAGE+ASWAP    [DON'T LOOK FOR SWAPWAIT BIT IF NOT  
=KBG                                       [ANY OF THESE
=KW6          BZE   0  V4A  
=L*Q     TRANSFIX CALL 0,PCA               [WAKE UP PCA IF NECESSARY
=LTB    V4A   LDX   4  FPTR(3)             [GET PTR TO NEXT 
=M*2          FREECORE 3                   [FREE BSTB/BQBLK 
=MSL    V4    LDX   0  ACOMMUNE1(2) 
=N#=          ANDX  0  BIT10               [SEE IF BACKWAIT IS WAITING  
=NRW          BZE   0  R30B                [J IF NOT - SEE IF ANYTHING ELSE TO D
=P?G          LDX   3  4
=PR6    X8A   LDX   3  BPTR(3)             [OTHERWISE LOOK BACK FOR WAITING 
=Q=Q          LDX   6  ATYPE(3)            [ACTIVITY
=QQB          TXL   6  CACT 
=R=2          BCS      X8A                 [NOT AN ACTIVITY-KEEP LOOKING
=RPL          BRN      V2                  [J TO FPUT   
=S9=    #   
=SNW    #   
=T8G    #   
=TN6    #     THIS  SECTION DEALS WITH CHAPTER CHANGES. 
=W7Q    #   
=WMB    #SKI JSKI10 
=X72    (   
=XLL    #     IN GEORGE 4 THERE IS A TEMPORARY LUMP OF CODE TO DEAL WITH
=Y6=    #     HSD READ FAILS ON 1904A,1904S AND 1903T PROCESSORS.  THE CODE 
=YKW    #     STARTS CHAPTER TRANSFERS ON 8 WORD CORE ADDRESS BOUNDARIES - THIS 
=^5G    #     IS A HARDWARE PROBLEM WHICH IS NOT GOING TO BE FIXED. 
=^K6    #     BY TEMPORARY WE MEAN THAT THE CODE SHOULD EVENTUALLY BE REPLACED  
?24Q    #     BY SOMETHING MORE EFFICIENT.  ONLY CHAPTER TRANSFERS FROM HSD ARE 
?2JB    #     DEALT WITH IN THIS WAY,ALTHOUGH FILESTORE TRANSFERS TO AND FROM   
?342    #     THE DRUM SHOULD EVENTUALLY BE HANDLED ALSO.   
?3HL    #   
?43=    )   
?4GW    R5    LDCT  0  #777                [SET MODE TO READ
?52G          DCA      1,ANDS,0,MODE       [SET MODE TO READ
?5G6          LDX   6  ALINK1(3)           [SEGMENT NUMBER  
?5^Q    #SKI  CLINK 
?6FB          SRL   6  12                  [X6 HAS CHAP NUMBER  
?6^2          SMO      6
?7DL          LDXC  4  KTAB                [PICK UP TABLE ENTRY 
?7Y=          BCS      T302                [AND JUMP IF CHAPTER ALREADY IN CORE 
?8CW          LDX   5  ACOMMUNE2(2)        [TOTAL LENGTH OF CHAPTER 
?8XG    #SKI JSKI10<1$1 
?9C6          TRANSFIX CALL 3,XGETCHAP  
?9WQ    #SKI JSKI10 
?=BB    (   
?=W2          LDX   7  5
??*L          ADX   7  BSTSPROC            [ROUND UP IF NECESSARY   
??T=          TRANSFIX CALL 3,XGETCHAP  
?##W          LDCT  7  #200                [REPLACE WHAT WE HAVE OVERWRITTEN
?#SG    )   
?*#6          LDX   1  CPPTR(2) 
?*RQ          DCA      1,STO,5,COUNT       [MAX LENGTH OF TRANSFER  
?B?B          FINDCORE 3                   [GET POINTER TO CHAPTER  
?BR2          LDX   0  GCHTY
?C=L          NAMEX    3                   [NAME BSTB/CHAPTER   
?CQ=          STO   6  BACK1(3)            [SEGMENT NUMBER  
?D9W          STO   4  BACK2(3)            [BACKING STORE ADDRESS OF CHAPTER
?DPG          LDX   4  ACOMMUNE3(2)        [X4=0 IF ONLY ONE TRANSFER   
?F96          BZE   4  TC1                 [J IF ONLY ONE TRANSFER  
?FNQ          DCA      1,STO,4,COUNT       [LENGTH OF FIRST TRANSFER TO CA  
?G8B    TC1   LDX   0  ACOMMUNE4(2)        [DATUMISED BS ADDRESS OF FIRST TRAN  
?GN2          DCA      1,STO,0,DTSA        [TO CONTROL AREA 
?H7L          TXU   3  GFIXCHAP            [TEST IF CHAPTER JUST GOT IS IN THE  
?HM=    #SKI JSKI10<1$1 
?J6W    (   
?JLG          BCS      R10                 [FIXED CHAPTER SPACE 
?K66          NGN   6  1                   [X6 -VE IF FIXED CHAPTER SPACE   
?KKQ          BRN      R10A                [J TO MISS OUT LOCK  
?L5B    )   
?LK2    #SKI JSKI10 
?M4L    (   
?MJ=          BCS      R10L                [FIXED CHAPTER SPACE 
?N3W          NGN   6  1                   [X6 -VE IF FCS   
?NHG          BRN      R10AL               [MISS OUT LOCK   
?P36    R10L  LOCK     3
?PGQ    R10AL LDN   3  A1(3)               [CORE ADDRESS
?Q2B          ADX   3  BSTSPROC            [ROUND UP IF NECESSARY   
?QG2          BRN       R8A                [GO TO DO THE PERI   
?Q^L    )   
?RF=    R22   BZE   4  TJH8                [J IF LAST TRANSFER  
?RYW          LDX   1  CPPTR(2) 
?SDG          DCA      1,SBX,5,COUNT       [LENGTH OF NEXT TRANSFER 
?SY6          DCA      1,LDX,3,COUNT
?TCQ          DCA      1,ADX,3,CTSA        [NEW CORE ADDRESS
?TXB          DCA      1,STO,5,COUNT       [NEW LENGTH TO CA
?WC2          LDX   0  ACOMMUNE5(2)        [DATUMISED BS ADDRESS OF 2ND TRANSFER
?WWL          DCA      1,STO,0,DTSA        [TO CONTROL AREA 
?XB=          LDN  4  0 
?XTW          BRN      R8A                 [GO TO DO SECOND PERI
?Y*G    TJH8
?YT6    #SKI JSKI10 
?^#Q    (   
?^SB          LDX   0  BSTSPROC 
#2#2          BZE   0  NOT8                [NO HSD OR 4A,4S, OR 3T  
#2RL          LDX   3  ACOMMUNE2(2)        [TOTAL LENGTH OF CHAPTER 
#3?=          LDX   2  FPTR(2)             [PTR TO CHAPTER BLOCK
#3QW          SBS   0  ALOGLEN(2)          [PM DOES CHECKSUM ON ALOGLEN 
#4=G          LDN   0  A1B(2)              [=16 
#4Q6          LDN   1  A1(2)               [ADDRESS TO MOVE TO  
#59Q          TXL   3  B513 
#5PB          BCS       XL513              [J IF CHAPTER LESS THAN 513 WORDS
#692          SBN   3  512  
#6NL          MOVE  0  0(3)                [MOVE FIRST HALF OF CHAPTER UP   
#78=          ADX   0  3                   [UPDATE CORE PTRS
#7MW          ADX   1  3
#87G          LDN   3  512                 [LAST 512 WORDS..
#8M6    XL513 MOVE  0  0(3)                [.. OR FIRST AND ONLY
#96Q          LDX   2  FX2                 [RESET THINGS
#9LB          LDX   3  BSCHANAD(2)  
#=62          SBN   3  CHAINADD 
#=KL    NOT8
#?5=    )   
#?JW          LDX   4  FPTR(2)             [POINTER TO CHAPTER  
##4G          BNG   6  TC2                 [J IF IN FIXCHAP-NO NEED TO UNLOCK   
##J6          UNLOCK   4                   [UNLOCK CHAPTER  
#*3Q          FIXTRA   BSPCHEC1 
#*HB          NULL  
#B32    TC2   CHAIND   4,BCHAP             [AND CHAIN IN CHAPTER CHAIN  
#BGL          LDX   1  ALINK1(3)           [SEGMENT NUMBER  
#C2=    #SKI  CLINK 
#CFW          SRL   1  12   
#C^G          ORX   4  GSIGN               [IN CORE BIT 
#DF6          STO   4  KTAB(1)             [TO CHAPTER TABLE
#DYQ          FIXTRA   BSCHAPCK 
#FDB          NULL  
#FY2    T302  LDN   3  CHAINADD(3)  
#GCL          OFFQUE   3                   [DECHAIN  ACTIVITY BLOCK 
#GX=          SBN   3  CHAINADD 
#HBW          ERS   7  BA1(3)              [REMOVE CHAPTER CHANGE BIT   
#HWG          BPZ   6  V2                  [JIF NOT FIZCHAP TO FPUT 
#JB6    #SKI JPSCF  
#JTQ    (   
#K*B          OFF FXCHAPIN                 [FIXED CHAP SPACE NOW FREE   
#KT2          FON FCXWAIT                  [WAKE UP THE OTHER ACTIVITY  
#L#L    )   
#LS=    T301  LDN   0  BSCHANAD(2)         [OTHERWISE SEE IF ANYTHING ELSE TO DO
#M?W    #SKI  BSOPT 
#MRG    (   
#N?6          LDN   1  BSSCHAD(2)   
#NQQ          TXU   1  BSSCHAD(2)   
#P=B    )   
#PQ2          TXU   0  BSCHANAD(2)  
#Q9L    #SKI  JPSCF-1   
#QP=          BCC       V2                 [J TO FPUT IF NO MORE
#R8W    #SKI  JPSCF 
#RNG    (   
#S86          BCS      V2T                 [BSA MUST WAIT IF MORE TO DO 
#SMQ          LDN   0  1                   [BSUN OF ICF 
#T7B          TXU   0  BACK2(2) 
#TM2          BCS      T303                [J IF NOT ICF
#W6L          LDX   0  BRADSPLTBSU         [BSUN OF SCF 
#WL=          BZE   0  V2                  [J IF SCF NOT RUNNING
#X5W          SBN   0  1
#XKG          BZE   0  V2                  [OR IF ICF=SCF   
#Y56          ADN   0  1
#YJQ    T303  SBX   2  FX2  
#^4B          BNZ   2  V2                  [J IF LOOKED AT BOTH BSAS
#^J2          FINDBSA  ,0                  [GET PTR TO OTHER BSA
*23L          BRN      T301 
*2H=    )   
*32W    V2T   LDCT  7  #400 
*3GG          LDX   2  FX2                 [MKR TO STOP BSQ FPUTTING THE BSA
*426          ORS   7  AWORK2(2)           [..DURING THE COOR2  
*4FQ          LDX   2  3                   [PTR TO ACTIVITY 
*4^B          FPUTX                        [PUT ON HEAD OF K3 TO AVOID  
*5F2                                       [CHAPTER TGRASHING   
*5YL          COOR2    ,3                  [LET THIS ACTIVITY HAVE A GO IN  
*6D=                                       [THE FIXED CHAPTER SPACE 
*6XW          ERS   7  AWORK2(2)           [CLEAR MARKER
*7CG          BRN      R30B 
*7X6    #   
*8BQ    #   
*8WB    #     THE CURRENT TRANSFER HAS FAILED.  
*9B2    #   
*9TL    #     CHECK REPLIES FROM EXECUTIVE .
*=*=    #   
*=SW           FIXTRA   BSPCHEC2
*?#G        NGNC  4  1  
*?S6    R21A  LDN   4  0                   [X4=1 IF CHAP CHECKSUM FAIL  
*#?Q          BZE   6  XNCC 
*#RB          MHUNT    3,BSTB,CHAPTER      [S.E.A. IF NOT FOUND 
**?2          TXU   3  GFIXCHAP            [IN FIXED CHAPTER SPACE? 
**QL          BCS      XNFCS               [J IF NOT
*B==          LDN   2  BCHAP
*BPW          CHAIN 3,BPTR(2)              [PUT AT END OF CHAPTER CHAIN 
*C9G          OFF FXCHAPIN                 [FIXED CHAP SPACE NOW FREE   
*CP6          FON FCXWAIT                  [WAKE UP OTHER ACTIVITY  
*D8Q          BRN      XNCC 
*DNB    XNFCS LDX   1  ASIZE(3) 
*F82          LDX   0  AFLAG(3) 
*FML          ANDN  0  2                   [FROZEN CHAPTER? 
*G7=          BZE   0  XNFCNF              [J IF NOT
*GLW          SBS   1  FREZCHAP            [REDUCE FROZEN CHAPTER SIZE  
*H6G          BRN      XNFCFR   
*HL6    XNFCNF  
*J5Q          SBS   1  ACHAP               [REDUCE CURRENT TOTAL CHAPTER SIZE   
*JKB    XNFCFR  
*K52          FREECORE 3                   [RELEASE THE SPACE   
*KJL    XNCC  LDN   1  4                   [X1=4 MEANS CHCKSUM FAIL 
*L4=          BNZ   4  TFAIL               [J IF CHAPTER CHECKSUM FAIL  
*LHW          LDCH  1  CPRW1(2)            [REPLY TO BOTTOM 6 BITS  
*M3G          BZE   1  TFL2                [J IF NOT TRUE FAIL - SHORT TRANSFER 
*MH6          ANDN  1  1
*N2Q          BNZ   1  QINOP               [J IF INOPERABLE 
*NGB          LDCH  1  CPRW1(2)            [LOAD REPLY AGAIN
*P22          SBN   1  #14  
*PFL          BNZ   1  QCYL                [J IF NOT MULTIACCESS FAIL   
*P^=    QDR   LDN   1  1
*QDW          DCA   ,LDEX,0,MODE
*QYG          BNZ   0  TFL3 
*RD6          ADN   1  1
*RXQ          BRN      TFL3 
*SCB    QINOP BUTTONUP BA2(2)              [SIMULATED ENGAGE BUTTON EVENT   
*SX2          LDX   1  GSIGN
*TBL    TFL3  LDX   0  ACOMMUNE1(2) 
*TW=          ANDN  0  BONL+FLAW
*W*W          BNZ   0  R21                 [JUST REPORT INOP IF ONLINE  
*WTG          BRN      TFAIL
*X*6    QCYL  SBN   1  #4   
*XSQ          BZE   1  TEOC                [END OF CYLINDER    B1=1 
*Y#B          SBN   1  #20  
*YS2          BZE   1  TFAIL               [UNTERMINATED TRANSFER  B0=1 
*^?L    NINOP LDN   1  1
*^R=          LDX   0  ACOMMUNE1(2) 
B2=W          ANDN  0  BONL+FLAW
B2QG          BNZ   0  R21                 [DON'T OUTPUT MESSAGES IF EXOFILE
B3=6          DCA      ,LDEX,0,MODE 
B3PQ          BNZ   0  TFL1                [OR WRITE
B49B          ADN   1  1
B4P2    TFL1  LDCH  0  CPRW1(2) 
B58L          SBN   0  4
B5N=          BZE   0  TFAIL               [UNCORRECTED ERROR      B3=1 
B67W          LDX   3  AWORK1(2)           [DEVICE TYPE 
B6MG          ANDN  3  #7777               [ISOILATE DEVICE TYPE
B776          SBN   3  9
B7LQ          BZE   3  TERR                [J IF SLOW DRUM B0,B3,B5 ONLY ARE VAL
B86B          SBN   0  4
B8L2          BZE   0  TFAIL               [TRACK FAULTLY          B2=1 
B95L          SBN   0  #14  
B9K=          BZE   0  TFL2                [STANDARD INTERFACE PARITY FAIL B1=B3
B=4W          SBN   3  16   
B=JG          BZE   3  TERR                [J IF HD-NO MORE VALID REPLIES   
B?46          ADN   3  12   
B?HQ          BNZ   3  TERR                [J IF ED-NO MORE VALID REPLIES   
B#3B          ADN   0  18                  [POSITION FAIL (LACK OF BOOST PRESSUR
B#H2          BNZ   0  TERR                [J IF NOT
B*2L    TFL2  LDN   1  2
B*G=          BRN      TFAIL
B*^W    TEOC  LDX   1  CPPTR(2)            [PTR TO DEVICE LIST  
BBFG          DCA      1,LDX,0,CTSA        [CHECK COUNT IS OK IN REPLY WORD 
BB^6          DCA      1,ADX,0,COUNT       [
BCDQ          ANDX  0  BSB18
BCYB          LDX   1  CPRW1(2)            [REPLY   
BDD2          ANDX  1  BSB18
BDXL          SBX   0  1
BFC=          BPZ   0  TFL2                [J IF REPLY OK - DON'T BREAK 
BFWW    TERR  LDN   1  0
BGBG    #   
BGW6    #     AT THIS STAGE ACTION DEPENDS ON X1:-  
BH*Q    #              X1=0    OUTPUT MESSAGES AND GEOERR   
BHTB    #              X1 -VE  INOPERABLE   
BJ*2    #              X1=1    OUTPUT MESSAGES AND TAKE WRITE FAILURE ACTION#   
BJSL    #              X1=2    OUTPUT MESSAGES WITH "PLEASE RE-ALLOCATE"
BK#=    #              X1=3    OUTPUT MESSAGES ONLY,BEFORE REPEATING PERI   
BKRW    #              X1=4    OUTPUT MESSAGES WITH "CHAP CHECKSUM FAIL**"  
BL?G    #   
BLR6    #   
BM=Q    TFAIL   
BMQB          BNG   1  WAIT                    [RETRY INOP TRANSFERS
BN=2          LDX   0  ACOMMUNE1(2) 
BNPL          ANDN  0  BPAGE
BP9=          BZE   0  WAIT                [ J NOT PAGE TRANSFER
BPNW          LDN   1  2                   [ SET PLEASE REALLOCATE MARKER   
BQ8G    WAIT
BQN6     TRANSFIX CALL  7,XGETCON   
BR7Q          STO   1  ACC3(2)             [SAVE X1 
BRMB          LDN   3  JPMESS              [ADDRESS OF FIX MESSAGE  
BS72          BNG   1  ZINOP               [J IF INOPERABLE 
BSLL          LDN   3  JPMESS1             [ADDRESS OF FAIL MESSAGE 
BT6=    ZINOP LDX   1  CPPTR(2)            [PTR TO DEVICE LIST  
BTKW          TRANSFIX  CALL  0,JPG        [GEOG NO TO FIX OR FAIL MESSAGE  
BW5G          LDN   5  FCOUTBUF+1          [START OF MESSAGES IN OUTPUT BUFFER  
BWK6     TRANSFIX CALL  6,YMVCH            [PUT FIX OR FAIL MESS TO O/P BUFFER  
BX4Q          LDX   0  CPRW1(2)            [SAVE REPPLY WORD
BXJB          STO   0  BA4(2)   
BY42          LDX   0  ACC3(2)  
BYHL          BNG   0  WRITE               [J TO OUTPUT FIX IF INOPERABLE   
B^3=          DCA      ,LDX,5,DTSA         [HARDWARE ADDRESS
B^GW          STO   5  BSL5                [REMEMBER FOR LATER ON   
C22G          LDX   1  AWORK1(2)           [DEVICE TYPE 
C2G6          ANDN  1  #7777
C2^Q          SBN   1  6
C3FB          BNZ   1  TRW1                [J NOT EDS   
C3^2          SLC   56 6
C4DL          SLL   5  2
C4Y=          SLC   56 4
C5CW          ANDN  6  #377                [TRACK TO X6 
C5XG          SLL   5  2
C6C6          SLL   45 4
C6WQ          SLL   5  3
C7BB          SRL   45 4
C7W2          SRL   5  17                  [X5 CONTAIN BLOCK
C8*L          BRN      TW2  
C8T=    TRW1  SBN   1  3
C9#W          LDN   3  BMESS1              [FAIL MESSAGE FOR SLOW DRUM  
C9SG          BZE   1  TRW2                [J IF SLOW DRUM  
C=#6          LDN   3  BMESS2              [FAIL MESSAGE FOR HIGHSPEED DRUM 
C=RQ          SBN   1  16   
C??B          BZE   1  TRW2                [J IF HS DRUM
C?R2          LDN   6  0                   [EDS 30 ETC  
C#=L          SLC   56 12   
C#Q=          SRL   5  12   
C*9W    TW2 
C*PG     TRANSFIX CALL  2,TOCT             [BLOCK NO. TO OCTAL  
CB96          STO   7  BMESS+6             [AND STORE IN O/P BUFFER 
CBNQ          STO   0  BMESS+7  
CC8B          LDX   5  6
CCN2     TRANSFIX CALL  2,TOCT             [TRACK TO OCTAL  
CD7L          STO   0  BMESS+3             [AND STORE IN BUFFER 
CDM=          LDN   3  BMESS               [ADDRESS OF TRACK/BLOCK MESSAGE  
CF6W          BRN      TRW3A
CFLG    TRW2
CG66     TRANSFIX CALL  2,TOCT             [WORD OR BLOCK TO OCTAL  
CGKQ          STO   7  3(3)                [STORE   
CH5B          STO   0  4(3)                [IN MESSAGE  
CHK2    TRW3A   
CJ4L     TRANSFIX CALL  6,ZMVCH            [MESSAGE TO OUTPUT BUFFER
CJJ=          LDX   2  FX2  
CK3W          LDX   0  AWORK1(2)           [DEVICE TYPE 
CKHG          ANDN  0  #7777
CL36          ORN   0  #400                [REPLACER BIT
CLGQ          SLL   0  15   
CM2B          STO   0  BSL1                [
CMG2          LDX   1  CPPTR(2) 
CM^L          DCA      1,LDEX,0,MODE
CNF=          ORS   0  BSL1                [NORMAL TYPE/MODE
CNYW          LDX   0  CPRW1(2) 
CPDG          STO   0  BSL2                [REPLY   
CPY6          STO   0  BA5(2)   
CQCQ          DCA      1,LDX,0,COUNT       [COUNT   
CQXB          STO   0  BSL3                [COUNT   
CRC2          DCA      1,LDX,0,CTSA 
CRWL          STO   0  BSL4                [CORE ADDRESS
CSB=          LDN   4  5                   [LENGTH OF CONTROL AREA  
CSTW          LDN   1  BSL1                [FIRST WD OF CONTROL AREA
CT*G          LDX   3  5                   [ADDRESS OF NEXT CHARACTER IN O/P BUF
CTT6    TCAN  LDN   0  #32                 [*   
CW#Q          DCH   0  0(3) 
CWSB          BCHX  3  £                   [UPDATE MOD  
CX#2          LDX   7  0(1)                [NO. TO BE CONVERTED TO OCTAL
CXRL          LDN   0  8                   [NO. OF CHARACTERS   
CY?=    XA    LDN   6  0
CYQW          SLL   67 3                   [NEXT CHARACTER  
C^=G          DCH   6  0(3)                [STORE IN BUFFER 
C^Q6          BCHX  3  £                   [UPDATE MOD  
D29Q          BCT   0  XA                  [J IF MORE CHARACTERS IN THIS WORD   
D2PB          LDN   0  #76  
D392          DCH   0  0(3)                [NEWLINE 
D3NL          BCHX  3  £
D48=          LDN   0  #32  
D4MW          DCH   0  0(3) 
D57G          BCHX  3  £
D5M6          ADN   1  1                   [UPDATE MOD FOR NEXT WORD IN CA  
D66Q          BCT   4  TCAN                [J IF MORE WORDS TO CONVERT  
D6LB          STO   3  FCOUTBUF            [REMEMBER LATEST POSITION IN BUFFER  
D762          LDX   0  ACC3(2)  
D7KL          SBN   0  2
D85=          BZE   0  READ                [J IF PLEASE REALLOCATE TO BE OP 
D8JW          SBN   0  2
D94G          BNZ   0  WRITA               [J NOT CHAPTER CHECKSUM FAIL 
D9J6          FIXTRA   BSPCHEC3 
D=3Q          NULL                         [CHAPRETRY PUTS LDN FOR MESS IN HERE 
D=HB          BRN      RCHF 
D?32    #   
D?GL    #     ONLY OUTPUT PLEASE REALLOCATE WHEN NOT IN EMS 
D#2=    #     AND FOR EDS ONLY  
D#FW    #   
D#^G    READ  BSON      EMSBIT,WRITA
D*F6          JPROP    CPPTR(2),WRITA,WRITA 
D*YQ          LDN   0  2
DBDB          ANDX  0  AWORK1(2)
DBY2          BZE   0  WRITA
DCCL          LDN   3  BMESS4              [PTR TO PLEASE REALLOCATE MSG
DCX=    RCHF
DDBW     TRANSFIX CALL  6,ZMVCH 
DDWG    WRITE LDX   3  5
DFB6    WRITA   
DFTQ     TRANSFIX CALL  7,XPERI            [DO CONSOLE PERI 
DG*B          LDX   6  ACC6(2)  
DGT2          LDX   3  ACC3(2)  
DH#L          LDCH  0  CPRW1(2)            [GET REPLY FROM CONSOLE  
DHS=          LDX   1  BA4(2)   
DJ?W          STO   1  CPRW1(2)            [IN PROPER PLACE 
DJRG          ANDN  0  5
DK?6          BZE   0  TOK                 [J IF CONSOLE PERI OK
DKQQ          LDX   1  3                   [ELSE RESET X1   
DL=B          BRN      WAIT                [AND TRY AGAIN   
DLQ2    TOK   FON      #50                 [WAKE UP ANYBODY WAITING FOR CONSOLE 
DM9L          BZE   3  X1                  [GEOERR IF ILLEGAL REPLY 
DMP=          BNG   3  TINOP              [J IF INOPERABLE  
DN8W          SBN   3  2
DNNG          LDN   5  0
DP86          BNG   3  TRW3                [J IF ONLINE OR WRITE
DPMQ          BNZ   3  TO                  [CHAPTER CHECKSUM REPEAT PERI
DQ7B    #   
DQM2    #     PLEASE RE-ALLOCATE WAS ONLY OUTPUT FOR EDS WHEN NOT IN EMS
DR6L    #     THE DISENGAGE LOOP IS ONLY ENTERED IN THESE CIRCUMSTANCES 
DRL=    #     ALL OTHER FAILS ARE DEALT WITH AS IF THEY HAD BEEN F5 TERM
DS5W    #   
DSKG          BSON      EMSBIT,ZTERM        [J IF EMS   
DT56          JPROP    CPPTR(2),ZTERM,ZTERM  [J IF FDS160/640   
DTJQ          LDN   0  2
DW4B          ANDX  0  AWORK1(2)
DWJ2          BZE   0  ZTERM               [J IF NOT EDS
DX3L    #   
DXH=    #     THE DISENGAGE LOOP. AFTER DISC IS DISENGAGED BSTS WAITS   
DY2W    #     FOR KARTCONT TO SAY DRIVE IS CORRECTLY ENGAGE 
DYGG    #     I.E.THE SAME DISC AS BEFORE IS ON DRIVE   
D^26    #     BEFORE THIS HAPPENS BSTS MUST LET ANY CHAPTER 
D^FQ    #     TRANSFERS AND KARTCONT'S READ OF SCA BE IMPLEMENTED   
D^^B    #   
F2F2          DISENGPER CPPTR(2)           [DISENGAGE DISC  
F2YL    TDIS  COOR2P   ,7   
F3D=          JENG     CPPTR(2),TDIS       [STILL ENGAGED WAIT  
F3XW          BUTTONUP BA2(2)              [SIMULATE ENGAGE BUTTON EVENT
F4CG          LDN   0  BKARTWT             [SET WAIT FOR KARTCONT BIT   
F4X6          ORS   0  BSFAIL(2)
F5BQ    TMSG
F5WB     TRANSFIX  CALL  7,XOUTFIX         [OUTPUT UNIT N FIX   
F6B2    STIME LDX   0  JTIME               [LOAD NO. OF SPRING CLEANS   
F6TL          STO   0  BA4(2)   
F7*=    TCOOR COOR2P   ,7   
F7SW          LDX   0  BSFAIL(2)
F8#G          ANDN  0  CGINPROG 
F8S6          BNZ   0  XR1                 [J IF CARTRIDGE COMMAND IN PROGRESS  
F9?Q          SMO      CPPTR(2) 
F9RB          LDX   0  JK52E
F=?2          ANDN  0  #40  
F=QL          BNZ   0  TERM                [J  IF TERMINATE BIT SET 
F?==     TRANSFIX  CALL  7,XFIND           [SEARCH FOR ANY BONL OR BLFAIL   
F?PW          BNG   5  RSCA                [TRANSFERS.J IF ANY FOUND
F#9G          JENG     CPPTR(2),TENG       [J IF DEVICE ENGAGED 
F#P6          LDX   0  JTIME               [LOAD NO. OF SPRING CLEANS   
F*8Q          SBX   0  BA4(2)              [SUBTRACT PREVIOUS READING   
F*NB          BPZ   0  XPOS 
FB82          NGX   0  0                   [ACCOUNTS FOR CHANGE AT MIDNIGHT 
FBML    XPOS  SBN   0  200                 [200 SPRING CLEANS ELAPSED   
FC7=          BNG   0  TCOOR               [NO  
FCLW          BRN      TMSG                [YES - RE-OUTPUT UNIT N FIX  
FD6G    #   
FDL6    TINOP BSON     EMSBIT,STIME        [DON'T WANT TO SET BKARTWT IF EMS
FF5Q          LDN   0  BKARTWT             [SET WAIT FOR KARTCONT BIT   
FFKB          ORS   0  BSFAIL(2)
FG52          BRN      STIME
FGJL    #   
FH4=    TENG  LDX   0  BSFAIL(2)           [IS WAIT FOR KARTCONT BIT SET
FHHW          ANDN  0  BKARTWT  
FJ3G          BZE   0  TO                  [NO  
FJH6     TRANSFIX  CALL  7,XFINDCH         [SEARCH FOR ANY CHAPTER TRANSFERS
FK2Q          BNG   5  TO                  [J IF FOUND TO IMPLEMENT 
FKGB          BRN      TCOOR               [NONE FOUND WAIT 
FL22    #   
FLFL    RSCA  LDX   0  ACOMMUNE1(2)        [IS THIS TRANSFER KARTCONTS  
FL^=          ANDN  0  BONL                [READ OF THE SCA 
FMDW          BZE   0  TRW3                [NO  
FMYG          LDX   0  ACOMMUNE1(2) 
FND6          ANDN  0  BLFAIL   
FNXQ          BZE   0  TRW3                [NO  
FPCB          BRN      TO                  [YES SO J TO IMPLEMENT   
FPX2    #   
FQBL    #   
FQW=    #   
FR*W    #   
FRTG    #       THIS MODULE DEALS WITH TRANSFER FAILS THAT GO THROUGH THE   
FS*6    #     "PLEASE REALLOCATE" LOOP, AND HAVE BEEN TERMINATED BY OPERATOR
FSSQ    #     INTERVENTION. A MESSAGE IS OUTPUT TO THE CONSOLE AND THE  
FT#B    #     FAILING ACTIVITY IS QUEUED ON THE TRANSFER FAIL ACTIVITY. 
FTS2    #       IF TERMINATE IS REQUESTED FOR INOPERABLE FAILS WE CHECK BA5 
FW?L    #     FOR A GENUINE READ FAIL, AND REJECT REQUESTS IF NO SUCH FAIL  
FWR=    #     HAS OCCURRED. 
FX=W    #   
FXQG    TERM
FY=6          LDN   0  #40  
FYPQ          SMO      CPPTR(2) 
F^9B          ERS   0  JK52E               [ CLEAR TERMINATE BIT
F^P2          LDX   0  BA5(2)              [ ZERO IF INOP   
G28L          BZE   0  TCOOR
G2N=    XTERM   
G37W    #SKI  G4
G3MG    (   
G476          LDX   0  ACOMMUNE1(2) 
G4LQ          ANDN  0  BPAGE               [ FOR PAGE TRANSFER FAILS
G56B          BNZ   0  X1                  [ THER IS NO RECOVERY ACTION 
G5L2    )   
G65L     TRANSFIX CALL  7,XGETCON          [GET THE CONSOLE 
G6K=          LDN   3  BTERMESS            [ TERMINATED MESSAGE 
G74W          LDX   1  CPPTR(2) 
G7JG       TRANSFIX  CALL  0,JPG           [ GEOG. NO. TO MESSAGE   
G846          LDN   5  FCOUTBUF+1   
G8HQ     TRANSFIX CALL  6,YMVCH            [MOVE TO OUTPUT BUFFER   
G93B          LDX   3  5
G9H2     TRANSFIX CALL  7,XPERI            [OUTPUT THE MESSAGE  
G=2L          LDCH  0  CPRW1(2) 
G=G=          BNZ   0  XTERM
G=Q4 ...      FON      #50                 [WAKE UP ANYBODY WAITING CONSOLE 
G=^W    ZTERM STOZ     BA5(2)   
G?FG    #   
G?^6    #   
G#DQ    #     IF THE FAILED TRANSFER IS ONLINE THE REPLY IS SET IN THE CALLING  
G#YB    #     ACTIVITY. 
G*D2    #     IF THE FAILED TRANSFER IS A WRITE TO THE FILESTORE THE CURRENT
G*XL    #     FAIL LIST IS UPDATED AND THE TRANSFER FAIL ACTIVITY IS WOKEN UP.  
GBC=    #     SWAP TRANSFERS ARE DEALT WITH AS ONLINE   
GBWW    #   
GCBG    #   
GCW6    #   
GD*Q    TRW3
GDTB          LDX   3  BSCHANAD(2)         [REFIND QBLK 
GF*2          SBN   3  CHAINADD 
GFSL    R21   LDX   0  ACOMMUNE1(2) 
GG#=          DCA      ,LDEX,7,MODE 
GGRW          ANDN  0  BOBJSET  
GH?G          BNZ   0  Q3                  [JUMP IF SET OR OP   
GHR6          LDCT  0  #200 
GJ=Q          ANDX  0  ACOMMUNE1(2) 
GJQB          BNZ   0  X19A                 [ J IF CHAPTER CHANGE   
GK=2          UNLOCK   FPTR(3)             [UNLFCK READ OR WRITE BLOCK  
GKPL    Q3    LDX   0  ACOMMUNE1(2) 
GL9=          ANDN  0  BONL+ASWAP   
GLNW          BNZ   0  X2                  [J IF ONLINE OR SWAP 
GM8G          BZE   7  XRF                 [ J IF READ FAIL 
GMN6          LDCT  0  BFB  
GN7Q          ADN   0  BNOFB
GNMB          ORS   0  BSFAIL(2)           [SET BITS
GP72          LDX   0  ACOMMUNE1(2) 
GPLL          ANDN  0  BLFAIL              [SPECIAL 'BLANKET' FAILURE ACTION
GQ6=          BZE   0  XC                  [TO BE TAKEN. J IF NOT.  
GQKW          LDX   0  ACOMMUNE2(2) 
GR5G          ANDN  0  #377 
GRK6          STO   0  BLANKF1             [STO LFN 
GS4Q          BPZ   5  XNBF 
GSJB          LDCT  0  #400 
GT42          ORS   0  BLANKF1             [SET BO FOR USE BY BLANKET   
GTHL    XNBF
GW3=          LDX   0  ACOMMUNE3(2) 
GWGW          STO   0  BLANKF2             [STO BLOCK NO.   
GX2G          LDX   1  FPTR(2)  
GXG6          LDN   0   1   
GX^Q          ADS   0  A1(1)               [UPDATE CURRENT FAIL COUNT   
GYFB          BRN      X3   
GY^2    XC    LDX   1  FPTR(2)             [BSTB/BFAIL BLOCK
G^DL          FSHCODE  AORB 
G^Y=    (   
H2CW          LDX   0  A1(1)
H2XG          BPZ   0  XD   
H3C6          COOR2 
H3WQ          BRN      XC   
H4BB    XD  
H4W2    )   
H5*L          NGN   7  1
H5T=          LDN   6  1
H6#W    X5    SMO      6
H6SG          TXU   7  A1(1)               [SEE IF END OF LIST  
H7#6          BCC      X4                  [J IF YES
H7RQ          ADN   6  2
H8?B          BRN      X5   
H8R2    X4    ADN   6  3
H9=L          LDX   5  GSIGN
H9Q=          TXL   6  ALOGLEN(1)          [ANY SPACE LEFT? 
H=9W          BCS      X6                  [J IF SO 
H=PG          ORS   5  A1(1)               [SET BEING TAMPERED WITH BIT 
H?96          LDN   4  AFAILEX             [LENGTH BLOCK TO BE EXTENDED 
H?NQ          ADX   4  ALOGLEN(1)   
H#8B          LDX   3  1
H#N2          TRANSFIX CALL 5,XALTLEN   
H*7L          LDX   5  GSIGN
H*M=          LDX   1  FPTR(2)  
HB6W          ERS   5  A1(1)               [FREE FOR ALL TO USE NOW 
HBLG          LDX   3  BSCHANAD(2)         [QBLK
HC66          SBN   3  CHAINADD 
HCKQ    X6    SBN   6  3
HD5B          LDN   0  1
HDK2          ADS   0  A1(1)
HF4L          ADX   1  6
HFJ=          STO   5  A1+1(1)             [SET CURRENT FAIL BIT
HG3W          LDX   0  ACOMMUNE3(2) 
HGHG          ANDX  0  BSTSMASK            [BLOCK NO TO NEAREST BLOCK   
HH36          STO   0  A1(1)               [BLOCK NO
HHGQ          LDX   0  ACOMMUNE2(2) 
HJ2B          ANDN  0  #377                [GET THE LOGICAL FILE NUMBER 
HJG2          DSA   0  A1+1(1)             [PUT IN LFN  
HJ^L          STO   7  A1+2(1)             [-1  
HKF=    XRF 
HKYW          LDX   0  ACOMMUNE1(2) 
HLDG          ANDN  0  FAIL 
HLY6          BZE   0  X3                  [FAIL NOT TO BE DEALT WITH BY BSTS   
HMCQ          LDX   6  ACOMMUNE1(2) 
HMXB          BPZ   6  X19A                [JUMP TO FPUT TRANSFER FAIL ACTIVITY 
HNC2          BRN      X21A                [(IF NECESSARY) TO DEAL WITH FAIL
HNWL    #   
HPB=    #   
HPTW    X2    ANDN  0  BONL 
HQ*G          BNZ   0  X35                 [ J IF BONL TO SET FAILED BITS   
HQT6    [           FAILS ON SWAP TRANSFERS ARE DEALT WITH AS FOLLOWS :-
HR#Q          BZE   7  XRF                 [ - READ FAILS BY BSTS   
HRSB          BRN      X3                  [ - WRITE FAILS BY SWAPPING SYSTEM   
HS#2    X35 
HSRL    #UNSET  JSKI34  
HT?=    (   
HTQW          LDX   0  ACOMMUNE1(2) 
HW=G          ANDN  0  FLAW                 [DONT SET FAIL BITS IF FLAW 
HWQ6          BNZ   0  X3   
HX9Q    )   
HXPB          LDCT  0  BFB                 [ SET BACKING STORE FAIL BITS
HY92          ADN   0  BOFB 
HYNL          ORS   0  BSFAIL(2)
H^8=    X3    LDX   0  ACOMMUNE1(2) 
H^MW          ANDN  0  BOBJ+BSET
J27G          BNZ   0  X9   
J2M6          DCA      ,LDEX,0,MODE 
J36Q          BNZ   0  X9   
J3LB          FREECORE FPTR(3)             [FREE THE READ BLOCK 
J462    X9    LDN   3  CHAINADD(3)  
J4KL          OFFQUE   3
J55=          SBN   3  CHAINADD 
J5JW          LDX   7  CPRW1(2) 
J64G          LDX   0  ACOMMUNE1(2) 
J6J6          BNG   0  X8                  [J IF AUTO.  
J73Q          STO   7  ACOMMUNE9(3)        [REPLY TO ACTIVITY   
J7HB          BRN      V2                  [J TO FPUT THIS ACTIVITY 
J832    X8    LDCT  0  #100 
J8GL          ORS   0  ATRAN(3)            [FAILED BIT TO QBLK  
J92=          STO   7  ADBLKNO(3)          [STORE PERI REPLY IN QBLK
J9FW          LDX   4  3
J9^G          BRN      V4   
J=F6     LABFIX AX1 
J=YQ    X1    GEOERR   0,TRANFAIL          [CANNOT RECOVER FROM FAILURE 
J?DB    #END
^^^^ ...043466630003