知識ベース

Apple ProDOS

ProDOSは、Apple IIシリーズのパーソナルコンピュータ用の2つの類似したオペレーティングシステムの名前です。バージョン1.2でProDOS 8に改名されたオリジナルのProDOSは、すべての8ビットApple IIシリーズコンピューターで使用できる最後の公式オペレーティングシステムであり、1983年から1993年に配布されました。他のProDOS 16は、 2年以内にGS / OSに置き換えられた16ビットApple IIGS。

ProDOSは、 Professional Disk Operating Systemを意味するものとしてAppleから販売され、1983年1月のリリースから10か月後にApple IIシリーズのコンピューターで最も人気のあるオペレーティングシステムになりました。

バックグラウンド

ProDOSは、その時代を見せ始めていた以前のAppleオペレーティングシステム(単にDOSと呼ばれる)の欠点に対処するためにリリースされました。

Apple DOSには5.25インチフロッピーディスクのサポートのみが組み込まれており、ハードディスクドライブや3.5インチフロッピードライブを含む非Disk-IIフロッピーディスクドライブなどの周辺機器を使用するためのパッチが必要です。 ProDOSは、ディスクデバイスの拡張カード上のROMベースドライバーにアクセスする標準的な方法を追加し、最大ボリュームサイズを約400キロバイトから32メガバイトに拡張し、階層サブディレクトリのサポートを導入します(ハードディスクのストレージスペースを整理するための重要な機能)。 128kB以上のメモリを搭載したマシンでRAMディスクをサポートします。 ProDOSは、ハードウェア割り込みの処理に関する問題に対処し、Apple DOSには常に欠けていた、明確に文書化されたプログラミングおよび拡張インターフェイスが含まれています。 ProDOSにはリアルタイムクロック(RTC)のサポートも含まれていますが、このサポートはApple IIシリーズの最初のリリースであるRTCを搭載したApple IIGSのリリースまでほとんど使用されませんでした。ただし、II Plus、IIe、およびIIcではサードパーティ製のクロックが利用できました。

ProDOSは、以前のApple DOSバージョンとは異なり、1980年にリリースされた不運なApple IIIコンピューターのオペレーティングシステムであるSOSに開発のルーツがあります。ProDOS( Beneath Apple ProDOSの初期版を含む)特に、スイッチドディスクの場合、ProDOS自体は生成できません。そのディスク形式とプログラミングインターフェイスはApple DOSのものとは完全に異なっており、ProDOSは変換ユーティリティを使用しない限り、DOS 3.3ディスクを読み書きできません。 DOS 3.3ディスクの低レベルのトラックとセクターのフォーマットは5.25インチディスク用に保持されていましたが、ファイルとディレクトリの高レベルの配置は完全に異なります。このため、Apple DOSで実行されるほとんどの機械語プログラムは、ProDOSでは機能しません。ただし、ほとんどのBASICプログラムは動作しますが、わずかな変更が必要になる場合があります。 DOS.MASTERと呼ばれるサードパーティプログラムを使用すると、ユーザーはより大きなProDOSボリューム上に複数の仮想DOS 3.3パーティションを作成できます。

ProDOSのリリースに伴い、Integer BASICおよび元のApple IIモデルのサポートが終了しました。これは、Applesoft BASICおよびApple II Plusに実質的に取って代わられました。 DOS 3.3は常にBASICプログラミングの組み込みサポートをロードしますが、ProDOSではこのジョブはBASIC.SYSTEMと呼ばれる別のシステムプログラムに与えられ、Applesoft BASICプログラムを実行および作成するために起動されます。 BASIC自体は引き続きApple ROMに組み込まれました。 BASIC.SYSTEMは、DOS 3.3で使用していたのと同じ「Control-D」テキスト出力を使用して、BASICプログラムがProDOSにアクセスできるようにするコマンドインタープリターの機能強化にすぎません。 BASIC.SYSTEMだけで、DOS 3.3全体と同じくらいのメモリが必要です。 ProDOSカーネル自体が「Language Card」RAMに格納されているため、BASICプログラマが使用できるRAMの量は、DOS 3.3の場合と同じようにProDOSでも変わりません。

ProDOSには多くの利点がありますが、多くのユーザーとプログラマーは、Apple DOSの詳細とApple-DOSベースのソフトウェアとデータ形式の学習に投資したため、しばらくの間抵抗しました。貢献する理由は、ProDOSがApple DOSの30と比較してファイル名に15文字しか許可しないことでした。古いオペレーティングシステム用。 Apple IIは引き続き古いDOSを起動できます(Apple IIGSでも古いDOSフロッピーを起動できます)が、3.5インチフロッピーとハードディスクが普及するにつれて、ほとんどのユーザーはほとんどの時間をProDOSで過ごしました。

1983年にリリースされたApple IIeは、64kBのメモリを内蔵した最初のApple IIコンピュータでした。しばらくの間、Appleは新しいコンピュータでDOS 3.3とProDOSの両方を出荷しました。

ProDOS 16はすぐにGS / OSに置き換えられましたが、元のProDOSは、ProDOS 16が16ビットApple IIGSコンピュータをサポートするためにリリースされたときにProDOS 8に名前が変更されました。

必要条件

ProDOSのすべてのエディションには、Apple IIシリーズのコンピューターまたはライセンスされた互換性が必要です。

ProDOS 8を実行するには64kBのメモリが必要です。オリジナルのProDOS(8)1.0から1.0.2はカーネルに48kBだけを必要としますが、Applesoft BASICを使用するために必要なBASIC.SYSTEMを含むほぼすべてのプログラムは64kBを必要とし、48kBシステムはProDOSにとって実用的ではありません。 48kBマシンのサポートはバージョン1.1で削除されました。

ProDOS 8バージョン2.xでは、65C02以降(65802、65816)CPUが必要です。 ProDOS 8 2.xは64kBで実行されますが、システムディスク上のユーティリティプログラムには128kBが必要です。 65C02ではなく6502 CPUを搭載したシステムでは、バージョン2.0より前のProDOS 8バージョンを使用する必要があります。

2016年8月16日にリリースされた非公式の「ProDOS 8 2.4」は、65C02要件を削除し、少なくとも64 KBのRAMを搭載したすべてのApple IIコンピューターで実行されますが、BASIC.SYSTEMにはApplesoft ROMが必要です。

ProDOS 16にはApple IIGSが必要です。

ライセンスされていないApple IIクローン

ProDOSバージョン1.01以降のリリースでは、公式のApple製コンピューターで実行されているかどうかを確認するチェックが追加されました。コンピュータのROMファームウェアで「Apple」という単語が見つかった場合、ProDOSは通常どおりロードされます。他に何かが見つかった場合(「ゴールデン」、「フランクリン」、「エリート」など)、ProDOSは実行を拒否し、起動スプラッシュ画面でロックします。この措置は、ライセンスのないApple IIクローンの使用を阻止するためにApple Computerによって行われました。クローンでProDOSの新しいバージョンを実行することは引き続き可能です。ただし、ユーザーはProDOSのすべての連続バージョンにスモールバイトパッチを適用する必要があります。一部のユーザーは、物理ROMチップを違法コピーされたApple独自のROMに交換することを行っています。または、失敗した場合、名前に「Apple」が追加されたカスタムパッチROM。

ディスクサポート

ProDOS 8は、ディスクII互換フロッピードライブ、128K以上のRAMを搭載したコンピューターで約59kBのRAMドライブ、コントローラーがPascalファームウェアプロトコルをサポートするブロックデバイス、もともと使用するために導入されたブロック読み取りおよび書き込みを受け入れる標準化された方法をネイティブにサポートしますUCSD p-System。後者のカテゴリには、3.5インチディスクとハードドライブが含まれます。カスタムブロックデバイスドライバーもOSにフックできます。

ファイルシステム

ProDOSは、Apple IIIの以前のApple SOSと同じファイルシステムを使用します。 SOS / ProDOSファイルシステムは、Apple SOS、ProDOS 8、ProDOS 16、およびGS / OSにネイティブです。一部のクラシックMac OSバージョンには、このファイルシステムを処理するファイルシステムトランスレータが付属しています。

ボリュームは512バイトのブロックで割り当てられます。 (5.25インチフロッピーディスクは、256バイトセクターを使用してフォーマットされます。これは、コントローラーROMがディスクを起動するために必要なフォーマットです。ProDOSは、単純に256バイトセクターのペアをドライブ上の単一ブロックとして扱います。)最大32メガバイトの容量があり、各ファイルは最大16メガバイトです各ボリューム(フロッピーディスクまたはハードドライブパーティション)には、「ディレクトリ名」、ベースディレクトリ名として使用されるファイル名、2つのボリュームがあります必要に応じて、ProDOSは使用可能なすべてのドライブを検索して名前付きボリュームを見つけます。サブディレクトリがサポートされており、サブディレクトリを操作するために「プレフィックス」(作業ディレクトリまたは現在のパス)の概念が提供されました。より簡単に。

ファイル名、ディレクトリ名、およびボリューム名は1文字から15文字で、文字で始まり、さらに文字、数字、またはピリオドを含めることができます。各ファイルエントリには、ファイルの先頭(またはブロックインデックス)を含むブロックへの16ビット(2バイト)ポインタも含まれています。 16ビットのブロックカウント。 24ビット(3バイト)のファイルサイズ。 8ビット(1バイト)ファイルタイプ。 16ビットの補助タイプ(その意味はファイルタイプによって異なります)。作成および変更のタイムスタンプ。ファイルがボリュームに保存される方法に関連するデータ。スパースファイルはサポートされていますが、ゼロで埋められたブロックを削除することでファイルが「スパース」されることはありません。ボリュームヘッダーには、ボリュームに関連する同様の情報が含まれています。

ディレクトリ(ルートディレクトリを含む)には順番にインデックスが付けられ、各ブロックは前のブロック(ない場合はゼロ)のアドレスで始まり、後続のブロック(ない場合はゼロ)で始まります。ほとんどのディスクのルートディレクトリは4ブロックに初期化され、51エントリ(ボリュームヘッダーを除く)が許可されます。特別なツールを使用して手動で介入する場合を除き、サイズが変更されることはありません。サブディレクトリは1つのブロックから始まり、必要に応じて自動的に成長します。

通常のファイルは徐々にインデックスが作成されます。シングルブロックファイル(513バイト未満)にはインデックスブロックがありません。ディレクトリエントリは、ファイルデータのブロックを直接指します。 2〜256ブロック(513バイト〜128 kB)のデータを持つファイルには、ディレクトリエントリが指す単一のインデックスブロックがあり、これには最大256個のデータブロックアドレスのリストが含まれます。大きなファイルには、最大256個のインデックスブロックアドレスのリストを含むマスターインデックスブロックがあります。 Apple IIgsが導入されたとき、IIgsシステムおよびプログラムファイルに典型的であったように、2つのフォークを持つファイル用に新しいストレージ形式が導入されました。ディレクトリエントリは、2つのフォークの格納形式をコンピューターに伝える情報ブロックを指します。これらのファイルは、ProDOS 8でネイティブに読み書きすることはできませんが、ボリューム自体には互換性があります。

ボリュームには、使用済みブロックのビットマップがあります。これ以外に、中央のファイル割り当てテーブルはありません。

AppleのツールでフォーマットされたProDOS 8ボリュームには、ブートされたコンピューターに応じて、ProDOSとSOSの両方のブートをサポートするブートセクターがあります。ブロック0はApple IIブートブロックで、ブロック1はSOSをブートします。これにより、両方のオペレーティングシステムカーネルを最上位ディレクトリに配置することにより、ディスクを使用してApple IIまたはApple IIIコンピューターで起動できます:Apple IIブートセクターはファイルPRODOSを探し、Apple IIIブートセクターはファイルSOSを探します。カーネル。多くの場合、サードパーティのフォーマットユーティリティはSOSブートブロックを提供せず、一部のユーザーはブロック1をユーザーデータに使用可能とマークします。

ProDOSには、他のファイルシステムに対するカーネルサポートがありません。必要に応じて、メインシステムディスクの変換ユーティリティを使用して、ProDOSと古いApple DOS 3.3ディスク間でファイルを個別に転送します。 DOS 3.3やProDOSとは異なる低レベルのディスク形式を使用しているため、DOS 3.2ディスクからProDOSへのデータ転送は、DOS 3.3ディスクを仲介として使用する2段階のプロセスです(DOS 3.3ユーティリティMUFFINなどを使用)。