1 // license:BSD-3-Clause 2 // copyright-holders:Miodrag Milanovic 3 /***************************************************************************** 4 * 5 * includes/bk.h 6 * 7 ****************************************************************************/ 8 #ifndef MAME_INCLUDES_BK_H 9 #define MAME_INCLUDES_BK_H 10 11 #pragma once 12 13 #include "cpu/t11/t11.h" 14 #include "imagedev/cassette.h" 15 16 class bk_state : public driver_device 17 { 18 public: bk_state(const machine_config & mconfig,device_type type,const char * tag)19 bk_state(const machine_config &mconfig, device_type type, const char *tag) 20 : driver_device(mconfig, type, tag) 21 , m_vram(*this, "videoram") 22 , m_maincpu(*this, "maincpu") 23 , m_cassette(*this, "cassette") 24 , m_io_keyboard(*this, "LINE%u", 0U) 25 { } 26 27 void bk0010(machine_config &config); 28 void bk0010fd(machine_config &config); 29 30 private: 31 uint16_t m_scroll; 32 uint16_t m_kbd_state; 33 uint16_t m_key_code; 34 uint16_t m_key_pressed; 35 uint16_t m_key_irq_vector; 36 uint16_t m_drive; 37 emu_timer *m_kbd_timer; 38 uint16_t key_state_r(); 39 uint16_t key_code_r(); 40 uint16_t vid_scroll_r(); 41 uint16_t key_press_r(); 42 void key_state_w(uint16_t data); 43 void vid_scroll_w(uint16_t data); 44 void key_press_w(uint16_t data); 45 uint16_t floppy_cmd_r(); 46 void floppy_cmd_w(uint16_t data); 47 uint16_t floppy_data_r(); 48 void floppy_data_w(uint16_t data); 49 virtual void machine_start() override; 50 virtual void machine_reset() override; 51 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 52 TIMER_CALLBACK_MEMBER(keyboard_callback); 53 uint8_t irq_callback(offs_t offset); 54 required_shared_ptr<uint16_t> m_vram; 55 required_device<t11_device> m_maincpu; 56 required_device<cassette_image_device> m_cassette; 57 required_ioport_array<12> m_io_keyboard; 58 void bk0010_mem(address_map &map); 59 void bk0010fd_mem(address_map &map); 60 }; 61 62 #endif // MAME_INCLUDES_BK_H 63