PROGRAM: VMa2VMb 1.00 [ Video Mode 'a' TO Video Mode 'b' ] Copyright (c) 1988 Peter N. Howells Alphabet Express 3524 Willow Hills Circle Reno, Nevada 89512 (702)-786-6519 CompuServe # 72770,3103 DESCRIPTION: VMa2VMb masks any specified IBM compatible video mode as any other video mode. VMa2VMb is a short Terminate and Stay Resident (TSR) program which is designed for owners of "EGA+" video cards who are not yet ready to upgrade to VGA. VMa2VMb can, in many cases, allow the owners of "EGA+" cards to use programs which are written for the VGA 640x480 color graphics video mode to use those programs without modification. VMa2VMb checks all requests for a video mode change on IBM (and true compatible) PC/XT/AT computers. If a program is requesting a change to a video mode which is not supported by your system (mode 'a'), it alters the request to one which your system will support (mode 'b'). You must specify which video modes are to be affected by VMa2VMb. RUNNING VMa2VMb: The best way to execute VMa2VMb is to run it from within your AUTOEXEC.BAT file so it will be loaded every time you boot your system. VMa2VMb may also be run from the DOS prompt. The syntax of the command to run VMa2VMb is the same in either case: VMa2VMb [mode_a mode_b] where "mode_a" is the video mode which you wish to mask and "mode_b" is the video mode which you want to use in its place. Both modes must be specified using HEXIDECIMAL numbers. The brackets around "mode_a mode_b" indicate that you do not have to enter the parameters; you should never actually type the brackets themselves. If you omit either or both of the parameters, VMa2VMb will print a message on the screen informing you of the correct syntax to use and then return to DOS without installing itself; you will then need to re-enter the command, using the correct syntax to install VMa2VMb. CGA/EGA/VGA VIDEO MODES: mode (hex) description 0 40x25 black & white text 1 40X25 color text 2 80x25 black & white text 3 80x25 color text 4 320x200 color graphics 5 320x200 black & white graphics 6 640x200 black & white graphics 7 80x25 MONOCHROME text display 8 | 9 | PC jr display modes A | (also, used internally by EGA/VGA B | during mode changes) C | D * 320x200 16 color graphics E * 640x200 16 color graphics F * 640x350 MONOCHROME graphics 10 * 640x350 16 color graphics 11 # 640x480 MONOCHROME graphics 12 # 640x480 16 color graphics 13 # 320x200 256 color graphics 22 @ 132x44 color text 23 @ 132x25 color text 24 @ 132x28 color text 25 @ 640x480 16 color graphics 26 @ 80x60 color text The modes marked with a '*' are VGA/EGA modes; the modes marked with a '#' are VGA modes; the modes marked with a '@' are Tseng Laboratories EVA/480 adapter specific modes; all other modes are CGA/EGA/VGA modes. Do not use modes 8 - C. Modes 7, F, and 11 REQUIRE a monochrome monitor; a black and white or color monitor will not work with these modes. WARNINGS: 1. Programs which support the VGA mode 12h and access the VGA at the register level may or may not function after VMa2VMb is installed -- since they wouldn't work before VMa2VMb was installed, there is no great loss. Virtually all graphics software which supports the EGA or the VGA accesses the video card at the register level. In most cases this is not a problem since the VGA registers are a superset of the EGA registers. The two most important problems that can occur when a "VGA program" tries to use an EGA adapter are: A. The program tries to access registers which are not present on the EGA. This will occur primarily if the program is using a non-EGA video mode such as the 320x200 256 color graphics mode. Do NOT try to use VMa2VMb to mask out mode 13h! It won't work -- only VGA cards support the 256 color mode -- your EGA+ card cannot handle it. B. A more important problem can occur if the program tries to read the VGA registers and then act according to the information it has read. VGA registers can be read; EGA registers cannot be read, only written. How do you know whether a program is going to try to read VGA registers? You don't know. All you can do is install VMa2VMb and attempt to run your program which uses VGA 640x480 color graphics. If it runs properly, fine; if not, it doesn't. 2. More generally than #1, most programs which set a video mode make a number of assumptions regarding the characteristics of that mode. For example, if a program sets video mode 10h (EGA 640x350 color graphics), it will usually assume that it needs to fill 350 rows with 640 dots to fill the entire screen with a single color. If you mask the 640x350 graphics mode with the 640x480 graphics mode, the program will still only use the top 350 lines of the screen. Even though the video card is in 640x480 mode and knows it has 480 lines available, the program doesn't and will only use 350 lines. Therefore, VMa2VMb should only be used to mask one video mode with another which has the same physical dimensions. Some examples of masks which should be ok are: mode_a mode_b 1: 40x25 color text 0: 40x25 b/w text run using: VMa2VMb 1 0 3: 80x25 color text 2: 80x25 b/w text run using: VMa2VMb 3 2 4: 320x200 color graphics 5: 320x200 b/w graphics run using: VMa2VMb 4 5 12: VGA 640x480 graphics xx: EGA+ 640x480 graphics run using: VMa2VMb 12 xx where "xx" is the video mode your EGA+ adapter uses to set 640x480 graphics (the Tseng Labs EVA/480 uses xx = 25) The peculiarities of individual programs are going to directly affect the results of using VMa2VMb to mask one video mode as another. We use VMa2VMb exclusively to mask VGA 640x480 graphics to EGA+ 640x480 graphics. We have had no problems using programs written in Borland's Turbo Pascal and Turbo C using the BGI interface. Microsoft's Paintbrush program also works fine when told to use VGA 640x480 graphics. 3. Do not expect VMa2VMb to be able to do anything about "smart" programs which automatically detect your video adapter and adjust their graphics mode accordingly. As long as the program allows you to specify the graphics driver, VMa2VMb can do its job. If the program uses auto-detection of the graphics adapter, they will detect an EGA, not a VGA, and will set the graphics mode for EGA never giving VMa2VMb a chance to do anything for you. 4. This program SHOULD be installed as the FIRST program which intercepts interrupt 10h (it does not HAVE to be). Sidekick and SuperKey, for example, both intercept interrupt 10h; therefore VMa2VMb should be loaded before either Sidekick or SuperKey. However, if you want to mask more than one video mode, you may load VMa2VMb more than once. 5. Of course your hardware must be able to handle the "mode_b" which you specify. If you have an "EGA+" card attached to a standard RGB monitor, you cannot even use the EGA 640x350 color graphics mode since your monitor cannot handle the required resolution. Similarly, if you have a standard EGA monitor, you still will not be able to use 640x480 graphics modes, again because your monitor is not up to it. (640x480 graphics usually requires a multisync-type monitor.) 6. VMa2VMb does not do any checking whatsoever to determine whether the video modes which you enter as parameters when running the program are valid for your system. "mode_a" does not have to be a valid mode, it is being masked by VMa2VMb and the system will never see a request to set it. "mode_b" must be a valid mode for your video card/monitor combination; if it is not, at the best you can expect your display to go berserk and (hopefully) the worst is that your system will hang and you will have to re-boot. DISCLAIMER: Since we have no control over the system in which you may choose to install VMa2VMb nor over the parameters which you may enter to invoke VMa2VMb, you must use VMa2VMb entirely at your own risk. We make no claims or warranties regarding the applicability or fitness of VMa2VMb toward any system, program or use to which you may choose to apply it. LICENCE: This is a copyrighted program and we retain all rights to it. You are granted a limited licence to use VMa2VMb: 1. You may use VMa2VMb for a period of 30 days without charge to determine its suitability for your needs. If, at the end of the 30 day period, you continue using the program, you must register your licence at a cost of $10.00 per computer (CPU) upon which you are using VMa2VMb otherwise you must destroy all copies of the program and its documentation and refrain from using them in any form. 2. Your licence entitles you to make as many copies of VMa2VMb as you feel are necessary for back-up purposes. 3. You may make copies of VMa2VMb and distribute them to others by any means which you may choose -- disks, electronically, Bulletin Board Services, etc. --provided that all documentation is distributed with the program. When you distribute the program and its documentation, they must be unmodified in any way. Anyone to whom you may distribute VMa2VMb is likewise granted the 30 day free licence after which time they must register their copy of the program. 4. You may not charge anyone a fee of any sort for distributing VMa2VMb or its documentation. Please remit licence fees to: Peter N. Howells Alphabet Express 3524 Willow Hills Circle Reno, Nevada 89512 (702)-786-6519 CompuServe # 72770,3103 We will be happy to provide any help or technical support which we can. Please let us know of any problems, incompatibilities, and successes which you may have.