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

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: 
                     34:        std::unique_ptr<Device> pBT454 {};
                     35:        std::unique_ptr<Device> pCRTC2 {};
                     36:        std::unique_ptr<Device> pEthernet {};
                     37:        std::unique_ptr<Device> pLCD {};
                     38:        std::unique_ptr<Device> pNopIO {};
                     39:        std::unique_ptr<Device> pPartialRAM {};
                     40:        std::unique_ptr<Device> pPlaneVRAM {};
                     41:        std::unique_ptr<Device> pPROM {};
                     42:        std::unique_ptr<Device> pPROM0 {};
                     43:        std::unique_ptr<Device> pPIO0 {};
                     44:        std::unique_ptr<Device> pPIO1 {};
                     45:        std::unique_ptr<Device> pRTC {};
                     46:        std::unique_ptr<Device> pSIO {};
                     47:        std::unique_ptr<Device> pSPC {};
                     48:        std::unique_ptr<Device> pSysClk {};
                     49:        std::unique_ptr<Device> pTAS {};
                     50:        std::unique_ptr<Device> pZRAM {};
1.1.1.5   root       51: };
                     52: 
                     53: class VM_LUNA1 final : public VM_LUNA
                     54: {
                     55:        using inherited = VM_LUNA;
                     56:  public:
                     57:        VM_LUNA1();
1.1.1.7   root       58:        ~VM_LUNA1() override;
1.1       root       59: 
1.1.1.5   root       60:  private:
1.1       root       61:        static const uint8 maptable[256];
                     62: };
                     63: 
1.1.1.5   root       64: class VM_LUNA88K final : public VM_LUNA
1.1       root       65: {
1.1.1.5   root       66:        using inherited = VM_LUNA;
1.1       root       67:  public:
                     68:        VM_LUNA88K();
1.1.1.7   root       69:        ~VM_LUNA88K() override;
1.1       root       70: 
                     71:  private:
1.1.1.9   root       72:        std::unique_ptr<Device> pCMMU {};
                     73:        std::unique_ptr<Device> pFuseROM {};
                     74: 
1.1       root       75:        static const uint8 maptable[256];
                     76: };

unix.superglobalmegacorp.com

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