{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: STRATEGY865)}}
====== STRATEGY865 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COBJUNUSE|COBJUNUSE]], [[george:macro:COBJUSE|COBJUSE]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FINDJOBQ|FINDJOBQ]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETCORE|GETCORE]], [[george:macro:JBC|JBC]], [[george:macro:JENV|JENV]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:NAME|NAME]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:STARTSTRAT|STARTSTRAT]], [[george:macro:STEP|STEP]], [[george:macro:T|T]], [[george:macro:TRACE|TRACE]], [[george:macro:TRACEDP|TRACEDP]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
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 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