English
PROGRAMMER'S GUIDECD通信I/F(CDパート)
戻る進む
CD通信インタフェースユーザーズマニュアル(CDパート)/リファレンス

データ詳細


7.2.1 基本的なデータ



Title

データ仕様

Data

基本的なデータ

Data Name

 

No

1.0

(1)基本データ型
型 名
説 明
Uint8
符号なし1バイト整数
Sint8
符号あり1バイト整数
Uint16
符号なし2バイト整数
Sint16
符号あり2バイト整数
Uint32
符号なし4バイト整数
Sint32
符号あり4バイト整数
Boo1
論理型4バイト整数(論理定数を値に取る)

(2)論理定数
論理型(Bool)の値として使用する。

定数名
説 明
FALSE
TRUE
0
1
論理値の偽を表す。
論理値の真を表す。
OFF
ON
0
1
スイッチオフ(偽)を表す。
スイッチオン(真)を表す。

(3)その他
定数名
説 明
NULL
((void*)0)
NULLポインタ

7.2.2 定数



Title

データ仕様

Data

定数(1/2)

Data Name

Constant

No

2.0

(1)割り込み要因レジスタ関係(HIRQREQ, HIRQMSK)のビット名
bit  7  6  5  4  3  2  1  0
    [ ][ ][ ][ ][ ][ ][ ][ ]
     |  |  |  |  |  |  |  |
     |  |  |  |  |  |  |  +---- CDC_HIRQ_CMOK  1:コマンド発行可能
     |  |  |  |  |  |  +------- CDC_HIRQ_DRDY  1:データ転送準備完了
     |  |  |  |  |  +---------- CDC_HIRQ_CSCT  1:1セクタ読み込み完了
     |  |  |  |  +------------- CDC_HIRQ_BFUL  1:CDバッファフル
     |  |  |  +---------------- CDC_HIRQ_PEND  1:CD再生終了
     |  |  +------------------- CDC_HIRQ_DCHG  1:ディスク交換の発生
     |  +---------------------- CDC_HIRQ_ESEL  1:セレクタ設定処理の終了
     +------------------------- CDC_HIRQ_EHST  1:ホスト入出力処理の終了

bit 15 14 13 12 11 10  9  8
    [-][-][ ][ ][ ][ ][ ][ ]
           |  |  |  |  |  |
           |  |  |  |  |  +---- CDC_HIRQ_ECPY  1:複写/移動処理の終了
           |  |  |  |  +------- CDC_HIRQ_EFLS  1:ファイルシステム処理の終了
           |  |  |  +---------- CDC_HIRQ_SCDQ  1:サブコードQの更新完了
           |  |  +------------- CDC_HIRQ_MPED  1:MPEG関連処理の終了
           |  +---------------- CDC_HIRQ_MPCM  1:MPEG動作不良区間の終了
           +------------------- CDC_HIRQ_MPST  1:MPEG割り込みステータスの通知


(2)エラーコード
定数名
説 明
CDC_ERR_OK
関数が正常終了した。
CDC_ERR_CMDBUSY
コマンド発行時、コマンド終了フラグが1になっていない。
対象:コマンド終了フラグをチェックする全ての関数
CDC_ERR_CMDNG
コマンド発行時、CMOKフラグが1になっていない。
対象:コマンドを発行する全ての関数
CDC_ERR_TMOUT
タイムアウトした。(レスポンス待ち、データ転送準備待ち)
対象:コマンドを発行する全ての関数
   CDC_GetPeriStat関数、CDC_DataReady関数
CDC_ERR_PUT
セクタデータの書き込みによるデータ転送準備待ちで、空
きセクタを確保できなかった。
対象:CDC_PutSctData関数実行後のCDC_DataReady関数
CDC_ERR_REJECT
コマンドに対するレスポンスがREJECTとなった。
対象:コマンドを発行する全ての関数
CDC_ERR_WAIT
コマンドに対するレスポンスがWAITとなった。
対象:コマンドを発行する全ての関数
CDC_ERR_TRNS
データ転送サイズが異常である。
対象:内部でデータ転送する関数(CDC_Tgetで始まる関数)
CDC_ERR_PERI
定期レスポンスを取得できなかった。
対象:CDC_GetPeriStat関数

(3)バッファ区画のセクタ範囲(セクタ位置とセクタ数)の特殊指定
定数名
説 明
CDC_SPOS_END
区画最後のセクタ位置を示す。
(区画内セクタ数−1)の指定と同じ。
CDC_SNUM_END
指定セクタ位置SPから区画最後までのセクタ数を示す。
(区画内セクタ数−SP)の指定と同じ。
 以下のバッファ区画に対する関数で有効です。

 CDC_CalActSiz
 CDC_GetSctInfo
 CDC_ExeFadSearch
 CDC_GetSctData
 CDC_DelSctData
 CDC_GetdelSctData
 CDC_CopySctData
 CDC_MoveSctData

注意
区画内セクタ数が0のときは、いずれの指定でも常にWAITを返します。これらの関数を実行する前には、必ずバッファ区画のセクタ数の取得(CDC_GetSctNum)を実行して、セクタ数が0でないことを確認すること。

(4)その他の特殊指定
定数名
説 明
CDC_PARA_DFL
設定パラメータの省略値指定(0)
省略値を0で指定する場合に使用できる。
CDC_PARA_NOCHG
設定パラメータの未変更指定(−1)
未変更をFFH,FFFFH,最上位ビット=1などで指定する場合
に使用できる。
CDC_NUL_SEL
セレクタ番号(絞り番号、バッファ区画番号)の特殊値
CDC_NUL_FID
ファイル識別子の特殊値

7.2.3 TOC情報/セッション情報



Title

データ仕様

Data

TOC情報/セッション情報

Data Name

TOC/SES

No

3.0

 (1)TOC情報……CDC_TgetToc関数

 (2)セッション情報……CDC_GetSes関数

7.2.4 サブコード情報



Title

データ仕様

Data

サブコード情報

Data Name

Subcode

No

4.0

(1) サブコードQ情報……CDC_TgetScdQch関数
(a)Adr=1の場合

byte
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
   
   
Ctrl
Adr
TNO X P_FAD 00 Q_FAD CRC

Ctrl Adr:CONTROL/ADRバイト
TNO :トラック番号(BCDではなくバイナリ値)
X :インデックス番号(BCDではなくバイナリ値)
P_FAD :トラック内時間(トラック先頭を0とするフレームアドレス形式)
Q_FAD :絶対時間(00:00:00を0とするフレームアドレス形式)

各ステータスにおける内容は、CDレポートの場合と同様です。
各TNOにおける値を次の表に示します。
(リードインとリードアウトはマルチセッションで取得可能)

TNO
X
P_FAD
01H〜63H(1〜99)
01H〜63H
トラック内の経過FAD
AAH(リードアウト)
01H〜63H
トラック内の経過FAD
00H(リードイン)
01H〜63H,A0H,A1H,A2H
000000H

先頭セッションのリードインは、Q_FAD=000000Hとなります。
(通常は取得できません)

(b)その他(ADR≠1)の場合:
サブコードQのそのままの値(CRC以外の10バイト)

(2)サブコードR〜W情報……CDC_TgetScdRwch関数

 サブコードR〜Wは1パック(24バイト=12ワード)単位でデコードされます。
 CDブロックは、内部に24パック(6パケット)分のパックバッファを持ちます。

7.2.5 ステータスとレポート



Title

データ仕様

Data

ステータスとレポート

Data Name

Status & CD Report

No

5.0

(1)レスポンスの形式
 レスポンスはステータス(Status)とレポート(Report)から構成されます。レポートとしてCDレポート(CD Report)を返すかどうかはコマンドに依存します。定期レスポンスは必ずCDレポートを返します。
 ステータスとCDレポートを合わせて、CDステータス情報と呼びます。

 (2)ステータス
 ステータスがFFHの時はREJECT(コマンド不正)を示します。REJECT時を除き、ステータスコードは常に有効です。また、bit5〜bit7は排他的で、同時には1になりません。

bit  7  6  5  4  3  2  1  0
    [ ][ ][ ][-][          ]
     |  |  |     ステータスコード(CDドライブ状態)
     |  |  |
     |  |  +----- CDC_ST_PERI  1:定期レスポンス    0:コマンドの対するレスポンス
     |  +-------- CDC_ST_TRNS  1:データ転送要求あり  0:要求なし
     +----------- CDC_ST_WAIT  1:WAIT(実行保留) 0:ACK(コマンド正常受付)

(a)ステータスコード(CDドライブ状態)
定数名
状態
説 明
CDC_ST_BUSY
00H
〈BUSY〉
状態遷移中
CDC_ST_PAUSE
01H
〈PAUSE〉
ポーズ中(一時停止)
CDC_ST_STANDBY
02H
〈STANDBY〉
スタンバイ(ドライブ停止状態)
CDC_ST_PLAY
03H
〈PLAY〉
CD再生中
CDC_ST_SEEK
04H
〈SEEK〉
シーク中
CDC_ST_SCAN
05H
〈SCAN〉
スキャン再生中
CDC_ST_OPEN
06H
〈OPEN〉
トレイが開いている
CDC_ST_NODISC
07H
〈NODISC〉
ディスクがない
CDC_ST_RETRY
08H
〈RETRY〉
リードリトライ処理中
CDC_ST_ERROR
09H
〈ERROR〉
リードデータエラーが発生した
CDC_ST_FATAL
0AH
〈FATAL〉
致命的エラーが発生した

 (3)CDレポート
byte
 1 
 2 
 3 
 4 
 5 
 6 
 7 
CD ReportFlgRep
Cnt
Ctrl
Adr
TNOXFAD

Flg:CDフラグ (上位4ビット)……〈PLAY〉状態で有効
RepCnt:リピート回数(下位4ビット)……通知範囲は0H〜EH
bit  7  6  5  4  3  2  1  0
    [ ][-][-][-][          ]
     |           リピート回数
     |
     +----------- CDC_CDFLG_ROM  1:CD−ROMデコード中
                                 0:CD−DA,シーク,スキャン等

Ctrl Adr:CONTROL/ADRバイト
TNO :トラック番号  (BCDではなくバイナリ値) サブコードQに基づく
X :インデックス番号(BCDではなくバイナリ値)
FAD :フレームアドレス(CD-ROM時はヘッダ情報に、それ以外はサブコードQに基づく)

 (4)各ステータスにおけるCDレポート内容
 CDドライブ状態とCDレポート内容を以下に示します。FFHの並びは無効値を意味します。(REJECT時のCDレポートは無効、WAIT時は有効です。)

状 態
CDフラグ/リピート
CONTROL/ADR
トラック番号
インデックス番号
フレームアドレス
〈BUSY〉
○/FFH
○/FFH
○/FFH
○/FFH
○/FFFFFFH
〈PAUSE〉
〈STANDBY〉
ポーズ時の値
ポーズ時の値
ポーズ時の値
ポーズ時の値
ポーズ時の値
シークホーム時
FFH
FFH
FFH
FFH
FFFFFFH
〈PLAY〉
〈SEEK〉
目標位置
目標位置
目標位置
目標位置
〈SCAN〉
〈OPEN〉
FFH
FFH
FFH
FFH
FFFFFFH
〈NODISC〉
FFH
FFH
FFH
FFH
FFFFFFH
〈RETRY〉
〈ERROR〉
FFH
FFH
FFH
FFH
FFFFFFH
〈FATAL〉
不定
不定
不定
不定
不定
○:現在の値 シークホーム:ホーム位置へのシーク(ストップ)
スタンバイタイムを経過して〈PAUSE〉から〈STANDBY〉状態になった場合、ポーズ時の値を保持します。

 (5)CDレポート内容が無効値の場合

  1. リピート回数は直前の値が保持されます。別の状態に遷移すると、保持値に戻ります。

  2. シークホームから〈PAUSE〉状態に遷移すると、ディスク先頭(FAD=150)に移動します。

  3. 〈ERROR〉時は直前の値が保持されます。<PAUSE>状態に遷移すると、保持値に戻ります。

  4. 状態遷移する場合、途中の<BUSY>状態では無効値を返すことがあります。
    必ず〈BUSY〉以外の状態に確定してから、CDレポート内容を参照してください。


戻る進む
PROGRAMMER'S GUIDECD通信I/F(CDパート)
Copyright SEGA ENTERPRISES, LTD., 1997