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
|
/***************************************************************************
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__ */
|