BSQ867

(George Source)

Macros used: ADJUSTLK, BBS, BXE, BXGE, BXL, BXU, CHAIN, CLINK, COOR1, DATUMADD, DATUMBLK, DCA, DERING, DISENGPER, ENRING, FIXTRA, FON, FPUT, FPUTX, FREECORE, GEOERR, GETEMSCR, GETQUE, GPERI, HUNT2, HUNTW, JBUSY, JENVNOT, LABFIX, NAME, NAMEX, ONQUE, PULLINK, PUSHLINK, REQUE, SQOSS2, SWAP, TRACE, TRANSFIX

BSQ867.txt
22FL    #LIS  K0BSQ 
22^=    #SEG  BSQ60                        [BOB NICHOLSON   
23DW    #   
23YG    #   
24D6    #     THIS  SEGMENT IS CONCERNED WITH QUEUING TRANSFER REQUESTS TO  
24XQ    #     THE APPROPRIATE BACKING STORE ACTIVITY (BSA).THE INITALLY ENTRY   
25CB    #     IS AT P4 WHICH MERELY DUMPS THE ACCUMULATORS AND PRESERVES
25X2    #     POSSIBLE PARAMETERS IN EX4,EX5,EX6 AND EX7.THE MAIN ENTRY IS AT P1
26BL    #     THE CHAPTER CHANGE ENTRY IS AT BCHR   
26W=    #   
27*W    #   
27TG          FIXTRA   K1BSQ
28*6          LABFIX   AP4  
28SQ    P4    STO   2  BSP13               [PRESERVE X2 
29#B          LDX   2  FX2  
29S2          STO   3  ACC3(2)             [DUMP ACCS   
2=?L          STO   4  ACC4(2)  
2=R=          STO   5  ACC5(2)  
2?=W          STO   6  ACC6(2)  
2?QG          STO   7  ACC7(2)  
2#=6          STO   4  EX4                 [NAD PRESERVE POSSIBLE PARAMETER 
2#PQ          STO   5  EX5  
2*9B          STO   6  EX6  
2*P2          STO   7  EX7  
2B8L          LDX   2  BSP13               [RESTORE X2  
2BN=          EXIT  0  0
2C7W    #   
2CMG     LABFIX AP1 
2D76    P1    LDX   2  FX2  
2DLQ          STOZ     ACOMMUNE7(2)        [NO ADDITIVE MODE SPECIFIED  
2F6B     LABFIX AP2 
2FL2    P2    SQOSS2                       [DUMP LINK   
2G5L          STO   4  BA1(2)              [AND BA AREA 
2GK=          STO   5  BA2(2)   
2H4W          STO   6  BA3(2)   
2HJG          STO   7  BA4(2)   
2J46          LDX   7  BA1(2)   
2JHQ          SLC   7  7
2K3B          ANDN  7  #17  
2KH2          ORS   7  ACOMMUNE7(2)        [MODE OF TRANSFER
2L2L          LDN   4  0
2LG=          SLL   45 16                  [X4=LENGTH OF TRANSFER   
2L^W          SRL   5  16                  [X5=LOGICAL FILE NUMBER OR BSUN  
2MFG          LDX   0  BA1(2)   
2M^6          ANDN  0  BOBJ+BSET
2NDQ          BNZ   0  TB3                 [J IF OBJECT PROGRAM OR SET CORE 
2NYB          BZE   7  T13A                [J IF READ TRANSFER  
2PD2          LDX   1  FPTR(2)  
2PXL          NAME     1,BSTB,BWRITE
2QC=          BNZ   5  TB3                 [J IF BS HOME SPECIFIED IN PARAMETERS
2QWW          LDX   5  BACK1(1)            [LFN FROM WRITE BLOCK
2RBG          ORS   5  BA2(2)              [AND TO X5   
2RW6          LDX   6  BACK2(1)            [BLOCK NO.   
2S*Q          STO   6  BA3(2)   
2STB          BRN      TB3  
2T*2    #   
2TSL    #     RE-ENTER HERE IF THE GETCORE FOR THE READ BLOCK FAILED
2W#=    #     AND TRY AGAIN TO GET SOME CORE
2WRW    #   
2X?G          LABFIX   BP2D 
2XR6          LDX   4  BA2(2)   
2Y=Q          SRL   4  8                   [RESET LENGTH OF BLOCK   
2YQB          BRN      T13Z                [AND TRY TO GET CORE AGAIN   
2^=2    #   
2^PL    T13A  LDX   0  BA1(2)   
329=          ANDN  0  BUSE 
32NW          BNZ   0  T10                 [J IF BUSE SET   
338G    T13   PUSHLINK BSEN1               [CHANGE LINK IN CASE GETCORE FAILS   
33N6    T13Z  GETEMSCR 4                   [GET READ BLOCK  
347Q          PULLINK                      [PUT CORRECT LINK BACK IN ALINK2 
34MB          LDX   4  BA2(2)   
3572          SRL   45 8                   [X4=LENGTH OF TRANSFER   
35LL          SRL   5  16                  [X5=LFN OR BSUN  
366=          LDX   6  BA3(2)              [X6=BLOCK NO.
36KW          BRN      T11  
375G    T10   HUNTW    1,BSTB,BFREEW       [SEE IF FREE WRITE BLOCK 
37K6          BNG   1  T13                 [J IF NOT
384Q          LDX   0  ALOGLEN(1)   
38JB          SBX   0  4
3942          BPZ   0  T14                 [J IF THIS BLOCK IS BIG ENOUGH   
39HL          FREECORE  1                  [OTHERWISE FREE IT   
3=3=          BRN      T13                 [AND GET A NEW BLOCK 
3=GW    T14   CHAIN    1,2                 [PUT READ BLOCK BEHIND ACTIVITY  
3?2G    T11   LDX   1  FPTR(2)  
3?G6          NAME  1,BSTB,FLOUR
3?^Q          STO   5  BACK1(1)            [PUT IN RED TAPE 
3#FB          STO   6  BACK2(1) 
3#^2    TB3   LDX   0  BA1(2)   
3*DL          BPZ   0  T1                  [J NOT AUTO  
3*Y=          BRN      T4                  [J IF AUTONOMUS TO GET QBLK  
3BCW    #   
3BXG    #   
3CC6    #     RE-ENTER HERE IF THE GETQUE FAILED
3CWQ    #   
3DBB          LABFIX   AT4J 
3DW2          LDCT  0  2
3F*L          ANDX  0  BA1(2)              [TEST IF SWAPTRAN
3FT=          BZE   0  T4A                 [J IF NOT TRY GETQUE AGAIN   
3G#W          PULLINK                      [PUT PROPER LINK BACK IN ALINK2  
3GSG          FPUT                         [AND FPUT-GETQUE FAILED  
3H#6     TRANSFIX BRN,FQOB  
3HRQ    #   
3J?B    #     GETQUE FAILED FOR FILESTORE AUTONOMUS WRITE.  
3JR2    #     SINCE WAITING FOR CORE MAY RESULT IN READS TO THE SAME BLOCK  
3K=L    #     GETTING ISSUED BEFORE THE WRITE,THE TRANSFER IS MADE NON-AUTONOMUS
3KQ=    #     (I.E. BOTH MAY BE HELD UP WAITING FOR CORE-READ MAY GET IN ON FON 
3L9W    #      NOTE- THE CODE TO WHICH THIS COMMENT REFERS IS BEING RE-THUNK#   
3LPG    #   
3M96    #     TRY TO GET A NEW QBLK IF NO FQBLKS AVAILABLE  
3MNQ    #   
3N8B    T4    PUSHLINK BSEN2               [CHANGE LINK IN CASE GETQUE FAILS
3NN2          LDCT  0  2
3P7L          ANDX  0  BA1(2)              [TEST IF SWAPTRAN
3PM=          BZE   0  T4A                 [AND J IF NOT TO DO NORMAL GETQUE
3Q6W          GETQUE   SWAP                [ELSE DO SPECIAL GETQUE (NO WAITING) 
3QLG          BRN      T2                  [BACK TO MAIN PATH   
3R66    T4A   GETQUE                       [GET A QBLK  
3RKQ    T2    PULLINK                      [PUT CORRECT LINK BACK IN ALINK2 
3S5B          LDX   3  FPTR(2)             [GET POINTER TO QBLK 
3SK2    T5    LDCT  0  2
3T4L          ANDX  0  BA1(2)              [TEST IF SWAPTRAN
3TJ=          BZE   0  T4B                 [AND JUMP IF NOT-NO NEED TO UPDATE LI
3W3W          LDN   0  1
3WHG          ADJUSTLK 2                   [ADD ONE TO LINK 
3X36    T4B   LDX   0  BSP10               [NAME QBLK   
3XGQ          NAMEX    3                   [ABSTB/BQBLK 
3Y2B          STOZ     BACKCHAN(3)  
3YG2          LDN   0  BA1(2)              [MOVE DETAILS
3Y^L          LDN   1  ATRAN(3)            [OF TRANSFER 
3^F=          MOVE  0  5                   [TO QBLK 
3^YW          LDX   0  ACOMMUNE7(2)        [MODE OF TRANSFER
42DG          STO   0  BSMODE(3)           [..STORE IN BSTB/BQBLK   
42Y6    N1    LDX   4  BA2(2)              [RESET ACCUMULATORS  
43CQ          SRL   45 8                   [X4=LENGTH   
43XB          SRL   5  16                  [X5=LFN  
44C2          LDX   6  BA3(2)              [BLOCK NO
44WL    T1    LDX   0  BA1(2)   
45B=          ANDN  0  BONL 
45TW          BNZ   0  T25                 [J IF ONLINE 
46*G    #SKI  K6BSQ>99-99   
46T6    (   
47#Q          LDX   7  BA1(2)   
47SB          ANDX  6  BITS22LS            [REMOVE CORRUPT BLOCK MARK-IF ANY
48#2          LDX   2  6                   [BLOCK NO
48RL          LDN   0  BLN                 [MAKE SURE TRANSFER DOSNT GO BEYOND B
49?=          DVS   1  0
49QW          ANDN  7  ASWAP
4==G          BNZ   7  T15A                [J IF SWAP   
4=Q6          SBX   0  1
4?9Q          SLL   0  GSBSLOG-BLS         [MAX LENGTH FOR THIS TRANSFER
4?PB          SBX   0  4
4#92          BPZ   0  T15  
4#NL          GEOERR   0,BSLENGTH          [TRANSFER GOES BEYOND BLOCK  
4*8=    T15A  SBN   4  1
4*MW          TXL   4  BSSS 
4B7G          BCS      T15B 
4BM6          GEOERR   0,BIGSHEET          [TRANSFER LONGER THAN A SHEET
4C6Q    T15B  ADN   4  1
4CLB    T15   TXL   5  BLMP                [TEST LFN
4D62          BCS      T16  
4DKL          GEOERR   0,FNUM2BIG          [FILE NUMBER TOO BIG 
4F5=    )   
4FJW    T16   LDX   1  ALFTP               [POINTER TO LF TABLE 
4G4G          SLL   5  1
4GJ6          SMO      5
4H3Q          LDX   7  A1(1)               [GET ENTRY FROM LF TABLE 
4HHB    #SKI  K6BSQ>99-99   
4J32    (   
4JGL          BPZ   7  T17  
4K2=          GEOERR   0,NOSUCHLF          [ILLEGAL LOGICAL FILE NO 
4KFW    T17   SMO      5
4K^G          TXL   6  A1+1(1)  
4LF6          BCS      T18  
4LYQ          GEOERR   0,TOO BIG           [BLOCK NO TOO BIG
4MDB    )   
4MY2    T18   LDX   1  7
4NCL          ANDN  1  #7777               [MODIFIER TO FILE DESCRIPTION TABLE  
4NX=          ADX   1  AFDTP               [ADD ON ADDRESS OF FD TABLE  
4PBW          DATUMBLK 6,1,4               [DATUMISE BLOCK NUMBER   
4PWG    #SKI  K6BSQ>99-99   
4QB6    (   
4QTQ          BNZ   1  T19  
4R*B          GEOERR   0,LARGEBLK   
4RT2    )   
4S#L    T19   LDX   2  FX2  
4SS=    T19A  STO   1  EX5  
4T?W          LDX   0  GMIN4
4TRG          ANDS  0  EX5                 [REMEMBER BLOCK NO FOR OPTIMISATION  
4W?6          LDX   0  BA1(2)   
4WQQ          BNG   0  T20                 [J IF AUTO   
4X=B          STO   1  ACOMMUNE9(2)        [DATUMISED BLOCK NO TO ACTIVITY  
4XQ2          LDX   3  2                   [POINTER TO QBLK 
4Y9L          BRN      T21  
4YP=    T20   STO   1  ADBLKNO(3)          [DATUMISED BLOCK NO TO QBLK  
4^8W          ANDN  0  BONL+ASWAP   
4^NG          BNZ   0  T21                 [DON'T REMOVE FAILURE BIT FOR BONL OR
5286          LDN   0  #1000
52MQ          ERS   0  BA1(2)              [FAILURE SHOULD NOT UPDATE BA WORDS N
537B    T21   SRL   7  12                  [BSUN
53M2          ANDN  7  #1777               [BSUN
546L    T27   MPY   7  ASBSAB              [DETERMINE WHICH BSA 
54L=          LDX   6  0                   [SAVE X0 FOR SEA BREAKS  
555W    #SKI  K6BSQ>199-199 
55KG          TRACE FX2,CALL ACT
5656    #SKI  BSOPT<1$1 
56JQ    (   
574B          NGX   2  0
57J2          ADX   2  BBAC 
583L          ADX   2  ASBSAB   
58H=     TRANSFIX CALL 7 ,BP8   
592W          LDX   2  BSBKCHAN(2)  
59GG          LDN   3  CHAINADD(3)  
5=26          ONQUE    3,2  
5=FQ     TRANSFIX BRN,FQOB  
5=^B    )   
5?F2    #SKI  BSOPT 
5?YL    (   
5#D=          LDN   3  CHAINADD(3)  
5#XW          STO   3  EX6                 [REM5MBER CHAINING ADDRESS OF QBLK   
5*CG    #SKI  K6BSQ>299-299 
5*X6          TRACE    EX5,EX5  
5BBQ          NGX   3  0
5BWB          ADX   3  BBAC 
5CB2          ADX   3  ASBSAB   
5CTL          CALL  0  P13                 [OPTIMISE THIS TRANSFER  
5D*=          LDX   2  FX2  
5DSW          LDX   0  BA1(2)   
5F#G          TRANSFIX BPZ 0,FQOB   
5FS6          FPUT                         [FPUT CALLING ACTIVITY IF AUTO   
5G?Q     TRANSFIX BRN,FQOB  
5GRB     LABFIX AP13
5H?2    P13   STO   0  EX7                 [STORE LINK  
5HQL          LDN   0  1                   [ADD ONE TO COUNT OF OUTSTANDING 
5J==          ADS   0  ACOMMUNE7(3)        [TRANSFERS FOR THIS BSA  
5JPW    #UNS ICTON  
5K9G    (   
5KP6     FIXTRA ASFP13                     [USED BY BSPRI RESTORE TIME MACRO
5L8Q          NULL                         [MENDED TO BRN ASFBS1
5LNB    )   
5M82          LDN   0  BSCHANAD(3)         [BASE OF PRIMARY QUEUE   
5MML          LDN   1  BSSCHAD(3)          [BASE OF SECONDARY QUEUE 
5N7=          TXU   0  BSCHANAD(3)         [SEE IF EQUAL
5NLW          TXU   1  BSSCHAD(3)          [TO BASE 
5P6G          BCC      TDRUM               [AND JUMP IF BOTH QUEUES ARE EMPTY   
5PL6          LDX   0  AWORK1(3)           [DEVICE TYPE 
5Q5Q          ANDN  0  #7777
5QKB          SBN   0  9
5R52          BZE   0  TDROM               [NO OPTIMISATION FOR DRUM TRANSFERS  
5RJL          SBN   0  16   
5S4=          BZE   0  TDROM
5SHW          DCA      CPPTR(3),LDX,2,DTSA [CURRENT HEAD POSITION   
5T3G          LDCT  0  #200 
5TH6          ANDX  0  ACOMMUNE1(3) 
5W2Q          BNZ   0  PT4C                [DON'T ROUND DOWN IF CHAPTER CHANGE  
5WGB          ANDX  2  GMIN4               [ROUND DOWN TO NEXT GEORGE BLOCK 
5X22    PT4C  SBX   2  EX5                 [COMPARE CURRENT POSITION OF HEADS   
5XFL          LDX   0  2                   [WITH POSITION REQUIRED FOR THIS 
5X^=          ERX   0  AWAY(3)             [QBLK
5YDW          BNG   0  OPT4                [J IF THIS TRANSFER WILL 
5YYG          BZE   2  OPT4                [FIT IN PRIMARY QUEUE OTHERWISE...   
5^D6          NGN   1  1                   [PUT ON SECONDARY QUEUE  
5^XQ          ERX   1  AWAY(3)             [INVERT DIRECTION INDICATOR  
62CB          LDN   3  BSSCHAD(3)          [BASE OF SECONDARY QUEUE 
62X2          BRN      OPT5 
63BL    OPT4  LDX   1  AWAY(3)             [DIRECTION FOR PRIMARY QUEUE 
63W=          LDN   3  BSCHANAD(3)         [BASE OF PRIMARY QUEUE   
64*W    OPT5  STO   3  BSP11               [REMEMBER BASE   
64TG          BRN      PT1  
65*6    PT2   ADN   3  CHAINADD 
65SQ    PT1   LDX   3  FPTR(3)             [GET FIRST/NEXT QBLK 
66#B          TXU   3  BSP11
66S2          BCC      PT4                 [J IF END OF QUEUE   
67?L          SBN   3  CHAINADD            [START OF QUEEU BLOCK
67R=          LDX   0  ATYPE(3) 
68=W          TXL   0  CACT 
68QG          BCC      OPT7                [J IF ACTIVITY BLOCK 
69=6          LDX   2  ADBLKNO(3)          [DATUMISED BS ADDRESS FROM QBLK  
69PQ          BRN      OPT8 
6=9B    TDRUM LDX   2  3
6=P2          LDX   0  EX5                 [REMEMBER IN CA5 OF ASSOCIATED BSA   
6?8L          DCA      CPPTR(3),STO,0,DTSA  
6?N=                                       [BEFORE THE BSA IS WOKEN UP  
6#7W          LDX   0  AWORK2(3)
6#MG          BNG   0  TDROM               [DON'T FPUT BSA IF ON COOR2  
6*76          FPUTX                        [LIST THE BSA (QUICKLY)  
6*LQ    TDROM LDN   3  BSCHANAD(3)  
6B6B          BRN      PT4  
6BL2    OPT7  LDX   0  BA1(3)   
6C5L          SLL   0  1
6CK=          BNG   0  PT3                 [J IF A CHAPTER CHANGE   
6D4W          LDX   2  ACOMMUNE9(3)        [DATUMISED BS ADDRESS FROM ACTIVITY  
6DJG          BRN      OPT8 
6F46    PT3   LDX   2  BA4(3)              [BS ADDRESS OF CHAPTER   
6FHQ          BRN      PT4B 
6G3B    OPT8  ANDX  2  GMIN4
6GH2    PT4B
6H2L    #SKI  K6BSQ>299-299 
6HG=          TRACE    2,BSQBLK 
6H^W          SBX   2  EX5                 [COMPARE BS ADDRESSES
6JFG          LDX   0  2
6J^6          ERX   0  1
6KDQ          BNG   0  PT2                 [J IF THIS QBLK DOES NOT FIT IN HERE 
6KYB          BNZ   2  PT4A                [J IF IT DOES
6LD2          LDN   0  1                   [CASE WHERE BLOCK NOS ARR EQUAL  
6LXL          ADS   0  EX5                 [
6MC=          BRN      PT2                 [LOCK FOR NEXT BLOCK 
6MWW    PT4A  ADN   3  CHAINADD            [CHAINING ADDRESS
6NBG    PT4   LDX   2  BPTR(3)  
6NW6          ONQUE EX6,2                  [PUT ON QUEUE
6P*Q          BRN      (EX7)               [EXIT
6PTB    #UNS ICTON  
6Q*2    (   
6QSL    #   
6R#=    #     ALTERNATIVE OPTIMISING ROUTINE FOR ICT
6RRW    #     PRIORITY TRANSFERS ON PRIMARY QUEUE IN ASCENDING ORDER
6S?G    #     OTHERS ON SECONDARY QUEUE IN ASCENDING ORDER  
6SR6    #   
6T=Q     FIXTRA ASFBS1  
6TQB          STOZ     ASFBSMUD 
6W=2          LDN   0  BSCHANAD(3)         [BASE OF PRIMARY QUEUE   
6WPL          LDN   1  BSSCHAD(3)          [BASE OF SECONDARY QUEUE 
6X9=          TXU   0  BSCHANAD(3)         [SEE IF EQUAL
6XNW          TXU   1  BSSCHAD(3)          [TO BASE 
6Y8G          BCC      QDRUM               [AND JUMP IF BOTH QUEUES EMPTY   
6YN6          LDX   0  AWORK1(3)           [DEVICE TYPE 
6^7Q          ANDN  0  #7777
6^MB          SBN   0  9
7272          BZE   0  QDROM               [NO OPTIMISATION FOR DRUM TRANSFERS  
72LL          SBN   0  16   
736=          BZE   0  QDROM
73KW          LDN   3  BSSCHAD(3)          [BASE OF SECONDARY QUEUE 
745G          STO   3  BSP11
74K6          LDX   3  FPTR(3)             [GET FIRST QBLK ON SECONDARY QUEUE   
754Q          CALL  1  XGETBS              [GET DATUMISED ADDRESS IN X2 
75JB          STO   2  ASFBSCUR            [REMEMBER AS CURRENT POSITION
7642          LDX   3  BSP11               [RELOAD BASE 
76HL          SBN   3  CHAINADD            [ADJUST TO START OF BLK  
773=          LDX   1  FX2                 [IS THIS A   
77GW          LDCH  0  ACRIT(1)            [PRIORITY TRANSFER   
782G          BZE   0  QPRI                [YES 
78G6    #   
78^Q    #     IF OUR TRANSFER <= CURRENT START= WHERE DIRECTION CHANGES 
79FB    #     IF OUR TRANSFER > CURRENT GET POSITION
79^2    #   
7=DL    NONPRI  
7=Y=          STO   2  ASFBSDUMP
7?CW    XS    LDX   3  CHAINADD(3)  
7?XG          BXE   3  BSP11,XSEND         [J IF END OF QUEUE   
7#C6          CALL  1  XGETBS              [GET DATUMISED ADDR IN X2
7#WQ          BXL   2  ASFBSDUMP,XSEND1    [J IF GDIRECTION CHANGES 
7*BB          STO   2  ASFBSDUMP
7*W2    #   
7B*L    #     IF OUR TRANSFER > ASFBSCUR CHECK IF RIGHT PLACE   
7BT=    #   
7C#W          LDX   0  ASFBSCUR 
7CSG          BXGE  0  EX5,XS              [IF OURS < CUR GO BACK   
7D#6          SBX   2  EX5  
7DRQ          BNG   2  XS                  [IF OURS > ON QUEUE GO BACK  
7F?B          BZE   2  MATCH               [IF SAME SORT IT OUT 
7FR2          BRN      QPT4A               [CORRECT POSITION FOUND  
7G=L    #   
7GQ=    XSEND1  
7H9W          ADN   3  CHAINADD            [GET TO RING 
7HPG    XSEND LDX   0  ASFBSCUR 
7J96          BXL   0  EX5,QPT4            [IF ASCENDING WE HAVE RIGHT PLACE
7JNQ    XGETSTART   
7K8B          LDX   3  BPTR(3)  
7KN2          BRN      QPT1 
7L7L    #   
7LM=    #     SEARCH FOR BLOCK MATCH IF PRIORITY TRANSFER   
7M6W    #   
7MLG    QPRI  LDX   3  CHAINADD(3)  
7N66          BXE   3  BSP11,XPEND         [J IF END OF QUEUE   
7NKQ          CALL  1  XGETBS              [GET DATUMISED ADDR IN X2
7P5B          BXU   2  EX5,QPRI            [GO BACK IF NO MATCH 
7PK2          ADN   3  CHAINADD 
7Q4L          DERING   3                   [REMOVE LOW PRIORITY TRANSFER
7QJ=          STO   3  ASFBSMUD            [REMEMBER FOR RE-QUEUING LATER   
7R3W    XPEND LDX   3  BSP11               [BASE OF PRIMARY QUEUE   
7RHG          SBN   3  BSSCHAD-BSCHANAD 
7S36          STO   3  BSP11
7SGQ          LDX   3  FPTR(3)             [GET PAST FIRST AS IN PROGRESS   
7T2B          CALL  1  XGETBS              [GET DATUMISED ADDR IN X2
7TG2          STO   2  ASFBSCUR 
7T^L          BRN      NONPRI   
7WF=    #   
7WYW    QPT2  ADN   3  CHAINADD 
7XDG    QPT1  LDX   3  FPTR(3)             [GET FIRST$NEXT QBLK 
7XY6          TXU   3  BSP11
7YCQ          BCC      QPT4                [J IF END OF QUEUE   
7YXB          SBN   3  CHAINADD            [START OF QBLK   
7^C2          LDX   0  ATYPE(3) 
7^WL          TXL   0  CACT 
82B=          BCC      QOPT7               [J IF ACTIVITY BLK   
82TW          LDX   2  ADBLKNO(3)          [DATUMISED BS ADDRESS FROM QBLK  
83*G          BRN      QOPT8
83T6    QDRUM LDX   2  3
84#Q          LDX   0  EX5  
84SB          DCA      CPPTR(3),STO,0,DTSA  
85#2          LDX   0  AWORK2(3)
85RL          BNG   0  QDROM               [DON'T FPUT BSA IF ON COOR2  
86?=          LDX   1  FX2                 [IF PRIORITY TRANSFER
86QW          LDCH  0  ACRIT(1)            [WAKE UP BSA QUICKLY 
87=G          BZE   0  QUICK
87Q6          FPUT  
889Q          BRN      QDROM
88PB    QUICK LDN   1  CHAINADD(2)  
8992          ENRING   1,ACTLIS 
89NL          STOZ      GMEL+ASU
8=8=    QDROM LDN   3  BSCHANAD(3)  
8=MW          BRN      QPT4 
8?7G    QOPT7 LDX   0  BA1(3)   
8?M6          SLL   0  1
8#6Q          BNG   0  QPT3                [J IF CHAPTER CHANGE 
8#LB          LDX   2  ACOMMUNE9(3)        [DATUMISED ADDRESS FROM ACTIVITY 
8*62          BRN      QOPT8
8*KL    QPT3  LDX   2  BA4(3)              [BS ADDRESS OF CHAPTER   
8B5=          BRN      QPT4B
8BJW    QOPT8 ANDX  2  GMIN4
8C4G    QPT4B SBX   2  EX5                 [COMPARE BS ADDRESSES
8CJ6          BZE   2  MATCH
8D3Q          BNG   2  QPT2 
8DHB          BRN      QPT4A
8F32    MATCH LDN   0  1
8FGL          ADS   0  EX5  
8G2=          BRN      QPT2 
8GFW    QPT4A ADN   3  CHAINADD 
8G^G    QPT4  LDX   2  BPTR(3)  
8HF6          ONQUE    EX6,2
8HYQ          LDX   0  ASFBSMUD            [DO WE HAVE SAME BLK FROM NON-PRIORIT
8JDB          BZE   0  (EX7)               [QUEUE EXIT IF NOT   
8JY2          LDX   2  EX6                 [PUT ON QUEUE BEFORE PRIORITY TRANSFE
8KCL          LDX   2  BPTR(2)  
8KX=          ONQUE    ASFBSMUD,2   
8LBW          BRN      (EX7)
8LWG    #   
8MB6    #     SUBROUTINE TO GET DATUMISED BS ADDRESS FROM QBLK  
8MTQ    #     ON EXIT X2 CONTAINS DATUMISED ADDRESS 
8N*B    #             X3 POINTS TO START OF QBLK
8NT2    #   
8P#L    XGETBS  
8PS=          SBN   3  CHAINADD            [START OF QUEUE BLOCK
8Q?W          LDX   2  ADBLKNO(3)   
8QRG          LDX   0  ATYPE(3) 
8R?6          BXL   0  CACT,XG1            [J IF NOT ACTIVITY   
8RQQ          LDX   2  BA4(3)              [BS ADDRESS OF CHAPTER   
8S=B          BBS      1,BA1(3),(1)        [EXIT IF CHAPTER CHANGE  
8SQ2          LDX   2  ACOMMUNE9(3)        [DATUMISED BS ADDRESS FROM ACTIVITY  
8T9L    XG1   ANDX  2  GMIN4
8TP=          EXIT  1  0
8W8W    #   
8WNG    )   
8X86    )   
8XMQ    #   
8Y7B    #     THIS IS THE CHAPTER CHANGER ENTRY POINT.  
8YM2    #     THE BACKING STORE ADDRESS OF THE CHAPTER IS DATUMISED AND THEN
8^6L    #     A JUMP IS MADE TO THE OPTIMISING ROUTINE. 
8^L=    #     ON ENTRY X2=FX2   
925W    #   
92KG     LABFIX BCHR
9356    #SKI  K6BSQ>99-99   
93JQ    (   
944B          LDCT  5  #200 
94J2          ANDX  5  BA1(2)   
953L          BNZ   5  T33                 [J IF ALREADY DOING CHAPTER CHANGE   
95H=    )   
962W          LDCT  5  #200                [CHAPTER CHANGE BIT  
96GG          STO   5  BA1(2)              [TO ACTIVITY 
9726    #SKI  CLINK 
97FQ    (   
97^B          LDX   5  ALINK1(2)
98F2          SRL   5  12                  [X5 HAS CHAP NUMBER  
98YL          SMO      5
99D=          LDX   5  KTAB                [X5 HAS LSEG/4 IN B0-8,DSEG/128 IN   
99XW                                       [REST
9=CG    #SKI JPSCF  
9=X6    (   
9?BQ          SRC   5  13   
9?WB          SRL   56 1                   [B0 X6=1 IF ON SCF ELSE CLEAR
9#B2          SRC   5  10                  [CLEAR SCF BIT IN KTAB COPY  
9#TL    )   
9**=          LDX   4  5
9*SW          SLC   4  11   
9B#G          ANDN  4  #3774               [LENGTH IN X4
9BS6          BNZ   4  V1   
9C?Q          LDN   4  1024 
9CRB    V1    SLL   5  11   
9D?2          SRL   5  4                   [X5 HAS UNDATUMISED BS ADDRESS   
9DQL    )   
9F==          STO   4  BA2(2)              [STORE     LENGTH OF CHAPTER 
9FPW          CALL  7  TB56                [PATUMISE BS ADDRESS 
9G9G          LDX   3  FX2  
9GP6          STO   1  BA4(3)              [DATUM[SE BS ADDRESS OF FIRST TRAN   
9H8Q          STO   1  EX5  
9HNB          STO   2  BA3(3)              [X2=0 IF ONE TRANSFER OR LENGTH OR 1S
9J82          BZE   2  T25J                [J IF ONLY ONE TRANSFER  
9JML          ADX   5  2                   [UPDATE BLOCK NO 
9K7=          SBX   4  2                   [AND LENGTH  
9KLW          CALL  7  TB56                [DATUMISE BS ADDRESS GF SECOND TRAN  
9L6G    #SKI  K6BSQ>99-99   
9LL6    (   
9M5Q          BZE   2  TJH9A
9MKB    T33   GEOERR    0,TWOTRANS         [NOT MORE THAN TWO TRANSFERS ALLOWED 
9N52    )   
9NJL    TJH9A LDX   3  FX2  
9P4=          STO   1  BA5(3)   
9PHW    T25J  LDN   7  1                   [BSUN
9Q3G    #SKI JPSCF  
9QH6    (   
9R2Q          BPZ   6  T27  
9RGB          LDX   7  BRADSPLTBSU         [CHAPTER ON SCF  
9S22    )   
9SFL          BRN      T27  
9S^=    #SKI JPSCF-1
9TDW    TB56  DATUMADD 5,BINDEX,4          [GET DATUMISED BS ADDRESS
9TYG    #SKI JPSCF  
9WD6    (   
9WXQ    TB56  LDX   3  BINDEX   
9XCB          BPZ   6  TBNR                [USE FIRST PART OF CCTABLE   
9XX2          ADN   3  6                   [MOVE TO SECOND PART OF CCTABLE  
9YBL    TBNR  DATUMADD 5,3,4
9YW=    )   
9^*W    #SKI  K6BSQ>99-99   
9^TG    (   
=2*6          BNZ   1  TBS5 
=2SQ          GEOERR   0,LARGEADD   
=3#B    )   
=3S2    TBS5  EXIT  7  0
=4?L     LABFIX AP5 
=4R=    P5    STO   0  EX4                 [ONQUE MACRO 
=5=W          LDX   0  FPTR(2)  
=5QG          STO   3  FPTR(2)  
=6=6          STO   0  FPTR(3)  
=6PQ          STO   2  BPTR(3)  
=79B          SMO      0
=7P2          STO   3  BPTR 
=88L          BRN      (EX4)
=8N=     LABFIX AP6 
=97W    P6    STO   0  EX5                 [OFFQUE MACRO
=9MG          LDX   0  0(3) 
==76          SMO      BPTR(3)  
==LQ          STO   0  0
=?6B          LDX   0  BPTR(3)  
=?L2          SMO      FPTR(3)  
=#5L          STO   0  BPTR 
=#K=          STOZ     BPTR(3)  
=*4W          BRN      (EX5)
=*JG     LABFIX AP7 
=B46    P7    STO   0  EX6                 [REQME MACRO 
=BHQ          CALL  0  (BSTS6)  
=C3B          CALL  0  (BSTS5)  
=CH2          BRN      (EX6)
=D2L     LABFIX BP8                        [ROUTINE TO FPUT BSA OR TFA IF   
=DG=          LDN   1  BSCHANAD(2)         [NECESSARY   
=D^W          TXU   1  BSBKCHAN(2)  
=FFG          BCS      T23                 [J IF SOMETHING ALREADY ON QUEUE 
=F^6          LDX   0  BACK1(2)            [OR IF BSTB/BWRITE ON TFA
=GDQ          BNZ   0  T23  
=GYB          STO   2  6
=HD2          FPUT                         [FPUT ACTIVITY   
=HXL          LDX   2  6
=JC=    T23   EXIT  7  0
=JWW    #   
=KBG    #   
=KW6    T25 
=L*Q    #SKI  K6BSQ>99-99   
=LTB    (   
=M*2    T29   TXL   5  BSUN 
=MSL          BCS      T31  
=N#=    T32   GEOERR   0,NO HOME           [INVALID BSUN
=NRW    T31   BZE   5  T32  
=P?G    )   
=PR6    T22   LDX   7  5
=Q=Q          SLL   7  12                  [BSUN
=QQB          LDX   1  BA3(2)              [BS ADDRESS  
=R=2          BRN      T19A 
=RPL    #   
=S9=    #     BACKWAIT MACRO
=SNW    #   
=T8G     LABFIX AP11
=TN6    P11   ADN   0  1
=W7Q          STO   0  EX4                 [UPDATE & REMEMBER LINK  
=WMB    #SKI  K6BSTS>199-199
=X72          TRACE BSP11,BACKWAIT  
=XLL          STO   3  EX5  
=Y6=          LDX   3  FX2  
=YKW    W2    LDX   3  FPTR(3)             [LOOK FOR QBLK   
=^5G          LDX   0  ATYPE(3) 
=^K6          TXL   0  CACT 
?24Q          BCC      W7B                 [J IF ACTIVITY   
?2JB          SBX   0  BSP10
?342          BNZ   0  W2                  [NOT QDLK
?3HL          LDX   0  BSP11               [LFN 
?43=          BNG   0  W3                  [J IF ALL TRANSFERS TO BE WAITED FOR 
?4GW          LDX   1  ATRAN(3) 
?52G          ANDX  1  BIT11               [IF B11 IS SET IN ATRAN THIS 
?5G6          BNZ   1  W3                  [PARTICULAR TRANSFER HAS BEEN AWAITED
?5^Q          SLL   0  1
?6FB          BNG   0  W2                  [J ONLY BIZ NEED BE CHECKED  
?6^2          LDEX  0  BSP11               [LOGICAL FILE NUMBER OR BSUN 
?7DL          LDX   1  ALENLFN(3)          [GET LFN OR BSUN 
?7Y=          ANDN  1  #377                [FROM QBLK   
?8CW          LDX   2  BSP12               [BLOCK NO OR DATUMISED BLOCK NO. 
?8XG          TXU   0  1                   [COMPARE LFN OR BSUNS
?9C6          TXU   2  BLKNO(3)            [COMPARE BLOCK NO.   
?9WQ          BCS      W2                  [J NOT SAME-LOOK FOR NEXT BLOCK  
?=BB          LDN   0  BONL 
?=W2          ANDX  0  ATRAN(3)            [ISOLATE ONLINE BIT-IF ANY   
??*L          ERX   0  EX7                 [SEE IF SAME AS REQUIRED TRANSFER
??T=          BNZ   0  W2                  [J IF NOT
?##W          LDX   0  BSP11
?#SG    W3    LDCT  1  #100                [TEST IF THIS TRANSFER FAILED
?*#6          ANDX  1  ATRAN(3) 
?*RQ          BZE   1  W5                  [J NOTHING WRONG 
?B?B          LDX   0  FPTR(3)  
?BR2          STO   0  EX6                 [RETAIN  PTR TO WRITE BLOCK  
?C=L          LDN   0  ATRAN(3) 
?CQ=          LDN   1  BA1(2)   
?D9W          MOVE  0  5                   [PUT INFO IN ACT 
?DPG          LDN   0  1
?F96          SBS   0  EX4  
?FNQ          LDX   0  ADBLKNO(3)          [REPLY FROM ACTUAL PERI  
?G8B          STO   0  ACOMMUNE9(2)        [TO ACTIVITY BLOCK   
?GN2          LDX   0  ATRAN(3) 
?H7L         ANDN   0  BSET+BOBJ
?HM=          BNZ   0  W7   
?J6W          LDX   0  BSMODE(3)           [MODE OF TRANSFER
?JLG          BZE   0  W7                  [J IF READ   
?K66          CHAIN    EX6,2               [PUT WRITE BLOCK BEHIND ACTIVITY 
?KKQ    W7    CALL  0  PCA                 [FPUT PCA IF NECESSARY   
?L5B          FREECORE  3                [FREE QBLK 
?LK2    W7B   LDX   1  FX1  
?M4L          LDX   2  FX2  
?MJ=          LDX   3  EX5  
?N3W          BRN      (EX4)               [REPORT FAIL OR EXIT OK  
?NHG    W5    LDX   2  BIT10               [BACKWAIT IS WAITING BIT 
?P36          BNG   0  W7C                 [J IF ALL TRANSFERS TO BE WAITED 
?PGQ          ADX   2  BIT11               [INDICATE BACKWAIT FOR THIS TRAN ONLY
?Q2B    W7C   ORS   2  ATRAN(3)            [BITS TO QUEUE BLK   
?QG2          LDX   0  EX4                 [ADJUST LINK TO START OF MACRO   
?Q^L          SBN   0  4
?RF=    W8    LDX   3  EX5                 [RESET X3
?RYW          BRN      (COOR1)             [WAIT TO BE FPUTTED BY BSTS  
?SDG    #   
?SY6    #     FINDFAIL MACRO
?TCQ    #   
?TXB     LABFIX AP12
?WC2    P12   STO   0  BSP11               [REMEMB=R LINK   
?WWL          HUNT2     2,BSTB,BFAIL       [FIND CURRENT/PERMANENT FAIL LIST
?XB=    P12A  ADN   2  2
?XTW          LDX   1  A1-1(2)  
?Y*G          TXU   1  GMINUS1  
?YT6          BCC      P12C                [JUMP IF END OF LIST 
?^#Q          TXU   1  EX5                 [
?^SB          BCS      P12A                [JUMP IF NOT REQUIREDBLOCK   
#2#2          LDX   1  EX7                 [CHECK IF CORRECT TYPE OF ENTRY  
#2RL          ANDX  1  A1(2)               [PERMANENT OR CURRENT
#3?=          BZE   1  P12A                [JUMP IF NOT 
#3QW          LDX   1  A1(2)
#4=G          ANDN  1  #77  
#4Q6          TXU   1  EX6  
#59Q          BCS      P12A                [JUMP IF WRONG LFN   
#5PB          ADN   2  A1-1 
#692          SMO      EX4  
#6NL          STO   2  0                   [POINTER 
#78=          LDN   0  1
#7MW          ADS   0  BSP11               [INCREMENT LINK IF RECORD FOUND  
#87G    P12C  LDX   1  FX1  
#8M6          LDX   2  FX2  
#96Q          BRN      (BSP11)             [EXIT
#9LB    #   
#=62    #     ROUTINE TO FPUT THE PCA IF B8 IS SET IN ATRAN. B8 IS INITIALLY SET
#=KL    #     BY SWAPWAIT IN SWAP TO WAIT FOR COMPLETION OF ANY AUTONOMOUS  
#?5=    #     BACKING STORE TRANSFERS BELONGING TO THE OBJECT PROGRAM.  
#?JW    #   
##4G     LABFIX PCA 
##J6    PCA   STO   0  EX6                 [STORE LINK  
#*3Q          LDCT  0  1
#*HB          ANDX  0  ATRAN(3) 
#B32          BZE   0  PCA1                [B8 NOT SET-SO EXIT  
#BGL    #SKI  G3
#C2=    (   
#CFW          LDX   2  APCA(3)             [ADDRESS OF PCA  
#C^G    #SKI  K6BSTS>199-199
#DF6          TRACE    2,PCA FPUT   
#DYQ          FPUT  
#FDB    )   
#FY2    #SKI  G4
#GCL          FON   #123                   [WAKE UP INTERESTED ACTIVITIES   
#GX=    PCA1  BRN      (EX6)               [EXIT
#HBW    #   
#HWG    #   
#JB6    #   
#JTQ    #     THE FOLLOWING GROUP OF SUBROUTINES ARE CALLED 
#K*B    #                   FROM BSTS   
#KT2    #   
#L#L    #     SUBROUTINE TO CONVERT NO. IN X5   
#LS=    #     TO CHARACTERS FOR PRINTING
#M?W    #     ON EXIT CONVERTED NO. IN X7,X0
#MRG    #   
#N?6     LABFIX TOCT
#NQQ    TOCT  LDN   1  8
#P=B    TOCT1 LDN   4  0
#PQ2          SLL   45 3
#Q9L          SLL   70 6
#QP=          DCH   4  0
#R8W          BCT   1  TOCT1
#RNG          EXIT  2  0
#S86    #   
#SMQ    #     SUBROUTINE TO MOVE MESSAGE (X3) TO CONSOLE OUTPUT BUFFER  
#T7B    #   
#TM2     LABFIX ZMVCH   
#W6L    ZMVCH LDX   5  FCOUTBUF            [NEXT FREE PLACE IN BUFFER   
#WL=     LABFIX YMVCH   
#X5W    YMVCH LDN   4  1(3)                [START OF MESSAGE
#XKG          SMO      0(3)                [NO OF CHARACTERS
#Y56          MVCH  4  0                   [SHIFT MESS  
#YJQ          STO   5  FCOUTBUF            [UPDATE NEXT PLACE   
#^4B          EXIT  6  0
#^J2    #   
*23L    #   
*2H=    #   
*32W    #     SUBROUTINE TO GET HOLD OF OPS. CONSOLE
*3GG    #       - ON EXIT EX4 IS NON-ZERO IF INPUT WAS CANCELLED
*426    #   
*4FQ     LABFIX XGETCON 
*4^B    XGETCON 
*5F2          STOZ     EX4                 [MARKER:IN CASE WE HAVE TO CANCEL I/P
*5YL          DCA      JCTWPTR,LDEX,0,MODE [INPUT OR OUTPUT MODE ON CONSOLE 
*6D=          BNZ   0  WAITX               [J IF OUTPUT TO WAIT FOR COMPLETION  
*6XW          DISENGPER JCTWPTR            [ELSE CANCEL INPUT   
*7CG          STO   2  EX4                 [AND REMEMBER
*7X6          BRN      OK   
*8BQ    WAITX JBUSY    JCTWPTR,WAITX       [WAIT IF CONSOLE OUTPUTTING  
*8WB    OK    EXIT  7  0
*9B2    #   
*9TL    #   
*=*=    #     SUBROUTINE TO DO CONSOLE PERI 
*=SW    #       - ON ENTRY X3=END OF MESSAGE IN FCOUTBUF
*?#G    #           USES  X0,X1,X3,X6   
*?S6    #           "CANCEL" IS OUTPUT IF EX4 IS NON-ZERO   
*#?Q    #   
*#RB     LABFIX XPERI   
**?2    XPERI   
**QL          SBN   3  FCOUTBUF+1          [CALCULATE LENGTH OF 
*B==          SLC   3  2                   [OF MESSAGE  
*BPW          LDX   1  JCTWPTR             [PTR TO DL FOR CONSOLE   
*C9G          LDX   6  EX4                 [GET CANCEL MARKER   
*CP6          LDN   0  FCOUTBUF+1          [START ADDRESS   
*D8Q          BZE   6  NCAN                [J NOT CANCEL
*DNB          SBN   0  4                   [INCLUDE CANCEL MESSAGE BY SUBTRACTIN
*F82          ADN   3  16                  [4 FROM ADDRESS AND ADDING 16 TO COUN
*FML    NCAN  DCA      1,STO,3,COUNT       [COUNT TO DEVICE LIST
*G7=          DCA      1,STO,0,CTSA        [START ADDRESS   
*GLW          LDN   0   1   
*H6G          DCA       1,DLA,0,MODE       [OUTPUT MODE 
*HL6          LDX   0  ACES                [SPACE FILL COUNT WORD IN CASE   
*J5Q          STO   0  FCOUTBUF            [CANCEL IS OUTPUT
*JKB                                       [
*K52    #UNS           ENHOPER  
*KJL    (   
*L4=          JENVNOT  NOTDME,DME          [IF DME,PUT DATE AND 
*LHW          LDX   3  CONSCNTRL           [TIME THAT PERI IS ISSUED
*M3G          LDX   0  EDATE               [INTO THE CONBUFF/CNTRL  
*MH6          STO   0  COBS(3)  
*N2Q          LDX   0  CLEANCT             [THIS ENSURES THAT THE OPER SCREEN   
*NGB          STO   0  COBS+1(3)           [WILL NOT BE OVERWRITTEN BEFORE  
*P22    NOTDME                             [THE OPS HAVE A CHANCE TO SEE THIS   
*PFL    )   
*P^=                                       [
*QDW          LDX   3  ACC3(2)  
*QYG          GPERI    1,2                 [OUTPUT MESSAGE  
*RD6          COOR1    ,6                  [WAIT FOR EOT
*RXQ          EXIT  7  0
*SCB    #   
*SX2    #   
*TBL    #     SUBROUTINE TO OUTPUT UNIT N FIX TO THE CONSOLE
*TW=    #              LINK X7 SAVED IN AWORK3  
*W*W    #              ALL ACCUMULATORS EXCEPT X2 DESTROYED 
*WTG    #   
*X*6     LABFIX XOUTFIX 
*XSQ    XOUTFIX 
*Y#B          STO   7  AWORK3(2)           [SAVE LINK   
*YS2          LDX   0  CPRW1(2)            [SAVE REPLY WORD 
*^?L          STO   0  BA4(2)   
*^R=    XOUT1 CALL  7  XGETCON             [GET CONSOLE 
B2=W          LDN   3  JPMESS              [PTR TO UNIT N FIX MSG   
B2QG          LDX   1  CPPTR(2) 
B3=6     TRANSFIX  CALL 0,JPG              [GEOG NO TO MSG  
B3PQ          LDN   5  FCOUTBUF+1   
B49B          CALL  6  YMVCH               [PUT MSG IN BUFFER   
B4P2          LDX   3  5
B58L          CALL  7  XPERI               [DO CONSOLE PERI 
B5N=          LDCH  0  CPRW1(2) 
B67W          BNZ   0  XOUT1               [REPEAT PERI IF NOT OK   
B6CN ...      FON      #50                 [WAKE UP ANYBODY WAITING CONSOLE 
B6MG          LDX   1  BA4(2)              [RE-INSTATE REPLY WORD   
B776          STO   1  CPRW1(2) 
B7LQ          LDX   7  AWORK3(2)
B86B          EXIT  7  0
B8L2    #   
B95L    #   
B9K=    #     THIS SUBROUTINE SEARCHES THE PRIMARY AND SECONDARYQUEUES OF A 
B=4W    #    GIVEN BSA FOR THE FIRST ACTIVITY WITH THE BLFAIL OR BONL BIT OF BA1
B=JG    #    SET. IF FOUND X5 IS SET NEGATIVE AND THE ACTIVITY IS REQUEUED AT TH
B?46    #    HEAD OF THE PRIMARY QUEUE. OTHERWISE X5 =0 . ALSO BIT 5 IS SET 
B?HQ    #    IN CPRW1   
B#3B     LABFIX XFIND   
B#H2    XFIND LDX   2  FX2  
B*2L          LDCT  5  #10  
B*G=          ORS   5  CPRW1(2)            [SET FAILED REPLY
B*^W          LDN   5  0                   [INITIALISE MARKER   
BBFG          LDX   0  BSBKCHAN(2)         [CON0ENTS OF JOBRING+1   
BB^6          LDN   1  BSCHANAD(2)         [ADDRESS OF JOBRING  
BCDQ    XLP2  TXU   1  0(1)                [COMPARE ADDRESS WITH CONTENTS   
BCYB          BCC      XOUT                [IF EQUAL, QUEUE IS EMPTY
BDD2    XLOOP LDX   1  0(1)                [FI[ST/NEXT BLOCK
BDXL          SBN   1  CHAINADD 
BFC=          LDX   4  ATYPE(1) 
BFWW          TXL   4  CACT 
BGBG          BCS      XNACT               [J IF NOT ACTIVITY   
BGW6          LDX   4  BA1(1)   
BH*Q          ANDN  4  BLFAIL+BONL  
BHTB          BZE   4  XNACT               [J IF BLFAIL BIT NOT SET 
BJ*2          LDN   4  BA1(1)              [ BA WORDS OF ACTIVITY   
BJSL          LDN   5  ACOMMUNE1(2)        [ ACOMMUNE WORDS OF BSA  
BK#=          MOVE  4  5
BKRW          NGN   5  1                   [MARKER CHECKED BY CALLING ROUTINE   
BL?G          LDN   0  BSCHANAD(2)         [START OF QUEUE  
BLR6          ADN   1  CHAINADD 
BM=Q          REQUE    1,0            [RECHAIN AT FRONT OF PRIMARY QUEUE
BMQB          LDX   2  FX2  
BN=2          SBN   1  CHAINADD 
BNPL          LDX   0  ACOMMUNE7(1) 
BP9=          DCA   ,DLA,0,MODE            [ RESET DEVICE LIST IF NECC. 
BPNW    XOUT  EXIT  7  0
BQ8G    XNACT ADN   1  CHAINADD 
BQN6          TXU   1  0                   [END OF QUEUE?   
BR7Q          BCS      XLOOP               [J IF NOT
BRMB          TXU   0  BSSBKCHN(2)         [END OF SEARCH?  
BS72          BCC      XOUT                [EXIT IF SO  
BSLL          LDX   0  BSSBKCHN(2)         [POINTERS TO SECONDARY...
BT6=          LDN   1  BSSCHAD(2)          [...QUEUE
BTKW          BRN      XLP2 
BW5G    #   
BWK6    #   
BX4Q    #     THIS SUBROUTINE SEARCHES THE PRIMARY AND SECONDARY QUEUES 
BXJB    #     FOR THE FIRST CHAPTER TRANSFER. IF FOUND X5 IS SET
BY42    #     NEGATIVE AND THE TRANSFER REQUEUED AT THE HEAD OF THE 
BYHL    #     PRIMARY QUEUE. OTHERWISE X5=0 
B^3=    #   
B^GW     LABFIX XFINDCH 
C22G    XFINDCH 
C2G6          LDN   5  0                   [CLEAR MARKER
C2^Q          LDX   0  BSBKCHAN(2)         [CONTENTS OF JOBRING+1   
C3FB          LDN   1  BSCHANAD(2)         [ADDRESS OF JOBRING  
C3^2    XCH1  TXU   1  0(1)                [COMPARE ADDRESS WITH CONTENTS   
C4DL          BCC      XOUTCH              [IF EQUAL QUEUE IS EMPTY 
C4Y=    XCH2  LDX   1  0(1)                [FIRST/NEXT BLK  
C5CW          SBN   1  CHAINADD 
C5XG          LDX   4  ATYPE(1) 
C6C6          TXL   4  CACT 
C6WQ          BCS      XCH3                [J IF NOT ACTIVITY   
C7BB          LDCT  4  #200 
C7W2          ANDX  4  BA1(1)   
C8*L          BZE   4  XCH3                [J IF NOT CHAPTER TRANSFER   
C8T=          NGN   5  1                   [SET MARKER TO SAY FOUND 
C9#W          LDN   0  BSCHANAD(2)         [START OF PRIMARY QUEUE  
C9SG          ADN   1  CHAINADD 
C=#6          REQUE    1,0                 [REQUE AT HEAD OF PRIMARY QUEUE  
C=RQ          LDX   2  FX2  
C??B    XOUTCH  
C?R2          EXIT   7  0   
C#=L    XCH3  ADN   1  CHAINADD 
C#Q=          TXU   1  0                   [END OF QUEUE
C*9W          BCS      XCH2                [J IF NOT
C*PG    XCH4  TXU   0  BSSBKCHN(2)         [END OF SEARCH   
CB96          BCC      XOUTCH              [EXIT IF SO  
CBNQ          LDX   0  BSSBKCHN(2)         [POINTERS TO SECONDARY   
CC8B          LDN   1  BSSCHAD(2)          [QUEUE   
CCN2          BRN      XCH1 
CD7L    #   
CDM=    #END
^^^^ ...470512060003
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1