Previous 199869 Revisions Next

r21985 Wednesday 20th March, 2013 at 12:04:38 UTC by Miodrag Milanović
removed devhelpr.h and trampolines in half modern devices,also southbridge also use am9517a device now (no whatsnew)
[src/emu/machine]6522via.c 8237dma.c 8237dma.h 8257dma.c 8257dma.h devhelpr.h f3853.c f3853.h ins8154.c ins8154.h k033906.c k033906.h k056230.c k056230.h
[src/mame/drivers]calchase.c dkong.c funkball.c gamecstl.c gammagic.c gticlub.c mediagx.c midqslvr.c pcxt.c photoply.c queen.c savquest.c taitowlf.c vega.c voyager.c xtom3d.c zr107.c
[src/mame/machine]konppc.c pcshare.c
[src/mess/drivers]acrnsys1.c apogee.c bebox.c dmv.c mikrosha.c mk1.c mk14.c partner.c paso1600.c pc8001.c qx10.c radio86.c vidbrain.c
[src/mess/includes]apollo.h bebox.h radio86.h
[src/mess/machine]apollo.c bebox.c partner.c radio86.c southbridge.c southbridge.h

trunk/src/emu/machine/devhelpr.h
r21984r21985
1/**********************************************************************
2
3    Generic modern device trampolines and other helpers, to minimize
4    the amount of redundant copy/pasting between modernized devices.
5
6**********************************************************************/
7
8#ifndef __DEVHELPR_H__
9#define __DEVHELPR_H__
10
11#define READ32_DEVICE_HANDLER_TRAMPOLINE(devname, funcname) \
12   READ32_DEVICE_HANDLER( funcname ) \
13   { return downcast<devname##_device*>(device)->funcname(offset); } \
14   UINT32 devname##_device::funcname(UINT32 offset)
15
16#define WRITE32_DEVICE_HANDLER_TRAMPOLINE(devname, funcname) \
17   WRITE32_DEVICE_HANDLER( funcname ) \
18   { downcast<devname##_device*>(device)->funcname(offset, data, mem_mask); } \
19   void devname##_device::funcname(UINT32 offset, UINT32 data, UINT32 mem_mask)
20
21#define READ8_DEVICE_HANDLER_TRAMPOLINE(devname, funcname) \
22   READ8_DEVICE_HANDLER( funcname ) \
23   { return downcast<devname##_device*>(device)->funcname(offset); } \
24   UINT8 devname##_device::funcname(UINT32 offset)
25
26#define WRITE8_DEVICE_HANDLER_TRAMPOLINE(devname, funcname) \
27   WRITE8_DEVICE_HANDLER( funcname ) \
28   { downcast<devname##_device*>(device)->funcname(offset, data); } \
29   void devname##_device::funcname(UINT32 offset, UINT8 data)
30
31#define READ_LINE_DEVICE_HANDLER_TRAMPOLINE(devname, funcname) \
32   READ_LINE_DEVICE_HANDLER( funcname ) \
33   { return downcast<devname##_device *>(device)->funcname(); } \
34   void devname##_device::funcname()
35
36#define WRITE_LINE_DEVICE_HANDLER_TRAMPOLINE(devname, funcname) \
37   WRITE_LINE_DEVICE_HANDLER( funcname ) \
38   { return downcast<devname##_device *>(device)->funcname(state); } \
39   void devname##_device::funcname(UINT8 state)
40
41#endif // __DEVHELPR_H__
trunk/src/emu/machine/6522via.c
r21984r21985
2424
2525#include "emu.h"
2626#include "6522via.h"
27#include "devhelpr.h"
2827
2928/***************************************************************************
3029    PARAMETERS
trunk/src/emu/machine/ins8154.c
r21984r21985
1111
1212#include "emu.h"
1313#include "ins8154.h"
14#include "devhelpr.h"
1514
1615
1716/***************************************************************************
r21984r21985
115114}
116115
117116
118READ8_DEVICE_HANDLER_TRAMPOLINE(ins8154, ins8154_r)
117READ8_MEMBER(ins8154_device::ins8154_r)
119118{
120119   UINT8 val = 0xff;
121120
r21984r21985
169168   return val;
170169}
171170
172WRITE8_DEVICE_HANDLER_TRAMPOLINE(ins8154, ins8154_porta_w)
171WRITE8_MEMBER(ins8154_device::ins8154_porta_w)
173172{
174173   m_out_a = data;
175174
r21984r21985
180179   }
181180}
182181
183WRITE8_DEVICE_HANDLER_TRAMPOLINE(ins8154, ins8154_portb_w)
182WRITE8_MEMBER(ins8154_device::ins8154_portb_w)
184183{
185184   m_out_b = data;
186185
r21984r21985
191190   }
192191}
193192
194WRITE8_DEVICE_HANDLER_TRAMPOLINE(ins8154, ins8154_w)
193WRITE8_MEMBER(ins8154_device::ins8154_w)
195194{
196195   if (offset > 0x24)
197196   {
r21984r21985
205204   switch (offset)
206205   {
207206   case 0x20:
208      ins8154_porta_w(0, data);
207      ins8154_porta_w(space, 0, data);
209208      break;
210209
211210   case 0x21:
212      ins8154_portb_w(0, data);
211      ins8154_portb_w(space, 0, data);
213212      break;
214213
215214   case 0x22:
r21984r21985
245244         /* Set bit */
246245         if (offset < 0x08)
247246         {
248            ins8154_porta_w(0, m_out_a |= offset & 0x07);
247            ins8154_porta_w(space, 0, m_out_a |= offset & 0x07);
249248         }
250249         else
251250         {
252            ins8154_portb_w(0, m_out_b |= (offset >> 4) & 0x07);
251            ins8154_portb_w(space, 0, m_out_b |= (offset >> 4) & 0x07);
253252         }
254253      }
255254      else
r21984r21985
257256         /* Clear bit */
258257         if (offset < 0x08)
259258         {
260            ins8154_porta_w(0, m_out_a & ~(offset & 0x07));
259            ins8154_porta_w(space, 0, m_out_a & ~(offset & 0x07));
261260         }
262261         else
263262         {
264            ins8154_portb_w(0, m_out_b & ~((offset >> 4) & 0x07));
263            ins8154_portb_w(space, 0, m_out_b & ~((offset >> 4) & 0x07));
265264         }
266265      }
267266
trunk/src/emu/machine/ins8154.h
r21984r21985
7373   // construction/destruction
7474   ins8154_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
7575
76   UINT8 ins8154_r(UINT32 offset);
77   void ins8154_w(UINT32 offset, UINT8 data);
76   DECLARE_READ8_MEMBER( ins8154_r );
77   DECLARE_WRITE8_MEMBER( ins8154_w );
7878
79   void ins8154_porta_w(UINT32 offset, UINT8 data);
80   void ins8154_portb_w(UINT32 offset, UINT8 data);
79   DECLARE_WRITE8_MEMBER( ins8154_porta_w );
80   DECLARE_WRITE8_MEMBER( ins8154_portb_w );
8181
8282protected:
8383   // device-level overrides
r21984r21985
110110// device type definition
111111extern const device_type INS8154;
112112
113
114
115/***************************************************************************
116    PROTOTYPES
117***************************************************************************/
118
119DECLARE_READ8_DEVICE_HANDLER( ins8154_r );
120DECLARE_WRITE8_DEVICE_HANDLER( ins8154_w );
121
122DECLARE_WRITE8_DEVICE_HANDLER( ins8154_porta_w );
123DECLARE_WRITE8_DEVICE_HANDLER( ins8154_portb_w );
124
125
126113#endif /* __INS8154_H__ */
trunk/src/emu/machine/k056230.c
r21984r21985
66
77#include "emu.h"
88#include "k056230.h"
9#include "devhelpr.h"
109
1110
1211//**************************************************************************
r21984r21985
7170}
7271
7372
74READ8_DEVICE_HANDLER_TRAMPOLINE(k056230, k056230_r)
73READ8_MEMBER(k056230_device::k056230_r)
7574{
7675   switch (offset)
7776   {
r21984r21985
10099}
101100
102101
103WRITE8_DEVICE_HANDLER_TRAMPOLINE(k056230, k056230_w)
102WRITE8_MEMBER(k056230_device::k056230_w)
104103{
105104   switch(offset)
106105   {
r21984r21985
134133//  mame_printf_debug("k056230_w: %d, %02X at %08X\n", offset, data, space.device().safe_pc());
135134}
136135
137READ32_DEVICE_HANDLER_TRAMPOLINE(k056230, lanc_ram_r)
136READ32_MEMBER(k056230_device::lanc_ram_r)
138137{
139138   //mame_printf_debug("LANC_RAM_r: %08X, %08X at %08X\n", offset, mem_mask, space.device().safe_pc());
140139   return m_ram[offset & 0x7ff];
141140}
142141
143WRITE32_DEVICE_HANDLER_TRAMPOLINE(k056230, lanc_ram_w)
142WRITE32_MEMBER(k056230_device::lanc_ram_w)
144143{
145144   //mame_printf_debug("LANC_RAM_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, space.device().safe_pc());
146145   COMBINE_DATA(m_ram + (offset & 0x7ff));
trunk/src/emu/machine/k056230.h
r21984r21985
4646   // construction/destruction
4747   k056230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
4848
49   UINT32 lanc_ram_r(UINT32 offset);
50   void lanc_ram_w(UINT32 offset, UINT32 data, UINT32 mem_mask);
49   DECLARE_READ32_MEMBER(lanc_ram_r);
50   DECLARE_WRITE32_MEMBER(lanc_ram_w);
5151
52   UINT8 k056230_r(UINT32 offset);
53   void k056230_w(UINT32 offset, UINT8 data);
52   DECLARE_READ8_MEMBER(k056230_r);
53   DECLARE_WRITE8_MEMBER(k056230_w);
5454
5555   static TIMER_CALLBACK( network_irq_clear_callback );
5656
r21984r21985
7474// device type definition
7575extern const device_type K056230;
7676
77
78
79/***************************************************************************
80    PROTOTYPES
81***************************************************************************/
82
83extern DECLARE_READ32_DEVICE_HANDLER( lanc_ram_r );
84extern DECLARE_WRITE32_DEVICE_HANDLER( lanc_ram_w );
85extern DECLARE_READ8_DEVICE_HANDLER( k056230_r );
86extern DECLARE_WRITE8_DEVICE_HANDLER( k056230_w );
87
88
8977#endif  /* __K056230_H__ */
trunk/src/emu/machine/k033906.c
r21984r21985
77#include "emu.h"
88#include "k033906.h"
99#include "video/voodoo.h"
10#include "devhelpr.h"
1110
1211
1312//**************************************************************************
r21984r21985
6867}
6968
7069
71WRITE_LINE_DEVICE_HANDLER_TRAMPOLINE(k033906, k033906_set_reg)
70WRITE_LINE_MEMBER(k033906_device::k033906_set_reg)
7271{
7372   m_reg_set = state & 1;
7473}
r21984r21985
135134   }
136135}
137136
138READ32_DEVICE_HANDLER_TRAMPOLINE(k033906, k033906_r)
137READ32_MEMBER(k033906_device::k033906_r)
139138{
140139   if(m_reg_set)
141140   {
r21984r21985
147146   }
148147}
149148
150WRITE32_DEVICE_HANDLER_TRAMPOLINE(k033906, k033906_w)
149WRITE32_MEMBER(k033906_device::k033906_w)
151150{
152151   if(m_reg_set)
153152   {
trunk/src/emu/machine/k033906.h
r21984r21985
4545   // construction/destruction
4646   k033906_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
4747
48   UINT32 k033906_r(UINT32 offset);
49   void k033906_w(UINT32 offset, UINT32 data, UINT32 mem_mask);
50   void k033906_set_reg(UINT8 state);
48   DECLARE_READ32_MEMBER( k033906_r );
49   DECLARE_WRITE32_MEMBER( k033906_w );
50   DECLARE_WRITE_LINE_MEMBER( k033906_set_reg );
5151
5252protected:
5353   // device-level overrides
r21984r21985
7575// device type definition
7676extern const device_type K033906;
7777
78
79
80/***************************************************************************
81    PROTOTYPES
82***************************************************************************/
83
84extern DECLARE_READ32_DEVICE_HANDLER( k033906_r );
85extern DECLARE_WRITE32_DEVICE_HANDLER( k033906_w );
86extern WRITE_LINE_DEVICE_HANDLER( k033906_set_reg );
87
88
8978#endif  /* __K033906_H__ */
trunk/src/emu/machine/8257dma.c
r21984r21985
3131
3232#include "emu.h"
3333#include "8257dma.h"
34#include "devhelpr.h"
3534
3635#define I8257_STATUS_UPDATE     0x10
3736#define I8257_STATUS_TC_CH3     0x08
r21984r21985
346345}
347346
348347
349READ8_DEVICE_HANDLER_TRAMPOLINE(i8257, i8257_r)
348READ8_MEMBER(i8257_device::i8257_r)
350349{
351350   UINT8 data = 0xFF;
352351
r21984r21985
382381}
383382
384383
385WRITE8_DEVICE_HANDLER_TRAMPOLINE(i8257, i8257_w)
384WRITE8_MEMBER(i8257_device::i8257_w)
386385{
387386   switch(offset)
388387   {
trunk/src/emu/machine/8257dma.h
r21984r21985
8787   i8257_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
8888
8989   /* register access */
90   UINT8 i8257_r(UINT32 offset);
91   void i8257_w(UINT32 offset, UINT8 data);
90   DECLARE_READ8_MEMBER( i8257_r );
91   DECLARE_WRITE8_MEMBER( i8257_w );
9292
93   /* hold acknowledge */
94   WRITE_LINE_MEMBER( i8257_hlda_w ) { }
95
96   /* ready */
97   WRITE_LINE_MEMBER( i8257_ready_w ) { }
98
9399   /* data request */
100   WRITE_LINE_MEMBER( i8257_drq0_w ) { i8257_drq_w(0, state); }
101   WRITE_LINE_MEMBER( i8257_drq1_w ) { i8257_drq_w(1, state); }
102   WRITE_LINE_MEMBER( i8257_drq2_w ) { i8257_drq_w(2, state); }
103   WRITE_LINE_MEMBER( i8257_drq3_w ) { i8257_drq_w(3, state); }
94104   void i8257_drq_w(int channel, int state);
95105
96106protected:
r21984r21985
140150// device type definition
141151extern const device_type I8257;
142152
143
144
145/***************************************************************************
146    PROTOTYPES
147***************************************************************************/
148
149/* register access */
150DECLARE_READ8_DEVICE_HANDLER( i8257_r );
151DECLARE_WRITE8_DEVICE_HANDLER( i8257_w );
152
153/* hold acknowledge */
154WRITE_LINE_DEVICE_HANDLER( i8257_hlda_w );
155
156/* ready */
157WRITE_LINE_DEVICE_HANDLER( i8257_ready_w );
158
159/* data request */
160WRITE_LINE_DEVICE_HANDLER( i8257_drq0_w );
161WRITE_LINE_DEVICE_HANDLER( i8257_drq1_w );
162WRITE_LINE_DEVICE_HANDLER( i8257_drq2_w );
163WRITE_LINE_DEVICE_HANDLER( i8257_drq3_w );
164
165153#endif
trunk/src/emu/machine/f3853.c
r21984r21985
2222
2323#include "emu.h"
2424#include "f3853.h"
25#include "devhelpr.h"
2625
2726/***************************************************************************
2827    MACROS
r21984r21985
173172   f3853_timer_start(0xfe);
174173}
175174
176
177void f3853_set_external_interrupt_in_line(device_t *device, int level)
178{
179   downcast<f3853_device*>(device)->f3853_set_external_interrupt_in_line(level);
180}
181
182175void f3853_device::f3853_set_external_interrupt_in_line(int level)
183176{
184177   if(m_external_interrupt_line && !level && m_external_enable)
r21984r21985
189182   f3853_set_interrupt_request_line();
190183}
191184
192
193void f3853_set_priority_in_line(device_t *device, int level)
194{
195   downcast<f3853_device*>(device)->f3853_set_priority_in_line(level);
196}
197
198185void f3853_device::f3853_set_priority_in_line(int level)
199186{
200187   m_priority_line = level;
r21984r21985
202189}
203190
204191
205READ8_DEVICE_HANDLER_TRAMPOLINE(f3853, f3853_r)
192READ8_MEMBER(f3853_device::f3853_r)
206193{
207194   UINT8 data = 0;
208195
r21984r21985
225212}
226213
227214
228WRITE8_DEVICE_HANDLER_TRAMPOLINE(f3853, f3853_w)
215WRITE8_MEMBER(f3853_device::f3853_w)
229216{
230217   switch(offset)
231218   {
trunk/src/emu/machine/f3853.h
r21984r21985
7373   // construction/destruction
7474   f3853_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
7575
76   UINT8 f3853_r(UINT32 offset);
77   void f3853_w(UINT32 offset, UINT8 data);
76   DECLARE_READ8_MEMBER( f3853_r );
77   DECLARE_WRITE8_MEMBER( f3853_w );
7878
7979   void f3853_set_external_interrupt_in_line(int level);
8080   void f3853_set_priority_in_line(int level);
r21984r21985
114114// device type definition
115115extern const device_type F3853;
116116
117
118
119/***************************************************************************
120    PROTOTYPES
121***************************************************************************/
122
123DECLARE_READ8_DEVICE_HANDLER( f3853_r );
124DECLARE_WRITE8_DEVICE_HANDLER( f3853_w );
125
126void f3853_set_external_interrupt_in_line(device_t *device, int level);
127void f3853_set_priority_in_line(device_t *device, int level);
128
129117#endif /* __F3853_H__ */
trunk/src/emu/machine/8237dma.c
r21984r21985
2020
2121#include "emu.h"
2222#include "8237dma.h"
23#include "devhelpr.h"
2423
2524/***************************************************************************
2625    MACROS
r21984r21985
499498}
500499
501500
502READ8_DEVICE_HANDLER_TRAMPOLINE(i8237, i8237_r)
501READ8_MEMBER(i8237_device::i8237_r)
503502{
504503   UINT8 data = 0xFF;
505504
r21984r21985
555554}
556555
557556
558WRITE8_DEVICE_HANDLER_TRAMPOLINE(i8237, i8237_w)
557WRITE8_MEMBER(i8237_device::i8237_w)
559558{
560559   offset &= 0x0F;
561560
r21984r21985
694693
695694   m_timer->enable( ( m_command & 0x04 ) ? 0 : 1 );
696695}
697
698
699
700/***************************************************************************
701    TRAMPOLINES
702***************************************************************************/
703
704WRITE_LINE_DEVICE_HANDLER( i8237_hlda_w ) { downcast<i8237_device*>(device)->i8237_hlda_w(state); }
705WRITE_LINE_DEVICE_HANDLER( i8237_ready_w ) { }
706WRITE_LINE_DEVICE_HANDLER( i8237_dreq0_w ) { downcast<i8237_device*>(device)->i8237_drq_write(0, state); }
707WRITE_LINE_DEVICE_HANDLER( i8237_dreq1_w ) { downcast<i8237_device*>(device)->i8237_drq_write(1, state); }
708WRITE_LINE_DEVICE_HANDLER( i8237_dreq2_w ) { downcast<i8237_device*>(device)->i8237_drq_write(2, state); }
709WRITE_LINE_DEVICE_HANDLER( i8237_dreq3_w ) { downcast<i8237_device*>(device)->i8237_drq_write(3, state); }
710WRITE_LINE_DEVICE_HANDLER( i8237_eop_w ) { }
trunk/src/emu/machine/8237dma.h
r21984r21985
8585   i8237_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
8686
8787   /* register access */
88   UINT8 i8237_r(UINT32 offset);
89   void i8237_w(UINT32 offset, UINT8 data);
90
88   DECLARE_READ8_MEMBER( i8237_r );
89   DECLARE_WRITE8_MEMBER( i8237_w );
9190   /* hold acknowledge */
92   void i8237_hlda_w(UINT8 state) { m_hlda = state; }
91   WRITE_LINE_MEMBER( i8237_hlda_w ) { m_hlda = state; }
9392
93   /* ready */
94   WRITE_LINE_MEMBER( i8237_ready_w ) { }
95
9496   /* data request */
97   WRITE_LINE_MEMBER( i8237_dreq0_w ) { i8237_drq_write(0, state); }
98   WRITE_LINE_MEMBER( i8237_dreq1_w ) { i8237_drq_write(1, state); }
99   WRITE_LINE_MEMBER( i8237_dreq2_w ) { i8237_drq_write(2, state); }
100   WRITE_LINE_MEMBER( i8237_dreq3_w ) { i8237_drq_write(3, state); }
95101   void i8237_drq_write(int channel, int state);
96102
103   /* end of process */
104   WRITE_LINE_MEMBER( i8237_eop_w ) { }
105
97106   void i8237_timerproc();
98107
99108protected:
r21984r21985
182191// device type definition
183192extern const device_type I8237;
184193
185
186
187/***************************************************************************
188    PROTOTYPES
189***************************************************************************/
190
191/* register access */
192DECLARE_READ8_DEVICE_HANDLER( i8237_r );
193DECLARE_WRITE8_DEVICE_HANDLER( i8237_w );
194
195/* hold acknowledge */
196WRITE_LINE_DEVICE_HANDLER( i8237_hlda_w );
197
198/* ready */
199WRITE_LINE_DEVICE_HANDLER( i8237_ready_w );
200
201/* data request */
202WRITE_LINE_DEVICE_HANDLER( i8237_dreq0_w );
203WRITE_LINE_DEVICE_HANDLER( i8237_dreq1_w );
204WRITE_LINE_DEVICE_HANDLER( i8237_dreq2_w );
205WRITE_LINE_DEVICE_HANDLER( i8237_dreq3_w );
206
207/* end of process */
208WRITE_LINE_DEVICE_HANDLER( i8237_eop_w );
209
210194#endif
trunk/src/mess/machine/apollo.c
r21984r21985
344344static UINT8 dn3000_dma_channel1 = 1; // 1 = memory/ctape, 2 = floppy dma channel
345345static UINT8 dn3000_dma_channel2 = 5; // 5 = memory dma channel
346346
347INLINE device_t *get_device_dma8237_1(device_t *device) {
347INLINE i8237_device *get_device_dma8237_1(device_t *device) {
348348   return device->machine().driver_data<apollo_state>()->dma8237_1;
349349}
350350
351INLINE device_t *get_device_dma8237_2(device_t *device) {
351INLINE i8237_device *get_device_dma8237_2(device_t *device) {
352352   return device->machine().driver_data<apollo_state>()->dma8237_2;
353353}
354354
355355static void apollo_dma_fdc_drq(device_t *device, int state) {
356356   DLOG2(("apollo_dma_fdc_drq: state=%x", state));
357   i8237_dreq2_w(get_device_dma8237_1(device), state);
357   get_device_dma8237_1(device)->i8237_dreq2_w(state);
358358}
359359
360360static void apollo_dma_ctape_drq(device_t *device, int state) {
361361   DLOG1(("apollo_dma_ctape_drq: state=%x", state));
362   i8237_dreq1_w(get_device_dma8237_1(device), state);
362   get_device_dma8237_1(device)->i8237_dreq1_w(state);
363363}
364364
365365/*-------------------------------------------------
r21984r21985
368368
369369WRITE8_MEMBER(apollo_state::apollo_dma_1_w){
370370   SLOG1(("apollo_dma_1_w: writing DMA Controller 1 at offset %02x = %02x", offset, data));
371   i8237_w(get_device_dma8237_1(&space.device()), space, offset, data);
371   get_device_dma8237_1(&space.device())->i8237_w(space, offset, data);
372372}
373373
374374READ8_MEMBER(apollo_state::apollo_dma_1_r){
375   UINT8 data = i8237_r(get_device_dma8237_1(&space.device()), space, offset);
375   UINT8 data = get_device_dma8237_1(&space.device())->i8237_r(space, offset);
376376   SLOG1(("apollo_dma_1_r: reading DMA Controller 1 at offset %02x = %02x", offset, data));
377377   return data;
378378}
r21984r21985
383383
384384WRITE8_MEMBER(apollo_state::apollo_dma_2_w){
385385   SLOG1(("apollo_dma_2_w: writing DMA Controller 2 at offset %02x = %02x", offset/2, data));
386   i8237_w(get_device_dma8237_2(&space.device()), space, offset / 2, data);
386   get_device_dma8237_2(&space.device())->i8237_w(space, offset / 2, data);
387387}
388388
389389READ8_MEMBER(apollo_state::apollo_dma_2_r){
390   UINT8 data = i8237_r(get_device_dma8237_2(&space.device()), space, offset / 2);
390   UINT8 data = get_device_dma8237_2(&space.device())->i8237_r(space, offset / 2);
391391   SLOG1(("apollo_dma_2_r: reading DMA Controller 2 at offset %02x = %02x", offset/2, data));
392392   return data;
393393}
r21984r21985
565565
566566static WRITE_LINE_DEVICE_HANDLER( apollo_dma_1_hrq_changed ) {
567567   // DLOG2(("dma 1 hrq changed state %02x", state));
568   i8237_dreq0_w(get_device_dma8237_2(device), state);
568   get_device_dma8237_2(device)->i8237_dreq0_w(state);
569569
570570   /* Assert HLDA */
571   i8237_hlda_w(device, state);
571   dynamic_cast<i8237_device*>(device)->i8237_hlda_w(state);
572572
573573   // cascade mode?
574574   // i8237_hlda_w(get_device_dma8237_2(device), state);
r21984r21985
578578   // DLOG2(("dma 2 hrq changed state %02x", state));
579579   device->machine().device(MAINCPU)->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
580580
581   /* Assert HLDA */
582   i8237_hlda_w(device, state);
581   /* Assert HLDA */   
582   dynamic_cast<i8237_device*>(device)->i8237_hlda_w(state);
583583}
584584
585585static I8237_INTERFACE( apollo_dma8237_1_config )
r21984r21985
14291429{
14301430   //MLOG1(("machine_reset_apollo"));
14311431
1432   dma8237_1 = machine().device(APOLLO_DMA1_TAG);
1433   dma8237_2 = machine().device(APOLLO_DMA2_TAG);
1432   dma8237_1 = machine().device<i8237_device>(APOLLO_DMA1_TAG);
1433   dma8237_2 = machine().device<i8237_device>(APOLLO_DMA2_TAG);
14341434   pic8259_master = machine().device(APOLLO_PIC1_TAG);
14351435   pic8259_slave = machine().device(APOLLO_PIC2_TAG);
14361436
trunk/src/mess/machine/bebox.c
r21984r21985
463463void bebox_state::fdc_dma_drq(bool state)
464464{
465465   if ( m_devices.dma8237_1 ) {
466      i8237_dreq2_w(m_devices.dma8237_1, state);
466      m_devices.dma8237_1->i8237_dreq2_w(state);
467467   }
468468}
469469
r21984r21985
707707   machine().device("ppc1")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
708708
709709   /* Assert HLDA */
710   i8237_hlda_w( machine().device("dma8237_1"), state );
710   machine().device<i8237_device>("dma8237_1")->i8237_hlda_w( state );
711711}
712712
713713
r21984r21985
10011001TIMER_CALLBACK_MEMBER(bebox_state::bebox_get_devices){
10021002   m_devices.pic8259_master = machine().device("pic8259_master");
10031003   m_devices.pic8259_slave = machine().device("pic8259_slave");
1004   m_devices.dma8237_1 = machine().device("dma8237_1");
1005   m_devices.dma8237_2 = machine().device("dma8237_2");
1004   m_devices.dma8237_1 = machine().device<i8237_device>("dma8237_1");
1005   m_devices.dma8237_2 = machine().device<i8237_device>("dma8237_2");
10061006}
10071007
10081008
trunk/src/mess/machine/partner.c
r21984r21985
2828
2929WRITE_LINE_MEMBER(partner_state::partner_wd17xx_drq_w)
3030{
31   device_t *device = machine().device("dma8257");
31   i8257_device *device = machine().device<i8257_device>("dma8257");
3232   if (state)
33      i8257_drq0_w(device, 1);
33      device->i8257_drq0_w(1);
3434}
3535
3636const wd17xx_interface partner_wd17xx_interface =
r21984r21985
364364   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state);
365365
366366   /* HACK - this should be connected to the BUSACK line of Z80 */
367   i8257_hlda_w(machine().device("dma8257"), state);
367   machine().device<i8257_device>("dma8257")->i8257_hlda_w(state);
368368}
369369
370370static UINT8 memory_read_byte(address_space &space, offs_t address, UINT8 mem_mask) { return space.read_byte(address); }
trunk/src/mess/machine/southbridge.c
r21984r21985
88#include "cpu/i386/i386.h"
99#include "machine/southbridge.h"
1010#include "machine/pc_keyboards.h"
11#include "machine/8237dma.h"
1211
1312const struct pic8259_interface at_pic8259_master_config =
1413{
r21984r21985
4544
4645I8237_INTERFACE( at_dma8237_1_config )
4746{
48   DEVCB_DEVICE_LINE("dma8237_2",i8237_dreq0_w),
47   DEVCB_DEVICE_LINE_MEMBER("dma8237_2",am9517a_device,dreq0_w),
4948   DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, at_dma8237_out_eop),
5049   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, pc_dma_read_byte),
5150   DEVCB_DEVICE_MEMBER(DEVICE_SELF_OWNER, southbridge_device, pc_dma_write_byte),
r21984r21985
104103   DEVCB_DEVICE_LINE_MEMBER("pic8259_slave", pic8259_device, ir7_w),
105104
106105   // dma request
107   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq0_w),
108   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq1_w),
109   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq2_w),
110   DEVCB_DEVICE_LINE("dma8237_1", i8237_dreq3_w),
106   DEVCB_DEVICE_LINE_MEMBER("dma8237_1", am9517a_device, dreq0_w),
107   DEVCB_DEVICE_LINE_MEMBER("dma8237_1", am9517a_device, dreq1_w),
108   DEVCB_DEVICE_LINE_MEMBER("dma8237_1", am9517a_device, dreq2_w),
109   DEVCB_DEVICE_LINE_MEMBER("dma8237_1", am9517a_device, dreq3_w),
111110
112   DEVCB_DEVICE_LINE("dma8237_2", i8237_dreq1_w),
113   DEVCB_DEVICE_LINE("dma8237_2", i8237_dreq2_w),
114   DEVCB_DEVICE_LINE("dma8237_2", i8237_dreq3_w),
111   DEVCB_DEVICE_LINE_MEMBER("dma8237_2", am9517a_device, dreq1_w),
112   DEVCB_DEVICE_LINE_MEMBER("dma8237_2", am9517a_device, dreq2_w),
113   DEVCB_DEVICE_LINE_MEMBER("dma8237_2", am9517a_device, dreq3_w),
115114};
116115
117116static SLOT_INTERFACE_START(pc_isa_onboard)
r21984r21985
194193{
195194   address_space& spaceio = machine().device(":maincpu")->memory().space(AS_IO);
196195
197   spaceio.install_legacy_readwrite_handler(*m_dma8237_1, 0x0000, 0x001f, FUNC(i8237_r), FUNC(i8237_w), 0xffffffff);
196   spaceio.install_readwrite_handler(0x0000, 0x001f, read8_delegate(FUNC(am9517a_device::read),&(*m_dma8237_1)), write8_delegate(FUNC(am9517a_device::write),&(*m_dma8237_1)), 0xffffffff);
198197   spaceio.install_legacy_readwrite_handler(*m_pic8259_master, 0x0020, 0x003f, FUNC(pic8259_r), FUNC(pic8259_w), 0xffffffff);
199198   spaceio.install_legacy_readwrite_handler(*m_pit8254, 0x0040, 0x005f, FUNC(pit8253_r), FUNC(pit8253_w), 0xffffffff);
200199   spaceio.install_readwrite_handler(0x0060, 0x0063, read8_delegate(FUNC(southbridge_device::at_keybc_r),this), write8_delegate(FUNC(southbridge_device::at_keybc_w),this), 0xffffffff);
r21984r21985
332331   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
333332
334333   /* Assert HLDA */
335   i8237_hlda_w( m_dma8237_2, state );
334   m_dma8237_2->hack_w( state );
336335}
337336
338337READ8_MEMBER(southbridge_device::pc_dma_read_byte)
r21984r21985
424423WRITE_LINE_MEMBER( southbridge_device::pc_dack1_w ) { pc_select_dma_channel(1, state); }
425424WRITE_LINE_MEMBER( southbridge_device::pc_dack2_w ) { pc_select_dma_channel(2, state); }
426425WRITE_LINE_MEMBER( southbridge_device::pc_dack3_w ) { pc_select_dma_channel(3, state); }
427WRITE_LINE_MEMBER( southbridge_device::pc_dack4_w ) { i8237_hlda_w( m_dma8237_1, state ? 0 : 1); } // it's inverted
426WRITE_LINE_MEMBER( southbridge_device::pc_dack4_w ) { m_dma8237_1->hack_w( state ? 0 : 1); } // it's inverted
428427WRITE_LINE_MEMBER( southbridge_device::pc_dack5_w ) { pc_select_dma_channel(5, state); }
429428WRITE_LINE_MEMBER( southbridge_device::pc_dack6_w ) { pc_select_dma_channel(6, state); }
430429WRITE_LINE_MEMBER( southbridge_device::pc_dack7_w ) { pc_select_dma_channel(7, state); }
r21984r21985
466465
467466READ8_MEMBER( southbridge_device::at_dma8237_2_r )
468467{
469   return i8237_r( m_dma8237_2, space, offset / 2);
468   return m_dma8237_2->read( space, offset / 2);
470469}
471470
472471WRITE8_MEMBER( southbridge_device::at_dma8237_2_w )
473472{
474   i8237_w( m_dma8237_2, space, offset / 2, data);
473   m_dma8237_2->write( space, offset / 2, data);
475474}
476475
477476READ8_MEMBER( southbridge_device::at_keybc_r )
trunk/src/mess/machine/southbridge.h
r21984r21985
5050#include "machine/pc_lpt.h"
5151#include "machine/pc_kbdc.h"
5252
53#include "machine/am9517a.h"
5354//**************************************************************************
5455//  TYPE DEFINITIONS
5556//**************************************************************************
r21984r21985
7677      required_device<cpu_device> m_maincpu;
7778      required_device<pic8259_device> m_pic8259_master;
7879      required_device<pic8259_device> m_pic8259_slave;
79      required_device<device_t> m_dma8237_1; // TODO use correct type
80      required_device<device_t> m_dma8237_2; // TODO use correct type
80      required_device<am9517a_device> m_dma8237_1;
81      required_device<am9517a_device> m_dma8237_2;
8182      required_device<pit8254_device> m_pit8254;
8283      required_device<at_keyboard_controller_device> m_keybc;
8384      required_device<isa16_device> m_isabus;
trunk/src/mess/machine/radio86.c
r21984r21985
131131   m_maincpu->set_input_line(INPUT_LINE_HALT, state);
132132
133133   /* HACK - this should be connected to the BUSACK line of Z80 */
134   i8257_hlda_w(m_dma8257, state);
134   m_dma8257->i8257_hlda_w(state);
135135}
136136
137137static UINT8 memory_read_byte(address_space &space, offs_t address, UINT8 mem_mask) { return space.read_byte(address); }
r21984r21985
237237   "screen",
238238   6,
239239   0,
240   DEVCB_DEVICE_LINE("dma8257", i8257_drq2_w),
240   DEVCB_DEVICE_LINE_MEMBER("dma8257", i8257_device, i8257_drq2_w),
241241   DEVCB_NULL,
242242   DEVCB_NULL,
243243   DEVCB_NULL,
r21984r21985
248248   "screen",
249249   6,
250250   0,
251   DEVCB_DEVICE_LINE("dma8257", i8257_drq2_w),
251   DEVCB_DEVICE_LINE_MEMBER("dma8257", i8257_device, i8257_drq2_w),
252252   DEVCB_NULL,
253253   DEVCB_NULL,
254254   DEVCB_NULL,
r21984r21985
259259   "screen",
260260   6,
261261   0,
262   DEVCB_DEVICE_LINE("dma8257", i8257_drq2_w),
262   DEVCB_DEVICE_LINE_MEMBER("dma8257", i8257_device, i8257_drq2_w),
263263   DEVCB_NULL,
264264   DEVCB_NULL,
265265   DEVCB_NULL,
r21984r21985
270270   "screen",
271271   6,
272272   1,
273   DEVCB_DEVICE_LINE("dma8257", i8257_drq2_w),
273   DEVCB_DEVICE_LINE_MEMBER("dma8257", i8257_device, i8257_drq2_w),
274274   DEVCB_NULL,
275275   DEVCB_NULL,
276276   DEVCB_NULL,
trunk/src/mess/includes/radio86.h
r21984r21985
7777protected:
7878   required_device<cpu_device> m_maincpu;
7979   required_device<cassette_image_device> m_cassette;
80   optional_device<device_t> m_dma8257;
80   optional_device<i8257_device> m_dma8257;
8181   required_device<i8255_device> m_ppi8255_1;
8282   optional_device<i8255_device> m_ppi8255_2;
8383   required_memory_region m_region_maincpu;
trunk/src/mess/includes/apollo.h
r21984r21985
2424#include "machine/3c505.h"
2525#include "machine/68681.h"
2626#include "machine/pc_fdc.h"
27#include "machine/8237dma.h"
2728
2829#ifndef VERBOSE
2930#define VERBOSE 0
r21984r21985
120121   required_device<cpu_device> m_maincpu;
121122   required_device<sc499_device> m_ctape;
122123
123   device_t *dma8237_1;
124   device_t *dma8237_2;
124   i8237_device *dma8237_1;
125   i8237_device *dma8237_2;
125126   device_t *pic8259_master;
126127   device_t *pic8259_slave;
127128
trunk/src/mess/includes/bebox.h
r21984r21985
1919{
2020   device_t *pic8259_master;
2121   device_t *pic8259_slave;
22   device_t *dma8237_1;
23   device_t *dma8237_2;
22   i8237_device *dma8237_1;
23   i8237_device *dma8237_2;
2424};
2525
2626
trunk/src/mess/drivers/vidbrain.c
r21984r21985
252252   AM_RANGE(0x00, 0x00) AM_WRITE(keyboard_w)
253253   AM_RANGE(0x01, 0x01) AM_READWRITE(keyboard_r, sound_w)
254254   AM_RANGE(0x0c, 0x0f) AM_WRITE(f3853_w)
255//  AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE_LEGACY(F3853_TAG, f3853_r, f3853_w)
255//  AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE(F3853_TAG, f3853_device, f3853_r, f3853_w)
256256ADDRESS_MAP_END
257257
258258
trunk/src/mess/drivers/pc8001.c
r21984r21985
176176   AM_RANGE(0x30, 0x30) AM_MIRROR(0x0f) AM_WRITE(port30_w)
177177   AM_RANGE(0x40, 0x40) AM_MIRROR(0x0f) AM_READWRITE(port40_r, port40_w)
178178   AM_RANGE(0x50, 0x51) AM_DEVREADWRITE(UPD3301_TAG, upd3301_device, read, write)
179   AM_RANGE(0x60, 0x68) AM_DEVREADWRITE_LEGACY(I8257_TAG, i8257_r, i8257_w)
179   AM_RANGE(0x60, 0x68) AM_DEVREADWRITE(I8257_TAG, i8257_device, i8257_r, i8257_w)
180180//  AM_RANGE(0x70, 0x7f) unused
181181//  AM_RANGE(0x80, 0x80) AM_MIRROR(0x0f) AM_WRITE(pc8011_ext0_w)
182182//  AM_RANGE(0x90, 0x90) AM_MIRROR(0x0f) AM_WRITE(pc8011_ext1_w)
r21984r21985
395395   8,
396396   pc8001_display_pixels,
397397   DEVCB_NULL,
398   DEVCB_DEVICE_LINE(I8257_TAG, i8257_drq2_w),
398   DEVCB_DEVICE_LINE_MEMBER(I8257_TAG, i8257_device, i8257_drq2_w),
399399   DEVCB_NULL,
400400   DEVCB_NULL
401401};
r21984r21985
435435   m_maincpu->set_input_line(INPUT_LINE_HALT, state);
436436
437437   /* HACK - this should be connected to the BUSACK line of Z80 */
438   i8257_hlda_w(m_dma, state);
438   m_dma->i8257_hlda_w(state);
439439}
440440
441441WRITE8_MEMBER( pc8001_state::dma_mem_w )
r21984r21985
490490   m_rtc->oe_w(1);
491491
492492   /* initialize DMA */
493   i8257_ready_w(m_dma, 1);
493   m_dma->i8257_ready_w(1);
494494
495495   /* setup memory banking */
496496   UINT8 *ram = m_ram->pointer();
trunk/src/mess/drivers/paso1600.c
r21984r21985
230230
231231static ADDRESS_MAP_START(paso1600_io, AS_IO, 16, paso1600_state)
232232   ADDRESS_MAP_UNMAP_LOW
233   AM_RANGE(0x0000,0x000f) AM_DEVREADWRITE8_LEGACY("8237dma", i8237_r, i8237_w, 0xffff)
233   AM_RANGE(0x0000,0x000f) AM_DEVREADWRITE8("8237dma", i8237_device, i8237_r, i8237_w, 0xffff)
234234   AM_RANGE(0x0010,0x0011) AM_DEVREADWRITE8_LEGACY("pic8259", pic8259_r,pic8259_w, 0xffff) // i8259
235235   AM_RANGE(0x001a,0x001b) AM_READ(test_hi_r) // causes RAM error otherwise?
236236   AM_RANGE(0x0030,0x0033) AM_READWRITE8(key_r,key_w,0xffff) //UART keyboard?
trunk/src/mess/drivers/apogee.c
r21984r21985
3434   AM_RANGE( 0xed00, 0xed03 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x00fc)
3535   //AM_RANGE( 0xee00, 0xee03 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) AM_MIRROR(0x00fc)
3636   AM_RANGE( 0xef00, 0xef01 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x00fe) // video
37   AM_RANGE( 0xf000, 0xf0ff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
37   AM_RANGE( 0xf000, 0xf0ff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
3838   AM_RANGE( 0xf000, 0xffff ) AM_ROM  // System ROM
3939ADDRESS_MAP_END
4040
trunk/src/mess/drivers/acrnsys1.c
r21984r21985
114114
115115static ADDRESS_MAP_START( acrnsys1_map, AS_PROGRAM, 8, acrnsys1_state )
116116   AM_RANGE(0x0000, 0x03ff) AM_RAM
117   AM_RANGE(0x0e00, 0x0e7f) AM_MIRROR(0x100) AM_DEVREADWRITE_LEGACY("b1", ins8154_r, ins8154_w)
117   AM_RANGE(0x0e00, 0x0e7f) AM_MIRROR(0x100) AM_DEVREADWRITE("b1", ins8154_device, ins8154_r, ins8154_w)
118118   AM_RANGE(0x0e80, 0x0eff) AM_MIRROR(0x100) AM_RAM
119119   AM_RANGE(0xf800, 0xf9ff) AM_MIRROR(0x600) AM_ROM
120120ADDRESS_MAP_END
trunk/src/mess/drivers/mk14.c
r21984r21985
6868   ADDRESS_MAP_GLOBAL_MASK(0x0fff)
6969   AM_RANGE(0x000, 0x1ff) AM_ROM AM_MIRROR(0x600) // ROM
7070   AM_RANGE(0x800, 0x87f) AM_RAM AM_MIRROR(0x600) // 128 I/O chip RAM
71   AM_RANGE(0x880, 0x8ff) AM_DEVREADWRITE_LEGACY("ic8", ins8154_r, ins8154_w) AM_MIRROR(0x600) // I/O
71   AM_RANGE(0x880, 0x8ff) AM_DEVREADWRITE("ic8", ins8154_device, ins8154_r, ins8154_w) AM_MIRROR(0x600) // I/O
7272   AM_RANGE(0x900, 0x9ff) AM_READWRITE(keyboard_r, display_w) AM_MIRROR(0x400)
7373   AM_RANGE(0xb00, 0xbff) AM_RAM // VDU RAM
7474   AM_RANGE(0xf00, 0xfff) AM_RAM // Standard RAM
trunk/src/mess/drivers/qx10.c
r21984r21985
332332
333333void qx10_state::drq_w(bool state)
334334{
335   i8237_dreq0_w(m_dma_1, !state);
335   m_dma_1->i8237_dreq0_w(!state);
336336}
337337
338338WRITE8_MEMBER( qx10_state::fdd_motor_w )
r21984r21985
361361*/
362362WRITE_LINE_MEMBER(qx10_state::dma_hrq_changed)
363363{
364   device_t *device = machine().device("8237dma_1");
364   i8237_device *device = machine().device<i8237_device>("8237dma_1");
365365   /* Assert HLDA */
366   i8237_hlda_w(device, state);
366   device->i8237_hlda_w(state);
367367}
368368
369369READ8_MEMBER( qx10_state::gdc_dack_r )
r21984r21985
690690//  AM_RANGE(0x3b, 0x3b) GDC light pen req
691691   AM_RANGE(0x3c, 0x3c) AM_READWRITE(mc146818_data_r, mc146818_data_w)
692692   AM_RANGE(0x3d, 0x3d) AM_WRITE(mc146818_offset_w)
693   AM_RANGE(0x40, 0x4f) AM_DEVREADWRITE_LEGACY("8237dma_1", i8237_r, i8237_w)
694   AM_RANGE(0x50, 0x5f) AM_DEVREADWRITE_LEGACY("8237dma_2", i8237_r, i8237_w)
693   AM_RANGE(0x40, 0x4f) AM_DEVREADWRITE("8237dma_1", i8237_device, i8237_r, i8237_w)
694   AM_RANGE(0x50, 0x5f) AM_DEVREADWRITE("8237dma_2", i8237_device, i8237_r, i8237_w)
695695//  AM_RANGE(0xfc, 0xfd) Multi-Font comms
696696ADDRESS_MAP_END
697697
r21984r21985
916916
917917void qx10_state::machine_reset()
918918{
919   i8237_dreq0_w(m_dma_1, 1);
919   m_dma_1->i8237_dreq0_w(1);
920920
921921   m_memprom = 0;
922922   m_memcmos = 0;
trunk/src/mess/drivers/partner.c
r21984r21985
3737   AM_RANGE( 0xd800, 0xd8ff ) AM_DEVREADWRITE("i8275", i8275_device, read, write)  // video
3838   AM_RANGE( 0xd900, 0xd9ff ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
3939   AM_RANGE( 0xda00, 0xdaff ) AM_WRITE(partner_mem_page_w)
40   AM_RANGE( 0xdb00, 0xdbff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
40   AM_RANGE( 0xdb00, 0xdbff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
4141   AM_RANGE( 0xdc00, 0xddff ) AM_RAMBANK("bank11")
4242   AM_RANGE( 0xde00, 0xdeff ) AM_WRITE(partner_win_memory_page_w)
4343   AM_RANGE( 0xe000, 0xe7ff ) AM_RAMBANK("bank12")
trunk/src/mess/drivers/mk1.c
r21984r21985
107107
108108static ADDRESS_MAP_START( mk1_io, AS_IO, 8, mk1_state )
109109   AM_RANGE( 0x0, 0x1 ) AM_READWRITE( mk1_f8_r, mk1_f8_w )
110   AM_RANGE( 0xc, 0xf ) AM_DEVREADWRITE_LEGACY("f3853", f3853_r, f3853_w )
110   AM_RANGE( 0xc, 0xf ) AM_DEVREADWRITE("f3853", f3853_device, f3853_r, f3853_w )
111111ADDRESS_MAP_END
112112
113113
trunk/src/mess/drivers/radio86.c
r21984r21985
2525   AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
2626   //AM_RANGE( 0xa000, 0xa003 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) AM_MIRROR(0x1ffc)
2727   AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
28   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
28   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
2929   AM_RANGE( 0xf000, 0xffff ) AM_ROM  // System ROM
3030ADDRESS_MAP_END
3131
r21984r21985
4545   AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
4646   AM_RANGE( 0xa000, 0xa003 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) AM_MIRROR(0x1ffc)
4747   AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
48   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
48   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
4949   AM_RANGE( 0xf000, 0xffff ) AM_ROM  // System ROM
5050ADDRESS_MAP_END
5151
r21984r21985
5858   AM_RANGE( 0xf780, 0xf7bf ) AM_DEVREADWRITE("i8275", i8275_device, read, write) // video
5959   AM_RANGE( 0xf684, 0xf687 ) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write)
6060   AM_RANGE( 0xf688, 0xf688 ) AM_WRITE(radio86_pagesel )
61   AM_RANGE( 0xf800, 0xffff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
61   AM_RANGE( 0xf800, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
6262   AM_RANGE( 0xf800, 0xffff ) AM_ROM  // System ROM page 1
6363ADDRESS_MAP_END
6464
r21984r21985
7070   AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
7171   //AM_RANGE( 0xa000, 0xa003 ) AM_DEVREADWRITE_LEGACY("ppi8255_2", i8255a_r, i8255a_w) AM_MIRROR(0x1ffc)
7272   AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
73   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
73   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
7474   AM_RANGE( 0xf000, 0xffff ) AM_ROM  // System ROM
7575ADDRESS_MAP_END
7676
r21984r21985
8181   AM_RANGE( 0xc000, 0xc003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x00fc)
8282   //AM_RANGE( 0xc100, 0xc103 ) AM_DEVREADWRITE_LEGACY("ppi8255_2", i8255a_r, i8255a_w) AM_MIRROR(0x00fc)
8383   AM_RANGE( 0xc200, 0xc201 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x00fe) // video
84   AM_RANGE( 0xc300, 0xc3ff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
84   AM_RANGE( 0xc300, 0xc3ff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
8585   AM_RANGE( 0xf000, 0xffff ) AM_ROM  // System ROM
8686ADDRESS_MAP_END
8787
r21984r21985
9191   AM_RANGE( 0x8000, 0x8003 ) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_MIRROR(0x1ffc)
9292   AM_RANGE( 0xa000, 0xbfff ) AM_ROM  // Basic ROM
9393   AM_RANGE( 0xc000, 0xc001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x1ffe) // video
94   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
94   AM_RANGE( 0xe000, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
9595   AM_RANGE( 0xf000, 0xffff ) AM_ROM  // System ROM
9696ADDRESS_MAP_END
9797
trunk/src/mess/drivers/bebox.c
r21984r21985
3535#include "formats/pc_dsk.h"
3636#include "machine/ram.h"
3737
38READ8_MEMBER(bebox_state::at_dma8237_1_r)  { return i8237_r(machine().device("dma8237_2"), space, offset / 2); }
39WRITE8_MEMBER(bebox_state::at_dma8237_1_w) { i8237_w(machine().device("dma8237_2"), space, offset / 2, data); }
38READ8_MEMBER(bebox_state::at_dma8237_1_r)  { return machine().device<i8237_device>("dma8237_2")->i8237_r(space, offset / 2); }
39WRITE8_MEMBER(bebox_state::at_dma8237_1_w) { machine().device<i8237_device>("dma8237_2")->i8237_w(space, offset / 2, data); }
4040
4141static ADDRESS_MAP_START( bebox_mem, AS_PROGRAM, 64, bebox_state )
4242   AM_RANGE(0x7FFFF0F0, 0x7FFFF0F7) AM_READWRITE(bebox_cpu0_imask_r, bebox_cpu0_imask_w )
r21984r21985
4545   AM_RANGE(0x7FFFF3F0, 0x7FFFF3F7) AM_READWRITE(bebox_crossproc_interrupts_r, bebox_crossproc_interrupts_w )
4646   AM_RANGE(0x7FFFF4F0, 0x7FFFF4F7) AM_WRITE(bebox_processor_resets_w )
4747
48   AM_RANGE(0x80000000, 0x8000001F) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, U64(0xffffffffffffffff) )
48   AM_RANGE(0x80000000, 0x8000001F) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, U64(0xffffffffffffffff) )
4949   AM_RANGE(0x80000020, 0x8000003F) AM_DEVREADWRITE8_LEGACY("pic8259_master", pic8259_r, pic8259_w, U64(0xffffffffffffffff) )
5050   AM_RANGE(0x80000040, 0x8000005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, U64(0xffffffffffffffff) )
5151   AM_RANGE(0x80000060, 0x8000006F) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, U64(0xffffffffffffffff) )
trunk/src/mess/drivers/dmv.c
r21984r21985
196196   AM_RANGE(0x00, 0x00) AM_WRITE(leds_w)
197197   AM_RANGE(0x13, 0x13) AM_READ(sys_status_r)
198198   AM_RANGE(0x14, 0x14) AM_WRITE(fdd_motor_w)
199   AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE_LEGACY("dma8237", i8237_r, i8237_w)
199   AM_RANGE(0x20, 0x2f) AM_DEVREADWRITE("dma8237", i8237_device, i8237_r, i8237_w)
200200   AM_RANGE(0x40, 0x41) AM_READWRITE(kb_ctrl_mcu_r, kb_ctrl_mcu_w)
201201   AM_RANGE(0x50, 0x51) AM_DEVICE("upd765", upd765a_device, map)
202202   AM_RANGE(0xa0, 0xa1) AM_DEVREADWRITE("upd7220", upd7220_device, read, write)
r21984r21985
280280   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
281281
282282   // Assert HLDA
283   i8237_hlda_w(m_dmac, state);
283   m_dmac->i8237_hlda_w(state);
284284}
285285
286286static UINT8 memory_read_byte(address_space &space, offs_t address, UINT8 mem_mask)             { return space.read_byte(address); }
trunk/src/mess/drivers/mikrosha.c
r21984r21985
3838   AM_RANGE( 0xd000, 0xd001 ) AM_DEVREADWRITE("i8275", i8275_device, read, write) AM_MIRROR(0x07fe) // video
3939   AM_RANGE( 0xd800, 0xd803 ) AM_DEVREADWRITE_LEGACY("pit8253", pit8253_r,pit8253_w) AM_MIRROR(0x07fc) // Timer
4040   AM_RANGE( 0xe000, 0xf7ff ) AM_READ(radio_cpu_state_r) // Not connected
41   AM_RANGE( 0xf800, 0xffff ) AM_DEVWRITE_LEGACY("dma8257", i8257_w)    // DMA
41   AM_RANGE( 0xf800, 0xffff ) AM_DEVWRITE("dma8257", i8257_device, i8257_w)    // DMA
4242   AM_RANGE( 0xf800, 0xffff ) AM_ROM  // System ROM
4343ADDRESS_MAP_END
4444
trunk/src/mame/machine/pcshare.c
r21984r21985
157157   device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
158158
159159   /* Assert HLDA */
160   i8237_hlda_w( device, state );
160   dynamic_cast<i8237_device*>(device)->i8237_hlda_w( state );
161161}
162162
163163
r21984r21985
326326};
327327
328328ADDRESS_MAP_START( pcat32_io_common, AS_IO, 32, driver_device )
329   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
329   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
330330   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
331331   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
332332   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
333333   AM_RANGE(0x0070, 0x007f) AM_RAM //AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffffffff)
334334   AM_RANGE(0x0080, 0x009f) AM_READWRITE8_LEGACY(dma_page_select_r,dma_page_select_w, 0xffffffff)//TODO
335335   AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8_LEGACY("pic8259_2", pic8259_r, pic8259_w, 0xffffffff)
336   AM_RANGE(0x00c0, 0x00df) AM_DEVREADWRITE8_LEGACY("dma8237_2", i8237_r, i8237_w, 0xffff)
336   AM_RANGE(0x00c0, 0x00df) AM_DEVREADWRITE8("dma8237_2", i8237_device, i8237_r, i8237_w, 0xffff)
337337ADDRESS_MAP_END
338338
339339MACHINE_CONFIG_FRAGMENT(pcat_common)
trunk/src/mame/machine/konppc.c
r21984r21985
143143   const char *dsptag = (cgboard_id == 0) ? "dsp" : "dsp2";
144144   const char *pcitag = (cgboard_id == 0) ? "k033906_1" : "k033906_2";
145145   device_t *dsp = space.machine().device(dsptag);
146   device_t *k033906 = space.machine().device(pcitag);
146   k033906_device *k033906 = space.machine().device<k033906_device>(pcitag);
147147//  mame_printf_debug("dsp_cmd_w: (board %d) %08X, %08X, %08X at %08X\n", cgboard_id, data, offset, mem_mask, space.device().safe_pc());
148148
149149   if (cgboard_id < MAX_CG_BOARDS)
r21984r21985
158158               dsp_state[cgboard_id] |= 0x10;
159159
160160            if (k033906 != NULL)    /* zr107.c has no PCI and some games only have one PCI Bridge */
161               k033906_set_reg(k033906, (data & 0x20000000) ? 1 : 0);
161               k033906->k033906_set_reg((data & 0x20000000) ? 1 : 0);
162162
163163            if (data & 0x10000000)
164164               dsp->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
r21984r21985
409409
410410READ32_HANDLER( K033906_0_r )
411411{
412   device_t *k033906_1 = space.machine().device("k033906_1");
412   k033906_device *k033906_1 = space.machine().device<k033906_device>("k033906_1");
413413   if (nwk_device_sel[0] & 0x01)
414414      return nwk_fifo_r(space, 0);
415415   else
416      return k033906_r(k033906_1, space, offset, mem_mask);
416      return k033906_1->k033906_r(space, offset, mem_mask);
417417}
418418
419419WRITE32_HANDLER( K033906_0_w )
420420{
421   device_t *k033906_1 = space.machine().device("k033906_1");
422   k033906_w(k033906_1, space, offset, data, mem_mask);
421   k033906_device *k033906_1 = space.machine().device<k033906_device>("k033906_1");
422   k033906_1->k033906_w(space, offset, data, mem_mask);
423423}
424424
425425READ32_HANDLER( K033906_1_r )
426426{
427   device_t *k033906_2 = space.machine().device("k033906_2");
427   k033906_device *k033906_2 = space.machine().device<k033906_device>("k033906_2");
428428   if (nwk_device_sel[1] & 0x01)
429429      return nwk_fifo_r(space, 1);
430430   else
431      return k033906_r(k033906_2, space, offset, mem_mask);
431      return k033906_2->k033906_r(space, offset, mem_mask);
432432}
433433
434434WRITE32_HANDLER(K033906_1_w)
435435{
436   device_t *k033906_2 = space.machine().device("k033906_2");
437   k033906_w(k033906_2, space, offset, data, mem_mask);
436   k033906_device *k033906_2 = space.machine().device<k033906_device>("k033906_2");
437   k033906_2->k033906_w(space, offset, data, mem_mask);
438438}
439439
440440/*****************************************************************************/
trunk/src/mame/drivers/savquest.c
r21984r21985
421421
422422READ8_MEMBER(savquest_state::at_dma8237_2_r)
423423{
424   device_t *device = machine().device("dma8237_2");
425   return i8237_r(device, space, offset / 2);
424   return m_dma8237_2->i8237_r(space, offset / 2);
426425}
427426
428427WRITE8_MEMBER(savquest_state::at_dma8237_2_w)
429428{
430   device_t *device = machine().device("dma8237_2");
431   i8237_w(device, space, offset / 2, data);
429   m_dma8237_2->i8237_w(space, offset / 2, data);
432430}
433431
434432WRITE_LINE_MEMBER(savquest_state::pc_dma_hrq_changed)
r21984r21985
436434   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
437435
438436   /* Assert HLDA */
439   i8237_hlda_w( m_dma8237_1, state );
437   m_dma8237_1->i8237_hlda_w( state );
440438}
441439
442440
r21984r21985
506504ADDRESS_MAP_END
507505
508506static ADDRESS_MAP_START(savquest_io, AS_IO, 32, savquest_state)
509   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
507   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
510508   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
511509   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
512510   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
trunk/src/mame/drivers/photoply.c
r21984r21985
3636   device_t    *m_pit8253;
3737   device_t    *m_pic8259_1;
3838   device_t    *m_pic8259_2;
39   device_t    *m_dma8237_1;
40   device_t    *m_dma8237_2;
39   i8237_device    *m_dma8237_1;
40   i8237_device    *m_dma8237_2;
4141   DECLARE_READ32_MEMBER(ide_r);
4242   DECLARE_WRITE32_MEMBER(ide_w);
4343   DECLARE_READ32_MEMBER(fdc_r);
r21984r21985
7272   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
7373
7474   /* Assert HLDA */
75   i8237_hlda_w( m_dma8237_1, state );
75   m_dma8237_1->i8237_hlda_w( state );
7676}
7777
7878
r21984r21985
279279
280280
281281static ADDRESS_MAP_START( photoply_io, AS_IO, 32, photoply_state )
282   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
282   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
283283   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
284284   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
285285   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
286286   AM_RANGE(0x0070, 0x007f) AM_RAM//DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffffffff)
287287   AM_RANGE(0x0080, 0x009f) AM_READWRITE8(dma_page_select_r,dma_page_select_w, 0xffffffff)//TODO
288288   AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8_LEGACY("pic8259_2", pic8259_r, pic8259_w, 0xffffffff)
289   AM_RANGE(0x00c0, 0x00df) AM_DEVREADWRITE8_LEGACY("dma8237_2", i8237_r, i8237_w, 0xffff)
289   AM_RANGE(0x00c0, 0x00df) AM_DEVREADWRITE8("dma8237_2", i8237_device, i8237_r, i8237_w, 0xffff)
290290   AM_RANGE(0x00e8, 0x00eb) AM_NOP
291291   AM_RANGE(0x01f0, 0x01f7) AM_READWRITE(ide_r, ide_w)
292292   AM_RANGE(0x0278, 0x027f) AM_RAM //parallel port 2
r21984r21985
346346   m_pit8253 = machine().device( "pit8254" );
347347   m_pic8259_1 = machine().device( "pic8259_1" );
348348   m_pic8259_2 = machine().device( "pic8259_2" );
349   m_dma8237_1 = machine().device( "dma8237_1" );
350   m_dma8237_2 = machine().device( "dma8237_2" );
349   m_dma8237_1 = machine().device<i8237_device>( "dma8237_1" );
350   m_dma8237_2 = machine().device<i8237_device>( "dma8237_2" );
351351
352352   init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, photoply_set_keyb_int);
353353}
trunk/src/mame/drivers/midqslvr.c
r21984r21985
463463
464464READ8_MEMBER(midqslvr_state::at_dma8237_2_r)
465465{
466   device_t *device = machine().device("dma8237_2");
467   return i8237_r(device, space, offset / 2);
466   return m_dma8237_2->i8237_r(space, offset / 2);
468467}
469468
470469WRITE8_MEMBER(midqslvr_state::at_dma8237_2_w)
471470{
472   device_t *device = machine().device("dma8237_2");
473   i8237_w(device, space, offset / 2, data);
471   m_dma8237_2->i8237_w(space, offset / 2, data);
474472}
475473
476474WRITE_LINE_MEMBER(midqslvr_state::pc_dma_hrq_changed)
r21984r21985
478476   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
479477
480478   /* Assert HLDA */
481   i8237_hlda_w( m_dma8237_1, state );
479   m_dma8237_1->i8237_hlda_w( state );
482480}
483481
484482
r21984r21985
548546ADDRESS_MAP_END
549547
550548static ADDRESS_MAP_START(midqslvr_io, AS_IO, 32, midqslvr_state)
551   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
549   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
552550   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
553551   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
554552   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
trunk/src/mame/drivers/calchase.c
r21984r21985
145145   device_t    *m_pit8254;
146146   device_t    *m_pic8259_1;
147147   device_t    *m_pic8259_2;
148   device_t    *m_dma8237_1;
149   device_t    *m_dma8237_2;
148   i8237_device    *m_dma8237_1;
149   i8237_device    *m_dma8237_2;
150150
151151   UINT32 m_idle_skip_ram;
152152   required_device<cpu_device> m_maincpu;
r21984r21985
190190
191191READ8_MEMBER(calchase_state::at_dma8237_2_r)
192192{
193   device_t *device = machine().device("dma8237_2");
194   return i8237_r(device, space, offset / 2);
193   return m_dma8237_2->i8237_r(space, offset / 2);
195194}
196195
197196WRITE8_MEMBER(calchase_state::at_dma8237_2_w)
198197{
199   device_t *device = machine().device("dma8237_2");
200   i8237_w(device, space, offset / 2, data);
198   m_dma8237_2->i8237_w(space, offset / 2, data);
201199}
202200
203201READ8_MEMBER(calchase_state::at_page8_r)
r21984r21985
248246   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
249247
250248   /* Assert HLDA */
251   i8237_hlda_w( m_dma8237_1, state );
249   m_dma8237_1->i8237_hlda_w(state);
252250}
253251
254252
r21984r21985
579577ADDRESS_MAP_END
580578
581579static ADDRESS_MAP_START( calchase_io, AS_IO, 32, calchase_state )
582   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
580   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
583581   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
584582   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
585583   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
r21984r21985
819817   m_pit8254 = machine().device( "pit8254" );
820818   m_pic8259_1 = machine().device( "pic8259_1" );
821819   m_pic8259_2 = machine().device( "pic8259_2" );
822   m_dma8237_1 = machine().device( "dma8237_1" );
823   m_dma8237_2 = machine().device( "dma8237_2" );
820   m_dma8237_1 = machine().device<i8237_device>( "dma8237_1" );
821   m_dma8237_2 = machine().device<i8237_device>( "dma8237_2" );
824822}
825823
826824/*************************************************************
trunk/src/mame/drivers/pcxt.c
r21984r21985
426426   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
427427
428428   /* Assert HLDA */
429   i8237_hlda_w( m_dma8237_1, state );
429   m_dma8237_1->i8237_hlda_w( state );
430430}
431431
432432
r21984r21985
557557
558558static ADDRESS_MAP_START( pcxt_io_common, AS_IO, 8, pcxt_state )
559559   ADDRESS_MAP_GLOBAL_MASK(0x3ff)
560   AM_RANGE(0x0000, 0x000f) AM_DEVREADWRITE_LEGACY("dma8237_1", i8237_r, i8237_w ) //8237 DMA Controller
560   AM_RANGE(0x0000, 0x000f) AM_DEVREADWRITE("dma8237_1", i8237_device, i8237_r, i8237_w ) //8237 DMA Controller
561561   AM_RANGE(0x0020, 0x002f) AM_DEVREADWRITE_LEGACY("pic8259_1", pic8259_r, pic8259_w ) //8259 Interrupt control
562562   AM_RANGE(0x0040, 0x0043) AM_DEVREADWRITE_LEGACY("pit8253", pit8253_r, pit8253_w)    //8253 PIT
563563   AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)  //PPI 8255
trunk/src/mame/drivers/zr107.c
r21984r21985
433433   AM_RANGE(0x78040000, 0x7804000f) AM_READWRITE_LEGACY(K001006_0_r, K001006_0_w)
434434   AM_RANGE(0x780c0000, 0x780c0007) AM_READWRITE_LEGACY(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc)
435435   AM_RANGE(0x7e000000, 0x7e003fff) AM_READWRITE8(sysreg_r, sysreg_w, 0xffffffff)
436   AM_RANGE(0x7e008000, 0x7e009fff) AM_DEVREADWRITE8_LEGACY("k056230", k056230_r, k056230_w, 0xffffffff)               /* LANC registers */
437   AM_RANGE(0x7e00a000, 0x7e00bfff) AM_DEVREADWRITE_LEGACY("k056230", lanc_ram_r, lanc_ram_w)      /* LANC Buffer RAM (27E) */
436   AM_RANGE(0x7e008000, 0x7e009fff) AM_DEVREADWRITE8("k056230", k056230_device, k056230_r, k056230_w, 0xffffffff)               /* LANC registers */
437   AM_RANGE(0x7e00a000, 0x7e00bfff) AM_DEVREADWRITE("k056230", k056230_device, lanc_ram_r, lanc_ram_w)      /* LANC Buffer RAM (27E) */
438438   AM_RANGE(0x7e00c000, 0x7e00c007) AM_DEVWRITE_LEGACY("k056800", k056800_host_w)
439439   AM_RANGE(0x7e00c008, 0x7e00c00f) AM_DEVREAD_LEGACY("k056800", k056800_host_r)
440440   AM_RANGE(0x7f800000, 0x7f9fffff) AM_ROM AM_SHARE("share2")
r21984r21985
461461   AM_RANGE(0x78080000, 0x7808000f) AM_MIRROR(0x80000000) AM_READWRITE_LEGACY(K001006_1_r, K001006_1_w)
462462   AM_RANGE(0x780c0000, 0x780c0007) AM_MIRROR(0x80000000) AM_READWRITE_LEGACY(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc)
463463   AM_RANGE(0x7e000000, 0x7e003fff) AM_MIRROR(0x80000000) AM_READWRITE8(sysreg_r, sysreg_w, 0xffffffff)
464   AM_RANGE(0x7e008000, 0x7e009fff) AM_MIRROR(0x80000000) AM_DEVREADWRITE8_LEGACY("k056230", k056230_r, k056230_w, 0xffffffff)             /* LANC registers */
465   AM_RANGE(0x7e00a000, 0x7e00bfff) AM_MIRROR(0x80000000) AM_DEVREADWRITE_LEGACY("k056230", lanc_ram_r, lanc_ram_w)    /* LANC Buffer RAM (27E) */
464   AM_RANGE(0x7e008000, 0x7e009fff) AM_MIRROR(0x80000000) AM_DEVREADWRITE8("k056230", k056230_device, k056230_r, k056230_w, 0xffffffff)             /* LANC registers */
465   AM_RANGE(0x7e00a000, 0x7e00bfff) AM_MIRROR(0x80000000) AM_DEVREADWRITE("k056230", k056230_device, lanc_ram_r, lanc_ram_w)    /* LANC Buffer RAM (27E) */
466466   AM_RANGE(0x7e00c000, 0x7e00c007) AM_MIRROR(0x80000000) AM_DEVWRITE_LEGACY("k056800", k056800_host_w)
467467   AM_RANGE(0x7e00c008, 0x7e00c00f) AM_MIRROR(0x80000000) AM_DEVREAD_LEGACY("k056800", k056800_host_r)
468468   AM_RANGE(0x7f000000, 0x7f3fffff) AM_MIRROR(0x80000000) AM_ROM AM_REGION("user2", 0)
trunk/src/mame/drivers/gticlub.c
r21984r21985
433433   AM_RANGE(0x78080000, 0x7808000f) AM_READWRITE_LEGACY(K001006_1_r, K001006_1_w)
434434   AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE_LEGACY(cgboard_dsp_comm_r_ppc, cgboard_dsp_comm_w_ppc)
435435   AM_RANGE(0x7e000000, 0x7e003fff) AM_READWRITE8(sysreg_r, sysreg_w, 0xffffffff)
436   AM_RANGE(0x7e008000, 0x7e009fff) AM_DEVREADWRITE8_LEGACY("k056230", k056230_r, k056230_w, 0xffffffff)
437   AM_RANGE(0x7e00a000, 0x7e00bfff) AM_DEVREADWRITE_LEGACY("k056230", lanc_ram_r, lanc_ram_w)
436   AM_RANGE(0x7e008000, 0x7e009fff) AM_DEVREADWRITE8("k056230", k056230_device, k056230_r, k056230_w, 0xffffffff)
437   AM_RANGE(0x7e00a000, 0x7e00bfff) AM_DEVREADWRITE("k056230", k056230_device, lanc_ram_r, lanc_ram_w)
438438   AM_RANGE(0x7e00c000, 0x7e00c007) AM_DEVWRITE_LEGACY("k056800", k056800_host_w)
439439   AM_RANGE(0x7e00c000, 0x7e00c007) AM_DEVREAD_LEGACY("k056800", k056800_host_r)       // Hang Pilot
440440   AM_RANGE(0x7e00c008, 0x7e00c00f) AM_DEVREAD_LEGACY("k056800", k056800_host_r)
trunk/src/mame/drivers/vega.c
r21984r21985
190190         else
191191         {
192192            //register w ?
193            ins8154_w(m_ins8154,space,offset&0x7f,data);
193            m_ins8154->ins8154_w(space,offset&0x7f,data);
194194         }
195195      }
196196      break;
r21984r21985
321321         else
322322         {
323323            //register r ?
324            return ins8154_r(m_ins8154,space,offset&0x7f);
324            return m_ins8154->ins8154_r(space,offset&0x7f);
325325         }
326326
327327      }
trunk/src/mame/drivers/taitowlf.c
r21984r21985
6767   required_device<device_t> m_pit8254;
6868   required_device<device_t> m_pic8259_1;
6969   required_device<device_t> m_pic8259_2;
70   required_device<device_t> m_dma8237_1;
71   required_device<device_t> m_dma8237_2;
70   required_device<i8237_device> m_dma8237_1;
71   required_device<i8237_device> m_dma8237_2;
7272   required_memory_region m_region_user1;
7373   required_memory_region m_region_user5;
7474   required_memory_bank m_bank1;
r21984r21985
135135
136136READ8_MEMBER(taitowlf_state::at_dma8237_2_r)
137137{
138   return i8237_r(m_dma8237_2, space, offset / 2);
138   return m_dma8237_2->i8237_r(space, offset / 2);
139139}
140140
141141WRITE8_MEMBER(taitowlf_state::at_dma8237_2_w)
142142{
143   i8237_w(m_dma8237_2, space, offset / 2, data);
143   m_dma8237_2->i8237_w(space, offset / 2, data);
144144}
145145
146146// Intel 82439TX System Controller (MXTC)
r21984r21985
400400   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
401401
402402   /* Assert HLDA */
403   i8237_hlda_w( m_dma8237_1, state );
403   m_dma8237_1->i8237_hlda_w( state );
404404}
405405
406406
r21984r21985
487487ADDRESS_MAP_END
488488
489489static ADDRESS_MAP_START(taitowlf_io, AS_IO, 32, taitowlf_state )
490   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
490   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
491491   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
492492   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
493493   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
trunk/src/mame/drivers/funkball.c
r21984r21985
337337
338338READ8_MEMBER(funkball_state::at_dma8237_2_r)
339339{
340   device_t *device = machine().device("dma8237_2");
341   return i8237_r(device, space, offset / 2);
340   return m_dma8237_2->i8237_r(space, offset / 2);
342341}
343342
344343WRITE8_MEMBER(funkball_state::at_dma8237_2_w)
345344{
346   device_t *device = machine().device("dma8237_2");
347   i8237_w(device, space, offset / 2, data);
345   m_dma8237_2->i8237_w(space, offset / 2, data);
348346}
349347
350348WRITE_LINE_MEMBER(funkball_state::pc_dma_hrq_changed)
r21984r21985
352350   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
353351
354352   /* Assert HLDA */
355   i8237_hlda_w( m_dma8237_1, state );
353   m_dma8237_1->i8237_hlda_w( state );
356354}
357355
358356
r21984r21985
588586ADDRESS_MAP_END
589587
590588static ADDRESS_MAP_START(funkball_io, AS_IO, 32, funkball_state)
591   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
589   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
592590   AM_RANGE(0x0020, 0x003f) AM_READWRITE8(io20_r, io20_w, 0xffffffff)
593591   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
594592   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
trunk/src/mame/drivers/gamecstl.c
r21984r21985
9393   device_t    *m_pit8254;
9494   device_t    *m_pic8259_1;
9595   device_t    *m_pic8259_2;
96   device_t    *m_dma8237_1;
97   device_t    *m_dma8237_2;
96   i8237_device    *m_dma8237_1;
97   i8237_device    *m_dma8237_2;
9898   DECLARE_WRITE32_MEMBER(pnp_config_w);
9999   DECLARE_WRITE32_MEMBER(pnp_data_w);
100100   DECLARE_WRITE32_MEMBER(bios_ram_w);
r21984r21985
191191
192192READ8_MEMBER(gamecstl_state::at_dma8237_2_r)
193193{
194   device_t *device = machine().device("dma8237_2");
195   return i8237_r(device, space, offset / 2);
194   return m_dma8237_2->i8237_r(space, offset / 2);
196195}
197196
198197WRITE8_MEMBER(gamecstl_state::at_dma8237_2_w)
199198{
200   device_t *device = machine().device("dma8237_2");
201   i8237_w(device, space, offset / 2, data);
199   m_dma8237_2->i8237_w(space, offset / 2, data);
202200}
203201
204202// Intel 82439TX System Controller (MXTC)
r21984r21985
457455   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
458456
459457   /* Assert HLDA */
460   i8237_hlda_w( m_dma8237_1, state );
458   m_dma8237_1->i8237_hlda_w( state );
461459}
462460
463461
r21984r21985
527525ADDRESS_MAP_END
528526
529527static ADDRESS_MAP_START(gamecstl_io, AS_IO, 32, gamecstl_state )
530   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
528   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
531529   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
532530   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
533531   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
r21984r21985
614612   m_pit8254 = machine().device( "pit8254" );
615613   m_pic8259_1 = machine().device( "pic8259_1" );
616614   m_pic8259_2 = machine().device( "pic8259_2" );
617   m_dma8237_1 = machine().device( "dma8237_1" );
618   m_dma8237_2 = machine().device( "dma8237_2" );
615   m_dma8237_1 = machine().device<i8237_device>( "dma8237_1" );
616   m_dma8237_2 = machine().device<i8237_device>( "dma8237_2" );
619617}
620618
621619void gamecstl_state::machine_reset()
trunk/src/mame/drivers/gammagic.c
r21984r21985
8686   device_t    *m_pit8254;
8787   device_t    *m_pic8259_1;
8888   device_t    *m_pic8259_2;
89   device_t    *m_dma8237_1;
90   device_t    *m_dma8237_2;
89   i8237_device    *m_dma8237_1;
90   i8237_device    *m_dma8237_2;
9191
9292   emu_timer *m_atapi_timer;
9393   //SCSIInstance *m_inserted_cdrom;
r21984r21985
110110
111111static READ8_DEVICE_HANDLER(at_dma8237_2_r)
112112{
113   return i8237_r(device, space, offset / 2);
113   gammagic_state *state = space.machine().driver_data<gammagic_state>();
114   return state->m_dma8237_2->i8237_r(space, offset / 2);
114115}
115116
116117static WRITE8_DEVICE_HANDLER(at_dma8237_2_w)
117118{
118   i8237_w(device, space, offset / 2, data);
119   gammagic_state *state = space.machine().driver_data<gammagic_state>();
120   state->m_dma8237_2->i8237_w(space, offset / 2, data);
119121}
120122
121123static READ8_HANDLER(at_page8_r)
r21984r21985
163165
164166static WRITE_LINE_DEVICE_HANDLER( pc_dma_hrq_changed )
165167{
168   gammagic_state *drvstate = device->machine().driver_data<gammagic_state>();
166169   device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
167170
168171   /* Assert HLDA */
169   i8237_hlda_w( device, state );
172   drvstate->m_dma8237_1->i8237_hlda_w( state );
170173}
171174
172175static READ8_HANDLER( pc_dma_read_byte )
r21984r21985
552555ADDRESS_MAP_END
553556
554557static ADDRESS_MAP_START( gammagic_io, AS_IO, 32, gammagic_state)
555   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
558   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
556559   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
557560   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
558561   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
r21984r21985
636639   state->m_pit8254 = machine.device( "pit8254" );
637640   state->m_pic8259_1 = machine.device( "pic8259_1" );
638641   state->m_pic8259_2 = machine.device( "pic8259_2" );
639   state->m_dma8237_1 = machine.device( "dma8237_1" );
640   state->m_dma8237_2 = machine.device( "dma8237_2" );
642   state->m_dma8237_1 = machine.device<i8237_device>( "dma8237_1" );
643   state->m_dma8237_2 = machine.device<i8237_device>( "dma8237_2" );
641644}
642645
643646static MACHINE_RESET( gammagic )
trunk/src/mame/drivers/queen.c
r21984r21985
333333
334334READ8_MEMBER(queen_state::at_dma8237_2_r)
335335{
336   device_t *device = machine().device("dma8237_2");
337   return i8237_r(device, space, offset / 2);
336   return m_dma8237_2->i8237_r(space, offset / 2);
338337}
339338
340339WRITE8_MEMBER(queen_state::at_dma8237_2_w)
341340{
342   device_t *device = machine().device("dma8237_2");
343   i8237_w(device, space, offset / 2, data);
341   m_dma8237_2->i8237_w(space, offset / 2, data);
344342}
345343
346344WRITE_LINE_MEMBER(queen_state::pc_dma_hrq_changed)
r21984r21985
348346   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
349347
350348   /* Assert HLDA */
351   i8237_hlda_w( m_dma8237_1, state );
349   m_dma8237_1->i8237_hlda_w( state );
352350}
353351
354352
r21984r21985
412410ADDRESS_MAP_END
413411
414412static ADDRESS_MAP_START( queen_io, AS_IO, 32, queen_state )
415   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
413   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
416414   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
417415   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
418416   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
trunk/src/mame/drivers/mediagx.c
r21984r21985
443443
444444READ8_MEMBER(mediagx_state::at_dma8237_2_r)
445445{
446   device_t *device = machine().device("dma8237_2");
447   return i8237_r(device, space, offset / 2);
446   return m_dma8237_2->i8237_r(space, offset / 2);
448447}
449448
450449WRITE8_MEMBER(mediagx_state::at_dma8237_2_w)
451450{
452   device_t *device = machine().device("dma8237_2");
453   i8237_w(device, space, offset / 2, data);
451   m_dma8237_2->i8237_w(space, offset / 2, data);
454452}
455453
456454
r21984r21985
885883   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
886884
887885   /* Assert HLDA */
888   i8237_hlda_w( m_dma8237_1, state );
886   m_dma8237_1->i8237_hlda_w( state );
889887}
890888
891889
r21984r21985
957955ADDRESS_MAP_END
958956
959957static ADDRESS_MAP_START(mediagx_io, AS_IO, 32, mediagx_state )
960   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
958   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
961959   AM_RANGE(0x0020, 0x003f) AM_READWRITE8(io20_r, io20_w, 0xffffffff)
962960   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
963961   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
trunk/src/mame/drivers/xtom3d.c
r21984r21985
455455
456456READ8_MEMBER(xtom3d_state::at_dma8237_2_r)
457457{
458   device_t *device = machine().device("dma8237_2");
459   return i8237_r(device, space, offset / 2);
458   return m_dma8237_2->i8237_r(space, offset / 2);
460459}
461460
462461WRITE8_MEMBER(xtom3d_state::at_dma8237_2_w)
463462{
464   device_t *device = machine().device("dma8237_2");
465   i8237_w(device, space, offset / 2, data);
463   m_dma8237_2->i8237_w(space, offset / 2, data);
466464}
467465
468466WRITE_LINE_MEMBER(xtom3d_state::pc_dma_hrq_changed)
r21984r21985
470468   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
471469
472470   /* Assert HLDA */
473   i8237_hlda_w( m_dma8237_1, state );
471   m_dma8237_1->i8237_hlda_w( state );
474472}
475473
476474
r21984r21985
539537ADDRESS_MAP_END
540538
541539static ADDRESS_MAP_START(xtom3d_io, AS_IO, 32, xtom3d_state)
542   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
540   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
543541   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
544542   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
545543   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
trunk/src/mame/drivers/voyager.c
r21984r21985
4343   device_t    *m_pit8254;
4444   device_t    *m_pic8259_1;
4545   device_t    *m_pic8259_2;
46   device_t    *m_dma8237_1;
47   device_t    *m_dma8237_2;
46   i8237_device    *m_dma8237_1;
47   i8237_device    *m_dma8237_2;
4848
4949   UINT32 m_idle_skip_ram;
5050   required_device<cpu_device> m_maincpu;
r21984r21985
7676
7777READ8_MEMBER(voyager_state::at_dma8237_2_r)
7878{
79   device_t *device = machine().device("dma8237_2");
80   return i8237_r(device, space, offset / 2);
79   return m_dma8237_2->i8237_r(space, offset / 2);
8180}
8281
8382WRITE8_MEMBER(voyager_state::at_dma8237_2_w)
8483{
85   device_t *device = machine().device("dma8237_2");
86   i8237_w(device, space, offset / 2, data);
84   m_dma8237_2->i8237_w(space, offset / 2, data);
8785}
8886
8987READ8_MEMBER(voyager_state::at_page8_r)
r21984r21985
134132   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
135133
136134   /* Assert HLDA */
137   i8237_hlda_w( m_dma8237_1, state );
135   m_dma8237_1->i8237_hlda_w( state );
138136}
139137
140138
r21984r21985
420418ADDRESS_MAP_END
421419
422420static ADDRESS_MAP_START( voyager_io, AS_IO, 32, voyager_state )
423   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8_LEGACY("dma8237_1", i8237_r, i8237_w, 0xffffffff)
421   AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", i8237_device, i8237_r, i8237_w, 0xffffffff)
424422   AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8_LEGACY("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
425423   AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8_LEGACY("pit8254", pit8253_r, pit8253_w, 0xffffffff)
426424   AM_RANGE(0x0060, 0x006f) AM_READWRITE8_LEGACY(kbdc8042_8_r, kbdc8042_8_w, 0xffffffff)
r21984r21985
657655   m_pit8254 = machine().device( "pit8254" );
658656   m_pic8259_1 = machine().device( "pic8259_1" );
659657   m_pic8259_2 = machine().device( "pic8259_2" );
660   m_dma8237_1 = machine().device( "dma8237_1" );
661   m_dma8237_2 = machine().device( "dma8237_2" );
658   m_dma8237_1 = machine().device<i8237_device>( "dma8237_1" );
659   m_dma8237_2 = machine().device<i8237_device>( "dma8237_2" );
662660}
663661
664662/*************************************************************
trunk/src/mame/drivers/dkong.c
r21984r21985
556556
557557WRITE8_MEMBER(dkong_state::p8257_drq_w)
558558{
559   device_t *device = machine().device("dma8257");
560   i8257_drq0_w(device, data & 0x01);
561   i8257_drq1_w(device, data & 0x01);
559   i8257_device *device = machine().device<i8257_device>("dma8257");
560   device->i8257_drq0_w(data & 0x01);
561   device->i8257_drq1_w(data & 0x01);
562562}
563563
564564READ8_MEMBER(dkong_state::dkong_in2_r)
r21984r21985
758758   AM_RANGE(0x6000, 0x6bff) AM_RAM
759759   AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("sprite_ram") /* sprite set 1 */
760760   AM_RANGE(0x7400, 0x77ff) AM_RAM_WRITE(dkong_videoram_w) AM_SHARE("video_ram")
761   AM_RANGE(0x7800, 0x780f) AM_DEVREADWRITE_LEGACY("dma8257", i8257_r, i8257_w)   /* P8257 control registers */
761   AM_RANGE(0x7800, 0x780f) AM_DEVREADWRITE("dma8257", i8257_device, i8257_r, i8257_w)   /* P8257 control registers */
762762   AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_LATCH8_WRITE("ls175.3d")    /* IN0, sound CPU intf */
763763   AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE(radarscp_grid_color_w)/* IN1 */
764764
r21984r21985
780780   AM_RANGE(0x6c00, 0x6fff) AM_RAM                                              /* DK3 bootleg only */
781781   AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("sprite_ram") /* sprite set 1 */
782782   AM_RANGE(0x7400, 0x77ff) AM_RAM_WRITE(dkong_videoram_w) AM_SHARE("video_ram")
783   AM_RANGE(0x7800, 0x780f) AM_DEVREADWRITE_LEGACY("dma8257", i8257_r, i8257_w)   /* P8257 control registers */
783   AM_RANGE(0x7800, 0x780f) AM_DEVREADWRITE("dma8257", i8257_device, i8257_r, i8257_w)   /* P8257 control registers */
784784
785785   AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_LATCH8_WRITE("ls174.3d")    /* IN0, sound interface */
786786
r21984r21985
853853   AM_RANGE(0x1600, 0x17ff) AM_RAM                                               /* 0x6400  spriteram location */
854854   AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(dkong_videoram_w) AM_SHARE("video_ram")        /* 0x7400 */
855855   AM_RANGE(0x1C00, 0x1f7f) AM_RAM                                               /* 0x6000 */
856   AM_RANGE(0x1f80, 0x1f8f) AM_DEVREADWRITE_LEGACY("dma8257", i8257_r, i8257_w)   /* P8257 control registers */
856   AM_RANGE(0x1f80, 0x1f8f) AM_DEVREADWRITE("dma8257", i8257_device, i8257_r, i8257_w)   /* P8257 control registers */
857857   /* 0x6800 not remapped */
858858   AM_RANGE(0x2000, 0x2fff) AM_ROM
859859   AM_RANGE(0x3000, 0x3fff) AM_READWRITE(s2650_mirror_r, s2650_mirror_w)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team