From news-rocq.inria.fr!news2.fnet.fr!julienas!EU.net!howland.reston.ans.net!swrinde!ihnp4.ucsd.edu!dog.ee.lbl.gov!hellgate.utah.edu!news.cs.utah.edu!peruvian.cs.utah.edu!bdthomse Sat Jun 18 16:43:46 1994 Article: 955 of rec.games.corewar Path: news-rocq.inria.fr!news2.fnet.fr!julienas!EU.net!howland.reston.ans.net!swrinde!ihnp4.ucsd.edu!dog.ee.lbl.gov!hellgate.utah.edu!news.cs.utah.edu!peruvian.cs.utah.edu!bdthomse From: bdthomse@peruvian.cs.utah.edu (Brant Thomsen) Newsgroups: rec.games.corewar Subject: Stimpy source Date: 18 Jun 1994 04:43:50 GMT Organization: University of Utah CS Dept Lines: 74 Distribution: world Message-ID: <2ttu26$fbt@magus.cs.utah.edu> NNTP-Posting-Host: peruvian.cs.utah.edu Originator: bdthomse@peruvian.cs.utah.edu The following is the code for Stimpy. The ;strategy line is somewhat misleading, as this is not a true scanner. Rather, it bombs the core with SPL 0 instructions, and drops a JMP -1 instruction immediately after the SPL 0 if either of the fields in that location are non-zero. Basically, it's my attempt at a SPL/JMP bomber that doesn't take four cycles to drop each bomb. The SPL/DAT coreclear was added with version two. It isn't as clean as I would like, as there end up being three SPL 0 statements preceding the DAT statement for the final imp-gate after the core-clear. Still, since the processes tend to collect in the last SPL statement, the final gate retains most of its effectiveness -- especially against the small imp-spirals that tend to remain after a SPL/DAT core-clear has been executed. ;redcode-94 ;name Stimpy v2.0 ;author Brant D. Thomsen ;strategy SPL/JMP A/B field scanner w/ SPL/DAT core-clear. ;strategy Submitted: @date@ ;macro step equ 2365 init equ 1 + step dat.A #1, #1 dat.A #1, <1 dat.A #1, @1 . . [Huge decoy deleted] . dat.I @1, 1 dat.I @1, >1 dat.I 1, 1 start mov.I db, db - point - step - 1 ; The bootstrapping distance is chosen ; such that this instruction is overwritten ; by the first bomb. ; (In case of tracing.) add #ptr - db, start mov.I ptr, @start sub #ptr - jump - 1, start for 8 mov.I point point jmz.F -2, init ; Hit here to end jmn.A top, -1 split spl #0, <-ptr mov.I @begin,