void strblit(char *src)
{
- char *destp = (char*)(0xB8000 | (vgaread(0xC) << 5) | (vgaread(0xD) << 1));
+ char *destp = (char*)(0xB8000UL | (((unsigned int)vgaread(0xC)) << 9) | (((unsigned int)vgaread(0xD)) << 1));
while (*src)
{
*(destp++) = *(src++);
outl(0xCF8, pcisave);
outb(0x3D4, vgasave);
+
+ outb(0x834, 0x40); // ack the periodic IRQ
+ outb(0x830, (inb(0x830) | 0x2) & ~0x40);
+ outb(0x830, inb(0x830) | 0x40);
+
}