ENGAGE867

(George Source)

Macros used: ACROSS, BUTTONUP, BXGE, BXU, CLALLOC, CLRGROP, COMERRX, COOR3, DEMANDY, DFJUMPS, DISENGPER, ENDCOM, ENGPER, FINDPEREC, FPUT, FPUTCHA, FREEPER, GEOERR, GEOPACK, GETACTOP, GETACTXOP, GROPEREC, INFORMX, JANON, JBGROP, JDISENG, JDRM, JENG, JENV, JENVNOT, JFREE, JMT, JNANON, JNRGROP, JONL, JRGROP, JSBUSY, JWRONG, LADDP, LAMOP, LGEOG, LINKSET, LINT, LJOBNO, LONGON, LONGON1, LONGSET, LPROP, LPUNSET, LTYPE, MENDAREA, MFREE, MHUNT, MONOUT, MONOUTX, OUTNUM, OUTPACK, OUTPACKX, OUTPARAM, PAIR, PARABEG, RMDIS, SEGENTRY, SETALLOC, SETCODE, SETWTBWR, SIX, SUICIDE, TESTCODE, TICKLE, TRACE, UP, UPPLUS

ENGAGE867.txt
22FL    #SEG  ENGAGE                       [LEN WAGSTAFF
22^=    # (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982.   
23DW    #OPT  K0ENGAGE=0
23YG    #OPT  K6ENGAGE=K6PERI   
24D6    #LIS  K0ENGAGE>K0PERI>K0ALLGEO  
24XQ                   8HENGAGE 
25CB    #   
25X2    #     THIS SEGMENT IS PART OF THE PERIPHERAL CONTROLLER AND HAS ENTRY   
26BL    #     POINTS AS FOLLOWS:-   
26W=    #   
27*W    #     K1  SERVICES ENGAGE BUTTON INTERRUPTS NOTIFIED BY SPRING CLEAN
27TG    #     K10 ENGPER MACRO  
28*6    #     K30 DISENGAGE COMMAND 
28SQ    #   
29#B    #              ENTRY POINTS 
29S2    #   
2=?L          SEGENTRY K1ENGAGE,X1ENGAGE
2=R=          SEGENTRY K10ENGAGE,X10ENGAGE  
2?=W          SEGENTRY K11ENGAGE,X11ENGAGE  
2?QG          SEGENTRY K30ENGAGE,X30ENGAGE  
2#=6    #UNS CFMDME 
2#PQ          SEGENTRY K31ENGAGE,X31ENGAGE  
2*9B    #   
2*P2    #   
2B8L    TYPESIZE
2BN=    #HAL           CPAT,CPATLEN        [TR  
2C7W    #HAL  CENTRAL+ACTLF,CENTRALLEN+ACTLFLEN        [TP  
2CMG    #HAL  CENTRAL+ACTLF,CENTRALLEN+ACTLFLEN        [LP  
2D76    #HAL           CPAT,CPATLEN        [CR  
2DLQ    #HAL  CENTRAL+ACTLF,CENTRALLEN+ACTLFLEN        [CP  
2F6B    #HAL           ACTDOC,ACTDOCLEN    [MT  
2FL2    #HAL           ACTDOC,ACTDOCLEN    [EDS 
2G5L    PLINKS  
2GK=          PAIR     COMPROA,1           [TR  
2H4W          PAIR     LISTINTC,5          [TP  
2HJG          PAIR     LISTINIT,5   
2J46          PAIR     COMPROA,1           [CR  
2JHQ          PAIR     LISTINTC,5   
2K3B          PAIR     LIBLOAD,1           [MT  
2KH2          PAIR     CARTCONT,1   
2L2L    #UNS EPLOM  
2LG=          PAIR     LIBREQ,4 
2L^W    #UNS CFMDME 
2MFG    (   
2M^6    PLINKS8 
2NDQ          PAIR     ENGAGE,31
2NYB    )   
2PD2    PLINKS9 
2PXL          PAIR     ENGAGE,11
2QC=    XJRRWI         +JRRWI   
2QWW    [   
2RBG    #UNS CFMDME 
2RW6    (   
2S*Q    XOUTPACK                           [ SUBROUTINE TO 'OUTPACKX' 1 PARAM.  
2STB          SBX   7  FX1  
2T*2          OUTPACKX 4,5,6
2TSL          ADX   7  FX1  
2W#=          EXIT  7  0
2WRW    )   
2X?G    [   
2XR6    SIX            +6   
2Y=Q    NINE           +9   
2YQB    THIRTEEN       +13  
2^=2    XIPB           +24  
2^PL    XDRUM          +25  
329=    XEMDS          +26  
32NW    XIPC           +28  
338G    XJPROP         +JUNPROP 
33N6    #UNS CFMDME 
347Q    (   
34MB    X34            +34                    [PSEUDO DEVICE FOR CONTROLLER FAIL
3572    )   
35BS ...X24            +24  
35LL    TP             +1   
366=    XLP            +2   
36KW    XCR            +3   
375G    XCP            +4   
37K6    MT             +5   
384Q    #   
38JB    #UNS CFMDME 
3942    (   
39HL    PCODES                             [ TABLE OF DEVICE CODES FOR DME  
3=3=                   #1                  [ GPC
3=GW                   #5                  [ DFC
3?2G                   #42                 [ (=X"B")
3?G6                   #43                 [ (=X"C")
3?^Q                   #46                 [ (=X"F") CSC
3#FB                   #100                [ (=X"10") CSC   
3#^2                   +0                  [ END OF TABLE   
3*DL    XTYPES                             [ TABLE  OF CONTROLLER NEMONICS  
3*Y=                   4H???               [ DEVICE CODE UNKNOWN
3BCW                   4HGPC               [ = X"01XX"   !  
3BXG                   4HDFC               [ = X"05XX"   !  
3CC6 ...               4HDCU2   
3CWQ ...               4HDCU1   
3DBB                   4HCSC               [ = X"0FXX"   !-- REPLY FROM '153
3DW2                   4HCSC               [ = X"10XX"   !  
3F*L    XFAILED        8H FAILED
3FT=    XRELOAD        20H: PLEASE RELOAD IT
3G#W    XRECVRD        16H BEEN RECOVERED   
3GSG    )   
3H#6    #SKI  JSKI38                       [GLASGOW SPECIALS
3HRQ    (   
3J?B    PARS           4HCODE   
3JR2    ZCODE          4H1900   
3K=L                   4HEBCD   
3KQ=                   4HKDF9   
3L9W                   +0   
3LPG    ZPT            #40000000
3M96                   +3   
3MNQ                   +0   
3N8B    )   
3NN2    #   
3P7L    #     THIS ROUTINE SERVICES ENGAGE BUTTON INTERRUPTS FOR ALL DEVICES
3PM=    #     OTHER THAN OPERATORS CONSOLE. ENTERED FROM SEGMENT CHARGESC WITH  
3Q6W    #     THE DEVICE LIST POINTER OF THE ENGAGED DEVICE IN X3. ACTION TAKEN 
3QLG    #     VARIES ACCORDING TO DEVICE TYPE, BUT IN GENERAL AN ACTIVITY WILL  
3R66    #     BE CREATED AND FPUT IF DEVICE WAS UNALLOCATED, ELSE LONGON WILL BE
3RKQ    #     USED TO WAKE ACTIVITIES WAITING FOR THEIR PERIPHERAL TO BE ENGAGED
3S5B    #     THE CURRENT ACTIVITY IS BLANKET.  
3SK2    #   
3T4L    X1ENGAGE
3TJ=          JWRONG   3,XIT               [IGNORE INTERRUPT IF DEVICE WRONGED  
3W3W          LTYPE    3,4                 [GET DEVICE TYPE 
3WHG          JANON    3,XANON  
3X36          TXU   4  XLP(1)   
3XGQ          BCS      NOGROP   
3Y2B          JRGROP   3,XANON  
3YG2    NOGROP  
3Y^L          JONL     3,ONLINE            [BR IF DEVICE ONLINE 
3^F=    NOTDRM  
3^YW                               [TREAT AS UNALLOCATED IF IT IS A FILE DEVICE 
42DG          TXU   4  SIX(1)   
42Y6          BCC      TOK  
43CQ          TXU   4  NINE(1)             [IS IT DRUM  
43XB          BCC      TOK                 [EDS 
44C2          TXU   4  THIRTEEN(1)         [ OR FDS?
44WL          BCC      TOK                 [IF SO JUMP,OTHERWISE
45B=          TXU   4  XDRUM(1)            [IS IT HIGHSPEED DRUM?   
45TW          BCC      TOK  
46*G          TXU   4  XEMDS(1) 
46T6          BCC      TOK                 [J IF EDS(30)
47#Q          TXU   4  XIPC(1)  
47SB          BCC      TIPC                [BR IF TYPE 28 IPB   
48#2                               [SPECIAL TREATMENT FOR IPB   
48RL          TXU   4  XIPB(1)  
49?=          BCS      NIPB                [J NOT IPB   
49QW          LAMOP     3,2                [ADDRESS OF AMOP/IPBIN   
4==G          LDX   0  CHAINADD(2)  
4=Q6          BPZ   0  XGEOG               [J TO AWAKE IT IF ALREADY ACTIVE 
4?9Q          JSBUSY   CPPTR(2),XGEOG         [J IF READ UP (IF AMOP... 
4?PB    [                                   ...RECOVERED FROM INOPERABILITY)
4#92          FPUT                         [ELSE ACTIVATE IT
4#NL          BRN      XIT  
4*8=    NIPB                       [SPECIAL TREATMENT FOR 96 COLUMN CR(CS5556)  
4*MW                                       [IF 96 COLUMN CR IS NOT ONLINED JUST 
4B7G                                       [DISENGAGE IT.   
4BM6          BXU   4  XCR(1),TLP          [NOT CR  
4C6Q                                       [B15 OF CR PROPERTY CODE INDICATES A 
4CLB                                       [96 COLUMN CR (THAT ONLY ACCEPTS 
4D62                                       [CARD IMAGE MODE PERI'S).
4DKL          LPROP    3,0  
4F5=          ANDN  0  4                   [B15 NOW B21 
4FJW          BZE   0  TLP                 [NOT 96 COL CR   
4G4G          JONL     3,TLP               [ONLINED : PROCEED AS USUAL  
4GJ6          DISENGPER 3   
4H3Q          BRN      XIT  
4HHB    TLP                        [TREAT AS ALLOCATED IF NOT MT OR BASIC DEVICE
4J32          BXGE  4  SIX(1),XGEOG 
4JGL          TXU   4  XLP(1)   
4K2=          BCS      NLP                 [J NOT LP
4KFW          LPUNSET  3                   [ENSURE PAPER ALIGNED MARKER IS UNSET
4K^G    NLP                        [WAKEN ACTIVITY UNLESS DEVICE UNALLOCATED
4LF6          JFREE    3,UNALL  
4LYQ    XGEOG   
4MDB          LGEOG    3,5  
4MY2          TXU   4  MT(1)
4NCL          BCS      WAKE                [J NOT MT
4NX=    #UNS EPLOM  
4PBW          DFJUMPS  3,LOAD,XPLOM        [J IF TAPE MARKED OFFICIALLY LOADED  
4PWG          LONGON   #65,5
4QB6          BRN      XIT  
4QTQ    #UNS EPLOM  
4R*B    (   
4RT2    XPLOM   
4S#L          GETACTOP TOCHARG,ACTDOC,,1   [SET UP LONGLOCK ACTDOC IF POSSIBLE  
4SS=          LDX   2  BPTR(2)  
4T?W          STO   3  CPPTR(2)            [STORE DEVICE LIST POINTER   
4TRG          LDN   4  7
4W?6          SMO      4
4WQQ          LDN   1  PLINKS(1)           [SET LINK TO LIBREQ,4
4X=B          LINKSET  2,0(1)   
4XQ2          FPUT  
4Y9L          BRN      XIT  
4YP=    )   
4^8W    WAKE
4^NG    #UNS CFMDME 
5286    (   
52MQ          JENVNOT  X1900A,DME          [ JIF NOT IN DME ENVIRONMENT 
537B          TXU   4  X34(1)              [ SEE IF PSEUDO DEVICE (CTLR FAILURE)
53M2          BCC      XCONTFAIL           [ JIF IT IS  
546L    X1900A  
54L=    )   
555W    #SKI  IPL   
55KG    (   
5656          SEGENTRY K98ENGAGE
56JQ          NULL  
574B    )   
57J2          LONGON1  #77,5               [WAKE UP ACTIVITY AWAITING ENGAGE
583L    XIT 
58H=          SMO      FX2  
592W          LDX   0  ATYPE
59GG          SRL   0  12   
5=26          SBN   0  BAT  
5=FQ          BZE   0  XITA                [J IF IN BLANKET 
5=^B          SUICIDE   
5?F2    XITA
5?YL          ACROSS   CHARGESC,1   
5#D=                               [CREATE ACTIVITY FOR UNALLOCATED DEVICE  
5#XW    TOK   LDN   4  6                   [SET TYPE=6 FOR ALL FILE DEVICES 
5*CG    UNALL SETALLOC 3                   [MARK DEVICE ALLOCATED   
5*X6          JMT      3,XMT               [BR IF MAG TAPE  
5BBQ          SMO      4                   [USE TYPE AS TABLE MODIFIER  
5BWB          LDX   7  TYPESIZE(1)         [GET ACTIVITY BLK TYPE AND LENGTH
5CB2          LDEX  6  7                   [GET LENGTH  
5CTL          ERS   6  7                   [REMOVE LENGTH TO LEAVE TYPE IN B0-11
5D*=          GETACTXOP NGIVEN,7,6         [OPTIONAL
5DSW          BRN      MACT                [J GIVEN 
5F#G    NGIVEN  
5FS6          CLALLOC  3                   [UNSET DEVICE ALLOCATED MARKER   
5G?Q    TOCHARG 
5G#P ...      SMO      FX2  
5G*N ...      LDX   0  ATYPE
5GBM ...      SRL   0  12   
5GCL ...      SBN   0  BAT  
5GDK ...      BZE   0  TOCHARGA 
5GFJ ...      LINT     3,0  
5GGH ...      SMO      FX1  
5GHG ...      DVS   7  X24  
5GJF ...      LDCT  5  #400 
5GKD ...      SMO      7
5GLC ...      SRL   5  0
5GMB ...      LDX   7  0
5GN* ...      BUTTONUP 5,7  
5GP# ...      SUICIDE   
5GQ? ...TOCHARGA
5GRB          ACROSS   CHARGESC,2   
5H?2    MACT
5HQL    #SKI  K6ENGAGE>99-99
5J==          TRACE    3,ALLOTPER   
5JPW          LDX   2  BPTR(2)             [GET ADDR OF NEW ACTIVITY
5K9G          STO   3  CPPTR(2)            [STORE DEVICE LIST POINTER   
5KP6          TXL   4  MT(1)
5L8Q          BCC      NBASIC              [J IF MT OR FILE DEVICE  
5LNB          DCH   4  JSOURCE1(2)         [B0-5=TYPE   
5M82          LGEOG    3,0                 [B6-14=ZERO  
5MML          DEX   0  JSOURCE1(2)         [B15-23=GEOG.NO. 
5N7=    NBASIC  
5NLW    #SKI  CLONK<1$1 
5P6G          SLL   4  1
5PL6          SMO      4
5Q5Q          LDN   1  PLINKS(1)
5QKB          LINKSET  2,0(1)   
5R52          FPUT  
5RJL          BRN      XIT  
5S4=    TIPC                               [TYPE 28 IPB (IPC)   
5SHW          FPUTCHA  3                   [WAKE UP ACTIVITY IF REQUIRED
5T3G          BRN      XIT  
5TH6    ONLINE  
5W2Q          TXU   4  MT(1)
5WGB          BCC      NOTDRM              [IF MT NO DRM TEST WANTED
5X22          JDRM     3,XINDRM            [BR IF ONLINE IN DRM 
5XFL          BRN      NOTDRM   
5X^=    XINDRM  
5YDW          LJOBNO   3,6                 [LOAD JOB NO 
5YYG          TRACE    3,DRM ENG!   
5^D6          TICKLE   6                   [TICKLE PROGRAM  
5^XQ          BRN      XGEOG
62CB    XMT 
62X2    #              LONGLOCK AREA GETACT FOR MAG TAPE
63BL          GETACTOP NGIVEN,ACTDOC,,1 
63W=          BRN      MACT                [REJOIN MAIN PATH
64*W    #   
64TG    XANON   
64XD ...      JENVNOT  XANON1,CMESTAR   
64^B ...      JNANON   3,XANON1 
653# ...      JBGROP   3,XANON1 
655= ...      JDISENG  3,XITA   
6578 ...      DISENGPER 3   
6596 ...      BRN      XITA 
65?4 ...XANON1  
65*6          GETACTOP TOCHARG,ACTCDT,,1
65SQ          LDX   2  BPTR(2)  
66#B          STO   3  CPPTR(2) 
66S2          LDN   1  PLINKS9(1)   
67?L          LINKSET  2,0(1)   
67R=          FPUT  
68=W          BRN      XITA 
68QG    #   
69=6    #UNS CFMDME 
69PQ    (                                  [ ENTRY FOR PSEUDO DEVICE TYPE 34
6=9B    XCONTFAIL                          [ (CTLR FAILURE IN DME ENVIRONMENT   
6=P2    #     CREATE ACTIVITY TO OUTPUT CTLR FAIL MESSAGE   
6?8L          GETACTOP TOCHARG,ACTCDT   
6?N=          LDX   2  BPTR(2)  
6#7W          STO   4  AWORK1(2)
6#MG          LDN   1  PLINKS8(1)   
6*76          LINKSET  2,0(1)   
6*LQ          FPUT  
6B6B          BRN      XIT  
6BL2    #   
6C5L    #   
6CK=    #     ENTRY FOR OUTPUTTING CTLR FAILED MESSAGE  
6D4W    #   
6DJG    X31ENGAGE   
6F46          LDX   4  AWORK1(2)
6FHQ          FINDPEREC 2,APFOTY,4  
6G3B          LDN   3  0                   [ INDICATE ENQUIRY ABOUT CTLR FAIL   
6GH2          '153  3  2                   [ X-CODE TO GET INFO ABOUT FAIL  
6H2L          LDX   2  FX2  
6HG=    [              NOW REMEMBER REPLY FROM EXTRACODE
6H^W          STO   3  AWORK3(2)           [ BIT 9 INDICATES WHETHER RECOVERED  
6JFG                                       [ BITS 12-23  PORT/TRUNK OF CTLR.
6J^6          STO   4  AWORK4(2)           [ DEVICE CODE FOR CONTROLLER TYPE
6KDQ                                       [ (SEE TABLE AT 'PCODES' 
6KYB          SRL   4  12                  [ GET CODE INTO L.S. 12 BITS 
6LD2          LDN   2  1                   [ TABLE MODIFIER 
6LXL    SNEXTCODE   
6MC=          SMO      2
6MWW          LDX   0  PCODES-1(1)         [ GET NEXT TABLE ENTRY   
6NBG          BZE   0  SNOTYPE             [ JIF END OF TABLE   
6NW6          TXU   0  4                   [ SEE IF THIS IS FAILED TYPE 
6P*Q          BCC      STHISTYPE           [ JIF IT IT IS ELSE....  
6PTB          BUX   2  SNEXTCODE           [ ...LOOP FOR NEXT TABLE ENTRY   
6Q*2    SNOTYPE 
6QSL          LDN   2  0                    [ MODIFIER FOR "???" IF NOT FOUND   
6R#=    STHISTYPE   
6RRW          SMO      2
6S?G          LDN   4  XTYPES(1)            [ => CTLR. TYPE 
6SR6          LDN   5  1                    [ NO. OF WORDS  
6T=Q          LDN   6  JPDVARCHAR           [ P.D.C.
6TQB          CALL  7  XOUTPACK             [ SET UP %A 
6W=2    [   
6WPL          JENV     XCME1,CME
6X9=          SLL   3  12                   [   
6XNW          ADN   3  #2020                [ SET UP PORT/TRUNK IN CHARS 1,2
6Y8G          SRC   3  6                    [ SPACES IN 0,3 
6YN6          LDN   4  3                    [ => PORT/TRUNK 
6^7Q          CALL  7  XOUTPACK             [ SET UP %B 
6^MB          BRN      XRECD               [ J TO TEST FAIL RECOVERED   
7272    XCME1   
72LL          SRL   3  6                   [ SCU IN 3   
736=          LDX   4  ACES 
73KW          SLL   34 18   
745G          SRC   3  6                   [ SCU IN 1,SPACES IN 0,2,3   
74K6          LDN   4  3                   [ => SCU 
754Q          CALL  7  XOUTPACK            [ SET UP %B  
75JB          LDX   3  AWORK3(2)           [ PORT IN 3  
7642          LDX   4  ACES 
76HL          SLL   34 18   
773=          SRC   3  6                   [ PORT IN 1,SPACES IN 0,2,3  
77GW          LDN   4  3                   [ => PORT
782G          CALL  7  XOUTPACK            [ SET UP %C  
78G6    [   
78^Q    XRECD   
79FB          LDX   4  AWORK3(2)            [ NOW SEE IF FAIL WAS RECOVERED 
79^2          ANDX  4  BIT9 
7=DL          BNZ   4  XNOTRECD             [ JIF IT WAS NOT
7=Y=          LDN   4  XRECVRD(1)           [ => "BEEN RECOVERED"   
7?CW          LDN   5  4                    [ NO. OF WORDS  
7?XG          CALL  7  XOUTPACK             [ SET UP %C OR %D FOR RECOVERED CASE
7#C6          BRN      XTEND                [ J. TO DO MONOUT   
7#WQ    [   
7*BB    XNOTRECD
7*W2          LDN   4  XFAILED(1)          [ => "FAILED"
7B*L          LDN   5  2                   [ NO. OF WORDS   
7BT=          CALL  7  XOUTPACK            [ SET UP %C OR %D FOR FAILED CASE
7C#W    [   
7CSG          LDX   0  AWORK4(2)           [ NOW SEE IF IT WAS A CSC
7D#6          SRL   0  12   
7DRQ          SBN   0  6
7F?B          BNG   0  XTEND               [ JIF NOT A CSC ELSE.....
7FR2          LDN   4  XRELOAD(1)          [ ... GET => ": PLEASE RELOAD IT"
7G=L          LDN   5  5                   [ NO. OF WORDS   
7GQ=          CALL  7  XOUTPACK            [ SET UP %D OR %E IF REQUIRED
7H9W    [   
7HPG    XTEND   
7J96          JENV     XCME2,CME
7JNQ          MONOUT   CONTFAILDME         [ SEND CONTROLLER FAILED MESSAGE 
7K8B          BRN      XSUI 
7KN2    XCME2   
7L7L          MONOUT   CONTFAILCME         [ SEND CONTROLLER FAILED MESSAGE 
7LM=    [   
7M6W    XSUI
7MLG          SUICIDE   
7N66    [   
7NKQ    )   
7P5B    [                 ENTRY TO GROPE FOR ANON DEVICE
7PK2    X11ENGAGE   
7Q4L          LDX   3  CPPTR(2) 
7Q5S ...      JENVNOT  XGROPE,CMESTAR   
7Q72 ...      JNANON   3,XGROPE 
7Q88 ...XGRWT   
7Q9B ...      COOR3    GROPEWS  
7Q=J ...      JBGROP   3,XGRWT  
7Q?Q ...      JANON    3,WDIS   
7Q#Y ...      LTYPE    3,4  
7QB6 ...      TXU   4  XLP(1)   
7QC# ...      BCS      WEG  
7QDG ...      CLRGROP  3
7QFN ...      BRN      WEG  
7QGW ...XGROPE  
7QJ=          LTYPE    3,4  
7R3W          TXU   4  XLP(1)   
7RHG          BCS      XGET 
7S36          JNRGROP  3,XGET   
7SGQ          LPROP    3,0  
7T2B          STO   0  AWORK2(2)
7TG2          LDN   7  160  
7T^L          SRC   0  5
7WF=          BNG   0  YWID 
7WYW          LDN   7  132  
7XDG          SLC   0  3
7XY6          BNG   0  YWID 
7YCQ          LDN   7  120  
7YXB          SRC   0  2
7^C2          BNG   0  YWID 
7^WL          LDN   7  96   
82B=    YWID
82TW          LDN   0  65   
83*G          SLL   0  12   
83T6          ADX   7  0
84#Q          LADDP    3,1  
84SB          LDX   0  AREPERT(1)   
85#2          LDX   1  FX1  
85RL          TXU   0  7
86?=          BCS      YSTOW
86QW          LDN   0  0
87=G    YSTOW   
87Q6          STO   0  AWORK1(2)
889Q    XGET
88PB          LINT     3,0  
8992          GROPEREC 3,APINT,0
89NL          BNG   3  WDIS                [J IF GROPED FAILED  
8=8=          LTYPE    3,4  
8=MW          TXU   4  XLP(1)   
8?7G          BCS      WEG  
8?M6          JNRGROP  3,WEG
8#6Q          CLRGROP  3
8#LB          LDX   0  AWORK1(2)
8*62          BZE   0  WPROP
8*KL          LADDP    3,1  
8B5=          LDEX  6  AWORK1(2)
8BJW          LDEX  5  AREPERT(1)   
8C4G          TXL   5  6
8CJ6          BCS      REPCH
8D3Q          STO   0  AREPERT(1)   
8DHB          LDX   1  FX1  
8F32          BRN      WPROP
8FGL    REPCH   
8G2=          DEX   5  0
8GFW          STO   0  AREPERT(1)   
8G^G          STO   0  AWORK1(2)
8HF6          LGEOG    3,4  
8HYQ          OUTNUM   4,0  
8JDB          LDX   4  AWORK1(2)
8JY2          OUTPACK  4,1,NUMA 
8KCL          LDX   6  XJRRWI(1)
8KX=          MONOUTX  6
8LBW    WPROP   
8LWG          LDX   0  AWORK2(2)
8MB6          BZE   0  WEG  
8MTQ          LPROP    3,0  
8N*B          TXU   0  AWORK2(2)
8NT2          BCC      WEG  
8P#L          LGEOG    3,4  
8PS=          OUTNUM   4,0  
8Q?W          LDN   5  0
8QRG          LDX   6  XJPROP(1)
8R?6          INFORMX  5,6,1
8RQQ    WEG 
8S=B          JDISENG  3,WSUI   
8SG8 ...      LTYPE    3,4  
8SJ6 ...      TXU   4  MT(1)
8SL4 ...      BCS      NOGROP   
8SN2 ...      JWRONG   3,WSUI   
8SQ2          BRN      NOGROP   
8T9L    WDIS
8TP=          JDISENG   ,WSUI   
8W8W          DISENGPER 
8WNG    WSUI
8X86          SUICIDE   
8XMQ    #   
8Y7B    [   
8YM2    #     ENGPER
8^6L    #   
8^L=    #     THIS ROUTINE GETS THE SPECIFIED PERIPHERAL ENGAGED. IF DISENGAGED 
925W    #     WHEN FIRST ENTERED OUTPUTS SPECIFIED MESSAGE (%D) ON RELEVANT 
92KG    #     CONSOLE. REPEATS MESSAGE EVERY 'N' MINS UNTIL OPERATOR ENGAGES.   
9356    #   
93JQ    XMSGE          +JMARY              [PLEASE ENGAGE   
944B    #HAL           1,0  
94J2                   +JRESET             [PLEASE ENGAGE FOR ERROR RESTART 
953L    #HAL           1,0  
95H=                   +JKEN               [PLEASE LINE UP...   
962W    #HAL           1,0  
96GG                   +JKEN
9726    #HAL           1,1  
97FQ    #SKI  JSKI38                       [GLASGOW SPECIALS
97^B    (   
98F2                   +JPLSWIT            [PLSE SWITCH...TO...CODE...  
98YL    #HAL           1,0  
99D=    )   
99XW    #SKI JSKI38<1$1 
9=CG                   0,0  
9=X6                   +JCORRUPT           [PLEASE ENGAGE UNIT N IF COMPLETION  
9?BQ    #HAL           1,0                 [OF CORRUPT LISTING IS REQUIRED  
9?WB    X10ENGAGE   
9#B2          LDX   3  ACOMMUNE7(2)        [GET DEVICE LIST POINTER 
9#TL          LDX   4  ACOMMUNE8(2)        [GET MESSAGE MODIFIER
9**=    #SKI  K6ENGAGE>99-99
9*SW          TRACE    3,ENGPER 
9B#G          JENG     3,PENG              [J IF ALREADY ENGAGED
9BS6          LGEOG    3,5                 [LOAD GEOG NO
9C?Q          LONGSET  #77,PLWAIT,5 
9CRB          GEOPACK  5,5,5               [PACK PDC (GEOPER)   
9D?2          OUTPACK  5,1,GEOPER          [OUTPUT MESSAGE PARAMETER
9DQL    #SKI  JSKI38                       [GLASGOW SPECIALS
9F==    (   
9FPW          LDN   0  4                   [IF %D=4, CODE TYPE..
9G9G          TXU   4  0                   [..MUST BE OUTPARAMED
9GP6          BCS      NOT4 
9H8Q          MHUNT    2,CPB,CUNI   
9HNB          LDEX  7  ANUM(2)  
9J82          OUTPARAM 7,APARA,CPB,CUNI 
9JML    )   
9K7=    NOT4  ADX   1  4
9KLW          ADX   1  4                   [MAKE POINTER TO RELEVANT MESSAGE
9L6G          LDX   7  XMSGE(1)            [GET MESAGE IDENTIFIER   
9LL6          LDX   6  XMSGE+1(1)          [TIME,DELAY  
9M5Q          LDN   0  1                   [ROUTE TO CENTRAL CONSOLE
9MKB          DEMANDY  0,7,NF6,NF5,NF7,6
9N52          JENG     3,PENGD             [J IF NOW ENGAGED
9NJL          LONGSET  #77,PLWAIT,5 
9P4=          BRN      NF7                 [RE-ENTER DEMANDY
9PHW    PENGD   
9Q3G          DEMANDQUIT
9QH6    PENG  UPPLUS   2                   [ENGAGED EXIT
9R2Q    NF5   UP                           [BREAKIN EXIT
9RGB    NF6   LTYPE    3,5                 [GET DEVICE TYPE 
9S22          TXU   5  TP(1)
9SFL          BCC      TBWR                [J IF TP 
9S^=          TXU   5  XLP(1)   
9TDW          BCC      TBWR                [J IF LP 
9TYG          TXU   5  XCP(1)   
9WD6          BCS      XCD                 [J NOT CP
9WXQ    TBWR  SETWTBWR 3                   [MARK TO BE WRONGED WHEN NEXT FREED  
9XCB    XCD   UPPLUS   1                   [CANTDO EXIT 
9XX2    PLWAIT      GEOERR 1,LONGWAIT      [LONGWAIT FIELD ALREADY NONZERO  
9YBL    #   
9YW=    #   
9^*W    #     DISENGAGE COMMAND 
9^TG    #   
=2*6    #     TERMINATES A CR OR TR AT DIRECTIVE LEVEL  
=2SQ    #SKI  JSKI38                       [GLASGOW SPECIALS
=3#B    (   
=3S2    #   
=4?L    ZPAREM         +JPAREM             [THIS PARAM NOT ALLOWED IN REMOTE
=4R=    ZCOMIS         +JCOMIS             [CODE TYPE MISSING   
=5=W    ZCODNO         +JCODNO             [CODE NOT ALLOWED ON THIS DEVICE 
=5QG    #   
=6=6    XER1  LDX   1  FX1  
=6PQ          LDX   6  ZPAREM(1)
=79B          BRN      ZER  
=7P2    XER2  LDX   1  FX1  
=88L          LDX   6  ZCOMIS(1)
=8N=          BRN      ZER  
=97W    XER3  LDX   1  FX1  
=9MG          LDX   6  ZCODNO(1)
==76          BRN      ZER  
==LQ    #   
=?6B    ZER   COMERRX  6
=?L2    #   
=#5L    PARA  PARABEG  1,4,PARS(1),,0      [LOOK FOR 'CODE' OR 'CO' 
=#K=          MHUNT    3,CPB,CUNI   
=*4W          LDX   0  ANUM(3)  
=*JG          BNG   0  P1   
=B46          BZE   0  XER2                [NO TYPE GIVEN   
=BHQ          EXIT  7  1                   [CODE PARA FOUND 
=C3B    P1    MFREE    CPB,CUNI 
=CH2          SBN   4  2
=D2L          BNZ   4  PARA 
=DG=          EXIT  7  0                   [CODE PARA NOT PRESENT   
=D^W    #   
=FFG    WHATCODE
=F^6          LDX   0  ZCODE(1) 
=GDQ          BZE   0  W1                  [J IF END OF TABLE   
=GYB          SBX   0  APARA(3) 
=HD2          BZE   0  W2   
=HXL          BUX   1  WHATCODE 
=JC=    W1    BRN      XER3                [J IF TYPE NOT RECOGNISED
=JWW    W2    EXIT  7  0                   [CODE TYPE OK- X1 IS PTR 
=KBG    #   
=KW6    )   
=L*Q    #   
=LTB    X30ENGAGE   
=M*2    #   
=MSL    #SKI  JSKI38                       [GLASGOW SPECIALS
=N#=    (   
=NRW          LDN   4  4                   [FOR SUBR PARA   
=P?G          CALL  7  PARA 
=PR6          BRN      NOCOD               [J IF NO 'CODE' PARAM
=Q=Q          LDEX  0  CONTEXT(2)   
=QQB          ANDN  0  #200 
=R=2          BNZ   0  XER1                [J IF REMOTE CONTEXT 
=RPL          CALL  7  WHATCODE 
=S9=          LDX   4  ZPT(1)              [IF CODE='1900', DONT..  
=SNW          BNG   4  TAPIA               [..CHECK DEVICE TYPE 
=T8G          LDCH  5  JSOURCE1(2)  
=TN6          TXU   4  5
=W7Q          BCS      XER3                [J IF WRONG DEVICE TYPE  
=WMB    TAPIA TESTCODE ,READER,ORD,SPEC 
=X72    ORD   BNG   4  NOCH                [NO CHANGE SINCE APIA..  
=XLL    #                                  [..AND COMMAND BOTH SAY '1900'   
=Y6=          BRN      CH                  [ELSE J TO CHANGE CODE   
=YKW    SPEC  BPZ   4  NOCH                [NO CHANGE SINCE APIA..  
=^5G    #                                  [..AND COMMAND BOTH SAY 'SPECIAL'
=^K6    CH    DISENGPER 
?24Q          ENGPER   NOCH,,ZCD,4         ['PLSE SWITCH..' 
?2JB          SETCODE  ,READER  
?342    NOCH  ENDCOM
?3HL    )   
?43=    #   
?4GW    NOCOD RMDIS                        ['DISENGAGE'REMOTE DEVICE
?52G    ZCD   FREEPER                      [FREE THE (REMOTE/LOCAL) DEVICE  
?5G6          ACROSS   LOGOUT,7            [CLOSE FILES, FREE JOBLOCK & SUICIDE 
?5^Q    #   
?6FB    #   
?6^2          MENDAREA 20,K100ENGAGE
?7DL    #SKI  IPL   
?7Y=    (   
?8CW          MENDAREA 20,K99ENGAGE 
?8XG    )   
?9C6    #END
^^^^ ...435717760012