Previous 199869 Revisions Next

r31434 Sunday 27th July, 2014 at 04:08:10 UTC by hap
small update
[src/emu/cpu/tms7000]tms7000.c

trunk/src/emu/cpu/tms7000/tms7000.c
r31433r31434
2020 *
2121 *  TODO:
2222 *  - dump CROM and emulate cpu at microinstruction level
23 *  - memory modes with IOCNT0, currently always running in full expansion mode
23 *  - memory modes with IOCNT0, currently always running in faked full expansion mode
2424 *  - timer event counter mode (timer control register, bit 6)
2525 *  - TMS70x1/2 serial port and timer 3
2626 *  - TMS70C46 DOCK-BUS comms with external pins
r31433r31434
5555const device_type TMS7002 = &device_creator<tms7002_device>;
5656const device_type TMS7042 = &device_creator<tms7042_device>;
5757
58// TMS70C46 is a TMS70C40, plus support for external memory bus, clock divider
59// on slow memory, and wake-up on keypress.
58// TMS70C46 is literally a shell around a TMS70C40, with support for external
59// memory bus, auto external clock divider on slow memory, and wake-up on keypress.
6060const device_type TMS70C46 = &device_creator<tms70c46_device>;
6161
6262// TMS70Cx2 is an update to TMS70x2 with some extra features. Due to some changes
r31433r31434
333333   if (chip_is_family_70x2())
334334      write_p(0x10, 0x00); // IOCNT1
335335
336   write_mem16(0, m_pc); // previous PC
337   m_sp = 0x01;
338   m_pc = read_mem16(0xfffe);
339   m_icount -= 17;
336   m_sp = 0xff;
337   m_op = 0xff;
338   execute_one(m_op);
339   m_icount -= 3; // 17 total
340340}
341341
342342
r31433r31434
449449   // run automatic timer if source is internal
450450   if ((m_timer_control[tmr] & 0xe0) == 0x80)
451451   {
452      attotime period = attotime::from_hz(clock()) * 16 * (m_timer_prescaler[tmr] + 1); // fOSC/16
452      attotime period = attotime::from_hz(clock()) * 8 * (m_timer_prescaler[tmr] + 1); // fOSC/16 - fOSC is freq _before_ internal clockdivider
453453      m_timer_handle[tmr]->adjust(period, tmr);
454454   }
455455}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team