00:21:28 -!- GregorR-L has quit ("Leaving").
00:55:33 <RodgerTheGreat> http://todbot.com/blog/2006/09/25/arduino-the-basic-stamp-killer/
00:56:26 <RodgerTheGreat> mainly because I could program it without a serial port. I have a 386 laptop sitting around for the express purpose of coding for my BASIC stamp.
00:58:15 <Razor-X> Hmmm. I'm checking it out.
00:58:28 <Razor-X> Oh, and does anyone have information on the structure of the Palm's ROM?
00:58:37 <RodgerTheGreat> the next time I feel a need for a microcontroller, I'm getting one
00:59:15 <RodgerTheGreat> well, I could help you get a ROM-dump, and I could point you in the direction of an onboard disassembler, if I can find it again.
01:00:04 <Razor-X> I'm thinking (in conjunction with SLUMTP) of making a new embedded OS for Palm.
01:00:18 <Razor-X> POSIX-y, but *NOT* POSIX compatible for the simple reason that this is a Palm.
01:00:43 <RodgerTheGreat> I was thinking a while ago that porting Contiki would be pretty sweet.
01:01:01 <Razor-X> Well, I just want very basic IO going, and I have an idea.
01:01:12 -!- kipple_ has quit (Read error: 110 (Connection timed out)).
01:01:14 <Razor-X> Without delving into too much ASM or C. But it involves Forth ;D
01:02:05 <Razor-X> Not quite yet, but I've looked into it.
01:02:20 <Razor-X> The issue is, I want a true low-level Forth, sitting straight atop the hardware on its own kernel.
01:03:29 <Razor-X> It contains its own libc, if neccessary.
01:03:34 <Razor-X> (Which is neccessary here.)
01:04:29 <Razor-X> Preferrably as m68k compatible as possible, but that probably isn't perfectly fesible. It'll be a Palm Handspring Visor.
01:05:00 <RodgerTheGreat> oh, sweet! I have a visor as well- I can help you beta if you need it.
01:05:19 <Razor-X> I'm gonna attempt to disassemble the ROM.
01:05:26 <Razor-X> Shouldn't the POSE people know about this?
01:05:34 <Razor-X> Uggh. Why have they written no documentation?
01:13:20 <pikhq> A good coder writes code which needs no documentation.
01:13:29 <pikhq> A bad coder refuses to document his code.
01:14:47 <Razor-X> POSE is not something I want to read through :P
01:14:59 <pikhq> Thus, it's written by a bad coder.
01:15:19 <Razor-X> Even if it was coded well.
01:15:40 <Razor-X> Plus, POSE is stupid. I guess we'll have to use XCopilot.
01:15:41 <pikhq> No, a good coder writes code which needs no documentation, but that doesn't mean he refuses to do so.
01:16:06 <pikhq> By this measure, there are few good coders.
01:16:26 <pikhq> All of whom work in Lisp. :p
01:22:07 <pikhq> I've got an idea for basm. . .
01:22:29 <pikhq> Allow "add" to accept, instead of just a variable, a list of variables as an argument.
01:23:18 <pikhq> This will allow for more concise code when you need to write the same value to two different variables. . .
01:29:04 <Razor-X> ``Elegant'' code. Using ntohl to change endian-ness.
01:57:10 <pikhq> BFM is starting to piss me off.
01:58:04 <pikhq> It's apparently decided that it doesn't like operating on the code I tell it to, and instead uses a radically different version of my program to interpret.
01:58:12 <jix> pikhq: re-implement it in object orientated ruby
02:15:57 -!- GregorR-L has joined.
02:17:43 * pikhq curses more at Tcl
02:18:02 <jix> i think tcl is a pretty awful language
02:18:12 <pikhq> jix: The reason why Tcl is used is because Tcl has the unique property of being a ready-made parser for BFM (by chance).
02:18:51 <jix> it's easy to do DSLs in ruby too
02:19:01 <jix> domain specific languages
02:19:02 <pikhq> Domain Specific Languages.
02:19:21 <pikhq> I'm rather fond of Tcl, personally. . .
02:19:30 <pikhq> Although I can see how Ruby is better in some respects.
02:19:49 <pikhq> I'd rather learn something like Lisp, though.
02:20:03 <jix> i didn't take a deep look into tcl (only when trying the ruby/tk module which isn't based on the c/tk api but on tcltk...)
02:20:15 <jix> but what i saw didn't look nice
02:20:19 <jix> pikhq: lisp is nice too
02:21:04 <pikhq> I also need to put more effort into learning C.
02:21:14 <pikhq> I know just enough to make a fool of myself. . . XD
02:22:25 -!- lindi- has quit (Read error: 60 (Operation timed out)).
02:22:26 -!- lindi- has joined.
02:23:19 <jix> pikhq: one doesn't learn c.... just learn other languages and someday you'll just notice that you are able to program fluently in c...
02:23:24 <jix> (that's what happened to me...)
02:24:02 <pikhq> jix: It's mostly the manual memory management that gets me.
02:24:10 <jix> learn assembler then
02:24:19 <jix> or uhm somthing that has manual memory management
02:24:32 <Razor-X> Yeah, that happened to me too.
02:24:55 <pikhq> Really, my issue isn't with C itself, but that I'm only know learning techniques for manual memory management *in* C.
02:24:59 <Razor-X> Mmmm. I do well with memory management in my head.
02:25:18 <Razor-X> Play around with a Forth then?
02:25:45 <pikhq> I intend to just keep trying until it clicks.
02:33:38 -!- jix__ has joined.
02:49:45 -!- jix has quit (Read error: 110 (Connection timed out)).
03:02:20 <Razor-X> A lot of fun with memory management is emulating a small x86 processor.
03:02:54 <Razor-X> Play around with ASM, without the pain of constantly inserting boot floppies (if you don't have a floppy drive, sadness).
03:03:49 <jix__> is anyone here running freenet 0.7?
03:05:08 <jix__> Razor-X: why should one need boot floppies when playing around with asm?
03:07:50 <Razor-X> jix__: I meant *really* playing around with ASM.
03:07:55 <Razor-X> Not Linux sugar-coated ASM.
03:08:15 <jix__> Razor-X: what's wrong with that
03:08:22 <jix__> it is still the same language
03:08:42 <Razor-X> Because you aren't troubled by any of the restrictions of working in an OS.
03:09:03 <Razor-X> Cooperating with the kernel.
03:09:21 <jix__> i dont have to cooperate with the kernel... the kernel cooperates with my code
03:09:43 <Razor-X> You have to add in sections and such.
03:09:59 <jix__> (i dunno maybe x86 assembler is really messed up but arm assembler is nearly the same for my gp2x which runs linux and my gba which has no OS)
03:10:23 <jix__> i allways tell the linker to create one section that is readable, writeable and executable and you're done
03:10:40 <Razor-X> You have to add data, bss.
03:10:55 <jix__> you can use one section for everything
03:10:58 <Razor-X> I'm pretty sure you do in x86.
03:11:15 <jix__> i'm 100% sure that you don't have to create different sections
03:11:56 <jix__> it's just standard that the code section is rx the data section rw and the bbs section is just the data section without content in the executable file... so rw too
03:12:14 <Razor-X> I still think that ASM from boot is more ``pure'' because you can have more control (and potentially more fun).
03:12:31 <jix__> you can still mmap /dev/mem
03:12:43 <jix__> when you want to talk to memmory mapped hardware directly
03:13:58 <jix__> the problem is embedded devices are a pain in the ass to debug (when they are too fast to get decent emulation and arn't emulated yet at all)
03:14:09 <jix__> so gdb + networking over usb is REALLY helpful
03:14:41 <Razor-X> But GBA has good emulation, no?
03:15:06 <jix__> the gba has no usb, no linux, no gdb and no networking tho
03:18:33 <jix__> well i was able to write a mandelbrot renderer in arm assembler without any debugging for the gp2x
03:18:47 <jix__> but i used a c lib to setup screen etc... only the calculation was done in sm
03:20:02 <jix__> but i wouldn't be able to do my 1kb demo without debugger
03:20:22 <pikhq> The GBA has a Linux variant for it, actually.
03:20:30 <jix__> yeah but that is uh...
03:20:39 <jix__> i don't want the linux overhead on a 16mhz arm7tdmi cpu
03:23:08 <jix__> and the gba has no mpu/mmu so you'll fuck up your system very easily
03:23:09 -!- wooby has joined.
03:23:27 <pikhq> It's that Linux variant that's set to run without an MMU.
03:24:05 <jix__> but without mmu isn't as bad as without mpu
03:24:44 <jix__> without mmu => mem can't be moved around in phys mem because there is no mapping ... can be handled by properly relocating code etc...
03:25:08 <jix__> without mpu => just write to a messed up pointer and linux has no way to catch that it'll go straight into the memory...
03:25:22 <pikhq> s a bit of a problem. . .
03:27:15 <jix__> yeah but there were real operating systems that didn't used mpus in the early days because the cpus had none
03:27:33 <jix__> and that didn't use them in the later days because they didn't use them at the beginning
03:27:41 <jix__> just to name one... mac os classic
03:29:03 <jix__> yeah the good 'ol days ^^
03:29:33 * jix__ started with mac os 7.1.something
03:29:35 <RodgerTheGreat> OSX is an upgrade for sure, but there were some very nice aspects of the old systems that we kinda lost.
03:30:11 <jix__> yeah system 7 rocks
03:32:54 <RodgerTheGreat> I have a Quadra 840av back home that's decked out- 8gb total storage, 128mb of ram and a *smokin'* 40hmz 68040.
03:34:12 -!- wooby has quit.
03:34:15 -!- wooby has joined.
03:34:57 <jix__> i have an classic II with uhm 9"(????) bw screen
03:48:52 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
03:49:12 <dbc> I like 6 better than 7.
03:49:53 <dbc> That was the last one they wrote in asm. It's pretty fast.
03:50:25 <dbc> 6.0.8, I think.
03:54:46 -!- ihope__ has joined.
03:55:22 <dbc> OS X, from what I can tell, they've managed to make a version of Unix that is at the mercy of its own applications, which seems like an unprecedented accomplishment.
03:59:45 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- The future of IRC").
04:01:20 <pikhq> dbc: It's a version of Unix that places it's users at the mercy of Apple's whims (in this manner, it is very similar to Windows).
04:11:42 -!- ihope has quit (Connection timed out).
04:19:56 -!- GregorR-L has quit ("Leaving").
04:31:50 -!- calamari has joined.
04:41:15 -!- ivan` has joined.
04:42:49 -!- CakeProphet has quit (Read error: 113 (No route to host)).
05:13:25 <dbc> Well, that too.
05:33:15 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:55:11 -!- GregorR-L has joined.
06:39:34 -!- calamari has left (?).
07:11:48 -!- calamari has joined.
07:46:16 -!- calamari has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:59 -!- GregorR-L has quit ("Leaving").
08:30:48 -!- dbc has quit (Read error: 110 (Connection timed out)).
09:04:58 -!- thematrixeatsyou has joined.
09:17:17 -!- thematrixeatsyou has quit (Client Quit).
13:10:35 -!- jix has joined.
14:46:56 <SimonRC> jix: Actually OSes without memory protection are coming back into fasion. See MS's "singularity" experiment.
14:47:17 <SimonRC> jix: It works by proving at compile-time that the program won't muck anything up.
14:47:45 <jix> well one could still modify the binary at post compile itme
14:47:45 <SimonRC> The compiler generates a proof that accompanies the program, and the loader checks the proof.
14:48:12 <jix> and what do we get from moving the mem protection out of hardware?
14:48:20 <jix> i doubt it's a serious bottleneck...
14:48:49 <SimonRC> processes can communicate by sending objects
14:49:12 <SimonRC> It is ensured that each object belongs to only one process at a time.
14:49:30 <jix> hmm that's interesting
14:49:42 <SimonRC> Of course, once you have the proof framework in place, it is simple enough to add all sorts of things that restrict the freedom of the user, like content protection.
14:57:25 <pikhq> SimonRC: You mean digital restrictions management (and other such forms of bondage)?
15:00:02 <SimonRC> yeah, that was the phrase I was looking for
16:36:58 -!- wooby_ has joined.
16:36:58 -!- wooby has quit (Read error: 104 (Connection reset by peer)).
16:40:44 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
16:41:21 -!- pikhq has joined.
16:43:01 -!- tgwizard has joined.
16:43:15 -!- kipple_ has joined.
17:06:50 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
17:09:21 -!- pikhq has joined.
18:47:39 -!- calamari has joined.
19:02:24 -!- Asztal has joined.
19:03:28 -!- GregorR-L has joined.
19:31:32 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
19:34:05 -!- calamari has quit ("Leaving").
19:48:19 -!- GregorR-L has quit ("Leaving").
19:49:39 -!- yotwen has joined.
19:50:09 -!- yotwen has left (?).
19:55:25 -!- puzzlet has joined.
20:15:01 -!- pikhq has quit ("Lost terminal").
20:15:22 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
20:27:54 -!- pikhq has joined.
20:42:26 -!- pgimeno has joined.
21:05:47 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
21:16:19 -!- pikhq has joined.
21:28:52 -!- oerjan has joined.
21:29:51 <pikhq> One thing I'm trying to make BFM do is allow you to pass a list of variables to, say, add and subtract.
21:30:35 <pikhq> So far, all I've done is somehow broken the optimization code.
21:31:37 <oerjan> you mean like add {x y z} 3?
21:33:51 <oerjan> well, have the original version be a subroutine and let the new just split up arguments
21:38:03 <oerjan> i was going to suggest such a thing for is0 and isnot0 btw
21:38:40 <pikhq> And the same change was made for is0 and isnot0.
21:38:49 <pikhq> Something else this feature allows. . .
21:39:02 <pikhq> stdcons can write to multiple cells with one macro call now. ;)
21:43:18 <pikhq> At least, that's the theory. . . :/
21:46:29 <oerjan> is this some kind of implicit argument iteration for all macros?
21:47:36 <pikhq> Actually, I'm just taking advantage of how stdcons only calls "set" and "add" on its first argument.
21:50:33 -!- CakeProphet has joined.
21:53:14 -!- Sgeo has joined.
21:57:04 <pikhq> Seems that foreach has decided that "foreach i {foo bar baz} {puts $i}" should output "foo bar baz" instead of "foo\nbar\nbaz".
22:03:03 <oerjan> unless it doesn't actually split up the argument
22:03:29 <pikhq> But that's *seriously* what it's doing.
22:05:17 <oerjan> what is the literal code?
22:07:13 <pikhq> foreach i [lrange $args 0 end-1] {puts stderr $i;_add $i [lindex $args end]}
22:09:16 <oerjan> might $args happen to be a string rather than a list?
22:09:57 <pikhq> I had stray brackets in $args that I thought I had processed out. XD
22:21:12 <pikhq> And I think I may have finally fixed the pointer movement issue in Basm once and for all.
22:21:51 <pikhq> Just working more weirdly than it used to.
22:29:28 <pikhq> All of my attempts to make it handle pointer movement correctly have resulted in the damned thing just outputting more cell movement than is asked for.
22:30:36 * pikhq just realised a very, very stupidly obvious way to fix it
22:32:57 <oerjan> not by dropping grouping of >< entirely i hope
22:36:57 <pikhq> I've been having it drop out of the > counting loop when i=0, not i=255.
22:37:08 <pikhq> A simple add instruction fixes that.
22:37:37 <pikhq> Still broken somehow.
22:38:40 <pikhq> And now it's broken in a way that I can't come up with a test for.
22:44:47 <pikhq> Every test case I've attempted for this bug except for LostKng.b itself has resulted in 100% accurate compilation.
22:45:35 <oerjan> and you are sure that there is no bug in LostKng.b itself?
22:46:03 <pikhq> It works in every other Brainfuck implementation.
22:48:13 <pikhq> I'm thinking about just packaging stuff up and letting you take a look.
22:49:05 <oerjan> right. have you use the new stdcons macros in basm?
23:11:33 -!- ttm has joined.
23:12:56 -!- Sgeo has quit ("Ex-Chat").
23:13:03 -!- oerjan has quit ("Good night.").
23:28:32 -!- tgwizard has quit (Connection timed out).
23:31:22 -!- GregorR-L has joined.
23:33:26 -!- Sgeo has joined.
23:38:25 <Razor-X> Think: An OS that boots up and hands you a whole bunch of esoteric languages.
23:42:43 <pikhq> We shall call it. . . Esote!
23:43:14 <Razor-X> <oerjan> not by dropping grouping of >< entirely i hope
23:43:17 <Razor-X> <oerjan> not by dropping grouping of >< entirely i hope
23:44:32 <Razor-X> Having fun with one of my mice before I could C-t - .
23:44:34 <pikhq> She apparently likes C-y.
23:44:56 <Razor-X> I *do* have mice, you know :D
23:55:00 -!- ttm has quit (Read error: 110 (Connection timed out)).
23:55:20 -!- ttm has joined.
23:55:36 <pikhq> Now, concerning EsOS. . .
23:56:41 <pikhq> IMO, we should start with a very, very simple kernel (perhaps a patched linux-tiny) and a Brainfuck interpreter. . .
23:56:43 -!- kipple_ has quit (Read error: 110 (Connection timed out)).