summaryrefslogtreecommitdiff
path: root/vbe_display_api.txt
diff options
context:
space:
mode:
authorJeroen Janssen <japj@xs4all.nl>2002-04-08 21:44:11 +0000
committerJeroen Janssen <japj@xs4all.nl>2002-04-08 21:44:11 +0000
commit27a8999a5dda86609ea037ccaf9eb4b2eb40670b (patch)
treec55bddcc5a6bb338106e2a8717d08dbe0e4ad6ab /vbe_display_api.txt
parenta0e53b3db8ef148cc8e7b0ceeff53babfc8e3a84 (diff)
downloadqemu-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.txt67
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.