#include "struct.h"
#include "cmem.h"
-/* COMET IIの仮装実行マシンシステム */
+/**
+ * COMET IIの仮想実行マシンシステム
+ */
SYSTEM *sys;
-/* CASL IIプログラムのプロパティ */
-PROGPROP *prog;
+/**
+ * プログラム実行時の開始と終了のアドレス
+ */
+EXECPTR *execptr;
-/* COMET II仮想マシンのリセット */
+/**
+ * COMET II仮想マシンのリセット
+ */
void reset(int memsize, int clocks)
{
int i;
sys = malloc_chk(sizeof(SYSTEM), "sys");
- /* ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82ºã\81®設定 */
+ /* ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82ºã\82\92設定 */
sys->memsize = memsize;
- /* ã\82¯ã\83ã\83\83ã\82¯å\91¨æ³¢æ\95°ã\81®設定 */
+ /* ã\82¯ã\83ã\83\83ã\82¯å\91¨æ³¢æ\95°ã\82\92設定 */
sys->clocks = clocks;
- /* ã\83¡ã\83¢ã\83ªã\81®初期化 */
+ /* ã\83¡ã\83¢ã\83ªã\82\92初期化 */
sys->memory = calloc_chk(sys->memsize, sizeof(WORD), "memory");
- /* CPUã\81®初期化 */
+ /* CPUã\82\92初期化 */
sys->cpu = malloc_chk(sizeof(CPU), "cpu");
for(i = 0; i < GRSIZE; i++) {
sys->cpu->gr[i] = 0x0;
}
sys->cpu->sp = sys->cpu->pr = sys->cpu->fr = 0x0;
- /* CASL2プログラムのプロパティ */
- prog = malloc_chk(sizeof(PROGPROP), "prog");
+ /* CASL2プログラムの開始と終了のアドレスを初期化 */
+ execptr = malloc_chk(sizeof(EXECPTR), "prog");
}
-/* COMET II仮想マシンのシャットダウン */
+/**
+ * COMET II仮想マシンのシャットダウン
+ */
void shutdown()
{
- free_chk(prog, "prog");
- free_chk(sys->memory, "sys.memory");
- free_chk(sys->cpu, "sys.cpu");
- free_chk(sys, "sys");
+ FREE(execptr);
+ FREE(sys->memory);
+ FREE(sys->cpu);
+ FREE(sys);
}