mirror of
https://github.com/holub/mame
synced 2025-06-01 02:21:48 +03:00
150 lines
4.6 KiB
C++
150 lines
4.6 KiB
C++
/*
|
|
* x68kexp.h
|
|
*
|
|
* Expansion slots for the X680x0 series
|
|
*
|
|
* Pinout: (from http://www.amy.hi-ho.ne.jp/shimada/neptune/x68k.html)
|
|
+-----+
|
|
GND B1 |[] []| A1 GND
|
|
10MHz B2 |[] []| A2 20MHz
|
|
#10MHz B3 |[] []| A3 GND
|
|
E B4 |[] []| A4 DB0
|
|
AB1 B5 |[] []| A5 DB1
|
|
AB2 B6 |[] []| A6 DB2
|
|
AB3 B7 |[] []| A7 DB3
|
|
AB4 B8 |[] []| A8 DB4
|
|
AB5 B9 |[] []| A9 DB5
|
|
AB6 B10 |[] []| A10 DB6
|
|
GND B11 |[] []| A11 GND
|
|
AB7 B12 |[] []| A12 DB7
|
|
AB8 B13 |[] []| A13 DB8
|
|
AB9 B14 |[] []| A14 DB9
|
|
AB10 B15 |[] []| A15 DB10
|
|
AB11 B16 |[] []| A16 DB11
|
|
AB12 B17 |[] []| A17 DB12
|
|
AB13 B18 |[] []| A18 DB13
|
|
AB14 B19 |[] []| A19 DB14
|
|
AB15 B20 |[] []| A20 DB15
|
|
GND B21 |[] []| A21 GND
|
|
AB16 B22 |[] []| A22 +12V
|
|
AB17 B23 |[] []| A23 +12V
|
|
AB18 B24 |[] []| A24 FC0
|
|
AB19 B25 |[] []| A25 FC1
|
|
AB20 B26 |[] []| A26 FC2
|
|
AB21 B27 |[] []| A27 #AS
|
|
AB22 B28 |[] []| A28 #LDS
|
|
AB23 B29 |[] []| A29 #UDS
|
|
IDDIR B30 |[] []| A30 R/#W
|
|
N.C. B31 |[] []| A31 N.C.
|
|
HSYNC B32 |[] []| A32 -12V
|
|
VSYNC B33 |[] []| A33 -12V
|
|
#DONE B34 |[] []| A34 #VMA
|
|
#DTC B35 |[] []| A35 #EXVPA
|
|
#EXREQ B36 |[] []| A36 #DTACK
|
|
#EXACK B37 |[] []| A37 #EXRESET
|
|
#EXPCL B38 |[] []| A38 #HALT
|
|
#EXOWN B39 |[] []| A39 #EXBERR
|
|
#EXNMI B40 |[] []| A40 #EXPWON
|
|
GND B41 |[] []| A41 GND
|
|
#IRQ2 B42 |[] []| A42 Vcc2
|
|
#IRQ4 B43 |[] []| A43 Vcc2
|
|
#IACK2 B44 |[] []| A44 SELEN
|
|
#IACK4 B45 |[] []| A45 CASRDEN
|
|
#BR B46 |[] []| A46 CASWRL
|
|
#BG B47 |[] []| A47 CASWRU
|
|
#BGACK B48 |[] []| A48 INH2
|
|
Vcc1 B49 |[] []| A49 Vcc1
|
|
Vcc1 B50 |[] []| A50 Vcc1
|
|
+-----+
|
|
*
|
|
*/
|
|
|
|
#ifndef X68KEXP_H_
|
|
#define X68KEXP_H_
|
|
|
|
#include "emu.h"
|
|
|
|
//**************************************************************************
|
|
// CONSTANTS
|
|
//**************************************************************************
|
|
|
|
#define X68K_EXP_SLOT_TAG "x68kexp"
|
|
|
|
//**************************************************************************
|
|
// INTERFACE CONFIGURATION MACROS
|
|
//**************************************************************************
|
|
|
|
#define X68K_EXPANSION_INTERFACE(_name) \
|
|
const x68k_expansion_slot_interface (_name) =
|
|
|
|
|
|
#define MCFG_X68K_EXPANSION_SLOT_ADD(_tag, _config, _slot_intf, _def_slot, _def_inp) \
|
|
MCFG_DEVICE_ADD(_tag, X68K_EXPANSION_SLOT, 0) \
|
|
MCFG_DEVICE_CONFIG(_config) \
|
|
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _def_inp, false)
|
|
|
|
//**************************************************************************
|
|
// TYPE DEFINITIONS
|
|
//**************************************************************************
|
|
|
|
// expansion slot interface
|
|
|
|
struct x68k_expansion_slot_interface
|
|
{
|
|
devcb_write_line m_out_irq2_cb;
|
|
devcb_write_line m_out_irq4_cb;
|
|
devcb_write_line m_out_nmi_cb;
|
|
devcb_write_line m_out_reset_cb;
|
|
};
|
|
|
|
// ======================> device_x68k_expansion_card_interface
|
|
|
|
// class representing interface-specific live x68k_expansion card
|
|
class device_x68k_expansion_card_interface : public device_slot_card_interface
|
|
{
|
|
public:
|
|
// construction/destruction
|
|
device_x68k_expansion_card_interface(const machine_config &mconfig, device_t &device);
|
|
virtual ~device_x68k_expansion_card_interface();
|
|
|
|
// reset
|
|
virtual void x68k_reset_w() { };
|
|
};
|
|
|
|
|
|
// ======================> x68k_expansion_slot_device
|
|
|
|
class x68k_expansion_slot_device : public device_t,
|
|
public x68k_expansion_slot_interface,
|
|
public device_slot_interface
|
|
{
|
|
public:
|
|
// construction/destruction
|
|
x68k_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
|
virtual ~x68k_expansion_slot_device();
|
|
|
|
DECLARE_WRITE_LINE_MEMBER( irq2_w );
|
|
DECLARE_WRITE_LINE_MEMBER( irq4_w );
|
|
DECLARE_WRITE_LINE_MEMBER( nmi_w );
|
|
DECLARE_WRITE_LINE_MEMBER( reset_w );
|
|
|
|
protected:
|
|
// device-level overrides
|
|
virtual void device_start();
|
|
virtual void device_reset();
|
|
virtual void device_config_complete();
|
|
|
|
devcb_resolved_write_line m_out_irq2_func;
|
|
devcb_resolved_write_line m_out_irq4_func;
|
|
devcb_resolved_write_line m_out_nmi_func;
|
|
devcb_resolved_write_line m_out_reset_func;
|
|
|
|
device_x68k_expansion_card_interface *m_card;
|
|
};
|
|
|
|
|
|
// device type definition
|
|
extern const device_type X68K_EXPANSION_SLOT;
|
|
|
|
#endif /* X68KEXP_H_ */
|