*/
enum {
CMDSIZE = 4, /**<命令の最大文字数 */
- GRSIZE = 8, /**<æ±\8eç\94¨ã\83¬ã\82¸ã\82¹ã\82¿ã\81®æ\95°ã\80\82COMET IIè¦\8fæ ¼ã\81«ã\82\88ã\82\8a0ã\81\8bã\82\897ã\81¾ã\81§ã\81®8ã\81¤ */
+ GRSIZE = 8, /**<æ±\8eç\94¨ã\83¬ã\82¸ã\82¹ã\82¿ã\81®æ\95°ã\80\82COMET IIè¦\8fæ ¼ã\81§ã\81¯ã\80\818ï¼\880ã\81\8bã\82\897ï¼\89 */
DEFAULT_MEMSIZE = 512, /**<デフォルトのメモリ容量。COMET II規格では、65535語(word) */
DEFAULT_CLOCKS = 5000000, /**<デフォルトのクロック周波数。COMET II規格では、未定義 */
};
R_ADR_X = 010,
/**
* オペランド数2または3
- * 第1オペランド: 汎用レジスタ、
+ * 第1オペランド: 汎用レジスタ
* 第2オペランド: アドレスに格納されている内容
* 第3オペランド: 指標レジスタ
*/
* オペランドなし
*/
NONE = 0,
+ /**
+ * COMET II命令以外
+ */
+ NOTCMD = 077,
} CMDTYPE;
/**
- * 命令コード配列
+ * 命令コード表の項目
*/
typedef struct {
- char *name;
- CMDTYPE type;
- WORD code;
+ char *name; /**<命令名 */
+ CMDTYPE type; /**<命令タイプ */
+ WORD code; /**<命令コード */
} CMD;
/**
* 命令コードのハッシュ表
*/
typedef struct _CMDTAB {
- struct _CMDTAB *next;
- CMD *cmd;
+ struct _CMDTAB *next; /**<リスト次項目へのポインタ */
+ CMD *cmd; /**<命令コード表の項目 */
} CMDTAB;
/**
- * CASL2プログラムのプロパティ
+ * プログラム実行時の開始と終了のアドレス
*/
typedef struct {
- WORD start; /**<プログラムの開始番地 */
- WORD end; /**<プログラムの終了番地 */
-} PROGPROP;
+ WORD start; /**<開始アドレス */
+ WORD end; /**<終了アドレス */
+} EXECPTR;
-extern PROGPROP *prog;
+extern EXECPTR *execptr;
/**
* COMET II仮想マシンのリセット