ドライブ番号: 0 〜 3 (BASIC で言うドライブ 1 が 0)
論理トラック番号: 0 〜34 (1D), 79 (2D)
セクタ: 1 〜 16
1D モードの場合、論理トラック番号は2倍される。
P31 フォーマットは、2D ディスクのデータ部分のみを記録したフォーマットであり、
2D ディスクの 1 セクタが、FAT16 の 1 セクタに対応する。
2D ディスクの 1 セクタは 256 バイトで、FAT16 の 1 セクタは 512 バイトなので、
FAT16 のセクタの後半 256 バイトは使用しない。
さらに、PC-6001 においては 2D の片面しか使用しないため、
ファイルのサイズは実際のデータのサイズの 4 倍になる。
PC-6001 のエミュレータにおいては、2D の D88 フォーマットの片面を使用して 1D のディスクを表現する。エミュレータは、ディスクへのアクセス時にトラック番号を2倍にする。 本機でも、スイッチを 1D にするか、コマンド 23 で 1D を選ぶと、 トラック番号を2倍にしてアクセスする。
ドライブの初期化(本機では何もしない)
レトロ PC -> 本機: 0
セクタ数の長さ (1-16) のデータを、指定したドライブ番号、トラック番号、セクタ番号から書き込む。
二つのトラックにまたがる書き込みは出来ない。
セクタ 16 の次はセクタ 1 に戻る。
レトロ PC -> 本機: 1, セクタ数, ドライブ番号, 論理トラック番号, セクタ番号, データ...
セクタ数の長さ (1-16) のデータを、指定したドライブ番号、トラック番号、セクタ番号からリード・バッファに読み出す。
本機では、SD カードからの実際の読み出しはコマンド 3 又は 18 で行う。
二つのトラックにまたがる読み込みは出来ない。
セクタ 16 の次はセクタ 1 に戻る。
レトロ PC -> 本機: 2, セクタ数, ドライブ番号, 論理トラック番号, セクタ番号
コマンド 2 で指定したデータをレトロ PC に読み出す。転送されるデータ量はコマンド 2 で指定したデータ量。
レトロ PC -> 本機: 3
本機 -> レトロ PC: データ...
指定したドライブ番号、トラック番号、セクタ番号から、指定したドライブ番号、トラック番号、セクタ番号へ、
セクタ数の長さ分コピーする。
二つのトラックにまたがるコピーは出来ない。
レトロ PC -> 本機: 4, セクタ数, ソースドライブ番号, ソース論理トラック番号, ソースセクタ番号,
ディスティネーションドライブ番号, ディスティネーション論理トラック番号, ディスティネーションセクタ番号
指定したドライブ番号のディスクをフォーマットする。
レトロ PC -> 本機: 5, ドライブ番号
直前のコマンドの実行結果を得る。
第 7 ビット: 常に 1
第 6 ビット: リード・ バッファにデータがあるなら 1
第 0 ビット: 直前のコマンドがエラーなら 1
レトロ PC -> 本機: 6
本機 -> レトロ PC: 実行結果
ドライブの状態を得る。
第 4 ビット: ドライブ 1 がマウントされていれば 1
第 5 ビット: ドライブ 2 がマウントされていれば 1
レトロ PC -> 本機: 7
本機 -> レトロ PC: ドライブの状態
未実装
ディスクユニット内のメモリの内容を本体に転送するコマンドだが、本機では未実装。
(75Fh 番地、または 7EFh 番地の内容を聞かれた場合のみ、それぞれ 77h, EFh を返す。)
レトロ PC -> 本機: 11, スタートアドレス上位, 下位, データ量の上位, 下位
本機 -> レトロ PC: データ
未実装
コマンド 1 と同じだが、ハイスピード・ハンドシェークで転送する。未検証。
コマンド 3 と同じだが、ハイスピード・ハンドシェークで転送する。未検証。
データの下位4ビットで、各ドライブを 2D にするか 1D にするかを指定。2D ならビットが1、1D ならビットが 0。
レトロ PC -> 本機: 23, データ
コマンド 23 で指定した、1D / 2D の指定を返す。
レトロ PC -> 本機: 24
本機 -> レトロ PC: データ
RFD が 1 になるのを待つ
データを出力
DAV に 1 を出力
DAC が 1 になるのを待つ
( ハイスピード・ハンドシェークの場合、2バイト目を出力 )
DAV に 0 を出力
DAC が 0 になるのを待つ
RFD に 1 を出力
DAV が 1 になるのを待つ
RFD に 0 を出力
データを入力
DAC に 1 を出力
DAV が 0 になるまで待つ
( ハイスピード・ハンドシェークの場合、2 バイト目を入力 )
DAC を 0 にする
本機は、まず ATN が 1 になるのを待ち、コマンドを受け取り、ATN が 0 になれば、 以下のパラメータを受け取り、コマンドを実行する。
端子番号 | 端子名 | 入出力 | 機能 |
1〜8 | PB0-7 | 出力 | データ出力 |
9 | N.C. | - | |
10〜18 | GND | - | 信号グランド |
19〜26 | PA0-7 | 入力 | データ入力 |
27〜30 | PC4-7 | 出力 | ATN: DAC: RFD: DAV |
31〜34 | PC0-3 | 入力 | ATN: DAC: RFD: DAV |
35 | RESET | 出力 | リセット |
36 | GND | - | 信号グランド |
PC-8801、mkII DISK 活用ハンドブック、 藤井保則、星野博和、テクノポリス・ブックス
フロッピディスク入門ハンドブック、山内 直著、秀和システムトレーディング