/* COMET IIのCPUレジスタ */
WORD GR[REGSIZE], SP, PR, FR;
-/* エラーメッセージ */
-int cerrno = 0;
-char *cerrmsg;
-
-/* レジストリの内容を表示する場合はtrue */
-bool tracemode = false;
-
-/* レジストリの内容を論理値(0〜65535)で表示する場合はtrue */
-bool logicalmode = false;
-
-/* メモリの内容を表示する場合はtrue */
-bool dumpmode = false;
-
-/* ソースを表示する場合はtrue */
-bool srcmode = false;
-
-/* ラベル表を表示する場合はtrue */
-bool labelmode = false;
-
-/* ラベル表を表示して終了する場合はtrue */
-bool onlylabelmode = false;
-
-/* アセンブラ詳細結果を表示する場合はtrue */
-bool asdetailmode = false;
-
-/* アセンブルだけを行う場合はtrue */
-bool onlyassemblemode = false;
-
/* メモリーサイズ */
int memsize = DEFAULT_MEMSIZE;
/* 実行終了番地 */
WORD endptr = 0x0;
+
+/* COMET II仮想マシンのリセット */
+void reset()
+{
+ int i;
+ for(i = 0; i < REGSIZE; i++) {
+ GR[i] = 0x0;
+ }
+ SP = PR = FR = 0x0;
+ memory = malloc(memsize * sizeof(WORD));
+ for(i = 0; i < memsize; i++) {
+ memory[i] = 0x0;
+ }
+}
+
+/* COMET II仮想マシンのシャットダウン */
+void shutdown()
+{
+ free(memory);
+}