@argv_minus_one What I wanna know is if some poor bastard had the job of soldering these together for 8 hour shifts.
Author of MartyPC, a PC/XT/Jr/Tandy emulator
https://github.com/dbalsom/martypc
Web demo https://martypc.net
Author of Fluxfox, a Rust disk image library
https://github.com/dbalsom/fluxfox/
@argv_minus_one What I wanna know is if some poor bastard had the job of soldering these together for 8 hour shifts.
@argv_minus_one Yeah, this has "cost effective" written all over it. Just speculating here but I bet the dies used were identical, and they did something like blow a fuse late in the manufacturing process to bin the chips.
@mogul yes but can they show me relevant advertisements?
Its just delightfully goofy. Here we are in the silicon age, and yet sometimes the best technical solution at hand is to just physically stack shit on top of other shit.
The secret is that they are sold in pairs like this, and each chip is different. The top one has its Row Address Strobe (RAS) line on Pin 4, and the bottom one has it on Pin 3, and thus they can be addressed separately.
You might wonder how the hell this works. Every pin is soldered to the other pin. Wouldn't that make them respond to the same addresses?
Early models of the IBM AT had these.
One of my favorite technology quirks has to be stacked RAM modules.
@ApplesauceFluxes this one scares me
Something about this frozen food company's logo seems familiar
@crazyc That would be even easier.
POP CS will always have my heart
On reset, the 8087 doesn't drive the address lines, and the input status lines s0-s2 and qs0-1 are floating.
If i turn on the arduino's pull-up resistors, then those will all read as 1's.
Combine that with what should be a a inactive-low INT and BUSY pin, I guess that's good enough to assume I have an 8087.
I considered asserting the NMI line on pin 17, which is NC on the 8087, but simply noticing that the 8087 doesn't do anything in response to that doesn't differentiate it from say, a dead CPU.
The method that I have used before to detect a CPU is to reset it and then wait for the first queue flush that signals we have jumped to the reset vector.
But the 8087 's queue and bus status lines are *inputs* from the CPU's. So that doesn't work.
Assuming you have visibility of every single pin (because I do), how would you go about detecting that you've got an 8087 FPU from reset (vs, say, an 8088 or an 8086 in there)?
I only really learned about Fujinet from talks about it at VCF. But the part about doing it for the love of it is a good one.
There are a lot of people who are fascinated and appreciative that you did "retro thing X" without any plans to ever use your thing X.
Tons of people seem interested in MartyPC, very few people may ever use it. The whole reason I made the web version was because it was a lot easier to convince someone to click a link than it is to install and download something.
I'd like to look into support for Fujinet in MartyPC. I think it simply hasn't been on the PC world's radar.
@tschak Hey, you got me excited!
Sometimes I get disheartened when I post something cool and it seems like I get crickets in response. I wonder if you could reach out to any retro youtubers who could do a review?
@crazyc I was thinking about executing some illegal instruction and detecting interrupt 6. That could only be a 186 or a 286 at that point.