1 // license:BSD-3-Clause 2 // copyright-holders:Curt Coder 3 #ifndef MAME_INCLUDES_PROF180X_H 4 #define MAME_INCLUDES_PROF180X_H 5 6 #pragma once 7 8 #include "bus/centronics/ctronics.h" 9 10 #define HD64180_TAG "hd64180" 11 #define FDC9268_TAG "fdc9268" 12 #define FDC9229_TAG "fdc9229" 13 #define MK3835_TAG "mk3835" 14 #define SCREEN_TAG "screen" 15 #define CENTRONICS_TAG "centronics" 16 17 class prof180x_state : public driver_device 18 { 19 public: prof180x_state(const machine_config & mconfig,device_type type,const char * tag)20 prof180x_state(const machine_config &mconfig, device_type type, const char *tag) 21 : driver_device(mconfig, type, tag) 22 , m_centronics(*this, CENTRONICS_TAG) 23 { 24 } 25 26 void prof180x(machine_config &config); 27 28 private: 29 required_device<centronics_device> m_centronics; 30 31 virtual void machine_start() override; 32 virtual void machine_reset() override; 33 34 uint8_t read(offs_t offset); 35 void write(offs_t offset, uint8_t data); 36 37 uint8_t status0_r(); 38 uint8_t status1_r(); 39 uint8_t status_r(offs_t offset); 40 41 DECLARE_WRITE_LINE_MEMBER(c0_flag_w); 42 DECLARE_WRITE_LINE_MEMBER(c1_flag_w); 43 DECLARE_WRITE_LINE_MEMBER(c2_flag_w); 44 DECLARE_WRITE_LINE_MEMBER(mini_flag_w); 45 DECLARE_WRITE_LINE_MEMBER(mm0_flag_w); 46 DECLARE_WRITE_LINE_MEMBER(rtc_ce_w); 47 DECLARE_WRITE_LINE_MEMBER(peps_flag_w); 48 DECLARE_WRITE_LINE_MEMBER(mm1_flag_w); 49 50 uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); 51 52 int m_c0; 53 int m_c1; 54 int m_c2; 55 int m_mm0; 56 int m_mm1; 57 void prof180x_io(address_map &map); 58 void prof180x_mem(address_map &map); 59 }; 60 61 #endif // MAME_INCLUDES_PROF180X_H 62