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 件のコメント:
コメントを投稿