Here is a couple of strong scanners employing a fixed length wipe. This type of attack is a great alternative to the Blurish ongoing SPL carpet as it does not compromises the scan speed and has greater stun power, but requires more instructions. These scanners are not Agony-style, as the scan period is short and there is no SLT. Anybody knows what are the earliest warriors of this type?
CorePaste:
http://www.corewar.eu/corepaste/id.php?id=28
;redcode-94nop
;author inversed
;name Eternal Exile
;strategy q^i -> Scanner with fixed length wipe
;assert (CORESIZE==8000) && (MAXPROCESSES==8000)
org qscan
;---------------<< mini q^i quickscanner >>------------------------------------;
qbstep equ 7
qbhop equ -87
qbcnt equ 20
qxa equ 6980
qxb equ 6810
qa1 equ 5354
qa2 equ 5514
qb1 equ 5824
qb2 equ 1712
qstep equ 2379
qa2qb2 equ ((qa2*qb2)%CORESIZE)
qa2p1qb equ (((qa2+1)*qb2)%CORESIZE)
qa2m1qb equ (((qa2-1)*qb2)%CORESIZE)
nil equ (-CURLINE-1)
X equ found
; --------~~~~~~~~([ instant ])~~~~~~~~-------- ;
qscan sne X + qxa , X + qxb
seq X + qxa + qstep , X + qxb + qstep
jmp decide , 0
; --------~~~~~~~~([+0 cycles])~~~~~~~~-------- ;
sne X + qxa * qa2 , X + qxb * qb2
seq X + qxa * qa2 + qstep , X + qxb * qb2 + qstep
jmp dec0de , 0
sne X + qxa * qa1 , X + qxb * qb1
seq X + qxa * qa1 + qstep , X + qxb * qb1 + qstep
jmp dec0de , < dec1
sne X + qxa * (qa2 - 1) , X + qxb * (qb2 - 1)
seq X + qxa * (qa2 - 1) + qstep , X + qxb * (qb2 - 1) + qstep
djn.f dec0de , qtab
sne X + (qxa - 1) * qa2 , X + (qxb - 1) * qb2
seq X + (qxa - 1) * qa2 + qstep , X + (qxb - 1) * qb2 + qstep
djn.f dec0de , found
; --------~~~~~~~~([+1 cycle ])~~~~~~~~-------- ;
sne X + qxa * qa2qb2 , X + qxb * qa2qb2
seq X + qxa * qa2qb2 + qstep , X + qxb * qa2qb2 + qstep
jmp dec1 , 0
jmp boot , 0
dec1 mul.x qtab , qtab
dec0de mul @ dec1 , found
decide sne * found , @ found
add qinc , found
seq nil , * found
mov.x found , found
qbloop mov qbomb , @ found
found mov qxa , } qxb
add # qbstep , found
djn qbloop , # qbcnt
jmp boot , 0
qbomb dat > qbhop , > 1
dat qa1 , qb1
qtab dat qa2 , qb2
qinc dat qstep , qstep
for 27
dat 0 , 0
rof
;---------------<< Boot >>-----------------------------------------------------;
bdist equ 4774
clen equ 14
x0 equ qscan
copy mov < bp , { bp
mov < bp , { bp
boot mov < bp , { bp
mov < bp , { bp
djn copy , # 4
bp spl @ x0 + bdist + clen , loop + clen
mov.i # 0 , { 0
dat 0 , 0
;---------------<< Scanner >>--------------------------------------------------;
hop equ 8
step equ -101
time equ 712
zo equ -88 ; = 0 - step * time
wlen equ 8
wptr equ ptr - 3
dcgap equ 10
ikill equ 2667
; Alternative (step, time) pair = (-371, 735)
loop add inc , ptr
ptr sne zo , zo + hop
j1 jmn.a @ j2 , @ loop
t1 mov.ab ptr , @ wipe
cnt mov # wlen , @ jw
wipe mov inc , > wptr
gate mov inc , > wptr
jw djn @ t1 , cnt
j2 jmn.a @ j1 , @ loop
inc spl # step , step
clear mov kill , > gate
djn.f clear , > gate
dat 0 , 0
kill dat < ikill , dcgap
;------------------------------------------------------------------------------;