X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fcasl2.h;h=fa8ec3b4ae23e1f69369e5684d985f936983ff1e;hp=93d3d1f92e65d0b5cae054358aa66806cfc6e9e8;hb=8ec48a2a7f650cd1eb4d782c0968d47ebaeebfec;hpb=4ee27a568fb9222907a566e59aaefe248f08a8e4 diff --git a/include/casl2.h b/include/casl2.h index 93d3d1f..fa8ec3b 100644 --- a/include/casl2.h +++ b/include/casl2.h @@ -25,12 +25,6 @@ enum { DEFAULT_CLOCKS = 5000000, /* デフォルトのクロック周波数。COMET II規格では、未定義 */ }; -/* COMET IIのメモリ */ -extern WORD *memory; - -/* メモリサイズ */ -extern int memsize; - /* COMET II フラグのマスク値 */ enum { OF = 0x4, /* Overflow Flag */ @@ -46,11 +40,15 @@ typedef struct { WORD fr; /* フラグレジスタ */ } CPU; -/* COMET IIのCPU */ -extern CPU *cpu; +/* COMET IIの仮装実行マシンシステム */ +typedef struct { + CPU *cpu; /* CPU */ + WORD *memory; /* メモリ */ + int memsize; /* メモリサイズ */ + int clocks; /* クロック周波数 */ +} SYSTEM; -/* クロック周波数 */ -extern int clocks; +extern SYSTEM *sys; /* COMET II 命令 */ /* 命令タイプは、オペランドにより6種類に分類 */ @@ -106,10 +104,10 @@ typedef struct { WORD end; /* プログラムの終了番地 */ } PROGPROP; -extern PROGPROP *progprop; +extern PROGPROP *prog; /* COMET II仮想マシンのリセット */ -void reset(); +void reset(int memsize, int clocks); /* COMET II仮想マシンのシャットダウン */ void shutdown();