diff options
author | Jeroen Janssen <japj@xs4all.nl> | 2002-03-13 20:47:07 +0000 |
---|---|---|
committer | Jeroen Janssen <japj@xs4all.nl> | 2002-03-13 20:47:07 +0000 |
commit | 293fbe9c067389a42aafd0159b70c332520d88a1 (patch) | |
tree | 6449ea2a589d7ceb07f076813330cf872ae0909a | |
parent | ea8fb81851222e297c0419338b539fccf7cd0aee (diff) | |
download | vgabios-293fbe9c067389a42aafd0159b70c332520d88a1.tar.gz |
- made LFB dependant upon define
- not implement vbe functions return failure
- updated todo & docs for things after bochs 1.4
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | TODO | 14 | ||||
-rw-r--r-- | vbe.c | 3 | ||||
-rw-r--r-- | vbetables.h | 38 | ||||
-rw-r--r-- | vgabios.c | 16 |
5 files changed, 65 insertions, 8 deletions
@@ -1,6 +1,8 @@ vgabios-???? - "Jeroen Janssen" <japj@darius.demon.nl> . Added LFB modes (to be used with the vbe-lfb patch in bochs) + see VBE_HAVE_LFB in vbe.c + . updated TODO & docs for changes after bochs 1.4 vgabios-0.3a - "Christophe Bothamy" <cbothamy@free.fr>: Mar 10 2002 @@ -35,13 +35,21 @@ v2.0 - upload the fonts to the "card" memory - display fonts from the "card" memory (plex86/bochs vga card needs update) +================================================================================================= VBE: ---- Short term: -- LFB mode support - +- bugfixes for bochs 1.4 support +- LFB mode support (bochs patch available + VBE_HAVE_LFB in vbe.c) +- implement remaining functions that can be done with DISPI 0xb0c0 interface + (get functions for mode?, window) Long term: +- extend DISPI interface (see also bochs bug [ 529554 ] unsupported VBE features DISPI update) + . clear / preserve display memory upon set vbe + . set/get logical scanline length (4f06) + . set/get display start (4f07) - have plex86 host side display interface -- support more modi +- support more modi (16bit/32bit modi support) - have text io functions in vbe mode + @@ -33,6 +33,9 @@ // defines available +// enable LFB support (depends upon bochs-vbe-lfb patch) +//#define VBE_HAVE_LFB + // disable VESA/VBE2 check in vbe info //#define VBE2_NO_VESA_CHECK diff --git a/vbetables.h b/vbetables.h index 84d1957..c800ce0 100644 --- a/vbetables.h +++ b/vbetables.h @@ -29,7 +29,9 @@ static ModeInfoListItem mode_info_list[]= /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | VBE_MODE_ATTRIBUTE_COLOR_MODE | +#ifdef VBE_HAVE_LFB VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#endif VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | VBE_WINDOW_ATTRIBUTE_WRITEABLE, @@ -63,7 +65,11 @@ static ModeInfoListItem mode_info_list[]= /*Bit8u RsvdFieldPosition*/ 0, /*Bit8u DirectColorModeInfo*/ 0, // Mandatory information for VBE 2.0 and above +#ifdef VBE_HAVE_LFB /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, +#else + /*Bit32u PhysBasePtr*/ 0, +#endif /*Bit32u OffScreenMemOffset*/ 0, /*Bit16u OffScreenMemSize*/ 0, // Mandatory information for VBE 3.0 and above @@ -92,7 +98,9 @@ static ModeInfoListItem mode_info_list[]= /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#ifdef VBE_HAVE_LFB + VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#endif VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | VBE_WINDOW_ATTRIBUTE_WRITEABLE, @@ -126,7 +134,11 @@ static ModeInfoListItem mode_info_list[]= /*Bit8u RsvdFieldPosition*/ 0, /*Bit8u DirectColorModeInfo*/ 0, // Mandatory information for VBE 2.0 and above +#ifdef VBE_HAVE_LFB /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, +#else + /*Bit32u PhysBasePtr*/ 0, +#endif /*Bit32u OffScreenMemOffset*/ 0, /*Bit16u OffScreenMemSize*/ 0, // Mandatory information for VBE 3.0 and above @@ -155,7 +167,9 @@ static ModeInfoListItem mode_info_list[]= /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#ifdef VBE_HAVE_LFB + VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#endif VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | VBE_WINDOW_ATTRIBUTE_WRITEABLE, @@ -189,7 +203,11 @@ static ModeInfoListItem mode_info_list[]= /*Bit8u RsvdFieldPosition*/ 0, /*Bit8u DirectColorModeInfo*/ 0, // Mandatory information for VBE 2.0 and above +#ifdef VBE_HAVE_LFB /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, +#else + /*Bit32u PhysBasePtr*/ 0, +#endif /*Bit32u OffScreenMemOffset*/ 0, /*Bit16u OffScreenMemSize*/ 0, // Mandatory information for VBE 3.0 and above @@ -218,7 +236,9 @@ static ModeInfoListItem mode_info_list[]= /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#ifdef VBE_HAVE_LFB + VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#endif VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | VBE_WINDOW_ATTRIBUTE_WRITEABLE, @@ -252,7 +272,11 @@ static ModeInfoListItem mode_info_list[]= /*Bit8u RsvdFieldPosition*/ 0, /*Bit8u DirectColorModeInfo*/ 0, // Mandatory information for VBE 2.0 and above + #ifdef VBE_HAVE_LFB /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, +#else + /*Bit32u PhysBasePtr*/ 0, +#endif /*Bit32u OffScreenMemOffset*/ 0, /*Bit16u OffScreenMemSize*/ 0, // Mandatory information for VBE 3.0 and above @@ -281,7 +305,9 @@ static ModeInfoListItem mode_info_list[]= /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#ifdef VBE_HAVE_LFB + VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | +#endif VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | VBE_WINDOW_ATTRIBUTE_WRITEABLE, @@ -315,7 +341,11 @@ static ModeInfoListItem mode_info_list[]= /*Bit8u RsvdFieldPosition*/ 0, /*Bit8u DirectColorModeInfo*/ 0, // Mandatory information for VBE 2.0 and above +#ifdef VBE_HAVE_LFB /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, +#else + /*Bit32u PhysBasePtr*/ 0, +#endif /*Bit32u OffScreenMemOffset*/ 0, /*Bit16u OffScreenMemSize*/ 0, // Mandatory information for VBE 3.0 and above @@ -710,6 +710,8 @@ static void int10_func(DI, SI, BP, SP, BX, DX, CX, AX, DS, ES, FLAGS) #ifdef DEBUG unimplemented(); #endif + // function failed + AX=0x100; break; case 0x05: vbe_biosfn_display_window_control(&AX,BX,&DX); @@ -719,40 +721,52 @@ static void int10_func(DI, SI, BP, SP, BX, DX, CX, AX, DS, ES, FLAGS) #ifdef DEBUG unimplemented(); #endif + // function failed + AX=0x100; break; case 0x07: //FIXME #ifdef DEBUG unimplemented(); #endif + // function failed + AX=0x100; break; case 0x08: //FIXME #ifdef DEBUG unimplemented(); #endif + // function failed + AX=0x100; break; case 0x09: //FIXME #ifdef DEBUG unimplemented(); #endif + // function failed + AX=0x100; break; case 0x0A: //FIXME #ifdef DEBUG unimplemented(); #endif + // function failed + AX=0x100; break; #ifdef DEBUG default: unknown(); #endif + // function failed + AX=0x100; } } else { // No VBE display - SET_AH(0x01); + AX=0x0100; } break; #endif |