path: root/z80irq.h
Commit message (Collapse)AuthorAgeFilesLines
* Add breakpoint/watchpoint interfaceH. Peter Anvin2020-09-291-1/+1
* Use C11 <stdatomic.h>; enable script filesH. Peter Anvin2019-12-091-3/+3
| | | | | | | | | The only really portable way to do lockless atomics is <stdatomic.h>, so use it even though it is C11. It is almost 2020 after all... This hopefully will work better on non-x86 platforms? Add support for an auto-typed script file. Idea by Mikael Bonnier.
* Run Nindent for consistent C code styleH. Peter Anvin2018-11-141-8/+9
* Avoid cmpxchg() for bit set/bit clear on non-x86H. Peter Anvin2018-10-301-2/+8
| | | | | We can use an atomic and/or instead. As a result, inline z80_[clear_]interrupt().
* irq: block specific interrupts until EOI receivedH. Peter Anvin2018-10-301-3/+9
| | | | | | | | Even if interrupts is enabled, the interrupting device will normally block interrupts until EOI is received; this is true for all actual Z80 series devices. If we ever have to deal with devices which don't, we can add a flag of some sort at that time (the only way this could happen on ABC80 or 800 is if an interrupt came from the external bus.)
* irq: change the IRQ interface to use struct z80_irq consistentlyH. Peter Anvin2018-10-291-4/+4
| | | | | | | | | It is better than to futz with numeric priority levels, even though it otherwise would be theoretically possible to use a shared z80_irq structure for more than one interrupt: it is simply not worth it. Using struct z80_irq * consistently makes for a more flexible API in the future.
* Better, asynchronous IRQ handling; move SDL handling to sep. threadH. Peter Anvin2018-10-291-0/+31
Make the IRQ system significantly more accurate with regards to how a real Z80 system works. Make the system reentrant. Move the SDL event and video handling into a separate thread.