|
|
1.1 root 1: //
2: // nono
1.1.1.2 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
1.1.1.8 root 7: //
8: // X680x0 の各種 ROM
9: //
10:
1.1 root 11: #pragma once
12:
1.1.1.2 root 13: #include "rom.h"
1.1 root 14:
1.1.1.5 root 15: class IPLROM1Device;
16:
1.1.1.7 root 17: class IPLROM0Device : public IODevice
1.1.1.5 root 18: {
1.1.1.7 root 19: using inherited = IODevice;
1.1.1.5 root 20: public:
21: IPLROM0Device();
1.1.1.10 root 22: ~IPLROM0Device() override;
1.1.1.5 root 23:
24: bool Init() override;
1.1.1.8 root 25: void ResetHard(bool poweron) override;
1.1.1.5 root 26:
1.1.1.11! root 27: busdata Read(busaddr addr) override;
! 28: busdata Peek1(uint32 addr) override;
1.1.1.5 root 29:
30: private:
1.1.1.7 root 31: uint32 ReadDecoder(uint32 addr);
32:
1.1.1.5 root 33: IPLROM1Device *iplrom1 {};
34: };
35:
1.1.1.6 root 36: class IPLROM1Device : public ROMDevice
1.1 root 37: {
1.1.1.2 root 38: using inherited = ROMDevice;
1.1 root 39: public:
40: IPLROM1Device();
1.1.1.10 root 41: ~IPLROM1Device() override;
1.1 root 42:
1.1.1.2 root 43: bool Init() override;
1.1 root 44: };
45:
1.1.1.6 root 46: class IPLROM2Device : public ROMDevice
1.1 root 47: {
1.1.1.2 root 48: using inherited = ROMDevice;
1.1 root 49: public:
50: IPLROM2Device();
1.1.1.10 root 51: ~IPLROM2Device() override;
1.1 root 52:
1.1.1.2 root 53: bool Init() override;
1.1 root 54: };
55:
1.1.1.6 root 56: class CGROMDevice : public ROMDevice
1.1 root 57: {
1.1.1.2 root 58: using inherited = ROMDevice;
1.1 root 59: public:
60: CGROMDevice();
1.1.1.10 root 61: ~CGROMDevice() override;
1.1 root 62:
1.1.1.2 root 63: bool Init() override;
1.1 root 64: };
1.1.1.3 root 65:
1.1.1.9 root 66: static inline CGROMDevice *GetCGROMDevice() {
67: return Object::GetObject<CGROMDevice>(OBJ_CGROM);
68: }
69: static inline IPLROM0Device *GetIPLROM0Device() {
70: return Object::GetObject<IPLROM0Device>(OBJ_IPLROM_BOOT);
71: }
72: static inline IPLROM1Device *GetIPLROM1Device() {
73: return Object::GetObject<IPLROM1Device>(OBJ_IPLROM1);
74: }
75: static inline ROMDevice *GetIPLROM2Device() {
76: return Object::GetObject<ROMDevice>(OBJ_IPLROM2);
77: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.