INLINE void WRPORT_W(int mode, UINT16 addr, UINT16 value) { if( mode == 0 ) { io_write_byte_8((UINT16)(addr),value & 0xff); io_write_byte_8((UINT16)(addr+1),(value >> 8) & 0xff); }
INLINE void WRPORT_B(int mode, UINT16 addr, UINT8 value) { if( mode == 0 ) { io_write_byte_8(addr,value); } else { /* how to handle MMU writes? */ } }
void h8_register_write8(UINT32 address, UINT8 val) { UINT8 reg; address &= 0xffffff; reg = address & 0xff; if(reg >= 0x60 && reg <= 0x9f) { h8_itu_write8(reg, val); } switch (reg) { case 0xb3: io_write_byte(H8_SERIAL_A, val); break; case 0xbb: io_write_byte(H8_SERIAL_B, val); break; case 0xc7: io_write_byte_8(H8_PORT4, val); break; case 0xcb: // port 6 data io_write_byte_8(H8_PORT6, val); break; case 0xce: // port 7 data io_write_byte_8(H8_PORT7, val); break; case 0xcf: // port 8 data io_write_byte_8(H8_PORT8, val); break; case 0xd2: // port 9 data io_write_byte_8(H8_PORT9, val); break; case 0xd3: // port a data io_write_byte_8(H8_PORTA, val); break; case 0xd6: // port b data io_write_byte_8(H8_PORTB, val); break; } h8.per_regs[reg] = val; }