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