aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Ruppert <info@vruppert.de>2003-07-20 16:05:17 +0000
committerVolker Ruppert <info@vruppert.de>2003-07-20 16:05:17 +0000
commit1d897c018c814a821e8e0fb7d88cb0079b5b8a11 (patch)
tree332055b31a0b9153595d130c2ecc28a2b4c4647f
parentf012c943a3f87bd797d82f0d6228d3744c996a7f (diff)
downloadvgabios-1d897c018c814a821e8e0fb7d88cb0079b5b8a11.tar.gz
- fixed a few functions accessing the attribute controller
-rw-r--r--vgabios.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/vgabios.c b/vgabios.c
index 2a9ad61..055310c 100644
--- a/vgabios.c
+++ b/vgabios.c
@@ -1583,9 +1583,6 @@ Bit8u state;
value=inb(VGAREG_ACTL_READ_DATA);
value&=0xf7;
value|=state<<3;
-
- inb(VGAREG_ACTL_RESET);
- outb(VGAREG_ACTL_ADDRESS,0x10);
outb(VGAREG_ACTL_WRITE_DATA,value);
outb(VGAREG_ACTL_ADDRESS,0x20);
}
@@ -1600,6 +1597,7 @@ Bit8u reg;Bit16u *value;
inb(VGAREG_ACTL_RESET);
outb(VGAREG_ACTL_ADDRESS,reg);
write_word(ss,value,((Bit16u)inb(VGAREG_ACTL_READ_DATA))<<8);
+ inb(VGAREG_ACTL_RESET);
outb(VGAREG_ACTL_ADDRESS,0x20);
}
}
@@ -1620,10 +1618,10 @@ static void biosfn_get_all_palette_reg (seg,offset) Bit16u seg;Bit16u offset;
{
Bit8u i;
- inb(VGAREG_ACTL_RESET);
// First the colors
for(i=0;i<=0x10;i++)
{
+ inb(VGAREG_ACTL_RESET);
outb(VGAREG_ACTL_ADDRESS,i);
write_byte(seg,offset,inb(VGAREG_ACTL_READ_DATA));
offset++;
@@ -1668,16 +1666,13 @@ Bit8u function;
value=inb(VGAREG_ACTL_READ_DATA);
function&=0x01;
if(function==0)
- {// 4 of 64
+ {// set paging code
value&=0x7f;
- value|=function<<7;
-
- inb(VGAREG_ACTL_RESET);
- outb(VGAREG_ACTL_ADDRESS,0x10);
+ value|=page<<7;
outb(VGAREG_ACTL_WRITE_DATA,value);
}
else
- {// 16 of 16
+ {// select page
inb(VGAREG_ACTL_RESET);
outb(VGAREG_ACTL_ADDRESS,0x14);
if(value&0x80)