X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fstruct.c;h=2d3c67f0d5d39e308809c80eca9ae0b732cca29a;hb=a0e77d91c444903d6f6a47b4f765c961155153dc;hp=725ca00a43759cf42ff5e07eb4aebc72914b5031;hpb=6b30a23640168f0b99e70ad87ab4c5a98015ee02;p=YACASL2.git diff --git a/src/struct.c b/src/struct.c index 725ca00..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; } /**