here's an interesting package that came in from Bulgaria! let's find out what's inside...
haha this box used to be a different box 😂
it's an IBM EGA graphics card!
it umm appears to have been banged around a bit. probably placed back to back with another card and scratched up
hmm it mostly works though! small problem with vertical lines. what could that be caused by?
weirdly, it works fine in graphics mode!
since the RAM seems to work, i think the problem is somewhere else. but first i need to figure out how characters are displayed in text mode.
the EGA has an internal 32-bit data path! the RAM is split into two sets of 16 bits each, and those are split further into 4 sets of 8 bits each. each set is a bit plane, called MAP0, MAP1, MAP2, and MAP3.
in graphics modes, each plane represents one bit of the 4 bits that make up a pixel. ignoring the palette, that means we have one plane for R, one for G, one for B, and one for intensity.
so if i only write to a single plane, then each byte represents the red bits of 8 consecutive pixels. another way to look at it is that each plane is a monochrome bitmap. layer 4 of them, and you get all the colors you need.
text mode uses only two of those planes, MAP0 and MAP1. MAP0 is the character code and MAP1 is the attribute byte.
but there's no separate character ROM, or RAM! so how does the EGA handle turning the character codes into pixel data?
the character codes are stored in a bit plane, MAP2! they let you do tricky things like storing multiple character tables, or reassigning an attribute bit so that you can have a character set with 512 possible characters.
ok, so how does that character pixel data get loaded? there's a set of latches that takes the data from MAP0 as well as RS, which is the current character row (14 total, but the EGA can do up to 32). the output of those latches becomes the address for MAP2!
so perhaps it is a stuck bit in the MAP2 plane. but graphics mode uses this plane too, and it works fine there. 🤔
looks like in graphics mode, the attribute LSI gets 4-bit data directly from the two graphics control LSIs (C0, C1, C2, and C3). only in text mode does the attribute LSI use the M2Dx path circled in red. seems like a logic step would be to ohm out those connections...
and it ohmed out just fine. the plot thickens!
time for the big guns.
i'm using an alternating pattern of a filled character block followed by an empty block. this is what i get.
shift/load# latches the data on m2dx on the falling edge. looks like valid data to me. so this is a problem in the custom chip. bummer. (pixel data is bottomost trace, you can see the "vertical line".)
must be an internal short. notice how the pixel glitch is a 20ns delayed+inverted version of the shift/load# signal?
so there you have it. a bad attribute LSI (custom chip). this is bad news...
...but also good news, because now i can tear this card apart without feeling bad about it.
well you see I have another EGA card, bit it actually works, and it has the RAM expansion!
chip removed.
socket installed
"new" chip installed. let's see if this fixed it
yup! so the chip went bad somehow.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Tube Time

Tube Time Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @TubeTimeUS

5 Jun
the tower of power just got taller, @Foone

now it won't fit on the shelf. 😂
this gag has really gone sideways
oh btw don't ever plug your phone into the untrusted jack.
Read 4 tweets
29 May
this is a picture of the worst day of a professional engineer's life. 🧵
yes, it's the Florida International University pedestrian bridge collapse. it came down during construction due to critical design flaws. unfortunately several folks lost their lives.
there is a very good illustrated digest that the NTSB created about their investigation of the collapse.
ntsb.gov/investigations…
Read 38 tweets
28 May
i'm super curious about the electronics hobbyist community in China. perhaps a good place to start would be the Chinese equivalent of YouTube, bilibili. bilibili.com 🧵 Image
only problem is that i don't know Chinese. (i really ought to learn one of these days.) good thing there are good translation tools out there. oh yeah and browsers can translate on the fly, so that's nice. Image
ahh there we go, soldering videos! hopefully bilibili has a good recommendation engine that will lead me to more electronics hobby videos. Image
Read 33 tweets
27 May
i've been digging into Tandy graphics modes to understand how they change and improve CGA. the implementation may not be as hard as i thought. 🧵 Image
the most obvious difference is that Tandy modes support a 320x200 mode with 16 colors instead of just 4. but how do they do it?
Read 22 tweets
23 May
what have I gotten myself into? 😂
it's a paper tape punch!
only lightly damaged. at least from what I can tell so far.
Read 6 tweets
14 May
here's a very obscure IBM PC graphics card! it's the video card for the 3270 PC. the smaller card is the keyboard interface, which also contains the video BIOS. let's see if it works. Image
it's coming up in monochrome mode. I'm not sure how the card is supposed to detect a color monitor. Image
the card I have is just for text modes. another card allowed for custom fonts (programmed symbol card) and a third card enabled a graphics mode (APA).
Read 12 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(