Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I was reading through Entering Long Mode Directly on the Wiki and I noticed after sending the commands to disable the PIC there are two nop instructions.
They are there in place of an iowait() function. They give the PICs time to process the data they receive, as the CPU is definitely much faster than any other hardware on-board. IMHO, I prefer to delay using two "out 0x80, al" instructions instead of "nop" or "pause".
You know your OS is advanced when you stop using the Intel programming guide as a reference.
omarrx024 wrote:They are there in place of an iowait() function. They give the PICs time to process the data they receive, as the CPU is definitely much faster than any other hardware on-board. IMHO, I prefer to delay using two "out 0x80, al" instructions instead of "nop" or "pause".
Thanks!
com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState Compiler Development Forum
I am almost sure that they were put there as a two-instruction window for handling interrupts that may be "on their way" before having a null IDT. There is a small difference between an "IO_WAIT" and an "instruction window with IRQs disabled but interrupts enabled", although they both may be intertwined.