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