• Please review our updated Terms and Rules here

USB for 386/486

Andy120

Experienced Member
Joined
Mar 7, 2011
Messages
50
Hi
Couple of queries
Can i use a serial usb adapter run to a usb hub?
Will it allow hot swap?
Alternately can i use a usb to FDD/IDE/SATA adapter directly to an I/O card. (it would be run 'backwards')

I have just aquired a FDD & all in 1 floppy drive, which has the FDD plug but also a 9-pin usb header. It will need an adapter of some sort to run the usb side.
Defeated the purpose really. And be as cheap as possible. All usb cards i have found are PCI not EISA.

Andy
 
No, the output is RS232
No, even getting USB working in DOS can be a mission
No, you can't just make things run backwards, those USB devices are meant to be initialised from the USB side

For machines with USB ports, there are some DOS utilities out there which let you use some devices.
You can get 486's with PCI slots.

I'm yet to find an ISA or VESA card with USB, mostly because USB didn't really take off until the late 90's.

Somebody could design an ISA USB card, and write a bunch of DOS drivers, but it's a LOT of work and as far as I know hasn't been accomplished yet. Most people also don't actually need it. With a 386/486 you can still get mice/keyboards, and you can use networking or serial cables to get files on / off. Most other USB devices need special drivers, and the manufacturers definately wont provide DOS drivers, most items I see these days you're lucky to get support for anything before Windows XP.

Sorry to be a downer.
What did you want to connect?
 
getting a ISA card for this is not the problem you could simply get a PIC from Microchip and get it over with.
Real problem is getting drivers like mentioned before.
 
Hi
Agree. If the community wanted to make an ISA USB board it would not be all that difficult.

Getting all the software written would be a challenge though.

There are several options for USB hosts like the AVR, FTDI, Sparkfun, etc. Building an ISA board with one is certainly possible.

The hard part would be organizing the development team and running the project. Basically what Hargle did on the XT-IDE project. Hargle is an excellent project leader and will be hard to duplicate.

Thanks and have a nice day!

Andrew Lynch
 
. . . Most people also don't actually need it. With a 386/486 you can still get mice/keyboards, and you can use networking or serial cables to get files on / off. Most other USB devices need special drivers, and the manufacturers definately wont provide DOS drivers, most items I see these days you're lucky to get support for anything before Windows XP.

You nailed it. There are plenty of options for 386/486 computers. The serial port in itself is intended to be (and functions as) a universal port. There's no end to the modern stuff that could be added, but it's just not needed. I one wants everything including drivers and the kitchen sink, then that's what the Linux kernel is for. :)
 
If it's a 486 that you've gotta have, there were PCI 486 motherboards made. Of course, they are all 33MHz 5V PCI, but you should be able to find an add-in USB card for one.

But an ISA USB card, well, yes, it is possible, as there are many host controllers for embedded applications that have very friendly 8-bit bus interfaces. Or one could use just about any modern MCU with USB OTG capabilities to implement a host interface.

But...

Someone is going to have to write a driver for it. Even given that Windows USB is implemented in a "layered" style, it still means at least one driver. Who the heck writes drivers for Windows 95 or 98 anymore?

Another option that can give you limited capability is one of the FTDI Vinculum USB modules. It's a different approach that's also quite limited--one can serve as a host for one or two classes of USB devices only and the output can be UART, SPI or parallel (selectable). Not general-purpose, but perhaps enough for a specific application.
 
I got a Toshiba Infinia desktop shortly after W95 was announced. It had a USB device, but it was custom from Toshiba and needed the Toshiba drivers to work. It seems to me that W98SE was the first Microsoft OS with USB support built in.
 
I got a Toshiba Infinia desktop shortly after W95 was announced. It had a USB device, but it was custom from Toshiba and needed the Toshiba drivers to work. It seems to me that W98SE was the first Microsoft OS with USB support built in.

Toshiba 460CDT has a USB port and came with Win95, but the OS support didn't come until the 2nd version of Win95. People here that run this stuff can add the details. :)

BTW: Since we added first generation Pentium to the Vintage Forum, it makes sense to refer to USB in vintage terms when talking about that generation. However, what is the vintage aspect to adding USB to a 386/486? I don't get that since it would not be "vintage hardware".
 
I've looked at a lot of USB options and have hardware designs for most. I just don't have time to do a deep dive into software. I'm always looking for a partner to jump into a project like this but haven't found one yet. I already have working boards spun and assembled that have a STM32F2/F4 MCU interfaced to an 8-bit ISA bus via a CPLD.

Another option is the WCH CH375B device. I've made carrier boards designed for 28-pin dip sockets and 9 of them arrived yesterday with 3 ISA eval carrier boards also pictured below - along with all the parts kits. I've only assembled one so far and haven't yet tested it in a PC. However if anyone is serious about helping with a good track record on this board, I am willing to start sending them out to folks this week. The ISA boards will probably go to hargle and James P. whether they want them or not as I have their addresses already! But if anyone else is genuinely interested, drop me a PM.

IMG_0155.jpg
 
Last edited:
USB + DOS = driver hell

How do you mean you need OS support to get PnP? :roll:

Driver hell indeed. :) I don't understand the second sentence since I don't see anybody making comments in that regard.

I was being somewhat sarcastic and building on your comment about adding an ethernet interface. Perhaps I misunderstood your use of the "rolleyes" - I assumed you were being playful and sarcastic. :) My opinion is that there's no good point in adding modern features to old computers. Either use the many and very adequate vintage tools available or just use a modern computer. If you like the old box, stick a new mother board in it and make the appropriate I/O holes or adaptations. I don't mean to offend the OP, but what exactly is the vintage angle to adding non-vintage components and functionality to a vintage computer?
 
Because one day... maybe not today... you will not be able to find vintage peripherals. Reliable spinning hard drives with MFM interfaces are already getting scarce. I suspect soon will analog mice with physical bearings, finding a place to plug in your NE-2K's 10BASE-T twisted pair, and working displays with VGA inputs. I appreciate a lot, probably most, people want their vintage experience to be 100% authentic. However we all relate to our old machines in personal ways. I achieve comfort in just seeing my old 386 running again. I wouldn't mind if it had a USB mouse and keyboard or allowed me to connect to a KVM shared with my i7 monster gaming machine sitting beside it. In fact I would prefer it.
 
Alan,

Can you describe what you have built up above? How is it intended to be used?

Mike
 
The Simtec board linked by Caluser2000 above is essentially a Cypress USB host controller, Lattice GAL which provides address decode -> chip select, and a 5V<->3.3V level shifter. It's very similar to my boards I posted the pic of above. Except the module I used is a CH573B USB OTG controller and I put it on a module similar to these CH375B breakout boards except that I designed it to be plugged into a 28-pin dip socket instead. It's a full speed only (12 Mbps tops) OTG controller intended to be used to provided turn-key USB expansion to +5V micro-controllers. I figured the DIP form factor would be better integrated into other hobby class boards for a variety of machines ranging from C= VIC-20s to 486s. If there's wide interest, we could do a small group run. The ISA eval/carrier card also in my photograph is just a DIP switch and 22V10 PLD used for address decoding - similar to the Lattice GAL used by the Simtec board above just in a DIP form factor instead of PLCC.

The data sheet for the CH375B is here in case anyone is curious of the feature set. It has built-in firmware that performs the USB mass storage protocol as the host giving the connected MCU a logical block view of any connected disk or thumb drive. It should be very straight forward to write an Int 13h handler for it. I have 9 of them. I'm willing to send 8 of those (dip module only) out to anyone whose interesting in taking a stab at fly-wiring over to it from a host and poking around on it. It actually has two host interfaces on it - a RS-232 serial link and an 8-bit parallel interface consisting of 8 data lines, /RD, /WR, /CS, and A0. It also has a independent active high reset and an edge triggered IRQ.

I also have a competing design mentioned in a few other threads here which is a full ISA card with a FPGA on it providing a shared register file including mask-able interrupt control to both the PC host side and a SPI slave port connected to an ARM Cortex-M3 with high-speed USB OTG and eMMC/SD interfaces. But that's a deeper project dive I don't have time to take at the moment. Hence the CH375B direction.
 
Most of the small/embedded host controllers that I've seen don't have the capability to map much of the bus topology. For example, consider a situation where you have more than one hub with various devices (say, an HID, a mass-storage device, a WiFi dongle, an EPROM programmer...) Most of the simple hosts don't have the resources to handle this (and perform power management for all of those devices).

This is the issue in a nutshell--do you want to run Windows 9x with its layered PnP driver structure? Or do you simply want to run one or two devices, no hub, no complex topology and no special-purpose drivers? (i.e. you can forget that EPROM programmer).
 
Back
Top