JAMSWAP865
(George Source)
Macros used: ACROSS, BS, BXE, COBJUNUSE, CONCISBY, FCAJO, FINDTP, FPCACA, FPCAJO, FPUT, JAUTFAIL, JAUTOFF, JBC, JBS, JBUSY, JCAFSBSY, JCANTENG, JCBB, JFAIL, JMBAC, JMBS, JSBUSY, LINK, LINKSET, MBC, MBI, MENDAREA, PAIR, PCATEST, PROGAXES, SEGENTRY, TEST, TRACE, TRACEDP, UNQUEUE
- JAMSWAP865.txt
22FL #SEG JAMSWAP [RUTH PORTER 22^= #OPT K0JAMSWAP=0 23DW #LIS K0JAMSWAP>K0ALLGEO>K0LLS 23YG 8HJAMSWAP 24D6 # 24XQ # THIS IS THE PART OF THE CORE UNJAMMER THAT SELECTS PROGRAMS TO 25CB # BE SWAPPED OUT EITHER BECAUSE OBJECT QUOTA IS BEING EXCEEDED OR 25X2 # THERE IS A SECOND OR GREATER ORDER GEORGE COREJAM OR A GEORGE FOUR 26BL # SPECIAL SWAPOUT IS REQUIRED 26W= # 27*W # 27TG SEGENTRY K1JAMSWAP,XX1J 28*6 # 28SQ UNPL LINK UNPLUG,5 29#B #SKI G3 29S2 ( 2=?L P13 PAIR SWAP,2 [SWAP OUT 2=R= P14 PAIR SWAP,4 [SWAP OUT FOR CORE UNJAMMER 2?=W ) 2?QG #SKI G4 2#=6 ( 2#PQ P13 PAIR SWAPOUT,1 2*9B P14 PAIR SWAPOUT,2 2*P2 ) 2B8L T15 +CJTHRESH15 2BN= T2 +CJTHRESH2 2C7W T3 +CJTHRESH3 2CMG T4 +CJTHRESH4 2D76 # 2DLQ PROG PROGAXES 3,(GEOERR) 2F6B EXIT 4 0 2FL2 # 2G5L # S/R TO CHECK PORIPHERALS,LINKX4,X3 ->PRB 2GK= # EXITS 0 : IF FAILED, 1 IF OK, 2 IF BUSY 2H4W # 2HJG PERCHECK 2J46 LDXC 0 0(3) 2JHQ BCS PEND [J IF END OF PRB 2K3B LDXC 2 1(3) 2KH2 BCC ONLINE [J IF ONLINE 2L2L ANDX 2 BITS22LS 2LG= SBN 2 CHAINADD 2L^W JCBB 2,XIT2 [EXIT IF BUSY 2M74 ...#UNS CAFSINT 2M#= ... JCAFSBSY 2,XIT2 [EXIT IF BUSY CAFS CHANNEL 2MFG LDX 0 0(3) 2M^6 SLC 0 9 2NDQ ANDN 0 #177 2NYB SBN 0 #30 2PD2 BNZ 0 YSYA 2PXL CONCISBY 2,TOUR [J IF NOT BUSY 2QC= XIT2 EXIT 4 2 2QWW YSYA JAUTOFF 2,TOUR 2RBG JAUTFAIL 2,(4) [EXIT IF FAIL 2RW6 BRN XIT2 2S*Q ONLINE 2STB ANDX 2 BITS22LS 2T*2 JCANTENG 2,TOUR 2TSL CALL 6 UNBUSY 2W#= ... BRN XIT2 [BUSY 2WRW ... EXIT 4 0 [FAILED 2X?G TOUR BDX 3 PERCHECK [BACK FOR NEXT 2XR6 PEND EXIT 4 1 [OK 2Y=Q # ROUTINE TO JBUSY AN ONLINE PERIPHERAL.ENTERED WITH X2 -> DEVICE 2YQB ...# LIST.X6=LINK.DOES JBUSY AND EXITS 0 IF BUSY.IF FAILED,EXIT 1 IS 2^=2 # OBEYED.EXIT 2 IS OBEYED IF THE 2^PL # PERIPHERAL IS NOT BUSY AND HAS NOT FAILED. 329= # 32NW UNBUSY 338G ... JBUSY 2,(6) [EXIT 0 IF BUSY 33N6 ... JSBUSY 2,(6) 347Q ... ADN 6 1 34MB ... JFAIL 2,(6) [EXIT 1 IF FAIL 3572 EXIT 6 1 [2 IF OK 35LL [ 366= [ ENTRY TO SELECT FOR SPECIAL SWAPOUT 36KW [ 375G [ 37K6 XX1J 384Q JBS R11A,,ASWOUTING [J IF SWAPOUT IN PROGRESS TO TERMINAT 38JB LDX 0 CJACCLINK+ALINK1-ACC3 3942 BNZ 0 R11A [SPEC SWAPOUT ALREADY GOING 395P ...#UNS ISTDP 397D ...( 3997 ...[ IF TOTAL FREE PROGRAM CORE/PAGES > CUNJAMTARG,EXIT SUCCESSFULLY 39=W ...[ 39#K ... COBJUNUSE 39B# ... SBN 0 CUNJAMTARG 39D3 ... BPZ 0 R11AA 39FQ ...) 39HL STOZ GEN3 3=3= LDN 3 BJOBQ 3=GW TH5A LDX 3 FPTR(3) [GET ADDR OF NEXT IN JOB QUEUE 3?2G BXE 3 CXJO,QEND [J IF END REACHED 3?G6 JMBS TH5A,3,JBREEF,JBAXES,JBPLUGGING,JBSO,JBNSW [IGNORE THE 3?^Q JBC TH5A,3,JBSI [J IF NOT SWAPPABLE 3#FB JMBAC SUSP,3,JBPLUG,JBSTOP [J IF NORMALLY SWAPPABLE 3#^2 LDX 0 GEN3 3*DL BNZ 0 TH5A 3*Y= FCAJO 2,3 3BCW CALL 5 TEST 3BXG FPCACA 2 [X2 -> PCA 3CC6 CALL 5 TEST 3CWQ PCATEST 2,TH5C,TH5C 3DBB FINDTP 2,2 [X2 -> TP IF PUC 3DW2 TH5C CALL 5 TEST 3F*L LDX 2 ACTRING(2) 3FT= SBN 2 ACTRING 3G#W LDCH 0 ATYPE(2) 3GSG SBN 0 AOLPT/64 3H#6 BNZ 0 TH5A 3HRQ BRN TH5C 3J?B TEST LDX 0 CLONG1(2) 3JR2 #SKI G3 3K=L BPZ 0 (5) [EXIT IF NOT WAITING FOR CORE 3KQ= #SKI G4 3L9W ( 3LPG BNG 0 TH5B [J IF WAITING FOR CORE 3M96 SLL 0 4 [EXIT IF NOT WAITING 3MNQ BPZ 0 (5) [ FOR PROGRAM CORE 3N8B ) 3NN2 TH5B LDEX 0 ATYPE(2) 3P7L BZE 0 TH5A [ONLY IF ON QUEUE 3PM= JBC TH5FA,3,JBPLUG [J IF ALREADY UNPLUGGED 3Q6W SMO FX2 3QLG STO 3 ACOMMUNE1 [REMEMBER JOB BLOCK ADDRESS 3R66 SMO FX2 3RKQ STO 2 ACOMMUNE2 [REMEMBER ADDR OF ACTIVITY BLOCK WAIT 3S5B FPCAJO 2,3 3SK2 PCATEST 2,RCTP1,RCTP1 3T4L FINDTP 2,2 [X2 -> TP IF PUC 3TJ= RCTP1 3W3W LDX 3 APRB(2) [YES, GET ADDR OF PRB 3WHG CALL 4 PERCHECK 3X36 BRN TOUR [FAILED 3XGQ BRN TH5F [O.K. 3Y2B TH5AA SMO FX2 3YG2 LDX 3 ACOMMUNE1 [RESTORE JOB BLOCK ADDRESS 3Y^L BRN TH5A [LOOK AT NEXT JOB IN QUEUE 3^F= TH5F SMO FX2 3^YW LDX 3 ACOMMUNE1 42DG SMO FX2 42Y6 LDX 2 ACOMMUNE2 43CQ TH5FA STO 3 GEN3 43XB STO 2 CJACCLINK 44C2 BRN TH5A 44WL QEND LDX 3 GEN3 45B= BZE 3 RETURN [J IF NONE FOUND 45TW LDX 2 CJACCLINK 46*G UNQUEUE [REMOVE WAITING ACTIVITY FROM QUEUE 46T6 LDN 0 1 [ADJUST COUNT OF OUTSTANDING CORE REQ 47#Q #SKI G3 47SB SBS 0 CFAIL 48#2 #SKI G4 48RL ( 49?= LDX 1 CLONG1(2) 49QW BPZ 1 XLAB1 4==G SBS 0 CFAIL 4=Q6 BRN XLAB2 4?9Q XLAB1 SBS 0 COBJFAIL 4?PB LDX 0 ACOMMUNE2(2) 4#92 SRL 0 12 [LOAD REQUEST(SEE GETPROGCORE MAC) 4#NL SBS 0 AOBJFAIL [ & REDUCE TOTAL OF FAILS 4*8= XLAB2 4*MW ) 4B7G FPCAJO 2,3 4BM6 LDX 1 FX1 4BP* ...#UNS ADPLLSKIP 4BRJ ...( 4BTR ... LDN 0 1 [- DATAPASS COUNT OF 4BY2 ... SMO ADPSWPPTR [- SPECIAL SWAPOUTS 4C29 ... ADS 0 8 4C4D ...) 4C6Q CALL 4 PROG 4CLB LDN 4 ACC3(2) 4D62 LDN 5 CJACCLINK [DUMP ACCUMULATORS AND LINK OF PCA 4DKL MOVE 4 ALINK 4F5= LDN 4 ACOMMUNE1(2) 4FJW LDN 5 CJACCLINK+ALINK 4G4G MOVE 4 9 [AND ACOMMUNE WORDS 4GJ6 LDX 4 CLONG1(2) 4H3Q STO 4 CJACCLINK+ALINK+9 [SAVE CLONG1 4HHB STOZ CLONG1(2) 4J32 JBC STOPPED,3,JBPLUG [J IF NOT PLUGGED IN 4JGL MBI 3,JBPLUG,JBPISO [MARK SPECIAL 4K2= LDN 1 UNPL(1) 4KFW BRN MEET 4K^G STOPPED 4LF6 LDN 1 P14(1) 4LYQ MBI 3,JBSTOP,JBSTSO [MARK SPECIAL 4MDB MEET LINKSET 2,0(1) 4MY2 TRACE JOBNO(2),SPECOUT 4NCL FPUT [LET PCA DO UNPLUG & SWAP 4NX= MBI 3,JBBEING,JBSI [MARK BEING SWAPPED 4PBW BS ,ASWOUTING [MARK SWAPOUT IN PROGRESS 4PWG BRN R11A [TERMINATE 4QB6 [ 4QTQ [ IF WE FIND NORMALLY SWAPPABLE,NOT PLUGGED IN ON WAY 4R*B [ ROUND QUEUE,WE COME HERE 4RT2 [ 4S#L # 4SS= # 4T?W # 4TRG SUSP 4W?6 CALL 4 PROG 4WQQ FPCAJO 2,3 4X=B SMO FX1 4XQ2 LDN 1 P13 4XSK ...#UNS ADPLLSKIP 4XX8 ...( 4X^R ... LDN 0 1 [- DATAPASS COUNT 4Y4B ... STO 0 ADPSWPSW [- (COREJAM SWAPOUT) 4Y6^ ...) 4Y9L BRN MEET 4YP= # 4^8W # TERMINATE 4^NG # 4^WQ ...R11AA 5252 ...#UNS ISTDPSTATS 52?= ... TRACEDP AJAMFPC 52FG ...RETURN 52MQ 537B R11A MBC ,CJNOSO,ASWCORJAM 53#J ...#UNS ISTDPSTATS 53FQ ... TRACEDP AJAMSUC 53M2 [ NO NEED TO KICKASWINT AS END OF SWAPOUT 546L [ WILL AND IF NO SWAPOUT THEN JAM NOT CLEARED 54L= R11D ACROSS CHARGESC,1 555W MENDAREA 50,K100JAMSWAP 55KG #END ^^^^ ...241044430002