blob: 4e234b0ac06985a0ee018342e3ac65aec97b97a8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
// license:BSD-3-Clause
// copyright-holders:hap
/*
Sharp SM510 MCU family cores
*/
#ifndef MAME_CPU_SM510_SM510_H
#define MAME_CPU_SM510_SM510_H
#pragma once
#include "sm510base.h"
// pinout reference
/*
b2 a3 b3 a4 b4 a5 b5 GND a6 b6 a7 b7 a8 b8 a9
45 44 43 42 41 40 39 38 37 36 35 34 33 32 31
____________________________________________________________
| |
a2 46 | | 30 b9
| |
b1 47 | | 29 a10
| |
a1 48 | | 28 b10
| |
H4 49 | | 27 a11
| |
H3 50 | | 26 b11
| |
H2 51 | | 25 a12
| |
H1 52 | | 24 b12
| SM510 |
S1 53 | SM511 | 23 a13
| |
S2 54 | | 22 b13
| |
S3 55 | | 21 a14
| |
S4 56 | | 20 b14
| |
S5 57 | | 19 a15
| |
S6 58 | | 18 b15
| |
S7 59 | | 17 a16
| |
S8 60 | * | 16 b16
|____________________________________________________________/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
T K1 K2 K3 K4 ACL BA GND OSC OSC Vdd bt R1 R2 bs note: bt = beta symbol
out in
*/
class sm510_device : public sm510_base_device
{
public:
sm510_device(const machine_config &mconfig, const char *tag, device_t *owner, const XTAL &clock = XTAL::u(32768));
protected:
void program_2_7k(address_map &map);
void data_96_32x4(address_map &map);
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
virtual void execute_one() override;
virtual bool op_argument() override;
virtual void update_w_latch() override { m_write_s(m_w); } // W is connected directly to S
virtual void clock_melody() override;
};
DECLARE_DEVICE_TYPE(SM510, sm510_device)
#endif // MAME_CPU_SM510_SM510_H
|