Why?

Recently, I acquired an embedded board containing a solid state disk. The embedded board I've used allowed me to write files to the disk, but I needed a tool that allowed me to completely format the solid state disk. The only way I could achieve this was to build a board that allowed me to mount the D.O.C 2000 on a normal PC.

Building your own

M-Systems had an ISA board, called the DIP Evaluation board (EVB), which does exactly what I needed, but costs a few hundreds dollars. As I was doing this for a hobby, I had no intention paying this sum for a very simple board, so I decided to build one myself. Since I had all sorts of old ISA cards I've decided to look for a card which could be modified into a functional D.O.C 2000 programmer.

Warning!!!

The following section requires hardware understanding and good hands!

Do you understand?

If you have never done any soldering before, think twice before you do this.

Are you still here?

Even if you have done soldering before, you will need here SMT soldering skills!!!

Are you sure you want to keep reading?

If you blow up your computer and/or your board and/or your D.O.C 2000, you're on your own.

Still crazy enough to try this?

Although I've tried to keep this document error free as possible, the fact is that this document was written, after I've finished building my board, so I can't verify everything I've written here by building another adapter, and I can't be 100% sure I haven't made any mistakes. In no way I will take responsibility for any damage you might do by following these instructions.

Use at your own risk!!!

Interfacing the D.O.C 2000

Before we present the board, let us start by understanding how the D.O.C 2000 works on a typical PC system:
From the system point of view, the D.O.C 2000 looks like a simple 8KByte read/write memory.
When the PC boots, the PC BIOS looks in certain memory area for expansion ROMs. These ROM are expected at predefined areas in the lower 1MB region, Which can be accessed by all 8 bit ISA cards. These ROMs are identified by a special signature found in the beginning of the ROM. Once this signature is found, the PC BIOS calls this ROM to initialize it.
The DOC-2000 works by presenting itself as an 8KByte expansion ROM during boot. Once the D.O.C-2000 ROM code is called, a BIOS expansion routine is installed at the top of the memory, and a new BIOS-level hard disk is added. In reality, this is not a hard disk, but a flash disk. The software driver installed by the boot ROM code maps the BIOS hard disk read and write operations into D.O.C 2000 operations. In order to access the flash memory inside the D.O.C 2000, the ROM area can also be written, both to select a page number (the D.O.C works using pages, like the old EMS memory found in pre-AT PC's).

The pinout of the D.O.C 2000 can be seen in the following diagram:

If we compare this with a typical 32KByte ROM, we will see the following differences:

Picking up a card

What I really needed was a simple ISA card which already contained an expansion ROM. I would then modify the card to provide a write signal which the typical expansion ROM didn't require.
There are two common types of PC cards with expansion ROMs: Network cards and SCSI cards. These cards usually supports booting the PC through SCSI and Ethernet, and so they require a ROM to hold the device drivers required.
I've looked through my arsenal of old PC card, and after looking at several network cards, I ended up choosing Seagate's ancient 8-bit SCSI controller, the ST-02. There are a few reasons why I've chosen this card:
  1. I had 2 of those.
  2. They were simple enough to modify.

What you would need

Here is a list of all the equipment you will need: Here is a picture of an original unmodified ST02 card (this is actually the other card that I haven't modified, as I've taken these photos after I've finished this work):

Original, unmodified ST-02 SCSI card.

Work Instructions

Here are the step-by-step instructions for modifying your ST-02 card:

Remove the original EPROM

You can save the original EPROM if you would like to restore your ST-02 into working order someday.

Here is a picture of the ST-02 without the EPROM:

An ST-02 card with the boot EPROM removed. Notice the notch in the front of the EPROM socket. This notch marks pin 1 of the socket. If you hold the card with the notch pointing up, pin 1 is the upper left corner, pin 14 is lower left, pin 15 is lower right, and pin 28 is upper right.
Also notice the 3 pin header in front of the notch. You will have to bend these slightly forward (or cut them out altogether) so that we can expand the EPROM socket by 2 more pin rows without being obstructed by these pins.

Disable the I/O signals

The ST-02 use the ISA memory space for it's expansion ROM, but also use some I/O addresses in the ISA I/O space for the SCSI and on-board floppy controllers. Since we don't want the ST-02 floppy controller to interfere with the PC's on-board floppy controller, we disable all I/O access to the card.
In order to do this, we need to block two ISA signals: /IOR and /IOW.
Fortunately, there is a very simple way to do this, as can be seen in the following picture:

Placing transparent tape on the ST-02 to disable the IOR and IOW signals.

By placing transparent adhesive tape over the IOR and IOW pins on the ISA connector (also known as B13 and B14 respectively), we prevent the card from responding to any I/O read or write cycles, effectively shutting down the on-board SCSI and floppy controllers, as we wanted.
The IOR and IOW pins are identified by placing the board on the table with the component side down, and counting the 13th and 14th pins from the left side of the connector.
If you prefer, you can cut the traces coming out of the B13 and B14 pins by a knife, instead of placing a tape over them. I prefer using tape because the change is much more easily reversible.
Please notice that the pins marked by 'R' and 'W' are the /SMEMR and /SMEMW lines, which are not masked. We will refer to these pins later.

Solder wire-wrap wires

We would now solder 3 wires to control the three D.O.C 2000 pins: /CS, /OE and /WR.

Where to solder wire-wrap wires to the board.

Solder 3 wires to the points above. The wires should be about 10cm long each (that's about 4 inch for you americans!). We will trim the wires later.

Preparing the conversion socket

Now we need to build the conversion socket that will help us adapt the 28 pin EPROM socket on the ST02 card to the 32 pin D.O.C 2000 socket.
Looking at the next pictures shows the similarities between these sockets:

DOC2000 adapter Wiring Diagram

As we can see, If we align the two sockets on on top of each other, most of the pins actually match:
Ofcourse, this is not a coincidence. A standard body called JEDEC, has set standard pinout for memory components (EPROMs, SRAMs and Flash) in a way that minimizes the amount of changes needed to be done on a PCB when upgrading it from smaller memory chips to larger ones.
All the memory chips beginning with 2708 (1Kx8 EPROM) through the 27512 (64Kx8 EPROM) have shared common I/O pins as much as possible.

We will take advantage of this by building an adapter that converts the 32Kx8 EPROM socket on the ST02 to a D.O.C 2000 socket.
If we look at the diagram, we see that 95% of the signals are either identical of driving Unused pins in the D.O.C. We only need to modify 4 pins:
In order to modify the pins, take one of the two 32 pin sockets we prepared in advance.
Now we need to pull out some of the pins from the 32 pin socket. The pins we really need to remove are those that are directly below the /CE and /OE D.O.C 32 pin socket. If we hold the 32 pin socket and look at it from above, with the notch being on top, we have pin 1 in the upper left corner, pin 16 in the lower left corner, pin 17 in the lower right, and pin 32 in the upper right.
Now, pull out the following pins: 1, 2, 22, 24, 31, 32.
using the round pin socket I had it was very easy to push out these pins.
Pins 1, 2, 32 were simply pulled out to make the socket fit on the board.
Now we pass the wires we have prepared before in pins 22, 24, 31. Please use the following picture to match the wires with the holes in the socket.

Connecting wires to the lower socket

Please note that the picture above was taken later, and the marked pins are obscured by the top socket, which we haven't gotten yet into!.

After the wires have been passed through the hole, push the socket firmly into the board, on top of the EPROM socket.

Now take the second 32 pin socket, and do the following steps:
We now have a functional D.O.C 2000 adapter!

Please take a look at the following pictures. Your adapter should look similar, but not the same:


Here is a look from the side:

Left side look at the D.O.C adapter socket

And another one from the opposite side:

Right side look at the D.O.C adapter socket

Testing the board

Download the DiskOnChip software Utilities from the M-Systems web site, as well as the DiskOnChip software Utilities User's Manual. Please follow the instructions there, since the card should behave the same.

Using this board with the DiskOnChip Millenium

The DOC Millenium has an identical electrical interface as the D.O.C 2000, so it should work with this board as well. However, I haven't tried it.
As usual, try this at your own risk.

Disclaimer

If you have gone this far, I assume that you know what you're doing. See the warning in the beginning of thus document.
This is also the point I got tired writing...

This page has been accessed times since Jul 28, 2000.

Copyright  ©  2000 Udi Finkelstein , All Rights Reserved.
"Last updated: