--- nono/m88xx0/m88100.h 2026/04/29 17:05:15 1.1.1.14 +++ nono/m88xx0/m88100.h 2026/04/29 17:05:26 1.1.1.15 @@ -6,7 +6,7 @@ #pragma once -#include "header.h" +#include "nono.h" class MPU88xx0Device; @@ -14,10 +14,20 @@ class MPU88xx0Device; struct M88100 { // PID(cr0) + // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + // +---------------+---------------+---------------+-------------+-+ + // | 0 | REV | VER |M| + // +---------------+---------------+---------------+-------------+-+ static const uint32 PID_REV_MASK = 0x0000ff00; // 0 = MC88100 static const uint32 PID_VER_MASK = 0x000000fe; static const uint32 PID_MASTER = 0x00000001; + // PSR(cr1) + // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + // +-+-+-+-+-------+---------------+---------------+-------+-+-+-+-+ + // |S|B|S|C| |D|M|I|S| + // |U|O|E| | 0 |1|X|N|F| + // +-+-+-+-+-------+---------------+---------------+-------+-+-+-+-+ static const uint32 PSR_SUPER = 0x80000000; static const uint32 PSR_BO_LE = 0x40000000; // ByteOrder(Little) static const uint32 PSR_SER = 0x20000000; @@ -28,11 +38,20 @@ struct M88100 static const uint32 PSR_SFRZ = 0x00000001; // Shadow Freeze // 例外処理で使用される S*IP + // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + // +---------------+---------------+---------------+-----------+-+-+ + // | S*IP |V|E| + // +---------------+---------------+---------------+-----------+-+-+ static const uint32 SIP_MASK = 0xfffffffcU; static const uint32 SIP_V = 0x00000002; static const uint32 SIP_E = 0x00000001; // DMTn、データ例外 + // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + // +---------------+---------------+-+-+-+-+-------+-+-+-+-+-+-+-+-+ + // | |B|D|D|L| |S|E|E|E|E|W|V| + // | 0 |O|A|B|K| DREG | |3|2|1|0|R| | + // +---------------+---------------+-+-+-+-+-------+-+-+-+-+-+-+-+-+ static const uint32 DM_BO = 0x00008000; static const uint32 DM_DAS = 0x00004000; static const uint32 DM_DOUB1 = 0x00002000;