PC-98HA(HANDY98)を使う!その2

ふいにPC-98HA(HANDY98)が起動するようになってから1週間が経つ。

当初は「きまぐれに電源が入るいつもの感じ」と思って期待もしていなかったけれど、まさか1週間連続して動くようになるとは想定外だった!

 

ちゃんと動くようになった原因はなんだろう??

思い当たるのは、専用のACアダプタ(PC-98HA-12)を使ってる…くらいしかない。

その後、レジューム機能(電源切る直前の状態を覚えてくれてる)も使えるようになり、本体としてはかなり安定した状態だ(^^)

このHANDY98、ずっと安定して使えるといいなぁ…!(^o^)

 

これだけ安定していると、せっかくだから何か作りたくなるよね!

ちょうど週末に差し掛かるところだったので、いっちょ環境整えてみるか!(^-^)

 

PC-98HA開発環境

開発言語

PC-98HAの開発環境としては何が考えられるだろうか?

PC-9801互換ではないけれど、MS-DOSという意味ではきちんとしたものが乗っている。

そしてMS-DOS汎用であれば、開発言語は山のような選択肢がある。

それでもパッと思いつくのはMASMによるアセンブラ、そしてC言語による開発かな…。

16ビットCPUなワケだし、基本はC言語での開発を主体にしつつ、どうしてもってところだけアセンブラ化するのが良いだろう!

よし、開発言語はC言語を中心としよう(^-^)

 

開発環境

MS-DOSで使用できるC言語としてはLSI C-86(試食版)がある。

LSI C-86(試食版)自体はMS-DOS上で動くソフトウェアだ。

Windows上ではなく、素のMS-DOSだ。

 

そうなるとここんとこお気に入りのWine上で動かす事が出来ない…多分(T-T)

MS-DOSの環境を用意するとなると、私的にはDOSBoxが慣れている。

DOSBoxは、Mac上のファイルを読み書きできる機能があってとても便利だ!

Macで編集、DOSBoxでコンパイルって方法がなんなく出来る。

 

実行環境

DOSBoxでコンパイルして出来上がったEXEファイルを、どうやってPC-98HAへ持っていくか…。これはもうエミュレータを使うのはラクなのは分かるけれど、そのエミュレータへデータを渡す方法が簡単ではない。

 

エミュレータを試してみたが、メモリカードやRAMディスクへデータを置く方法もぱっと分からなかったので、これはもうフロッピーディスクイメージ(D88)の中にファイルを入れて渡すのが簡単だと判断した!

 

つまりコンパイルして出来上がったEXEファイルを、D88ファイルの中にコピーしてエミュレータにセットすれば、エミュレータからはフロッピードライブの中にファイルがある…という事だ(^-^)

 

D88ファイル自体はフォーマットが公開されている。

ツールを作るためにはD88のフォーマットとは別に、FAT12の構造を知る必要がある。

これはもう1980年代に散々実験を繰り返していたので、暗記とまではいかないが悩むことがないくらいの理解力はあった(^^)

画像

画像

よっしゃ、Macで編集DOSBoxでビルドエミュレータで実行の環境が出来た!

 

なにか作ってみたいけど…

せっかく開発環境の用意が出来たんだから、何か作ってみたくなる!

最近は平日が激務状態になっているので、時間は土日しかない(T-T)

じっくり作る時間もないので、過去に作ったとか、データのみを利用するか、どうするか…。

そんな事を考えてる時に、はたと1980年代にモノクロ640x400環境で作ったものがある事を思い出した!

 

8086(というかV20)のアセンブラで書いてあるものだけど、これをC言語に置き換えてみたらどうだろう…と思った。

3x年前とはいえ、自分が書いたものなので解析は必要ないし、アルゴリズムは頭に入ってる。

よーし、これを移植してみるかー!(^-^)

 

ぐはっ!!!

久しぶりに当時のソースコード見たけど……うん、思うところあるよねww

今コレの中身を参考にしても仕方ないので、用意されてる関数を参考にしながら作っていこう(^^;

 

アセンブラで書いていたものをC言語に移植していくと、とにかくアセンブラでは面倒な計算が、C言語では演算子1つ2つで解決してしまうのが簡単で良い!(^^)

15分もしたら文字が表示出来るようになってきた。

作っていくと、デバッガが使えないのをどうしようかと悩むようになってきた…。

SYMDEBを使うかprintfでデバッグしていくしかないが、不用意に画面にprintfしてもかき消されてしまうのでどうしたものかと…(^^;;

仕方ないけど、今回は小規模という事もあって「なるべくバグが出ないように」気をつけながら作業する事としたww

 

ある程度ゲームが動くようになってきたところで、実機で動かしてみたくなった!

実機で動かすためには、コンパイルして出来上がったEXEファイルをPCMCIAのSRAMカードへコピーする必要がある。うちではMacから直接SRAMカードへ書く方法がないので、一旦PC/AT互換機を経由してコピーする事になる。

手順が面倒なので、あんまり何度もしたくない(^^;;

おお〜!実機で動いた!速度もエミュレータで動かした時と一緒だ!

 

おわりに

それなりの規模となるものをエミュレータおよび実機で動かす事が出来た!

プログラムとテキスト化したデータを含めても1200行前後のモノ。

出来上がったEXEファイルは13KB程度だ(^^)

土日でやる作業としては、まぁこんなもんだ(^^;;

 

その後、友人がモノクロ背景のデータを作ってくれたので、それはぜひ入れなくては…と思っているが、ゲームとして完成まで作り込むことはしないかも(^^;;

 

細かいレポートは書ききれていないので、別ブログか、ここに追記していこうと思う。

 

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