trunk/src/mess/drivers/abc80x.c
| r23543 | r23544 | |
| 883 | 883 | |
| 884 | 884 | |
| 885 | 885 | //------------------------------------------------- |
| 886 | | // ABCBUS_INTERFACE( abcbus_intf ) |
| 887 | | //------------------------------------------------- |
| 888 | | |
| 889 | | static ABCBUS_INTERFACE( abcbus_intf ) |
| 890 | | { |
| 891 | | DEVCB_NULL, |
| 892 | | DEVCB_NULL, |
| 893 | | DEVCB_NULL, |
| 894 | | DEVCB_NULL |
| 895 | | }; |
| 896 | | |
| 897 | | |
| 898 | | //------------------------------------------------- |
| 899 | 886 | // rs232_port_interface rs232a_intf |
| 900 | 887 | //------------------------------------------------- |
| 901 | 888 | |
| r23543 | r23544 | |
| 1192 | 1179 | MCFG_ABC_KEYBOARD_PORT_ADD("abc800", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w)) |
| 1193 | 1180 | |
| 1194 | 1181 | // ABC bus |
| 1195 | | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_intf, abcbus_cards, "fast") |
| 1182 | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "fast") |
| 1196 | 1183 | MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc830_fast) |
| 1197 | 1184 | |
| 1198 | 1185 | // internal ram |
| r23543 | r23544 | |
| 1235 | 1222 | MCFG_ABC_KEYBOARD_PORT_ADD("abc800", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w)) |
| 1236 | 1223 | |
| 1237 | 1224 | // ABC bus |
| 1238 | | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_intf, abcbus_cards, "fast") |
| 1225 | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "fast") |
| 1239 | 1226 | MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc830_fast) |
| 1240 | 1227 | |
| 1241 | 1228 | // internal ram |
| r23543 | r23544 | |
| 1278 | 1265 | MCFG_ABC_KEYBOARD_PORT_ADD("abc55", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w)) |
| 1279 | 1266 | |
| 1280 | 1267 | // ABC bus |
| 1281 | | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_intf, abcbus_cards, "fast") |
| 1268 | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "fast") |
| 1282 | 1269 | MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc834_fast) |
| 1283 | 1270 | |
| 1284 | 1271 | // internal ram |
| r23543 | r23544 | |
| 1311 | 1298 | MCFG_ABC_KEYBOARD_PORT_ADD("abc77", DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, dcdb_w)) |
| 1312 | 1299 | |
| 1313 | 1300 | // ABC bus |
| 1314 | | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_intf, abcbus_cards, "fast") |
| 1301 | MCFG_ABCBUS_SLOT_ADD(ABCBUS_TAG, abcbus_cards, "fast") |
| 1315 | 1302 | MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc832_fast) |
| 1316 | 1303 | |
| 1317 | 1304 | // internal ram |
trunk/src/mess/machine/abc890.c
| r23543 | r23544 | |
| 21 | 21 | |
| 22 | 22 | |
| 23 | 23 | //------------------------------------------------- |
| 24 | | // ABCBUS_INTERFACE( abcbus_intf ) |
| 25 | | //------------------------------------------------- |
| 26 | | |
| 27 | | WRITE_LINE_MEMBER( abc890_device::int_w ) |
| 28 | | { |
| 29 | | m_slot->int_w(state); |
| 30 | | } |
| 31 | | |
| 32 | | WRITE_LINE_MEMBER( abc890_device::nmi_w ) |
| 33 | | { |
| 34 | | m_slot->nmi_w(state); |
| 35 | | } |
| 36 | | |
| 37 | | WRITE_LINE_MEMBER( abc890_device::rdy_w ) |
| 38 | | { |
| 39 | | m_slot->rdy_w(state); |
| 40 | | } |
| 41 | | |
| 42 | | WRITE_LINE_MEMBER( abc890_device::resin_w ) |
| 43 | | { |
| 44 | | m_slot->resin_w(state); |
| 45 | | } |
| 46 | | |
| 47 | | static ABCBUS_INTERFACE( abcbus_intf ) |
| 48 | | { |
| 49 | | DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, abc890_device, int_w), |
| 50 | | DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, abc890_device, nmi_w), |
| 51 | | DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, abc890_device, rdy_w), |
| 52 | | DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, abc890_device, resin_w) |
| 53 | | }; |
| 54 | | |
| 55 | | |
| 56 | | //------------------------------------------------- |
| 57 | 24 | // MACHINE_DRIVER( abc890 ) |
| 58 | 25 | //------------------------------------------------- |
| 59 | 26 | |
| 60 | 27 | static MACHINE_CONFIG_FRAGMENT( abc890 ) |
| 61 | | MCFG_ABCBUS_SLOT_ADD("io1", abcbus_intf, abcbus_cards, NULL) |
| 62 | | MCFG_ABCBUS_SLOT_ADD("io2", abcbus_intf, abcbus_cards, NULL) |
| 63 | | MCFG_ABCBUS_SLOT_ADD("io3", abcbus_intf, abcbus_cards, NULL) |
| 64 | | MCFG_ABCBUS_SLOT_ADD("io4", abcbus_intf, abcbus_cards, NULL) |
| 65 | | MCFG_ABCBUS_SLOT_ADD("mem1", abcbus_intf, abcbus_cards, NULL) |
| 66 | | MCFG_ABCBUS_SLOT_ADD("mem2", abcbus_intf, abcbus_cards, NULL) |
| 67 | | MCFG_ABCBUS_SLOT_ADD("mem3", abcbus_intf, abcbus_cards, NULL) |
| 28 | MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, NULL) |
| 29 | MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, NULL) |
| 30 | MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, NULL) |
| 31 | MCFG_ABCBUS_SLOT_ADD("io4", abcbus_cards, NULL) |
| 32 | MCFG_ABCBUS_SLOT_ADD("mem1", abcbus_cards, NULL) |
| 33 | MCFG_ABCBUS_SLOT_ADD("mem2", abcbus_cards, NULL) |
| 34 | MCFG_ABCBUS_SLOT_ADD("mem3", abcbus_cards, NULL) |
| 68 | 35 | MACHINE_CONFIG_END |
| 69 | 36 | |
| 70 | 37 | |
| r23543 | r23544 | |
| 84 | 51 | //------------------------------------------------- |
| 85 | 52 | |
| 86 | 53 | static MACHINE_CONFIG_FRAGMENT( abc894 ) |
| 87 | | MCFG_ABCBUS_SLOT_ADD("io1", abcbus_intf, abcbus_cards, NULL) |
| 88 | | MCFG_ABCBUS_SLOT_ADD("io2", abcbus_intf, abcbus_cards, NULL) |
| 89 | | MCFG_ABCBUS_SLOT_ADD("io3", abcbus_intf, abcbus_cards, NULL) |
| 54 | MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, NULL) |
| 55 | MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, NULL) |
| 56 | MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, NULL) |
| 90 | 57 | MACHINE_CONFIG_END |
| 91 | 58 | |
| 92 | 59 | |
| r23543 | r23544 | |
| 106 | 73 | //------------------------------------------------- |
| 107 | 74 | |
| 108 | 75 | static MACHINE_CONFIG_FRAGMENT( abc850 ) |
| 109 | | MCFG_ABCBUS_SLOT_ADD("io1", abcbus_intf, abcbus_cards, "fast") |
| 76 | MCFG_ABCBUS_SLOT_ADD("io1", abcbus_cards, "fast") |
| 110 | 77 | MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("fast", abc850_fast) |
| 111 | | MCFG_ABCBUS_SLOT_ADD("io2", abcbus_intf, abcbus_cards, "hdc") |
| 112 | | MCFG_ABCBUS_SLOT_ADD("io3", abcbus_intf, abcbus_cards, NULL) |
| 113 | | MCFG_ABCBUS_SLOT_ADD("io4", abcbus_intf, abcbus_cards, NULL) |
| 114 | | MCFG_ABCBUS_SLOT_ADD("io5", abcbus_intf, abcbus_cards, NULL) |
| 115 | | MCFG_ABCBUS_SLOT_ADD("io6", abcbus_intf, abcbus_cards, NULL) |
| 116 | | MCFG_ABCBUS_SLOT_ADD("io7", abcbus_intf, abcbus_cards, NULL) |
| 78 | MCFG_ABCBUS_SLOT_ADD("io2", abcbus_cards, "hdc") |
| 79 | MCFG_ABCBUS_SLOT_ADD("io3", abcbus_cards, NULL) |
| 80 | MCFG_ABCBUS_SLOT_ADD("io4", abcbus_cards, NULL) |
| 81 | MCFG_ABCBUS_SLOT_ADD("io5", abcbus_cards, NULL) |
| 82 | MCFG_ABCBUS_SLOT_ADD("io6", abcbus_cards, NULL) |
| 83 | MCFG_ABCBUS_SLOT_ADD("io7", abcbus_cards, NULL) |
| 117 | 84 | MACHINE_CONFIG_END |
| 118 | 85 | |
| 119 | 86 | |
| r23543 | r23544 | |
| 200 | 167 | } |
| 201 | 168 | |
| 202 | 169 | |
| 170 | //------------------------------------------------- |
| 171 | // device_reset - device-specific reset |
| 172 | //------------------------------------------------- |
| 203 | 173 | |
| 174 | void abc890_device::device_reset() |
| 175 | { |
| 176 | for (int i = 0; i < m_slots; i++) |
| 177 | { |
| 178 | m_expansion_slot[i]->reset(); |
| 179 | } |
| 180 | } |
| 181 | |
| 182 | |
| 183 | |
| 204 | 184 | //************************************************************************** |
| 205 | 185 | // ABC BUS INTERFACE |
| 206 | 186 | //************************************************************************** |
| r23543 | r23544 | |
| 213 | 193 | } |
| 214 | 194 | } |
| 215 | 195 | |
| 216 | | void abc890_device::abcbus_rst(int state) |
| 217 | | { |
| 218 | | for (int i = 0; i < m_slots; i++) |
| 219 | | { |
| 220 | | m_expansion_slot[i]->rst_r(); |
| 221 | | } |
| 222 | | } |
| 223 | | |
| 224 | 196 | UINT8 abc890_device::abcbus_inp() |
| 225 | 197 | { |
| 226 | 198 | UINT8 data = 0xff; |
trunk/src/mess/machine/abcbus.c
| r23543 | r23544 | |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | |
| 37 | | //------------------------------------------------- |
| 38 | | // ~device_abcbus_card_interface - destructor |
| 39 | | //------------------------------------------------- |
| 40 | 37 | |
| 41 | | device_abcbus_card_interface::~device_abcbus_card_interface() |
| 42 | | { |
| 43 | | } |
| 44 | | |
| 45 | | |
| 46 | | |
| 47 | 38 | //************************************************************************** |
| 48 | 39 | // LIVE DEVICE |
| 49 | 40 | //************************************************************************** |
| r23543 | r23544 | |
| 53 | 44 | //------------------------------------------------- |
| 54 | 45 | |
| 55 | 46 | abcbus_slot_device::abcbus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : |
| 56 | | device_t(mconfig, ABCBUS_SLOT, "ABC bus slot", tag, owner, clock), |
| 57 | | device_slot_interface(mconfig, *this) |
| 47 | device_t(mconfig, ABCBUS_SLOT, "ABC bus slot", tag, owner, clock), |
| 48 | device_slot_interface(mconfig, *this), |
| 49 | m_write_int(*this), |
| 50 | m_write_nmi(*this), |
| 51 | m_write_rdy(*this), |
| 52 | m_write_resin(*this) |
| 58 | 53 | { |
| 59 | 54 | } |
| 60 | 55 | |
| 61 | 56 | |
| 62 | 57 | //------------------------------------------------- |
| 63 | | // device_config_complete - perform any |
| 64 | | // operations now that the configuration is |
| 65 | | // complete |
| 58 | // device_start - device-specific startup |
| 66 | 59 | //------------------------------------------------- |
| 67 | 60 | |
| 68 | | void abcbus_slot_device::device_config_complete() |
| 61 | void abcbus_slot_device::device_start() |
| 69 | 62 | { |
| 70 | | // inherit a copy of the static data |
| 71 | | const abcbus_interface *intf = reinterpret_cast<const abcbus_interface *>(static_config()); |
| 72 | | if (intf != NULL) |
| 73 | | { |
| 74 | | *static_cast<abcbus_interface *>(this) = *intf; |
| 75 | | } |
| 63 | m_card = dynamic_cast<device_abcbus_card_interface *>(get_card_device()); |
| 76 | 64 | |
| 77 | | // or initialize to defaults if none provided |
| 78 | | else |
| 79 | | { |
| 80 | | memset(&m_out_int_cb, 0, sizeof(m_out_int_cb)); |
| 81 | | memset(&m_out_nmi_cb, 0, sizeof(m_out_nmi_cb)); |
| 82 | | memset(&m_out_rdy_cb, 0, sizeof(m_out_rdy_cb)); |
| 83 | | memset(&m_out_resin_cb, 0, sizeof(m_out_resin_cb)); |
| 84 | | } |
| 65 | // resolve callbacks |
| 66 | m_write_int.resolve_safe(); |
| 67 | m_write_nmi.resolve_safe(); |
| 68 | m_write_rdy.resolve_safe(); |
| 69 | m_write_resin.resolve_safe(); |
| 85 | 70 | } |
| 86 | 71 | |
| 87 | 72 | |
| 88 | 73 | //------------------------------------------------- |
| 89 | | // device_start - device-specific startup |
| 74 | // device_reset - device-specific reset |
| 90 | 75 | //------------------------------------------------- |
| 91 | 76 | |
| 92 | | void abcbus_slot_device::device_start() |
| 77 | void abcbus_slot_device::device_reset() |
| 93 | 78 | { |
| 94 | | m_card = dynamic_cast<device_abcbus_card_interface *>(get_card_device()); |
| 95 | | |
| 96 | | // resolve callbacks |
| 97 | | m_out_int_func.resolve(m_out_int_cb, *this); |
| 98 | | m_out_nmi_func.resolve(m_out_nmi_cb, *this); |
| 99 | | m_out_rdy_func.resolve(m_out_rdy_cb, *this); |
| 100 | | m_out_resin_func.resolve(m_out_resin_cb, *this); |
| 79 | if (m_card != NULL) |
| 80 | { |
| 81 | get_card_device()->reset(); |
| 82 | } |
| 101 | 83 | } |
| 102 | 84 | |
| 103 | 85 | |
| r23543 | r23544 | |
| 125 | 107 | |
| 126 | 108 | UINT8 abcbus_slot_device::rst_r() |
| 127 | 109 | { |
| 128 | | if (m_card != NULL) |
| 129 | | { |
| 130 | | m_card->abcbus_rst(0); |
| 131 | | m_card->abcbus_rst(1); |
| 132 | | } |
| 110 | device_reset(); |
| 133 | 111 | |
| 134 | 112 | return 0xff; |
| 135 | 113 | } |
| r23543 | r23544 | |
| 315 | 293 | |
| 316 | 294 | |
| 317 | 295 | //------------------------------------------------- |
| 318 | | // int_w - |
| 319 | | //------------------------------------------------- |
| 320 | | |
| 321 | | WRITE_LINE_MEMBER( abcbus_slot_device::int_w ) |
| 322 | | { |
| 323 | | m_out_int_func(state); |
| 324 | | } |
| 325 | | |
| 326 | | |
| 327 | | //------------------------------------------------- |
| 328 | | // nmi_w - |
| 329 | | //------------------------------------------------- |
| 330 | | |
| 331 | | WRITE_LINE_MEMBER( abcbus_slot_device::nmi_w ) |
| 332 | | { |
| 333 | | m_out_nmi_func(state); |
| 334 | | } |
| 335 | | |
| 336 | | |
| 337 | | //------------------------------------------------- |
| 338 | | // rdy_w - |
| 339 | | //------------------------------------------------- |
| 340 | | |
| 341 | | WRITE_LINE_MEMBER( abcbus_slot_device::rdy_w ) |
| 342 | | { |
| 343 | | m_out_rdy_func(state); |
| 344 | | } |
| 345 | | |
| 346 | | |
| 347 | | //------------------------------------------------- |
| 348 | | // resin_w - |
| 349 | | //------------------------------------------------- |
| 350 | | |
| 351 | | WRITE_LINE_MEMBER( abcbus_slot_device::resin_w ) |
| 352 | | { |
| 353 | | m_out_resin_func(state); |
| 354 | | } |
| 355 | | |
| 356 | | |
| 357 | | //------------------------------------------------- |
| 358 | 296 | // SLOT_INTERFACE( abcbus_cards ) |
| 359 | 297 | //------------------------------------------------- |
| 360 | 298 | |
trunk/src/mess/machine/abcbus.h
| r23543 | r23544 | |
| 78 | 78 | // INTERFACE CONFIGURATION MACROS |
| 79 | 79 | //************************************************************************** |
| 80 | 80 | |
| 81 | | #define ABCBUS_INTERFACE(_name) \ |
| 82 | | const abcbus_interface (_name) = |
| 83 | | |
| 84 | | |
| 85 | | #define MCFG_ABCBUS_SLOT_ADD(_tag, _config, _slot_intf, _def_slot) \ |
| 81 | #define MCFG_ABCBUS_SLOT_ADD(_tag, _slot_intf, _def_slot) \ |
| 86 | 82 | MCFG_DEVICE_ADD(_tag, ABCBUS_SLOT, 0) \ |
| 87 | | MCFG_DEVICE_CONFIG(_config) \ |
| 88 | 83 | MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) |
| 89 | 84 | |
| 90 | 85 | |
| r23543 | r23544 | |
| 93 | 88 | // TYPE DEFINITIONS |
| 94 | 89 | //************************************************************************** |
| 95 | 90 | |
| 96 | | // ======================> abcbus_interface |
| 97 | | |
| 98 | | struct abcbus_interface |
| 99 | | { |
| 100 | | devcb_write_line m_out_int_cb; |
| 101 | | devcb_write_line m_out_nmi_cb; |
| 102 | | devcb_write_line m_out_rdy_cb; |
| 103 | | devcb_write_line m_out_resin_cb; |
| 104 | | }; |
| 105 | | |
| 106 | | |
| 107 | | // ======================> device_abcbus_card_interface |
| 108 | | |
| 109 | | class abcbus_slot_device; |
| 110 | | |
| 111 | | // class representing interface-specific live abcbus card |
| 112 | | class device_abcbus_card_interface : public device_slot_card_interface |
| 113 | | { |
| 114 | | friend class abcbus_slot_device; |
| 115 | | |
| 116 | | public: |
| 117 | | // construction/destruction |
| 118 | | device_abcbus_card_interface(const machine_config &mconfig, device_t &device); |
| 119 | | virtual ~device_abcbus_card_interface(); |
| 120 | | |
| 121 | | // required operation overrides |
| 122 | | virtual void abcbus_cs(UINT8 data) = 0; |
| 123 | | |
| 124 | | // optional operation overrides |
| 125 | | virtual void abcbus_rst(int state) { }; |
| 126 | | virtual UINT8 abcbus_inp() { return 0xff; }; |
| 127 | | virtual void abcbus_utp(UINT8 data) { }; |
| 128 | | virtual UINT8 abcbus_stat() { return 0xff; }; |
| 129 | | virtual void abcbus_c1(UINT8 data) { }; |
| 130 | | virtual void abcbus_c2(UINT8 data) { }; |
| 131 | | virtual void abcbus_c3(UINT8 data) { }; |
| 132 | | virtual void abcbus_c4(UINT8 data) { }; |
| 133 | | virtual UINT8 abcbus_xmemfl(offs_t offset) { return 0xff; }; |
| 134 | | virtual void abcbus_xmemw(offs_t offset, UINT8 data) { }; |
| 135 | | |
| 136 | | public: |
| 137 | | abcbus_slot_device *m_slot; |
| 138 | | }; |
| 139 | | |
| 140 | | |
| 141 | 91 | // ======================> abcbus_slot_device |
| 142 | 92 | |
| 93 | class device_abcbus_card_interface; |
| 94 | |
| 143 | 95 | class abcbus_slot_device : public device_t, |
| 144 | | public device_slot_interface, |
| 145 | | public abcbus_interface |
| 96 | public device_slot_interface |
| 146 | 97 | { |
| 147 | 98 | public: |
| 148 | 99 | // construction/destruction |
| r23543 | r23544 | |
| 174 | 125 | DECLARE_WRITE8_MEMBER( xmemw_w ); |
| 175 | 126 | |
| 176 | 127 | // peripheral interface |
| 177 | | DECLARE_WRITE_LINE_MEMBER( int_w ); |
| 178 | | DECLARE_WRITE_LINE_MEMBER( nmi_w ); |
| 179 | | DECLARE_WRITE_LINE_MEMBER( rdy_w ); |
| 180 | | DECLARE_WRITE_LINE_MEMBER( resin_w ); |
| 128 | DECLARE_WRITE_LINE_MEMBER( int_w ) { m_write_int(state); } |
| 129 | DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_write_nmi(state); } |
| 130 | DECLARE_WRITE_LINE_MEMBER( rdy_w ) { m_write_rdy(state); } |
| 131 | DECLARE_WRITE_LINE_MEMBER( resin_w ) { m_write_resin(state); } |
| 181 | 132 | |
| 182 | 133 | protected: |
| 183 | 134 | // device-level overrides |
| 184 | 135 | virtual void device_start(); |
| 185 | | virtual void device_config_complete(); |
| 136 | virtual void device_reset(); |
| 186 | 137 | |
| 187 | 138 | private: |
| 188 | | devcb_resolved_write_line m_out_int_func; |
| 189 | | devcb_resolved_write_line m_out_nmi_func; |
| 190 | | devcb_resolved_write_line m_out_rdy_func; |
| 191 | | devcb_resolved_write_line m_out_resin_func; |
| 139 | devcb2_write_line m_write_int; |
| 140 | devcb2_write_line m_write_nmi; |
| 141 | devcb2_write_line m_write_rdy; |
| 142 | devcb2_write_line m_write_resin; |
| 192 | 143 | |
| 193 | 144 | device_abcbus_card_interface *m_card; |
| 194 | 145 | }; |
| 195 | 146 | |
| 196 | 147 | |
| 148 | // ======================> device_abcbus_card_interface |
| 149 | |
| 150 | // class representing interface-specific live abcbus card |
| 151 | class device_abcbus_card_interface : public device_slot_card_interface |
| 152 | { |
| 153 | friend class abcbus_slot_device; |
| 154 | |
| 155 | public: |
| 156 | // construction/destruction |
| 157 | device_abcbus_card_interface(const machine_config &mconfig, device_t &device); |
| 158 | |
| 159 | // required operation overrides |
| 160 | virtual void abcbus_cs(UINT8 data) = 0; |
| 161 | |
| 162 | // optional operation overrides |
| 163 | virtual UINT8 abcbus_inp() { return 0xff; }; |
| 164 | virtual void abcbus_utp(UINT8 data) { }; |
| 165 | virtual UINT8 abcbus_stat() { return 0xff; }; |
| 166 | virtual void abcbus_c1(UINT8 data) { }; |
| 167 | virtual void abcbus_c2(UINT8 data) { }; |
| 168 | virtual void abcbus_c3(UINT8 data) { }; |
| 169 | virtual void abcbus_c4(UINT8 data) { }; |
| 170 | virtual UINT8 abcbus_xmemfl(offs_t offset) { return 0xff; }; |
| 171 | virtual void abcbus_xmemw(offs_t offset, UINT8 data) { }; |
| 172 | |
| 173 | public: |
| 174 | abcbus_slot_device *m_slot; |
| 175 | }; |
| 176 | |
| 177 | |
| 197 | 178 | // device type definition |
| 198 | 179 | extern const device_type ABCBUS_SLOT; |
| 199 | 180 | |