Annotation of nono/m680x0/m680x0bitfield.h, revision 1.1

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2022 nono project
        !             4: // Licensed under nono-license.txt
        !             5: //
        !             6: 
        !             7: #pragma once
        !             8: 
        !             9: #include "mpu680x0.h"
        !            10: 
        !            11: // ビットフィールド命令
        !            12: class acc_bf
        !            13: {
        !            14:  public:
        !            15:        explicit acc_bf(MPU680x0Device *);
        !            16:        // デストラクタは無し。
        !            17: 
        !            18:        void LoadReg(uint n);           // Dn から値を読み込む
        !            19:        void LoadMem(uint32 addr);      // メモリから値を読み込む
        !            20: 
        !            21:        // レジスタまたはメモリにストアする
        !            22:        void Store(uint n) {
        !            23:                if (n < 8) {
        !            24:                        StoreReg(n);
        !            25:                } else {
        !            26:                        StoreMem();
        !            27:                }
        !            28:        }
        !            29: 
        !            30:        uint32 data {};                         // 32bit 左詰めデータ
        !            31:        int32 offset {};                        // (第2ワードで指定された) オフセット
        !            32:        uint32 width {};                        // 幅
        !            33: 
        !            34:  private:
        !            35:        void StoreReg(uint n);          // 値を Dn に書き出す
        !            36:        void StoreMem();                        // 値をメモリに書き出す
        !            37: 
        !            38:        MPU680x0Device *cpu {};
        !            39: 
        !            40:        uint32 mask {};                 // 32ビット左詰めマスク
        !            41:        uint32 ea {};                   // オフセット計算後の EA
        !            42:        int32 local_offset {};  // 内部(32bit or 8bit 内)オフセット
        !            43:        uint bytes {};                  // アクセスバイト数
        !            44:        uint64 buf {};                  // 40ビットのメモリバッファ
        !            45: };

unix.superglobalmegacorp.com

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