diff options
Diffstat (limited to 'src/mess/includes/c65.h')
-rw-r--r-- | src/mess/includes/c65.h | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/src/mess/includes/c65.h b/src/mess/includes/c65.h index 0cb898178e0..8b137891791 100644 --- a/src/mess/includes/c65.h +++ b/src/mess/includes/c65.h @@ -1,195 +1 @@ -/***************************************************************************** - * - * includes/c65.h - * - ****************************************************************************/ -#ifndef C65_H_ -#define C65_H_ - -#include "machine/mos6526.h" -#include "bus/cbmiec/cbmiec.h" -#include "imagedev/snapquik.h" -#include "machine/ram.h" -#include "sound/mos6581.h" -#include "video/vic4567.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 -{ - int version; - UINT8 data[4]; -}; - -struct fdc_t -{ - int state; - - UINT8 reg[0x0f]; - - UINT8 buffer[0x200]; - int cpu_pos; - int fdc_pos; - - UINT16 status; - - attotime time; - int head,track,sector; -}; - -struct expansion_ram_t -{ - UINT8 reg; -}; - -class c65_state : public driver_device -{ -public: - c65_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_cia0(*this, "cia_0"), - m_cia1(*this, "cia_1"), - m_sid_r(*this, "sid_r"), - m_vic(*this, "vic3"), - 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_roml_writable(0), - m_maincpu(*this, "maincpu"), - m_ram(*this, RAM_TAG) { } - - required_device<mos6526_device> m_cia0; - required_device<mos6526_device> m_cia1; - required_device<mos6581_device> m_sid_r; - required_device<vic3_device> m_vic; - 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_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; - dma_t m_dma; - int m_dump_dma; - fdc_t m_fdc; - expansion_ram_t m_expansion_ram; - int m_io_on; - int m_io_dc00_on; - int m_cia0_irq, m_cia1_irq; - 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); - UINT32 screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(vic3_raster_irq); - INTERRUPT_GEN_MEMBER(c65_frame_interrupt); - DECLARE_READ8_MEMBER(c65_cia0_port_a_r); - DECLARE_READ8_MEMBER(c65_cia0_port_b_r); - DECLARE_WRITE8_MEMBER(c65_cia0_port_b_w); - 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 ); - DECLARE_WRITE_LINE_MEMBER(c65_cia0_interrupt); - DECLARE_READ8_MEMBER(c65_lightpen_x_cb); - DECLARE_READ8_MEMBER(c65_lightpen_y_cb); - DECLARE_READ8_MEMBER(c65_lightpen_button_cb); - DECLARE_READ8_MEMBER(c65_c64_mem_r); - DECLARE_READ8_MEMBER(c65_dma_read); - DECLARE_READ8_MEMBER(c65_dma_read_color); - DECLARE_WRITE_LINE_MEMBER(c65_vic_interrupt); - DECLARE_WRITE8_MEMBER(c65_bankswitch_interface); - DECLARE_READ8_MEMBER( c65_read_mem ); - DECLARE_WRITE8_MEMBER( c65_write_mem ); - DECLARE_READ8_MEMBER( c65_ram_expansion_r ); - DECLARE_WRITE8_MEMBER( c65_ram_expansion_w ); - DECLARE_WRITE8_MEMBER( c65_write_io ); - DECLARE_WRITE8_MEMBER( c65_write_io_dc00 ); - DECLARE_READ8_MEMBER( c65_read_io ); - DECLARE_READ8_MEMBER( c65_read_io_dc00 ); - DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_c65 ); - - int c64_paddle_read( device_t *device, address_space &space, int which ); - void c65_nmi( ); - void c65_irq( int level ); - void c65_dma_port_w( int offset, int value ); - int c65_dma_port_r( int offset ); - void c65_6511_port_w( int offset, int value ); - int c65_6511_port_r( int offset ); - void c65_fdc_state(void); - void c65_fdc_w( int offset, int data ); - int c65_fdc_r( int offset ); - void c65_bankswitch( ); - void c65_colorram_write( int offset, int value ); - void c65_common_driver_init( ); - - required_device<cpu_device> m_maincpu; - required_device<ram_device> m_ram; -}; - -MACHINE_CONFIG_EXTERN( c64_cartslot ); - -#endif /* C65_H_ */ |