Previous 199869 Revisions Next

r22634 Wednesday 1st May, 2013 at 15:56:02 UTC by David Haywood
fruit machine notes / logging. (nw)
[src/emu/machine]mcf5206e.c mcf5206e.h
[src/mame/drivers]bfm_ad5.c gamtor.c jpmsys7.c

trunk/src/emu/machine/mcf5206e.c
r22633r22634
66#include "mcf5206e.h"
77
88
9
10static ADDRESS_MAP_START( coldfire_regs_map, AS_0, 32, mcf5206e_peripheral_device )
11   
12   
13   AM_RANGE(0x014, 0x017) AM_READWRITE8(ICR1_ICR2_ICR3_ICR4_r,    ICR1_ICR2_ICR3_ICR4_w,    0xffffffff)
14   
15   AM_RANGE(0x01c, 0x01f) AM_READWRITE8(ICR9_ICR10_ICR11_ICR12_r, ICR9_ICR10_ICR11_ICR12_w, 0xffffffff)
16   AM_RANGE(0x020, 0x023) AM_READWRITE8(ICR13_r,                  ICR13_w,                  0xffffffff)
17
18   AM_RANGE(0x034, 0x037) AM_READWRITE16(IMR_r, IMR_w, 0xffffffff)
19
20   /* Chip Select registers */
21   AM_RANGE(0x064, 0x067) AM_READWRITE16(CSAR0_r, CSAR0_w, 0xffffffff)
22   AM_RANGE(0x068, 0x06b) AM_READWRITE  (CSMR0_r, CSMR0_w)
23   AM_RANGE(0x06c, 0x06f) AM_READWRITE16(CSCR0_r, CSCR0_w, 0xffffffff)
24   AM_RANGE(0x070, 0x073) AM_READWRITE16(CSAR1_r, CSAR1_w, 0xffffffff)
25   AM_RANGE(0x074, 0x077) AM_READWRITE  (CSMR1_r, CSMR1_w)
26   AM_RANGE(0x078, 0x07b) AM_READWRITE16(CSCR1_r, CSCR1_w, 0xffffffff)
27   AM_RANGE(0x07c, 0x07f) AM_READWRITE16(CSAR2_r, CSAR2_w, 0xffffffff)
28   AM_RANGE(0x080, 0x083) AM_READWRITE  (CSMR2_r, CSMR2_w)
29   AM_RANGE(0x084, 0x087) AM_READWRITE16(CSCR2_r, CSCR2_w, 0xffffffff)
30   AM_RANGE(0x088, 0x08b) AM_READWRITE16(CSAR3_r, CSAR3_w, 0xffffffff)
31   AM_RANGE(0x08c, 0x08f) AM_READWRITE  (CSMR3_r, CSMR3_w)
32   AM_RANGE(0x090, 0x093) AM_READWRITE16(CSCR3_r, CSCR3_w, 0xffffffff)
33   AM_RANGE(0x094, 0x097) AM_READWRITE16(CSAR4_r, CSAR4_w, 0xffffffff)
34   AM_RANGE(0x098, 0x09b) AM_READWRITE  (CSMR4_r, CSMR4_w)
35   AM_RANGE(0x09c, 0x09f) AM_READWRITE16(CSCR4_r, CSCR4_w, 0xffffffff)
36   AM_RANGE(0x0a0, 0x0a3) AM_READWRITE16(CSAR5_r, CSAR5_w, 0xffffffff)
37   AM_RANGE(0x0a4, 0x0a7) AM_READWRITE  (CSMR5_r, CSMR5_w)
38   AM_RANGE(0x0a8, 0x0ab) AM_READWRITE16(CSCR5_r, CSCR5_w, 0xffffffff)
39   AM_RANGE(0x0ac, 0x0af) AM_READWRITE16(CSAR6_r, CSAR6_w, 0xffffffff)
40   AM_RANGE(0x0b0, 0x0b3) AM_READWRITE  (CSMR6_r, CSMR6_w)
41   AM_RANGE(0x0b4, 0x0b7) AM_READWRITE16(CSCR6_r, CSCR6_w, 0xffffffff)
42   AM_RANGE(0x0b8, 0x0bb) AM_READWRITE16(CSAR7_r, CSAR7_w, 0xffffffff)
43   AM_RANGE(0x0bc, 0x0bf) AM_READWRITE  (CSMR7_r, CSMR7_w)
44   AM_RANGE(0x0c0, 0x0c3) AM_READWRITE16(CSCR7_r, CSCR7_w, 0xffffffff)
45
46   AM_RANGE(0x0c4, 0x0c7) AM_READWRITE16(DMCR_r, DMCR_w, 0xffffffff)
47   AM_RANGE(0x0c8, 0x0cb) AM_READWRITE16(PAR_r, PAR_w, 0xffffffff)
48
49   AM_RANGE(0x100, 0x103) AM_READWRITE16(TMR1_r, TMR1_w, 0xffffffff)
50   AM_RANGE(0x104, 0x107) AM_READWRITE16(TRR1_r, TRR1_w, 0xffffffff)
51
52
53   AM_RANGE(0x1c4, 0x1c7) AM_READWRITE8(PPDDR_r, PPDDR_w, 0xffffffff)
54   AM_RANGE(0x1c8, 0x1cb) AM_READWRITE8(PPDAT_r, PPDAT_w, 0xffffffff)
55   
56   AM_RANGE(0x1e8, 0x1eb) AM_READWRITE8(MBCR_r, MBCR_w, 0xffffffff)
57   AM_RANGE(0x1ec, 0x1ef) AM_READWRITE8(MBSR_r, MBSR_w, 0xffffffff)
58ADDRESS_MAP_END
59
60
61READ8_MEMBER( mcf5206e_peripheral_device::ICR1_ICR2_ICR3_ICR4_r )
62{
63   switch (offset)
64   {
65   case 0: // 0x014
66      printf("(External IRQ1/IPL1 Interrupt Vector) ICR1_r\n");
67      return m_ICR1;
68   case 1: // 0x015
69      printf("(External IPL2 Interrupt Vector) ICR2_r\n");
70      return m_ICR2;
71   case 2: // 0x016
72      printf("(External IPL3 Interrupt Vector) ICR3_r\n");
73      return m_ICR3;
74   case 3: // 0x017
75      printf("(External IRQ4/IPL4 Interrupt Vector) ICR4_r\n");
76      return m_ICR4;
77   }
78
79   return 0;
80}
81
82WRITE8_MEMBER( mcf5206e_peripheral_device::ICR1_ICR2_ICR3_ICR4_w )
83{
84   switch (offset)
85   {
86   case 0: // 0x014
87      m_ICR1 = data;
88      printf("(External IRQ1/IPL1 Interrupt Vector) ICR1_w %02x\n",data);
89      break;
90   case 1: // 0x015
91      m_ICR2 = data;
92      printf("(External IPL2 Interrupt Vector) ICR2_w %02x\n",data);
93      break;
94   case 2: // 0x016
95      m_ICR3 = data;
96      printf("(External IPL3 Interrupt Vector) ICR3_w %02x\n",data);
97      break;
98   case 3: // 0x017
99      m_ICR4 = data;
100      printf("(External IRQ4/IPL4 Interrupt Vector) ICR4_w %02x\n",data);
101      break;
102   }
103}
104
105READ8_MEMBER( mcf5206e_peripheral_device::ICR9_ICR10_ICR11_ICR12_r )
106{
107   switch (offset)
108   {
109   case 0: // 0x01c
110      printf("(Timer 1 Interrupt Vector) ICR9_r\n");
111      return m_ICR9;
112   case 1: // 0x01d
113      printf("(Timer 2 Interrupt Vector) ICR10_r\n");
114      return m_ICR10;
115   case 2: // 0x01e
116      printf("(MBUS Interrupt Vector) ICR11_r\n");
117      return m_ICR11;
118   case 3: // 0x01f
119      printf("(UART1 Interrupt Vector) ICR12_r\n");
120      return m_ICR12;
121   }
122
123   return 0;
124}
125
126WRITE8_MEMBER( mcf5206e_peripheral_device::ICR9_ICR10_ICR11_ICR12_w )
127{
128   switch (offset)
129   {
130   case 0: // 0x01c
131      m_ICR9 = data;
132      printf("(Timer 1 Interrupt Vector) ICR9_w %02x\n",data);
133      break;
134   case 1: // 0x01d
135      m_ICR10 = data;
136      printf("(Timer 2 Interrupt Vector) ICR10_w %02x\n",data);
137      break;
138   case 2: // 0x01e
139      m_ICR11 = data;
140      printf("(MBUS Interrupt Vector) ICR11_w %02x\n",data);
141      break;
142   case 3: // 0x01f
143      m_ICR12 = data;
144      printf("(UART1 Interrupt Vector) ICR12_w %02x\n",data);
145      break;
146   }
147}
148
149READ8_MEMBER( mcf5206e_peripheral_device::ICR13_r )
150{
151   switch (offset)
152   {
153   case 0: // 0x020
154      printf("(UART2 Interrupt Vector) ICR13_r\n");
155      return m_ICR13;
156   case 1:
157   case 2:
158   case 3:
159      printf("invalid ICR13_r %d\n", offset);
160      return 0;
161   }
162
163   return 0;
164}
165
166WRITE8_MEMBER( mcf5206e_peripheral_device::ICR13_w )
167{
168   switch (offset)
169   {
170   case 0: // 0x020
171      m_ICR13 = data;
172      printf("(UART2 Interrupt Vector) ICR13_w %02x\n",data);
173      break;
174   case 1:
175   case 2:
176   case 3:
177      printf("invalid ICR13_w %d, %02x\n", offset, data);
178      break;
179   }
180}
181
182
183inline UINT16 mcf5206e_peripheral_device::CSAR_r(int which, int offset, UINT16 mem_mask)
184{
185   if (offset==0)
186   {
187      printf("CSAR%d_r\n", which);
188      return m_CSAR[which];
189   }
190   else
191   {
192      logerror("invalid CSAR%d_r with offset %d\n", which, offset);
193      return 0;
194   }
195}
196
197inline void mcf5206e_peripheral_device::CSAR_w(int which, int offset, UINT16 data, UINT16 mem_mask)
198{
199   if (offset==0)
200   {
201      COMBINE_DATA( &m_CSAR[which] );
202      printf("CSAR%d_w %04x\n", which, data);
203   }
204   else
205   {
206      logerror("invalid CSAR%d_w with offset %d %04x\n", which, offset, data);
207   }
208}
209
210inline UINT32 mcf5206e_peripheral_device::CSMR_r(int which, UINT32 mem_mask)
211{
212   printf("CSMR%d_r\n", which);
213   return m_CSMR[0];
214}
215
216inline void mcf5206e_peripheral_device::CSMR_w(int which, UINT32 data, UINT32 mem_mask)
217{
218   COMBINE_DATA( &m_CSMR[0] );
219   printf("CSMR%d_w %08x\n", which, data);
220}
221
222inline UINT16 mcf5206e_peripheral_device::CSCR_r(int which, int offset, UINT16 mem_mask)
223{
224   if (offset==1)
225   {
226      printf("CSCR%d_r\n", which);
227      return m_CSCR[which];
228   }
229   else
230   {
231      logerror("invalid CSCR%d_r with offset %d\n", which, offset);
232      return 0;
233   }
234}
235
236inline void mcf5206e_peripheral_device::CSCR_w(int which, int offset, UINT16 data, UINT16 mem_mask)
237{
238   if (offset==1)
239   {
240      COMBINE_DATA( &m_CSCR[which] );
241      printf("CSCR%d_w %04x\n", which, data);
242   }
243   else
244   {
245      logerror("invalid CSCR%d_r with offset %d %04x\n", which, offset, data);
246   }
247}
248
249
250
251
252
253
254READ16_MEMBER(  mcf5206e_peripheral_device::CSAR0_r) { return CSAR_r(0, offset, mem_mask); };
255WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR0_w) {        CSAR_w(0, offset, data, mem_mask); };
256READ32_MEMBER(  mcf5206e_peripheral_device::CSMR0_r) { return CSMR_r(0, mem_mask); };
257WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR0_w) {        CSMR_w(0, data, mem_mask); };
258READ16_MEMBER(  mcf5206e_peripheral_device::CSCR0_r) { return CSCR_r(0, offset, mem_mask); };
259WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR0_w) {        CSCR_w(0, offset, data, mem_mask); };
260
261READ16_MEMBER(  mcf5206e_peripheral_device::CSAR1_r) { return CSAR_r(1, offset, mem_mask); };
262WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR1_w) {        CSAR_w(1, offset, data, mem_mask); };
263READ32_MEMBER(  mcf5206e_peripheral_device::CSMR1_r) { return CSMR_r(1, mem_mask); };
264WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR1_w) {        CSMR_w(1, data, mem_mask); };
265READ16_MEMBER(  mcf5206e_peripheral_device::CSCR1_r) { return CSCR_r(1, offset, mem_mask); };
266WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR1_w) {        CSCR_w(1, offset, data, mem_mask); };
267
268READ16_MEMBER(  mcf5206e_peripheral_device::CSAR2_r) { return CSAR_r(2, offset, mem_mask); };
269WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR2_w) {        CSAR_w(2, offset, data, mem_mask); };
270READ32_MEMBER(  mcf5206e_peripheral_device::CSMR2_r) { return CSMR_r(2, mem_mask); };
271WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR2_w) {        CSMR_w(2, data, mem_mask); };
272READ16_MEMBER(  mcf5206e_peripheral_device::CSCR2_r) { return CSCR_r(2, offset, mem_mask); };
273WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR2_w) {        CSCR_w(2, offset, data, mem_mask); };
274
275READ16_MEMBER(  mcf5206e_peripheral_device::CSAR3_r) { return CSAR_r(3, offset, mem_mask); };
276WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR3_w) {        CSAR_w(3, offset, data, mem_mask); };
277READ32_MEMBER(  mcf5206e_peripheral_device::CSMR3_r) { return CSMR_r(3, mem_mask); };
278WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR3_w) {        CSMR_w(3, data, mem_mask); };
279READ16_MEMBER(  mcf5206e_peripheral_device::CSCR3_r) { return CSCR_r(3, offset, mem_mask); };
280WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR3_w) {        CSCR_w(3, offset, data, mem_mask); };
281
282READ16_MEMBER(  mcf5206e_peripheral_device::CSAR4_r) { return CSAR_r(4, offset, mem_mask); };
283WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR4_w) {        CSAR_w(4, offset, data, mem_mask); };
284READ32_MEMBER(  mcf5206e_peripheral_device::CSMR4_r) { return CSMR_r(4, mem_mask); };
285WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR4_w) {        CSMR_w(4, data, mem_mask); };
286READ16_MEMBER(  mcf5206e_peripheral_device::CSCR4_r) { return CSCR_r(4, offset, mem_mask); };
287WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR4_w) {        CSCR_w(4, offset, data, mem_mask); };
288
289READ16_MEMBER(  mcf5206e_peripheral_device::CSAR5_r) { return CSAR_r(5, offset, mem_mask); };
290WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR5_w) {        CSAR_w(5, offset, data, mem_mask); };
291READ32_MEMBER(  mcf5206e_peripheral_device::CSMR5_r) { return CSMR_r(5, mem_mask); };
292WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR5_w) {        CSMR_w(5, data, mem_mask); };
293READ16_MEMBER(  mcf5206e_peripheral_device::CSCR5_r) { return CSCR_r(5, offset, mem_mask); };
294WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR5_w) {        CSCR_w(5, offset, data, mem_mask); };
295
296READ16_MEMBER(  mcf5206e_peripheral_device::CSAR6_r) { return CSAR_r(6, offset, mem_mask); };
297WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR6_w) {        CSAR_w(6, offset, data, mem_mask); };
298READ32_MEMBER(  mcf5206e_peripheral_device::CSMR6_r) { return CSMR_r(6, mem_mask); };
299WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR6_w) {        CSMR_w(6, data, mem_mask); };
300READ16_MEMBER(  mcf5206e_peripheral_device::CSCR6_r) { return CSCR_r(6, offset, mem_mask); };
301WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR6_w) {        CSCR_w(6, offset, data, mem_mask); };
302
303READ16_MEMBER(  mcf5206e_peripheral_device::CSAR7_r) { return CSAR_r(7, offset, mem_mask); };
304WRITE16_MEMBER( mcf5206e_peripheral_device::CSAR7_w) {        CSAR_w(7, offset, data, mem_mask); };
305READ32_MEMBER(  mcf5206e_peripheral_device::CSMR7_r) { return CSMR_r(7, mem_mask); };
306WRITE32_MEMBER( mcf5206e_peripheral_device::CSMR7_w) {        CSMR_w(7, data, mem_mask); };
307READ16_MEMBER(  mcf5206e_peripheral_device::CSCR7_r) { return CSCR_r(7, offset, mem_mask); };
308WRITE16_MEMBER( mcf5206e_peripheral_device::CSCR7_w) {        CSCR_w(7, offset, data, mem_mask); };
309
310
311READ16_MEMBER( mcf5206e_peripheral_device::DMCR_r)
312{
313   switch (offset)
314   {
315   case 1:
316      printf("DMCR_r %04x\n", mem_mask);
317      return m_DMCR;
318   case 0:
319      printf("invalid DMCR_r %d %04x\n", offset, mem_mask);
320      return 0;
321   }
322
323   return 0;
324}
325
326WRITE16_MEMBER( mcf5206e_peripheral_device::DMCR_w)
327{
328   switch (offset)
329   {
330   case 1:
331      COMBINE_DATA(&m_DMCR);
332      printf("DMCR_w %04x %04x\n",data, mem_mask);
333      break;
334   case 0:
335      printf("invalid DMCR_w %d, %04x %04x\n", offset, data, mem_mask);
336      break;
337
338   }
339}
340
341
342READ16_MEMBER( mcf5206e_peripheral_device::PAR_r)
343{
344   switch (offset)
345   {
346   case 1:
347      printf("PAR_r %04x\n", mem_mask);
348      return m_PAR;
349   case 0:
350      printf("invalid PAR_r %d %04x\n", offset, mem_mask);
351      return 0;
352   }
353
354   return 0;
355}
356
357WRITE16_MEMBER( mcf5206e_peripheral_device::PAR_w)
358{
359   switch (offset)
360   {
361   case 1:
362      COMBINE_DATA(&m_PAR);
363      printf("PAR_w %04x %04x\n",data, mem_mask);
364      break;
365   case 0:
366      printf("invalid PAR_w %d, %04x %04x\n", offset, data, mem_mask);
367      break;
368
369   }
370}
371
372
373
374READ8_MEMBER( mcf5206e_peripheral_device::PPDDR_r)
375{
376   switch (offset)
377   {
378   case 0:
379   case 2:
380   case 3:
381      printf("invalid PPDDR_r %d\n", offset);
382      return 0;
383   case 1: // '$1C5'
384      printf("PPDDR_r\n");
385      return m_PPDDR;
386   }
387
388   return 0;
389}
390
391WRITE8_MEMBER( mcf5206e_peripheral_device::PPDDR_w)
392{
393   switch (offset)
394   {
395   case 0:
396   case 2:
397   case 3:
398      printf("invalid PPDDR_w %d %02x\n", offset, data);
399      break;
400   case 1: // '$1C5'
401      m_PPDDR = data;
402      printf("PPDDR_w %02x\n", data);
403      break;
404   }
405}
406
407READ8_MEMBER( mcf5206e_peripheral_device::PPDAT_r)
408{
409   switch (offset)
410   {
411   case 0:
412   case 2:
413   case 3:
414      printf("invalid PPDAT_r %d\n", offset);
415      return 0;
416   case 1: // '$1C9'
417      printf("PPDAT_r\n");
418      return m_PPDAT; // should use a callback.
419   }
420
421   return 0;
422}
423
424WRITE8_MEMBER( mcf5206e_peripheral_device::PPDAT_w)
425{
426   switch (offset)
427   {
428   case 0:
429   case 2:
430   case 3:
431      printf("invalid PPDAT_w %d, %02x\n", offset, data);
432      break;
433   case 1: // '$1C9'
434      m_PPDAT = data; // should use a callback.
435      printf("PPDAT_w %02x\n", data);
436      break;
437   }
438
439}
440
441
442READ8_MEMBER( mcf5206e_peripheral_device::MBCR_r)
443{
444   switch (offset)
445   {
446   case 0:
447      printf("MBCR_r\n");
448      return m_MBCR;
449   case 1:
450   case 2:
451   case 3:
452      printf("invalid MBCR_r %d\n", offset);
453      return 0;
454   }
455
456   return 0;
457}
458
459WRITE8_MEMBER( mcf5206e_peripheral_device::MBCR_w)
460{
461   switch (offset)
462   {
463   case 0:
464      m_MBCR = data;
465      printf("MBCR_w %02x\n",data);
466      break;
467   case 1:
468   case 2:
469   case 3:
470      printf("invalid MBCR_w %d, %02x\n", offset, data);
471      break;
472
473   }
474}
475
476
477READ8_MEMBER( mcf5206e_peripheral_device::MBSR_r)
478{
479   switch (offset)
480   {
481   case 0:
482      printf("MBSR_r\n");
483      return m_MBSR;
484   case 1:
485   case 2:
486   case 3:
487      printf("invalid MBSR_r %d\n", offset);
488      return 0;
489   }
490
491   return 0;
492}
493
494WRITE8_MEMBER( mcf5206e_peripheral_device::MBSR_w)
495{
496   switch (offset)
497   {
498   case 0:
499      m_MBSR = data;
500      printf("MBSR_w %02x\n",data);
501      break;
502   case 1:
503   case 2:
504   case 3:
505      printf("invalid MBSR_w %d, %02x\n", offset, data);
506      break;
507
508   }
509}
510
511
512
513READ16_MEMBER( mcf5206e_peripheral_device::IMR_r)
514{
515   switch (offset)
516   {
517   case 1:
518      printf("IMR_r %04x\n", mem_mask);
519      return m_IMR;
520   case 0:
521      printf("invalid IMR_r %d %04x\n", offset, mem_mask);
522      return 0;
523   }
524
525   return 0;
526}
527
528WRITE16_MEMBER( mcf5206e_peripheral_device::IMR_w)
529{
530   switch (offset)
531   {
532   case 1:
533      COMBINE_DATA(&m_IMR);
534      printf("IMR_w %04x %04x\n",data, mem_mask);
535      break;
536   case 0:
537      printf("invalid IMR_w %d, %04x %04x\n", offset, data, mem_mask);
538      break;
539
540   }
541}
542
543
544
545READ16_MEMBER( mcf5206e_peripheral_device::TMR1_r)
546{
547   switch (offset)
548   {
549   case 0:
550      printf("TMR1_r %04x\n", mem_mask);
551      return m_TMR1;
552   case 1:
553      printf("invalid TMR1_r %d %04x\n", offset, mem_mask);
554      return 0;
555   }
556
557   return 0;
558}
559
560WRITE16_MEMBER( mcf5206e_peripheral_device::TMR1_w)
561{
562   switch (offset)
563   {
564   case 0:
565      COMBINE_DATA(&m_TMR1);
566      printf("TMR1_w %04x %04x\n",data, mem_mask);
567      break;
568   case 1:
569      printf("invalid TMR1_w %d, %04x %04x\n", offset, data, mem_mask);
570      break;
571
572   }
573}
574
575READ16_MEMBER( mcf5206e_peripheral_device::TRR1_r)
576{
577   switch (offset)
578   {
579   case 0:
580      printf("TRR1_r %04x\n", mem_mask);
581      return m_TRR1;
582   case 1:
583      printf("invalid TRR1_r %d %04x\n", offset, mem_mask);
584      return 0;
585   }
586
587   return 0;
588}
589
590WRITE16_MEMBER( mcf5206e_peripheral_device::TRR1_w)
591{
592   switch (offset)
593   {
594   case 0:
595      COMBINE_DATA(&m_TRR1);
596      printf("TRR1_w %04x %04x\n",data, mem_mask);
597      break;
598   case 1:
599      printf("invalid TRR1_w %d, %04x %04x\n", offset, data, mem_mask);
600      break;
601
602   }
603}
604
605
9606//**************************************************************************
10607//  LIVE DEVICE
11608//**************************************************************************
r22633r22634
18615//-------------------------------------------------
19616
20617mcf5206e_peripheral_device::mcf5206e_peripheral_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
21   : device_t(mconfig, MCF5206E_PERIPHERAL, "MCF5206E Peripheral", tag, owner, clock)
618   : device_t(mconfig, MCF5206E_PERIPHERAL, "MCF5206E Peripheral", tag, owner, clock),
619     device_memory_interface(mconfig, *this),
620     m_space_config("coldfire_regs", ENDIANNESS_BIG, 32,10, 0, NULL, *ADDRESS_MAP_NAME(coldfire_regs_map))
621
22622{
23623}
24624
r22633r22634
32632{
33633}
34634
635const address_space_config *mcf5206e_peripheral_device::memory_space_config(address_spacenum spacenum) const
636{
637   return (spacenum == AS_0) ? &m_space_config : NULL;
638}
35639
36640//-------------------------------------------------
37641//  device_start - device-specific startup
r22633r22634
39643
40644void mcf5206e_peripheral_device::device_start()
41645{
646   init_regs(true);
42647}
43648
44649
45650
46651READ32_MEMBER(mcf5206e_peripheral_device::dev_r)
47652{
48   return 0;
653   address_space &reg_space = this->space();
654   return reg_space.read_dword(offset*4, mem_mask);
49655}
50656
51657WRITE32_MEMBER(mcf5206e_peripheral_device::dev_w)
52658{
659   address_space &reg_space = this->space();
660   reg_space.write_dword(offset*4, data, mem_mask);
53661}
54662
55663
r22633r22634
79687   return m_coldfire_regs[offset];
80688}
81689
690#define UNINIT 0
691#define UNINIT_NOTE 0
692
693void mcf5206e_peripheral_device::init_regs(bool first_init)
694{
695   m_ICR1 =   0x04;
696   m_ICR2 =    0x08;
697   m_ICR3 =    0x0C;
698   m_ICR4 =    0x10;
699   m_ICR5 =    0x14;
700   m_ICR6 =    0x18;
701   m_ICR7 =    0x1C;
702   m_ICR8 =    0x1C;
703   m_ICR9 =   0x80;
704   m_ICR10 =    0x80;
705   m_ICR11 =    0x80;
706   m_ICR12 =     0x00;
707   m_ICR13 =    0x00;
708
709   m_CSAR[0] =   0x0000;
710   m_CSMR[0] =   0x00000000;
711   m_CSCR[0] =   0x3C1F; /* 3C1F, 3C5F, 3C9F, 3CDF, 3D1F, 3D5F, 3D9F, 3DDF |  AA set by IRQ 7 at reset, PS1 set by IRQ 4 at reset, PS0 set by IRQ 1 at reset*/
712
713   if (first_init)
714   {
715      for (int x=1;x<8;x++)
716      {
717         m_CSAR[1] =   UNINIT;
718         m_CSMR[1] =   UNINIT;
719         m_CSCR[1] =   UNINIT_NOTE; // except BRST=ASET=WRAH=RDAH=WR=RD=0
720      }
721   }
722
723   m_DMCR = 0x0000;
724   m_PAR = 0x0000;
725
726   m_TMR1 = 0x0000;
727   m_TRR1 = 0xffff;
728
729   m_PPDDR = 0x00;
730   m_PPDAT = 0x00;
731
732   m_IMR = 0x3FFE;
733
734   m_MBCR = 0x00;
735   m_MBSR = 0x00;
736}
737
82738/*
83739
84ADDRESS                 REG         WIDTH   NAME/DESCRIPTION                                    INIT VALUE (MR=Master Reset, NR=Normal Reset)       Read or Write access
740ADDRESS (LE)            REG         WIDTH   NAME/DESCRIPTION                                    INIT VALUE (MR=Master Reset, NR=Normal Reset)       Read or Write access
741* = inited
742- = skeleton handler
85743
86744op MOVEC with $C0F      MBAR        32      Module Base Address Register                        uninit (except V=0)                                 W
87745$003                    SIMR        8       SIM Configuration Register                          C0                                                  R/W
88$014                    ICR1        8       Interrupt Control Register 1 - External IRQ1/IPL1   04                                                  R/W
89$015                    ICR2        8       Interrupt Control Register 2 - External IPL2        08                                                  R/W
90$016                    ICR3        8       Interrupt Control Register 3 - External IPL3        0C                                                  R/W
91$017                    ICR4        8       Interrupt Control Register 4 - External IRQ4/IPL4   10                                                  R/W
92$018                    ICR5        8       Interrupt Control Register 5 - External IPL5        14                                                  R/W
93$019                    ICR6        8       Interrupt Control Register 6 - External IPL6        18                                                  R/W
94$01A                    ICR7        8       Interrupt Control Register 7 - External IRQ7/IPL7   1C                                                  R/W
95$01B                    ICR8        8       Interrupt Control Register 8 - SWT                  1C                                                  R/W
96$01C                    ICR9        8       Interrupt Control Register 9 - Timer 1 Interrupt    80                                                  R/W
97$01D                    ICR10       8       Interrupt Control Register 10 - Timer 2 Interrupt   80                                                  R/W
98$01E                    ICR11       8       Interrupt Control Register 11 - MBUS Interrupt      80                                                  R/W
99$01F                    ICR12       8       Interrupt Control Register 12 - UART 1 Interrupt    00                                                  R/W
100$020                    ICR13       8       Interrupt Control Register 13 - UART 2 Interrupt    00                                                  R/W
101$036                    IMR         16      Interrupt Mask Register                             3FFE                                                R/W
746$014*-                  ICR1        8       Interrupt Control Register 1 - External IRQ1/IPL1   04                                                  R/W
747$015*-                  ICR2        8       Interrupt Control Register 2 - External IPL2        08                                                  R/W
748$016*-                  ICR3        8       Interrupt Control Register 3 - External IPL3        0C                                                  R/W
749$017*-                  ICR4        8       Interrupt Control Register 4 - External IRQ4/IPL4   10                                                  R/W
750$018*                   ICR5        8       Interrupt Control Register 5 - External IPL5        14                                                  R/W
751$019*                   ICR6        8       Interrupt Control Register 6 - External IPL6        18                                                  R/W
752$01A*                   ICR7        8       Interrupt Control Register 7 - External IRQ7/IPL7   1C                                                  R/W
753$01B*                   ICR8        8       Interrupt Control Register 8 - SWT                  1C                                                  R/W
754$01C*-                  ICR9        8       Interrupt Control Register 9 - Timer 1 Interrupt    80                                                  R/W
755$01D*-                  ICR10       8       Interrupt Control Register 10 - Timer 2 Interrupt   80                                                  R/W
756$01E*-                  ICR11       8       Interrupt Control Register 11 - MBUS Interrupt      80                                                  R/W
757$01F*-                  ICR12       8       Interrupt Control Register 12 - UART 1 Interrupt    00                                                  R/W
758$020*-                  ICR13       8       Interrupt Control Register 13 - UART 2 Interrupt    00                                                  R/W
759$036*-                  IMR         16      Interrupt Mask Register                             3FFE                                                R/W
102760$03A                    IPR         16      Interrupt Pending Register                          0000                                                R
103761$040                    RSR         8       Reset Status Register                               80 / 20                                             R/W
104762$041                    SYPCR       8       System Protection Control Register                  00                                                  R/W
r22633r22634
113771$05C                    DCMR1       32      DRAM Controller 1 Mask Register                     MR uninit - NR uninit                               R/W
114772$063                    DCCR1       8       DRAM Controller 1 Control Register                  MR 00     - NR 00                                   R/W
115773--------- CHIP SELECTS -----------
116$064                    CSAR0       16      Chip-Select 0 Address Register                      0000                                                R/W
117$068                    CSMR0       32      Chip-Select 0 Mask Register                         00000000                                            R/W
118$06E                    CSCR0       16      Chip-Select 0 Control Register                      3C1F, 3C5F, 3C9F, 3CDF, 3D1F, 3D5F, 3D9F, 3DDF      R/W
774$064*-                  CSAR0       16      Chip-Select 0 Address Register                      0000                                                R/W
775$068*-                  CSMR0       32      Chip-Select 0 Mask Register                         00000000                                            R/W
776$06E*-                  CSCR0       16      Chip-Select 0 Control Register                      3C1F, 3C5F, 3C9F, 3CDF, 3D1F, 3D5F, 3D9F, 3DDF      R/W
119777                                                                                                AA set by IRQ 7 at reset
120778                                                                                                PS1 set by IRQ 4 at reset
121779                                                                                                PS0 set by IRQ 1 at reset
122$070                    CSAR1       16      Chip-Select 1 Address Register                      uninit                                              R/W
123$074                    CSMR1       32      Chip-Select 1 Mask Register                         uninit                                              R/W
124$07A                    CSCR1       16      Chip-Select 1 Control Register                      uninit *1                                           R/W
125$07C                    CSAR2       16      Chip-Select 2 Address Register                      uninit                                              R/W
126$080                    CSMR2       32      Chip-Select 2 Mask Register                         uninit                                              R/W
127$086                    CSCR2       16      Chip-Select 2 Control Register                      uninit *1                                           R/W
128$088                    CSAR3       16      Chip-Select 3 Address Register                      uninit                                              R/W
129$08C                    CSMR3       32      Chip-Select 3 Mask Register                         uninit                                              R/W
130$092                    CSCR3       16      Chip-Select 3 Control Register                      uninit *1                                           R/W
131$094                    CSAR4       16      Chip-Select 4 Address Register                      uninit                                              R/W
132$098                    CSMR4       32      Chip-Select 4 Mask Register                         uninit                                              R/W
133$09E                    CSCR4       16      Chip-Select 4 Control Register                      uninit *1                                           R/W
134$0A0                    CSAR5       16      Chip-Select 5 Address Register                      uninit                                              R/W
135$0A4                    CSMR5       32      Chip-Select 5 Mask Register                         uninit                                              R/W
136$0AA                    CSCR5       16      Chip-Select 5 Control Register                      uninit *1                                           R/W
137$0AC                    CSAR6       16      Chip-Select 6 Address Register                      uninit                                              R/W
138$0B0                    CSMR6       32      Chip-Select 6 Mask Register                         uninit                                              R/W
139$0B6                    CSCR6       16      Chip-Select 6 Control Register                      uninit *1                                           R/W
140$0B8                    CSAR7       16      Chip-Select 7 Address Register                      uninit                                              R/W
141$0BC                    CSMR7       32      Chip-Select 7 Mask Register                         uninit                                              R/W
142$0C2                    CSCR7       16      Chip-Select 7 Control Register                      uninit *1                                           R/W
143$0C6                    DMCR        16      Default Memory Control Register                     0000                                                R/W
144$0CA                    PAR         16      Pin Assignment Register                             00                                                  R/W
780$070*-                  CSAR1       16      Chip-Select 1 Address Register                      uninit                                              R/W
781$074*-                  CSMR1       32      Chip-Select 1 Mask Register                         uninit                                              R/W
782$07A*-                  CSCR1       16      Chip-Select 1 Control Register                      uninit *1                                           R/W
783$07C*-                  CSAR2       16      Chip-Select 2 Address Register                      uninit                                              R/W
784$080*-                  CSMR2       32      Chip-Select 2 Mask Register                         uninit                                              R/W
785$086*-                  CSCR2       16      Chip-Select 2 Control Register                      uninit *1                                           R/W
786$088*-                  CSAR3       16      Chip-Select 3 Address Register                      uninit                                              R/W
787$08C*-                  CSMR3       32      Chip-Select 3 Mask Register                         uninit                                              R/W
788$092*-                  CSCR3       16      Chip-Select 3 Control Register                      uninit *1                                           R/W
789$094*-                  CSAR4       16      Chip-Select 4 Address Register                      uninit                                              R/W
790$098*-                  CSMR4       32      Chip-Select 4 Mask Register                         uninit                                              R/W
791$09E*-                  CSCR4       16      Chip-Select 4 Control Register                      uninit *1                                           R/W
792$0A0*-                  CSAR5       16      Chip-Select 5 Address Register                      uninit                                              R/W
793$0A4*-                  CSMR5       32      Chip-Select 5 Mask Register                         uninit                                              R/W
794$0AA*-                  CSCR5       16      Chip-Select 5 Control Register                      uninit *1                                           R/W
795$0AC*-                  CSAR6       16      Chip-Select 6 Address Register                      uninit                                              R/W
796$0B0*-                  CSMR6       32      Chip-Select 6 Mask Register                         uninit                                              R/W
797$0B6*-                  CSCR6       16      Chip-Select 6 Control Register                      uninit *1                                           R/W
798$0B8*-                  CSAR7       16      Chip-Select 7 Address Register                      uninit                                              R/W
799$0BC*-                  CSMR7       32      Chip-Select 7 Mask Register                         uninit                                              R/W
800$0C2*-                  CSCR7       16      Chip-Select 7 Control Register                      uninit *1                                           R/W
801$0C6*-                  DMCR        16      Default Memory Control Register                     0000                                                R/W
802$0CA*-                  PAR         16      Pin Assignment Register                             00                                                  R/W
145803--------- TIMER MODULE -----------
146$100                    TMR1        16      Timer 1 Mode Register                               0000                                                R/W
147$104                    TRR1        16      Timer 1 Reference Register                          FFFF                                                R/W
804$100*-                  TMR1        16      Timer 1 Mode Register                               0000                                                R/W
805$104*-                  TRR1        16      Timer 1 Reference Register                          FFFF                                                R/W
148806$108                    TCR1        16      Timer 1 Capture Register                            0000                                                R
149807$10C                    TCN1        16      Timer 1 Counter                                     0000                                                R/W
150808$111                    TER1        8       Timer 1 Event Register                              00                                                  R/W
r22633r22634
188846$1B8                    UOP1        8       UART 2 Output Port Bit Set CMD                      UOP1[7-1]=undef; UOP1=0                             W
189847$1BC                    UOP0        8       UART 2 Output Port Bit Reset CMD                    uninit                                              W
190848
191$1C5                    PPDDR       8       Port A Data Direction Register                      00                                                  R/W
192$1C9                    PPDAT       8       Port A Data Register                                00                                                  R/W
849$1C5*-                  PPDDR       8       Port A Data Direction Register                      00                                                  R/W
850$1C9*-                  PPDAT       8       Port A Data Register                                00                                                  R/W
193851------------ MBUS  -----------
194852$1E0                    MADR        8       M-Bus Address Register                              00                                                  R/W
195853$1E4                    MFDR        8       M-Bus Frequency Divider Register                    00                                                  R/W
196$1E8                    MBCR        8       M-Bus Control Register                              00                                                  R/W
197$1EC                    MBSR        8       M-Bus Status Register                               00                                                  R/W
854$1E8*-                  MBCR        8       M-Bus Control Register                              00                                                  R/W
855$1EC*-                  MBSR        8       M-Bus Status Register                               00                                                  R/W
198856$1F0                    MBDR        8       M-Bus Data I/O Register                             00                                                  R/W
199857------------ DMA Controller -----------
200858$200                    DMASAR0     32      Source Address Register 0                           00                                                  R/W
trunk/src/emu/machine/mcf5206e.h
r22633r22634
2424    TYPE DEFINITIONS
2525***************************************************************************/
2626
27
28
2927// ======================> mcf5206e_peripheral_device
3028
31class mcf5206e_peripheral_device :  public device_t
29class mcf5206e_peripheral_device :  public device_t,
30                           public device_memory_interface
3231{
3332public:
3433   // construction/destruction
r22633r22634
3938   DECLARE_READ32_MEMBER( seta2_coldfire_regs_r );
4039   DECLARE_WRITE32_MEMBER( seta2_coldfire_regs_w );
4140
41   DECLARE_READ8_MEMBER( ICR1_ICR2_ICR3_ICR4_r );
42   DECLARE_WRITE8_MEMBER( ICR1_ICR2_ICR3_ICR4_w );
43
44   DECLARE_READ8_MEMBER( ICR9_ICR10_ICR11_ICR12_r );
45   DECLARE_WRITE8_MEMBER( ICR9_ICR10_ICR11_ICR12_w );
46   DECLARE_READ8_MEMBER( ICR13_r );
47   DECLARE_WRITE8_MEMBER( ICR13_w );
48
49   UINT16 CSAR_r(int which, int offset, UINT16 mem_mask);
50   void CSAR_w(int which, int offset, UINT16 data, UINT16 mem_mask);
51   UINT32 CSMR_r(int which, UINT32 mem_mask);
52   void CSMR_w(int which, UINT32 data, UINT32 mem_mask);
53   UINT16 CSCR_r(int which, int offset, UINT16 mem_mask);
54   void CSCR_w(int which, int offset, UINT16 data, UINT16 mem_mask);
55
56   DECLARE_READ16_MEMBER(  CSAR0_r );
57   DECLARE_WRITE16_MEMBER( CSAR0_w );
58   DECLARE_READ32_MEMBER(  CSMR0_r );
59   DECLARE_WRITE32_MEMBER( CSMR0_w );
60   DECLARE_READ16_MEMBER(  CSCR0_r );
61   DECLARE_WRITE16_MEMBER( CSCR0_w );
62   DECLARE_READ16_MEMBER(  CSAR1_r );
63   DECLARE_WRITE16_MEMBER( CSAR1_w );
64   DECLARE_READ32_MEMBER(  CSMR1_r );
65   DECLARE_WRITE32_MEMBER( CSMR1_w );
66   DECLARE_READ16_MEMBER(  CSCR1_r );
67   DECLARE_WRITE16_MEMBER( CSCR1_w );
68   DECLARE_READ16_MEMBER(  CSAR2_r );
69   DECLARE_WRITE16_MEMBER( CSAR2_w );
70   DECLARE_READ32_MEMBER(  CSMR2_r );
71   DECLARE_WRITE32_MEMBER( CSMR2_w );
72   DECLARE_READ16_MEMBER(  CSCR2_r );
73   DECLARE_WRITE16_MEMBER( CSCR2_w );
74   DECLARE_READ16_MEMBER(  CSAR3_r );
75   DECLARE_WRITE16_MEMBER( CSAR3_w );
76   DECLARE_READ32_MEMBER(  CSMR3_r );
77   DECLARE_WRITE32_MEMBER( CSMR3_w );
78   DECLARE_READ16_MEMBER(  CSCR3_r );
79   DECLARE_WRITE16_MEMBER( CSCR3_w );
80   DECLARE_READ16_MEMBER(  CSAR4_r );
81   DECLARE_WRITE16_MEMBER( CSAR4_w );
82   DECLARE_READ32_MEMBER(  CSMR4_r );
83   DECLARE_WRITE32_MEMBER( CSMR4_w );
84   DECLARE_READ16_MEMBER(  CSCR4_r );
85   DECLARE_WRITE16_MEMBER( CSCR4_w );
86   DECLARE_READ16_MEMBER(  CSAR5_r );
87   DECLARE_WRITE16_MEMBER( CSAR5_w );
88   DECLARE_READ32_MEMBER(  CSMR5_r );
89   DECLARE_WRITE32_MEMBER( CSMR5_w );
90   DECLARE_READ16_MEMBER(  CSCR5_r );
91   DECLARE_WRITE16_MEMBER( CSCR5_w );
92   DECLARE_READ16_MEMBER(  CSAR6_r );
93   DECLARE_WRITE16_MEMBER( CSAR6_w );
94   DECLARE_READ32_MEMBER(  CSMR6_r );
95   DECLARE_WRITE32_MEMBER( CSMR6_w );
96   DECLARE_READ16_MEMBER(  CSCR6_r );
97   DECLARE_WRITE16_MEMBER( CSCR6_w );
98   DECLARE_READ16_MEMBER(  CSAR7_r );
99   DECLARE_WRITE16_MEMBER( CSAR7_w );
100   DECLARE_READ32_MEMBER(  CSMR7_r );
101   DECLARE_WRITE32_MEMBER( CSMR7_w );
102   DECLARE_READ16_MEMBER(  CSCR7_r );
103   DECLARE_WRITE16_MEMBER( CSCR7_w );
104
105   DECLARE_READ16_MEMBER( DMCR_r );
106   DECLARE_WRITE16_MEMBER( DMCR_w );
107   DECLARE_READ16_MEMBER( PAR_r );
108   DECLARE_WRITE16_MEMBER( PAR_w );
109
110   DECLARE_READ16_MEMBER( TMR1_r );
111   DECLARE_WRITE16_MEMBER( TMR1_w );
112   DECLARE_READ16_MEMBER( TRR1_r );
113   DECLARE_WRITE16_MEMBER( TRR1_w );
114
115   DECLARE_READ8_MEMBER( PPDDR_r );
116   DECLARE_WRITE8_MEMBER( PPDDR_w );
117   DECLARE_READ8_MEMBER( PPDAT_r );
118   DECLARE_WRITE8_MEMBER( PPDAT_w );
119
120   DECLARE_READ16_MEMBER( IMR_r );
121   DECLARE_WRITE16_MEMBER( IMR_w );
122
123
124   DECLARE_READ8_MEMBER( MBCR_r );
125   DECLARE_WRITE8_MEMBER( MBCR_w );
126   DECLARE_READ8_MEMBER( MBSR_r );
127   DECLARE_WRITE8_MEMBER( MBSR_w );
128   
129
42130protected:
43131   // device-level overrides
44132   virtual void device_config_complete();
r22633r22634
46134   virtual void device_reset() { }
47135   virtual void device_post_load() { }
48136   virtual void device_clock_changed() { }
137   virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
138   address_space_config        m_space_config;
139
140
141private:
142   
143   void init_regs(bool first_init);
144
145   UINT8 m_ICR1;
146   UINT8 m_ICR2;
147   UINT8 m_ICR3;
148   UINT8 m_ICR4;
149   UINT8 m_ICR5;
150   UINT8 m_ICR6;
151   UINT8 m_ICR7;
152   UINT8 m_ICR8;
153   UINT8 m_ICR9;
154   UINT8 m_ICR10;
155   UINT8 m_ICR11;
156   UINT8 m_ICR12;
157   UINT8 m_ICR13;
158
159   UINT16 m_CSAR[8];
160   UINT32 m_CSMR[8];
161   UINT16 m_CSCR[8];
162
163   UINT16 m_DMCR;
164   UINT16 m_PAR;
165
166   UINT16 m_TMR1;
167   UINT16 m_TRR1;
168
169   UINT8 m_PPDDR;
170   UINT8 m_PPDAT;
171
172   UINT16 m_IMR;
173
174   UINT8 m_MBCR;
175   UINT8 m_MBSR;
176
177
49178   UINT32 m_coldfire_regs[0x400/4];
50179
51180private:
trunk/src/mame/drivers/bfm_ad5.c
r22633r22634
11/*
22
3    Scorpion 5
3    Adder 5
44     (Scorpion 5 Video Board)
55
66    Skeleton Driver - For note keeping.
r22633r22634
1111
1212#include "emu.h"
1313#include "includes/bfm_ad5.h"
14#include "machine/mcf5206e.h"
1415
1516
16
1717extern int find_project_string(running_machine &machine, int addrxor, int mode);
1818
1919
r22633r22634
5454   AM_RANGE(0x00000000, 0x00ffffff) AM_ROM
5555   AM_RANGE(0x01000000, 0x0100ffff) AM_RAM
5656   AM_RANGE(0x40000000, 0x40000fff) AM_RAM
57   AM_RANGE(0x80000000, 0x8000ffff) AM_RAM
58   AM_RANGE(0x80800000, 0x8080ffff) AM_RAM
59
60   AM_RANGE(0xffff0000, 0xffff03ff) AM_DEVREADWRITE("maincpu_onboard", mcf5206e_peripheral_device, dev_r, dev_w) // technically this can be moved with MBAR
5761ADDRESS_MAP_END
5862
5963INPUT_PORTS_START( bfm_ad5 )
r22633r22634
6973   MCFG_CPU_ADD("maincpu", MCF5206E, 40000000) /* MCF5206eFT */
7074   MCFG_CPU_PROGRAM_MAP(ad5_map)
7175   MCFG_CPU_PERIODIC_INT_DRIVER(adder5_state, ad5_fake_timer_int, 1000)
76   MCFG_MCF5206E_PERIPHERAL_ADD("maincpu_onboard")
7277
7378   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
7479   /* unknown sound */
trunk/src/mame/drivers/jpmsys7.c
r22633r22634
11/* Unkonwn JPM Platform */
2/* seems to be Coldfire based */
3/* only Ker - Chinq has sound roms, they seem to map in cpu space, but are missing from the rest? */
2/* seems to be Coldfire based (but not the MCF5206E, it writes to peripheral registers that would be invalid?) */
3/* only Ker - Chinq has sound roms, they seem to map in cpu space, sound roms are probably missing from the rest? */
44/* Could be Pluto 6? */
5/* todo - split sets */
56
67
78
89#include "emu.h"
910#include "cpu/m68000/m68000.h"
11#include "machine/mcf5206e.h"
1012
1113class jpmsys7_state : public driver_device
1214{
r22633r22634
2931   AM_RANGE(0x20000018, 0x2000001b) AM_WRITENOP // large data upload like astra/pluto?
3032   AM_RANGE(0x50000000, 0x50001fff) AM_RAM
3133
32//  AM_RANGE(0xf0000000, 0xf0000fff) AM_RAM
33
34   AM_RANGE(0xf0000000, 0xf00003ff) AM_DEVREADWRITE("maincpu_onboard", mcf5206e_peripheral_device, dev_r, dev_w) // technically this can be moved with MBAR
3435ADDRESS_MAP_END
3536
3637static INPUT_PORTS_START(  jpmsys7 )
r22633r22634
3940static MACHINE_CONFIG_START( jpmsys7, jpmsys7_state )
4041   MCFG_CPU_ADD("maincpu", MCF5206E, 40000000)  // seems to be a Coldfire of some kind
4142   MCFG_CPU_PROGRAM_MAP(jpmsys7_map)
43   MCFG_MCF5206E_PERIPHERAL_ADD("maincpu_onboard")
4244
4345   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
4446   /* unknown sound (probably DMA driven DAC) */
trunk/src/mame/drivers/gamtor.c
r22633r22634
6565//  AM_RANGE(0x440a0000, 0x440a1fff) AM_RAM AM_SHARE("tmapram2") // beetlem (like above, mirror?)
6666
6767   AM_RANGE(0xe0000000, 0xe00001ff) AM_RAM // nvram?
68
69   AM_RANGE(0xf0000000, 0xf00001ff) AM_RAM // coldfire peripherals?
68   AM_RANGE(0xf0000000, 0xf00003ff) AM_DEVREADWRITE("maincpu_onboard", mcf5206e_peripheral_device, dev_r, dev_w) // technically this can be moved with MBAR
7069ADDRESS_MAP_END
7170
7271static INPUT_PORTS_START(  gaminator )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team