English
★PROGRAMMER'S GUIDE ★CD通信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 GUIDE ★CD通信I/F(CDパート)
Copyright SEGA ENTERPRISES, LTD., 1997