From news-rocq.inria.fr!jussieu.fr!pasteur.fr!oleane!newsfeed.nacamar.de!dispose.news.demon.net!demon!rill.news.pipex.net!pipex!bore.news.pipex.net!pipex!not-for-mail Thu Sep 17 12:10:59 1998 Article: 9638 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!pasteur.fr!oleane!newsfeed.nacamar.de!dispose.news.demon.net!demon!rill.news.pipex.net!pipex!bore.news.pipex.net!pipex!not-for-mail From: Robert Macrae Newsgroups: rec.games.corewar Subject: Re: pmars bug Date: Mon, 14 Sep 1998 21:27:52 +0100 Organization: UUNET UK server (post doesn't reflect views of UUNET UK) Message-ID: <35FD7C48.3528@dial.pipex.com> References: <6t7cb2$fe8$1@news.asu.edu> Reply-To: ff95@dial.pipex.com NNTP-Posting-Host: userp424.uk.uudial.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.04 (WinNT; I) To: sieben@imap1.asu.edu Lines: 98 sieben@imap1.asu.edu wrote: > Could someone explain what this pmars bug is all about. I missed a few > messages. OK, now everyone to can share in the pmars bug experience. Why not try this with your versions and publish the result? I have a 4-way draw declared at Cycle 59535, when the first dummy dies... ---- To generate the condition, I ran this command line in a W95 DOS box: dl hescan.red splitdum.red splitdum.red splitdum.red splitdum.red ---- dl.bat is a batch file running the 286 version of pmars: d:\robert\games\corewar\pmars\pmars286\pmarsv -F 1000 -b -v 724 -r 10 -c 80000 -p 8000 -e -l 100 %1 %2 %3 %4 %5 %6 %7 %8 %9 ---- Splitdum.red is a high-performance version of nothing ;-) ;redcode-94 ;name Splitting Dummy ;author Robert Macrae ;strategy Die Happy :) ;assert 1==1 loop i FOR 10 SPL loop, 1 ROF i FOR 22 DAT 0, 0 DAT 0, 0 DAT 1, 1 DAT 1, 1 ROF ---- And you've probably met Hescan :-) ;redcode-94 test ;name He Scans Alone copy 0.1 ;author Robert Macrae ;assert CORESIZE == 8000 ;strategy 80% f-scanner switches from SPL to DAT carpet tPtr dat 100 ,4100-4 ; widely-spaced pointers dat 0,0 dat 0,0 dat 0,0 dat 0,0 dat 0,0 tWipe mov tSpl ,tPtr ,>tPtr jmn.f tWipe ,>tPtr tScan sub.x #-12 ,tPtr ; increment and look sne *tPtr ,@tPtr sub.x *pScan ,@tScan ; increment and look jmn.f tSelf ,@tPtr jmz.f tScan ,*tPtr pScan mov.x @tScan ,@tScan ; swap pointers for attack tSelf slt.b @tScan ,#tEnd+4-tPtr ; self-check djn tWipe ,@tScan ; go to attack djn *pScan ,#13 ; after 13 self-scans jmp *pScan ,}tWipe ; switch to dat-wiping dat 0,0 tSpl spl #1,{1 dat 0,0 dat 0,0 tEnd dat 0,0 for 61 dat 0,0 rof tDecoy equ (tWipe+1-1196) tStart mov