試運転の資料館
玄関 総合案内 電算機部 営繕部 交通部 通信部

This web site is only compatible with Japanese text.

IEEE1284 経由でバックアップ


もくじ

はじめに

ある日、何気なくインターネット上を彷徨っていると素晴らしいプログラムを発見しました。それが今回紹介する「JJ1ODM 」様開発の DCPPRIP です。

DCPPRIP はドリームキャスト本体のシリアルポートと、PC/AT 互換機の IEEE1284 規格に準じたパラレルポートを接続して、GD-ROM のデータをバックアップ出来るというもので、おおよそ二時間半程度でバックアップが完了します。

今回は、DCPPRIP の基本的な使用方法を紹介します。


条件

DCPPRIP を使用する場合、次に挙げる条件を満たす必要が有ります。

  • 使用する PC は、PC/AT 互換機である事。
  • PC/AT 互換機上で動作するオペレーティングシステムは、Windows98 などいわゆる Windows 9x 系である事。
  • PC/AT 互換機のマザーボードにパラレルポートが付いている事。
  • パラレルポートは EPP mode またはBPP ( Bi-directional ) mode が使用可能な事。
  • ドリームキャストは MIL-CD 対応形である事。

バックアップ手順

GD-ROM のデータをバックアップする際の基本的な手順を次に示します。

GD-ROM のバックアップ手順
順序 説明文

1

最初に、正常に動作して条件を満たしているドリームキャスト本体と PC/AT 互換機を用意します。

2

JJ1ODM 様から「dcpprip.lzh」をダウンロードします。

ダウンロードしたファイルは圧縮されていますので、展開します。この記事では展開先を「C:¥dcpprip 」としますが、ディレクトリは変更しても構いません。

3

展開したフォルダを見ると「dcpprip.gif」が有りますので、この回路図に沿ってドリームキャスト本体と PC/AT 互換機を接続するケーブルを製作します。

ケーブルについて、ドリームキャスト側の端子は入手困難なため、本体を分解して内部へ直接接続しても良いでしょう。

4

接続ケーブルの製作が完了したら、プログラムを起動させる準備を行います。

まずは dcpprip¥dc ディレクトリ内のファイルを CD-R へ書き込んで下さい。違法コピーの量産を防止する為、詳細は記載しません。分からない方は検索して下さい。

5

続いて、 dcpprip¥pc ディレクトリ内のファイルをドリームキャストと接続する PC/AT 互換機へ移動させます。既に接続用の PC/AT 互換機上で作業している場合は、移動の必要はありません。

6

ドリームキャスト本体と PC/AT 互換機を先ほど製作したケーブルで接続しますが、接続には手順が有って、最初にドリームキャスト本体の電源を投入し、次にケーブルを用いて接続します。

順番を守らずに電源を投入すると、ドリームキャスト本体が正常に起動しない事が有ります。

7

ドリームキャスト上で、先ほど作成しておいた CD-R を起動します。

8

PC/AT 互換機上でコマンドプロンプトを起動させます。「スタート」釦を押下、「プログラム」釦を押下、「MS-DOS プロンプト」を選択、で起動できる筈です。

9

コマンドプロンプトの起動後、枠の中には次のように表示される筈です。

C:¥Windows>

10

次のように入力し、Enter キーを押下してください。

C:¥Windows>cd C:¥dcpprip\pc

11

ドリームキャスト本体で目的の GD-ROM をセットしたら、PC/AT 互換機上で次のように入力し、Enter キーを押下してください。

C:¥dcpprip\pc>dcpprip.exe

12

いよいよ、GD-ROM をバックアップします。

コマンドライン上で、後述するコマンド集に掲載したコマンドを入力して Enter キーを押下すると、バックアップを開始する筈です。


ハードウェア製作上の要点

DCPPRIP で少しでも安定した通信を行う為、ドリームキャスト本体と PC/AT 互換機を接続するケーブルは次に挙げる要点を抑えておくと良いでしょう。

  • 信号線と GND を対撚り線 ( ツイストペア線 ) にする。
  • 配線は極力短くし、各信号線の配線長を出来るだけ均等に揃える。
  • 信号線へダンピング抵抗を直列に挿入する。
  • プルアップ抵抗も接続する。特に PC/AT 互換機の /Data Strobe ピン ( STB ピン ) への信号線だけでも接続する。
  • ダンピング抵抗とプルアップ抵抗の値は、PC/AT 互換機に合わせて調整する。
  • ついでなので、AC 100V 電源のコンセントプラグの接地側、非接地側の向きを合わせる。

コンセントプラグの接地側、非接地側の詳細については、「通信安定化の雑記と接地について」を参照して下さい。


回路上に抵抗が存在する理由

JJ1ODM のチャオ様曰く、信号線へ直列に挿入されている 100ohm の抵抗はグランドバウンス対策、/Data Strobe ピン の 1.5Kohm はプルアップが目的との事です。

グランドバウンスとは、IC の出力などが変化した時にグラウンドの電位 ( 電気的な位置エネルギー ) が変動して機器が誤作動する現象の事です。

高速になるほど、また、突入電流が大きいほど、対策の必要性が大きくなります。標準では 100ohm となっていますが、通信が安定しない場合、50ohm から 200ohm の間で最適な値を試す必要が有ります。

プルアップとは信号線の基本的な電位を高い状態で維持しておく事で、 /Data Strobe ピンに接続するのが特に推奨されているのは、このピンの回路構成がオープンコレクタ ( 簡単に言えば、単なるスイッチ ) である事が理由です。


コマンド集

次に、DCPPRIP 上で用いるコマンドを示します。各項目は、一行目がコマンド、二行目がコマンドの意味です。

  • dcpprip
    GD-ROM を全てバックアップ
  • dcpprip -i
    ドリームキャスト、接続ケーブル、PC/AT 互換機が正常か確認する、総合連動試験
  • dcpprip -t
    GD-ROM の TOC を調べる
  • dcpprip -t x
    GD-ROM の x トラックをバックアップ
  • dcpprip -h
    ヘルプを表示
  • dcpprip -m 0,0x200000 bios.bin
    ドリームキャスト本体の BIOS をバックアップ
  • dcpprip -m 0x200000,0x20000 flash.bin
    ドリームキャスト本体の Flash ROM をバックアップ

OS の制限

使用できるオペレーティングシステムに制限がある理由について、JJ1ODM のチャオ様へ直接お聞きしました。

OS の制限に関する質問の回答 ( 抜粋 ) 

動作OSはプリンターポートを直接たたく都合でWin9x系のみです。(giveIO のよう物もありますが物凄く遅くなりそうなのでNT系は諦めました)

Windows では通常、デバイスドライバを介してハードウェアを操作します。

デバイスドライバは時代により仕様が変化していて、Windows 9x 系では VxD、Windows 2000 や XP 等では WDM、Windows Vista 以降では WDF です。

DCPPRIP が開発された当時、デバイスドライバは VxD か WDM の何れかしか有りませんでしたが、WDM は様々な要因から制作が困難な上にコードがやたらと肥大化して、結果として遅くなりがち等と批判されていました。

その為、Windows 9x 系のみ対応する事を選択した様です。


I/O アドレスの制限

不具合が起きた時、別のドライバを止めれば解決する時も有れば、どうにも対処不可能という時も有ります。詳しく調べてみると、不具合が起きた PC/AT 互換機では、次の範囲の I/O アドレスが両方とも抑えられる事が多い様です。

  • 0378 - 037F
  • 0778 - 077F

I/O アドレスの範囲が二つ表示される原因を調べてみると、一つにはパラレルポートの動作モードに関して不整合が起きている事が原因と思われます。

パラレルポートの規格である IEEE1284 は、昭和五十年代中頃 ( 1980 年頃 ) の前後に業界標準として普及していたセントロニクス仕様をベースとしつつ、規格策定時に存在したいくつかの拡張仕様も取り込まれる事で複数の動作モードを持っている事が分かります。

動作モードは五種類ほど規定されていて、セントロニクス仕様とほぼ同一の SPP ( または互換モード ) 、ニブルモード、バイトモード ( 俗に PS/2 モードとも ) 、EPP モード、ECP モードがあり、このうち EPP モード、ECP モードについては通信プロトコルについても定義されています。

さらに調べてみると、比較的新しい PC/AT 互換機では ECP モードを持ちながらも SPP モードやバイトモード、EPP モードをエミュレーションする機能を持っていて、これが「I/O の範囲」が二つ表示される原因のようです。

このような PC/AT 互換機では、必要に応じて各動作モードを 0x77a の上位 3 ビットを使って切替える必要があるのですが、何らかの理由で切替に失敗して不具合が起きるようです。 ( このような PC/AT 互換機でも、デフォルト設定の動作モードが DCPPRIP に適合していれば、動くかもしれません ) 

この問題が生じた時は、大人しく別の PC/AT 互換機へ交換した方が良いでしょう。


DCPPRIP が不安定な理由

JJ1ODM のチャオ様によると、ドリームキャスト本体のシリアルポートは CPU として用いられている SH4 の SCI インターフェースと直接接続されている、と言います。

この SCI インターフェースへ入力する信号の波形は、それなりに綺麗な波形を要求されます。

それに対し、パラレルポートは精々低速なプリンターと接続する事を前提に回路が組まれています。間違っても SH4 のようなデリケートな物と繋ぐ事なんて考えていません。

この様な事情から通信時に問題が生じやすく、結果として GD-ROM を最後までバックアップ出来ずに失敗する事が少なくない様です。

この問題を根本的に解決しようとすると、CPLD を使って信号の波形を整形する回路を組まないとの事でした。


おわりに

DCPPRIP が開発されたのは、平成十七年 ( 2005 年 ) の事でしたが、当時、まさか新しい吸出し法が開発されるとは、と驚きました。

あれから数年後、今度は SD カードを用いたバックアップ方法が開発されましたので今更 DCPPRIP を使おうという方はいらっしゃらないと思いますが、歴史的意義を考慮してここに残します。


参考文献


玄関へ戻る

Copyright (C) 2016 "shiunten"