;redcode-94nop verbose
;name Toxic Spirit II
;author Philip Thorne
;strategy 1-shot scanner. Faster [0.8c] version of Toxic Spirt
;
;internal Submitted to 94NOP as 'tetht' Nov 2006. Briefly KOTH, Feb2007.
;
;internal Reverses A|B of clear for imp safety. Fixes bug in stun so
;internal bombs are adjacent. spl/jmp stun. More indirection and core-
;internal colouring (e.g. jmp bomb throw). Removed decoy maker.
;internal
;bench Result for BC-D9 using [k50] over 15602 = 136.33 file=nA-bc-d9.red
;
;password recommended
;kill Toxic
;assert CORESIZE==8000
START EQU ((ptr-scan)-(STEP))
STEP EQU (-2150) ;mod-50
GAP EQU 25
OFF EQU 1
;Basic clear is per Geist [nice S/D switch] with tweakings.
;A and B columns inverted for protection vs simple imps.
ptr: dat.f scan+STEP+OFF+GAP+1, scan+STEP+OFF ;Scans and bombs off this
for 5
dat 0, 0
rof
bptr: dat (eclr-ptr+3), 1 ;A incr for dec protection
dptr: spl #(eclr-ptr+3), ptr+3450 ;B incr to shorten SPL cycle
dat 0, 0
incr:
clr: spl #STEP, }STEP
mov @bptr, }ptr
mov @bptr, }ptr
eclr: djn.f -2, >dptr
for 12 + 25
dat 0, 0
rof
;find
scan: add.f jbmb, @4
sptr: sne.i *ptr, @ptr
add.f incr, @2
sne.i *ptr, @ptr
djn.f scan, {ptr
spl clr, {-1
stun: mov.i *-1, >ptr
mov.i {jbmb+1, >ptr
sub.a #98, @-1
for MAXLENGTH-CURLINE-7
dat 0, 0
rof
jbmb: jmp #STEP+1, #STEP
end scan+1