trunk/src/mess/drivers/megadriv.c
| r22045 | r22046 | |
| 1 | 1 | |
| 2 | 2 | #include "emu.h" |
| 3 | | #include "includes/md.h" |
| 3 | #include "includes/megadriv.h" |
| 4 | 4 | #include "machine/md_slot.h" |
| 5 | 5 | #include "machine/md_rom.h" |
| 6 | 6 | #include "machine/md_svp.h" |
| r22045 | r22046 | |
| 16 | 16 | |
| 17 | 17 | #include "formats/imageutl.h" |
| 18 | 18 | |
| 19 | class md_cons_state : public md_base_state |
| 20 | { |
| 21 | public: |
| 22 | md_cons_state(const machine_config &mconfig, device_type type, const char *tag) |
| 23 | : md_base_state(mconfig, type, tag), |
| 24 | m_slotcart(*this, "mdslot") |
| 25 | { } |
| 26 | |
| 27 | emu_timer *m_mess_io_timeout[3]; |
| 28 | int m_mess_io_stage[3]; |
| 29 | |
| 30 | optional_device<md_cart_slot_device> m_slotcart; |
| 31 | |
| 32 | DECLARE_DRIVER_INIT(mess_md_common); |
| 33 | DECLARE_DRIVER_INIT(genesis); |
| 34 | DECLARE_DRIVER_INIT(md_eur); |
| 35 | DECLARE_DRIVER_INIT(md_jpn); |
| 36 | }; |
| 19 | 37 | |
| 38 | class pico_state : public md_cons_state |
| 39 | { |
| 40 | public: |
| 41 | pico_state(const machine_config &mconfig, device_type type, const char *tag) |
| 42 | : md_cons_state(mconfig, type, tag), |
| 43 | m_picocart(*this, "picoslot") { } |
| 44 | |
| 45 | optional_device<pico_cart_slot_device> m_picocart; |
| 46 | UINT8 m_page_register; |
| 47 | }; |
| 48 | |
| 49 | |
| 20 | 50 | /************************************* |
| 21 | 51 | * |
| 22 | 52 | * Input handlers |
trunk/src/mess/includes/md.h
| r22045 | r22046 | |
| 1 | | #ifndef __MD__ |
| 2 | | #define __MD__ |
| 3 | | |
| 4 | | // Temporary include file to handle SVP add-on, until converted to a proper slot device |
| 5 | | // Afterwards, these classes can be moved back to mess/drivers/megadriv.c! |
| 6 | | |
| 7 | | #include "includes/megadriv.h" |
| 8 | | #include "machine/md_slot.h" |
| 9 | | |
| 10 | | class md_cons_state : public md_base_state |
| 11 | | { |
| 12 | | public: |
| 13 | | md_cons_state(const machine_config &mconfig, device_type type, const char *tag) |
| 14 | | : md_base_state(mconfig, type, tag), |
| 15 | | m_slotcart(*this, "mdslot") |
| 16 | | { } |
| 17 | | |
| 18 | | emu_timer *m_mess_io_timeout[3]; |
| 19 | | int m_mess_io_stage[3]; |
| 20 | | |
| 21 | | optional_device<md_cart_slot_device> m_slotcart; |
| 22 | | |
| 23 | | DECLARE_DRIVER_INIT(mess_md_common); |
| 24 | | DECLARE_DRIVER_INIT(genesis); |
| 25 | | DECLARE_DRIVER_INIT(md_eur); |
| 26 | | DECLARE_DRIVER_INIT(md_jpn); |
| 27 | | }; |
| 28 | | |
| 29 | | class mdsvp_state : public md_cons_state |
| 30 | | { |
| 31 | | public: |
| 32 | | mdsvp_state(const machine_config &mconfig, device_type type, const char *tag) |
| 33 | | : md_cons_state(mconfig, type, tag) { } |
| 34 | | |
| 35 | | UINT8 *m_iram; // IRAM (0-0x7ff) |
| 36 | | UINT8 *m_dram; // [0x20000]; |
| 37 | | UINT32 m_pmac_read[6]; // read modes/addrs for PM0-PM5 |
| 38 | | UINT32 m_pmac_write[6]; // write ... |
| 39 | | PAIR m_pmc; |
| 40 | | UINT32 m_emu_status; |
| 41 | | UINT16 m_XST; // external status, mapped at a15000 and a15002 on 68k side. |
| 42 | | UINT16 m_XST2; // status of XST (bit1 set when 68k writes to XST) |
| 43 | | }; |
| 44 | | |
| 45 | | class pico_state : public md_cons_state |
| 46 | | { |
| 47 | | public: |
| 48 | | pico_state(const machine_config &mconfig, device_type type, const char *tag) |
| 49 | | : md_cons_state(mconfig, type, tag), |
| 50 | | m_picocart(*this, "picoslot") { } |
| 51 | | |
| 52 | | optional_device<pico_cart_slot_device> m_picocart; |
| 53 | | UINT8 m_page_register; |
| 54 | | }; |
| 55 | | |
| 56 | | |
| 57 | | |
| 58 | | ADDRESS_MAP_EXTERN( svp_ssp_map, driver_device ); |
| 59 | | ADDRESS_MAP_EXTERN( svp_ext_map, driver_device ); |
| 60 | | extern void svp_init(running_machine &machine); |
| 61 | | |
| 62 | | #endif |