• Please review our updated Terms and Rules here

Identifying UART 'n other Serial stuff.

per

Veteran Member
Joined
Jan 21, 2008
Messages
3,050
Location
Western Norway
1st:
I got this Lotus Designs LD1101 UART in a I/O card and I'm not sure if it is a clone of an 8250, 8250A, 16450 or 16450A. The card got a 1.8432MHz Crystall. The manual states it should work in both the PC, XT and AT. See attachement for a picture of the card.

2nd:
As of serial communications, you usually need 2 parts, Data Terminal Equipment (DTE, like terminals) or Data Communications Equipment (DCE, like modems and mainframe/other computers). However, the confusing part is that IBM wiered the Async adapter for the PC as a DTE, even though the IBM PC is more a computer than a terminal! But then, is older micorcomputers (like the Altair 8800 or early Apple II's) wiered the same, or are they wiered as DCE's?
 
Last edited:
It is perfectly normal for the IBM PC to be considered DTE instead of DCE. Consider their definitions:

DTE = Data Terminal Equipment
DCE = Data Communication Equipment

So in the view of the telephone company (where the specification originated) the data processing equipment was the DTE and the modem was DCE.

Now, many things that get connected to DTEs are not strictly modems. Serial printers are a good example. Usually they were considered DCEs to make the cabling to terminals and computers easier, but it varies from manufacturer to manufactuer.

I can't answer the chip question - I would like to see the other chips on the card more clearly and see their model numbers.
 
I can't answer the chip question - I would like to see the other chips on the card more clearly and see their model numbers.

The UART (upper left) is labbeled:
LOTUS DESIGNS
LD1101
8817LDC

The printer logic (middle right) is labbeled:
SILICON LOGIC
PRINTER
805C8820

The IC's above the printer IC is 75188s & 75189s (for converting from TTL to RS-232) under the printer logic there are one 74LS125A (left) and one 74LS245 (rigth). to the left for the 74LS125A, there are a PLHS18P8AN. Under the UART and the secondary and empty UART socket, there are a 74LS00 (upper) and another 74LS125A. The rest is just the header for a secondary Seriel port, the 1.8432MHz Crystall and jumpers/swiches for IRQ and I/O ports.
 
Then I doubt it will work in my XT without replacing the BIOS routine with a device driver.

Actually I think it should - aren't UARTs backward compatible?

Off-topic: your profile says you're from West Norway. I visited the Lofoten islands this past summer. Beautiful! One of the most beautiful places I've ever been. :)
 
Last edited:
Actually I think it should - aren't UARTs backward compatible?

Off-topic: your profile says you're from West Norway. I visited the Lofoten islands this past summer. Beautiful! One of the most beautiful places I've ever been. :)

Didn't the 8250(-B) have a bug? IIRC, The XT BIOS is ajusted to work with that bug, but it requires that the bug is presented... For some reason, the 16450 fixed the bug.

---

Even though Lofoten is in the west, here in Norway we consider Lofoten being in North-Norway. I've not been in Lofoten before, but I've been to Tromsø. I will agree it's nice there.
 
Last edited:
Didn't the 8250(-B) have a bug? IIRC, The XT BIOS is ajusted to work with that bug, but it requires that the bug is presented... For some reason, the 16450 fixed the bug.

Yes, there was a bug or two in the original 8250 (and 8250B) UARTs, but they dealt with race conditions and interrupt processing. But your PC BIOS doesn't use 8250 interrupts (there is a lot of misinformation out there on the subject), so using a 16C450 shouldn't matter.

Most terminal and BBS software uses its own routines for serial comm, not the BIOS--and there are simple ways for a program to tell the difference between an 8250 and an 8250A/16450--and most good programs do.
 
Yes, there was a bug or two in the original 8250 (and 8250B) UARTs, but they dealt with race conditions and interrupt processing. But your PC BIOS doesn't use 8250 interrupts (there is a lot of misinformation out there on the subject), so using a 16C450 shouldn't matter.

Most terminal and BBS software uses its own routines for serial comm, not the BIOS--and there are simple ways for a program to tell the difference between an 8250 and an 8250A/16450--and most good programs do.

So this is worng then...
 
So this is worng then...

I've seen that reproduced all the place and can find nothing in the 5150 BIOS code that would account for that. It might be that some PCs (not IBM) relied on the bug, but the problem with the 8250 dealt specifically with interrupts. (Remember that the 8250 had een in use long before the PC).

In particular, the 8250 may lose THRE interrupt if the THRE and Receive Data (RD) or the Line Status (LS) interrupts occur simultaneously. RD and LS have higher priority than THRE which causes the lower priority interrupt to be lost.

But the PC BIOS doesn't use interrupts for the 8250 comm routines.

The bug could be circumvented by any one of the following methods:
  • Disable/re-enable THRE interrupt via the IER after processing RD and LS interrupts.
  • While inside the RD and LS interrupt routines check the THRE bit and set a flag that a THRE interrupt was waiting.
  • Poll the THRE bit instead of using interrupts.
It is true that the 8250A, 16450 and later chips have an extra "scratch pad" register, but this isn't used for anything other than to tell the difference between an 8250 and 8250A (and later). But the 5170 BOS doesn't check for it.

I'm willing to admit that I could be wrong. If someone would stick an 8250A or 16450 in an 8250 socket on a 5150 and tell me that it fails POST, I'll concede that there's some mystery code in the BIOS that I don't understand.
 
I've seen that reproduced all the place and can find nothing in the 5150 BIOS code that would account for that. It might be that some PCs (not IBM) relied on the bug, but the problem with the 8250 dealt specifically with interrupts. (Remember that the 8250 had een in use long before the PC).

In particular, the 8250 may lose THRE interrupt if the THRE and Receive Data (RD) or the Line Status (LS) interrupts occur simultaneously. RD and LS have higher priority than THRE which causes the lower priority interrupt to be lost.

But the PC BIOS doesn't use interrupts for the 8250 comm routines.

The bug could be circumvented by any one of the following methods:
  • Disable/re-enable THRE interrupt via the IER after processing RD and LS interrupts.
  • While inside the RD and LS interrupt routines check the THRE bit and set a flag that a THRE interrupt was waiting.
  • Poll the THRE bit instead of using interrupts.
It is true that the 8250A, 16450 and later chips have an extra "scratch pad" register, but this isn't used for anything other than to tell the difference between an 8250 and 8250A (and later). But the 5170 BOS doesn't check for it.

I'm willing to admit that I could be wrong. If someone would stick an 8250A or 16450 in an 8250 socket on a 5150 and tell me that it fails POST, I'll concede that there's some mystery code in the BIOS that I don't understand.

I've actually kept an 16450 in my XT for some time... no difference on POST, however, I have not tried to use any devices with it.
 
I've seen that reproduced all the place and can find nothing in the 5150 BIOS code that would account for that. It might be that some PCs (not IBM) relied on the bug, but the problem with the 8250 dealt specifically with interrupts. (Remember that the 8250 had een in use long before the PC).
According to various sources, the 8250 had multiple flaws. I can't find a list of the flaws but the one you've quoted is described by various sources. And so what about the other flaws. At least one of them may not be interrupt related, and is what the BIOS is coded for. Anyone have a list of the 8250 flaws?

If someone would stick an 8250A or 16450 in an 8250 socket on a 5150 and tell me that it fails POST, I'll concede that there's some mystery code in the BIOS that I don't understand.
The POST does a series of basic/crude tests only, and should not be relied on to indicate system serviceability or compatibility.
 
In particular, what I'd like to see is some concise statement of why a 16450 will not work on a 5150/5160.

If not, let's put that one to bed.

For what it's worth, I've seen 8250s on 386 boxes as original equipment. Yes, they're speed-limited and suffer from the race condition that I described, but they work just fine on external modems of the time (i.e. < 9600 bps).
 
Back
Top