[1chipMSX]
クロス開発環境
クロス開発環境を作ると言っても、コンパイラから作る元気はありません (^^;
すでに先人達が作ったコンパイラの中に SDCC というフリーのクロスコンパイラがあります。
SDCC は、Z80 のコードも生成できるので、これを利用してみることにしました。
SDCC には、標準関数のソースなども含まれていますが、この標準関数で BIOS 等にアクセスする
部分が MSX以外のターゲットを想定しているようで、MSX と適合しません。そのため、MSX 用に
標準関数の一部を書き換えてやる必要があります。
また、生成コードは、Intel HEX 形式で出力されるため、これを MSX-DOS の COM 形式に変換する
必要もあります。
その他にも、多少の調整が必要です。
まぁ、ごちゃごちゃ能書きは抜きにして、作成したものを下記に置きます。
※まだ多数問題アリ。
ライブラリ
MSX-DOS向けライブラリ
履歴:
2008/05/13 release 000:
・vdp_status(), vdp_status_ni() を実行するとフリーズする場合があるバグを修正。
2007/01/20 release 000:
・fcb_read() の返値が成功/失敗ではなく実読み出しバイト数の下位1バイトになっていたバグを修正。
・fcb_write() の返値が不定だったバグを修正。
・fcb_read() の返値の仕様を実読み出しバイト数に変更。
・割り込みサポート関数を追加。
2006/12/03 release 000:
・fcb_find_first(), fcb_find_next() を追加。
・サンプル file にファイル名一覧表示のテストを追加。
2006/12/02 release 000:
・fcb_open(), fcb_create(), fcb_close(), fcb_write(), fcb_read() を追加。
・サンプル file を追加
2006/11/28 release 001:
・vdp_write_ni(), vdp_read_ni() のライブラリ化をミスっていたバグを修正。
2006/11/28 release 000:
・vpoke(), vpeek(), put_sprite(), set_sprite_pattern(), vdp_write(), vdp_read() で正常に動作しない場合があるバグを修正。
・前のバージョンで サンプル sprite にてゴミが出ていたバグが改善されるのを確認。
・vdp_write_ni(), vdp_read_ni(), disable_intr(), enable_intr() を追加。
2006/11/26 release 002:
・put_sprite(), set_sprite_pattern() のバグを修正
・サンプル sprite を追加
(※既知のバグ:BlueMSX では正常動作するものの、1chipMSX ではゴミが出る。)
2006/11/26 release 001:
・screen() 関数を使った後、main() 関数を抜けようとすると復帰できずに暴走する場合があるバグを修正
・vpoke_first(), vpeek_first(), poke(), pokew(), peek(), peekw(), put_sprite(), set_sprite_pattern() を追加
(※put_sprite(), set_sprite_pattern() は現在デバッグ中。正常に動きません。)
・サンプル vpoke を追加
2006/11/26 release 000:
・ihx2com とライブラリで別れていたアーカイブを統合
・screen(), vpoke(), vpeek(), vpoke_next(), vpeek_next() を追加
・サンプル vdp を修正
・関数リファレンスに動作未確認関数に印を追加
2006/11/25 release 001:
・ihx2com の最後の1バイトが欠けるバグを修正
・I/Oアクセス, PSG, VDP関数を追加
・printf() 等で '\n' が正常に改行するように修正
・printf() を使うとマルチリンクになるバグを修正
・サンプル test, sound, vdp を修正/追加
2006/11/25 release 000:
・とりあえず動いたように見えるバージョン
未処理事項:
・乗算/除算/浮動小数点演算など Z80 が CPU命令レベルでサポートしない機能の動作確認
・ANSI-C 標準関数の動作確認(※ファイル操作が行えないのは確実, strlen, memcpy, printf, puts, vprintf, putchar は確認済み)
[▲上へ]