z88dkを使ってみる

「z88dkを使ってみる」の編集履歴(バックアップ)一覧はこちら

z88dkを使ってみる」(2014/03/10 (月) 20:11:36) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

-z88dkを使う sdccのほかにz80向けクロス開発Cコンパイラとしてz88dkがある。 今回はz88dkを使ってみる。 -MSXDOS向けソースのビルド z88dkはコンパイルオプション指定で様々な環境の実行形式を作成する。 MSXDOSの例としてCP/M向けのソースのコンパイル例を示す。 (MSXDOSはCPM互換なのでCPMオプションで可) c1.c main(void){ printf("hello"); } >zcc +cpm c1.c -o c1.com z88dkは浮動小数点ライブラリが使える。浮動小数点はfloat,doubleが可能。 幾つかの三角関数なども使える。それらを使う場合はコンパイルオプションに-lmを追加する。 c2.c main(void){ double a=123.45; printf("%f",a); } >zcc +cpm c2.c -o c2.com -lm 整数のみのバイナリと違い、浮動小数点を使う場合は6kb程度にサイズは肥大化する。 このほかにCファイル関数なども標準的な機能が備わっている。 -MSX環境向けコンパイル z88dkにはMSX環境に対応するコンパイルオプションが用意されている。 コンパイラが前提としているハードウエアはMSX1。MSX2以降は別途開発が必要。 MSX1環境は基本的にMSXDOSを前提としたバイナリを作成するらしい。このオプションでは CPM互換と異なり幾つかのMSXBIOSを使う関数ができるが、ファイル操作関数はダミーライブラリが リンクされ機能しない様子。 コマンドオプション-startup=2は必ず指定する。これは先頭の初期化コードを選択的に追加するもの。 ここで-startup=オプションは数値1または2を指定可能。 2がMSXDOSで動作する環境のビルド。1は不明だがBIOSが初期化されるようなので別途ZORGを指定 するなどすればDOS以外の環境のバイナリが作成できるのかもしれない。 startupはz88dkのMSX1用コンパイル設定ファイルに書かれているアセンブラ。 MSX環境向けの基本的なコンパイル操作は以下のとおり。 >zcc +msx c3.c -o c3.com -startup=2 作成した実行形式はMSXDOS(MSX1)で実行することができる。 examples\msx以下には幾つかのサンプルがある。コンパイル手順は以下。 >zcc +msx ex1.c -o ex1.com -startup=2 -llib3d >zcc +msx ex2.c -o ex2.com -startup=2 >zcc +msx ex3.c -o ex3.com -startup=2 (ex4.c/ex5.cは変数名M_PIを小文字に修正してコンパイル) >zcc +msx ex4.c -o ex4.com -startup=2 -lm >zcc +msx ex5.c -o ex5.com -startup=2 -lm >zcc +msx ex6.c -o ex6.com -startup=2 >zcc +msx ex7.c -o ex7.com -startup=2 >zcc +msx ex8.c -o ex8.com -startup=2 >zcc +msx ex9.c -o ex9.com -startup=2 -llib3d >zcc +msx ex10.c -o ex10.com -startup=2 (ex11.cは変数M_PIを小文字に変換) >zcc +msx ex11.c -o ex11.com -startup=2 -lm -llib3d -lmalloc >zcc +msx ex12.c -o ex12.com -startup=2 -lm

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。