void DACWriteWord(uint32_t offset, uint16_t data, uint32_t who/*= UNKNOWN*/) { if (offset == LTXD + 2) *ltxd = data; else if (offset == RTXD + 2) *rtxd = data; else if (offset == SCLK + 2) // Sample rate { WriteLog("DAC: Writing %u to SCLK (by %s)...\n", data, whoName[who]); *sclk = data & 0xFF; JERRYI2SInterruptTimer = -1; RemoveCallback(JERRYI2SCallback); JERRYI2SCallback(); } else if (offset == SMODE + 2) { // serialMode = data; *smode = data; WriteLog("DAC: %s writing to SMODE. Bits: %s%s%s%s%s%s [68K PC=%08X]\n", whoName[who], (data & 0x01 ? "INTERNAL " : ""), (data & 0x02 ? "MODE " : ""), (data & 0x04 ? "WSEN " : ""), (data & 0x08 ? "RISING " : ""), (data & 0x10 ? "FALLING " : ""), (data & 0x20 ? "EVERYWORD" : ""), m68k_get_reg(NULL, M68K_REG_PC)); } }
void DACWriteWord(uint32_t offset, uint16_t data, uint32_t who) { if (offset == LTXD + 2) *ltxd = data; else if (offset == RTXD + 2) *rtxd = data; else if (offset == SCLK + 2) // Sample rate { *sclk = data & 0xFF; JERRYI2SInterruptTimer = -1; RemoveCallback(JERRYI2SCallback); JERRYI2SCallback(); } else if (offset == SMODE + 2) *smode = data; }