Path: ibmpcug!wendy.ibmpcug.co.uk!pipex!howland.reston.ans.net!cs.utexas.edu!not-for-mail From: ting@teloquent.com (T. Hsu) Newsgroups: rec.games.corewar Subject: Re: How do you do a vector-launch imp? Date: 26 Apr 1995 12:15:43 -0500 Organization: UTexas Mail-to-News Gateway Lines: 47 Sender: nobody@cs.utexas.edu Message-ID: <199504261715.NAA03222@kei.teloquent.com> NNTP-Posting-Host: news.cs.utexas.edu From pk6811s@acad.drake.edu (Paul Kline) > spl @imp_vector ,{0 > djn.a @(imp_vector-1),#0 I truly wished that this would work, but I've been attempting this for a while. The best I acheived was, ;----------------------------------------------------------------------------- ;redcode-94 ;name Vector (3 point, 8 process spiral, this not really a good spiral) ;author T.Hsu ;assert CORESIZE == 8000 imp_size equ 2667 ; 3 point, 8 process imp spiral imp_prc equ 8 dat imp+imp_size*3 ,imp+imp_size*7 dat imp+imp_size*2 ,imp+imp_size*6 dat imp+imp_size ,imp+imp_size*5 dat imp ,imp+imp_size*4 imp_vector spl 1 ,#0 spl 1 ,#0 spl *(imp_vector-1),{0 djn.a @(imp_vector-1),#0 imp mov.i #0,imp_size end imp_vector ;----------------------------------------------------------------------------- If you take a good look at the vectors, you will notice right off the problem inherent with this model. Ie, you are really launching two imps which are executing alternately. Ie, the process stream after 12 cycles is, impA impB impA+2667 impB+2667 impA+5334 impB+5334 impA+1 impB+1 Where impA was generated by the last spl and impB was generated by the djn.a. Unfortuantly two alternating imps are not nearly as strong as a single, larger imp spiral. Is it possible to use this method to create a true imp spiral? Absolutely, but it means copying code around, which eliminates the speed benifit of this method. It _seems_ theoretically possible to launch the imp spiral in 14 cycles (2 extra copies), but I haven't managed to do it. Hopefully someone else will work it out. ting@teloquent.com