The near-mythical IBM color MDA
Eric Schlaepfer
schlae at gmail.com
Fri Aug 24 11:37:54 CDT 2018
It only supports mode 7 since it's an MDA card. :)
The QBASIC COLOR statement doesn't bother to range check the arguments, it
just copies them into the attribute byte in video memory. This is why the
trick works.
Other programs *know* that you clearly have a monochrome card so they won't
use the full attribute byte even though they can.
If you manually poke values into the BIOS data area (0x449) to indicate
mode 3, then programs will start writing to 0xB8000 instead of 0xB0000 and
you won't see anything on the screen.
I thought about it some more this morning, and I realized that the video
memory on the MDA card has a memory address decoder (actually a 'LS138,
U51). By pulling pin 1 of the chip and tying it to ground, I was able to
alias the MDA video memory at 0xB8000 as well as the normal 0xB0000
location. When I poked 3 to 0x449 using DEBUG, it actually worked, and I
got QBASIC up in color!
https://twitter.com/TubeTimeUS/status/1033028673970921472
There are a few strange effects, naturally. QBASIC reprograms the cursor
incorrectly so it appears in the middle of the character cell. Also,
because the underline generator still uses the attribute byte, dark blue
text appears underlined.
On Thu, Aug 23, 2018 at 8:49 PM Fred Cisin via cctalk <cctalk at classiccmp.org>
wrote:
> OK, so the demo was with a "MODIFIED" card. :-) (admittedly a trivial one
> that brought it in line with published schematic)
>
> Which Int10h modes does it support?
> QBASIC is presumably simpy using the INt10h modes.
> The MDA by default was in Mode 7.
> If it will do mode 3, then it can do Lotus in color, etc.
>
> Obviously, it doesn't have the RAM to do any "high resolution" modes, . .
> .
>
>
>
> On Thu, 23 Aug 2018, Eric Schlaepfer wrote:
>
> > I'm not that lucky! But yes, an early card with the light pen connector
> > should work.
> >
> > The card I used for the demo is a somewhat later revision. I added rework
> > wires to match the schematic in the technical reference manual of the
> > earlier revision.
> >
> > With either an early MDA card or a modded card, if you fire up DOS 5.0
> and
> > have QBASIC, you'll find that the COLOR statement... just works! It's
> quite
> > strange.
> >
> > On Thu, Aug 23, 2018 at 8:24 PM Fred Cisin via cctalk <
> cctalk at classiccmp.org>
> > wrote:
> >
> >> On Thu, 23 Aug 2018, Ali via cctalk wrote:
> >>> Which revision MDA is this? I have an original NEC Multisync and I have
> >>> a tone of MDA cards including one in one the first 5000 IBM 5150s
> >>> produced. I would love to get color out of it just for the sake of
> doing
> >>> it. Do you still have your demo programs?
> >>
> >> Do any of yours have the 6 pin Berg connector near the top of the
> mounting
> >> plate? Some did. On CGA, that connector is for light pen.
> >> Supposedly some early MDAs had pins 3,4,5 connected (not connected in
> >> later ones). That MIGHT be the same ones as have the light-pen?
> >> connector.
> >>
> >> https://www.seasip.info/VintagePC/mda.html#cmda
> >>
> >> http://www.minuszerodegrees.net/5150/early/5150_early.htm
>
More information about the cctech
mailing list