From: xyzzy@u.washington.edu (Trent Piepho) Subject: Re: Cbots README Date: 1 Sep 1994 00:21:06 GMT Message-ID: <3436pi$d5m@news.u.washington.edu> In article <342lce$594@engnews2.eng.sun.com>, Bharat Mediratta wrote: >In article lpt@cherokee.advtech.uswest.com, tpoind@advtech.uswest.com (Tom Poindexter) writes: >>> Cbots is designed to use the Unix scheduler and shared memory >>> system to allow Unix to handle the multitasking of the >>> different robots. This system is easy to create, but has >> >>This looks like a neat way to handle the IPC in Unix. I also saw another >>CROBOTS clone a year or two ago that ran on MSDOS, used a simple tasker to >>switch the cpu between different stacks, allowed any programming language and >>compiler to be used. I think it was called Cbots as well. > >Ack! What a coincidence! I never saw Cbots on the PC or I would have had >to pick a new name for my version. > Your name is safe... The PC version is called PCrobots. It uses a cooperative multi-tasker, I gather that your UNIX version is preemptive, like C-robots. The way PCrobots works your robot's "turn" only ends when you call the move, fire, or scan functions. This way smart robots aren't don't become sluggish, poorly coded robots don't become sluggish either. From: Michael N Nonemacher Subject: Silk? Vector-launch? Date: Fri, 2 Sep 1994 14:37:42 -0400 Message-ID: I've been away from CoreWar for the summer, & I'm trying to make all the adjustments. I got all the A-field indirection down, but there are programs using strategies I've never heard of. I've read thru all the newsgroup postings thru July, but I'm oblivious to anything newer than that. Could anyone briefly explain and/or give code examples of Silk Paper & vector-launched imp-spirals? Thanx. Mike Nonemacher mn2f+@andrew.cmu.edu From: Michael N Nonemacher Subject: pMARS 0.6.2 on soda? Date: Fri, 2 Sep 1994 14:51:09 -0400 Message-ID: I got the DOS version of the new pMARS, but I'm still trying to figure out what the "p" stands for - the source & UNIX pMARS doesn't seem to be there. I don't want to waste _my_ valuable processor time running mopt... :) Mike Nonemacher mn2f+@andrew.cmu.edu From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Re: pMARS 0.6.2 on soda? Message-ID: <1994Sep3.002618.10227@news.vanderbilt.edu> Date: Sat, 3 Sep 1994 00:26:18 GMT In article Michael N Nonemacher writes: >I got the DOS version of the new pMARS, but I'm still trying to figure >out what the "p" stands for - the source & UNIX pMARS doesn't seem to be >there. [..] The DOS and Mac binaries have already made it to /systems, but the source for pMARS 0.6.2 is still in /incoming. The FTP daemon at soda no longer lists any files in /incoming (as Jon Blow explained "to avoid abuse of the upload directory"), but you can still download the source as pmars06s.zip or pmars06s.tar.Z > I don't want to waste _my_ valuable processor time running >mopt... :) Great! First time I hear of anyone using mopt; any comments/suggestions/etc.? >Mike Nonemacher -Stefan (stst@vuse.vanderbilt.edu) From: reza@lysator.liu.se (Reza Khorshidi) Subject: PBEM newbie needs help Date: 3 Sep 1994 01:27:24 GMT Message-ID: <348jds$p1t@newsy.ifm.liu.se> Hi !!! I am a complete newbie when it comes to PBEMs and would appreciate any help that you players out there can give me :) I am not all that good with these computers either :-) so, though i have tried, I havent been able to lurk out any on-going games out there on the net I would be really greatful if you could mail me the name and address of the games that you are playing :) I really DO need this help or I wouldnt have bothered you like this. I am interested in ALL games :) If you are playing diplomacy, galaxy, trax or any other games on the net please share the game with me if possible. If you are a roleplayer also, drop me a note and we can discuss those as well :) I play everything from D & D to judge Dredd :) I thank you in advance and hope to be playing soon :) My E-mailaddress is : reza@lysator.liu.se PS. DEATH IS THE GREATEST KICK OF ALL ! THAT'S WHY THEY SAVE IT FOR LAST ! DS. From: pjf@uluru1.ecr.mu.oz.au (Paul 'Loony' Fenwick) Subject: Re: Bunker - self repair attempt Message-ID: <9424619.23507@mulga.cs.mu.OZ.AU> Date: Sat, 3 Sep 1994 09:59:24 GMT In article <1994Aug30.090904@acad.drake.edu> pk6811s@acad.drake.edu writes: >There are two basic problems here. The first is that too much time is spent >monitoring code and too little crunching opponents. This seems to be >an inherent weakness in self-repair programs. If you don't monitor >code and are spl-bombed, you get slowed down so much you can't repair >yourself. I once tried making a self-repair program... It copied itself forward in memory, and older versions of it would kill themselves after looking around for opponents... It had a fairly simple self-repair. Because each copy of the program had one data statement which it used for almost everything (recording where to copy things to, where it was scanning or where to throw bombs), early copies of the program would look at that address to make sure it changes every few operations. If it didn't it was concluded that the next copy was dead and would be recopied over. Certainly not as water-tight as summing all the B-fields, but it was a lot faster and did the job okay. I'm not familiar with ICWS'94 myself, so I'm not sure of all the capabilities of the new standard... Good luck! Paul -- |Paul "Loony" Fenwick - Grand Order of the Pizza Cat | |pjf@ecr.mu.oz.au - Order of Otama-chan | | - President of the Weekly Watchers of Wonderful Anime | | - Committee for the propagation of sera fuku | From: Michael N Nonemacher Subject: New gate-crashing impspiral Date: Sun, 4 Sep 1994 21:18:00 -0400 Message-ID: <0iOb78u00WB7AGzl8m@andrew.cmu.edu> I've just been playing around with imps, & I have a few observations. Curiosity, currently #4 on the hill, is just a generic imp/stone (I stole the stone right out of Blue Funk 3), that uses this imp: mov.i #2667, *0 It seems that the only real enemies imp-spirals have are imp-scanners - paper scores too many ties. Right now, as far as I know, IVScan and my test 2 program are the only imp-scanners on the hill, and Curiosity scores 61 and 71 wins, respectively, against them. Of course, I've already worked out how to overcome this in the new version of test, but that's a different story. I also noticed that an imp-spiral of the form: mov.i #2667, }0 can crash gates, but it's only stable when the # of processes is a multiple of 3. Also, it's too fragile to survive a normal bombing run, so it can't be coupled with (or go against) a stone. I've tried a few tricks to get it to work, but nothing's worked so far. Maybe someone else can take it somewhere. Good luck. Mike Nonemacher mn2f+@andrew.cmu.edu From: M.Mateus@mail.utexas.edu (Marcus Mateus) Subject: Re: pMARS 0.6.2 on soda? Date: 6 Sep 1994 04:13:47 GMT Message-ID: <34gq9r$cld@geraldo.cc.utexas.edu> In article , Michael N Nonemacher says: > >I got the DOS version of the new pMARS, but I'm still trying to figure >out what the "p" stands for - the source & UNIX pMARS doesn't seem to be >there. I don't want to waste _my_ valuable processor time running >mopt... :) > >Mike Nonemacher >mn2f+@andrew.cmu.edu Hi there mike, I can't answer your question, but I have one for you. Where did you get pMars. Is there one for windows? Thanks in advance, Marcus From: Michael N Nonemacher Subject: Re: pMARS 0.6.2 on soda? Date: Tue, 6 Sep 1994 09:18:57 -0400 Message-ID: >Hi there mike, >I can't answer your question, but I have one for you. Where did you get >pMars. Is there one for windows? >Thanks in advance, >Marcus I got it as "pmars062.zip" in the pub/corewar/systems directory at soda.csua.berkeley.edu with ftp. It's by far the best CoreWar simulator for DOS, and I believe they're working on a windows version, but I'm not sure. There are a few simulators in that directory that are for windows, but I'm not sure which, if any, are '94 compliant. You might check the FAQ for this group for more info, if you haven't already. Good luck, Mike ------------------------------- Schitzo ------------------------------ "For the sinful nature desires what is contrary to the Spirit, and the Spirit what is contrary to the sinful nature..." Galatians 5:17 (NIV) ---------------------------------------------------------------------- "First came stats pulling habits out of rats, Now they may need more attention..." - Steve Taylor, "Jung and the Restless" --------------------------------------------- Michael N Nonemacher mn2f+@andrew.cmu.edu From: zoner@hiram.edu (Brian C. Zellner) Subject: In-memory/in-register confusion Message-ID: <1994Sep6.112627.311@hir800> Date: 6 Sep 94 11:26:27 -0400 Hello all, I am in the process of writing a warrior, and I believe I may have run into my first in-memory/in-register problem. This piece of code works correctly on KotH, but I am not sure if it works on pMARS. What it does is move every 3rd or 4th memory location into the one directly above it. SPL 0, Date: Wed, 7 Sep 1994 00:09:43 GMT In article <1994Sep6.112627.311@hir800> zoner@hiram.edu (Brian C. Zellner) writes: > > I am in the process of writing a warrior, and I believe I may have >run into my first in-memory/in-register problem. This piece of code works >correctly on KotH, but I am not sure if it works on pMARS. [..] Both stormking and pizza KotH's run pMARS, so if your code works on KotH it should work on pMARS :-). If by KotH you are referring to Bill Shubert's X-windows based simulator that used to run the Intel server, this one's also doing in-register evaluation. The only in-memory systems out there that I can think of are Jon Newman's Core! for the Mac and WinCore (PC/Windows); the latter allows you to select either evaluation mode. > SPL 0, MOV JMP -1, The above code will work identically under both in-memory and in-register evaluation, *unless* the instruction at 'ptr' has a B-field of 1. Here a slightly simplified example: start mov Date: 7 Sep 94 08:24:06 -0400 >> I am in the process of writing a warrior, and I believe I may have >>run into my first in-memory/in-register problem. This piece of code works >>correctly on KotH, but I am not sure if it works on pMARS. [..] > > Both stormking and pizza KotH's run pMARS, so if your code works on KotH > it should work on pMARS :-). If by KotH you are referring to Bill Shubert's > X-windows based simulator that used to run the Intel server, this one's also > doing in-register evaluation. Thanks, I was indeed referring to Bill Shubert's KotH; it may not run the 94 standard, but the debugger is absolutely great. > Exercise for the reader: > > dat #0,#2 > mov @-1,<1 > test dat #0,#1 > > What happens to 'test' after execution of the 'mov' instruction under > in-memory and under in-register evaluation? In register: dat #0,#2 mov @-1,<1 test dat #0,#1 In memory: dat #0,#2 mov @-1,<1 test dat #0,#0 So in-register/in-memory refers to if an instruction is buffered before a copy is performed (basically), it's not a question of if updates to a twice-used operand are done in parallel or sequentially. There is never a problem with updated a-operands having there old values used by the b-operand of an instruction. I think I get it now. Thanks a lot for the help! -Brian Z. > -Stefan (stst@vuse.vanderbilt.edu) From: bharat@Eng.Sun.COM (Bharat Mediratta) Subject: Downloading Cbots Date: 7 Sep 1994 19:55:03 GMT Message-ID: <34l5qn$hvd@engnews2.Eng.Sun.COM> Howdy. I've received some email from people who have had problems downloading Cbots from soda.csua.berkeley.edu. Even though the program is in the incoming directory, you can STILL download it. It will not, however, show up in the directory listing. Here's how you get it: % ftp soda.csua.berkeley.edu . . ftp> cd /pub/corewar/incoming ftp> binary ftp> get cbots.tar.Z This will work for everybody. If you can suggest another FTP site I'll put a copy there. If anybody reading this newsgroup has the power on soda, please put the package in a more accessible site and let me (or r.g.c) know. Thanks! -Bharat --- Bharat Mediratta | Above opinions are mine and have bharat.mediratta@eng.sun.com | nothing to do with Sun Microsystems From: M.Mateus@mail.utexas.edu (Marcus Mateus) Subject: Soda IP address Date: 8 Sep 1994 02:28:16 GMT Message-ID: <34lss0$9dr@geraldo.cc.utexas.edu> Hi! Does anybody know the actual IP address to soda, so I can get corewars info. When I type the long name into ftp, it tells me it was unable to find the hosts address. I don't know whats happening, maybe someone out there can help. Thanks, Marcus From: mconst@soda.CSUA.Berkeley.EDU (Michael Constant) Subject: Re: Soda IP address Date: 8 Sep 1994 06:20:59 GMT Message-ID: <34magb$knm@agate.berkeley.edu> Marcus Mateus wrote: >Does anybody know the actual IP address to soda, so I can get corewars >info. When I type the long name into ftp, it tells me it was unable to >find the hosts address. I don't know whats happening, maybe someone >out there can help. The IP address is 128.32.43.52. Soda's full name is soda.CSUA.berkeley.edu; maybe your computer will be happier with that. (Although "soda.berkeley.edu" is still *supposed* to work, as is "ftp.csua.berkeley.edu"... ) -- Michael Constant (mconst@soda.csua.berkeley.edu) From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Re: corewar for linux or X Message-ID: <1994Sep8.070153.9797@news.vanderbilt.edu> Date: Thu, 8 Sep 1994 07:01:53 GMT In article <342mi9$qtg@usenet.rpi.edu> cougar@acm.rpi.edu (Erik Collin) writes: >I just downloaded a copy of Corewar Delux version 20b and after some effort >managed to get it to compile but upon running it decided it ran out of >memory. A friend got the same results. Has anyone managed to get this >program functioning in X under Linux? [..] The X windows display for deluxe is broken and there are currently no plans to fix it. > I'd also be willing to try other core war programs that will live >happilly with Linux. Bill Shubert's koth is the only ICWS'88 compliant simulator with a working X windows display right now (ftp://soda.berkeley.edu/pub/corewar/systems/ koth31.shar.Z). I haven't tried it with linux yet though. pMARS has a curses display which works fine under linux, but there is no X windows support yet (ftp://soda.berkeley.edu/pub/corewar/incoming/ pmars06s.tar.Z). -Stefan (stst@vuse.vanderbilt.edu) From: pk6811s@acad.drake.edu Subject: New scanner form Date: 8 Sep 94 16:34:26 CST Message-ID: <1994Sep8.163426@acad.drake.edu> Here's a little different scanner that I've been playing with in Rude Wind. It scans as fast as a cmp-scanner, but isn't fooled by reflections or consecutive imp-instructions. It does however attack djn-streams which is a big drawback in a one-shot scan. inc jmp step+step,step+step next sub inc,scan jmn.f attack,@scan jmz.f next,*scan scan mov.x #(590*step),#(589*step) attack mov bomb,@scan jmn next,scan ... I don't know that this form has much advantage over cmp, but maybe it's just what you're looking for in a scanner :-) --------- When creating parallel processes for paper or imp-launching, be sure to use MOV.I -1,#0 which works correctly whether or not the b-field is altered before executing. Paul Kline pk6811s@acad.drake.edu From: pk6811s@acad.drake.edu Subject: Another scanner form Date: 9 Sep 94 15:58:25 CST Message-ID: <1994Sep9.155825@acad.drake.edu> Been working on another one-shot scanner form. This one's very fast, bombs while scanning (somewhat like Leprechaun & SJ-4), and reacts to imp-trails but not djn-streams. The kernel looks something like this: step equ 13 ; any step-size bomb dat step+step tstdjn dat -1,-1 inc dat 3*step,3*step next add inc,scan ; ready for next 3 locations mov bomb,@scan ; bomb one scan seq.x 10*step,@9*step ; scan the other two sne *scan,tstdjn ; ignore djn.f streams djn next,#7700/(step*3) attack ... The scan line uses an SEQ.X, which compares the a-to-b and b-to-a operands allowing it to detect imp-trails while ignoring djn.f streams. The SNE after 'scan' reduces the number of mistakes made when comparing djn's to dat-zeros - I did something similar in my old Eclipse II program using a b-scan. Anyway, one location bombed and two scanned in a four instruction loop is faster than your average scan :-) Of course I want to react to imp-trails so I can launch an attack on them. Presently Rude Wind uses a 2667-specific strategy which works well against Blue Funk, Aeka, and Cannonade; but not so well against Bremstone - has it been published? between vacations and server down-time I've missed several weeks of news :-( So back to work on a generic attack-on-imp routine... Paul Kline pk6811s@acad.drake.edu From: jdshaffe@silver.ucs.indiana.edu (Sherlock Holmes) Subject: Corewar Info Message-ID: Date: Fri, 9 Sep 1994 17:57:04 GMT Greetings out there! I've known about the basics of corewar for quite some time now, but never tried it out. I just started reading this News group (Yes, it's MOSTLY above my head) But I am interested in learning how to run pMARS (Of which I just obtained a copy) And how to write players for the game(s). If anyone out there could give me pointers or show me the right direction in which to start, I would greatly appreciate it. Thanks in advace and happy programming. Jds From: ritter@cs.ualberta.ca (Greg Ritter) Subject: Redcode 2.0 - File Not Found error? Date: 9 Sep 1994 19:54:27 GMT Message-ID: <34qehj$pji@scapa.cs.ualberta.ca> I recently downloaded Redcoder 2.0 from soda, but have been having problems opening any and all warriors I throw at it... after using the standard file open dialog box, it tells me "file not found"!!! Has anyone else experience this problem on their mac? Also, are earlier versions of Redcoder still on the net? I had a previous version, and it worked ok... -Greg- ritter@cs.ualberta.ca -- From: d91andiv@IDA.LiU.SE (Anders Ivner) Subject: Scanners & DJN Message-ID: Date: Sat, 10 Sep 1994 17:09:56 GMT In case this hasn't been mentioned before: There's a conflict between pMars and the example mars interpreter in the '94 draft concerning the execution of DJN.F [from the draft] 1311 case DJN: ... 1335 case AB: 1336 case BA: 1337 case F: 1338 case X: 1339 case I: 1340 Core[((PC + WPB) % M)].ANumber = 1341 (Core[((PC + WPB) % M)].ANumber + M - 1) % M 1342 ; 1343 IRB.ANumber -= 1; 1344 Core[((PC + WPB) % M)].BNumber = 1345 (Core[((PC + WPB) % M)].BNumber + M - 1) % M 1346 ; 1347 IRB.BNumber -= 1; 1348 if ( (IRB.ANumber != 0) && (IRB.BNumber != 0) ) { ^^ 1349 Queue(W, RPA); 1350 } else { 1351 Queue(W, ((PC + 1) % M)); 1352 }; 1353 break; that is, the jump is only taken if *both* fields are non-zero. Also, shouldn't .AB and .BA behave as .B and .A respectively? Next topic: Scanners The '94 hill appears to be unbalanced in favour of scanners. I cooked up a standard spl/jmp cmp-scanner (without any anti-imp code even), and it landed 3rd on the hill. The question is: Since the program has nothing that is not already implemented in irongate (or atleast I think not), is there anything that motivates keeping it on the hill? Doesn't simply being on the hill motivate its existence? Anyway, I'm embarrassed by my current lack of innovativeness, so I'll probably remove it anyway... Anders From: hippo@iquest.com (Hugh Messenger) Subject: Looking for corewar FAQ Date: 11 Sep 1994 00:41:07 GMT Message-ID: ... erm, that's it. I'm looking for the corewar FAQ. So far not in any of the usual places. -- hugh From: bremermr@cantata.cc.purdue.edu (Myer Bremer) Subject: nothing important Date: 11 Sep 1994 04:59:50 GMT Message-ID: <34u2s6$l32@mozo.cc.purdue.edu> Greetings. I would publish Bremstone, but it's not all that successful of a program and lacks any real innovation. And I seem to have erased my only copy. It's a mod 2 bomber/coreclear with an excellent find 13 rating. I don't launch the imps until after a decent-sized bombing run in hopes of hitting scanners and tripping quickscans before they find my imps. Judging by the scores I should hold off a little bit longer. Thanks to all of you who do publish. I am still learning a great deal from your successful warriors. (I feel like such a hippocrate.) Traveling up the learning curve, Myer R Bremer From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 13 Sep 1994 09:01:39 GMT Message-ID: Archive-name: games/corewar-faq Last-modified: 1994/07/09 Version: 2.3.0 These are the Frequently Asked Questions (and answers) from the USENET newsgroup rec.games.corewar. This FAQ list is also available by anonymous FTP from rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.Z. TABLE OF CONTENTS Line ------------------------------------------------------------------------ 1. What is Core War? 69 2. Is it Core War or Core Wars? 82 3. Where can I find more information about Core War? 90 4. Core War has changed since Dewdney's articles. Where do I get 116 a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 135 6. What is the ICWS? 152 7. What is TCWN? 162 8. How do I join? 170 9. Are back issues of TCWNs available? 187 10. What is the EBS? 194 11. Where are the Core War archives? 208 12. Where can I find a Core War system for . . . ? 226 13. I do not have ftp. How do I get all of this great stuff? 275 14. I do not have access to Usenet. How do I post and receive news? 285 15. When is the next tournament? 303 16. What is KotH? How do I enter? 314 17. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 483 18. How does SLT (Skip if Less Than) work? 495 19. What does (expression or term of your choice) mean? 507 20. Other questions? 650 --------------------------------------------------------------------- Q 1: What is Core War? A 1: 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 of the opposing programs to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardized by the ICWS, and is therefore transportable between all standard Core War systems. ---------------------------------------------------------------------- Q 2: Is it "Core War" or "Core Wars"? A 2: 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. ---------------------------------------------------------------------- Q 3: Where can I find more information about Core War? A 3: 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: Author: Dewdney, A. K. Title: The Armchair Universe: An Exploration of Computer Worlds Published: New York: W. H. Freeman (c) 1988 ISBN: 0-7167-1939-8 Library of Congress Call Number: QA76.6 .D517 1988 Author: Dewdney, A. K. Title: The Magic Machine: A Handbook of Computer Sorcery Published: New York: W. H. Freeman (c) 1990 ISBN: 0-7167-2125-2 (Hardcover), 0-7167-2144-9 (Paperback) Library of Congress Call Number: QA76.6 .D5173 1990 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 (see Q 4). --------------------------------------------------------------------- Q 4: Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A 4: A draft of the official standard (ICWS'88) is available by anonymous FTP from the Core War archives (soda.berkeley.edu) as pub/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 pub/corewar/documents/tutorial.1.Z tutorial.2.Z (See also Q11) Steven Morrell (morrell@math.utah.edu) is preparing a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. Mail him for a preliminary version. Michael Constant (mconst@ soda.berkeley.edu) is reportedly working on a beginner's introduction. --------------------------------------------------------------------- Q 5: What is ICWS'94? Which simulators support ICWS'94? A 5: 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 post-increment indirect addressing mode 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 for more information (soda.berkeley.edu pub/corewar/documents/icws94.0202.Z). You can try out the new standard by submitting warriors to the '94 hills of the KotH servers (see Q16). Two corewar systems currently support ICWS'94, pMARS (various platforms) and Redcoder (Mac), both available at soda (see Q12). --------------------------------------------------------------------- Q 6: What is the ICWS? A 6: About one year after Core War first appeared in Sci-Am, 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). --------------------------------------------------------------------- Q 7: What is TCWN? A 7: Since March of 1987, "The Core War Newsletter" (TCWN) has been the official newsletter of the ICWS. It is published quarterly and recent issues are also available as Encapsulated PostScript on soda.berkeley.edu (see Q9). --------------------------------------------------------------------- Q 8: How do I join? A 8: For more information about joining the ICWS (which includes a subscription to TCWN), or to contribute an article, review, cartoon, letter, joke, rumor, etc. to TCWN, please contact: Jon Newman 13824 NE 87th Street Redmond, WA 98052-1959 email: jonn@microsoft.com (Note: Microsoft has NO affiliation with Core War. Jon Newman just happens to work there, and we want to keep it that way!) Current annual dues are $15.00 in US currency. ---------------------------------------------------------------------- Q 9: Are back issues of TCWN available? A 9: Recent issues can be found on soda.berkeley.edu (see Q11). Older issues (up to Winter 1991) are also available (see the next TCWN for details). --------------------------------------------------------------------- Q10: What is the EBS? A10: The Electronic Branch Section (EBS) of the ICWS is a group of Core War enthusiasts with access to electronic mail. There are no fees associated with being a member of the EBS, and members do reap some of the benefits of full ICWS membership without the expense. For instance, the ten best warriors submitted to the EBS tournament are entered into the annual ICWS tournament. All EBS business is conducted in the rec.games.corewar newsgroup. The current goal of the EBS is to be at the forefront of Core War by writing and implementing new standards and test suites (see Q 5). ---------------------------------------------------------------------- Q11: Where is the Core War archive? A11: 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 soda.berkeley.edu (128.32.149.19) in the /pub/corewar directories. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@soda.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. Much of what is available on soda is also available on the German archive at iraun1.ira.uka.de (129.13.10.90) in the /pub/X11/corewars directory. This FAQ is automatically archived by news.answers. See the header for the current archive name and news.answers for how to get it. ---------------------------------------------------------------------- Q12: Where can I find a Core War system for . . . ? A12: Core War systems are available via anonymous ftp from soda.berkeley.edu in the pub/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 pub/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 soda.berkeley.edu. Generally, the older the program - the less likely it will be ICWS compatible. 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 soda: 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 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) pmars06s.zip - portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars06s.tar.Z - same as above pmars06.zip - PC executables with graphics display, req 386+ macpmars02.sit.hqx - pMARS executable for Mac (port of version 0.2) ApMARS03.lha - pMARS executable for Amiga (port of version 0.3.1) wincor11.zip - MS-Windows system, shareware ($15) ---------------------------------------------------------------------- Q13: I do not have ftp. How do I get all of this great stuff? A13: There is an ftp email server at ftpmail@decwrl.dec.com. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. If you don't have access to the net at all, send me a 3.5 '' diskette in a self-addressed disk mailer with postage and I will mail it back with an image of the Core War archives in PC format. My address is at the end of this post. ---------------------------------------------------------------------- Q14: I do not have access to Usenet. How do I post and receive news? A14: To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Stormking.Com ListProcessor. To join, send: SUB COREWAR-L FirstName LastName to: LISTPROC@STORMKING.COM You can send mail to corewar-l@stormking.com to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (tuc@stormking.com). Another server that allows you to post (but not receive) articles is available. Email your post to rec-games-corewar@cs.utexas.edu and it will be automatically posted for you. ---------------------------------------------------------------------- Q15: When is the next tournament? A15: The ICWS holds an annual tournament. Traditionally, the deadline for entering is the 15th of December. The EBS usually holds a preliminary tournament around the 15th of November and sends the top finishers on to the ICWS tournament. Informal double-elimination tournaments are held frequently among readers of the newsgroup; watch there for announcements or contact me. ---------------------------------------------------------------------- Q16: What is KotH? How do I enter? A16: 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 with special comment lines. You will receive a reply indicating how well your program did against the current top twenty programs "on the hill". Your program 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. The original KotH was developed and run by William Shubert at Intel, 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@stormking.com" is maintained by Scott J. Ellentuch (tuc@stormking.com) and "pizza@ecst.csuchico.edu" by Thomas H. Davies (sd@ecst.csuchico.edu). Both KotHs provide very similar services and are therefore covered together. The principal difference is that "pizza" has a much faster internet connection than "stormking". Entry rules for King of the Hill Corewar: 1) Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. 2) Put a line starting with ";redcode" 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. (Also, see 5 below). 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. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently six separate hills you can select by starting your program with ;redcode, ;redcode-x, ;redcode-icws, ;redcode-b, ;redcode-94, or ;redcode-94x. More information on these hills is listed below. 3) Mail this file to "koth@stormking.com" or "pizza@ecst.csuchico.edu". "Pizza" requires a subject of "koth" (use the -s flag on most mailers). 4) Within a few minutes (or the next day for "stormking") 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. 5) In an hour or so (or the next day for "stormking") you should get more mail telling you how your program performed against the current top 20 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 20 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 20 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. Here are the Specs for the various hills: ICWS'88 Standard Hill Specs: (Accessed with ";redcode", available at "stormking" and "pizza") coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 instruction set: ICWS '88 ICWS Annual Tournament Hill Specs: (Accessed with ";redcode-icws", available at "stormking" only) coresize: 8192 instructions max. processes: 8000 per program duration: After 100,000 cycles, a tie is declared. max. entry length: 300 minimum distance: 300 instruction set: ICWS '88 ICWS'88 Experimental (Small) Hill Specs: (Accessed with ";redcode-x", available at "pizza" only) coresize: 4096 max. processes: 32 duration: after 65,536 cycles, a tie is declared. max. entry length: 64 minimum distance: 64 instruction set: ICWS '88 ICWS'94 Draft Hill Specs: (Accessed with ";redcode-94", available at "stormking" and "pizza") coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 instruction set: ICWS '94 Draft ICWS'94 Beginner's Hill Specs: (Accessed with ";redcode-b", available at "pizza" only) coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 instruction set: ICWS '94 Draft ICWS'94 Experimental (Big) Hill Specs: (Accessed with ";redcode-94x", available at "stormking" and "pizza") coresize: 55440 max. processes: 10000 duration: after 500,000 cycles, a tie is declared. max. entry length: 200 minimum distance: 200 instruction set: ICWS '94 Draft 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. All hills run portable MARS (pMARS) version 0.6, a platform-independent corewar system available at soda (see Q12). The '94 and '94x hills allow three experimental opcodes and addressing modes currently not covered in the ICWS'94 draft document: 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 ---------------------------------------------------------------------- Q17: Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? A17: Core is initialized to DAT 0, 0. This is an "illegal" instruction under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you write a DAT 0, 0 instruction - 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. ---------------------------------------------------------------------- Q18: How does SLT (Skip if Less Than) work? A18: 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. 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. ---------------------------------------------------------------------- Q19: What does (expression or term of your choice) mean? A19: Here is a selected glossary of terms. If you have a definition and/or term you wish to see here, please send it to me. (References to an X-like program mean that the term X is derived from the specific program X and has become a generic term). 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 Color - 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. 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, Here's a nifty antivamp that works well for paper: mov }0,}1000 When it encounters the usual JMP PIT,-FANGLOC fang this antivamp moves the fang onto the pit location, causing any trapped processes to begin jumping out of the pit into core where they probably will die. Most replicators have plenty of reproducing power to overcome the slight loss of time this imposes and can destroy the vamp. It also works as a continuous a-operand post-increment train which can itself damage an opponent. Also, Silk 3 has built-in antivamp potential. It bombs using the a-operand of lots of core pointers - eventually a fang will be used as a pointer, causing it to start writing near the pit. Look Out Vamps! Paul Kline pk6811s@acad.drake.edu (TCh stands for ... :-) From: bdthomse@peruvian.cs.utah.edu (Brant Thomsen) Subject: '94 Warrior Delays Date: 16 Sep 1994 19:32:07 GMT Message-ID: <35crrn$9qg@magus.cs.utah.edu> For those of you wondering when the next version of _The_'94_Warrior_ will be sent, there is going to be a little bit of a delay. I currently do not have access to a computer (outside of work) so I cannot work on the newsletter. Once I have a computer again, the newsletter will be put together and I will set about getting a vampire back on the '94 hill! (Hopefully, the newsletter will take place in the next week or two. The vampire may take longer. ;-) -- Brant D. Thomsen Man will occasionally stumble over the truth, (bdthomse@peruvian.cs.utah.edu) but most times he will pick himself up University of Utah and carry on. - Winston Churchill From: jippo@clinet.fi (Juha Pohjalainen) Subject: Idea for Pizza server ... Date: 18 Sep 1994 22:00:40 +0300 Message-ID: Hi! Is anyone updating that Pizza software? Anyway, here is the idea: Currently if I read mail (using Yarn), I get a list of messages looking like: Subject From ========================================================= King of the Hill Results Internet Pizza Server King of the Hill Results Internet Pizza Server King of the Hill Results Internet Pizza Server : : King of the Hill Results Internet Pizza Server But what I would like to see, is something like: Subject From ========================================================= 94' KOTH: Silk Warrior vs. Delivery Internet Pizza Server 94' KOTH: Phoenix vs. Delivery Internet Pizza Server Big KOTH: Big Silk Warrior vs. Warr.Internet Pizza Server Big KOTH: Big Phoenix vs. Warrior Internet Pizza Server : : So that way we can see, which is Hill results we have today and what were the names of those warriors in that report! Any another comments? Is this impossible to do? Jippo From: sd@ecst.csuchico.edu (Vince Tablet) Subject: Re: Idea for Pizza server ... Date: 19 Sep 1994 19:53:22 GMT Message-ID: <35kq7i$6d7@charnel.ecst.CSUChico.EDU> In article , Juha Pohjalainen wrote: > > Is anyone updating that Pizza software? Anyway, here is the idea: I'm the maintainer, but updating is a bit rare. School, you know. :( > But what I would like to see, is something like: > > Subject From > ========================================================= > 94' KOTH: Silk Warrior vs. Delivery Internet Pizza Server > 94' KOTH: Phoenix vs. Delivery Internet Pizza Server > Big KOTH: Big Silk Warrior vs. Warr.Internet Pizza Server > Big KOTH: Big Phoenix vs. Warrior Internet Pizza Server > : : > > So that way we can see, which is Hill results we have today > and what were the names of those warriors in that report! That's actually one of the things I've had in mind. If I ever get some free time I'll try to get it done. Thanks for the comment! -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~\/~~\ /~~~\/\ / \ \ / /~\ /~~~YY~~~\\ /~~~~ Thomas H. Davies V \/\ /\ V / V |\/\/| V\ / sd@ecst.csuchico.edu "Our computer is broad- \ / | / | V casting 20k a second on \/ | /\ | Member C.W.M. to the net... nobody |/oo\| Since 1987 knows why." -- Beej |/\| From: hendric@ksu.ksu.edu (Richard Hendricks) Subject: This group still alive? Date: 22 Sep 1994 20:37:02 -0500 Message-ID: <35tbfu$l46@merlin.ksu.ksu.edu> I was just wondering if this group is still alive. I was looking for someone to e-mail tutor me in corewar, or at least give me some more info than the stuff at soda. Thanks! -- Richard Hendricks, Kansas State University, Manhattan, KS "I'm an engineer, but that's ok, I work all night and sleep all day!" Computer Engineering, KSU Consultant hendric@ksu.ksu.edu From: hendric@ksu.ksu.edu (Richard Hendricks) Subject: A bunch of my attempts at a warrior. :) Flame Away! Date: 23 Sep 1994 00:51:04 -0500 Message-ID: <35tqc8$32b@nbc.ksu.ksu.edu> I humbly submit my first attempts at warriors. Any constructive criticism, similar experiences (these aren't long, so I'm sure someone must have made up one of these before!) Below is a complete listing of your program after assembly. General Warning: [22] Missing ';assert'. Warrior may not work with the current settings Number of warnings: 1 Program "Dynamic Imp-gate " (length 3) by "Richard Hendricks" START SPL $ 2, $ 0 JMP $ 0, < -3 JMP $ 0, < -1 END START Your program is currently the only one waiting to run. Below is a complete listing of your program after assembly. General Warning: [22] Missing ';assert'. Warrior may not work with the current settings Number of warnings: 1 Program "Pinchers" (length 15) by "Richard Hendricks" START SPL.B $ 2, $ 0 JMP.B $ 0, < -100 SPL.B $ 2, $ 0 JMP.B $ 0, < -2 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 MOV.I $ 0, $ 10 END START Your program is currently the only one waiting to run. Below is a complete listing of your program after assembly. General Warning: [22] Missing ';assert'. Warrior may not work with the current settings Number of warnings: 1 Program "Gate-Daemon" (length 7) by "Richard Hendricks" START SPL $ 2, $ 0 JMP $ 0, < -3 SUB # 3, $ -2 SPL $ 2, $ 0 JMP $ -2, $ 0 MOV $ -4, @ -3 JMP @ -4, $ 0 END START Your program is currently the only one waiting to run. -- Richard Hendricks, Kansas State University, Manhattan, KS "I'm an engineer, but that's ok, I work all night and sleep all day!" Computer Engineering, KSU Consultant hendric@ksu.ksu.edu From: aempire@aztec.co.za (Aerial Empire) Subject: Core War Interest Date: 27 Sep 1994 12:31:08 GMT Message-ID: <3693ac$irb@ticsa.com> Where can I get a public domain version of Core Wars (not knowing much about core wars except what I've read in the press .... ) But I've always been interested in finding out more. P.S. I've programmed in Z-80, 6502 and others. SIGNATURE: NEIL GORDON (aempire@aztec.co.za) ! P.P.S: This is my first post to a Newsgroup From: lngand05@uctvax.uct.ac.za (WINDOW ON THE WORLD) Subject: HELP : shareware? Date: 27 Sep 94 14:05:30 +0200 Message-ID: <1994Sep27.140530.1@uctvax.uct.ac.za> I can't find a general GAMES group so I hope it's OK for me to say HELP here: I'm looking for a list (if one exists) of shareware games. Or a site with shareware games (written for DOS that is!) Can somebody help? Thanks! Andrew :) ______________________________________________________________________ "I guess of all my uncles, I liked Uncle Cave Man the best. We called him Uncle Cave Man because he lived in a cave and every now and then he would eat one of us. Later we found out that he was a bear." - Jack Handey ---------------------------------------------------------------------- From: bmellows@jolt.mpx.com.au (Bruce Mellows) Subject: Re: This group still alive? Date: 27 Sep 1994 15:12:39 GMT Message-ID: <369cp7$fa5@inferno.mpx.com.au> I read it so probably YES. Bruce Mellows (bmellows@mpx.com.au) From: mconst@soda.CSUA.Berkeley.EDU (Michael Constant) Subject: Re: Core War Interest Date: 27 Sep 1994 21:59:01 GMT Message-ID: <36a4j5$k50@agate.berkeley.edu> In article <3693ac$irb@ticsa.com>, Aerial Empire wrote: >Where can I get a public domain version of Core Wars (not knowing much >about core wars except what I've read in the press .... ) But I've always >been interested in finding out more. Try ftp.csua.berkeley.edu:/pub/corewar/systems/pmars06s.tar.Z. Keep in mind that our ftp server is a little flakey and is liable to die without warning... if you can't connect, try again later or mail me. Some systems seem to be unable to resolve the hostname; if you need it, the IP address is 128.32.43.51. (I know this IP address is not the same one I posted earlier -- the ftp archives have moved from soda.csua.berkeley.edu (128.32.43.52) to scotch.csua.berkeley.edu (128.32.43.51). The ftp alias was changed to reference scotch instead of soda. Note that the move also denies me access to the files in /incoming, because I don't have access to scotch... you really *will* have to mail blojo now to get files moved or erased :-( Oh well.) -- Michael Constant (mconst@soda.csua.berkeley.edu) From: morrell@jeeves.math.utah.edu (Steven C. Morrell) Subject: Re: This group still alive? Date: Thu, 29 Sep 1994 09:52:17 GMT Message-ID: I think everybody who plays corewar is very busy right now with midterms or other such stuff. Historically, February is the peak season for this newsgroup. If I can get past this deadline, I will amuse you with the source for B-Panama X, the worlds *second* silk paper program. Meanwhile, keep sending in your warriors to the pizza hill. (That's pizza@ecst.csuchico.edu with a subject line of "koth", or "help" to get started.) Steven Morrell morrell@math.utah.edu From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 30 Sep 1994 01:35:07 GMT Message-ID: Archive-name: games/corewar-faq Last-modified: 1994/07/09 Version: 2.3.0 These are the Frequently Asked Questions (and answers) from the USENET newsgroup rec.games.corewar. This FAQ list is also available by anonymous FTP from rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.Z. TABLE OF CONTENTS Line ------------------------------------------------------------------------ 1. What is Core War? 69 2. Is it Core War or Core Wars? 82 3. Where can I find more information about Core War? 90 4. Core War has changed since Dewdney's articles. Where do I get 116 a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 135 6. What is the ICWS? 152 7. What is TCWN? 162 8. How do I join? 170 9. Are back issues of TCWNs available? 187 10. What is the EBS? 194 11. Where are the Core War archives? 208 12. Where can I find a Core War system for . . . ? 226 13. I do not have ftp. How do I get all of this great stuff? 275 14. I do not have access to Usenet. How do I post and receive news? 285 15. When is the next tournament? 303 16. What is KotH? How do I enter? 314 17. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 483 18. How does SLT (Skip if Less Than) work? 495 19. What does (expression or term of your choice) mean? 507 20. Other questions? 650 --------------------------------------------------------------------- Q 1: What is Core War? A 1: 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 of the opposing programs to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardized by the ICWS, and is therefore transportable between all standard Core War systems. ---------------------------------------------------------------------- Q 2: Is it "Core War" or "Core Wars"? A 2: 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. ---------------------------------------------------------------------- Q 3: Where can I find more information about Core War? A 3: 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: Author: Dewdney, A. K. Title: The Armchair Universe: An Exploration of Computer Worlds Published: New York: W. H. Freeman (c) 1988 ISBN: 0-7167-1939-8 Library of Congress Call Number: QA76.6 .D517 1988 Author: Dewdney, A. K. Title: The Magic Machine: A Handbook of Computer Sorcery Published: New York: W. H. Freeman (c) 1990 ISBN: 0-7167-2125-2 (Hardcover), 0-7167-2144-9 (Paperback) Library of Congress Call Number: QA76.6 .D5173 1990 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 (see Q 4). --------------------------------------------------------------------- Q 4: Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A 4: A draft of the official standard (ICWS'88) is available by anonymous FTP from the Core War archives (soda.berkeley.edu) as pub/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 pub/corewar/documents/tutorial.1.Z tutorial.2.Z (See also Q11) Steven Morrell (morrell@math.utah.edu) is preparing a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. Mail him for a preliminary version. Michael Constant (mconst@ soda.berkeley.edu) is reportedly working on a beginner's introduction. --------------------------------------------------------------------- Q 5: What is ICWS'94? Which simulators support ICWS'94? A 5: 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 post-increment indirect addressing mode 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 for more information (soda.berkeley.edu pub/corewar/documents/icws94.0202.Z). You can try out the new standard by submitting warriors to the '94 hills of the KotH servers (see Q16). Two corewar systems currently support ICWS'94, pMARS (various platforms) and Redcoder (Mac), both available at soda (see Q12). --------------------------------------------------------------------- Q 6: What is the ICWS? A 6: About one year after Core War first appeared in Sci-Am, 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). --------------------------------------------------------------------- Q 7: What is TCWN? A 7: Since March of 1987, "The Core War Newsletter" (TCWN) has been the official newsletter of the ICWS. It is published quarterly and recent issues are also available as Encapsulated PostScript on soda.berkeley.edu (see Q9). --------------------------------------------------------------------- Q 8: How do I join? A 8: For more information about joining the ICWS (which includes a subscription to TCWN), or to contribute an article, review, cartoon, letter, joke, rumor, etc. to TCWN, please contact: Jon Newman 13824 NE 87th Street Redmond, WA 98052-1959 email: jonn@microsoft.com (Note: Microsoft has NO affiliation with Core War. Jon Newman just happens to work there, and we want to keep it that way!) Current annual dues are $15.00 in US currency. ---------------------------------------------------------------------- Q 9: Are back issues of TCWN available? A 9: Recent issues can be found on soda.berkeley.edu (see Q11). Older issues (up to Winter 1991) are also available (see the next TCWN for details). --------------------------------------------------------------------- Q10: What is the EBS? A10: The Electronic Branch Section (EBS) of the ICWS is a group of Core War enthusiasts with access to electronic mail. There are no fees associated with being a member of the EBS, and members do reap some of the benefits of full ICWS membership without the expense. For instance, the ten best warriors submitted to the EBS tournament are entered into the annual ICWS tournament. All EBS business is conducted in the rec.games.corewar newsgroup. The current goal of the EBS is to be at the forefront of Core War by writing and implementing new standards and test suites (see Q 5). ---------------------------------------------------------------------- Q11: Where is the Core War archive? A11: 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 soda.berkeley.edu (128.32.149.19) in the /pub/corewar directories. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@soda.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. Much of what is available on soda is also available on the German archive at iraun1.ira.uka.de (129.13.10.90) in the /pub/X11/corewars directory. This FAQ is automatically archived by news.answers. See the header for the current archive name and news.answers for how to get it. ---------------------------------------------------------------------- Q12: Where can I find a Core War system for . . . ? A12: Core War systems are available via anonymous ftp from soda.berkeley.edu in the pub/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 pub/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 soda.berkeley.edu. Generally, the older the program - the less likely it will be ICWS compatible. 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 soda: 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 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) pmars06s.zip - portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars06s.tar.Z - same as above pmars06.zip - PC executables with graphics display, req 386+ macpmars02.sit.hqx - pMARS executable for Mac (port of version 0.2) ApMARS03.lha - pMARS executable for Amiga (port of version 0.3.1) wincor11.zip - MS-Windows system, shareware ($15) ---------------------------------------------------------------------- Q13: I do not have ftp. How do I get all of this great stuff? A13: There is an ftp email server at ftpmail@decwrl.dec.com. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. If you don't have access to the net at all, send me a 3.5 '' diskette in a self-addressed disk mailer with postage and I will mail it back with an image of the Core War archives in PC format. My address is at the end of this post. ---------------------------------------------------------------------- Q14: I do not have access to Usenet. How do I post and receive news? A14: To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Stormking.Com ListProcessor. To join, send: SUB COREWAR-L FirstName LastName to: LISTPROC@STORMKING.COM You can send mail to corewar-l@stormking.com to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (tuc@stormking.com). Another server that allows you to post (but not receive) articles is available. Email your post to rec-games-corewar@cs.utexas.edu and it will be automatically posted for you. ---------------------------------------------------------------------- Q15: When is the next tournament? A15: The ICWS holds an annual tournament. Traditionally, the deadline for entering is the 15th of December. The EBS usually holds a preliminary tournament around the 15th of November and sends the top finishers on to the ICWS tournament. Informal double-elimination tournaments are held frequently among readers of the newsgroup; watch there for announcements or contact me. ---------------------------------------------------------------------- Q16: What is KotH? How do I enter? A16: 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 with special comment lines. You will receive a reply indicating how well your program did against the current top twenty programs "on the hill". Your program 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. The original KotH was developed and run by William Shubert at Intel, 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@stormking.com" is maintained by Scott J. Ellentuch (tuc@stormking.com) and "pizza@ecst.csuchico.edu" by Thomas H. Davies (sd@ecst.csuchico.edu). Both KotHs provide very similar services and are therefore covered together. The principal difference is that "pizza" has a much faster internet connection than "stormking". Entry rules for King of the Hill Corewar: 1) Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. 2) Put a line starting with ";redcode" 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. (Also, see 5 below). 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. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently six separate hills you can select by starting your program with ;redcode, ;redcode-x, ;redcode-icws, ;redcode-b, ;redcode-94, or ;redcode-94x. More information on these hills is listed below. 3) Mail this file to "koth@stormking.com" or "pizza@ecst.csuchico.edu". "Pizza" requires a subject of "koth" (use the -s flag on most mailers). 4) Within a few minutes (or the next day for "stormking") 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. 5) In an hour or so (or the next day for "stormking") you should get more mail telling you how your program performed against the current top 20 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 20 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 20 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. Here are the Specs for the various hills: ICWS'88 Standard Hill Specs: (Accessed with ";redcode", available at "stormking" and "pizza") coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 instruction set: ICWS '88 ICWS Annual Tournament Hill Specs: (Accessed with ";redcode-icws", available at "stormking" only) coresize: 8192 instructions max. processes: 8000 per program duration: After 100,000 cycles, a tie is declared. max. entry length: 300 minimum distance: 300 instruction set: ICWS '88 ICWS'88 Experimental (Small) Hill Specs: (Accessed with ";redcode-x", available at "pizza" only) coresize: 4096 max. processes: 32 duration: after 65,536 cycles, a tie is declared. max. entry length: 64 minimum distance: 64 instruction set: ICWS '88 ICWS'94 Draft Hill Specs: (Accessed with ";redcode-94", available at "stormking" and "pizza") coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 instruction set: ICWS '94 Draft ICWS'94 Beginner's Hill Specs: (Accessed with ";redcode-b", available at "pizza" only) coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 instruction set: ICWS '94 Draft ICWS'94 Experimental (Big) Hill Specs: (Accessed with ";redcode-94x", available at "stormking" and "pizza") coresize: 55440 max. processes: 10000 duration: after 500,000 cycles, a tie is declared. max. entry length: 200 minimum distance: 200 instruction set: ICWS '94 Draft 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. All hills run portable MARS (pMARS) version 0.6, a platform-independent corewar system available at soda (see Q12). The '94 and '94x hills allow three experimental opcodes and addressing modes currently not covered in the ICWS'94 draft document: 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 ---------------------------------------------------------------------- Q17: Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? A17: Core is initialized to DAT 0, 0. This is an "illegal" instruction under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you write a DAT 0, 0 instruction - 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. ---------------------------------------------------------------------- Q18: How does SLT (Skip if Less Than) work? A18: 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. 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. ---------------------------------------------------------------------- Q19: What does (expression or term of your choice) mean? A19: Here is a selected glossary of terms. If you have a definition and/or term you wish to see here, please send it to me. (References to an X-like program mean that the term X is derived from the specific program X and has become a generic term). 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 Color - 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. 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, ;redcode-b verbose ;kill ;author Richard Hendricks ;name Sweeper, v5 ;strategy Basically, this program bootstraps itself 5000 cells away from its ;strategy decoy. Then it copies every 5th element onto the 6th, hopefully ;strategy hurting enemy code, while running a 3-point imp spiral. ;strategy thanks to myer, bremermr@sonata.cc.purdue.edu for the help! ;strategy All good ideas are his, all goof-ups mine! ;Scored 145 Ranked 9th. :) :) :) :) :) LOC EQU 4000 for 20 ;Decoy MOV 1,1 DAT #2667,<2667 rof start SPL #67,<-12 ;Start of actual bomber ADD -1,-13 ;The <'s maintains the gate MOV -3,<-14 DAT <-15,<-15 boot MOV start, start+LOC-2 ;This is the code to move the bomber MOV start+1, start+LOC-1 ;away from our decoy MOV start+2, start+LOC MOV start-1,boot ;This removes all references to the MOV start-1, boot+1 ;location we put our bomber MOV start-1, boot+2 SPL 2,<-1335 JMP start+LOC-2 ;This starts bomber execution MOV start-1, boot+10 ;This removes the reference in the JMP for 15 ;More decoy DAT <2667,#2667 MOV 1,1 rof end boot This is a simple bomber with a 75% effective imp gate (With the values stored in the gate used as the bomb pointer). Any questions, comments, etc welcome! -- Richard Hendricks, Kansas State University, Manhattan, KS "I'm an engineer, but that's ok, I work all night and sleep all day!" Computer Engineering, KSU Consultant hendric@ksu.ksu.edu From: hendric@ksu.ksu.edu (Richard Hendricks) Subject: Re: This group still alive? Date: 30 Sep 1994 09:56:23 -0500 Message-ID: <36h8un$klc@tonto.ksu.ksu.edu> morrell@jeeves.math.utah.edu (Steven C. Morrell) writes: >I think everybody who plays corewar is very busy right now with midterms or >other such stuff. Historically, February is the peak season for this >newsgroup. If I can get past this deadline, I will amuse you with the >source for B-Panama X, the worlds *second* silk paper program. >Meanwhile, keep sending in your warriors to the pizza hill. >(That's pizza@ecst.csuchico.edu with a subject line of "koth", or "help" >to get started.) >Steven Morrell morrell@math.utah.edu I just have a few quick questions before you get back to studying (I know how you feel, 2 weeks ago I had 3 tests in one week. And last night I stayed up till 3am helpin' someone with his C program. Ick). Anyway. Is there any formal list of rules for incorporating someone else's code in your warrior? Ok, but keep a reference to the source? Etc... Is it ok to send your warrior to both the regular and the beginner hilll? (Just scored 145 on b-hill. Just was wondering how I'd do against the REAL warriors. :) -- Richard Hendricks, Kansas State University, Manhattan, KS "I'm an engineer, but that's ok, I work all night and sleep all day!" Computer Engineering, KSU Consultant hendric@ksu.ksu.edu From: st000368@hrz1.hrz.th-darmstadt.de (Torsten Edelmann, Student, FHD) Subject: Beginners Guide? Date: Fri, 30 Sep 1994 14:50:49 GMT Message-ID: Hi People... I just got PMARS for DOS and, too bad, it doesn't have what I call a nice doc. I programmed some mini-mini-itti-witty-little Corewarriors way back, when nobody here in Germany was talking about it, but since then have forgotten about everything there is to know. Let's face it, I probably cannot even write up a dwarf, anymore. So, my question is: Is there a "Beginners Guide to Corewar for really, really dumb guys" ??? Or probably "Programming one heck of a mighty Corewarrior from scratch for really, REALLY dumb guys." ??? I would appreciate any help! Sayonara... Torsten