|
|
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.10! root 27: busdata Read8(uint32 addr) override;
! 28: busdata Read16(uint32 addr) override;
! 29: busdata Read32(uint32 addr) override;
! 30: busdata Peek8(uint32 addr) override;
1.1.1.5 root 31:
32: private:
1.1.1.7 root 33: uint32 ReadDecoder(uint32 addr);
34:
1.1.1.5 root 35: IPLROM1Device *iplrom1 {};
36: };
37:
1.1.1.6 root 38: class IPLROM1Device : public ROMDevice
1.1 root 39: {
1.1.1.2 root 40: using inherited = ROMDevice;
1.1 root 41: public:
42: IPLROM1Device();
1.1.1.10! root 43: ~IPLROM1Device() override;
1.1 root 44:
1.1.1.2 root 45: bool Init() override;
1.1 root 46: };
47:
1.1.1.6 root 48: class IPLROM2Device : public ROMDevice
1.1 root 49: {
1.1.1.2 root 50: using inherited = ROMDevice;
1.1 root 51: public:
52: IPLROM2Device();
1.1.1.10! root 53: ~IPLROM2Device() override;
1.1 root 54:
1.1.1.2 root 55: bool Init() override;
1.1 root 56: };
57:
1.1.1.6 root 58: class CGROMDevice : public ROMDevice
1.1 root 59: {
1.1.1.2 root 60: using inherited = ROMDevice;
1.1 root 61: public:
62: CGROMDevice();
1.1.1.10! root 63: ~CGROMDevice() override;
1.1 root 64:
1.1.1.2 root 65: bool Init() override;
1.1 root 66: };
1.1.1.3 root 67:
1.1.1.9 root 68: static inline CGROMDevice *GetCGROMDevice() {
69: return Object::GetObject<CGROMDevice>(OBJ_CGROM);
70: }
71: static inline IPLROM0Device *GetIPLROM0Device() {
72: return Object::GetObject<IPLROM0Device>(OBJ_IPLROM_BOOT);
73: }
74: static inline IPLROM1Device *GetIPLROM1Device() {
75: return Object::GetObject<IPLROM1Device>(OBJ_IPLROM1);
76: }
77: static inline ROMDevice *GetIPLROM2Device() {
78: return Object::GetObject<ROMDevice>(OBJ_IPLROM2);
79: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.