summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/mcs48/mcs48.h
blob: d7067abf9876e841621fec7111347b2c8f19c013 (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
83
84
85
86
87
88
89
90
91
92
93
/***************************************************************************

    mcs48.c

    Intel MCS-48 Portable Emulator

    Copyright Mirko Buffoni
    Based on the original work Copyright Dan Boris, an 8048 emulator
    You are not allowed to distribute this software commercially

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

#pragma once

#ifndef __I8039_H__
#define __I8039_H__

#include "cpuintrf.h"


/***************************************************************************
    CONSTANTS
***************************************************************************/

/* register access indexes */
enum
{
	MCS48_PC = 1,
	MCS48_PSW,
	MCS48_A,
	MCS48_TC,
	MCS48_P1,
	MCS48_P2,
	MCS48_R0,
	MCS48_R1,
	MCS48_R2,
	MCS48_R3,
	MCS48_R4,
	MCS48_R5,
	MCS48_R6,
	MCS48_R7,
	MCS48_EA
};


/* I/O port access indexes */
enum
{
	MCS48_INPUT_IRQ = 0,
	MCS48_INPUT_EA
};


/* special I/O space ports */
enum
{
	MCS48_PORT_P0	= 0x100,	/* Not used */
	MCS48_PORT_P1	= 0x101,
	MCS48_PORT_P2	= 0x102,
	MCS48_PORT_P4	= 0x104,
	MCS48_PORT_P5	= 0x105,
	MCS48_PORT_P6	= 0x106,
	MCS48_PORT_P7	= 0x107,
	MCS48_PORT_T0	= 0x110,
	MCS48_PORT_T1	= 0x111,
	MCS48_PORT_BUS	= 0x120
};



/***************************************************************************
    FUNCTION PROTOTYPES
***************************************************************************/

/* variants with 64 bytes of internal RAM and up to 1k of internal ROM */
void i8035_get_info(UINT32 state, cpuinfo *info);
void i8041_get_info(UINT32 state, cpuinfo *info);
void i8048_get_info(UINT32 state, cpuinfo *info);
void i8648_get_info(UINT32 state, cpuinfo *info);
void i8748_get_info(UINT32 state, cpuinfo *info);
void mb8884_get_info(UINT32 state, cpuinfo *info);
void n7751_get_info(UINT32 state, cpuinfo *info);

/* variants with 128 bytes of internal RAM and up to 2k of internal ROM */
void i8039_get_info(UINT32 state, cpuinfo *info);
void i8049_get_info(UINT32 state, cpuinfo *info);
void i8749_get_info(UINT32 state, cpuinfo *info);
void m58715_get_info(UINT32 state, cpuinfo *info);

/* disassembler */
offs_t mcs48_dasm(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram);

#endif  /* __I8039_H__ */