|
@@ -42,22 +42,15 @@ static u8 vga_set_basic_mode(void)
|
|
{
|
|
{
|
|
struct biosregs ireg, oreg;
|
|
struct biosregs ireg, oreg;
|
|
u16 ax;
|
|
u16 ax;
|
|
- u8 rows;
|
|
|
|
u8 mode;
|
|
u8 mode;
|
|
|
|
|
|
initregs(&ireg);
|
|
initregs(&ireg);
|
|
|
|
|
|
|
|
+ /* Query current mode */
|
|
ax = 0x0f00;
|
|
ax = 0x0f00;
|
|
intcall(0x10, &ireg, &oreg);
|
|
intcall(0x10, &ireg, &oreg);
|
|
mode = oreg.al;
|
|
mode = oreg.al;
|
|
|
|
|
|
- set_fs(0);
|
|
|
|
- rows = rdfs8(0x484); /* rows minus one */
|
|
|
|
-
|
|
|
|
- if ((oreg.ax == 0x5003 || oreg.ax == 0x5007) &&
|
|
|
|
- (rows == 0 || rows == 24))
|
|
|
|
- return mode;
|
|
|
|
-
|
|
|
|
if (mode != 3 && mode != 7)
|
|
if (mode != 3 && mode != 7)
|
|
mode = 3;
|
|
mode = 3;
|
|
|
|
|