Makefileの修正
[YACASL2.git] / src / exec.c
index 36543e9..aa99076 100644 (file)
@@ -100,7 +100,7 @@ void svcin()
             break;
         }
         if(sys->cpu->gr[1] + i > execptr->end) {
-            setcerr(208, NULL);    /* SVC input - memory overflow */
+            setcerr(208, "");    /* SVC input - memory overflow */
             break;
         }
         sys->memory[sys->cpu->gr[1]+i] = *(buffer + i);
@@ -119,12 +119,16 @@ void svcout()
 
     for(i = 0; i < sys->memory[sys->cpu->gr[2]]; i++) {
         if(sys->cpu->gr[1] + i > execptr->end) {
-            setcerr(209, NULL);    /* SVC output - memory overflow */
+            setcerr(209, "");    /* SVC output - memory overflow */
             return;
         }
-        /* 「文字の組」の符号表に記載された文字と、改行(CR)/タブを表示 */
+        /* 「JIS X 0201ラテン文字・片仮名用8ビット符号で規定する文字の符号表」
+           に記載された文字と、改行(CR)/タブを表示 */
         /* それ以外の文字は、「.」で表す */
-        if(((w = sys->memory[sys->cpu->gr[1]+i]) >= 0x20 && w <= 0x7E) || w == 0xA || w == '\t') {
+        if(((w = sys->memory[sys->cpu->gr[1]+i]) >= 0x20 && w <= 0x7E) ||    /* JIS X 0201ラテン文字 */
+           (w >= 0xA0 && w <= 0xFE) ||                                       /* JIS X 0201片仮名用8ビット符号 */
+           w == 0xA || w == '\t')
+        {
             putchar((char)w);
         } else {
             putchar('.');
@@ -263,7 +267,6 @@ void lad()
 /**
  * ADDA命令のテンプレート\n
  * 汎用レジスタrに値valを算術加算
- * \relates exec
  */
 void adda(WORD r, WORD val)
 {
@@ -337,7 +340,6 @@ void suba_r1_r2()
 /**
  * ADDL命令のテンプレート\n
  * 汎用レジスタrに値valを論理加算
- * \relates exec
  */
 void addl(WORD r, WORD val)
 {
@@ -525,8 +527,6 @@ void cpa_r1_r2()
  */
 void cpl(WORD r, WORD val)
 {
-    WORD w[1];
-    w[0] = sys->memory[sys->cpu->pr];
     sys->cpu->fr = 0x0;
     if(sys->cpu->gr[r] < val) {
         sys->cpu->fr = SF;
@@ -563,8 +563,8 @@ void cpl_r1_r2()
 
 /**
  * SLA命令 - オペランドr,adr,x。語長2\n
- * \relates exec
  * 算術演算なので、第15ビットは送り出されない
+ * \relates exec
  */
 void sla()
 {