* Christian Sühs chris@suehsi.de [060502 23:12]:
inb(0x03da) = 0xff inb(0x03da) = 0xff inb(0x03da) = 0xff inb(0x03da) = 0xff
// after her always the same inb line
it waits for a vertical blank interrupt which never happens. At this point it probably expects the video to become light.
But what means never happens? It happens after 20s without debug under LB or immediatly without debug under testbios. After that it takes the second run with longer delay.
Ah, sorry, I thought when you enable the output of inb(0x03da) = 0xff it would not come to an end but print always the same inb line.
So it works when you enable above debug and wait long enough?
What causes the vertical blank interrupt?
When the ray moves from the end of the screen to the beginning there's a time frame which can safely be used to update the screen without any flickering, thats the vertical blank. Its actually not an interrupt because in above example the bios polls for that event rather than getting an interrupt when its there.