上に戻る
2.nesasmを利用してみる
概要
 nesアセンブラの一つである、nesasmを実際に使ってみようという章。
nesasmとは
 nesアセンブラにも色々あると思いますが、このコンテンツでは私が利用しているnesasmの話のみを行います。というか、他のアセンブラについて知りません。
 nesasmはCUIアプリケーションです。CUIというものに馴染みのない方は多いと思いますが、それを解説し始めると、まず私の手に負えない上(※基本的なことしか知らんよ)、それだけでウェブサイト一つで済まない内容になるので、ここでは「とりあえず使えればいいや」的な説明となります。
アセンブラを使うということ
 私達がよく用いる事務ソフトや、あるいは、こういう事が好きな人が用いるバイナリエディタは、作業中ずっとアプリケーションを起動し続け、ユーザーはソフトにコマンドを逐次送り続ける作りになっています。しかしアセンブラやコンパイラというのは、予め作っておいたテキストファイルを処理する時、つまり仕上げ時のみ起動しすぐに終了します。そして結果だけを残します。
 つまり、アセンブラを使う、といっても実際に使うのは最後だけで、実際にはテキストエディタと睨めっこしている時間のほうがよほど長いわけです。
nesasmを入手
 えー、テキトーに、ググって入手して下さい(汗) 私は、v2.51というものを利用しています。NESASM.EXEが手に入ればOKです。そういえば気にしていませんでしたが、これはフリーウェアですよね(汗)
 なお、このソフトは非常に古いものであり、64bit環境のWindowsでは動作しないそうです。探せば64bit環境でも利用できるnesasmが見つかるそうです。

 しかし、NESASM.EXEはCUIなのでした。Windowsの様なGUIに慣れた人が真っ先に陥り、そして断念するポイントとして、NESASM.EXEをとりあえずダブルクリックし、そして、なんか黒い窓が一瞬でて消えて「???」となる、という点があります。一体何が起きたのだろう?
CUIって何?
 なんだろ(え?) 詳細は私は知らんので、ウィキペディアでも読んでおきましょう。尚、私は読んでいません(あぁ?)

http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9

 さて、まあ雑に説明すると、黒い画面とテキストだけで完結している、古くから利用されているアプリケーションの一つの形態であるとしておきます。(実際には色とかはカスタマイズできるし、テキストも単色以外も出力できるのですが)
コメント:
このコンテンツではCUIという言い方で統一しますが、上のウィキペディアの通り、CUIは和製英語のようです。海外の方と話すときはCLIと呼ぶのが良いのでしょう。
 こういったCUIアプリケーションには、引数(ひきすう)を与えて起動するのが普通です。引数というのは、「どれを処理する?」「どうやって処理する」という命令のオプションの指定です。そして、引数を無し、例えば、単にダブルクリックして起動した時は、「こういう引数を与えて動かしてね」というマニュアル(というか簡易説明)が出るのが普通です。
 つまり、単にダブルクリックして起動した時に一瞬出た窓は、その引数の与え方の簡易説明が出て、で、アプリケーションはそこで終わってしまったので、窓が消えてしまったわけです。
じゃあどうすんのよ?
 引数を与えてやりましょう。しかし、本コンテンツでは、CUIアプリケーションを操作するために必要な「コマンドプロンプト」(ターミナル)の説明を1からやる気はありませんし、私にはその能力もありません。そこでバッチを使い、そのバッチをダブルクリックすれば目的の処理を出来るようにしてしまいます。
バッチ?
 バッチとは、.batという拡張子のテキストファイルです。それをダブルクリックすればウインドウズに色々な仕事をさせることができます。尚、予め言っておきますと、当然、悪用もできるので、怪しげなところから入手したバッチを叩く時は良く考えて行いましょう。
 今回はバッチを私が作りました。更に、アセンブルするソースファイルも含めました。試しに、その「バッチ」を利用して、アセンブルを実際に実行してみましょう。
アセンブルしてみる
 とりあえず、ここの[2-10]をお持ち下さい
 そして、解凍して出来た2つのファイル同じフォルダNESASM.EXEをコピーします。そして、do.batをダブルクリックして下さい……どうでしょうか。

out.txt
DaiNiHo.nes
 の2つのファイルが出力されたのではないでしょうか。もし2つのファイルが確かに出力されたなら成功です。
コメント:
 え?されない?……うーんw もし、テキストエディタが起動してしまうようなら、do.batの上で右クリックをして下さい。そして「開く」といった物があったらそれをクリックすれば、期待する動作が行えるかもしれません。
 そういったこともない場合……どうしよう(汗) ご、ご連絡をお願い致します。(但し返答できる期待薄)
何をやったの?

do.bat
 を利用することで、

NESASM.EXE
 を引数付きで実行しました。そして、nesasmは、

DaiNiHo.asm
 をアセンブルしました。そして、その結果として

out.txt
DaiNiHo.nes
 が出力されたのです。
 試しに、DaiNiHo.nesを適当なエミュで実行してみましょう。灰色一色の画面ですが、音がなったはずです。DaiNiHo.asmは私が打ち込んだ音を鳴らすだけのプログラムだったのです。
do.batの中身
 do.batの中身を覗いてみましょう。適当なテキストエディタで、do.batを開きます。やり方は、まずテキストエディタの方を先に起動して、その「ファイル」→「開く」でdo.batを開くなり、あるいは、起動したテキストエディタに、do.batのアイコンをドロップするという方法でも大抵行うことができます。
 もし正しく開けた場合、以下の2行のテキストが書かれていると思います。

del DaiNiHo.nes
nesasm.exe DaiNiHo.asm >out.txt
 このバッチは2つの処理を行います。
 1行目でDaiNiHo.nesが既にあったら削除します。delコマンドというものを利用していますが詳細は省略します。
 2行目でNESASM.EXEを引数付きで呼び出しています。ここでは引数としてDaiNiHo.asmを与えています。これにより、nesasmは「何を」アセンブルすればいいかがわかったので、アセンブルを実行し、その結果を出力したのです。
 尚、>out.txtは引数ではありません。「out.txt」という名前で、アセンブルの報告テキストを出力しなさい、という命令です。(これをリダイレクトと言いますが説明はしません)実際、out.txtにはアセンブル時のエラーメッセージなどが、あれば出力されます。

 このバッチに関する説明は以上!ここでは、DaiNiHo.asmというファイルをアセンブルするようにしましたが、ここまでの説明が飲み込めた方なら、他のファイルをアセンブルするには、どのようにdo.batを書き換えたら良いかすぐに分かるでしょう。
 なお、パス(フォルダの階層)の問題が出てくると、厄介さが30割くらい増しますので、一つのプロジェクト毎に、一つのフォルダに必要なファイルをまとめてぶち込んで処理して、パスの問題なんてなかったものとしてしまいましょう。NESASM.EXEを大量に抱えたくらいで逼迫するほど小さなハードディスクをお使いの方は今は居ないでしょう。
オチ
 nesasmがクラシカルな形式である「CUIアプリケーション」という形式であり、動かすためには「バッチ」を使うと簡単だという説明をしました。普段からCUIに慣れていない人はいきなり面食らったかもしれません。しかし、GUIに親しんだ方でも、CUIを上手く扱えるようになると、各種電算処理の能率を上げ得るので、興味があったらそちらはそちらで調べてみると面白いかもしれませんよ?
 ……ともあれ、以上でnesasmを利用する準備は整いました。次回からいよいよnesasmを改造に利用して行きましょう。
(243)2013年5月25日 プレさ兵衛
inserted by FC2 system