diff options
Diffstat (limited to 'src/mess/includes/cbmb.h')
-rw-r--r-- | src/mess/includes/cbmb.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/mess/includes/cbmb.h b/src/mess/includes/cbmb.h new file mode 100644 index 00000000000..7e7d8061371 --- /dev/null +++ b/src/mess/includes/cbmb.h @@ -0,0 +1,108 @@ +/***************************************************************************** + * + * includes/cbmb.h + * + * Commodore B Series Computer + * + * peter.trauner@jk.uni-linz.ac.at + * + ****************************************************************************/ + +#ifndef CBMB_H_ +#define CBMB_H_ + +#include "video/mc6845.h" +#include "machine/6526cia.h" +#include "machine/ieee488.h" +#include "imagedev/cartslot.h" + +class cbmb_state : public driver_device +{ +public: + cbmb_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_ieee(*this, IEEE488_TAG), + m_basic(*this, "basic"), + m_videoram(*this, "videoram"), + m_kernal(*this, "kernal"), + m_colorram(*this, "colorram"){ } + + required_device<ieee488_device> m_ieee; + required_shared_ptr<UINT8> m_basic; + required_shared_ptr<UINT8> m_videoram; + required_shared_ptr<UINT8> m_kernal; + optional_shared_ptr<UINT8> m_colorram; + + DECLARE_READ8_MEMBER( vic_lightpen_x_cb ); + DECLARE_READ8_MEMBER( vic_lightpen_y_cb ); + DECLARE_READ8_MEMBER( vic_lightpen_button_cb ); + DECLARE_READ8_MEMBER( vic_dma_read ); + DECLARE_READ8_MEMBER( vic_dma_read_color ); + DECLARE_READ8_MEMBER( vic_rdy_cb ); + + /* keyboard lines */ + int m_cbmb_keyline_a; + int m_cbmb_keyline_b; + int m_cbmb_keyline_c; + + int m_p500; + int m_cbm700; + int m_cbm_ntsc; + int m_keyline_a; + int m_keyline_b; + int m_keyline_c; + UINT8 *m_chargen; + int m_old_level; + int m_irq_level; + int m_font; + DECLARE_WRITE8_MEMBER(cbmb_colorram_w); + DECLARE_DRIVER_INIT(cbm600); + DECLARE_DRIVER_INIT(p500); + DECLARE_DRIVER_INIT(cbm600hu); + DECLARE_DRIVER_INIT(cbm600pal); + DECLARE_DRIVER_INIT(cbm700); +}; + +/*----------- defined in machine/cbmb.c -----------*/ + +extern const mos6526_interface cbmb_cia; + + +READ8_DEVICE_HANDLER( cbmb_tpi0_port_a_r ); +WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_a_w ); +READ8_DEVICE_HANDLER( cbmb_tpi0_port_b_r ); +WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_b_w ); + +WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_a ); +WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_b ); +WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_c ); +READ8_DEVICE_HANDLER( cbmb_keyboard_line_a ); +READ8_DEVICE_HANDLER( cbmb_keyboard_line_b ); +READ8_DEVICE_HANDLER( cbmb_keyboard_line_c ); +WRITE_LINE_DEVICE_HANDLER( cbmb_irq ); + +int cbmb_dma_read(running_machine &machine, int offset); +int cbmb_dma_read_color(running_machine &machine, int offset); + +WRITE_LINE_DEVICE_HANDLER( cbmb_change_font ); + +MACHINE_RESET( cbmb ); + +MACHINE_CONFIG_EXTERN( cbmb_cartslot ); + + +/*----------- defined in video/cbmb.c -----------*/ + +VIDEO_START( cbmb_crtc ); +MC6845_UPDATE_ROW( cbm600_update_row ); +MC6845_UPDATE_ROW( cbm700_update_row ); +WRITE_LINE_DEVICE_HANDLER( cbmb_display_enable_changed ); + +void cbm600_vh_init(running_machine &machine); +void cbm700_vh_init(running_machine &machine); +VIDEO_START( cbm700 ); + +void cbmb_vh_set_font(running_machine &machine, int font); + + +#endif /* CBMB_H_ */ |