aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-02-13 22:37:33 -0800
committerH. Peter Anvin <hpa@zytor.com>2008-02-13 22:37:33 -0800
commit545ef8479f39a162be3d37ac1253bbaa394e9681 (patch)
treef69314a56bb7901a908f1cbd72d2755ca5a26061
parent0fa01cf03cfd6274518d82dfd0b5fc12ae6c4e48 (diff)
downloadsyslinux-elf-545ef8479f39a162be3d37ac1253bbaa394e9681.tar.gz
syslinux-elf-545ef8479f39a162be3d37ac1253bbaa394e9681.tar.xz
syslinux-elf-545ef8479f39a162be3d37ac1253bbaa394e9681.zip
VESA: Minor cleanupssyslinux-3.62-pre6
Minor cleanups for clarity
-rw-r--r--com32/lib/sys/vesa/initvesa.c16
-rw-r--r--com32/lib/sys/vesa/screencpy.c5
2 files changed, 12 insertions, 9 deletions
diff --git a/com32/lib/sys/vesa/initvesa.c b/com32/lib/sys/vesa/initvesa.c
index 98888d32..0ad882b0 100644
--- a/com32/lib/sys/vesa/initvesa.c
+++ b/com32/lib/sys/vesa/initvesa.c
@@ -75,13 +75,14 @@ static int vesacon_paged_mode_ok(const struct vesa_mode_info *mi)
{
int i;
+ if (!is_power_of_2(mi->win_size) ||
+ !is_power_of_2(mi->win_grain) ||
+ mi->win_grain > mi->win_size)
+ return 0; /* Impossible... */
+
for (i = 0; i < 2; i++) {
- if ((mi->win_attr[i] & 0x05) == 0x05 &&
- mi->win_seg[i] &&
- is_power_of_2(mi->win_size) &&
- is_power_of_2(mi->win_grain) &&
- mi->win_grain <= mi->win_size)
- return 1; /* We can deal with this... */
+ if ((mi->win_attr[i] & 0x05) == 0x05 && mi->win_seg[i])
+ return 1; /* Usable window */
}
return 0; /* Nope... */
@@ -121,7 +122,8 @@ static int vesacon_set_mode(void)
/* Copy general info */
memcpy(&__vesa_info.gi, gi, sizeof *gi);
- /* Search for a 640x480 32-bit linear frame buffer mode */
+ /* Search for a 640x480 mode with a suitable color and memory model... */
+
mode_ptr = GET_PTR(gi->video_mode_ptr);
bestmode = 0;
bestpxf = PXF_NONE;
diff --git a/com32/lib/sys/vesa/screencpy.c b/com32/lib/sys/vesa/screencpy.c
index 779fe5df..4972eea7 100644
--- a/com32/lib/sys/vesa/screencpy.c
+++ b/com32/lib/sys/vesa/screencpy.c
@@ -80,13 +80,14 @@ static void set_window_pos(size_t win_pos)
{
static com32sys_t ireg;
+ wi.win_pos = win_pos;
+
if (wi.win_num < 0)
- return;
+ return; /* This should never happen... */
ireg.eax.w[0] = 0x4F05;
ireg.ebx.b[0] = wi.win_num;
ireg.edx.w[0] = win_pos >> wi.win_gshift;
- wi.win_pos = win_pos;
__intcall(0x10, &ireg, NULL);
}