From corewar-l@stormking.com Fri Jan 12 17:25:11 1996 Received: by couchey.inria.fr (5.57/Ultrix3.0-C) id AA19838; Fri, 12 Jan 96 17:25:11 +0100 Received: from valhalla.stormking.com (root@valhalla.stormking.com [204.141.14.1]) by nez-perce.inria.fr (8.7.1/8.7.1) with SMTP id RAA23400 for ; Fri, 12 Jan 1996 17:24:46 +0100 (MET) Received: from (server@localhost [127.0.0.1]) by valhalla.stormking.com (8.6.12/8.6.12) with SMTP id LAA17225; Fri, 12 Jan 1996 11:19:33 -0500 Date: Fri, 12 Jan 1996 11:19:33 -0500 Message-Id: <9601121629.AA18296@genio.eui.upm.es> Errors-To: tuc@stormking.com Reply-To: o0619@genio.eui.upm.es Originator: corewar-l@stormking.com Sender: corewar-l@stormking.com Precedence: bulk From: o0619@genio.eui.upm.es (Jose Santos Pulido Garcia) To: Multiple recipients of list Subject: Fire Master v1.5 X-Listprocessor-Version: 6.0b -- ListProcessor by Anastasios Kotsikonas X-Comment: Usenet News "rec.games.corewar" Status: R Greetings. David Boeren has published the carpet (Exodus) bomb so I'm going to publish the code of Fire Master. Fire Master v1.5 is a normal JMZ scan which drops "carpet" bombs with a mod5 pattern. The only interesting thing is the way it goes to core clear. This is the code after boot: add.ab #INC, 3 start jmz.f -1, @eye mov.i bomb2, @eye clptr eye mov.i bomb, *DES ;gate jmn.b start-1, -1 ;hit cl mov.i bomb3, }clptr djn.f -1, 1 bomb2 spl -1, #1 bomb3 dat 12, -1 When the last bomb is dropped the spl line is executed and creates two proc. B and C: mov.i bomb2, @eye clptr eye mov.i 1, >1 ;C spl -1, #1 ;A* cl mov.i bomb3, }clptr ;B djn.f -1, 1 ;C dat 12, -1 ;A cl mov.i bomb3, }clptr ;B* djn.f -1, 1 spl -1, #1 D. Boeren has said all important things about it in its standard form. I can only say if you need a zero you can use this variation: mov.i @0, >1 spl -1, #1 This other form for higher bomb rates: s spl -1, #m+1 . . . . . . . . . m mov.i @0, >s Another: mov.i 1, {1 spl -1, #xxx This creates a bigger carpet (at starvation every proccess fall through the mov) but don't stun very well (so what starvation?:-). With a jmp is a good vamp pit: mov.i 1, {1 spl -1, xxx jmp [-2|-1], xxx It creates a big spl carpet with widespread processes on it, so it's more difficult to kill all the processes. With jmp -1 creates more processes (I need a synonymous :-) with jmp -2 the spl carpet is bigger. To be sure at least one process is at mov line: mov.i 1, {2 spl -1, xxx jmp -2, xxx And this is the end (by now) Bye. Jose. *If I had been working on my warrior the whole time I had been working with my dictionary, my warrior would be on the top spot :-)* ;redcode-94 ;name Fire Master v1.5 ;author JS Pulido ;strategy JMZ Scan MOV/SPL bomb -> DJN/DAT coreclear ;strategy 1.5 boot bug fixed ;assert CORESIZE==8000 INC EQU (2365) ; 2365 m5 DES EQU ( 1) BOOTPTR EQU (1998) boot mov.i bomb3, {copy ;* mov.i bomb2, {copy mov.i bomb, {copy mov.i cl+2, {copy mov.i cl+1, {copy ;* mov.i cl, {copy mov.i cl-1, {copy mov.i eye, {copy mov.i eye-1, {copy ;* mov.i start, {copy mov.i start-1, {copy copy spl BOOTPTR mov.i 1, -1 ;* dat 1, 1 dat 1, 1 dat 1, 1 dat 1, 1 DAT 0,0 add.ab #INC, 3 start jmz.f -1, @eye mov.i bomb2-2, @eye clptr eye mov.i bomb-2, *DES ;gate DAT 0,0 jmn.b start, -1 ;hit cl mov.i bomb3-1, }clptr+1 djn.f -1, 1 bomb2 spl -1, #1 bomb3 dat 12, -1 DAT 1,1 DAT 0,0 DECOY FOR (MAXLENGTH-CURLINE)/5 A FOR 4 DAT #bomb3-(DECOY*A), #bomb3+(DECOY*A) ROF DAT 0,0 ROF END boot