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