OSDN Git Service

3237e6449696dc4298e83f1f7ec80be8bc3c0c4a
[csp-qt/common_source_project-fm7.git] / source / src / vm / hd44102.h
1 /*
2         Skelton for retropc emulator
3
4         Origin : MAME
5         Author : Takeda.Toshiya
6         Date   : 2017.03.07-
7
8         [ HD44102 ]
9 */
10
11 #ifndef _HD44102_H_
12 #define _HD44102_H_
13
14 #include "vm.h"
15 #include "../emu.h"
16 #include "device.h"
17
18 //#define SIG_HD44102_CS2       0
19
20 class HD44102 : public DEVICE
21 {
22 private:
23         uint8_t m_ram[4][50];            // display memory
24         
25         uint8_t m_status;                // status register
26         uint8_t m_output;                // output register
27         
28 //      int m_cs2;                      // chip select
29         int m_page;                     // display start page
30         int m_x;                        // X address
31         int m_y;                        // Y address
32         
33 //      int m_sx;
34 //      int m_sy;
35         
36         uint8_t status_r();
37         void control_w(uint8_t data);
38         uint8_t data_r();
39         void data_w(uint8_t data);
40         inline void count_up_or_down();
41         
42 public:
43         HD44102(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
44         {
45                 set_device_name(_T("HD44102 LCD Controller"));
46         }
47         ~HD44102() {}
48         
49         // common functions
50         void initialize();
51         void reset();
52 //      void write_signal(int id, uint32_t data, uint32_t mask);
53         void save_state(FILEIO* state_fio);
54         bool load_state(FILEIO* state_fio);
55         
56         // unique functions
57         uint8_t read(uint32_t offset);
58         void write(uint32_t offset, uint8_t data);
59         void screen_update(int m_sx, int m_sy, bool reverse);
60 };
61
62 #endif