CIMOP867

(George Source)

Macros used: BXE, CAPCA, CHAIN, CHECKB, COOR1Y, DERINGD, FADDRESS, FCAPCA, FINDACTNO, FINMVCH, FOUTMOVE, FPUT, FREECORE, GEOERR, GETACT, HUNTACT, HUNTW, ILLEGALX, LINKSET, LOCKCA, LONGCOOR, LONGOFF, LONGSET, MENDAREA, MHUNTW, NAME, NBREAKIN, OLPFINX, PAIR, PMODES, READYON, RINGACT, RINGTWO, RUNPROG, SEGENTRY, SETNCORE, SETUPCORE, SUICIDE, TOPCA, TRACE, UNPLUG, UP

CIMOP867.txt
22FL    #SEG  CIMOP8                       [G. CONSTANTINIDES   
22PD ...# COPYRIGHT INTERNATIONAL COMPUTERS 1982
22^=    #OPT           K0CIMOP=0
23DW    #OPT           K6CIMOP=0
23YG    #LIS           K0CIMOP>K0ALLGEO>K0COMMAND   
24D6                   8HCIMOP8 
24XQ    # ENTRY POINTS  
25CB          SEGENTRY K1CIMOP,Z1CIMOP  
25X2          SEGENTRY K2CIMOP,Z2CIMOP  
26BL          SEGENTRY K3CIMOP,Z3CIMOP  
26W=          SEGENTRY K4CIMOP,Z4CIMOP  
27*W          SEGENTRY K5CIMOP,Z5CIMOP  
27TG          SEGENTRY K7CIMOP,Z7CIMOP  
28*6          MENDAREA 50,K100CIMOP 
28F3 ...#   
28JY ...#     SEGENTRY K25CIMOP IS USED BY RESTORE TIME MACRO PRESETRP  
28NT ...#   
28SQ    #                              THIS  SEGMENT  DEALS  WITH  THE  
29#B    #     COMMAND  ISSUER  EXTRACODES,  SO  THAT  THE  EFFECT  OF  A  MOP   
29S2    #     CONSOLE  IS  SIMULATED
2=?L    XMASK          #77777   
2=R=                   #37777777
2?=W                   #777777  
2?QG                   #37577777
2#=6                   #77577777
2#PQ                   #71777777
2*9B    XMODE          +11  
2*P2                   +12  
2B8L                   +13  
2BN=    ZJYMODE        +JYMODE  
2C7W    ZJYRESVIOL     +JYRESVIOL   
2CMG    ZILLINS        +JYILLINS
2D76    ZJYCHAR        +JYCHAR  
2DLQ    ZCOUNT         +512 
2F6B    ZJYCOUNT       +JYCOUNT 
2FL2    PAIR1 PAIR     MORNING,2
2G5L    PAIR2 PAIR     CIMOP,2  
2GK=    PAIR3 PAIR     CIMOP,3  
2H4W    PAIR4 PAIR     LOGOUT,7 
2HJG    PAIR5 PAIR     CIMOP,1  
2J46    PAIR7 PAIR     CIMOP,7  
2JHQ    PAIR8 PAIR     CIMOP,5  
2K3B    XCONTEXT       #20412   
2K?8 ...      SEGENTRY K25CIMOP 
2KH2    XAMXMSK        +AMXMSKPR
2L2L    #     THIS IS THE ENTRY POINT FOR THE FIRST PERI ISSUED BY  A  PROGRAM  
2LG=    #     THE PERI MUST BE MODE 13 & A CPA IS SET UP TO PROCESS THE COMMANDS
2L^W    #     ISSUED BY SUBSEQUENT PERIS
2MFG    #   
2M^6    Z1CIMOP 
2NDQ          LDX   7  APETADDR(2)         [PCA ADDR
2NYB          LDX   3  7
2PD2          LDCH  5  CINUM(2)            [CHANNEL NO  
2PXL          LOCKCA   3,EVENT2(2),4
2QC=          LDX   3  4
2QWW          LDX   0  0(3)                [EXTRACT MODE
2RBG          ANDX  0  XMASK(1) 
2RW6          TXU   0  XMODE+2(1)          [ERROR UNLESS MODE 13
2S*Q          BCS      XILLMODE1
2STB          LDX   3  EVENT2(2)
2T*2          ADN   3  1                   [
2TSL          LDX   1  EVENT1(2)
2W#=          LDCH  6  ARM1-AFW1(1)        [MEMBER NO THAT STARTED UP THE CHANL 
2WRW          LDX   1  FX1  
2X?G          LDX   2  7
2XR6          FADDRESS 2,3,HLOCK1   
2Y=Q          STOZ     0(3)                [SET REPLY WORD  
2YQB          SMO      FX2  
2^=2          LDX   4  ACTNUM              [OLPA'S  
2^PL          TOPCA    PAIR3(1)            [PUT PCA ON LIST,LINK K3CIMOP
329=          COOR1Y                       [PUT OLPA TO SLEEP   
32NW          CALL  0  ZFINDLCB 
338G          BNG   3  K1CIMOP             [J IF LCB NOT PRGSENT
33N6          BRN      Z2ENTRY  
347Q    #     THIS IS THE CONTINUATION OF THE ROUTINE WHICH DEALS WITH AN   
34MB    #     INITIAL MODE 13 PERI IT SETS UP A CPA & LCB   
3572    #   
35LL    Z3CIMOP 
366=          UNPLUG
36KW          CAPCA                        [CHANGE TO CPA   
375G          GETACT   CPAT 
37K6          STO   6  AWORK1(2)           [SAVE MEMBER NO  
384Q          LDX   2  BPTR(2)  
38JB          STO   5  JSOURCE2(2)         [CHANNEL NO  
3942          LINKSET  2,PAIR1(1)          [LINK TO K2MORNING   
39HL          LDX   5  XCONTEXT(1)  
3=3=          STO   5  CONTEXT(2)   
3=GW          LDX   5  XAMXMSK(1)   
3?2G          STO   5  AMXMSK(2)
3?G6          LDN   5  60   
3?^Q          DCH   5  JSOURCE1(2)  
3#FB          SMO      FX2  
3#^2          LDX   0  JSOURCE3 
3*DL          STO   0  JSOURCE3(2)         [HAVE SAME CONS PROP 
3*Y=          HUNTW    3,APERI,ASSOCS      [ANY ASSOCIATIONS?   
3BCW          BNG   3  ZZ1                 [J IF NOT
3BXG          SETUPCORE ALOGLEN(3),3,APERI,ADUMMY   
3CC6          MHUNTW 2,APERI,ASSOCS 
3CWQ          LDN   0  A1(2)
3DBB          LDN   1  A1(3)
3DW2          SMO      ALOGLEN(2)   
3F*L          MOVE  0  0                   [MAKE A COPY OF THE ASSOCS   
3FT=          LDX   2  FX2  
3G#W          NAME    3,APERI,ASSOCS
3GSG          CHAIN   3,BPTR(2)            [AND CHAIN IT TO THE NEW CPA 
3H#6    ZZ1   SETNCORE CILCBLEN,3,AMXOR,CILCB,,1
3HRQ          FINDACTNO 2,4 
3J?B          RINGTWO  CIFPTR(3),BWORKRING(2)   
3JR2          LDX   2  FX2  
3K=L          LDX   4  JOBNO(2) 
3KQ=          STO   4  CIJOBNUM(3)  
3L9W          STOZ     CIREADY(3)   
3LPG          LDX   0  AWORK1(2)           [MEMBER NO   
3M96          STO   0  CIMEMBER(3)         [STORE IN CILCB  
3MNQ          CHAIN    3,BPTR(2)           [CHAIN LCB AFTER CPA 
3N8B          HUNTACT  CPAT,2              [HUNT BACK FOR CPAT  
3NN2          FPUT                         [ACTIVATE CPA
3P7L          RUNPROG                      [RESTART PROGRAM 
3PM=    #     THIS SECTION SETS A SPECIFIED REPLY IN THE PROGRAM'S CONTROL AREA 
3Q6W    #     AND RESTARTS THE PROGRAM IT MUST ONLY BE ENTERED IN THE AOLPA 
3QLG    #   
3R66    Z41   LDCT  6  #420                [REJECTED BUSY REPLY:B0=B4=1 
3RKQ    Z40   LINKSET  FX2,PAIR7(1)        [LINK TO K7CIMOP 
3S5B    Z42   LDX   2  7                   [PCA ADDRESS 
3SK2          SMO      FX2  
3T4L          LDX   3  EVENT2   
3TJ=          ADN   3  1                   [O/P ADDRESS OF REPLY WORD   
3W3W          FADDRESS 2,3,HLOCK1          [CONVERT TO GEORGE ADDRESS   
3WHG          STO   6  0(3) 
3X36          OLPFINX  7                   [RESTART PROG-D LINK SET 
3XGQ    #     THIS IS THE ENTRY POINT FOR THE SECOND & SUBSEQUENT PERIS 
3Y2B    #     THE FIRST SECTION PICKS UP THE CONTROL AREA & ANALYSES THE MODE   
3YG2    #     IF IT IS BREAKIN (MODE 13) WE SWITCH TO DEAL WITH IT; 
3Y^L    #     IF IT IS A TRANSFER PERI-MODE 11& 12 THE COUNT & BUFFER ADDRESS   
3^F=    #     ARE CHECKED   
3^YW    #   
42DG    Z7CIMOP 
42Y6    Z2ENTRY 
43CQ          LDX   1  EVENT1(2)           [MEL PTR 
43XB          LDCH  0  ARM1-AFW1(1)        [MEMBER THAT ISSUED THIS PERI
44C2          LDX   1  FX1  
44WL          STO   0  ACOMMUNE1(2)        [SAVE MEMBER NO  
45B=          LDX   7  APETADDR(2)  
45TW          LDX   3  7
46*G          LOCKCA   3,EVENT2(2)         [CHECK CONTROL AREA  
46T6          LDX   4  EVENT2(2)
47#Q          LDN   5  AWORK1(2)
47SB          LDN   6  4
48#2          FOUTMOVE 3,4,5,6,HLOCK1      [MOVE OUT CONTROL AREA   
48RL          CALL  0  ZFINDLCB            [FIND CI LCB 
49?=          LDEX  0  AWORK1(2)           [EXTRACT BASIC MODE  
49QW          TXU   0  XMODE+2(1)          [JUMP IF MODE 13 
4==G          BCC      N10  
4=Q6          BNG   3  REJINOP             [SET INOPERABLE REPLY
4?9Q          LDX   4  ACOMMUNE1(2) 
4?PB          STO   4  CIMEMBER(3)         [MEMBER NO   
4#92          LDX   4  0                   [MODE
4#NL          LDX   3  CIREADY(3)   
4*8=          SLL   3  7                   [B7 IS 1 IF READY WAS SET IN PROGRAM 
4*MW          LDXC  3  3                   [S LAST PERI REPLY WORD  
4B7G          ADN   4  0
4BM6          TXU   4  XMODE+1(1)          [JUMP IF ILLEGAL MODE.MODE 11 IS 
4C6Q          BCS      XILLMODE            [ONLY LEGAL IF READY IS SET & MODE   
4CLB                                       [12 IS ONLY LEGAL IF IT IS NOT   
4D62          LDN   4  CHREAD              [SET T X4 TO CONTAIN TYPE OF ACCESS  
4DKL          TXU   0  XMODE(1)            [REQUIRED FOR BUFFER:READ ACCESS IF  
4F5=          BCC      Z24                 [MODE 11,WRITE ACCESS IF MODE 12 
4FJW          LDN   4  CHWRITE  
4G4G    Z24   LDX   6  AWORK3(2)           [COUNT   
4GJ6          BZE   6  XCOUNT              [ZERO COUNT ILLEGAL  
4H3Q          TXL   6  ZCOUNT(1)
4HHB          BCC      XCOUNT              [COUNT>511 ILLEGAL-INCLUDE -VE COUNT 
4J32          ADN   6  3                   [CONVERT COUNT TO WORDS  
4JGL          SRL   6  2
4K2=          LDCT  5  #600 
4KFW          ANDX  5  AWORK4(2)
4K^G          BNZ   5  XCHAR
4LF6          LDX   5  AWORK4(2)
4LYQ          PMODES   3,7  
4MDB          ANDN  3  #10  
4MY2          BNZ   3  Z23A 
4NCL          ANDX  5  XMASK(1)            [MASK IF 15 BIT ADDRESSING MODE  
4NX=    Z23A  CHECKB   5,6,RESV2,7,4,Z25   [CHECK BUFFER IS WITHIN RESERVATIONS 
4PBW    Z25 
4PWG          SBN   4  CHREAD   
4QB6          CALL  0  ZFINDLCB            [LOCATE LCB  
4QTQ          BNG   3  REJINOP  
4R*B          BZE   4  N20                 [JUMP IF MODE 11 
4RT2    #     THIS SECTION DEALS WITH MODE 12 PERI I.E.READ PERIS   
4S#L    #     IF INTERLOCK BIT 1 OF CIREADY IN THE LCB IS SET THEN THERE IS DATA
4SS=    #     WAITING IN THE LCB & IT IS MOVED INTO THE PROGRAM.
4T?W    #     IF THE BIT IS CLEAR NO DATA IS WAITING & THE PERI IS REJECTED-BUSY
4TRG    #   
4W?6          LDCT  0  #200                [TEST IF DATA READY-B1 OF CIREADY SET
4WQQ          ANDX  0  CIREADY(3)          [(IT COULD JUST WORTHWHILE MAKING
4X=B          BZE   0  Z41                 [ THIS TEST BEFORE THE CHECKB SINCE  
4XQ2                                       [THE PERI WILL OFTEN BE REJECTED.)   
4Y9L          LDX   6  CIREADY(3)          [NO OF CHARS IN LCB  
4YP=          ANDN  6  #7777
4^8W          LDX   0  AWORK3(2)           [COUNT FROM CONTROL AREA 
4^NG          TXL   0  6
5286          BCC      Z37  
52MQ          LDX   6  0                   [SET X6 TO SMALLER OF TWO COUNTS 
537B    Z37   BZE   6  Z37A                [JUMP IF ZERO
53M2          LDN   4  CIMESS(3)
546L          LDX   1  7
54L=          FINMVCH  1,5,4,6,HLOCK2      [MOVE DATA INTO PROGRAM  
555W          LDX   1  FX1  
55KG    Z37A  LDX   0  AWORK1(2)
5656          ANDN  0  #1000
56JQ          BZE   0  X1                  [J IF NOT CONTINUATION READ  
574B          LDX   0  CIREADY(3)          [CONTINUATION READ(#1014)
57J2          ANDN  0  #7777               [CHARS IN CI BUFFER  
583L          TXL   6  0                   [J IF CHARS WANTED EQUAL TO CHARS
58H=          BCC      X1                  [IN CI BUFFER
592W          SBX   0  6
59GG          DSA   0  CIREADY(3)   
5=26          LDN   5  CIMESS(3)
5=FQ    P1    LDEX  2  0
5=^B          MVCH  4  0(2) 
5?F2          BNZ   2  P2   
5?YL          LDN   2  512  
5#D=    P2    SBX   0  2
5#XW          BNZ   0  P1   
5*CG          LDCT  6  #100                [READ LIMITED - MORE CHARS TO BEREAD 
5*X6          BRN      Z40  
5BBQ    X1    SBX   6  AWORK3(2)           [REMAINDER CHAR COUNT
5BWB          LDCT  0  #200                [NO MORE DATA IN CILCB BIT   
5CB2          ERS   0  CIREADY(3)   
5CTL          NGX   6  6                   [REMAINDER COUNT 
5D*=          LDCT  0  #100                [IF INTERLOCK BIT 2 IS SET DATA IS   
5DSW          ANDX  0  CIREADY(3)          [WAITING TO BE MOVED INTO THE LCB:   
5F#G          BZE   0  N30                 [THE BIT MUST BE CLEARED & THE CPA   
5FS6          ERS   0  CIREADY(3)          [LOCATED & WOKEN UP  
5G?Q          HUNTACT  CPAT,2,3 
5GRB          FPUT  
5H?2          BRN      Z40                 [SET REPLY & RESTART PROG.   
5HQL    N30   LDX   5  CIREADY(3)   
5J==          BPZ   5  Z40                 [JUMP UNLESS READY IS SET
5K9G          TRACE    5,READY  
5KP6          LDCT  4  #20                 [READY BIT   
5L8Q          SLL   5  3                   [JUMP UNLESS THE COM PROC BIT INDICAT
5LNB          BPZ   5  W10                 [ING READY AT THE TOP LEVEL IS SET   
5M82          LDCT  0  #40  
5MML          ERS   0  CIREADY(3)   
5N7=          HUNTACT  CPAT,2,3            [JUMP IF AT USER CONTEXT 
5NLW          LDX   0  CONTEXT(2)   
5P6G          SRC   0  1
5PL6          BNG   0  W10  
5Q5Q          SLL   5  1                   [JUMP IF SECOND COM PROC BIT IS SET  
5QKB          BNG   5  W30                 [IE.IF READY AT NO USER HAS OCCURRED 
5R52                                       [BEFORE  
5RJL    W20   ORS   4  CIREADY(3)          [COMMAND PROCESSOR READY 
5S4=    W10   ORX   6  4                   [SET READY BIT IN PROGS REPLY WORD   
5SHW          SRL   4  3
5T3G          ORS   4  CIREADY(3)          [SET B7 OF CIREADY TO INDICATE   
5TH6                                       [READY SET IN PROG REPLY WORD
5W2Q          BRN      Z40  
5WGB    #   
5X22    #     THIS SECTION IS ONLY ENTERED WHEN READY AT NO USER CONTEXT OCCURRS
5XFL    #     FOR THE SECOND TIME.IN WHICH CASE THE LINE IS CLOSED DOWN.THE PROG
5X^=    #     IS GIVEN A REJECTED INOPERABLE REPLY & MUST ISSUE MODE 13 TO START
5YDW    #     UP AGAIN  
5YYG    #   
5^D6    W30   LINKSET  2,PAIR4(1)          [LINK TO K7LOGOUT
5^XQ          FPUT                         [FPUT CPA
62CB          DERINGD  CIFPTR(3)           [CILCB RING DERINGED 
62X2    #     THIS SETS THE REJECTED INOPERABLE REPLY & RESTARTS THE PROGRAM.   
63BL    #     THE NEXT PERI WILL GO TO K1CIMOP  
63W=    REJINOP 
64*W          LDCT  6  #410 
64TG          LINKSET  2,PAIR5(1)          [LINK TO K1CIMOP 
65*6          BRN      Z42  
65SQ    #     THIS SECTION DEALS WITH MODE 11 PERIS I.E.WRITE PERIS,WHICH ARE   
66#B    #     ONLY ALLOWED AFTER A READY.THE DATA IS MOVED OUT OF THE PROGRAM   
66S2    #     INTO AN ADATA,CREADL WHICH IS PASSED TO THE COMMAND PROCESSOR 
67?L    #     BY CHAINING IT AFTER THE CPA & ACTIVATING THE PCA READY IS CLEARED
67R=    #     FROM THE HOLDA & THE LCB  
68=W    #   
68QG    N20 
69=6          LDCT  0  4
69PQ          ANDX  0  CIREADY(3)   
6=9B          BNZ   0  N25C                [IGNORE PERI IF ABANDON HAS BEGUN
6=P2          ADN   6  CPDATA-A1
6?8L          SETUPCORE 6,3,FILE,FRB
6?N=          SBN   6  CPDATA-A1           [BACK TO DATA WDCT   
6#7W          LDX   4  6
6#MG          LDN   6  CPDATA(3)
6*76          LDX   0  AWORK3(2)           [STORE CHAR COUNT
6*LQ          LDX   1  0
6B6B          ADN   0  CPDATA-A1*4+3
6BL2          SRL   0  2
6C5L          STO   0  A1(3)               [WORD COUNT  
6CK=          ANDN  1  3
6D4W          SRC   1  2
6DJG          ADN   1  #41  
6F46          STO   1  A1+1(3)  
6FHQ          STO   3  AWORK2(2)           [SAVE ADDRESS OF ADATA,CREADL
6G3B          LDX   2  7
6GH2          FOUTMOVE 2,5,6,4,HLOCK2      [MOVE DATA OUT   
6H2L          CALL  0  ZFINDLCB1           [FIND LCBFRESETS X2) 
6HG=          BNG   3  REJINOP1            [J IF NO LCB 
6H^W          STO   3  4
6JFG          LDX   3  AWORK2(2)           [POINTER TO FRB  
6J^6          LDX   1  A1+1(3)             [FIND THE LAST USED CHAR IN FRB  
6KDQ          SBN   1  #41                 [PFCC
6KYB          BZE   1  T1                  [NO SPACEFILLING NEEDED  
6LD2          LDX   2  1                   [FORM COUNT OF CHARS IN LAST WORD
6LXL          SLC   2  2                   [THAT NEED TO BECOME SPACES(UNUSED)  
6MC=          SBN   2  4
6MWW          NGX   2  2
6NBG          ADX   1  3                   [FORM POINTER TO FIRST UNUSED CHAR   
6NW6          ADX   1  A1(3)
6P*Q          SBN   1  1
6PTB          LDN   0  #20                 [SPACEFILL   
6Q*2    T2    DCH   0  A1(1)
6QSL          BCHX  1  £
6R#=          BCT   2  T2   
6RRW          LDX   2  FX2  
6S?G    T1    LDX   3  4
6SR6          HUNTACT  CPAT,3   
6T=Q          CHAIN    AWORK2(2),3         [CHAIN ADATA AFTE CPAT   
6TQB          LDX   2  3                   [FPVT CPA
6W=2          FPUT  
6WPL          LDX   3  4
6X9=    N25 
6XNW          LDX   0  XMASK+3(1)          [CLEAR READY IN LCB AND THE  
6Y8G                                       [REMEMBRANCE OF READY (B7)   
6YN6          ANDS  0  CIREADY(3)   
6^7Q    N25A
6^MB          LDN   6  0                   [JUMP TO SET ZERO REPLY  
7272          BRN      Z40  
72LL    N25AB BNZ   6  REJINOP             [BI REJECTED 
736=          BRN      N25A                [OK  
73KW    N25C  HUNTACT  CPAT,2,3            [FPUT CPA SINCE IT WAS ON A READY
745G          READYON  2                   [INDICATE NO ADATA/CREADL
74K6          FPUT  
754Q          BRN      N25  
75JB    #     IF THERE IS NO LCB FREE ADATA,CREADL & SET INOPERABLE REPLY   
7642    REJINOP1
76HL          FREECORE AWORK2(2)
773=          BRN      REJINOP  
77GW    #     THIS SECTION DEALS WITH MODE 13 PERIS APART FROM THE INIIAL ONE,  
782G    #     THE EFFECT OF WHICH IS TO BREAK IN ON THE JOB BEING RUN.  
78G6    #     THE ACTION TAKEN IS TO CHANGE TO THE CPA & ENTER PROCUNTX TO  
78^Q    #     SEE IF BREAKIN IS POSSIBLE. IF IT IS THE LINE IS SET WAITING FOR  
79FB    #     THE READY FOLLOWING THE BROKEN IN MESSAGE OTHERWISE THE PERI  
79^2    #     IS REJECTED   
7=DL    #   
7=Y=    N10   BNG   3  N25A                [IF LCB ABS ACCEPT PERI BUT DO NOWT  
7?CW    # NB THAT NEXT MODE  12 WOULD BE REJINOP
7?XG          LDX   0  ACOMMUNE1(2) 
7#C6          STO   0  CIMEMBER(3)         [MEMBER NO   
7#WQ          HUNTACT  CPAT,2,3 
7D#6          LDN   6  1
7DRQ    #   
7F?B    #   
7FR2 ...      TRACE    1,CIBRKIN
7JHG ...      NBREAKIN 2,4,ZBIREJ   
7JNQ          LDN   6  0                   [MARK B.I. EFFECTED  
7JYJ ...ZBIREJ  
7K8B          CALL  0  ZFINDLCB            [IF NO LCB IT IS BEING ABANDONED 
7KN2          BNG   3  N25AB               [SO ACCEPT BREAKIN (IF OKED) 
7L7L          LDX   5  CIREADY(3)   
7LM=          BNZ   6  Z41                 [J IF BREAKIN REJECTED   
7M6W          LDX   0  XMASK+4(1)          [CLEAR REMEMBRANCE OF READY  
7MLG          ANDS  0  CIREADY(3)   
7N66    #   
7NKQ    #     IT COULD BE THAT LOGOUT HAS JUST CHANGED JOBNO AND
7P5B    #     PROCONTX REJECTED BREAKIN SINCE IT DIDNOT FIND THE CPAT   
7PK2    #   
7Q4L    #     BREAK IN SUCCESSFUL   
7QJ=    #   
7R3W          HUNTACT  CPAT,2,3            [FIND CI CPAT
7RHG          LDX   0  CONTEXT(2)   
7S36          ANDN  0  1
7SGQ          BNZ   0  NAB                 [J IF IN USER CONTEXT
7T2B          LDX   0  XMASK+5(1)          [LET IT DO A READY IN BREAK-IN   
7TG2          ANDS  0  CIREADY(3)          [AND NO-USER CONTEXT 
7T^L    NAB 
7WF=          BPZ   5  N25A                [J IF READY NOT SET IN CIREADY   
7WYW          LDX   0  XMASK+1(1)          [TO MISS FPUT OF CPA 
7XDG          ANDS  0  CIREADY(3)          [CLEAR READY IN LCB  
7XY6          READYON  2                   [SET BREAK-IN BIT
7YCQ          FPUT                         [ACTIVATE CPAT   
7YXB          BRN      N25A 
7^C2    #     THIS SUBR LOCATES THE CILCB BY FOLLOWING THE FILERING OF THE OLPA.
7^WL    #     ENTRY IS USUALLY FROM THE OLPA BUT CAN BE FROM OTHER ACTIVITIES   
82B=    #     PROVIDED THAT ON ENTRY X2 POINTS TO THE OLPA. 
82TW    #     ON EXIT X3 POINTS TO LCB,OR IS SET NEGATIVE :X2 IS RESET TO FX2   
83*G    #   
83T6    ZFINDLCB1   
84#Q          LDX   2  FX2                 [ENTRY HERE ONLY FROM AOLPA  
84SB    ZFINDLCB
85#2          NGN   3  1
85RL          LDN   1  BWORKRING(2) 
86?=          BXE   1  BWORKRING+1(2),Y12  [J IF RING IS EMPTY  
86QW          LDX   3  BWORKRING(2) 
87=G          SBN   3  CIFPTR              [X3=ADDR OF LCB  
87Q6    Y12   LDX   1  FX1  
889Q          LDX   2  FX2  
88PB          EXIT  0  0
8992    #   
89NL    #     THIS SECTION REPORTS THE VARIOUS ILLEGAL CASES
8=8=    #     ILLEGALS ON FIRST ENTRY   
8=MW    XILLINS1
8?7G          LDX   5  ZILLINS(1)          ['ILLEGAL INSTRUCTION'   
8?M6    XILL1 TOPCA    PAIR2(1)            [TO PCA  
8#6Q          COOR1Y                       [PUT AOLPA TO SLEEP  
8#LB          BRN      Z1CIMOP  
8*62    Z2CIMOP 
8*KL          UNPLUG
8B5=          ILLEGALX 5                   [REPORT ILLEGAL  
8BJW    XILLMODE1   
8C4G          LDX   5  ZJYMODE(1)          ['MODE IN ERROR' 
8CJ6          BRN      XILL1
8D3Q    #   
8DHB    #     ILLEGALS ON SUBSEQUENT ENTRIES
8F32    #   
8FGL    XILLINS 
8G2=          LDX   5  ZILLINS(1)          ['ILLEGAL INSTRUCTION
8GFW    XILL  TOPCA    PAIR2(1) 
8G^G          COOR1Y                       [PUT AOLPA TO SLEEP  
8HF6          BRN      Z2ENTRY  
8HYQ    XILLMODE
8JDB          LDX   5  ZJYMODE(1)          ['MODE IN ERROR  
8JY2          BRN      XILL 
8KCL    XCOUNT  
8KX=          LDX   5  ZJYCOUNT(1)         ['COUNT OUT OF RANGE 
8LBW          BRN      XILL 
8LWG    XCHAR LDX   5  ZJYCHAR(1)          ['CHAR ADDRESS INVALID'  
8MB6          BRN      XILL 
8MTQ    RESV2 LDX   5  ZJYRESVIOL(1)       ['RESERVATION VIOLATION' 
8N*B          BRN      XILL 
8NT2    #   
8P#L    #     GEORGE   ERROR
8PS=    #   
8Q?W    XGEOERR 
8QRG          GEOERR   0,CIMOP  
8R?6    #   
8RQQ    #   
8S=B    Z4CIMOP 
8SQ2    #   
8T9L    #                  THIS  SECTION  DEALS  WITH  THE  'REL'  EXTRACODE
8TP=    #              ON  ENTRY,  X3  POINTS  TO  THE  OLPA,  WHICH  HAS  BEEN 
8W8W    #              LOCKED.  
8WNG    #   
8X86          LDX   7  3                   [RERING OLPA 
8XMQ          HUNTACT  APET,2,3            [FIND APET,TO FIND CPA   
8Y7B          FCAPCA   2,,N 
8YM2          LDX   5  BPTR(3)  
8^6L          LDX   3  ACTRING(3)   
8^L=          SBN   3  ACTRING  
925W          BXE   3  2,P18B   
92KG          RINGACT  7,2  
9356    P18A  BXE   5  BPTR(3),P18B 
93JQ          CHAIN    BPTR(3),7
944B          BRN      P18A 
94J2    P18B  LDX   3  7
953L          NAME     3,GENERAL           [RENAME OLPA 
95H=          LINKSET  3,PAIR8(1)          [LINK TO K5CIMOP 
962W          LDX   2  3
96GG          FPUT  
9726          UP                           [BACK TO RELPER  
97FQ    Z5CIMOP                            [CURRENT ACT IS GENERAL(OLD OLPA)
97^B          STOZ     6
98F2    N200  CALL  7  N250                [FIND LCB
98YL          BNG   6  N300                [J IF STOPJOB ACCEPTED   
9#B2          LDN   6  1
9*K4 ...      LDX   3  2
9C7T ...      NBREAKIN 2,5,N240 
9C?Q          LDCT  6  #400                [SET ACCPT BIT   
9CRB    N240  CALL  7  N250 
9D?2    N300  LDXC  5  CIREADY(3)   
9DQL          BCC      N258                [J IF READY NOT SET  
9F==          STO   5  CIREADY(3)          [UNSET READY 
9FPW          READYON  2
9G9G    N260  FPUT  
9GP6    N259  LONGSET  CIREL,N261,CIJOBNUM(3)   
9H8Q    N261  LONGCOOR N200 
9HNB          BRN      N200                [SEE IF JOB DONE YET.
9J82    N258  SLL   5  2
9JML          BPZ   5  N259                [J IF NO OUTPUT WAITING  
9K7=          LDCT  5  #300 
9KLW          ANDX  5  CIREADY(3)          [UNSET MESSAGE BITS  
9L6G          ERS   5  CIREADY(3)          [UNSET AS THOUGH OUTPUT TAKEN
9LL6          BRN      N260                [AND RESTART CPA 
9M5Q    #   
9MKB    N250  CALL  0  ZFINDLCB1           [IS LCB STILL ON OLPAS RING? 
9N52          BPZ   3  N255                [J IF YES
9NJL          LONGOFF                      [CLEAR WAITING STYLE 
9P4=          SUICIDE                      [END 
9PHW    N255  HUNTACT  CPAT,2,3            [LOCATE CPAT OF JOB BEING ABANDONED  
9Q3G          EXIT  7  0
9QH6    #   
9R2Q    #END
^^^^ ...47664661000200000000