int WinX68k_Reset(void) { OPM_Reset(); #ifdef CYCLONE m68000_reset(); m68000_set_reg(M68K_A7, (IPL[0x30001]<<24)|(IPL[0x30000]<<16)|(IPL[0x30003]<<8)|IPL[0x30002]); m68000_set_reg(M68K_PC, (IPL[0x30005]<<24)|(IPL[0x30004]<<16)|(IPL[0x30007]<<8)|IPL[0x30006]); #else C68k_Reset(&C68K); /* C68k_Set_Reg(&C68K, C68K_A7, (IPL[0x30001]<<24)|(IPL[0x30000]<<16)|(IPL[0x30003]<<8)|IPL[0x30002]); C68k_Set_Reg(&C68K, C68K_PC, (IPL[0x30005]<<24)|(IPL[0x30004]<<16)|(IPL[0x30007]<<8)|IPL[0x30006]); */ C68k_Set_AReg(&C68K, 7, (IPL[0x30001]<<24)|(IPL[0x30000]<<16)|(IPL[0x30003]<<8)|IPL[0x30002]); C68k_Set_PC(&C68K, (IPL[0x30005]<<24)|(IPL[0x30004]<<16)|(IPL[0x30007]<<8)|IPL[0x30006]); #endif Memory_Init(); CRTC_Init(); DMA_Init(); MFP_Init(); FDC_Init(); FDD_Reset(); SASI_Init(); SCSI_Init(); IOC_Init(); SCC_Init(); PIA_Init(); RTC_Init(); TVRAM_Init(); GVRAM_Init(); BG_Init(); Pal_Init(); IRQH_Init(); MIDI_Init(); //WinDrv_Init(); //C68K.ICount = 0; m68000_ICountBk = 0; ICount = 0; DSound_Stop(); SRAM_VirusCheck(); //CDROM_Init(); DSound_Play(); return TRUE; }
UINT8 DSound_Destroy(void* drvObj) { DRV_DSND* drv = (DRV_DSND*)drvObj; if (drv->devState != 0) DSound_Stop(drvObj); if (drv->hThread != NULL) { OSThread_Cancel(drv->hThread); OSThread_Deinit(drv->hThread); } if (drv->hSignal != NULL) OSSignal_Deinit(drv->hSignal); if (drv->hMutex != NULL) OSMutex_Deinit(drv->hMutex); free(drv); activeDrivers --; return AERR_OK; }