;redcode-94nop verbose
;name test (24pilt)
;author Philip Thorne
;strategy test. bombs. needs pspace protection
;kill pilt
;bench c=124#7800 lk=117#400 w=154#400 o=137#400 mps=128#400
;url http://www.koth.org/stats/
for CORESIZE==8000
;assert (CORESIZE==8000)
;assert (MAXLENGTH==100) && (MINDISTANCE==100)
;assert (MAXCYCLES==80000)
;assert (MAXPROCESSES==8000)
rof
for CORESIZE==55440
;assert (CORESIZE==55440)
;assert (MAXPROCESSES>=8)
;assert (MAXCYCLES==500000)
;assert (MAXLENGTH==200) && (MINDISTANCE==200)
rof
for CORESIZE==8000
STEP EQU (2936) ;mod-8
rof
for CORESIZE==55440
STEP EQU (-24184) ;mod-8
rof
MSIZ EQU (8)
MSPACE EQU for MSIZ
EQU dat 0, 0
EQU rof
MFILL EQU for MSIZ-(CURLINE%MSIZ)
EQU dat 0, 0
EQU rof
WACK EQU cptr
;assert ((STEP%(MSIZ)) == 0)
;assert ((CURLINE%MSIZ) == 0)
lure: mov.b #(2*STEP), *(WATCH-(2*STEP))
inc: spl #(STEP-1), #(-STEP-1)
;vbmb: jmp -(MSIZ), >1 ;
vbmb: djn.f -(MSIZ), <6 ;
MFILL
;assert ((CURLINE%MSIZ) == 0)
DROP EQU (lure-4000-STEP)
WATCH EQU (lure+STEP)
dat 0, 0
loop: mov.i @1, }lure ;A==lure
mov.i vbmb, >lure
add.f inc, @-1 ;B==lure
eloop: jmz.b loop, DROP ;misses WATCH overruns
;eloop: jmz.b loop, *WATCH
spl clr, DROP
prep: sub.b @-1, WACK
MFILL
;assert ((CURLINE%MSIZ) == 0)
;The clear from quiz
for 1
dat 0, 0
cptr dat.f clr, (WATCH-WACK-1) ;Was B==15
d dat.f <2667, 15
dat.f <-15, 15
clr spl #-3000, 15
mov.i @2, >cptr
mov.i @1, >cptr
djn.b -2, {clr
;MFILL:
rof
;assert ((CURLINE%MSIZ) == 0)
MSPACE
MSPACE
MSPACE
MSPACE
MSPACE
;assert ((CURLINE%MSIZ) == 0)
dat 0, 0
for 0 ;ZZZ 94nop comp problem
for (PSPACESIZE >1)
;pbmb: stp.b >0, }-20
;pbmb: stp.a #1723, }0
pbmb: dat >0, >1
rof
for (PSPACESIZE <2)
pbmb: dat >0, >1
rof
rof
pbmb: dat >0, >1 ;ZZZ 94nop comp problem
start: mov.a #(DROP-WATCH), WATCH
mov.i <3333, start
;jmp loop, {0
;--
for 1
for CORESIZE==8000
JCNT EQU (18) ;(30)
rof
for CORESIZE==55440
JCNT EQU (131)
rof
JSTEP EQU ((CORESIZE - MAXLENGTH) / JCNT)
qbmb:
J for JCNT
mov.i pbmb, <(JSTEP*J)+(start)
rof
begin: jmp loop, {0
rof
;--
F for (MAXLENGTH-CURLINE)
dat 0, 0
rof
end start