diff options
author | 2017-12-13 20:52:42 -0700 | |
---|---|---|
committer | 2017-12-13 20:52:42 -0700 | |
commit | f537428e5a40ba6dde8ca9bf0fe9ae6b1f189ac4 (patch) | |
tree | 7160ed8d2cbe2127aaaef0a21f8736403b0f8a7c /src/devices/cpu/m6809/m6809.cpp | |
parent | 0d70d798107d4e4e8fb9f230410aeb1e888d65c5 (diff) | |
parent | 6379bf581489df72694b1c42cc7436ca0f1d89b2 (diff) |
Merge branch 'master' of https://github.com/mamedev/mame
Diffstat (limited to 'src/devices/cpu/m6809/m6809.cpp')
-rw-r--r-- | src/devices/cpu/m6809/m6809.cpp | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/src/devices/cpu/m6809/m6809.cpp b/src/devices/cpu/m6809/m6809.cpp index 42f64d5e5b2..0521b745414 100644 --- a/src/devices/cpu/m6809/m6809.cpp +++ b/src/devices/cpu/m6809/m6809.cpp @@ -77,6 +77,30 @@ March 2013 NPW: Removed unused jmp/jsr _slap functions from 6809ops.c, m6809_slapstick check moved into the opcode functions. +****************************************************************************** + + M6809 cycle timings are relative to a four-phase clock cycle defined by + the Q and E signals on pins 35 and 34. The Q clock must lead the E clock + by approximately half a cycle. On the MC6809E, Q and E are inputs, and + one 74LS74 wired as a two-stage Johnson counter is almost sufficient to + generate both (though E requires voltage levels above TTL). On the + MC6809, however, Q and E are output from an internal clock generator + which can be driven by a crystal oscillator connected to pins 38 and 39. + (The MC6809E reuses the same numbered pins for the unrelated TSC and LIC + functions.) The frequencies of Q and E on the MC6809 are that of the XTAL + divided by 4. MAME's emulation formerly assigned this internal clock + divider to the MC6809E and not to the MC6809; the confusion resulting + from this error is in the process of being straightened out. + + Maximum clock ratings: + + Q & E EXTAL + MC6809(E) 1.0 MHz 4.0 MHz + MC68A09(E) 1.5 MHz 6.0 MHz + MC68B09(E) 2.0 MHz 8.0 MHz + HD63B09(E) 2.0 MHz 8.0 MHz + HD63C09(E) 3.0 MHz 12.0 MHz + *****************************************************************************/ #include "emu.h" @@ -104,8 +128,10 @@ March 2013 NPW: // DEVICE INTERFACE //************************************************************************** -DEFINE_DEVICE_TYPE(M6809, m6809_device, "m6809", "M6809") -DEFINE_DEVICE_TYPE(M6809E, m6809e_device, "m6809e", "M6809E") +DEFINE_DEVICE_TYPE(MC6809, mc6809_device, "mc6809", "MC6809") +DEFINE_DEVICE_TYPE(MC6809E, mc6809e_device, "mc6809e", "MC6809E") +DEFINE_DEVICE_TYPE(M6809, m6809_device, "m6809", "MC6809 (legacy)") +DEFINE_DEVICE_TYPE(M6809E, m6809e_device, "m6809e", "MC6809E (legacy)") //------------------------------------------------- @@ -578,6 +604,28 @@ void m6809_base_device::mi_default::write(uint16_t adr, uint8_t val) //------------------------------------------------- +// mc6809_device +//------------------------------------------------- + +mc6809_device::mc6809_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : m6809_base_device(mconfig, tag, owner, clock, MC6809, 4) +{ +} + + + +//------------------------------------------------- +// mc6809e_device +//------------------------------------------------- + +mc6809e_device::mc6809e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : m6809_base_device(mconfig, tag, owner, clock, MC6809E, 1) +{ +} + + + +//------------------------------------------------- // m6809_device //------------------------------------------------- |