home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!think.com!yale.edu!not-for-mail
- From: starr-daniel@yale.edu (Daniel Starr)
- Newsgroups: rec.games.corewar
- Subject: Re: Outlaw ImpRings? - There's a better way
- Date: 31 Dec 1992 06:16:17 -0500
- Organization: Yale University Science & Engineering UNIX(tm), New Haven, CT 06520-2158
- Lines: 67
- Message-ID: <1hukq1INNroe@MINERVA.CIS.YALE.EDU>
- References: <78903@hydra.gatech.EDU>
- NNTP-Posting-Host: minerva.cis.yale.edu
-
- In article <78903@hydra.gatech.EDU> gt7804b@prism.gatech.EDU (Wayne Edward Sheppard) writes:
- >I don't know about the rest of you, but these imprings has made
- >corewar boring. But we shouldn't change the rules to fight them.
- >How about changing the core size. 8000 is too friendly for imps.
- >Do imprings work good when there are alot of points? A coresize
- >of 9000 would make the smallest impring have 7 points. Is this
- >enough? 8400 core size would require 11 point rings.
- >
- >If an impring had more points, wouldn't it be easier to kill?
- >
- Nope. The nifty thing about an impring, after all, is that just like
- a classic imp, each instruction prepares the very next one that executes.
- As a result, no matter how many points there are, only one -- the one
- about to execute -- is vulnerable to bombing/mutation at any given time.
-
- But imprings aren't that hard to kill. You just need to decrement a lot
- in front of your program. A program like this
-
- spl 0, <-3
- mov <-3,<-4
- djn -1,<-5
-
- will cause ANY impring or spiral to crash when it hits the line three above
- the top. (In point of fact, any program with an SPL 0 can't lose to an impring,
- although it can tie, since an impring kills programs by subverting them and
- letting them die when they outrun the slower ring into core.)
- (This also illustrates the real advantage of "spirals" -- overlapping offset
- rings: each has its vulnerable instruction in a different place at any
- given time, so a single djn stream can't hit both: if it hits one, it
- necessarily bypasses the other.)
-
- Anyway, unless I'm overlooking something (comments, anyone?), the only
- disadvantage of larger imprings is that they're messier to launch.
-
- Speaking of launches, anyone found a simpler way than this? --
-
- d EQU 8001/7
- imp mov 0,d
- start mov imp,100
- spl 1
- spl 1
- spl 1
- jmp <launch
- jmp main-program
- jmp start+100+d*6
- jmp start+100+d*5
- jmp start+100+d*4
- jmp start+100+d*3
- jmp start+100+d*2
- jmp start+100+d*1
- jmp start+100+d*0
- launch dat #0
- ...
- main-program ...
-
- For spirals, add a MOV imp,100+d at the top, an extra SPL 1, and precede
- each of the normal JMP start+100+d*n statements with a JMP start+100+d*(n+1).
- This creates two rings, the first always one instruction ahead of the second.
-
- (I'm assuming here that I am correctly interpreting when Dan N. means by
- spirals. If I'm not, please enlighten me. (: )
-
- --
- --------------------------------------------------------------------
- |Daniel Starr | "Wait! Wait! Maybe THIS will work!" |
- |dstarr@minerva.cis.yale.edu | |
- --------------------------------------------------------------------
-