summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/tmc600/euro.h
blob: 7fe8c3c0ff624d5c180bf86055211b3179a5b293 (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// license:BSD-3-Clause
// copyright-holders:Curt Coder
/**********************************************************************

    Telercas Telmac TMC-600 euro bus emulation

**********************************************************************

                              C     A
                        GND   *  1  *   GND
                         D1   *  2  *   D0
                         D3   *  3  *   D2
                         D5   *  4  *   D4
                         D7   *  5  *   D6
                        GND   *  6  *   GND
                         A1   *  7  *   A0
                         A3   *  8  *   A2
                         A5   *  9  *   A4
                         A7   * 10  *   A6
                         A9   * 11  *   A8
                        A11   * 12  *   A10
                        A13   * 13  *   A12
                        A15   * 14  *   A14
                        GND   * 15  *   GND
                        TPB   * 16  *   CLOCK
                       _MWR   * 17  *   _CLEAR
                       _MRD   * 18  *   _WAIT
                        TPA   * 19  *   _DMAO
                        SC0   * 20  *   _DMAI
                        SC1   * 21  *   _INT
                         N0   * 22  *   _EF1
                         N1   * 23  *   _EF2
                         N2   * 24  *   _EF3
                          Q   * 25  *   _EF4
                        _MI   * 26  *   _EMS
                        SP1   * 27  *   SP2
                        GND   * 28  *   GND
                        -5V   * 29  *   -5V
                       +12v   * 30  *   +12V
                        +5V   * 31  *   +5V
                        +5V   * 32  *   +5V

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

#ifndef MAME_DEVICES_TMC600_EURO_H
#define MAME_DEVICES_TMC600_EURO_H

#pragma once



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

#define TMC600_EURO_BUS_TAG     "bus"



//**************************************************************************
//  INTERFACE CONFIGURATION MACROS
//**************************************************************************

#define MCFG_TMC600_EURO_BUS_SLOT_ADD(_tag, _slot_intf, _def_slot) \
	MCFG_DEVICE_ADD(_tag, TMC600_EURO_BUS_SLOT, 0) \
	MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)



//**************************************************************************
//  TYPE DEFINITIONS
//**************************************************************************

// ======================> device_tmc600_euro_bus_card_interface

class tmc600_euro_bus_slot_t;

class device_tmc600_euro_bus_card_interface : public device_slot_card_interface
{
public:

protected:
	// construction/destruction
	device_tmc600_euro_bus_card_interface(const machine_config &mconfig, device_t &device);

	tmc600_euro_bus_slot_t  *m_slot;

	friend class tmc600_euro_bus_slot_t;
};


// ======================> tmc600_euro_bus_slot_t

class tmc600_euro_bus_slot_t : public device_t,
							   public device_slot_interface
{
public:
	// construction/destruction
	tmc600_euro_bus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

protected:
	// device-level overrides
	virtual void device_start() override;
	virtual void device_reset() override { if (m_card) get_card_device()->reset(); }

	device_tmc600_euro_bus_card_interface *m_card;
};


// device type definition
DECLARE_DEVICE_TYPE(TMC600_EURO_BUS_SLOT, tmc600_euro_bus_slot_t)


void tmc600_euro_bus_cards(device_slot_interface &device);


typedef device_type_iterator<tmc600_euro_bus_slot_t> tmc600_euro_bus_slot_t_iterator;


#endif // MAME_DEVICES_TMC600_EURO_H