PC-6001 エミュレータ開発日記

■ [00/09/27] - 6601 FDD

PC-6601のディスクドライブ制御部をコーディング。読み込みだけ出来る状態になったので、PC-6601といえばコレってソフトの動作確認。タイトルあとのメニューは表示されたけど、そこから先に進むのがもったいないので、その先は見てない。

5月頃に書いた資料には不備がたくさんあったし、いまだにナゾな部分が沢山ある。前回の日記に書いた2Dディスクイメージへのアクセス処理にバグを発見したり。

■ [00/06/18] - 2Dイメージ

6/10分の日記に“2Dを1Dとして使用しているメディアからイメージを作成すると未使用側の面のデータが含まれてしまい、エミュレータで使用することができない”と書いたところ、対応してもらえませんかとのメールが届いていたのでコーディング。さっそく依頼メールの方に動作テストをお願いしたところ無事に動作している模様、Hana.さんテストありがとうございます。


エミュレータ関係の質問&要望メールが届く時って、なぜか一通だけではなくって、 狙ったかのように複数のヒトから届いていることが多い。ニューバージョンを公開した際に問題が発生したとかとか関係なしに、来ないときにはまったくないのに、一通のメールが届くと続けて別のヒトから届くという。それも一度や二度ではないので不思議だなぁと。

■ [00/06/10] - FDD補足2

D88形式の資料にはメディアタイプとして2D/2DD/2HDが定義されていますが、PC-6001Mk2/6601で使用可能なディスクは1Dという片面メディアです。ですから、make_hd.exeを使用して1Dメディアから作成されたディスクイメージには、使用できない面の情報も含まれています。ですが、ホンモノの1Dメディアからイメージを作成した場合、片側の面にはトラックがないものとして記録されることになるので、片面だけのイメージが出来あがります。(厳密には違うのですが)

ただ、1Dメディアの入手が難しくて2D/2DDメディアを代用していた場合など、そのメディアからmake_hd.exeを使用してイメージを作成すると、ごくまれに未使用である側の面の情報もイメージデータに含まれてしまう事があり、エミュレータで使用できません。

そんなわけで、make_hd.exeで作成されたディスクイメージのサイズが174768byte以外の場合はエミュレータで使用できません。(手抜きといえば手抜きなのだけど)

■ [00/06/05] - FDD補足

現状では、Mk2のディスクイメージに対応しているわけですが、 16Sector/Track, 256Bytes/Sectorのフォーマットにしか対応していません。 Mk2に接続できるディスクドライブはインテリジェントタイプというもので、 特殊なフォーマットのメディアを読み書きできるものではないと認識しているので 固定にしています。

誤解されそうな言い方ですけど、Mk2用のディスクドライブ(6031?)は PC-8801SRの“SUB CPU+FDC+FDD”のようなものなので、 FDCへのコマンド指示によってのみメディアのアクセスが可能になります。また、 そのコマンド形態はPC-8801SRとほぼ同一です(00Hがイニシャライズ、01Hがライトデータコマンドとか)。 ただし、PC-8801SRで用意されているコマンドすべてに対応しているわけではありませんから、コマンド31Hでディスクモードを変えるようなことはできない“はず”です。(←試してない)

Mk2にはPC-60xx系以外にPC-80xxドライブもつながりますから、この場合はPC-8801/SR と同様に細かいドライブ制御ができるはずですけど、エミュレータではサポートしていません。 基本的にPC-6001Mk2のBIOS内で使用しているコマンドのみを実装するようにしているので、例えばPC-80xx系ドライブで動作するコマンド05Hのフォーマット・コマンドを実装していないのは、BIOSで使用していなかったからです。

ただ、PC-6601/SRでは話が違ってきて、こちらはZ80から直接FDC uPD765Aを制御することができるので特殊なCHRNを読み書きできますし、市販ソフトではプロテクトの意味も兼ねてそうしているものがあるようです。 そもそもPC-6601用のディスクをMk2のディスクとして扱う事までは想定していなかったので、PC-6601の特殊なフォーマットディスクイメージを現在のエミュレータで読みこませると読み込み位置がずれてしまうわけなんです。

PC-6601ディスク対応した際に、Mk2側のディスクエミュレートにフィードバックすれば、特殊なフォーマットのメディアの読み書きができるようになるはず...ですが、それでもやっぱりFDCの違いから、6601専用FDDソフトがPC-6001Mk2で動くわけではありません。

■ [00/05/23] - RS-232C

パラ・シリ変換IC 8251の入手は難しいらしい。調べてみると NECから8151をC-MOSにしたμPD71051というのが発売されていて、こちらは現在でも量産中らしい。 んが、NECのWebページではデータシートをダウンロードできないので詳しい事がわからない。データブックを見なさいということなのだろうか。

さっそくアキハバラに行って確認したいところだけれど自制。他に必要となりそうなパーツを調べてから一括購入ということで。そうでもしないと、足を運ぶ毎に余計な買い物をしてしまうのよ、あの領域に踏み込むと(でも、みんなそうでしょ?)。

■ [00/05/22] - ポリゴン

PC-6001版のパックマンは、ゲーム開始直後にパワーエサを連続して4つ食べると、 モンスターが画面を壊すという、ナゾのバグがあったり。

pacman

テクポリ(どこから持ってきた?)の邪道遊戯術より転載、プラズマラインでシールド&エネルギーが減らない技。

初期バージョンではシールド強化部分以降を...

チェックポイントでは減速しましょう。

■ [00/05/21] - Ver.0.6.3 Rel.5

led zone

なんとなくキャプチャしてみたり。


D88形式に対応してみたけれど、特殊なフォーマットはダメ、PC-6601/SRのFDDはマダ。

画面のWAITは145あたりが適切らしい。


Version 0.6.3 Release5からアイコンが変わっていますが、これは PB1400cさんに 作成して頂いたものです。ありがとうございます。
ビール...以下略。最近は水みたいに飲みやすい麒麟淡麗、とか。

■ [00/05/20] - PC-6601 FDD解析資料

■ 概要

■ I/Oポート

■ Work RAM(主要なものだけPickUp)

■ [00/05/16] - PC-6601 FDD

PC-6601のドライブ制御部分を解析したけれども、ナゾのI/Oポートがいくつか残った。制御処理の流れは全て追えているので必要な部分さえ実装してしまえば、未使用のままにしておいても問題ないと思うのだけれど。

それよりも、PC-6601のディスクに対応したソフトが無くて、「実装してもムダか?」という気がしないでもなく。それでもコロニーオデッセイが動いたら満足?

■ [00/03/03] - ちゃっくんぽっぷのロードBGM

ちゃっくんぽっぷのロード中音楽の演奏速度はテープの読みこみ速度に 依存するらしい。

■ [00/02/22] - 爆弾男

やっぱビールはいちばんしぼりでは。 それはともかく“かなり久々”は、イヤまったくその通りかと。

前のバージョンの時にはPentium166/Win95だったのに、今では PentiumIII600/Win98での開発になり、その上HappyHacking Keyboardを使うようになってしまい、標準的環境での動作確認ができない始末。

爆弾男が動くバージョンを作ってみたら、なんと、BasicのStick命令が動かなくなってしまったので明日以降はこれの手直し。

■ [00/02/21] - 動くかなぁ?

Z80のエミュレーション部を書き換えてTinyXeviousがノロノロ動くように してみたのだけど、久しぶりにソースに手を入れたもんだから、それが正しいのかどうか見えてこない。DoorDoorMk2とちゃっくんぽっぷ、アスピック、ハイドライドが起動する事だけは確認したので機能ダウンはない、と思いたい。


1999年までの日記

PC-6001のページに戻る