strip_casl2_commentの、''があるときの動作を修正
[YACASL2.git] / src / exec.c
index c7c125e..8b5047e 100644 (file)
@@ -94,9 +94,9 @@ static CERR cerr_load[] = {
 };
 
 /**
- * @brief 実行モード: trace, logical, dump, monitor, step
+ * @brief 実行モード: trace, logical, dump, dump_start, dump_end,  monitor, step
  */
-EXECMODE execmode = {false, false, false, false, false};
+EXECMODE execmode = {false, false, false, 0, 0xFFFF, false, false};
 
 char *pr2str(WORD pr)
 {
@@ -116,7 +116,7 @@ void svcin()
         return;
     }
     for(i = 0; i < INSIZE; i++) {
-        if(*(buf + i) == '\0' || *(buf + i) == '\n') {
+        if(!buf[i] || buf[i] == '\n') {
             --i;
             break;
         }
@@ -124,7 +124,7 @@ void svcin()
             setcerr(208, "");    /* SVC input - memory overflow */
             break;
         }
-        sys->memory[sys->cpu->gr[1]+i] = *(buf + i);
+        sys->memory[sys->cpu->gr[1] + i] = buf[i];
     }
     sys->memory[sys->cpu->gr[2]] = i + 1;
     FREE(buf);
@@ -768,7 +768,8 @@ void exec()
     char *s;
     const char *monmsg = "COMET II machine code monitor. Type ? for help.\n";
 
-    create_code_cmdtype();                          /* 命令のコードとタイプがキーのハッシュ表を作成 */
+    create_cmdtable(HASH_CODE);                 /* 命令のコードとタイプがキーのハッシュ表を作成 */
+
     if(execmode.trace == true) {
         fprintf(stdout, "\nExecuting machine codes\n");
     }
@@ -782,7 +783,7 @@ void exec()
             }
             if(execmode.dump) {                    /* dumpオプション指定時、メモリを出力 */
                 fprintf(stdout, "#%04X: Memory::::\n", sys->cpu->pr);
-                dumpmemory(0x0, 0xFFFF);
+                dumpmemory(execmode.dump_start, execmode.dump_end);
             }
             fprintf(stdout, "\n");
         }
@@ -837,7 +838,7 @@ void exec()
     }
 execfin:
     freebps();
-    free_code_cmdtype();                           /* 命令のコードとタイプがキーのハッシュ表を解放 */
+    free_cmdtable(HASH_CODE);              /* 命令のコードとタイプがキーのハッシュ表を解放 */
     if(cerr->num > 0) {
         fprintf(stderr, "Execute error - %d: %s\n", cerr->num, cerr->msg);
     }