HC-88とHC-40を比べてみた!

f:id:PocketGriffon:20201012012640j:plain

HC-88を使っていて不思議に思っていたんだけど、CAPSロックキーが存在しない。

特に困る事は無かったんだけど、メーカーはそこまで割り切ったか…と思っていた。

でもBASICのプログラムを組んでいると「やっぱりBASICはキャピタライズした文字だよな」と思っちゃう。昔からの刷り込みがあるので仕方ない(^^;;

そしたら!印刷はされていないんだけどCAPSロック機能が存在してた!

 

f:id:PocketGriffon:20201012013132j:plainf:id:PocketGriffon:20201012013144j:plain

右下にある「英小英数」と書かれたキーを押すと、挿入LEDが光ってCAPSがONになる。

解除は「SHIFT+英小英数」だ。

これはマニュアルないと気がつけない(^^;

他にもいろんな機能がありそうだけど、全く気がつけていない気がする…。

HC-88のマニュアル欲しいなぁ…。

 

CHARGE BATTERY問題

先日のブログで「バッテリーで駆動させているとCHARGE BATTERYの表示が出る」と報告した。この現象は「カセットテープを動かした」「キー入力をしていた」など、何かしら「物理的な動き」がある時に出やすいという事に気が付いた。

 

もしかしたら…作ったメインバッテリーの接着が甘くて、動かした瞬間に電池が離れてしまい、一瞬給電が途切れてしまうのではないか…と想像してみた。しかも電池ボックスがギチギチだったため、ビニールテープを極力少なめにしていた。もしかしたら電池の締め付けが緩かったのかも知れない。

 

そこで、作ったバッテリーの外周をもう一回りビニールテープできつめに締め付けてみた。こうすることにより微妙な振動があっても電池が離れる事はない…と思いたいw

試しにバッテリー駆動でテープを動かしたりキーを入力したり本体を動かしてみたが、とりあえず2時間ほど使う分には問題が出なかった。

これはこの先も様子見…という感じで見ていきたい。

 

HC-88プログラムの開発環境

さて!ようやく動作も安定してきたので、簡単なプログラムを楽しんでみよう!

まずは開発環境について考えてみる。

 

私は普段からMacintoshを愛用している。

使い慣れたエディタも開発環境も、すべてMacを中心に組み立てられている。

今回もHC-88の開発環境はMac上で構築した。

出来上がったプログラムをRS-232Cを経由してMac→HC-88へ送り込み実行させるのだ。

 

少し前にPC-8201やHC-40の開発環境を作っている。

PC-8201はCPUは8085という事もあり、Cコンパイラが用意出来なかったことからアセンブラでの開発をしていた。小さなプログラムを組む場合には問題ないが、少し大きなプログラムを作るのは非常にしんどい。お年頃的にも寿命が縮まっちゃうほどだ!

f:id:PocketGriffon:20201012015318p:plain

HC-40はCPUがZ80であり、世の中にある溢れんばかりのツールを使う事が出来る。その中で私はSDCCというコンパイラを利用した。コンパイラによる生産性の向上について、今さら語る事ではないけど、やはりアセンブラとは次元が違う。

きめ細かな制御が必要な場合にはインラインアセンブラを利用すれば良いので、まさに良いとこどりな環境だ!

 

HC-88も、CPUが同じくZ80なのでSDCCを利用する事にした。コンパイラを利用しながら楽に大規模なものを作っていくよ!

 

HC-40 vs HC-88

このところ、なぜかEPSONづいてる私。HC-40は超お気に入りだし、HC-88も使い込んでいけばきっと大好きになっていくに違いない。

だけどこの2機種を使い込んで行く事で、いろんな比較をしてしまうのも事実。

ここでは気になった事をいくつか列挙してみようと思う。

 

*CPU

どっちも同じZ80じゃん…というなかれ。確かに同じなんだけど、実は動作クロック数が違う。HC-40の3.58MHzに対して、HC-88は2.45MHzと約2/3の速度なのだ。

そしてこの速度差が、表示なども含めて体感としてはっきり分かるくらい違う。

HC-40に慣れた人がHC-88を触ると、間違いなく鈍重さを感じる。

 

*通信環境

ここでいう通信とは、ホストマシン(Mac)との接続についてだ。主にプログラムやデータを通信でダウンロードする事を指している。

通信については、どちらの機種も大差ない。通信速度を9600bpsに設定したとしても、実際には1文字送信するたびに7msくらい待たなければ通信バッファが溢れてしまう。

3450バイトのテキストデータを転送するのに約25秒掛かる。実質的な通信速度は2400bpsも出ていないと思う。

 

通信環境といえば1つ大きな違いがある。

HC-40はバイナリデータをRS-232Cからロード出来る。BLOADのファイルディスクリプションにCOM0が指定出来るのだ。これはめっちゃ便利!

そして困ったことにHC-88ではバイナリデータをロードセーブする事が出来ない。

この違いはめちゃくちゃ大きい。

・いちいちマシン語コードをBASICのDATA文に内包しなくても良い

・転送時間もテキストに比べると半分以下になる

・実行時にマシン語コードをPOKEする必要すら無いので、即実行可能。

この部分に関してはHC-40が大勝利だ!

 

*メモリの自由度

HC-40もHC-88もBASICのROMは、ROMカプセルという概念で存在する。CP/Mから見ると1つのドライブに割り当てられており、純粋に「BASICというプログラムを実行する」カタチでBASICが動く。

ここまでは両者ともに同じなんだけど…HC-40のBASICはプログラムがRAMにロードされることなく、ROMのまま動く。つまりメインメモリ64KBの自由度が高い。

どっちかと言えばHC-88の方が普通の構造で、実行時にRAM(TPA)にロードされ実行される。そのため、BASICのプログラムエリアが狭い。

上記の制限によりマシン語コードをBASIC化してやる必要があるHC-88で、このメモリ制限は結構きついものがある。大きなプログラムは分割して送り込むなどの必要が出てきそう。

この項目もHC-40の勝利な気がする…。

 

*グラフィック画像の扱いやすさ

ゲームにしても何にしても、高速に画面描画をしたいと思ったら、自分プログラムからVRAMを直接アクセスする方法が良い。汎用プログラムよりも高速になりそうなのは、なんとなく想像出来るかと思う。

出来ればCPUから直接アクセス出来る場所にVRAMがあるのが嬉しい。

PC-8801PC-9801など、昔のマシンの多くはCPUから直接VRAMをアクセスすることができた。逆に出来なかったのはFMシリーズやFP-1100、MSXなどなど。それぞれに一長一短があり、どちらが優れているのかは一概には言えない(特徴もあるしね)。

 

HC-40はメインメモリの一部がVRAMになっていて、Z80のプログラムから直接書き替える事が出来る。常にグラフィックVRAMとして見えていて、文字を表示する際には少し頑張らないといけない反面、自由度は非常に高い。

 

HC-88はメインCPUのZ80からは直接VRAMが見えない。どこにあるのかと言えば、スレーブCPU(6301)の先に繋がっている。つまりFM-7やFP-1100みたいな構造なのだ。そしてZ80が2.45MHzなのに比べて6301は614KHzと1/4の速度なのだ。なんか…FP-1100を彷彿させるマシン構成だ!(^^;;

実は…少し面白い使い方が出来そうなのだけど、まだテストすら出来ていない。

もう少し頑張って実験してからレポートしようと思う。

 

-----

 

あれ…なんかHC-88の優位性があんまり見いだせないぞ…(^^;

実際、HC-88でプログラムを組む方が慎重にならざるをえない構成だとは思う。

重厚なビジネス機…という感じがプンプンする!

こんな面倒なマシン……使ってて楽しくて仕方ないじゃないか!(^-^)/

 

というわけで、次回以降、HC-88でプログラミングしていこうと思う!

V20エミュレータに戻るのはもう少し待って!(^^;;

 

ではまた次回!(^-^)ノ