ElEctric_EyE wrote:
A fast enough 6502 doesn't need interrupts does it? It should have sufficient time to poll all flags/inputs within the system.
Well.. imagine if you have a very simple real-time clock in your system, maybe it's just an accurate counter which gives a tick every second. Now imagine if a program could just read a certain memory location to read the current time.. to have the correct time in that memory location you could have a little interrupt handler and use the one-per-second tick as an interrupt. So the interrupt handler would count up the time and maintain that memory region.
It would be inconvenient to have to program that as a poll in every program you write. Although I understand that was basically how the first Macs were programmed.. all user applications had to include a regime which made sure that all the housekeeping was done.
There are interrupt-less chips out there, the Parallax Propeller for example. But it can be interrupt-less because it has eight cores, and the idea is that instead of using interrupts to handle everything you just dedicate one core to each part (or one core could poll a number of housekeeping jobs, and then you don't have to think about that in your 'main' program).
For a single-chip/core system it's difficult to do without interrupts as soon as there are any real-time issues at hand. There may be a lot of time between when action is needed, but if it then has to be handled _very quickly_ you would have to poll very often.. even if nothing happened 99.999% of the time. Add a few of those and there's nothing left for processing, even if the processor is fast.
So, two issues really.. do you really want to have to include all the necessary polling in every trivial program? And can you handle real-time demands just with polling, without wasting most of the processor's time?
Edit: Ah, I didn't notice there was already a page-full of replies to that question..
-Tor