##### Shinobiライブラリ - ペリフェラルデータ関数

# pdInitPeripheralEx

コントロールポートの拡張初期化

### 書式

      void pdInitPeripheralEx( plogic, *pertbl, **recvbuf, *sendbuf, num )
      Sint32 plogic
      Sint32 *pertbl
      void **recvbuf
      void *sendbuf
      Sint32 num

### 引数

  plogic | 論理モード
  pertbl | 使用ペリフェラルテーブル
  recvbuf | コントロールポート受信バッファアドレステーブル
  sendbuf | コントロールポート送信バッファアドレス
  num | ペリフェラル数

### 戻り値

  なし

### 解説

  コントローラ系ペリフェラルを使用するライブラリの拡張初期化を行います。

  通常の初期化を行う関数pdInitPeripheralと違う点は、 使用するコントロールポートを限定することで、 バッファサイズの節約を行えることとポートアクセスにかかる時間を節約できることです。

  論理モードを指定する引数 plogic には、PDS_PERIPHERAL構造体のデジタルボタン情報の正論理、 負論理を選択することができます。

  論理モード定義 | 意味
  PDD_PLOGIC_ACTIVE | 正論理
  PDD_PLOGIC_NEGATIVE | 負論理

  受信、送信バッファは必ず必要分確保し、パラメータは矛盾のないように設定してください。

### 用例

      /* Receive Buffer */
      Uint8 gMapleRecvBuf[12][PDM_WORK_SIZE(1) + 32];

      /* Send Buffer */
      Uint8 gMapleSendBuf[PDM_WORK_SIZE(12) + 32];

      const Sint32 gMapleDevs[] = {
      	PDD_PORT_A0, PDD_PORT_A1, PDD_PORT_A2,
      	PDD_PORT_B0, PDD_PORT_B1, PDD_PORT_B2,
      	PDD_PORT_C0, PDD_PORT_C1, PDD_PORT_C2,
      	PDD_PORT_D0, PDD_PORT_D1, PDD_PORT_D2,
      };

      const void* gMapleRecvBufTbl[] = {
      	gMapleRecvBuf[0],/* A0のワーク2KB */
      	gMapleRecvBuf[1],/* A1のワーク2KB */
      	gMapleRecvBuf[2],/* A2のワーク2KB */
      	gMapleRecvBuf[3],/* B0のワーク2KB */
      	gMapleRecvBuf[4],/* B1のワーク2KB */
      	gMapleRecvBuf[5],/* B2のワーク2KB */
      	gMapleRecvBuf[6],/* C0のワーク2KB */
      	gMapleRecvBuf[7],/* C1のワーク2KB */
      	gMapleRecvBuf[8],/* C2のワーク2KB */
      	gMapleRecvBuf[9],/* D0のワーク2KB */
      	gMapleRecvBuf[10],/* D1のワーク2KB */
      	gMapleRecvBuf[11],/* D2のワーク2KB */
      };

      pdInitPeripheralEx( PDD_PLOGIC_ACTIVE, gMapleDevs,
      	gMapleRecvBufTbl, gMapleSendBuf,
      	sizeof(gMapleDevs) / sizeof(gMapleDevs[0]) );

### 参照

  pdInitPeripheral()
  pdExitPeripheral()

pdInitPeripheralEx

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999