summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/samcoupe.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/samcoupe.h')
-rw-r--r--src/mame/includes/samcoupe.h221
1 files changed, 0 insertions, 221 deletions
diff --git a/src/mame/includes/samcoupe.h b/src/mame/includes/samcoupe.h
deleted file mode 100644
index 319a8d1b41a..00000000000
--- a/src/mame/includes/samcoupe.h
+++ /dev/null
@@ -1,221 +0,0 @@
-// license:GPL-2.0+
-// copyright-holders:Lee Hammerton, Dirk Best
-/*****************************************************************************
- *
- * includes/coupe.h
- *
- * SAM Coupe
- *
- * Driver by Lee Hammerton
- *
- ****************************************************************************/
-
-#ifndef MAME_INCLUDES_SAMCOUPE_H
-#define MAME_INCLUDES_SAMCOUPE_H
-
-#pragma once
-
-#include "bus/centronics/ctronics.h"
-#include "imagedev/cassette.h"
-#include "imagedev/floppy.h"
-#include "machine/msm6242.h"
-#include "machine/ram.h"
-#include "machine/wd_fdc.h"
-#include "sound/spkrdev.h"
-#include "emupal.h"
-#include "screen.h"
-
-/* screen dimensions */
-#define SAM_BLOCK 8
-
-#define SAM_TOTAL_WIDTH SAM_BLOCK*96
-#define SAM_TOTAL_HEIGHT 312
-#define SAM_SCREEN_WIDTH SAM_BLOCK*64
-#define SAM_SCREEN_HEIGHT 192
-#define SAM_BORDER_LEFT SAM_BLOCK*4
-#define SAM_BORDER_RIGHT SAM_BLOCK*4
-#define SAM_BORDER_TOP 37
-#define SAM_BORDER_BOTTOM 46
-
-/* interrupt sources */
-#define SAM_LINE_INT 0x01
-#define SAM_MOUSE_INT 0x02
-#define SAM_MIDIIN_INT 0x04
-#define SAM_FRAME_INT 0x08
-#define SAM_MIDIOUT_INT 0x10
-
-
-class samcoupe_state : public driver_device
-{
-public:
- samcoupe_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_screen(*this, "screen"),
- m_speaker(*this, "speaker"),
- m_cassette(*this, "cassette"),
- m_lpt1(*this, "lpt1"),
- m_lpt2(*this, "lpt2"),
- m_ram(*this, RAM_TAG),
- m_rtc(*this, "sambus_clock"),
- m_fdc(*this, "wd1772"),
- m_wd1772_0(*this, "wd1772:0"),
- m_wd1772_1(*this, "wd1772:1"),
- m_region_maincpu(*this, "maincpu"),
- m_keyboard_row_fe(*this, "keyboard_row_fe"),
- m_keyboard_row_fd(*this, "keyboard_row_fd"),
- m_keyboard_row_fb(*this, "keyboard_row_fb"),
- m_keyboard_row_f7(*this, "keyboard_row_f7"),
- m_keyboard_row_ef(*this, "keyboard_row_ef"),
- m_keyboard_row_df(*this, "keyboard_row_df"),
- m_keyboard_row_bf(*this, "keyboard_row_bf"),
- m_keyboard_row_7f(*this, "keyboard_row_7f"),
- m_keyboard_row_ff(*this, "keyboard_row_ff"),
- m_mouse_buttons(*this, "mouse_buttons"),
- m_io_mouse_x(*this, "mouse_x"),
- m_io_mouse_y(*this, "mouse_y"),
- m_config(*this, "config"),
- m_joy1(*this, "joy_1"),
- m_joy2(*this, "joy_2")
- {
- sam_bank_read_ptr[0] = nullptr;
- sam_bank_write_ptr[0] = nullptr;
- sam_bank_read_ptr[1] = nullptr;
- sam_bank_write_ptr[1] = nullptr;
- sam_bank_read_ptr[2] = nullptr;
- sam_bank_write_ptr[2] = nullptr;
- sam_bank_read_ptr[3] = nullptr;
- sam_bank_write_ptr[3] = nullptr;
- }
-
- void samcoupe(machine_config &config);
-
-protected:
- enum
- {
- TIMER_IRQ_OFF,
- TIMER_MOUSE_RESET,
- TIMER_VIDEO_UPDATE
- };
-
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
-
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
-
-private:
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- bitmap_ind16 m_bitmap;
-
- emu_timer *m_video_update_timer;
-
- uint8_t m_lmpr, m_hmpr, m_vmpr; /* memory pages */
- uint8_t m_lext, m_hext; /* extended memory page */
- uint8_t m_border; /* border */
- uint8_t m_clut[16]; /* color lookup table, 16 entries */
- uint8_t m_line_int; /* line interrupt */
- uint8_t m_status; /* status register */
-
- /* attribute */
- uint8_t m_attribute;
-
- /* mouse */
- int m_mouse_index;
- emu_timer *m_mouse_reset;
- uint8_t m_mouse_data[9];
- int m_mouse_x, m_mouse_y;
- uint8_t *m_videoram;
- void samcoupe_ext_mem_w(offs_t offset, uint8_t data);
- uint8_t samcoupe_disk_r(offs_t offset);
- void samcoupe_disk_w(offs_t offset, uint8_t data);
- uint8_t samcoupe_pen_r(offs_t offset);
- void samcoupe_clut_w(offs_t offset, uint8_t data);
- uint8_t samcoupe_status_r(offs_t offset);
- void samcoupe_line_int_w(uint8_t data);
- uint8_t samcoupe_lmpr_r();
- void samcoupe_lmpr_w(uint8_t data);
- uint8_t samcoupe_hmpr_r();
- void samcoupe_hmpr_w(uint8_t data);
- uint8_t samcoupe_vmpr_r();
- void samcoupe_vmpr_w(uint8_t data);
- uint8_t samcoupe_midi_r();
- void samcoupe_midi_w(uint8_t data);
- uint8_t samcoupe_keyboard_r(offs_t offset);
- void samcoupe_border_w(uint8_t data);
- uint8_t samcoupe_attributes_r();
- void samcoupe_palette(palette_device &palette) const;
- INTERRUPT_GEN_MEMBER(samcoupe_frame_interrupt);
- TIMER_CALLBACK_MEMBER(irq_off);
- TIMER_CALLBACK_MEMBER(samcoupe_mouse_reset);
- TIMER_CALLBACK_MEMBER(sam_video_update_callback);
- uint8_t samcoupe_lpt1_busy_r();
- void samcoupe_lpt1_strobe_w(uint8_t data);
- uint8_t samcoupe_lpt2_busy_r();
- void samcoupe_lpt2_strobe_w(uint8_t data);
- uint8_t samcoupe_rtc_r(offs_t offset);
- void samcoupe_rtc_w(offs_t offset, uint8_t data);
-
- uint8_t sam_bank1_r(offs_t offset);
- void sam_bank1_w(offs_t offset, uint8_t data);
- uint8_t sam_bank2_r(offs_t offset);
- void sam_bank2_w(offs_t offset, uint8_t data);
- uint8_t sam_bank3_r(offs_t offset);
- void sam_bank3_w(offs_t offset, uint8_t data);
- uint8_t sam_bank4_r(offs_t offset);
- void sam_bank4_w(offs_t offset, uint8_t data);
-
- uint8_t* sam_bank_read_ptr[4];
- uint8_t* sam_bank_write_ptr[4];
- DECLARE_FLOPPY_FORMATS( floppy_formats );
- required_device<cpu_device> m_maincpu;
- required_device<screen_device> m_screen;
- required_device<speaker_sound_device> m_speaker;
- required_device<cassette_image_device> m_cassette;
- required_device<centronics_device> m_lpt1;
- required_device<centronics_device> m_lpt2;
- required_device<ram_device> m_ram;
- required_device<msm6242_device> m_rtc;
- required_device<wd1772_device> m_fdc;
- required_device<floppy_connector> m_wd1772_0;
- required_device<floppy_connector> m_wd1772_1;
- required_memory_region m_region_maincpu;
- required_ioport m_keyboard_row_fe;
- required_ioport m_keyboard_row_fd;
- required_ioport m_keyboard_row_fb;
- required_ioport m_keyboard_row_f7;
- required_ioport m_keyboard_row_ef;
- required_ioport m_keyboard_row_df;
- required_ioport m_keyboard_row_bf;
- required_ioport m_keyboard_row_7f;
- required_ioport m_keyboard_row_ff;
- required_ioport m_mouse_buttons;
- required_ioport m_io_mouse_x;
- required_ioport m_io_mouse_y;
- required_ioport m_config;
- required_ioport m_joy1;
- required_ioport m_joy2;
-
- void draw_mode4_line(int y, int hpos);
- void draw_mode3_line(int y, int hpos);
- void draw_mode12_block(bitmap_ind16 &bitmap, int vpos, int hpos, uint8_t mask);
- void draw_mode2_line(int y, int hpos);
- void draw_mode1_line(int y, int hpos);
- void samcoupe_update_bank(address_space &space, int bank_num, uint8_t *memory, int is_readonly);
- void samcoupe_install_ext_mem(address_space &space);
- void samcoupe_update_memory(address_space &space);
- uint8_t samcoupe_mouse_r();
- void samcoupe_irq(uint8_t src);
-
- DECLARE_WRITE_LINE_MEMBER(write_lpt1_busy);
- DECLARE_WRITE_LINE_MEMBER(write_lpt2_busy);
-
- int m_lpt1_busy;
- int m_lpt2_busy;
-
- void samcoupe_io(address_map &map);
- void samcoupe_mem(address_map &map);
-};
-
-#endif // MAME_INCLUDES_SAMCOUPE_H