OSDN Git Service

[VM] Add EMU::set_vm_screen_lines() to some VMs.
[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         int _SCREEN_WIDTH;
36         int _SCREEN_HEIGHT;
37         
38         uint8_t status_r();
39         void control_w(uint8_t data);
40         uint8_t data_r();
41         void data_w(uint8_t data);
42         inline void count_up_or_down();
43         
44 public:
45         HD44102(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
46         {
47                 _SCREEN_WIDTH = 192;
48                 _SCREEN_HEIGHT = 64;
49                 set_device_name(_T("HD44102 LCD Controller"));
50         }
51         ~HD44102() {}
52         
53         // common functions
54         void initialize();
55         void reset();
56 //      void write_signal(int id, uint32_t data, uint32_t mask);
57         void save_state(FILEIO* state_fio);
58         bool load_state(FILEIO* state_fio);
59         
60         // unique functions
61         uint8_t read(uint32_t offset);
62         void write(uint32_t offset, uint8_t data);
63         void screen_update(int m_sx, int m_sy, bool reverse);
64 };
65
66 #endif