A midweek review of Corewar
                            September 23, 1993
-------------------------------------------------------------------------------
  I.  The Standings:

 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  43/ 28/ 29          QuickFreeze v1.4              P.Kline     159       1
 2  48/ 41/ 11            Iron Gate 1.01       Wayne Sheppard     154     240
 3  46/ 43/ 11              Dragon Spear             c w blue     148    1199
 4  47/ 46/  7                 Agony 6.0        Stefan Strack     147      49
 5  34/ 22/ 44       Deck of Many Things             c w blue     146      13
 6  42/ 40/ 18         Beholder's Eye v2         W. Mintardjo     144      17
 7  40/ 37/ 24         Winter Werewolf 3         W. Mintardjo     143     415
 8  34/ 26/ 40              FlyPaper 3.0            J.Layland     143     521
 9  33/ 24/ 43                       ttt        nandor sieben     143     321
10  30/ 19/ 51                     pMARS        pMARS project     141     146
11  32/ 25/ 43             Night Crawler       Wayne Sheppard     140    1097
12  42/ 45/ 12                   Impurge     Fredrik Ohrstrom     140     421
13  31/ 23/ 45               Impact v1.0         Anders Ivner     139     234
14  36/ 34/ 29              Keystone t13              P.Kline     138      55
15  31/ 24/ 45                Imprimis 7              P.Kline     137     337
16  37/ 39/ 24             Leprechaun 1b         Anders Ivner     136     165
17  30/ 24/ 46                     Hydra      Stephen Linhart     135     166
18  30/ 25/ 45               Sphinx v2.8         W. Mintardjo     135    2095
19  39/ 44/ 17           Grimm's Vampyre             c w blue     134     280
20  35/ 37/ 27                  Herem VI         Anders Ivner     134     269

21   2/ 98/  0                      test              P.Kline       7       0

-------------------------------------------------------------------------------
 II.  The Basics:

       -Core War Archives, including many helpful articles, warrior source
        code, and reliable emulators, are available via anonymous FTP
        at soda.berkeley.edu in pub/corewar.

       -FAQ for this newsgroup is available via anonymous FTP at
        rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.z

-------------------------------------------------------------------------------
III.  The Scoop:

What do Core War veterans consider to be the _real_ terror, the one
opponent they never hope to meet?  'Hard Disk Crash' of course!  
C.W. Blue had one and he is scrambling to recover his warriors.
Hmm. looks like he found the source to Deck of Many Things, a
program whose motto might be "yield no losses!".  Not a bad strategy
either :-)  [Blue, I tried responding to your request, but my
replies bounced]

After publishing QuickFreeze last week, I realized that not only
can he scan faster than c, but he can JMN to the attack much
sooner.  Thus the improved performance.  Sorry, ttt, that seemed
to make a BIG difference.  I'm even starting to pick up a few
points against scanners.

S. Strack's new tournament is underway.  After the first round
winners and losers are equally divided :-)  Should be interesting
to see whether the '94 standard fighters have any unusual advantage.
Remember, participants, you have until Friday, the 23rd, to submit
a new program, otherwise the old one will go into the second round.
Speaking of '94 standard, is koth.stormking active?  I've sent
three programs that way with no response.  Maybe someone could
repost the submission syntax for us.  And the standings.

Funny, every couple of weeks someone posts Dwarf or Imp, copied right
out of the old Dewdney articles.  And they never make it on the Hill.
Note to all newcomers: today's programs can out-bomb Dwarf, out-tie
Imp, out-reproduce Mice, and out-lasso Cowboy.  Better check
the archives at soda.  But hang in there, it takes time to learn
enough to become dangerous.  Just keep repeating: "it's a harmless
addiction, it's a harmless addiction, . . .".

-------------------------------------------------------------------------------
 IV.  The Outlook:

 2  34/ 22/ 44       Deck of Many Things             c w blue     147       1
 2  40/ 29/ 30          QuickFreeze v1.4              P.Kline     151       1

-------------------------------------------------------------------------------
  V.  The Quick Look:

20   0/ 70/ 29                  ImpSpawn           Tim Scheer      31       1
20  20/ 77/  3                 BackTrack           Tim Scheer      62       1
21   0/ 47/ 53                   Unknown              TR Reed      54       0
21   0/ 90/ 10             Anti-IMP v1.0 Bryan Turner <bcturn      10       0
21   0/ 91/  9              BombSeeker_1           Garen K.E.       9       0
21   0/ 92/  8                   tr2.red              TR Reed       9       0
21   6/ 50/ 44                       Bug     Zamkovoy Evgenij      62       0
21   7/ 70/ 22                SLExplorer      Slava Shinderov      44       0
21  14/ 56/ 30                 Sandstone        Jonathan Wolf      72       0
21  16/ 70/ 14             Nosferatu 0.2         J Kyle Kelso      62       0
21  16/ 80/  4                    Ringer           Tim Scheer      52       0
21  18/ 73/  9            BackTrack v1.3           Tim Scheer      63       0
21  18/ 80/  2                   DuoTrac           Tim Scheer      57       0
21  19/ 69/ 12           AllThatGlitters      Mike Nonemacher      68       0
21  20/ 71/  9                  spriteII         Cormac Walsh      69       0
21  24/ 62/ 14                RealStoneD        Jonathan Wolf      85       0
21  26/ 48/ 26            Red Baron v3.0      Mike Nonemacher     104       0
21  30/ 60/ 10                     death       Steven Morrell     101       0

-------------------------------------------------------------------------------
 VI.  The Hint:

Today's topic is imp launching, or actually imp-spiral launching, using 
several different launch techniques, with some pointers as to their merits.

Just for fun, here is the old 'worm' launcher, which could be considered
a one-point spiral with an imp-size of 8001:

length  dat 0,#10
go      spl extrude,0
        djn 0,length
        mov length,extrude ;Stop making the worm
;
extrude spl 0,0   ;spin here and make a worm
        mov 0,1   ;of imps
end     go

The unfortunate thing about worm is that the processes execute in reverse
order.  The leading process executes, then the one behind that, the one
behind that, etc.  In a true spiral you want each mov instruction to
write over the location that the next process is going to execute.  So
there is no time lag between writing the mov instruction and executing
it.  That, plus the great separation of instructions in core, is the
strength of spirals.

Anyway, here is a standard binary launcher:

boot    equ 1000
impsize equ 2667
start   mov imp,imp+boot
s1      spl s2
        spl s1a
        jmp imp+boot
s1a     jmp imp+boot+(1*impsize)
s2      spl s2a
        jmp imp+boot+(2*impsize)
s2a     jmp imp+boot+(3*impsize) ; <- or jmp to stone/vamp/???
imp     mov 0,impsize

The binary launcher is fast, creating just the right number of
processes and jumping them into position in the necessary order.
However, this is a very short spiral that can be killed with
a single dat-bomb.  A spiral with eight processes would require
twice the code to launch, making it more vulnerable to early detection.
And the binary launcher is most efficient when creating power-of-two
number of processes, though it can be tailored to kill or re-use
excess ones.

Here is a Nimbus-style launcher:

boot    equ 1000
impsize equ 2667
start   mov imp,imp+boot
        spl 1            ; <- add more splits for longer spiral
        spl 1
        spl s2
s1      jmp @0,imp+boot
s2      add imp,s1
        dat #0           ; die or jump to stone/vamp/???
imp     mov 0,impsize

This launcher is short, can be adapted for any imp-size or spiral length,
but is not quite as fast as the binary launch, since every jmp is 
accompanied by an add.  The 'adding' processes also have to be disposed of,
either through letting them die, or by putting them to work.  However, 
Nimbus successfully launches a 64-point spiral this way, which is 
remarkable.

Here is about the shortest 3-point launcher possible:

start    spl imp+5334
         spl -1
         spl imp+2667
imp      mov 0,2667

In fact, this launcher doesn't generate a true spiral, but a series of
rings instead.  Each ring is slightly separated from the succeeding one
due to the imbedded spl-delay in the launcher.  However it is fast
and continuously launches rings which become difficult to kill.

-------------------------------------------------------------------------------
VII.  The End:

Paul Kline
pk6811s@acad.drake.edu