Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: KA630: how does console I/O actually work?
>> at IPL 14 (hex). That is, an interrupt is
>> requested whenever the function {interrupt
>> enable AND ready} changes from 0 to 1.
>> Note in particular the last sentence.
> The problem is that this isn't actually telling anything about if it
> is edge triggered or level triggered.
Well, it says that it is triggered when something changes from 0 to 1,
which sounds like an edge to me. If it were a traditional
level-triggered interrupt, it would be more like "an interrupt is
requsted whenever DONE and IE are both set".
> Because that description is equally true for both. The important
> question is when is the interrupt request dropped. Is it dropped at
> interrupt acknowledge, or at the clearing of IE or DONE?
If it's dropped at interrupt ack, it's not very level-triggered, is it?
Because if DONE&IE is still true, a level-triggered interrupt will
still be getting requested, leading to the TX livelock I saw.
> [...]
> Note the last sentence which implies that there is no memory.
Well, it appears there is memory, at least one bit of it, indicating
whether the interrupt has been acked (which apparently ==taken, here)
or not.
> Also, for RX, it's pretty clear in the simh code that the interrupt
> request is removed when DONE or IE is cleared.
True.
> But I'm still at loss for how TX works based on what I've seen so
> far.
Exactly. It appaers to be level-triggered in some respects and
edge-triggered in others. That's why I'm finding it confusing enough
to ask after someone who really knows the hardware. Emulating it as
edge-triggered with the request state cleared on I/O reset seems to
work in practice, but that's a long way from it being correct.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse%rodents-montreal.org@localhost
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index