Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.

Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.

Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.

Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.

Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.

Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.

Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.

New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.

Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

8-bit ISA Bootable Ethernet Adapter with ATAoE

  • Filter
  • Time
  • Show
Clear All
new posts

    8-bit ISA Bootable Ethernet Adapter with ATAoE

    XT/IDE is great but what about if the HDD was actually an image file on a network server?

    The technology for this already exists - ATA over Ethernet (ATAoE): a layer-2 protocol - there's no TCP or IP and the protocol itself is very simple, only about 10 pages. It's nothing like iSCSI (which is horrid). The server side is available on any Linux distro (for example apt-get install vblade on Ubuntu).

    Because ATAoE is so simple and since we already have a comprehensive IDE BIOS (the awesome XT/IDE Universal BIOS) that has been specifically coded to allow the use of different physical layers (VL-Bus, 16-bit, 8-bit, JRIDE etc), my gut feel is that we should be able to pull together the functionality of XT/IDE but running via ATAoE and get a usable solution for XT class hardware.

    So there are two possibilities:

    1. To create a software solution, i.e. a boot ROM that can drive some readily available 8-bit NICs. The problem is that we'd need to embed the packet drivers into the ROM and therefore also emulate a bunch of DOS handlers to make that work; basically create a PXE in ROM. Also I'm not sure how well this could perform.

    2. To build our own ISA card using a single-chip Ethernet controller like the SMSC LAN91C96. It seems that this will offload most of the work involved so should perform better, and also we can program for it directly. Of course there's a downside... it's a TQFP-100 package and expensive at nearly 20. But the chip has a reasonable buffer, will work directly with the 8-bit bus, and is 5V.

    Hence, looking to open this up to the community!
    Last edited by pearce_jj; December 31, 2012, 01:16 AM.

    Option 3 use a commodity MCU with built-in Ethernet or 802.11 and a bridge interface to the PC.

    Though option 1 is the best bet by far. Could build different packet drivers into different ROM images. I'd start with NE2K and expand as demand dictates.
    "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me


      Thanks. That approach also opens up the possibility of using parallel port adapters, for example with a laptop or luggable.


        In the private conversations I had prior to this thread we discussed some of these options.

        Taking other people's packet driver code and making it ROMable is not my idea of fun. For the older cards the code is open source and is available. The Xircom PE3 packet drivers are a notable exception - no source code is available, although it is supposed to be. But even with source code, it is a lot of work.

        It also doesn't make sense to keep the packet driver interface. The packet driver interface was designed to allow any arbitrary application to use the Ethernet hardware. In this case if the Ethernet hardware is in use for something low level like INT 13, it is probably not going to be shared.

        I think the best solution is to embed the Ethernet on the card and keep it private to the card. Then the BIOS knows exactly what it is talking to, and can do it in the most efficient way. (ie: No software interrupts just to send a packet.) It also cuts down on the testing and programming effort; trying to support multiple Ethernet chipsets would take a lot of effort.


          OK - so let's talk about MCUs... this type of thing? It's not something I know anything about!


            these are in DIP ...


              I'd start with scratching out a rough BOM and figure out what the cost per unit's going to be; then find someone willing to program and debug the thing.

              Personally, I think that those two items will probably be fatal to the project. But I'm happy to be proven wrong.
              Reach me: vcfblackhole _at_ protonmail dot com.


                ENC28J60 are pretty slow - especially if you have to bit-bang the SPI. But it does potentially allow a completely 5V PTH design.

                PIC18F97J60 is a pretty good choice for option 3 since it has an integrated PHY and external bus interface for a FIFO interfacing approach to the ISA bus.

                I'm still not sure why option 1 isn't the best choice. I understand Mike's concerns, however with any other option you will need to build an actual board. If you just target the most common chip - NE2000 - and design an Int 13h ATA ROM that work specifically with it, people can pickup any cheap NE2000 off eBay, program a ROM, and be running quickly.
                "Good engineers keep thick authoritative books on their shelf. Not for their own reference, but to throw at people who ask stupid questions; hoping a small fragment of knowledge will osmotically transfer with each cranial impact." - Me


                  How about if we try and program an NE2000 directly?


                    My concern? I'm lazy. All good programmers are ...

                    I'm working under the following assumptions:
                    • We need a new board. Sharing an existing Ethernet card means that two slots are required, two sets of I/O and address jumpers are required, and every INT13 op will result in at least 2x the bus traffic that it should. (You might only need one board if your existing NIC has an EPROM socket on it.)
                    • We have to hide the Ethernet controller. Somebody trying to run a badly behaved application that touches the Ethernet hardware will crater their system.
                    • Having only one Ethernet target to program for is immensely easier.
                    • There are a wide variety of Ethernet boards out there. NE1000 was common, but I find many more 3C503 and old WD/SMC 8003 boards in the wild. Even Intel 8/16 boards are pretty common. And for the oddball machines the Xircom is the way to go, except that those @#$@ never open sourced their code after stealing the Crynwr open source framework.

                    If we are not talking about a new board then just the BIOS extension to use an existing card is fine. But you still have to program for each card; the packet driver source code can help there but you can't use the packet driver directly. And performance will be back down in the original XT-IDE range because of the extra bus traffic.



                      Perhaps the option of a custom board will be ruled out by a show of hands from those who would seriously consider buying such a board. For example, is a custom board worth the effort/cost for say, 5 people?


                        I assume that ATA over Ethernet would make whatever is on the other end of the Ethernet cable look like a local hard drive to DOS. What would be on the other end? Network Attached Storage, a shared folder/drive? What about DOS's partitioning schemes like FAT16 & FAT32? What kind of read/write performance can be expected? If you use a 10Mbit card, the performance may not be too impressive compared to real ATA interface & drive.
                        My Retro Computing and Vintage Gaming Blog :


                          An ATAoE server would be on the other end; this exists in the Linux kernel for several years at least. Any Linux box can do the job. Yes the disk would appear like a local hard disk on the XT and everything that could be done with an XT/IDE attached disk could be done with it.

                          Performance wise, this is unknown. The original XT/IDE did about 60KB/s, later improved to about 200KB/s. RAM copies in the PC/XT are only about 380KB/s. With the single-chip MCU type approach, I guess we could pick up data quite rapidly. Presumably real 8-bit NICs have only a single-packet buffer so things might be more difficult, although 1500 bytes is still enough for 2 sectors.


                            Originally posted by modem7 View Post
                            Perhaps the option of a custom board will be ruled out by a show of hands from those who would seriously consider buying such a board. For example, is a custom board worth the effort/cost for say, 5 people?
                            And therein lies the problem with many of these derivative projects - the need is reduced because of the previous projects, and thus the demand is reduced as well.

                            I was really happy with the first generation XT-IDE. I even grafted one onto a PCjr and hacked the BIOS to make it work. Alan (EEGuru) came along and made it a real PCjr specific adapter, getting it into a sidecar form factor where I was thinking of some mega-hack/kludge expansion unit.

                            But after that ... well, XT-IDE worked so well. Revision 2 was faster, but for machines that had *nothing* Revision 1 was a quantum leap. And so the derivatives are doomed to starve because their predecessors were so good ...

                            I like this project because it combines my two great interests - hard drives and networking. I'm willing to throw code into it to make it work. But I need to heed the lesson of the still as of yet unfinished XT-FDC project - I'm over extended and good intentions + cash can't overcome a lack of time. And really, if this is a niche project due to lack of demand then I think that will decide the question of new hardware or not.


                              Continuing ...

                              On the other hand, having a hard drive interface that uses a virtual hard drive on a backend server is one of the ultimate geek projects - imagine the bragging rights!

                              I can get 70 to 100KB/sec through a PC XT with an Ethernet adapter using TCP/IP, which is a pretty heavy protocol. And that is on a slow 10Mb/sec Ethernet segment. Also, that is using the packet driver interface which has some inefficiencies in it. Using a lighter weight protocol and owning the hardware directly you can do quite a bit better. Performance would not be an issue. For people who didn't want the Linux box it would be very easy to write a server in Java than can run under Windows and use UDP.

                              The ability to have an unlimited supply of virtual hard drives to choose from at the end of your Ethernet cable is pretty appealing. And your nerd-cred would be stellar.