Tube Time Profile picture
Jun 5, 2021 28 tweets 7 min read Read on X
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

Jun 13, 2023
here's a weird object! it's some kind of foot pedal with an IBM logo. is it for a sewing machine? electronic synthesizer? what do you think? 🧵 Image
it's got a cursed connector! what IS that? Image
amazingly enough, I found something with the mating connector on it! but what is it? Image
Read 24 tweets
Jan 11, 2023
hey so remember the world's cutest oscilloscope i picked up last year? i think it's time to fix the probe socket issue.
i printed a new panel insert that has two BNC sockets on it (the original probes would have had captive cables)
the tricky part is that this oscilloscope has a 333K ohm input impedance instead of 1M like umm every other scope on the planet. fortunately someone designed a little conversion circuit...
Read 11 tweets
Jan 5, 2023
in honor of Sim Wong Hoo, here's a quick historical review of the Sound Blaster! 🧵
but first we have to go back to their first sound card, the Creative Music System from 1987. (image credit: Bratgoul on Wikipedia)
this card has some special "CMS-301" chips. if you peel back the sticker, they have had their top marks removed. they're actually SAA1099 synthesizer chips made by Philips. Creative wrote music composition software for musicians on the PC.
Read 23 tweets
Dec 31, 2022
Tube Time: a 2022 retrospective 🧵
(and stuff you might have missed!) Image
starting things off in january, i found a tube of super old 555 timer chips! i also decapped one of them.
i also started fixing up an old HP 150 computer. it's not PC compatible but it runs MS-DOS--how odd!
Read 65 tweets
Dec 29, 2022
today's mini project: fixing this Radius Thunder IV GX daughtercard. it looks fine, but... 🧵 Image
one of the chips has some broken pins! Image
looks like two of the pins got mashed and broke right at the plastic package. Image
Read 11 tweets
Dec 8, 2022
on the bench of healing tonight: my coffee grinder which decided to bite the dust. Image
symptoms: i push the start button and the motor just bumps a little bit and stops.
how to take it apart? hmm, i bet there are screws under the rubber feet. Image
Read 23 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

Don't want to be a Premium member but still want to support us?

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

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(