2016/06/08

1セクタ512バイトの世界

512バイト/セクタが使えれば、大抵のSCSIディスクが使えるわけで、昔はよく見かけた512バイト/セクタのCD-ROMドライブも使えるようになり、夢がひろがりんぐ…

しかし、512バイト/セクタを使うには512バイト分のバッファが不可欠で、そんな広大な空き領域があるわけもなく、これはもうHuBASICの構造自体を換えないとダメなわけで、不可能なんじゃないか…

そんなふうに考えていた時期が俺にもありました(AA略

ちょっと考えを変える。

BIOSの処理を1セクタ毎になるように分割して、読み出しでは後半256バイトを読み捨て、書き込みでは後半の256バイトに詰め物を…

詰め物を英語でPaddingなわけで、どこかで見た・・・

もしや、MB89352のPadding転送ってのが使えるのかも?

Transferコマンド実行中に、トランスファカウンタが0になってもSCSIバス側で転送要求が有ればダミーで転送を継続してくれるという、正直言って本来は何に使うのが正しいのかよくわからない転送モード。『転送の完了はマンドコンプリートでなく、フェーズ遷移で見てね!』という妙な仕様ですが、プログラム的にはチェックするレジスタが変わるだけで済む。

ということで、ちょいちょい仕込んで、1セクタ毎に処理するようになったためループ処理が増えたけど、まだ容量に若干の余裕。

変換番長のディップスイッチを256バイト/セクタから512バイト/セクタへ戻し、X68030で使っているCFを挿して DEVI$ したところ、ハングアップしたりバグったりせず正常に読めているようだ。次々と読出しを続けると、各セクタとも前半の256バイトだけ読み出されている。しかし、これは1セクタ毎に読み出しているから、たまたま正常に見えている可能性が否定できない。

書き込みをテストするのも面倒なので、フォーマットを実行。続いてマッピング、SYSGENして、IPLリセット…

なんだ、普通に起動するし。意外と簡単だった。

これならMOドライブも…しかし、手抜きの限りを尽くしているためダメでは?

はい、やっぱりダメでした。が、どうすれば良いのか分かっているので、その対応。

0 件のコメント:

コメントを投稿