X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fstruct.c;h=2d3c67f0d5d39e308809c80eca9ae0b732cca29a;hp=30323eb706c2cb0895159d6b6ecf87411079d2a3;hb=f9ad3a081e1777bb6d892af65d0e4090cb31bbfa;hpb=02d7b9b5209b2cb08151f7d1c160e2d18bc7c0d0 diff --git a/src/struct.c b/src/struct.c index 30323eb..2d3c67f 100644 --- a/src/struct.c +++ b/src/struct.c @@ -27,12 +27,15 @@ void reset(int memsize, int clocks) sys->memory = calloc_chk(sys->memsize, sizeof(WORD), "memory"); /* CPUを初期化 */ sys->cpu = malloc_chk(sizeof(CPU), "cpu"); - for(i = 0; i < GRSIZE; i++) { + for(i = 0; i < GRSIZE; i++) { /* 汎用レジスタ */ sys->cpu->gr[i] = 0x0; } - sys->cpu->sp = sys->cpu->pr = sys->cpu->fr = 0x0; + sys->cpu->sp = sys->memsize; /* スタックポインタ */ + sys->cpu->pr = 0x0; /* プログラムレジスタ */ + sys->cpu->fr = 0x0; /* フラグレジスタ */ /* CASL2プログラムの開始と終了のアドレスを初期化 */ - execptr = malloc_chk(sizeof(EXECPTR), "prog"); + execptr = malloc_chk(sizeof(EXECPTR), "execptr"); + execptr->stop = false; } /**