iP6 Plus (PC-6000/6600 Emulator)

Last Updated 2004/1/25
Version Release 4.7

はじめに

このプログラムは、NEC PC-6000/6600 シリーズをエミュレートするプログラムです。

isioさんの PC-6000/6600 シリーズのエミュレータである 「 iP6 for Unix/X11」をベースとして、 SR特有の機能や、ディスク入出力機能等を 新たに追加しました。 まだまだ、至らない部分も沢山ありますが、 よろしくお願いします。

今回のバージョンは、 Release 4.7 です。ありがとうございます。

できること

基本的には、オリジナルの iP6 for Unix/X11 に準じますが、いくつかの SR特有の機能とディスク入出力機能 などを追加します。

主な出来ることは下記のとおりです。

今回から出来るようになったこと

前回の積み残しのバグを直して、機能アップしました。 よろしくおねがいします。(_)

エミュレータ内部について

Windows版 特有の部分について

Unix版 特有の部分について

今回は、鬼のように変更点が多いです・・。(汗) それもこれも、皆さんのおかげです。(^^;


主なできないこと

Alpha-11 では、存在しないディスクを指定したら、新規作成をして、ブランクディスクとしてマウントするようにしました。


注意してほしいこと

このプログラムを使用されるときは、十分注意してご使用ください。 ROMイメージなど 大切なものに関しては、 必ずバックアップをとっておいてください。  よろしくお願いします。

Rel.4.7 で、拡張ROMをセットできるようになりましたが、PC-6001専用の拡張ROMをさしたまま、 機種を、PC-6601SR などにすると、起動途中で止まってしまう可能性があります。 お手数ですが、拡張ROMを抜いてください。(_)

Rel.4.7 で、ディスクのアクセスランプを右下に作りました。(Windows版) これが点灯中は ディスクにアクセスに行ってますので、いきなり終了したり、 リセットしたりしないで下さい。

Rel.4.7 以降のフルスクリーンモードは、全ての環境でテストされたわけではありません。 もし、使用した結果、上手く切り替わらない場合などは、使わないようにしてください。 よろしくお願いします。

Rel.4.5 以降のバージョンから、d88のファイルが、読み取り専用になっている イメージも対応するようになりました。  ただし、読み込みは出来ますが、書き込みは出来ませんので、注意が必要です。

ゲームでディスクにセーブしたい場合などは、必ず 読み書き可能な属性にしてからマウントしてください。 BASIC上で、save"hoge"や、bsave"hoge"としても、??AT Error となってしまいます。 なお、d88ファイル内部のヘッダの書込み禁止フラグは見ていませんので、注意が必要です。


必要なROM

実行するには、実機に内蔵されているROMファイルが必要になりますので、まずは、ROMを取得してください。

実行ファイルと同じディレクトリか、rom というサブディレクトリに置いてください。

(PC-6001 として利用する場合)
ファイル名 サイズ 対応するROM
BASICROM.60 16KB N60-BASICインタプリタROM
CGROM60.60 4KB N60-BASIC用CGROM

(PC-6001mk2 として利用する場合)
ファイル名 サイズ 対応するROM
BASICROM.62 32KB N60m-BASICインタプリタROM
CGROM60.62 8KB N60-BASIC用CGROM
CGROM60m.62 8KB N60m-BASIC用CGROM
KANJIROM.62 32KB 漢字ROM
VOICEROM.62 16KB 音声合成ROM

(PC-6601 として利用する場合)
ファイル名 サイズ 対応するROM
BASICROM.66 32KB N66-BASICインタプリタROM
CGROM60.66 8KB N60-BASIC用CGROM
CGROM66.66 8KB N66-BASIC用CGROM
KANJIROM.66 32KB 漢字ROM
VOICEROM.66 16KB 音声合成ROM

(PC-6001mk2SR として利用する場合)
ファイル名 サイズ 対応するROM
SYSTEMROM1.64 64KB システムROM1
SYSTEMROM2.64 64KB システムROM2
CGROM68.64 16KB CGROM (saver3で取り込んだROM)

(PC-6601SR として利用する場合)
ファイル名 サイズ 対応するROM
SYSTEMROM1.68 64KB システムROM1
SYSTEMROM2.68 64KB システムROM2
CGROM68.68 16KB CGROM (saver3で取り込んだROM)

オプション機能
(拡張漢字ROM (PC-6006SR/ PC-6007SR) を、利用する場合)
ファイル名 サイズ 対応するROM
EXTKANJI.ROM 128KB 拡張漢字ROM          

拡張漢字ROMをお持ちの方は、ksaver で取り込んだ後、上記のファイル名にしてください。


ROMの取得方法

基本的には、iP6 のROMを使いまわしできるのですが、SRをお持ちの方は、拙作の saver3 での吸出しをお勧めします。

(PC-6601SR の場合です。PC-6001mk2SRの方は、拡張子を.64にして下さい)

   1. MODE 6で起動して、拙作のsaver3 で次のROMを取得して下さい。

        SYSTEMROM1-1 を取得して、ファイル名を仮に SYSROM11にする。
        SYSTEMROM1-2 を取得して、ファイル名を仮に SYSROM12にする。
        SYSTEMROM2-1 を取得して、ファイル名を仮に SYSROM21にする。
        SYSTEMROM2-2 を取得して、ファイル名を仮に SYSROM22にする。
        CGROM を取得して、   ファイル名を CGROM68.68 にする。

   2. SYSTEMROM が それぞれ別々に鳴っているので、下記のようにして結合してください。

    DOSなら、
         copy /b  SYSROM11+SYSROM12   SYSTEMROM1.68
         copy /b  SYSROM21+SYSROM22   SYSTEMROM2.68

      Unixなら、
         cat SYSROM11 SYSROM12  > SYSTEMROM1.68
         cat SYSROM21 SYSROM22  > SYSTEMROM2.68

    これでできあがりです。
 

SR以外の方は、isioさんの saver の使用をお勧めします。

テープ経由の場合、最終的にテープ音声から、データに変換する必要があります。 morikawa さんの P6DatRec の使用をお勧めします。


Windows 版の起動の仕方

  1. まず、実機からROMファイルを取り込んでください。
  2. 実行ファイルと同じディレクトリか、ROMサブディレクトリに、上記のROMを置いてください。
  3. iP6.exeを実行させると、まず、デフォルトでPC-6601SRとして起動しようとします。 このときに、ROMファイルが見つからない場合は、その旨を表示します。
  4. PC-6601SR 以外として動作させたい場合は、Control メニューのConfigureの 設定パネルで ご希望の機種を選択してください。
 

設定のうち、(*)マークのついている分については、変更後、再起動するかどうか聞いてきますので今すぐ適用したい場合、再起動してください。 設定は、ip6kai.iniというファイルに書き込まれます。(実行ファイルと同じディレクトリーに 自動的にできます。)

詳しい使い方については、同梱のHELPファイルを参照してください。(_)


ディスクについて

今のところ、下記のような設定になっています。
機種 ドライブ使用可能なディスク
PC-6001mk2 外付 1D
PC-6001mk2SR外付 1DD/ 1D 自動認識
PC-6601 内蔵 1D
PC-6601SR 内蔵 1DD (1Dも一部可能)

mk2SRのみ、起動時に、1D/1DDを自動認識します。 PC-6601SRの場合、基本的に1DDですが、ディスクの先頭に 'SYS'が書かれていると、1Dと認識するようです。ただし、この時の1Dは、読み込みしか出来ません。

サポートしないディスクを指定した場合、ディスクを、自動的にイジェクト してしまいます。ディスクなしになってしまうので、注意してください。 そのときは、メッセージで、お知らせします。

ディスクイメージの作り方

フロッピィ読み込みツールとしては、 M88 の作者の CISCさんが作成されている DITTか、 それの派生版で、SMC-777用である、1DDitt が有ります。

1DDの場合

1DDの場合は、1DDittの使用がお勧めです。何故かというと、1DDは片面メディアなのにたいして、Dittはあくまで両面メディア用なので、問題が生じやすいからです。(汗) (裏面が既にフォーマットされている2DDを使った場合、余計な裏面のデータまで読み取ってしまい、使用できないイメージになってしまいます。(汗))

1DDitt の場合の使用例です。

1dditt   r  -8 -d   a:   hogehoge.d88

-8 としているのは、1DDを80トラック読むという意味です。 P6の1DDでは、必ず80トラック読み取る必要があります。 あと、1DDの場合は、-d をつける必要があります。

読み取りが成功すると、ファイルが出来ます。 もちろん、そのd88ファイルは、そのまま このエミュレータで使えます。

1Dの場合

それから、1Dの場合、Dittも、1DDitt も、両面読んでしまうので、どちらを使っても、変わらないと思います。その場合は、裏面の無い2Dという形になります。あと、1Dの場合、-8 や、-d は不要になります。

あと、気をつけることといえば、これらのソフトは、FDCを直接叩いているので、MS-DOSか、Windows 95/98/Meの DOS窓などでしか、動作しないということです。(NT4.0 / 2000/ XP などでは、動作しません。)


PC-Unixでのコンパイル

Linux や、FreeBSDなどでコンパイルする場合は、下記のようにしてください。 標準的な状態で、コンパイルできると思います。

  1. OSと、X Window System を導入してください。
  2. 空のディレクトリを作成して、iP6 Plusのソースを展開してください。
  3. Makefile の上のほうの、OS Selector の該当する行のコメントを外してください。
  4. make とすると、出来上がるはずです。

※ Rel.4.7 より、Gnu make が必要になるようになりました。 FreeBSDなど、最初から Gnu make が入っていない環境の方は、お手数ですが、別途 gmake をインストールしてください。  

※ Rel.4.7 より、一行編集するだけで、切り替えできるようにしました。 下記の該当する環境の行のコメントを外してください。 (本当は、configure に対応するべきですが、申し訳ございません。)  

  # OS Selector    by Windy
  # Please select OS. comment out one  from following lines
  #OS      = LINUX
  #OS      = BSDI
  #OS      = FREEBSD
  #OS      = MACX11
  #OS      = SDL
  

参考資料


ソースリストについて

ソースリストを公開しています。が、著作権を放棄しているわけでは有りません。 ソースリストについては、有るがままに提供されます。

このソースリストは、沢山の人の修正が入っていますので、このソースリストの著作表示を消し去って、他の人だけの著作物とすることは出来ません。

派生物を作られるときは、必ず、前の著作表示に追加する形で、併記してください。 それから、派生物も、必ずフリーソフトにしてください。

実のところ、P6エミュレータのSR対応が、少しでも進んでくれれば・・。 との思いから公開していますが、私の実装方法を 鵜呑みにしないでください。 間違いがあると思いますし、たまたま、動いているだけの可能性も有ります。

それから、ソースリストをみていて、気づいたことや、バグ報告などありましたら、 遠慮なくおねがいします。(__)


免責事項

ソースリストや、実行ファイルは基本的に無保証です。 一応、テストは行っておりますが、 使用した結果、何らかの損害があったとしても、 当方では 一切感知できませんので、宜しくお願いします。


謝辞

石岡さんには、ソースリストをさわることと、 パッチファイルの公開を 快諾していただきました。 本当にありがとうございました。(__)

iP6 がなかったら、とてもじゃないけど、一からこれを作るのは、 無理だったと思いますので、感謝しても感謝しきれないです。(_)

Rel.4.5以降より、CISCさんの FM音源エミュレータである fmgen と、天丸さんのアイコンを使用させていただきました。ありがとうございました。(_)

それから、fmgen の中で、変更させてもらっている個所があります。 変更箇所は、#ifdef WIN32か、#ifdef UNIXでくくられた個所になります。 主に、Unix環境に対応させるためです。 よろしくお願いします。(_)

あと、opna.cpp と、opm.cppの、pow関数の呼び出しで、pow(10,db / 40.0) となっているところを、pow(10.0 , db /40.0) というふうに変更させてもらいました。(_)


お問い合わせ先

なお、パッチやソースリストやプログラム自体に関する お問い合わせについては、全て私までお願いします。

(isioさんは このプログラムの開発に直接は関わってませんので、このパッチについてisioさんに問い合わせることは、ご遠慮下さい。)

バグや使用上の問題については、出来れば、対応したいと思っています。 しかし、フリーソフトウエアで有る以上、限界というものも有りますので、よろしくお願いします。