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

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 から値を読み込む
1.1.1.2 ! root       19:        bool LoadMem(uint32 addr);      // メモリから値を読み込む
1.1       root       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.