timing.hpp 841 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. enum {
  2. EventNone,
  3. EventIrqLockRelease,
  4. EventAluLockRelease,
  5. EventDramRefresh,
  6. EventHdmaInit,
  7. EventHdmaRun,
  8. //cycle edge
  9. EventFlagHdmaInit = 1 << 0,
  10. EventFlagHdmaRun = 1 << 1,
  11. };
  12. unsigned cycle_edge_state;
  13. //timing.cpp
  14. unsigned dma_counter();
  15. void add_clocks(unsigned clocks);
  16. void scanline();
  17. alwaysinline void precycle_edge();
  18. alwaysinline void cycle_edge();
  19. void last_cycle();
  20. void timing_power();
  21. void timing_reset();
  22. //irq.cpp
  23. alwaysinline void poll_interrupts();
  24. void nmitimen_update(uint8 data);
  25. bool rdnmi();
  26. bool timeup();
  27. alwaysinline bool nmi_test();
  28. alwaysinline bool irq_test();
  29. //joypad.cpp
  30. void run_auto_joypad_poll();
  31. //event.cpp
  32. void queue_event(unsigned); //priorityqueue callback function