1-3 MAKEを使わないアセンブル


ここでは、ソースコードをアセンブル・リンクし、実際にビジュアルメモリで実行できる形式のファイルにビルドします。

注意

アセンブラやリンカは、EMSを利用します。あらかじめMS-DOSプロンプトのプロパティーを表示させ、[メモリ]タブの[EMSメモリ]グループで、EMSメモリを使えるようにしてください。

CONFIG.SYSのEMM386.EXEの組み込みで、NOEMSオプションを指定している場合、EMSメモリが利用できないので、NOEMSオプションを削除する必要があります。

1-3-1 アセンブル

MS-DOSのコマンドプロンプトから、M86Kコマンドを実行しソースコードをアセンブルします。

たとえば、ソースコードのファイル名が“TEST.ASM”の場合は、カレントドライブ、カレントディレクトリを“TEST.ASM”のあるディレクトリにし、次のようにしてアセンブルします。

C>M86K TEST.ASM

SANYO (R) LC86K series Macro Assembler Version 4.0K

Copyright (c) SANYO Electric Co., Ltd. 1989-1995. All rights reserved.
Pass 1 ..... Source file: TEST Chip name: LC868700 ROM size: 60K bytes RAM size: 512 bytes XRAM size: 196 bytes Pass 2 .....

アセンブルが終わると、拡張子が“.OBJ”というオブジェクトファイルが作成されます。

また“GHEAD.ASM”も同様にしてアセンブルし、“GHEAD.OBJ”を作ります。

アセンブルの途中で次のようなエラーメッセージが表示されたら、メッセージに表示される番号の行に何らかの問題があることを示しています。

Pass 1 .....
TEST.ASM(93):                   move            #080h,b
** Error, syntax error near #
0 warning(s) and 1 error(s) were detected. Further execution aborted.

ソースコードを修正して、警告やエラーが発生しないように修正してください。

参照

アセンブラM86Kの警告メッセージやエラーメッセージについては『ビジュアルメモリプログラマーズマニュアル』を参照してください。

注意

“GHEAD.ASM”相当のソースを自分のソースに埋め込む場合を除き、“GHEAD.OBJ”とユーザープログラムのオブジェクトファイルが必要です。なお“GHEAD.ASM”には、割り込みベクタや割り込みサービスルーチン、BIOS呼び出しプログラムなどが記述されており、次に実行するリンカによってユーザープログラムの下位アドレスに配置されます。

1-3-2 リンク

アセンブラによって作成したオブジェクトファイルと、BIOSが書き込まれている内部ROMのアドレスを示すための“GDUMMY.OBJ”ファイルを用意し、リンカを使ってEVA形式のファイルを作成します。

ノート

EVA形式のファイルは、専用のデバッグ用ハードウェアを利用するためのファイルです。ビジュアルメモリ用アプリケーションの開発においては、ビジュアルメモリシミュレータを利用しますので、一時的なテンポラリファイルと考えてください。

リンカを実行する前に“GDUMMY.OBJ”のパスをメモに控えておきます。コマンドラインから次のように入力し、それぞれのオブジェクトファイルをリンクします。

D>L86K GHEAD.OBJ IFORK.OBJ TEST.OBJ -C=200 C:\VM_SDK\LC86K\OBJ\GDUMMY.OBJ,
TEST.EVA,,,

SANYO (R) LC86K series Linkage Loader Version 6.00c

Copyright (c) SANYO Electric Co., Ltd. 1989-1997. All right reserved.
Pass 1 ... Pass 2 ... Pass 3 ... Link process complete !! TEST.EVA created

-C=200というオプションは、その直後に指定するユーザープログラムをフラッシュメモリの何番地に配置するかを指定するオプションです。

エラーメッセージが表示された場合は、“GHEAD.ASM”やユーザープログラムのソースを見直します。BIOSを呼び出す際のラベルを中心にチェックしてみてください。

1-3-3 EVAファイルをHEXファイルに変換

リンカによって、拡張子“.EVA”という1つのファイルにまとめられました。このファイルをビジュアルメモリやビジュアルメモリシミュレータで読み込めるファイルに変換します。コマンドラインから、次のように入力します。

D>E2H86K TEST.EVA
SANYO LC86000 Series EVA-file to HEX-file generator  V1.21A

Copyright (C) SANYO Electric Co.,Ltd. 1992-1997
EVA file name: TEST.EVA ROM data packed: FF(hex) Chip name: LC868716 All ROM(64KB) block records: 03875 All ROM(64KB) block records: 04096 Module name: GHEAD External CSEG(In) 0000 - 0002 records: 00001 Module name: External CSEG(In) 0003 - 0004 records: 00001 Module name: External CSEG(In) 000B - 000C records: 00001 Module name: External CSEG(In) 0013 - 0014 records: 00001 Module name: External CSEG(In) 001B - 001C records: 00001 Module name: External CSEG(In) 0023 - 0024 records: 00001 Module name: External CSEG(In) 002B - 002C records: 00001 Module name: External CSEG(In) 0033 - 0034 records: 00001 Module name: External CSEG(In) 003B - 003C records: 00001 Module name: External CSEG(In) 0043 - 0044 records: 00001 Module name: External CSEG(In) 004B - 0057 records: 00002 Module name: External CSEG(In) 0100 - 0105 records: 00001 Module name: External CSEG(In) 0110 - 0115 records: 00001 Module name: External CSEG(In) 0120 - 0125 records: 00001 Module name: External CSEG(In) 0130 - 013B records: 00001 Module name: External CSEG(In) 01F0 - 01F4 records: 00001 Module name: IFORK External CSEG(In) 01F5 - 0474 records: 00041 Module name: TEST External CSEG(In) 0475 - 051C records: 00011

オプションスイッチなどはありません。

このコマンドを実行すると、拡張子が“.H00”と“.HEX”というファイルが作成されます。

注意

通常は、H00ファイルのみを使います。

H00ファイルができあがったところで、ビジュアルメモリシミュレータにて動作チェックを行います。ただし、ビジュアルメモリシミュレータは、実機と同じクロックを持ち合わせていないため、タイミングのチェックには不向きです。

プログラムのロジカルチェックはシミュレータ、タイミングや速度をチェックする場合は実機というように、デバッグのフェーズごとに分けて利用してください。

参照

ビジュアルメモリシミュレータについては『ビジュアルメモリシミュレータガイド』を参照してください。

1-3-4 HEXファイルをバイナリファイルに変換

E2H86Kで変換したH00ファイルを、H2BIN.EXEでバイナリファイル(拡張子“.BIN”)に変換します。

コマンドラインから、次のように入力します。

H2BIN TEST.H00 TEST.BIN

オプションスイッチなどはありません。第2パラメータの“TEST.BIN”は省略してもかまいません。省略した場合は、拡張子が自動的に“.BIN”になります。

これでビジュアルメモリの実機に読み込ませるファイルができました。

1-3-5 MAKEファイルを作る

MAKEコマンド用に、MAKEファイルを作成すると、アセンブル・リンク・ファイル形式の変換という一連の手順を、バッチ処理化することができます。

どのコマンドにどんなファイルを入れると、どんなファイルが出力されるかという、依存情報をMAKEファイルとして記述し、MAKEコマンドを実行すると、入れるファイルと出力されるファイルのタイムスタンプを比較し、更新のあったファイルのみをアセンブル・リンクします。

MAKEコマンドの詳細は『ビジュアルメモリ プログラマーズマニュアル』を参照してください。

注意

MAKEコマンドは、さまざまな開発環境に添付されているので、お使いのコンピュータに複数の開発環境がインストールされている場合は、コマンド検索パス(環境変数PATH)の順序を変更するか、MAKEコマンドのファイル名を変更するなどしてください。

たとえば、先の一連の手順をMAKEするには、次のようなメイクファイルを作成します。ここでは、ファイル名を“TEST.MAK”とすることにします。

TARGET = test
OBJECTS = ifork.obj test.obj 
HEADOBJ = ghead.obj 
SYSOBJ = $(TOOL86)\obj\gdummy.obj

.asm.obj:
	m86k $*

$(TARGET).eva: $(HEADOBJ) $(OBJECTS)
	l86k $(HEADOBJ) $(SYSOBJ) $(OBJECTS),$(TARGET).eva,,,

$(TARGET).h00: $(TARGET).eva
	e2h86k $(TARGET)

$(TARGET).hex: $(TARGET).h00
	h2bin $(TARGET).h00

このメイクファイルを次のようにMAKEに指定してビルドを行います。こうすることで、更新のあったソースファイルがアセンブルされビルドが行われます。

注意

作成したMAKEファイルは、/Fオプションを付けてMAKEを実行してください。コマンドラインからMAKE /F <MAKEファイル名>というように入力します。

D>MAKE /F TEST.MAK

SANYO LC86000 Series MAKE Utility Version 1.00A

Copyright (C) SANYO Electric Co.,Ltd. 1993-1994 All rights reserved.
m86k GHEAD SANYO (R) LC86K series Macro Assembler Version 4.0K

Copyright (c) SANYO Electric Co., Ltd. 1989-1995. All rights reserved.
Pass 1 ..... Source file: GHEAD Chip name: LC868700 ROM size: 60K bytes RAM size: 512 bytes XRAM size: 196 bytes Pass 2 ..... m86k IFORK SANYO (R) LC86K series Macro Assembler Version 4.0K

Copyright (c) SANYO Electric Co., Ltd. 1989-1995. All rights reserved.

《以降、リンカ→E2H86K→H2BINが実行され、バイナリファイルが生成されます》


[]   [INDEX]   []

(C)SEGA ENTERPRISES, LTD., 1998