diff options
author | Jeroen Janssen <japj@xs4all.nl> | 2002-04-08 21:44:11 +0000 |
---|---|---|
committer | Jeroen Janssen <japj@xs4all.nl> | 2002-04-08 21:44:11 +0000 |
commit | 27a8999a5dda86609ea037ccaf9eb4b2eb40670b (patch) | |
tree | c55bddcc5a6bb338106e2a8717d08dbe0e4ad6ab /vbe_display_api.txt | |
parent | a0e53b3db8ef148cc8e7b0ceeff53babfc8e3a84 (diff) | |
download | qemu-vgabios-27a8999a5dda86609ea037ccaf9eb4b2eb40670b.tar.gz |
- preparing docs for new DISPI interface (for hardware scrolling)
Diffstat (limited to 'vbe_display_api.txt')
-rw-r--r-- | vbe_display_api.txt | 67 |
1 files changed, 49 insertions, 18 deletions
diff --git a/vbe_display_api.txt b/vbe_display_api.txt index b866e67..3c90d47 100644 --- a/vbe_display_api.txt +++ b/vbe_display_api.txt @@ -12,8 +12,8 @@ VBE Display API API History ------------ -0xb0c0 supports the following VBE_DISPI_ interfaces (present in Bochs 1.4.pre2): +----------- +0xb0c0 supports the following VBE_DISPI_ interfaces (present in Bochs 1.4): VBE_DISPI_INDEX_ID VBE_DISPI_INDEX_XRES VBE_DISPI_INDEX_YRES @@ -23,11 +23,21 @@ API History Bpp format supported is: VBE_DISPI_BPP_8 - + +0xb0c1 supports 0xb0c0 VBE_DISPI_ interfaces, additional interfaces: + VBE_DISPI_INDEX_VIRT_WIDTH + VBE_DISPI_INDEX_VIRT_HEIGHT + VBE_DISPI_INDEX_X_OFFSET + VBE_DISPI_INDEX_Y_OFFSET + History ------- + Version 0.6 (UNRELEASED) Jeroen Janssen + - Added LFB support + - Added Virt width, height and x,y offset + Version 0.5 2002 March 08 Jeroen Janssen - Added documentation about panic behaviour / current limits of the data values. - Changed BPP API (in order to include future (A)RGB formats) @@ -36,13 +46,11 @@ History Todo ---- - Version 0.5 - Update the VBEBios with the new API in this spec - - Update the Bochs display patch with the new API in this spec + add this document. + Version 0.6 - add virtual width, height, x offset, y offset in bios & bochs + (for set/get logical scan line length andset/get display start) - Version 0.5+ [random order] + Version 0.6+ [random order] - Add lots of different (A)RGB formats - - Add Linear Frame Buffer API - References ---------- @@ -84,8 +92,13 @@ Abbreviations #define VBE_DISPI_INDEX_BPP 0x3 #define VBE_DISPI_INDEX_ENABLE 0x4 #define VBE_DISPI_INDEX_BANK 0x5 + #define VBE_DISPI_INDEX_VIRT_WIDTH 0x6 + #define VBE_DISPI_INDEX_VIRT_HEIGHT 0x7 + #define VBE_DISPI_INDEX_X_OFFSET 0x8 + #define VBE_DISPI_INDEX_Y_OFFSET 0x9 #define VBE_DISPI_ID0 0xB0C0 + #define VBE_DISPI_ID1 0xB0C1 #define VBE_DISPI_BPP_8 0x0 // The following is not support yet, but just for reference available. @@ -102,8 +115,9 @@ API The display api works by using a index (VBE_DISPI_IOPORT_INDEX) and data (VBE_DISPI_IOPORT_DATA) ioport. One writes the index of the parameter to the index port. Next, the parameter value can be read or written. - - * VBE_DISPI_INDEX_ID : WORD + +[0xb0c0] + * VBE_DISPI_INDEX_ID : WORD {R,W} This parameter can be used to detect the current display API (both bochs & vbebios). The bios writes VBE_DISPI_ID0 to the dataport and reads it back again. This way, the display code knows the vbebios 'ID' and the vbebios can check if the correct @@ -113,7 +127,7 @@ API Example values: VBE_DISPI_ID0 - * VBE_DISPI_INDEX_XRES : WORD + * VBE_DISPI_INDEX_XRES : WORD {R,W} This parameter can be used to read/write the vbe display X resolution (in pixels). It's illegal to set the XRES when the VBE is enabled (display code should generate PANIC). @@ -121,7 +135,7 @@ API Example values: 320,640,800,1024 - * VBE_DISPI_INDEX_YRES : WORD + * VBE_DISPI_INDEX_YRES : WORD {R,W} This parameter can be used to read/write the vbe display Y resolution (in pixels). It's illegal to set the YRES when the VBE is enabled (display code should generate PANIC). @@ -129,7 +143,7 @@ API Example values: 200,400,480,600,768 - * VBE_DISPI_INDEX_BPP : WORD + * VBE_DISPI_INDEX_BPP : WORD {R,W} This parameter can be used to read/write the vbe display BPP. It's illegal to set the BPP when the VBE is enabled (display code should generate PANIC). @@ -137,7 +151,7 @@ API Example values: VBE_DISPI_BPP_8 - * VBE_DISPI_INDEX_ENABLE : WORD + * VBE_DISPI_INDEX_ENABLE : WORD {R,W} This parameter can be used to read/write the vbe ENABLED state. If the bios writes VBE_DISPI_ENABLED then the display code will setup a hostside display mode with the current XRES, YRES and BPP settings. @@ -145,10 +159,29 @@ API Example values: VBE_DISPI_ENABLED, VBE_DISPI_DISABLED - * VBE_DISPI_INDEX_BANK : WORD + * VBE_DISPI_INDEX_BANK : WORD {R,W} This parameter can be used to read/write the current selected BANK (at 0xA0000). This can be used for switching banks in banked mode. +[0xb0c1] + * VBE_DISPI_INDEX_VIRT_WIDTH : WORD {R,W} + This parameter can be used to read/write the current virtual width. + Upon enabling a mode, this will be set to the current xres + Setting this field during enabled mode will result in the virtual width to be changed. + Value will be adjusted if current setting is not possible. + + * VBE_DISPI_INDEX_VIRT_HEIGHT : WORD {R} + This parameter can be read in order to obtain the current virtual height. + This setting will be adjusted after setting a virtual width in order to stay within limit of video memory. + + * VBE_DISPI_INDEX_X_OFFSET : WORD {R,W} + The current X offset (in pixels!) of the visible screen part. + Writing a new offset will also result in a complete screen refresh. + + * VBE_DISPI_INDEX_Y_OFFSET : WORD {R,W} + The current Y offset (in pixels!) of the visible screen part. + Writing a new offset will also result in a complete screen refresh. + Displaying GFX -------------- @@ -167,9 +200,7 @@ Displaying GFX Notes ------ - * Currently only Banked modi are 'officially' supported (although 320x200x8 LFB is available in the bios atm). - +----- * Since the XRES/YRES/BPP may not be written when VBE is enabled, if you want to switch from one VBE mode to another, you will need to disable VBE first. |