void svcin()
{
int i;
- char *buffer = malloc_chk(INSIZE + 1,"svcin.buffer");
+ char *buffer = malloc_chk(INSIZE + 1, "svcin.buffer");
if(fgets(buffer, INSIZE, stdin) == NULL) {
sys->memory[sys->cpu->gr[1]] = sys->memory[sys->cpu->gr[2]] = 0x0;
sys->memory[sys->cpu->gr[1]+i] = *(buffer + i);
}
sys->memory[sys->cpu->gr[2]] = i + 1;
+ free_chk(buffer, "buffer");
}
/* 標準出力へ文字データを書出(SVC 2) */
val = sys->memory[val];
}
}
+ free_chk(errpr, "errpr");
/* 主オペランドが1〜4の場合、第2ビットを無視 */
if(op >= 0x1000 && op <= 0x4FFF) {
op &= 0xFB00;