-/* オペランド */
-typedef struct {
- int opdc;
- char *opdv[OPDSIZE];
-} OPD;
-
-/* 命令行 */
-typedef struct {
- char *label;
- char *cmd;
- OPD *opd;
-} CMDLINE;
-
-/* 命令がマクロ命令の場合はメモリに書込
- 書込に成功した場合TRUE、それ以外の場合はFALSEを返す */
-bool macrocmd(const CMDLINE *cmdl, PASS pass);
-
-/* 「,」区切りの文字列から、オペランドを取得する */
-OPD *opdtok(const char *str);
-
-/* 1行を解析する */
-CMDLINE *linetok(const char *line);
-
-/* 汎用レジスタを表す文字列「GR[0-7]」から、レジスタ番号[0-7]をWORD値で返す */
-/* 文字列が汎用レジスタを表さない場合は、0xFFFFを返す */
-/* is_xがtrueの場合は指標レジスタ。GR0は、COMET IIの仕様により、エラー発生 */
-WORD getgr(const char *str, bool is_x);
-
-/* 10進定数をWORDに変換 */
-WORD getint(const char *str);
-
-/* 16進定数をWORDに変換 */
-WORD gethex(const char *str);
-
-/* アドレスを返す */
-/* アドレスには、リテラル/10進定数/16進定数/アドレス定数が含まれる */
-WORD getadr(const char *prog, const char *str, PASS pass);
-
-/* 定数の前に等号(=)をつけて記述される、リテラルを返す */
-/* リテラルには、10進定数/16進定数/文字定数が含まれる */
-WORD getliteral(const char *str, PASS pass);
-
-/* COMET IIのメモリにアドレス値を書き込む */
-bool writememory(WORD word, WORD adr, PASS pass);
-
-/* ' 'で囲まれた、文字定数をメモリに書込 */
-/* DC命令とリテラルで使い、リテラルの場合はリテラル領域に書込 */
-void writestr(const char *str, bool literal, PASS pass);
-
-/* アセンブラ命令DCをメモリに書込 */
-void writeDC(const char *str, PASS pass);
-
-/* 命令がアセンブラ命令の場合は処理を実行する。
- 実行に成功した場合TRUE、それ以外の場合はFALSEを返す */
-bool assemblecmd(const CMDLINE *cmdl, PASS pass);
-
-/* 命令のコードを返す
- 命令が無効な場合は0xFFFF */
-WORD getcmd(CMDTYPE type, const char *cmd);
-
-/* 命令が機械語命令の場合は処理を実行
- 実行に成功した場合TRUE、それ以外の場合はFALSEを返す */
-bool cometcmd(const CMDLINE *cmdl, PASS pass);
-
-/* 1行のアセンブル */
-/* アセンブル完了時はTRUE、未完了時はFALSEを返す */
-bool assembleline(const CMDLINE *cmdl, PASS pass);
-
-/* 指定された名前のファイルをアセンブル */
-/* 2回実行される */
-bool assemble(const char *file, PASS pass);
-
-/* マクロ命令「IN IBUF,LEN」をメモリに書込 */
-bool writeIN(const char *ibuf, const char *len, PASS pass);
-
-/* マクロ命令「OUT OBUF,LEN」をメモリに書込 */
-bool writeOUT(const char *obuf, const char *len, PASS pass);
-
-/* マクロ命令「RPUSH」をメモリに書込 */
-bool writeRPUSH(PASS pass);
-
-/* マクロ命令「RPOP」をメモリに書込 */
-bool writeRPOP(PASS pass);
+/**
+ * @brief アセンブルエラーをエラーリストに追加する
+ *
+ * @return なし
+ */
+void addcerrlist_assemble();
+
+/**
+ * @brief 指定された名前のファイルをアセンブル\n
+ *
+ * 1回目ではラベルを登録し、2回目ではラベルからアドレスを読み込む
+ *
+ * @return アセンブル完了時はtrue、エラー発生時はfalseを返す
+ *
+ * @param *file ファイル名
+ * @param pass アセンブラが何回目かを表す数
+ */
+bool assemblefile(const char *file, PASS pass);
+
+/**
+ * @brief 指定された1つまたは複数のファイルを2回アセンブル
+ *
+ * @return アセンブル完了時はtrue、エラー発生時はfalseを返す
+ *
+ * @param filec アセンブルするファイルの数
+ * @param filev アセンブルするファイル名の配列
+ * @param adr アセンブル結果を格納するアドレス
+ */
+bool assemble(int filec, char *filev[], WORD adr);
+
+/**
+ * @brief ファイルにアセンブル結果を書き込む
+ *
+ * @return なし
+ *
+ * @param *file ファイル名
+ */
+void outassemble(const char *file);