1)ドライブ数が4つに固定されている。
SD6031/SD6031WIF を普通に起動した場合、PC-6001/mk2 では4ドライブ、mk2SR では2ドライブ、66/66SR では内蔵ドライブ+2ドライブが使用できます。
使用できる事は問題ではなく、ドライブ数が増えるためにフリーエリアが
回避方法ですが、オート起動を使ってドライブ数をごまかす、というテが使えます。
P31 のファイルの先頭(つまり、トラック#0セクタ1の先頭)を以下のようにします。
53 59 53 3e 01 32 3b fb c9
DB "SYS"
LD A,01 ← 新しいドライブ数
LD (0FB3BH),A
RET
66/66SR で内蔵ドライブから起動する場合は、上記を書いたフロッピーを挿入して立ち上げて下さい。この時は新しいドライブ数は、内蔵ドライブ数+外付けドライブ数です。
2)大きいイメージファイルを使った時に、リセット後のオート起動が出来ない
D1だけではなく、D2、D3、D4 に大きいイメージファイルがあった場合、オート起動が出来ない場合があります。
これは、リセット後に、SDカードのイメージファイルの内容を先読みしているためで、大きいイメージファイルの場合はその先読みに時間がかかってしまい、オート起動が出来なくなります。
起動時にオート起動をしたい場合は、大きいイメージファイルを選択せずに、起動した後でイメージファイルを選択するようにして下さい。
もしくは、新しいイメージセレクタを使用してください。現在、鋭意製作中(^^;
3)mk2から変換したオート起動用のROMで動かないプログラムがある
原因がはっきりしていないのですが、どうもスタック関連でこける時があるようです。オート起動じゃなくても同様の現象を起こします。
起動後にスタックを変更する(CLEAR文)、最大ページ数を変更するなどで起動してみて下さい。
最大ページ数は、How Many Pages? で1を入力した後に、最大ページ数のワーク(0xFD8C)を書き換えるとごまかすことができます。


PC-6031+PC-6032では実現できない(?)4ドライブ構成ですね(PC-6031にはPC-6032を
3台は接続できませんよね?)
4台で使うなら最初からPC-80(S)31+PC-80(S)32にするしか...?
mkIIは4台、mkIISR/P66/SRは外部に2台になっていますが、N60mとN66の違いでしょうか
ねぇ?
ところで、PC-60M31(3.5インチ1D)にはPC-6032は接続できますか?
2台目は増設ではなくPC-60M31に入れるのでPC-60M32はなかったようですが。
2台内蔵で完結で、更なる増設はできなさそうな気もしますが(もちろん線を引き出せば
できるでしょうけど)。
> 使用できる事は問題ではなく、ドライブ数が増えるためにフリーエリアが増えるのが問題です。
フリーエリアが『減る』か、『ワークエリア』が増えると思います。
> 回避方法ですが、オート起動を使ってドライブ数をごまかす、というテが使えます。
まぁ現状はSD6031ではBASICが主になるでしょうけど、これではCP/M等の他OSでは
使えないテですね。
ドライブ数だけ設定してチェインロード(ディスクを入れ替えて(イメージを変更して)
ブート続行)できれば解決ですが。
現在のSD6031の仕様ではゲーム等の特殊フォーマット(プロテクトの有無とは別)には
対応していなさそうなので、ToDoでも良さそうですが。
(それともセクタ長固定はHDDモードだけですか?)
>>
>>PC-6031+PC-6032では実現できない(?)4ドライブ構成ですね(PC-6031にはPC-6032を
>>3台は接続できませんよね?)
>>4台で使うなら最初からPC-80(S)31+PC-80(S)32にするしか...?
>>mkIIは4台、mkIISR/P66/SRは外部に2台になっていますが、N60mとN66の違いでしょうか
>>ねぇ?
初代機とmk2 に関しては、P8系の影響を受けていると思われます。
外部ドライブはP8系のものを使えるように設計されているため、4ドライブまで
可能なP8系のものをそのまま使えるようにしているんだと思われます。
66 と 66SR に関しては、
・全部のドライブは4ドライブまで(mk2とのコンパチ維持のため)
・内蔵が2ドライブまで可能
なために、外付けは2ドライブまでとなっていると思われます。
mk2SR は、66SR とROM が同じために、66SR と同じように外付けは2ドライブまでになります。
>>ところで、PC-60M31(3.5インチ1D)にはPC-6032は接続できますか?
>>2台目は増設ではなくPC-60M31に入れるのでPC-60M32はなかったようですが。
>>2台内蔵で完結で、更なる増設はできなさそうな気もしますが(もちろん線を引き出せば
>>できるでしょうけど)。
実機がないのでわかりません。
>>> 使用できる事は問題ではなく、ドライブ数が増えるためにフリーエリアが増えるのが問題です。
>>
>>フリーエリアが『減る』か、『ワークエリア』が増えると思います。
御指摘ありがとうございます。修正しました。
>>> 回避方法ですが、オート起動を使ってドライブ数をごまかす、というテが使えます。
>>
>>まぁ現状はSD6031ではBASICが主になるでしょうけど、これではCP/M等の他OSでは
>>使えないテですね。
CP/M って、起動時に自由にドライブ数を変えられましたっけ?
>>ドライブ数だけ設定してチェインロード(ディスクを入れ替えて(イメージを変更して)
>>ブート続行)できれば解決ですが。
BASICのワークエリアを変更するだけなら、この方法は可能です。
ドライブ数を答えるコマンド0x07(DRIVE STATUS)に対するレスポンスが、
現在のファームでは固定値を返しているために、これ以上の事はできません。
>>現在のSD6031の仕様ではゲーム等の特殊フォーマット(プロテクトの有無とは別)には
>>対応していなさそうなので、ToDoでも良さそうですが。
>>(それともセクタ長固定はHDDモードだけですか?)
セクタ長固定は全てです。
ここを変更するとファームの変更量が多いために、変更する気はあまりありません。
結局まだ今のSD6031シリーズでは1ドライブ起動はできないって事ですよね?
ごまかす方法なら可能です。
個別のプログラムを起動後、ドライブ数を再チェックされたらダメなんですが。
上記のやり方だと、既存のイメージファイルに手を入れる必要がありますが、他のイメージファイルを使って起動する方法もあります。この方法は後日アップします。
>>>>対応していなさそうなので、ToDoでも良さそうですが。
>>>>(それともセクタ長固定はHDDモードだけですか?)
>>
>> セクタ長固定は全てです。
>> ここを変更するとファームの変更量が多いために、変更する気はあまりありません。
>>
訂正です。
SD6031 は、外付けドライブの代替機ですので、セクタ長は256バイトで固定です。
PC-80S31 などのようなCPUが載っていて、アクセスプログラムが変更できるものも
ありますが、PC-6031 などのようなドライブもあるため、P6 では外付けドライブで
動くものは、特殊フォーマットはないと思います。
通常フォーマットで、特定のセクタだけアンフォーマット化して、エラーが出る事を
確認するプロテクトはあるようですが。
内蔵ドライブで動くものに関しては、元々外付けドライブで動作しないものに
関してはどうする事もできません。
> 可能なP8系のものをそのまま使えるようにしているんだと思われます。
どちらかというと88より80ですね(80は全3機種とも4台接続可)。
その88でも、標準で4台接続できるのは元祖とmkIIだけだったりします。
ホビー機に転向したSRからは内蔵FDCから増設できるポートが省かれPC-80S32が接続でき
なくなりました。1台毎に制御線が別なので、線を引き出しての接続が難しいです。
もっとも、88の場合8インチ(または2HD)をさらに4台、という離れ業もありますし、
初期の98に至っては全部で10台(12台?)というFDDだらけのシステムにもできます。
> CP/M って、起動時に自由にドライブ数を変えられましたっけ?
P6版の実装をチェックしていませんが、ワークエリアをチェックしていれば、このテがとれ
そうな...
> ドライブ数を答えるコマンド0x07(DRIVE STATUS)に対するレスポンスが、
> 現在のファームでは固定値を返しているために、これ以上の事はできません。
これ以上はスイッチをつける等ハードウェアに手を入れる必要がありそうですね
> セクタ長固定は全てです。
> ここを変更するとファームの変更量が多いために、変更する気はあまりありません。
あら〜やっぱりそうですか
どうせファームをいじるならD88を直接ロードできるようにした方が良いですしねぇ...
まだP31の内容が変えられるなら、1Dは飛び飛び(前半256バイト)、1DDは前後半とも埋める
というのはいかがでしょう?
1DDで前半が偶数トラック、後半が奇数トラックになるようなイメージです。
> PC-80S31 などのようなCPUが載っていて、アクセスプログラムが変更できるものも
> ありますが、PC-6031 などのようなドライブもあるため、P6 では外付けドライブで
> 動くものは、特殊フォーマットはないと思います。
P6版マリオブラザーズSPECIALが特殊フォーマット(トラック0のみ256/16、それ以降は
1024/4)らしいですが、これはP66用3.5インチのようでした。mkII用はカセット版だそうです。
あぁカン違い。
P6の5インチのゲームってどんなのがあったんでしょうね?当時はまだROMカートリッジと
カセットが主流で、高価なFDDを外付けしてまでゲームをプレイする事はあまりなかった
でしょうけど。
よく考えたらこれは意味ないですね。それならまだ詰め込んだ方が...
でもAVRのバッファRAM容量とかの問題で無理なんでしたっけ?
ATmega644Pにすればどうにかなるかも?
AVRのファームを変更してD88を扱えるようにしても、P6側の方からアクセスする手段がありません。
66/66SR の内蔵ドライブを引っこ抜いて、代わりにSDカードにアクセスする回路を付けるなどをする必要があります。
>>まだP31の内容が変えられるなら、1Dは飛び飛び(前半256バイト)、1DDは前後半とも埋める
>>というのはいかがでしょう?
>>1DDで前半が偶数トラック、後半が奇数トラックになるようなイメージです。
今のP31フォーマットは 1Dと1DD(2D)が共用で、1D の場合は奇数トラックの部分にデータがないような構成になっています。
SDカードの1セクタが512バイトで、フロッピーの1セクタが256バイトなので、SDカード1セクタとフロッピー1セクタを対応させています。そのため、SDカードの1セクタの後半256バイトは常に未使用です。
P31の仕様では、歯抜けで使いにくいからという理由です。それなら256/16しか使えなくても
D88のほうが使い易い、と思った次第でした。でも、
>> 1DDで前半が偶数トラック、後半が奇数トラックになるようなイメージです。
> よく考えたらこれは意味ないですね。それならまだ詰め込んだ方が...
> でもAVRのバッファRAM容量とかの問題で無理なんでしたっけ?
> ATmega644Pにすればどうにかなるかも?
のようにベタの方が良いと考え直しました。
トラック毎はあまり意味ないので、SDの1セクタの前半を奇数セクタ、後半を偶数セクタに
割り当てれば、N88uty等の一般的な2D用ツールが使えると思いました。
1Dでは4096バイト毎にデータとブランクが交互になります。
> 66/66SR の内蔵ドライブを引っこ抜いて、代わりにSDカードにアクセスする回路を付けるなどをする必要があります。
確か西田ラヂオさんとこに、88用でそういうのもあったような?
tulip-house.ddo.jp/digital/SD88/index.html
ただしR/Oです。
これで使われるR88形式はCRCやGAPもある、より完全に近い形式です。
それにしても、SD6031はともかく、PC-6031がこのような仕様では、88のC-DOS2のような
MS-DOSファイルシステム互換OSは作れそうもありませんね...
P66用か、P6+PC-80S31用にするしか...
マルチプラン(+MSX-DOS)とかが移植されなかったのはそこら辺に原因が?(まさか)