[01:14] MSG: Quit: humhum [02:07] Hello [02:08] Does CMP also compare adressing modes? [02:09] i don't believe anything does [02:12] So [02:12] MOV #0 @1 [02:12] is equal to [02:12] MOV @0 $1 [02:12] Thanks [02:13] afaik [02:18] myndzi\, do MOV.I and MOV.F also copy the adressing modes? [02:19] Oh Yes [02:19] Trivial [06:16] MSG: Ping timeout: 240 seconds [06:30] Join: chahibi joined #corewars [07:08] mov.i copies the addressing mode. mov.f does not [08:29] MSG: Ping timeout: 240 seconds [09:21] Join: fiveop joined #corewars [10:35] MSG: Quit: humhum [12:21] Join: impomatic joined #corewars [12:45] Hi :-) [13:42] MSG: Quit: Leaving [14:43] Join: Seppi joined #corewars [14:43] hi [14:45] ok [14:45] so, i'm looking up corewars [14:45] this is very cool stuff [14:45] wanted to know how one "competes" [14:45] take your code, and take it to a website? [14:46] MSG: Client Quit [14:46] Yes, send it by email [14:47] Too late :-( [14:54] * impomatic somehow got banned from freenode [14:59] Join: OoS joined #corewars [15:00] Changed IP address, should solve the problem [15:02] MSG: Ping timeout: 240 seconds [15:05] Nick Change: OoS changed nick to impomatic [15:42] Hmmm... I made reddit frontpage today :-) [17:36] hrm. [17:37] grmph [17:50] Eeek... [18:40] heres a small challenge to someone that might even bother [18:41] i need 4 and 8 processes generated out in serial succession, no nop's in code, must be located in different branches [18:47] damn, this turned out to be hard [18:49] not because of processing, but because of whats connected [18:49] (i decided to sent a probe to sal-b again, but now that im compressing the imp-launcher, i got into few details..) [18:55] now i got a nop that does nothing -_- [19:28] 4 parallel processes to one bit of code and 8 to another? [19:28] All to arrive at the same time? [19:28] point was, that there is a following vector launch: [19:28] table [19:28] table [19:29] spl 1, table [19:29] spl 1, table [19:29] launch [19:29] this example gives 2 a and 4 b [19:29] and launch would be implemented as spl 2 jmp * , jmp @ [19:30] but since N and M>N processes requires a different split in the spl 1 -line, it will change the actual number of total lines [19:32] bonus point of implementing Neo-style staggered addressses.. [19:32] of -> for [19:51] i don't quite get it [19:51] you want the 4 to execute in a row, then the 8? or alternating back and forth or what? :\ [19:52] the order doesnt really matter, the 4+8 processes will be put on two jmp's, which will then jumped to a location referenced in the table - the locations in table are interchangeable [19:53] oh, right [19:59] but in that case why not generate 12 processes and run them through the table? [20:00] look at the example given [20:00] it gives 2 a-field, and 4 b-fields [20:01] 12 processes is either 12 n-fields or 6 a-field and 6-bfields [20:02] 12 processes is 4 lines to generate, so that would be 4 & 8 free fields [20:03] i confess to not being familiar enough to understand the brevity of your example ;) [20:03] but i see now [20:04] you need two separate instructions for launching because of the table position [20:05] and you want to do it efficiently [20:05] yes [20:05] placing part of the table over the code to generate the processes [20:05] using every free field possible [20:16] Join: Neogryzor joined #corewars [20:16] h [20:17] g'evening [20:17] the logs have a tiny puzzle if you care [20:17] Hi Neo :-) [20:17] Yeah, i have just seen now [20:17] hi imp [20:18] Miz: How many adrresses do you nedd? [20:18] nedd equ need [20:19] Neogryzor: currently none, im taking different direction, but lets take a scale of 8-16 proc [20:20] (taking different direction eg. im doing something else before getting back to it) [20:22] well, i think it is not difficult if you need 2 locations, or more if they are consecutive [20:23] its a zillion times easier to read if the tables have straight addressing (eg b has istep*1, 2 3 4 , a has 8 9 10) [20:30] what's wrong with dat/dat/dat/dat/spl 1/spl 1/spl 2/jmp/spl 1/jmp ? [20:31] in that case the processes are not exacty working in parallel [20:31] i don't follow what you mean by parallel [20:32] since they execute sequentially anyway ;P [20:32] spl 1 / spl 1 / XXX <- executed 4 consecutive times, so parallel processes [20:32] right [20:32] there are some other problems, but they wind up jumping into an order, i think [20:32] spl 2 / jmp (executed before the other jmp) / spl / jmp [20:34] aaaabbbbbbbb is ok for an easier version of the challenge, but i think that runs aaaajjjjjjjaaaabbbbbbbb [20:35] yeah, i think it'd run like the latter [20:35] but does it matter? [20:35] i guess there's a slight delay in the end before things get going eh? [20:35] we are launching an imp, and there shouldnt be any gap [20:35] imp-spiral, that is [20:36] * nescience nods [20:36] trivial difference it seems but hey, it's all about perfection! [20:36] i thought it was too easy an answer, but i wasn't sure why :P [20:37] i can be done with spl 1 spl 1 spl 3 spl 1 jmp table, nop, jmp table2, but that has the nop i mentioned [20:37] Mizcu: Did you see the hybrid launcher? [20:37] Neogryzor: < Mizcu> bonus point of implementing Neo-style staggered addressses.. [20:37] yeah, [20:37] oh [20:37] or do you mean the metcalf's binary with interbranch splitting? [20:37] but there's no way you can time them right with a different amount of processes [20:38] i mean, if you get the procs first and then try to split them into different places in different quantities [20:38] 4&8 = 3*4, so timing isnt that bad [20:38] which means you have to split to the two locs before generating the procs [20:39] and since they are different amounts of procs it'll take a different amount of instructions to generate [20:39] so again, the timing isn't right [20:39] is this even solvable? :P [20:39] you could do 3 sets of 4, use 3 jmp commands i guess [20:39] which is probably what you just said [20:39] ;) [20:39] that requires a nop [20:40] yeah, i guess it would too [20:40] 4 3s wouldn't [20:40] but then you would either need movs or free b-fields [20:41] which might not be so bad if the spl was the first instruction [20:41] 4 3's is so big to launch, that you probably would get all the b-fields from that already [20:42] 7 b-fields, but that doesn't help because you can't use the ones from the jmps i guess [20:42] yes you can [20:43] what'll change the jmp pointers? [20:43] anyway i had an idea and forgot and just remembered it, don't distract me! ;) [20:43] sorry, wrong jump's that i tought [20:43] what if you have the procs like 4 and 4 [20:44] the ones at bottom can be changed to djn.b @0, #imp+1 etc [20:44] but instead of a jmp the first launcher is a spl [20:44] then 4 more procs fall through into the 2nd jmp [20:44] Mizcu: http://labarga.atspace.com/CW/091.TXT [20:45] i guess you still have a gap [20:45] Neo: i spent a saturday night wrapping my head around those, so i am familiar with them. But they still have free a-fields. [20:46] but id on't think you can have uneven launching instructions without one [20:48] i think the secret to this challenge is not to think in binary trees, but to think like the codesnippets to reduce the size of process-generators [20:48] spl four [20:48] strt: spl 1 , imp+(6*istep) ;now the addresses are in [20:48] spl 1 , imp+(4*istep) ;reverse order [20:48] spl 2 , imp+(2*istep) [20:48] frst: djn.a >frst ,#imp+(0*istep) [20:48] scnd: djn.a @scnd ,#imp+(1*istep) [20:48] four: spl 1 [20:48] spl 1 [20:48] jmp [20:48] excuse me of course you can... with a nop [20:48] just move the table 1 spot up [20:49] bah, not parallel :/ [21:01] this one comes close: [21:01] 80,69153325spl 1 [21:01] 80,69153325spl 4 [21:01] 80,69153325spl 3 [21:01] 80,69153325spl 1 [21:01] 80,69153325jmp [21:01] 80,69153325spl 1 [21:01] 80,69153325jmp [21:01] off by just 2 procs [21:05] I can only propose this, i think you can't prevent to leave some empty fields [21:05] spl 1 [21:05] spl k [21:05] spl 2 [21:05] spl 1 [21:05] b: jmp [21:05] k: spl 2 [21:05] spl b [21:05] jmp [21:13] aabab.. [21:14] aabaabab.. [21:16] ababaabaaaba [21:18] Abracadabra [21:18] Join: myndz joined #corewars [21:19] Sorry :-) [21:19] MSG: Client Quit [21:19] Join: myndz joined #corewars [21:19] i think i got it [21:20] hehe [21:20] take previous code, [21:20] hehe [21:20] start pointer for last jump 2 instructions early [21:20] it'l eat up the 2 non parallel procs with jmp 0 [21:20] ot very elegant though [21:21] wow phone yyping sucks [21:21] blah [21:22] i was trying to arrange it so the spl 4 would point to the first jmp instead [21:22] and make that one jmp 1 twice [21:22] but no good [21:22] still there is an extra b field [21:22] myndz: are you using irc on your mobile phone? [21:23] lol yes [21:23] cool [21:24] gettin lunch [21:24] the jmp thing popped into my head while driving :P [21:24] can't shorten it though cause it takes advantage of 2+2=2*2 [21:25] so if you added more procs it's 2 instructions per and more useless b fields :/ [21:25] spl 2 [21:25] spl }1 [21:25] spl 1 [21:25] spl 2 [21:25] jmp [21:25] jmp [21:25] ha [21:25] = aaababcab [21:26] c? [21:26] thats probably the first a running in different position [21:27] i like that one, seems more useful [21:27] Has anyone had chance to experiment with Skybuck's mars or Newton's new evolver? [21:30] * Neogryzor didn't [21:57] newton has a new evolver? [21:58] MSG: Quit: Powered by fIRC v0.2.7, the android IRC client. [22:02] whoops silly me [22:02] *0 != 0 [22:02] err i mean [22:02] *ptr where ptr = 0 [22:02] >:( [22:02] still makin noob mistakes [22:16] time to go for me [22:16] * Neogryzor waves [22:16] MSG: [22:21] hey mizcu, i don't suppose youcan arrange 4 spare b-fields AFTER the jmps? :P [22:22] space is not a problem when making warriors [22:22] well, with p-switchers maybe [22:22] yeah, but you are trying to cut the instructions, so adding 4 extra instructions defeats the purpose [22:22] what you want is a pattern like aabaabaabaab [22:22] but you can only really get that with 1) two spls in a row [22:23] like spl 3, spl 4 [22:23] or 2) a nop [22:23] aaaabbbbaaaa is fine, as aaaaaaaabbbb [22:24] maybe i'm mixing my a's and b's though [22:24] i think maybe those two would give different results [22:24] anyway, a regular pattern i mean [22:26] it gets easy with 4 extra fields, but then i guess the whole thing is unnecessary, nm [22:26] which i guess leaves us with modifying the spl instructions like your example with 9 procs [22:29] also for you to get something like aaaaaaaabbbb you'd have to split them separate at the beginning and then create the processes, which is more than 4 instructions of splits [22:29] i think [22:32] as for modifying the instructions themselves, you almost have to do that in the first one or two instructions [22:32] anything else and it'll get run too many times [22:32] unless i guess it doesn't affect anything after an execution or two [23:44] well i think i like this one best, even if it does have 3 stutters at the start [23:44] 80,69528089tbl dat j1, j2 [23:44] 80,69528089 dat j3, j4 [23:44] 80,69528089 dat j5, j6 [23:44] 80,69528089 dat j7, j8 [23:44] 80,69528089 dat 0, j9 [23:44] 80,69528089l spl 1, j10 [23:44] 80,69528089 spl 1, j11 [23:44] 80,69528089 spl 2, j12 [23:45] 80,69528089 spl *tbl, }0 [23:45] 80,69528089 jmp @tbl, }0 [23:45] only 5 instructions and you hae a free a-field too [23:45] also it's kinda elegant which i also like :) [23:48] :slap: [23:49] should've thought of that [23:52] that's what i was thinking of earlier and forgot [23:52] then forgot to implement over lunch [23:52] lol [23:52] i think it's an acceptable compromise? [23:55] i think i might be able to cut an instruction off, but thats the answer we should've come up with [23:55] too much rust [23:55] if you can cut an instruction off show me how :P [23:56] djn and a free b-field to inc the last spl? [23:56] wait what am i talking about that wouldn't work [23:56] lol [23:57] i still mix myself up using indirection modifiers in empty fields vs used fields