OLMTB867

(George Source)

Macros used: BXGE, BXU, CAPCA, CHANGEACT, COOR1, DCA, DFCLEAR, DFJUMPN, DFJUMPS, DFSET, FPCACA, FPERENT, GEOERR, GETACT, GETWORD, GPERI, ILLEGAL, INMOVE, JBS, JENVNOT, LGEOG, LINKSET, LOBJPERIS, LOCK, LOCKC, LONGON, LPROP, MENDAREA, MURDER, OUTPACK, PAIR, RELPERENT, ROLPA, RUNPROG, SEGENTRY, SUICIDE, WORDFIN

OLMTB867.txt
22FL    #LIS  K0OLMTB>K0LIBRARY>K0ALLGEO
22^=    #SEG           OLMTB65             [N.R.BOULT   
23DW                   8HOLMTB  
23JR ...[   
23NN ...[   COPYRIGHT  INTERNATIONAL COMPUTERS LTD  1982
23SK ...[   
23YG          SEGENTRY K3OLMTB,QK3OLMTB 
24D6          SEGENTRY K5OLMTB,QK5OLMTB 
24XQ          SEGENTRY K7OLMTB,QK7OLMTB 
25CB          SEGENTRY K9OLMTB,QK9OLMTB 
25X2          SEGENTRY K99OLMTB,QK99OLMTB   
26BL          SEGENTRY K11OLMTB,QK11OLMTB   
26W=    #     THIS SEGMENT DEALS WITH THE FOLLOWING TYPES OF ONLINE MT PERIS:-  
27*W    #     SKIP FORWARD     MODE 4      ENTRY POINT K7OLMTB  
27TG    #     SKIP BACKWARD    MODE 6      ENTRY POINT K5OLMTB  
28*6    #     REWIND           MODE 7      ENTRY POINT K3OLMTB  
28SQ    #     CLOSE            MODE #1000  ENTRY POINT K9OLMTB  
29#B    #     UNLOAD           MODE #1007  ENTRY POINT K11OLMTB 
29FJ ...#   
29LQ ...OWNMON         #30000              [MASK FOR OWN-MONITORING 
29S2    TL1   PAIR     OLMTE,1  
2=?L    TL2   PAIR     OLMTB,99 
2=R=    TACT
2?=W    #HAL           CPAT,0   
2?QG    TPRB
2#=6    #HAL           APERI+APERIRES,0 
2#PQ    REWCON         7
2*9B    SKIPFCON       4
2*P2    SKIPBCON       6
2*W8 ...READFCON       0                   [READ WHEN DUMP BIT SET IN APIA  
2B3B ...READBCON       2                   [READ REV WHEN DUMP BIT SET IN APIA  
2B8L    #   
2BN=    #   
2C7W    [THIS SUBROUTINES SEARCHES ALONG THE ACTIVITY RING FROM THE ACTIVITY
2CMG    [POINTED TO BY X2 FOR THE CPA OF THE SAME JOB NUMBER
2D76    [ON ENTRY : X1=FX1  
2DLQ    [ON EXIT  : X3=ADDRESS OF CPAT  
2F6B    [           X4 OVERWRITTEN  
2FL2    [LINK       X0  
2G5L    [IF THE REQUIRED ACTIVITY BLOCK IS NOT FOUND,GEORGE WILL LOOP.  
2GK=    SCA   SMO      FX2  
2H4W          STO   0  ACOMMUNE1
2HJG          LDX   3  2
2J46    SCA1  LDX   3  ACTRING(3)   
2JHQ          SBN   3  ACTRING  
2K3B          LDX   0  ATYPE(3) 
2KH2          BXU   0  TACT(1),SCA1        [BRANCH IF NOT CPAT  
2L2L          LDX   0  JOBNO(3) 
2LG=          BXU   0  JOBNO(2),SCA1       [BRANCH IF NOT CPAT FOR THIS JOB 
2L^W          SMO      FX2  
2MFG          LDX   0  ACOMMUNE1
2M^6          EXIT  0  0
2NDQ    #   
2NYB    #   
2PD2    [THIS SUBROUTINE SEARCHES THE ACTIVITY CHAIN UNTIL A PRB (APERI/APERIRES
2PXL    [BLOCK IS FOUND. IF A NON ACTIVITY TYPE BLOCK IS FOUND A GEOERR XBLK
2QC=    [IS GIVEN.  
2QWW    SPRB
2RBG          SMO      FX2  
2RW6          STO   0  ACOMMUNE1
2S*Q    SPRB1   
2STB          LDX   3  FPTR(3)  
2T*2          LDX   0  ATYPE(3) 
2TSL          BXGE  0  CACT,OERR
2W#=          BXU   0  TPRB(1),SPRB1       [BRANCH UNLESS PRB   
2WRW          SMO      FX2  
2X?G          LDX   0  ACOMMUNE1
2XR6          EXIT  0  0
2Y=Q    #   
2YQB    #                                                          K3OLMTB  
2^=2    #   
2^PL    [ENTRY POINT FOR REWIND 
329=    QK3OLMTB
32NW          LDX   2  EVENT2(2)
338G          ADN   2  1
33N6          LDN   7  0                   [REPLY   
347Q          LDN   6  7
34MB          LDN   1  1
3572          INMOVE   FX2,2,6,1
35LL          CAPCA 
366=          FPCACA   3,FX2               [FIND PCA
36KW          CALL  0  SPRB  [SEARCH ACTIVITY CHAIN UNTIL PRB FOUND 
375G          ADN   3  A1   
37K6          FPERENT  4,3,2,6             [FIND PRB ENTRY  
384Q          BNG   2  OERR2               [ENTRY NOT IN PRB
38JB          LDX   7  1(2)                [DEVICE LIST POINTER 
3942          LOBJPERIS 7,7 
39HL          LDX   0  GSIGN
3=3=          STO   0  1(2)                [SET OFF-LINE
3=GW          ADN   6  1                   [FOR ROLPA   
3?2G          GETACT   AOLPT,,1 
3?G6          LDX   3  BPTR(2)             [ADDRESS OF AOLPT
3?^Q          STO   4  ACC4(3)  
3#FB          STO   5  ACC5(3)  
3#^2          STO   5  AWORK4(3)           [AREWIND WILL OWN THE TAPE BUT MODE  
3*DL                                       [COMMAND WILL WANT THE DEVICE LIST   
3*Y=                                       [POINTER FOR *MTN EVEN IF OFFLINE
3BCW          LINKSET  3,TL1(1) 
3BXG          LDN   0  2                   [ONLINE MT INDICATOR 
3CC6          STO   0  ATMARK(3)
3CWQ          LDX   0  GSIGN
3DBB          ORS   0  ALTMARK(3)          [TAPE 'GIVEN'
3DW2          STO   0  FRECHADD(3)         [CHAIN ACTIVITY IF EVENT 
3F*L          LDX   0  JOBNO(2) 
3FT=          STO   0  JOBNO(3)            [JOB NR  
3G#W          STO   7  ACOUNT(3)           [COUNT OF OBJECT PROGRAM PERIS   
3GSG          ROLPA                        [CHAIN AOLPT 
3H#6          DFSET    5,REW               [REWIND IN PROGRESS  
3HRQ          LDN   7  0                   [SET SWITCH TO SIGNIFY REWIND
3J?B    #   
3JR2    [THIS IS COMMON TO REWIND,BACKWARD SKIP AND FORWARD SKIP PERIS. 
3K=L    [ 1)  SETS UP A AREWIND ACTIVITY BLOCK ,WITH ALINK2 SET TO POINT TO 
3KQ=    [     K99OLMTB  
3L9W    [ 2)  THE APPROPRIATE PERI IS INITIATED [I.E 7,6,4] 
3LPG    [ 3)  CO-ORDINATE -UNTIL PERI HAS BEEN FINISHED,RE-ENTRY AT K99OLMTB
3M96    QQ  
3MNQ          GETACT   AREWIND,,1   
3N8B          LDX   6  JOBNO(2) 
3NN2          LDX   2  BPTR(2)  
3P7L          STO   6  JOBNO(2) 
3PM=          LINKSET  2,TL2(1) 
3T4L          LOCKC    2,SERCHR 
3TJ=          LDX   2  BPTR(2)  
3TK? ...      STO   5  CPPTR(2) 
3TL# ...      STO   7  ACC7(2)  
3TM* ...      STO   4  ACC4(2)  
3TNB ...      SMO      7
3TPC ...      LDX   6  REWCON(1)
3TQD ...Q2    DCA      5,DLA,6,MODE 
3TRF ...      LDX   0  7
3TSG ...      SBN   0  3
3TTH ...      BNG   0  QND4                [J IF NOT READ OR READ REVERSE   
3TWJ ...      LDN   0  1
3TXK ...      DCA      5,DLA,0,COUNT       [SET COUNT OF 1  
3TYL ...      LDN   0  AWORK1(2)
3T^M ...      DCA      5,STO,0,CTSA        [TRANSFER IS INTO AWORK1 OF AREWIND  
3W2N ...QND4
3W3W          GPERI    ,2   
3WHG          BNZ   7  QSK                 [BRANCH IF NOT REWIND
3X36          RUNPROG   
3XGQ    QSK   COOR1 
3Y2B    #   
3YG2    #                                                K5OLMTB & K7OLMTB  
3Y^L    #   
3^F=    [ENTRY POINT FOR BACKWARD SKIPS 
3^YW    QK5OLMTB
42DG          LPROP    5,0  
42Y6          ANDN  0  #10                 [SKIP BACKWARDS BIT  
43CQ          BZE   0  NOSKB               [BRANCH IF SKIP BACKWKRDS NOT AV 
43F2 ...      DFJUMPN  5,DUMP,QND1         [J IF DUMPER NOT ON THIS CLUSTER 
43G= ...      LPROP    5,0  
43HG ...      ANDN  0  #20  
43JQ ...      BZE   0   QND1                [J IF DECK HASNT GOT RREV   
43L2 ...      LDN   7  4                   [READ REVERSE MARKER 
43P6 ...      BRN      Q
43S= ...QND1
43XB          LDN   7  2                   [SKIP BACKWARDS MARKER   
44C2          BRN      Q
44WL    #   
45B=    #   
45TW    [ENTRY POINT FOR FORWARD SKIPS  
46*G    QK7OLMTB
46T6          LDX   0  EVENT6(2)
47#Q          SBN   0  7
47SB          BPZ   0  MODF                [BRANCH IF ILLEGAL   
47SQ ...#SKIP          JAUTSKIP 
47T6 ...(   
47TG ...      JENVNOT  QND1A,DME
47TW ...      LDX   3  5                   [DEVICE LIST POINTER 
47W= ...      JBS   QND2,3,AUTSKIPTM
47WL ...QND1A   
47X2 ...)   
47XG ...      DFJUMPN  5,DUMP,QND2         [J IF DUMP BIT NOT SET IN APIA   
482L ...      LDN   7  3                   [READ FORWARD MARKER 
485Q ...      BRN      Q
488W ...QND2
48#2          LDN   7  1                   [SKIP FORWARDS MARKER
48RL    Q   
49?=          LDX   4  EVENT2(2)
49QW          ADN   4  1
4=2N ...      LDX   6  EVENT3(2)           [X6 => PROGRAM CHANNEL NUMBER
4=6K ...      LDX   3  EVENT4(2)           [X3 => FIRST WORD OF PERI CONTROL ARE
4==G          CAPCA 
4=G# ...      STO   6  AWORK1(2)           [STORE UNIT NUMBER   
4=L9 ...      STO   3  AWORK2(2)           [STORE PERI TYPE,MODE.   
4=Q6          BRN      QQ   
4?9Q    #   
4?PB    #                                                          K99OLMTB 
4#92    #   
4#NL    [ENTRY POINT USED WHEN OLMTB IS RE-ENTERED AFTER CO-ODINATING, AFTER
4*8=    [INITIATING A REWIND,SKIP BACK OR SKIP FORWARD PERI.
4*MW    [ 1)  FINDS THE CPA 
4B7G    QK99OLMTB   
4BM6          BZE   7  QRW                 [BRANCH IF REWIND
4BM^ ...      LDX   0  7
4BNS ...      SBN   0  3
4BPM ...      BNG   0  QND3                [J IF NOT READ OR READ REVERSE   
4BP^ ...      LDCT  0  #040 
4BQ? ...      ANDX  0  CPRW1(2) 
4BQK ...      BNZ   0  TRYMODE4            [J IF TAPE FAIL ON MULTIPLE READS
4BQX ...      LDCT  0  #020 
4BR* ...      ANDX  0  CPRW1(2) 
4BRX ...      BNZ   0  QND3                [J IFTAPE MARK HIT   
4BSG ...      DFJUMPS  ,DUMP,NDUMPFIN      [J IF DUMP STILL HAPPENING   
4BSJ ...TRYMODE4
4BSM ...      SBN   7  2                   [CONVERT READ INTO CORRECT SKIP  
4BSS ...NDUMPFIN
4BT3 ...      SMO      7
4BTW ...      LDX   6  REWCON(1)           [PICK READ OR READ REVERSE MODE  
4BWP ...      DCA      ,DLA,6,MODE  
4BXJ ...      LDN   0  1
4BYC ...      DCA      ,DLA,0,COUNT        [SET COUNT OF 1  
4B^= ...      LDN   0  AWORK1(2)
4C25 ...      DCA      ,STO,0,CTSA         [TRANSFER INTO AWORK1 OF AREWINR 
4C2Y ...      GPERI    ,2   
4C3R ...      COOR1 
4C4L ...      BRN      QK99OLMTB
4C5F ...QND3
4C6Q          CALL  0  SCA                 [FIND CPAT   
4CLB          LDX   6  CPRW1(2) 
4D62          LDX   5  2
4DKL          CHANGEACT 3   
4F5=          LOCK     5
4FJW          MURDER   5                   [THROW AWAY REWIND ACTIVITY  
4G4G          GETWORD  4,2,WRITE
4GJ6          TESTREPN OK,OERR  
4H3Q          STO   6  0(2) 
4HHB          WORDFIN   
4HHN ...      LDX   4  AWORK2(2)           [X4 => PERI TYPE,MODE
4HJ2 ...      LDX   0  OWNMON(1)           [X0 => OWN-MONITORING MASK   
4HJ# ...      ANDX  4  0                   [X4 NON ZERO IF OWN-MONITORING.  
4HJL ...      BNZ   4  RUNPROG             [DON'T REPORT FAILS WITH OWN-MONITORI
4HJY ...      LDCT  0  #040                [BIT3 FOR FAIL   
4HLG ...      ANDX  0  6
4HN4 ...      BZE   0  RUNPROG             [J IF PERI OK
4HPL ...QPAR  LDCT  4  #005                [TYPE IN B0 - 8  
4HR8 ...      ADX   4  AWORK1(2)           [CHANNEL IN B9 - 23  
4HSQ ...      OUTPACK  4,1,PERINAME,QPAR   [ASSEMBLE PARAM FOR ILLEGAL  
4HXW ...      BRN      TFAIL               [J TO ILLEGAL
4H^D ...RUNPROG 
4J32          RUNPROG   
4JGL    QRW 
4K2=          DFCLEAR  ,REW 
4KFW          LGEOG    ,5   
4K^G          LONGON   AREWT,5  
4LF6          SUICIDE                      [SUICIDE 
4LYQ    #   
4MDB    #   
4MY2    #   
4NCL    #                                                K9OLMTB & K11OLMTB 
4NX=    #   
4PBW    [ENTRY FROM PERIXCOD FOR CLOSING TAPES MODE #1000   
4PWG    QK9OLMTB
4QB6          LDN   7  1
4QTQ          BRN      PA   
4R*B    #   
4RT2    #   
4S#L    [ENTRY FROM PERIXCOD FOR UNLOADING TAPES MODE #1007.
4SS=    QK11OLMTB   
4T?W          LDN   7  0
4TRG    [THIS IS COMMON TO BOTH CLOSE AND UNLOAD PERIS. 
4W?6    [ 2)  THE MAG TAPE ENTRY IS ERASED FROM THE PRB.
4WQQ    [ 3)  RE-ENTRY FROM THE RELPERENT MACRO IS TO K13OLMTB, WHERE THE   
4X=B    [     OFF-LINE ACTIVITY BLOCK IS MURDERED.  
4XQ2    [ 4)  CONTROL IS PASSED 'DOWN' TO UNLOAD.   
4Y9L    [ 5)  CONTROL IS PASSED BACK 'UP' TO THE INSTRUCTION AFTER THE  
4YP=    [     RELPERENT MACRO   
4^8W    PA  
4^NG          CAPCA                        [GET BACK TO COMMAND ACTIVITY
5286          RELPERENT 4,7 
52MQ          RUNPROG   
537B    MODF  ILLEGAL  MODESEQ  
53M2    NOSKB ILLEGAL  MODE 
53WS ...TFAIL ILLEGAL  PERFAIL  
546L    #   
54L=    #     GEOERRS   
555W    #   
55KG    OERR  GEOERR   1,XBLK   
5656    OERR2 GEOERR   1,XPRB   
56JQ    #   
574B    SERCHR  
57J2          SMO      FX2  
583L          LDX   2  BPTR 
58H=          EXIT  1  0
592W          MENDAREA 50,K88OLMTB  
59GG    #END
^^^^ ...56563505000100000000