{0, 0, 0, 0}
};
-/* 実行モード: trace, logical, dump */
-EXECMODE execmode = {false, false, false};
-
/* エラー番号とエラーメッセージ */
CERRARRAY cerr[] = {
- { 201, "execute - out of COMET II memory" },
+ { 201, "Load object file - full of COMET II memory" },
{ 202, "SVC input - out of Input memory" },
{ 203, "SVC output - out of COMET II memory" },
{ 204, "Program Register (PR) - out of COMET II memory" },
/* 指定されたファイルからアセンブル結果を読込 */
bool loadassemble(char *file) {
FILE *fp;
- reset();
if((fp = fopen(file, "r")) == NULL) {
perror(file);
return false;
}
- fread(memory, sizeof(WORD), memsize, fp);
+ if((endptr = startptr + fread(memory, sizeof(WORD), memsize-startptr, fp)) == memsize) {
+ setcerr(201, NULL); /* Load object file - full of COMET II memory */
+ fprintf(stderr, "Execute error - %d: %s\n", cerrno, cerrmsg);
+ return false;
+ }
fclose(fp);
return true;
}
exit(-1);
}
}
+ reset();
+ startptr = 0;
if(loadassemble(argv[optind]) == true) {
exec(); /* プログラム実行 */
}