diff options
author | cam900 <dbtlrchl@naver.com> | 2019-02-15 16:04:20 +0900 |
---|---|---|
committer | cam900 <dbtlrchl@naver.com> | 2019-02-15 16:04:20 +0900 |
commit | c7b8147628e2e403ef3c16b67ebb8394dc11f576 (patch) | |
tree | 7d43341486b9a92eedfe34b0f852347075af7eac /src/devices/bus/coco/cococart.h | |
parent | 98657cf5d35d6a6141e8aac539e46d4389c3dd3b (diff) |
ay8910.cpp : Updates
Use shorter / correct type values, Remove unnecessary arguments in handlers, Duplicates
device/bus/coco/cococart.cpp : Allow various types of delegates for install handler
5clown.cpp : Remove unnecessary arguments in some handler
kchamp.cpp : Remove unnecessary arguments in some handler
Diffstat (limited to 'src/devices/bus/coco/cococart.h')
-rw-r--r-- | src/devices/bus/coco/cococart.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/devices/bus/coco/cococart.h b/src/devices/bus/coco/cococart.h index 3eb6f2874c1..cae4f333529 100644 --- a/src/devices/bus/coco/cococart.h +++ b/src/devices/bus/coco/cococart.h @@ -187,9 +187,35 @@ protected: // cartridges (e.g. - Orch-90, Multi-Pak interface) for their control registers, independently // of the SCS or CTS lines address_space &cartridge_space(); - void install_read_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler); - void install_write_handler(uint16_t addrstart, uint16_t addrend, write8_delegate whandler); - void install_readwrite_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler, write8_delegate whandler); + template<typename R> void install_read_handler(u16 addrstart, u16 addrend, R rhandler) + { + address_space &space(cartridge_space()); + space.install_read_handler(addrstart, addrend, rhandler); + } + template<typename W> void install_write_handler(u16 addrstart, u16 addrend, W whandler) + { + address_space &space(cartridge_space()); + space.install_write_handler(addrstart, addrend, whandler); + } + template<typename R, typename W> void install_readwrite_handler(u16 addrstart, u16 addrend, R rhandler, W whandler) + { + address_space &space(cartridge_space()); + space.install_read_handler(addrstart, addrend, rhandler); + space.install_write_handler(addrstart, addrend, whandler); + } + + void install_read_handler(u16 addrstart, u16 addrend, read8_delegate rhandler) { install_read_handler<read8_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8_delegate whandler) { install_write_handler<write8_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8m_delegate rhandler) { install_read_handler<read8m_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8m_delegate whandler) { install_write_handler<write8m_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8s_delegate rhandler) { install_read_handler<read8s_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8s_delegate whandler) { install_write_handler<write8s_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8sm_delegate rhandler) { install_read_handler<read8sm_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8sm_delegate whandler) { install_write_handler<write8sm_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8mo_delegate rhandler) { install_read_handler<read8mo_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8mo_delegate whandler) { install_write_handler<write8mo_delegate>(addrstart, addrend, whandler); } + void install_read_handler(u16 addrstart, u16 addrend, read8smo_delegate rhandler) { install_read_handler<read8smo_delegate>(addrstart, addrend, rhandler); } + void install_write_handler(u16 addrstart, u16 addrend, write8smo_delegate whandler) { install_write_handler<write8smo_delegate>(addrstart, addrend, whandler); } // setting line values void set_line_value(cococart_slot_device::line line, cococart_slot_device::line_value value); |