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

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2017 [email protected]
                      4: //
                      5: 
                      6: #pragma once
                      7: 
                      8: #include "device.h"
                      9: 
                     10: class ViconDevice
                     11:        : public IODevice
                     12: {
                     13:        typedef IODevice inherited;
                     14:  private:
                     15:        static const int baseaddr = 0xe82000;
                     16: 
                     17:        struct vicon {
                     18:                uint16 r0;
                     19:                uint16 r1;
                     20:                uint16 r2;
                     21:        };
                     22: 
                     23:  public:
                     24:        ViconDevice();
                     25:        virtual ~ViconDevice();
                     26: 
                     27:        virtual uint64 Read8(uint32 addr);
                     28:        virtual uint64 Read16(uint32 addr);
                     29:        virtual uint64 Write8(uint32 addr, uint32 data);
                     30:        virtual uint64 Write16(uint32 addr, uint32 data);
                     31:        virtual uint64 Peek8(uint32 addr);
                     32: 
                     33:        // パレットのバッファアドレスを取得
                     34:        // レンダラとかからの参照用?
                     35:        const uint16 *GetPalette() const { return &palette.w[0]; }
                     36: 
                     37:  private:
1.1.1.2 ! root       38:        // アドレスデコーダ
        !            39:        uint64 Decoder(uint32 addr) const;
        !            40: 
        !            41:        uint32 read_r0() const;
        !            42:        uint32 read_r1H() const;
        !            43:        uint32 read_r1L() const;
        !            44:        uint32 read_r2H() const;
        !            45:        uint32 read_r2L() const;
1.1       root       46:        void write_r0(uint32 data);
                     47:        void write_r1H(uint32 data);
                     48:        void write_r1L(uint32 data);
                     49:        void write_r2H(uint32 data);
                     50:        void write_r2L(uint32 data);
                     51: 
                     52:        struct vicon vicon {};
                     53:        union {
                     54:                uint8 b[1024];
                     55:                uint16 w[512];
                     56:        } palette {};
                     57: };
                     58: 
1.1.1.2 ! root       59: extern std::unique_ptr<ViconDevice> gVicon;

unix.superglobalmegacorp.com

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