summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/alph8201/8201dasm.h
blob: 85676c5de10b81791d4cf78d0c08d1a94640146b (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
// license:BSD-3-Clause
// copyright-holders:Tatsuyuki Satoh
/*

Notice: The alpha 8201 is now emulated using mame/alpha8201.*

cpu/alph8201/ will be removed when the alpha 8304 has been dumped.




*/

/****************************************************************************
                         Alpha 8201/8301 Disassembler

                      Copyright Tatsuyuki Satoh
                   Originally written for the MAME project.

****************************************************************************/

#ifndef MAME_CPU_ALPH8201_8201DASM_H
#define MAME_CPU_ALPH8201_8201DASM_H

#pragma once

class alpha8201_disassembler : public util::disasm_interface
{
public:
	alpha8201_disassembler();
	virtual ~alpha8201_disassembler() = default;

	virtual u32 opcode_alignment() const override;
	virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer &params) override;

private:
	struct AD8201Opcode {
		u8 mask;
		u8 bits;
		u8 type;
		u8 pmask;
		u8 pdown;
		const char *fmt;
	};

	static const char *const Formats[];
	AD8201Opcode Op[256];
	int op_count;
};

#endif