エントリー

2022年04月の記事は以下のとおりです。

PC-6031にフロッピーディスクエミュレータを繋いで2ドライブに

 PC-6001の整備を進める中で,いろいろ課題が見えてきました。

 まず,すべてのカセットテープのプログラムをテープイメージに出来ていなかったことです。20年ほど前に試みた時には上手くいかずあきらめたものもありますし,自作のしょーもないプログラムはイメージにしてエミュレータで遊ぶことも全然考えていませんでした。

 次にフロッピーですが,せっかくPC-6031を持っているのに,5インチ2D(もしくは1D)のデイスクが不足していて,活用し切れていません。5インチ2Dは2HDで代用できないのですが,みんな困っているようで中古の価格が高騰しています。

 私も手持ちが30枚ほどあるだけで,そのほとんど使ってしまいました。AppleIIでも使いますので,話は結構深刻です。

 そこで,簡単な対策として,ディスクを裏返して使うことを考えました。

 要するに,PC-6001やAppleIIのような片面しか使わないマシンでは,両面の2Dのディスクがもったいないので,裏返して両面使いましょうという話です。

 実はこの話,AppleIIでは割に当たり前に使われていた作戦です。AppleIIの時代はディスクの値段がとにかく高価でしたからね,日本に限らずアメリカでも裏返すことは普通に行われていたようです。

 それも,アマチュアがやると言うのではなく,例えば市販のゲームにディスクを両面使うものがあったりしましたし,もっというとApple純正の付属のディスクにも両面を使ったものがあったほどです。

 ただこれはAppleIIだからこそ手軽に出来た技でもあります。AppleIIのディスクはかなり特殊で,後にAppleGCRと呼ばれるフォーマットです。難しい話は置いておきますが,一般的に用いられるインデックスホールを使って0セクタを検出する方法ではないのです。

 インデックスホールというのはディスクにあいた穴で,ここを使ってディスクが1周したことを検知します。左右対称の位置にないので,裏返すと位置がずれてしまいますので,普通は裏返しても認識すらされません。

 ですが,AppleIIはこれを使いません。だから裏返して使えるわけですね。

 とはいえ,私はこれについては少々不安を持っています。

 両面のドライブはディスクを挟むように,裏と表の2つにヘッドを持っていて,両面を裏返すことなく読み書き出来るようになっているのはご存じの通りです。しかし,両面のヘッドが全く同じ位置にあると,書き込み時に磁力が反対面の磁性体に届いてしまい,磁力が弱くなってしまったり,書き換わったりします。

 これを避けるため,裏と表のヘッドの位置は少しずらして取り付けられています。つまり裏と表で,同じトラックの半径が少し違うという事ですね。そのズレ量はちゃんと決まっているのでドライブが変わっても互換性が維持されているわけですが,もともと片面のドライブに,ディスクを裏返して両面を使うようにすると,裏と表で待った置く同じ位置に書き込まれてしまいます。

 これって本当はマズいんじゃないのかというのが私の考えで,これまでそういう理由で裏返すことをやってきませんでした。とはいえ,いよいよ背に腹は代えられなくなってしまい,裏返しに手を出したということです。

 AppleIIではただ裏返すだけなのですが,インデックスホールを使うPC-6031など多くのパソコンでは,インデックスホールを検出する穴をジャケットに開けてあげる必要があります。

 ジャケットを開き,ディスクを取りだし,裏返したときにインデックスホールの検出を行う穴をパンチで開けるというのが手順なのですが,これだとディスクを戻した後ジャケットを閉じねばなりません。しかしこれがなかなか難しいのです。

 そこで私は,小型の1穴のパンチをセンターホールからすーっと滑り込ませて,穴を開けてみました。最初はディスクに傷を付けたりと散々でしたが,慣れてしまえばなんてことはなく,綺麗に処理できるようになりました。

 実際にPC-603?え使って見ると,ほとんどの場合両面で使えるわけですが,なかには裏面で使うとエラーになる物も出てきます。もともと裏面にエラーが出るようなディスクだったのか,あるいはトラックの干渉なのかはわかりませんが,使えないものは仕方がありません。

 それでもこの方法だと,いい気にディスクの仕様枚数を半減できるので,私の手元にはブランクの2Dディスクが何枚も残りました,これはうれしい。

 しかし,この方法もいずれは使えなくなります。どうするか?

 答えは,フロッピーディスクエミュレータを使うこと,です。

 なんのことはない,フロッピーディスクのインターフェースに接続するUSBメモリの駆動装置で,一種の変換器のようなものです。USBに刺さったストレージにイメージファイルを置いておけば,ホストはフロッピーをアクセスしているつもりで,実はイメージにアクセスしているという寸法です。

 これを使えば,小さなSDカードに何百枚のディスクを収納できる上,いくらでも新しいディスクを追加できます。不安定でいつ壊れるかわからないフロッピーのバックアップを補完することも出来ますし,いいことずくめです。

 これ,織物などの機会でパターンのデータを読み込むメディアとして未だにフロッピーディスクが使われていることへの対策が需要として根強くあるそうなのですが,我々のようなレトロPCマニアにとってもありがたい存在です。

 しかし,これまではHxCというメーカーの高価なものしかなく,なかなか厳しいものがありました。これが近年,中国製の安価なものが用意出回り,しかもこれに書き込んで使える高機能なファームウェアがフリーで提供されているおかげで,一気に身近になりました。

 GOTEKという会社のもので,もともとは1.44MBと720KBしか対応しないのですが,FlashFloppuというファームウェアを書き込むと,1Dから2HDまで,様々なフォーマットに対応したエミュレータに変身します。

 しかも標準の?セグLEDから128x32ドットのOLEDへの置き換えやロータリーエンコーダへの対応など,高機能にも程があります。

 私はこのGOTEKの製品を2500円ほどで入手しました。これを書き換え,400円ほどのOLEDに交換,手持ちのロータリーエンコーダも取り付けてみました。

 電源はPC-6031から取るとして,問題は接続ケーブルです。以前は売るほど持っていたこの手のフラットケーブルですが,何度かの引っ越しによって処分されてしまい,34ピンのフラットケーブルなどもう1本も残っていません。

 悔しいですが,新たに買いましょう。これも400円ほどで購入,ただしAT互換機用なので途中で信号線が入れ替わっていますから,これをストレートに戻してやります。

 動作試験を行うとあっけないくらい簡単に動きました。

 しかし,ここで新たな問題が・・・

 PC-6031は,ドライブ1とドライブ2を入れ替える事が簡単にはできないのです。通常フロッピーディスクドライブはデイジーチェーン接続ですので,ドライブセレクトを入れ換えれば済みます。しかしPC-6031はコントローラ基板から直接ドライブ1と2に繋ぐケーブルが出ており,入れ替えはなかなか面倒なのです。

 それに貴重なPC-6031に穴を開けるのも嫌なのでなんとかこのまま使いたいのですが,更に悪いことに標準のディスクコピーツールはドライブ1からドライブ2に一方通行で,USBへのコピーは出来ても,元のフロッピーに書き戻す事が出来ません。

 それ以前の話として,標準のフォーマットツールでは,ドライブ2のディスクをフォーマットすることも出来ないのです。

 かといってドライブ2から起動することも出来ないので,これって意味があるのか,と言う状態に陥り,ちょっと考え込んでしまいました。

 確かにUSBからの起動はなかなかハードルが高そうです。しかし,この問題はもともと,フロッピーディスクに不足に対応するための作戦だったはずです。さらにいうとディスクイメージのやりとりで,実機とエミュレータの間でファイルの交換を出来るようにすることもメリットがあります。

 そこで,常時の運用はフロッピーディスクとし,そのバックアップやエミュレータとのファイル交換にUSBを経由することにしました。

 それでも,USBからフロッピーに書き戻す必要があります。そこで標準のバックアップツールを解析です。一部マシン語で書かれていますが,逆アセンブルで読んだ限り,これはインテリジェントドライブに対する送受信を行うものでした。

 対象となるドライブの指定は,ドライブへのコマンド(1バイト)に続けて1バイトで指定するものなので,ここを見ていくとワークエリアにドライブ番号をPOKEしている箇所が見つかりました。

 ということで,誰が必要かはわかりませんが,NEC純正のバックアップツール「backup.2」を,ドライブ2からドライブ1にコピーするようにする修正箇所を以下に紹介しておきます。

(1)160行目のPOKE PA+2,0を,1とする
(2)240行目のPOKE PA+2,1を,0とする
(3)120行目のDSKI$(1,18,14)を,(2,18,14)とする
(4)あとはメッセージを適当に書き換える

 最初はこの改造をPC-6001VW4で試していたのですが,どうも上手く動きません。ディスクは壊すし散々だったのですが,どう考えても原因がわからず,もしやと思って実機で試すとちゃんと動き,なるほどこのあたりはエミュレーション出来てないんだなあと思った次第です。

 ついでに,2ドライブをフォーマットする改造も紹介して起きます。

(1)すべてのDSKO$とDSKI$の第1パラメータを1から2に変更する
(2)130行目のPOKE&HD980,0を1にする

 PC-6031などのNECのドライブは,フォーマットコマンドを一発送り出すだけでフォーマットをしてくれます。でもFATがないと使えないので,それはBASICで書かれているわけですね。

 ということで,とりあえず私が狙った運用は出来そうです。実機とエミュレータのファイル交換が出来るようになったのは結構大きくて,いろいろな事が出来そうです。

 

ページ移動

  • 前のページ
  • 次のページ
  • ページ
  • 1

ユーティリティ

2022年04月

- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

過去ログ

Feed