Serial interfaces (was Re: Any former Psion 5 owners out there?)

Charlie Carothers 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 
scheme?

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
> that, 
> 
>> 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. 
> 
> -tony
> 




More information about the cctalk mailing list