|
|
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 SpriteDevice ! 11: : public IODevice ! 12: { ! 13: typedef IODevice inherited; ! 14: private: ! 15: static const int baseaddr = 0xeb0000; ! 16: ! 17: struct sprite_scroll { ! 18: uint16 xpos; ! 19: uint16 ypos; ! 20: uint16 col; ! 21: uint16 prw; ! 22: } __attribute__((__packed__)); ! 23: ! 24: struct sprite_ctrl { ! 25: struct sprite_scroll sprite[128]; ! 26: ! 27: uint16 bg0x; ! 28: uint16 bg0y; ! 29: uint16 bg1x; ! 30: uint16 bg1y; ! 31: uint16 bgctrl; ! 32: ! 33: uint16 htotal; // 水平トータル ! 34: uint16 hdisp; // 水平表示位置 ! 35: uint16 vdisp; // 垂直表示位置 ! 36: uint16 res; // 解像度 ! 37: }; ! 38: ! 39: public: ! 40: SpriteDevice(); ! 41: virtual ~SpriteDevice(); ! 42: ! 43: virtual uint64 Read8(uint32 addr); ! 44: virtual uint64 Read16(uint32 addr); ! 45: virtual uint64 Write8(uint32 addr, uint32 data); ! 46: virtual uint64 Write16(uint32 addr, uint32 data); ! 47: virtual uint64 Peek8(uint32 addr); ! 48: ! 49: private: ! 50: struct sprite_ctrl reg {}; ! 51: uint8 *mem = NULL; ! 52: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.