Saturday, May 05, 2007

Dusting off the blog

Wow. Long time since I blogged.

Well AWOS has been moving right along. Right now I'm working on tidying up the hard disk driver, and making it print something a tad more decipherable than "hd: detected WD on ide0:0, 0x55 0xAA". I'm also trying to dig up that ATA spec I downloaded. For some reason T13 deleted it from their Web site.

In other news, the parallel port driver is not working. I've had a couple people on IRC give me ideas on how to fix it, but none of them worked. According to what I've been able to locate on the Internet, I am doing it right.

I'll have to do more document hunting. If you happen to have any parallel port-related information, do not hesitate to leave a comment. I would much appreciate it.

Saturday, August 19, 2006

free() and the IDE Driver; eMachines?

Well it appears I had a big ol' bug in my paging code, making it crash. I fixed it on all but one of my computers. The eMachines T1220 I have still page faults when the kernel attempts to access 0x07800000, one of the last blocks of memory on that computer. I have no clue why.

But now I have a new problem. Right before my IDE init function (KsHardDisk) returns, it free()s the memory it needed. Apparently my free() is broken because it page faults attempting to access 0xD0D0D0D8 when it attempts to free(). I ran my IDE driver through valgrind (taking out the inb/outb) and it reported no memory leaks, so it HAS to be my malloc and/or free is buggy. But the problem is, when I had someone else try it on their computer, it worked and returned properly. So I have no clue why it doesn't work on any of my computers but it works on all of his computers.

I invite you to test my kernel and see if it works on your computer. As I said before I have all my code on svn, just download it.

svn checkout awos
cd awos/src/kernel
make all
cp kernel.bin /media/floppy

I also downloaded the ATA-6 specification from T13. So at least I'll have a correct IDE driver (even if my OS doesn't have an malloc/free :) ).

Well I best be off to code. Until next time...

Thursday, August 17, 2006

We're live!; memory manager update; more info on PCI

As of last night, AWOS is now officially live on Google Code's SVN repository. That's right, we're finally open-source! (see it at

I had a terrible time last night as my OS was triple faulting. (Harkens back to days of yore trying to get into PMode.) Found out that my fault handler was reading CR1, and that's a reserved register. Yay! No more triple fault. Boo! Page fault.

So obviously my paging code is still buggy. CR2=0x400000, which means it's trying to access exactly 4MB into memory (the start of Page Directory #2) so it's not doing something right.

PCI: Well a piece of it is being able to detect any PCI card from the planet super fast from a comprehensive database. I estimate that it would take <= 5 seconds to detect any card's make, model, and type. I'm pretty sure that Windows takes longer than that, and I'm not even using PnP. Besides, this is *ANY* card (I have a source than can give me all the vendor IDs and card IDs), even some that Windows hasn't even heard of.

Wednesday, August 16, 2006

First post; current info

I decided earlier today that my OS will be open source, under an Apache 1-like license. This was a big step for me; I wasn't sure if I wanted to be closed or open. I figured that open source:
  • makes people happy;
  • allows other people to find (and even possibly fix) bugs;
  • and makes it more open for other people to join me in this project.
Right now I'm working on my hard disk driver. It seems that the way I have it coded the drive never becomes ready. It just sits there at a "while" loop.

Also, I dug up my old 486 Compaq ProLinea 4/50 for my test computer again. So I got to see my new memory manager running on a real computer for the first time tonight. That makes me happy. :)

In other news, I'm planning a big announcement soon about a very important component: PCI. I won't tell you what yet, but I can tell you it will probably revolutionize the way we work with PCI hardware.

Well I best be off to code. Until next time...