入出力領域がメモリ容量を越えた場合にエラーとしていたのを、
プログラム領域を越えた場合にエラーとするよう変更
char *name; /**<命令名 */
CMDTYPE type; /**<命令タイプ */
WORD code; /**<命令コード */
- const void (*ptr); /**<命令の関数ポインタ */
+ const void (*ptr); /**<命令の関数ポインタ */
} CMD;
/**
--i;
break;
}
- if(sys->cpu->gr[1] + i >= sys->memsize - 1) {
+ if(sys->cpu->gr[1] + i > execptr->end) {
setcerr(208, NULL); /* SVC input - memory overflow */
break;
}
WORD w;
for(i = 0; i < sys->memory[sys->cpu->gr[2]]; i++) {
- if(sys->cpu->gr[1] + i >= sys->memsize - 1) {
+ if(sys->cpu->gr[1] + i > execptr->end) {
setcerr(209, NULL); /* SVC output - memory overflow */
return;
}
LEN DC 60
END
!<
-........Execute error - 209: SVC output - memory overflow
+..Execute error - 209: SVC output - memory overflow
!<
-........Execute error - 209: SVC output - memory overflow
+..Execute error - 209: SVC output - memory overflow