diff options
author | Aaron Giles <aaron@aarongiles.com> | 2012-09-17 07:43:37 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2012-09-17 07:43:37 +0000 |
commit | cc16777cce9c5a2cac9d88c595b6b5f4ee70a2ea (patch) | |
tree | 496c31635729f6af1e37f3337b50e91b1f9fde97 /src/mess/drivers/abc1600.c | |
parent | e25c13f2532730ebf50d0cffa0147393fd8e0228 (diff) |
Memory handler normalization, part 1.
READ/WRITE_DEVICE*_HANDLERs are now passed an
address_space &, and the 8-bit variants get a mem_mask
as well. This means they are now directly compatible
with the member function delegates. Added a generic
address space to the driver_device that can be used
when no specific address space is available. Also
added DECLARE_READ/WRITE_DEVICE*_HANDLER macros to
declare device callbacks with default mem_mask
parameters. [Aaron Giles]
Diffstat (limited to 'src/mess/drivers/abc1600.c')
-rw-r--r-- | src/mess/drivers/abc1600.c | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/src/mess/drivers/abc1600.c b/src/mess/drivers/abc1600.c index 904c11329e1..bb87142fc62 100644 --- a/src/mess/drivers/abc1600.c +++ b/src/mess/drivers/abc1600.c @@ -182,8 +182,8 @@ UINT8 abc1600_state::read_ram(offs_t offset) else if (offset < 0x180000) { // video RAM - address_space *program = m_maincpu->space(AS_PROGRAM); - data = video_ram_r(*program, offset); + address_space &program = *m_maincpu->space(AS_PROGRAM); + data = video_ram_r(program, offset); } else { @@ -209,8 +209,8 @@ void abc1600_state::write_ram(offs_t offset, UINT8 data) else if (offset < 0x180000) { // video RAM - address_space *program = m_maincpu->space(AS_PROGRAM); - video_ram_w(*program, offset, data); + address_space &program = *m_maincpu->space(AS_PROGRAM); + video_ram_w(program, offset, data); } else { @@ -242,7 +242,7 @@ UINT8 abc1600_state::read_io(offs_t offset) UINT8 abc1600_state::read_internal_io(offs_t offset) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); UINT8 data = 0; if (X11) @@ -250,7 +250,7 @@ UINT8 abc1600_state::read_internal_io(offs_t offset) switch (A10_A9_A8) { case IORD0: - data = iord0_r(*program, offset); + data = iord0_r(program, offset); break; default: @@ -262,18 +262,18 @@ UINT8 abc1600_state::read_internal_io(offs_t offset) switch (A10_A9_A8) { case FLP: - data = wd17xx_r(m_fdc, A2_A1); + data = wd17xx_r(m_fdc, program, A2_A1); break; case CRT: if (A0) - data = m_crtc->register_r(*program, offset); + data = m_crtc->register_r(program, offset); else - data = m_crtc->status_r(*program, offset); + data = m_crtc->status_r(program, offset); break; case DRT: - data = z80dart_ba_cd_r(m_dart, A2_A1 ^ 0x03); + data = z80dart_ba_cd_r(m_dart, program, A2_A1 ^ 0x03); break; case DMA0: @@ -289,11 +289,11 @@ UINT8 abc1600_state::read_internal_io(offs_t offset) break; case SCC: - data = m_scc->reg_r(*program, A1_A2); + data = m_scc->reg_r(program, A1_A2); break; case CIO: - data = m_cio->read(*program, A2_A1); + data = m_cio->read(program, A2_A1); break; } } @@ -467,31 +467,31 @@ void abc1600_state::write_io(offs_t offset, UINT8 data) void abc1600_state::write_internal_io(offs_t offset, UINT8 data) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); if (X11) { switch (A10_A9_A8) { case IOWR0: - iowr0_w(*program, offset, data); + iowr0_w(program, offset, data); break; case IOWR1: - iowr1_w(*program, offset, data); + iowr1_w(program, offset, data); break; case IOWR2: - iowr2_w(*program, offset, data); + iowr2_w(program, offset, data); break; case FW: if (!A7) { if (A0) - fw1_w(*program, offset, data); + fw1_w(program, offset, data); else - fw0_w(*program, offset, data); + fw0_w(program, offset, data); } else { @@ -500,11 +500,11 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data) break; case DMAMAP: - dmamap_w(*program, offset, data); + dmamap_w(program, offset, data); break; case SPEC_CONTR_REG: - spec_contr_reg_w(*program, offset, data); + spec_contr_reg_w(program, offset, data); break; default: @@ -516,18 +516,18 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data) switch (A10_A9_A8) { case FLP: - wd17xx_w(m_fdc, A2_A1, data); + wd17xx_w(m_fdc, program, A2_A1, data); break; case CRT: if (A0) - m_crtc->register_w(*program, offset, data); + m_crtc->register_w(program, offset, data); else - m_crtc->address_w(*program, offset, data); + m_crtc->address_w(program, offset, data); break; case DRT: - z80dart_ba_cd_w(m_dart, A2_A1 ^ 0x03, data); + z80dart_ba_cd_w(m_dart, program, A2_A1 ^ 0x03, data); break; case DMA0: @@ -543,11 +543,11 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data) break; case SCC: - m_scc->reg_w(*program, A1_A2, data); + m_scc->reg_w(program, A1_A2, data); break; case CIO: - m_cio->write(*program, A2_A1, data); + m_cio->write(program, A2_A1, data); break; } } @@ -770,23 +770,23 @@ void abc1600_state::write_user_memory(offs_t offset, UINT8 data) UINT8 abc1600_state::read_supervisor_memory(offs_t offset) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); UINT8 data = 0; if (!A2 && !A1) { // _EP - data = page_r(*program, offset); + data = page_r(program, offset); } else if (!A2 && A1 && A0) { // _ES - data = segment_r(*program, offset); + data = segment_r(program, offset); } else if (A2 && A1 && A0) { // _CAUSE - data = cause_r(*program, offset); + data = cause_r(program, offset); } return data; @@ -799,22 +799,22 @@ UINT8 abc1600_state::read_supervisor_memory(offs_t offset) void abc1600_state::write_supervisor_memory(offs_t offset, UINT8 data) { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); if (!A2 && !A1) { // _WEP - page_w(*program, offset, data); + page_w(program, offset, data); } else if (!A2 && A1 && A0) { // _WES - segment_w(*program, offset, data); + segment_w(program, offset, data); } else if (A2 && !A1 && A0) { // W(C) - task_w(*program, offset, data); + task_w(program, offset, data); } } @@ -1879,17 +1879,17 @@ void abc1600_state::machine_start() void abc1600_state::machine_reset() { - address_space *program = m_maincpu->space(AS_PROGRAM); + address_space &program = *m_maincpu->space(AS_PROGRAM); // clear special control register for (int i = 0; i < 8; i++) { - spec_contr_reg_w(*program, 0, i); + spec_contr_reg_w(program, 0, i); } // clear floppy registers - fw0_w(*program, 0, 0); - fw1_w(*program, 0, 0); + fw0_w(program, 0, 0); + fw1_w(program, 0, 0); // clear task register m_task = 0; |