じょんのブログ -10ページ目

じょんのブログ

NEC PC-88VA2を修理(?)している記録です。

この記事の続きの話です。

ディスクのd88ファイル化は、結局うまくいかないので、自分で変換プログラムを作ってみました。

と言ってもゼロから作るのは大変なので、こちらから、ソースコードを使わせていただきました。

ソースコードを公開していただき、ありがとうございます。

この場を借りてお礼をいたします。


このプログラムは、PC-98シリーズのフロッピーディスクを読み込んでd88ファイルにしたり、逆にd88ファイルを読み込んでフロッピーディスクに戻したりします。


PC-98シリーズのディスクBIOSを使っているので、もちろんそのままではPC-88VAシリーズ上では動きません。


最初はPC-98のディスクBIOSをPC-88VAのフロッピーディスクBIOSでエミュレートすればいいかな?と思っていましたが、PC-98とPC-88VAの両方のBIOSの仕様を見比べたり、自分には必要のない2Dと2DDの判定部分のソースを読んだりするのが面倒になってきて、結局、コマンドラインの解析部分とd88ファイルイメージの構造体以外はほぼ作り直してしまいました。


元のFDIMG.EXEは、色々と考えて作られていますが、私の場合はソフトを公開するのが目的ではないので、セクタ長1024バイト固定、シリンダ数80として、2HDディスクのみ対応としました。

それによって、1トラック一気に処理することができるので、高速化ができます。

あとはprintfが遅いので、文字列の表示もBIOSルーチン化して、できあがり。


ハードディスクがSDカード化されているので、空の仮想ハードディスクを作ってB:ドライブとして、そこにd88ファイルを入れていきます。


数日かけて80枚ぐらいあったディスクマガジンのd88化が完了しました。


この続きは↓こちら


2HDのフロッピーディスクのフォーマットが、PC-98シリーズの1.2MBフォーマットと、IBM-PCシリーズの1.44MBフォーマットの2種類に大きく分かれることは、まあ、互換がないので知っていました。

 

PC-88VAシリーズはPC-98フォーマットが読めるから、PC98シリーズと同じフォーマットだと思っていましたが、実は微妙に違っていたようです。

フォーマット後の容量が48KB多いのです。

 

具体的に言うと、PC-98シリーズのフォーマットが、

 

シリンダ数: 77

サーフェイス: 2

セクタ: 8

セクタあたりのバイト数: 1024

 

という仕様になっているのに対して、PC-88VAシリーズは

 

シリンダ数: 80

 

となっています。

 

つまり、

(80-77)[シリンダ]×2[サーフェイス]×8[セクタ]×1024[バイト]=48KB

ということで、48KB多いという計算です。

 

これはPC-88VAでフロッピーディスク容量いっぱいまで書き込んでしまうと、後ろの方のシリンダに書き込まれたデータはPC-98では読めないということを意味します。

 

今なら誤差程度でも、メモリやディスクの容量が限られていた当時は、互換性を損ねてでも増やしたかった容量なのでしょうかね?

いや、当時にしても48KBは微妙な容量のような気がしますが…

 

 

 

 

PC-88VA2で使うつもりで購入したイーサネットカードが2枚あります。

  • ICM製 IF-2771ET
  • MELCO(現Baffalo)製 LGY98J-T
の2枚です。
いずれもネット上をよーく探すと、今でもドライバディスクの入手が可能です。
もちろんPC-98用なのですか、いずれもPC-88VAで使うためのパッチがあります。
 
・・・が、うまく動いていません。
いずれも割込みのIRQやI/Oアドレス等をボード上のROMに書き込むようになっていますが、当然ながら、それもPC-98用のソフトなわけです。
IF-2771ETは、その設定ソフトにVA用パッチが無いので、設定のためにPC-98が必要になってしまいます。元々ROMに入っている値が、それなりに妥当な値だったらよかったのですが、どうもFM音源割込みとぶつかるINT5が設定されているようです。・・・残念。
 
 
LGY98J-Tのほうは、設定ソフトのほうにも、VA用のパッチがあるのですが、なぜか私の環境では、パッチを当てても動きません。
 
こんな画面で止まってしまいます。
MSE(MS-DOSエミュレータ)の設定をするMSET.COMで、-Vのオプションを付けないとハングアップするという情報は見つけましたが、あまり関係ないようでした。
なぜ動かないのかさっぱりわかりませんが、もしかしたら、こちらもINT5が設定されているのかもしれません。
 
この話の続きは↓こちら