Annotation of nono/vm/vm_luna.h, revision 1.1.1.11

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.9   root        7: //
                      8: // VM (LUNA)
                      9: //
                     10: 
1.1       root       11: #pragma once
                     12: 
                     13: #include "vm.h"
                     14: 
1.1.1.5   root       15: class VM_LUNA : public VM
1.1       root       16: {
1.1.1.2   root       17:        using inherited = VM;
1.1       root       18:  public:
                     19:        VM_LUNA();
1.1.1.5   root       20:        virtual ~VM_LUNA() override;
                     21: 
                     22:        bool Init() override;
1.1       root       23: 
1.1.1.8   root       24:  protected:
1.1.1.6   root       25:        // ブートページを切り替える。
                     26:        void SwitchBootPage(Device *parent, bool isrom) override;
                     27: 
1.1.1.5   root       28:        // デバイスマップから devtable を作成
                     29:        void MakeDevtable(const uint8 *maptable);
                     30: 
1.1.1.9   root       31:        // ブートページ切り替え用 (unique_ptr ではない)
1.1.1.8   root       32:        IODevice *ram0 {};
1.1.1.9   root       33: 
1.1.1.11! root       34:        std::unique_ptr<IODevice> pBT45x {};
        !            35:        std::unique_ptr<IODevice> pCRTC2 {};
        !            36:        std::unique_ptr<Device>   pDipsw {};
        !            37:        std::unique_ptr<IODevice> pEthernet {};
        !            38:        std::unique_ptr<Device>   pLCD {};
        !            39:        std::unique_ptr<Device>   pMPU64180 {};
        !            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 {};
1.1.1.5   root       54: };
                     55: 
                     56: class VM_LUNA1 final : public VM_LUNA
                     57: {
                     58:        using inherited = VM_LUNA;
                     59:  public:
                     60:        VM_LUNA1();
1.1.1.7   root       61:        ~VM_LUNA1() override;
1.1       root       62: 
1.1.1.5   root       63:  private:
1.1       root       64:        static const uint8 maptable[256];
                     65: };
                     66: 
1.1.1.5   root       67: class VM_LUNA88K final : public VM_LUNA
1.1       root       68: {
1.1.1.5   root       69:        using inherited = VM_LUNA;
1.1       root       70:  public:
                     71:        VM_LUNA88K();
1.1.1.7   root       72:        ~VM_LUNA88K() override;
1.1       root       73: 
                     74:  private:
1.1.1.11! root       75:        std::unique_ptr<IODevice> pCMMU {};
        !            76:        std::unique_ptr<IODevice> pFuseROM {};
1.1.1.9   root       77: 
1.1       root       78:        static const uint8 maptable[256];
                     79: };

unix.superglobalmegacorp.com

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