z88dk でクロス開発する

z88dk (z88dk.org)

z88dk/z88dk | GitHub - Wiki - Platform Sharp PC

 

z88dk は Z80 の CPU 向けに機械語・マシン語や C 言語を用いて

クロス開発が可能です。PC-E200 および PC-G シリーズも対応しています。

 

z88dk から生成されたファイルは .ihx ファイルになります。

g800 では、ファイルを g800 へドラッグ&ドロップするか、

g800 プログラム.ihx で起動します。または F4⇢File でファイルを指定できます。

実機では .ihx ファイルの中身をシリアル経由で転送して下さい。

その後 F1 BASIC の RUN MODE より MON ⇢ R ⇢ G100 とします。

エラーになる場合は USER2000 など、エリアを大きく設定して下さい。


サンプルプログラム

examples/g800 - GitHub z88dk/z88dk

 

z88dk を展開すると examples/g800 にサンプルがあります。

make で各プログラムを一気に生成できます。

できた .ihx ファイルを g800 や PC-G850 シリーズ本体へ読み込みます。

 

box 画面に長方形を描いていきます。

 

mandel マンデルブロ集合を描きます。

 

physics いくつかの ○ が飛び跳ねます。

 

sin サインカーブを点⇢線で描きます。

 

turtle タートルグラフィックで図形を描きます。

turtle.c でライブラリ turtle.lib を生成、

 turtle-exaple.c は turtle.lib を用いて図形を生成しています。


zcc の使用方法

基本的に次のコマンドです。プログラム.ihx が生成されます。

  • PC-E200・PC-Gシリーズ向け 4 行表示
    zcc +g800 -create-app -bn プログラム プログラム.c
  • PC-G850 シリーズ向け 6 行表示
    zcc +g800 -create-app -clib=g850b -bn プログラム プログラム.c
  • PC-G850 シリーズ向け 8 行表示(下参照)
    zcc +g800 -create-app -clib=g850 -bn プログラム プログラム.c

-bn プログラム を省略した場合は a.ihx が生成されます。

ライブラリを使用する場合、更にオプションが必要な場合があります。

 

8 行表示

zcc のオプションに -clib=g850 を付けた場合、

テキストは上の z88dk 内蔵のフォントを用いた 8 行モードでビルドします。

¥ の代わりに \、~ の代わりに  ̄ となっていて、

ブロックやカナは含まれていません。


モノクロクラフィック

Classic Monochrome Graphics | GitHub z88dk/z88dk wiki

 

graphic.h を用いたグラフィック、gameh.h を用いたスプライトも使用できます。

 

ポケコンのコールルーチンではテキストに座標が必要だったり、

グラフィックもイメージを転送するように扱う必要がありますが、

z88dk のライブラリで用いて容易に扱えるようになります。

 

z88dk のライブラリのみでつくられたプログラムであれば、

Z80 CPU の他環境でも動作できるメリットもあります。

 

モノクロスプライト

更に games.h を include する事でモノクロスプライトを使用できます。

「スプライト」と表現されていますが、線画するので、

ゲーム等のキャラクターに限らず使用する事が可能です。

サイズも 8x8 である必要ありません。全画面 144x48 でも使用できます。

横が 9 以上になる場合、左上から右⇢左下⇢... で線画していきます。

8 の倍数でない場合は左寄せです。

 


プログラム

ここで紹介しているプログラムは z88dk のライブラリのみを用いていて、

PC-G850 シリーズ以外の Z80 採用プラットフォームでも動作可能です。

 

サインカーブ

サインカーブを描きます。

zcc オプションの -lm と math.h は汎用の算術ライブラリです。

これにより浮動小数点と三角関数を用いて描いています。

風船

風船を飛ばします。モノクロスプライトを用いています。
GPRINT は縦 8 ドット分を左から右に描きますが、
モノグラフィックは横8ドット分を左上から右に描いていきます。

このプログラムは 8x8 ですが、大きさは問いません。

横幅が 8 の倍数でない時は左寄せで作成します。