Soh as you guys might have heard, I've been trying to write a kernel for the DCPU.
Although I had to severely cut down on my studying, I spent all of today and yesterday building a kernel and it has actually come pretty far. I won't actually post the source code because I don't want my competitors (other 0x10c players) to jack it, but so far I've got:
Graphics (Text, I would implement interfacing directly with palette but the resolution is so small it would be useless.)
Executable Image Loader
Import\Export Tables, IE interprocess communication.
The only good that comes out of having an entire operating system stuck in the same address space is that it is so easy to communicate with other modules and plug in drivers etc...
Sometime this week (if I can find any time, which is highly unlikely) I am going to finish programming the shell application, then implement a file-system driver and finally start working on networking.
Here is a look at the kernel export table for now (and the structure of an image header)
DAT "kernel", 0, 0, 0, 0
DAT memory_reserve ; 0
DAT bitmap_set ; 3
DAT graphics_writeString ; 6
DAT userInterfaceState_createState ; 7
DAT threading_createThread ;12
DAT peLoader_findModule ;16
DAT clock_getTicks ;18