aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeroen Janssen <japj@xs4all.nl>2002-03-08 20:48:49 +0000
committerJeroen Janssen <japj@xs4all.nl>2002-03-08 20:48:49 +0000
commit6c833871580808474ed965578154e91512fe87de (patch)
tree359a00002584f13aa3064c49d90091d25125da92
parent31b108c7bb1d44cdc4b94b383c29a283272f4bd0 (diff)
downloadvgabios-6c833871580808474ed965578154e91512fe87de.tar.gz
- updating vbe code with #defines from API
-rw-r--r--vbe.c54
-rw-r--r--vbe.h35
-rw-r--r--vbetables.h30
3 files changed, 70 insertions, 49 deletions
diff --git a/vbe.c b/vbe.c
index fc810d0..c48f509 100644
--- a/vbe.c
+++ b/vbe.c
@@ -303,22 +303,22 @@ static void vbe_set_1024x768x8()
{
#asm
// set xresolution
- mov dx, #0xff80
- mov ax, #0x01
+ mov dx, #VBE_DISPI_IOPORT_INDEX
+ mov ax, #VBE_DISPI_INDEX_XRES
outw dx, ax
inc dx
mov ax, #0x400
outw dx, ax
dec dx
// set yresolution
- mov ax, #0x02
+ mov ax, #VBE_DISPI_INDEX_YRES
outw dx, ax
inc dx
mov ax, #0x300
outw dx, ax
dec dx
// set bank
- mov ax, #0x04
+ mov ax, #VBE_DISPI_INDEX_BANK
outw dx, ax
inc dx
mov ax, #0x00
@@ -326,10 +326,10 @@ static void vbe_set_1024x768x8()
dec dx
// enable video mode
- mov ax, #0x03
+ mov ax, #VBE_DISPI_INDEX_ENABLE
outw dx, ax
inc dx
- mov ax, #0x01
+ mov ax, #VBE_DISPI_ENABLED
outw dx, ax
#endasm
@@ -339,22 +339,22 @@ static void vbe_set_800x600x8()
{
#asm
// set xresolution
- mov dx, #0xff80
- mov ax, #0x01
+ mov dx, #VBE_DISPI_IOPORT_INDEX
+ mov ax, #VBE_DISPI_INDEX_XRES
outw dx, ax
inc dx
mov ax, #0x320
outw dx, ax
dec dx
// set yresolution
- mov ax, #0x02
+ mov ax, #VBE_DISPI_INDEX_YRES
outw dx, ax
inc dx
mov ax, #0x258
outw dx, ax
dec dx
// set bank
- mov ax, #0x04
+ mov ax, #VBE_DISPI_INDEX_BANK
outw dx, ax
inc dx
mov ax, #0x00
@@ -362,10 +362,10 @@ static void vbe_set_800x600x8()
dec dx
// enable video mode
- mov ax, #0x03
+ mov ax, #VBE_DISPI_INDEX_ENABLE
outw dx, ax
inc dx
- mov ax, #0x01
+ mov ax, #VBE_DISPI_ENABLED
outw dx, ax
#endasm
@@ -375,22 +375,22 @@ static void vbe_set_640x480x8()
{
#asm
// set xresolution
- mov dx, #0xff80
- mov ax, #0x01
+ mov dx, #VBE_DISPI_IOPORT_INDEX
+ mov ax, #VBE_DISPI_INDEX_XRES
outw dx, ax
inc dx
mov ax, #0x280
outw dx, ax
dec dx
// set yresolution
- mov ax, #0x02
+ mov ax, #VBE_DISPI_INDEX_YRES
outw dx, ax
inc dx
mov ax, #0x1E0
outw dx, ax
dec dx
// set bank
- mov ax, #0x04
+ mov ax, #VBE_DISPI_INDEX_BANK
outw dx, ax
inc dx
mov ax, #0x00
@@ -398,10 +398,10 @@ static void vbe_set_640x480x8()
dec dx
// enable video mode
- mov ax, #0x03
+ mov ax, #VBE_DISPI_INDEX_ENABLE
outw dx, ax
inc dx
- mov ax, #0x01
+ mov ax, #VBE_DISPI_ENABLED
outw dx, ax
#endasm
@@ -412,22 +412,22 @@ static void vbe_set_640x400x8()
{
#asm
// set xresolution
- mov dx, #0xff80
- mov ax, #0x01
+ mov dx, #VBE_DISPI_IOPORT_INDEX
+ mov ax, #VBE_DISPI_INDEX_XRES
outw dx, ax
inc dx
mov ax, #0x280
outw dx, ax
dec dx
// set yresolution
- mov ax, #0x02
+ mov ax, #VBE_DISPI_INDEX_YRES
outw dx, ax
inc dx
mov ax, #0x190
outw dx, ax
dec dx
// set bank
- mov ax, #0x04
+ mov ax, #VBE_DISPI_INDEX_BANK
outw dx, ax
inc dx
mov ax, #0x00
@@ -435,10 +435,10 @@ static void vbe_set_640x400x8()
dec dx
// enable video mode
- mov ax, #0x03
+ mov ax, #VBE_DISPI_INDEX_ENABLE
outw dx, ax
inc dx
- mov ax, #0x01
+ mov ax, #VBE_DISPI_ENABLED
outw dx, ax
#endasm
@@ -479,13 +479,13 @@ Bit16u *AX;Bit16u BX; Bit16u ES;Bit16u DI;
// bochs vbe code disable video mode
push dx
push ax
- mov dx, #0xff80
+ mov dx, #VBE_DISPI_IOPORT_INDEX
// disable video mode
- mov ax, #0x03
+ mov ax, #VBE_DISPI_INDEX_ENABLE
out dx, ax
inc dx
- mov ax, #0x00
+ mov ax, #VBE_DISPI_DISABLED
out dx, ax
pop ax
pop dx
diff --git a/vbe.h b/vbe.h
index 6abdb47..a0bc649 100644
--- a/vbe.h
+++ b/vbe.h
@@ -260,14 +260,35 @@ typedef struct ModeInfoBlock
// FIXME: either dynamicly ask host for this or put somewhere high in physical memory
// like 0xE0000000
-#define VBE_PHYSICAL_BASE_ADDRESS 0x3b00000
+//#define VBE_PHYSICAL_BASE_ADDRESS 0x3b00000
-#define VGAMEM_GRAPH_PHYSICAL_ADDRESS 0xA0000
-#define VBE_BANK_SIZE_KB 64
-
-// FIXME: Add actual host <-> guest IOPORT
-#define VBE_BIOS_CALLBACK_IOPORT 0xFF00
#define VBE_TOTAL_VIDEO_MEMORY_DIV_64K (4*1024/64)
-// FIXME: Add host <-> guest index port commands
+ #define VBE_DISPI_BANK_ADDRESS 0xA0000
+ #define VBE_DISPI_BANK_SIZE_KB 64
+
+ #define VBE_DISPI_MAX_XRES 1024
+ #define VBE_DISPI_MAX_YRES 768
+
+ #define VBE_DISPI_IOPORT_INDEX 0xFF80
+ #define VBE_DISPI_IOPORT_DATA 0xFF81
+
+ #define VBE_DISPI_INDEX_ID 0x0
+ #define VBE_DISPI_INDEX_XRES 0x1
+ #define VBE_DISPI_INDEX_YRES 0x2
+ #define VBE_DISPI_INDEX_BPP 0x3
+ #define VBE_DISPI_INDEX_ENABLE 0x4
+ #define VBE_DISPI_INDEX_BANK 0x5
+
+ #define VBE_DISPI_ID0 0xB0C0
+
+ #define VBE_DISPI_BPP_8 0x0
+// The following is not support yet, but just for reference available.
+// #define VBE_DISPI_BPP_RGB565 0x1
+// #define VBE_DISPI_BPP_RGB555 0x2
+
+ #define VBE_DISPI_DISABLED 0x00
+ #define VBE_DISPI_ENABLED 0x01
+
+
#endif \ No newline at end of file
diff --git a/vbetables.h b/vbetables.h
index 2002dc9..f0ff2cc 100644
--- a/vbetables.h
+++ b/vbetables.h
@@ -34,8 +34,8 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE |
VBE_WINDOW_ATTRIBUTE_WRITEABLE,
/*Bit8u WinBAttributes*/ 0,
- /*Bit16u WinGranularity*/ VBE_BANK_SIZE_KB,
- /*Bit16u WinSize*/ VBE_BANK_SIZE_KB,
+ /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB,
+ /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB,
/*Bit16u WinASegment*/ VGAMEM_GRAPH,
/*Bit16u WinBSegment*/ 0,
/*Bit32u WinFuncPtr*/ 0,
@@ -63,7 +63,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
- /*Bit32u PhysBasePtr*/ VGAMEM_GRAPH_PHYSICAL_ADDRESS, //FIXME: this allows this mode to be displayed using the standard 320x200x8 vga mode
+ /*Bit32u PhysBasePtr*/ VBE_DISPI_BANK_ADDRESS, //FIXME: this allows this mode to be displayed using the standard 320x200x8 vga mode
/*Bit32u OffScreenMemOffset*/ 0,
/*Bit16u OffScreenMemSize*/ 0,
// Mandatory information for VBE 3.0 and above
@@ -96,8 +96,8 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE |
VBE_WINDOW_ATTRIBUTE_WRITEABLE,
/*Bit8u WinBAttributes*/ 0,
- /*Bit16u WinGranularity*/ VBE_BANK_SIZE_KB,
- /*Bit16u WinSize*/ VBE_BANK_SIZE_KB,
+ /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB,
+ /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB,
/*Bit16u WinASegment*/ VGAMEM_GRAPH,
/*Bit16u WinBSegment*/ 0,
/*Bit32u WinFuncPtr*/ 0,
@@ -125,7 +125,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
- /*Bit32u PhysBasePtr*/ VGAMEM_GRAPH_PHYSICAL_ADDRESS, //FIXME: this allows this mode to be displayed using the standard 320x200x8 vga mode
+ /*Bit32u PhysBasePtr*/ 0,
/*Bit32u OffScreenMemOffset*/ 0,
/*Bit16u OffScreenMemSize*/ 0,
// Mandatory information for VBE 3.0 and above
@@ -158,8 +158,8 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE |
VBE_WINDOW_ATTRIBUTE_WRITEABLE,
/*Bit8u WinBAttributes*/ 0,
- /*Bit16u WinGranularity*/ VBE_BANK_SIZE_KB,
- /*Bit16u WinSize*/ VBE_BANK_SIZE_KB,
+ /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB,
+ /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB,
/*Bit16u WinASegment*/ VGAMEM_GRAPH,
/*Bit16u WinBSegment*/ 0,
/*Bit32u WinFuncPtr*/ 0,
@@ -187,7 +187,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
- /*Bit32u PhysBasePtr*/ VGAMEM_GRAPH_PHYSICAL_ADDRESS, //FIXME: this allows this mode to be displayed using the standard 320x200x8 vga mode
+ /*Bit32u PhysBasePtr*/ 0,
/*Bit32u OffScreenMemOffset*/ 0,
/*Bit16u OffScreenMemSize*/ 0,
// Mandatory information for VBE 3.0 and above
@@ -220,8 +220,8 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE |
VBE_WINDOW_ATTRIBUTE_WRITEABLE,
/*Bit8u WinBAttributes*/ 0,
- /*Bit16u WinGranularity*/ VBE_BANK_SIZE_KB,
- /*Bit16u WinSize*/ VBE_BANK_SIZE_KB,
+ /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB,
+ /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB,
/*Bit16u WinASegment*/ VGAMEM_GRAPH,
/*Bit16u WinBSegment*/ 0,
/*Bit32u WinFuncPtr*/ 0,
@@ -249,7 +249,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
- /*Bit32u PhysBasePtr*/ VGAMEM_GRAPH_PHYSICAL_ADDRESS, //FIXME: this allows this mode to be displayed using the standard 320x200x8 vga mode
+ /*Bit32u PhysBasePtr*/ 0,
/*Bit32u OffScreenMemOffset*/ 0,
/*Bit16u OffScreenMemSize*/ 0,
// Mandatory information for VBE 3.0 and above
@@ -282,8 +282,8 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE |
VBE_WINDOW_ATTRIBUTE_WRITEABLE,
/*Bit8u WinBAttributes*/ 0,
- /*Bit16u WinGranularity*/ VBE_BANK_SIZE_KB,
- /*Bit16u WinSize*/ VBE_BANK_SIZE_KB,
+ /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB,
+ /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB,
/*Bit16u WinASegment*/ VGAMEM_GRAPH,
/*Bit16u WinBSegment*/ 0,
/*Bit32u WinFuncPtr*/ 0,
@@ -311,7 +311,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
- /*Bit32u PhysBasePtr*/ VGAMEM_GRAPH_PHYSICAL_ADDRESS, //FIXME: this allows this mode to be displayed using the standard 320x200x8 vga mode
+ /*Bit32u PhysBasePtr*/ 0,
/*Bit32u OffScreenMemOffset*/ 0,
/*Bit16u OffScreenMemSize*/ 0,
// Mandatory information for VBE 3.0 and above