|
|
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 SRAMDevice ! 11: : public IODevice ! 12: { ! 13: typedef IODevice inherited; ! 14: private: ! 15: static const uint32 baseaddr = 0xed0000; ! 16: ! 17: public: ! 18: SRAMDevice(); ! 19: virtual ~SRAMDevice(); ! 20: ! 21: virtual bool Init(); ! 22: ! 23: virtual uint64 Read8(uint32 addr); ! 24: virtual uint64 Read16(uint32 addr); ! 25: virtual uint64 Write8(uint32 addr, uint32 data); ! 26: virtual uint64 Write16(uint32 addr, uint32 data); ! 27: virtual uint64 Peek8(uint32 addr); ! 28: ! 29: void write_enable(bool value); ! 30: ! 31: private: ! 32: std::string filename; ! 33: int fd = 0; ! 34: ! 35: // バイト順はファイルイメージそのまま ! 36: uint8 *mem = NULL; ! 37: ! 38: // mmap する長さ ! 39: int memlen = 0; ! 40: ! 41: bool writeable = false; ! 42: }; ! 43: ! 44: extern SRAMDevice *gSRAM;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.