blob: 0d170f43df043e226cdb5a902b7c12219f3b0652 (
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
|
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert
/***************************************************************************
deco16.h
6502, reverse-engineered DECO variant
***************************************************************************/
#ifndef MAME_CPU_M6502_DECO16_H
#define MAME_CPU_M6502_DECO16_H
#include "m6502.h"
#include "deco16d.h"
class deco16_device : public m6502_device {
public:
deco16_device(const machine_config &mconfig, const char *tag, device_t *owner, const XTAL &clock);
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
virtual void do_exec_full() override;
virtual void do_exec_partial() override;
protected:
address_space *io;
address_space_config io_config;
virtual space_config_vector memory_space_config() const override;
virtual void device_start() override;
#define O(o) void o ## _full(); void o ## _partial()
O(brk_16_imp);
O(ill_non);
O(u0B_zpg);
O(u13_zpg);
O(u23_zpg);
O(u3F_zpg);
O(u4B_zpg);
O(u87_zpg);
O(u8F_zpg);
O(uA3_zpg);
O(uAB_zpg);
O(uBB_zpg);
O(vbl_zpg);
O(reset_16);
#undef O
};
enum {
DECO16_IRQ_LINE = m6502_device::IRQ_LINE,
DECO16_NMI_LINE = m6502_device::NMI_LINE,
DECO16_SET_OVERFLOW = m6502_device::V_LINE
};
DECLARE_DEVICE_TYPE(DECO16, deco16_device)
#endif // MAME_CPU_M6502_DECO16_H
|