diff options
author | Jeroen Janssen <japj@xs4all.nl> | 2002-03-08 20:48:49 +0000 |
---|---|---|
committer | Jeroen Janssen <japj@xs4all.nl> | 2002-03-08 20:48:49 +0000 |
commit | 6c833871580808474ed965578154e91512fe87de (patch) | |
tree | 359a00002584f13aa3064c49d90091d25125da92 | |
parent | 31b108c7bb1d44cdc4b94b383c29a283272f4bd0 (diff) | |
download | vgabios-6c833871580808474ed965578154e91512fe87de.tar.gz |
- updating vbe code with #defines from API
-rw-r--r-- | vbe.c | 54 | ||||
-rw-r--r-- | vbe.h | 35 | ||||
-rw-r--r-- | vbetables.h | 30 |
3 files changed, 70 insertions, 49 deletions
@@ -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 @@ -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 |