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