UNPLUG867

(George Source)

Macros used: BBS, BBUS, BC, BITDEFS, BS, BSOFF, BSXD, BXGE, CHECKFLAG, CLFAIL, COBJUSRT, CONCISBY, COOR3, DATUMA, DISENGPER, FCAJO, FINDLINK, FINDPUC, FINDTP, FJOCA, FJOPCA, FJOTP, FPCACA, FPCAJO, HUNT2, HUNT2B, JAUTFAIL, JAUTOFF, JBC, JBS, JBSC, JBUSY, JCAFSBSY, JCANTENG, JCBB, JFAIL, JMBAS, JSBUSY, LA, LINK, LINKSET, MBI, MBS, MBSXD, MELUNRING, MENDAREA, PAIR, PCATEST, SEGENTRY, STEPBAC1, TRACE, UNLOCK, UP, UPPLUS

UNPLUG867.txt
22FL ...#SEG  UNPLUG850                    [DEK BEASLEY    :CENT
22KH ...[   
22PD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
22T* ...[   
22^=    #OPT  K0UNPLUG=0
23DW    #LIS  K0UNPLUG>K0ALLGEO>K0LLS   
23YG          8HUNPLUG  
24D6    #   
24XQ    #     THIS SEGMENT IMPLEMENTS THE UNPLUG,NOTBUSY,UNPLUGRT AND UNPLUGRT  
25CB    #     'PUC' MACROS  
25X2    #   
26BL    #     THE ENTRY POINTS ARE AS FOLLOWS:  
26W=    #   
27*W    #     K1,K2 :  THE NOTBUSY MACRO,WHICH MERELY UNBUSIES A PROGRAM'S  
27TG    #              PERIPHERALS  
28*6    #     K3    :  THE UNPLUGRT MACRO   
28SQ    #     K4    :  THE UNPLUGRT 'PUC' MACRO 
29#B    #     K5    :  ENTRY TO UNPLUG FOR SPEC SWAPOUT NO SFWT REQUIRED
29S2    #     K7    :  ENTRY TO UNPLUG FOLLOWED BY SWAPOUT(IN PCA)  
2=?L    #     K8,K18,K28,K38 : THE UNPLUG MACRO 
2=R=    #     K9    :  ENTRY TO UNBUSY AND UNPLUG FOR MOVE  
2?=W    #   
2?QG          SEGENTRY K2UNPLUG,XX2U
2#=6          SEGENTRY K3UNPLUG,XX3U
2#PQ          SEGENTRY K4UNPLUG,XX4U
2*9B          SEGENTRY K5UNPLUG,XX5U
2*P2          SEGENTRY K7UNPLUG,XX7U
2B8L          SEGENTRY K8UNPLUG,XX8U
2BN=          SEGENTRY K18UNPLUG,XX18U  
2C7W          SEGENTRY K28UNPLUG,XX28U  
2CMG          SEGENTRY K38UNPLUG,XX38U  
2D76          SEGENTRY K9UNPLUG,XX9U
2DLQ          SEGENTRY K10UNPLUG,XX10U  
2F6B    [   
2FL2    [   
2G5L    [  BITS TO DEFINE TYPE OF UNPLUG,HOPEFULLY MNEMONIC 
2GK=    [   
2H4W          BITDEFS  AWORK1,0,RETURN,NOTBUSY,STEPBAC,NOSFWT,SWAPOUT,REPLY 
2HJG          BITDEFS  AWORK1,6,TIMEOUT 
2J46
2JHQ    [   
2K3B    [   
2KH2    #   
2L2L    #   
2LG=    TON   +100  
2L^W    PK9   +K9   
2MFG    THOUSK9        1000/K9  
2M^6    P17   PAIR     PERFAIL,2           [FOR ON-LINE PERIPHERAL FAILURE  
2NDQ    P18   PAIR     EVENTS,5            [FOR PROGRAM TIMEUP  
2NYB    SPECLINK
2PXL          LINK     SWAP,4   
2RBG    SWAPLINK
2T*2          LINK     SWAP,2   
2TSL    #   
2W#=    #   
2WRW    UGEO3 MELUNRING   3 
2X?G    #SKI  K6LLSTEST>499-499 
2XR6    (   
2Y=Q          LDX   0  ABW1(3)  
2YQB          ADX   0  ABW2(3)  
2^=2          ADX   0  ABW3(3)  
2^PL          ADX   0  ABW4(3)  
329=          BNZ   0  (GEOERR)             [QUICK CHECK THAT DERINGED  
32NW    )   
338G          EXIT  4  0
33N6
347Q    #   
34MB    #  SUBROUTINE TO SET FAIR WAIT TIME AND TIME LAST RUN,X3-> JOBBLOCK 
3572    #  LINK X0,USES X4,5,6,7,ON EXIT X1=FX1 X2=FX2  
35LL    #   
35P9 ...[     WITH IGNOREFWT RESTORE TIME MACRO SWAITCHED ON (WHICH IS AALSO
35RS ...[     THE DEFAULT); JCFWT IS SET TO ZERO RATHER THAN CALCULATED(WHICH   
35WC ...[     IMPLIES FWT NOT USED WHEN SELECTING PROGRAM TO SWAP IN) UNLESS
35^2 ...[     HLS IS OFF FOR TYPE OF JOB WHOSE PROGRAM IS BEING UNPLUGGED AND   
363K ...[     CPIFORTIMES IS IN USE.
366=    #   
36KW    SFWT  STO   0  GEN0 
375G          LDX   1  FX1  
37K6          LDX   5  HTIMES(3)
384Q          ADN   5  K9-1                [ROUND UP
38JB          DVS   4  PK9(1)              [X5 HAS RESULT   
3942          LDX   7  JCPI(3)  
3?7= ...      JBS XBACK,3,JBOFFL           [J IF BACKGROUND JOB 
3?7D ...      SEGENTRY K44UNPLUG
3?7S ...      JBS XK42,,HLSMFS  
3?9L ...      LDX   7  IMOPCPI             [HLS OFF FOR MOP 
3?=S ...      LDN   2  0
3?#2 ...      BRN      MOP  
3?*8 ...XBACK   
3?*B ...      SEGENTRY K45UNPLUG
3?*Q ...      JBS XK42,,HLSBFS  
3?CJ ...      LDX   7  IMOPCPI             [HLS OFF FOR BACKGROUND  
3?G6          LDN   2  1
3?^Q          SBN   7  100  
3#FB          NGX   7  7                   [=100-MOPCPI 
3#^2    MOP 
3*4X ...      SEGENTRY K40UNPLUG
3*#P ...      BSOFF CPIBIT,XK42            [J IF CPIFORTIMES NOT IN USE 
3*DL          DVS   6  HLSCOUNT(2)  
3*Y=          LDX   6  7                   [ MAKE FRACTION  
3BCW          LDN   7  0
3BXG          DVD   6  TON(1)   
3C25 ...      SEGENTRY K41UNPLUG
3C7? ...ONHLS BXGE  5  7,XK42   
3CWQ ...      LDCH  0  APROCNO             [NO OF PROCESSORS
3DBB ...      DVS   4  0                     [> 1 PROCESSOR,CPI MULTIPLE EFFECTI
3DW2 ...                                     [DIVIDEND + QUOTIENT IN X5 
3FT=    ONE   STO   7  JCPI(3)  
3FWH ...      SEGENTRY K42UNPLUG
3G2B ...XK42
3G3M ...      NULL  
3G4Y ...      NULL  
3G69 ...      LDN   6  0                   [SET FWT = 0 TO IGNORE   
3HRQ    MEET  STO   6  JCFWT(3)            [SET FAIR WAITING TIME   
3J?B          LDX   0  APROCTIME
3JR2          STO   0  JCTLR(3)            [AND TIME LAST RUN   
3K=L          LDX   2  FX2  
3KQ=          BRN      (GEN0)   
3L24 ...      SEGENTRY K43UNPLUG
3L9W    SMALL LDX   6  5
3LPG          LDX   5  HOLDUP              [ADJUST BY HOLDUP
3M96          MPA   5  THOUSK9(1)   
3MNQ          BRN      MEET 
3N8B    #   
3NN2    #           UNPLUG  THE PROGRAM WHOSE JOB BLOCK ADDRESS IS IN X3 ON ENTR
3P7L    #     LINK X7.NO COORDINATION.ON EXIT,X1=FX1,X2=FX2,X3 IS UNCHANGED.
3PM=    #     OTHER ACCUMULATORS ARE DESTROYED. 
3Q6W    #   
3QLG    SUNPLUG1
3R66          LDX   5  3                   [STORE JOB BLOCK ADDR
3RKQ          FPCAJO   3
3S5B          PCATEST  3,NORMAL,TP,PUC  
3SK2    TP    FINDPUC  3,3  
3T4L    PUC   CALL  4  UGEO3               [DERIND PUC  
3TJ=          FINDTP   3,3  
3W3W    NORMAL  
3WHG          CALL  4  UGEO3               [DERING TP/NORMAL
3X36    XM4 
3XGQ          TRACE    JOBNO(3),UNPLUGGD
3Y2B          LDX   3  5                   [RESTORE JOBLOCK ADDR
3YG2          EXIT  7  0
3Y^L    #   
3^F=    #   
3^YW    #     SUBROUTINE TO UNLOCK THE PRB AND ANY OLPAS.LINK X7.ON EXIT,X1=FX1,
42DG    #     X2=FX2,ALL OTHER ACCUMULATORS ARE DESTROYED.  
42Y6    #   
43CQ    SUNPLUG2
43XB          LDX   5  3                   [PRESERVE JOB BLOCK ADDR 
44C2          FPCAJO   3                   [FIND PCA
44WL          LDX   2  3
45B=          HUNT2    1,APERI,APERIRES,3  [X1 ->PRB
45TW          PCATEST  3,NORM,TP1,PUC1  
46*G    TP1   FINDPUC  2,2                 [X2 ->PUC
46T6    PUC1  LDN   0  A1(1)
47#Q          SBS   0  APRB(2)             [ADJUST PUCS PRB PTR 
47SB          FINDTP   2,3                 [X3 -> TP
48#2    NORM  UNLOCK   1                   [UNLOCK PRB  
48RL          BRN      PUN3 
48^W ...PUN2
4986 ...#UNS  CAFSINT   
49BB ...      JCAFSBSY 3,PUN3              [OMIT UNLOCK FOR BUSY CAFS CHANNEL   
49JL ...      UNLOCK   3
49QW    PUN3  LDX   3  ACTRING(3)   
4==G          SBN   3  ACTRING  
4=Q6          LDCH  0  ATYPE(3) 
4?9Q          SBN   0  AOLPT/64 
4?PB          BZE   0  PUN2                [UNLOCK ANY OLPAS
4?^8 ...      LDX   3  5                   [RELOAD JOB BLOCK ADDR.  
4#92          EXIT  7  0
4#NL    #   
4*8=    #   
4*MW    #     ROUTINE TO JBUSY AN ONLINE PERIPHERAL.ENTERED WITH X4 -> DEVICE   
4B7G ...#     LIST.X6 IS LINK.DOES JBUSY AND EXITS 0 IF BUSY.IF FAILED,EXIT 1 IS
4BM6    #     OBEYED.EXIT 2 IS OBEYED IF THE
4C6Q    #     PERIPHERAL IS NOT BUSY AND HAS NOT FAILED.
4CLB    #           NO COORDINATION. ON EXIT, X1=FX1,X2=FX2;X0,X5,X6 ARE DESTROY
4D62    #   
4DKL    UNBUSY  
4F5=          LDX   1  FX1  
4FJW          LDX   2  FX2  
4G4G ...      JBUSY    4,(6)               [EXIT 0 IF BUSY  
4GJ6 ...      JSBUSY   4,(6)
4H3Q ...      ADN   6  1
4HHB ...      JFAIL    4,(6)               [EXIT 1 IF FAILED
4J32          EXIT  6  1                   [EXIT 2 IF OK
4JGL    #   
4K2=    #   
6=R= ...[ SUBROUTINE TO DECANT PROGRAM TIMERS, CONVERT TO MILLISECONDS,ACCUMULAT
6=RS ...[ AND UPDATE TIME USED FOR EACH MEMBER. 
6=SB ...[ X1 -> PCA, LINK X7 (MOVED), [ X1 -> PCA, LINK X7 (MOVED), X4,X5,X6,X7 
6=SY ...TIMERS  
6=TG ...      STO   7  GEN2                [REMEMBER LINK   
6=W4 ...                                   [STARTING AT LAST MEMBER 
6=WL ...      LDN   7  ATM4-ATM1           [-> MEL RELATIVE TO ATM1 
6=X8 ...      LDN   6  4                   [NUMBER OF MEMBER
6=XQ ...TM1   SMO      7
6=Y# ...      LDXC  5  ASU1(1)  
6=YW ...      BCS      TM2                 [NULL MEMBER 
6=^D ...      SMO      7
6?22 ...      LDX   5  ATM1(1)             [TIME USED   
6?2J ...      DVS   4  BEATTIME            [CONVERT TO MILLISECONDS 
6?36 ...      SMO      7
6?3N ...      STO   4  ATM1(1)             [LEAVE REMAINDER 
6?4= ...      SMO      6
6?4S ...      ADS   5  ATU1-1(1)           [TIME USED   
6?5B ...      ADS   5  GEN1                [ACCUMULATE TIME USED
6?5Y ...TM2   SBN   7  ATM2-ATM1           [UPDATE TO NEXT MEL  
6?6G ...      BCT   6  TM1                 [NEXT MEMBER 
6?74 ...      BRN      (GEN2)   
6?7N ...#   
6?7P ...#     FOR B0233: S/R TO ZEROISE POINTER IN DEVICE LIST,FOR EXEC 
6?7Q ...#     TO TEST TO SEE IF PROGRAM UNPLUGGED, SO AVOIDING TROUBLE  
6?7R ...#     FROM SPURIOUS INTERRUPTS - SEE B9610. 
6?7S ...#     UNNECCESSARY BUT HARMLESS FOR NOTBUSY MACRO.  
6?7Y ...#   
6?82 ...SDPTR   
6?86 ...      SMO      4
6?88 ...      STOZ      JCCA5   
6?8= ...      EXIT  6  0
6?8# ...#   
6?8L    [   
6?N=    [   
6#7W    [ SUBROUTINE TO UNBUSY AND CHECK FOR TIMEUP AND PORFAIL 
6#MG    [     LINK X7,EXPECTS X7-> PCA,USES X6,X3,X5
6*76    [   
6*LQ    [   
6B6B    NOTBUSY1
6BL2           SBX   7  FX1 
6C5L          PCATEST  2,NBNORM,NBNORM  
6CK=          FINDTP   2,2                 [X2 -> TP
6D4W    NBNORM  
6DJG          LDX   3  APRB(2)             [X3 ->1ST ENTRY IN PRB   
6F46          SMO      FX2  
6FHQ          STO   2  AWORK2   
6FMM ...      LDX   2  FX2  
6FRJ ...[   
6FXF ...[     THE FOLLOWING CORRECTS B3341 WHICH MEANT WE ONLY TRIED
6G3B ...[      TO UNBUSY A PERIPHERAL ONCE  
6G7? ...[   
6G?8 ...NEXT
6GC5 ...      LDX   5  IREVIEW  
6GH2 ...[   
6GLX ...NEXT1   
6GQS ...      LDXC  0  0(3) 
6GWP ...[   
6H2L          BCS      PRBEND   
6HG=          LDXC  1  1(3) 
6H^W          BCC      ONLINE1              [J IF ONLINE
6JFG          ANDX  1  BITS22LS 
6JK5 ...      SBN   1  CHAINADD            [X1 -> OLPA  
6K4P ...      JCBB     1,XIPCCHECK        [J IF IPC AND CHANNEL BUSY
6K*Y ...#UNS  CAFSINT   
6KM7 ...      JCAFSBSY 1,XCAFSCHECK       [JIF CAFS CHANNEL BUSY
6KYB          LDX   0  0(3) 
6LD2          SLC   0  9
6LXL          ANDN  0  #177 
6MC=          SBN   0  #30  
6MWW          BNZ   0  NOTIPB   
6NBG          CONCISBY 1,NBACK             [J IF CONC IPB NOT BUSY  
6NL# ...      BRN      XIPBCHECK               [FOR B8179   
6NW6 ...WAIT
6PTB    UNPL  COOR3    #41                 [WAIF K9MS   
6Q*2 ...      JBC      NEXT1,2,TIMEOUT               [IF NO TIMEOUT WE LOOP TILL
6QSL ...      BCT   5  NEXT1
6R#=          BRN      NBUP                [IF NOTBUSY INFORM THEM OF BUSY PER  
6R#Q ...#UNS  CAFSINT   
6R*= ...XCAFSCHECK  
6R*S ...XIPBCHECK   
6RCB ...XIPCCHECK   
6RDY ...      JBS      WAIT,2,NOTBUSY         [J IF NOT UNPLUG MACRO
6RGG ...      FJOPCA   1,FX2
6RKL ...      JBS      NBACK,1,JBREEF       [OK IF PROG IS REALTIME 
6RNQ ...      BRN      WAIT 
6RRW    NOTIPB  
6S?G          JAUTOFF  1,NBACK  
6SR6          JAUTFAIL 1,NBACK  
6T=Q          BRN      WAIT 
6TQB    ONLINE1 
6W=2          ANDX  1  BITS22LS 
6WPL          CHECKFLA 1,NOTFLAG           [WE IGNORE FLAG WAVERS   
6X9=    NBACK BDX   3  NEXT                [GET NEXT PER
6XNW    NOTFLAG 
6Y8G          JCANTENG 1,NBACK             [IGNORE NON ENGAGEABLES  
6YN6          LDX   4  1
6^7Q          CALL  6  UNBUSY   
6^L4 ...      BRN      WAIT                [BUSY
724B ...      BRN      PHAIL               [FAILED  
72GP ...#   THE FOLLOWING LINES INVOLVING NPTR DEAL WITH B9610  
72WD ...      BRN      NPTR 
73=7 ...PHAIL JBC      NPTR,2,RETURN
73KW          CLFAIL   4                   [CLEAR FAILURE COUNT 
73TN ...NPTR
745G ...      CALL  6  SDPTR
74*# ...      BRN      NBACK
74K6    PRBEND  
754Q          LDX   1  FX1  
75JB          JBC      STOP,2,RETURN
7642          JBC      NOCHECK,2,REPLY  
76HL    STOP                               [CHECK FOR PERFAIL & TIME UP 
773=          LDX   2  AWORK2(2)           [X2 ->PCA(TP IF RCTP)
77?4 ...      LDX   3  2
77GW          PCATEST  2,USUAL,,(GEOERR)
782G          FINDPUC  2,3                 [X3 -> PUC   
78G6          LDEX  0  ASTOP(3) 
78^Q          BNZ   0  PERFAIL  
79FB    USUAL LDEX  0  ASTOP(2) 
79^2          BZE   0  NOPF 
7=DL    PERFAIL 
7=Y=          LDN   3  P17(1)              [PERFAIL LINK
7?CW          BRN      MEET1
7?MN ...NOPF  BBS      1,ASTOP(3),TIMEUP
7?XG ...      BBUS     1,ASTOP(2),NOCHECK    [J IF NO TIME UP   
7#7# ...TIMEUP  
7#C6          LDN   3  P18(1)              [FOR ILLEGAL TIMEUP  
7#WQ    MEET1 JMBAS    UP,FX2,REPLY,NOTBUSY      [J IF TO BE REPORTED TO CALLING
7*BB ...      JBSC     XLINK,FX2,REPLY    [CLEAR REPLY SWITCH TO REMMBER FAIL   
7B*L          SMO      FX2  
7BT=          LDX   2  AWORK2   
7C#W          JBS      USEPCA,FX2,SWAPOUT   
7CSG          FINDLINK 2
7D#6    USEPCA  
7DRQ          LINKSET  2,0(3)   
7DW* ...      BRN      XTEST
7DYY ...XLINK   
7F3H ...      LDX   0  0(3) 
7F66 ...      STO   0  ACOMMUNE1(2) 
7F8P ...XTEST   
7F?B          JBC      NOSB,FX2,STEPBAC    [J IF NO STEPBAC REQD
7FR2          DATUMA   3
7G=L          STEPBAC1 ,3                  [ADJUST ONR  
7GQ=          TRACE    8(3),WORD8ALT
7H9W    NOCHECK 
7HPG ...NOSB  LDX   1  FX1  
7J96          LDX   2  FX2  
7JNQ          ADX   7  FX1  
7K8B          EXIT  7  0                   [AT LAST !   
7KN2    [   
7L7L    [     ENTRIES  FOR NOTBUSY  
7LM=    [   
7M6W    XX10U   
7MLG          STOZ     AWORK1(2)
7N66          MBS      2,RETURN,REPLY,NOTBUSY   
7NKQ          BRN      NBJOIN   
7P5B    XX2U STOZ     AWORK1(2) 
7PK2         MBS      2,RETURN,NOTBUSY,REPLY,TIMEOUT
7Q4L    NBJOIN  
7QJ=          LDX   2  ACOMMUNE1(2)        [X2-7 PCA
7R3W          CALL  7  NOTBUSY1 
7RHG          UPPLUS   1                   [OK  
7S36    UP    LDX   0  0(3) 
7SGQ          STO   0  ACOMMUNE1(2) 
7T2B    NBUP  UP                           [REPORT TO CALLING ROUTINE   
7TG2    [   
7T^L    [ ENTRY FOR VARIOUS UNPLUGS SEE PRM 
7WF=    [   
7WYW    XX8U
7XDG          BSXD     0,STEPBAC
7XY6          BRN      XJOIN
7YCQ    XX18U LDN   0  0
7YXB          BRN      XJOIN
7^C2    XX28U BSXD     0,RETURN 
7^WL          BRN      XJOIN
82B=    XX38U MBSXD    0,RETURN,REPLY   
82TW    XJOIN STO   0  AWORK1(2)
83*G          FJOPCA   3,2  
85#W ...[ EMPTY PROGRAM MILL TIMERS 
85*5 ...      STOZ     GEN1                [TO ACCUMULATE TIME YSED 
85*# ...      LDX   1  2                   [ADDRESS OF PCA  
85*H ...      PCATEST  2,NORM3,,PUC3       [CHECK RCTP  
85*Q ...      FINDPUC  1,1                 [OBEYED IF TP
85*^ ...PUC3  CALL  7  TIMERS              [DECANT FOR PUC PCA  
85B8 ...      FINDTP   1,1                 [SET UP FOR TP PCA   
85BC ...NORM3 CALL  7  TIMERS              [DECANT TIMERS   
85BL ...      LDX   5  GEN1                [TOTAL MIL USED  
85BT ...      LDN   4  0
85C4 ...      ADSC  5  GPROGTIME+1         [STEP TOTAL OBJECT PROGRAM TIME  
85C? ...      ADS   4  GPROGTIME
85CG ...      ADSC  5  HCLOCKTIME+1(3)  
85CP ...      ADS   4  HCLOCKTIME(3)
85CY ...[   
85D7 ...[ CHARGE TIME SPENT IN PCA AND OLPAS
85DB ...      LDN   6  0
85DK ...      PCATEST  2,NORM1,TP2,PUC2 
85DS ...TP2   FINDPUC  2,2  
85F3 ...PUC2  ADX   6  ACTCHCH(2)   
85F= ...      STOZ     ACTCHCH(2)   
85FF ...      FINDTP   2,2  
85FN ...NORM1 ADX   6  ACTCHCH(2)   
85FX ...      STOZ     ACTCHCH(2)          [CHARGE FOR PCAS 
85G6 ...      LDX   1  APRB(2)             [X1 -> PRB   
85G* ...TOUR  LDXC  0  0(1) 
85GJ ...      BCS      PEND 
85GR ...      LDXC  2  1(1) 
85H2 ...      BCC      ONLINE              [J IF ONLINE PERI
85H9 ...      ADX   6  ACTCHCH-CHAINADD(2)  
85HD ...      STOZ     ACTCHCH-CHAINADD(2)  
85HM ...ONLINE  
85HW ...      BDX   1  TOUR                [BACK FOR NEXT   
85J5 ...PEND  FCAJO    2,3                 [X2 -> CPA   
85J# ...PEND1 LDX   7  ATUSE(2) 
85JH ...      MPA   6  CHAPTIME 
85JQ ...      DVD   6  BEATTIME            [CONVERT 
85J^ ...      ADX   5  7                   [TOTAL   
85K8 ...      STO   6  ATUSE(2)            [REMAINDER   
85KC ...      FPCAJO   2,3                 [X2 -> PCA   
85KL ...[   
85KT ...[ UPDATE TIMERS IN JOB BLOCK AND SET STOP WORD IF TIME-UP CONDITION 
85L4 ...      LDN   4  0
85L? ...      ADSC  5  HTIMEJ+1(3)  
85LG ...      ADS   4  HTIMEJ(3)           [STEP JOB TIME   
85LP ...      SBSC  5  APROGTIME+1(3)   
85LY ...      SBS   4  APROGTIME(3)        [STEP PROGRAM TIME   
85M7 ...      ADS   5  HTIMES(3)           [STEP SLOT TIME  
85MB ...#SKI  G4
85MK ...      SBS   5  HRTIMES(3)          [REDUCE TIME LEFT TO END OF SCI  
85MS ...      LA       ASTOPTIM,5          [SET PROGRAM TIMEUP  
85N3 ...      LDX   6  APROGTIME(3)        [TEST IF PROGRAM TIMEUP  
85N= ...      BNG   6  TC3                 [YES 
85NF ...      LA       ASTOPJOB,5          [SET JOB TIME UP 
85NN ...      LDXC  7  HTIMEJ+1(3)  
85NX ...      LDX   6  HTIMEJ(3)
85P6 ...      TXL   7  ATIMEJ+1(3)         [TEST IF TIME UP FOR JOB 
85P* ...      TXL   6  ATIMEJ(3)
85PJ ...      BCC      TC3                 [YES 
85PR ...      LDN   5  0                   [SET NO TIMEUPS  
85Q2 ...TC3 
85Q9 ...      ORS   5  ASTOP(2)            [SET ANY TIMEUP STOP BIT 
85RL          CALL  7  NOTBUSY1 
86?=          FJOTP    3,2                 [X3 -> JOBBLOCK  
86QW          CALL  0  SFWT 
87=G          BS       3,JBSTOP 
87Q6          BC       3,JBPLUG 
88PB          JBS      REAL,3,JBREEF
8992          CALL  7  SUNPLUG1            [ONLY DERING NON REALTIME
89NL    REAL  CALL  7  SUNPLUG2            [UNLOCK BLOX 
8=8=          JBS      UPPL,2,REPLY 
8=MW          UP
8?7G    UPPL  UPPLUS   1
8?M6    [   
8#6Q    [ ENTRIES FOR UNPLUG PRIOR TO SWAPOUT   
8#LB    [   
8*62    XX7U  STOZ     AWORK1(2)
8*KL          BS       2,SWAPOUT
8B5=          BRN      SPEC 
8BJW    XX5U  STOZ     AWORK1(2)
8C4G          MBS      2,SWAPOUT,NOSFWT 
8CJ6    SPEC
8D3Q          CALL  7  NOTBUSY1             [DO UNBUSY ETC  
8DHB          FJOTP    3,2  
8F32          BS       3,JBSTOP 
8FGL          BC       3,JBPLUG 
8G2=          JBS      NOFWT,2,NOSFWT   
8GFW          CALL  0  SFWT 
8G^G          BRN      NOTSPEC  
8HF6    NOFWT   
8HYQ          MBI      3,JBSTOP,JBPISO  
8JDB    NOTSPEC 
8JY2          JBS      (GEOERR),3,JBREEF
8KCL          CALL  7  SUNPLUG1 
8KX=          CALL  7  SUNPLUG2            [DO ACTUAL UNPLUG
8LBW          LDN   3  SPECLINK(1)  
8LWG          JBS      SPECO,2,NOSFWT   
8MB6          LDN   3  SWAPLINK(1)  
8MTQ    SPECO ACROSSVA 0(3)                [DO SWAPOUT  
8N*B    [   
8NT2    [ ENTRY FOR USE BY ASWINT TO UNPLUG AND NOTBUSY A PLUGGED IN
8P#L    [     PROGRAM PRIOR TO PROGRAM MOVE 
8PS=    [   
8Q?W    [   
8QRG    XX9U  STOZ     AWORK1(2)
8R?6          MBS      2,RETURN,NOTBUSY,TIMEOUT 
8RQQ          STO   3  AWORK4(2)           [KEEP PCA PTR
8S=B          LDX   2  3
8SQ2          CALL  7  NOTBUSY1 
8T9L          FJOTP    3,AWORK4(2)  
8TP=          CALL  7  SUNPLUG1 
8W8W          CALL  7  SUNPLUG2 
8WNG          MBI      3,JBPLUG,JBSTOP     [SET UNPLUGGED   
8X86          UPPLUS   1
8XMQ    #     THIS SECTION IMPLEMENTS THE UNPLUGRT MACRO TO ACTUALLY
8Y7B    #     UNPLUG (MELUNRING) A REALTIME PROGRAM 
8YM2    #   
8^6L    XX3U
8^L=          FPCACA   2
8^LP ...      LDX   5  2       [SAVE PCA PTR
8^M9 ...      HUNT2    2,APERI,APERIRES 
8^N8 ...       LDX   1  2   
8^NM ...      LDN   7  0        [SET OLPA COUNT 
8^P7 ...UPRTX0  
8^Q6 ...      LDXC  0 A1(2) 
8^R5 ...      BCS      UPRTX1               [J IF END OF PRB
8^S4 ...      LDXC  0  A1+1(2)  
8^T3 ...      BCC      UPRTX2   
8^TC ...      ADN   7  1      [UPDATE OLPA COUNT
8^TR ...      LDX   6  7
8^TT ...                           [FIND NTH OLPA   
8^TX ...      LDX   3  5
8^T^ ...                                 [ADDRESS OF APET   
8^W3 ...NOLPA   
8^W5 ...      LDX   3  ACTRING+FPTR(3)  
8^W7 ...      SBN   3  ACTRING  
8^W9 ...      TXU   3  FX2  
8^W? ...      BCC      (GEOERR) 
8^W* ...      LDCH  0  ATYPE(3) 
8^WC ...      SBN   0  AOLPT/64 
8^WF ...      BNZ   0  NOLPA
8^WH ...      BCT   6  NOLPA            [X3->OLPA   
8^W^ ...      JCBB     3,UPRTX3             [J IF IPC AND CHANNEL BUSY  
8^X3 ...#UNS  CAFSINT   
8^X5 ...      JCAFSBSY 3,UPRTX3             [JIF CAFS CHANNEL BUSY  
8^X8 ...#                                [FOR B8179 
8^X9 ...      LDX   0  A1(2)                [CHECK IF THIS AN IPB DEVICE
8^X= ...      SLC   0  9
8^X? ...      ANDN  0  #177 
8^X# ...      SBN   0  #30                  [JIF NOT AN IPB - CAN'T DO A
8^X* ...      BNZ   0  UPRTX2               ['CONCISBY' FOR OTHER DEVICES!!!
8^XC ...      CONCISBY    3,UPRTX2               [J IF CONC IPB NOTBUSY 
8^XL ...      BRN      UPRTX3   
8^XY ...UPRTX2  
8^YX ...      BDX   2  UPRTX0   
8^^W ...UPRTX3  
922T ...      COOR3    #41  
923S ...      BRN      XX3U 
924R ...UPRTX1  
9356 ...      HUNT2B   2,AOBJPROG,0,1   
93JQ          LDX   0  ALOGLEN(2)          [DECREMENT CORE USED FOR REALRIME PRO
944B          SBS   0  COBJUSRT 
94J2          NGNC  0  1
953L          ANDS  0  JRETI(2)            [ERASE 'REALTIME' MARK IN PROGRAM BLO
962W ...      LDX   2  1
96GG    UPRT1 LDX   0  A1(2)
9726          BNG   0  UPRT3               [JUMP IF NO MORE ENTRIES 
97FQ          LDXC  4  A1+1(2)  
97^B          BCS      UPRT2               [JUMP IF OFFLINE 
98F2          ANDX  4  BITS22LS 
98YL          JCANTENG 4,UPRT15 
99D=          CHECKFLAG   4,UPRT2          [JUMP UNLESS FLAGWAVER   
99XW    UPRT15  
9=CG          DISENGPER   4 
9=M# ...      CALL  6  SDPTR               [FOR B9610   
9=X6    UPRT2 BDX   2  UPRT1               [BACK FOR NEXT   
9?BQ    UPRT3   
9?WB          FJOCA    3,FX2
9#B2          CALL  7  SUNPLUG1            [UNPLUG AND FREE EXEC SOCKET 
9#TL          BC       3,JBREEF            [UNSET REALTIME EFFECTED MARKER  
9**=          UP
9*SW    XX4U
9B#G          FINDPUC  2,3  
9BS6          CALL  4  UGEO3               [UNPLUG THE PUC  
9C?Q          UP
9CRB          MENDAREA 50,K100UNPLUG
9D?2    #END
^^^^ ...600434500003