Just glanced at the schematic for the card and memory expansion. It looks like pin 50 on the expansion connector is called MEMOPT . On the expansion card that pin is tied to ground. It may be as simple as grounding that pin 50 so it thinks it has the memory card.
@Mr Guru there are 2 by 8 bit latches on the schematic, one fed with 8 bits but the other is fed with 6 bits and 2 bits grounded, from here on the pcb will not address 64k chips additional space. from the LSI it only addresses ram with 8 bits and 6 bits (ras cas)
@Mr Guru it wont work that way.. in addition you would need to combine the 4 separate CAS signals into one CAS and column address bits A0 and A7, to make it work with 4464.
@Mr Guru the point was to use 4464 chips. also it would make no sense to design a new board with 24 pieces of 4416 chips if you can make it with only 8 4464 chips (less complexity , cheaper...etc..) ... and we're back to the need of re-arranging CAS and addressing as i mentioned earlier ;)
FWIW, the summary answer (which is basically in the thread started by Michael Hill) as to why this didn't work is on sheet 3 of the EGA schematic; there are a series of LS374 latches which do the multiplexing for the 16 bit (MA0->MA15) display address generator, and you can see that A14 and A15 aren't fed into the CAS latches; they have two input pins grounded. Therefore the full 16 bit address will never make it to a 4464 plugged into the sockets on the board. You could try pulling MA14 and MA15 to those inputs on the latch inputs after freeing them up from ground, but you'll then need to outsmart the LSI sequencer that uses those signals to generate the CAS/RAS signals for chips on the expansion connector so cycles intended for those banks activate the onboard chips (at the appropriate addresses) instead. Maybe you could piggyback a GAL somewhere on the board that has the alternate RAS/CAS and A14/15 signals as inputs and switch them accordingly. It also looks to me like you'd need to mess with the bus interface circuitry on pages 4 and 5 so memory read/writes from the computer bus are handled correctly. In short this is probably "doable" but it'll take some pretty significant hackery. Per other comments in that thread I am mildly surprised the 4464s didn't work at all; if those two bits of CAS are tied low consistently then I'd think the chip would effectively just act like a 4416. I kind of wonder if there's an opportunity for those to float in the computer bus address side of the house, that part of the schematic gives me a headache. This might cause writes to go to a different part of the chips than reads?
So tempted to look at the comments on this one and so glad I didn't until I got to the end of the video 😁 Sometimes the fun is in the journey - and this was useful to know!
This is a perfect second channel video! This is content that many of us love, but a wider audience might not like too much, so with the second channel you can hit a targeted expert audience! Great job Mr. Black! Keep the tinkering coming!
Maybe you could try feeding the extra address lines from the expansion header via a couple of bodge wires? No idea if that’s something that could work, but it’s easy to try if you have the pin outs.
The card would have some rom which would also likely need to be modified. So while doable it doesn't make sense to pursue may as well engineer a card from scratch.
Cant. The same pins that do the RAS do the CAS. So no physical modification at the memory would help. Now there might be a way to route signals BEFORE the latches, but i dunno. Seems to make more sense to just try and get the actual expansion board. After all, he is usually going on and on about keeping things "authentic!" (See the PC-AT repair series! ^-^)
I guess the expansion header has different RAS/CAS signals for the 3 extra banks. Soldering 4 RAM chips on top of each other and bending the RAS/CAS pins up and wire them to the expansion header might do the trick.
Bugger, I had the same thought of upgrading the RAM on the card when you first showed it in the 5170 video. Glad you tried it out and shame it doesn't allow such a thing
Yup, as the expansion board also uses 4416, there is no way of mapping the extra CAS lines but using the extension's adressing signals ACAS1-3 and BCAS1-3 and gate those in to the new chips.
That still doesn't explain why the video board isn't writing to the ram correctly. Display looks like uninitialized ram. The ram is upwardly compatible, right?
@@williammentink Since it expects 150ns RAM the refresh is probably too slow for the 100ns RAM and it loses its contents. Most likely the pattern will be random if you power cycle it.
For those who don't know what bitplanes are, it means that each *bit* of video memory gets its own entire *byte* in the memory map, so that you don't have to do bitwise shenanigans to set individual pixels. It's also not contiguous (RGBIRGBIRGBI...), rather its split up such that each component of a pixel has its own plane (like RRR...GGG...BBB...III...). This makes some operations quicker (say, setting single pixels, which is what an unoptimized graphical routine might do) but makes other operations slower (blitting takes more operations than if pixels were packed).
Nice Video. I do not have a card like that to test this too :( Check if the extra address line on the memory chips is routed on the PCB to the main chips. Would be probably floating as this did not work. Then maybe there is this line going from the main chip to the expansion slot. I actually enjoy this second channel more :)
Not seen one of these for many years. Back when I started working in electronics one of my 1st jobs was working at an electronics subcontractor that built a bunch of IBM stuff. My job was to fix the boards that failed functional test. They were good days.
There's a thread on twitter by either Foone Turing or TubeTime, where you can install a few switches to switch the 4 colour palette used in the full 480 mode, they go pretty deep into the schematics and discuss a lot of the tech involved, might find a few interesting things there!
I would've thought software could change it directly. In the 16 color mode can't software redefine the palette using any of the 64 colors the output supports?
@@eDoc2020 Indeed. EGA software can choose any 4 of 64 colors in all 4-color modes. But as the IBM EGA monitor is limiting itself to 16 colors in "mode 1" (200 lines, CGA compatible timing), you only get to see any 4 out of 16 colors in the CGA 320x200 4-color mode, but you are able to get any 4 out of 64 colors in 640x350. If EGA offered a 320x350 mode (which would have a weird aspect ration), it could display that at 16 out of 64 colors with just 64KB of RAM installed.
That 150 ns memory spec might be very important here. There is such a thing as too fast of a memory. Seen this problem quite a few times in arcade repair. They had different speeds for a reason. Some places you cannot just swap memory types (like you can do with modern computer RAM these days).
The idea of the expansion module was probably intentional, to prevent clever users from doing the exact upgrade you are doing right now, but instead, force them to purchase the expansion board from IBM.
Yeah, IBM never was that person friendly. Their first and foremost line of sales was/is business, where these hacks are not preferred, they just buy the expansion or new cards when needed both for simplicity and warranty.
Expansion boards are also a "cleaner" upgrade route when they're available, since they can ensure that only the correct speeds are used. Meanwhile, if you look at their PC motherboards, they _did_ have sockets for things where single-chip upgrades would actually make sense (the expansion ROMs).
Also I'm thinking it probably also helped that they could just make a bigger order for the same chip, which was already the cheaper chip, in order to get a better price per chip and also sell more of them.
@Adrian It would be fascinating to see if you could do a show about the IBM PGC graphics adaptor? It seemed to have been a little bit of a beast, back in the day!
Basically, the EGA/VGA card has a 32-bit memory interface. So all eight the 4416 chips make up one bank of 16K x 32. The processor interface presents the RAM as 16K x 8, though, so there needs to be some magic that expands/reduces the 8-bit processor bus to/from the 32-bit memory bus. This is where the complexity, but also the performance optimization possibilities of EGA 16-color graphics drivers lie. In 16-color modes, the 32 bits are in fact divided into 4 planes of 8 bits each, and one way of accessing the memory is choosing to read/write only one of the four planes. In other modes, very different memory organizations are used, but thinking of the 32-bit bus being divided into 4 "planes" of 8 bits makes sense in most modes. The EGA LSIs are able to access 4 banks of 16K x 32, but not a single bank of 64K x 32. I don't think IBM did this to force customers into buying their memory expansion boards instead of just swapping chips, but just to (a) support a 16Kx32 configuration as affordable entry-level solution and (b) keep complexity low by only supporting 16Kx32 banks. Fun fact: The EGA card (with just 64K RAM) uses a weird addressing mode that remaps the 16K x 32 into 32K x 16 for the 640x350 mode, as that mode has too many pixels for the 16K address space. Using a virtual x16 instead of x32 organization means you get two virtual planes from four physical planes, and this limits the number of colors to four.
You'll be surprised what people will do these days hell there is some Russian modders that have upgraded the vram on RTX cards. There should still be a video somewhere here on YT of a 2070 or a 2080 where they went through the whole process doubling the total memory. As for much older cards there is no vbios the way modern users have come to expect so everything is hardware timings.
Both are technically correct as the address lines are asserted first, and then either the RAS or CAS is strobed to put those address lines in their respective latches, so the address inputs are available for further use.
looking at the schematic, it won't be a trivial upgrade to 4464... you would need to combine the card's column select signals CAS, CAS1, CAS2, CAS3 into single CAS and two column address bits A0+A7 to make it work with 4464 chips. A0 and A7 are ignored by 4416 on CAS , that's why the card has CAS for onboard memory and CAS1/2/3 for the expansion card (expansion card has 48K per bank and is NOT overlapping the 16K per bank onboard memory when installed).
Nice work - I'll have to give the heatgun trick a try when I next have to recap a PC motherboard. I'm even more curious about that ARCHE 386 "For British Rail Local Systems" -- I never expected to see that. Do you know the story behind that motherboard?
I wonder if these DRAMs have automatic memory address increase on reads and writes so you don't have to repeat RAS or CAS and it expects the roll over 2 bits earlier?
No. You have to feed them in each time. One thing you can do is page mode, you can hold the Row Address (here the lower 8 address bits) and and change the column address.
If the PCB was designed before the newer ICs' with the extra bits was even invented, I guess the extra lines wouldn't have even been laid-out, ie, it might need extra connections.
Looking at the schematics for the IBM EGA Video Card there is pin 50 on the expansion connector called MEMOPT that is active low (it's pulled up high by a resistor on the EGA card PCB) so perhaps grounding this pin would allow the 256K to be properly seen from the on-board sockets. Do not hurt to try I suppose. Worse case it just wouldn't work. I don't see how it cause any damage to the board. It goes to a 74LS151 multiplexer so with MEMOPT pulled high, looks like PGSEL and A16 never become part of the picture so that might help open up addressing the extra memory.
Faster memory is almost *never* a problem. It defines the upper limit on speed, but you can always run it slower. The only time it’s a problem is when the data bus requires the memory to have some kind of propagation delay.
If I had to guess, and I mean, I don't really have any other options, but doesn't the add on board allow for more concurrency between the ram chips? Using denser chips wouldn't provide this advantage.
Glad I watched this video, I was struggling to other day to remove an IC because of solder on the top side of the PCB. Never thought to use a heat gun. Out of curiosity, what temperature did you use?
It looks like I'm not the only one who has some trouble with the Hakko xD It makes a world of difference for this kind of job, but it certainly isn't perfect.
Maybe a silly question but rather than spending lots of time de-soldering all of the RAM chips could you have not just swapped out 1 (or 2 if they need to be in pairs) and tested it to see if it detected the extra RAM?
The fact that IBM designed in that expansion slot was a good indication that it wouldn't work. Perhaps at the time the board was designed there was no indication that a higher density version of those chips would ever be available. However, there still may be a way to expand the board without the expansion board, with a bit of bodging. Solder stacks of the 16k ram chips on top of each other to make a 4 deep sandwich. Bend out the CAS and RAS leads of the upper 3 chips. Now wire up all of the RAS and CAS lines of the new chips to connections that go to the expansion slot connector (a study of the schematics for the EGA card and the expansion card will be necessary to figure this out). My bet is that the address and data lines of all the chips are wired together, but the RAS and CAS lines go to separate outputs. Probably not worth the time to do such a bodge, You'd be better off using KiCad to design your own expansion board and then go to one of the off shore PCB houses to have it made. Oh well .....
I'd guess that either the RAM chips existed but were much more expensive than doubling up, or that the chips available didn't have enough drive capacity and thus the EGA board has buffers.
I agree that your results imply that the two address lines are just floating during CAS. Strange that they would have done that, since they are driven during RAS. I don't think the 64Kx4 chips existed at the time the EGA card was designed, or they would have supported them, unless of course they wanted to charge a higher price for a daughter board. I guess another possible explanation is that when the card's firmware checks the installed RAM, it gets a result that is not expected, and sets some register incorrectly.
It's also possible that the 64k was more expensive than the equivalent number of 16k chips. Or they might have not had the space for a handful of extra decode chips.
Adrian.......last night I was looking at my old 386. On the back was a sticker with "the computer zone Portland Oregon" printed on it...ever heard of them?
One thing I had to learn the hard way, if the onboard RAM chips are socketed, the memory expansion board won't fit any more because of the extra height ...
i love seeing you doing testing swapping ram chips out i think it lsi chip that doesnt support it "under or above ram long chip" if u happen find other long chip try swapped it out it may do something better im not sure but i did seen find someone done it before on c64 swap on video card worked but i cant say what one will or will not i recommended giving it try because you got skills todo it
what if you try to tie those two unused pins to ground with a 10k pulldown, it shouldn't effect the pins when they are driven, but pull them to 0 when they are not.
Just speculating with simple logic here but, if it were possible to do a RAM upgrade with just replacing the IC's there would have been sockets there. Is there a photo of the original memory upgrade card? Maybe there was something else on that board that made the addressing possible.
The schematics found here: minuszerodegrees.net/oa/OA%20-%20IBM%20Enhanced%20Graphics%20Adapter.pdf shows that itwas not designed to take advantage of a 64k*4 dram chip, as the 2 MSB for the CAS are decoded in individual CAS lines (ACAS0-3 and BCAS0-3), ACAS0 and BCAS0 being used on the internal memory and ACAS1-3 and BCAS1-3 used on the extension card.
Adrian if you want one of those EGA memory boards I have maybe one or Two NOS IBM ones left. I got a large lot of them from Computer Reset. Feel free to PM me or maybe I'll try sending you an email
Sorry to ask unsolicited, but I figured it was worth trying. If you're interested in selling one, I'd be super keen! Happy to pay whatever postage is to Australia.
There was that one EGA card with composite, but it only outputs monochrome composite, which sucks. Maybe somebody could rig up an EGA to color-composite adapter? Then there could be an EGA Composite + NEC V30 patch for the legendary 8088 MPH demo~
Check Michael Hill's comment! Now... If only you could stick in Static RAM in the Dynamic RAM's place. You'd need to completely hack apart the memory controller though.
Well in hindsight it's obvious why it didn't work. The chipset needs to decode those lines in order to support the extension board. So whenever it attempts to access the extra RAM it'll de-chip-select the chips on the main card.
Here's the doc if anyone wants to go down the rabbit hole deeper. minuszerodegrees.net/oa/OA%20-%20IBM%20Enhanced%20Graphics%20Adapter.pdf Looking at the expansion diagram, for sure it's got separate RAS/WE lines for each of the 4 extra sections of 4416 x 6. Will need an extra inverter chip to calculate the WEs.
I can take hi-res photos of mine showing better detail on the chips - I've got a VRAM expansion board on my EGA adapter (the 7552 "Gearbox" I have came that way) and a separate VRAM board.
Would even the extended memory allow access to all the 64 colors the board could technically produce? I've heard the maximum is a palette of 16 colors that can be selected out of the 64. A linear 64 color mode would have been great to have then.
IBM designed the card so you had to buy their expansion board. Shocker, I know. 🙄 Still, useful information. I have a 5170 with that exact card installed. 64k video ram it is, then.
I believe the issue is with the refresh. Since the original dram chips were 150 and the replacement chips were 120 and 100 respectively, I think the replacements are simply not being refreshed in time and are losing their contents.
Nope. You can easily take faster chips, they are even capable of working with less refresh. The problem has to do with unconnected address or [RC]AS-lines on the chips themselves. Some bodgewires to the 50pin header should do the trick.
I'm curious if you tried the card without any RAM chips, because with the bigger chips the stuff that showed on screen looked just like having no RAM. It would be useful to know if the results are similar.
Wonder where do the pins from that connector actually go/connect? I remember seeing some motherboard with memory chips stacked one on top of another, like two layers of chips. Wonder if this would work here, in case the connector pins actually go to the memory chips pins directly rather than to those LSI chips.
It wouldn't surprise me if IBM intentionally tied the ability to detect the card expansion to allowing the additional RAM. Gotta sell more memory from IBM.
It's possible. The memory did not look "random" in the sense that it's reading random junk. It's random yes, but it's the same randomness meaning that the memory is consistent. It may be that the write timing is off, so the card can't write to the memory correctly. Perhaps it delays the introduction of the data too long, and faster memory snarfs up the data bus's data before it's ready.
socketed chips allowing for ram upgrade by replacing chips with chips by a third party would have killed the ability for IBM to sell the ram upgrade card there is no way they'd allow that
Was going to post just that. It's a nice idea, that the end user could just upgrade the card. But then IBM wouldn't make any money. And they aint having that! ^-^ I remember i had a guy come into our store and pay me my hourly rate to remove the ram chips from a PC-JR memory expansion card and install sockets. Then put in higher capacity chips (i made him sign a waver, that was a LOT of de soldering, and the chance for hidden damage was just to high for me to rick it). Worked like a champ, since the higher capacity PC-JR memory adapter did exactly that! Same PCB, same enclosure, everything. The cheap one just came with soldered in chips, and the average user isn't going to be de soldering and re soldering all those chips. Although in IBM's defense, not including sockets did lower the cost of the expansion module by a few bucks.
I'm curious what would happen if you lifted those two pins on each memory chip to make it behave like the smaller chip and see if that works at all. Maybe it's still a timing issue or RAM compatibility issue.
Its your timing… 170ns is pretty slow.. would explain the change between the two sets that you installed. So it might be possible to upgrade it using slower ram. Especially if it is d ram. Every time you change something in memory the entire chip has to be refreshed. This refresh cycle has to match whatever device is doing the refresh.
I never had a problem with DRAM being too fast then. The refreshes were much closer together than they actually needed to be, and DRAM doesn't mind being clocked slowly even if it's capable of operating much faster. The only time it mattered is when someone was trying to push the envelope with wait states or by increasing the time between refreshes (you can do this with software and get a noticeable performance boost, but it's easy to take it too far and end up with a thoroughly crashy system).
@@mal2ksc most memory from 83-85 was pretty bad. I am forming my hypothesis based on the difference of the screen corruption. Only common denominator is the timing… have you tried 32k? Does 32k get you video?
IBM всегда делали заморочки, чтобы их нельзя было обойти, у меня до сих пор лежит плата для которой у меня нет цпу, а с другими она отказывается работать! это и есть IBM!
Why was the RAM expansion this 'big'? I mean: The card can display 16 colors in 640x200. And 640x350 would need less than double the RAM. So why does the expansion actually increase the RAM size by 4 times? What is the rest good for? I don't think they'd have wasted the RAM chips just like this, as RAM of course was ridiculously expensive then..
Just glanced at the schematic for the card and memory expansion. It looks like pin 50 on the expansion connector is called MEMOPT . On the expansion card that pin is tied to ground. It may be as simple as grounding that pin 50 so it thinks it has the memory card.
That's what I wondered, if there was simply something that needed linked out on the expansion connector. Seems like i was right, hopefully it pans out
@Mr Guru there are 2 by 8 bit latches on the schematic, one fed with 8 bits but the other is fed with 6 bits and 2 bits grounded, from here on the pcb will not address 64k chips additional space. from the LSI it only addresses ram with 8 bits and 6 bits (ras cas)
Follow-up, follow-up!
@Mr Guru it wont work that way.. in addition you would need to combine the 4 separate CAS signals into one CAS and column address bits A0 and A7, to make it work with 4464.
@Mr Guru the point was to use 4464 chips. also it would make no sense to design a new board with 24 pieces of 4416 chips if you can make it with only 8 4464 chips (less complexity , cheaper...etc..) ... and we're back to the need of re-arranging CAS and addressing as i mentioned earlier ;)
FWIW, the summary answer (which is basically in the thread started by Michael Hill) as to why this didn't work is on sheet 3 of the EGA schematic; there are a series of LS374 latches which do the multiplexing for the 16 bit (MA0->MA15) display address generator, and you can see that A14 and A15 aren't fed into the CAS latches; they have two input pins grounded. Therefore the full 16 bit address will never make it to a 4464 plugged into the sockets on the board.
You could try pulling MA14 and MA15 to those inputs on the latch inputs after freeing them up from ground, but you'll then need to outsmart the LSI sequencer that uses those signals to generate the CAS/RAS signals for chips on the expansion connector so cycles intended for those banks activate the onboard chips (at the appropriate addresses) instead. Maybe you could piggyback a GAL somewhere on the board that has the alternate RAS/CAS and A14/15 signals as inputs and switch them accordingly. It also looks to me like you'd need to mess with the bus interface circuitry on pages 4 and 5 so memory read/writes from the computer bus are handled correctly. In short this is probably "doable" but it'll take some pretty significant hackery.
Per other comments in that thread I am mildly surprised the 4464s didn't work at all; if those two bits of CAS are tied low consistently then I'd think the chip would effectively just act like a 4416. I kind of wonder if there's an opportunity for those to float in the computer bus address side of the house, that part of the schematic gives me a headache. This might cause writes to go to a different part of the chips than reads?
Honestly, I secretly knew this wouldn't work because if it had, this would have been on the main channel.
I had a hunch, still enjoyed it though! ;-)
even if it had worked, it would still be here. He said he was done on the main channel. Any minor tweaks or upgrades would be here.
@@rockapartie Don't read the comments before watching if you don't want spoilers
So tempted to look at the comments on this one and so glad I didn't until I got to the end of the video 😁
Sometimes the fun is in the journey - and this was useful to know!
I love videos like this. Modding hardware to try and get it to do things it wasn't originally designed to do.
This is a perfect second channel video! This is content that many of us love, but a wider audience might not like too much, so with the second channel you can hit a targeted expert audience! Great job Mr. Black! Keep the tinkering coming!
I do like the glitched text mode state, as it shows a little how the hardware does the cursor and blinking stuff!
Maybe you could try feeding the extra address lines from the expansion header via a couple of bodge wires? No idea if that’s something that could work, but it’s easy to try if you have the pin outs.
The card would have some rom which would also likely need to be modified. So while doable it doesn't make sense to pursue may as well engineer a card from scratch.
@@metatechnologist : Higher capacity was usually provided by a complete expansion card, so I doubt that a ROM swap is relevant.
Cant. The same pins that do the RAS do the CAS. So no physical modification at the memory would help. Now there might be a way to route signals BEFORE the latches, but i dunno. Seems to make more sense to just try and get the actual expansion board.
After all, he is usually going on and on about keeping things "authentic!" (See the PC-AT repair series! ^-^)
@@jeromethiel4323 Exactly. Their comes a point where you just start over and engineer a new board lol.
I guess the expansion header has different RAS/CAS signals for the 3 extra banks. Soldering 4 RAM chips on top of each other and bending the RAS/CAS pins up and wire them to the expansion header might do the trick.
This man's out here travellin' Silicon Trails like they used to back in the old days!
Bugger, I had the same thought of upgrading the RAM on the card when you first showed it in the 5170 video. Glad you tried it out and shame it doesn't allow such a thing
I hope you keep working on upgrading this card's memory! I'm super interested now, and would love to see another video!
Yup, as the expansion board also uses 4416, there is no way of mapping the extra CAS lines but using the extension's adressing signals ACAS1-3 and BCAS1-3 and gate those in to the new chips.
That still doesn't explain why the video board isn't writing to the ram correctly. Display looks like uninitialized ram.
The ram is upwardly compatible, right?
@@williammentink Since it expects 150ns RAM the refresh is probably too slow for the 100ns RAM and it loses its contents. Most likely the pattern will be random if you power cycle it.
You could double check the board for hidden/unpopulated dip-switches that select the memory configuration.
They could appear as places where a jumper wire could be installed. Often the would be silkscreened as something like "jp1"
For those who don't know what bitplanes are, it means that each *bit* of video memory gets its own entire *byte* in the memory map, so that you don't have to do bitwise shenanigans to set individual pixels.
It's also not contiguous (RGBIRGBIRGBI...), rather its split up such that each component of a pixel has its own plane (like RRR...GGG...BBB...III...).
This makes some operations quicker (say, setting single pixels, which is what an unoptimized graphical routine might do)
but makes other operations slower (blitting takes more operations than if pixels were packed).
Nice Video. I do not have a card like that to test this too :(
Check if the extra address line on the memory chips is routed on the PCB to the main chips.
Would be probably floating as this did not work.
Then maybe there is this line going from the main chip to the expansion slot.
I actually enjoy this second channel more :)
Not seen one of these for many years. Back when I started working in electronics one of my 1st jobs was working at an electronics subcontractor that built a bunch of IBM stuff. My job was to fix the boards that failed functional test. They were good days.
There's a thread on twitter by either Foone Turing or TubeTime, where you can install a few switches to switch the 4 colour palette used in the full 480 mode, they go pretty deep into the schematics and discuss a lot of the tech involved, might find a few interesting things there!
I would've thought software could change it directly. In the 16 color mode can't software redefine the palette using any of the 64 colors the output supports?
@@eDoc2020 Indeed. EGA software can choose any 4 of 64 colors in all 4-color modes. But as the IBM EGA monitor is limiting itself to 16 colors in "mode 1" (200 lines, CGA compatible timing), you only get to see any 4 out of 16 colors in the CGA 320x200 4-color mode, but you are able to get any 4 out of 64 colors in 640x350.
If EGA offered a 320x350 mode (which would have a weird aspect ration), it could display that at 16 out of 64 colors with just 64KB of RAM installed.
Even though it did not work is was fun to try.
I love your channel so much, never change
That 150 ns memory spec might be very important here. There is such a thing as too fast of a memory. Seen this problem quite a few times in arcade repair. They had different speeds for a reason. Some places you cannot just swap memory types (like you can do with modern computer RAM these days).
I love to see Adrian doing some de-soldering/soldering work..
That Phoenix BIOS screen brought back a lot of memories :-)
Thanks for trying, cool experiment. glad you knew what to do with the sockets. Nice job on the soldering/de-soldering.
I don't need sleep I need answers.
Thanks for the great videos!
The idea of the expansion module was probably intentional, to prevent clever users from doing the exact upgrade you are doing right now, but instead, force them to purchase the expansion board from IBM.
Yeah, IBM never was that person friendly. Their first and foremost line of sales was/is business, where these hacks are not preferred, they just buy the expansion or new cards when needed both for simplicity and warranty.
Expansion boards are also a "cleaner" upgrade route when they're available, since they can ensure that only the correct speeds are used. Meanwhile, if you look at their PC motherboards, they _did_ have sockets for things where single-chip upgrades would actually make sense (the expansion ROMs).
Also I'm thinking it probably also helped that they could just make a bigger order for the same chip, which was already the cheaper chip, in order to get a better price per chip and also sell more of them.
Your channel is really inspiring. Congrats for showing a failed experiment, I knew people who wouldn't post something that hasn't worked.
@Adrian It would be fascinating to see if you could do a show about the IBM PGC graphics adaptor? It seemed to have been a little bit of a beast, back in the day!
Basically, the EGA/VGA card has a 32-bit memory interface. So all eight the 4416 chips make up one bank of 16K x 32. The processor interface presents the RAM as 16K x 8, though, so there needs to be some magic that expands/reduces the 8-bit processor bus to/from the 32-bit memory bus. This is where the complexity, but also the performance optimization possibilities of EGA 16-color graphics drivers lie. In 16-color modes, the 32 bits are in fact divided into 4 planes of 8 bits each, and one way of accessing the memory is choosing to read/write only one of the four planes.
In other modes, very different memory organizations are used, but thinking of the 32-bit bus being divided into 4 "planes" of 8 bits makes sense in most modes.
The EGA LSIs are able to access 4 banks of 16K x 32, but not a single bank of 64K x 32. I don't think IBM did this to force customers into buying their memory expansion boards instead of just swapping chips, but just to (a) support a 16Kx32 configuration as affordable entry-level solution and (b) keep complexity low by only supporting 16Kx32 banks.
Fun fact: The EGA card (with just 64K RAM) uses a weird addressing mode that remaps the 16K x 32 into 32K x 16 for the 640x350 mode, as that mode has too many pixels for the 16K address space. Using a virtual x16 instead of x32 organization means you get two virtual planes from four physical planes, and this limits the number of colors to four.
I didn’t expect this to work as even a video card has its own BIOS where it’s expecting memory to be arranged in a particular fashion.
You'll be surprised what people will do these days hell there is some Russian modders that have upgraded the vram on RTX cards. There should still be a video somewhere here on YT of a 2070 or a 2080 where they went through the whole process doubling the total memory. As for much older cards there is no vbios the way modern users have come to expect so everything is hardware timings.
An "easy upgrade for an EGA card" is called a VGA card. Zero soldering, plus available monitors are cheaper and more plentiful. :)
Every data sheet for dram I’ve read has referred to those as Row Address _Strobe_ not Select. Same for Column.
Both are technically correct as the address lines are asserted first, and then either the RAS or CAS is strobed to put those address lines in their respective latches, so the address inputs are available for further use.
Awesome! I love these kind of experiments.
Midnight upload? NICE
looking at the schematic, it won't be a trivial upgrade to 4464... you would need to combine the card's column select signals CAS, CAS1, CAS2, CAS3 into single CAS and two column address bits A0+A7 to make it work with 4464 chips. A0 and A7 are ignored by 4416 on CAS , that's why the card has CAS for onboard memory and CAS1/2/3 for the expansion card (expansion card has 48K per bank and is NOT overlapping the 16K per bank onboard memory when installed).
Nice work - I'll have to give the heatgun trick a try when I next have to recap a PC motherboard. I'm even more curious about that ARCHE 386 "For British Rail Local Systems" -- I never expected to see that. Do you know the story behind that motherboard?
Just found your second channel, same solid stuff as on the main channel :)
very good explanation, maybe in future try this on my C128 :-)
What software could use it? The various versions of GEOS specifically for C128 mode?
I was running Sim City on my Hyundai Super 16V Turbo XT (10 Mhz, 640kB RAM) with ATI EGA Wonder 256 kB.
The C128 had a 3rd party upgrade you could plug into the 80-column section to do that memory upgrade (giving it the video memory of the C128D).
First thing I thought went back to my C-64 days: *Chip Stacking*
Did it with a few Commodore REU's (1750's)
you could try using the top two with original ram and the mix the outer.
That's probably one of the last ever systems that had "British Rail" in their boot messages.
I wonder if these DRAMs have automatic memory address increase on reads and writes so you don't have to repeat RAS or CAS and it expects the roll over 2 bits earlier?
No. You have to feed them in each time. One thing you can do is page mode, you can hold the Row Address (here the lower 8 address bits) and and change the column address.
If the PCB was designed before the newer ICs' with the extra bits was even invented, I guess the extra lines wouldn't have even been laid-out, ie, it might need extra connections.
I'd assume the bits had been allocated, but they didn't bother allocating them because of the expansion board.
"probably hard to find" understatement of the century... The addon card is almost impossible to find and sells for ludicruous amounts when it pops up.
I like the thinking here. Wonder how the piggy-back board alerts the EGA card to it's presence?
I think he mentioned it didn't have any extra sense pins present, but maybe it does it based on current draw or another circuit.
Looking at the schematics for the IBM EGA Video Card there is pin 50 on the expansion connector called MEMOPT that is active low (it's pulled up high by a resistor on the EGA card PCB) so perhaps grounding this pin would allow the 256K to be properly seen from the on-board sockets. Do not hurt to try I suppose. Worse case it just wouldn't work. I don't see how it cause any damage to the board. It goes to a 74LS151 multiplexer so with MEMOPT pulled high, looks like PGSEL and A16 never become part of the picture so that might help open up addressing the extra memory.
_Adrian, perhaps you could locate and try a set of 64x4 chips running at 150 ns._ 🤔
Faster memory is almost *never* a problem. It defines the upper limit on speed, but you can always run it slower. The only time it’s a problem is when the data bus requires the memory to have some kind of propagation delay.
Here are some 464-15 RAM chip part numbers: HM50464P-15, MB81464-15, D41464C-15, TMS4464JL-15, TMS4464NL-15
I wonder if the dip switches might control memory somehow?
I was thinking the same thing. Or a jumper setting somewhere.
If I had to guess, and I mean, I don't really have any other options, but doesn't the add on board allow for more concurrency between the ram chips? Using denser chips wouldn't provide this advantage.
Glad I watched this video, I was struggling to other day to remove an IC because of solder on the top side of the PCB. Never thought to use a heat gun.
Out of curiosity, what temperature did you use?
Adrian has another video explaining this method:
th-cam.com/video/XQVjwPsVFd8/w-d-xo.html
It looks like I'm not the only one who has some trouble with the Hakko xD
It makes a world of difference for this kind of job, but it certainly isn't perfect.
The incredible machine looks like it could be high rez ega.
Maybe a silly question but rather than spending lots of time de-soldering all of the RAM chips could you have not just swapped out 1 (or 2 if they need to be in pairs) and tested it to see if it detected the extra RAM?
You should develop a PCB layout that people could use to solder there own memory expansion add-on card.
The fact that IBM designed in that expansion slot was a good indication that it wouldn't work. Perhaps at the time the board was designed there was no indication that a higher density version of those chips would ever be available. However, there still may be a way to expand the board without the expansion board, with a bit of bodging. Solder stacks of the 16k ram chips on top of each other to make a 4 deep sandwich. Bend out the CAS and RAS leads of the upper 3 chips. Now wire up all of the RAS and CAS lines of the new chips to connections that go to the expansion slot connector (a study of the schematics for the EGA card and the expansion card will be necessary to figure this out). My bet is that the address and data lines of all the chips are wired together, but the RAS and CAS lines go to separate outputs. Probably not worth the time to do such a bodge, You'd be better off using KiCad to design your own expansion board and then go to one of the off shore PCB houses to have it made. Oh well .....
I'd guess that either the RAM chips existed but were much more expensive than doubling up, or that the chips available didn't have enough drive capacity and thus the EGA board has buffers.
I agree that your results imply that the two address lines are just floating during CAS. Strange that they would have done that, since they are driven during RAS. I don't think the 64Kx4 chips existed at the time the EGA card was designed, or they would have supported them, unless of course they wanted to charge a higher price for a daughter board. I guess another possible explanation is that when the card's firmware checks the installed RAM, it gets a result that is not expected, and sets some register incorrectly.
It's also possible that the 64k was more expensive than the equivalent number of 16k chips. Or they might have not had the space for a handful of extra decode chips.
11:47 ibm ega card for smash?
Adrian.......last night I was looking at my old 386. On the back was a sticker with "the computer zone Portland Oregon" printed on it...ever heard of them?
I love the speeded up audio of the desoldering station, sounds like a pig "Oink Oink" one chip removed ...
What about teh jumper settings on the front of the cart?
One thing I had to learn the hard way, if the onboard RAM chips are socketed, the memory expansion board won't fit any more because of the extra height ...
Did you check the vbios I’m sure there would of been something on the upgrade card the bios is looking for
i love seeing you doing testing swapping ram chips out
i think it lsi chip that doesnt support it "under or above ram long chip" if u happen find other long chip try swapped it out it may do something better im not sure but i did seen find someone done it before on c64 swap on video card worked but i cant say what one will or will not i recommended giving it try because you got skills todo it
what if you try to tie those two unused pins to ground with a 10k pulldown, it shouldn't effect the pins when they are driven, but pull them to 0 when they are not.
nice video ,umm you can only try to find info on how the expansion card work and try to build one yourself :) maybe it can be fun,
Just speculating with simple logic here but, if it were possible to do a RAM upgrade with just replacing the IC's there would have been sockets there. Is there a photo of the original memory upgrade card? Maybe there was something else on that board that made the addressing possible.
Strange that it didn't work. Would the card leave the four address bits just float? Looks like unitialized ram.
The schematics found here: minuszerodegrees.net/oa/OA%20-%20IBM%20Enhanced%20Graphics%20Adapter.pdf
shows that itwas not designed to take advantage of a 64k*4 dram chip, as the 2 MSB for the CAS are decoded in individual CAS lines (ACAS0-3 and BCAS0-3), ACAS0 and BCAS0 being used on the internal memory and ACAS1-3 and BCAS1-3 used on the extension card.
Curious what my 1MB vga/ega card is using when in ega mode.
Adrian if you want one of those EGA memory boards I have maybe one or Two NOS IBM ones left. I got a large lot of them from Computer Reset. Feel free to PM me or maybe I'll try sending you an email
Sorry to ask unsolicited, but I figured it was worth trying. If you're interested in selling one, I'd be super keen! Happy to pay whatever postage is to Australia.
14:11 something is running on the black screen part
British Rail ROMs? interesting did you get the MOBO from the UK?
I recall him getting this Mobo from a viewer in the UK in a past Midweek Mini Mail call.
Checkit is useless for identifying VGA RAM sizes above 256k. That and any ATI card up to PCI is very often (always?) misreported as 256k.
There was that one EGA card with composite, but it only outputs monochrome composite, which sucks. Maybe somebody could rig up an EGA to color-composite adapter?
Then there could be an EGA Composite + NEC V30 patch for the legendary 8088 MPH demo~
the additional pins might be grounded, or floating as you say
I found an old 160k vga card with 4md installed, can this run on an XT system? people say I need to install a 16-bit CPU to make it work?
Even though the 8088 has an 8 bit core, it has 16 bit addressing so I figure it would work. In any case, it won't hurt anything to try it
I'm still looking for an IBM EGA monitor
Check Michael Hill's comment!
Now... If only you could stick in Static RAM in the Dynamic RAM's place. You'd need to completely hack apart the memory controller though.
Well in hindsight it's obvious why it didn't work. The chipset needs to decode those lines in order to support the extension board. So whenever it attempts to access the extra RAM it'll de-chip-select the chips on the main card.
Build youself a breadboard, socket board. Find out what the pinout is and tap into the expansion board.
It's confused as to the addressing of the chips.
Here's the doc if anyone wants to go down the rabbit hole deeper. minuszerodegrees.net/oa/OA%20-%20IBM%20Enhanced%20Graphics%20Adapter.pdf
Looking at the expansion diagram, for sure it's got separate RAS/WE lines for each of the 4 extra sections of 4416 x 6. Will need an extra inverter chip to calculate the WEs.
I can take hi-res photos of mine showing better detail on the chips - I've got a VRAM expansion board on my EGA adapter (the 7552 "Gearbox" I have came that way) and a separate VRAM board.
Would even the extended memory allow access to all the 64 colors the board could technically produce? I've heard the maximum is a palette of 16 colors that can be selected out of the 64. A linear 64 color mode would have been great to have then.
Why at 8:09 he decided to play a tablet stand on the board?
IBM designed the card so you had to buy their expansion board. Shocker, I know. 🙄
Still, useful information. I have a 5170 with that exact card installed. 64k video ram it is, then.
Maybe modify the ega bios?
I believe the issue is with the refresh. Since the original dram chips were 150 and the replacement chips were 120 and 100 respectively, I think the replacements are simply not being refreshed in time and are losing their contents.
Nope. You can easily take faster chips, they are even capable of working with less refresh. The problem has to do with unconnected address or [RC]AS-lines on the chips themselves. Some bodgewires to the 50pin header should do the trick.
@@dolphhandcreme : Unconnected address, though it's possible that the chips can't drive that much capacitance directly.
I'm curious if you tried the card without any RAM chips, because with the bigger chips the stuff that showed on screen looked just like having no RAM. It would be useful to know if the results are similar.
Wonder where do the pins from that connector actually go/connect? I remember seeing some motherboard with memory chips stacked one on top of another, like two layers of chips. Wonder if this would work here, in case the connector pins actually go to the memory chips pins directly rather than to those LSI chips.
It wouldn't surprise me if IBM intentionally tied the ability to detect the card expansion to allowing the additional RAM. Gotta sell more memory from IBM.
Going by some of the VHS tapes, and printed manuals IBM produced for service techs at the time, I have to agree with this one.
Say, how are those Hakko desoldering guns? I'm thinking one might be a solid upgrade from my well-used Soldapullt.
Could the speed of the ram be at least part of the problem?
It's possible. The memory did not look "random" in the sense that it's reading random junk. It's random yes, but it's the same randomness meaning that the memory is consistent. It may be that the write timing is off, so the card can't write to the memory correctly. Perhaps it delays the introduction of the data too long, and faster memory snarfs up the data bus's data before it's ready.
socketed chips allowing for ram upgrade by replacing chips with chips by a third party would have killed the ability for IBM to sell the ram upgrade card there is no way they'd allow that
Was going to post just that. It's a nice idea, that the end user could just upgrade the card. But then IBM wouldn't make any money. And they aint having that! ^-^
I remember i had a guy come into our store and pay me my hourly rate to remove the ram chips from a PC-JR memory expansion card and install sockets. Then put in higher capacity chips (i made him sign a waver, that was a LOT of de soldering, and the chance for hidden damage was just to high for me to rick it).
Worked like a champ, since the higher capacity PC-JR memory adapter did exactly that! Same PCB, same enclosure, everything. The cheap one just came with soldered in chips, and the average user isn't going to be de soldering and re soldering all those chips.
Although in IBM's defense, not including sockets did lower the cost of the expansion module by a few bucks.
Have any of you ever seen PGA video card , i have never seen one for sale are a vid of it then again they did cost like 8000$ so i guess there rare.
I'm curious what would happen if you lifted those two pins on each memory chip to make it behave like the smaller chip and see if that works at all. Maybe it's still a timing issue or RAM compatibility issue.
Its your timing… 170ns is pretty slow.. would explain the change between the two sets that you installed. So it might be possible to upgrade it using slower ram. Especially if it is d ram. Every time you change something in memory the entire chip has to be refreshed. This refresh cycle has to match whatever device is doing the refresh.
I never had a problem with DRAM being too fast then. The refreshes were much closer together than they actually needed to be, and DRAM doesn't mind being clocked slowly even if it's capable of operating much faster. The only time it mattered is when someone was trying to push the envelope with wait states or by increasing the time between refreshes (you can do this with software and get a noticeable performance boost, but it's easy to take it too far and end up with a thoroughly crashy system).
@@mal2ksc most memory from 83-85 was pretty bad. I am forming my hypothesis based on the difference of the screen corruption. Only common denominator is the timing… have you tried 32k? Does 32k get you video?
Make sure the 256K sets are the same memory speed as the 64k chips. Even RAM chips of that kind has a speed.
I wonder if there is a way to update the firmware with the new memory address details?
IBM всегда делали заморочки, чтобы их нельзя было обойти, у меня до сих пор лежит плата для которой у меня нет цпу, а с другими она отказывается работать! это и есть IBM!
Why was the RAM expansion this 'big'? I mean: The card can display 16 colors in 640x200. And 640x350 would need less than double the RAM. So why does the expansion actually increase the RAM size by 4 times? What is the rest good for? I don't think they'd have wasted the RAM chips just like this, as RAM of course was ridiculously expensive then..