diff options
Diffstat (limited to 'src/mame/includes/dragon.h')
-rw-r--r-- | src/mame/includes/dragon.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/mame/includes/dragon.h b/src/mame/includes/dragon.h new file mode 100644 index 00000000000..7006d37e68d --- /dev/null +++ b/src/mame/includes/dragon.h @@ -0,0 +1,72 @@ +// license:BSD-3-Clause +// copyright-holders:Nathan Woods +/*************************************************************************** + + dragon.h + + Dragon Family + +***************************************************************************/ + +#pragma once + +#ifndef __DRAGON__ +#define __DRAGON__ + + +#include "includes/coco12.h" +#include "imagedev/printer.h" +#include "machine/mos6551.h" + + + +//************************************************************************** +// MACROS / CONSTANTS +//************************************************************************** + +#define PRINTER_TAG "printer" +#define ACIA_TAG "acia" + + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +class dragon_state : public coco12_state +{ +public: + dragon_state(const machine_config &mconfig, device_type type, const char *tag) + : coco12_state(mconfig, type, tag), + m_printer(*this, PRINTER_TAG) + { + } + + required_device<printer_image_device> m_printer; + +protected: + virtual void pia1_pa_changed(UINT8 data); +}; + + +/* dragon64 has an ACIA chip */ +class dragon64_state : public dragon_state +{ +public: + dragon64_state(const machine_config &mconfig, device_type type, const char *tag) + : dragon_state(mconfig, type, tag), + m_acia(*this, ACIA_TAG) + { + } + + required_device<mos6551_device> m_acia; + +protected: + virtual DECLARE_READ8_MEMBER( ff00_read ); + virtual DECLARE_WRITE8_MEMBER( ff00_write ); + + virtual void pia1_pb_changed(UINT8 data); + void page_rom(bool romswitch); +}; + +#endif /* __DRAGON__ */ |