Starlink (satellite paper)
From
Roy van Rijn@21:1/5 to
All on Fri Feb 11 02:41:41 2022
After watching the livestream and learning about Hydra (which I had never seen before), I decided to make a warrior that does something similar.
I ended up on the design and payload from Sputnik, but instead of having 4 processes I'm using a smaller/faster paper with just three processes.
Sadly it isn't good enough for the current hill (which I'm not on :-(), but I thought it would be fun to share here. I probably need a new benchmark that has more modern warriors and looks a bit like the current hill.
;redcode-94nop quiet
;name Starlink
;author Roy van Rijn
;strategy qscan > satellite paper
;strategy idea from Sputnik
;strategy slightly faster paper
;assert 1
pStep1 equ 5756
pDiff equ 5349
cDjn equ 1946
pDjn equ 3584
zero equ qbomb
qtab3 equ qbomb
qbomb dat >qoff , >qc2
dat 0 , 0
bPtr dat cGo , }qb1
qtab2 spl 1 , }qb2 ; bootstrap
mov.i -1 , #qb3
mov.i }bPtr , >pEnd ; boot payload instead of paper
pGo spl @0 , }pStep1 ; fast paper
mov.i }-1 , >-1 ; 15 cycles and writes 9 lines
mov.i }-2 , >-2 ; where Sputnik uses 16 cycles and writes 8 lines
mov.i <1 , {1
pEnd djn.f pStep1 + pDiff , {pDiff - 3
dat 0 , 0 ;luggage
for 5
dat 0 , 0
rof
dat zero-1 , qa1
qtab1 dat zero-1 , qa2
dat 0 , 0
dat 0 , 0
cGo spl #pDjn , <2 ; small 3-line payload like Sputnik
mov.i #1 , <1
djn.b -2 , #cDjn
for 41
dat 0 , 0
rof
qc2 equ ((1+(qtab3-qptr)*qy)%CORESIZE)
qb1 equ ((1+(qtab2-1-qptr)*qy)%CORESIZE)
qb2 equ ((1+(qtab2-qptr)*qy)%CORESIZE)
qb3 equ ((1+(qtab2+1-qptr)*qy)%CORESIZE)
qa1 equ ((1+(qtab1-1-qptr)*qy)%CORESIZE)
qa2 equ ((1+(qtab1-qptr)*qy)%CORESIZE)
qy equ 5931
qz equ 3972
;q0 mutation
qgo
sne qptr+qz*qa1 , qptr+qz*qa1+qb2
seq <(qtab1-1) , qptr+qz*(qa1-1)+qb2
djn.a q0 , {q0
sne qptr+qz*qc2 , qptr+qz*qc2+qb2
seq <qtab3 , qptr+qz*(qc2-1)+qb2
jmp q0 , }q0
sne qptr+qz*qa2 , qptr+qz*qa2+qb2
seq <qtab1 , qptr+qz*(qa2-1)+qb2
jmp q0 , {q0
;q1 mutation
sne qptr+qz*qb3 , qptr+qz*qb3+qb3
seq <(qtab2+1) , qptr+qz*(qb3-1)+(qb3-1)
jmp q0 , }q1
sne qptr+qz*qb1 , qptr+qz*qb1+qb1
seq <(qtab2-1) , qptr+qz*(qb1-1)+(qb1-1)
jmp q0 , {q1
sne qptr+qz*qb2 , qptr+qz*qb2+qb2
seq <qtab2 , qptr+qz*(qb2-1)+(qb2-1)
djn.f q0 , <6907
;qz mutation
seq >qptr , qptr+qz+(qb2-1)
jmp q2 , <qptr
;q0 mutation
seq qptr+(qz+1)*(qc2-1),qptr+(qz+1)*(qc2-1)+(qb2-1)
jmp q0 , }q0
seq qptr+(qz+1)*(qa2-1),qptr+(qz+1)*(qa2-1)+(qb2-1)
jmp q0 , {q0
seq qptr+(qz+1)*(qa1-1),qptr+(qz+1)*(qa1-1)+(qb2-1)
djn.a q0 , {q0
jmz.f qtab2 , qptr+(qz+1)*(qb2-1)+(qb2-1)
qoff equ -87
qstep equ -7
qtime equ 19
q0 mul.b *2 , qptr
q2 sne {qtab1 , @qptr
q1 add.b qtab2 , qptr
mov qtab3 , @qptr
qptr mov qbomb , }qz
sub #qstep , qptr
djn -3 , #qtime
jmp qtab2 , <-100
end qgo
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)