Doxygenのコメントに、classとcodeを適用
authorj8takagi <j8takagi@nifty.com>
Tue, 26 Apr 2011 11:36:48 +0000 (20:36 +0900)
committerj8takagi <j8takagi@nifty.com>
Tue, 26 Apr 2011 11:36:48 +0000 (20:36 +0900)
include/exec.h
src/assemble.c
src/cmd.c
src/cmem.c
src/exec.c

index 2f4118f..fea403b 100644 (file)
@@ -237,7 +237,8 @@ void ret();
 void svc();
 
 /**
- * COMET II仮想マシンの実行
+ * COMET II仮想マシンの実行\n
+ * 関数へのポインタで呼び出す関数は、Class Reference 参照
  */
 void exec();
 
index 00c395f..989173f 100644 (file)
@@ -21,7 +21,7 @@ ASPTR *asptr;
  * アセンブルのエラー定義
  */
 static CERR cerr_assemble[] = {
-    { 106, "operand mismatch in assemble command" },
+    { 106, "operand mismatch in CASL II command" },
     { 107, "no label in START" },
     { 108, "not command of operand \"r\"" },
     { 109, "not command of operand \"r1,r2\"" },
@@ -116,7 +116,7 @@ void printline(FILE *stream, const char *filename, int lineno, char *line)
 }
 
 /**
- * アドレスを返す
+ * アドレスを返す\n
  * アドレスには、リテラル/10進定数/16進定数/アドレス定数が含まれる
  */
 WORD getadr(const char *prog, const char *str, PASS pass)
@@ -138,8 +138,8 @@ WORD getadr(const char *prog, const char *str, PASS pass)
 }
 
 /**
- * 汎用レジスタを表す文字列 "GR[0-7]" から、レジスタ番号 [0-7] をWORD値で返す
- * 文字列が汎用レジスタを表さない場合は、0xFFFFを返す
+ * 汎用レジスタを表す文字列 "GR[0-7]" から、レジスタ番号 [0-7] をWORD値で返す\n
+ * 文字列が汎用レジスタを表さない場合は、0xFFFFを返す\n
  * is_xがtrueの場合は指標レジスタ。GR0が指定された場合は、COMET IIの仕様によりエラー発生
  */
 WORD getgr(const char *str, bool is_x)
@@ -163,7 +163,7 @@ WORD getgr(const char *str, bool is_x)
 }
 
 /**
- * 定数の前に等号(=)をつけて記述されるリテラルを返す
+ * 定数の前に等号(=)をつけて記述されるリテラルを返す\n
  * リテラルには、10進定数/16進定数/文字定数が含まれる
  */
 WORD getliteral(const char *str, PASS pass)
@@ -250,6 +250,7 @@ void writedc(const char *str, PASS pass)
 
 /**
  * アセンブラ命令STARTの処理
+ * \relates casl2cmd
  */
 void assemble_start(const CMDLINE *cmdl, PASS pass)
 {
@@ -273,6 +274,7 @@ void assemble_start(const CMDLINE *cmdl, PASS pass)
 
 /**
  * アセンブラ命令ENDの処理
+ * \relates casl2cmd
  */
 void assemble_end(const CMDLINE *cmdl, PASS pass)
 {
@@ -293,6 +295,7 @@ void assemble_end(const CMDLINE *cmdl, PASS pass)
 
 /**
  * アセンブラ命令DSの処理
+ * \relates casl2cmd
  */
 void assemble_ds(const CMDLINE *cmdl, PASS pass)
 {
@@ -311,6 +314,7 @@ void assemble_ds(const CMDLINE *cmdl, PASS pass)
 
 /**
  * アセンブラ命令DCの処理
+ * \relates casl2cmd
  */
 void assemble_dc(const CMDLINE *cmdl, PASS pass)
 {
@@ -328,7 +332,8 @@ void assemble_dc(const CMDLINE *cmdl, PASS pass)
 }
 
 /**
- * マクロ命令 "IN IBUF,LEN" をアセンブル
+ * マクロ命令 "IN IBUF,LEN" をアセンブル\n
+ * \code
  *      PUSH 0,GR1
  *      PUSH 0,GR2
  *      LAD GR1,IBUF
@@ -336,6 +341,8 @@ void assemble_dc(const CMDLINE *cmdl, PASS pass)
  *      SVC 1
  *      POP GR2
  *      POP GR1
+ * \endcode
+ * \relates casl2cmd
  */
 void assemble_in(const CMDLINE *cmdl, PASS pass)
 {
@@ -357,7 +364,8 @@ void assemble_in(const CMDLINE *cmdl, PASS pass)
 }
 
 /**
- *  マクロ命令 "OUT OBUF,LEN" をアセンブル
+ * マクロ命令 "OUT OBUF,LEN" をアセンブル\n
+ * \code
  *      PUSH 0,GR1
  *      PUSH 0,GR2
  *      LAD GR1,OBUF
@@ -368,6 +376,8 @@ void assemble_in(const CMDLINE *cmdl, PASS pass)
  *      SVC 2
  *      POP GR2
  *      POP GR1
+ * \endcode
+ * \relates casl2cmd
  */
 void assemble_out(const CMDLINE *cmdl, PASS pass)
 {
@@ -391,7 +401,9 @@ void assemble_out(const CMDLINE *cmdl, PASS pass)
     FREE(line);
 }
 
-/** マクロ命令 "RPUSH" をメモリに書き込む
+/**
+ * マクロ命令 "RPUSH" をメモリに書き込む
+ * \code
  *       PUSH 0,GR1
  *       PUSH 0,GR2
  *       PUSH 0,GR3
@@ -399,6 +411,8 @@ void assemble_out(const CMDLINE *cmdl, PASS pass)
  *       PUSH 0,GR5
  *       PUSH 0,GR6
  *       PUSH 0,GR7
+ * \endcode
+ * \relates casl2cmd
  */
 void assemble_rpush(const CMDLINE *cmdl, PASS pass)
 {
@@ -416,7 +430,8 @@ void assemble_rpush(const CMDLINE *cmdl, PASS pass)
 }
 
 /**
- * マクロ命令 "RPOP" をメモリに書き込む
+ * マクロ命令 "RPOP" をメモリに書き込む\n
+ * \code
  *      POP GR7
  *      POP GR6
  *      POP GR5
@@ -425,6 +440,8 @@ void assemble_rpush(const CMDLINE *cmdl, PASS pass)
  *      POP GR3
  *      POP GR2
  *      POP GR1
+ * \endcode
+ * \relates casl2cmd
  */
 void assemble_rpop(const CMDLINE *cmdl, PASS pass)
 {
@@ -442,9 +459,11 @@ void assemble_rpop(const CMDLINE *cmdl, PASS pass)
 }
 
 /**
- * アセンブラ言語CASL IIの命令を処理
- * 命令が表で定義されている場合はtrue、それ以外の場合はfalseを返す
- * エラー発生時は、cerrを設定
+ * アセンブラ言語CASL IIの命令を処理\n
+ * 命令が表で定義されている場合はtrue、それ以外の場合はfalseを返す\n
+ * エラー発生時は、cerrを設定\n
+ * 関数へのポインタで呼び出す関数は、Class Reference 参照
+ * \class casl2cmd
  */
 bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass)
 {
@@ -461,7 +480,7 @@ bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass)
 }
 
 /**
- * システムCOMET IIの命令をアセンブル
+ * システムCOMET IIの命令をアセンブル\n
  * アセンブルに成功した場合はtrue、失敗した場合はfalseを返す
  */
 bool assemble_comet2cmd(const CMDLINE *cmdl, PASS pass)
@@ -573,7 +592,7 @@ bool assembletok(const CMDLINE *cmdl, PASS pass)
 }
 
 /**
- * 1行をアセンブル
+ * 1行をアセンブル\n
  * passが1の場合はラベルを登録し、2の場合はラベルからアドレスを読み込む
  */
 bool assembleline(const char *line, PASS pass)
@@ -607,7 +626,7 @@ bool assembleline(const char *line, PASS pass)
 }
 
 /**
- * 指定された名前のファイルをアセンブル
+ * 指定された名前のファイルをアセンブル\n
  * アセンブル完了時はtrue、エラー発生時はfalseを返す
  */
 bool assemblefile(const char *file, PASS pass)
index 1273a09..7896d06 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -7,7 +7,7 @@
 #include "exec.h"
 
 /**
- * 機械語命令のリスト
+ * システムCOMET IIの命令表
  */
 static COMET2CMD comet2cmd[] = {
     { "NOP", NONE, 0x0, nop },
@@ -51,7 +51,7 @@ static COMET2CMD comet2cmd[] = {
 };
 
 /**
- * 命令コード配列のサイズ
+ * 命令のサイズ
  */
 static int comet2cmdsize = ARRAYSIZE(comet2cmd);
 
@@ -112,7 +112,7 @@ bool create_cmdtype_code()
 }
 
 /**
- * 命令の名前とタイプから、命令コードを返す
+ * 命令の名前とタイプから、命令コードを返す\n
  * 無効な場合は0xFFFFを返す
  */
 WORD getcmdcode(const char *cmd, CMDTYPE type)
index b5f9033..3085ea6 100644 (file)
@@ -6,7 +6,7 @@
 #include "cmem.h"
 
 /**
- * mallocを実行し、0で初期化
+ * mallocを実行し、0で初期化\n
  * メモリを確保できない場合はエラーを出力して終了
  */
 void *malloc_chk(size_t size, char *tag)
@@ -21,7 +21,7 @@ void *malloc_chk(size_t size, char *tag)
 }
 
 /**
- * callocを実行
+ * callocを実行\n
  * メモリを確保できない場合はエラーを出力して終了
  */
 void *calloc_chk(size_t nmemb, size_t size, char *tag)
index 1bc891e..36543e9 100644 (file)
@@ -74,7 +74,7 @@ bool loadassemble(const char *file)
 
 /**
  * プログラムレジスタ(PR)を表す文字列を返す
- **/
+ */
 char *pr2str(WORD pr) {
     char *str = malloc_chk(CERRSTRSIZE + 1, "pr2str.pr");
 
@@ -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,8 +261,9 @@ void lad()
 }
 
 /**
- * ADDA命令のテンプレート
+ * ADDA命令のテンプレート\n
  * 汎用レジスタrに値valを算術加算
+ * \relates exec
  */
 void adda(WORD r, WORD val)
 {
@@ -280,6 +286,7 @@ void adda(WORD r, WORD val)
 
 /**
  * ADDA命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void adda_r_adr_x()
 {
@@ -292,6 +299,7 @@ void adda_r_adr_x()
 
 /**
  * ADDA命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void adda_r1_r2()
 {
@@ -303,6 +311,7 @@ void adda_r1_r2()
 
 /**
  * SUBA命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void suba_r_adr_x()
 {
@@ -315,6 +324,7 @@ void suba_r_adr_x()
 
 /**
  * SUBA命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void suba_r1_r2()
 {
@@ -325,8 +335,9 @@ void suba_r1_r2()
 }
 
 /**
- * ADDL命令のテンプレート
+ * ADDL命令のテンプレート\n
  * 汎用レジスタrに値valを論理加算
+ * \relates exec
  */
 void addl(WORD r, WORD val)
 {
@@ -345,6 +356,7 @@ void addl(WORD r, WORD val)
 
 /**
  * ADDL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void addl_r_adr_x()
 {
@@ -357,6 +369,7 @@ void addl_r_adr_x()
 
 /**
  * ADDL命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void addl_r1_r2()
 {
@@ -368,6 +381,7 @@ void addl_r1_r2()
 
 /**
  * SUBL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void subl_r_adr_x()
 {
@@ -378,8 +392,10 @@ void subl_r_adr_x()
     sys->cpu->pr += 2;
 }
 
+
 /**
  * SUBL命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void subl_r1_r2()
 {
@@ -391,6 +407,7 @@ void subl_r1_r2()
 
 /**
  * AND命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void and_r_adr_x()
 {
@@ -403,6 +420,7 @@ void and_r_adr_x()
 
 /**
  * AND命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void and_r1_r2()
 {
@@ -414,6 +432,7 @@ void and_r1_r2()
 
 /**
  * OR命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void or_r_adr_x()
 {
@@ -426,6 +445,7 @@ void or_r_adr_x()
 
 /**
  * OR命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void or_r1_r2()
 {
@@ -437,6 +457,7 @@ void or_r1_r2()
 
 /**
  * XOR命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void xor_r_adr_x()
 {
@@ -449,6 +470,7 @@ void xor_r_adr_x()
 
 /**
  * XOR命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void xor_r1_r2()
 {
@@ -459,7 +481,7 @@ void xor_r1_r2()
 }
 
 /**
- * CPA命令のテンプレート
+ * CPA命令のテンプレート\n
  * 汎用レジスタrの内容と値valを算術比較
  */
 void cpa(WORD r, WORD val)
@@ -474,6 +496,7 @@ void cpa(WORD r, WORD val)
 
 /**
  * CPA命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void cpa_r_adr_x()
 {
@@ -486,6 +509,7 @@ void cpa_r_adr_x()
 
 /**
  * CPA命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void cpa_r1_r2()
 {
@@ -496,7 +520,7 @@ void cpa_r1_r2()
 }
 
 /**
- * CPL命令のテンプレート
+ * CPL命令のテンプレート\n
  * 汎用レジスタrの内容と値valを論理比較
  */
 void cpl(WORD r, WORD val)
@@ -514,6 +538,7 @@ void cpl(WORD r, WORD val)
 
 /**
  * CPL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void cpl_r_adr_x()
 {
@@ -526,6 +551,7 @@ void cpl_r_adr_x()
 
 /**
  * CPL命令 - オペランドr1,r2。語長1
+ * \relates exec
  */
 void cpl_r1_r2()
 {
@@ -536,7 +562,8 @@ void cpl_r1_r2()
 }
 
 /**
- * SLA命令 - オペランドr,adr,x。語長2
+ * SLA命令 - オペランドr,adr,x。語長2\n
+ * \relates exec
  * 算術演算なので、第15ビットは送り出されない
  */
 void sla()
@@ -570,9 +597,10 @@ void sla()
 }
 
 /**
- * SRA命令 - オペランドr,adr,x。語長2
- * 算術演算なので、第15ビットは送り出されない
+ * SRA命令 - オペランドr,adr,x。語長2\n
+ * 算術演算なので、第15ビットは送り出されない\n
  * 空いたビット位置には符号と同じものが入る
+ * \relates exec
  */
 void sra()
 {
@@ -609,6 +637,7 @@ void sra()
 
 /**
  * SLL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void sll()
 {
@@ -639,6 +668,7 @@ void sll()
 
 /**
  * SRL命令 - オペランドr,adr,x。語長2
+ * \relates exec
  */
 void srl()
 {
@@ -670,6 +700,7 @@ void srl()
 
 /**
  * JPL命令。語長2
+ * \relates exec
  */
 void jpl()
 {
@@ -685,6 +716,7 @@ void jpl()
 
 /**
  * JMI命令。語長2
+ * \relates exec
  */
 void jmi()
 {
@@ -700,6 +732,7 @@ void jmi()
 
 /**
  * JNZ命令。語長2
+ * \relates exec
  */
 void jnz()
 {
@@ -715,6 +748,7 @@ void jnz()
 
 /**
  * JZE命令。語長2
+ * \relates exec
  */
 void jze()
 {
@@ -730,6 +764,7 @@ void jze()
 
 /**
  * JOV命令。語長2
+ * \relates exec
  */
 void jov()
 {
@@ -745,6 +780,7 @@ void jov()
 
 /**
  * JUMP命令。語長2
+ * \relates exec
  */
 void jump()
 {
@@ -756,6 +792,7 @@ void jump()
 
 /**
  * PUSH命令。語長2
+ * \relates exec
  */
 void push()
 {
@@ -769,6 +806,7 @@ void push()
 
 /**
  * POP命令。語長1
+ * \relates exec
  */
 void pop()
 {
@@ -781,6 +819,7 @@ void pop()
 
 /**
  * CALL命令。語長2
+ * \relates exec
  */
 void call()
 {
@@ -794,6 +833,7 @@ void call()
 
 /**
  * RET命令。語長1(OPのみ)
+ * \relates exec
  */
 void ret()
 {
@@ -807,6 +847,7 @@ void ret()
 
 /**
  * SVC命令。語長2
+ * \relates exec
  */
 void svc()
 {
@@ -830,6 +871,7 @@ void svc()
 
 /**
  * 仮想マシンCOMET IIの実行
+ * \class exec
  */
 void exec()
 {