Article 2219 of rec.games.corewar: Path: hellgate.utah.edu!dog.ee.lbl.gov!agate!library.ucla.edu!europa.eng.gtefsd.com!uunet!news.sprintlink.net!news.world.net!speedway.net!valhalla.stormking.com!corewar-l@stormking.com From: stst@vuse.vanderbilt.edu (Stefan Strack) Newsgroups: rec.games.corewar Subject: Re: Newbie online.... Date: 2 Nov 1993 19:35:30 -0500 Organization: Storm King Ind. Inc. Lines: 116 Sender: server@valhalla.stormking.com Distribution: world Message-ID: <9311021644.AA13061@necs.vuse> Reply-To: corewar-l@stormking.com NNTP-Posting-Host: stormking.com Originator: corewar-l@stormking.com ;redcode ;name Validate 1.1R ;author Stefan Strack ;strategy System validation program - based on Mark Durham's validation suite ; ; This program tests your corewar system for compliance with the ICWS88- ; standard and compatibility with KotH. It self-ties (i.e. loops forever) ; if the running system is ICWS88-compliant and uses in-register evaluation; ; suicides (terminates) if the interpreter is not ICWS compliant and/or uses ; in-memory evaluation. A counter at label 'flag' can be used to determine ; where the exception occured. ; ; Tests: ; -all opcodes and addressing modes ; -ICWS88-style ADD/SUB ; -ICWS88-style SPL ; -correct timing ; -in-memory vs. in-register evaluation ; -core initialization ; ; Version 1.1: added autodestruct in case process gets stuck start spl l1,count+1 jmz Nntp-Posting-Host: vela.acs.oakland.edu X-Newsreader: TIN [version 1.2 PL0] Apparently-To: cbx.rec.games.corewar@stormking.com Arrrgh. Oh, I _think_ I finally have the addressing modes programmed properly. I think. It all make so much sense until you try to figure it out. So, I think this is right for the pre-dec indirect (<) I take the field, and look at the B-Field at that relative location. I subtract one of this B-Field (in registers, don't write this to the core memory until AFTER both fields are evaluated.) I take that value (BField-1), and I use that a an offset (relative memory location from original instruction.) That location (CurrentPointer+(BField-1) is the location refernced by that field. If it is being used as a value, I use the B-Field value of that location. I hope. As soon as I get the rest of the commands in, I will run the VALIDATE warrior. Also, I have another question. I ran the VALIDATE warrior in WinCore, and it committeed suicide, leading me to believe that WinCore is not ICWS '88 compliant. Is that true? And, if someone has the time, can they trace the execution of VALIDATE for me? I have included it at the end of this post. Thanks again, Jered .. ;redcode ;name Validate 1.1R ;author Stefan Strack ;strategy System validation program - based on Mark Durham's validation suite ; ; This program tests your corewar system for compliance with the ICWS88- ; standard and compatibility with KotH. It self-ties (i.e. loops forever) ; if the running system is ICWS88-compliant and uses in-register evaluation; ; suicides (terminates) if the interpreter is not ICWS compliant and/or uses ; in-memory evaluation. A counter at label 'flag' can be used to determine ; where the exception occured. ; ; Tests: ; -all opcodes and addressing modes ; -ICWS88-style ADD/SUB ; -ICWS88-style SPL ; -correct timing ; -in-memory vs. in-register evaluation ; -core initialization ; ; Version 1.1: added autodestruct in case process gets stuck start spl l1,count+1 jmz