MB-6892

フロッピーディスク

3インチ コンパクトフロッピーディスク3インチ コンパクトフロッピーディスク

概要

レベル3では、片面単密度(1S) x 裏表2面 で表であるA面と裏であるB面の切り替えは手動でおこなう。

パラメータ:
2面/ディスク1枚(手動で入れ替え)
40トラック/片面
16セクタ/トラック
128バイト/セクタ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 備考
D7D6D5D4D3D2D1D0
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 備考
D7D6D5D4D3D2D1D0
FF20 MT ? ? ? D3 D2 D1 D0 W

D0:ドライブ0 D1:ドライブ1 D2:ドライブ2 D3:ドライブ3 選択
MT:モータON/OFF ?

 


5.25インチ ミニフロッピーディスク

概要

ここでは、両面倍密度(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のサイド0は単密度、その他は倍密度。

ユーザディスクのトラック構成

トラック セクタ 内容
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 備考
D7D6D5D4D3D2D1D0
FF00 R STR
W CR
FF01 R / W TR
FF02 R / W SCR
FF03 R / W DR

DRIVE-SEL(両面倍密度用)

アド
レス
データビット R / W 備考
D7D6D5D4D3D2D1D0
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

ピン配置

フロッピインターフェース 50pin アンフェノール 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側から供給する必要がある。

 

TOP PAGE