Post B6thCRYRtJyPE3nB6u by gloriouscow@oldbytes.space
(DIR) More posts by gloriouscow@oldbytes.space
(DIR) Post #B6tfSDVbgIjeO8rA6C by gloriouscow@oldbytes.space
0 likes, 0 repeats
Since I had so much fun analyzing the MC6845, I thought I'd take a look at another chip @infosecdj was kind enough to photo, the NEC µPD765 floppy disk controller.This was the controller in the original IBM PC.The first thing you notice is the absolutely enormous ROM taking up 1/3 of the chip.#retrocomputing
(DIR) Post #B6tfSDlCkJDDAW9cPY by gloriouscow@oldbytes.space
0 likes, 0 repeats
#retrocomputing It was known that the 765 has microcode - but that's an awful lot of microcode. 16,384 bits. That's more than an 8088. That seems suspiciously too much microcode!
(DIR) Post #B6tfSDxc0B8XmzxWka by linear@nya.social
0 likes, 0 repeats
@gloriouscow@oldbytes.space speculation without looking too closely: 8051, the microcode is elsewhere, and that's program ROM?
(DIR) Post #B6tgmjQsnanJ8zzd0y by gloriouscow@oldbytes.space
0 likes, 0 repeats
@linear 8051? in my 765?
(DIR) Post #B6tgmjZkGdspaU8hpQ by linear@nya.social
0 likes, 0 repeats
@gloriouscow@oldbytes.space good point
(DIR) Post #B6thCOgUYxcmK8X3jM by gloriouscow@oldbytes.space
0 likes, 0 repeats
#retrocomputing Here's where shit gets a bit weird. Over on the right, is the microcode address generator. The data bus feeds into it. The microcode is .... data-addressable?
(DIR) Post #B6thCOstopY6wcKy4O by gloriouscow@oldbytes.space
0 likes, 0 repeats
The ROM has 16 outputs. Each block of 8 outputs ties back to the data bus, D0-D7. Now that' an odd thing to do, isn't it?Except someone on Hackaday left an intriguing comment, 14 years ago:
(DIR) Post #B6thCP6izQbldUo0cS by gloriouscow@oldbytes.space
0 likes, 0 repeats
Well, that's certainly tantalizing. But it doesn't explain why the microcode address generator would take the data bus as input.Unless...there was more than microcode in there.I did say there was an awful lot of bits in there...
(DIR) Post #B6thCPKYA1fQKNH3AW by gloriouscow@oldbytes.space
0 likes, 0 repeats
My theory, and we'll see if this pans out. But just putting my bare-ass naked speculation out there into the world for what its worth.I think it has an MFM encoding table in there.
(DIR) Post #B6thCQsyNWnR9QO3Si by gloriouscow@oldbytes.space
0 likes, 0 repeats
When you send the 765 a byte to write to the floppy it has to convert that byte into an MFM bit sequence. Now, you could have a bunch of circuitry to calculate MFM bitstreams, or you could do like an emulator and just have a table.
(DIR) Post #B6thCRYRtJyPE3nB6u by gloriouscow@oldbytes.space
0 likes, 0 repeats
I was flip-flopping between it being a coding table and being microcode, because stuff didn't make sense either way.It's definitely microcode. And i know there's an initial 4 bit field.Because that field appears to select one of the 765's registers.Oh, right. Here's the 765's register file. 12 8-bit registers.