|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
5: //
6:
1.1.1.7 ! root 7: //
! 8: // PROM (LUNA-I, LUNA88K 共通)
! 9: //
! 10:
1.1 root 11: #pragma once
12:
13: #include "rom.h"
14:
1.1.1.6 root 15: class PROMDevice;
16:
17: class PROM0Device : public IODevice
18: {
19: using inherited = IODevice;
20: public:
21: PROM0Device();
22: virtual ~PROM0Device() override;
23:
24: bool Init() override;
1.1.1.7 ! root 25: void ResetHard(bool poweron) override;
1.1.1.6 root 26:
27: uint64 Read8(uint32 addr) override;
28: uint64 Read16(uint32 addr) override;
29: uint64 Read32(uint32 addr) override;
30: uint64 Write8(uint32 addr, uint32 data) override;
31: uint64 Write16(uint32 addr, uint32 data) override;
32: uint64 Write32(uint32 addr, uint32 data) override;
33: uint64 Peek8(uint32 addr) override;
34:
35: private:
36: // アドレスデコーダ
37: static uint32 Decoder(uint32 addr);
38:
39: // 書き込みの共通部分
40: uint64 Write();
41:
42: IODevice *prom {};
43: };
44:
1.1.1.5 root 45: class PROMDevice : public ROMDevice
1.1 root 46: {
47: using inherited = ROMDevice;
48: public:
49: PROMDevice();
1.1.1.3 root 50: virtual ~PROMDevice() override;
1.1 root 51:
52: bool Init() override;
53:
54: private:
1.1.1.4 root 55: bool InitLuna1();
1.1 root 56: bool InitLuna88k();
57: };
58:
1.1.1.7 ! root 59: extern PROM0Device *gPROM0;
! 60: extern IODevice *gPROM;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.