ファイル名とファイルシステム - APPLEDOS
フロッピーディスクが普及すると、1枚のメディアに複数のファイルをいれることが出来るので、それらの区別をするために名前を付けるようになります。そういえばDOSについては以下の記事に書いたのですが、どんな名前を付けることができたのかを、もう少し調べました。
AppleDOSの特異性
どんな名前が付けられるかは、そのパソコンが持っている文字セットに依存するのですが、例えばAPPLE][のDOSではそもそも初期のAPPLEはアルファベットは大文字しか使えなかったので、大文字と小文字の区別で悩む必要はありません。APPLEの場合、過去の遺産と付き合う必要もなかったですし、人に優しいハッカーが作っているので、当時としてはとても長い30文字までのファイル名を使うことができました(30文字を超えても切り捨てられるだけでエラーにはなりません)。
制限といえば数字から始まるファイル名が使えないくらいで、記号もパラメタを区切るために使う”,”以外は何でもありです。ちょっと困るのが制御文字もOKで、ファイル名一覧で表示されない文字が含まれていることがあって、ちょっとした隠しファイルを作ることが出来ました。
ディスクを管理するDOSが持っているファイルについての情報としては、ファイル名の他にはファイルの種類(拡張子はありません)と、書き込み可能かのフラグ、そして長さと実際にデータが格納されているトラックとセクタのテーブルくらいしかありません。まだフロッピーディスクが相手だったので、そんなに多くのファイルが入るわけではなく、階層化ディレクトリが登場するのは、もう少し後になってからです。
Apple DOS
コマンドや内部構造はこちらを読破してください。
Apple II: The DOS Manual: Disk Operating System
ちなみにDOSのソースコードはコンピュータ歴史博物館のサイトで公開されていて、6502のアセンブラが読めるのであれば読めばすべてがわかります🙂。
APPLE II DOS SOURCE CODE
もっとも当時はソースコードなんて無くても、逆アセンブルしたコードとニラメッコしていたので、中身については充分わかっているつもりですが、ところどころトリッキーなコードがあって、サブルーチンとして使うと予期しない副作用が心配でした。自力で特殊な処理を書く時はセクタの直接読み書きサブルーチンだけを借用して、仕様を見ながら自分で処理を書くことが多かったです。
今から考えると実にシンプルな構造なんですが、それでもブート領域、ファイル名領域、セクタの使用・未使用マップなど基本的な構造は変わりません。そういう意味ではファイルごとのセクタテーブルなんかに個性があるのですが、その辺りはおいおい他のファイルシステムが出てきた時に比べてみましょう。