Fixed is a paper with silk-imps which entered the Pizza 94 hill in late 1997 and reached age 135 before the hill was wiped on 5th February 1999. After the wipe Fixed was resubmitted and survived 54 challenges before being pushed off on 12th July 1999. Fixed also reached age 235 on KOTH's 94nop hill and was published in Core Warrior issue 71.

;redcode-94
;name Fixed
;author Ken Espiritu
;strategy qscan -> paper
;assert 1

       org start

gap    equ    (6)
rep    equ    (17)
rep2   equ    (13)
qd     equ    (100)
qs     equ    (-200)
qb     equ    (start-700)
flag   equ    (qbomb-100)
datz   equ    (start-200)

qbomb: dat    }gap,    }-gap
tab:   add.a  table,   table
slow:  add.ab @tab,    fnd
fast:  add.b  *tab,    @slow
which: sne.f  }datz,   @fnd
       add.ab #qd,     fnd
       spl    bmber2,  }qs*13   ; start primary bomber

bmber1:add.b  fnd,     fnd2     ; redundant bomber
loop1: mov.i  qbomb,   @fnd2    ; .5c, forward only
fnd2:  mov.i  qbomb,   >fnd-(gap*rep)/2+1
       add    #2*gap,  fnd2
       djn    loop1,   #rep
       jmn.b  qbomb,   flag     ; check flag

fixed1:spl    1,       }qb+qs*31
       spl    1,       }qb+qs*32
       spl    1,       }qb+qs*33
silk1a:spl    @0,      <131
       mov.i  }silk1a, >silk1a
silk1b:spl    @0,      }7502
       mov.i  }silk1b, >silk1b
silk1c:spl    @0,      }2430
       mov.i  }silk1c, >silk1c
       mov.i  #3555,   }-3190
       mov.i  #1832,   }1398
       mov.i  #-2840,  }570


       dat    }10*qs,  >2*qs    ; can get 21 values from this table
table: dat    >4*qs,   }1*qs    ; and can also use the initial value
       dat    }23*qs,  >3*qs    ; of fnd

start: seq.i  qb+qs*0, qb+qs*0+qd
       jmp    which,   }qb+qd/2
       seq.i  qb+qs*2, qb+qs*2+qd
       jmp    fast,    {tab
       seq.i  qb+qs*13,qb+qs*13+qd
       jmp    fast,    {fast
       seq.i  qb+qs*1, qb+qs*1+qd
       jmp    fast,    }qb+qs*1+qd/2
       seq.i  qb+qs*3, qb+qs*3+qd
       jmp    fast,    }tab

       seq.i  qb+qs*17,qb+qs*17+qd
       jmp    slow,    {fast
       seq.i  qb+qs*7, qb+qs*7+qd
       jmp    slow,    }tab
       seq.i  qb+qs*11,qb+qs*11+qd
       jmp    slow,    <tab
       seq.i  qb+qs*5, qb+qs*5+qd
       jmp    slow,    }qb+qs*5+qd/2
       seq.i  qb+qs*24,qb+qs*24+qd
       jmp    slow,    >tab
       seq.i  qb+qs*4, qb+qs*4+qd
       jmp    >fast,   }qb+qs*4+qd/2
       seq.i  qb+qs*10,qb+qs*10+qd
       jmp    >fast,   <tab
       seq.i  qb+qs*23,qb+qs*23+qd
       jmp    >fast,   >tab
       seq.i  qb+qs*6, qb+qs*6+qd
       jmp    slow,    {tab
       seq.i  qb+qs*12,qb+qs*12+qd
       djn.f  slow,    tab


       seq.i  qb+qs*28,qb+qs*28+qd
       jmp    tab,     >tab
       seq.i  qb+qs*9, qb+qs*9+qd
       jmp    tab,     }qb+qs*9+qd/2
       seq.i  qb+qs*20,qb+qs*20+qd
       djn.f  <fast,   tab
       seq.i  qb+qs*8, qb+qs*8+qd
       jmp    <fast,   }qb+qs*8+qd/2
       seq.i  qb+qs*21,qb+qs*21+qd
       jmp    tab,     {fast
       seq.i  qb+qs*15,qb+qs*15+qd
       jmp    tab,     <tab
       seq.i  qb+qs*27,qb+qs*27+qd
       jmp    <fast,   >tab
       seq.i  qb+qs*16,qb+qs*16+qd
       jmp    tab,     {tab
       seq.i  qb+qs*22,qb+qs*22+qd
       djn.f  tab,     tab
       seq.i  qb+qs*30,qb+qs*30+qd
       jmp    tab,     }tab

fixed2:spl    1,       }qb+qs*31
       spl    1,       }qb+qs*32
       spl    1,       }qb+qs*33
silk2a:spl    @0,      <131
       mov.i  }silk2a, >silk2a
silk2b:spl    @0,      }7502
       mov.i  }silk2b, >silk2b
silk2c:spl    @0,      }2430
       mov.i  }silk2c, >silk2c
       mov.i  #3555,   }-3190
       mov.i  #1832,   }1398
       mov.i  #-2840,  }570

       dat    }1,      >1
       dat    }1,      >1
qincr  dat    }-gap,   >2*gap

bmber2:add.ba fnd,     fnd
loop2: mov.i  qincr,   *fnd     ; primary bomber
       mov.i  qincr,   @fnd     ; .66c, bi-directional
fnd:   mov.i  2*-gap,  }qb
       add    qincr,   fnd
       djn    loop2,   #rep2
       jmp    fixed2,  >flag    ; set flag
       end