malloc周辺を中心としたリファクタリング
[YACASL2.git] / src / struct.c
1 #include "casl2.h"
2
3 /* COMET IIのメモリ */
4 WORD *memory;
5
6 /* メモリサイズ */
7 int memsize = DEFAULT_MEMSIZE;
8
9 /* COMET IIのCPU */
10 CPU *cpu;
11
12 /* クロック周波数 */
13 int clocks = DEFAULT_CLOCKS;
14
15 /* CASL2プログラムのプロパティ */
16 PROGPROP *progprop;
17
18 /* COMET II仮想マシンのリセット */
19 void reset()
20 {
21     int i;
22
23     /* メモリの初期化 */
24     memory = malloc_chk(memsize * sizeof(WORD), "memory");
25     for(i = 0; i < memsize; i++) {
26         memory[i] = 0x0;
27     }
28     /* CPUの初期化 */
29     cpu = malloc_chk(sizeof(CPU), "cpu");
30     for(i = 0; i < GRSIZE; i++) {
31         cpu->gr[i] = 0x0;
32     }
33     cpu->sp = cpu->pr = cpu->fr = 0x0;
34     /* CASL2プログラムのプロパティ */
35     progprop = malloc_chk(sizeof(PROGPROP), "progprop");
36 }
37
38 /* COMET II仮想マシンのシャットダウン */
39 void shutdown()
40 {
41     free(progprop);
42     free(cpu);
43     free(memory);
44 }