1 // license:BSD-3-Clause
2 // copyright-holders:Curt Coder
3 /**********************************************************************
4 
5     RCA VIP ASCII Keyboard Interface VP-620 emulation
6 
7 **********************************************************************/
8 
9 #ifndef MAME_BUS_VIP_VP620_H
10 #define MAME_BUS_VIP_VP620_H
11 
12 #pragma once
13 
14 #include "byteio.h"
15 #include "machine/keyboard.h"
16 
17 
18 
19 //**************************************************************************
20 //  TYPE DEFINITIONS
21 //**************************************************************************
22 
23 // ======================> vp620_device
24 
25 class vp620_device : public device_t,
26 						public device_vip_byteio_port_interface
27 {
28 public:
29 	// construction/destruction
30 	vp620_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
31 
32 protected:
33 	// device-level overrides
34 	virtual void device_start() override;
35 	virtual void device_add_mconfig(machine_config &config) override;
36 
37 	// device_vip_byteio_port_interface overrides
38 	virtual uint8_t vip_in_r() override;
39 	virtual int vip_ef4_r() override;
40 
41 private:
42 	void kb_w(uint8_t data);
43 
44 	uint8_t m_keydata;
45 	int m_keystb;
46 };
47 
48 
49 // device type definition
50 DECLARE_DEVICE_TYPE(VP620, vp620_device)
51 
52 #endif // MAME_BUS_VIP_VP620_H
53