{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CARTCONT867)}}
====== CARTCONT867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BSOFF|BSOFF]], [[george:macro:BSON|BSON]], [[george:macro:BUTTONOLE|BUTTONOLE]], [[george:macro:CAFSINFO|CAFSINFO]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLALLOC|CLALLOC]], [[george:macro:CLCOUNT|CLCOUNT]], [[george:macro:CLWTBSW|CLWTBSW]], [[george:macro:COOR2|COOR2]], [[george:macro:COOR3|COOR3]], [[george:macro:DISENGPER|DISENGPER]], [[george:macro:DOWN|DOWN]], [[george:macro:FON|FON]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORMX|INFORMX]], [[george:macro:JANON|JANON]], [[george:macro:JBUSY|JBUSY]], [[george:macro:JCAFSDV|JCAFSDV]], [[george:macro:JDED|JDED]], [[george:macro:JDISENG|JDISENG]], [[george:macro:JENVNOT|JENVNOT]], [[george:macro:JHOLD|JHOLD]], [[george:macro:JNWTBSW|JNWTBSW]], [[george:macro:JONL|JONL]], [[george:macro:JPROP|JPROP]], [[george:macro:JSHARED|JSHARED]], [[george:macro:JSWOUT|JSWOUT]], [[george:macro:JUNBUSY|JUNBUSY]], [[george:macro:JUNDE|JUNDE]], [[george:macro:LADDP|LADDP]], [[george:macro:LBSUN|LBSUN]], [[george:macro:LFAILS|LFAILS]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LGPERIS|LGPERIS]], [[george:macro:LOCK|LOCK]], [[george:macro:LONGON|LONGON]], [[george:macro:LREPEATS|LREPEATS]], [[george:macro:LTYPE|LTYPE]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUT|MONOUT]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:OUTPACKX|OUTPACKX]], [[george:macro:OUTPAR|OUTPAR]], [[george:macro:PHOLD|PHOLD]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETELOG|SETELOG]], [[george:macro:SETHOLD|SETHOLD]], [[george:macro:STARTACT|STARTACT]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:SWOUT|SWOUT]], [[george:macro:TESTLINK|TESTLINK]], [[george:macro:TRACE|TRACE]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:UP|UP]]
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