Makefileで、必要なコマンドがない場合の動作を修正
[YACASL2.git] / src / exec.c
index d8df852..7e7a431 100644 (file)
@@ -54,7 +54,7 @@ void addcerrlist_exec()
 bool loadassemble(const char *file)
 {
     FILE *fp;
-    bool status = true;
+    bool stat = true;
 
     assert(file != NULL);
     if((fp = fopen(file, "r")) == NULL) {
@@ -66,15 +66,15 @@ bool loadassemble(const char *file)
     if(execptr->end == sys->memsize) {
         setcerr(210, file);    /* load - memory overflow */
         fprintf(stderr, "Load error - %d: %s\n", cerr->num, cerr->msg);
-        status = false;
+        stat = false;
     }
     fclose(fp);
-    return status;
+    return stat;
 }
 
 /**
  * プログラムレジスタ(PR)を表す文字列を返す
- **/
+ */
 char *pr2str(WORD pr) {
     char *str = malloc_chk(CERRSTRSIZE + 1, "pr2str.pr");
 
@@ -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,7 +119,7 @@ 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)/タブを表示 */
@@ -202,6 +202,7 @@ WORD get_val_adr_x(WORD adr, WORD oprx)
 
 /**
  * NOP命令。語長1(OPのみ)
+ * \relates exec
  */
 void nop()
 {
@@ -210,6 +211,7 @@ void nop()
 
 /**
  * LD命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void ld_r_adr_x()
 {
@@ -222,6 +224,7 @@ void ld_r_adr_x()
 
 /**
  * LD命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void ld_r1_r2()
 {
@@ -233,6 +236,7 @@ void ld_r1_r2()
 
 /**
  * ST命令。語長2
+ * \relates exec
  */
 void st()
 {
@@ -245,6 +249,7 @@ void st()
 
 /**
  * LAD命令。語長2
+ * \relates exec
  */
 void lad()
 {
@@ -256,7 +261,7 @@ void lad()
 }
 
 /**
- * ADDA命令のテンプレート
+ * ADDA命令のテンプレート\n
  * 汎用レジスタrに値valを算術加算
  */
 void adda(WORD r, WORD val)
@@ -280,6 +285,7 @@ void adda(WORD r, WORD val)
 
 /**
  * ADDA命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void adda_r_adr_x()
 {
@@ -292,6 +298,7 @@ void adda_r_adr_x()
 
 /**
  * ADDA命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void adda_r1_r2()
 {
@@ -303,6 +310,7 @@ void adda_r1_r2()
 
 /**
  * SUBA命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void suba_r_adr_x()
 {
@@ -315,6 +323,7 @@ void suba_r_adr_x()
 
 /**
  * SUBA命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void suba_r1_r2()
 {
@@ -325,7 +334,7 @@ void suba_r1_r2()
 }
 
 /**
- * ADDL命令のテンプレート
+ * ADDL命令のテンプレート\n
  * 汎用レジスタrに値valを論理加算
  */
 void addl(WORD r, WORD val)
@@ -345,6 +354,7 @@ void addl(WORD r, WORD val)
 
 /**
  * ADDL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void addl_r_adr_x()
 {
@@ -357,6 +367,7 @@ void addl_r_adr_x()
 
 /**
  * ADDL命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void addl_r1_r2()
 {
@@ -368,6 +379,7 @@ void addl_r1_r2()
 
 /**
  * SUBL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void subl_r_adr_x()
 {
@@ -378,8 +390,10 @@ void subl_r_adr_x()
     sys->cpu->pr += 2;
 }
 
+
 /**
  * SUBL命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void subl_r1_r2()
 {
@@ -391,6 +405,7 @@ void subl_r1_r2()
 
 /**
  * AND命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void and_r_adr_x()
 {
@@ -403,6 +418,7 @@ void and_r_adr_x()
 
 /**
  * AND命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void and_r1_r2()
 {
@@ -414,6 +430,7 @@ void and_r1_r2()
 
 /**
  * OR命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void or_r_adr_x()
 {
@@ -426,6 +443,7 @@ void or_r_adr_x()
 
 /**
  * OR命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void or_r1_r2()
 {
@@ -437,6 +455,7 @@ void or_r1_r2()
 
 /**
  * XOR命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void xor_r_adr_x()
 {
@@ -449,6 +468,7 @@ void xor_r_adr_x()
 
 /**
  * XOR命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void xor_r1_r2()
 {
@@ -459,7 +479,7 @@ void xor_r1_r2()
 }
 
 /**
- * CPA命令のテンプレート
+ * CPA命令のテンプレート\n
  * 汎用レジスタrの内容と値valを算術比較
  */
 void cpa(WORD r, WORD val)
@@ -474,6 +494,7 @@ void cpa(WORD r, WORD val)
 
 /**
  * CPA命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void cpa_r_adr_x()
 {
@@ -486,6 +507,7 @@ void cpa_r_adr_x()
 
 /**
  * CPA命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void cpa_r1_r2()
 {
@@ -496,13 +518,11 @@ void cpa_r1_r2()
 }
 
 /**
- * CPL命令のテンプレート
+ * CPL命令のテンプレート\n
  * 汎用レジスタrの内容と値valを論理比較
  */
 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;
@@ -514,6 +534,7 @@ void cpl(WORD r, WORD val)
 
 /**
  * CPL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void cpl_r_adr_x()
 {
@@ -526,6 +547,7 @@ void cpl_r_adr_x()
 
 /**
  * CPL命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void cpl_r1_r2()
 {
@@ -536,8 +558,9 @@ void cpl_r1_r2()
 }
 
 /**
- * SLA命令 - オペランドr,adr,x。語長2
+ * SLA命令 - オペランドr,adr,x。語長2\n
  * 算術演算なので、第15ビットは送り出されない
+ * \relates exec
  */
 void sla()
 {
@@ -570,9 +593,10 @@ void sla()
 }
 
 /**
- * SRA命令 - オペランドr,adr,x。語長2
- * 算術演算なので、第15ビットは送り出されない
+ * SRA命令 - オペランドr,adr,x。語長2\n
+ * 算術演算なので、第15ビットは送り出されない\n
  * 空いたビット位置には符号と同じものが入る
+ * \relates exec
  */
 void sra()
 {
@@ -609,6 +633,7 @@ void sra()
 
 /**
  * SLL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void sll()
 {
@@ -639,6 +664,7 @@ void sll()
 
 /**
  * SRL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void srl()
 {
@@ -670,6 +696,7 @@ void srl()
 
 /**
  * JPL命令。語長2
+ * \relates exec
  */
 void jpl()
 {
@@ -685,6 +712,7 @@ void jpl()
 
 /**
  * JMI命令。語長2
+ * \relates exec
  */
 void jmi()
 {
@@ -700,6 +728,7 @@ void jmi()
 
 /**
  * JNZ命令。語長2
+ * \relates exec
  */
 void jnz()
 {
@@ -715,6 +744,7 @@ void jnz()
 
 /**
  * JZE命令。語長2
+ * \relates exec
  */
 void jze()
 {
@@ -730,6 +760,7 @@ void jze()
 
 /**
  * JOV命令。語長2
+ * \relates exec
  */
 void jov()
 {
@@ -745,6 +776,7 @@ void jov()
 
 /**
  * JUMP命令。語長2
+ * \relates exec
  */
 void jump()
 {
@@ -756,6 +788,7 @@ void jump()
 
 /**
  * PUSH命令。語長2
+ * \relates exec
  */
 void push()
 {
@@ -769,6 +802,7 @@ void push()
 
 /**
  * POP命令。語長1
+ * \relates exec
  */
 void pop()
 {
@@ -781,6 +815,7 @@ void pop()
 
 /**
  * CALL命令。語長2
+ * \relates exec
  */
 void call()
 {
@@ -794,6 +829,7 @@ void call()
 
 /**
  * RET命令。語長1(OPのみ)
+ * \relates exec
  */
 void ret()
 {
@@ -807,6 +843,7 @@ void ret()
 
 /**
  * SVC命令。語長2
+ * \relates exec
  */
 void svc()
 {
@@ -830,6 +867,7 @@ void svc()
 
 /**
  * 仮想マシンCOMET IIの実行
+ * \class exec
  */
 void exec()
 {