[00:06] Join: fiveop joined #corewars [00:26] MSG: Quit: Lost terminal [00:46] bvowk: technically you were right about saying 8 hours, but this is summer, and thus doesnt exactly count [00:46] gonzbitch: greetings (unless you are asleep atm) [02:12] Join: Caelian__ joined #corewars [02:13] MSG: Ping timeout: 240 seconds [04:15] bbl [04:16] MSG: Ping timeout: 240 seconds [04:17] Join: Caelian|w joined #corewars [07:53] back [08:01] http://vyznev.net/corewar/guide.html <--- this is a document i personally find pretty useful [08:02] hi Cael [08:03] moin [08:04] i want to get back into writing redcode (and/or evolvers) ... but i just can't find the time for it [08:04] :( [08:09] perhaps in a couple of months [08:36] Join: fiveop joined #corewars [08:42] "Civilization: Revolutions will be coming out this Spring for Xbox 360 and PS3 and the following Fall for Wii." [08:42] sheesh [10:02] Join: Core_old_ joined #corewars [10:22] Caelian__: That's actually the one I'm reading. [10:22] Mizcu: And yes, I was asleep. [10:28] I've put together a few thoughts on my difficulties with Redcode: http://paste.cplusplus.se/paste.php?id=6236 [10:29] I've never ever touched any kind of ASM before this, so this is all new to me. [10:30] good timing with you, i was just leaving to go do little shopping [10:31] sorry, ill be back in an hour [10:31] No worries :) [11:12] I've looked further into the dwarf example and although it's a bit clearer there are still a few questions: http://paste.cplusplus.se/paste.php?id=6239 [11:13] Any help at any time is appreciated. [11:18] You're correct that the DAT does leave a pointer back to the code, which would be exploitable. [11:18] However, this tactic is only good against this specific warrior so probably wouldn't be used in general. [11:19] Also, yes, moving a separate DAT would solve the problem. [11:24] Ok, thanks :) [11:27] Just trying to get a grip on the different components of this specific warrior. [11:50] back [12:07] well, pak answered the question already, but throw me with another one [12:09] I'd honestly like some confirmation for the lines ending with "(?)". Does the @-sign, in short, mean you substitute the B-field with the B-field of another line (in this case the DAT-instruction)? [12:09] Using the *-sign in the A-field, does it work the same way? [12:10] well, you should consider it as adding, instead of substituting [12:11] * and @ work the same, only difference being in the field it uses [12:12] Ok. How is it like adding in the dwarf example? We're already adding on the first line; it seems to me we're only using the DAT-instructions B-field to MOV the DATs. [12:13] when you add to the b-field of dat, it changes, and so changes the place where it "points" to [12:13] Yes, but the @ itself doesn't add, or am I misunderstanding this? [12:13] doesnt add anything [12:13] see: [12:13] I thought of the @ as saying "use the B-field of another instruction here" [12:13] a: mov 0, @ptr [12:13] b: dat 0, 0 [12:13] c: dat 0, 2 [12:13] d: dat 0,0 [12:13] e: dat 0,0 [12:14] f: dat 0,0 [12:14] ptr equ c (silly me) [12:14] so, where does the mov 0, @c move itself to? [12:15] if @ would be a substitute, it would move itself to c. However it is not so. [12:15] if will move itself to e [12:15] Oh, ok. [12:17] changing c into dat 0, 3 would have the mov move itself to f and so on [12:21] you still have ? at the add -instruction [12:23] now, that dwarf is written in '88 standard, and that makes few things seem a little simplified [12:23] plain add #something, somewhere will add #something into b-field of somewhere [12:25] Oh, by the way, the page isn't dynamic, I'd have to make a new iteration of the code to change the content. And yes, I noted that the add was .AB and checked why in the guide. [12:26] in '88 there was no .ab or .ba and so on, which created little confusion, and disallowed some creative coding [12:26] which is why they were added in '94 [12:27] example of creative coding? well, for example [12:28] add.b #555, 4 [12:28] for those that have coded more than a while, that line is a bit silly, but it is a working example [12:31] It totally ignores the A-field, right? [12:31] yes [12:31] well, yes and no [12:32] because add.b is "expected" to be used in form of add.b instruction1, instruction2 [12:33] where it would add b-field of instruction1 to b-field of instruction 2 [12:33] but in add.b #555, 1 the #555 is a number, not an address [12:33] Ok. [12:34] and that defaults to 0 then [12:34] so it acts in core like add.b 0, 1 [12:34] because of this "defaulting" an extra number can be sneaked in [12:36] this is used often in modern warriors, but is currently not something you need to learn to use well [12:38] but it goes to prove that there are some tricks that look strange or absurd [12:39] Seems like a good way to store some data for free in a spot that you wouldn't use in any other way. [12:40] exactly [12:43] now, this example came because i mentioned, that lack of .ab etc made some tricks hard to do [12:44] however, this one was more of a specialty of '94 [12:44] think: [12:44] add #4, 1 [12:44] add #4, somewhere [12:45] while i really wanted to do [12:45] add.a #4, 1 [12:45] add.ab #4, somewhere [12:46] MSG: Ping timeout: 240 seconds [12:46] you can get past it by doing add a, 1 a: dat 4, 0 but its ugly, and "you shouldnt need extra instruction for it" [15:27] hrm [15:28] greetings [15:33] 'tings [15:36] whazzup miz? [15:41] the same [15:41] except now i got Jolt [15:42] well, it can't the be same then ;) [15:42] must be better [15:47] well, yeah [17:28] ill go zzz now --> [18:40] Join: Core_old_ joined #corewars [21:32] Join: tomd123 joined #corewars [21:32] hello all [21:34] Part: tomd123 left #corewars