diff options
| author | 2023-05-06 23:53:50 +0200 | |
|---|---|---|
| committer | 2023-05-06 23:53:50 +0200 | |
| commit | 4e1d6d8547f3f577ec2703871f30b1709b044cab (patch) | |
| tree | 52d5b65bce15d97f5f286549f4d596f3466ecbce | |
| parent | 0d002a80b5f8579dbb4ddaef03cc1e745ae1326d (diff) | |
mn1400: add pinout reference
| -rw-r--r-- | src/devices/cpu/mn1400/mn1400.cpp | 3 | ||||
| -rw-r--r-- | src/devices/cpu/mn1400/mn1400.h | 21 | ||||
| -rw-r--r-- | src/devices/cpu/mn1400/mn1400base.cpp | 20 | ||||
| -rw-r--r-- | src/mame/handheld/hh_mn1400.cpp | 7 |
4 files changed, 46 insertions, 5 deletions
diff --git a/src/devices/cpu/mn1400/mn1400.cpp b/src/devices/cpu/mn1400/mn1400.cpp index 1d0dc807ee9..e1a2b46965b 100644 --- a/src/devices/cpu/mn1400/mn1400.cpp +++ b/src/devices/cpu/mn1400/mn1400.cpp @@ -47,7 +47,8 @@ std::unique_ptr<util::disasm_interface> mn1400_cpu_device::create_disassembler() bool mn1400_cpu_device::op_has_param(u8 op) { - return false; + // branch opcodes are 2 bytes + return ((op & 0xf8) == 0x38 || (op & 0xf0) == 0x40 || (op & 0xf0) == 0xe0); } void mn1400_cpu_device::execute_one() diff --git a/src/devices/cpu/mn1400/mn1400.h b/src/devices/cpu/mn1400/mn1400.h index 2f9907fa889..c69a926c24e 100644 --- a/src/devices/cpu/mn1400/mn1400.h +++ b/src/devices/cpu/mn1400/mn1400.h @@ -16,6 +16,27 @@ // pinout reference /* + ____ ____ ____ ____ + Vss 1 | \_/ | 40 OSC Vss 1 | \_/ | 28 OSC + CO11 2 | | 39 Vdd CO9 2 | | 27 Vdd + CO10 3 | | 38 DO7 CO8 3 | | 26 SNS1 + CO9 4 | | 37 DO6 CO7 4 | | 25 SNS0 + CO8 5 | | 36 DO5 CO6 5 | | 24 DO0 + CO7 6 | | 35 DO4 CO5 6 | MN1400 | 23 DO1 + CO6 7 | | 34 DO3 AI3 7 | MN1402 | 22 DO2 + CO5 8 | MN1400 | 33 DO2 AI2 8 | MN1432 | 21 DO3 + CO4 9 | MN1405 | 32 DO1 AI1 9 | | 20 TST + CO3 10 | MN1430 | 31 DO0 AI0 10 | | 19 RST + CO2 11 | MN1435 | 30 SNS1 BI3 11 | | 18 EO3 + CO1 12 | MN1450 | 29 SNS0 BI2 12 | | 17 EO2 + CO0 13 | MN1455 | 28 CSLCT BI1 13 | | 16 EO1 + AI3 14 | | 27 RST BI0 14 |___________| 15 EO0 + AI2 15 | | 26 TST + AI1 16 | | 25 EO3 + AI0 17 | | 24 EO2 + BI3 18 | | 23 EO1 + BI2 19 | | 22 EO0 + BI1 20 |___________| 21 BI0 */ diff --git a/src/devices/cpu/mn1400/mn1400base.cpp b/src/devices/cpu/mn1400/mn1400base.cpp index 812480fc0ac..01543bd4ae3 100644 --- a/src/devices/cpu/mn1400/mn1400base.cpp +++ b/src/devices/cpu/mn1400/mn1400base.cpp @@ -4,7 +4,25 @@ Matsushita (Panasonic) MN1400 family MCU cores -x +4-bit microcontroller introduced in 1977, possibly Matsushita's first MCU. + +Basic models: + +MN1400: 1KB ROM, 64 nibbles RAM +MN1402: 768 bytes ROM, 32 nibbles RAM +MN1403: 0.5KB ROM, 16 nibbles RAM, 18 pins +MN1404: 0.5KB ROM, 16 nibbles RAM, 16 pins +MN1405: 2KB ROM, 128 nibbles RAM + +MN1420: MN1400 with LED driver +MN1421: 28-pin version of MN1420 +MN1425: MN1405 with LED driver + +MN1430: high-voltage version of MN1400 +MN1435: high-voltage version of MN1405 + +MN1450/MN1460: CMOS version of MN1400 +MN1455/MN1465: CMOS version of MN1405 */ diff --git a/src/mame/handheld/hh_mn1400.cpp b/src/mame/handheld/hh_mn1400.cpp index a026286d69c..862a2c0ee1b 100644 --- a/src/mame/handheld/hh_mn1400.cpp +++ b/src/mame/handheld/hh_mn1400.cpp @@ -109,7 +109,8 @@ u8 hh_mn1400_state::read_inputs(int columns) /******************************************************************************* Lakeside Computer Perfection - * MN1400ML MCU (die label: 1400 ML-0) + * PCB label: Lakeside, PANASONIC, TCI-A4H94HB + * MN1400ML MCU (28 pins, die label: 1400 ML-0) * 10 LEDs, 2-bit sound *******************************************************************************/ @@ -138,7 +139,7 @@ INPUT_PORTS_END void compperf_state::compperf(machine_config &config) { // basic machine hardware - MN1400(config, m_maincpu, 300000); + MN1400(config, m_maincpu, 300000); // approximation - RC osc. R=18K, C=100pF // video hardware PWM_DISPLAY(config, m_display).set_size(1, 10); @@ -195,7 +196,7 @@ INPUT_PORTS_END void scrablexa_state::scrablexa(machine_config &config) { // basic machine hardware - MN1405(config, m_maincpu, 300000); + MN1405(config, m_maincpu, 300000); // approximation - RC osc. R=15K, C=100pF // video hardware PWM_DISPLAY(config, m_display).set_size(1, 1); |
