Windows上でJWASM(フリーのMASM6互換アセンブラ)と98エミュを使ってのプログラム作成に関するエトセトラ。また、PC-98プログラミング関係の書籍紹介とか自作ソフトの進捗とかも。

JWASMの導入

8/27 COMファイルの作り方を追記

ダウンロード

フリーのアセンブラ、JWASMの日本語情報はこちらで、ここからダウンロードへのリンクもある。
JWasm212bw_140105.zipはウィンドウズ用のファイルで、このサイトで使っているのはコレ。
JWasm212bd_140105.zipはDOS用のファイルの模様。
JWasm212s_140105.zipはソースファイル。

ウィンドウズ用ファイルを展開して出来るファイルは以下の通りで、リンカなどは入っていない。

JWASM.exeがアセンブラ本体で、objを作ることが出来る。

リンカ

.objをexeにするにはリンカを用意すればよく、これはネット上に色々あるようだが、一つ注意がある。
DOSプログラムはwindowsで標準のcoff形式ではなくOMF形式の.objとなるので、.libを作るのならOMFに対応している必要があるのだ。
MASM32の付属のものなどで以前テストした所、MASM6のリンカ自体はOMFに対応しているようだが、lib.exeが対応していなかったのでライブラリを使うことが出来なかった。
今回はJWASMの兄弟版である OpenWasmC++を使ってみる。
追記 {MS-DOS形式のファイルでは、一つの.objを一つのまとまりと見なしてそのままCODEセグメントにくっつけてしまうため、一つのファイルに沢山の機能を盛り込むとファイル容量に無駄が出てしまう事が多々あります。 ファイルが増えて面倒だと思いますが、基本的に一つのPROCのソースは一つのファイルにすると回避できるようです。} マクロは一つでもOKですし、.lib自体も1つで大丈夫です。(ただし、.lib自体のファイル容量はセグメントが分かれて保存される分大きくなります)

OWC++は上記ページから落としたexeを開くと、インストールが開始される。
途中でdos用やらwindows用やらの選択が出てくるが、実行環境を聞かれているっぽいのでwindowsNT用だけでインストールすればよい。
インストールしたフォルダのbinntフォルダを開くと、ずらっと色々表示されるので、必要な以下の物だけJWASMのフォルダにコピーする

使い方

JWASMやJLINKはコマンドラインアプリなので、.batファイルを作ると作業が楽。
この時注意することは、JWASMのオプションはMASM6互換だがJLINKはそうではないこと。
追記:LINK.exeだったかがマイクロソフト互換のコマンドをJLINKの呼び出しに変換してくれるっぽいので、それを使っても良さそうです。私は使ってないのでよくわかりませんが。

例1 通常の場合
jwasm /Fl 03title.TXT
WLINK File 03title.obj FORM DOS
pause

例2 ライブラリや他のobjを使う場合
jwasm /Fl 03title.TXT
WLINK File 03title.obj Library 03.lib FORM DOS
pause

例3 ライブラリに使うファイルを新規追加
jwasm 03libGraph.TXT
Wlib 03 + 03Graph
pause

例4 ライブラリに使うファイルを更新
jwasm 03libGraph.TXT
Wlib 03 -+ 03Graph
pause

例5 COMファイル形式にする場合
jwasm /Fl 03title.TXT
WLINK File 03title.obj FORM DOS COM
pause

最後のpauseは途中の経過の確認の為に入れているが、無くてもよい。

また、ライブラリを作る場合には、ソースをドラッグ&ドロップでJWASMに放り込んで.OBJにして、ライブラリを一律更新するだけのbatを作るとらくそう。

以上のような内容のtxtファイルの拡張子を.batに変えて、あとはそれをクリックすれば簡単にコンパイルが行える。
ソースは.asmが正式だが、.txtでもメモ帳や各種エディタで編集した物がそのまま使えるので、VCとかとの兼ね合いを考えるとその方が楽であろう。

コンパイルの結果、エラーがなければexeが出来る。
もしエラーがあれば.errファイルが出来るが、これをメモ帳で開くとエラーの行と理由が書かれているのでデバッグに活用できる。

Menu

管理人/副管理人のみ編集できます