=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =- -= =- Tauron VGA Utilities Version 3.0 -= =- Released September 20, 1998 -= =- -= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =- Copyright (c) 1997, 1998 by Jeff Morgan =-= This code is FREE provided -= =- All Rights Reserved. =-= that you put my name some- -= =- =-= where in your credits. -= =- DISCLAIMER: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =- I assume no responsibility whatsoever for any effect that this package, -= =- the information contained therein or the use thereof has on you, your -= =- sanity, computer, spouse, children, pets or anything else related to -= =- you or your existance. No warranty is provided nor implied with this -= =- source code. -= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ** Note ** This code does not update BIOS when in real mode. So if you need that particular functionality, you will have to add this yourself. Use MODE NUMBER to set the video mode with the procedure provided. A star (*) next to the mode number indicates that it is not yet implemented. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =- Currently supported Video Modes: -= MODE NUMBER =-= Type -= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =- -= =-= -= =- 00H,01H -- 40 x 25 x 16 -= 00H,01H =-= Text -= =- -= =-= -= =- 02H,03H -- 80 x 25 x 16 -= 02H,03H =-= Text -= =- -= =-= -= =- 04H,05H -- 320 x 200 x 4 -= 04H,05H =-= Graphics -= =- -= =-= -= =- 06H -- 640 x 200 x 2 -= 06H =-= Graphics -= =- -= =-= -= =- 07H -- 80 x 25 x 2 (Monochrome) -= * 07H =-= Text -= =- -= =-= -= =- 0DH -- 320 x 200 x 16 -= 0DH =-= Graphics -= =- -= =-= -= =- 0EH -- 640 x 200 x 16 -= 0EH =-= Graphics -= =- -= =-= -= =- 0FH -- 640 x 350 x 2 (Monochrome) -= * 0FH =-= Graphics -= =- -= =-= -= =- 10H -- 640 x 350 x 16 -= 10H =-= Graphics -= =- -= =-= -= =- 11H -- 640 x 480 x 2 -= 11H =-= Graphics -= =- -= =-= -= =- 12H -- 640 x 480 x 16 -= 12H =-= Graphics -= =- -= =-= -= =- 13H -- 320 x 200 x 256 -= 13H =-= Graphics -= =- -= =-= -= =- Chain 4 -- unchained 320 x 200 x 256 -= 14H =-= Graphics -= =- -= =-= -= =- Mode X -- unchained 320 x 240 x 256 -= 15H =-= Graphics -= =- -= =-= -= =- Mode A -- unchained 320 x 350 x 256 -= 16H =-= Graphics -= =- -= =-= -= =- Mode B -- unchained 320 x 400 x 256 -= 17H =-= Graphics -= =- -= =-= -= =- Mode C -- unchained 320 x 480 x 256 -= 18H =-= Graphics -= =- -= =-= -= =- Mode D -- unchained 360 x 200 x 256 -= 19H =-= Graphics -= =- -= =-= -= =- Mode E -- unchained 360 x 240 x 256 -= 1AH =-= Graphics -= =- -= =-= -= =- Mode F -- unchained 360 x 350 x 256 -= 1BH =-= Graphics -= =- -= =-= -= =- Mode G -- unchained 360 x 400 x 256 -= 1CH =-= Graphics -= =- -= =-= -= =- Mode H -- unchained 360 x 480 x 256 -= 1DH =-= Graphics -= =- -= =-= -= =- Mode I -- 640 x 400 x 16 -= 1EH =-= Graphics -= =- -= =-= -= =- Mode J -- 80 x 43 x 16 -= 1FH =-= Text -= =- -= =-= -= =- Mode K -- 80 x 50 x 16 -= 20H =-= Text -= =- -= =-= -= =- Mode K -- 40 x 43 x 16 -= 21H =-= Text -= =- -= =-= -= =- Mode K -- 40 x 50 x 16 -= 22H =-= Text -= =- -= =-= -= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= To set a video mode using the procedure I already have written: PUSH *VALUE* ; Where value is the mode number CALL SETVIDEOMODE and thats it the videomode gets set. Once the video mode is set, you can program each video mode as normal. Just remember, you can't rely on BIOS so if you need the palette set to the proper values, you need to set them yourself. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= If you want to use this code in your programs, all you need is which ever mode you want from MODES.INC and also the procedure SETMODE. Just MOV SI, OFFSET *MODE* ; Where mode is the mode from MODES.INC CALL SETMODE If you want the unchained modes, you also need a bit of code from the SETVIDEOMODE procedure in MAIN.ASM. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= I have also included some source for clearing the screen and plotting pixels. If you notice that since all of the chained modes use the same memory structure the same code can be used to program all with only a few modifications. This also goes for the planar modes 10h, 12h, Mode C, etc. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=