software sould clear PICSR after it cleared
device's interrupt request register. So if there is new interrupt from a
device, it will automatically set the bit in PICSR again.
My point is that the *architectural* description of the PIC is tied to its
current *implementation*, the OR1200. If another implementation ever arises
in which the peripherals deliver an edge-triggered interrupt signal to the
PIC rather than a level-triggered interrupt, then software can not safely
clear the PICSR due to the race condition I mentioned in my last message,
i.e. without risking dropping an interrupt from a different device than the
one being serviced. I believe that it is for this reason every interrupt
controller I have ever seen (other than the OR1k PIC) provides a means to
*atomically* mask out a particular pending interrupt without affecting other
pending interrupts.