2011-12-28

2011-12-28 - Structure Changes

I've added the Libs, list and DOS elements back into the kernel, and wired them in.  I've also changed the way that the standard C library features are structured into the kernel.  They now have their own virtual directory courtesy of NetBeans.  I've also changed the naming convention for the standard function to remove the prefix which I had been using before.

2011-12-05

2011-12-05 - NetBeans and Subversion

Recovering from the flu, I decided to have a look at NetBeans.  I have it installed on this new machine, along with MinGW and MSYS, but I haven't gotten around to doing any OS dev work yet.

I looked at NetBeans and poked around with a few test projects, trying to figure out how best to get my structure of OS to work through the IDE.  I've come up with the idea that creating a C/C++ Static Library is the best approach, and putting 99% of the OS code into it.  That seems to use the ar tool to create a .a file which contains all the .o files.  I have then added post-build steps into the project makefile to take this .a file and link it in with my existing start.o to create the binary kernel files as I have before.  The makefile also compiles the bootblock.  I have set the Project run command to run the Bochs bxrc file (via a batch file) to then fire up Bochs with my OS loaded.

A "quick" install of Apache and Subversion later, and NetBeans is happy to push the code into the source control repository, and I can keep track of changes.  All looks good.

Currently, this set of code only contains a few of the previous files, it sets 32-bit protected mode, clears the VGA Mode 3 screen, and displays a title.  It's more of a test for the environment.  In any case, if this approach works, it will make a very good starting point to re-integrate all of the code and create the modular kernel that should have been working ages ago.

I have sent a copy of the project to Pink to test on his Linux install.  He reports that he has been able to get it to build by adding a Debug-Linux configuration into the project and tweaking some settings.  We may be able to get a Subversion repository exposed so that it can become a collaborative project, at least from the point of view of being able to get the code and run the progress so far.