Doxygenコメントを修正
authorj8takagi <j8takagi@nifty.com>
Wed, 20 Jun 2018 16:08:27 +0000 (01:08 +0900)
committerj8takagi <j8takagi@nifty.com>
Wed, 20 Jun 2018 16:08:27 +0000 (01:08 +0900)
src/assemble.c
src/casl2rev.c
src/doxygen.c

index 0b075b0..68a3457 100644 (file)
@@ -34,7 +34,7 @@ void printline(FILE *stream, const char *filename, int lineno, char *line);
 WORD getadr(const char *prog, const char *str, PASS pass);
 
 /**
- * @brief 汎用レジスタを表す文字列 からレジスタ番号を返す
+ * @brief 汎用レジスタを表す文字列からレジスタ番号を返す
  *
  * @brief 文字列が汎用レジスタを表さない場合は、0xFFFFを返す
  *
index 38bb16c..36e58c9 100644 (file)
@@ -1,6 +1,24 @@
 #include "package.h"
 #include "exec.h"
 
+/**
+ * @brief 汎用レジスタの番号からレジスタを表す文字列を返す
+ *
+ * @return 汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか
+ *
+ * @param word レジスタ番号[0-7]を表すWORD値
+ */
+char *grstr(WORD word);
+
+/**
+ * @brief CASL IIのオブジェクトファイルを逆アセンブルし、標準出力へ出力する
+ *
+ * @return 正常終了時は0、異常終了時は0以外
+ *
+ * @param *file オブジェクトファイルのファイル名
+ */
+bool disassemble(const char *file);
+
 char *grstr(WORD word)
 {
     assert(word <= 7);
@@ -15,7 +33,7 @@ bool disassemble(const char *file)
     FILE *fp;
     WORD i = 0, w, cmd, r, x, r1, r2, adr;
     CMDTYPE cmdtype = 0;
-    char *cmdname;
+    char *cmdname, *g1, *g2;
 
     assert(file != NULL);
     if((fp = fopen(file, "rb")) == NULL) {
@@ -42,11 +60,13 @@ bool disassemble(const char *file)
             fprintf(stdout, "\t%s\t", cmdname);
             if(cmdtype == R_ADR_X) {
                 r = (w & 0x00F0) >> 4;
-                fprintf(stdout, "%s,", grstr(r));
+                fprintf(stdout, "%s,", g1 = grstr(r));
+                FREE(g1);
             }
             fprintf(stdout, "#%04X", adr);
             if((x = w & 0x000F) != 0) {
-                fprintf(stdout, ",%s", grstr(x));
+                fprintf(stdout, ",%s", g1 = grstr(x));
+                FREE(g1);
             }
             fprintf(stdout, "\t\t\t\t; #%04X: #%04X #%04X", i, w, adr);
             i += 2;
@@ -55,10 +75,13 @@ bool disassemble(const char *file)
             if(cmdtype == R1_R2) {
                 r1 = (w & 0x00F0) >> 4;
                 r2 = w & 0x000F;
-                fprintf(stdout, "\t%s,%s", grstr(r1), grstr(r2));
+                fprintf(stdout, "\t%s,%s", g1 = grstr(r1), g2 = grstr(r2));
+                FREE(g1);
+                FREE(g2);
             } else if(cmdtype == R_) {
                 r = (w & 0x00F0) >> 4;
-                fprintf(stdout, "\t%s", grstr(r));
+                fprintf(stdout, "\t%s", g1 = grstr(r));
+                FREE(g1);
             }
             fprintf(stdout, "\t\t\t\t; #%04X: #%04X", i++, w);
         }
@@ -80,7 +103,7 @@ static struct option longopts[] = {
 };
 
 /**
- * @brief disassembleコマンドのメイン
+ * @brief casl2revコマンドのメイン
  *
  * @return 正常終了時は0、異常終了時は1
  *
index 8fffe8d..cc084fe 100644 (file)
@@ -26,6 +26,8 @@
  * - include/hash.h
  * - include/cerr.h
  * - include/cmem.h
+ * - include/package.h
+ * - include/version.h
  *
  * \section Webサイト
  * http://www.j8takagi.net/yacasl2/