};
uint8_t ah = 0;
uint8_t al = 0;
- uint32_t eax = 0;
+ uint16_t eax = 0;
int i;
for (i = 0; i < 84; i++) {
if ((ccc & 3) == 2) {
eax = (ah << 8) | al;
- eax <<= 16;
+ eax <<= 8;
}
if ((ccc & 3) == 0) {
eax |= (ah << 8) | al;
- vga_write32(nVgaYOffset + ccc, eax);
+// vga_write32(nVgaYOffset + ccc, eax);
+ __asm {
+ mov [es:ccc], ax
+ }
}
}
return 0;
}
-int set_plzstart(int y)
+word set_plzstart(word start)
{
- vga_set_line_compare(y);
-
- return 0;
+__asm{
+ mov dx, 3d4h
+ mov al, 18h ; linecompare
+ mov ah, [Byte PTR start]
+ out dx, ax
+ mov al, 07h
+ mov ah, [Byte PTR start+1]
+ shl ah, 1d
+ shl ah, 1d
+ shl ah, 1d
+ shl ah, 1d
+ and ah, 10h
+ or ah, 0fh
+ out dx, ax ; 8th bit
+}
+ return start;
}