projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ソースの書き方を変更
[YACASL2.git]
/
src
/
struct.c
diff --git
a/src/struct.c
b/src/struct.c
index
8e60601
..
0662eff
100644
(file)
--- a/
src/struct.c
+++ b/
src/struct.c
@@
-1,38
+1,47
@@
-#include "casl2.h"
+#include "struct.h"
+#include "cmem.h"
-/* COMET IIの仮装実行マシンシステム */
+/**
+ * COMET IIの仮想実行マシンシステム
+ */
SYSTEM *sys;
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");
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;
sys->memsize = memsize;
- /* ã
\82
¯ã
\83
ã
\83
\83
ã
\82
¯å
\91
¨æ³¢æ
\95
°ã
\81
®
設定 */
+ /* ã
\82
¯ã
\83
ã
\83
\83
ã
\82
¯å
\91
¨æ³¢æ
\95
°ã
\82
\92
設定 */
sys->clocks = clocks;
sys->clocks = clocks;
- /* ã
\83
¡ã
\83
¢ã
\83
ªã
\81
®
初期化 */
+ /* ã
\83
¡ã
\83
¢ã
\83
ªã
\82
\92
初期化 */
sys->memory = calloc_chk(sys->memsize, sizeof(WORD), "memory");
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;
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()
{
void shutdown()
{
- free
(prog
);
- free
(sys->memory
);
- free
(sys->cpu
);
- free
(sys
);
+ free
_chk(execptr, "execptr"
);
+ free
_chk(sys->memory, "sys.memory"
);
+ free
_chk(sys->cpu, "sys.cpu"
);
+ free
_chk(sys, "sys"
);
}
}