CARTCONT867

(George Source)

Macros used: ACROSS, BSOFF, BSON, BUTTONOLE, CAFSINFO, CHAIN, CLALLOC, CLCOUNT, CLWTBSW, COOR2, COOR3, DISENGPER, DOWN, FON, FREECORE, GEOERR, HUNTW, INFORMX, JANON, JBUSY, JCAFSDV, JDED, JDISENG, JENVNOT, JHOLD, JNWTBSW, JONL, JPROP, JSHARED, JSWOUT, JUNBUSY, JUNDE, LADDP, LBSUN, LFAILS, LGEOG, LGPERIS, LOCK, LONGON, LREPEATS, LTYPE, MENDAREA, MONOUT, OUTPACK, OUTPACKX, OUTPAR, PHOLD, SEG, SEGENTRY, SETELOG, SETHOLD, STARTACT, SUICIDE, SWOUT, TESTLINK, TRACE, UNLOCK, UP

CARTCONT867.txt
22FL          SEG      CARTCONT,867 
22^=    #   
23DW    #    COPYRIGHT INTERNATIONAL COMPUTERS LTD - 1982   
23YG    #   
24D6    #    CARTCONT AND KARTCONT PROCESS EVENTS ON DA DEVICES 
24XQ    #   
25CB    #    INITIAL ENTRY IS ALWAYS TO CARTCONT, WHICH GOES TO KARTCONT
25X2    #    TO PROCESS ENGAGED DEVICES 
26BL    #   
26W=    #    DETAILS OF THE DEVICE ARE SET UP BY CARTCONT AS FOLLOWS:   
27*W    #       AWORK1=MARKER WD
27TG    #       AWORK2=POINTER TO APIA RECORD   
28*6    #       AWORK3=POINTER TO DEVICE LIST   
28SQ    #       AWORK4=GEOG UNIT NO 
29#B    #   
29S2    #   
2=?L          SEGENTRY K1CARTCONT,QK1CART  [VIA EBA 
2=R=          SEGENTRY K2CARTCONT,QK2CART  [VIA DOWN
2?=W          SEGENTRY K3CARTCONT,QK3CART  [FROM KARTCONT TO PROCESS DISENGAGE  
2?QG          SEGENTRY K4CARTCONT,QK4CART  [REDUNDANT   
2#=6          SEGENTRY K5CARTCONT,QK5CART  [FROM SWITCH TO PROCESS SW OUT   
2#PQ    #   
2*9B    RDRUM          +9   
2*P2    RFSDM          +25  
2B8L    #   
2BN=    XMASK          #71777777
2C7W    RMASK          #71767777
2CMG    #   
2D76    #   
2DLQ    #              MESSAGE IDENTIFIERS  
2F6B    #   
2FL2    XEWFAIL        +EWFAIL             [UNIT NN FAILED  
2G5L    XENTIN12       +ENTIN12            [UNIT NN CANNOT BE DISENGAGED... 
2GK=    XEWSYSAT       +EWSYSAT            [SAFE NOW TO STOP UNIT NN
2H4W    XEWSYS         +EWSYS              [UNIT NN IS IN USE BY SYSTEM 
2HJG    XWATSW         +JWATSW             [UNIT NN IS WAITING TO BE SWITCHED OU
2J46    XUNITSWO       +JUNITSWO           [UNIT NN IS SWITCHED OUT 
2JHQ    XSWOREJ        +JSWOREJ            [SWITCHED OUT REJECTED ON UNIT NN
2K3B    #   
2KH2    #              S/R TO FIND PREVIOUS STATE FROM APIA 
2L2L    #   EXITS +0 IF DISENGAGED  
2LG=    #         ;]+1 IF ENGAGED   
2L^W    #         ;]+2 IF ILLEGAL STATE 
2MFG    #         ;]+3 IF HELD  
2M^6    #   
2NDQ    #   
2NYB    STATE SLC   5  5
2PD2          ANDN  5  3
2PXL          ADX   0  5
2QC=          EXIT  0  0
2QWW    #   
2RBG    #   
2RW6    #              S/R TO OUTPACK OPS NO PARAMETER  
2S*Q    XOUTOPNO
2STB          SBX   7  FX1  
2T*2          OUTPACK  AWORK4(2),1,GEOPER   
2TSL          ADX   7  FX1  
2W#=          EXIT  7  0
2WRW    #   
2X?G    #              S/R TO O/P MESSAGE IN X6 
2XR6    XINFORM 
2Y=Q          SBX   7  FX1  
2YQB          LDN   1  1
2^=2          INFORMX  1,6,1
2^PL          ADX   7  FX1  
329=          EXIT  7  0
32NW    #   
338G    #   
33N6    #              S/R TO FIND ASTUC FOR A GIVEN GEOGU(IN AWORK4)   
347Q    #              EXITS 0 IF NOT FOUND 
34MB    #              EXITS 1 IF ASTUC FOUND,WITH X3 POINTING TO IT
3572    #              S/R CHECKS THAT CHAIN IS IN GOOD ORDER.  
35LL    #   
366=    RFINDASTUC  
36KW          LDN   3  BCCB                [START AT BEGINNING OF CCB CHAIN 
375G    RB    LDX   3  FPTR(3)             [NEXT BLOCK  
37K6          TXU   3  CXCC 
384Q          BCC      RC                  [J IF END OF CHAIN   
38JB          LDX   6  BACK1(3) 
3942          BNZ   6  RD                  [J IF THIS IS AN ASTUC,ELSE  
39HL    RC    EXIT  0  0                   [EXIT 0 IF NOT FOUND 
3=3=    RD    BNG   6  RB                  [J IF DEAD,TRY NEXT  
3=GW          LDX   6  GEOGU(3) 
3?2G          TXL   6  AWORK4(2)           [ELSE,IS GEOG LESS THAN OURS,
3?G6          BCS      RB                  [J IF SO TO CONTINUE SEARCH  
3?^Q          TXU   6  AWORK4(2)           [IF GEOG DIFFERENT FROM OURS,WE HAVE 
3#FB          BCS      RC                  [NO ASTUC
3#^2          EXIT  0  1                   [EXIT,X3 POINTS TO ASTUC 
3*DL    #   
3*Y=    #   
3BCW    #              S/R TO FREE ASTUC
3BXG    #              OUTPUTS DISENGAGED MESSAGE TO CONSOLE AND
3CC6    #              SJ. ALSO MEDIA UNLOAD LOG IF CME 
3CWQ    #              X3 PTS TO ASTUC UNTIL IT IS FREED
3DBB    #              ON EXIT  X1=FX1, X2=FX2, X5 AND X6 ARE CORRUPTED 
3DW2    #              DRUM EVENTS ALSO USE THE CODE FROM XDRZ TO PERIN;
3F*L    #              IN THIS CASE X3=0
3FT=    #   
3G#W    #   
3GSG    RFREEASTUC  
3H#6          SBX   7  FX1  
3HRQ          CALL  0  RFINDASTUC          [FIND ASTUC  
3J?B          BRN      RS2                 [BRANCH IF NO ASTUC  
3JR2          TRACE    BACK1(3),FREEAST?
3K=L          LDCT  0  #200                [STOP SOMEONE ELSE PICKING UP DISC   
3KQ=          ORS   0  ASMARK(3)           [WHILE CHURNING THRU SJ BY MARKING   
3L9W                                       [DISENGAGED IN ASTUC 
3LPG          LOCK     3
3M96    XDRZ  LGPERIS   AWORK3(2),6        [COUNT OF TRANSFERS  
3N8B          BSON     EMSBIT,PERIN        [J IF EMS AS SJ NOT SET UP YET   
3NN2          OUTPACK  AWORK4(2),1,GEOPER   
3P7L          JENVNOT  YNOT,CME            [FOR NON-CAFS DEVICES UNDER  
3PM=          JCAFSDV  AWORK3(2),YNOT      [CME PRODUCE MEDIA UNLOAD ERROR  
3Q6W          LDN   6  22                  [LOGS
3QLG          LDX   5  AWORK3(2)
3R66          SETELOG  1,6,5
3RKQ          LDN   6  #5060               [RECORD AND TRAILER TYPES
3S5B          ORS   6  ELHEADER+1(1)
3SK2          STOZ     5
3T4L          LGPERIS  AWORK3(2),6         [TRANSFER CT TO ERROR LOG
3TJ=          SLL   56 8
3W3W          ORS   5  ELHEADER+9(1)
3WHG          STO   6  ELHEADER+10(1)   
3X36    YNOT  LDN   6  BACK1(3) 
3XGQ          LDN   2  1
3Y2B          LDN   5  JPDCSN   
3YG2          BNZ   3  RR1A 
3Y^L          LDN   5  JPDSKIP  
3^F=          LDN   2  0
3^YW    RR1A  OUTPACKX 6,2,5               [OUTPUT SKIP OR CSN  
42DG          LGPERIS  AWORK3(2),6  
42Y6          OUTPACK  6,1,TRANSCT  
43CQ          CLCOUNT  AWORK3(2),GEORGE 
43XB          LREPEATS  AWORK3(2),6 
44C2          OUTPACK  6,1,REPEATS  
44WL          LFAILS    AWORK3(2),6 
45B=          OUTPACK  6,1,FAILCT   
45TW          OUTPAR   TIMENOW             [TIME TO MESSAGE 
46*G          MONOUT   GDISENGDA
46T6          LREPEATS AWORK3(2),5  
47#Q          CLCOUNT  AWORK3(2),REPEAT    [CLEAR REPEAT CT IN DL   
47SB          LFAILS   AWORK3(2),6  
48#2          CLCOUNT  AWORK3(2),FAIL      [CLEAR FAIL CT IN DL 
48RL          HUNTW    1,ADATA,ELOUT
49?=          BNG   1  PERIN               [^ IF NO ERROR LOGGING   
49QW          STO   5  ELHEADER+11(1)      [REPEAT CT TO LOG
4==G          BZE   6  YELOG
4=Q6          STOZ     5
4?9Q          SLL   56 16   
4?PB          STO   5  ELHEADER+12(1)      [FAIL CT TO LOG  
4#92          ORS   6  ELHEADER+13(1)   
4#NL    YELOG SMO      BELOGACT            [PTR TO BSA/ELOG ACT 
4*8=          LDX   2  ACTRING  
4*MW          SBN   2  ACTRING  
4B7G          LDX   2  BPTR(2)  
4BM6          CHAIN    1,2                 [CHAIN ADATA/ELOUT TO BSA/ELOG   
4C6Q          STARTACT ELOG                [ACT AND ACTIVATE IT 
4CLB          LDX   2  FX2  
4D62    PERIN LDX   1  FX1  
4DKL          BZE   3  XDR1                [BRANCH IF DRUM  
4F5=          LDX   6  CSCRATCH(3)  
4FJW          BZE   6  RFREE               [BRANCH IF NO OPEN SCRATCH AREAS 
4G4G          STOZ     BPERN(3) 
4GJ6          STOZ     HTYPE(3)            [ASTUC NOW HAS MEANINGLESS...
4H3Q          STOZ     HUNIT(3)            [...CONTENTS!
4HHB          STOZ     GEOGU(3) 
4J32          STOZ     ASUNUM(3)
4JGL          LDCT  6  256                 [MARK AS DEAD
4K2=          ORS   6  BACK1(3) 
4KFW          LDCT  0  #200                [REMOVE DISENGAGE BIT
4K^G          ANDX  0  ASMARK(3)           [IF SCRATCH FILE OPEN
4LF6          ERS   0  ASMARK(3)
4LYQ          UNLOCK   3
4MDB          BRN      RS2  
4MY2    RFREE FREECORE 3
4NCL    RS2 
4NX=    #     FOR CAFS WE HAVE TO INFORM THE CAFS ACTIVITY THAT THE CARTRIDGE   
4PBW    #     HAS GONE AWAY 
4PWG    #   
4QB6          CAFSINFO DISENGAGE,AWORK3(2) [TELL CAFS SUBSYSTEM ABOUT EVENT 
4QTQ          ADX   7  FX1                 [RESTORE LINK
4R*B          LDX   1  AWORK2(2)           [POINTER TO APIA 
4RT2          LDN   5  0
4S#L          DCH   5  BSUNIT1(1)          [ZEROISE COUNT OF ASTUCS 
4SS=          EXIT  7  0
4T?W    #   
4TRG    #   
4W?6    #              S/R TO O/P PLEASE SAFE NOW TO STOP UNIT NN   
4WQQ    #              FOR DEVICES WITHOUT HOLD BUTTON  
4X=B    #              ON EXIT X2=FX2, X1 PTS TO APIA RECORD
4XQ2    #              X0,X6,X7 CORRUPTED   
4Y9L    #   
4YP=    STOPMESS
4^8W          SBX   5  FX1  
4^NG          JPROP    AWORK3(2),MESS,MESS,MESS 
5286          BRN      NOMES
52MQ    MESS  LDX   2  FX2  
537B          SMO      FX1  
53M2          LDX   6  XEWSYSAT            [SAFE NOW TO STOP UNIT NN
546L          CALL  7  XOUTOPNO 
54L=          CALL  7  XINFORM  
555W    NOMES LDX   2  FX2  
55KG          LDX   1  AWORK2(2)
5656          ADX   5  FX1  
56JQ          EXIT  5  0
574B    #   
57J2    #   
583L    #   
58H=    QK1CART 
592W          NGNC  5  1                   [=1 FROM K1 I.E. BUTTON EVENT-FROM BU
59GG    QK2CART 
5=26          LDN   5  0                   [=0 FROM K2 I.E. DOWN TO CARTCONT
5=FQ          STO   5  AWORK1(2)           [AWORK1=1 FOR K1,0 FOR K2
5=^B          LDX   1  CPPTR(2) 
5?F2          BZE   5  XJ2                 [BRANCH IF FROM K2   
5?YL          STO   1  AWORK3(2)           [D.L. PTR ALREADY IN AWORK3 FOR K2   
5#D=          TRACE    AWORK3(2),K1CART 
5#XW    XJ2   LGEOG    AWORK3(2),4  
5*CG          STO   4  AWORK4(2)           [AWORK4=GEOGRAPHICAL NO. 
5*X6          LTYPE    AWORK3(2),7         [GET PERIPHERAL TYPE 
5BBQ          LADDP    AWORK3(2),1         [GET ADDRESS OF APIA...  
5BWB          STO   1  AWORK2(2)           [...AND STORE IN AWORK2  
5CB2          SMO      FX1  
5CTL          TXU   7  RDRUM
5D*=          BCC      XDRUM               [BRANCH IF DRUM  
5DSW          SMO      FX1  
5F#G          TXU   7  RFSDM
5FS6          BCC      XDRUM               [BRANCH IF HIGH SPEED DRUM   
5G?Q    XJ4   LDXC  5  BSUNIT(1)
5GRB          BCC      XJ3                 [BRANCH IF RECORD NOT LOCKED 
5H?2          COOR3    #41  
5HQL          LDX   1  AWORK2(2)
5J==          BRN      XJ4                 [WAIT TILL UNLOCKED  
5JPW    XJ3   JENVNOT  XJ3B,CME 
5K9G          JANON    AWORK3(2),XDC       [IGNORE IF ANONYMOUS(EMS ONLY)   
5KP6          JSWOUT   AWORK3(2),XDC       [OR HAS JUST BEEN SW OUT 
5L8Q    XJ3B  LDX   5  BSUNIT3(1)   
5LNB          ANDN  5  #10                 [CHECK IF TWINNING STATUS CHANGE IN P
5M82          BZE   5  XJ3A                [^ IF NOT
5MML          COOR3    KTSCTF   
5N7=          LDX   1  AWORK2(2)
5NLW          BRN      XJ4  
5P6G    XJ3A  LDX   5  BSUNIT(1)
5PL6          ANDX  5  BITS22LS 
5Q5Q          ORX   5  GSIGN               [LOCK RECORD 
5QKB          STO   5  BSUNIT(1)
5R52          BSOFF    EMSBIT,XJ5          [BRANCH IF NOT EMS   
5RJL          JSHARED  AWORK2(2),REND      [FORGET IF SHARED
5S4=    XJ5   LDX   1  AWORK2(2)
5SHW          JUNBUSY  AWORK3(2),XJ5B      [^ IF DEVICE NOT BUSY
5T3G          BSOFF    EMSBIT,XJ5A         [OTHERWISE WAIT  
5TH6          COOR2                        [COOR2 IN EMS
5W2Q          BRN      XJ5  
5WGB    XJ5A  COOR3    #41                 [OTHERWISE WAIT FOR SPRING CLEAN 
5X22          BRN      XJ5  
5XFL    XJ5B  JUNDE    AWORK2(2),REND   
5X^=          JDISENG  AWORK3(2),RDIS      [JUMP IF DISENGAGED(IE INOP) 
5YDW          JHOLD    AWORK3(2),RHELD     [JUMP IF HELD
5YYG          LDX   0  BSUNIT3(1)   
5^D6          ANDN  0  BNOENG   
5^XQ          BZE   0  RSOK 
62CB          TRACE    AWORK4(2),CGENGAGE  [FORGET ENGAGE IF CG IN PROGRESS 
62X2          LONGON   CGENG               [WAKE UP MOVCART 
63BL          BRN      REND 
63W=    RSOK
64*W    #   
64TG    #     CURRENTLY ENGAGED 
65*6    #   
65SQ    #   
66#B          CALL  0  STATE               [FIND OUT PREVIOUS STATE AND 
66S2          BRN      RENDIS              [JUMP IF DISENGAGED  
67?L          BRN      RENEN               [JUMP IF ENGAGED 
67R=          BRN      RILLG               [JUMP IF ILLEGAL STATE   
68=W          BRN      RENHD               [JUMP IF HELD
68QG    RILLG GEOERR   1,DISHELD?   
69=6    RENDIS ACROSS  KARTCONT,1   
69PQ    RENEN  ACROSS  KARTCONT,2   
6=9B    RENHD  ACROSS  KARTCONT,3   
6=P2    #   
6?8L    #      CURRENTLY DISENGAGED 
6?N=    #   
6#7W    #   
6#MG    RDIS
6*76          CALL  0  STATE
6*LQ          BRN      RDISDIS             [PREVIOUSLY DISENGAGED   
6B6B          BRN      RDISEN              [PREVIOUSLY ENGAGED  
6BL2          BRN      RILLG               [ILLEGAL STATE   
6C5L          BRN      RDISHD              [PREVIOUSLY HELD 
6CK=    #   
6D4W    #     CURRENTLY HELD (AND ENGAGED)  
6DJG    #   
6F46    #   
6FHQ    RHELD   
6G3B          CALL  0  STATE
6GH2          BRN      RHLDIS              [PREVIOUSLY DISENGAGED   
6H2L          BRN      RHLDENG             [PREVIOUSLY ENGAGED  
6HG=          BRN      RILLG               [ILLEGAL STATE   
6H^W          BRN      RHLDHD              [PREVIOUSLY HELD 
6JFG    #   
6J^6    #   
6KDQ    #   
6KYB    #     HELD PREVIOUSLY ENGAGED   
6LD2    #   
6LXL    RHLDENG 
6MC=    #SKIP K6CARTCONT
6MWW          TRACE    AWORK4(2),HLDENG 
6NBG          LDCT  4  #040 
6NW6          ORS   4  BSUNIT(1)           [MARK HELD IN PERIPHERAL RECORD  
6P*Q          LDX   3  BSUNIT2(1)   
6PTB          BPZ   3  U1                  [BRANCH IF NOT IN USE BY SYSTEM  
6Q*2          SMO      FX1  
6QSL          LDX   6  XEWSYS              [UNIT NN IN USE BY SYSTEM
6R#=          CALL  7  XOUTOPNO 
6RRW          CALL  7  XINFORM  
6S?G          BRN      REND 
6SR6    #   
6T=Q    #     HELD PREVIOUSLY HELD  
6TQB    #   
6W=2    RHLDHD  
6WPL    #SKIP K6CARTCONT
6X9=          TRACE    AWORK4(2),HLDHD  
6XNW          LDX   3  BSUNIT2(1)   
6Y8G          BNG   3  REND                [BRANCH IF IN USE BY SYSTEM  
6YN6    U1    LDN   3  0(3) 
6^7Q          BZE   3  U2                  [BRANCH IF NO USERS  
6^MB          LDCT  4  128  
7272          ORS   4  BSUNIT(1)           [SET WAKE UP CARTCONT BIT
72LL          BRN      REND 
736=    U2    JDED     AWORK2(2),WYES      [JUMP IF DEDICATED   
73KW          LDXC  0  ETWINMK  
745G          BCS      REND                [DON'T BOTHER IF TWINNING NOT INIT   
74K6          LDX   4  BSUNIT3(1)   
754Q          ANDN  4  4
75JB          BNZ   4  WRI                 [BRANCH IF WE DISENGAGE  
7642          SMO      FX1  
76HL          LDX   4  XMASK
773=          ANDS  4  BSUNIT(1)           [MARK DISENGAGED 
77GW          CALL  7  RFREEASTUC          [FREE ASTUC  
782G          PHOLD    AWORK4(2),WIPB,WG3  [TELL OTHER PROCESSOR OK WITH US 
78G6          BRN      REND 
78^Q    WRI   LDX   4  BSUNIT(1)
79FB          SLL   4  11   
79^2          BNG   4  WYES                [BRANCH IF OK TO DISENGAGE   
7=DL          TESTLINK WLINK,WYES          [TEST LINK   
7=Y=          BRN      REND 
7?CW    WYES  CALL  7  RFREEASTUC          [FREE ASTUC  
7?XG          SMO      FX1  
7#C6          LDX   4  RMASK               [MARK DISENGAGED 
7#WQ          ANDS  4  BSUNIT(1)
7*BB    WG3   DISENGPER AWORK3(2)          [DISENGAGE   
7*W2          CALL  5  STOPMESS            [EXTRA MESS FOR ED80,FD160,FD640 
7B*L          BRN      REND 
7BT=    WLINK SMO      FX1  
7C#W          LDX   4  XMASK               [MARK DISENGAGED 
7CSG          ANDS  4  BSUNIT(1)
7D#6          CALL  7  RFREEASTUC          [FREE ASTUC  
7DRQ    WIPB  SMO      FX1  
7F?B          LDX   6  XENTIN12            [UNIT NN CANNOT BE DISENGAGED
7FR2          CALL  7  XOUTOPNO 
7G=L          CALL  7  XINFORM  
7GQ=          BRN      REND 
7H9W    #   
7HPG    #   
7J96    #     HELD PREVIOUSLY DISENGAGED
7JNQ    #   
7K8B    RHLDIS  
7KN2    #SKIP K6CARTCONT
7L7L          TRACE    AWORK4(2),HLDIS  
7LM=          DISENGPER AWORK3(2)          [DISENGPER UNIT  
7M6W          CALL  5  STOPMESS            [EXTRA MESS FOR ED80,FD160,FD640 
7MLG          JDED     AWORK2(2),WAZ
7N66          BUTTONOLE AWORK4(2)   
7NKQ          LDX   1  AWORK2(2)
7P5B    WAZ 
7PK2    #   
7Q4L    #     DISENGAGED PREVIOUSLY DISENGAGED  
7QJ=    #   
7R3W    RDISDIS 
7RHG    #SKIP K6CARTCONT
7S36          TRACE    AWORK4(2),DISDIS 
7SGQ          SMO      BSUNIT2(1)          [DISENGAGED  
7T2B          LDN   0  0
7TG2          BZE   0  RS1                 [BRANCH IF NO USERS  
7T^L          LDCT  5  128  
7WF=          ORS   5  BSUNIT(1)           [SET WAKE UP CARTCONT BIT
7WYW          BRN      REND 
7XDG    RS1   CALL  7  RFREEASTUC          [FREE ASTUC  
7XY6    RS1A  BRN      REND                [AND FINISH  
7YCQ    #   
7YXB    #   
7^C2    #     DISENGAGED PREVIOUSLY HELD
7^WL    #   
82B=    RDISHD  
82TW    #SKIP K6CARTCONT
83*G          TRACE    AWORK4(2),DISHD  
83T6          SMO      FX1  
84#Q          LDX   6  RMASK               [ENSURE B11 CLEAR
84SB          BRN      WBZ  
85#2    #   
85RL    #     DISENGAGED PREVIOUSLY ENGAGED 
86?=    #   
86QW    RDISEN  
87=G    #SKIP K6CARTCONT
87Q6          TRACE    AWORK4(2),DISEN  
889Q          SMO      FX1  
88PB          LDX   6  XMASK               [MARK APIA DISENGAGED
8992    WBZ   ANDS  6  BSUNIT(1)
89NL          SMO      BSUNIT2(1)   
8=8=          LDN   0  0
8=MW          BZE   0  RU2                 [BRANCH IF NO USERS  
8?7G          LDCT  6  128  
8?M6          ORS   6  BSUNIT(1)           [SET WAKE UP CARTCONT BIT
8#6Q          CALL  0  RFINDASTUC          [SEARCH FOR ASTUC
8#LB          BRN      RU7                 [J NOT FOUND 
8*62    #SKIP K6CARTCONT
8*KL    (   
8B5=          LDCT  6  128  
8BJW          ANDX  6  ASMARK(3)
8C4G          BZE   6  RU4  
8CJ6          GEOERR   1,NOTENG 
8D3Q    RU4 
8DHB    )   
8F32          LDCT  6  128  
8FGL          ORS   6  ASMARK(3)           [MARK DISENGAGED 
8G2=          BRN      RU7  
8GFW    RU2   CALL  7  RFREEASTUC          [FREE ASTUC  
8G^G    RU7   LDX   0  BSUNIT3(1)   
8HF6          ANDN  0  BCGCOM              [SEE IF CG COMMAND IN PROGRESS   
8HYQ          BNZ   0  REND                [NO FAILED MESSAGE IF IT IS  
8JDB          LDX   0  BSUNIT2(1)          [OR IF IN USE BY SYSTEM AS BSTS  
8JY2          BNG   0  REND                [WILL OUTPUT MESSAGE 
8KCL          SMO      FX1  
8KX=          LDX   6  XEWFAIL             [UNIT NN FAILED  
8LBW          CALL  7  XOUTOPNO 
8LWG          CALL  7  XINFORM  
8MB6          BRN      REND 
8MTQ    #   
8N*B    #   
8NT2    QK3CART 
8P#L          LDX   1  AWORK2(2)
8PS=          BRN      RDISEN   
8Q?W    #   
8QRG    QK4CART 
8R?6          GEOERR   1,K4CART 
8RQQ    #   
8S=B    #   
8SQ2    #   
8T9L    REND  LDX   1  AWORK2(2)
8TP=          LDCT  5  256  
8W8W          ERS   5  BSUNIT(1)           [UNLOCK RECORD   
8WNG          FON      ENDGRU              [WAKE UP ACTIVITIES WAITING FOR  
8X86    #                                  [GRUESOME TO FINISH  
8XMQ    #SKIP K6CARTCONT>99-99  
8Y7B          TRACE    AWORK4(2),ENDGRUE!   
8YM2          BRN      XDR1 
8^6L    #   
8^L=    #              HERE IF EVENT ON DRUM
925W    #   
92KG    XDRUM JBUSY    AWORK3(2),XDRUM  
9356          LDN   3  0
93JQ          JDISENG AWORK3(2),XDRZ
944B    XDR1  JONL  AWORK3(2),XDC          [J IF DRUM ONLINE
94J2          LBSUN    AWORK3(2),7  
953L          SBN   7  1
95H=          BZE   7  XDC                 [J IF ICF
962W          ADN   7  1
96GG          TXU   7  BRADSPLTBSU  
9726          BCC      XDC                 [J IF SCF
97FQ          LDN   5  0
97^B          LDX   1  ALFTP
98F2          BZE   1  XDC3 
98YL          LDX   6  ALOGLEN(1)   
99D=    XDC2
99XW          TXU   5  6
9=CG          BCC      XDC3                [J IF END OF ALFTABLE
9=X6          SMO      5
9?BQ          LDX   0  A1(1)               [GET NEXT ENTRY  
9?WB          BNG   0  XDC1                [J IF RESIDENCE NOT USED 
9#B2          SRL   0  12   
9#TL          ANDN  0  #7777               [ISOLATE BSUN
9**=          TXU   0  7
9*SW          BCC      XDC                 [J IF FILESTORE  
9B#G    XDC1
9BS6          ADN   5  2                   [UPDATE ALFTABLE POINTER 
9C?Q          BRN      XDC2 
9CRB    XDC3
9D?2          CLALLOC  AWORK3(2)           [ELSE CLEAR ALLOCATED BIT
9DQL    XDC   LDXC  5  AWORK1(2)
9F==          BNZ   5  RS7  
9FPW          UP                           [FROM K2 
9G9G    RS7   ACROSS   SUICIDE,1           [FROM K1 
9GP6    #   
9H8Q    #   
9HNB    #       PROCESS SWITCH OUT  
9J82    #   
9JML    QK5CART 
9K7=          LDX   0  CPPTR(2) 
9KLW          STO   0  AWORK3(2)           [D.L. PTR
9L6G          LGEOG    AWORK3(2),4  
9LL6          STO   4  AWORK4(2)           [GEOG NO 
9M5Q          LADDP    AWORK3(2),5  
9MKB          STO   5  AWORK2(2)           [APIA PTR
9N52          STO   5  AWORK1(2)           [FIRST TIME INDICATOR
9NJL    XSW1  JNWTBSW  ,XCANCSW            [^ IF SW OUT CANCELLED BY SW IN  
9P4=          LDX   3  AWORK2(2)
9PHW          LDXC  5  BSUNIT(3)
9Q3G          BCC      XSW2 
9QH6          COOR3    #41  
9R2Q          BRN      XSW1 
9RGB    XSW2  JDISENG  AWORK3(2),XSW4      [^ IF DISENGAGED 
9S22          LDX   7  AWORK1(2)
9SFL          BZE   7  XSW3                [^ IF NOT FIRST TIME 
9S^=          STOZ     AWORK1(2)
9TDW          SMO      FX1  
9TYG          LDX   6  XWATSW              [UNIT NN WAITING TO SW OUT   
9WD6          CALL  7  XOUTOPNO 
9WXQ          CALL  7  XINFORM  
9XCB          BRN      XSW1 
9XX2    XSW3  SETHOLD  AWORK3(2)
9YBL          DOWN     CARTCONT,2          [ACTION HOLD 
9YW=    XSW3A JDISENG  ,XSW1               [AND WAIT FOR DEVICE TO BE   
9^*W          COOR3    #41                 [DISENGAGED  
9^TG          BRN      XSW3A
=2*6    XSW4  LDX  0  BSUNIT2(3)
=2SQ          BZE   0  XSW5                [^ IF NO USERS   
=3#B          BRN      XSW3A
=3FJ ...XSW5  LDCH  4  BSUNIT1(3)   
=3LQ ...      BZE   4  XSW5A                  [OK IF NO ASTUC   
=3RY ...      CALL  7  RFREEASTUC             [OTHERWISE FREE ASTUC 
=3^6 ...      LDX   3  AWORK2(2)
=42C ...      SMO      FX1  
=43N ...      LDX   0  XMASK
=44^ ...      ANDS  0  BSUNIT(3)
=46# ...XSW5A LDCT  0  #400                [SET BEING CARTCONTED BIT TO 
=4?L          ORS   0  BSUNIT(3)           [PREVENT ANY CHANGE WHILST BEING 
=4R=          SWOUT    AWORK3(2),XBRK,XREJ [SWITCHED OUT
=5=W          LDX   3  AWORK2(2)
=5QG          STOZ     BSUNIT5(3)   
=6=6          LDX   6  XUNITSWO(1)          [UNIT NN SWITCHED OUT   
=6PQ          BRN      XSW6 
=79B    XREJ  LDX   6  XSWOREJ(1)           [SW OUT ON UNIT NN REJECTED 
=7P2    XSW6  CALL  7  XOUTOPNO 
=88L          CALL  7  XINFORM  
=8N=          LDX   3  AWORK2(2)
=97W          LDN   0  BSWOUT   
=9MG    #SKIP K6CARTCONT
==76    (   
==LQ          ANDX  0  BSUNIT3(3)   
=?6B          BNZ   0  XSW7 
=?L2          GEOERR   1,NWTSWOUT   
=#5L    XSW7
=#K=    )   
=*4W          ERS   0  BSUNIT3(3)          [CLEAR WAITING TO BE SW OUT BITS 
=*JG          CLWTBSW                      [IN APIA AND JPSTATE 
=B46          LDCT  0  #400 
=BHQ    #SKIP K6CARTCONT
=C3B    (   
=CH2          ANDX  0  BSUNIT(3)
=D2L          BNZ   0  XSW8 
=DG=          GEOERR   1,NOTBCART   
=D^W    XSW8
=FFG    )   
=F^6          ERS   0  BSUNIT(3)
=GDQ          FON      ENDGRU   
=GYB          SUICIDE   
=HD2    #   
=HXL    #     HERE IF SW OUT CANCELLED BY SW IN 
=JC=    #   
=JWW    XCANCSW 
=KBG          LDX   3  AWORK2(2)
=KW6          LDN   0  BSWOUT   
=L*Q    #SKIP K6CARTCONT
=LTB    (   
=M*2          ANDX  0  BSUNIT3(3)   
=MSL          BNZ   0  XCA1 
=N#=          GEOERR   1,DASWCANC   
=NRW    XCA1
=P?G    )   
=PR6          ERS   0  BSUNIT3(3)   
=Q=Q          SUICIDE   
=QQB    #   
=R=2    #   
=RPL    XBRK  GEOERR   1,BREAKIN
=S9=    #   
=SNW          MENDAREA 30,K99CARTCONT   
=T8G    #END
^^^^ ...603470640004