#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <time.h>
#include "word.h"
#include "cmem.h"
#include "hash.h"
Go to the source code of this file.
|
| enum | {
CMDSIZE = 4
, GRSIZE = 8
, MAX_MEMSIZE = 65536
, DEFAULT_MEMSIZE = 512
,
MAX_CLOCKS = 1000000
, DEFAULT_CLOCKS = MAX_CLOCKS
} |
| | COMET IIの規格値 More...
|
| enum | { OF = 0x4
, SF = 0x2
, ZF = 0x1
} |
| | COMET II フラグのマスク値 More...
|
| enum | CMDTAB_HASH { HASH_CMDTYPE
, HASH_CODE
, HASH_MAX
} |
| enum | CMDTYPE {
R_ADR_X = 01
, R1_R2 = 02
, ADR_X = 03
, R_ = 04
,
NONE = 0
} |
◆ CLOCK
| typedef unsigned int CLOCK |
◆ CMDTAB
◆ anonymous enum
COMET II フラグのマスク値
| Enumerator |
|---|
| OF | Overflow Flag
|
| SF | Sign Flag
|
| ZF | Zero Flag
|
Definition at line 29 of file struct.h.
◆ anonymous enum
COMET IIの規格値
| Enumerator |
|---|
| CMDSIZE | 命令の最大文字数
|
| GRSIZE | 汎用レジスタの数。COMET II規格で、GR0〜GR7までの8
|
| MAX_MEMSIZE | メモリ容量の最大値。COMET II規格で、アドレス0~65535の65536語(word)
|
| DEFAULT_MEMSIZE | メモリ容量の初期値。COMET II規格では、アドレス0~65535の65536語(word)
|
| MAX_CLOCKS | クロック周波数の最大値。POSIXのCLOCKS_PER_SECと同値
|
| DEFAULT_CLOCKS | クロック周波数の初期値。最大値と同値
|
Definition at line 17 of file struct.h.
◆ CMDTAB_HASH
命令ハッシュ表のハッシュの種類
| Enumerator |
|---|
| HASH_CMDTYPE | |
| HASH_CODE | |
| HASH_MAX | |
Definition at line 63 of file struct.h.
◆ CMDTYPE
COMET II 命令 命令タイプは、オペランドにより5種類に分類
| Enumerator |
|---|
| R_ADR_X | オペランド数2または3
- 第1オペランド: 汎用レジスタ。必須
- 第2オペランド: アドレス。必須
- 第3オペランド: 指標レジスタとして用いる汎用レジスタ。任意
|
| R1_R2 | オペランド数2
- 第1オペランド: 汎用レジスタ。必須
- 第2オペランド: 汎用レジスタ。必須
|
| ADR_X | オペランド数1または2
- 第1オペランド: アドレス。必須
- 第2オペランド: 指標レジスタとして用いる汎用レジスタ。任意
|
| R_ | オペランド数1
|
| NONE | オペランドなし
|
Definition at line 73 of file struct.h.
◆ code2cmdwordlen()
命令コードから、命令語長を返す
無効な場合は0を返す
命令コードから、命令語長を返す 無効な場合は0を返す
Definition at line 294 of file struct.c.
◆ code_gr_valid()
| bool code_gr_valid |
( |
WORD | code | ) |
|
コードが命令コードでR/R1またはR2/XのGRが範囲外の場合はfalse、それ以外はtrueを返す
命令コードから、GRの範囲が正常な場合はtrue 異常な場合はfalseを返す
Definition at line 269 of file struct.c.
◆ comet2_init()
| void comet2_init |
( |
WORD | memsize, |
|
|
CLOCK | clocks ) |
COMET II仮想マシンの初期化
- Parameters
-
| memsize | メモリーサイズ。1から65535までの範囲の整数 |
| clocks | クロック数。1から1000000までの範囲の整数 |
COMET II仮想マシンの初期化
Definition at line 329 of file struct.c.
◆ comet2_reset()
COMET II仮想マシンのCPUをリセット
COMET II仮想マシンのCPUリセット
Definition at line 371 of file struct.c.
◆ comet2_resetall()
COMET II仮想マシンのCPUとメモリをリセット
Definition at line 384 of file struct.c.
◆ comet2_shutdown()
COMET II仮想マシンのシャットダウン
COMET II仮想マシンのシャットダウン
Definition at line 399 of file struct.c.
◆ create_cmdtable()
命令ハッシュ表を作成する
- Parameters
-
命令ハッシュ表を作成する
Definition at line 124 of file struct.c.
◆ free_cmdtable()
◆ getcmdcode()
命令の名前とタイプから、命令コードを返す 無効な場合は0xFFFFを返す
命令の名前とタイプから、命令コードを返す
無効な場合は0xFFFFを返す
Definition at line 164 of file struct.c.
◆ getcmdname()
| char * getcmdname |
( |
WORD | code | ) |
|
命令コードから命令の名前を返す
Definition at line 252 of file struct.c.
◆ getcmdptr()
| void * getcmdptr |
( |
WORD | code | ) |
|
命令コードから命令の関数ポインタを返す
Definition at line 218 of file struct.c.
◆ getcmdtype()
命令コードから命令のタイプを返す
Definition at line 235 of file struct.c.
◆ getcmdwordlen()
命令の名前とタイプから、命令語長を返す 無効な場合は0を返す
命令の名前とタイプから、命令語長を返す
無効な場合は0を返す
Definition at line 183 of file struct.c.
◆ grstr()
| char * grstr |
( |
WORD | word | ) |
|
汎用レジスタの番号からレジスタを表す文字列を返す
- Returns
- 汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか
- Parameters
-
汎用レジスタの番号からレジスタを表す文字列を返す
Definition at line 312 of file struct.c.
◆ memsize_str2word()
| WORD memsize_str2word |
( |
const char * | str | ) |
|
メモリーサイズを表す数値文字列をWORD値に変換して返す。WORD値に変換できない場合は、エラーを表示して0を返す
- Returns
- メモリーサイズのWORD値である、1から65536までの範囲の整数。エラー時は0
- Parameters
-
Definition at line 322 of file struct.c.
◆ execmode
実行モード: trace, logical, dump, reverse, monitor, step
実行モード: trace, logical, dump, reverse, monitor, step
Definition at line 90 of file exec.c.
◆ execptr
プログラム実行時の開始と終了のアドレス
Definition at line 13 of file struct.c.
◆ sys
COMET IIの仮想実行マシンシステム
COMET IIの仮想実行マシンシステム
Definition at line 8 of file struct.c.