From: Sascha Zapf Subject: myfactor Date: Mon, 01 Dec 2003 09:30:32 +0100 Message-ID: Hi, sorry, Lukasz Grabun Site is not reachable for me since three days. Is there somebody who can send me his myfactor.c ? Sascha -- Parlez vous Redcode? From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 12/01/03 Date: 1 Dec 2003 19:28:18 -0500 Message-ID: <200312010509.hB15918M024616@gevjon.ttsg.com> Weekly Status on 12/01/03 -=- 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 Nov 30 07:15:38 EST 2003 # %W/ %L/ %T Name Author Score Age 1 39/ 25/ 36 Spiritual Black Dimension Christian Schmidt 152 20 2 48/ 46/ 7 Recon 2 David Moore 149 640 3 43/ 39/ 18 goonie David Moore 147 74 4 32/ 18/ 50 Idioteque Roy van Rijn 147 3 5 42/ 38/ 20 Dandelion II Schmidt/Zapf 145 33 6 43/ 40/ 17 Hazy Test 63 Steve Gunnell 145 961 7 34/ 24/ 42 si21 Lukasz Grabun 144 1 8 43/ 43/ 13 O--* Bremer/Schmidt 143 46 9 33/ 26/ 40 Ironic Imps Roy van Rijn 140 146 10 32/ 25/ 43 Son of Vain Oversby/Pihlaja 139 2186 11 29/ 18/ 53 unheard-of II Christian Schmidt 139 13 12 31/ 24/ 45 Revenge Again Roy van Rijn 138 89 13 31/ 25/ 43 devilish 2 David Houston 138 135 14 34/ 30/ 36 Arctica Christian Schmidt 137 2 15 32/ 28/ 41 Static Miz 135 152 16 41/ 48/ 11 Kenshin B test 62 Steve Gunnell 135 105 17 29/ 25/ 46 Caffein Christian Schmidt 133 45 18 30/ 27/ 42 queen of the streets John Metcalf 133 104 19 31/ 29/ 40 bxsb6-test G.Labarga 133 4 20 30/ 28/ 42 ensnared me, reaching out John Metcalf 132 6 21 2/ 98/ 0 0 0 7 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 12/01/03 Date: 1 Dec 2003 19:28:14 -0500 Message-ID: <200312010503.hB1530p9024538@gevjon.ttsg.com> Weekly Status on 12/01/03 -=- 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 : Thu Nov 27 16:57:14 EST 2003 # Name Author Score Age 1 Double D David Houston 14 26 2 hawk John Metcalf 12 97 3 Her Majesty P.Kline 9 373 4 D-clearM Ken Espiritu 8 354 5 Djinn-19 Steve Gunnell 7 13 6 not king of the hill FatalC 7 99 7 The Mummy 1.02 David Houston 7 18 8 Old Grey Goose John Metcalf 2 6 9 Blowtorch Test C 15 Steve Gunnell 1 1 10 Mr Sheen Test E 42 Steve Gunnell 0 5 11 Blowtorch Test C 13 Steve Gunnell 0 2 From: Koth Subject: KOTH.ORG: Status - Standard 12/01/03 Date: 1 Dec 2003 19:28:10 -0500 Message-ID: <200312010500.hB1500tk024465@gevjon.ttsg.com> Weekly Status on 12/01/03 -=- 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 : Wed Nov 26 12:25:09 EST 2003 # %W/ %L/ %T Name Author Score Age 1 48/ 38/ 14 Tangle Trap 3 David Moore 158 13 2 41/ 24/ 35 Quicksilver '88 Michal Janeczek 157 20 3 41/ 27/ 31 The Next Step '88 test 1. David Houston 155 5 4 37/ 24/ 39 Freight Train David Moore 149 185 5 46/ 44/ 9 vm5 Michal Janeczek 149 19 6 36/ 24/ 40 Test Alexander (Sasha) Wa 147 124 7 44/ 40/ 16 My 1st try Christian Schmidt 147 16 8 47/ 47/ 6 Scan Test C 6 Steve Gunnell 147 23 9 36/ 26/ 38 Guardian Ian Oversby 147 184 10 39/ 33/ 28 The Seed Roy van Rijn 145 2 11 45/ 46/ 10 Foggy Swamp Beppe Bezzi 143 181 12 43/ 43/ 14 Stasis David Moore 143 292 13 44/ 45/ 11 Blur '88 Anton Marsden 142 222 14 42/ 42/ 16 '88 test IV John Metcalf 141 78 15 43/ 46/ 12 Deviant Scanner Roy van Rijn 140 1 16 40/ 40/ 19 PacMan David Moore 140 214 17 34/ 28/ 38 Pixie 88 Lukasz Grabun 139 14 18 30/ 23/ 47 Test I Ian Oversby 137 241 19 36/ 34/ 30 vala John Metcalf 137 107 20 33/ 31/ 36 sIMPly.Red v0.95 Leonardo Humberto 135 142 21 2/ 98/ 0 Flint Tyler Franklin 7 0 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 12/01/03 Date: 1 Dec 2003 19:28:05 -0500 Message-ID: <200312010506.hB15608t024587@gevjon.ttsg.com> Weekly Status on 12/01/03 -=- 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 : Thu Nov 27 22:45:21 EST 2003 # %W/ %L/ %T Name Author Score Age 1 41/ 35/ 24 The X Machine Zul Nadzri 147 19 2 44/ 43/ 13 Fire and Ice II David Moore 145 108 3 40/ 38/ 22 Eliminator X Zul Nadzri 142 20 4 27/ 17/ 55 xd100 test David Houston 138 5 5 34/ 33/ 33 Trefoil F 13 Steve Gunnell 135 91 6 21/ 8/ 71 Evol Cap 4 X John Wilkinson 134 277 7 36/ 38/ 26 Black Moods Ian Oversby 134 204 8 29/ 24/ 47 Olivia X Ben Ford 134 89 9 36/ 38/ 26 Simply Intelligent Zul Nadzri 134 1 10 29/ 25/ 46 KAT v5 Dave Hillis 133 140 11 28/ 23/ 48 Venom v0.2b Christian Schmidt 133 230 12 21/ 10/ 69 Denial David Moore 133 149 13 25/ 19/ 56 Katafutr Michal Janeczek 132 148 14 23/ 14/ 63 Kin John Metcalf 131 116 15 26/ 20/ 54 Glenstorm John Metcalf 131 70 16 36/ 41/ 23 Giant Hazy Test 13 Steve Gunnell 131 35 17 34/ 39/ 27 Ogre Christian Schmidt 130 156 18 21/ 11/ 68 Blotter X J. Pohjalainen 130 10 19 17/ 8/ 75 Evolve X v4.0 John Wilkinson 127 225 20 28/ 37/ 35 Controlled Aggression Ian Oversby 119 208 21 7/ 78/ 15 Chaos Rob Brown 35 0 From: Lukasz Grabun Subject: Re: myfactor Date: Mon, 1 Dec 2003 20:44:04 +0000 (UTC) Message-ID: On Mon, 01 Dec 2003 09:30:32 +0100, Sascha Zapf wrote: > sorry, Lukasz Grabun Site is not reachable for me since three days. Is there > somebody who can send me his myfactor.c ? myfactorCLI.c is much better :-) It was posted once here, I can repost it if you wish. -- Lukasz Grabun (My CW page: http://www.astercity.net/~grabek) (reply-to field is fake, use grabek (at) acn dot waw dot pl to reply) From: fizmo_master@yahoo.com (Fizmo) Subject: test Date: 1 Dec 2003 23:13:59 -0800 Message-ID: <9f53b5fb.0312012313.56c239ed@posting.google.com> sorry. just a test if I can reach r.g.c., because all my previous postings doesn't appear here. Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 02 Dec 2003 11:08:35 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: Redcoders Frenzy 14: The Extended '88 Round ***Results*** Date: 4 Dec 2003 06:23:48 -0800 Message-ID: <9f53b5fb.0312040623.2675ac9f@posting.google.com> .................................................................... ********************* * Redcoder's Frenzy * ********************* The ongoing corewar tournament /^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ | The Extended '88 Round | \________________________________/ This is the 14th round of the ongoing corewar tournament. Detailed information are available on Fizmo's Corewar Information Page: http://www.corewar.info/cwt.htm *********** * Results * *********** Altogether, 6 authors enter a total of 9 warriors. (_v_) _|_ | | |-----+-----| ___________ .-=========-. | {{1}} | '._==_==_=_.' \'-=======-'/ | \=/ | .-\: /-. _| .=. |_ '---------' | (|:.{3} |) | ((| {{2}} |)) \ / '-|:. |-' \| /|\ |/ '. .' \::. / \__ '`' __/ | | '::. .' _`) (`_ .' '. ) ( _/_______\_ _|___|_ _.' '._ /___________\ [_______] [_______] 2nd place Winner 3rd place ***************** ********************* **************** * David Houston * * Christian Schmidt * * Roy van Rijn * ***************** ********************* **************** Christian Schmidt's unheard-of '88, a combination of a paper stone and paper/imps claims first place followed by David Houston's and Roy van Rijn's stone/papers. Overall 4 entries were using a p-switcher. ----------------------------------------------------------------- # %W %L %T Name Author Score % ----------------------------------------------------------------- 1 36.3 10.4 53.2 unheard-of '88 Christian Schmidt 162.28 100.0 2 38.9 17.7 43.4 The Next Step '88 David Houston 160.20 98.7 3 37.4 21.2 41.4 The Seed Roy van Rijn 153.61 94.7 4 38.9 26.9 34.3 Borrow before Tomorrow Roy van Rijn 150.88 93.0 5 39.3 31.2 29.5 Plus ultra G.Labarga 147.46 90.9 6 37.2 34.1 28.8 Addendum G.Labarga 140.24 86.4 7 21.3 43.9 34.8 Staper Lukasz Adamowski 98.70 60.8 8 19.6 50.5 29.9 Plagarismo 2 Zul Nadzri 88.74 54.7 9 20.3 53.5 26.3 Battle Before The Lukasz Adamowski 87.13 53.7 ================================================================= More detailed informations and all entries are available on the Extended '88 Round webpage: http://www.corewar.info/14.htm Congratulations to everyone who has taken part this round. I hope to see more participants next round, which will organised by Christian Schmidt. *********** * Ranking * *********** Roy van Rijn still holds his first place followed by Christian Schmidt who climbs 6 places and Zul Nadzri. David Houston and Lukas Adamowski climbs up several places.No newcomers this round and sadly further 3 players left the ranking. For the coming round only B. Cook is in danger to leave the ranking. # Author Score R7 R8 R9 R10 R11 R12 ------------------------------------------------------------------- 1 (1) Roy van Rijn 390.2 71.0 95.5 100.0 100.0 35.9 94.7 2 (2) Christian Schmidt 348.4 * 98.4 62.5 87.5* 29.8 100.0 3 (3) Zul Nadzri 345.6 75.3 89.7 22.4 80.6 100.0 54.7 4 (5) German Labarga 325.2 75.4 97.6 61.3 x 60.6 90.9 5 (11) David Houston 320.3 x 75.6 x 83.0 63.0 98.7 6 (10) Lukasz Adamowski 249.6 85.5 63.5 32.5 x 39.8 60.8 7 (4) Dave Hillis 223.6 57.8 100.0 x 65.8 x x 8 (6) Philip Thorne 203.0 69.2 72.4 x 61.4 x x 9 (7) Jakub Kozisek 189.1 100.0 89.1 x x x x 10 (14) Will Varfar 165.1 36.2 60.7 * 58.5 9.7 x 11 (8) John Metcalf 157.6 79.5 * x 78.1 x * 12 (9) Simon Duff 150.4 86.8 63.6 x x x x 13 (15) Joshua Hudson 106.4 55.4 x 51.0 x x x 14 (13) David Moore 98.1 x 98.1 x x x x 15 (17) Sascha Zapf 93.2 x 93.2 x x x x 16 (18) Simon Wainwright 89.1 x 89.1 x x x x 17 (19) Joonas Pihlaja 85.6 x 85.6 x x x x 18 (12) Ben Ford 82.3 x 82.3 x x x x 19 (20) Chip Wendell 71.0 x x x x 71.0 x 20 (21) B. Cook 50.0 50.0 x x x x x 21 (24) FatalC 13.5 x x x 13.5 x x ------------------------------------------------------------------- out (16) Michal Janeczek out (22) Darek Leniowski out (23) Arivaalli ------------------------------------------------------------------- * organizer ................................................................... From: dhillismail@netscape.net (Dave Hillis) Subject: Re: Redcoders Frenzy 14: The Extended '88 Round ***Results*** Date: 4 Dec 2003 20:08:26 -0800 Message-ID: <5d6847b2.0312042008.6b32c6ce@posting.google.com> Congrats Christian! That was a cool contest. I regret I didn't manage to play in it. Dave Hillis From: fizmo_master@yahoo.com (Fizmo) Subject: Redcoders Frenzy 15: The 94 Tourney Round ***Rules and Deadline*** Date: 5 Dec 2003 04:34:30 -0800 Message-ID: <9f53b5fb.0312050434.3dea3502@posting.google.com> ................................................................... . . . _____ _ _ . . | __ \ | | | | . . | |__) |___ __| | ___ ___ __| | ___ _ __ ___ . . | _ // _ \/ _` |/ __/ _ \ / _` |/ _ \ '__/ __| . . | | \ \ __/ (_| | (_| (_) | (_| | __/ | \__ \ . . |_| \_\___|\__,_|\___\___/ \__,_|\___|_| |___/ . . . . ______ . . | ____| . . | |__ _ __ ___ _ __ _____ _ . . | __| '__/ _ \ '_ \|_ / | | | . . | | | | | __/ | | |/ /| |_| | . . |_| |_| \___|_| |_/___|\__, | . . __/ | . . |___/ . ................................................................... The ongoing corewar tournament _ ____ / | ___| | |___ \ | |___) | |_|____/ .............................. . . . The 94 Tourney Round . . . .............................. This is the 15th round of the ongoing corewar tournament. Detailed information are available on Fizmo's Corewar Info Page: http://www.corewar.info/tournament/cwt.htm The 94 Tourney Round homepage is: http://www.corewar.info/tournament/15.htm ................................................................... . _ . . _ _ _ _| |___ ___ . . | '_| || | / -_|_-< . . |_| \_,_|_\___/__/ . . . ................................................................... Round 15 of the Redcoder Frenzy Tournament will take place using the hill specs of SAL's new ICWS 94 Tourney Hill: http://sal.math.ualberta.ca/hill.php?key=94t All warriors will play in a round robin tournament including self-fights. P-space and PIN numbers are allowed. Up to two warriors per competitor are allowed. Coresize: 8192 Max. processes: 8000 Max. cycles: 100000 Max. length: 300 Min. distance: 300 Rounds: 1000 Points per win: 3 Points per tie: 1 Points per loss: 0 Coresize 8192 has a lot more imp steps than for core size 8000, because 8192 is a power of 2, so it has more relative primes. See for the imp steps at: http://www.corewar.info/lexicon/impstep.htm Also note that the max. Warrior Length is 300 this time. So there is enough space for larger and smarter p-warriors, quickscanner, etc. ................................................................... . _ _ _ _ . . __| |___ __ _ __| | (_)_ _ ___ . . / _` / -_) _` / _` | | | ' \/ -_) . . \__,_\___\__,_\__,_|_|_|_||_\___| . . . ................................................................... 23:59 (GMT) January 10, 2004 -------------------------------------------------------------- Please notify: You have to send your entries to me (fizmo_master@yahoo.com) -------------------------------------------------------------- Good luck, may be the core with you! From: sayembara@yahoo.com (Zul Nadzri) Subject: Re: Redcoders Frenzy 15: The 94 Tourney Round ***Rules and Deadline*** Date: 6 Dec 2003 01:12:53 -0800 Message-ID: > self-fights. P-space and PIN numbers are allowed. Up to two.... If PIN-slave if allowed, I think I can be the champ for this round. Now, the hard part is how to prove my words :) /Zul Nadzri From: sayembara@yahoo.com (Zul Nadzri) Subject: Re: Redcoders Frenzy 15: The 94 Tourney Round ***Rules and Deadline*** Date: 6 Dec 2003 04:27:43 -0800 Message-ID: ..and also please reconfirm the status of self-fight. From: erniec@gotomy.com (Raumvogel) Subject: The best Date: 7 Dec 2003 09:23:39 -0800 Message-ID: <289e601c.0312070923.207020a5@posting.google.com> All other game pale in comparison!!! http://www.freeallegiance.org/ From: Koth Subject: KOTH.ORG: Status - Standard 12/08/03 Date: 8 Dec 2003 09:27:54 -0500 Message-ID: <200312080500.hB8501bx006908@gevjon.ttsg.com> Weekly Status on 12/08/03 -=- 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 : Sun Dec 7 01:42:22 EST 2003 # %W/ %L/ %T Name Author Score Age 1 42/ 27/ 31 The Next Step '88 David Houston 158 1 2 48/ 38/ 14 Tangle Trap 3 David Moore 157 14 3 41/ 24/ 35 Quicksilver '88 Michal Janeczek 157 21 4 37/ 24/ 39 Freight Train David Moore 149 186 5 46/ 44/ 9 vm5 Michal Janeczek 148 20 6 47/ 47/ 6 Scan Test C 6 Steve Gunnell 148 24 7 44/ 40/ 16 My 1st try Christian Schmidt 147 17 8 36/ 25/ 40 Test Alexander (Sasha) Wa 147 125 9 36/ 26/ 38 Guardian Ian Oversby 146 185 10 39/ 33/ 28 The Seed Roy van Rijn 146 3 11 43/ 43/ 14 Stasis David Moore 143 293 12 44/ 46/ 10 Foggy Swamp Beppe Bezzi 142 182 13 42/ 42/ 16 '88 test IV John Metcalf 142 79 14 44/ 45/ 11 Blur '88 Anton Marsden 142 223 15 43/ 45/ 12 Deviant Scanner Roy van Rijn 140 2 16 40/ 41/ 19 PacMan David Moore 139 215 17 34/ 28/ 38 Pixie 88 Lukasz Grabun 139 15 18 30/ 23/ 47 Test I Ian Oversby 137 242 19 36/ 34/ 30 vala John Metcalf 137 108 20 33/ 31/ 36 sIMPly.Red v0.95 Leonardo Humberto 135 143 21 2/ 98/ 0 0 0 7 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 12/08/03 Date: 8 Dec 2003 09:27:48 -0500 Message-ID: <200312080503.hB853153006949@gevjon.ttsg.com> Weekly Status on 12/08/03 -=- 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 : Sat Dec 6 07:12:21 EST 2003 # Name Author Score Age 1 hawk John Metcalf 11 97 2 Double D David Houston 10 26 3 not king of the hill FatalC 10 99 4 Her Majesty P.Kline 9 373 5 D-clearM Ken Espiritu 7 354 6 The Mummy 1.02 David Houston 5 18 7 Djinn-19 Steve Gunnell 4 13 8 Blowtorch Test C 15 Steve Gunnell 2 1 9 Old Grey Goose John Metcalf 2 6 10 Mr Sheen Test E 42 Steve Gunnell 1 5 11 whispered in a dream John Metcalf 1 0 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 12/08/03 Date: 8 Dec 2003 09:27:44 -0500 Message-ID: <200312080506.hB8561PO006998@gevjon.ttsg.com> Weekly Status on 12/08/03 -=- 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 Dec 6 07:51:54 EST 2003 # %W/ %L/ %T Name Author Score Age 1 43/ 43/ 14 Fire and Ice II David Moore 144 108 2 39/ 36/ 24 The X Machine Zul Nadzri 143 19 3 38/ 39/ 22 Eliminator X Zul Nadzri 137 20 4 26/ 19/ 56 xd100 test David Houston 133 5 5 35/ 38/ 26 Black Moods Ian Oversby 133 204 6 20/ 10/ 69 Denial David Moore 130 149 7 28/ 26/ 46 KAT v5 Dave Hillis 130 140 8 22/ 14/ 64 Kin John Metcalf 130 116 9 19/ 9/ 71 Evol Cap 4 X John Wilkinson 129 277 10 32/ 35/ 33 Trefoil F 13 Steve Gunnell 129 91 11 20/ 11/ 69 Blotter X J. Pohjalainen 129 10 12 27/ 26/ 47 Olivia X Ben Ford 128 89 13 34/ 40/ 26 Simply Intelligent Zul Nadzri 128 1 14 25/ 21/ 54 Glenstorm John Metcalf 128 70 15 35/ 42/ 23 Giant Hazy Test 13 Steve Gunnell 127 35 16 26/ 25/ 49 Venom v0.2b Christian Schmidt 126 230 17 33/ 40/ 27 Ogre Christian Schmidt 126 156 18 23/ 19/ 58 Katafutr Michal Janeczek 126 148 19 31/ 38/ 31 Controlled Aggression Ian Oversby 124 208 20 15/ 8/ 77 Evolve X v4.0 John Wilkinson 123 225 21 26/ 53/ 21 Creaky old code John Metcalf 100 0 From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 12/08/03 Date: 8 Dec 2003 09:27:39 -0500 Message-ID: <200312080509.hB8591BK007049@gevjon.ttsg.com> Weekly Status on 12/08/03 -=- 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 Dec 6 19:32:28 EST 2003 # %W/ %L/ %T Name Author Score Age 1 49/ 45/ 6 Recon 2 David Moore 153 669 2 45/ 40/ 14 Hazy Test 63 Steve Gunnell 150 990 3 39/ 28/ 33 Spiritual Black Dimension Christian Schmidt 150 6 4 38/ 30/ 32 whispered in a dream John Metcalf 146 2 5 45/ 44/ 11 O--* Bremer/Schmidt 146 75 6 33/ 21/ 46 Idioteque Roy van Rijn 146 32 7 43/ 40/ 17 Dandelion II Schmidt/Zapf 145 62 8 35/ 26/ 39 Son of Vain Oversby/Pihlaja 145 2215 9 36/ 28/ 35 si23 Lukasz Grabun 145 22 10 37/ 30/ 33 Ironic Imps Roy van Rijn 144 175 11 44/ 44/ 12 Dracula 2003 Roy van Rijn 144 3 12 35/ 27/ 38 slime test 1.00 David Houston 142 14 13 42/ 43/ 15 goonie David Moore 142 103 14 35/ 28/ 36 Static Miz 142 181 15 46/ 50/ 4 pong mjp 141 1 16 44/ 47/ 9 Kenshin B test 62 Steve Gunnell 141 134 17 34/ 28/ 38 devilish 2 David Houston 140 164 18 34/ 29/ 37 queen of the streets John Metcalf 139 133 19 35/ 32/ 33 Mesa Roy van Rijn 139 12 20 32/ 27/ 41 Revenge Again Roy van Rijn 138 118 21 2/ 98/ 0 dat0 dat0 7 0 From: carter_cheng@yahoo.com (Jobless Poor) Subject: Relevance of modern day core wars Date: 13 Dec 2003 23:46:36 -0800 Message-ID: I have been following this group on and off over the years and I have been recently thinking about core wars again. I have noticed that the traffic over the years has diminished for this group and have been led to wonder if the ICWS 94' ISA might be too out of line with modern day computing. Many people have posted about modernizing the core war ISA over the years (I see alot of RISC proposals in the archives) but I was wondering if in todays environment it might be more meaningful to create some sort of parallel core wars. The reason for this is that modern compilers are still somewhat poor when it comes to optimizing code for parallel environments which means that as a programmer you might still need to understand what is occuring at the machine code level and understanding how paralellism works in a superscalar/VLIW various NUMA multiprocessor and cluster computing based platforms seems to be becoming increasingly important. Would it be interesting to have a core wars extended simulator that more closely mimicks the modern numerically intensive computing environment? From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 12/15/03 Date: 15 Dec 2003 09:14:58 -0500 Message-ID: <200312150503.hBF531id018058@gevjon.ttsg.com> Weekly Status on 12/15/03 -=- 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 : Fri Dec 12 18:26:21 EST 2003 # Name Author Score Age 1 hawk John Metcalf 28 102 2 Her Majesty P.Kline 20 378 3 The Mummy 1.02 David Houston 20 23 4 not king of the hill FatalC 18 104 5 D-clearM Ken Espiritu 17 359 6 Double D David Houston 12 31 7 Djinn-19 Steve Gunnell 12 18 8 Blowtorch Test C 15 Steve Gunnell 10 6 9 Probe2 John Metcalf 7 5 10 Spray 'n Wipe 4a 44 Steve Gunnell 0 1 11 Spray 'n Wipe 4a 53 Steve Gunnell 0 0 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 12/15/03 Date: 15 Dec 2003 09:14:54 -0500 Message-ID: <200312150506.hBF5614D018105@gevjon.ttsg.com> Weekly Status on 12/15/03 -=- 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 : Wed Dec 10 13:00:06 EST 2003 # %W/ %L/ %T Name Author Score Age 1 41/ 35/ 24 The X Machine Zul Nadzri 146 19 2 44/ 43/ 13 Fire and Ice II David Moore 145 108 3 40/ 38/ 22 Eliminator X Zul Nadzri 142 20 4 28/ 17/ 55 xd100 test David Houston 139 5 5 23/ 8/ 70 Evol Cap 4 X John Wilkinson 138 277 6 35/ 33/ 32 Trefoil F 13 Steve Gunnell 136 91 7 22/ 10/ 68 Denial David Moore 135 149 8 30/ 24/ 46 Olivia X Ben Ford 135 89 9 36/ 38/ 26 Black Moods Ian Oversby 134 204 10 29/ 25/ 45 KAT v5 Dave Hillis 134 140 11 26/ 19/ 55 Katafutr Michal Janeczek 134 148 12 24/ 14/ 62 Kin John Metcalf 134 116 13 36/ 38/ 26 Simply Intelligent Zul Nadzri 134 1 14 29/ 23/ 48 Venom v0.2b Christian Schmidt 134 230 15 26/ 20/ 53 Glenstorm John Metcalf 132 70 16 22/ 11/ 67 Blotter X J. Pohjalainen 132 10 17 36/ 41/ 23 Giant Hazy Test 13 Steve Gunnell 131 35 18 19/ 8/ 73 Evolve X v4.0 John Wilkinson 131 225 19 34/ 39/ 27 Ogre Christian Schmidt 129 156 20 33/ 37/ 31 Controlled Aggression Ian Oversby 129 208 21 7/ 92/ 0 My Sucky Warrior John Q. Redcoder 23 0 From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 12/15/03 Date: 15 Dec 2003 09:14:46 -0500 Message-ID: <200312150509.hBF591pd018158@gevjon.ttsg.com> Weekly Status on 12/15/03 -=- 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 Dec 12 19:22:41 EST 2003 # %W/ %L/ %T Name Author Score Age 1 45/ 41/ 14 Hazy Test 63 Steve Gunnell 149 990 2 47/ 47/ 6 Recon 2 David Moore 147 669 3 38/ 29/ 33 Spiritual Black Dimension Christian Schmidt 146 6 4 37/ 30/ 32 whispered in a dream John Metcalf 145 2 5 44/ 45/ 11 O--* Bremer/Schmidt 144 75 6 42/ 41/ 17 Dandelion II Schmidt/Zapf 144 62 7 36/ 28/ 35 si23 Lukasz Grabun 144 22 8 35/ 26/ 39 Son of Vain Oversby/Pihlaja 143 2215 9 43/ 45/ 12 Dracula 2003 Roy van Rijn 142 3 10 31/ 22/ 47 Idioteque Roy van Rijn 141 32 11 35/ 31/ 34 Ironic Imps Roy van Rijn 140 175 12 34/ 29/ 36 Static Miz 139 181 13 33/ 29/ 38 devilish 2 David Houston 138 164 14 33/ 30/ 37 queen of the streets John Metcalf 137 133 15 42/ 48/ 9 Kenshin B test 62 Steve Gunnell 136 134 16 32/ 29/ 39 slime test 1.00 David Houston 136 14 17 40/ 45/ 15 goonie David Moore 136 103 18 33/ 33/ 34 Mesa Roy van Rijn 133 12 19 30/ 28/ 42 Revenge Again Roy van Rijn 131 118 20 42/ 54/ 4 pong mjp 131 1 21 23/ 69/ 8 Spray 'n Wipe 4a 53 Steve Gunnell 77 0 From: Koth Subject: KOTH.ORG: Status - Standard 12/15/03 Date: 15 Dec 2003 09:15:05 -0500 Message-ID: <200312150500.hBF501DZ018007@gevjon.ttsg.com> Weekly Status on 12/15/03 -=- 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 : Sat Dec 13 06:01:43 EST 2003 # %W/ %L/ %T Name Author Score Age 1 39/ 27/ 34 The Next Step '88 David Houston 151 3 2 44/ 39/ 17 Tangle Trap 3 David Moore 149 16 3 37/ 25/ 37 Quicksilver '88 Michal Janeczek 149 23 4 44/ 42/ 13 Cold as November Rain... John Metcalf 147 1 5 34/ 26/ 40 Freight Train David Moore 142 188 6 33/ 26/ 41 Test Alexander (Sasha) Wa 140 127 7 44/ 47/ 9 Scan Test C 6 Steve Gunnell 140 26 8 40/ 41/ 19 My 1st try Christian Schmidt 140 19 9 33/ 26/ 41 Guardian Ian Oversby 139 187 10 39/ 44/ 17 Stasis David Moore 135 295 11 34/ 34/ 32 The Seed Roy van Rijn 134 5 12 40/ 47/ 13 vm5 Michal Janeczek 134 22 13 40/ 48/ 12 Foggy Swamp Beppe Bezzi 132 184 14 30/ 30/ 40 Pixie 88 Lukasz Grabun 131 17 15 39/ 47/ 14 Blur '88 Anton Marsden 131 225 16 36/ 42/ 21 PacMan David Moore 131 217 17 39/ 47/ 14 Deviant Scanner Roy van Rijn 130 4 18 27/ 25/ 48 Test I Ian Oversby 129 244 19 32/ 35/ 33 vala John Metcalf 129 110 20 37/ 45/ 18 '88 test IV John Metcalf 129 81 21 10/ 9/ 80 Do Redcoders Hibernate? John Metcalf 112 0 From: fizmo_master@yahoo.com (Fizmo) Subject: Re: Redcoders Frenzy 15: The 94 Tourney Round ***Rules and Deadline*** Date: 15 Dec 2003 22:52:24 -0800 Message-ID: <9f53b5fb.0312152252.614bd019@posting.google.com> Yes, self-fights are included. Also PIN is allowed. sayembara@yahoo.com (Zul Nadzri) wrote in message news:... > ..and also please reconfirm the status of self-fight. Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 16 Dec 2003 12:00:12 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: Sascha Zapf Subject: Re: Redcoders Frenzy 15: The 94 Tourney Round ***Rules and Deadline*** Date: Tue, 16 Dec 2003 13:23:44 +0100 Message-ID: Fizmo wrote: > Yes, self-fights are included. Also PIN is allowed. > > sayembara@yahoo.com (Zul Nadzri) wrote in message > news:... >> ..and also please reconfirm the status of self-fight. Nice, many extrapoints for the Handshakers ;-) Sascha -- Parlez vous Redcode? From: varfar@yahoo.co.uk (Will 'Varfar') Subject: 100% Evolved warrior on 94-nop Date: 16 Dec 2003 23:19:55 -0800 Message-ID: <9e1cea7a.0312162319.18a47713@posting.google.com> Hello folks, Yesterday, "16138169-8665-xt430-11-ev" slipped quietly onto the 94nop and pushed "Mesa" off. Barkley demonstrates once again the effectiveness of his CCAI evolver framework. Anyone got any bets on at which point in the future evolved warriors will dominate Corewars? ;-) Looking to the future, for a long time computer AI has been used to generate bad poetry; it is only a matter of time before strides made in that area are applied to the Corewars evolved warrior naming problem.. Congrats Barkley! Best regards, Will. From: fizmo_master@yahoo.com (Fizmo) Subject: Re: Redcoders Frenzy 14: The Extended '88 Round ***Results*** Date: 17 Dec 2003 13:37:51 -0800 Message-ID: <9f53b5fb.0312171337.56bdcbb6@posting.google.com> Ups, I realized that the download of the entries wasn't working. All entries are now available at: http://www.corewar.info/tournament/14.htm Fizmo From: "Zul Nadzri" Subject: Re: 100% Evolved warrior on 94-nop Date: Wed, 17 Dec 2003 17:57:24 +0800 Message-ID: <3fe028b4_1@news.tm.net.my> I can only think of Man-vs-machine in chess, which is quite similar to this situation. I believe, with time, the machine will takeover man in both chess and corewar. The debate goes on with divided believes on both sides. Of course, WE (corewar programmers like me) enjoy beating the machines :) /Zul Nadzri "Will 'Varfar'" wrote in message news:9e1cea7a.0312162319.18a47713@posting.google.com... > Hello folks, > > Yesterday, "16138169-8665-xt430-11-ev" slipped quietly onto the 94nop > and pushed "Mesa" off. > > Barkley demonstrates once again the effectiveness of his CCAI evolver > framework. Anyone got any bets on at which point in the future > evolved warriors will dominate Corewars? ;-) > > Looking to the future, for a long time computer AI has been used to > generate bad poetry; it is only a matter of time before strides made > in that area are applied to the Corewars evolved warrior naming > problem.. > > Congrats Barkley! > > Best regards, > Will. From: fizmo_master@yahoo.com (Fizmo) Subject: Re: Redcoders Frenzy 15: The 94 Tourney Round ***Rules and Deadline*** Date: 18 Dec 2003 07:14:06 -0800 Message-ID: <9f53b5fb.0312180714.428752ec@posting.google.com> > > Nice, many extrapoints for the Handshakers ;-) > > Sascha One could also enhance p-warriors by using a p-space scout. David Moore had already published a nice one: ;redcode-94 ;name pScout ;author David Moore ;assert 1 ;strategy use a vampire to find opponent's pspace location Pstore equ 123 step equ 1445 ; multiple of 5 fang jmp t1-(5+step), 5+step vamp mov @0, @fang add t1, fang jmz.a vamp, t2 ; know when opponent is trapped jmz.b #0, t2 ; search for last nonzero pspace stp.ab t2, #Pstore ; capture the prize! t1 spl #-step, #step t2 ldp.ab #0, #0 t3 dat {0, 0 end vamp I wrote some month ago a slightly modified version to find both: the p-space used by the opponent and the actual value of it. The only post adjustment one must made for having the real p-space is to add 1 to the value of pVamp2, because it will stored right after another decrementing of t2's a-field. ;redcode-94 ;name pScout (extended) ;author David Moore ;assert 1 ;strategy use a vampire to find opponent's pspace location pVamp equ 7 ;value for opponents actual strategy pVamp2 equ 6 ;value of opponents used p-space - 1 ; ^^^^ step equ 1445 ; multiple of 5 fang jmp t1-(5+step), 5+step vamp mov @0, @fang add t1, fang jmz.a vamp, t2 jmz.b #0, t2 stp.b t2, #pVamp stp.ab t2, #pVamp2 for 4 dat 0, 0 rof t1 spl #-step, #step t2 ldp.ab #0, #0 t3 dat {0, 0 end vamp If carefull implemented in a p-warrior it should nicely beat other p-warriors. Another nice idea for this round could be an extended version of Combatra. One can expand it by up to 200 instruction now. Fizmo From: Sascha Zapf Subject: X-Mas Date: Wed, 24 Dec 2003 00:22:13 +0100 Message-ID: Merry X-Mas from Germany alltogether.... Sascha -- Parlez vous Redcode? From: achillu@tin.it (LAchi) Subject: Greetings and more Date: 24 Dec 2003 06:08:22 -0800 Message-ID: <1eeccf2e.0312240608.114db3e0@posting.google.com> Greetings all. I hope this is the correct place to post this message. I just want to greet all of you redcoders. Even if I have been redcoding since the first article appeared on S.A., I am really a beginner of the game, because I had never had a real MARS until 2 years ago, when I at last found the corewar community (and the 94 rules... gosh! it took 2 years to me to understand how they work, and to understand all of the redcode in the 94 warriors!) When the hills at SAL opened, I at last found a place to submit my warriors so they perform fine -- well... it is really easy to perform fine on an empty hill! ;) -- My first warrior ('88 redcoded) was named "I KILL U" because 2 years ago my nick was "Achillu", and in Italian you say it something like "I-kill-u". Well, I was surprised when I found that my warrior is an outsider on the lp-hill, and the greatest surprise is that it _should_ be a replicator, it _should_ need many and many processes to work... anyway, one day it performed 10th on 25 warriors! The best results of my silly warrior are against bvowk's evolved warriors (please send more! ;) you are my Santa Claus!) Maybe "I KILL U" performs well against the evolved warriors because it has been developed independently of the long history of the warriors of this community; the evolved warriors are not trained against my "alien" redcoding, and this is why they fail. In fact, the "better" warrior "Ehila Beppe!" includes "Tornado" as a bomber instead of my version of the "Dwarf" bomber; it performs better than "I KILL U" against some other warriors on the hill, but it performs much worse against the evolved warriors, maybe because it includes this "native" piece of code. This unexpected success of my warrior is giving me the strength to go on with redcoding (even if I can only try to climb the beginners' hill, right now) with a strong regard to lp-warriors, of course ;). "Ehila Beppe 2!" is ready, but I will submit it after "Ehila Beppe!" will be pushed off the hill. Is there any place where I can find some published lp-warriors? Just to train my ones before the actual submission to the hill... I wish you all a Merry Christmas and a Happy New Year. Thanks for your attention. LAchi. (Note: I tried to put a fake address in the Reply-To field. Please reply to: achille dot astolfi at realt dot it) From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 12/22/03 Date: 24 Dec 2003 11:38:56 -0500 Message-ID: <200312220506.hBM561Ux006378@gevjon.ttsg.com> Weekly Status on 12/22/03 -=- 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 : Wed Dec 10 13:00:06 EST 2003 # %W/ %L/ %T Name Author Score Age 1 41/ 35/ 24 The X Machine Zul Nadzri 146 19 2 44/ 43/ 13 Fire and Ice II David Moore 145 108 3 40/ 38/ 22 Eliminator X Zul Nadzri 142 20 4 28/ 17/ 55 xd100 test David Houston 139 5 5 23/ 8/ 70 Evol Cap 4 X John Wilkinson 138 277 6 35/ 33/ 32 Trefoil F 13 Steve Gunnell 136 91 7 22/ 10/ 68 Denial David Moore 135 149 8 30/ 24/ 46 Olivia X Ben Ford 135 89 9 36/ 38/ 26 Black Moods Ian Oversby 134 204 10 29/ 25/ 45 KAT v5 Dave Hillis 134 140 11 26/ 19/ 55 Katafutr Michal Janeczek 134 148 12 24/ 14/ 62 Kin John Metcalf 134 116 13 36/ 38/ 26 Simply Intelligent Zul Nadzri 134 1 14 29/ 23/ 48 Venom v0.2b Christian Schmidt 134 230 15 26/ 20/ 53 Glenstorm John Metcalf 132 70 16 22/ 11/ 67 Blotter X J. Pohjalainen 132 10 17 36/ 41/ 23 Giant Hazy Test 13 Steve Gunnell 131 35 18 19/ 8/ 73 Evolve X v4.0 John Wilkinson 131 225 19 34/ 39/ 27 Ogre Christian Schmidt 129 156 20 33/ 37/ 31 Controlled Aggression Ian Oversby 129 208 21 7/ 92/ 0 My Sucky Warrior John Q. Redcoder 23 0 From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 12/22/03 Date: 24 Dec 2003 11:38:50 -0500 Message-ID: <200312220509.hBM591Mh006425@gevjon.ttsg.com> Weekly Status on 12/22/03 -=- 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 Dec 20 12:40:19 EST 2003 # %W/ %L/ %T Name Author Score Age 1 32/ 17/ 52 Napalm Dawn Roy van Rijn 147 1 2 34/ 25/ 41 Son of Vain Oversby/Pihlaja 144 2222 3 43/ 44/ 13 O--* Bremer/Schmidt 142 82 4 36/ 30/ 34 Spiritual Black Dimension Christian Schmidt 142 13 5 45/ 49/ 6 Recon 2 David Moore 141 676 6 35/ 30/ 35 test Christian Schmidt 141 5 7 42/ 44/ 14 Dracula 2003 Roy van Rijn 140 10 8 45/ 50/ 4 pong mjp 140 8 9 38/ 38/ 24 Quirk Christian Schmidt 139 3 10 35/ 32/ 33 whispered in a dream John Metcalf 138 9 11 41/ 44/ 15 Hazy Test 63 Steve Gunnell 138 997 12 40/ 42/ 18 Dandelion II Schmidt/Zapf 137 69 13 33/ 29/ 37 Static Miz 137 188 14 35/ 34/ 32 Ironic Imps Roy van Rijn 136 182 15 33/ 32/ 34 si23 Lukasz Grabun 135 29 16 32/ 30/ 37 devilish 2 David Houston 134 171 17 32/ 30/ 38 slime test 1.00 David Houston 133 21 18 39/ 44/ 17 goonie David Moore 133 110 19 27/ 21/ 52 38835-2156-cs-sdk-eve14 bvowk 132 2 20 40/ 51/ 9 Kenshin B test 62 Steve Gunnell 128 141 21 37/ 55/ 8 Clockwork John Metcalf 118 0 From: Koth Subject: KOTH.ORG: Status - Standard 12/22/03 Date: 24 Dec 2003 11:39:17 -0500 Message-ID: <200312220500.hBM501xi006245@gevjon.ttsg.com> Weekly Status on 12/22/03 -=- 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 : Sat Dec 13 06:01:43 EST 2003 # %W/ %L/ %T Name Author Score Age 1 39/ 27/ 34 The Next Step '88 David Houston 151 3 2 44/ 39/ 17 Tangle Trap 3 David Moore 149 16 3 37/ 25/ 37 Quicksilver '88 Michal Janeczek 149 23 4 44/ 42/ 13 Cold as November Rain... John Metcalf 147 1 5 34/ 26/ 40 Freight Train David Moore 142 188 6 33/ 26/ 41 Test Alexander (Sasha) Wa 140 127 7 44/ 47/ 9 Scan Test C 6 Steve Gunnell 140 26 8 40/ 41/ 19 My 1st try Christian Schmidt 140 19 9 33/ 26/ 41 Guardian Ian Oversby 139 187 10 39/ 44/ 17 Stasis David Moore 135 295 11 34/ 34/ 32 The Seed Roy van Rijn 134 5 12 40/ 47/ 13 vm5 Michal Janeczek 134 22 13 40/ 48/ 12 Foggy Swamp Beppe Bezzi 132 184 14 30/ 30/ 40 Pixie 88 Lukasz Grabun 131 17 15 39/ 47/ 14 Blur '88 Anton Marsden 131 225 16 36/ 42/ 21 PacMan David Moore 131 217 17 39/ 47/ 14 Deviant Scanner Roy van Rijn 130 4 18 27/ 25/ 48 Test I Ian Oversby 129 244 19 32/ 35/ 33 vala John Metcalf 129 110 20 37/ 45/ 18 '88 test IV John Metcalf 129 81 21 10/ 9/ 80 Do Redcoders Hibernate? John Metcalf 112 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 12/22/03 Date: 24 Dec 2003 11:39:00 -0500 Message-ID: <200312220503.hBM531DP006308@gevjon.ttsg.com> Weekly Status on 12/22/03 -=- 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 : Wed Dec 17 05:26:17 EST 2003 # Name Author Score Age 1 hawk John Metcalf 23 103 2 Her Majesty P.Kline 22 379 3 not king of the hill FatalC 16 105 4 The Mummy 1.02 David Houston 15 24 5 Double D David Houston 13 32 6 Djinn-19 Steve Gunnell 13 19 7 Probe2 John Metcalf 12 6 8 Blowtorch Test C 15 Steve Gunnell 11 7 9 Dettol Test 33 Steve Gunnell 9 1 10 D-clearM Ken Espiritu 6 360 11 Spray 'n Wipe 4a 44 Steve Gunnell 0 2 From: Sascha Zapf Subject: Re: Greetings and more Date: Wed, 24 Dec 2003 15:27:44 +0100 Message-ID: LAchi wrote: > Is there any place where I can find some > published lp-warriors? Just to train my ones before the actual > submission to the hill... > On C.Birks' K�nigstuhl at http://www.ociw.edu/~birk/COREWAR/ you can find an LP-Hill. But the Warriors are a little out of date. But for a general tune up for your Warrior they are good enough. Try to imagine the difference between normal Hill and LP-Hills, that will be a great help. Sascha -- Parlez vous Redcode? From: dhillismail@netscape.net (Dave Hillis) Subject: Re: Greetings and more Date: 24 Dec 2003 16:08:09 -0800 Message-ID: <5d6847b2.0312241608.70f49bab@posting.google.com> Merry Christmas and welcome. I hope the new hills will lead to more stories like yours. Dave Hillis From: Koth Subject: KOTH.ORG: Status - Standard 12/29/03 Date: 29 Dec 2003 00:23:16 -0500 Message-ID: <200312290500.hBT500LD024439@gevjon.ttsg.com> Weekly Status on 12/29/03 -=- 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 : Sat Dec 13 06:01:43 EST 2003 # %W/ %L/ %T Name Author Score Age 1 39/ 27/ 34 The Next Step '88 David Houston 151 3 2 44/ 39/ 17 Tangle Trap 3 David Moore 149 16 3 37/ 25/ 37 Quicksilver '88 Michal Janeczek 149 23 4 44/ 42/ 13 Cold as November Rain... John Metcalf 147 1 5 34/ 26/ 40 Freight Train David Moore 142 188 6 33/ 26/ 41 Test Alexander (Sasha) Wa 140 127 7 44/ 47/ 9 Scan Test C 6 Steve Gunnell 140 26 8 40/ 41/ 19 My 1st try Christian Schmidt 140 19 9 33/ 26/ 41 Guardian Ian Oversby 139 187 10 39/ 44/ 17 Stasis David Moore 135 295 11 34/ 34/ 32 The Seed Roy van Rijn 134 5 12 40/ 47/ 13 vm5 Michal Janeczek 134 22 13 40/ 48/ 12 Foggy Swamp Beppe Bezzi 132 184 14 30/ 30/ 40 Pixie 88 Lukasz Grabun 131 17 15 39/ 47/ 14 Blur '88 Anton Marsden 131 225 16 36/ 42/ 21 PacMan David Moore 131 217 17 39/ 47/ 14 Deviant Scanner Roy van Rijn 130 4 18 27/ 25/ 48 Test I Ian Oversby 129 244 19 32/ 35/ 33 vala John Metcalf 129 110 20 37/ 45/ 18 '88 test IV John Metcalf 129 81 21 10/ 9/ 80 Do Redcoders Hibernate? John Metcalf 112 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 12/29/03 Date: 29 Dec 2003 00:23:11 -0500 Message-ID: <200312290503.hBT530Hv024495@gevjon.ttsg.com> Weekly Status on 12/29/03 -=- 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 Dec 28 17:00:43 EST 2003 # Name Author Score Age 1 Her Majesty P.Kline 22 385 2 Double D David Houston 15 38 3 Dettol Test 33 Steve Gunnell 12 7 4 hawk John Metcalf 12 109 5 Frosty the Snowman John Metcalf 12 4 6 D-clearM Ken Espiritu 11 366 7 Probe2 John Metcalf 10 12 8 The Mummy 1.02 David Houston 8 30 9 not king of the hill FatalC 6 111 10 NewsPaper Test B 10 Steve Gunnell 5 1 11 NewsPaper Test B 8 Steve Gunnell 0 2 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 12/29/03 Date: 29 Dec 2003 00:23:07 -0500 Message-ID: <200312290506.hBT560eW024565@gevjon.ttsg.com> Weekly Status on 12/29/03 -=- 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 : Tue Dec 23 02:46:09 EST 2003 # %W/ %L/ %T Name Author Score Age 1 44/ 43/ 13 Fire and Ice II David Moore 146 108 2 41/ 35/ 24 The X Machine Zul Nadzri 146 19 3 40/ 38/ 22 Eliminator X Zul Nadzri 141 20 4 35/ 38/ 27 Black Moods Ian Oversby 131 204 5 35/ 39/ 26 Simply Intelligent Zul Nadzri 131 1 6 32/ 34/ 34 Trefoil F 13 Steve Gunnell 130 91 7 28/ 26/ 47 KAT v5 Dave Hillis 130 140 8 23/ 17/ 60 xd100 test David Houston 129 5 9 34/ 39/ 27 Ogre Christian Schmidt 129 156 10 18/ 8/ 74 Evol Cap 4 X John Wilkinson 128 277 11 23/ 19/ 58 Katafutr Michal Janeczek 127 148 12 18/ 10/ 73 Denial David Moore 125 149 13 25/ 24/ 51 Olivia X Ben Ford 125 89 14 19/ 14/ 67 Kin John Metcalf 124 116 15 24/ 23/ 53 Venom v0.2b Christian Schmidt 124 230 16 22/ 20/ 58 Glenstorm John Metcalf 123 70 17 17/ 11/ 72 Blotter X J. Pohjalainen 123 10 18 14/ 8/ 78 Evolve X v4.0 John Wilkinson 121 225 19 32/ 43/ 25 Giant Hazy Test 13 Steve Gunnell 121 35 20 28/ 38/ 34 Controlled Aggression Ian Oversby 119 208 21 11/ 29/ 60 sptst (7D) Stefan Foerster 94 0 From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 12/29/03 Date: 29 Dec 2003 00:23:03 -0500 Message-ID: <200312290509.hBT5910H024629@gevjon.ttsg.com> Weekly Status on 12/29/03 -=- 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 Dec 27 14:15:05 EST 2003 # %W/ %L/ %T Name Author Score Age 1 32/ 15/ 53 Napalm Dawn Roy van Rijn 150 19 2 37/ 24/ 39 slime test 1.00 David Houston 150 2 3 41/ 36/ 23 Quirk Christian Schmidt 147 21 4 47/ 46/ 7 Recon 2 David Moore 147 694 5 43/ 41/ 16 Hazy Test 63 Steve Gunnell 145 1015 6 44/ 43/ 13 O--* Bremer/Schmidt 145 100 7 36/ 28/ 35 Spiritual Black Dimension Christian Schmidt 145 31 8 34/ 23/ 43 Son of Vain Oversby/Pihlaja 144 2240 9 29/ 16/ 54 38835-2156-cs-sdk-eve14 bvowk 143 20 10 36/ 30/ 34 Ironic Imps Roy van Rijn 141 200 11 34/ 26/ 40 Static Miz 141 206 12 35/ 31/ 34 whispered in a dream John Metcalf 140 27 13 33/ 27/ 40 devilish 2 David Houston 139 189 14 42/ 45/ 13 Dracula 2003 Roy van Rijn 139 28 15 41/ 42/ 17 Dandelion II Schmidt/Zapf 139 87 16 34/ 29/ 37 The Stormkeeper II Christian Schmidt 139 10 17 34/ 29/ 37 si23 Lukasz Grabun 139 47 18 44/ 51/ 5 pong mjp 138 26 19 32/ 26/ 42 Zapp Christian Schmidt 137 1 20 39/ 43/ 18 The Boss is back in town G.Labarga 135 9 21 2/ 98/ 0 0 0 7 0 Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 31 Dec 2003 02:01:49 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. ------------------------------------------------------------------------