static void Reset(void) { int u0; v30mz_reset(); /* Reset CPU */ WSwan_MemoryReset(); WSwan_GfxReset(); WSwan_SoundReset(); WSwan_InterruptReset(); WSwan_RTCReset(); WSwan_EEPROMReset(); for(u0=0;u0<0xc9;u0++) { if(u0 != 0xC4 && u0 != 0xC5 && u0 != 0xBA && u0 != 0xBB) WSwan_writeport(u0,startio[u0]); } v30mz_set_reg(NEC_SS,0); v30mz_set_reg(NEC_SP,0x2000); if(IsWSR) { v30mz_set_reg(NEC_AW, WSRCurrentSong); } }
JNIEXPORT void JNICALL Java_uk_org_cardboardbox_wonderdroid_WonderSwan_reset(JNIEnv * env, jclass obj) { LOGD("v30mz_reset()"); v30mz_reset(); LOGD("WSwan_MemoryReset()"); WSwan_MemoryReset(); LOGD("WSwan_GfxReset()"); WSwan_GfxReset(); LOGD("WSwan_SoundReset()"); wswan_soundreset(); LOGD("WSwan_InterruptReset()"); WSwan_InterruptReset(); LOGD("WSwan_RTCReset()"); WSwan_RTCReset(); LOGD("WSwan_EEPROMReset()"); WSwan_EEPROMReset(); wsMakeTiles(); wsSetVideo(wsVMode, TRUE); for (int u0 = 0; u0 < 0xc9; u0++) WSwan_writeport(u0, startio[u0]); v30mz_set_reg(NEC_SS, 0); v30mz_set_reg(NEC_SP, 0x2000); }
void WSwanDBG_SetRegister(const std::string &name, uint32 value) { if(name == "IP") v30mz_set_reg(NEC_PC, value); else if(name == "AX") v30mz_set_reg(NEC_AW, value); else if(name == "BX") v30mz_set_reg(NEC_BW, value); else if(name == "CX") v30mz_set_reg(NEC_CW, value); else if(name == "DX") v30mz_set_reg(NEC_DW, value); else if(name == "SP") v30mz_set_reg(NEC_SP, value); else if(name == "BP") v30mz_set_reg(NEC_BP, value); else if(name == "SI") v30mz_set_reg(NEC_IX, value); else if(name == "DI") v30mz_set_reg(NEC_IY, value); else if(name == "CS") v30mz_set_reg(NEC_PS, value); else if(name == "SS") v30mz_set_reg(NEC_SS, value); else if(name == "DS") v30mz_set_reg(NEC_DS0, value); else if(name == "ES") v30mz_set_reg(NEC_DS1, value); }