OSDN Git Service

[Qt][OpenGL][WIP] GL4.3: Implementing texture buffer with mapping.
[csp-qt/common_source_project-fm7.git] / source / src / vm / hd6301.h
1 #ifndef _HD6301_H_ 
2 #define _HD6301_H_
3
4 #include "mc6801.h"
5 #include "device.h"
6
7 class DEBUGGER;
8 class FIFO;
9 //#endif
10 class HD6301 : public MC6801
11 {
12 protected:
13 #define XX 5
14         const uint8_t cycles[256] = {
15 //#elif defined(HAS_HD6301)
16                 XX, 1,XX,XX, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
17                 1, 1,XX,XX,XX,XX, 1, 1, 2, 2, 4, 1,XX,XX,XX,XX,
18                 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
19                 1, 1, 3, 3, 1, 1, 4, 4, 4, 5, 1,10, 5, 7, 9,12,
20                 1,XX,XX, 1, 1,XX, 1, 1, 1, 1, 1,XX, 1, 1,XX, 1,
21                 1,XX,XX, 1, 1,XX, 1, 1, 1, 1, 1,XX, 1, 1,XX, 1,
22                 6, 7, 7, 6, 6, 7, 6, 6, 6, 6, 6, 5, 6, 4, 3, 5,
23                 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 6, 4, 3, 5,
24                 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 5, 3, 3,
25                 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 4, 5, 4, 4,
26                 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5,
27                 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 5, 5,
28                 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3,XX, 3, 3,
29                 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4,
30                 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5,
31                 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5
32 //#elif defined(HAS_MB8861)
33         };
34 #undef XX       
35         uint16_t latch09;
36
37         void mc6801_io_w(uint32_t offset, uint32_t data) override;
38         void insn(uint8_t code) override;
39         
40         void undoc1();
41         void undoc2();
42         void xgdx();
43
44         void slp();
45         void aim_ix();
46         void oim_ix();
47         void eim_ix();
48         void tim_ix();
49         void aim_di();
50         void oim_di();
51         void eim_di();
52         void tim_di();
53
54         void illegal() override;
55                 
56 public:
57         HD6301(VM* parent_vm, EMU* parent_emu) : MC6801(parent_vm, parent_emu)
58         {
59                 set_device_name(_T("HD6301 MPU"));
60         }
61         ~HD6301() {}
62         void decl_state();
63         void save_state(FILEIO* state_fio) override;
64         bool load_state(FILEIO* state_fio) override;
65
66         int debug_dasm(uint32_t pc, _TCHAR *buffer, size_t buffer_len) override;
67
68 };
69 #endif