VOGONS


First post, by Overkill

User metadata
Rank Newbie
Rank
Newbie

I think I figured out the issue Emerson 500EC, 4412 and some other models have with the onboard IDE controller. I thought I'd share this here to save others some work. On these models data written to the HDD will be unreadable on other machines, and vise versa. The issue appears to be that bits 8-15 on the IDE connection flipped (pins 4 <-> 18, 6 <-> 16, 8 <-> 14, 10 <-> 12). The only reason it works at all is that IDE uses single byte command sent on bits 0-7. I have a small passive PCB that corrects this issue I designed and ordered. If it works, would anyone here be interested in one of the boards?

Reply 1 of 16, by Horun

User metadata
Rank l33t++
Rank
l33t++

I might be interested, do you have any theory as to why they flipped the data bits ?

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 2 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie
Horun wrote on 2024-01-17, 14:27:

I might be interested, do you have any theory as to why they flipped the data bits ?

Most likely easier trace routing, but it could have been a mistake, or they could have just not have realized it'd cause issues. The motherboard is from 1989. IDE was brand new and not even officially spec'd yet.
If the adapter board works, I'll mail you one of the extra PCBs. The boards will arrive in a month. Hopefully it'll work. I had to forgo length tuning and put the traces way closer than I'd like just to get something that'd fit. Once I have something I know works, I'll post the schematic, and Gerber files.

Reply 4 of 16, by jdmcs

User metadata
Rank Newbie
Rank
Newbie

I have an Emerson 500EC computer, and would be interested in one of the boards.

When I first ran into the issue of not being able to swap drives between computers, I thought it had to do with the overkill "security" features* of this computer: prevent someone from pulling the hard drive to read the data in another computer if they couldn't log into the 500EC. Reversing the data lines would be a free way to do it.

Then again, maybe this boils down to a simple goof in the board layout.

* The computer allows for up to 21 user "accounts" for booting the computer, and each user account can be restricted to which on-board peripherals can be used and whether they can boot from hard drive, floppy drive, or MS-DOS in ROM only. Note that I use security very loosely here, as the hash algorithm used is very weak (I can't recall off-hand if it is 1 or 2 byte hash).

I'm Justin D. Morgan, Host of Computerized Start™
If you use one of the photos I post on Vogons, I would appreciate being credited by name (Justin D. Morgan) instead of by user name. Thanks!

Reply 5 of 16, by rasz_pl

User metadata
Rank l33t
Rank
l33t

That is pretty hilarious. Good job figuring it out! Are they using IDE port in the Chips 82c601 or is PAL16L8 and U16/17 ls245s next to IDE port doing all the magic?
Btw what is the 54pin port next to SIMM slots for?

@jdmcs hah just watched your video on 500EC thanks to this thread 😀

Open Source AT&T Globalyst/NCR/FIC 486-GAC-2 proprietary Cache Module reproduction

Reply 6 of 16, by mkarcher

User metadata
Rank l33t
Rank
l33t
Overkill wrote on 2024-01-17, 15:18:
Horun wrote on 2024-01-17, 14:27:

I might be interested, do you have any theory as to why they flipped the data bits ?

Most likely easier trace routing, but it could have been a mistake,

Look at the ISA slot pin assignment: The data bits D0-D7 are layed out with the most significant bit towards the bracket. The data bits D8-D15 are layed out with the least significant bit towards the bracket. This pinout makes it likely this is an honest mistake.

Reply 7 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie

The PCBs arrived this weekend. I assembled a couple and they work! I have 7 extra blank PCBs, but no more right angle connectors. I'll have to order more. I'll throw the boards on eBay and sell them for $18. That'll cover my costs for the PCB, connectors, and shipping.

For those that are curious, the way I figured this out was I zeroed a drive, then wrote one file to it containing incrementing bytes (0x00-0xFF). I then pulled the drive, connected it to my laptop and imaged the drive into a file. Digging through the drive image with a hex editor, the first clue was the partition signature had 0x55, 0x55 instead of 0x55, 0xAA. Then when I looked at the file I wrote to the drive, I found every other byte had it's bits reversed. I followed the traces on the motherboard from the data lines on the IDE connector to U16 & U17, and checked continuity between the other side of those tristate buffers and the data line on one of the ISA connectors. Sure enough, D8-D15 were flipped.

Attachments

Reply 8 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie
rasz_pl wrote on 2024-01-31, 05:10:

That is pretty hilarious. Good job figuring it out! Are they using IDE port in the Chips 82c601 or is PAL16L8 and U16/17 ls245s next to IDE port doing all the magic?
Btw what is the 54pin port next to SIMM slots for?

@jdmcs hah just watched your video on 500EC thanks to this thread 😀

U16 & U17 are tristate buffers that connect the datalines on the IDE connector to the databus on the rest of the motherboard. They're doing all the magic. I'm not sure what that connector does. I haven't dug into it yet (I've only had this PC for a month and a half). I assume it's either a modem riser (based on the lines from it to an unpopulated RJ11 jack) or a programming connector for either the voice chip or PALs. Or it could have been used for factory testing.

Reply 9 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie
jdmcs wrote on 2024-01-29, 23:48:
I have an Emerson 500EC computer, and would be interested in one of the boards. […]
Show full quote

I have an Emerson 500EC computer, and would be interested in one of the boards.

When I first ran into the issue of not being able to swap drives between computers, I thought it had to do with the overkill "security" features* of this computer: prevent someone from pulling the hard drive to read the data in another computer if they couldn't log into the 500EC. Reversing the data lines would be a free way to do it.

Then again, maybe this boils down to a simple goof in the board layout.

* The computer allows for up to 21 user "accounts" for booting the computer, and each user account can be restricted to which on-board peripherals can be used and whether they can boot from hard drive, floppy drive, or MS-DOS in ROM only. Note that I use security very loosely here, as the hash algorithm used is very weak (I can't recall off-hand if it is 1 or 2 byte hash).

Your videos actually were the clue I needed that it wasn't just a problem with my Mac reading the file system. Thanks for that.

Reply 11 of 16, by darry

User metadata
Rank l33t++
Rank
l33t++

Adressing this issue in hardware is obviously preferable for day to day use ( data transfer), but if one dumps a raw image of a disk from the machine into a file (on a modern machine), using a script to flip the problem bits back and erite a new image should be possible, AFAIU.

Conversely, creating a normal disk image and flipping the bits while writing to a drive destined for the 500EC should also be possible, AFAIU.

Reply 12 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie
darry wrote on 2024-02-05, 14:41:

Adressing this issue in hardware is obviously preferable for day to day use ( data transfer), but if one dumps a raw image of a disk from the machine into a file (on a modern machine), using a script to flip the problem bits back and erite a new image should be possible, AFAIU.

Conversely, creating a normal disk image and flipping the bits while writing to a drive destined for the 500EC should also be possible, AFAIU.

Yeah, I considered solving it in software, or with a cable, but I wanted to learn kicad and layout a PCB. I hadn't laid out a board myself since college, this seemed like a good chance to play around with it. My end goal is to make an ISA card with 4x IDE controllers, 2x CF cards, 2x USB, ethernet, POST, power rail monitoring, 0-16MB (selectable) RAM, 8KB-16MB (selectable) flash for an option ROM, and 32KB EEPROM for board settings.

Reply 13 of 16, by darry

User metadata
Rank l33t++
Rank
l33t++
Overkill wrote on 2024-02-05, 22:27:
darry wrote on 2024-02-05, 14:41:

Adressing this issue in hardware is obviously preferable for day to day use ( data transfer), but if one dumps a raw image of a disk from the machine into a file (on a modern machine), using a script to flip the problem bits back and erite a new image should be possible, AFAIU.

Conversely, creating a normal disk image and flipping the bits while writing to a drive destined for the 500EC should also be possible, AFAIU.

Yeah, I considered solving it in software, or with a cable, but I wanted to learn kicad and layout a PCB. I hadn't laid out a board myself since college, this seemed like a good chance to play around with it. My end goal is to make an ISA card with 4x IDE controllers, 2x CF cards, 2x USB, ethernet, POST, power rail monitoring, 0-16MB (selectable) RAM, 8KB-16MB (selectable) flash for an option ROM, and 32KB EEPROM for board settings.

Please carry on doing $deity's work.

( Where $deity can be Flying Spaghetti Monster, if one is so inclined 😉 ).

Reply 14 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie

My order of more right angle connectors arrived today. I put these adapters up on eBay. I will solder them together and test them as people order them. https://www.ebay.com/itm/315148754054

Reply 15 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie

FYI: I had someone buy one for the Scott 2000SC12, and it worked for him. Apparently that computer uses the same motherboard as the Emerson models.

Reply 16 of 16, by Overkill

User metadata
Rank Newbie
Rank
Newbie

I wrote a small windows (32bit) program to swap the bits around on an image file so people with the adapter won't need to reinstall everything on their HDD/CF card or use floppy disks to transfer everything.

  1. DD the drive into a file.
  2. Run this windows program to convert the file.
  3. Then DD the file back onto the drive.

Attachments

  • Filename
    BitSwapper.exe
    File size
    48 KiB
    Downloads
    4 downloads
    File license
    Fair use/fair dealing exception