|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2017 [email protected]
4: //
5:
6: #pragma once
7:
8: #include "device.h"
9:
10: class ViconDevice
11: : public IODevice
12: {
13: typedef IODevice inherited;
14: private:
15: static const int baseaddr = 0xe82000;
16:
17: struct vicon {
18: uint16 r0;
19: uint16 r1;
20: uint16 r2;
21: };
22:
23: public:
24: ViconDevice();
25: virtual ~ViconDevice();
26:
27: virtual uint64 Read8(uint32 addr);
28: virtual uint64 Read16(uint32 addr);
29: virtual uint64 Write8(uint32 addr, uint32 data);
30: virtual uint64 Write16(uint32 addr, uint32 data);
31: virtual uint64 Peek8(uint32 addr);
32:
33: // パレットのバッファアドレスを取得
34: // レンダラとかからの参照用?
35: const uint16 *GetPalette() const { return &palette.w[0]; }
36:
37: private:
38: uint32 read_r0();
39: uint32 read_r1H();
40: uint32 read_r1L();
41: uint32 read_r2H();
42: uint32 read_r2L();
43: void write_r0(uint32 data);
44: void write_r1H(uint32 data);
45: void write_r1L(uint32 data);
46: void write_r2H(uint32 data);
47: void write_r2L(uint32 data);
48:
49: struct vicon vicon {};
50: union {
51: uint8 b[1024];
52: uint16 w[512];
53: } palette {};
54: };
55:
56: extern ViconDevice *gVicon;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.