Previous 199869 Revisions Next

r32041 Tuesday 9th September, 2014 at 22:24:57 UTC by hap
added op_bldd_sbmar
[src/emu/cpu/tms32051]32051ops.c tms32051.c tms32051.h

trunk/src/emu/cpu/tms32051/32051ops.c
r32040r32041
12151215
12161216void tms32051_device::op_bldd_sbmar()
12171217{
1218   fatalerror("32051: unimplemented op bldd sbmar at %08X\n", m_pc-1);
1218   UINT16 pfc = m_bmar;
1219
1220   while (m_rptc > -1)
1221   {
1222      UINT16 ea = GET_ADDRESS();
1223      UINT16 data = DM_READ16(pfc);
1224      DM_WRITE16(ea, data);
1225      pfc++;
1226      CYCLES(2);
1227
1228      m_rptc--;
1229   };
12191230}
12201231
12211232void tms32051_device::op_bldd_dbmar()
trunk/src/emu/cpu/tms32051/tms32051.c
r32040r32041
162162   m_cbsr2 = 0;
163163   m_cber2 = 0;
164164   memset(&m_timer, 0, sizeof(m_timer));
165   memset(&m_serial, 0, sizeof(m_serial));
165166
166167   state_add( TMS32051_PC,    "PC", m_pc).formatstr("%04X");
167168   state_add( TMS32051_ACC,   "ACC", m_acc).formatstr("%08X");
r32040r32041
374375      case 0x04:  return m_imr;
375376      case 0x06:  return m_ifr;
376377
377      case 0x07:      // PMST
378      case 0x07: // PMST
378379      {
379380         UINT16 r = 0;
380381         r |= m_pmst.iptr << 11;
r32040r32041
388389         return r;
389390      }
390391
391      case 0x09:  return m_brcr;
392      case 0x10:  return m_ar[0];
393      case 0x11:  return m_ar[1];
394      case 0x12:  return m_ar[2];
395      case 0x13:  return m_ar[3];
396      case 0x14:  return m_ar[4];
397      case 0x15:  return m_ar[5];
398      case 0x16:  return m_ar[6];
399      case 0x17:  return m_ar[7];
400      case 0x18:  return m_indx;
401      case 0x19:  return m_arcr;
402      case 0x1a:  return m_cbsr1;
403      case 0x1b:  return m_cber1;
404      case 0x1c:  return m_cbsr2;
405      case 0x1d:  return m_cber2;
406      case 0x1e:  return m_cbcr;
407      case 0x1f:  return m_bmar;
408      case 0x24:  return m_timer.tim;
409      case 0x25:  return m_timer.prd;
392      case 0x09: return m_brcr;
393      case 0x10: return m_ar[0];
394      case 0x11: return m_ar[1];
395      case 0x12: return m_ar[2];
396      case 0x13: return m_ar[3];
397      case 0x14: return m_ar[4];
398      case 0x15: return m_ar[5];
399      case 0x16: return m_ar[6];
400      case 0x17: return m_ar[7];
401      case 0x18: return m_indx;
402      case 0x19: return m_arcr;
403      case 0x1a: return m_cbsr1;
404      case 0x1b: return m_cber1;
405      case 0x1c: return m_cbsr2;
406      case 0x1d: return m_cber2;
407      case 0x1e: return m_cbcr;
408      case 0x1f: return m_bmar;
409     
410      case 0x20: return m_serial.drr;
411      case 0x21: return m_serial.dxr;
410412
411      case 0x26:      // TCR
413      case 0x24: return m_timer.tim;
414      case 0x25: return m_timer.prd;
415
416      case 0x26: // TCR
412417      {
413418         UINT16 r = 0;
414419         r |= (m_timer.psc & 0xf) << 6;
r32040r32041
416421         return r;
417422      }
418423
419      case 0x28:  return 0;   // PDWSR
424      case 0x28: // PDWSR
425         return 0;
420426
421427      default:
422428         if (!space.debugger_access())
r32040r32041
430436{
431437   switch (offset)
432438   {
433      case 0x00:  break;
434      case 0x04:  m_imr = data; break;
435      case 0x06:      // IFR
439      case 0x00: break;
440      case 0x04: m_imr = data; break;
441
442      case 0x06: // IFR
436443      {
437444         for (int i = 0; i < 16; i++)
438445         {
r32040r32041
444451         break;
445452      }
446453
447      case 0x07:      // PMST
454      case 0x07: // PMST
448455      {
449456         m_pmst.iptr = (data >> 11) & 0x1f;
450457         m_pmst.avis = (data & 0x80) ? 1 : 0;
r32040r32041
457464         break;
458465      }
459466
460      case 0x09:  m_brcr = data; break;
461      case 0x0e:  m_treg2 = data; break;
462      case 0x0f:  m_dbmr = data; break;
463      case 0x10:  m_ar[0] = data; break;
464      case 0x11:  m_ar[1] = data; break;
465      case 0x12:  m_ar[2] = data; break;
466      case 0x13:  m_ar[3] = data; break;
467      case 0x14:  m_ar[4] = data; break;
468      case 0x15:  m_ar[5] = data; break;
469      case 0x16:  m_ar[6] = data; break;
470      case 0x17:  m_ar[7] = data; break;
471      case 0x18:  m_indx = data; break;
472      case 0x19:  m_arcr = data; break;
473      case 0x1a:  m_cbsr1 = data; break;
474      case 0x1b:  m_cber1 = data; break;
475      case 0x1c:  m_cbsr2 = data; break;
476      case 0x1d:  m_cber2 = data; break;
477      case 0x1e:  m_cbcr = data; break;
478      case 0x1f:  m_bmar = data; break;
479      case 0x24:  m_timer.tim = data; break;
480      case 0x25:  m_timer.prd = data; break;
467      case 0x09: m_brcr = data; break;
468      case 0x0e: m_treg2 = data; break;
469      case 0x0f: m_dbmr = data; break;
470      case 0x10: m_ar[0] = data; break;
471      case 0x11: m_ar[1] = data; break;
472      case 0x12: m_ar[2] = data; break;
473      case 0x13: m_ar[3] = data; break;
474      case 0x14: m_ar[4] = data; break;
475      case 0x15: m_ar[5] = data; break;
476      case 0x16: m_ar[6] = data; break;
477      case 0x17: m_ar[7] = data; break;
478      case 0x18: m_indx = data; break;
479      case 0x19: m_arcr = data; break;
480      case 0x1a: m_cbsr1 = data; break;
481      case 0x1b: m_cber1 = data; break;
482      case 0x1c: m_cbsr2 = data; break;
483      case 0x1d: m_cber2 = data; break;
484      case 0x1e: m_cbcr = data; break;
485      case 0x1f: m_bmar = data; break;
481486
482      case 0x26:      // TCR
487      case 0x20: m_serial.drr = data; break;
488      case 0x21: m_serial.dxr = data; break;
489      case 0x22: m_serial.spc = data; break;
490
491      case 0x24: m_timer.tim = data; break;
492      case 0x25: m_timer.prd = data; break;
493
494      case 0x26: // TCR
483495      {
484496         m_timer.tddr = data & 0xf;
485497         m_timer.psc = (data >> 6) & 0xf;
r32040r32041
492504         break;
493505      }
494506
495      case 0x28:  break;      // PDWSR
507      case 0x28: // PDWSR
508         break;
496509
497510      default:
498511         if (!space.debugger_access())
trunk/src/emu/cpu/tms32051/tms32051.h
r32040r32041
134134      UINT16 tim;
135135      UINT16 prd;
136136   } m_timer;
137   
138   struct
139   {
140      UINT16 drr;
141      UINT16 dxr;
142      UINT16 spc;
143   } m_serial;
137144
138145   struct
139146   {

Previous 199869 Revisions Next


© 1997-2024 The MAME Team