運営者より

過去の記事は メニュー より選択して下さい。年別にページ分けしています。

2010年 は記事がなかったため、存在していません。


2019/07/05 stdio.h だけで CLS・LOCATE 相当は可能

引き続き z88dk 情報。

 

z88dk ではテキスト関連は ANSI や VT100 のコンソールとして整えてあります。

つまり、コントロールコードやエスケープシーケンス(ESC)を使えるようにしてあります。

 

カーソル移動(LOCATE)は ESC=キャラクターコード 27 として ESC[y;xH です。
この時の x・y 座標は左・上が 1 になります。また H は大文字なのに注意して下さい。

 

CLS は空白を埋め尽くせば良いのですが、

次の各座標を指定して 1 文字ずつ消していくのは遅いです。サンプルしてわかりやすいようにこの方法です。

各行ごとで 24 文字空白が理想かもしれません。

本当は左上に置いて 144 文字が理想ですが、z88dk で横幅を誤って認識している不具合が判明しました。

モノクログラフィック graphics.h を使うのであれば、clg() があります。
ポケコンはテキスト・グラフィック共有なので、テキストも clg() で画面クリアされます。

 

zcc +g800 -create-app -clib=g850 -o text.ihx text.c

追加 2019/07/23

いろいろとプログラムを作成していたところ、テキスト表示がおかしくなるケースがあり、

不具合として報告しました。GitHub issue #1241

後にテキストの横幅を誤って認識していると判明し、それを報告した結果、修正が入り、改善しています。

Nightly Build 20190723 より正常になっています。

これ以降であれば左上から 144 文字空白クリアも有効です。

0 コメント

2019/07/02 z88dk -clib=g850b と -clib=g850 の違い

本日も z88dk に触れます。

PC-G850 向けのビルドはオプションに -clib=g850b を付けるのですが、

-clib=g850 もあります。この違いは?

 

昨日使用していた簡単なテキストを表示するソースを使ってみます。

 

まず、これを -clib=g850b でビルドします。

 

zcc +g800 -lm -create-app -clib=g850b -o test.ihx test.c

普通にテキスト表示されます。

 

では、-clib=g850 でビルドします。

 

zcc +g800 -lm -create-app -clib=g850 -o test.ihx test.c

文字が小さくなりました! -clib=g850 では 3×5 ドットのフォントを使用して表示するようになります。

従って 36×8 文字表示できるわけです。1 画面により多く文字を表示したい場合は便利です。

このフォントと専用の表示ライブラリがファイルに入るので、サイズが大きくなります。

 

https://github.com/z88dk/z88dk/blob/master/libsrc/stdio/ansi/g800/_font_3x5_850.asm

 

フォントは英数部分のみで、カナや特殊記号は入っていません。

マシン語のグラフィック線画も GPRINT 同様に縦8ドットを 1 バイトで構成するので、
3 バイトで 1 文字が作られています。

 

追加 2019/07/12

実際に 5✕7 ドットのフォントで一覧表示しました。

92(&H5C) が ¥ ではなく \、126(&H7E) が ~ ではなく  ̄ になっている事にご注意下さい。
海外の人が対応しているので、そうだとは思ったのですが……

0 コメント

2019/07/01 z88dk のサンプルと内蔵ライブラリ

z88dk について、もう少し詳細な説明をした方が良いと思ったので、

記載しておきます。

 

z88dk、エミュレータ g800 でテストしている影響で、

内部のプラットフォームでは g800 になっています。

PC-G850 向けは g850 のファイル名も見られます。

 

zcc で実行できる C 言語は ANSI C にほぼ準拠してあります。
テキスト表示を含めて、ある程度の処理は

標準の C 言語のように扱えるでしょう。

 

サンプルプログラム

サンプルプログラムがあります。

 

https://github.com/z88dk/z88dk/tree/master/examples/g800

 

これを make すればいいのですが、
記載時現在、Nightly Build では sin.c のコンパイルが失敗しています。

 
GitHub に issue を入れました。#1212 → 浮動小数点数型の処理に問題があり修正が入りました (2019/07/02)

 

個々でビルドもできますが、turtle 関連はライブラリになっているので、make が無難そうです。
個別にビルドしたい場合、例えば box.c のビルドであれば……

 

zcc +g800 -lm -create-app -clib=g850b -o box.ihx box.c

 

こんな感じです。+g800 の指定で .ihx ファイル(Hex ファイル)を生成します。
-clib=g850b を付ける事で PC-G850 シリーズ向けの 6 行表示になります。
これを外すと 4 行表示になります。

ちなみに -clib=g850 はテキストに 3×5 ドットのフォントを使用し、36×8 文字表示できます。


g800 をコマンドラインから実行できるようにしてあるのであれば……

 

g800 -machine=g850 box.ihx 100

 

ポケコンへ転送する場合も .ihx ファイルを転送します。
ここに入っている send.py がコマンドラインからポケコンへ送出するプログラムなので、
これを使用する事も可能です。

 

各サンプルプログラムを紹介しておきます。

box.c → box.ihx

箱をランダムに線画していきます。

 

mandel.c → mandel.ihx

マンデルブロ集合の線画をします。上画像が PC-G850 シリーズでの正しい表示です。

このように表示されている場合、lib/config/g800.cfg
CLIB=g850b の時に g800_clib が適用されているため、グラフィックが 4 行表示と誤認識されているようです。

テキストを使用していないので、-clib=g850b の代わりに -clib=g850 を使用して回避できます。

GitHub に issue を入れました。#1215 → ソースが改善されました (2019/07/06) 

 

physics.c → physics.ihx

丸が何個が飛び跳ねます。

 

sin.c → sin.ihx

サインカープを描きます。実行直後は線、まもなく線で描きます。

エラーが出てビルドできない問題は 2019/07/02 に修正が入っています。

 

turtle.c + turtle_example.c → turtle_example.ihx

タートルグラフィックを行います。🐢_トコトコ……

ペンを置いて→40先進→20度回転……と線画していきます。

turtle.c は turtle.lib を生成します。turtle_exaple はそのライブラリを用いた線画サンプルです。

 

#include <graphics.h>

サンプルではいずれも graphics.h を include してあります。

z88dk にはプラットファーム共通のモノクログラフィックライブラリがあり、

これにポケコンのグラフィックも含めてあります。

 

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

 

ライブラリの関数は次に記載してあります。

 

モノクログラフィック | z88dk を使う。

 

#include <games.h>

更に z88dk にはプラットファーム共通のモノクロスプライト機能が備わっています。

 

https://github.com/z88dk/z88dk/wiki/monosprites

 

ライブラリの詳細と関数は次に記載してあります。

 

モノクロスプライト | z88dk を使う。

 

表示サンプルはこんな感じです。


PC-G850 関連でグラフィックを扱おうとすると、

GPRINT の線画方法で行う必要があり、
まともに扱うためにはライブラリを制作する必要が出てきます。

この点 z88dk では備わっているグラフィックライブラリによって容易に扱えます。

 

モノグラフィック・モノスプライトはプラットフォーム共通で使えるので、

PC-G850 向けで作ったものを MSX などの他で動かす事もできます。

アイデア次第では面白い事ができそうですね。

追加 - LOCATE の代わり

ゲームなどを作ろうとすると、テキストを特定座標で表示したいと思うでしょう。

しかし、 C 言語には locate がありません。
その上 PC-E200・G シリーズのファンクションコールは

文字出力の時に座標も指定するので、扱いが面倒です。

 

探索したところ、z88dk の conio.h に gotoxy を発見。

 

https://github.com/z88dk/z88dk/wiki/Classic-conio

 

早速試してみました。CLS は graphic.h の clg、INKEY$ は stdio.h の getk が使えます。

動作しています。GOTOXY の座標は LOCATE と同じ左上が 0,0 でした。

他のプラットファームでは GOTOXY が動作しない場合があります。

 

追加 2019/07/07 - モノクログラフィック

モノクログラフィックについて、ふうせん🎈 Fu-sen. のブログで記載しています。
PC-G850 と MSX で共通のソースから表示させています。

 

z88dk で作って MSX とポケコンで実行する。| ふうせん🎈 Fu-sen.

0 コメント

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

0 コメント

2019/04/20 USB-シリアルケーブル 完売いたしました

ショップのふうせん で販売していた USB-シリアルケーブル ですが、

ポケコン新品の商品販売終了 を確認しましたので、在庫限りで販売終了としていました。

本日在庫最後の 1 品に注文が入りまして、これで完売・販売終了となりました。

 

ほぼ定期的な注文が入っていて、ショップのふうせん でも売れ行きの良い商品となっていました。

長らくご利用いただき、ありがとうございました。

 

なお、高松製作所 さんが引き続き同等品のケーブルを販売していますので、

ケーブルをご用命の方はこちらよりお求め下さい。

 

有限会社高松製作所

0 コメント

2019/03/27 武善 さんの在庫がなくなったとの情報

PC-G850VS の新品在庫を扱っていた 武善 さん、

在庫がなくなったとの情報をいただいています。

 

これで完全に新品のポケットコンピュータは入手できなくなりました。

今後はオークションサイトなどの中古品を探す事になりますね。

0 コメント

2019/01/08 ベーマガが復活しそう……

2019 年最初の投稿となります。今年もよろしくお願いします~。

 

でも話題は昨年の話。

実は マイコン BASIC マガシン がじわじわ復活の勢いなのです。

 

電波新聞社が発行している 電子工作マガジン、
実は少し前からマイコン BASIC マガジンのコーナーができているのですが、

2018年12月発行の 2018年冬号 からベーマガが別冊付録になりました。

 

☆最新号☆ 電子工作マガジン冬号 12月19日(水)発売 | 電波新聞社


毎号プログラムは数作だったのですが、別冊付録になった事で掲載も増えました。

 

電子工作マガジン2018冬号 特別別冊付録付き | Amazon.co.jp

 

あ、ほしいですか? まだ Amazon.co.jp に在庫が残っています!


発売直後はネットショップであっという間になくなってしまい、書店を探す人がでてきていました。
Amazon で在庫が復活してますが、これもなくなったら増刷を考えている模様ですよ。

更に投稿数も増えてきたら月刊誌として復活させる事も検討しているとの事!

 

IchigoJam が仕掛けの発端なのですが、扱う種類も増えました。
PC-G850 シリーズ向けのプログラムも掲載してくれるんでしょうか?


いずれにしても面白い事になってきています。入手していない人はぜひ。

電子工作マガジン

0 コメント