diff options
author | 2013-03-07 15:28:25 +0000 | |
---|---|---|
committer | 2013-03-07 15:28:25 +0000 | |
commit | 76ac08a0b805820f12be6dac3daee17f8eb26953 (patch) | |
tree | 74a1a81d8e2a6cf242d498978b3573015c4d7a0c /src/mess/includes/c65.h | |
parent | 7e0b63efa9978e8611337c4ac80ffc293bb527ee (diff) |
Moved some files to where they belong. (nw)
Diffstat (limited to 'src/mess/includes/c65.h')
-rw-r--r-- | src/mess/includes/c65.h | 81 |
1 files changed, 75 insertions, 6 deletions
diff --git a/src/mess/includes/c65.h b/src/mess/includes/c65.h index b60fc347f54..aa8084ac063 100644 --- a/src/mess/includes/c65.h +++ b/src/mess/includes/c65.h @@ -7,8 +7,23 @@ #ifndef C65_H_ #define C65_H_ -#include "includes/c64_legacy.h" #include "machine/6526cia.h" +#include "machine/cbmiec.h" +#include "imagedev/cartslot.h" + +#define C64_MAX_ROMBANK 64 // .crt files contain multiple 'CHIPs', i.e. rom banks (of variable size) with headers. Known carts have at most 64 'CHIPs'. + +struct C64_ROM { + int addr, size, index, start; +}; + +struct c64_cart_t { + C64_ROM bank[C64_MAX_ROMBANK]; + INT8 game; + INT8 exrom; + UINT8 mapper; + UINT8 n_banks; +}; struct dma_t { @@ -37,23 +52,62 @@ struct expansion_ram_t UINT8 reg; }; -class c65_state : public legacy_c64_state +class c65_state : public driver_device { public: c65_state(const machine_config &mconfig, device_type type, const char *tag) - : legacy_c64_state(mconfig, type, tag), + : driver_device(mconfig, type, tag), + m_iec(*this, CBM_IEC_TAG), + m_colorram(*this, "colorram"), + m_basic(*this, "basic"), + m_chargen(*this, "chargen"), + m_kernal(*this, "kernal"), m_c65_chargen(*this, "c65_chargen"), - m_interface(*this, "interface") + m_interface(*this, "interface"), + m_roml_writable(0) { } + optional_device<cbm_iec_device> m_iec; + + required_shared_ptr<UINT8> m_colorram; + required_shared_ptr<UINT8> m_basic; + required_shared_ptr<UINT8> m_chargen; + required_shared_ptr<UINT8> m_kernal; required_shared_ptr<UINT8> m_c65_chargen; required_shared_ptr<UINT8> m_interface; - int m_charset_select; + int m_old_level; + int m_old_data; + int m_old_exrom; + int m_old_game; + UINT8 m_vicirq; + emu_timer *m_datasette_timer; + emu_timer *m_cartridge_timer; + UINT8 *m_memory; + int m_pal; + int m_tape_on; + UINT8 *m_c64_roml; + UINT8 *m_c64_romh; + UINT8 *m_vicaddr; + UINT8 *m_c128_vicaddr; + UINT8 m_game; + UINT8 m_exrom; + UINT8 *m_io_mirror; + UINT8 m_port_data; + UINT8 *m_roml; + UINT8 *m_romh; + int m_roml_writable; + int m_ultimax; + int m_cia1_on; + int m_io_enabled; + int m_is_sx64; + UINT8 *m_io_ram_w_ptr; + UINT8 *m_io_ram_r_ptr; + c64_cart_t m_cart; + int m_nmilevel; int m_charset_select; int m_c64mode; UINT8 m_6511_port; UINT8 m_keyline; int m_old_value; - int m_nmilevel; dma_t m_dma; int m_dump_dma; fdc_t m_fdc; @@ -63,6 +117,14 @@ public: DECLARE_DRIVER_INIT(c65); DECLARE_DRIVER_INIT(c65pal); + DECLARE_READ8_MEMBER( c64_lightpen_x_cb ); + DECLARE_READ8_MEMBER( c64_lightpen_y_cb ); + DECLARE_READ8_MEMBER( c64_lightpen_button_cb ); + DECLARE_READ8_MEMBER( c64_dma_read ); + DECLARE_READ8_MEMBER( c64_dma_read_ultimax ); + DECLARE_READ8_MEMBER( c64_dma_read_color ); + DECLARE_WRITE_LINE_MEMBER( c64_vic_interrupt ); + DECLARE_READ8_MEMBER( c64_rdy_cb ); DECLARE_READ8_MEMBER( sid_potx_r ); DECLARE_READ8_MEMBER( sid_poty_r ); DECLARE_MACHINE_START(c65); @@ -76,6 +138,9 @@ public: DECLARE_READ8_MEMBER(c65_cia1_port_a_r); DECLARE_WRITE8_MEMBER(c65_cia1_port_a_w); DECLARE_WRITE_LINE_MEMBER(c65_cia1_interrupt); + void c64_legacy_driver_init(); + DECLARE_DEVICE_IMAGE_LOAD_MEMBER( c64_cart ); + DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( c64_cart ); }; @@ -99,4 +164,8 @@ void c65_bankswitch_interface(running_machine &machine, int value); extern const legacy_mos6526_interface c65_cia0; extern const legacy_mos6526_interface c65_cia1; +DECLARE_READ8_HANDLER ( c64_colorram_read ); +DECLARE_WRITE8_HANDLER ( c64_colorram_write ); +MACHINE_CONFIG_EXTERN( c64_cartslot ); + #endif /* C65_H_ */ |