]> j8takagi.net Git Repository - YACASL2.git/commitdiff
入出力時のエラー条件を変更
authorj8takagi <j8takagi@nifty.com>
Thu, 7 Apr 2011 06:02:54 +0000 (15:02 +0900)
committerj8takagi <j8takagi@nifty.com>
Thu, 7 Apr 2011 06:02:54 +0000 (15:02 +0900)
入出力領域がメモリ容量を越えた場合にエラーとしていたのを、
プログラム領域を越えた場合にエラーとするよう変更

include/struct.h
src/exec.c
test/system/casl2/err_209/0.txt
test/system/comet2/err_209/0.txt

index 6a5a0e4e7f3c5daa6b8baca5e868798c3e2990bc..88ecda95b8d0de4ebba5ee26f4ae7f7b0bde858d 100644 (file)
@@ -91,7 +91,7 @@ typedef struct {
     char *name;                 /**<命令名 */
     CMDTYPE type;               /**<命令タイプ */
     WORD code;                  /**<命令コード */
-    const void (*ptr);                   /**<命令の関数ポインタ */
+    const void (*ptr);          /**<命令の関数ポインタ */
 } CMD;
 
 /**
index 61faee3d1c21c2a00bfb238b15741b3b3b689384..3fb2771099964802f38745a35381f47b458f8329 100644 (file)
@@ -99,7 +99,7 @@ void svcin()
             --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;
         }
@@ -118,7 +118,7 @@ void svcout()
     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;
         }
index 4a8bc4407492002a593fe320d1f430882db73dd4..6f1974a41d078e5e003cd74754a8d057155f1522 100644 (file)
@@ -6,4 +6,4 @@ BUF     DC      ' !'
 LEN     DC      60
         END
  !<
-........Execute error - 209: SVC output - memory overflow
+..Execute error - 209: SVC output - memory overflow
index 7d15bf3b27907f02df86ba844022392f4e96cf06..f7d3df1ff3b196ca0f60290ca8cc060d4494f8b4 100644 (file)
@@ -1,2 +1,2 @@
  !<
-........Execute error - 209: SVC output - memory overflow
+..Execute error - 209: SVC output - memory overflow