2019/06/29 z88dk でポケコン向けのアプリ開発

各パソコンの OS から Z80 向けにマシン語や C 言語で開発できる z88dk というのを知りました。

各プラットフォーム向けに実行ファイルを生成してくれるようになっていて、

PC-E200・G シリーズも対応しています。

 

https://github.com/z88dk/z88dk/wiki/Platform---Sharp-PC

 

最新状態の nightly を使用するのが良いようです。
「Quick latest links」から目的の OS 向けの最新ビルドをダウンロードできます。

 

nightly.z88dk.org

 

任意の場所にインストールし、bin フォルダに path を通します。

また環境変数 ZCCCFG として lib/config を設定します。

これで準備完了です。

 

簡単なテスト。こんな感じで test.c を作成します。

 

#include <stdio.h>

 

main()

{

  printf("Hello World\n");

}

 

シェルを起動します。Windows ならコマンドライン・Powershell・Git bash など。
そしてビルドします。

 

zcc +g800 -create-app -o test.ihx test.c (PC-E200 などの 4 行表示)

 

zcc +g800 -create-app -clib=g850b -o test.ihx test.c (PC-G850 シリーズの 6 行表示)

 

test.ihx が実行できる Hex ファイルです。g800 で動作を確認してみます。

g800 にパスを通してあるなら、次で読み込めます。

 

g800 test.ihx

 

実機 ROM データを入れている場合やテスト版を使用している場合は BASIC の画面から CALL 256

または MON でモニタに入り G100 とします。

 

g800 がポケコン実機のイメージがなくても

 

g800 test.ihx 100

 

ですぐに実行可能ですが、プログラム終了で g800 が閉じてしまうので、

while (!getk()) ; を main() 内の最後に加えてキー入力で終わらせるようにします。

 

#include <stdio.h>

 

main()

{

  printf("Hello World\n");

  while (!getk()) ;

}

マシン語では BASIC やモニタのカーソル座標と共有しておらず、左上から表示されています。
なので、上の画面と > や * の位置が異なっているのは正常です。

 

ライブラリのリストはこちら。

 

https://github.com/z88dk/z88dk/blob/master/libsrc/g800.lst

 

SDCC の実績がありますが、ライブラリを時前で用意しないといけないのが問題です。
その点 z88dk は最初からある程度のライブラリがあり、

すぐに実行できる状態に生成してくれるので便利です。

MSX など Z80 向けの他プラットフォームと共有して開発もできますね。

 

もう少し詳しい解説はこちらで紹介されています。

 

あしたに@WebPC-G850V開発メモ

 

文中「ライブラリの詳細はmonograhics libraryに記載があります。」とありますが、
記載時現在 Classic Monochrome Graphics にページが変更されています。

 

https://github.com/z88dk/z88dk/wiki/Classic-Monochrome-Graphics