Announcement

Collapse

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

XT-IDE rev 4 Development

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    XT-IDE rev 4 Development

    I've been working on revision 4 of the Hargle/N8VEM open source XT-IDE design. It started off with the following changes, mostly suggested by users here and on IRC:
    • Better parts numbering (U1 is top left, U2 to its right, et c.)
    • Thicker/more consistent silkscreen (some board houses produced illegible/broken silkscreen on some labels and symbols)
    • Larger pads around some of the jumper headers
    • Better pin 1 indication for ICs
    • Rotate IC part number text (e.g. 74LS68 to match typical orientation on ICs
    • Change bypass cap values to match parts kit (changed to C instead of a uF value)


    I also added better test points with labels on both the front and the back to make the Slot 8 Support mod board easier to install, and routed *CARDSEL through the last DIP position on the I/O address switches. The status LED got flipped so that I can use some right-angle LEDs I've got in stock on personal builds, too.

    During the process, I ran into Alan Hightower (eeguru) at VCF East, who is working on the NetPi-IDE Raspberry Pi interface. He'd ran into a timing problem with how the high byte is latched on the XT-IDE and had to work around it with his FPGA design. He described the problem to me, which seemed to be a race condition on the read side of things: when *IOR de-asserted from the ISA bus, a sufficiently fast ATA device, like his NetPi-IDE board, would present invalid data to the high byte latch before it could de-assert and latch the data. This is due to the propagation delay in the logic on the original Hargle/N8VEM design, which I think is worth keeping as it preserves BIOS compatibility with the older BIOSes. The solution is to slow down the *IOR signal a little. I hooked up the HP 1650A logic analyzer to take a look:



    IORISA is the *IOR strobe essentially directly off of the ISA bus. IORIDE is the same signal after passing through four sections of a 74LS04 inverter, this adds around 20 nS of gate delay. HI RD is the latch strobe to U1, the high byte read latch that stores the upper 8 bits of the ATA device's output data during a read, so we can grab it later. As seen in the timing diagram, where HI RD used to lag IORISA by 10 nS, it now leads by 10 nS due to the 20 nS delay chain. This means the latch stores its value 10 nS before the ATA device stops outputting valid data, which is well within the spec for even the 74LS573 latch (the kits typically come with 74F573 latches, because I have a supply of them).

    I decided to go ahead and check out the write timing as well, though it hadn't been pointed out as a problem:



    IOWIDE is the *IOW signal essentially directly off of the ISA bus. HI WR is the latch strobe for storing the upper byte before doing a 16-bit write to the ATA device. HI OUT is the delayed "2 signal" from the XT-IDE logic (I've since relabeled it *HI_BYTE_OUT on the schematic, which I think is clearer). It was delayed by running it through two sections of a 74LS04 inverter and one section of a 74LS32 OR gate, with one input of the OR gate tied to ground. As seen in the timing diagram, *HI_BYTE_OUT now de-asserts 10 nS after the *IOW line, ensuring that data is presented to the ATA device for 10 nS past the end of the ATA write operation. I'm not sure if many (or any) ATA devices are this picky about the timing, but correcting it at the same time as making other rev 4 changes didn't require any spare gates.

    All of this was breadboarded on an old XT-IDE rev 3 prototype board from the initial rev 3 design, with a 74LS04 dead-bugged onto the circuit board and wired in. I made the read delay chain modifications and had some more prototypes run. Alan has one of them, which he used to confirm that the read timing was fixed. I modified a second with a socket for the 74LS04 so that I could test faster devices, as well as adding in the high byte output delay. I tested 74S04, 74LS04, 7404, and 74F04 devices, to make sure that whatever got stuck in there by someone assembling an XT-IDE would provide sufficient delay. All provided sufficient delay, the 7404 was the only measurable difference, providing around 25 nS instead of 20 nS, which is fine.

    I've ordered production boards for the XT-IDE rev 4, since I'm almost out of XT-IDE rev 3 boards from the last run. They'll look approximately like this:





    Those are from the earlier prototype order, since then I've switched the OSHW logo to a copper/solder mask relief, and moved the identification text back toward the OSHW logo. There have been some routing tweaks as well, but nothing major, other than adding in the hi byte output delay. Probably the biggest change people will notice is the extra 74LS04, and the switch to custom IC silkscreen legends from the stupid defaults included in newer KiCad releases. I'd stuck with the older KiCad 2.x style IC silkscreens on the rev 3 board because I thought the pin 1 designations were really, truly awful on KiCad 4.x default libraries.
    Last edited by glitch; August 15, 2017, 10:06 AM.
    Check out The Glitch Works | My Retro Projects | Vintage Computer Services | Glitch Works Tindie Store -- Vintage Computer Kits and More

    #2
    James Pierce also noticed the same and added a similar fix to his boards. I noticed it when testing a memory mapped port of JR-IDE to ISA. I think it will make many more ATA devices work with the board.

    Thanks for your hard work!
    "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

    Comment


      #3
      Two more wishes:
      - A 16 BIT AT version also would be welcome.
      - Enable/Disable Olivetti M24 / AT&T 6300 compatibiliy mode by jumper for the 8 bit version - or even better: special M24 16 bit version ...
      <album>

      Comment


        #4
        I second the notions of kudos for your engineering skill and hard work. I sure as hell couldn't do it.
        Daniel P. Cayea - The Lyon Mountain Company - Plattsburgh, New York 12901
        Vintage Equipment: IBM 5150 * IBM 5161 * ThinkPad 770ED
        Modern Equipment: MacBook Pro 13 * Alienware M15R3

        Comment


          #5
          Originally posted by 1ST1 View Post
          Two more wishes:
          - A 16 BIT AT version also would be welcome.
          Just use a regular 16 bit IDE controller with the XT-IDE Universal BIOS housed in a free ROM socket (network card are great for this). Works perfectly.

          IBM 5160 - 360k, 1.44Mb Floppies, NEC V20, 8087-3, 45MB MFM Hard Drive, Vega 7 Graphics, IBM 5154 Monitor running MS-DOS 5.00
          IBM PCJr Model 48360 640kb RAM, NEC V20,, jrIDE Side Cart, 360kb Floppy drives running MS-DOS 5.00
          Evergreen Am5x86-133 64Mb Ram, 8gb HDD, SB16 in a modified ATX case running IBM PC-DOS 7.10

          Comment


            #6
            Yes, the lo-tech 8-bit MUX honours the timing spec in both directions as well.

            Comment


              #7
              This is awesome! Great work man. My rev3 board is a wonder, I don't know what I did without it! Looking forward to the new rev.

              Bobby.
              Bobby.

              Comment


                #8
                Thanks, everyone! Again, there's no reason to upgrade from an earlier board if your board is doing what you need -- these changes just increase ATA device compatibility, which seems to already be pretty good. If you were planning on doing a Slot 8 Support modification, the rev 4 makes that slightly easier.

                Originally posted by 1ST1 View Post
                Two more wishes:
                - A 16 BIT AT version also would be welcome.
                - Enable/Disable Olivetti M24 / AT&T 6300 compatibiliy mode by jumper for the 8 bit version - or even better: special M24 16 bit version ...
                As mentioned, you can use a regular 16-bit ISA IDE card if your machine has a 16-bit ISA bus, with the XUB on a network card or something else with a ROM socket (you could even use an XT-IDE board with only the ROM parts populated).

                I'm not sure what you mean by M24/6300 compatibility mode. Part of the reason that the Compatibility/Chuck Mod mode jumpers were retained (rather than doing a permanent Chuck Mod) was to keep the board compatible with M24/6300 systems. Is there something more required? I don't have one to test with.
                Check out The Glitch Works | My Retro Projects | Vintage Computer Services | Glitch Works Tindie Store -- Vintage Computer Kits and More

                Comment


                  #9
                  Originally posted by lutiana View Post
                  Just use a regular 16 bit IDE controller with the XT-IDE Universal BIOS housed in a free ROM socket (network card are great for this). Works perfectly.
                  Yes, possible, but with disadvantages:
                  a) needs an regular 16 bit IDE controller. Hard to get...
                  b) needs a free ROM socket
                  <album>

                  Comment


                    #10
                    Originally posted by 1ST1 View Post
                    Yes, possible, but with disadvantages:
                    a) needs an regular 16 bit IDE controller. Hard to get...
                    b) needs a free ROM socket
                    You can also use a 16-bit IDE channel on a sound card, if you have one with real IDE on it (some cards have a manufacturer-specific header that only works with a handful of CD drives). I could certainly lay out a 16-bit IDE board, there's not much more than some buffers and decode logic to it, but the board would probably be $15-20 for the bare board due to the larger number of gold-plated edge contacts and size increase. At that point, you might as well buy a vintage 16-bit IDE board -- if people are having a hard time finding these, I have several to go through, test, and sell. Most are multi-IO, too, so you get floppy and often serial/parallel.

                    If there's enough interest in a 16-bit IDE card with ROM socket, I'll add it to the list of things to be laid out and run, but it just seems that they're way too common/cheap currently to really justify spending the time and money on running boards.

                    W.R.T. the ROM socket, a network card is, as mentioned, a popular option, since most people want Ethernet on their vintage PCs nowadays anyway. You can also use an XT-IDE board with only the ROM circuitry populated, which has the added benefit of being able to program its own EEPROM. If anyone is having a hard time finding a 16-bit controller/ROM board combination, PM me and I'd be happy to put something together from my surplus parts!
                    Check out The Glitch Works | My Retro Projects | Vintage Computer Services | Glitch Works Tindie Store -- Vintage Computer Kits and More

                    Comment


                      #11
                      Originally posted by 1ST1 View Post
                      Yes, possible, but with disadvantages:
                      a) needs an regular 16 bit IDE controller. Hard to get...
                      b) needs a free ROM socket
                      A - Hard to get? Really? Searching for "ISA IDE Controller" results in at least 66 results, with prices varying from $5 up to $60, but most seem to be around $20. Not necessarily plentiful, but certainly not hard to get.

                      B - Just about any NIC card has a ROM slot that can be used, but any card that allows for a ROM chip to be used would work. This can vary from Sound Cards to networks cards to even a free ROM socket on the motherboard, but personally I'd just stick with the NIC, because the added ability to get a vintage machine on the web via DOS TCP/IP can come in very handy.

                      IBM 5160 - 360k, 1.44Mb Floppies, NEC V20, 8087-3, 45MB MFM Hard Drive, Vega 7 Graphics, IBM 5154 Monitor running MS-DOS 5.00
                      IBM PCJr Model 48360 640kb RAM, NEC V20,, jrIDE Side Cart, 360kb Floppy drives running MS-DOS 5.00
                      Evergreen Am5x86-133 64Mb Ram, 8gb HDD, SB16 in a modified ATX case running IBM PC-DOS 7.10

                      Comment


                        #12
                        Originally posted by lutiana View Post
                        A - Hard to get? Really? Searching for "ISA IDE Controller" results in at least 66 results, with prices varying from $5 up to $60, but most seem to be around $20. Not necessarily plentiful, but certainly not hard to get.
                        Do keep in mind that they're cheap/easy to get in the United States -- overseas shipping is an instant $15-25 penalty for something the size of an ISA card.
                        Check out The Glitch Works | My Retro Projects | Vintage Computer Services | Glitch Works Tindie Store -- Vintage Computer Kits and More

                        Comment


                          #13
                          Originally posted by glitch View Post
                          -- overseas shipping is an instant $15-25 penalty for something the size of an ISA card.
                          That's the deal killer, Shipping + Import charges

                          Comment


                            #14
                            Originally posted by glitch View Post
                            Do keep in mind that they're cheap/easy to get in the United States -- overseas shipping is an instant $15-25 penalty for something the size of an ISA card.
                            Fair point, but then that means the shipping on a community made 16bit ISA card would also be increased if it were coming from the USA. On top of that, of the 66 listings on ebay, there were about 15 or 20 that were european listings, Bulgaria and Ukraine for some reason has quite a few. My point was that they are not hard to get, even if the cost to get them maybe higher in other countries.

                            IBM 5160 - 360k, 1.44Mb Floppies, NEC V20, 8087-3, 45MB MFM Hard Drive, Vega 7 Graphics, IBM 5154 Monitor running MS-DOS 5.00
                            IBM PCJr Model 48360 640kb RAM, NEC V20,, jrIDE Side Cart, 360kb Floppy drives running MS-DOS 5.00
                            Evergreen Am5x86-133 64Mb Ram, 8gb HDD, SB16 in a modified ATX case running IBM PC-DOS 7.10

                            Comment


                              #15
                              Around here, you can have 16-bit IDE/FDC/LPT/COM/GAME cards for pennies.
                              3c509 NICs with ROM sockets are very cheap as well.

                              But I can see one reason to have a 16-bit counterpart to XT-IDE: most of those multi-I/O cards are hardwired for primary IDE address and IRQ 14, some allow for secondary IDE address but still IRQ 14.
                              Now, if you have a 286 box with an MFM HDD, and you want to leave the original HDD, adding an IDE HDD/DOM/CF as the second drive, you need a controller that can co-exist with the original one.

                              Such controllers do exist, and they aren't rare nor expensive - you can find them on many late-ISA sound cards.

                              So, no need for a 16-bit XT-IDE for me, but who knows, perhaps it would appeal to those who are too lazy to search and experiment with piles of various old sound cards?

                              Comment

                              Working...
                              X