dhw@itivax.iti.org (David H. West) (12/29/89)
A while ago, someone asked what he called a "weird question" - does MSDOS have or recognise "a graphics mode". The posted answers were inconclusive. I used to think that this was quite straightforward: every display adaptor has 1 or more text modes and 0 or more graphics modes, and MSDOS itself (i.e. excluding utilities such as ansi.sys and graphics.com) concerns itself with this only to the extent that command.com wants (forces?) the screen to be in text mode when prompting for input. Well, I've just discovered the inadequacy of this model. I'm using an Everex Viewpoint VGA, which comes with a utility to set its modes. Normally I keep it set to a high-resolution (9 x 14 cell) text mode, but I find that some graphics programs, which claim to work with VGA or EGA, will not set an appropriate mode with this card (instead they hang - why?), but will work if an appropriate mode is set before they are invoked. The part I don't understand is as follows: I invoke the utility to set the card into, say, EGA graphics mode - I think the mode number is 16, but the manual is at home. I then get a DOS prompt in a different text font. What is happening here - is command.com temporarily returning the screen to (some other) text mode? Or is the card clever enough to know it needs to simulate text even though it's "really" in a graphics mode? Or does the card vendor's utility not actually set a specific graphics mode, but rather enable a particular kind of emulation (even though I'm passing it a "mode number", specifying number of pixels and colors, as a parameter)? And how does this square with the fact that if I set a "wrong" graphics mode, I don't even get a DOS prompt afterwards? -David West "You are in a maze of twisty little graphics modes, all different".
cox@jolnet.ORPK.IL.US (Ben Cox) (12/29/89)
In article <4703@itivax.iti.org> dhw@itivax.iti.org (David H. West) writes: [deleted] >The part I don't understand is as follows: I invoke the utility to >set the card into, say, EGA graphics mode - I think the mode number >is 16, but the manual is at home. I then get a DOS prompt in a >different text font. What is happening here - is command.com >temporarily returning the screen to (some other) text mode? Or is >the card clever enough to know it needs to simulate text even though >it's "really" in a graphics mode? Or does the card vendor's utility >not actually set a specific graphics mode, but rather enable a >particular kind of emulation (even though I'm passing it a "mode >number", specifying number of pixels and colors, as a parameter)? >And how does this square with the fact that if I set a "wrong" >graphics mode, I don't even get a DOS prompt afterwards? The BIOS knows how to put text on the screen, even in a bitmapped mode, and COMMAND.COM calls the BIOS to put characters on the screen. If the resolution in the graphics mode is different from the resolution in the text mode, the characters will look different. If the BIOS doesn't know how to use a given mode, you will not see characters, and you may hang (although sometimes you can still type commands -- try typing "mode co80" sometime when you appear hung -- it may be just that you don't see anything, even though you are not hung -- you will reset to mode 3, which is 80x25 color text, or 7, which is BW 80x25). Ben Cox b-cox2@uiuc.edu (gets forwarded to me wherever I am)
leonard@bucket.UUCP (Leonard Erickson) (12/31/89)
dhw@itivax.iti.org (David H. West) writes: >The part I don't understand is as follows: I invoke the utility to >set the card into, say, EGA graphics mode - I think the mode number >is 16, but the manual is at home. I then get a DOS prompt in a >different text font. What is happening here - is command.com >temporarily returning the screen to (some other) text mode? Or is >the card clever enough to know it needs to simulate text even though >it's "really" in a graphics mode? Or does the card vendor's utility >not actually set a specific graphics mode, but rather enable a >particular kind of emulation (even though I'm passing it a "mode >number", specifying number of pixels and colors, as a parameter)? >And how does this square with the fact that if I set a "wrong" >graphics mode, I don't even get a DOS prompt afterwards? What's happening is that when you set those modes, the BIOS data area in low RAM gets some data values changed. Video mode (of course!), number of columns on screen (normally 40 or 80, but both 90 and 132 are settable and usable with the proper hardware). screen size (in K) number of rows of characters. Height of Characters (in scan lines) etc etc The height in scan lines is what triggered the font change. The system saw that you now were in a mode that should be using the 8x8 font instead of the 9x14 font. If you think waaaay back... to BASIC (anybody remember BASIC) it had to be able to print text in graphics modes. As I recall, the CGA modes are "hardwired to the 8x8 fonts and mode 7 is hardwired to 9x14. Everything else is free to set things up as they please. (It was ega where the rows and character height varaibles were added) I'm all *too* familiar with this after helping put together a TSR to allow us to use the 132 column capability of some of our video boards with a terminal emulator package (Thank God the people who wrote the emulator had a sample chunk of code available!) We were going nuts until we noticed the columns variable... duh! -- Leonard Erickson ...!tektronix!reed!percival!bucket!leonard CIS: [70465,203] "I'm all in favor of keeping dangerous weapons out of the hands of fools. Let's start with typewriters." -- Solomon Short
dmt@pegasus.ATT.COM (Dave Tutelman) (01/02/90)
Two otherwise correct responses to the base note propagate some misinformation about the monochrome mode. > From: leonard@bucket.UUCP (Leonard Erickson) > Message-ID: <1869@bucket.UUCP> > > If you think waaaay back... to BASIC (anybody > remember BASIC) it had to be able to print text in graphics modes. As > I recall, the CGA modes are "hardwired to the 8x8 fonts and mode 7 is > hardwired to 9x14. Perhaps true, perhaps not, depending on what Leonard meant. True that: - Mode 7 is 9x14, and hardwired (REALLY, not BIOS). - BASIC was able to print text in graphics modes. Not true that: - BASIC printed its text in graphics modes in general. In fact, you had to explicitly call up a graphic screen mode; the default for basic was a text mode. If you think waaaay back, the IBM mono adapter had NO graphic mode whatsoever, and (1) it was the basic IBM offering, and (2) BASIC was built into ROM on that IBM offering. Which brings us to... > From: cox@jolnet.ORPK.IL.US (Ben Cox) > Message-ID: <2593@jolnet.ORPK.IL.US> > > If the BIOS doesn't know how to use a given > mode, you will not see characters, and you may hang (although sometimes you > can still type commands -- try typing "mode co80" sometime when you appear > hung -- it may be just that you don't see anything, even though you are not > hung -- you will reset to mode 3, which is 80x25 color text, or 7, which is > BW 80x25). No, no, no. The modes in confusion here are: - CO80: mode 3, color 80x25. - BW80: mode 2, b&w 80x25 _for_CGA-compatible_adapter. - MONO: mode 7, monochrome 80x25, for the mono adapter. Note that mode 7 is the ONLY mode supported by the basic mono adapter. (Hercules came along later with their graphics mode.) Mode 2 is intended for use where you have a gray-scale monitor on a CGA card, and is the mode set by the command "MODE BW80". I suspect mode 7 will be the result if you say MODE CO80 to a computer with just a mono adapter in it. It's also the mode if you say anything at all to such a computer. I don't know for sure, but I very much doubt that it's the mode assumed by an adapter capable of CGA and mono emulation, in response to MODE CO80. +---------------------------------------------------------------+ | Dave Tutelman | | Physical - AT&T Bell Labs - Lincroft, NJ | | Logical - ...att!pegasus!dmt | | Audible - (201) 576 2194 | +---------------------------------------------------------------+