code logs -> 2007 -> Fri, 21 Dec 2007< code.20071220.log - code.20071222.log >
--- Log opened Fri Dec 21 00:00:31 2007
00:10 Forj [~Forj@Nightstar-1707.ue.woosh.co.nz] has quit [Connection reset by peer]
00:16 Chalcedon [~Chalcedon@Nightstar-1707.ue.woosh.co.nz] has quit [Quit: going]
01:11 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Z?]
03:22 AnnoDomini [AnnoDomini@Nightstar-29660.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
03:23 AnnoDomini [AnnoDomini@Nightstar-29660.neoplus.adsl.tpnet.pl] has joined #Code
03:23 mode/#code [+o AnnoDomini] by ChanServ
06:57
<@Vornicus>
Hey, cool
06:57
<@Vornicus>
So, the calculator on Mac, I don't use it much, mainly because I generally outstrip its abilities.
06:58
< C_tiger>
I feel like there's a but coming.
06:58
<@Vornicus>
But apparently they updated it some for Tiger, and I didn't notice until now: there is now a "Programmer" mode, which shows you a full 64-bit number in binary, octal, and hex, and gives shifts, bitwise ops, roll, 1s and 2s complement...
06:59 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
06:59
<@Vornicus>
And they also added the "use RPN" option.
06:59 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
06:59 mode/#code [+o ToxicFrog] by ChanServ
06:59
< C_tiger>
Ugh, while I like RPN in concept, I hate it in practice.
06:59
< C_tiger>
But that is pretty nifty.
07:00
<@Vornicus>
It is quite nifty.
07:00
<@Vornicus>
...oh, hell
07:00
<@Vornicus>
It even lets you toggle individual bits.
07:01 * Vornicus hunts around for a thing that restricts it to less than 64 bits.
07:01 * McM[SanDiego] unleashes more violent catharsis.
07:03
<@Vornicus>
...and apparently you can have it show you the unicode character or ascii string that the number represents.
07:07
<@Vornicus>
I can't find one that restricts. Dang.
07:21 Chalcedon [~Chalcedon@Nightstar-1707.ue.woosh.co.nz] has joined #code
07:21 mode/#code [+o Chalcedon] by ChanServ
08:10 Thaqui [~Thaqui@219.89.45.ns-13582] has joined #code
08:10 mode/#code [+o Thaqui] by ChanServ
08:21 gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code
08:21 mode/#code [+o gnolam] by ChanServ
09:03 * Vornicus thinks he needs more heavy-duty tools than just monitor to find the things he needs in here.
09:08
<@Vornicus>
a flowcharter, a memory mapper...
09:12 You're now known as TheWatcher
09:13
<@McM[SanDiego]>
... Oh, you haven't been doing a line-dissassembly thing?
09:16
<@Vornicus>
line-disassembly thing? what's the difference from that and d <address> in monitor?
09:17
<@Vornicus>
and the prints you get in next?
09:18
<@Vornicus>
(it's actually a bit of a pain... it uses a custom terminal emulator, and it has all of 100 or so lines of scrool)
09:18
<@McM[SanDiego]>
Bluck.
09:18
<@McM[SanDiego]>
Yeah, the Linux version uses the terminal window and readline.
09:18
<@McM[SanDiego]>
The Win32 one does not
09:19
<@McM[SanDiego]>
And an execution tracker would not disassemble data.
09:19
<@McM[SanDiego]>
d does.
09:19
<@McM[SanDiego]>
I suppose that's about it, though.
09:20
<@Vornicus>
the mac one uses neither Terminal nor xterm
09:20
<@McM[SanDiego]>
Well, in Linux you're invoking it from a Terminal, so it just dumps it there.
09:21
<@McM[SanDiego]>
Also, have you been able to exploit the hunt command?
09:21
<@McM[SanDiego]>
That might get you some way towards memory mapping
09:22
<@Vornicus>
It would, if I knew what it was I was looking for.
09:22
<@McM[SanDiego]>
Mmm. The usual trick is to have some value that you know, hunt for things that have it, then have it change and re-hunt for the new value.
09:22
<@McM[SanDiego]>
You're trying to find combat code, right? Maybe unit HP?
09:23
<@Vornicus>
No, right now I'm looking for the game-init code.
09:23
<@McM[SanDiego]>
Aha. Tricky.
09:24 Chalcedon [~Chalcedon@Nightstar-1707.ue.woosh.co.nz] has quit [Quit: Gone]
09:35 AnnoDomini [AnnoDomini@Nightstar-29660.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
09:36
<@McM[SanDiego]>
Oy.
09:36 * McM[SanDiego] takes a look at Scout's Loader.
09:36
<@McM[SanDiego]>
It's as bad as KB's.
09:36
<@McM[SanDiego]>
Well, not quite.
09:37
<@McM[SanDiego]>
First instructions: SEI; LDA #$20; STA $d011; STA $01
09:38
<@McM[SanDiego]>
... self modifying code! Huz-frickin-zah.
09:39
<@Vornicus>
Scout?
09:39
<@McM[SanDiego]>
Yeah.
09:39
<@McM[SanDiego]>
A game of My Youth (tm).
09:40
<@Vornicus>
KB's does quite a bit of loading RAM with some stuff and then jumping into it; why it's doing that though I am not certain.
09:40
<@McM[SanDiego]>
I think in this case it's loading the loader into low ram, but the code starts at $0801. But Scout itself is supposed to be there (being entirely resident in memory).
09:41
<@McM[SanDiego]>
So it's copying Scout back where it belongs, after copying itself into the one place it doesn't think will do any damage: the bottom of the stack.
09:41
<@Vornicus>
Granted all that shit is /demo/ code, so it's craziness.
09:41
<@Vornicus>
09:41
<@McM[SanDiego]>
In this case, it's saving tens of bytes of space, so I can see it.
09:41
<@McM[SanDiego]>
6502 pointer code sucks, so instead of making a pointer and messing with it, it's just rewriting the address in the STA instruction.
09:42 AnnoDomini [AnnoDomini@83.21.30.ns-26449] has joined #Code
09:43 mode/#code [+o AnnoDomini] by ChanServ
09:49
<@Vornicus>
Cool.
09:49
<@Vornicus>
Not.
09:51 * Kyrre dances with Vornicus.
09:51 * Vornicus dances with Kyrre.
09:51
< Kyrre>
Weee.
09:54
< Kyrre>
But shouldn't you be asleep?
09:55
<@McM[SanDiego]>
AHA, FOUND IT
09:55
<@Vornicus>
Hi, meet nocturnalboi
09:55
<@Vornicus>
AHA FOUND IT?
09:55
<@McM[SanDiego]>
.C:0370 4C 1B 08 JMP $081B
09:55
< Kyrre>
nocturnalboi?
09:55 * Vornicus is naturally nocturnal.
09:57 * McM[SanDiego] runs "until 101", then "until 81b", wins.
10:00 * Kyrre tries not to be.
10:03
<@McM[SanDiego]>
Or not
10:04 * McM[SanDiego] jumps to $03.
10:04 * McM[SanDiego] continues tracing until a bogus "RTI", which jumps him to $81c0.
10:04
<@Vornicus>
Something's wrong, I take it.
10:04
<@McM[SanDiego]>
... no.
10:04
<@McM[SanDiego]>
This isb ehaving precisely as intended.
10:05
<@McM[SanDiego]>
$81C0 is pretty clearly at or near where the program begins.
10:05
<@McM[SanDiego]>
The LDA #$93; JSR $FFD2 is a good hint there.
10:05
<@McM[SanDiego]>
That's "Clear the screen".
10:06
<@Vornicus>
Ah
10:06
<@Vornicus>
isb ehaving
10:06
<@Vornicus>
Incredibly Sadistic Behavior?
10:06
<@McM[SanDiego]>
...?
10:06
<@McM[SanDiego]>
No, it's just that dialup means never having to fix your typos.
10:06
<@Vornicus>
:P
10:08
<@McM[SanDiego]>
Wow.
10:08
<@McM[SanDiego]>
I must assume this program was written without the benefit of a relocating assembler.
10:09
<@McM[SanDiego]>
All that wacky RAM copying was to get the program bits in the locations necessary to have the branches work out, and there are clear module delinations.
10:10
<@Vornicus>
Fun.
10:25
<@Vornicus>
# Note to self: I have no idea what this does anymore
10:25
<@Vornicus>
# It looks like a cool fucking segment of code though!
10:25
<@Vornicus>
# I just wish I remembered writing it... :-\
10:26
<@McM[SanDiego]>
whut
10:26
<@Vornicus>
http://codeulate.com/?p=7 <--- put profanity into Google Code Search, and it finds some gems.
10:27
<@McM[SanDiego]>
Yes.
10:27
<@McM[SanDiego]>
Also, "in case some idiot".
10:29
<@McM[SanDiego]>
...wtf
10:30
<@McM[SanDiego]>
So, tracking a function
10:30
<@McM[SanDiego]>
la la la
10:30
<@McM[SanDiego]>
code code code
10:30
<@McM[SanDiego]>
Then
10:30
<@McM[SanDiego]>
RTS
10:30
<@McM[SanDiego]>
RTS
10:30
<@McM[SanDiego]>
RTS
10:30
<@McM[SanDiego]>
BRK
10:30
<@McM[SanDiego]>
BRK
10:30
<@McM[SanDiego]>
BRK
10:30
<@McM[SanDiego]>
We want this function over, and we want it over hard.
10:30
<@Vornicus>
/sweet/
10:32
<@McM[SanDiego]>
Not only that, this code is full of NOPs.
10:33
<@Vornicus>
NOPs eat a cycle, don't they?
10:33
<@McM[SanDiego]>
Two.
10:33
<@Vornicus>
oh.
10:33
<@McM[SanDiego]>
One to fetch, one to decode.
10:33
<@Vornicus>
ah, so.
10:34
<@McM[SanDiego]>
Decoding an Immediate also tends to carry it out, IIRC. The 6502 has a pipeline of sorts.
10:54 Thaqui [~Thaqui@219.89.45.ns-13582] has left #code [Leaving]
10:57
<@AnnoDomini>
Hm... what would the regexp be for "one word in a line, with any amount of whitespace before and after"?
10:58
<@Vornicus>
What language?
10:58
<@Vornicus>
And this is a thing that is probably better suited to non-regex.
11:00 * AnnoDomini isn't sure. In Notepad2's search/replace options, there's a "Regular Expression search" box. But the thing lacks a proper manual, apparently, so I don't know what it does, really.
11:01
<@Vornicus>
^\s*(\S+)\s*$
11:01
<@TheWatcher>
... aah, I just love it when CPAN breaks my perl install
11:01
<@Vornicus>
^ try that.
11:01
<@AnnoDomini>
Thanks. :)
11:15 * AnnoDomini finds the damned documentation and arrives at "^\s*\<\w*\>\s*$".
11:15
<@McM[SanDiego]>
That's a wtf.
11:15
<@AnnoDomini>
Huh? It works.
11:16
<@Vornicus>
^\s*.+?\s*$
11:16
<@Vornicus>
...doesn't work because it matches spaces within, which is silly.
11:16
<@McM[SanDiego]>
It's the toothpicks and the <>s.
11:16
<@McM[SanDiego]>
<> have no place in normal regexps.
11:17
<@Vornicus>
^\s*[^\s]+\s$ <--- if the one I gave does not work.
11:17
<@McM[SanDiego]>
These clearly are not PCREs.
11:17
<@McM[SanDiego]>
Anyway, bed.
11:17
<@McM[SanDiego]>
It being 3:30.
11:19
<@AnnoDomini>
Vornicus: Doesn't work.
11:19
<@AnnoDomini>
http://pastie.caboo.se/131285 <- The syntax.
11:22
<@AnnoDomini>
Too bad this thing can't replace with stuff it found, a bit modified.
11:56
<@TheWatcher>
What language is that, AD?
11:56
<@TheWatcher>
Oh, notepad2, nevermind
13:36 You're now known as TheWatcher[afk]
14:31 You're now known as TheWatcher
15:51 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
17:05 You're now known as TheWatcher[afk]
17:58 AnnoDomini is now known as Lerhir
18:21
<@ToxicFrog>
Ahahahahahahahha
18:21
<@ToxicFrog>
Same OS.
18:22
<@ToxicFrog>
Same distro, even, with the same versions of everything installed.
18:22
<@ToxicFrog>
Same compiler and source tree.
18:22
<@ToxicFrog>
Same build environment configuration.
18:22
<@ToxicFrog>
Different machine code!
18:23
<@ToxicFrog>
Why? Because the preprocessor expands __FILE__ to the name on the command line, which may be an absolute path, and anything using the debugging api gets __FILE__ placed in .rdata, thus making the memory locations of everything and its dog dependent on the length of the absolute path to your source tree.
18:32 You're now known as TheWatcher
19:10 Attilla [~The.Attil@172.200.173.ns-22442] has quit [Ping Timeout]
19:50 Attilla [~The.Attil@172.200.173.ns-22442] has joined #code
20:33
<@Vornicus>
awesome
20:33
<@Vornicus>
not.
20:33 * Lerhir snorts.
20:44
<@ToxicFrog>
And even after correcting this, the Linux and Windows variants generate different code ;.;
20:46
<@ToxicFrog>
1718 07ed 8D7DAE leal -82(%ebp), %edi #, ivtmp.540 | 1718 07ed 8D55AE leal -82(%ebp), %edx #,
20:46
<@ToxicFrog>
1719 07f0 C745A400 000000 movl $0, -92(%ebp) #, D.5090 | 1719 07f0 31F6 xorl %esi, %esi # D.5075
20:46
<@ToxicFrog>
1720 07f7 C745A800 000000 movl $0, -88(%ebp) #, D.5090 | 1720 07f2 8955A0 movl %edx, -96(%ebp) #, ivtmp.540
20:46
<@ToxicFrog>
1721 07fe 6690 .p2align 4,,7 | 1721 07f5 31FF xorl %edi, %edi # D.5075
20:46
<@ToxicFrog>
1722 L131: | 1722 .p2align 4,,7
20:46
<@ToxicFrog>
1723 .stabn 68,0,987,LM230-LFBB10 | 1723 L131:
20:47
<@ToxicFrog>
1724 LM230: | 1724 .stabn 68,0,1019,LM230-LFBB10
20:47
<@ToxicFrog>
1725 0800 8B75A4 movl -92(%ebp), %esi # D.5090, D.5110 | 1725 LM230:
20:47
<@ToxicFrog>
1726 .stabn 68,0,1019,LM231-LFBB10 | 1726 07f7 8B4D88 movl -120(%ebp), %ecx # bdump,
20:47
<@ToxicFrog>
1727 LM231: | 1727 07fa 31C0 xorl %eax, %eax # tmp142
20:47
<@ToxicFrog>
1728 0803 8B5590 movl -112(%ebp), %edx # bdump, | 1728 .stabn 68,0,987,LM231-LFBB10
20:47
<@Vornicus>
;_;
20:47
<@ToxicFrog>
1729 0806 31C0 xorl %eax, %eax # tmp139 | 1729 LM231:
20:47
<@ToxicFrog>
1730 .stabn 68,0,1020,LM232-LFBB10 | 1730 07fc 89F3 movl %esi, %ebx # D.5075, D.5101
20:47
<@ToxicFrog>
Look at this!
20:47
<@ToxicFrog>
And it's all goddamn CISC processors.
20:47
<@Vornicus>
I can't read that.
20:48
<@ToxicFrog>
It's a side-by-side listing comparison - left is linux, right is windows.
20:48
<@Vornicus>
but any assembly language with "stabn" as a command is scary, in my book. :P
20:48
<@ToxicFrog>
Linux emits LEAL MOVL MOVL MOVL MOVL XORL, windows LEAL XORL MOVL XORL MOVL XORL MOVL
20:48
<@ToxicFrog>
That'
20:48
<@ToxicFrog>
s a debugger directive, actually
20:49
<@Vornicus>
ah
20:49
<@ToxicFrog>
And is specific to the debugging format, not the processor.
20:49
<@ToxicFrog>
All the .stab* directives insert information into the debug symbol tables.
20:50
<@Vornicus>
why is exact equality important here, anyway?
20:52
<@ToxicFrog>
It means we can move the build system from windows to linux without waiting for the end of this testing cycle.
20:52
<@Vornicus>
aha
20:53
<@ToxicFrog>
Otherwise we either have to wait for 6.x, or restart the 5.x test process, and the latter isn't going to happen.
21:03 Lerhir is now known as AnnoDomini
21:12
< Kyrre>
Crap, and you guys snapped at me for not using the pastie, HAH, never again.
22:44 Forjadon [~Forjadon@Nightstar-1707.ue.woosh.co.nz] has joined #code
22:56 Forjadon [~Forjadon@Nightstar-1707.ue.woosh.co.nz] has quit [Ping Timeout]
22:59
< C_tiger>
Kyrre, everyone is excused one mistake :P
23:01
< C_tiger>
(TF gets two because his name has two parts.)
23:02
<@AnnoDomini>
Mistake tolerance is a function of reputation. :p
23:03
< C_tiger>
And if your name as a @ in front of it.
23:04 mode/#code [+oooooo Attilla C_tiger EvilDarkLord Kazriko Kyrre MyCatVerbs] by Vornicus
23:04 mode/#code [+o Pi-2] by Vornicus
23:04
<@C_tiger>
Wooot, more mistake tolerance!
23:05
<@C_tiger>
Vorn, I realized the really silly thing I forgot about when discussing pot odds the other day.
23:05
<@AnnoDomini>
That your name has an @ in front of it is an indication of reputation. Or brown-nosing. ;p
23:05
<@C_tiger>
Or Vorn's generosity.
23:06
<@C_tiger>
Blarg, computer is demanding a restart.
23:08 C_tiger [~c_wyz@Nightstar-5378.nycmny.east.verizon.net] has quit [Quit: And away she goes!]
23:08 * Vornicus wonders what silly thing C forgot.
23:22
<@gnolam>
It forgot to be anthropomorphized.
23:38
<@Vornicus>
rather a long reboot.
23:44
<@AnnoDomini>
He is obviously negotiating with native american spirits over the right to have his box work again.
23:45
<@AnnoDomini>
:p
23:49 C_tiger [~c_wyz@Nightstar-5378.nycmny.east.verizon.net] has joined #code
23:50
<@AnnoDomini>
Chief Dancing Puma agreed to give you box's spirit back, I presume?
23:50
< C_tiger>
?
23:51
<@gnolam>
AnnoDomini: Good thing he didn't ask Chief Dancing on Core.
23:51
<@AnnoDomini>
Heh.
23:51
<@Vornicus>
[Fri 18:41:06] Vornicus rather a long reboot.
23:51
<@Vornicus>
[Fri 18:47:24] AnnoDomini He is obviously negotiating with native american spirits over the right to have his box work again.
23:52
<@AnnoDomini>
C_tiger: Your reboot was long. Hence I thought of a joke between myself and an IRL friend - whenever a box would not work for inexplicable reasons, we would say that it was because it was positioned over an ancient Indian graveyard and the spirits were displeased.
23:52
< C_tiger>
Haha.. actually, I knocked over a glass vase in the kitchen so I had to clean that up.
23:52
< C_tiger>
Glass shards embedded in carpet = LOOOOONG cleaning time.
23:53
<@gnolam>
Well, I always refer to "demons" as the reason why electronics don't work. Especially around non-techs.
23:53
<@AnnoDomini>
I suppose that would be less painful than making them understand.
23:54
<@gnolam>
And then I make vague references to secret initiations.
23:54
< C_tiger>
I just tell my roommate that he has a luddite aura.
23:54
< C_tiger>
He just needs to walk into a room and the looms smash themselves.
23:54
<@gnolam>
And whenever they say something like "electrons", I laugh out loud and tell them "What, you /believe/ all that crap?".
23:55
< C_tiger>
Pffft, nice gnol.
23:55 * AnnoDomini imagines gnolam as a big, hairy, hyena-like humanoid.
23:55
<@gnolam>
Yes, I actually do that in real life. And strange as it may seem, on occasion /people actually seem to fall for it/.
23:55
<@gnolam>
AnnoDomini: :)
23:55
<@gnolam>
I take that as a compliment. :)
23:55
< C_tiger>
I seriously doubt any of my friends will.
23:55
<@Vornicus>
C_tiger: anyway, what's your Silly Thing You Forgot About Pot Odds?
23:56
< C_tiger>
That you need to know the cards you need to beat your opponent.
23:56
<@Vornicus>
Well, yes.
23:56
<@gnolam>
Talking about non-existing components usually works great with the "not /complete/ luddites" crowd. I've had great luck with "Ah, the flux capacitor is busted."
23:56
< C_tiger>
Yes, but that throws my poker-playing program out the proverbial window.
23:57
< C_tiger>
gnolam: the word "architecture" is surprising useful.
--- Log closed Sat Dec 22 00:00:38 2007
code logs -> 2007 -> Fri, 21 Dec 2007< code.20071220.log - code.20071222.log >