高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先



Technote 1098

ATA Device Software Guide Additions and Corrections


目次

「ATA Device Software Guide」の訂正


ATA 4.0 の Device Config 構造体


ATA Manager の検出


ATA Manager の履歴


ATA Manager 4.0


イベントのマニュアル


今後は使用されないリソース


有効なリソース


要約
の Technote では、「ATA Device Software Guide」に対する訂正と追補を列挙します。

この中には、旧版の誤りの訂正とともに、ATA Manager 4.0 に対するいくつかの追加記述も含まれています。ATA Manager 4.0 は PowerBook 3400 とともに導入されました。

この Technote は、ATA Manager を直接呼び出したいと考えているデベロッパ向けに書かれています。通常、アプリケーションが直接 ATA Manager を呼び出すことはありません。むしろ、アプリケーションにとって問題なのは、デバイスに対応した適切なドライバを使用することです。ATA Manager は、ATA デバイスドライバを開発しているデベロッパや、そのようなデバイスドライバをインストールする特化されたアプリケーションの開発に役立ちます。


「ATA Device Software Guide」の訂正

ガイド全体: ATA-2 標準に関するすべての記述が更新されます。ATA Manager では、ATA-3 デバイスもサポートするようになりました。

4 ページ: 通常、ATA ディスクドライバは -54 (10 進) というドライバ参照番号を持ちますが、ドライバがロードされたときに -54 がすでに使用されている場合は、異なる参照番号を持つこともできます。ドライバ名は .ATDISK です。すべての Macintosh デバイスドライバと同様に、ATA ディスクドライバも、ドライバ参照番号または .ATDISK というドライバ名のいずれかを使って呼び出すことができます。

今後はこのドライバ参照番号に依存しないでください。ドライバ名を含む OpenDriver 呼び出しを使ってドライバ参照番号を取得します。また、それ以降のすべての呼び出しでは、OpenDriver 呼び出しから返されたドライバ参照番号を使用してください。ドライバの名前は、.ATDisk ではなく .ATADisk です。

6 ページ: open ルーチンを呼び出して、ATA ディスクドライバをオープンしないでください ...

open ルーチンを呼び出しても問題ありません。open を呼び出して、ATA ドライバに対するドライバ参照番号を取得してもかまいません。

9 ページ: verify コントロール関数 ...

verify コントロール関数は何の動作もしません。また、この関数に有効なパラメータを渡すと、noErr が返されます。

9 ページ: format コントロール関数 ...

format コントロール関数は何の動作もしません。この関数に有効なパラメータを渡すと、noErr が返されます。ドライブのローレベルフォーマットを行う必要がある場合は、ANSI 仕様を確認してください。

11 ページ: return drive characteristics 関数は、『Inside Macintosh』の第 5 巻で定義されているように、指定したドライブの特性に関する情報を返します。

return drive characteristics 関数は、「Technote DV 525 Disk Driver Q&As」で定義されているように、指定したドライブの特性に関する情報を返します。

38 ページ: ATA_RegAccess

ATA_RegAccess 関数は ATA Manager のバージョン 4.0.0 または 4.1.0 とともに正常に動作しません。ATA Manager バージョン 3、および ATA Manager バージョン 4.1.1 とともに正常に動作します。バージョン 4.1.1 は Mac OS 8 の一部として出荷されています。ATA Manager のバージョン番号を取得するには、ATAMgrInquiry 関数呼び出しを使用します (ガイドの 56 ページで説明されています)。バージョン番号は MgrVersion フィールドに返されます。

MgrVersion.majorRev = $04
MgrVersion.minorAndBugRev = $00 または $10 は正常に動作しないバージョン。

MgrVersion.majorRev = $04
MgrVersion.minorAndBugRev = $11 は正常に動作する。


48 ページ: ATA 4.0 の Device Config 構造体

この構造体に含まれるいくつかのフィールドは、ATA Manager 4.0 の導入とともに使用されなくなります。

struct ATADevConfig
{
     SInt32     ataConfigSetting;       // <->: コンフィギュレーションの設定 */
     UInt8      ataPIOSpeedMode;        // <->: PIO モードでのデバイスアクセス速度
     UInt8      reserved;               // パッディング
     UInt16     atapcValid;             // <->: ATA 4 ではもはや使用されません
     UInt16     ataRWMultipleCount;
// 将来使用するために予約されています (まだサポートされていません)
     UInt16     ataSectorsPerCylinder;
// 将来使用するために予約されています (まだサポートされていません)
     UInt16     ataHeads;
// 将来使用するために予約されています (まだサポートされていません)
     UInt16     ataSectorsPerTrack;
// 将来使用するために予約されています (まだサポートされていません)
     UInt16     ataSocketNumber;        // <--: (ATA 4 以降はサポートされません)
     UInt8      ataSocketType;          // <--: ソケットタイプを指定します
     UInt8      ataDeviceType;          // <--: デバイスタイプを指定します (config のみを取得)
     UInt8      atapcAccessMode;        // <->: ATA 4 ではもはや使用されません
     UInt8      atapcVcc;               // <->: ATA 4 ではもはや使用されません
     UInt8      atapcVpp1;              // <->: ATA 4 ではもはや使用されません
     UInt8      atapcVpp2;              // <->: ATA 4 ではもはや使用されません
     UInt8      atapcStatus;            // <->: ATA 4 ではもはや使用されません
     UInt8      atapcPin;               // <->: ATA 4 ではもはや使用されません
     UInt8      atapcCopy;              // <->: ATA 4 ではもはや使用されません
     UInt8      atapcConfigIndex;       // <->: ATA 4 ではもはや使用されません
     UInt8      ataSingleDMASpeed;      // <->: シングルワードの DMA タイミングクラス
     UInt8      ataMultiDMASpeed;       // <->: マルチワードの DMA タイミングクラス
     UInt16     ataPIOCycleTime;        // <->:PIO モードのサイクル時間
     UInt16     ataMultiCycleTime;      // <->:マルチワード DMA モードのサイクル時間
     UInt16     Reserved1[7];           // 将来使用するために予約されています
};
typedef struct ATADevConfig ATADevConfig;

?/TD>

ataConfigSetting
このフィールドは、一般的なデバイスの設定情報を指定するために使用します。一般に、このフィールドはデバイス設定可能 (device configurable) ではあっても、ATA ドライバレベルでだけ知られているものに使用されます。ATA Manager の以前のバージョンで定義されていた一部のビットは現在では使用されなくなりました。ATA Manager 4.0 の現在のインプリメンテーションでは、1 つのビットだけが使用されます。
Bits 5-0 予約されています 0 であることが望ましい
Bit 6 ATAPIPacketDRQ 1= ATAPI コマンド DRQ に対する割り込み DRQ をチェックする

0= デフォルト − コマンドパケット DRQ のアサーションのみをチェックする
Bits 31-7 予約されています 0 であることが必須


ataPIOSpeedMode
PIO (Polled I/O) モードでのデバイスアクセス速度です。

atapcValid
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

ataRWMultipleCount
将来使用するために予約されています (現在はまだサポートされていません)。

ataSectorsPerCylinder
将来使用するために予約されています (現在はまだサポートされていません)。

ataHeads
将来使用するために予約されています (現在はまだサポートされていません)。

ataSectorsPerTrack
将来使用するために予約されています (現在はまだサポートされていません)。

ataSocketNumber
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

ataSocketType
この ATA バスが位置するソケットのタイプを指定します。次に、現在のソケットタイプを示します。

1

(kATASocketInternal)

2

(kATASocketMB)

3

(kATASocketPCMCIA)


ataDeviceType
この ATA バスにあるデバイスのタイプを指定します。ATA Manager 4.0 以降、このフィールドは次のデバイスタイプのみを返します。

0

(kATADeviceUnknown)

1

(kATADeviceATA)

2

(kATADeviceATAPI)


ATA Manager の以前のバージョンには、PCMCIA デバイスに対応するデバイスタイプが用意されていました。この古いデバイスタイプ (0x03) は ATA Manager 4 ではもはや返されません。この値は将来使用するために予約されたままになります。このため古いドライバが混乱することもありません。ドライバまたはその他のクライアントで、あるデバイスが PC カードデバイスであるかどうかを知りたい場合は、このフィールドの代わりに ataSocketType フィールドをチェックするようにしてください。

atapcAccessMode
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、PC カードデバイスに対するアクセスモードのタイプをサポートするために使用されていました。このモードはインプリメントされず、現在サポートされていません。

atapcVcc
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

atapcVpp1
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

atapcVpp2
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

atapcStatus
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

atapcPin
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

atapcCopy
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

atapcConfigIndex
このフィールドは ATA Manager 4.0 ではもはや使用されません。このフィールドは ATA Manager の以前のバージョンで、ATA Manager が PC カードのソケット設定を行うときに使用されていました。この機能は現在、他のソフトウェアによって処理されています。

ataSingleDMASpeed
このフィールドは、シングルワード DMA アクセスに使用するタイミングモードを選択するために使用します。

ataMultiDMASpeed
このフィールドは、マルチワード DMA アクセスに使用するタイミングモードを記述します。

ataPIOCycleTime
このフィールドは、PIO (Polled I/O) アクセスに使用するサイクル時間を記述します。

ataMultiCycleTime
このフィールドは、マルチワード DMA アクセスに使用するサイクル時間を記述します。

56 ページ: ATA_MgrInquiry
ATA_MgrInquiry 呼び出し (56 ページ) では、ataPIOMaxModeataSingleDMAModes、および ataMultiDMAModes の各フィールドがもはや使用されなくなりました。この機能は、ATA_BusInquiry 関数 (38 ページで説明されています) に移行されました。ATA Manager では複数のバスをサポートでき、それぞれのバスでは異なるモード設定をサポートできるため、この移行は必要なものでした。たとえば、PCMCIA ATA カードでは PIO (Polled I/O) データ転送のみをサポートできますが、PowerBook 3400 の内部ドライブでは DMA 転送をサポートすることもできます。


ATA Manager の検出
初期の ROM の一部では、適切なハードウェアがないのに ATA Manager の存在を示す場合がありました。これはクラッシュの原因になります。このため、ATA Manager の存在を検出する前に、ATA ハードウェアの存在をテストする必要があります。次のコード例は、ATA Manager を正しく検出する方法を具体的に示しています。
// ----------------------------------------------
// このマシンに ATA Manager があれば true を返す
// ----------------------------------------------
Boolean ATAManagerPresent(void)
{
    UInt16  configFlags;
    Boolean ATAIsHere = true;

    configFlags = LMGetHWCfgFlags();

    if (!(configFlags & 0x0080))
        ATAIsHere = false;
    // (TrapAvailable については Inside Mac VI 3-8 を参照)
    if (ATAIsHere && TrapAvailable(kATATrap))
        ATAIsHere = true;
    return ATAIsHere;
}



ATA Manager の履歴

ATA Manager 4.0 と ATA Manager 3.1
ATA Manager 4.0 は PowerPC ネイティブです。ATA Manager 4.0 では、AIM (ATA Interface Module) という概念が導入されました。これは、SCSI Manager 4.3 の SIM に似たプラグインハードウェア抽象レイヤです。ATA_DeviceConfig 関数には、ATA Manager 4.0 以降使用されなくなったいくつかのフィールドがあります。

ATA Manager 3.1 と ATA Manager 3.0
バージョン 3.1 に加えられた主要な変更点は、ATA_MgrInquiry による一般的なシステムタイミング情報ではなく、バス固有の転送タイミング情報が ATA_BusInquiry 関数に追加されたことです。インタフェースには新しい関数は追加されませんでした。

ATA Manager 3.0 の次の関数に変更が加えられました。

  • ATA_ManagerInquiry
  • ATA_BusInquiry

ATA Manager は、ATA_ManagerInquiry 関数を介して全般的なデータ転送能力をレポートします。ATA Manager 3.1 またはそれ以上では、さらに ATA_BusInquiry 関数が個別のバスの転送能力を切り離して指定するようになりました。

ATA Manager 3.0 と ATA Manager 2.0
ATA Manager 3.0 に追加された主要な機能は、デバイスに対する DMA I/O オペレーションのサポートです。いくつかの関数が DMA 固有の情報の取得とレポートを行うようになりましたが、インタフェースには新しい関数は追加されませんでした。

ATA Manager 3.0 で拡張された関数は次のとおりです。

  • ATA_ManagerInquiry
  • ATA_SetConfiguration
  • ATA_GetGonfiguration

ATA Manager 2.0 と ATA Manager 1.0
次に、ATA Manager 2.0 に追加された主な機能の概要を示します。

  • ATAPI プロトコルのサポート
  • PCMCIA デバイスのサポート
  • Card Services を介したホットプラグ/リムーバルデバイスのサポート
  • ダイナミックデバイスドライバのロードとパージ
  • クライアントコールバックメッセージ/イベント通知システム
  • ロケーションアイコンと文字列のサポート

これらの新機能をサポートするために新しい関数が追加され、また既存の関数が拡張されました。このため、これらの関数のさまざまな応答の結果、さまざまな ataPBVers の値が返されるようになりました。応答における潜在的な違いについては、それぞれの関数を参照してください。

ATA Manager 2.0 に追加された新しい関数は次のとおりです。

  • ATA_EjectDrive
  • ATA_GetDevConfig
  • ATA_SetDevConfig
  • ATA_DriverLoad

ATA Manager 2.0 で拡張された関数は次のとおりです。

  • ATA_RegAccess
  • ATA_DrvrRegister
  • ATA_DrvrDeregister
  • ATA_FindRefNum
  • ATA_MgrInit
  • ATA_MgrShutDown

ATA Manager 4.0

ATA Manager 4.0 は、PowerBook 3400 の設計に合わせて以前の ATA Manager (v 3.1) が再設計されたものです。Apple では、ATA デバイスをサポートするすべての新しい CPU がこの新しい ATA Manager を使用することを期待しています。ATA Manager 4.0 とそのクライアント (通常は ATA および ATAPI ディスクデバイスドライバ) との間の API は、ATA Manager 3.1 のスーパーセットです。このため、古いディスクドライバも新しい ATA Manager とともに正常に動作することが可能になります。

ATA 4.0 よりも前の ATA Manager は、特殊なタイプの ATA バスコントローラを認識していました。異なる ATA バスコントローラを持つ新しい CPU が開発されるたびに、ATA Manager は改訂する必要がありました。ATA 4.0 の設計には、AIM (ATA Interface Module) と呼ばれるハードウェア抽象レイヤが含まれています。AIM はネイティブドライバ (ndrv) で、デバイスマネージャを使って呼び出されません。その代わりに、AIM は kDriverIsUnderExpertControl ドライバオプションを設定させます。つまり、AIM がエキスパート (この場合は ATA Manager) によって完全に制御されるということです。新しい CPU の開発プロジェクトでは、そのプロジェクトに存在する ATA バスコントローラに対応した適切な AIM のセットを作成するだけです。ATA Manager そのものには手をつけずにそのままにしておけます。

オペレーティングシステムの Name Registry は、ATA バスコントローラに関連するハードウェア固有の情報を格納するために使用します。ATA Manager では Name Registry を使って、AIM を見つけ出してロードします。さらに AIM は Name Registry に格納されている CPU 固有の情報を使って初期化を行います。たとえば、ATA レジスタのベースアドレスは OpenFirmware またはその他のシステムソフトウェアの構成要素によって計算され、ATA バスコントローラとの間で情報をやり取りするために AIM によって使用されます。

現在、AIM を書こうとする外部のデベロッパ向けのマニュアルは用意されていません。興味のあるデベロッパは、devsupport@apple.com 宛の電子メールで Apple のデベロッパサポート窓口にお問い合わせください。Apple には、このようなデベロッパと協力して適切なマニュアルを開発する用意があります。

ATA Manager 4.0 は PowerPC ネイティブです。このマネージャは、68K トラップを使って現在でもアクセスすることができます。Power PC が搭載されたマシンで ATA Manager を呼び出す場合は、いくつかの Mixed Mode グルーを指定して、ataManager トラップを呼び出す必要があります。次のコードがこのように動作します。


#include <MixedMode.h>
#include <ATA.h>

#define RESULT_OFFSET(type) \
    ((sizeof(type) == 1) ? 3 : ((sizeof(type) == 2) ? 1 : 0))
#define TBTrapTableAddress(trapNum) (((trapNum & 0x03FF) << 2) +
0xE00)

pascal SInt16 ataManager(ataPB *pb)
{
    #ifdef applec
        #if sizeof(SInt16) > 4
            #error "Result types larger than 4 bytes are not supported."
        #endif
    #endif
    long    private_result;

    private_result = CallUniversalProc(
        *(UniversalProcPtr*)TBTrapTableAddress(0xAAF1),
        kPascalStackBased
         | RESULT_SIZE(SIZE_CODE(sizeof(SInt16)))
         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(pb))),
        pb);
    return *(((SInt16*)&private_result) + RESULT_OFFSET(SInt16));
}



イベントのマニュアル
次のイベントは「ATA Device Software Guide」では十分に説明されていませんでした。

kATAOnlineEvent (code 1)
このイベントは、ATA または ATAPI デバイスが使用可能になったとき、そのことをクライアントに通知します。このイベントが発生するのは、新しいデバイスがバスに接続されたとき、またはそれまで使用できなかったデバイスが再度使用可能になったときです (システムスリープの解除によりデバイスへの電源の供給が復旧するときなど)。

デバイスが登録済みのドライバを持つ場合、そのドライバだけにイベントが通知されます。そうでない場合は、いずれかのドライバが望ましい応答を行うまで (つまり、イベントに対して noErr を使って応答するまで)、登録済みの各デフォルトドライバに通知が行われます。なお、新しく接続されたデバイスの場合、デバイスからロードされたドライバが優先されます。

ドライバはオンラインになったデバイスが新しく接続されたデバイスなのか、それまでオフラインになっていたデバイス (つまり、接続されてはいても使用可能でない) なのかを判断する必要があります。デバイスに対して kATARemovedEvent が発生しないかぎり、そのデバイスは接続されていると見なされます。

kATAOfflineEvent (code 2)
このイベントは、ATA または ATAPI デバイスの登録済みドライバに、そのデバイスが現在使用できない (オフラインである) ことを通知します。ただし、このデバイスは現在でもバスに接続されていて、オフライン状態は一時的なものと見なされます。このイベントはシステムスリープ時に電源の供給がオフになったときに発生します。

現在、このイベントは ATA Manager が PC Card Manager から PM_SUSPEND イベント (本質的には Power Manager のスリープ要求イベントと同じ) を受け取ったときだけに生成されます。kATAOfflineEvent を受け取ったドライバは、通常デバイスの制御を維持しようとしますが、クライアントからそのデバイスへのアクセスは拒否するようになります。さらに、ドライバは、デバイスが再度オンラインになるとき (このときには kATAOnlineEvent イベントが発生します) に再設定を行う必要があるかどうかにも注意を払う必要があります。

kATARemovedEvent (code 3)
このイベントは、ATA または ATAPI デバイスの登録済みドライバに、デバイスが取り出されたことを通知します。デバイスの取り出しはソフトウェアによる制御 (たとえば、ATA Manager に対するソフトウェアイジェクトコマンド) または制御なし (たとえば、ユーザによる強制的なイジェクト) に実行されます。なお、取り出される前に、そのデバイスがオンライン状態のこともあれば、オフライン状態のこともあります。取り出される前の状態がオンラインである場合、kATAOfflineEvent イベントは生成されません。というのも、デバイスの取り出しには、オフライン状態の発生が前提として含まれるためです。

kATAResetEvent (code 4)
このイベントは、ATA または ATAPI デバイスの登録済みドライバに、デバイスがリセットされたことを通知します。デバイスを再度使用する前に、ドライバによって再設定を行わなければならないことがあります。このイベントはもともと、1 つのバスで複数のデバイスを使用するために導入されました (ATA マスタ/スレーブモード)。というのも、リセットはバス上にある特定のデバイスだけでなく、すべてのデバイスに適用されるためです。現在のところ Apple では、ATA を使ったバス上の複数デバイスをインプリメントしていません。そのため、このイベントもインプリメントされていません。ただし、将来このイベントがインプリメントされたときに問題が発生するのを防ぐため、開発するドライバでは今からこのイベントをサポートしておくことをお勧めします。

kATAOfflineRequest (code 5)
このイベントはもはや使用されません。このイベントは PC Card Manager の初期段階で定義され、Power Manager のスリープイベントをクライアントに通知していました。ATA Manager もリクエストをクライアントに通知していました。このイベントはスリープリクエストイベントのようなものです。現在の PC Card Manager ではスリープ要求イベントに似たイベントだけを許可します。クライアントがこのイベントを拒絶することは許可されません。

kATAEjectRequest (code 6)
このイベントは、ATA または ATAPI デバイスの登録済みドライバに、デバイスをイジェクトするためのリクエストが行われたことを通知します。このリクエストに対する応答が 0 の場合、デバイスはイジェクトされ、イジェクトが正常に終了したときはその後で kATARemovedEvent イベントが生成されます。kATAEjectRequest はある種の保護機構として動作し、イジェクトがペンディングになっていることをドライバに警告します。イジェクトによりデバイスがバスから取り出されるため、ドライバがそのリクエストを初期化した場合を除き、通常、ドライバはこのリクエストを拒絶します。

なお、kATAResetEventkATAOfflineRequest、および kATAEjectRequest イベントは現在のところ ATA Manager にはインプリメントされていません。


今後は使用されないリソース

これまで ATA Manager に関する説明はいくつかの場所で公開されてきました。しかし、これらの書類は今後使用されないものと考えてください。これらの書類は「ATA Device Software Guide」とこの Technote に取って代わられます。

「Q&A DV 24 ATA Manager Events Clarified」では、いくつかの ATA イベントに関する補足説明が加えられていました。これらのイベントはこの書類にまとめられています。この Q&A の内容はこの書類にまとめられています。この Q&A は今後使用されないと考えてください。

「Q&A DV 26 Calling ataManager on a Power Macintosh」では、PowerPC コードから ATA Manager を呼び出す方法が具体的に説明されていました。この Q&A の内容はこの書類にまとめられています。この Q&A は今後使用されないと考えてください。

「develop issue 26」の Q&A では、いくつかの ATA イベントに関する補足説明が加えられていました。これらは「Q&A DV 24 ATA Manager Events Clarified」で説明されているイベントと同じものです。これらのイベントはこの書類にまとめられています。「develop Journal」の Q&A は今後使用されないと考えてください。


有効なリソース
ATA Manager に関する現在最新のマニュアルは、この書類と「ATA Device Software Guide」のみであると考えてください。ATA Manager に言及しているその他すべてのマニュアルは、疑わしい内容を含んでいるか、あるいは今後使用されないものと見なしてください。

「Technote 1094 Virtual Memory Application Compatibility」では、仮想メモリと ATA Manager について説明しています。この書類ではそれらの議論を繰り返しません。仮想メモリと ATA Manager の相互作用の詳細については、「Technote 1094」を参照してください。

「Technote DV 22 CD-ROM ドライバの呼び出し」では、ATA CD-ROM ドライバの呼び出しについて説明しています。これらの呼び出しは現在でも有効です。PowerBook 1400 または PowerBook 3400 とともに出荷されたような ATA CD-ROM を使用しようとする場合は、「Technote DV 22」を参照してください。

「ATA Demo」は ATA Manager の呼び出し方法を具体的に説明したサンプルコードです。ATA バスをスキャンする方法については、このコードを参照してください。


要約

ATA Manager 4.0 は、「ATA Device Software Guide」で説明されている ATA Manager 3.0 のスーパーセットです。この書類にはいくつかの小さな誤りがあります。Apple では、読者のみなさんがこの書類および「ATA Device Software Guide」に追加または訂正を加えることを歓迎します。devsupport@apple.com までコメントをお寄せください。

参考文献

次にあげる参考文献の一部は、ftp://fission.dt.wdc.com/x3t13/x3t13.html または ftp://ftp.symbios.com/pub/standards/io で入手できます。

  • 「ATA Device Software Guide」
  • 「AT Attachment Interface for Disk Drives, ANSI X3.221-1994, Approved May 12, 1994」
  • 「AT Attachment Interface with Extensions (ATA-2), ANSI ASC X3.279-1996, revision 3, proposed American National Standard 948D」
  • 「AT Attachment-3 Interface (ATA-3), ANSI ASC X3.298-199x」
  • 「AT Attachment-4 Interface (ATA-4), X3T13 draft」
  • 「ATA packet Interface for CD-ROMs, SFF-8020, Revision 1.2, June 13 1994」
  • 「Western Digital Enhanced IDE Implementation Guide, by Western Digital Corporation, revision 5.0」
  • 「Fast ATA Sourcebook, Quantum Corporation, November 1994」
  • 「Enhanced Disk Drive Specification, by Phoenix Technologies Ltd., version 1.1, January 95」

ダウンロード
「ATA Device Software Guide」