From: Jilly Manner Subject: Let's fight against Inforelation.com - spamming service!!! Date: Thu, 1 Jul 2004 16:54:05 +0200 Message-ID:

Let�s fight against Inforelation.com-spamming service!!!

Hallo,

Here is Jilly.Let�s do something with this crazy Inforelation.com.

By the accident I have visited this web� and I�m terrified with what people wish to know and the money they offer!This service is designed for crazy scientists or maniacs�Like the one who uses nickname �OB�

And who pays in absolutelyextravagant and suspicious way in my opinion.

Jilly Manner

Jilly@hotmail.com

From: kaukasius@yahoo.de (el kauka) Subject: Re: MiniChallenge 6 results Date: 2 Jul 2004 08:46:12 -0700 Message-ID: hello all, i guess i have send my entries timely, but it seemed they haven't take part in the challenge. is there any reason why ??? i think its to late now to take part and maybe you haven't get them by mail...therefore i publish my brains here: el kauka ############################################################ ;redcode ;name seven_of_nine ;author EL KAUKA ;strategy: switch between 9 "aggressiv" single switchers ;structure of the seven of nine p-space: ; ;0 - the result of the last round (as usual) ;1 - the strategy of the last round (possible values: 0-2) ;2 - the combination of the last round (p.v.: 0-8) ;3 - the loss counter (p.v.: negativ infinite up to zero) ;4 - the absolute loss counter (p.v.: 0 up to the number of rounds) org combi b1 dat 0, #0;win b2 dat 0, #0;loss b3 dat 0, #0;tie resu dat 0, 0 combi ;load the loss counter ldp.a #3, store ;load the last result and change ;the loss counter if necessary head ldp #0, 0 sne head, #1 ;on win add.a #-1, store ;absolute loss counter seq head, #0;on loss jmp skip2 ldp.a #4, 2 add.a #1, 1 stp.ab #0, #4 add.a #1, store ;after 1500 defeats it should be clear ;that the enemy is something like 000 skip2 slt.ab skip2-1, #1500 add.a #1, mTIE sne head, #2 ;on tie mTIE add.a #0, store ;only sometimes tie is no solution ;-) store stp #0, #3 ;load the combination ldp.a #2, x ;(0-7) ;(0-8 with 0+0!) ;next combination if counter reaches 0 sne.ab store, #0 jmp into sne.ab store, #1 ;if loss in first round jmp into jmp skip into ;reset loss counter stp #0, #3 add.a #1, x mod.a #9, x ;(changed from 8 to 9 because of 0+0) ;store new combination stp.ab x, #2 skip add.a #1, x x jmp 0 jmp c0 jmp c1 jmp c2 jmp c3 jmp c4 jmp c5 jmp c6 jmp c7 jmp cSOL ;0+0 - switch on loss ;create the combination c0;+++ add #1,b1 add #1,b2 add #1,b3 jmp go c1;++- add #1,b1 add #1,b2 sub #-1,b3 jmp go c2;+-+ add #1,b1 add #-1,b2 sub #1,b3 jmp go c3;-++ add #-1,b1 add #1,b2 sub #1,b3 jmp go c4;--- add #-1,b1 add #-1,b2 sub #-1,b3 jmp go c5;--+ add #-1,b1 add #-1,b2 sub #1,b3 jmp go c6;-+- add #-1,b1 add #1,b2 sub #-1,b3 jmp go c7;+-- add #1,b1 add #-1,b2 sub #-1,b3 jmp go cSOL;0+0 add #1, b2 ;now it should be clear that i'm a beginner go ldp #0, resu ldp.a #1, goOn ;first strategy is zero ;and jmp 0 would make no sense add.a #1, goOn ;win? sne.b resu, #1 add.ba b1, *goOn ;execute the combination ;loss? sne.b resu, #0 add.ba b2, *goOn ;tie? sne.b resu, #2 add.ba b3, *goOn goOn jmp 0 jmp it jmp ct jmp gt ;the basic table - forget this sequence. ;it only depends on the combination... jmp gate it jmp imp ct jmp core gt jmp gate jmp imp ;after thinking so much, it should do something ;-) ; ;components ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ imp stp #0, #1 ;don't forget me !!! mov.i #4, 1 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ core stp #1, #1 ptr equ clear-3 clear mov bmb, }ptr mov bmb, }ptr jmp -2 bmb: dat 7, 0 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gate stp #2, #1 jmp #0, <-3 end ############################################################ ;redcode ;name p_trinity ;author el kauka ;strategy: asymmetrical adaptativ p-switcher ;strategy: ;strategy: instead of using "global" variables ;strategy: for win,loss and tie each stage gets ;strategy: its own. something like this ... ;strategy: ;strategy: ,--+1->-, ;strategy: ______/ win \______ ;strategy: |stage1| |stage2| ;strategy: ------\ /------ ;strategy: '-<-+2--' ;strategy: win ;strategy: ;strategy: ... would hopefully some kind of ;strategy: advantage. ;structure of the p_trinity p-space: ; ; 0 - last result (as usual) ; 1 - result two rounds before ; ; 2 - loss \ ; 3 - win > stage1 (imp) ; 4 - tie / ; ; 5 - loss \ ; 6 - win > stage2 (clear) ; 7 - tie / ; ; 8 - loss \ ; 9 - win > stage3 (gate) ;10 - tie / ; ;11 - last strategy ;12 - strategy two rounds befor ; org bo bo ldp #0, #0 ;load the last result. sne.b bo, #1 ;there is no use to change anything jmp gc ;if the last result was a win. sne.b bo, #-1 ;start the clear in firts round jmp cleS ;otherwise load the strategy two rounds befor ot ldp #12, 0 add.b ot, st mul #3, st add #2, st ;load the old value ldp.b st, #0 add.ba -1, st ;if last result was a tie: +2 sne.b bo, #2 add.a #2, st ;if last result was a loss: +1 sne.b bo, #0 add.a #1, st ;depending on the result two rounds ;before change the variables like ;p_key. rt ldp #1, #0 ;add 0 on tie sne.b rt, #1 ;the win variable add #1, st sne.b rt, #2 ;the tie variable add #2, st ldp.b #0, #0 add.ba -1, st mod.a #3, st ;stop overflow st stp #0, #0 ;store the new value gc ldp #11, #0 ;load last strategy add.ba gc, lj mul.a #3, lj add.a #2, lj sne.b bo, #-1 add.a #0, lj sne.b bo, #0 add.a #0, lj sne.b bo, #1 add.a #1, lj sne.b bo, #2 add.a #2, lj lj ldp #0, #0 add.ba gc, ju ;the last strategy add.ba lj, ju ;result-change-value ;mov last result > result two rounds befor ldp #0, #0 stp.b -1, #1 ;mov last strategy > strategy two rounds before ldp #11, #0 stp.b -1, #12 add.a #1, ju ;strategy and current variable value could be zero! mod.a #6, ju ju jmp 0, 0 jmp impS jmp cleS jmp gatS jmp impS jmp cleS ;components: ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ impS stp #0, #11 ;strategy Imp imp: mov.i #4,1 dat 0,0 dat 0,0 dat 0,0 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cleS stp #1, #11 ;strategy Core clear ptr equ clear-3 clear: mov bmb,}ptr ;<-- must start here mov bmb,}ptr jmp -2 bmb: dat 7,0 dat 0,0 dat 0,0 dat 0,0 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gatS stp #2, #11 ;strategy Imp-gate, (wimp) gate: jmp #0,<-3 end bo ############################################################ actually this "brain" shouldn#t take part, but it achived surprisingly good results ############################################################ ;redcode ;name ignorance_is_strength ;author EL KAUKA ;strategy: switch strategy after 2 rounds. it simply ignores everything else... ;structure of the ignorance is strength p-space: ; ;0 - the result of the last round (as usual) ;1 - the strategy of the last round (possible values: 0-2) ;2 - round counter (p.v.: 0 - 2) org start start ldp.a #1, skip ;load old strategy ldp.a #2, store ;load round counter add.a #1, store store stp #0, #2 slt.ab store, #2 jmp into jmp skip-1 into stp #0, #2;reset round counter add.a #1, skip mod.a #5, skip add.a #1, 1 skip jmp 0 jmp taktik1 ;imp jmp taktik2 ;clear jmp taktik3 ;gate jmp taktik4 ;clear -use the clear more often ;because its chance to win is a bit higher ;~~~~~~~*TAKTIK 1*~~~~~~~~ taktik1 stp #0, #1 ;strategy Imp imp: mov.i #4,1 dat 0,0 dat 0,0 dat 0,0 ;~~~~~~~*TAKTIK 2*~~~~~~~~ taktik2 stp #1, #1 ;strategy Core clear ptr2 equ clear2-3 clear2: mov bmb2,}ptr2 ;<-- must start here mov bmb2,}ptr2 jmp -2 bmb2: dat 7,0 dat 0,0 dat 0,0 dat 0,0 ;~~~~~~~*TAKTIK 3*~~~~~~~~ taktik3 stp #2, #1 ;strategy Imp-gate, (wimp) gate: jmp #0,<-3 dat 0,0 dat 0,0 dat 0,0 ;~~~~~~~*TAKTIK 4*~~~~~~~~ taktik4 stp #3, #1 ;strategy Core clear ptr equ clear-3 clear: mov bmb,}ptr ;<-- must start here mov bmb,}ptr jmp -2 bmb: dat 7,0 end From: dhillismail@netscape.net (Dave Hillis) Subject: Re: Nano Hill Update Date: 4 Jul 2004 10:05:59 -0700 Message-ID: <5d6847b2.0407040905.47ff7c8d@posting.google.com> oldest warrior on hill is KOTH once again Current hill status: # %W/ %L/ %T Name Author Score Age 1 51.0/ 43.0/ 6.0 on-speed brx 159.0 250 ... From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 07/05/04 Date: 5 Jul 2004 17:35:58 -0400 Message-ID: <200407050409.i654900j011247@gevjon.ttsg.com> Weekly Status on 07/05/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Jul 4 17:15:40 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 38/ 26/ 37 Borgir Christian Schmidt 149 2 2 46/ 48/ 6 Claw III Christian Schmidt 143 6 3 42/ 46/ 12 HazyLazy C 11 CS SG 139 179 4 30/ 20/ 50 paper(paper(paper(clear)) Sascha Zapf 139 71 5 41/ 44/ 15 Dandelion 3 Christian Schmidt 137 88 6 43/ 48/ 9 Arrow Christian Schmidt 137 170 7 28/ 19/ 52 Dental Hydrometers Ken Espiritu 137 17 8 30/ 24/ 46 Teenage Metal Isis v0.6b Pascal Hofstee 136 1 9 34/ 31/ 35 2b||!2b Sascha Zapf 136 26 10 25/ 14/ 60 Maelstrom Roy van Rijn 136 111 11 41/ 45/ 14 Saturn Christian Schmidt 136 10 12 31/ 27/ 42 Yorba Roy 134 101 13 29/ 24/ 47 slime test 1.00 David Houston 134 297 14 41/ 48/ 11 High Voltage Sascha Zapf 134 45 15 30/ 29/ 41 Gremlin van Rijn/Grabun 132 201 16 26/ 20/ 54 257-6747-xt430-7-eve63 bvowk 132 18 17 29/ 27/ 44 Son of Vain Oversby/Pihlaja 132 2535 18 31/ 32/ 37 elf Christian Schmidt 130 32 19 28/ 28/ 43 Triturus Roy van Rijn 128 55 20 38/ 49/ 13 O--* Bremer/Schmidt 127 96 21 25/ 53/ 22 probelobe Anonymous 96 0 From: =?ISO-8859-2?Q?=A3ukasz_Adamowski?= Subject: PointA Revisited ;] Date: 5 Jul 2004 17:35:55 -0400 Message-ID: <40e95f85cd2f7@wp.pl> I promised German I'll explain strategy of my PointA Rewritten on weekend. Unfortunately I didn't manage to do it, so I write now. What is the idea of PointA? It's easy. Assume we want to remember what components were used in previous rounds, let's say 3 rounds. So we have 3^3=27 possible combinations of components (or rather variations, I don't know if it's the right word in English). Each combination has counter which says if after choosing in order these three strategies PointA usually wins or not. The easiest way to store these counters is 3D table, i.e.: cnt[m1,m2,m3]. m1 is "strategy minus 1", that means in previous round, m2 is "strategy minus 2", that is two rounds ago, etc. OK, but how to store 3D table in 1-dimensional P-space? It's easy too. Pointer in 3D can be converted to 3D like this: ptr1D = 3^2 * m3 + 3^1 * m2 + 3^0 * m1 or better ptr1D = (m3 * 3 + m2) * 3 + m1 (Why better? Easier to implement in RedCode, less MULs, etc.) i.e.: cnt3D[1,2,1] = cnt1D[3 * (3 * 1 + 2) + 1] = cnt3D[16] Of course indexes m1, m2, m3 can be equal 0, 1 or 2. OK, and here is the first problem: if we assume that i.e. index 0 means paper, 1 means stone and 2 means scissors and all previous strategies were papers it makes: cnt3D[0,0,0] = cnt1D[0] This situation occurs also in the first round when all m1, m2 and m3 are zeros by default. But P-space cell 0 stores last round result, so we can't use it to store our counters! The most simple solution: offset. cnt3D[m1,m2,m3] = (m3 * 3 + m2) * 3 + m1 + offset = cnt1D [somewhere_in_P-space] We will update this table in each round. If PointA have won last round and it was after choosing strategies m1, m2 and m3 in previuos rounds (actually m1 is this last one) we increase counter. If PointA have lost, we decrease this counter. OK, that was the learning part. Now the choosing one. PointA must choose one of strategies to execute in present round. This will be the value of m1 in the next round. Of course other indexes also will change. m2 will be equal present m1 and m3 will be equal present m2. So in the next round PointA will know if it has to increase or decrease cnt[chosen_strategy,m1,m2]. Chosen strategy can be also equal 0, 1 or 2 so knowing cnt3D [0,m1,m2], cnt3D[1,m1,m2] and cnt3D[2,m1,m2] PointA has to decide which choice is the best. Of course the best chosen strategy is this one which has the highest value of counter, because it means that combination of strategies were better in previous rounds. Ok, that's it. Few more things: You may ask why PointA decrease counter? Isn't increasing enough to make table representative? And why the table is initialized with some value? Answers are: Decreasing is neccesary to make different choices when PointA is losing. If only increasing had been implemented and PointA lost some first rounds, it would choose always the same combination without any chance to get out of this endless circle. Initial value is neccesary because decreasing from 0 makes CORESIZE-1 in P-space. Such high value would make PointA stupid very quickly. Initial value about ROUNDS/2 should be enough to omit this danger (actually I think ROUNDS/3 would be enough also, even too much). Of course there is a danger that counter would change from CORESIZE-1 to 0 too, but in this case it will be soon decremented back. And one more trick: during thinking part PointA has to calculate indexes twice - once for learning and once for choosing. First is cnt3D[m1,m2,m3] and second cnt3D[any_value,m1,m2]. But there is no need to do all thins multipling and adding part twice. Here is how I do this: cnt3D[any_value,m1,m2] = = (m2 * 3 + m1) * 3 + offset = = (((m3 * 3 + m2) * 3 + m1) % 9) * 3 + offset = = (((m3 * 3 + m2) * 3 + m1 + offset - offset) % 9) * 3 + offset = = ((cnt3D[m1,m2,m3] - offset) % 9) * 3 + offset Writing all I have written above in Redcode is quite different story. I've invented PointA a long time ago and sent as entry to RF7. I was the last. :( The reason is that PointA is very suscesible to brainwashing. Actually after that I've found somewhere the same idea explained by someone else, so I was (at least) second inventor of such adaptative strategy. Anyway I was proud of my warrior, because it was shorter than the explained one. I thought it cannot be shorter and faster. I was wrong! :] PointA Rewritten is yet much faster. If all of I've written above is not quite clear (I believe it is possible ;) I can also explain the code of PointA: ;redcode ;name PointA Rewritten ;author Lukasz Adamowski ;assert 1 result EQU start ; strategies m3 EQU 332 m2 EQU 333 m1 EQU 334 ; offset off EQU 10 ; initial counter value FOR ROUNDS>CORESIZE val EQU CORESIZE/2 ROF FOR ROUNDS<=CORESIZE val EQU ROUNDS/2 ROF start ldp #0, result ; load previous round result seq #-1, result ; if it is the first round... jmp noinit cnt FOR 27 stp #val, #off+cnt-1 ; ...init table of counters ROF noinit ldp #m3, last ; load strategy from round minus 3 (m3) add last, ptr ; pointer = m3 mul #3, ptr ; pointer = m3 * 3 ldp #m2, last ; load m2 stp last, #m3 ; store as m3 in the next round add last, ptr ; pointer = m3 * 3 + m2 mul #3, ptr ; pointer = (m3 * 3 + m2) * 3 ldp #m1, last ; load m1 stp last, #m2 ; store as m2 in the next round add last, ptr ; pointer = (m3 * 3 + m2) * 3 + m1 ; mul #3, ptr ; this one was placed by a mistake :]]] add #off, ptr ; pointer = (m3 * 3 + m2) * 3 + m1 + offset ldp ptr, last ; load counter from table sne #1, result ; if last round was won... add #2, last ; ... then increase counter... sub #1, last ; ... else decrease stp last, ptr ; store counter sub #off, ptr ; pointer = (m3 * 3 + m2) * 3 + m1 mod #9, ptr ; pointer = ((m3 * 3 + m2) * 3 + m1) % 9 = m2 * 3 + m1 mul #3, ptr ; pointer = (m2 * 3 + m1) * 3 add #off, ptr ; pointer = (m2 * 3 + m1) * 3 + offset ldp ptr, s1 ; load three counters from P-space nop >ptr, 0 ldp ptr, s2 nop >ptr, 0 ldp ptr, s3 slt s1, s2 ; choose the highest counter jmp skip1, 0 slt s2, s3 mov.a #-1, choice add.a #2, choice jmp skip2, 0 skip1 slt s3, s1 mov.a #2, choice skip2 stp.ab choice, #m1 ; store m1 choice jmp @0, $gate ; execute chosen component dat $0, $imp dat $0, $clear ptr dat $0, $0 s1 dat $0, $0 s2 dat $0, $0 s3 dat $0, $0 last dat $0, $0 dat 0, 0 dat 0, 0 dat 0, 0 dat 0, 0 ;strategy Core clear pntr equ clear-3 clear: mov bmb,}pntr ;<-- must start here mov bmb,}pntr jmp -2 bmb: dat 7,0 dat 0, 0 dat 0, 0 dat 0, 0 dat 0, 0 dat 0, 0 dat 0, 0 ;strategy Imp-gate, (wimp) gate: jmp #0,<-3 ;strategy Imp imp: mov.i #4,1 end start That's all, folks! Greetings Lukasz Adamowski --== "War is a problem, never a solution"/"Wojna jest problemem, a nie rozwiazaniem" ==-- ---------------------------------------------------- Tanie rozmawianie w kraju i za granic�! Sprawd� i oszcz�dzaj! Niemcy 29 gr/min, USA 38 gr/min, Francja 38 gr/min. http://klik.wp.pl/?adr=http%3A%2F%2Ftelepin.wp.pl&sid=204 From: Koth Subject: KOTH.ORG: Status - Standard 07/05/04 Date: 5 Jul 2004 17:36:06 -0400 Message-ID: <200407050400.i654002O011153@gevjon.ttsg.com> Weekly Status on 07/05/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Fri Jul 2 18:15:14 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 42/ 25/ 33 The Next Step '88 David Houston 159 11 2 45/ 42/ 13 Cold as November Rain... John Metcalf 149 9 3 47/ 46/ 7 Scan Test C 6 Steve Gunnell 149 34 4 44/ 39/ 17 Tangle Trap 3 David Moore 149 24 5 37/ 24/ 39 A.I.P. Christian Schmidt 149 3 6 46/ 44/ 10 Speeed 88mph Christian Schmidt 148 1 7 43/ 40/ 17 My 1st try Christian Schmidt 147 27 8 36/ 26/ 38 Freight Train David Moore 147 196 9 36/ 26/ 39 Test Alexander (Sasha) Wa 146 135 10 35/ 27/ 38 Guardian Ian Oversby 144 195 11 42/ 41/ 17 Stasis David Moore 143 303 12 38/ 32/ 30 The Seed Roy van Rijn 143 13 13 36/ 32/ 31 vala John Metcalf 141 118 14 39/ 41/ 19 '88 test IV John Metcalf 138 89 15 39/ 40/ 21 PacMan David Moore 138 225 16 33/ 30/ 36 Pixie 88 Lukasz Grabun 136 25 17 26/ 17/ 57 unheard-of '88 Christian Schmidt 136 2 18 40/ 46/ 14 Blur '88 Anton Marsden 135 233 19 41/ 47/ 12 Foggy Swamp Beppe Bezzi 135 192 20 29/ 25/ 46 Test I Ian Oversby 133 252 21 6/ 92/ 2 Tex v2 Japcuh 20 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 07/05/04 Date: 5 Jul 2004 17:36:03 -0400 Message-ID: <200407050403.i65430bD011182@gevjon.ttsg.com> Weekly Status on 07/05/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun Jul 4 10:25:52 EDT 2004 # Name Author Score Age 1 Dodge Viper Christian Schmidt 13 29 2 Leap test Christian Schmidt 10 31 3 The Survivor Philip Kendall 9 75 4 how impish do you like? John Metcalf 7 10 5 Her Majesty P.Kline 6 464 6 not king of the hill FatalC 5 190 7 fine powder John Metcalf 4 2 8 Zorca Christian Schmidt 3 22 9 foundling John Metcalf 2 11 10 on your marks Simon Wainwright 1 1 11 scissor lord Simon Wainwright 0 3 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 07/05/04 Date: 5 Jul 2004 17:36:01 -0400 Message-ID: <200407050406.i65460Ta011216@gevjon.ttsg.com> Weekly Status on 07/05/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Sun Jul 4 16:48:02 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 44/ 36/ 20 Fatamorgana X Zul Nadzri 153 1 2 42/ 36/ 22 The X Machine Zul Nadzri 148 25 3 41/ 38/ 21 Eliminator X Zul Nadzri 143 26 4 41/ 45/ 13 Fire and Ice II David Moore 137 114 5 35/ 34/ 31 Trefoil F 13 Steve Gunnell 136 97 6 27/ 18/ 56 xd100 test David Houston 135 11 7 20/ 8/ 72 Evol Cap 4 X John Wilkinson 133 283 8 27/ 21/ 52 Glenstorm John Metcalf 133 76 9 20/ 7/ 73 Evolve X v4.0 John Wilkinson 132 231 10 24/ 16/ 60 Kin John Metcalf 131 122 11 36/ 41/ 24 Black Moods Ian Oversby 131 210 12 27/ 24/ 49 Olivia X Ben Ford 130 95 13 37/ 43/ 20 Giant Hazy Test 13 Steve Gunnell 130 41 14 20/ 11/ 69 Denial David Moore 130 155 15 27/ 24/ 49 Venom v0.2b Christian Schmidt 130 236 16 28/ 26/ 46 KAT v5 Dave Hillis 130 146 17 35/ 41/ 24 Simply Intelligent Zul Nadzri 129 7 18 35/ 41/ 25 Ogre Christian Schmidt 129 162 19 21/ 14/ 65 Blotter X J. Pohjalainen 128 16 20 33/ 39/ 29 Controlled Aggression Ian Oversby 126 214 21 16/ 62/ 21 19-8511-werewulf-X-eve93 bvowk 70 0 From: neogryzormail@mixmail.com (Neogryzor) Subject: Re: MiniChallenge 6 results Date: 6 Jul 2004 02:44:55 -0700 Message-ID: <242debe4.0407060144.19a6e6f0@posting.google.com> kaukasius@yahoo.de (el kauka) wrote in message news:... > hello all, > > i guess i have send my entries timely, but it seemed they haven't take > part in the challenge. is there any reason why ??? > > i think its to late now to take part and maybe you haven't get them by > mail...therefore i publish my brains here: Mmmmh, i don't know what was wrong but i didn't recive your entries, sorry about that. The only thing i can do is to run your entries and post the results. Regards G.Labarga From: metcalf@uboot.com (John Metcalf) Subject: Michael Constant's Optima Program Date: 7 Jul 2004 09:57:37 -0700 Message-ID: Hi I've tried to contact Michael Constant with no success. Does anyone have a copy of his Optima program they could make available. Thanks, John From: neogryzormail@mixmail.com (Neogryzor) Subject: Re: MiniChallenge 6 results Date: 8 Jul 2004 04:53:23 -0700 Message-ID: <242debe4.0407080353.4694504a@posting.google.com> ; ****************************** * MiniChallenge 6. third run * ****************************** The detailed battle results and sources will be available in a few days at: http://www.estadium.ya.com/neogryzor/corewars.htm After testing Elkauka's entries, these are the results of the third run. *********** * Results * *********** In this third run, 13 warriors written by 8 authors take part the round. (_v_) _|_ | | |-----+-----| ___________ .-=========-. | {{1}} | '._==_==_=_.' \'-=======-'/ | \=/ | .-\: /-. _| .=. |_ '---------' | (|:.{3} |) | ((| {{2}} |)) \ / '-|:. |-' \| /|\ |/ '. .' \::. / \__ '`' __/ | | '::. .' _`) (`_ .' '. ) ( _/_______\_ _|___|_ _.' '._ /___________\ [_______] [_______] 2nd place Winner 3rd place ************ ******************** ****************** * Elkauka * * Lukasz Adamowski * * Germ�n Labarga * ************ ******************** ****************** And Lukasz Adamowski wins again the round with a gap of 0.74 pts to Elkauka! ---------------------------------------------------------------------- # warrior's name author's name score [pts] score [%] ---------------------------------------------------------------------- 1 PointA Rewritten Lukasz Adamowski 103290 100.00 2 seven_of_nine Elkauka 102529 99.26 3 Mem^3 Germ�n Labarga 101320 98.09 4 p_trinity Elkauka 94816 91.79 5 A little smarter John Morahan 84986 82.28 6 Not so smart John Morahan 84408 81.72 7 Dumb25 Zul Nadzri 83553 80.89 8 Random switcher David Houston 83267 80.61 9 3p-TAB3-A Christian Schmidt 79770 77.23 10 Nax Zul Nadzri 78624 76.12 11 Universal Switch-Board Lukasz Adamowski 70894 68.63 12 pIdee Christian Schmidt 70614 68.36 13 Mutable German Labarga 55810 54.03 ---------------------------------------------------------------------- Congratulations to Lukasz Adamowski again and also to Elkauka, his entries scored excellent without handshake, great! Thanks to all authors for your participation. ------------------------------------------------------------------- From: kaukasius@yahoo.de (el kauka) Subject: Re: MiniChallenge 6 results Date: 10 Jul 2004 07:21:27 -0700 Message-ID: i was wanted to give a explanation of the p-brains. now you can read my attemp to fulfil this wish ;-) let's start with p_trinity. cause i like it more and it actually took me more time to develop. p_trinity is a adaptive switcher. therefore you might have a look at the corewar lexicon or at neogryzors website where he offered a good text about the development of p-key. p_trinity works the most time in the same way p_key did. i only change one thing accordnig to p_key. p_key uses (what i called) "global" variables. that meens every single stage uses the same variable ( for example for win ). i think this is the only little weakness of p_key. because there are cases in which it is an advantage to switch after a win from stage 1 to stage 2 (+1), but this could get quit mad after stage2 switches to stage 3 after a win. if the brain looses this time the win-variable is changed. but actually it worked good at stage1. it tooks now some cycles until the win-varible is +1 to work well at stage 1. therefore i decided to keep the variables "private". each stage now got his own three varaibles for win, loss and tie. (you can guess that there are now much more varaibles to store into p space). the adapation of the varables is still the same like in p_key: result two rounds before last result action ------------------------ ----------- ------ tie tie t=t+2 (same as -1) loss tie l=l+2 win tie w=w+2 tie loss t=t+1 loss loss l=l+1 win loss w=w+1 xxx win no changes, all right expect the fact that we must have a closer look at the stage which was used two rounds before. because his private variables must be adapated. for example: result 2 rounds before | last result | stage 2 rounds before | action ---------------------- | ----------- | ---------------------|------- tie | tie | 1 | t1 = t1 + 2 . ... . win loss 3 w3 = w3 + 1 ... i guess that all i can say about p_trinity. as i already mentioned it worked mostly like p_key.therefore there is no use to explain it more detailed, cause p_key is already explained very good elsewhere. ----------------------------------------------------------------- seven-of-nine was actally just a kind of test-brain, but later it turned out to be the best i have written. i dont like it very much, cause its very big and can be written shorter. and even the strategy is not that "smart" but lets go back to the way it worked: i always used this switch-on-loss p-switcher in the past: ;strategy: a simple switch-on-loss p-switcher ldp #0, -1 ldp.a #2, 5 sne -3, -4 add.a #1, 3 add.a #1, 2 mod.a #5, 1 jmp 0, 0 jmp taktik1 jmp taktik2 jmp taktik3 but as neogryzor already mentioned in his hints: "* I wouldn't create a single switch-on-loss or on-loss-or-tie. They are too predictible." therefore i tried to created a more common switcher where one can change the the behavior on loss, win or tie more easily: org load b1 dat 0, #-1;win b2 dat 0, #-1;loss b3 dat 0, #1;tie resu dat 0, 0 load ldp #0, resu ldp.a #1, goOn add.a #1, goOn ;win? sne.b resu, #1 add.ba b1, *goOn ;loss? sne.b resu, #0 add.ba b2, *goOn ;tie? sne.b resu, #2 add.ba b3, *goOn goOn jmp 0 jmp it jmp ct jmp gt ;imp table jmp gate it jmp imp jmp core ;coreclear table jmp imp ct jmp core jmp gate ;gate table jmp core gt jmp gate jmp imp here you can easily change the behavior of the stages. just type in the value which should be used for the switch at a win at b1, for loss at b2 and for tie at b3. the variables are global, but that doesnt matter here. i played around a bit with that switcher and learned the following: -you can created any single switcher (3^3=27) including switch on loss (b1=0, b2=1 or b2=-1, b3=0) -some single switchers are better against others under this conditions i searched for equalities among them, an i discovered that these switchers dont included the 0 in there variables. that would make 2^3 = 8 combinations. because they dont "stay" at a stage i called them the "aggressiv" single switchers. i tested the remaining 8 combination against other switchers i have written and against others from the corewar lexicon. they did quit well, but non of them was able to beat them all. (actually i expected that result) but not all of them failed against the same enemy. if i could comprise them they would build a quit good brain. now i couldnt really decide which combination i should use, or in which order i should use them. i deside that the p-brain should decide that itself. i created a little loss counter and added 1 after a loss und subtract 1 after a win. the tie is ignored. after the counter reaches 0 or 1(if the combination looses in the first round) the next combination is choosen. later i fixed a little weakness. it turned out that the switch-on-loss is better than i believed. therefore i added it to the combinations. and i invented the absolute loss counter. that counter counts all losses. if this counter reaches 1500, the tie is forced by +1 to the normal loss counter. but that actually got nothing to do with the general strategy. lets have a closer look at the source code again: ;redcode ;name seven_of_nine ;author EL KAUKA ;strategy: switch between 9 "aggressiv" single switchers ;structure of the seven of nine p-space: ; ;0 - the result of the last round (as usual) ;1 - the strategy of the last round (possible values: 0-2) ;2 - the combination of the last round (p.v.: 0-8) ;3 - the loss counter (p.v.: negativ infinite up to zero) ;4 - the absolute loss counter (p.v.: 0 up to the number of rounds) org combi ;now we dont change the behavior by hand. the combination is stored here b1 dat 0, #0;win b2 dat 0, #0;loss b3 dat 0, #0;tie resu dat 0, 0 combi ;load the loss counter ldp.a #3, store ;load the last result and change ;the loss counter if necessary head ldp #0, 0 sne head, #1 ;on win add.a #-1, store ;absolute loss counter seq head, #0;on loss jmp skip2 ldp.a #4, 2 add.a #1, 1 stp.ab #0, #4 add.a #1, store ;after 1500 defeats it should be clear ;that the enemy is something like 000 ; 000 is a "brain" that always uses the same strategy ;i discovered that this one can be beaten, if tie is forced ;to the relativ loss counter - cause it can take a lot of rounds ;until the switch-on-loss uses the right strategy skip2 slt.ab skip2-1, #1500 add.a #1, mTIE sne head, #2 ;on tie mTIE add.a #0, store ;only sometimes tie is no solution ;-) store stp #0, #3 ;load the combination ldp.a #2, x ;(0-7) ;(0-8 with 0+0!) ;next combination if counter reaches 0 sne.ab store, #0 jmp into sne.ab store, #1 ;if loss in first round jmp into jmp skip into ;reset loss counter - if a new combination is choosen stp #0, #3 add.a #1, x mod.a #9, x ;(changed from 8 to 9 because of 0+0) ;store new combination stp.ab x, #2 ; if forgot this to mention: the brain should remember the last combination of cause. skip add.a #1, x x jmp 0 ;this is a jump table to the combinations jmp c0 jmp c1 jmp c2 jmp c3 jmp c4 jmp c5 jmp c6 jmp c7 jmp cSOL ;0+0 - switch on loss ;create the combination ;thats want i mentions on top. the brain change the behavior itselfs c0;+++ add #1,b1 add #1,b2 add #1,b3 jmp go c1;++- add #1,b1 add #1,b2 sub #-1,b3 jmp go c2;+-+ add #1,b1 add #-1,b2 sub #1,b3 jmp go c3;-++ add #-1,b1 add #1,b2 sub #1,b3 jmp go c4;--- add #-1,b1 add #-1,b2 sub #-1,b3 jmp go c5;--+ add #-1,b1 add #-1,b2 sub #1,b3 jmp go c6;-+- add #-1,b1 add #1,b2 sub #-1,b3 jmp go c7;+-- add #1,b1 add #-1,b2 sub #-1,b3 jmp go cSOL;0+0 add #1, b2 go ldp #0, resu ldp.a #1, goOn ;first strategy is zero ;and jmp 0 would make no sense add.a #1, goOn ;win? sne.b resu, #1 add.ba b1, *goOn ;execute the combination ;loss? sne.b resu, #0 add.ba b2, *goOn ;tie? sne.b resu, #2 add.ba b3, *goOn goOn jmp 0 jmp it jmp ct jmp gt ;the basic table - forget this sequence. ;it only depends on the combination... ;i comprised the imp/clear/gate tables to one single table ;cause the brain already reaches the 94 instruction length jmp gate it jmp imp ct jmp core gt jmp gate jmp imp ;after thinking so much, it should do something ;-) ; ;components ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ imp stp #0, #1 ;don't forget me !!! mov.i #4, 1 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ core stp #1, #1 ptr equ clear-3 clear mov bmb, }ptr mov bmb, }ptr jmp -2 bmb: dat 7, 0 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gate stp #2, #1 jmp #0, <-3 end i hope everything is clear now, but if you got any further questions feel free to ask me at r.g.c or per mail: kaukasius@yahoo.de greets johannes kersten (alias el kauka) From: Sascha Zapf Subject: optiMAX 0.63 - first Beta-release Date: Sun, 11 Jul 2004 22:13:17 +0200 Message-ID: Hi, Christian and me are proud to present optiMAX. The first multistage optimizer in Corewars' history. Some of you have heard of it, some have tested it already. I have fixed some Bugs and so it should run on most of the Unices and Windows using Activestate Perl. If you have another OS, please contact me if optiAMX won't run on your system. Fizzer and me want to publish some small Guide for using optiMAX, so wait and look on r.g.cw or just come into the chat on sunday evening an feel free to ask any question you wan't First you should look at the Warrior example.red. He introduce the basic functions for optimizing. Look at the readme's in the zip's for further info. In the FAQ are most of the operator and command are described. optiMAX comes with Benchmark Hill for 94nop and SAL's tiny Hill, but more will follow soon. Until V1.0 big changes in every new Version are possible. Even changes in the directory-structure, so please install everytime the hole zip, and move your Warriors into the new version dir. After 1.0, i will think about a more professionell update.function. Here should be anything you need, some links are still not active, but we are doing our best to fill that site as fast as possible. http://www.corewar.info/optimax/ Under Downloads you can find the two archive. Fsh for 94nop and Tiny are included. For the other fsh's you must wait. I have finished the maintenance-tool for the hill's this weekend, so Fizmo ( Hill Engineer ) must have some time to recreate the hill's ========================================= micro-guide ========================================= To start the optimizer under Windows use: perl opti06_3.pl -o warrior.red Under Unix ( with correct first line ( SHEBANG )) opti06_3.pl -o warrior.red Under Windows you can use wperl remote.pl to start a remote control for optiMAX. Here you can modify target's on the fly, skip randrys in stage 4 and stop the active run. Under Unix do that with 'remote.pl&' So, have fun Sascha -- Parlez vous Redcode? From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 07/12/04 Date: 12 Jul 2004 15:31:58 -0400 Message-ID: <200407120409.i6C490wl016178@gevjon.ttsg.com> Weekly Status on 07/12/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Fri Jul 9 05:29:56 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 36/ 27/ 37 Borgir Christian Schmidt 146 17 2 33/ 24/ 43 Gargantuan Roy van Rijn 141 3 3 35/ 32/ 33 2b||!2b Sascha Zapf 138 41 4 42/ 49/ 10 Arrow Christian Schmidt 135 185 5 43/ 52/ 5 Claw III Christian Schmidt 135 21 6 31/ 27/ 42 Yorba Roy 135 116 7 25/ 16/ 59 Maelstrom Roy van Rijn 135 126 8 27/ 20/ 53 Black Knight Christian Schmidt 135 7 9 28/ 22/ 50 paper(paper(paper(clear)) Sascha Zapf 135 86 10 27/ 21/ 52 Dental Hydrometers Ken Espiritu 134 32 11 31/ 28/ 41 elf Christian Schmidt 134 47 12 30/ 26/ 45 Gremlin van Rijn/Grabun 133 216 13 30/ 27/ 43 Son of Vain Oversby/Pihlaja 133 2550 14 30/ 27/ 44 Savage Flowing Battleworn Pascal Hofstee 133 1 15 29/ 25/ 46 slime test 1.00 David Houston 132 312 16 38/ 45/ 16 Dandelion 3 Christian Schmidt 132 103 17 41/ 52/ 7 Evil Willow John Metcalf 130 10 18 39/ 48/ 13 HazyLazy C 11 CS SG 129 194 19 37/ 46/ 17 Deathstar Roy van Rijn 127 4 20 37/ 47/ 16 Saturn Christian Schmidt 126 25 21 25/ 34/ 41 The flu G.Labarga 116 0 From: Koth Subject: KOTH.ORG: Status - Standard 07/12/04 Date: 12 Jul 2004 15:32:14 -0400 Message-ID: <200407120400.i6C400gb016023@gevjon.ttsg.com> Weekly Status on 07/12/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Fri Jul 2 18:15:14 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 42/ 25/ 33 The Next Step '88 David Houston 159 11 2 45/ 42/ 13 Cold as November Rain... John Metcalf 149 9 3 47/ 46/ 7 Scan Test C 6 Steve Gunnell 149 34 4 44/ 39/ 17 Tangle Trap 3 David Moore 149 24 5 37/ 24/ 39 A.I.P. Christian Schmidt 149 3 6 46/ 44/ 10 Speeed 88mph Christian Schmidt 148 1 7 43/ 40/ 17 My 1st try Christian Schmidt 147 27 8 36/ 26/ 38 Freight Train David Moore 147 196 9 36/ 26/ 39 Test Alexander (Sasha) Wa 146 135 10 35/ 27/ 38 Guardian Ian Oversby 144 195 11 42/ 41/ 17 Stasis David Moore 143 303 12 38/ 32/ 30 The Seed Roy van Rijn 143 13 13 36/ 32/ 31 vala John Metcalf 141 118 14 39/ 41/ 19 '88 test IV John Metcalf 138 89 15 39/ 40/ 21 PacMan David Moore 138 225 16 33/ 30/ 36 Pixie 88 Lukasz Grabun 136 25 17 26/ 17/ 57 unheard-of '88 Christian Schmidt 136 2 18 40/ 46/ 14 Blur '88 Anton Marsden 135 233 19 41/ 47/ 12 Foggy Swamp Beppe Bezzi 135 192 20 29/ 25/ 46 Test I Ian Oversby 133 252 21 6/ 92/ 2 Tex v2 Japcuh 20 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 07/12/04 Date: 12 Jul 2004 15:32:09 -0400 Message-ID: <200407120403.i6C430Uu016060@gevjon.ttsg.com> Weekly Status on 07/12/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun Jul 4 10:25:52 EDT 2004 # Name Author Score Age 1 Dodge Viper Christian Schmidt 13 29 2 Leap test Christian Schmidt 10 31 3 The Survivor Philip Kendall 9 75 4 how impish do you like? John Metcalf 7 10 5 Her Majesty P.Kline 6 464 6 not king of the hill FatalC 5 190 7 fine powder John Metcalf 4 2 8 Zorca Christian Schmidt 3 22 9 foundling John Metcalf 2 11 10 on your marks Simon Wainwright 1 1 11 scissor lord Simon Wainwright 0 3 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 07/12/04 Date: 12 Jul 2004 15:32:05 -0400 Message-ID: <200407120406.i6C460lA016120@gevjon.ttsg.com> Weekly Status on 07/12/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Sat Jul 10 12:06:21 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 41/ 37/ 22 The X Machine Zul Nadzri 146 25 2 42/ 38/ 20 Fatamorgana X Zul Nadzri 145 1 3 40/ 39/ 21 Eliminator X Zul Nadzri 140 26 4 42/ 45/ 13 Fire and Ice II David Moore 138 114 5 38/ 38/ 24 Black Moods Ian Oversby 138 210 6 35/ 34/ 31 Trefoil F 13 Steve Gunnell 135 97 7 26/ 18/ 56 xd100 test David Houston 135 11 8 28/ 24/ 48 Venom v0.2b Christian Schmidt 132 236 9 27/ 21/ 53 Glenstorm John Metcalf 132 76 10 36/ 40/ 24 Simply Intelligent Zul Nadzri 132 7 11 20/ 8/ 72 Evol Cap 4 X John Wilkinson 132 283 12 28/ 24/ 48 Olivia X Ben Ford 132 95 13 37/ 43/ 20 Giant Hazy Test 13 Steve Gunnell 130 41 14 35/ 41/ 25 Ogre Christian Schmidt 129 162 15 20/ 11/ 70 Denial David Moore 129 155 16 27/ 26/ 47 KAT v5 Dave Hillis 129 146 17 18/ 7/ 76 Evolve X v4.0 John Wilkinson 128 231 18 33/ 38/ 29 Controlled Aggression Ian Oversby 128 214 19 22/ 16/ 62 Kin John Metcalf 128 122 20 20/ 14/ 66 Blotter X J. Pohjalainen 127 16 21 17/ 59/ 25 1462-5954-cs-sdk-X-eve93 bvowk 74 0 Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 13 Jul 2004 04:17:21 GMT Archive-name: games/corewar-faq Last-Modified: September 4, 1999 Version: 4.2 URL: http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html Copyright: (c) 1999 Anton Marsden Maintainer: Anton Marsden Posting-Frequency: once every 2 weeks Core War Frequently Asked Questions (rec.games.corewar FAQ) These are the Frequently Asked Questions (and answers) from the Usenet newsgroup rec.games.corewar. A plain text version of this document is posted every two weeks. The latest hypertext version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html and the latest plain text version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.txt. This document is currently being maintained by Anton Marsden (anton@paradise.net.nz). Last modified: Sat Sep 4 00:22:22 NZST 1999 ------------------------------------------------------------------------ To Do * Add the new No-PSpace '94 hill location * Add online location of Dewdney's articles * Make question 17 easier to understand. Add a state diagram? * Add info about infinite hills, related games (C-Robots, Tierra?, ...) * New question: How do I know if my warrior is any good? Refer to beginners' benchmarks, etc. * Add a Who's Who list? * Would very much like someone to compile a collection of the "revolutionary" warriors so that beginners can see how the game has developed over the years. Mail me if interested. ------------------------------------------------------------------------ What's New * Changed primary location of FAQ (again!) * Changed Philip Kendall's home page address. * Updated list server information * Changed primary location of FAQ * Vector-launching code was fixed thanks to Ting Hsu. * Changed the location of Ryan Coleman's paper (LaunchPad -> Launchpad) * Changed pauillac.inria.fr to para.inria.fr ------------------------------------------------------------------------ Table of Contents 1. What is Core War 2. Is it "Core War" or "Core Wars"? 3. Where can I find more information about Core War? 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 6. What is the ICWS? 7. What is Core Warrior? 8. Where are the Core War archives? 9. Where can I find a Core War system for ...? 10. Where can I find warrior code? 11. I do not have FTP. How do I get all this great stuff? 12. I do not have access to Usenet. How do I post and receive news? 13. Are there any Core War related WWW sites? 14. What is KotH? How do I enter? 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 16. How does SLT (Skip if Less Than) work? 17. What is the difference between in-register and in-memory evaluation? 18. What is P-space? 19. What does "Missing ;assert .." in my message from KotH mean? 20. How should I format my code? 21. Are there any other Core War related resources I should know about? 22. What does (expression or term of your choice) mean? 23. Other questions? ------------------------------------------------------------------------ 1. What is Core War? Core War is a game played by two or more programs (and vicariously by their authors) written in an assembly language called Redcode and run in a virtual computer called MARS (for Memory Array Redcode Simulator). The object of the game is to cause all processes of the opposing program to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardised by the ICWS, and is therefore transportable between all standard Core War systems. The system in which the programs run is quite simple. The core (the memory of the simulated computer) is a continuous array of instructions, empty except for the competing programs. The core wraps around, so that after the last instruction comes the first one again. There are no absolute addresses in Core War. That is, the address 0 doesn't mean the first instruction in the memory, but the instruction that contains the address 0. The next instruction is 1, and the previous one obviously -1. However, all numbers are treated as positive, and are in the range 0 to CORESIZE-1 where CORESIZE is the amount of memory locations in the core - this means that -1 would be treated as CORESIZE-1 in any arithmetic operations, eg. 3218 + 7856 = (3218 + 7856) mod CORESIZE. Many people get confused by this, and it is particularly important when using the SLT instruction. Note that the source code of a program can still contain negative numbers, but if you start using instructions like DIV #-2, #5 it is important to know what effect they will have when executed. The basic unit of memory in Core War is one instruction. Each Redcode instruction contains three parts: * the opcode * the source address (a.k.a. the A-field) * the destination address (a.k.a. the B-field) The execution of the programs is equally simple. The MARS executes one instruction at a time, and then proceeds to the next one in the memory, unless the instruction explicitly tells it to jump to another address. If there is more than one program running, (as is usual) the programs execute alternately, one instruction at a time. The execution of each instruction takes the same time, one cycle, whether it is MOV, DIV or even DAT (which kills the process). Each program may have several processes running. These processes are stored in a task queue. When it is the program's turn to execute an instruction it dequeues a process and executes the corresponding instruction. Processes that are not killed during the execution of the instruction are put back into the task queue. Processes created by a SPL instruction are added to the task queue after the creating process is put back into the task queue. [ToC] ------------------------------------------------------------------------ 2. Is it "Core War" or "Core Wars"? Both terms are used. Early references were to Core War. Later references seem to use Core Wars. I prefer "Core War" to refer to the game in general, "core wars" to refer to more than one specific battle. [ToC] ------------------------------------------------------------------------ 3. Where can I find more information about Core War? Core War was first described in the Core War Guidelines of March, 1984 by D. G. Jones and A. K. Dewdney of the Department of Computer Science at The University of Western Ontario (Canada). Dewdney wrote several "Computer Recreations" articles in Scientific American which discussed Core War, starting with the May 1984 article. Those articles are contained in two anthologies: Library of Author Title Published ISBN Congress Call Number The Armchair Dewdney, Universe: An New York: W. QA76.6 .D517 A. K. Exploration of H. Freeman �0-7167-1939-8 1988 Computer Worlds 1988 The Magic 0-7167-2125-2 Dewdney, Machine: A New York: W.(Hardcover), QA76.6 A. K. Handbook of H. Freeman �0-7167-2144-9 .D5173 1990 Computer Sorcery 1990 (Paperback) A.K. Dewdney's articles are still the most readable introduction to Core War, even though the Redcode dialect described in there is no longer current. For those who are interested, Dewdney has a home page at http://www.csd.uwo.ca/faculty/akd/. [ToC] ------------------------------------------------------------------------ 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A draft of the official standard (ICWS'88) is available as ftp://www.koth.org/corewar/documents/standards/redcode-icws-88.Z. This document is formatted awkwardly and contains ambiguous statements. For a more approachable intro to Redcode, take a look at Mark Durham's tutorials, ftp://www.koth.org/corewar/documents/tutorial.1.Z and ftp://www.koth.org/corewar/documents/tutorial.2.Z. Steven Morrell has prepared a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. This and various other tutorials can be found at http://www.koth.org/papers.html. Even though ICWS'88 is still the "official" standard, you will find that most people are playing by ICWS'94 draft rules and extensions. [ToC] ------------------------------------------------------------------------ 5. What is ICWS'94? Which simulators support ICWS'94? There is an ongoing discussion about future enhancements to the Redcode language. A proposed new standard, dubbed ICWS'94, is currently being evaluated. A major change is the addition of "instruction modifiers" that allow instructions to modify A-field, B-field or both. Also new is a new addressing modes and unrestricted opcode and addressing mode combination ("no illegal instructions"). ICWS'94 is backwards compatible; i.e. ICWS'88 warriors will run correctly on an ICWS'94 system. Take a look at the ICWS'94 draft at ftp://www.koth.org/corewar/documents/icws94.0202.Z for more information. There is a HTML version of this document available at http://www.koth.org/info/icws94.html. You can try out the new standard by submitting warriors to the '94 hills of the KotH servers. Two corewar systems currently support ICWS'94, pMARS (many platforms) and Redcoder (Mac), both available at ftp://www.koth.org/corewar. Note that Redcoder only supports a subset of ICWS'94. [ToC] ------------------------------------------------------------------------ 6. What is the ICWS? About one year after Core War first appeared in Scientific American, the "International Core War Society" (ICWS) was established. Since that time, the ICWS has been responsible for the creation and maintenance of Core War standards and the running of Core War tournaments. There have been six annual tournaments and two standards (ICWS'86 and ICWS'88). The ICWS is no longer active. [ToC] ------------------------------------------------------------------------ 7. What is Core Warrior? Following in the tradition of the Core War News Letter, Push Off, and The 94 Warrior, Core Warrior is a newsletter about strategies and current standings in Core War. Started in October 1995, back issues of Core Warrior (and the other newsletters) are available at http://para.inria.fr/~doligez/corewar/. There is also a Core Warrior index page at http://www.kendalls.demon.co.uk/pak21/corewar/warrior.html which has a summary of the contents of each issue of Core Warrior. Many of the earlier issues contain useful information for beginners. [ToC] ------------------------------------------------------------------------ 8. Where are the Core War archives? Many documents such as the guidelines and the ICWS standards along with previous tournament Redcode entries and complete Core War systems are available via anonymous ftp from ftp://ftp.csua.berkeley.edu/pub/corewar. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@csua.berkeley.edu) is the archive administrator. When uploading to /pub/corewar/incoming, ask Jon to move your upload to the appropriate directory and announce it on the net. This site is mirrored at: * http://www.koth.org/corewar/ * ftp://www.koth.org/corewar/ * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror The plain text version of this FAQ is automatically archived by news.answers (but this version is probably out-of-date). [ToC] ------------------------------------------------------------------------ 9. Where can I find a Core War system for . . . ? Core War systems are available via anonymous FTP from www.koth.org in the corewar/systems directory. Currently, there are UNIX, IBM PC-compatible, Macintosh, and Amiga Core War systems available there. It is a good idea to check ftp://www.koth.org/corewar/incoming for program updates first. CAUTION! There are many, many Core War systems available which are NOT ICWS'88 (or even ICWS'86) compatible available at various archive sites other than www.koth.org. Generally, the older the program - the less likely it will be ICWS compatible. If you are looking for an ICWS'94 simulator, get pMARS, which is available for many platforms and can be downloaded from: * ftp://ftp.csua.berkeley.edu/pub/corewar (original site) * ftp://www.koth.org/corewar (koth.org mirror) * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror (Planar mirror) * http://www.nc5.infi.net/~wtnewton/corewar/ (Terry Newton) * ftp://members.aol.com/ofechner/corewar (Fechter) Notes: * If you have trouble running pMARS with a graphical display under Win95 then check out http://www.koth.org/pmars.html which should have a pointer to the latest compilation of pMARS for this environment. * RPMs for the Alpha, PowerPC, Sparc and i386 can be found at ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars-rpm/ Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. Below is a not necessarily complete or up-to-date list of what's available at www.koth.org: MADgic41.lzh corewar for the Amiga, v4.1 MAD4041.lzh older version? MAD50B.lha corewar for the Amiga, beta version 5.0 Redcoder-21.hqx corewar for the Mac, supports ICWS'88 and '94 (without extensions) core-11.hqx corewar for the Mac core-wars-simulator.hqx same as core-11.hqx? corewar_unix_x11.tar.Z corewar for UNIX/X-windows, ICWS'86 but not ICWS'88 compatible koth31.tar.Z corewar for UNIX/X-windows. This program ran the former KotH server at intel.com koth.shar.Z older version kothpc.zip port of older version of KotH to the PC deluxe20c.tar.Z corewar for UNIX (broken X-windows or curses) and PC mars.tar.Z corewar for UNIX, likely not ICWS'88 compatible icons.zip corewar icons for MS-Windows macrored.zip a redcode macro-preprocessor (PC) c88v49.zip PC corewar, textmode display mars88.zip PC corewar, graphics mode display corwp302.zip PC corewar, textmode display, slowish mercury2.zip PC corewar written in assembly, fast! mtourn11.zip tournament scheduler for mercury (req. 4DOS) pmars08s.zip portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars08s.tar.Z same as above pmars08.zip PC executables with graphics display, req 386+ macpmars02.sit.hqx pMARS executable for Mac (port of version 0.2) buggy, no display MacpMARS1.99a.cpt.hqx port of v0.8 for the Mac, with display and debugger MacpMARS1.0s.cpt.hqx C source (MPW, ThinkC) for Mac frontend pvms08.zip pMARS v0.8 for VMS build files/help (req. pmars08s.zip) ApMARS03.lha pMARS executable for Amiga (port of version 0.3.1) wincor11.zip MS-Windows system, shareware ($15) [ToC] ------------------------------------------------------------------------ 10. Where can I find warrior code? To learn the game, it is a good idea to study previously posted warrior code. The FTP archives have code in the ftp://www.koth.org/corewar/redcode directory. A clearly organized on-line warrior collection is available at the Core War web sites (see below). [ToC] ------------------------------------------------------------------------ 11. I do not have FTP. How do I get all this great stuff? There is an FTP email server at bitftp@pucc.princeton.edu. This address may no longer exist. I haven't tested it yet. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. Note that many FTP email gateways are shutting down due to abuse. To get a current list of FTP email servers, look at the Accessing the Internet by E-mail FAQ posted to news.answers. If you don't have access to Usenet, you can retrieve this FAQ one of the following ways: * Send mail to mail-server@rtfm.mit.edu with the body containing "send usenet/news.answers/internet-services/access-via-email". * Send mail to mailbase@mailbase.ac.uk with the body containing "send lis-iis e-access-inet.txt". [ToC] ------------------------------------------------------------------------ 12. I do not have access to Usenet. How do I post and receive news? To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Koth.Org list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@koth.org. You can send mail to corewar-l@koth.org to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (ttsg@ttsg.com). Servers that allow you to post (but not receive) articles are available. Refer to the Accessing the Internet by E-Mail FAQ for more information. [ToC] ------------------------------------------------------------------------ 13. Are there any Core War related WWW sites? You bet. Each of the two KotH sites sport a world-wide web server. Stormking's Core War page is http://www.koth.org; pizza's is http://www.ecst.csuchico.edu/~pizza/koth . Damien Doligez (a.k.a. Planar) has a web page that features convenient access to regular newsletters (Push Off, The '94 Warrior, Core Warrior) and a well organized library of warriors: http://para.inria.fr/~doligez/corewar/. Convenient for U.S. users, this site is also mirrored at koth.org. [ToC] ------------------------------------------------------------------------ 14. What is KotH? How do I enter? King Of The Hill (KotH) is an ongoing Core War tournament available to anyone with email. You enter by submitting via email a Redcode program (warrior) with special comment lines. You will receive a reply indicating how well your program did against the current top programs "on the hill". There are two styles of KotH tournaments, "classical" and "multi-warrior". The "classical" KotH is a one-on-one tournament, that is your warrior will play 100 battles against each of the 20 other programs currently on the Hill. You receive 3 points for each win and 1 point for each tie. (The existing programs do not replay each other, but their previous battles are recalled.) All scores are updated to reflect your battles and all 21 programs are ranked from high to low. If you are number 21 you are pushed off the Hill, if you are higher than 21 someone else is pushed off. In "multi-warrior" KotH, all warriors on the hill fight each other at the same time. Score calculation is a bit more complex than for the one-on-one tournament. Briefly, points are awarded based on how many warriors survive until the end of a round. A warrior that survives by itself gets more points than a warrior that survives together with other warriors. Points are calculated from the formula (W*W-1)/S, where W is the total number of warriors and S the number of surviving warriors. The pMARS documentation has more information on multi-warrior scoring. The idea for an email-based Core War server came from David Lee. The original KotH was developed and run by William Shubert at Intel starting in 1991, and discontinued after almost three years of service. Currently, KotHs based on Bill's UNIX scripts but offering a wider variety of hills are are running at two sites: koth@koth.org is maintained by Scott J. Ellentuch (tuc@ttsg.com) and pizza@ecst.csuchico.edu by Thomas H. Davies (sd@ecst.csuchico.edu). Up until May '95, the two sites provided overlapping services, i.e. the some of the hill types were offered by both "pizza" and "stormking". To conserve resources, the different hill types are now divided up among the sites. The way you submit warriors to both KotHs is pretty much the same. Therefore, the entry rules described below apply to both "pizza" and "stormking" unless otherwise noted. Entry Rules for King of the Hill Corewar * Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. * Put a line starting with ";redcode" (or ";redcode-94", etc., see below) at the top of your program. This MUST be the first line. Anything before it will be lost. If you wish to receive mail on every new entrant, use ";redcode verbose". Otherwise you will only receive mail if a challenger makes it onto the hill. Use ";redcode quiet" if you wish to receive mail only when you get shoved off the hill. Additionally, adding ";name " and ";author " will be helpful in the performance reports. Do NOT have a line beginning with ";address" in your code; this will confuse the mail daemon and you won't get mail back. Using ";name" is mandatory on the Pizza hills. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently seven separate hills you can select by starting your program with ;redcode-94, ;redcode-b, ;redcode-lp, ;redcode-x, ;redcode, ;redcode-94x or ;redcode-94m. The former four run at "pizza", the latter three at "stormking". More information on these hills is listed below. * Mail this file to koth@koth.org or pizza@ecst.csuchico.edu. "Pizza" requires a subject of "koth" (use the -s flag on most mailers). * Within a few minutes you should get mail back telling you whether your program assembled correctly or not. If it did assemble correctly, sit back and wait; if not, make the change required and re-submit. * In an hour or so you should get more mail telling you how your program performed against the current top 20 (or 10) programs. If no news arrives during that time, don't worry; entries are put in a queue and run through the tournament one at a time. A backlog may develop. Be patient. If your program makes it onto the hill, you will get mail every time a new program makes it onto the hill. If this is too much mail, you can use ";redcode[-??] quiet" when you first mail in your program; then you will only get mail when you make it on the top 25 list or when you are knocked off. Using ";redcode[-??] verbose" will give you even more mail; here you get mail every time a new challenger arrives, even if they don't make it onto the top 25 list. Often programmers want to try out slight variations in their programs. If you already have a program named "foo V1.0" on the hill, adding the line ";kill foo" to a new program will automatically bump foo 1.0 off the hill. Just ";kill" will remove all of your programs when you submit the new one. The server kills programs by assigning an impossibly low score; it may therefore take another successful challenge before a killed program is actually removed from the hill. Sample Entry ;redcode ;name Dwarf ;author A. K. Dewdney ;strategy Throw DAT bombs around memory, hitting every 4th memory cell. ;strategy This program was presented in the first Corewar article. bomb DAT #0 dwarf ADD #4, bomb MOV bomb, @bomb JMP dwarf END dwarf ; Programs start at the first line unless ; an "END start" pseudo-op appears to indicate ; the first logical instruction. Also, nothing ; after the END instruction will be assembled. Duration Max. Hill Name Hill Core Max. Before Entry Min. Rounds Instr. Size Size Processes Distance Fought Set Tie Length Pizza's ICWS '94 Draft Hill Extended (Accessed with 25 8000 8000 80000 100 100 200 ICWS '94 ";redcode-94") Draft Pizza's Beginner's Extended Hill (Accessed 25 8000 8000 80000 100 100 200 ICWS '94 with ";redcode-b") Draft Pizza's Experimental Extended (Small) Hill 25 800 800 8000 20 20 200 ICWS '94 (Accessed with Draft ";redcode-x") Pizza's Limited Process (LP) Hill Extended (Accessed with 25 8000 8 80000 200 200 200 ICWS '94 ";redcode-lp") Draft Stormking's ICWS '88 Standard Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '88 ";redcode") Stormking's ICWS '94 No Pspace Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '94 ";redcode-94nop") Stormking's ICWS '94 Experimental Extended (Big) Hill 20 55440 55440 500000 200 200 250 ICWS '94 (Accessed with Draft ";redcode-94x") Stormking's ICWS '94 Multi-Warrior Extended Hill (Accessed 10 8000 8000 80000 100 100 200 ICWS '94 with Draft ";redcode-94m") Note: Warriors on the beginner's hill are retired at age 100. If you just want to get a status report without actually challenging the hills, send email with ";status" as the message body (and don't forget "Subject: koth" for "pizza"). If you send mail to "pizza" with "Subject: koth help" you will receive instructions that may be more up to date than those contained in this document. At "stormking", a message body with ";help" will return brief instructions. If you submit code containing a ";test" line, your warrior will be assembled but not actually pitted against the warriors on the hill. At "pizza", you can use ";redcode[-??] test" to do a test challenge of the Hill without affecting the status of the Hill. These challenges can be used to see how well your warrior does against the current Hill warriors. All hills run portable MARS (pMARS) version 0.8, a platform-independent Core War system available at www.koth.org. The '94 and '94x hills allow five experimental opcodes and three experimental addressing modes currently not covered in the ICWS'94 draft document: * LDP - Load P-Space * STP - Store P-Space * SEQ - Skip if EQual (synonym for CMP) * SNE - Skip if Not Equal * NOP - (No OPeration) * * - indirect using A-field as pointer * { - predecrement indirect using A-field * } - postincrement indirect using A-field [ToC] ------------------------------------------------------------------------ 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? Core is initialized to DAT 0, 0. This is an illegal instruction (in source code) under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you have a DAT 0, 0 instruction in your source code - only DAT #0, #0. So this begs the question, how to compare something to see if it is empty core. The answer is, most likely the instruction before your first instruction and the instruction after your last instruction are both DAT 0, 0. You can use them, or any other likely unmodified instructions, for comparison. Note that under ICWS'94, DAT 0, 0 is a legal instruction. [ToC] ------------------------------------------------------------------------ 16. How does SLT (Skip if Less Than) work? SLT gives some people trouble because of the way modular arithmetic works. It is important to note that all negative numbers are converted to positive numbers before a battles begins. Example: -1 becomes M-1 where M is the memory size (core size). Once you realize that all numbers are treated as positive, it is clear what is meant by "less than". It should also be clear that no number is less than zero. [ToC] ------------------------------------------------------------------------ 17. What is the difference between in-register and in-memory evaluation? These terms refer to the way instruction operands are evaluated. The '88 Redcode standard ICWS'88 is unclear about whether a simulator should "buffer" the result of A-operand evaluation before the B-operand is evaluated. Simulators that do buffer are said to use in-register evaluation, those that don't, in-memory evaluation. ICWS'94 clears this confusion by mandating in-register evaluation. Instructions that execute differently under these two forms of evaluation are MOV, ADD, SUB, MUL, DIV and MOD where the effective address of the A-operand is modified by evaluation of the B-operand. This is best illustrated by an example: L1 mov L2, mov.i #0, impsize Bootstrapping Strategy of copying the active portion of the program away from the initial location, leaving a decoy behind and making the relocated program as small as possible. B-Scanners Scanners which only recognize non-zero B-fields. example add #10, scan scan jmz example, 10 c Measure of speed, equal to one location per cycle. Speed of light. CMP-Scanner A Scanner which uses a CMP instruction to look for opponents. example add step, scan scan cmp 10, 30 jmp attack jmp example step dat #20, #20 Colour Property of bombs making them visible to scanners, causing them to attack useless locations, thus slowing them down. example dat #100 Core-Clear Code that sequentially overwrites core with DAT instructions; usually the last part of a program. Decoys Bogus or unused instructions meant to slow down scanners. Typically, DATs with non-zero B-fields. Decrement Resistant Property of warriors making them functional (or at least partially functional) when overrun by a DJN-stream. DJN-Stream (also DJN-Train) Using a DJN command to rapidly decrement core locations. example ... ... djn example, <4000 Dwarf The prototypical small bomber. Gate-busting (also gate-crashing) technique to "interweave" a decrement-resistant imp-spiral (e.g. MOV 0, 2668) with a standard one to overrun imp-gates. Hybrids warriors that combine two or more of the basic strategies, either in sequence (e.g. stone->paper) or in parallel (e.g. imp/stone). Imp Program which only uses the MOV instruction. example mov 0, 1 or example mov 0, 2 mov 0, 2 Imp-Gate A location in core which is bombed or decremented continuously so that an Imp can not pass. Also used to describe the program-code which maintains the gate. example ... ... spl 0, mov.i #0,IMPSIZE Mirror see reflection. On-axis/off-axis On-axis scanners compare two locations M/2 apart, where M is the memory size. Off-axis scanners use some other separation. Optimal Constants (also optima-type constants) Bomb or scan increments chosen to cover core most effectively, i.e. leaving gaps of uniform size. Programs to calculate optimal constants and lists of optimal numbers are available at www.koth.org. Paper A Paper-like program is one which replicates itself many times. Part of the Scissors (beats) Paper (beats) Stone (beats Scissors) analogy. P-Warrior A warrior which uses the results of previous round(s) in order to determine which strategy it will use. Pit-Trapper (also Slaver, Vampire). A program which enslaves another. Usually accomplished by bombing with JMPs to a SPL 0 pit with an optional core-clear routine. Q^2 Scan A modern version of the Quick Scan where anything found is attacked almost immediately. Quick Scan 2c scan of a set group of core locations with bombing if anything is found. Both of the following codes snips scan 16 locations and check for a find. If anything is found, it is attacked, otherwise 16 more locations are scanned. Example: start s1 for 8 ;'88 scan cmp start+100*s1, start+100*s1+4000 ;check two locations mov #start+100*s1-found, found ;they differ so set pointer rof jmn attack, found ;if we have something, get it s2 for 8 cmp start+100*(s2+6), start+100*(s2+6)+4000 mov #start+100*(s2+6)-found, found rof found jmz moveme, #0 ;skip attack if qscan found nothing attack cmp @found, start-1 ;does found points to empty space? add #4000, found ;no, so point to correct location mov start-1, @found ;move a bomb moveme jmp 0, 0 In ICWS'94, the quick scan code is more compact because of the SNE opcode: start ;'94 scan s1 for 4 sne start+400*s1, start+400*s1+100 ;check two locations seq start+400*s1+200, start+400*s1+300 ;check two locations mov #start+400*s1-found, found ;they differ so set pointer rof jmn which, found ;if we have something, get it s2 for 4 sne start+400*(s2+4), start+400*(s2+4)+100 seq start+400*(s2+4)+200, start+400*(s2+4)+300 mov #start+400*(s2+4)-found-100, found rof found jmz moveme, #0 ;skip attack if qscan found nothing add #100, -1 ;increment pointer till we get the which jmn -1, @found ;right place mov start-1, @found ;move a bomb moveme jmp 0, 0 Reflection Copy of a program or program part, positioned to make the active program invisible to a CMP-scanner. Replicator Generic for Paper. A program which makes many copies of itself, each copy also making copies. Self-Splitting Strategy of amplifying the number of processes executing a piece of code. example spl 0 loop add #10, example mov example, @example jmp loop Scanner A program which searches through core for an opponent rather than bombing blindly. Scissors A program designed to beat replicators, usually a (B-field scanning) vampire. Part of the Paper-Scissors-Stone analogy. Self-Repair Ability of a program to fix it's own code after attack. Silk A replicator which splits off a process to each new copy before actually copying the code. This allows it to replicate extremely quickly. This technique is only possible under the '94 draft, because it requires post-increment indirect addressing. Example: spl 1 mov -1, 0 spl 1 ;generate 6 consecutive processes silk spl 3620, #0 ;split to new copy mov >-1, }-1 ;copy self to new location mov bomb, >2000 ;linear bombing mov bomb, }2042 ;A-indirect bombing for anti-vamp jmp silk, {silk ;reset source pointer, make new copy bomb dat >2667, >5334 ;anti-imp bomb Slaver see Pit-Trapper. Stealth Property of programs, or program parts, which are invisible to scanners, accomplished by using zero B-fields and reflections. Stone A Stone-like program designed to be a small bomber. Part of the Paper-Scissors-Stone analogy. Stun A type of bomb which makes the opponent multiply useless processes, thus slowing it down. Example is referred to as a SPL-JMP bomb. example spl 0 jmp -1 Two-Pass Core-Clear (also SPL/DAT Core-Clear) core clear that fills core first with SPL instructions, then with DATs. This is very effective in killing paper and certain imp-spiral variations. Vampire see Pit-Trapper. Vector Launch one of several means to start an imp-spiral running. As fast as Binary Launch, but requiring much less code. See also JMP/ADD Launch and Binary Launch. This example is one form of a Vector Launch: sz EQU 2667 spl 1 spl 1 jmp @vt, }0 vt dat #0, imp+0*sz ; start of vector table dat #0, imp+1*sz dat #0, imp+2*sz dat #0, imp+3*sz ; end of vector table imp mov.i #0, sz [ToC] ------------------------------------------------------------------------ 23. Other questions? Just ask in the rec.games.corewar newsgroup or contact me. If you are shy, check out the Core War archives first to see if your question has been answered before. [ToC] ------------------------------------------------------------------------ Credits Additions, corrections, etc. to this document are solicited. Thanks in particular to the following people who have contributed major portions of this document: * Mark Durham (wrote the original version of the FAQ) * Paul Kline * Randy Graham * Stefan Strack (maintained a recent version of the FAQ) ------------------------------------------------------------------------ Copyright � 1999 Anton Marsden. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ------------------------------------------------------------------------ From: =?ISO-8859-2?Q?=A3ukasz_Adamowski?= Subject: "War is a problem..." Date: 13 Jul 2004 12:28:32 -0400 Message-ID: <40f3d79b80bdd@wp.pl> Hi! Sorry, but this time it won't be about CoreWar, rather about real war, real hacking. Someone tried to exploit my web server and I think he did it. He used a bug in PHP in function php_mime_split. After almost 20 hours of sending "POST //index.php HTTP/1.1" and causing httpd child process segmentation fault he managed (probably) to execute code on my machine with httpd user privileges. This is what I see in my logs. But there is no other sign of any activity in system. Could someone explain me where should I expect any others signs of hacker activity? I hope you have more experience than me. Thanks in advance Lukasz Adamowski --== "War is a problem, never a solution"/"Wojna jest problemem, a nie rozwiazaniem" ==-- ---------------------------------------------------- Najwi�kszy wyb�r wiatr�wek bez zezwolenia! Tylko w Militaria.pl. Zobacz: http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2Fzrm.html&sid=209 From: pak21@cam.ac.uk (Philip Kendall) Subject: Re: "War is a problem..." Date: 13 Jul 2004 17:40:01 +0100 Message-ID: In article <40f3d79b80bdd@wp.pl>, =?ISO-8859-2?Q?=A3ukasz_Adamowski?= wrote: >Hi! > >Sorry, but this time it won't be about CoreWar, rather about >real war, real hacking. Someone tried to exploit my web server >and I think he did it. He used a bug in PHP in function >php_mime_split. After almost 20 hours of >sending "POST //index.php HTTP/1.1" and causing httpd child >process segmentation fault he managed (probably) to execute code >on my machine with httpd user privileges. This is what I see in >my logs. But there is no other sign of any activity in system. >Could someone explain me where should I expect any others signs >of hacker activity? Anywhere. Your machine's been compromised. Unless you're actually wanting to do forensics on this, just blow it away and restore from your last backup. Cheers, Phil PS: Are you sure the bug was in php_mime_split? The only one I can see related to that was CERT #297363 in 2002. -- Philip Kendall http://www.srcf.ucam.org/~pak21/ From: Martin Moller Pedersen Subject: Re: "War is a problem..." Date: Tue, 13 Jul 2004 21:30:09 +0000 (UTC) Message-ID: In <40f3d79b80bdd@wp.pl> =?ISO-8859-2?Q?=A3ukasz_Adamowski?= writes: >Hi! >Sorry, but this time it won't be about CoreWar, rather about >real war, real hacking. Someone tried to exploit my web server >and I think he did it. He used a bug in PHP in function >php_mime_split. After almost 20 hours of >sending "POST //index.php HTTP/1.1" and causing httpd child >process segmentation fault he managed (probably) to execute code >on my machine with httpd user privileges. This is what I see in >my logs. But there is no other sign of any activity in system. >Could someone explain me where should I expect any others signs >of hacker activity? I hope you have more experience than me. First I hope that the httpd don't have any priviligies on the system and then run the 'find' command to find all new files on the system. Do a 'netstat' to see if any strange ports are open and what program is listen on them. But I really recommended to get your backup and restore the system before the machined was cracked. And after the restore make a md5sum on all files and keep the file offsite, then you can compare the checksum when someone hacks you again. /Martin From: Three Subject: Do you have dreams of popping Lisa Simpson's cherry? Message-ID: Date: Wed, 14 Jul 2004 12:16:55 GMT Not just that, but would you do it with Homer Simpson until he fainted? They give it free on HTTP://Toontoon.com/ximpsons Then you could visit HTTP://comicsorgy.COM//simpsons/../simpsons? for more candid portraits of Maggie & Bart masturbating eachother. Then you could visit Http://WWW.AdultSeries.NET////simpsons-xxx? for the really extreme pics of Homer & Lisa drinking eachothers' sex juices. Around wrote in message news:mFsiqbdCxkV7To9JJQ9qKZhP@adultseries.net... > > circling her nipples She reveled in the sensation as they responded in > > > gppv84f From: chipw@mdli.com (Chip Wendell) Subject: Corewar History Date: 16 Jul 2004 12:29:57 -0700 Message-ID: All, It's unfortunate that I won't be able to attend the 20th anniversary meeting in Berlin. I would have loved to meet in person all the other Corewar fanatics in our small but lively community. But in lieu of that, I'd like to share this bit of Corewar history with everyone, in honor of the occasion. I must have been one of the first people who started playing Corewar, in 1985, and (as some of you may know) was the winner of the very first Corewar tournament, in 1986. It's hard to imagine now, when we are all so connected by email and the Internet, how important that first tournament was. Up until that time, all of us pioneers had been coding in almost complete isolation, with just a few bits of snail-mail correspondence starting to flow as the ICWS formed. Other than Imp and Dwarf, I didn't have access to a single warrior written by another person! Corewar was almost like solitaire, rather than a competitive game. So it was a pleasant surprise to see how widespread Corewar had become, when the first competition received 31 entries from 17 authors in 4 countries. Here is a portion of the letter I got announcing the results: "Well, the First International Core War Tournament is history. Thirty-one (31) entries arrived of which twenty-seven (27) survived assembly to do battle. Battle programs employing every conceivable strategy (well, almost) 'duked it out' inside of a row of AT&T 6300's of the Computer Museum in Boston for two days. When the screens cleared, a program named 'MICE' stood at the top of the scoreboard. Across the globe, anxious authors awaited the results, already plotting next year's strategies - tomorrow's warriors. "The competition took place on Sept 12th and 13th [1986] between entries from the United States, Canada, West Germany and Japan, making it truly international. "In personal attendance were Core War originator A.K. Dewdney, ICWS Director Mark Clarkson and his wife and acting ICWS secretary Beth Clarkson. Saturday, the day of the finals, saw the Computer Museum's auditorium playing host to 75 or so spectators. Crowds of up to 25 at a time sat and watched the progress of the programs marked by colored dots marching across a row of monitors. Up front, Dr. Dewdney provided color commentary. "Due to the number of entries received and the time constraints, first round competitions were run in 2000 word cores for a maximum of 20,000 instruction cycles. Some programs were designed to run in larger core sizes and did not fare well in the smaller space. For some programs, self-destruction was the order of the day. "The programs were divided arbitrarily into two divisions - I and II. All programs were run twice against every other program in its division. Losses were subtracted from wins to score - ties were not counted. "The top four (4) programs in each division were then moved to the semi-finals. Every program was run against every other four times in 4000 word cores. "When it was all over, the finals looked like this: "1st place - Mice by Chip Wendell "2nd place - Chang1 by Morrison Chang "3rd place - Midget by Chip Wendell" The letter went on to list the scores from each round, and the source code of the eight semifinalists. Mice was the only warrior that used infinite replication as a strategy, so apparently it was the world's first paper. It's truly staggering to see how far Corewar has progressed in the last 20 years. Redcode has expanded and matured into a very powerful instruction set. The warriors of today are complex and vicious creations against which Mice, the best of its day, would not stand the slightest chance of survival. MARS simulators are freely available that could run all 516 battles of the entire 1986 tournament in two minutes, instead of the two days it took back then. (If you want to get an idea of how it looked to the audience of the '86 tournament, set the speed of CoreWin - I don't think pMars goes that slow - to 100 instructions per second, the third-slowest setting.) Even the name has evolved - what was originally Core War became Core Wars (although that was never universally accepted), and now is just a single word, Corewar. But I think that the most significant change over the last 20 years is in how tightly connected the Corewar community has become. Ideas and warriors flow like water over the Internet, and we are far more acquainted with each other than the members of the ICWS ever were. I may not be attending the anniversary meeting, but I'm sure that, after I get through reading all the posts and logs that are sure to come, I'll feel like I was almost there in person. Any other old timers care to share some history/reminiscences? - Chip From: "ASW" Subject: Re: Corewar History Date: 16 Jul 2004 13:23:58 -0700 Message-ID: I came to Corewar late in 1989 and released my first Corewar simulator-- ARES-- to my friends at my 17th Birthday party in January 1990. We spent a great deal of time that year preparing entries for the ICWS 1990 competion and I selected the entries on behalf of our high-school. Unfortunately my simulator was not entirely compatible with the tournament simulator and I found myself despartely hacking my program (Net) to make it run on the IBM PC. (I used an Amiga back then.) Since those days three artificial life simulators were directly spawned from Corewar: Avida, Tierra and the Coreworld. My simulator-- The Quantum Coreworld -- is the latest in that tradition. Thank-you for the post! I leave for Berlin Tuesday... Sasha PS. A few people have suggested I ask you if you wanted to try and support the Quantum Coreworld in Corewin. (Ideally a Windows user should be able to go to the Quantum Coreworld ecology at http://science.fiction.org click on some metaworld data and load up the world in Corewin.) I'd be happy to help... From: fizmo_master@yahoo.com (Fizmo) Subject: Redcoders Frenzy 19: The Battle Maniac Round ***Reminder*** Date: 20 Jul 2004 00:49:04 -0700 Message-ID: <9f53b5fb.0407192349.7e51715d@posting.google.com> Please don't forget to send your entries until July 24. Christian ................................................................... . . . _____ _ _ . . | __ \ | | | | . . | |__) |___ __| | ___ ___ __| | ___ _ __ ___ . . | _ // _ \/ _` |/ __/ _ \ / _` |/ _ \ '__/ __| . . | | \ \ __/ (_| | (_| (_) | (_| | __/ | \__ \ . . |_| \_\___|\__,_|\___\___/ \__,_|\___|_| |___/ . . . . ______ . . | ____| . . | |__ _ __ ___ _ __ _____ _ . . | __| '__/ _ \ '_ \|_ / | | | . . | | | | | __/ | | |/ /| |_| | . . |_| |_| \___|_| |_/___|\__, | . . __/ | . . |___/ . ................................................................... The ongoing corewar tournament ____ ________ /_ / __ \ | \____ / | | / / |___| /____/ .............................. . . . The Battle Maniac Round . . . .............................. This is the 19th round of the ongoing corewar tournament. Detailed information are available on Fizmo's Corewar Info Page: http://www.corewar.info/tournament/cwt.htm The Battle Maniac Round homepage is: http://www.corewar.info/tournament/19.htm ................................................................... . _ . . _ _ _ _| |___ ___ . . | '_| || | / -_|_-< . . |_| \_,_|_\___/__/ . . . ................................................................... This time it's a Multiwarrior Battle under Low Process Conditions similar to the Battle Royal Tournament organized by John K. Lewis in summer 1996. Coresize: 8000 Max. processes: 8 Max. cycles: 80000 Max. length: 20 Min. distance: 20 Rounds: 3*1000 But this time for each entry 3 further warriors will be added: Two imps: ;redcode-RF19 ;name imp mov.i #1, 1 and one Imp-Gate: ;redcode-RF19 ;name imp-gate djn.f #0, <-10 Two entries per author are allowed. So, lot of imps and imp-gates will be around the core. A good imp- gate and decrement protection seems a good idea to survive. But with just 8 processes everything could be possible ;-) I will use Chip Wendells CoreWin 2.3 for this round because it hasn't a 32 warriors limitation for multiwarrior battles. ................................................................... . _ _ _ _ . . __| |___ __ _ __| | (_)_ _ ___ . . / _` / -_) _` / _` | | | ' \/ -_) . . \__,_\___\__,_\__,_|_|_|_||_\___| . . . ................................................................... The tournament will run during the Corewar Meeting in Berlin July 24, 2004 This time I try to make a movie of the PC screen ;-) -------------------------------------------------------------- Please notify: You have to send your entries to Christian Schmidt (fizmo_master@yahoo.com) -------------------------------------------------------------- Good luck, may be the core with you! From: sayembara@yahoo.com (Zul Nadzri) Subject: Re: optiMAX 0.63 - first Beta-release Date: 20 Jul 2004 08:00:52 -0700 Message-ID: "Robert Macrae" wrote in message news:<40fcce21$0$317$cc9e4d1f@news.dial.pipex.com>... > > Christian and me are proud to present optiMAX. The first multistage > > optimizer in Corewars' history. > > Wow! > > Robert Cool...and I need very macro help! Surely I will optimax my drowning "KL" warrior. From: sayembara@yahoo.com (Zul Nadzri) Subject: Re: Corewar History Date: 20 Jul 2004 08:05:13 -0700 Message-ID: Have a meaningful trip :) History: restart ! /zul From: "Robert Macrae" Subject: Re: optiMAX 0.63 - first Beta-release Date: Tue, 20 Jul 2004 08:41:34 +0100 Message-ID: <40fcce21$0$317$cc9e4d1f@news.dial.pipex.com> > Christian and me are proud to present optiMAX. The first multistage > optimizer in Corewars' history. Wow! Robert From: fizmo_master@yahoo.com (Fizmo) Subject: Re: Corewar History Date: 20 Jul 2004 10:14:39 -0700 Message-ID: <9f53b5fb.0407200914.2930247c@posting.google.com> There was an article in a german scientific newsletter around the end of the '80. They offered also a corewar programm for windows on disk. I was really fascinated about that idea. It remembered me on one of my ever favourite movie called Tron. Several years later I start to discover the first time coreware using the above mentioned windows programm. It had only the ICWS 88 standard and offered some few warriors. I remember there was a really huge one called MulDNA. End of 1996 I've entered Pizza's beginner hill with my first warriors and 1997 I got with 'Head or Tail' my first koth on the 94draft hill. I think I am one of the most active redcoder around the globe ;-) Christian From: Koth Subject: KOTH.ORG: Status - Standard 07/19/04 Date: 20 Jul 2004 22:02:18 -0400 Message-ID: <200407190400.i6J401NM029742@gevjon.ttsg.com> Weekly Status on 07/19/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Fri Jul 2 18:15:14 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 42/ 25/ 33 The Next Step '88 David Houston 159 11 2 45/ 42/ 13 Cold as November Rain... John Metcalf 149 9 3 47/ 46/ 7 Scan Test C 6 Steve Gunnell 149 34 4 44/ 39/ 17 Tangle Trap 3 David Moore 149 24 5 37/ 24/ 39 A.I.P. Christian Schmidt 149 3 6 46/ 44/ 10 Speeed 88mph Christian Schmidt 148 1 7 43/ 40/ 17 My 1st try Christian Schmidt 147 27 8 36/ 26/ 38 Freight Train David Moore 147 196 9 36/ 26/ 39 Test Alexander (Sasha) Wa 146 135 10 35/ 27/ 38 Guardian Ian Oversby 144 195 11 42/ 41/ 17 Stasis David Moore 143 303 12 38/ 32/ 30 The Seed Roy van Rijn 143 13 13 36/ 32/ 31 vala John Metcalf 141 118 14 39/ 41/ 19 '88 test IV John Metcalf 138 89 15 39/ 40/ 21 PacMan David Moore 138 225 16 33/ 30/ 36 Pixie 88 Lukasz Grabun 136 25 17 26/ 17/ 57 unheard-of '88 Christian Schmidt 136 2 18 40/ 46/ 14 Blur '88 Anton Marsden 135 233 19 41/ 47/ 12 Foggy Swamp Beppe Bezzi 135 192 20 29/ 25/ 46 Test I Ian Oversby 133 252 21 6/ 92/ 2 Tex v2 Japcuh 20 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 07/19/04 Date: 20 Jul 2004 22:02:16 -0400 Message-ID: <200407190403.i6J431Kh029793@gevjon.ttsg.com> Weekly Status on 07/19/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun Jul 18 13:28:44 EDT 2004 # Name Author Score Age 1 Dodge Viper Christian Schmidt 11 33 2 Leap test Christian Schmidt 10 35 3 The Survivor Philip Kendall 8 79 4 fine powder John Metcalf 8 6 5 how impish do you like? John Metcalf 6 14 6 not king of the hill FatalC 5 194 7 Zorca Christian Schmidt 5 26 8 Her Majesty P.Kline 4 468 9 foundling John Metcalf 4 15 10 the grasshopper king Simon Wainwright 3 1 11 Aoshi Test E 34 Steve Gunnell 2 2 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 07/19/04 Date: 20 Jul 2004 22:02:12 -0400 Message-ID: <200407190406.i6J461wt029829@gevjon.ttsg.com> Weekly Status on 07/19/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Sun Jul 18 13:40:47 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 44/ 35/ 20 Fatamorgana X Zul Nadzri 153 1 2 41/ 37/ 22 The X Machine Zul Nadzri 145 25 3 40/ 39/ 20 Eliminator X Zul Nadzri 141 26 4 43/ 44/ 13 Fire and Ice II David Moore 141 114 5 38/ 38/ 24 Black Moods Ian Oversby 138 210 6 28/ 18/ 54 xd100 test David Houston 137 11 7 35/ 34/ 31 Trefoil F 13 Steve Gunnell 136 97 8 28/ 21/ 51 Glenstorm John Metcalf 135 76 9 36/ 40/ 24 Simply Intelligent Zul Nadzri 131 7 10 20/ 9/ 71 Evol Cap 4 X John Wilkinson 130 283 11 28/ 26/ 46 Olivia X Ben Ford 129 95 12 23/ 16/ 61 Kin John Metcalf 129 122 13 27/ 26/ 47 Venom v0.2b Christian Schmidt 129 236 14 35/ 41/ 24 Ogre Christian Schmidt 129 162 15 20/ 12/ 68 Denial David Moore 129 155 16 36/ 44/ 20 Giant Hazy Test 13 Steve Gunnell 128 41 17 28/ 27/ 45 KAT v5 Dave Hillis 128 146 18 17/ 7/ 76 Evolve X v4.0 John Wilkinson 127 231 19 20/ 14/ 66 Blotter X J. Pohjalainen 127 16 20 33/ 39/ 29 Controlled Aggression Ian Oversby 126 214 21 23/ 63/ 13 the grasshopper king Simon Wainwright 84 0 From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 07/19/04 Date: 20 Jul 2004 22:02:08 -0400 Message-ID: <200407190409.i6J491ng029867@gevjon.ttsg.com> Weekly Status on 07/19/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Jul 18 13:32:04 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 36/ 26/ 38 Borgir Christian Schmidt 147 19 2 33/ 24/ 43 Gargantuan Roy van Rijn 143 5 3 36/ 32/ 33 2b||!2b Sascha Zapf 140 43 4 30/ 20/ 50 paper(paper(paper(clear)) Sascha Zapf 139 88 5 44/ 50/ 6 Claw III Christian Schmidt 139 23 6 31/ 23/ 46 slime test 1.00 David Houston 139 314 7 43/ 47/ 10 Arrow Christian Schmidt 138 187 8 32/ 26/ 42 Yorba Roy 138 118 9 28/ 19/ 52 Dental Hydrometers Ken Espiritu 138 34 10 26/ 16/ 58 Maelstrom Roy van Rijn 137 128 11 43/ 50/ 7 Evil Willow John Metcalf 136 12 12 28/ 20/ 53 unheard-of II Christian Schmidt 135 1 13 31/ 28/ 41 elf Christian Schmidt 134 49 14 30/ 26/ 44 Savage Flowing Battleworn Pascal Hofstee 134 3 15 27/ 20/ 53 Black Knight Christian Schmidt 134 9 16 39/ 45/ 17 Dandelion 3 Christian Schmidt 133 105 17 29/ 26/ 45 Gremlin van Rijn/Grabun 133 218 18 30/ 27/ 44 Son of Vain Oversby/Pihlaja 133 2552 19 39/ 47/ 14 HazyLazy C 11 CS SG 131 196 20 36/ 46/ 18 Deathstar Roy van Rijn 126 6 21 18/ 73/ 8 the grasshopper king Simon Wainwright 63 0 From: =?ISO-8859-2?Q?=A3ukasz_Adamowski?= Subject: Redcoders' Frenzy Round stuck? Date: 20 Jul 2004 22:32:32 -0400 Message-ID: <40facc9396d0d@wp.pl> Hi! Where to hell are rules of Round 19th? And where should I send my entries? Who is the responsible one? www.corewar.info says nothing about it :( Have you boys got lazy according to vacation time? ;] Lukasz Adamowski P.S. I think I will win this time. ;))) ---------------------------------------------------- WIATROWKI.PL - Letnia promocja karabinka LEVER ACTION Teraz tylko 999 z�!!! http://klik.wp.pl/?adr=http%3A%2F%2Fzakupy.wp.pl%2Flinki_6.html&sid=214 From: fizmo_master@yahoo.com (Fizmo) Subject: Re: Redcoders' Frenzy Round stuck? Date: 21 Jul 2004 04:25:09 -0700 Message-ID: <9f53b5fb.0407210325.58d2a38f@posting.google.com> Uuups, do I totally forgotten to upload the Round 19 page? Shame over me. I'll have a look later the day. Christian ?ukasz Adamowski wrote in message news:<40facc9396d0d@wp.pl>... > Hi! > > Where to hell are rules of Round 19th? And where should I send my > entries? Who is the responsible one? > www.corewar.info says nothing about it :( > Have you boys got lazy according to vacation time? ;] > > Lukasz Adamowski > > P.S. I think I will win this time. ;))) > > > ---------------------------------------------------- > WIATROWKI.PL - Letnia promocja karabinka LEVER ACTION > Teraz tylko 999 z�!!! > http://klik.wp.pl/?adr=http%3A%2F%2Fzakupy.wp.pl%2Flinki_6.html&sid=214 From: sayembara@yahoo.com (Zul Nadzri) Subject: Re: Redcoders' Frenzy Round stuck? Date: 21 Jul 2004 06:52:22 -0700 Message-ID: ?ukasz Adamowski wrote in message news:<40facc9396d0d@wp.pl>... > Hi! > > Where to hell are rules of Round 19th? And where should I send my > entries? Who is the responsible one? > www.corewar.info says nothing about it :( > Have you boys got lazy according to vacation time? ;] Rules available on this newsgroup. All warriors + 2 imp + 1 gate fight atthe same time. Send entry to fizmo. > P.S. I think I will win this time. ;))) Don't be too sure :) From: M Joonas Pihlaja Subject: pMARS patch set Date: 21 Jul 2004 23:24:46 -0400 Message-ID: Hello, I've some patches for pMARS to fix some bugs and add some optional features including read/write limit support. They are available at: http://www.cs.helsinki.fi/u/jpihlaja/cw/pmars-0.9.2-patches_20040721.tar.gz The patches are described below. Most patches are independent of each other, excepting the 02bimmediate.patch and the 07rwlimit.patch that must be applied in that order. If you're applying all of them, it's best to apply them in the order below, using a fuzz factor of three or four. I've not got access to a windows compiler at the moment so can't make an EXE of these I'm afraid. I'll be adding r/w support to the server at SAL after my holiday. Many thanks to Chip Wendell and John Metcalf for noticing these bugs. Best Regards, Joonas Pihlaja - 01bigbufs.patch: Increases some internal limits so pMARS won't crash as easily by accident. - 02bimmediate.patch: Fixes a bug when evaluating immediate mode B-operands where the B-register wasn't reloaded after evaluating the A-operand. This caused code where the A-operand was <0 or >0, and thus changed the B-field of the instruction, to be executed wrong. - 03longmin-alpha.patch: Fixes a bug in eval.c that caused pMARS to crash on Alpha processors when dividing LONG_MIN by +1 - 04optA.patch: Adds an command line switch -A that can be used to assemble only the input warriors and not run any fights. Emits '94 Draft compliant load files. - 05outside_org.patch: Fixes a bug in sim.c that caused pmars to try to access memory outside core when given an ORG or END statement with an argument that was too large. - 06rc5.patch: Adds another random number generator with a larger seed space to make cracking -F numbers harder. If the parameter to the -F switch contains non-digits then it seeds the new generator, and otherwise the old generator is used, to maintain compatibility. - 07rwlimit.patch: Adds read/write limit support. The implementation follows Chip Wendell's CoreWin R/W model where the base offset cell in predecrement and postincrement indirect modes is computed within the write limit. New switches -R and -W can be used to set the limits, which must be divisors of CORESIZE. Also, the predefined symbols READLIMIT and WRITELIMIT are available for warriors to use during assembly. Note: compiling in R/W limit support slows down the simulator by 170% even if both the R/W limits are equal to CORESIZE! Note 2: Consider this one to be in a beta-test phase, as I'm not 100% sure I've got the details exactly right. Just wanted to get it out the door before dropping off line for a bit. From: M Joonas Pihlaja Subject: pMARS expression evaluator trouble Date: 21 Jul 2004 23:24:41 -0400 Message-ID: Hi, This is a call for help to help fix a bug in pMARS' eval.c that Chip Wendell noticed. Namely, it sometimes gets the associativity of '-' wrong. As an example, eval.c evaluates 1 - 2*3 + 4 as 1 - (2*3 + 4) = -9 instead of (1 - 2*3) + 4 = -1. I've been looking at eval.c for a while and really can't follow the exact idea behind the eval() function. For a moment there I thought I'd found a fix by changing to '>' the first '>=' on the second line this snippet in eval(): if ((prec1 = PRECEDENCE(oper1)) >= (prec2 = PRECEDENCE(oper2))) { if (prec2 >= prevPrec || prec1 <= prevPrec) { // ^ // this >= changed to > expr = eval(prec1, calc(val1, val2, oper1), oper2, expr, result); but that didn't work as intended because while it fixed the problem above, it also caused expressions like 1 + 2*3 + 4*5 + 6*7 + ... to be evaluated only up to the second '*'. *sigh* So, if anyone could lend a hand and explain eval() a bit or just plain fix the bug, that would be most welcome! Best Regards, Joonas From: "Ollie T" Subject: Re: Osama Found Hanged VIRUS Message-ID: Date: Thu, 22 Jul 2004 19:45:39 GMT wrote in message news:NqNLc.82572$od7.6484@pd7tw3no... > Osama Bin Ladin was found hanged by two CNN journalists early Wedensday evening. As evidence they took several photos, some of which i have included here. As yet, this information has not hit the headlines due to Bush wanting confirmation of his identity but the journalists have released some early photos over the internet.. > http://24.13.130.125:89/OsamaFoundDead.zip > From: Sascha Zapf Subject: Journey to CW Date: Fri, 23 Jul 2004 00:44:07 +0200 Message-ID: Hi, my personal CW-History... WHen i was arround 15-16 on working on the c64, in my favourite Zine called "Happy Computer" an article was written about "the best warrior-program's" Just startet with 6510 Assembler i can't image how execute such special opcodes..So i forget the most of that thing, but the word "redcode" or more "Krieg der Kerne" ( German meaning of Corewar ) stay in my mind. 1994 i bought a book from Stephen Levy about artificial life from out the computer. A very small chapter explained the game Corewars with it's very small instructionset ( think it was 86'er or 84'standart ). But without Internet i have no chance to get in contact woth the ICWS or to the Hill's from these days. But the idea has fascinated me. So i have started to create my own Arena-Programm with two slots for Warrior. I'm working on Amiga these Days. As language i have chossed an slighty modified Version of the 6510 Assembler. After implement most of the opcodes i saw that there is no way to make Warriors with that Kind of Language. disappointment... But everything changed after connecting to the Internet at Nov. 98 My first Word that i've written in a Seachengine was "corewars", But unfortunately my job cost me all of the Time i have. Late 2000 i had more Time to have a look closer. First Try's are poor, it took very long to place a Warrior on the 94nop. Now i've published two warrior which became older then 100 ( i pray for that ), what is qiute good for me. Sascha -- Parlez vous Redcode? From: Ilmari Karonen Subject: Re: pMARS patch set Date: Sat, 24 Jul 2004 00:14:06 +0300 Message-ID: On 2004-07-22, M Joonas Pihlaja wrote: > > I've some patches for pMARS to fix some bugs and add some > optional features including read/write limit support. They are > available at: > > http://www.cs.helsinki.fi/u/jpihlaja/cw/pmars-0.9.2-patches_20040721.tar.gz I'm still the official maintainer of the pMARS sourceforge project (but not the project admin, so I can't transfer the job to someone else without Anton's help). I'm unfortunately not around much until mid August or so, so I can't get a new version out before that. But these patches certainly do seem useful. Some quick comments below: > - 02bimmediate.patch: > Fixes a bug when evaluating immediate mode B-operands where the > B-register wasn't reloaded after evaluating the A-operand. This > caused code where the A-operand was <0 or >0, and thus changed > the B-field of the instruction, to be executed wrong. If this was in fact a violation of the '94 draft spec, how come nobody noticed it before? Come to think of it, might there be some warriors around that depend on this bug? > - 04optA.patch: > Adds an command line switch -A that can be used to assemble only > the input warriors and not run any fights. Emits '94 Draft > compliant load files. How is that different from -r 0 (except, I suppose, for the value of ROUNDS)? -- Ilmari Karonen If replying by e-mail, please replace ".invalid" with ".net" in address. From: Sascha Zapf Subject: Re: pMARS patch set Date: Sat, 24 Jul 2004 13:49:17 +0200 Message-ID: M Joonas Pihlaja wrote: > > Hello, > > I've some patches for pMARS to fix some bugs and add some > optional features including read/write limit support. They are > available at: > > http://www.cs.helsinki.fi/u/jpihlaja/cw/pmars-0.9.2-patches_20040721.tar.gz > > The patches are described below. Most patches are independent of > each other, excepting the 02bimmediate.patch and the > 07rwlimit.patch that must be applied in that order. If you're > applying all of them, it's best to apply them in the order below, > using a fuzz factor of three or four. > > I've not got access to a windows compiler at the moment so can't > make an EXE of these I'm afraid. I'll be adding r/w support to > the server at SAL after my holiday. > > Many thanks to Chip Wendell and John Metcalf for noticing these > bugs. > > Best Regards, > > Joonas Pihlaja > > > - 01bigbufs.patch: > > Increases some internal limits so pMARS won't crash as easily by > accident. > > - 02bimmediate.patch: > > Fixes a bug when evaluating immediate mode B-operands where the > B-register wasn't reloaded after evaluating the A-operand. This > caused code where the A-operand was <0 or >0, and thus changed > the B-field of the instruction, to be executed wrong. > > - 03longmin-alpha.patch: > > Fixes a bug in eval.c that caused pMARS to crash on Alpha > processors when dividing LONG_MIN by +1 > > - 04optA.patch: > > Adds an command line switch -A that can be used to assemble only > the input warriors and not run any fights. Emits '94 Draft > compliant load files. > > - 05outside_org.patch: > > Fixes a bug in sim.c that caused pmars to try to access memory > outside core when given an ORG or END statement with an argument > that was too large. > > - 06rc5.patch: > > Adds another random number generator with a larger seed space to > make cracking -F numbers harder. If the parameter to the -F > switch contains non-digits then it seeds the new generator, and > otherwise the old generator is used, to maintain compatibility. > > - 07rwlimit.patch: > , > Adds read/write limit support. The implementation follows Chip > Wendell's CoreWin R/W model where the base offset cell in > predecrement and postincrement indirect modes is computed within > the write limit. New switches -R and -W > can be used to set the limits, which must be divisors of > CORESIZE. Also, the predefined symbols READLIMIT and WRITELIMIT > are available for warriors to use during assembly. > > Note: compiling in R/W limit support slows down the simulator by > 170% even if both the R/W limits are equal to CORESIZE! > > Note 2: Consider this one to be in a beta-test phase, as I'm not > 100% sure I've got the details exactly right. Just wanted to get > it out the door before dropping off line for a bit. I think one thing is missing. If you let fight one Warrior alone, and he survives without selfdestruction he should win. But pmars output is 0 0, For example exmars, means exhaust puts out 1 0 Sascha -- Parlez vous Redcode? From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 07/26/04 Date: 26 Jul 2004 07:36:57 -0400 Message-ID: <200407260409.i6Q4911k019214@gevjon.ttsg.com> Weekly Status on 07/26/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sat Jul 24 04:10:43 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 34/ 28/ 37 Borgir Christian Schmidt 140 23 2 43/ 47/ 10 Arrow Christian Schmidt 140 191 3 32/ 26/ 42 Gargantuan Roy van Rijn 138 9 4 31/ 26/ 43 Savage Flowing Battleworn Pascal Hofstee 137 7 5 40/ 44/ 16 Dandelion 3 Christian Schmidt 136 109 6 43/ 52/ 5 Claw III Christian Schmidt 135 27 7 32/ 29/ 40 Frantic Roy van Rijn 135 1 8 30/ 26/ 44 Son of Vain Oversby/Pihlaja 134 2556 9 34/ 35/ 31 2b||!2b Sascha Zapf 134 47 10 31/ 29/ 40 elf Christian Schmidt 134 53 11 31/ 29/ 41 Yorba Roy 133 122 12 26/ 20/ 54 Black Knight Christian Schmidt 132 13 13 29/ 26/ 45 slime test 1.00 David Houston 132 318 14 26/ 20/ 54 unheard-of II Christian Schmidt 132 5 15 38/ 43/ 19 ptest2b Philip Thorne 132 3 16 28/ 24/ 49 paper(paper(paper(clear)) Sascha Zapf 132 92 17 28/ 27/ 45 Gremlin van Rijn/Grabun 130 222 18 41/ 52/ 7 Evil Willow John Metcalf 130 16 19 39/ 47/ 14 HazyLazy C 11 CS SG 130 200 20 24/ 18/ 58 Maelstrom Roy van Rijn 129 132 21 38/ 52/ 9 Solo 3 Roy van Rijn 124 2 From: Koth Subject: KOTH.ORG: Status - Standard 07/26/04 Date: 26 Jul 2004 07:37:15 -0400 Message-ID: <200407260400.i6Q4009h019084@gevjon.ttsg.com> Weekly Status on 07/26/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Tue Jul 20 10:06:23 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 42/ 25/ 33 The Next Step '88 David Houston 159 11 2 44/ 38/ 17 Tangle Trap 3 David Moore 150 24 3 37/ 24/ 39 A.I.P. Christian Schmidt 150 3 4 47/ 46/ 7 Scan Test C 6 Steve Gunnell 149 34 5 45/ 42/ 13 Cold as November Rain... John Metcalf 148 9 6 46/ 44/ 10 Speeed 88mph Christian Schmidt 148 1 7 43/ 40/ 17 My 1st try Christian Schmidt 147 27 8 36/ 26/ 38 Freight Train David Moore 146 196 9 35/ 26/ 39 Test Alexander (Sasha) Wa 145 135 10 42/ 41/ 17 Stasis David Moore 144 303 11 38/ 32/ 30 The Seed Roy van Rijn 143 13 12 35/ 27/ 38 Guardian Ian Oversby 143 195 13 37/ 32/ 31 vala John Metcalf 141 118 14 39/ 40/ 21 PacMan David Moore 138 225 15 39/ 41/ 19 '88 test IV John Metcalf 137 89 16 33/ 30/ 36 Pixie 88 Lukasz Grabun 136 25 17 26/ 17/ 57 unheard-of '88 Christian Schmidt 136 2 18 40/ 46/ 14 Blur '88 Anton Marsden 134 233 19 40/ 48/ 12 Foggy Swamp Beppe Bezzi 133 192 20 29/ 25/ 46 Test I Ian Oversby 132 252 21 6/ 92/ 2 noimp88 Guillermo Guti�rrez 21 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 07/26/04 Date: 26 Jul 2004 07:37:10 -0400 Message-ID: <200407260403.i6Q430UN019130@gevjon.ttsg.com> Weekly Status on 07/26/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun Jul 25 12:36:47 EDT 2004 # Name Author Score Age 1 the story continues John Metcalf 15 2 2 Leap test Christian Schmidt 9 38 3 Dodge Viper Christian Schmidt 9 36 4 Her Majesty P.Kline 6 471 5 The Survivor Philip Kendall 6 82 6 not king of the hill FatalC 5 197 7 Zorca Christian Schmidt 5 29 8 fine powder John Metcalf 5 9 9 foundling John Metcalf 3 18 10 the grasshopper prince Simon Wainwright 3 1 11 dark towers John Metcalf 2 3 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 07/26/04 Date: 26 Jul 2004 07:37:06 -0400 Message-ID: <200407260406.i6Q460ti019174@gevjon.ttsg.com> Weekly Status on 07/26/04 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Sun Jul 18 13:40:47 EDT 2004 # %W/ %L/ %T Name Author Score Age 1 44/ 35/ 20 Fatamorgana X Zul Nadzri 153 1 2 41/ 37/ 22 The X Machine Zul Nadzri 145 25 3 40/ 39/ 20 Eliminator X Zul Nadzri 141 26 4 43/ 44/ 13 Fire and Ice II David Moore 141 114 5 38/ 38/ 24 Black Moods Ian Oversby 138 210 6 28/ 18/ 54 xd100 test David Houston 137 11 7 35/ 34/ 31 Trefoil F 13 Steve Gunnell 136 97 8 28/ 21/ 51 Glenstorm John Metcalf 135 76 9 36/ 40/ 24 Simply Intelligent Zul Nadzri 131 7 10 20/ 9/ 71 Evol Cap 4 X John Wilkinson 130 283 11 28/ 26/ 46 Olivia X Ben Ford 129 95 12 23/ 16/ 61 Kin John Metcalf 129 122 13 27/ 26/ 47 Venom v0.2b Christian Schmidt 129 236 14 35/ 41/ 24 Ogre Christian Schmidt 129 162 15 20/ 12/ 68 Denial David Moore 129 155 16 36/ 44/ 20 Giant Hazy Test 13 Steve Gunnell 128 41 17 28/ 27/ 45 KAT v5 Dave Hillis 128 146 18 17/ 7/ 76 Evolve X v4.0 John Wilkinson 127 231 19 20/ 14/ 66 Blotter X J. Pohjalainen 127 16 20 33/ 39/ 29 Controlled Aggression Ian Oversby 126 214 21 23/ 63/ 13 the grasshopper king Simon Wainwright 84 0 From: achillu@tin.it (LAchi) Subject: ICC2004 - Corewar Meeting in Berlin Date: 26 Jul 2004 09:15:34 -0700 Message-ID: <1eeccf2e.0407260815.a8aac9d@posting.google.com> Hello all. I hope I am the first to post someting about the meeting ;) Well, in few words, it was a really positive experience. I want to publically thank our host Christian "Fizmo" Schmidt who organized the whole thing. After I've met most of the people I only read of on the hills and on rec.games.corewar, I have improved my will to keep on trying climbing the hills. I wish to greet all the people who come to Berlin, and I hope to meet you again, despite of our far distances. Yours sincerely, Achille "LAchi" Astolfi. (Say it "Lucky"). From: M Joonas Pihlaja Subject: Re: pMARS patch set Date: 26 Jul 2004 12:58:38 -0400 Message-ID: On Sat, 24 Jul 2004, Sascha Zapf wrote: > I think one thing is missing. If you let fight one Warrior alone, and he > survives without selfdestruction he should win. But pmars output is 0 0, > For example exmars, means exhaust puts out 1 0 hm.. The default score formula is (W^2-1)/2 where W = #warriors, S=#survivors for warriors that don't die furing a battle, with 0 points given for any warrior that dies. So 0 is actually the correct score since always W^2 - 1 = 0 for a single warrior. You should be able to get around this by setting the score formula to something like 'S==1', but I just tried that and S is always equal to one for single warrior battles. :-( Joonas From: M Joonas Pihlaja Subject: Re: pMARS patch set Date: 26 Jul 2004 12:58:34 -0400 Message-ID: On Sat, 24 Jul 2004, Ilmari Karonen wrote: > > - 02bimmediate.patch: > > Fixes a bug when evaluating immediate mode B-operands where the > > B-register wasn't reloaded after evaluating the A-operand. [snip] > If this was in fact a violation of the '94 draft spec, how come > nobody noticed it before? Come to think of it, might there be > some warriors around that depend on this bug? Two reasons. Firstly, it's very difficult to actually come across this bug as the instruction needs to modify the b-field's value in the a-field (i.e. either < or > as the a-mode), and secondly, because sim.c currently goes out of its way to *not* re-load the b-register when the b-field is immediate, making it look more official. Or that's my theory anyway. :) Nevertheless, if you look at the draft it clearly says that the b-operand's registers are explicitly loaded after the a-operand is completely evaluated. For post-increment indirect this is made explicit in lines 606-609 which say: [...The] 0606 B-number of the instruction pointed to by the A/B-number of the current 0607 instruction is incremented after the A/B-instruction is stored, but 0608 before the B-operand is evaluated (for post-increment A-mode), or 0609 the operation is executed (for post-increment indirect B-mode). Moreover, the example simulator loads the b-register after computing the read and write pointers of the b-operand (line 989 of the draft.) > > - 04optA.patch: > > Adds an command line switch -A that can be used to assemble only > > the input warriors and not run any fights. Emits '94 Draft > > compliant load files. > > How is that different from -r 0 (except, I suppose, for the value of > ROUNDS)? It emits proper load files without the 'Program "" by "" banner. Also, if a hill server uses -r 0 to assemble files to check for a Good Compile of Your Warrior and check for compliance to hill rules, but then re-assembles with a different ROUNDS when actually fighting, then the difference in ROUNDS can be used by unscrupulous players to sneak in code that doesn't comply to the hill rules. AFAIK, this has caused at least one KOTH server to stop accepting submissions, in the past. Joonas Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 28 Jul 2004 04:15:55 GMT Archive-name: games/corewar-faq Last-Modified: September 4, 1999 Version: 4.2 URL: http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html Copyright: (c) 1999 Anton Marsden Maintainer: Anton Marsden Posting-Frequency: once every 2 weeks Core War Frequently Asked Questions (rec.games.corewar FAQ) These are the Frequently Asked Questions (and answers) from the Usenet newsgroup rec.games.corewar. A plain text version of this document is posted every two weeks. The latest hypertext version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html and the latest plain text version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.txt. This document is currently being maintained by Anton Marsden (anton@paradise.net.nz). Last modified: Sat Sep 4 00:22:22 NZST 1999 ------------------------------------------------------------------------ To Do * Add the new No-PSpace '94 hill location * Add online location of Dewdney's articles * Make question 17 easier to understand. Add a state diagram? * Add info about infinite hills, related games (C-Robots, Tierra?, ...) * New question: How do I know if my warrior is any good? Refer to beginners' benchmarks, etc. * Add a Who's Who list? * Would very much like someone to compile a collection of the "revolutionary" warriors so that beginners can see how the game has developed over the years. Mail me if interested. ------------------------------------------------------------------------ What's New * Changed primary location of FAQ (again!) * Changed Philip Kendall's home page address. * Updated list server information * Changed primary location of FAQ * Vector-launching code was fixed thanks to Ting Hsu. * Changed the location of Ryan Coleman's paper (LaunchPad -> Launchpad) * Changed pauillac.inria.fr to para.inria.fr ------------------------------------------------------------------------ Table of Contents 1. What is Core War 2. Is it "Core War" or "Core Wars"? 3. Where can I find more information about Core War? 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 6. What is the ICWS? 7. What is Core Warrior? 8. Where are the Core War archives? 9. Where can I find a Core War system for ...? 10. Where can I find warrior code? 11. I do not have FTP. How do I get all this great stuff? 12. I do not have access to Usenet. How do I post and receive news? 13. Are there any Core War related WWW sites? 14. What is KotH? How do I enter? 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 16. How does SLT (Skip if Less Than) work? 17. What is the difference between in-register and in-memory evaluation? 18. What is P-space? 19. What does "Missing ;assert .." in my message from KotH mean? 20. How should I format my code? 21. Are there any other Core War related resources I should know about? 22. What does (expression or term of your choice) mean? 23. Other questions? ------------------------------------------------------------------------ 1. What is Core War? Core War is a game played by two or more programs (and vicariously by their authors) written in an assembly language called Redcode and run in a virtual computer called MARS (for Memory Array Redcode Simulator). The object of the game is to cause all processes of the opposing program to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardised by the ICWS, and is therefore transportable between all standard Core War systems. The system in which the programs run is quite simple. The core (the memory of the simulated computer) is a continuous array of instructions, empty except for the competing programs. The core wraps around, so that after the last instruction comes the first one again. There are no absolute addresses in Core War. That is, the address 0 doesn't mean the first instruction in the memory, but the instruction that contains the address 0. The next instruction is 1, and the previous one obviously -1. However, all numbers are treated as positive, and are in the range 0 to CORESIZE-1 where CORESIZE is the amount of memory locations in the core - this means that -1 would be treated as CORESIZE-1 in any arithmetic operations, eg. 3218 + 7856 = (3218 + 7856) mod CORESIZE. Many people get confused by this, and it is particularly important when using the SLT instruction. Note that the source code of a program can still contain negative numbers, but if you start using instructions like DIV #-2, #5 it is important to know what effect they will have when executed. The basic unit of memory in Core War is one instruction. Each Redcode instruction contains three parts: * the opcode * the source address (a.k.a. the A-field) * the destination address (a.k.a. the B-field) The execution of the programs is equally simple. The MARS executes one instruction at a time, and then proceeds to the next one in the memory, unless the instruction explicitly tells it to jump to another address. If there is more than one program running, (as is usual) the programs execute alternately, one instruction at a time. The execution of each instruction takes the same time, one cycle, whether it is MOV, DIV or even DAT (which kills the process). Each program may have several processes running. These processes are stored in a task queue. When it is the program's turn to execute an instruction it dequeues a process and executes the corresponding instruction. Processes that are not killed during the execution of the instruction are put back into the task queue. Processes created by a SPL instruction are added to the task queue after the creating process is put back into the task queue. [ToC] ------------------------------------------------------------------------ 2. Is it "Core War" or "Core Wars"? Both terms are used. Early references were to Core War. Later references seem to use Core Wars. I prefer "Core War" to refer to the game in general, "core wars" to refer to more than one specific battle. [ToC] ------------------------------------------------------------------------ 3. Where can I find more information about Core War? Core War was first described in the Core War Guidelines of March, 1984 by D. G. Jones and A. K. Dewdney of the Department of Computer Science at The University of Western Ontario (Canada). Dewdney wrote several "Computer Recreations" articles in Scientific American which discussed Core War, starting with the May 1984 article. Those articles are contained in two anthologies: Library of Author Title Published ISBN Congress Call Number The Armchair Dewdney, Universe: An New York: W. QA76.6 .D517 A. K. Exploration of H. Freeman �0-7167-1939-8 1988 Computer Worlds 1988 The Magic 0-7167-2125-2 Dewdney, Machine: A New York: W.(Hardcover), QA76.6 A. K. Handbook of H. Freeman �0-7167-2144-9 .D5173 1990 Computer Sorcery 1990 (Paperback) A.K. Dewdney's articles are still the most readable introduction to Core War, even though the Redcode dialect described in there is no longer current. For those who are interested, Dewdney has a home page at http://www.csd.uwo.ca/faculty/akd/. [ToC] ------------------------------------------------------------------------ 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A draft of the official standard (ICWS'88) is available as ftp://www.koth.org/corewar/documents/standards/redcode-icws-88.Z. This document is formatted awkwardly and contains ambiguous statements. For a more approachable intro to Redcode, take a look at Mark Durham's tutorials, ftp://www.koth.org/corewar/documents/tutorial.1.Z and ftp://www.koth.org/corewar/documents/tutorial.2.Z. Steven Morrell has prepared a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. This and various other tutorials can be found at http://www.koth.org/papers.html. Even though ICWS'88 is still the "official" standard, you will find that most people are playing by ICWS'94 draft rules and extensions. [ToC] ------------------------------------------------------------------------ 5. What is ICWS'94? Which simulators support ICWS'94? There is an ongoing discussion about future enhancements to the Redcode language. A proposed new standard, dubbed ICWS'94, is currently being evaluated. A major change is the addition of "instruction modifiers" that allow instructions to modify A-field, B-field or both. Also new is a new addressing modes and unrestricted opcode and addressing mode combination ("no illegal instructions"). ICWS'94 is backwards compatible; i.e. ICWS'88 warriors will run correctly on an ICWS'94 system. Take a look at the ICWS'94 draft at ftp://www.koth.org/corewar/documents/icws94.0202.Z for more information. There is a HTML version of this document available at http://www.koth.org/info/icws94.html. You can try out the new standard by submitting warriors to the '94 hills of the KotH servers. Two corewar systems currently support ICWS'94, pMARS (many platforms) and Redcoder (Mac), both available at ftp://www.koth.org/corewar. Note that Redcoder only supports a subset of ICWS'94. [ToC] ------------------------------------------------------------------------ 6. What is the ICWS? About one year after Core War first appeared in Scientific American, the "International Core War Society" (ICWS) was established. Since that time, the ICWS has been responsible for the creation and maintenance of Core War standards and the running of Core War tournaments. There have been six annual tournaments and two standards (ICWS'86 and ICWS'88). The ICWS is no longer active. [ToC] ------------------------------------------------------------------------ 7. What is Core Warrior? Following in the tradition of the Core War News Letter, Push Off, and The 94 Warrior, Core Warrior is a newsletter about strategies and current standings in Core War. Started in October 1995, back issues of Core Warrior (and the other newsletters) are available at http://para.inria.fr/~doligez/corewar/. There is also a Core Warrior index page at http://www.kendalls.demon.co.uk/pak21/corewar/warrior.html which has a summary of the contents of each issue of Core Warrior. Many of the earlier issues contain useful information for beginners. [ToC] ------------------------------------------------------------------------ 8. Where are the Core War archives? Many documents such as the guidelines and the ICWS standards along with previous tournament Redcode entries and complete Core War systems are available via anonymous ftp from ftp://ftp.csua.berkeley.edu/pub/corewar. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@csua.berkeley.edu) is the archive administrator. When uploading to /pub/corewar/incoming, ask Jon to move your upload to the appropriate directory and announce it on the net. This site is mirrored at: * http://www.koth.org/corewar/ * ftp://www.koth.org/corewar/ * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror The plain text version of this FAQ is automatically archived by news.answers (but this version is probably out-of-date). [ToC] ------------------------------------------------------------------------ 9. Where can I find a Core War system for . . . ? Core War systems are available via anonymous FTP from www.koth.org in the corewar/systems directory. Currently, there are UNIX, IBM PC-compatible, Macintosh, and Amiga Core War systems available there. It is a good idea to check ftp://www.koth.org/corewar/incoming for program updates first. CAUTION! There are many, many Core War systems available which are NOT ICWS'88 (or even ICWS'86) compatible available at various archive sites other than www.koth.org. Generally, the older the program - the less likely it will be ICWS compatible. If you are looking for an ICWS'94 simulator, get pMARS, which is available for many platforms and can be downloaded from: * ftp://ftp.csua.berkeley.edu/pub/corewar (original site) * ftp://www.koth.org/corewar (koth.org mirror) * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror (Planar mirror) * http://www.nc5.infi.net/~wtnewton/corewar/ (Terry Newton) * ftp://members.aol.com/ofechner/corewar (Fechter) Notes: * If you have trouble running pMARS with a graphical display under Win95 then check out http://www.koth.org/pmars.html which should have a pointer to the latest compilation of pMARS for this environment. * RPMs for the Alpha, PowerPC, Sparc and i386 can be found at ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars-rpm/ Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. Below is a not necessarily complete or up-to-date list of what's available at www.koth.org: MADgic41.lzh corewar for the Amiga, v4.1 MAD4041.lzh older version? MAD50B.lha corewar for the Amiga, beta version 5.0 Redcoder-21.hqx corewar for the Mac, supports ICWS'88 and '94 (without extensions) core-11.hqx corewar for the Mac core-wars-simulator.hqx same as core-11.hqx? corewar_unix_x11.tar.Z corewar for UNIX/X-windows, ICWS'86 but not ICWS'88 compatible koth31.tar.Z corewar for UNIX/X-windows. This program ran the former KotH server at intel.com koth.shar.Z older version kothpc.zip port of older version of KotH to the PC deluxe20c.tar.Z corewar for UNIX (broken X-windows or curses) and PC mars.tar.Z corewar for UNIX, likely not ICWS'88 compatible icons.zip corewar icons for MS-Windows macrored.zip a redcode macro-preprocessor (PC) c88v49.zip PC corewar, textmode display mars88.zip PC corewar, graphics mode display corwp302.zip PC corewar, textmode display, slowish mercury2.zip PC corewar written in assembly, fast! mtourn11.zip tournament scheduler for mercury (req. 4DOS) pmars08s.zip portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars08s.tar.Z same as above pmars08.zip PC executables with graphics display, req 386+ macpmars02.sit.hqx pMARS executable for Mac (port of version 0.2) buggy, no display MacpMARS1.99a.cpt.hqx port of v0.8 for the Mac, with display and debugger MacpMARS1.0s.cpt.hqx C source (MPW, ThinkC) for Mac frontend pvms08.zip pMARS v0.8 for VMS build files/help (req. pmars08s.zip) ApMARS03.lha pMARS executable for Amiga (port of version 0.3.1) wincor11.zip MS-Windows system, shareware ($15) [ToC] ------------------------------------------------------------------------ 10. Where can I find warrior code? To learn the game, it is a good idea to study previously posted warrior code. The FTP archives have code in the ftp://www.koth.org/corewar/redcode directory. A clearly organized on-line warrior collection is available at the Core War web sites (see below). [ToC] ------------------------------------------------------------------------ 11. I do not have FTP. How do I get all this great stuff? There is an FTP email server at bitftp@pucc.princeton.edu. This address may no longer exist. I haven't tested it yet. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. Note that many FTP email gateways are shutting down due to abuse. To get a current list of FTP email servers, look at the Accessing the Internet by E-mail FAQ posted to news.answers. If you don't have access to Usenet, you can retrieve this FAQ one of the following ways: * Send mail to mail-server@rtfm.mit.edu with the body containing "send usenet/news.answers/internet-services/access-via-email". * Send mail to mailbase@mailbase.ac.uk with the body containing "send lis-iis e-access-inet.txt". [ToC] ------------------------------------------------------------------------ 12. I do not have access to Usenet. How do I post and receive news? To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Koth.Org list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@koth.org. You can send mail to corewar-l@koth.org to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (ttsg@ttsg.com). Servers that allow you to post (but not receive) articles are available. Refer to the Accessing the Internet by E-Mail FAQ for more information. [ToC] ------------------------------------------------------------------------ 13. Are there any Core War related WWW sites? You bet. Each of the two KotH sites sport a world-wide web server. Stormking's Core War page is http://www.koth.org; pizza's is http://www.ecst.csuchico.edu/~pizza/koth . Damien Doligez (a.k.a. Planar) has a web page that features convenient access to regular newsletters (Push Off, The '94 Warrior, Core Warrior) and a well organized library of warriors: http://para.inria.fr/~doligez/corewar/. Convenient for U.S. users, this site is also mirrored at koth.org. [ToC] ------------------------------------------------------------------------ 14. What is KotH? How do I enter? King Of The Hill (KotH) is an ongoing Core War tournament available to anyone with email. You enter by submitting via email a Redcode program (warrior) with special comment lines. You will receive a reply indicating how well your program did against the current top programs "on the hill". There are two styles of KotH tournaments, "classical" and "multi-warrior". The "classical" KotH is a one-on-one tournament, that is your warrior will play 100 battles against each of the 20 other programs currently on the Hill. You receive 3 points for each win and 1 point for each tie. (The existing programs do not replay each other, but their previous battles are recalled.) All scores are updated to reflect your battles and all 21 programs are ranked from high to low. If you are number 21 you are pushed off the Hill, if you are higher than 21 someone else is pushed off. In "multi-warrior" KotH, all warriors on the hill fight each other at the same time. Score calculation is a bit more complex than for the one-on-one tournament. Briefly, points are awarded based on how many warriors survive until the end of a round. A warrior that survives by itself gets more points than a warrior that survives together with other warriors. Points are calculated from the formula (W*W-1)/S, where W is the total number of warriors and S the number of surviving warriors. The pMARS documentation has more information on multi-warrior scoring. The idea for an email-based Core War server came from David Lee. The original KotH was developed and run by William Shubert at Intel starting in 1991, and discontinued after almost three years of service. Currently, KotHs based on Bill's UNIX scripts but offering a wider variety of hills are are running at two sites: koth@koth.org is maintained by Scott J. Ellentuch (tuc@ttsg.com) and pizza@ecst.csuchico.edu by Thomas H. Davies (sd@ecst.csuchico.edu). Up until May '95, the two sites provided overlapping services, i.e. the some of the hill types were offered by both "pizza" and "stormking". To conserve resources, the different hill types are now divided up among the sites. The way you submit warriors to both KotHs is pretty much the same. Therefore, the entry rules described below apply to both "pizza" and "stormking" unless otherwise noted. Entry Rules for King of the Hill Corewar * Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. * Put a line starting with ";redcode" (or ";redcode-94", etc., see below) at the top of your program. This MUST be the first line. Anything before it will be lost. If you wish to receive mail on every new entrant, use ";redcode verbose". Otherwise you will only receive mail if a challenger makes it onto the hill. Use ";redcode quiet" if you wish to receive mail only when you get shoved off the hill. Additionally, adding ";name " and ";author " will be helpful in the performance reports. Do NOT have a line beginning with ";address" in your code; this will confuse the mail daemon and you won't get mail back. Using ";name" is mandatory on the Pizza hills. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently seven separate hills you can select by starting your program with ;redcode-94, ;redcode-b, ;redcode-lp, ;redcode-x, ;redcode, ;redcode-94x or ;redcode-94m. The former four run at "pizza", the latter three at "stormking". More information on these hills is listed below. * Mail this file to koth@koth.org or pizza@ecst.csuchico.edu. "Pizza" requires a subject of "koth" (use the -s flag on most mailers). * Within a few minutes you should get mail back telling you whether your program assembled correctly or not. If it did assemble correctly, sit back and wait; if not, make the change required and re-submit. * In an hour or so you should get more mail telling you how your program performed against the current top 20 (or 10) programs. If no news arrives during that time, don't worry; entries are put in a queue and run through the tournament one at a time. A backlog may develop. Be patient. If your program makes it onto the hill, you will get mail every time a new program makes it onto the hill. If this is too much mail, you can use ";redcode[-??] quiet" when you first mail in your program; then you will only get mail when you make it on the top 25 list or when you are knocked off. Using ";redcode[-??] verbose" will give you even more mail; here you get mail every time a new challenger arrives, even if they don't make it onto the top 25 list. Often programmers want to try out slight variations in their programs. If you already have a program named "foo V1.0" on the hill, adding the line ";kill foo" to a new program will automatically bump foo 1.0 off the hill. Just ";kill" will remove all of your programs when you submit the new one. The server kills programs by assigning an impossibly low score; it may therefore take another successful challenge before a killed program is actually removed from the hill. Sample Entry ;redcode ;name Dwarf ;author A. K. Dewdney ;strategy Throw DAT bombs around memory, hitting every 4th memory cell. ;strategy This program was presented in the first Corewar article. bomb DAT #0 dwarf ADD #4, bomb MOV bomb, @bomb JMP dwarf END dwarf ; Programs start at the first line unless ; an "END start" pseudo-op appears to indicate ; the first logical instruction. Also, nothing ; after the END instruction will be assembled. Duration Max. Hill Name Hill Core Max. Before Entry Min. Rounds Instr. Size Size Processes Distance Fought Set Tie Length Pizza's ICWS '94 Draft Hill Extended (Accessed with 25 8000 8000 80000 100 100 200 ICWS '94 ";redcode-94") Draft Pizza's Beginner's Extended Hill (Accessed 25 8000 8000 80000 100 100 200 ICWS '94 with ";redcode-b") Draft Pizza's Experimental Extended (Small) Hill 25 800 800 8000 20 20 200 ICWS '94 (Accessed with Draft ";redcode-x") Pizza's Limited Process (LP) Hill Extended (Accessed with 25 8000 8 80000 200 200 200 ICWS '94 ";redcode-lp") Draft Stormking's ICWS '88 Standard Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '88 ";redcode") Stormking's ICWS '94 No Pspace Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '94 ";redcode-94nop") Stormking's ICWS '94 Experimental Extended (Big) Hill 20 55440 55440 500000 200 200 250 ICWS '94 (Accessed with Draft ";redcode-94x") Stormking's ICWS '94 Multi-Warrior Extended Hill (Accessed 10 8000 8000 80000 100 100 200 ICWS '94 with Draft ";redcode-94m") Note: Warriors on the beginner's hill are retired at age 100. If you just want to get a status report without actually challenging the hills, send email with ";status" as the message body (and don't forget "Subject: koth" for "pizza"). If you send mail to "pizza" with "Subject: koth help" you will receive instructions that may be more up to date than those contained in this document. At "stormking", a message body with ";help" will return brief instructions. If you submit code containing a ";test" line, your warrior will be assembled but not actually pitted against the warriors on the hill. At "pizza", you can use ";redcode[-??] test" to do a test challenge of the Hill without affecting the status of the Hill. These challenges can be used to see how well your warrior does against the current Hill warriors. All hills run portable MARS (pMARS) version 0.8, a platform-independent Core War system available at www.koth.org. The '94 and '94x hills allow five experimental opcodes and three experimental addressing modes currently not covered in the ICWS'94 draft document: * LDP - Load P-Space * STP - Store P-Space * SEQ - Skip if EQual (synonym for CMP) * SNE - Skip if Not Equal * NOP - (No OPeration) * * - indirect using A-field as pointer * { - predecrement indirect using A-field * } - postincrement indirect using A-field [ToC] ------------------------------------------------------------------------ 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? Core is initialized to DAT 0, 0. This is an illegal instruction (in source code) under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you have a DAT 0, 0 instruction in your source code - only DAT #0, #0. So this begs the question, how to compare something to see if it is empty core. The answer is, most likely the instruction before your first instruction and the instruction after your last instruction are both DAT 0, 0. You can use them, or any other likely unmodified instructions, for comparison. Note that under ICWS'94, DAT 0, 0 is a legal instruction. [ToC] ------------------------------------------------------------------------ 16. How does SLT (Skip if Less Than) work? SLT gives some people trouble because of the way modular arithmetic works. It is important to note that all negative numbers are converted to positive numbers before a battles begins. Example: -1 becomes M-1 where M is the memory size (core size). Once you realize that all numbers are treated as positive, it is clear what is meant by "less than". It should also be clear that no number is less than zero. [ToC] ------------------------------------------------------------------------ 17. What is the difference between in-register and in-memory evaluation? These terms refer to the way instruction operands are evaluated. The '88 Redcode standard ICWS'88 is unclear about whether a simulator should "buffer" the result of A-operand evaluation before the B-operand is evaluated. Simulators that do buffer are said to use in-register evaluation, those that don't, in-memory evaluation. ICWS'94 clears this confusion by mandating in-register evaluation. Instructions that execute differently under these two forms of evaluation are MOV, ADD, SUB, MUL, DIV and MOD where the effective address of the A-operand is modified by evaluation of the B-operand. This is best illustrated by an example: L1 mov L2, mov.i #0, impsize Bootstrapping Strategy of copying the active portion of the program away from the initial location, leaving a decoy behind and making the relocated program as small as possible. B-Scanners Scanners which only recognize non-zero B-fields. example add #10, scan scan jmz example, 10 c Measure of speed, equal to one location per cycle. Speed of light. CMP-Scanner A Scanner which uses a CMP instruction to look for opponents. example add step, scan scan cmp 10, 30 jmp attack jmp example step dat #20, #20 Colour Property of bombs making them visible to scanners, causing them to attack useless locations, thus slowing them down. example dat #100 Core-Clear Code that sequentially overwrites core with DAT instructions; usually the last part of a program. Decoys Bogus or unused instructions meant to slow down scanners. Typically, DATs with non-zero B-fields. Decrement Resistant Property of warriors making them functional (or at least partially functional) when overrun by a DJN-stream. DJN-Stream (also DJN-Train) Using a DJN command to rapidly decrement core locations. example ... ... djn example, <4000 Dwarf The prototypical small bomber. Gate-busting (also gate-crashing) technique to "interweave" a decrement-resistant imp-spiral (e.g. MOV 0, 2668) with a standard one to overrun imp-gates. Hybrids warriors that combine two or more of the basic strategies, either in sequence (e.g. stone->paper) or in parallel (e.g. imp/stone). Imp Program which only uses the MOV instruction. example mov 0, 1 or example mov 0, 2 mov 0, 2 Imp-Gate A location in core which is bombed or decremented continuously so that an Imp can not pass. Also used to describe the program-code which maintains the gate. example ... ... spl 0, mov.i #0,IMPSIZE Mirror see reflection. On-axis/off-axis On-axis scanners compare two locations M/2 apart, where M is the memory size. Off-axis scanners use some other separation. Optimal Constants (also optima-type constants) Bomb or scan increments chosen to cover core most effectively, i.e. leaving gaps of uniform size. Programs to calculate optimal constants and lists of optimal numbers are available at www.koth.org. Paper A Paper-like program is one which replicates itself many times. Part of the Scissors (beats) Paper (beats) Stone (beats Scissors) analogy. P-Warrior A warrior which uses the results of previous round(s) in order to determine which strategy it will use. Pit-Trapper (also Slaver, Vampire). A program which enslaves another. Usually accomplished by bombing with JMPs to a SPL 0 pit with an optional core-clear routine. Q^2 Scan A modern version of the Quick Scan where anything found is attacked almost immediately. Quick Scan 2c scan of a set group of core locations with bombing if anything is found. Both of the following codes snips scan 16 locations and check for a find. If anything is found, it is attacked, otherwise 16 more locations are scanned. Example: start s1 for 8 ;'88 scan cmp start+100*s1, start+100*s1+4000 ;check two locations mov #start+100*s1-found, found ;they differ so set pointer rof jmn attack, found ;if we have something, get it s2 for 8 cmp start+100*(s2+6), start+100*(s2+6)+4000 mov #start+100*(s2+6)-found, found rof found jmz moveme, #0 ;skip attack if qscan found nothing attack cmp @found, start-1 ;does found points to empty space? add #4000, found ;no, so point to correct location mov start-1, @found ;move a bomb moveme jmp 0, 0 In ICWS'94, the quick scan code is more compact because of the SNE opcode: start ;'94 scan s1 for 4 sne start+400*s1, start+400*s1+100 ;check two locations seq start+400*s1+200, start+400*s1+300 ;check two locations mov #start+400*s1-found, found ;they differ so set pointer rof jmn which, found ;if we have something, get it s2 for 4 sne start+400*(s2+4), start+400*(s2+4)+100 seq start+400*(s2+4)+200, start+400*(s2+4)+300 mov #start+400*(s2+4)-found-100, found rof found jmz moveme, #0 ;skip attack if qscan found nothing add #100, -1 ;increment pointer till we get the which jmn -1, @found ;right place mov start-1, @found ;move a bomb moveme jmp 0, 0 Reflection Copy of a program or program part, positioned to make the active program invisible to a CMP-scanner. Replicator Generic for Paper. A program which makes many copies of itself, each copy also making copies. Self-Splitting Strategy of amplifying the number of processes executing a piece of code. example spl 0 loop add #10, example mov example, @example jmp loop Scanner A program which searches through core for an opponent rather than bombing blindly. Scissors A program designed to beat replicators, usually a (B-field scanning) vampire. Part of the Paper-Scissors-Stone analogy. Self-Repair Ability of a program to fix it's own code after attack. Silk A replicator which splits off a process to each new copy before actually copying the code. This allows it to replicate extremely quickly. This technique is only possible under the '94 draft, because it requires post-increment indirect addressing. Example: spl 1 mov -1, 0 spl 1 ;generate 6 consecutive processes silk spl 3620, #0 ;split to new copy mov >-1, }-1 ;copy self to new location mov bomb, >2000 ;linear bombing mov bomb, }2042 ;A-indirect bombing for anti-vamp jmp silk, {silk ;reset source pointer, make new copy bomb dat >2667, >5334 ;anti-imp bomb Slaver see Pit-Trapper. Stealth Property of programs, or program parts, which are invisible to scanners, accomplished by using zero B-fields and reflections. Stone A Stone-like program designed to be a small bomber. Part of the Paper-Scissors-Stone analogy. Stun A type of bomb which makes the opponent multiply useless processes, thus slowing it down. Example is referred to as a SPL-JMP bomb. example spl 0 jmp -1 Two-Pass Core-Clear (also SPL/DAT Core-Clear) core clear that fills core first with SPL instructions, then with DATs. This is very effective in killing paper and certain imp-spiral variations. Vampire see Pit-Trapper. Vector Launch one of several means to start an imp-spiral running. As fast as Binary Launch, but requiring much less code. See also JMP/ADD Launch and Binary Launch. This example is one form of a Vector Launch: sz EQU 2667 spl 1 spl 1 jmp @vt, }0 vt dat #0, imp+0*sz ; start of vector table dat #0, imp+1*sz dat #0, imp+2*sz dat #0, imp+3*sz ; end of vector table imp mov.i #0, sz [ToC] ------------------------------------------------------------------------ 23. Other questions? Just ask in the rec.games.corewar newsgroup or contact me. If you are shy, check out the Core War archives first to see if your question has been answered before. [ToC] ------------------------------------------------------------------------ Credits Additions, corrections, etc. to this document are solicited. Thanks in particular to the following people who have contributed major portions of this document: * Mark Durham (wrote the original version of the FAQ) * Paul Kline * Randy Graham * Stefan Strack (maintained a recent version of the FAQ) ------------------------------------------------------------------------ Copyright � 1999 Anton Marsden. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ------------------------------------------------------------------------ From: fizmo_master@yahoo.com (Fizmo) Subject: LP hill warrior: Dental Disease Date: 28 Jul 2004 23:29:34 -0700 Message-ID: <9f53b5fb.0407282229.10f55b99@posting.google.com> Hi all, here is another LP hill warrior. It's a p-warrior using some optimized components as seen from the strategy line. The switching pattern is different to the original one giving me also a more effective use of the fourth component. Christian ;redcode-lp ;name Dental Disease ;author Christian Schmidt ;strategy p^3-warrior ;strategy switch : non-standard switching pattern ;strategy scanner: similar to LP-Scan v0.1 ;strategy but with different constants ;strategy stone : a triple of self-modifying ;strategy 3-line dwarfs ;strategy anti-cc: based on CLP but optimized ;strategy for the LP hill ;strategy s/p : copy of Roskilde ;assert 1 ;------stone/paper-------------------- siAwa1 equ 6897 siAwa2 equ 2842 siAwa3 equ 4582 siStep equ 1564 siStep2 equ 383 piStep1 equ 2990 piStep2 equ 1719 pa1 mov #6, #6 pGo mov p1-pstep pmove add preset ,psnare mov pb ,pescape pcopy mov >pescape ,}pescape jmn.b -1 ,pescape preset jmp p1+pstep ,-p1-pstep psnare jmp ptrap-pdriv,+pdriv ptrap mod.x #10 ,#1 stp.ab #0 ,#0 djn.b -1 ,-1 pincr mov 1 ,-1 pb dat pstep+p1-pescape,-plen end think From: fizmo_master@yahoo.com (Fizmo) Subject: LP hill warrior: Mad LP Date: 28 Jul 2004 23:40:14 -0700 Message-ID: <9f53b5fb.0407282240.49a45086@posting.google.com> Hi, here is another p-warrior. This time switching between a scanner and a stone/paper. The scanner is a Recon 2-clone modified for the LP hill while the stone/paper is based on Roskilde. Christian ;redcode-lp ;name Mad LP ;author Christian Schmidt ;strategy scanner, stone/paper ;strategy (Toxic Club, Roskilde) ;assert 1 step equ 6557 ptr equ (scan-8) dat 19, 19 diff jmp #-step, #-step spl #0, 0 wipe mov diff, >ptr w2 mov *wipe, >ptr djn.a wipe, length loop sub diff, @s2 scan sne (step*2) - 1, (step*2) - 7 sub diff, scan s2 seq *scan, @scan slt.a #20, scan timer djn loop, #1400 length sub.ba #0, #-7 tweak mov.ab @s2, @wipe t2 jmn *w2, timer djn.a Ups, I forgot that I already published this one. My brain seems a bit out of memory ;-) Christian From: Christoph Birk Subject: Koenigstuhl News Date: 29 Jul 2004 19:03:42 -0400 Message-ID: <200407291908.MAA16452@andromeda.ociw.edu> Congratulations to Christian Schmidt! His program 'Spiritual Black Dimension' is the new KotH of the 94nop-Koenigstuhl and TOP50-Koenigstuhl. Christoph http://www.ociw.edu/~birk/COREWAR/koenigstuhl.html From: sayembara@yahoo.com (Zul Nadzri) Subject: Re: Corewar History Date: 30 Jul 2004 07:20:42 -0700 Message-ID: > "Well, the First International Core War Tournament is history. > Thirty-one (31) entries arrived of which twenty-seven (27) survived > assembly to do battle. Battle programs employing every conceivable > strategy (well, almost) 'duked it out' inside of a row of AT&T 6300's > of the Computer Museum in Boston for two days. When the screens > cleared, a program named 'MICE' stood at the top of the scoreboard. > Across the globe, anxious authors awaited the results, already > plotting next year's strategies - tomorrow's warriors. 'MICE' almost repeated the history in Round 19 but it just couldn't beat its master! Congratulations ! :) From: sayembara@yahoo.com (Zul Nadzri) Subject: Multiwarrior Date: 30 Jul 2004 07:23:18 -0700 Message-ID: Suddenly, the hill have many new members after.....3 years? 5 years? Don't mess with ICC :) From: waknuk@yahoo.com (Philip Thorne) Subject: Re: ICC2004 - Corewar Meeting in Berlin Date: 31 Jul 2004 19:27:26 -0700 Message-ID: <4ee41bd6.0407311827.3599dbf9@posting.google.com> achillu@tin.it (LAchi) wrote in message news:<1eeccf2e.0407260815.a8aac9d@posting.google.com>... > [...] > I hope I am the first to post someting about the meeting ;) > Achille "LAchi" Astolfi. > [...] The meeting was already showing fruit on the -94xm hill when I looked this morning [although that seems to have hit a hiccup, as in been completely reversed, since ]. It was an stimulating experience and an interesting location. I hope to build on the former [!] in the not too distant future. Many thanks to Fizmo and all the attendees. Phil B.