diff options
Diffstat (limited to 'src/emu/cpu/g65816/g65816.c')
-rw-r--r-- | src/emu/cpu/g65816/g65816.c | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/src/emu/cpu/g65816/g65816.c b/src/emu/cpu/g65816/g65816.c index 503e1a5421c..143afc9c9d8 100644 --- a/src/emu/cpu/g65816/g65816.c +++ b/src/emu/cpu/g65816/g65816.c @@ -584,39 +584,39 @@ translation of Breath of Fire 2 to work. More weirdness: we might need to leave 8 CPU cycles for division at first, since using 16 produces bugs (see e.g. Triforce pieces in Zelda 3 intro) */ -static WRITE8_HANDLER( wrmpya_w ) +WRITE8_MEMBER( _5a22_device::wrmpya_w ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); cpustate->wrmpya = data; } -static WRITE8_HANDLER( wrmpyb_w ) +WRITE8_MEMBER( _5a22_device::wrmpyb_w ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); cpustate->wrmpyb = data; cpustate->rdmpy = cpustate->wrmpya * cpustate->wrmpyb; /* TODO: cpustate->rddiv == 0? */ } -static WRITE8_HANDLER( wrdivl_w ) +WRITE8_MEMBER( _5a22_device::wrdivl_w ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); cpustate->wrdiv = (data) | (cpustate->wrdiv & 0xff00); } -static WRITE8_HANDLER( wrdivh_w ) +WRITE8_MEMBER( _5a22_device::wrdivh_w ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); cpustate->wrdiv = (data << 8) | (cpustate->wrdiv & 0xff); } -static WRITE8_HANDLER( wrdvdd_w ) +WRITE8_MEMBER( _5a22_device::wrdvdd_w ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); UINT16 quotient, remainder; cpustate->dvdd = data; @@ -628,67 +628,67 @@ static WRITE8_HANDLER( wrdvdd_w ) cpustate->rdmpy = remainder; } -static WRITE8_HANDLER( memsel_w ) +WRITE8_MEMBER( _5a22_device::memsel_w ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); cpustate->fastROM = data & 1; } -static READ8_HANDLER( rddivl_r ) +READ8_MEMBER( _5a22_device::rddivl_r ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); return cpustate->rddiv & 0xff; } -static READ8_HANDLER( rddivh_r ) +READ8_MEMBER( _5a22_device::rddivh_r ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); return cpustate->rddiv >> 8; } -static READ8_HANDLER( rdmpyl_r ) +READ8_MEMBER( _5a22_device::rdmpyl_r ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); return cpustate->rdmpy & 0xff; } -static READ8_HANDLER( rdmpyh_r ) +READ8_MEMBER( _5a22_device::rdmpyh_r ) { - g65816i_cpu_struct *cpustate = get_safe_token(&space.device()); + g65816i_cpu_struct *cpustate = get_safe_token(this); return cpustate->rdmpy >> 8; } -static ADDRESS_MAP_START(_5a22_map, AS_PROGRAM, 8, legacy_cpu_device) - AM_RANGE(0x4202, 0x4202) AM_MIRROR(0xbf0000) AM_WRITE_LEGACY(wrmpya_w) - AM_RANGE(0x4203, 0x4203) AM_MIRROR(0xbf0000) AM_WRITE_LEGACY(wrmpyb_w) - AM_RANGE(0x4204, 0x4204) AM_MIRROR(0xbf0000) AM_WRITE_LEGACY(wrdivl_w) - AM_RANGE(0x4205, 0x4205) AM_MIRROR(0xbf0000) AM_WRITE_LEGACY(wrdivh_w) - AM_RANGE(0x4206, 0x4206) AM_MIRROR(0xbf0000) AM_WRITE_LEGACY(wrdvdd_w) +static ADDRESS_MAP_START(_5a22_map, AS_PROGRAM, 8, _5a22_device) + AM_RANGE(0x4202, 0x4202) AM_MIRROR(0xbf0000) AM_WRITE(wrmpya_w) + AM_RANGE(0x4203, 0x4203) AM_MIRROR(0xbf0000) AM_WRITE(wrmpyb_w) + AM_RANGE(0x4204, 0x4204) AM_MIRROR(0xbf0000) AM_WRITE(wrdivl_w) + AM_RANGE(0x4205, 0x4205) AM_MIRROR(0xbf0000) AM_WRITE(wrdivh_w) + AM_RANGE(0x4206, 0x4206) AM_MIRROR(0xbf0000) AM_WRITE(wrdvdd_w) - AM_RANGE(0x420d, 0x420d) AM_MIRROR(0xbf0000) AM_WRITE_LEGACY(memsel_w) + AM_RANGE(0x420d, 0x420d) AM_MIRROR(0xbf0000) AM_WRITE(memsel_w) - AM_RANGE(0x4214, 0x4214) AM_MIRROR(0xbf0000) AM_READ_LEGACY(rddivl_r) - AM_RANGE(0x4215, 0x4215) AM_MIRROR(0xbf0000) AM_READ_LEGACY(rddivh_r) - AM_RANGE(0x4216, 0x4216) AM_MIRROR(0xbf0000) AM_READ_LEGACY(rdmpyl_r) - AM_RANGE(0x4217, 0x4217) AM_MIRROR(0xbf0000) AM_READ_LEGACY(rdmpyh_r) + AM_RANGE(0x4214, 0x4214) AM_MIRROR(0xbf0000) AM_READ(rddivl_r) + AM_RANGE(0x4215, 0x4215) AM_MIRROR(0xbf0000) AM_READ(rddivh_r) + AM_RANGE(0x4216, 0x4216) AM_MIRROR(0xbf0000) AM_READ(rdmpyl_r) + AM_RANGE(0x4217, 0x4217) AM_MIRROR(0xbf0000) AM_READ(rdmpyh_r) ADDRESS_MAP_END -void set_5a22_map(legacy_cpu_device &cpu) +void _5a22_device::set_5a22_map() { - cpu.space(AS_PROGRAM).install_legacy_write_handler(0x4202, 0x4202, 0, 0xbf0000, FUNC(wrmpya_w)); - cpu.space(AS_PROGRAM).install_legacy_write_handler(0x4203, 0x4203, 0, 0xbf0000, FUNC(wrmpyb_w)); - cpu.space(AS_PROGRAM).install_legacy_write_handler(0x4204, 0x4204, 0, 0xbf0000, FUNC(wrdivl_w)); - cpu.space(AS_PROGRAM).install_legacy_write_handler(0x4205, 0x4205, 0, 0xbf0000, FUNC(wrdivh_w)); - cpu.space(AS_PROGRAM).install_legacy_write_handler(0x4206, 0x4206, 0, 0xbf0000, FUNC(wrdvdd_w)); + space(AS_PROGRAM).install_write_handler(0x4202, 0x4202, 0, 0xbf0000, write8_delegate(FUNC(_5a22_device::wrmpya_w),this)); + space(AS_PROGRAM).install_write_handler(0x4203, 0x4203, 0, 0xbf0000, write8_delegate(FUNC(_5a22_device::wrmpyb_w),this)); + space(AS_PROGRAM).install_write_handler(0x4204, 0x4204, 0, 0xbf0000, write8_delegate(FUNC(_5a22_device::wrdivl_w),this)); + space(AS_PROGRAM).install_write_handler(0x4205, 0x4205, 0, 0xbf0000, write8_delegate(FUNC(_5a22_device::wrdivh_w),this)); + space(AS_PROGRAM).install_write_handler(0x4206, 0x4206, 0, 0xbf0000, write8_delegate(FUNC(_5a22_device::wrdvdd_w),this)); - cpu.space(AS_PROGRAM).install_legacy_write_handler(0x420d, 0x420d, 0, 0xbf0000, FUNC(memsel_w)); + space(AS_PROGRAM).install_write_handler(0x420d, 0x420d, 0, 0xbf0000, write8_delegate(FUNC(_5a22_device::memsel_w),this)); - cpu.space(AS_PROGRAM).install_legacy_read_handler(0x4214, 0x4214, 0, 0xbf0000, FUNC(rddivl_r)); - cpu.space(AS_PROGRAM).install_legacy_read_handler(0x4215, 0x4215, 0, 0xbf0000, FUNC(rddivh_r)); - cpu.space(AS_PROGRAM).install_legacy_read_handler(0x4216, 0x4216, 0, 0xbf0000, FUNC(rdmpyl_r)); - cpu.space(AS_PROGRAM).install_legacy_read_handler(0x4217, 0x4217, 0, 0xbf0000, FUNC(rdmpyh_r)); + space(AS_PROGRAM).install_read_handler(0x4214, 0x4214, 0, 0xbf0000, read8_delegate(FUNC(_5a22_device::rddivl_r),this)); + space(AS_PROGRAM).install_read_handler(0x4215, 0x4215, 0, 0xbf0000, read8_delegate(FUNC(_5a22_device::rddivh_r),this)); + space(AS_PROGRAM).install_read_handler(0x4216, 0x4216, 0, 0xbf0000, read8_delegate(FUNC(_5a22_device::rdmpyl_r),this)); + space(AS_PROGRAM).install_read_handler(0x4217, 0x4217, 0, 0xbf0000, read8_delegate(FUNC(_5a22_device::rdmpyh_r),this)); } CPU_SET_INFO( _5a22 ) |