ドキュメントの修正
[YACASL2.git] / src / struct.c
1 #include "struct.h"
2 #include "cmem.h"
3
4 /**
5  * COMET IIの仮装実行マシンシステム
6  */
7 SYSTEM *sys;
8
9 /**
10  * CASL IIプログラムのプロパティ
11  */
12 PROGPROP *prog;
13
14 /**
15  * COMET II仮想マシンのリセット
16  */
17 void reset(int memsize, int clocks)
18 {
19     int i;
20
21     sys = malloc_chk(sizeof(SYSTEM), "sys");
22     /* メモリサイズの設定 */
23     sys->memsize = memsize;
24     /* クロック周波数の設定 */
25     sys->clocks = clocks;
26     /* メモリの初期化 */
27     sys->memory = calloc_chk(sys->memsize, sizeof(WORD), "memory");
28     /* CPUの初期化 */
29     sys->cpu = malloc_chk(sizeof(CPU), "cpu");
30     for(i = 0; i < GRSIZE; i++) {
31         sys->cpu->gr[i] = 0x0;
32     }
33     sys->cpu->sp = sys->cpu->pr = sys->cpu->fr = 0x0;
34     /* CASL2プログラムのプロパティ */
35     prog = malloc_chk(sizeof(PROGPROP), "prog");
36 }
37
38 /**
39  * COMET II仮想マシンのシャットダウン
40  */
41 void shutdown()
42 {
43     free_chk(prog, "prog");
44     free_chk(sys->memory, "sys.memory");
45     free_chk(sys->cpu, "sys.cpu");
46     free_chk(sys, "sys");
47 }