home *** CD-ROM | disk | FTP | other *** search
- README for GRX 1.03 beta release
- ================================
-
- This is file README.GRX. It can be found at the beta7 distribution site
- and also in the DOCS sub-directory of the GRX archive. This file contains
- additional information about the new graphics-related features of GO32,
- the new graphics drivers and GRX 1.03.
-
- What is in this release?
- ------------------------
-
- This is an intermediate release based on my working sources. This version
- does not yet work with DPMI. On the other hand, it has been modified to work
- with the new (.VDR) drivers. These drivers together with the modifications
- in GO32 1.11 allow the use of more than 1MB of video RAM. Virtual screens
- larger than the displayed screen are also supported, together with a GO32
- function to change the start of the displayed region (pan). The beta GO32
- 1.11 already has a new format built-in VESA driver.
-
- This version only supports display modes which were present in GRX 1.02.
- (I.e. 16, 256, 32K colors and accelerated S3/8514A 256 color modes.) I don't
- intend to finish the missing display modes in the current page-fault based
- video RAM access mode. Currently I am working on a new set of low-level GRX
- video RAM access routines which will use explicit paging. These will support
- DPMI graphics with >64K frame buffers. As soon as these are finished and
- tested there will be another GRX release.
-
- The other new feature of this release is that all thick and patterned
- line primitives (which were missing from GRX 1.02) are present in this
- version.
-
- New driver interface
- --------------------
-
- The format of the VDR drivers can be found in the "grdriver.h" file in
- the GO32 source directory or in the NDRIVERS directory of the GRX archive.
- The built-in driver in GO32 should work with any VESA compatible SVGA card.
- Older (.GRD or .GRN) drivers still work with the new GO32 and graphics
- library. There is a small change in the driver specification part of the
- GO32 environment variable:
-
- SET GO32=driver <driver_name>::<driver_options> tw ...
- ^^^^^^^^^^^^^^^^^^
- new fields
-
- If the name of the driver is followed by two colons and a string then this
- string is taken as an option string for the driver. GO32 configures the driver
- according to the characters in this string when the driver is loaded. (Which
- now happens only when the driver is first used.) The option string is
- ignored for .GRD and .GRD drivers.
-
- The option string can contain the following characters (in any order, case
- does not matter):
-
- p: Enables protected mode paging. For .VDR drivers the default is to use
- the driver's paging function in real mode. This is necessary because
- the VESA BIOS paging function was written for real mode. However, many
- VESA BIOS-es are well written, and their paging function can be used
- in protected mode. Give it a try, if it fails then you have to use
- real mode paging which is MUCH slower. (paging with .GRD and .GRN
- drivers is always in protected mode)
-
- f: Enables fast 256 color mode. On some SVGA cards the planar, mode X-like
- 256 color memory organization can be used even in SVGA modes. There are
- a few operations (especially horizontal scan line fills) which can
- be much faster in this mode. Give it a try -- and if you see garbage
- on the screen then it does not work with your card.
-
- 5: This field is necessary only if your VESA BIOS is version 1.1 or older
- and the 64K (16 bit) color mode reported by it is really only a 32K
- (15 bit) mode. You can find out your VESA version number and a lot of
- other VESA related stuff by running the VESAINFO program in the
- NDRIVERS directory of the GRX archive.
-
- If you want to use the built-in GO32 driver with options use the following
- syntax:
-
- SET GO32 = driver ::pf5 tw ...
-
- When using a new .VDR driver with GO32 1.11 the video memory is mapped as
- follows:
-
- 0xd0000000 .. 0xd0100000 old 1MB RW area
- 0xd0100000 .. 0xd0200000 old 1MB R0 area
- 0xd0200000 .. 0xd0300000 old 1MB W0 area
-
- 0xd1000000 .. 0xd2000000 new 16MB RW area
- 0xd2000000 .. 0xd3000000 new 16MB R0 area
- 0xd3000000 .. 0xd4000000 new 16MB W0 area
-
- GRX 1.03 uses the 1MB areas whenever the frame buffer is less then 1MB,
- otherwise it uses the 16MB areas.
-
- GO32 1.11 supports the following new int 0x10 calls:
-
- Mode set with virtual screen sizes:
- Input:
- ax = 10 // = GR_custom_graphics
- bx = colors
- cx = desired screen width
- dx = desired screen height
- VDR_driver_header.virtual_x = desired virtual width
- VDR_driver_header.virtual_y = desired virtual heigth
- Output:
- bx = mode descriptor bits
- cx = actual screen width
- dx = actual screen height
- VDR_driver_header.virtual_x = actual virtual width
- VDR_driver_header.virtual_y = actual virtual heigth
-
- Inquire driver header linear address:
- Input:
- ax = 0xfffe
- Output:
- eax = linear address of driver header in real memory. (Add 0xe0000000
- when used in non-DPMI modes of the extender). Use this buffer
- for passing the virtual screen parameters to the driver.
-
- Call driver paging function in real mode:
- Input:
- ax = 0xfffd
- bl = read page
- bh = write page
- Output: none
-
- Set displayed screen start when virtual screen > displayed screen
- Input:
- ax = 0xfffc
- cx = X position
- dx = Y position
- Output: none
-
-