It took me a few days of pondering. Then after that, it took me about an hour to code. Finally, after all that work, it took until 2:16am to get it debugged. Turns out you need the physical address of page tables and directorys, not the virtual address. After I thought about it, it made sense - How would it know the virtual translation of the address if it had to know it to access it? Rather interesting problem. However, it's made my life a lot easier not having to do that useless conversion.
Also, I've changed the memory manager. Instead of a bitmap-based one, I'm using a stack-based one. The cool thing about this one is you can calculate the amount of free memory without having to search through a huge list of free pages. Instead, you can take the current stack pointer and subtract the stack start, divide by four, and you have the amount of available pages in memory! Of course, one page is 4k, so the divide-by-4 is useless. I just don't divide by 4, and that way I can return the number of kilobytes of free memory
My basic setup for the virtual memory is posted under the Download->Documents section. I've also added all the other current finished/pending documentation. Two are microsoft word 2003 documents, but the other two are standard plain-text format.
Latest Screenshot:
After a couple of coding rants, and small to major design changes, I've got something cool to show for it! I've got two completly seperate threads, running in parrallel. I had to patch my printing functions a little to do it, though. It only kept track of one set of cursor locations, so it would print half of task 1's data then move to task 2's, creating a jumbled mess. But I did a little patch for that, though it is a little bit cut and paste of one. However, here you are:
Latest Screenshot:
In this picture, two tasks (threads) are running: Each has one line of the console. Task one has the line with the 1, and task two has the line with the 2. They are only doing one thing - Counting from 0 to 0xFFFFFFFF!
Site design, Screenshots, "Demi OS", and possibly other unlisted texts and/or images Copyright 2005 (C) Irmo Computers, Christopher J. Corsi
All other images, and/or text copyright their respective owners.
Information on this website is provided without warranty, to the extent applicable by law.
Any binary-only release is released under the terms that it will not be extended to anyone but the original user, and that it will not be disassembled or manipulated in any way
If you have any questions regarding legal issues, contact service@cjmovie.net