STRATEGY865
(George Source)
Macros used: ACROSS, BC, BS, BXE, BXGE, BXL, BXU, CHAIN, COBJUNUSE, COBJUSE, FINDCORE, FINDJOBQ, GEOERR, GETCORE, JBC, JENV, MENDAREA, NAME, SEG, SEGENTRY, STARTSTRAT, STEP, T, TRACE, TRACEDP, UP, UPPLUS
- STRATEGY865.txt
2278 ... SEG STRATEGY,867,SECTION CENT 22#B ... 22FJ ... 22LQ ... 22RY ... 22^= #OPT K0STRATEGY=0 23DW #LIS K0STRATEGY>K0KERNEL>K0ALLGEO 23YG #OPT K6STRATEGY=K6KERNEL>K6ALLGEO 24D6 #DEF TRACE=K6STRATEGY 24XQ # 25CB [ 26BL [ 26W= [ THIS SEGMENT IMPLEMENTS THE STRATEGY MACRO (GEORGE 3 ONLY) 27*W [ IT IS A LITTLE COMPLICATED AND THE GIM FLOWCHARTS MIGHT BE FOUND HELP- 27TG [ FULL IN UNDERSTANDING IT 28*6 [ USE OF WORKING SPACE IS RIGIDLY CONTROLLED,AND UNLESS STATED OTHERWISE 28SQ [ IS AS GIVEN BELOW 29#B [ WORD MNEMONIC IN USED FOR 29S2 [ GIM 2=?L [ X2 ALWAYS HOLDS FX2 2=R= [ X3 Q UPPER PNTR IN STRATEGY CALCULATION 2?=W [ X4 U LOWER PNTR IN STRATEGY CALCULATION 2?QG [ X5 T CORE STILL NEEDED TO SATISFY REQUEST 2#=6 [ X0,1,6,7 - WORKING VARIABLES 2#PQ [ 2*9B [ GEN0,1 - RESERVED FOR SUBROUTINES 2*P2 [ GEN2 N NO OF PROGRAMS TO BE MOVED 2B8L [ GEN3 C TOTAL PROGRAM CORE TO BE MOVED 2BN= [ GEN4 U' U FOR BEST STRATEGY SO FAR 2C7W [ GEN5 S' [SCORE OF BEST STRATEGY SO FAR 2CMG [ GEN6 N' N FOR BEST STRATEGY SO FAR 2D76 [ 2DLQ [ ACOM1 - CONTAINS CORE SHORTFALL ON FAIL EXIT 2DT2 ...[ ACOM2 - FLAG WORD 2F3= ...[ B23 - STRAT FOR RE PROG. 2F9G ...[ B22 - THIS PASS OF STRAT NOT TO USE 2FCQ ...[ VALID FREE PROGRAM BLOCKS 2FL2 ...[ ACOM3 R REQUEST (INCLUDING RED TAPE) 2G5L ...[ ACOM4 - MACRO %A (JOB NUMBER) 2GK= [ ACOM5 L LIMIT OF LAST PROG SCANNED 2GNB ... 2GRG ... 2GWL ... 2G^Q ... 2H4W ...[ ACOM9 - CONTAINS TOTAL FPB'S(COBJUNUSE)ON 2H#N ...[ FAIL EXIT 2HJG [ 2J46 [ AWORK1-4 - UNUSED 2JHQ [ 2K3B [ IN THE COMMENTS WE WRITE X* TO MEAN X ROUNDED DOWN MOD 64 2K?8 ... 2KH2 [ 2L2L [ THE ONLY ENTRY POINT FOLLOWS 2LG= SEGENTRY K1STRATEGY 2L^W LDN 0 0 2MFG ... ADSC 0 ACOMMUNE3(2) [CLEAR B0 OF PASSED %B 2M^6 STO 0 ACOMMUNE2(2) [CLEAR FLAG WORD - B23=1 IF RE STRAT 2M^7 ... 2M^8 ...SETMOD0 2M^9 ... 2M^= ... 2M^? ... 2M^# ... 2M^* ... 2M^B ... LDX 5 CMIN64 2M^C ... JENV SETMOD2,CMESTAR 2M^D ... LDN 4 64 2M^G ... BRN SETMOD4 2M^H ...SETMOD2 2M^J ... 2M^K ... LDN 4 256 2M^L ... SLL 5 2 2M^N ...SETMOD4 2M^P ... STO 4 ACOMMUNE6(2) 2M^Q ... STO 5 ACOMMUNE7(2) 2M^R ... SBX 4 CA1D 2M^S ... STO 4 ACOMMUNE8(2) 2M^T ... 2M^W ... 2M^X ...#UNS ISTDP 2M^Y ...( 2M^^ ... 2N22 ... 2N23 ... LDX 7 ACOMMUNE2(2) 2N24 ... LDN 3 BOBJUNUSE 2N25 ... LDX 0 ACOMMUNE4(2) 2N26 ...NEXTFPB 2N27 ... LDX 3 FPTR(3) 2N28 ... BXE 3 CXOBJUN,NOFPB 2N29 ... BXU 0 JOBNOWAS(3),NEXTFPB 2N2= ... STOZ JOBNOWAS(3) 2N2? ... FINDJOBQ 1,ACOMMUNE4(2),(GEOERR) 2N2# ... BC 1,JBWASIN 2N2* ... BNZ 7 REFPB 2N2B ... JBC REFPB,1,JBSUSP 2N2C ...# 2N2D ...# 2N2F ...# 2N2G ... LDX 0 ALOGL(3) 2N2H ... SBS 0 COBJUNUSE 2N2J ... ADS 0 COBJUSE 2N2K ... BC 1,JBSO 2N2L ... BS 1,JBBEING 2N2M ... BC 3,AFFPB 2N2N ... CHAIN 3,2 2N2P ...#SKI TRACE>99-99 2N2Q ... TRACE ACOMMUNE4(2),FPBEXIST 2N2R ...#UNS ISTDPSTATS 2N2S ... TRACEDP ASTRVAL 2N2T ... ACROSS SWAP,7 2N2W ...[ 2N2Y ...[ IF RE PROGRAM,THEN WE REQUIRE BEST STRATEGY POSSIBLE,SO EVEN 2N32 ...[ IF A FPB FOR THIS PROGRAM EXISTS,DON'T USE IT & INVALIDATE IT 2N34 ...[ 2N36 ...REFPB 2N37 ... LDX 0 ALOGL(3) 2N38 ... ADS 0 CINVFPB [INCREASE TOTAL OF INVALID FPB'S 2N3# ...NOFPB 2N3D ...) 2N4= ...[ THE CONTENTS OF ACOMMUNE3 NEEDS TO BE 'PROGRAM SIZE + RED TAPE' 2N7B ...[ DURING THE STRATEGY SEGMENT AND ONLY 'PROGRAM SIZE' AFTERWARDS 2N82 ...#UNS CA1D 2N8L ... LDX 0 CA1D 2N9= ...#UNS CA1D 2N9W ...#SKI 2N=G ... LDN 0 A1D 2N*L ... ADS 0 ACOMMUNE3(2) [ADD IN RED TAPE 2NT= ...#UNS ISTDP 2P#W ...( 2PJN ... BNZ 7 USEVALFPB [J IF RE STRATEGY 2PSG ...[ THE STRATEGY HAS TWO PHASES.FIRSTLY IT ATTEMPTS TO GET A STRATEGY 2Q#6 ...[ WITHOUT USING ANY VALID FPB'S(BUT USING INVALID FPB'S).IF THIS 2QRQ ...[ FAILS OR COMES UP WITH A PROGRAM MOVE STRATEGY,THEN WE ATTEMPT A 2R?B ...[ STRATEGY CONSIDERING ALL FPB'S. 2RR2 ...[ 2S=L ... LDX 0 CFREE [GET TOTAL CORE AVAILABLE 2SQ= ... ADX 0 ACHAP 2T9W ... SBX 0 CHAPQUOTA 2TPG ... ADX 0 FREZFREE 2W96 ... ADX 0 FREZCHAP 2WNQ ... SBX 0 FREZTOT 2X8B ... ADX 0 CINVFPB [USING ONLY INVALID FPB'S 2XN2 ... SBX 0 ACOMMUNE3(2) 2Y7L ... BNG 0 USEVALFPB [J IF NOT ENOUGH CORE 2YM= ... LDN 0 #2 2^6W ... ORS 0 ACOMMUNE2(2) [SET 'DONT USE VALID FPB' MARKER 2^LG ...#SKI TRACE>499-499 3266 ... TRACE CINVFPB,STRPASS1 32KQ ...#UNS ISTDPSTATS 335B ... TRACEDP ASTRPASS1 33K2 ... BRN STARTSTRAT 344L ...USEVALFPB 34J= ... NGN 0 3 353W ... ANDS 0 ACOMMUNE2(2) [CLEAR 'DONT USE VALID FPB ' MARKER 35HG ...#SKI TRACE>499-499 3636 ... TRACE COBJUNUSE,STRPASS2 36GQ ...#UNS ISTDPSTATS 372B ... TRACEDP ASTRPASS2 37G2 ...STARTSTRAT 37^L ...) 3HRQ NGN 0 1 3J?B STO 0 GEN5 [BEST SCORE S' INITIALISED AT INFINIT 3JR2 LDX 3 FCORES [UPPER POINTER Q INITIALISED BOT CORE 3K=L LDX 4 FCORES [LOWER POINTER U DITTO 3KQ= LDX 0 FCORES 3L9W ... ANDX 0 ACOMMUNE7(2) 3LPG ... ADX 0 ACOMMUNE6(2) 3M96 ... STO 0 ACOMMUNE5(2) 3MNQ SNXST 3N8B #SKI TRACE>599-599 3NN2 ( 3P7L TRACE 4,SNXST U 3PM= TRACE ACOMMUNE5(2),SNXST L 3Q6W ) 3QLG STOZ GEN2 [NO OF PROGS TRAVERSED N INITSD TO 0 3R66 STOZ GEN3 [PROG CORE TRAVERSED C INITSD TO 0 3RKQ ... NGX 5 ACOMMUNE3(2) [CORE REQUD T INITSD TO -(REQUEST) 3S5B LDX 1 3 3SK2 CALL 0 STEP 3T4L LDX 3 1 [STEP Q TO NEXT PROGRAM 3TJ= ... ANDX 1 ACOMMUNE7(2) 3W3W BXU 1 ACOMMUNE5(2),SINCT [J TO INCREMENT T UNLESS (Q*)=L 3WHG LDX 0 ACOMMUNE2(2) 3X36 ANDN 0 1 3XGQ BNZ 0 SINCT [ OR IF STRATEGY FOR REALTIME PROG 3Y2B BXE 3 CTOP,SA [IF Q->TOP CORE,J & ELABORATE STRAT 3YG2 BRN SREST [ELSE J TO STEP U TO PRESENT Q 3Y^L [ & RESTART,IGNORING LOWEST PROGRAM 3^F= SNXPR [WE STILL DONT HAVE SUFFICIENT CORE TO SATISFY REQUEST, 3^YW [SO WE STEP Q TO NEXT PROGRAM & SEE IF THERE'S ENOUGH 42DG [THEN. 42Y6 LDX 1 3 43CQ CALL 0 STEP 43XB LDX 3 1 [ADVANCE Q TO NEXT PROGRAM 44C2 #SKI TRACE>599-599 44WL ( 45B= TRACE 3,SNXPR Q 45TW TRACE ACOMMUNE5(2),SNXPR L 46*G ) 46T6 ADS 0 GEN3 [INCREMENT C (CORE TRAVERSED) 47#Q BZE 0 SINCT 47SB LDN 0 1 48#2 ADS 0 GEN2 [INCREMENT N (PROGRAMS TRAVERSED) 48RL SINCT 49?= LDX 0 3 49QW ... ANDX 0 ACOMMUNE7(2) 4==G SBX 0 ACOMMUNE5(2) 4=Q6 ADX 5 0 [INCREMENT T BY ((Q*)-L) 4?9Q #SKI TRACE>599-599 4?PB TRACE 5,SINCT T 4#92 BPZ 5 SGOT [J IF T +VE - IE IF REQUEST SATISFIED 4#NL BXE 3 CTOP,SA [IF Q -> TOP CORE,J & ELABORATE STRAT 4*8= LDX 0 JRETI(3) [IF Q -> REALTIME PROGRAM,J TO STEP U 4*MW BNG 0 SREST [ & RESTART ABOVE IT 4B7G LDX 0 ACOMMUNE2(2) 4BM6 ANDN 0 1 4C6Q BNZ 0 SITSR [J IF STATEGY FOR REALTIME PROGRAM 4CLB SMO ALOGLEN(3) 4D62 LDN 0 A1(3) 4DKL STO 0 ACOMMUNE5(2) [SET L (LAST LIMIT) TO LIMIT OF PROG 4F5= BRN SNXPR [ AT Q & J TO ADD IN NEXT GAP 4FJW SITSR LDX 0 3 4G4G ... ANDX 0 ACOMMUNE7(2) 4GJ6 STO 0 ACOMMUNE5(2) [SET L (LAST LIMIT) TO (Q*), 4H3Q BRN SNXPR [ J TO ADD IN NEXT GAP 4HHB SGOT [REACH HERE WHEN WEVE FOUND A STRATEGY.IF ITS FOR A REAL- 4J32 [TIME PROGRAM WE ELABORATE IT AT ONCE. OTHERWISE WE 4JGL [COMPARE IT WITH THE BEST PREVIOUS STRATEGY 4K2= LDX 0 ACOMMUNE2(2) 4KFW ANDN 0 1 4K^G BZE 0 SNRE [J IF STRATEGY NOT FOR REALTIME PROG 4LF6 LDX 0 GEN2 4LYQ STO 0 GEN6 [SET N' TO N (NO OF PROGS TRAVERSED) 4MDB STO 4 GEN4 [SET U' TO U (STRATEGY BASE PTR) 4MY2 STOZ GEN5 [SET S' TO 0 (BEST SCORE) 4NCL BRN SA [J TO ELABORATE STRATEGY 4NX= SNRE [NOW WE CALCULATE THE MAXIMUM GAP REMAINING UNDER THIS 4PBW [PROSPECTIVE STRATEGY 4PWG LDX 6 FCORES 4QB6 ... ANDX 6 ACOMMUNE7(2) 4QTQ ... ADX 6 ACOMMUNE6(2) 4R*B LDX 1 FCORES [SET TOP PNTR TO BOTTOM OF CORE 4RT2 LDN 7 0 [SET MAXGAP TO 0 4S#L SGAP1 BXU 1 4,SGAP2 [J IF TOP PNTR UNEQUAL TO U 4SS= LDX 1 3 [ ELSE SET TO Q 4T?W BRN SGAP3 4TRG SGAP2 CALL 0 STEP [ADVANCE TOP TO NEXT PROGRAM 4W?6 LDX 0 1 4WQQ ... ANDX 0 ACOMMUNE7(2) 4X=B SBX 0 6 4XQ2 BXGE 7 0,SGAP3 4Y9L LDX 7 0 [SET MAXGAP=MAX(MAXGAP,((TOP*)-BOT)) 4YP= SGAP3 BXE 1 CTOP,SGAP5 [J IF TOP=TOP OF CORE 4^8W SMO ALOGLEN(1) 4^NG LDN 6 A1(1) [SET BOT=LIMIT OF PROGRAM AT TOP 5286 BRN SGAP1 52MQ SGAP5 LDX 0 5 537B ... ANDX 0 ACOMMUNE7(2) 53M2 BXGE 7 0,SGAP6 546L LDX 7 0 [SET MAXGAP=MAX(MAXGAP,(T*)) 54L= ...SGAP6 SBX 7 ACOMMUNE6(2) 555W [ BLOCK RED TAPE 55KG [ 5656 [ NOW WE CALCULATE THE SCORE ASSOCIATED WITH THIS STRATEGY. THE FORMULA 56JQ [ IS :- S=F(N)*C + G(Y) 574B [ WHERE N,C HAVE THEIR EXISTING MEANINGS,Y=DESIRABLE MAX GAP-ACT MAX GAP 57J2 [ DESIRABLE MAX GAP = OBJECTQUOTA -(COBJUSE+THIS REQUEST) 583L [ F(N)=N N=0,1,2,... G(Y)=IF Y<0 THEN 0 ELSE 2*Y 58H= [ LOWEST SCORE WINS 592W [ 59GG LDX 1 COBJQUOTA 5=26 SBX 1 COBJUSE 5=FQ ... SBX 1 ACOMMUNE3(2) [X1=DESIRABLE MAX GAP 5=^B SBX 1 7 [X1= Y 5?F2 BPZ 1 SSCO1 5?YL LDN 1 0 5#D= SSCO1 SLA 1 1 [X1=G(Y) 5#XW LDX 0 GEN3 [X0=C (TOTAL CORE TO BE MOVED) 5*CG MPA 0 GEN2 [X0,1 NOW EQUALS SCORE 5*X6 BZE 0 SFINS [IF X0 NOT 0 (IE SCORE 2* LENGTH!) 5BBQ NGN 1 2 [ SET SCORE TO INFINITY MINUS ONE 5BWB SFINS 5CB2 #SKI TRACE>599-599 5CTL TRACE 1,SFINS S' 5D*= BXGE 1 GEN5,SWORS [J IF NEW SCORE NO BETTER THAN S', 5DSW [ BEST PREVIOUS 5F#G STO 1 GEN5 [ELSE RESET S' 5FS6 SINFS LDX 0 GEN2 5G?Q STO 0 GEN6 [ AND N' 5GRB STO 4 GEN4 [ AND U' 5H?2 SWORS 5HQL LDX 0 GEN5 5J== BZE 0 SA [J IF BEST SCORE S' NOW UNBEATABLE 5JPW [ 5K9G [ NOW TRY FOR YET ANOTHER STRATEGY BY ADVANCING THE BASE POINTER U 5KP6 [ 5L8Q LDX 1 4 5LNB CALL 0 STEP 5M82 LDX 4 1 [ADVANCE U TO START OF NEXT PROGRAM 5MML BXE 4 CTOP,SA [IF U-> TOP OF CORE,J TO ELABORATE 5N7= [ STRATEGY 5NLW LDX 3 4 [SET Q TO U 5P6G SREST LDX 4 3 [SGT U TO Q 5PL6 SMO ALOGLEN(3) 5Q5Q LDN 0 A1(3) 5QKB STO 0 ACOMMUNE5(2) [SET LAST LIMIT L TO LIMIT OF PROGRAM 5R52 [ AT U 5RJL BRN SNXST [J TO TRY FOR ANOTHER STRATEGY 5S4= [ 5SHW [ AT THIS POINT WE ATTEMPT TO ELABORATE THE BEST STRATEGY FOUND SO FAR, 5T3G [ DEFINED BY N' (GEN6) AND U' (GEN4) 5TH6 [ USAGE OF WORKING SPACE IS AS BEFORE EXCEPT:- 5W2Q [ WORD MNEMONIC IN USED FOR 5WGB [ GIM 5X22 [ X3 P RUNNING DESTINATION ADDRESS 5XFL [ X4 N' PREVIOUS GEN6 5X^= [ X5 U' PREVIOUS GEN4 5YDW [ X6 X ADATA/ASTRAT ENTRY PNTR 5YYG [ GEN2 - ADDRESS OF ADATA/ASTRAT BLOCK 5^D6 [ 5^XQ SA 5^Y? ...#UNS ISTDP 5^YS ...( 5^^* ... LDX 0 GEN5 5^^W ... ADN 0 1 [J IF SCORE NOT STILL INFINITE 622C ... BNZ 0 SA1 [AS STRATEGY FOUND 622Y ... LDX 0 ACOMMUNE2(2) 623F ... ANDN 0 #2 6242 ... BZE 0 SC [J IF WE EVEN TRIED VALID FPB'S 624H ...#UNS ISTDPSTATS 6254 ... TRACEDP ASTR1FAIL 625K ... LDX 0 COBJUNUSE 6266 ... SBX 0 CINVFPB [TEST IF ANY VALID FPB'S 626M ... BPZ 0 USEVALFPB [J TO USE THEM AS WELL 6278 ...#UNS ISTDPSTATS 627P ... TRACEDP ASTRPASS2 628= ... BRN SC [OTHERWISE J AS NO STRAT. 628R ...SA1 LDX 0 ACOMMUNE2(2) 629# ... ANDN 0 #2 629T ... BZE 0 SA2 [J IF WE USED VALID FPB'S 62=B ... LDX 0 GEN6 62=X ... BZE 0 SA2 [J UNLESS STRAT WITH PROGRAM MOVE 62?D ...#UNS ISTDPSTATS 62?^ ... TRACEDP ASTR1FAIL 62#G ... LDX 0 COBJUNUSE 62*3 ... SBX 0 CINVFPB [TEST IF ANY VALID FPB'S 62*J ... BPZ 0 USEVALFPB [J TO GET BETTER STRAT.WITH THEM 62B5 ...SA2 62BL ...) 62CB #SKI TRACE>599-599 62X2 TRACE GEN5,SA S' 632X ...#UNS ISTDP 636S ...#SKI 63=P ...( 63BL LDX 0 GEN5 63W= ADN 0 1 64*W BZE 0 SC [J IF SCORE STILL INFINITE-NO STRAT 64KN ...) 64TG LDX 4 GEN6 [INITIALISE N' 65*6 LDX 5 GEN4 [INITIALISE U' 65SQ LDX 3 GEN4 66#B BXE 3 FCORES,SBASE 66S2 SMO ALOGLEN(3) 67?L ADN 3 A1 67R= BRN SCSQ 686# ...SBASE ANDX 3 ACOMMUNE7(2) 68FB ... ADX 3 ACOMMUNE6(2) 68SD ...#UNS CA1D 68WB ...( 68Y# ...SCSQ ADX 3 ACOMMUNE6(2) 692= ... SBX 3 CA1D [P:=(IF U'=B THEN (B*)+64 ELSE LIM OF PROG AT U') 6939 ... 6948 ...) 6966 ...#UNS CA1D 6984 ...#SKI 69H7 ...SCSQ ADX 3 ACOMMUNE8(2) 69W= ... 6=9B LDN 0 GPREN [NO OF WORDS/ENTRY IN ASTRAT BLOCK 6=P2 LDN 7 GPROG-A1 [GPROG IS ADDR OF 1ST ENTRY IN ASTRAT 6?8L LDX 6 4 6?N= ADN 6 1 [X6:=NO OF ENTRIES NEEDED IN ASTRAT 6#7W MPA 6 0 [X7=REQUIRED LOG LEN OF ASTRAT BLOCK 6#MG GETCORE 7,0 [SET UP ADATA/ASTRAT BLOCK 6*76 BRN SCORE [J IF OPTIONAL GETCORE SUCCEEDED 6*LQ ... LDX 0 ACOMMUNE3(2) [ OTHERWISE SET SHORTFAIL TO WHOLE 6B6B STO 0 ACOMMUNE1(2) [ REQUEST , END EXIT TO %C OF MACRO 6BL2 BRN SBACC 6C5L SCORE FINDCORE 1 6CK= NAME 1,ADATA,ASTRAT 6D4W LDX 0 4 6DJG ADN 0 1 6F46 STO 0 GPCNT(1) [STORE N'+1 AS NUMBER OF ENTRIES 6FHQ LDN 6 GPROG+GPREN(1) [INITIALISE NEXT ENTRY PNTR X TO 6G3B [ SECOND ENTRY 6GH2 STO 1 GEN2 [REMEMBER ADDR OF ASTRAT BLOCK 6H2L BZE 4 SLSTE [J IF NO MOVE-TYPE ENTRIES 6HG= SNXEN 6H^W LDX 1 5 6JFG CALL 0 STEP 6J^6 LDX 5 1 [ADVANCE U' TO NEXT PROGRAM 6KDQ TXU 1 CTOP [ X7=CTOP => PROGRAM(S) GONE OVER 6KYB BCS SFPCA [ GETCORE'S COORDINATION 6LD2 SMO FPTR(2) [ X4 NOW HOLDS COUNT OF PROGRAMS THAT 6LXL SBS 4 GPCNT [ HAVE GONE. ADJUST ADATA/ASTRAT 6MC= BRN SLSTE [ ACCORDINGLY AND TERMINATE 6MWW SFPCA LDX 1 BPTR(1) [FIND PCA 6NBG LDCH 0 ATYPE(1) 6NW6 SBN 0 APET/64 6P*Q BNZ 0 SFPCA 6PTB LDX 7 JOBNO(1) 6Q*2 LDX 1 6 6QSL STO 7 0(1) [SET PROGRAMS JOB NO IN 1ST WD OF ENT 6R#= LDX 0 ACOMMUNE2(2) 6RRW ANDN 0 1 6S?G BNZ 0 SRTP [J IF STRATEGY FOR REALTIME PROG 6SR6 STO 3 1(1) [WRITE P INTO DESTINATION FIELD OF 6T=Q [ ENTRY 6TQB SMO 5 6W=2 LDX 0 ALOGLEN 6WLG ... ADX 0 ACOMMUNE6(2) 6X32 ... ADN 0 A1-1 6XCG ... ANDX 0 ACOMMUNE7(2) 6XS2 ... 6Y8G ADX 3 0 6YN6 SRTP ADN 6 GPREN [STEP ENTRY PNTR TO NEXT ENTRY 6^7Q BCT 4 SNXEN [J TO WRITE IN NEXT ENTRY 6^MB SLSTE [NOW WRITE IN LAST ENTRY 7272 LDX 1 GEN2 [ADDR OF ASTRAT BLOCK 72LL ... LDX 0 ACOMMUNE4(2) 736= STO 0 GPROG(1) [WRITE IN JOB NUMBER 73KW STO 3 GPROG+1(1) [WRITE IN DESTINATION ADDR 745G LDX 0 ACOMMUNE2(2) 74K6 ANDN 0 1 754Q BZE 0 SNOB1 [J IF STRATEGY NOT FOR REALTIME PROG 75JB LDCT 0 #200 7642 LDX 0 GPCNT(1) 76HL BCT 0 SBACC [IF NOT JUST 1 ENTRY,TAKE %C EXIT 76K8 ...#UNS CA1D 76LQ ...SNOB1 LDX 0 CA1D 76N# ...#UNS CA1D 76PW ...#SKI 76RD ...SNOB1 LDN 0 A1D 773= ... SBS 0 ACOMMUNE3(2) [RESET TO JUST PROGRAM SIZE 77?4 ... UP [RETURN FOR SUCCESS EXIT 77GW [ 782G [ ENTER HERE IF NO STRATEGY COULD BE FOUND. WE DECIDE ON A %C OR A %D 78G6 [ EXIT FROM THE MACRO, AND IF NECESSARY SET ACOM1 TO THE CORE SHORTFALL 78^Q [ 79FB SC [FIRST CALCULATE LARGEST GAP BETWEEN REALTIME PROGRAMS 79LJ ...#UNS ISTDPSTATS 79RQ ... TRACEDP ASTR2FAIL 79^2 LDX 6 FCORES 7=DL ... ANDX 6 ACOMMUNE7(2) 7=Y= ... ADX 6 ACOMMUNE6(2) 7?CW LDX 1 FCORES [SET TOP PTR TO BOTTOM OF CORE 7?XG LDN 7 0 [SET MAXGAP TO 0 7#C6 SRGP1 CALL 0 STEP [ADVANCE TOP TO NEXT PROGRAM 7#WQ SRGP2 BXE 1 CTOP,SRGP4 [J IF TOP-> TOP OF CORE 7*BB LDX 0 JRETI(1) 7*W2 BPZ 0 SRGP1 [J IF NOT REALTIME PROGRAM 7B*L LDX 0 1 7BT= ... ANDX 0 ACOMMUNE7(2) 7C#W SBX 0 6 7CSG BXGE 7 0,SRGP3 7D#6 LDX 7 0 [MAXGAP:=MAX(MAXGAP,(TOP*)-BOT) 7DRQ SRGP3 SMO ALOGLEN(1) 7F?B LDN 6 A1(1) [BOT:= LIMIT OF PROG AT TOP 7FR2 CALL 0 STEP [ADVANCE TOP TO NEXT PROGRAM 7G=L BRN SRGP2 [J BACK FOR NEXT PROGRAM 7GQ= SRGP4 LDX 0 1 7H9W ... ANDX 0 ACOMMUNE7(2) 7HPG SBX 0 6 7J96 BXGE 7 0,SRGP5 7JNQ LDX 7 0 [MAXGAP:=MAX(MAXGAP,(TOP*)-BOT) 7K8B SRGP5 7K=# ...#UNS CA1D 7K#= ...( 7KB8 ... SBX 7 ACOMMUNE6(2) 7KD6 ... ADX 7 CA1D 7KG4 ...) 7KJ2 ...#UNS CA1D 7KKY ...#SKI 7KWR ... SBX 7 ACOMMUNE8(2) 7L7L #SKI TRACE>599-599 7LM= TRACE 7,SRGP5GAP 7M6W ... BXL 7 ACOMMUNE3(2),SBACD [J FOR %D EXIT IF MAXGAP<REQUEST 7MLG STOZ ACOMMUNE1(2) [ELSE %C EXIT SPECIFYING ZERO 7N66 [ SHORTFALL 7N7N ...#UNS CA1D 7N9= ...SBACC LDX 0 CA1D 7N=S ...#UNS CA1D 7N#B ...#SKI 7N*Y ...SBACC LDN 0 A1D 7NKQ ... SBS 0 ACOMMUNE3(2) [RESET TO JUST PROGRAM SIZE 7NTJ ... UPPLUS 2 [BACK FOR %C EXIT 7P5B # 7P6Y ...#UNS CA1D 7P8G ...SBACD LDX 0 CA1D 7P=4 ...#UNS CA1D 7P?L ...#SKI 7P*8 ...SBACD LDN 0 A1D 7PK2 ... SBS 0 ACOMMUNE3(2) [RESET TO JUST PROGRAM SIZE 7PSS ... UPPLUS 1 [ BACK FOR %D EXIT 7Q4L [ 7QJ= [ THIS SUBROUTINE STEPS X1 TO THE START OF THE NEXT PROGRAM BLOCK OR TO 7R3W [ THE START OF THE LONGLOCK AREA . X0 IS LEFT CONTAINING THE AMOUNT OF 7RHG [ PROGRAM CORE STEPPED OVER. 7S36 [ LINK X0 GEN0 DESTROYED ALL ELSE UNCHANGED 7SGQ [ 7T2B STEP STO 0 GEN0 [DUMP LINK 7TG2 LDN 0 0 7T^L BXU 1 FCORES,STE1 [J UNLESS X1-> BOTTOM OF CORE 7WF= LDN 1 BPBRG-APBRG [ ELSE SET UP X1 FOR RING BASE 7WYW BRN STE2 7XDG STE1 BXE 1 CTOP,(GEN0) [EXIT IF X1-> TOP OF CORE 7XY6 #SKI TRACE>599-599 7YCQ ( 7YXB LDCH 0 ATYPE(1) 7^C2 SBN 0 AOBJPROG/64 7^WL BZE 0 STE3 82B= GEOERR 1,PRBLRING 82TW STE3 83*G ) 83T6 ... LDX 2 ALOGLEN(1) 84#Q ... ADN 2 A1 [SET 'CORE STEPPED OVER' 84SB STE2 LDX 1 APBRG(1) 85#2 SBN 1 APBRG [STEP TO NEXT PROGRAM BLOCK 85RL ... BXGE 1 FCORES,STE4 [J IF X1-> VARIABLE CORE 86?= LDX 1 CTOP [ ELSE OVER TOP - SET X1=TOP OF CORE 86*T ... BRN STE5 [ AND EXIT 86DD ...STE4 JBC STE5,1,AFFPB [J IF NOT FPB 86H3 ... LDX 0 JOBNOWAS(1) [IF INVALID FPB 86KL ... BZE 0 STE2 [J TO GET NEXT AOBJPROG 86N9 ... SMO FX2 86QS ... LDX 0 ACOMMUNE2 86TC ... ANDN 0 #2 [IF'DONT USE VALID FPB'MARKER SET 86Y2 ... BZE 0 STE2 [DON'T J TO GET NEXT AOBJPROG 872K ...STE5 LDX 0 2 [LOAD TOTAL PROG.CORE STEPPED OVER 8758 ... LDX 2 FX2 877R ... BRN (GEN0) 87=G # 87Q6 MENDAREA 20 889Q #END ^^^^ ...55715750000400000000