Skip to main content
PCI vs ISA Serial Cards on Windows 98 and DOS: Which Chipsets Actually Work

PCI vs ISA Serial Cards on Windows 98 and DOS: Which Chipsets Actually Work

The bus decides everything: plug-and-play hands Windows a clean COM port and hands real-mode DOS nothing at all.

PCI serial cards work in Windows 98 SE with the right chipset, but real-mode DOS needs a jumper-set ISA card at 3F8h. Here is how to pick the right bus.

A PCI or PCIe serial card works fine in Windows 98 SE once the right driver binds, but real-mode DOS usually never sees it. DOS software pokes a UART directly at 3F8h with IRQ 4, and plug-and-play hands PCI cards addresses no DOS app looks for. For bare-metal DOS, use a jumper-set ISA card.

Serial ports stopped being interesting to mainstream PC buyers around 2005, and then quietly refused to die. On a retro bench in 2026 they are still the shortest path to four jobs nothing else does as well. A serial console gets you a text login on a machine whose video card is dead or whose driver install just blackscreened, which turns a reinstall into a five-minute fix. Null-modem file transfer via Interlnk, LapLink or a Kermit client moves a driver bundle onto a 486 that has no working NIC, no USB mass storage and a floppy drive you do not trust. Period link-cable gaming — the two-PC serial modes in Doom, Duke Nukem 3D and Descent — only ever spoke to a real UART. And outside gaming entirely, CNC controllers, bench multimeters, logic analyzers and older programmable power supplies still ship RS-232 as the primary control channel, which is why industrial ISA card stock exists at all in 2026.

The part that trips people up is that "does a serial card work?" is two different questions wearing one coat. If your software is a Windows program calling the Win32 serial API, the operating system's driver stack sits between you and the hardware, and the bus the card lives on is nearly irrelevant — Microsoft's serial port driver documentation describes exactly that abstraction. If your software is a DOS program, a boot-time utility, or a BIOS console redirect, there is no driver stack. Your program writes bytes to an I/O port number that was standardized in 1981 and has never moved, and it either finds a UART there or it finds nothing. PCI moves that address. ISA lets you nail it down with jumpers. That single split decides the entire purchase.

Key takeaways

  • Windows 98 SE side: a PCI/PCIe card is fine, provided the chipset is MosChip, Oxford Semiconductor, Exar or ASIX and you can still source the 9x-era INF.
  • Real-mode DOS side: assume a PCI card is invisible. An ISA card with jumper-selected I/O base and IRQ is the only reliable answer.
  • Renaming a port is not remapping it. Device Manager will happily call a card COM1 while its UART still lives at a PCI-assigned base address, which fools you and not your DOS app.
  • Cost per usable COM port runs about $29.99 on the two-port PCIe card versus $25.26 on the four-port ISA card, as of 2026 — the ISA card is cheaper per port and more expensive per machine.
  • A 16550-class UART carries a 16-byte FIFO in each direction; anything older (8250, 16450) has a one-byte holding register and will drop characters above 9600 baud under load.

Step 0 — do you need a Windows COM port or a DOS I/O port?

Answer this before you look at a single listing, because getting it wrong produces two very different, equally frustrating failures.

You need a Windows COM port if everything that will touch the serial line is a Windows 98/2000/XP application: HyperTerminal, a vendor configuration tool, a Windows-hosted Kermit client, or a modern host machine you are using to talk to the retro box. Buy on bus convenience. Symptom of getting this wrong (buying ISA when the target board has no ISA slots): you own a card that physically cannot go in the machine.

You need a DOS I/O port if any of these are true: the software is a real-mode DOS program, you want BIOS console redirection over serial, you are doing Interlnk/Intersvr transfers from a DOS boot floppy, or you want serial multiplayer in a DOS-era game. Symptom of getting this wrong (buying PCI): Windows shows a healthy port with no exclamation mark, the loopback test passes inside Windows, and the DOS program reports "no modem found" or simply hangs. Nothing is broken. The card is at an address the program never checks.

Why does DOS often ignore a PCI serial card?

Three things have to line up for DOS to talk to a UART, and PCI breaks all three by design.

The I/O base address. DOS communications code is hardcoded to the legacy map: 3F8h for COM1, 2F8h for COM2, 3E8h and 2E8h for COM3/COM4. A PCI serial card's base address register is programmed at POST by the plug-and-play BIOS, and it typically lands somewhere in the D000h–F000h range. A DOS program scanning 3F8h finds an open bus and concludes there is no port.

The IRQ. Legacy COM1 owns IRQ 4 and COM2 owns IRQ 3, as edge-triggered interrupts. PCI interrupts are level-triggered, shared, and routed through the PCI interrupt link devices to whatever the BIOS picked — commonly IRQ 10 or 11, alongside your sound card. Even a DOS program that could be told a nonstandard base address usually cannot cope with a shared level-triggered IRQ.

The BIOS service. INT 14h is the BIOS serial API, and the BIOS populates the four COM port addresses in the BIOS Data Area at 0040:0000h during POST by probing the legacy addresses. A PCI card is not at a legacy address, so it never gets an entry, so INT 14h has nothing to hand to software that asks politely instead of poking hardware directly.

There are workarounds, and they are all partial. Some cards ship a DOS TSR that reprograms the card's base address into the legacy range and stuffs the BIOS Data Area — that works, when the TSR exists and matches your chipset, and it costs you conventional memory. A handful of server BIOSes expose an onboard PCI serial controller as a legacy COM device for console redirect purposes; add-in cards rarely get that treatment. And some DOS applications let you specify a base address and IRQ manually, which handles the addressing half and leaves the shared-interrupt half unsolved. Plan for the workaround to fail and you will not be disappointed.

Which chipsets are safe on Windows 98 SE?

Windows 98 SE has no in-box driver for a PCI serial controller. It will enumerate the device, list it as a generic PCI Simple Communications Controller with a yellow bang, and wait for an INF. So chipset choice is really driver-availability choice.

MosChip (MCS9865, MCS9990, and the NetMos-branded 9835/9845 that preceded them) are the safest bet. These parts shipped in enormous volume in generic multi-I/O cards from roughly 2003 onward, the 9x driver packages were widely mirrored, and once installed they present as ordinary 16550-compatible ports.

Oxford Semiconductor (OXPCI952/954, later OXPCIe952) is the quality option — genuine 16C950-class UARTs with deep 128-byte FIFOs, used in industrial and pro-audio cards. Driver coverage for 98 exists but is thinner than MosChip's; check before you buy.

Exar (XR17V35x) and ASIX (MCS98xx-adjacent parts) both work, with the same caveat: the vendor's own 9x package or nothing.

The card to avoid is the unbranded eBay special with a sanded or unmarked chip and a driver CD labelled "Windows XP/Vista/7/8/10." There is no generic fallback that binds on 98, so an XP-and-newer INF means the card is a Windows-2000-minimum device on your retro box. Read the chip marking in the listing photographs — not the marketing copy, which is copy-pasted across a dozen unrelated SKUs.

One more Win98-specific gotcha worth knowing before it bites you: ghost devices. If you install the card, move it to a different slot, and reinstall, Windows 98 registers a second instance and assigns it the next free COM number. Do that three times and your two-port card is presenting as COM7 and COM8 with five phantom siblings holding the low numbers. Boot to Safe Mode, delete every serial port entry under Ports and under Other Devices, reboot, and let it re-enumerate once. Then stop moving the card.

Card comparison — bus, chipset and what each bus actually gets you

CardBusChipset familyPortsDefault I/O + IRQ behaviorWin98 SE driverReal-mode DOS usable
StarTech 21050-PC-SERIAL-LPPCIe x116C1050-class UART2PnP-assigned base, shared level-triggered IRQVendor INF; XP-era package, 9x support variesNo
Generic MosChip MCS9865 PCI cardPCI 32-bitMosChip2–4PnP-assigned base, shared IRQYes — widely mirrored 9x INFOnly with a matching DOS TSR
Oxford OXPCI952 PCI cardPCI 32-bitOxford Semiconductor2PnP-assigned base, shared IRQ; 128-byte FIFOYes, but scarcer than MosChipRarely
C104P-style 4-port ISA cardISA 16-bitDiscrete 16550-compatible UARTs4Jumper-set base per port; one shared edge IRQNot needed — enumerates as standard portsYes
FTDI USB-to-serial adapterUSBFTDI FT232R1Virtual COM, no fixed I/O baseYes on 98 SE with FTDI's 9x driverNo

The pattern in that last column is the whole article in one glance: everything that gets its address from plug-and-play is a Windows-only port, and the one card whose address you set with a jumper is the one DOS can find.

Standard COM assignments — the map DOS software is hardcoded against

PortI/O baseIRQHardcoded by
COM13F8h4BIOS console redirect, Interlnk/Intersvr, most DOS terminal software
COM22F8h3DOS-era modem defaults, serial-link game modes (Doom, Descent)
COM33E8h4 (shared with COM1)Rare; conflicts with COM1 unless the board isolates the IRQ
COM42E8h3 (shared with COM2)Rare; industrial multi-port setups

Two practical notes. First, COM3 and COM4 share interrupts with COM1 and COM2 in the original IBM map, which is why four-port ISA cards ship their own interrupt-sharing logic and ask you to assign one IRQ to all four ports. Second, if your target software is a DOS game or a transfer utility, aim for COM1 or COM2 and nothing else — the odds that a 1994 binary lets you type in 3E8h are poor.

How do you force a PCI card onto COM1 or COM2?

You can renumber, and you sometimes can remap. They are not the same operation, and confusing them is the most common false-summit on this whole project.

Renumbering is what Device Manager gives you. Open the port's properties, go to the advanced port settings, and pick a COM number from the list. If COM1 and COM2 are greyed out or marked in use, go into BIOS setup first and disable the onboard serial ports you are not using — that frees the numbers. While you are in that dialog, set the receive and transmit FIFO sliders to maximum unless you are chasing a specific latency problem; the default conservative setting exists for 1998-era hardware that no longer applies to you.

What renumbering changes is the symbolic name Windows hands to applications. What it does not change is the physical base address of the UART. A PCI card renamed COM1 still has its registers at, say, E800h. Windows applications do not care, because they go through the driver. A DOS program writing to 3F8h still finds nothing, because nothing moved.

Remapping — actually relocating the UART's base address into the legacy range — is a firmware-level operation. On ISA cards it is a jumper. On PCI cards it requires either a vendor DOS TSR that reprograms the base address register, or a BIOS that offers legacy decode for the device. If neither exists for your card, remapping is not available, and no amount of Device Manager work will produce it.

The clean test: boot a DOS floppy, run DEBUG, and dump the BIOS Data Area with d 40:0. The first four words are the base addresses the BIOS found for COM1–COM4. If they read F8 03 and nothing else, your PCI card is not there and never was.

Where the StarTech 2-port PCIe serial card fits

The StarTech 2-Port PCI Express Serial Interface Card — the 21050-PC-SERIAL-LP, $59.98 as of 2026 — is the right card for exactly one job on a retro bench: the modern machine, not the old one. That is the host you sit at, running the terminal emulator, driving the serial console into the retro box, holding the driver archive, and doing the file transfers.

It is a PCIe x1 card with two DB9 male connectors, 16C1050-class UARTs with COM port retention (the port number survives a slot change, which quietly eliminates the ghost-device mess described above), and both low-profile and full-height brackets in the box. On a 2026 motherboard it enumerates without drama under Windows 10/11 and Linux. StarTech's product page lists the driver matrix; the 9x column is where the honest limits start.

The honest limits: this is not a Windows 98 card and it is emphatically not a DOS card. It is PCIe, so it will not go in a 486 or an early Pentium at all, and the modern-OS driver package is not going to bind on 98 SE. Buy it to give your current desktop two real hardware COM ports so you stop fighting USB-serial latency on the host side. Do not buy it expecting to install it in the retro machine.

Where the C104P-style 4-port ISA card fits

The C104P ISA COM Card, 4-Port RS-232 — $101.04 as of 2026 — is the opposite trade. It is expensive for what it is, it only fits machines with 16-bit ISA slots, and it is the correct answer for DOS.

Everything that makes it DOS-viable is on the card itself. Each port's base address is set by jumpers or DIP switches, so you pick 3F8h and 2F8h explicitly and the BIOS finds them at POST because they are exactly where it probes. One IRQ is shared across all four ports through the card's own interrupt logic, which is standard for industrial multi-port ISA cards and is what the bundled DOS drivers expect. The UARTs are discrete 16550-compatible parts with a 16-byte FIFO per direction, per the TI TL16C550C datasheet that defines the class — see also the 16550 UART reference for the register-level differences from the older 16450.

Practical install notes. Set two ports to the legacy pair and leave the other two disabled unless you need them; four active ports on one edge-triggered IRQ works under the vendor's driver and is a headache under generic DOS software. If the retro board has a plug-and-play BIOS, mark the chosen IRQ as "Legacy ISA" or "Reserved for ISA" in ESCD/PnP setup so the BIOS does not later hand it to a PCI device. And disable the onboard COM ports in BIOS first — otherwise the onboard ports own 3F8h/2F8h and your card's jumpered ports collide with them silently.

Building the rest of the bench

A serial card by itself does not finish the job. Three more parts turn it into a working retro workflow.

Imaging the target drive. Pulling the retro machine's drive and imaging it from a modern host is faster and safer than any in-place approach. The Unitek SATA/IDE USB 3.0 Adapter at $34.99 handles both 2.5-inch and 3.5-inch IDE and SATA drives, with its own power brick for 3.5-inch spindles — which matters, because a bus-powered adapter will brown out a 1990s 3.5-inch drive on spin-up.

Booting from solid state. A Transcend 4GB CompactFlash card at $10.99 in a passive CF-to-IDE carrier is the standard silent boot drive for a Win98 machine: CF speaks the IDE protocol natively, so the adapter is wiring rather than translation, and 4GB sits under every partitioning limit a 98-era BIOS is likely to enforce. It also makes the whole install snapshottable — pull the card, image it on the modern host, put it back.

Wiring the link. This is where most first attempts fail, and the fix costs nine dollars. A DB9 straight-through RS-232 cable at $8.99 connects a PC to a device that is already the far end of the conversation — a modem, a switch console port, a CNC controller, bench test gear. Connecting two PCs requires a null-modem cable, which crosses TX and RX so each machine hears the other; see the null modem wiring reference for the full pinout. Both cables have identical DB9 shells. Buy the straight-through for gear, the null-modem for PC-to-PC, and label them the day they arrive.

Perf and cost math

CardPrice (2026)Usable portsCost per portWorks in DOS
StarTech 21050-PC-SERIAL-LP$59.982$29.99No
C104P 4-port ISA$101.044 (2 practical)$25.26Yes
FTDI USB-serial adapter~$151~$15.00No

Cost per port favors the ISA card, and cost per machine favors it less — you are spending $101 to serve one retro box that cannot use anything else. The number that actually justifies either purchase is reinstall time. A working serial console on a machine whose video output has failed turns a blind-reinstall — pull the drive, image it, reinstall, reseat, hope — into a text session where you can read the error. Call the blind path two to three hours and the console path fifteen minutes; the card pays for itself the first time a driver install blackscreens a Win98 box you have already spent a weekend configuring.

On throughput: a 16550's 16-byte FIFO is what lets you run 115200 baud reliably under a multitasking OS, because the CPU can be up to sixteen characters late without losing data. An 8250 or 16450 interrupts per character and starts dropping bytes above 9600 baud once anything else demands attention. If a listing does not say 16550 or better, treat it as an 8250 and price it accordingly.

Verdict matrix

Get the PCIe card if your serial work happens on a modern host — you want two hardware COM ports on the 2026 desktop that drives the retro machine's console, and you have accepted that the retro box itself needs a different solution.

Get the ISA card if the target machine is a genuine 486, 586 or early Pentium with 16-bit ISA slots and your software is real-mode DOS. This is the only option in that scenario, the price is what it is, and the jumpers are the feature you are paying for.

Get neither and use USB-serial if the retro machine is new enough to run Windows 98 SE with working USB (roughly 1999 onward), all your serial work is Windows-side, and you do not need DOS. An FTDI-based adapter costs about $15, has the widest 9x driver coverage of any USB bridge, and skips the slot question entirely. Its two disqualifiers are real-mode DOS, where the adapter is invisible without a driver stack, and latency-sensitive link work, where USB polling adds jitter a native UART does not have.

The pick

For most people reading this, the answer is both, on different machines: the ISA card in the retro box because DOS gives you no alternative, and a $15 FTDI adapter on the modern host because two hardware COM ports is more card than a host that mostly runs one terminal session needs. Upgrade the host side to the StarTech PCIe card when you find yourself running two sessions at once, or when USB latency starts corrupting a transfer — both are real, and both announce themselves clearly before they cost you anything.

If you are buying one thing and one thing only, and the target is a period-correct DOS machine, buy the ISA card. Every dollar you spend on a PCI serial card for that box is a dollar spent on a port your software will never find.

Bottom line

The bus decides the answer. PCI and PCIe cards get their I/O base and IRQ from plug-and-play, which is exactly what Windows wants and exactly what real-mode DOS cannot follow — so on Windows 98 SE they work well given a MosChip, Oxford or Exar chipset with a findable 9x INF, and under DOS they are usually invisible. ISA cards let you jumper a port to 3F8h with IRQ 4, which is the address every DOS program was written against, and that has not changed since 1981. Decide which side of that line your software lives on, buy for that side, and check the chip marking in the listing photos before you spend anything.

Citations and sources

Editorial synthesis: bus behavior, chipset driver availability and legacy I/O mapping above are drawn from the primary sources listed here and from the standard COM port map; prices are as observed in 2026 and move with retro-market supply.

Products mentioned in this article

Live Amazon & eBay pricing, plus full specs and alternatives on each product page.

As an Amazon Associate, SpecPicks earns from qualifying purchases; we also earn on qualifying eBay purchases via the eBay Partner Network. Prices shown were last tracked at crawl time and may vary — check the listing for the current price.

Find this retro hardware on eBay

Pre-2012 hardware isn't sold new on Amazon. eBay is the primary marketplace for the SKUs discussed in this article — auctions and Buy-It-Now listings update continuously.

Search eBay for "Windows 98" Live listings →

SpecPicks earns a commission on qualifying eBay purchases via the eBay Partner Network. Prices and availability change frequently.

Frequently asked questions

Will a PCI or PCIe serial card work in pure MS-DOS?
Usually not without help. DOS-era software reaches the UART directly at fixed I/O addresses and expects the BIOS INT 14h service, while a PCI card gets its resources assigned by plug-and-play at addresses the software never looks at. Some cards ship a DOS TSR that remaps a port into the legacy range, and a few BIOSes expose a PCI serial port as a legacy COM device. If your target software is real-mode DOS, an ISA card with jumper-set I/O and IRQ is the reliable answer.
Which chipset should I look for on a card destined for Windows 98 SE?
Prefer cards built on the long-lived MosChip, Oxford Semiconductor, or Exar UART families, because 9x-era INF files for them are still findable and they present as standard 16550-compatible ports once installed. Avoid unbranded cards with no chipset marking on the silkscreen — those often ship a Windows-XP-and-newer-only driver, and there is no generic fallback that will bind on 98. Read the chip marking in the listing photos before buying, not the marketing text.
How do I force a card onto COM1 or COM2 instead of COM5 and up?
Plug-and-play typically hands a PCI card a high COM number because the legacy ranges look occupied. Open Device Manager, find the port, and change the assignment under the port's advanced settings, freeing the number first by disabling any unused onboard port in BIOS. Note that renaming the COM number does not always move the underlying I/O base and IRQ, so software that pokes 3F8h and IRQ 4 directly can still fail after a successful-looking rename.
Is a USB-to-serial adapter a valid substitute on a retro machine?
It works for Windows-side tasks on machines new enough to have usable USB drivers, and FTDI-based adapters have the widest legacy driver coverage. It is a poor substitute in two cases: real-mode DOS, where the adapter is invisible without a driver stack, and latency-sensitive link work, because USB polling adds jitter a native UART does not have. On a genuine 486 or early Pentium, treat USB-serial as unavailable and plan around a card.
Do I need a null-modem cable or a straight-through cable?
It depends on what is on each end. Connecting two PCs for a file transfer or a serial console needs a null-modem cable, which crosses transmit and receive so each machine listens to the other. A straight-through DB9 cable is for connecting a PC to a device that already presents itself as the far end, such as a modem, a switch console port, or test gear. Buying the wrong one produces a link that never sees a single byte, which is the most common first-attempt failure.

Sources

— Mike Perry · Last verified 2026-09-10

More guides & deep dives from the SpecPicks archive

Browse all articles & guides →

More buying guides from SpecPicks

Browse all buying guides →

Hardware benchmark data on SpecPicks

All benchmarks →