Article 1754 of rec.games.corewar: Path: hellgate.utah.edu!dog.ee.lbl.gov!network.ucsd.edu!usc!cs.utexas.edu!not-for-mail From: wsheppar@st6000.sct.edu (Wayne Sheppard) Newsgroups: rec.games.corewar Subject: Subtraction coreclear Date: 15 Apr 1993 01:43:03 -0500 Organization: UTexas Mail-to-News Gateway Lines: 42 Sender: daemon@cs.utexas.edu Message-ID: <9304150640.AA32984@st6000.sct.edu> NNTP-Posting-Host: cs.utexas.edu Subtraction coreclear, a new way to coreclear Look at this: ;Name No ties allowed mov <21,1+2234 sub 1,-1 jmp -2,-2234 After about 12,000 cycles, the move statement will decrement the sub statement and it will look like this: a mov <1,1212 b sub 1,-2 c jmp -2,-2234 As this runs, line c is subtracted from every location in the core. Line b actually does the subtraction, while line a decrements the pointer on line b. This almost acts like a DAT coreclear. Instead of MOVing a DAT at every location, line c is SUBtracted from every location. After the mod-2 bombing gets done first, the only things left (besides Paper and Imp) will be SPL 0. Sucker and other programs use the SPL 0 in a self-splitting loop to keep you honest. If the SPL 0 isn't on your bombing pattern, you need a coreclear to eliminate him. This is where the subtraction coreclear comes in. SPL 0 becomes SPL 2,2234. The process that was trapped by the SPL statement now scurries away a dies. I discovered this coreclear by accident, but since then I noticed it in Andy Pierce's Twill and Matt Hasting's SNM. Wayne Sheppard wsheppar@st6000.sct.edu PS: Coming soon, the code for Night Crawler