Reply 20 of 25, by Jo22
- Rank
- l33t++
weedeewee wrote on 2023-08-12, 18:14:Isn't mono & vga text mode in a different memory region ? can't recall, have to look it up.
Yes, I think that's right. MDA merely uses a 4KB "framebuffer" and doesn't get in the way.
Back in the late 80s/early 90s debuggers supported MDA as a secondary card for a status display (CodeView, SoftICE etc).
AutoCAD was same, I think. It had the text-based menu/status on MDA.
In practice, a generic Hercules Monochrome compatible graphics card (HGC) was used as a substitute for a real IBM MDA card.
- The generic, less popular terms for Hercules Monochrome was "MGA", by the way.
This was used to avoid copyright/trademark issues with Hercules, I think.
MDA.. Monochrome Display Adapter
MGA.. Monochrome Graphics Adapter
HGC.. Hercules Graphics Card
During power-on, Hercules cards do act like MDA cards and thus don't require special BIOS support.
The graphics memory is hidden at this point, it won't touch the CGA region, either at this point.
Hercules uses three framebuffer locations, essentially. MDA, one graphics page shared with CGA, another graphics page.
Hercules can use either graphics page and switch between both of them.
That's why CGA emulation is possible on XTs with Hercules cards, btw.
The Hercules/MGA card can both physically provide & read that CGA framebuffer.
Alternatively, it can als run in "half mode" and leave CGA alone. That way, both a CGA card and MGA card can be used simultaneously.
To enable half mode, an utility has to set the appropriate registers.
The graphics library MSHERC can be used for this (MSHERC /HALF).
This will also make applications see the Hercules Monochrome as an MGA (HGC) card.
Otherwise, applications like MSD or CheckIt! will only see a plain IBM MDA.
Games are an exception maybe.
They will usually ask the user for the video adapter, anyway, rather than trying to check for Hercules.
Speaking of CGA.. It's a funny dude. It needs 16KB of RAM, but the framebuffer is mirrored, thus occupying 32KB.
That's a bit sad, because with 32KB of physical memory, the CGA would be on par with Plantronics, memory wise.
Or if two independent CGA pages existed, the other one could be used for double-buffering.
Ok, ok, enough mansplaining for now.. ;)
(Just kidding. I sorta have a love/hate relationship with CGA. That's why I couldn't resist. Hope you don't mind.)
Edit: On modern DOS, "MODE MONO" will change DOS console to MDA, while "MODE CO80" will change to CGA.
That's useful for a dual monitor setup on an PC/XT.
On older versions, special utilities were needed (usually COM files of a few bytes in size).
They were found in Public Domain scene back then.
I think I have them somewhere..
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel
//My video channel//