static int StateAction(StateMem *sm, int load, int data_only) { int ret = 1; unsigned int c68k_state_len = C68k_Get_State_Max_Len(); uint8 c68k_state[c68k_state_len]; C68k_Save_State(&Main68K, c68k_state); SFORMAT StateRegs[] = { SFARRAY(work_ram, 65536), SFARRAY(zram, 8192), SFVAR(zbusreq), SFVAR(zreset), SFVAR(zbusack), SFVAR(zirq), SFVAR(zbank), SFVAR(md_timestamp), SFVAR(suspend68k), SFVAR(z80_cycle_counter), SFARRAY(c68k_state, c68k_state_len), SFEND }; ret &= MDFNSS_StateAction(sm, load, data_only, StateRegs, "MAIN"); ret &= z80_state_action(sm, load, data_only, "Z80"); ret &= MDINPUT_StateAction(sm, load, data_only); ret &= MainVDP.StateAction(sm, load, data_only); ret &= MDSound_StateAction(sm, load, data_only); ret &= MDCart_StateAction(sm, load, data_only); if(load) { C68k_Load_State(&Main68K, c68k_state); z80_set_interrupt(zirq); } return(ret); }
void Z80_irq(void) { z80_set_interrupt(1); }
static void NGP_z80_writeport(uint16 port, uint8 value) { //printf("Portout: %04x %02x\n", port, value); z80_set_interrupt(0); }