UInt8 y8950Read(Y8950* y8950, UInt16 ioPort) { switch (ioPort & 1) { case 0: return (UInt8)OPLRead(y8950->opl, 0); case 1: if (y8950->opl->address == 0x14) { mixerSync(y8950->mixer); } return (UInt8)OPLRead(y8950->opl, 1); break; } return 0xff; }
void y8950GetDebugInfo(Y8950* y8950, DbgDevice* dbgDevice) { DbgRegisterBank* regBank; // Add YM2413 registers int c = 1; int r; for (r = 0; r < sizeof(regsAvailAY8950); r++) { c += regsAvailAY8950[r]; } regBank = dbgDeviceAddRegisterBank(dbgDevice, langDbgRegsAy8950(), c); c = 0; dbgRegisterBankAddRegister(regBank, c++, "SR", 8, (UInt8)OPLRead(y8950->opl, 0)); for (r = 0; r < sizeof(regsAvailAY8950); r++) { if (regsAvailAY8950[r]) { dbgRegisterBankAddRegister(regBank, c++, regText(r), 8, y8950->opl->regs[r]); } } dbgDeviceAddMemoryBlock(dbgDevice, langDbgMemAy8950(), 0, 0, y8950->opl->deltat->memory_size, (UInt8*)y8950->opl->deltat->memory); }
static uint32_t adlib_read(void *opaque, uint32_t nport) { AdlibState *s = opaque; uint8_t data; int a = nport & 3; adlib_kill_timers (s); data = OPLRead (s->opl, a); return data; }
static IO_READ_PROTO(adlib_read) { AdlibState *s = opaque; uint8_t data; int a = nport & 3; adlib_kill_timers (s); #ifdef HAS_YMF262 data = YMF262Read (0, a); #else data = OPLRead (s->opl, a); #endif return data; }
static uint32_t adlib_read(void *opaque, uint32_t nport) { AdlibState *s = opaque; uint8_t data; int a = nport & 3; adlib_kill_timers (s); #ifdef HAS_YMF262 data = YMF262Read (0, a); #else data = OPLRead (s->opl, a); #endif return data; }