(George Source)
Macros used: ACROSS, BC, BS, BXE, BXGE, BXL, BXU, COBJUSE, ENDCCYCLE, FINDJOBQ, FPCAJO, FPUT, JBC, JBS, JMBS, LA, LINK, LINKSET, MBI, MOBJQUOTA, OFF, PAIR, PROGAXES, SEGENTRY, STOPIT, SWAP, TRACE, TRACEDP, TRACEVER, UNPLUG
22FL ...#SEG SCHEDOUT [DEK BEASLEY :CENT 22^= #OPT K0SCHEDOUT=0 23DW #LIS K0SCHEDOUT>K0ALLGEO>K0LLS 23YG 8HSCHEDOUT 24D6 # 24XQ # 25CB # THIS SEGMENT IS THE PART OF THE PROGRAM CONTROLLER WHICH DEC 25X2 # WHICH OBJECT PROGRAM SHOULD VACATE CORE SPACE TO MAKE ROOM FOR ANO 26BL # UNPLUGGING THE PROGRAM FROM EXECUTIVE IF NECESSARY BEFORE INITIATI 26W= # SWAPOUT. 27*W # THE ENTRY POINTS ARE AS FOLLOWS: 27TG # 28*6 # K1 : MAIN ENTRY TO SELECT A PROGRAM FOR SWAPOUT 28SQ # K2 : ENTRY WHEN QUOTA NOT MET OR FINGER IS ON SOME SPECIFIC 29#B # PROGRAM 29S2 # K3 : CORE UNJAMMER WANTS A SWAPOUT SO LOOK BY SLLSOUT 1ST, 2=?L # 2#=6 SEGENTRY K1SCHEDOUT,XX1S 2#PQ SEGENTRY K2SCHEDOUT,XX2S 2*9B SEGENTRY K3SCHEDOUT,XX3S 2BN= 2C7W UNPL 2CMG LINK UNPLUG,7 2D76 P11 PAIR CHARGESC,1 2F6B #SKI G3 2FL2 P13 PAIR SWAP,2 [SWAP OUT 2G5L #SKI G4 2GK= P13 PAIR SWAPOUT,1 2H4W P17 PAIR PERFAIL,2 [ON-LINE PERI FAIL 2JHQ P18 PAIR EVENTS,5 [FOR PROGRAM TIMEUP 2K3B # 2KH2 # 2L2L TJOB 2LG= FINDJOBQ 3,6,(GEOERR) [X3 -> JOBBLOCK. 2L^W EXIT 7 0 2MFG [ 2M^6 [ THIS SUBROUTINE DECIDES WHAT TO SWAPOUT TO MAKE WAY FOR A SWAPIN 2NDQ [ 2NHD ...[ WE INSPECT ALL THE SWAPPED IN PROGRAMS FOR EACH JOB AND COMPARE 2NL6 ...[ ITS CP WITH THAT OF THE PROGRAM TO BE SWAPPED IN.IF 2NNS ...[ 2NRG ...[ (1) CP IS >,THEN NOT CONSIDERED AS A CANDIDATE FOR S/O 2NW8 ...[ 2NYW ...[ (2) CP <OR= BUT DIFFERENCE IS < D(SWAPDIFF) THEN IF A MOP ENVIRONMENT 2P3J ...[ EXISTS & ITS CP IS <OR= TO HIGHEST CP OF ANY MOP JOBS WAITING 2P6= ...[ TO COME IN(VALUE IN AWORK4) & IT HAS EXPIRED ITS TIMESLOT THEN 2P8Y ...[ IT IS CONSIDERED AS IN (3) 2P?L ...[ 2PB# ...[ (3) CP <OR= BUT DIFFERENCE >D,THEN ITS CP IS COMPARED WITH THE CP OF 2PF2 ...[ THE BEST CANDIDATE FOUND SO FAR 2PHN ...[ (A) IF >,THEN PROGRAM NOT CONSIDERED 2PLB ...[ (B) IF <,THEN PROGRAM MADE BEST CANDIDATE SO FAR 2PP4 ...[ (C) IF =,SIZES OF THE TWO ARE COMPARED WITH THE AMOUNT WHICH LLS 2PRQ ...[ UNABLE TO OBTAIN.THE SMALLEST PROGRAM LARGER THAN THIS IS 2PWD ...[ CHOSEN,IF ONE EXISTS,& IF NOT,THE LARGEST. 2P^6 ...[ 2Q3S ...[ ON ENTRY,ACOMMUNE1 = AMOUNT REQ'D BY LLS 2Q6G ...[ AWORK4 +VE IF MOP ENVIRONMENT,CONTENTS BEING HIGHEST 2Q98 ...[ PRIORITY OF ANY MOP JOB WAITING TO GET IN 2Q?W ...[ X4 = CORE PRI. OF PROGRAM WHICH LLS FAILED TO SWAP IN 2QC= [ 2QWW [ LINK X7,EXITS +0 IF NONE OR ALREADY SWAPOUT IN PROGRESS 2RBG [ +1 IF SELECTED REQUIRES UNPLUG 2RW6 [ +2 IF SELECTED ALREADY UNPLUGGED 2S*Q [ 2STB ...[ ON EXIT,X3 -> JOB BLOCK OF CANDIDATE SELECTED FOR SWAP OUT 2T*2 ...[ X1 = FX1, X2 = FX2 2TSL ...[ 2W#= ...[ DURING SUBROUTINE,X3 -> ALONG JOBQ 2WRW ...[ X5 = CP OF BEST CANDIDATE SO FAR(I.E. LOWEST CP) 2X?G ...[ X6 -> ITS JOB BLOCK 2XFQ ...[ IF SWAPPING OF TRULY DORMANT PROGRAMS IS SWITCHED OFF - 2XN2 ...[ AWORK1 = CP OF BEST TRULY DORMANT CANDIDATE FOUND SO FAR 2XW= ...[ AWORK2 = ITS JOB BLOCK 2Y4G ...[ NB TRULY DORMANT PROGRAMS ARE THE BEST CANDIDATES 2Y=Q [ 2YQB [ 2^=2 SLLSOUT 2^PL LDX 1 FX1 329= LDX 2 FX2 32NW #SKI K6LLSTEST>499-499 338G TRACEVER ACOMMUNE1(2),COREREQD 33N6 JBS (7),,ASWOUTING [SWAPOUT ALREADY IN PROGRESS 347Q LDN 6 0 34MB ... LDN 5 0 34X8 ...#UNS INOSTDP 3572 ...( 35BS ... STOZ AWORK1(2) 35LL ... STOZ AWORK2(2) 35WD ...) 366= LDN 3 BJOBQ 36KW ROUND LDX 3 FPTR(3) [X3 -> NEXT JOBQ BLOCK 375G BXE 3 CXJO,QEND 37K6 JBC ROUND,3,JBSI 384Q #SKI K6LLSTEST>499-499 38JB TRACEVER JOBNUM(3),SWAPDIN 38S8 ...[ DONT SWAP OUT REALTIME OR BEING PLUGGED 3942 JMBS ROUND,3,JBREEF,JBPLUGGING,JBAXES,JBSTOP 394R ...#UNS INOSTDP 395J ...( 396* ... JBS YNOTTD,3,JBRUN 3976 ... [J IF NOT TRULY DORMANT 397X ... LDX 0 AWORK2(2) [JOB BLK ADDR OF 398N ... [BEST TRULY DORMANT PROGRAM SO FAR 399F ... BZE 0 YBESTYET [J IF THIS THE FIRST TR DORMANT 39== ... LDX 0 AWORK1(2) [BEST TR DORMANT CP SO FAR 39?3 ... LDEX 1 ACOREP(3) 39?S ... BXL 0 1,ROUND [J IF THIS CP BIGGER 39#K ... BXU 0 1,YBESTYET 39*B ...YTESTSIZE 39B7 ... SMO AWORK2(2) 39BY ... LDX 0 JCSIZE 39CP ... BXL 0 ACOMMUNE1(2),YUNDER [J IF SIZE SO FAR < REQD 39DG ... LDX 0 JCSIZE(3) 39F? ... BXL 0 ACOMMUNE1(2),ROUND 39G4 ... [J IF SIZE OF CAND. < REQD 39GT ... SMO AWORK2(2) 39HL ... BXGE 0 JCSIZE,ROUND [J IF CAND.SIZE >OR= BEST SO FAR 39JC ...YBESTYET 39K8 ...# WE HAVE NEW TRULY DORMANT BEST SO FAR 39K^ ... STO 3 AWORK2(2) [STORE JOB BLK ADDRESS 39LQ ... LDEX 0 ACOREP(3) 39MH ... STO 0 AWORK1(2) [STORE NEW TRULY DORMANT CP 39N# ... BRN ROUND 39P5 ...YUNDER 39PW ... LDX 0 JCSIZE(3) 39QM ... BXGE 0 ACOMMUNE1(2),YBESTYET [J IF CAND.SIZE > REQD AMOUNT 39RD ... SMO AWORK2(2) 39S9 ... BXL 0 JCSIZE,ROUND [J IFCAND.SIZE < BEST SO FAR 39T2 ... BRN YBESTYET [USE THIS AS NEARER REQD AMT 39TR ...YNOTTD 39WJ ... LDX 0 AWORK2(2) 39X* ... BNZ 0 ROUND 39Y6 ...) 39YX ... LDEX 1 ACOREP(3) [LOAD CP, NB AVOIDING TOP CHAR. 39^N ... BXL 4 1,ROUND [J IF CP > INCOMING CP 3=3= ... LDX 0 4 [DO NOT CONSIDER TIMESLOT EXCEEDED 3=GW ... SBX 0 1 [ IF INCOMING CP-THIS CP IS 3?2G ... BXGE 0 ISWAPDIFF,XLOWCP [ >OR= SWAPDIFF 3?G6 ... LDX 0 AWORK4(2) 3?^Q ... BZE 0 ROUND [J IF NOT MOP ENVIRONMENT 3#FB ... BXL 0 1,ROUND [ONLY USE IF CP <OR= MOP JOBS CP 3#^2 ... LDX 0 HTIMES(3) 3*DL ... BXL 0 ATIMES(3),ROUND [J IF TIMESLOT NOT EXPIRED 3*Y= ...XLOWCP 3BCW ... BZE 5 XBESTYET [J IF NO BEST SO FAR YET 3BXG ... BXE 5 1,TESTSIZE [J IF CP'S = TO COMPARE SIZE 3CC6 ... BXL 5 1,ROUND [J IF BEST SO FAR HAS LOWER CP 3CWQ ... BRN XBESTYET [THIS CANDIDATE NEW BEST SO FAR 3DBB ...TESTSIZE 3DW2 ... SMO 6 3F*L ... LDX 0 JCSIZE 3FT= ... BXL 0 ACOMMUNE1(2),UNDER [J IF SIZE OF BEST SO FAR < REQ'D 3G#W ... LDX 0 JCSIZE(3) 3GSG ... BXL 0 ACOMMUNE1(2),ROUND [J IF SIZE OF CAND. < REQ'D 3H#6 ... SMO 6 3HRQ ... BXGE 0 JCSIZE,ROUND [J IF CAND.SIZE >OR= BEST SO FAR 3J?B ...XBESTYET [WE HAVE NEW BEST SO FAR 3JR2 ... LDX 6 3 [STORE JOB BLOCK ADDR. 3K=L ... LDEX 5 ACOREP(3) [STORE NEW CP 3KQ= ... BRN ROUND 3L9W ...UNDER [SIZE OF BEST SO FAR < REQ'D AMOUNT 3LPG ... LDX 0 JCSIZE(3) 3M96 ... BXGE 0 ACOMMUNE1(2),XBESTYET [J IF CAND. SIZE > REQ'D AMOUNT 3MNQ ... SMO 6 3N8B ... BXL 0 JCSIZE,ROUND [J IF CAND. SIZE < BEST SO FARS 3NN2 ... BRN XBESTYET [USE THIS AS NEARER REQ'D AMOUNT 3Y2B QEND 3YG2 LDX 1 FX1 3YHY ...#UNS INOSTDP 3YKW ...( 3YMS ... LDX 3 AWORK2(2) 3YPQ ... BZE 3 QEND1 [J IF NO TRULY DORMANT FOUND 3YRN ... EXIT 7 2 3YTL ...QEND1 3YXJ ...) 3Y^L BZE 6 (7) [J IF NONE FOUND 3^F= LDX 3 6 3^YW JBS PLUG,3,JBPLUG 42DG #SKI K6LLSTEST>499-499 42Y6 TRACEVER JOBNUM(3),UNPLUGED 43CQ EXIT 7 2 [UNPLUGGED ALREADY EXIT 43XB [ 44C2 [ IF PLUGGED SET STOP WORD AND TRY TO STOP IT SO CAN FPUT PCA 44WL [ IF WE CAN'T WE TRY ALGORITHM AGAIN 45B= [ 45TW PLUG FPCAJO 1,3 [X1-> PCA 46*G #SKI K6LLSTEST>499-499 46T6 TRACEVER JOBNUM(3),PLUGIN 47#Q JBS (GEOERR),1,ASTOPSLOT 47SB BS 1,ASTOPSLOT [SET TIME SLOT EXPIRED STOP BIT 48#2 ... STOPIT 1 [ ENSURE IT IS STOPPED (DUALS) 48RL LA ASTOPSLOT 49?= BXU 0 ASTOP(1),YIELD [IF NOT STOPPED ONLY COS OF HERE 49QW BS 1,ASTOPEXEC 4==G LDX 1 FX1 [PCA CAN BE ACTIVE 4=Q6 EXIT 7 1 4?9Q YIELD BC 1,ASTOPSLOT [ENSURE LEAVE BIT CLEAR 4?PB #SKI K6LLSTEST>499-499 4#92 TRACEVER ASTOP(1),STOPWORD 4#NL LDX 1 FX1 4*8= EXIT 7 0 [SAY NONE FOUND 4*MW [ 4MDB ...[ ENTRY FROM CORESHED 4MY2 [ CORESHED IF PROGRAM MOVE FRUSTRATED 4NX= [ 4QTQ XX2S [K2SCHEDOUT 4R*B [ 4RT2 [ 4S#L [ MAIN ENTRY: FROM CORESHED IF SWAPOUT REQUIRED 4SS= ...[ 4T?W ...[ ENTRY CONDITIONS FOR K1 & K2 ARE 4TRG ...[ AWORK4 -VE IF MOP ENVIRONMENT 4W?6 ...[ ACOMMUNE1 = AMOUNT THAT LLS REQ'D(SET BY CORESHED) 4WQQ ...[ X6 - JOB NO. OF PROGRAM WHICH FAILED TO GET SWAPPED IN 4X=B [ 4XQ2 XX1S [K1SCHEDOUT 4Y9L #SKI K6LLSTEST>499-499 4YP= TRACEVER AWORK4(2),SCHOUT1 4^49 ...#UNS ADPLLSKIP 4^C8 ...( 4^Q7 ... LDN 0 2 [- DATAPASS COUNT 5256 ... STO 0 ADPSWPSW [- (LLS SWAPOUT) 52D5 ...) 52R4 ... CALL 7 TJOB [FIND JOB BLOCK FOR JOB NO. IN X6 53=N ... LDEX 4 ACOREP(3) [THEN FIND ITS CORE PRIORITY 57XK ...SELECT 58=J ... CALL 7 SLLSOUT 58KH ... BRN XCORE [NONE 58YG ... BRN UNPLUG [UNPLUG REQUIRED 59?F ... BRN SWAP [JUST SWAP OUT 59LD ...XCORE 59^C ... LDX 6 CJJOBNO 5=#B ... COBJUSE 4 5=M* ... MOBJQUOTA MIN [IF REACHING OQ MIN,NOWT ELSE TO DO 5?2# ... BXGE 4 0,NOBAT 5?*? ... LDN 5 0 [INDICATE NOT REALTIME FRAG. 5?N= ... ACROSS LLSMESS,1 [OUTPUT APPROPRIATE MESSAGE 5#39 ...R11 5#B8 ...#UNS ISTDPSTATS 5#P7 ... TRACEDP ASCHEDFPC 5*46 ... BRN R12 5*CG [ 5JPW SWAP LDN 1 P13(1) [UNPLUGGED: X1-> SWAP LINK 5K9G BRN MEET 5KP6 UNPLUG 5L8Q #SKI K6LLSTEST>499-499 5LNB TRACEVER ACOMMUNE1(2),UNPLUG 5M82 LDN 1 UNPL(1) [X1-> UNPLUG LINK 5MML MEET FPCAJO 2,3 5N7= LINKSET 2,0(1) [SET APPROPRIATE LINK 5N=4 ... MBI 3,JBSI,JBBEING [MARK BEING SWAPPED 5N#W ...[ 5NCN ...[ 5NGG ...[ THE FOLLLOWIG CURES B3211WHEREBY BEFORE STARTIG SWAPOUT 5NK# ...[ WE DID NOT DO A PROGAXES !! 5NN6 ...[ DONE 11TH JULY 75 :CENT 5NQY ...[ 5NTQ ... PROGAXES 3,(GEOERR) 5NYJ ... TRACE JOBNUM(3),SWAPOUTS 5P3B ...[ 5P6G FPUT [LET IT RUN 5PL6 BS ,ASWOUTING [INDICATE SWAPOUT IN PROGRESS 5Q5Q # 5QKB # TERMINATE 5R52 R12 LDX 2 FX2 [NO SWAPPABLE PROGS FOUND BY SLLSOUT 5RJL #SKI K6LLSTEST>499-499 5S4= TRACEVER COBJFAIL,NONFOU 5SHW BXE 2 BSWINT,NOBAT 5SW? ... BC ,ASWCORJAM [CLEAR UNJAM IN PROGRESS MARKER 5T8N ... ACROSS CHARGESC,1 5TH6 NOBAT 5W2Q OFF BSTRAT 5WGB R12C 5X22 R12B LDX 2 FX2 5XFL ENDCCYCLE 6C5L [ 6CK= [ 6D4W [ ENTRY ON BEHALF OF CORE UNJAMMER TO SEE IF ANYTHING SWAPPABLE 6DJG [ IF NOT WE RETURN TO UNJAMMER TO DECIDE WHETHER 6F46 [ WE SHOULD ENTER JAMSWAP 6FHQ [ 6G3B XX3S 6GH2 #SKI K6LLSTEST>499-499 6H2L TRACEVER FX1,SCHOUT3 6H6H ... JBS R12,,ASWOUTING [J IF SWAPOUT IN PROGRESS 6H=D ...#UNS ADPLLSKIP 6HB* ...( 6HG= ... LDN 0 1 [- DATAPASS COUNT 6HL7 ... STO 0 ADPSWPSW [- (COREJAM SWAPOUT) 6HQ4 ...) 6HT^ ... LDN 4 63 [SET CP OF 63 AS WE REQUIRE ANYTHING 6H^W STOZ ACOMMUNE1(2) [WE WANT ANYTHING SLLSOUT CAN GIVE US 6JFG ... STO 4 AWORK4(2) [TERAT AS MOP ENVIRONMENT 6KDQ CALL 7 SLLSOUT 6KYB BRN NONE 6LD2 BRN UNPLUG [FOUND:NEEDS UNPLUG 6LXL BRN SWAP [FOUND:NO UNPLUG NEEDED 6MC= NONE ACROSS UNJAMMER,2 [TRY SPEC SWAPOUT NOW 6NW6 #END ^^^^ ...62254301000300000000