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

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: 
                     24:        // 電源ボタンを押す。
1.1.1.2   root       25:        void PowerButton() override;
1.1       root       26: 
1.1.1.8   root       27:  protected:
1.1.1.6   root       28:        // ブートページを切り替える。
                     29:        void SwitchBootPage(Device *parent, bool isrom) override;
                     30: 
1.1.1.5   root       31:        // デバイスマップから devtable を作成
                     32:        void MakeDevtable(const uint8 *maptable);
                     33: 
1.1.1.9 ! root       34:        // ブートページ切り替え用 (unique_ptr ではない)
1.1.1.8   root       35:        IODevice *ram0 {};
1.1.1.9 ! root       36: 
        !            37:        std::unique_ptr<Device> pBT454 {};
        !            38:        std::unique_ptr<Device> pCRTC2 {};
        !            39:        std::unique_ptr<Device> pEthernet {};
        !            40:        std::unique_ptr<Device> pLCD {};
        !            41:        std::unique_ptr<Device> pNopIO {};
        !            42:        std::unique_ptr<Device> pPartialRAM {};
        !            43:        std::unique_ptr<Device> pPlaneVRAM {};
        !            44:        std::unique_ptr<Device> pPROM {};
        !            45:        std::unique_ptr<Device> pPROM0 {};
        !            46:        std::unique_ptr<Device> pPIO0 {};
        !            47:        std::unique_ptr<Device> pPIO1 {};
        !            48:        std::unique_ptr<Device> pRTC {};
        !            49:        std::unique_ptr<Device> pSIO {};
        !            50:        std::unique_ptr<Device> pSPC {};
        !            51:        std::unique_ptr<Device> pSysClk {};
        !            52:        std::unique_ptr<Device> pTAS {};
        !            53:        std::unique_ptr<Device> pZRAM {};
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.9 ! root       75:        std::unique_ptr<Device> pCMMU {};
        !            76:        std::unique_ptr<Device> pFuseROM {};
        !            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.