Annotation of nono/vm/mainbus_luna.h, revision 1.1.1.2

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2020 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: //
                      8: // メインバス (LUNA)
                      9: //
                     10: 
                     11: #pragma once
                     12: 
                     13: #include "mainbus.h"
                     14: 
                     15: class LunaMainbus : public Mainbus24Device
                     16: {
                     17:        using inherited = Mainbus24Device;
                     18:  public:
                     19:        LunaMainbus();
                     20:        ~LunaMainbus() override;
                     21: 
                     22:        bool InitMainbus() override;
                     23: 
                     24:  protected:
                     25:        // ブートページを切り替える。
                     26:        void SwitchBootPage(bool isrom) override;
                     27: 
                     28:        // デバイスマップから devtable を作成
                     29:        void MakeDevtable(const uint8 *maptable);
                     30: 
                     31:        // ブートページ切り替え用 (unique_ptr ではない)
                     32:        IODevice *ram0 {};
                     33: 
                     34:        std::unique_ptr<IODevice> pBusErr {};
                     35:        std::unique_ptr<IODevice> pBT45x {};
                     36:        std::unique_ptr<IODevice> pCRTC2 {};
                     37:        std::unique_ptr<IODevice> pEthernet {};
                     38:        std::unique_ptr<IODevice> pInterrupt {};
                     39:        std::unique_ptr<IODevice> pMainRAM {};
                     40:        std::unique_ptr<IODevice> pNopIO {};
                     41:        std::unique_ptr<IODevice> pPartialRAM {};
                     42:        std::unique_ptr<IODevice> pPlaneVRAM {};
                     43:        std::unique_ptr<IODevice> pPROM {};
                     44:        std::unique_ptr<IODevice> pPROM0 {};
                     45:        std::unique_ptr<IODevice> pPIO0 {};
                     46:        std::unique_ptr<IODevice> pPIO1 {};
                     47:        std::unique_ptr<IODevice> pRTC {};
                     48:        std::unique_ptr<IODevice> pSIO {};
                     49:        std::unique_ptr<IODevice> pSPC {};
                     50:        std::unique_ptr<IODevice> pSubRAM {};
                     51:        std::unique_ptr<IODevice> pSysClk {};
                     52:        std::unique_ptr<IODevice> pTAS {};
                     53:        std::unique_ptr<IODevice> pXPbus {};
                     54: };
                     55: 
                     56: class Luna1Mainbus final : public LunaMainbus
                     57: {
                     58:        using inherited = LunaMainbus;
                     59:  public:
                     60:        Luna1Mainbus();
                     61:        ~Luna1Mainbus() override;
                     62: 
1.1.1.2 ! root       63:        bool Create() override;
        !            64: 
1.1       root       65:  private:
                     66:        static const uint8 maptable[256];
                     67: };
                     68: 
                     69: class Luna88kMainbus final : public LunaMainbus
                     70: {
                     71:        using inherited = LunaMainbus;
                     72:  public:
                     73:        Luna88kMainbus();
                     74:        ~Luna88kMainbus() override;
                     75: 
1.1.1.2 ! root       76:        bool Create() override;
        !            77: 
1.1       root       78:  private:
                     79:        std::unique_ptr<IODevice> pCMMU {};
                     80:        std::unique_ptr<IODevice> pFuseROM {};
                     81: 
                     82:        static const uint8 maptable[256];
                     83: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.