フロッピーディスク
3インチ コンパクトフロッピーディスク
概要
FD I/Fカード MP-1805 + FDDユニットMP-3370/3375 の組み合わせで使用できる。
ディスクは片面単密度(1S) x 裏表2面 で表であるA面と裏であるB面の切り替えは手動でおこなう。
なお、5インチ片面単密度である MP-1800 + MP-3540 はディスク面の切り替えはできないもののフォーマットは3インチと同じ。
パラメータ:
2面/ディスク1枚(手動で入れ替え)
40トラック/片面
16セクタ/トラック
128バイト/セクタ
記録方式:
FM方式
回転数:300rpm(125Kbit/s)
なお、DISK BASICではセクタ番号は順番には並んでおらず、セクタ1の次が12、その次が7という風になっている。(インターリーブが3)
DISK BASICのフォーマット
システムディスクのトラック構成
トラック | セクタ | 内容 |
---|---|---|
0 | 1 ... 2 | DISK BASICローダ |
3 ... 16 | 未使用 | |
1 ... 2 | 全て | メモリ32KB用DISK BASICシステムコード |
3 ... 4 | 全て | メモリ40KB用DISK BASICシステムコード |
5 ... 12 | 全て | ユーティリティプログラム |
13 | 1 ... 4 | |
5 ... 16 | ユーザ・エリア | |
14 ... 19 | 全て | |
20 | 全て | ファイル管理エリア |
21 ... 39 | 全て | ユーザ・エリア |
ユーザディスクのトラック構成
トラック | セクタ | 内容 |
---|---|---|
0 ... 19 | 全て | ユーザ・エリア |
20 | 全て | ファイル管理エリア |
21 ... 39 | 全て | ユーザ・エリア |
ファイル管理エリアのフォーマット
ファイル管理エリアには、FAT(ファイル・アロケーション・テーブル)とディレクトリが含まれる。
FATは各グループ(クラスタ)の使用状態を示すテーブル。1グループは4セクタで最大グループ番号は155($9B)。
セクタ1の5バイト目から1バイトごとにそのグループ番号の使用状態を記録している。データの値は以下のとおり。
データの値 | 内容 |
---|---|
$00 ~ $9B | ファイルの一部であることを示し、後続するグループ番号を指している。 (トラック20のセクタはとばして計算する。) |
$C0 ~ $C3 | ファイルの最後のグループを示す。下位4ビットが 使われているセクタ数+1 を示す。 |
$FD | 削除された領域。ランダムアクセスファイルでクローズされるまで残る。 |
$FE | システムで使用している領域。ユーザは使用できない。 |
$FF | 未使用領域を示す。 |
ディレクトリはファイル名、属性を記録するテーブル。セクタ7から16までを使用する。1ファイルに付き32バイト使用する。
# | 位置 | バイト数 | 内容 |
---|---|---|---|
1 | 0...7 | 8 | ファイル名 |
2 | 8...10 | 3 | 未使用($00) |
3 | 11 | 1 | ファイルの種類 $00 ... BASIC $01 ... データ $02 ... 機械語 |
4 | 12 | 1 | ファイルの種類2 $00 ... バイナリ形式(BASIC, 機械語のみ) $FF .... アスキー形式(BASIC, データのみ) |
5 | 13 | 1 | ファイルの種類3 $00 ... シーケンシャル $FF .... ランダムアクセス |
6 | 14 | 1 | ファイルが格納されている最初のグループ番号 |
7 | 15...31 | 17 | 未使用($00) |
データのフォーマット
BASIC - バイナリ形式
カセットテープと同じ。ファイルの最後には終端記号($1A)が入る。
BASIC - アスキー形式
1バイト目に改行が入る。改行はCR+LF($0D+$0A)となる。ファイルの最後には終端記号($1A)が入る。
機械語
カセットテープと同じ。ファイルの最後には終端記号($1A)が入る。データ - シーケンシャル
改行はCR+LF($0D+$0A)となる。ファイルの最後には終端記号($1A)が入る。
データ - ランダムアクセス
1レコードにつき1セクタ使用する。
I/O
FDC(HD46503S(MC6843))(片面単密度用)
アド レス |
データビット | R / W | 備考 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
FF18 | R | DIR | ||||||||
W | DOR | |||||||||
FF19 | ? | R / W | CTAR | |||||||
FF1A | R | CMR | ||||||||
x | x | x | x | W | ISR | |||||
FF1B | R | STRA | ||||||||
W | SUR | |||||||||
FF1C | x | x | x | R | STRB | |||||
W | SAR | |||||||||
FF1D | x | W | GCR | |||||||
FF1E | x | x | x | x | x | x | W | CCR | ||
FF1F | x | W | LTAR |
DRIVE-SEL(片面単密度用)
アド レス |
データビット | R / W | 備考 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
FF20 | MT | x | x | x | D3 | D2 | D1 | D0 | W |
D0:ドライブ0 D1:ドライブ1 D2:ドライブ2 D3:ドライブ3 選択
MT:モータON/OFF
※リード操作を行うと、$FFがこのレジスタに書き込まれる。
ピン配置(MP-1800/MP-1805)
No. | 意味 | データ方向 | 備考 | |
1 | /HEAD LOAD | OUT | 増設ドライブはMP-1801を介して接続する。 | |
2 | NC | --- | ||
3 | /READY | IN | ||
4 | /INDEX | IN | ||
5 | /DRIVE0 SELECT | OUT | ||
6 | /DRIVE1 SELECT | OUT | ||
7 | NC | --- | ||
8 | /MOTOR | OUT | ||
9 | /DIRC | OUT | ||
10 | /STEP | OUT | ||
11 | /WRITE DATA | OUT | ||
12 | /WRITE GATE | OUT | ||
13 | /TRACK00 | IN | ||
14 | /WRITE PROTECT | IN | ||
15 | /READ DATA | IN | ||
16 | NC | --- | ||
17 | NC | --- | ||
18~25 | Vcc(+5V) | IN | ||
26~50 | GND | --- |
Vcc(+5V)はFDD側から供給する必要がある。
5.25インチ ミニフロッピーディスク
概要
FD I/Fカード MP-1802 + FDDユニットMP-3550/3560 の組み合わせで使用できる。
ディスクは両面倍密度(2D)
パラメータ:
40トラック/片面 x 2
16セクタ/トラック
256バイト/セクタ
記録方式:
MFM方式
回転数:300rpm(250Kbit/s)
DISK BASICではインターリーブ:6
DISK BASICのフォーマット
システムディスクのトラック構成
トラック | セクタ | 内容 |
---|---|---|
0 | 1 ... 2 | DISK BASICローダ |
3 ... 32 | 未使用 | |
1 | 1 ... 24 | DISK BASICシステムコード |
25 ... 32 | ユーザ・エリア | |
2 ... 17 | 全て | |
18 | 1 ... 16 | |
17 ... 32 | ユーティリティプログラム | |
19 | 全て | |
20 | 全て | ファイル管理エリア |
21 | 全て | ユーティリティプログラム |
22 ... 39 | 全て | ユーザ・エリア |
セクタ1...16がサイド0,セクタ17...32がサイド1。
|
ユーザディスクのトラック構成
トラック | セクタ | 内容 |
---|---|---|
0 | 全て | 未使用 |
1 ... 19 | 全て | ユーザ・エリア |
20 | 全て | ファイル管理エリア |
21 ... 39 | 全て | ユーザ・エリア |
ファイル管理エリアのフォーマット
FATは各グループ(クラスタ)の使用状態を示すテーブル。1グループは8セクタで最大グループ番号は151($97)。
セクタ2の2バイト目から1バイトごとにそのグループ番号の使用状態を記録している。データの値は以下のとおり。
データの値 | 内容 |
---|---|
$00 ~ $97 | ファイルの一部であることを示し、後続するグループ番号を指している。 (トラック20のセクタはとばして計算する。) |
$C1 ~ $C8 | ファイルの最後のグループを示す。下位4ビットが 使われているセクタ数を示す。 |
$C0 | ファイルが新たに開かれた時などで最初のグループを示す。 |
$FE | システムで使用している領域。ユーザは使用できない。 |
$FF | 未使用領域を示す。 |
ディレクトリはファイル名、属性を記録するテーブル。セクタ5から23?までを使用する。1ファイルに付き32バイト使用する。
# | 位置 | バイト数 | 内容 |
---|---|---|---|
1 | 0...7 | 8 | ファイル名 |
2 | 8...10 | 3 | 拡張子 |
3 | 11 | 1 | ファイルの種類 $00 ... BASIC $01 ... データ $02 ... 機械語 |
4 | 12 | 1 | ファイルの種類2 $00 ... バイナリ形式(BASIC, 機械語のみ) $FF .... アスキー形式(BASIC, データのみ) |
5 | 13 | 1 | ファイルが格納されている最初のグループ番号 |
6 | 14...15 | 2 | ファイルの最終セクタのサイズ(バイト数) |
7 | 16...31 | 16 | 未使用($00) |
データのフォーマット
BASIC - バイナリ形式
カセットテープと同じ。終端記号($1A)は入らない。
BASIC - アスキー形式
1バイト目に改行が入る。改行はCR+LF($0D+$0A)となる。終端記号($1A)は入らない。
機械語
カセットテープと同じ。終端記号($1A)は入らない。データ - シーケンシャル
改行はCR+LF($0D+$0A)となる。終端記号($1A)は入らない。
データ - ランダムアクセス
1レコードにつき最低128バイト使用する(最大サイズはユーティリティで変更可能)。なお、ファイル種類はシーケンシャルデータと同じ。
I/O
FDC(MB8866)(両面倍密度用)
アド レス |
データビット | R / W | 備考 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
FF00 | R | STR | ||||||||
W | CR | |||||||||
FF01 | R / W | TR | ||||||||
FF02 | R / W | SCR | ||||||||
FF03 | R / W | DR |
DRIVE-SEL(両面倍密度用)
アド レス |
データビット | R / W | 備考 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
FF04 | DRQ | x | x | x | x | x | x | IRQ | R | |
x | NM | D/S | S | M | x | DRV | W |
IRQ:通常=1 IRQ発生時=0 -> NMI割り込み発生
DRQ:通常=1 DRQ発生時=0
DRV:ドライブ選択(0~3)
M:モータON/OFF
S:サイド選択
D/S: 倍密度=1 単密度=0
NM: NMI禁止する場合=1
ピン配置(MP-1802)
No. | 意味 | データ方向 | |
1 | /HEAD LOAD | OUT | |
2 | /DRIVE3 SELECT | OUT | |
3 | /READY | IN | |
4 | /INDEX | IN | |
5 | /DRIVE0 SELECT | OUT | |
6 | /DRIVE1 SELECT | OUT | |
7 | /DRIVE2 SELECT | OUT | |
8 | /MOTOR | OUT | |
9 | /DIRC | OUT | |
10 | /STEP | OUT | |
11 | /WRITE DATA | OUT | |
12 | /WRITE GATE | OUT | |
13 | /TRACK00 | IN | |
14 | /WRITE PROTECT | IN | |
15 | /READ DATA | IN | |
16 | /SIDE SELECT | OUT | |
17 | READ CLOCK | IN | |
18~25 | Vcc(+5V) | IN | |
26 | DOUBLE DENSITY | OUT | |
27~48 | GND | --- |
Vcc(+5V)はFDD側から供給する必要がある。