I've managed to confuse myself...
Posted: Sun Oct 23, 2005 8:27 am
The 8 Guinness I had this morning probably didn't help.
Ok, some history for you. 2 weeks ago, I threw together a basic bootloader. Few days later, I added code to the bootloader to enable a20 & load kernel. Then I developed a kernel which had 'int 21h' with 3 functions - write string (ah = 1), clear screen, reboot (ah = 3).
... then early this week, I optimized the bootloader c0de & threw in Pmode stuff, made it setup a larger stack & load kernel further in memory (x09000) then jump to it. When I came to test it... nothing printed (Kernel is supposed to print verification message). Of course, after slapping myself sober the old "no BIOS interrupts in Pmode" came to me. My print string routine (func 1, int 21h) relied on BIOS int 10h (used a loop to print chars). So now, that's not working. I wasn't gonna keep it, anyways - I was gonna mod it to write to ports & whatnot. So on studying ports... I am lead to believe (nothing actually SAID this) that each monitor has different ports & handlers & everything... so does this mean I'd need to use divice drivers? I also checked out some new links and.. I saw people using MSDOS int 21h (ah = 9) ... how the ****? And file systems... that's confused me. Everything is suddenly confusing me and I got a horrible headache. Even loading the kernel is no longer possible, as it relies on int 13h. I aren't expecting many people here to be able to help, as I assume most of you will be C devvers (my kernel is/will be pure ASM)
So, I'm gonna go slam my head into a desk. Can some of you like.. unconfuse me? Explain some stuff? Explain my options? To be honest, I've got no real 'design' for the kernel. I'm not keeping to mono, micro, whatever... I'm just making it work good & fast (I got some friends to help me, also - just to make sure alcohol doesn't influence my work)
All help is appreciated.
Ok, some history for you. 2 weeks ago, I threw together a basic bootloader. Few days later, I added code to the bootloader to enable a20 & load kernel. Then I developed a kernel which had 'int 21h' with 3 functions - write string (ah = 1), clear screen, reboot (ah = 3).
... then early this week, I optimized the bootloader c0de & threw in Pmode stuff, made it setup a larger stack & load kernel further in memory (x09000) then jump to it. When I came to test it... nothing printed (Kernel is supposed to print verification message). Of course, after slapping myself sober the old "no BIOS interrupts in Pmode" came to me. My print string routine (func 1, int 21h) relied on BIOS int 10h (used a loop to print chars). So now, that's not working. I wasn't gonna keep it, anyways - I was gonna mod it to write to ports & whatnot. So on studying ports... I am lead to believe (nothing actually SAID this) that each monitor has different ports & handlers & everything... so does this mean I'd need to use divice drivers? I also checked out some new links and.. I saw people using MSDOS int 21h (ah = 9) ... how the ****? And file systems... that's confused me. Everything is suddenly confusing me and I got a horrible headache. Even loading the kernel is no longer possible, as it relies on int 13h. I aren't expecting many people here to be able to help, as I assume most of you will be C devvers (my kernel is/will be pure ASM)
So, I'm gonna go slam my head into a desk. Can some of you like.. unconfuse me? Explain some stuff? Explain my options? To be honest, I've got no real 'design' for the kernel. I'm not keeping to mono, micro, whatever... I'm just making it work good & fast (I got some friends to help me, also - just to make sure alcohol doesn't influence my work)
All help is appreciated.