HC-40でプログラム開発してみた その2

HC-40を使ってみて気が付いたところ

ここ何日かHC-40を触ってみて、きがついたところを挙げていきたい。

当初感じていた印象と変わってる点もいくつかある。

 

通信速度は速くない

最初の実験では38400bpsで通信が出来て嬉しかったが、どうやらこれは通信バッファに収まってしまうサイズだったからと判明。

 

少しでも長めのプログラムを送り込もうとすると、すぐにCOエラー(多分、Communication buffer Overflowの略)が出てしまう。

 

どのくらいの速度だったら転送出来るんだろうか?

試してみたところ、4800bpsのノーウェイトではCOエラーになってしまい、1文字送信数度に6ms待つ…としたところ、エラーが出ずに読み込めるようになった。実質1200bps程度の速度だ。せめて通信バッファのサイズを変更出来たりしたら良かったのだが…orz

 

PC-1600Kが通信バッファを増やす事でかなりの速度まで通信出来る事を考えると、通信自体はだいーぶ遅いと言わざるを得ないかも。

 

でもまぁバイナリを直接送り込める事、即座にRUNして動くこと(BASICでマシン語をPOKEすると時間が掛かるのだ!)などを考慮すれば、プラスマイマス0かな。

 

CPUの速度も速くない?

これは画面スクロールのテストをしていて最初に感じたことだった。メインメモリ上にVRAMがあることから、VRAM領域をアクセスするとLCDCからの読み込みが優先されるであろうから、CPUが待たされるんだろう…と思っていたのだけど、どうやら違うっぽい。メインメモリをアクセスしてもVRAMとの速度差を感じない。全体的にもっさりした印象だ。

 

実際にメモリをダンプするプログラムを作ってみた。キー入力系はCP/Mシステムコールを呼び出す必要があるため、そこだけアセンブラで書いたが、それ以外はオールC言語で書いた。

フォントは横幅を稼ぎたかったので4ドットとしたが、1バイト=横8ドットとするHC-40では少々頑張らないと表示が出来ない。

往年のテクニック(書き換えが必要なところのみ再描画)なども一通り入れてメモリダンプをしてみたが、スクロールをしようとキーを押すとキーバッファに貯まっていってしまう。キーリピートよりもスクロール速度の方が遅い状態。

※プログラムの組み方が悪いって可能性もありますw

f:id:PocketGriffon:20200514184209j:plain

全体的に見れば…

 気になるところを書いてしまったが、全体的に見ればかなりのレベルで気に入ってます。作りが素直というか、多分こうだろうって構造がそのまま当てはまる。想像が出来る構造ってのは解析もしやすそう!

 

何か簡単なゲームでも作ってみたいところだなー…(遠い目