Serial interfaces (was Re: Any former Psion 5 owners out there?)
csquared3 at tx.rr.com
Mon Jul 26 23:52:13 CDT 2010
Tony Duell wrote:
>>>> DOS-based software containing its own UART driver. I don't even want to
>>>> think about trying to make that work on a PCI card RS232 port.
>>> What is the great problem with doing this?
>> To be honest, I've never really looked into it in detail. The PCI bus
>> interrupt sharing thing always sort of scared me off from going any
> All decent buses allow you to share interrupts -- the ''design' of the
> interrupt suystem on the ISA bus is one reason to hate that bus..
> Very well designed buses (Unibus :-)) have each card send an interrupt
> vector which directs the CPU to the right ISR.
I'm really getting off into something I know absolutely nothing about
here, but I'm just curious as to how each card knows what interrupt
vector value to send? Jumpers/switches on each card? A "Unibus
Interrupt Vector Value Guru" somewhere who assigns the values? other
One others (e.g. HP's
> DIO-1 bus, the ISR has poll each card using that interrupt level to see
> if it's the source of the interrupt.
I've used an 8-UART RS232 card on ISA bus under DOS that worked
something like that. It generated only 1 interrupt and the software had
to look to see which UART or UARTs caused the interrupt. Actually works
rather well if used judiciously. By judiciously I mean driving 8 modems
at not more than 33,600 baud worked really well. This was in the days
when a 386 was considered a really fast CPU too. :-)
I assume PCI does something like
>> further. Maybe it's not as bad as I visualize. Actually, it's probably
>> worse than I imagine. I do recall that a contractor friend of mine
>> wrote a Windows driver for a custom PCI card designed by the EE's at a
>> company I once worked for. His discussion of that effort did not make
>> me very optimistic either. I'll have to ask him more about it some
>> time. There is obviously a great deal I don't know about this. I
> Nor me. as I said, I don't own a PCI machine (and probably never will)
>> probably should become more informed before exposing my vast ignorance
>> any further. :-)
>> OK, just for grins I Googled "PCI bus I/O address" (without the quotes).
>> Looks like there is some sort of scheme where BIOS talks to each PCI
>> card on power up and dynamically assigns the I/O addresses for each card
>> within the 32-bit PCI I/O address space - whatever/wherever that is.
> YEs, that was part of the 'no configuration links/switches' idea. I am
> not sure thats' a Good Thing, but it can't be too hard to work with.
>> Must have been invented by the same folks who invented USB enumeration!
> Plenty of machines, including many classics, had some form of
> autoconfiguration. Having doen battle -- and won -- with the HP71's
> automaticlaly coffiguriuig nmemory, I can't beelive this is any worse.
>>> Having seen bits of PCI card design, I am glad I design cards for my
>>> classics with ISA, Unibus, DIO-1, etc buses. Those I can understand and
>>> wire up a card for any one of them in a couple of hours...
>> I feel rather the same way about the ISA bus. It surely was/is a nice
>> and easy interface. I suppose I'd have to admit the PCI bus has its
> The ISA bus is easy to design cards for (it's basically just the 80x86
> bus) but it does have that horrible interrupt system. The idiot who came
> up with the idea of active high, edge triggered, interrupt should be
> condemned to spenmd eternity in a part of hades having to design complex
> ISA cards and write drivers for them. He would then realise wby everyone
> else used active low level triggering.
It has been a blessedly long time since I had to write code to configure
a PIC (intel Priority Interrupt Controller) but ISTR they can be
initialized for either polarity and for either edge or level triggering.
What I don't remember is whether this could be done uniquely for each
IRQ input or whether it was a global setting for all 8 inputs to the
part. I'd go look it up, but I don't want to make my head hurt - - -
again. What I'm suggesting is that the guy who decided on high-going
edge-triggering may have been a software dummy rather than a hardware
one. :-) Totally different subject, but I figure there's gotta be a
special corner of hades reserved for whoever invented segment:offset
addressing as well...
>> advantages, such as solving the "out of interrupts" problem (I think).
>> I'm pretty sure it was not designed with the electronics hobbyist in
>> mind, but then not a lot of things are - the economic impetus is just
>> not there I'm afraid.
> Alas not. But PCI is notably harder to design for than many of the older
> buses, which may well also not have been designed with the hobbyist in
> mind,but at least a serious hobbyist could wire-wrap an interface card
> and expect it to work.
More information about the cctalk