This is the repo I will be referring to in this post:
https://github.com/novavita/Novix (branch: work/rizet+pontaoski/keyboard-input)
I am contributing to an open source OS project, with some of my friends helping out. (not solo here, I didn't write everything)
When I arrived, they had numerous boot bugs, and I spent the last week resolving them. Fixed the multiboot header, and fixed the triple faults.
Or so I thought.
My "fix" for the triple faults involved adding a `cli` instruction before the idling loop, which comes after execution of
kernel_main. When time came to write the keyboard driver, this was pointed out to me, and once I removed it, triple faults. I have done a lot of investigation into this.
Please refer to the repo, I don't want too much text on the screen.
In *.../i686/Boot.S*, you can see a `cli` instruction and an `sti` instruction. Upon removal of these lines, the triple faults stop, but the interrupts do not work.
If *sti* exists at all the OS triple faults. This seems like nonsensical behavior, so I concluded that the interrupts are botched. I didn't write the interrupts. The person who did has no idea what it does and what the problem may be (i suspect copypasta). I could try to make sense out of this, but I've spent hours and I have gotten nowhere. I turned to this forum for help.
Attachment:
Screenshot_20201012_191400.png [ 23.75 KiB | Viewed 1619 times ]