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

 h83002.h : Public constants and function defs for the H8/3002 emulator.

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

#ifndef _H83002_H_
#define _H83002_H_

#include "cpuintrf.h"

#define IFLAG  0x80
#define UIFLAG 0x40
#define HFLAG  0x20
#define UFLAG  0x10
#define NFLAG  0x08
#define ZFLAG  0x04
#define VFLAG  0x02
#define CFLAG  0x01

enum
{
	H8_E0 = 1,
	H8_E1,
	H8_E2,
	H8_E3,
	H8_E4,
	H8_E5,
	H8_E6,
	H8_E7,

	H8_PC,
	H8_CCR
};

/* external interrupt lines */
enum
{
	H8_IRQ0 = 0,
	H8_IRQ1,
	H8_IRQ2,
	H8_IRQ3,
	H8_IRQ4,
	H8_IRQ5
};

/* I/O ports */
enum
{
	/* digital I/O ports */
	H8_PORT4 = 0,	/* 0 */
	H8_PORT6,	/* 1 */
	H8_PORT7,	/* 2 */
	H8_PORT8,	/* 3 */
	H8_PORT9,	/* 4 */
	H8_PORTA,	/* 5 */
	H8_PORTB,	/* 6 */

	/* analog inputs */
	H8_ADC_0_H = 0x10,
	H8_ADC_0_L,
	H8_ADC_1_H,
	H8_ADC_1_L,
	H8_ADC_2_H,
	H8_ADC_2_L,
	H8_ADC_3_H,
	H8_ADC_3_L,

	/* serial ports */
	H8_SERIAL_A = 0x20,
	H8_SERIAL_B
};

void h8_3002_get_info(UINT32 state, union cpuinfo *info);

void h8_3002_InterruptRequest(UINT8 source);

#endif
