平成26年4月 1日
作業環境の準備
実際にプログラムを始める前に使用するCコンパイラの動作環境を整えます。
具体的には
・コンパイラをPCにインストールする
・"hello world"プログラムを正しくコンパイルできるようにする
・上記のHEXファイルを出力させる(ROM・RAM領域のアドレス設定方法・スタートアッププログラムの指定方法などを確かめる)
・俗にいう"LEDピカピカ"などプログラムで簡単な動作を行い、期待通りの動作を確かめる。
を行います。
まず、コンパイラをPCにインストールからですが、こちらはSuperAKI-80付属のCD内のSETUP.EXEを実行すればすぐに終わります。
次にインストールされたプログラムのヘルプを読んでいきます。ヘルプファイルはDOCディレクトリに5個あるので気長に読んでいきます。ヘルプファイルを読むだけでは意味を理解できない部分も多いので、これと平行してsampleディレクトリにあるプロジェクトを開いてプロジェクトに登録が必要なファイルの種類やその中味を見ていきます。
この開発環境では、ROM化に関連する多くの設定を拡張子が.xlsなるファイルに記述するようになっています。また、このファイル内にリンクする全てのオブジェクトとライブラリのファイル名を登録する必要があるようです。以下にDEMOプロジェクトの設定ファイルを示します。
;-------------------------------+
;RAM Area|
;-------------------------------+
/ADDR=8000
/SECT=D_*|COMM(data=_DATA)
/SECT=B_*|COMM(bss=_BSS)
/SECT=_STACK
;-------------------------------+
;ROM Area|
;-------------------------------+
/ADDR=0
/SECT=C_*|CODE
/SECT=I_*
;-------------------------------+
;init data section+
;-------------------------------+
/init_section = _INIT_DATA(_DATA)
;-------------------------------+
;linkage module|
;-------------------------------+
/Name=DEMO
/modl=startup
/modl=demo
/modl=ass_power
/slib=C:\Progra~1\akiz80\LIB\z80\CS\csze1.xlb <-- 絶対パスによる指定になっている
詳細はもっと詳しくヘルプを読み込む必要がありますが、この設定ファイルにROMの開始アドレス、RAMの開始アドレス、リンクするファイル名が記述されています。使い勝手として気になったのは、ライブラリファイルは絶対パスで指定されています。このためにデフォルト以外のフォルダにプログラムをインストールすると、そのままではリンクに失敗します。上記リストはパスを変更してあります。できれば相対指定したい所です。
また、出力されるHEXファイルの拡張子は.xhoとなるようです。出来るなら.HEXとして出力させたいのですが、今はそのままで実際に出力される(ファイルの更新日時が更新される)のを確認します。 取り合えず、上記.xlsファイルのパス指定を修正することでコンパイルは終了しHEXファイルの出力までは確認できました。ビルドボタンを押すと"Success..."と表示され、.\objディレクトリにあるHEXファイル(demo.xho)の更新日時が更新されます。
その他で分かったことは
・ROM化の時に重要になるCRT(スタートアップ)ルーチンは既に用意されており、ソースファイルとして登録する必要がある
・比較的ヘルプがシッカリしています。
組み込みCで問題になるsbrk関数の実装についての記述があるなど、次のCコンパイラの移植の参考資料としても十分に活用できます。 実際にプログラムをROMに焼いて動作検証するのはもう少しヘルプを読み込んだ後に行います。