text: #ifdef SCPU_CPP
  
  void sCPU::queue_event(unsigned id) {
    switch(id) {
      //interrupts triggered during (H)DMA do not trigger immediately after
      case EventIrqLockRelease: {
        status.irq_lock = false;
      } break;
  
      //ALU multiplication / division results are not immediately calculated;
      //the exact formula for the calculations are unknown, but this lock at least
      //allows emulation to avoid returning to fully computed results too soon.
      case EventAluLockRelease: {
        status.alu_lock = false;
      } break;
  
      //S-CPU WRAM consists of two 64kbyte DRAM chips, which must be refreshed
      //once per scanline to avoid memory decay.
      case EventDramRefresh: {
        add_clocks(40);
      } break;
  
      //HDMA init routine; occurs once per frame
      case EventHdmaInit: {
        cycle_edge_state |= EventFlagHdmaInit;
      } break;
  
      //HDMA run routine; occurs once per scanline
      case EventHdmaRun: {
        cycle_edge_state |= EventFlagHdmaRun;
      } break;
    }
  }
  
  #endif
  