Warrior: diet

Hill: Beginner Standard 94
Author: physsio
Redcode
;redcode-94b
;name diet
;author physsio
;assert CORESIZE == 8000
;strategy Find phatpaper and put it on a diet
step   equ 4437

ORG search

p0          mov.ab    #100,       #0
p1          add.ab    #-3561,     #-3561
p2          mov.i     <-2,        <-1
p3          jmn.b     $-1,        $-3
p4          spl.b     @-3,        $0
p5          jmp.b     $-5,        $0
p6          dat       $1,         $1

search      add.ab    #step,      #100
            jmz.f     search,     @search
            sne.i     p2,         @search
            jmp       kill
            sne.i     p3,         @search
            jmp       kill
            sne.i     p6,         @search
            jmp       findhead
            jmp       search
bomb        spl       0,          0
findhead    mov.b     search, searchhead
            add.ab    #search-searchhead, searchhead  ;adjust for relative pointer
searchhead  add.ab    #-2,        #0
            sne.i     p2,         @searchhead
            jmp       killhead
            sne.i     p3,         @searchhead
            jmp       killhead
            sne.i     p0-1,       @searchhead
            jmp       search
            jmp       searchhead
killhead    mov.b     searchhead, search
            add.ab    #searchhead-search, search      ;adjust for relative pointer
            jmp       kill
kill        mov.i     bomb,       @search
            mov.b     search,     }saved
            djn       search,     #2
clear       mov.i     saved,      bomb                ;change bomb
            mov.b     {saved,     search              ;pop stack of saved fork bombs
            mov.i     bomb,       @search
            add.ab    #1, search
            mov.i     bomb,       @search
            sub.ab    #1, search
            jmn.a     clear,      saved
            jmp search
;sweep       add.ab    #2,         #saved
;            mov.i     bomb,       @sweep
;            djn       sweep,   #4000
;            jmp 0                                     ;wait and hide until everything dies
saved       dat       #0, #0