##### Shinobi Library - ペリフェラル・LCDデバイス関数

# pdVmsLcdWrite

LCDデバイスの表示

### 書式

> `Sint32 pdVmsLcdWrite( port, data, flag )
> Uint32 port
> void *data
> Uint32 flag
> `

### 引数

> port | ポート番号
> data | ピクセルデータのアドレス
> flag | フラグ

### 戻り値

> PDD_LCDERR_OK | 表示に成功
> PDD_LCDERR_NO_LCD | LCDデバイスが接続されていない
> PDD_LCDERR_BUSY | LCDデバイスはアクセス中

### 解説

> LCDデバイスにビットマップのグラフィックを表示します。

> ポート番号portには次の値を指定します。

> 定義 | 意味
> PDD_PORT_A1 | コントロールポートAの拡張ソケット1
> PDD_PORT_A2 | コントロールポートAの拡張ソケット2
> PDD_PORT_A3 | コントロールポートAの拡張ソケット3
> PDD_PORT_A4 | コントロールポートAの拡張ソケット4
> PDD_PORT_A5 | コントロールポートAの拡張ソケット5
> PDD_PORT_B1 | コントロールポートBの拡張ソケット1
> PDD_PORT_B2 | コントロールポートBの拡張ソケット2
> PDD_PORT_B3 | コントロールポートBの拡張ソケット3
> PDD_PORT_B4 | コントロールポートBの拡張ソケット4
> PDD_PORT_B5 | コントロールポートBの拡張ソケット5
> PDD_PORT_C1 | コントロールポートCの拡張ソケット1
> PDD_PORT_C2 | コントロールポートCの拡張ソケット2
> PDD_PORT_C3 | コントロールポートCの拡張ソケット3
> PDD_PORT_C4 | コントロールポートCの拡張ソケット4
> PDD_PORT_C5 | コントロールポートCの拡張ソケット5
> PDD_PORT_D1 | コントロールポートDの拡張ソケット1
> PDD_PORT_D2 | コントロールポートDの拡張ソケット2
> PDD_PORT_D3 | コントロールポートDの拡張ソケット3
> PDD_PORT_D4 | コントロールポートDの拡張ソケット4
> PDD_PORT_D5 | コントロールポートDの拡張ソケット5

> LCDデバイスのスペックは以下の通りです。

> - 解像度:横48x縦32ピクセル
> - 階調数:2階調(モノクロ)
> 引数 dataに指定するピクセルデータ形式は、 この関数では、取り扱いやすいように1ピクセルを8ビット(1バイト)で表現します。

> 下位4ビットで階調を表現しますが、このライブラリではビット3のみを参照します。

> - 白(液晶のベース色)にするピクセルにはビット3を0にしたデータ( 0x00、0x07等) 、
> - 黒にするピクセルにはビット3を1にしたデータ( 0x0f、0x08等)を格納してください。
> ピクセルデータは液晶画面全体では48x32=1536バイトのデータとなります。

> ピクセルデータは左から右、上から下に連続して格納します。 以下は、ピクセルデータのメモリイメージの例です。

> 0x8C100000 | ( 0, 0 ) | ( 1, 0 ) | ( 2, 0 ) | ... | ( 47, 0 )
> 0x8C100030 | ( 0, 1 ) | ( 1, 1 ) | ( 2, 1 ) | ... | ( 47, 1 )
> | : | : | : |  | :
> 0x8C1005D0 | ( 0, 31 ) | ( 1, 31 ) | ( 2, 31 ) | ... | ( 47, 31 )

> ソフトウェアでの記述には以下のような方法を用いることができます。

> const Uint8 cgdata[48 * 32] =
> {
> 0x00, 0x00, 0x0f, 0x0f, ...
> ...
> };

> 引数 flagには次の値を指定します。

> 定義 | 意味
> PDD_LCD_FLAG_NOFLIP | データをそのまま表示
> PDD_LCD_FLAG_HFLIP | 左右反転して表示
> PDD_LCD_FLAG_VFLIP | 上下反転して表示
> PDD_LCD_FLAG_HVFLIP | 上下左右反転して表示

### 用例

>     const Uint8 cgdata[48 * 32] = {
>     	0x00, 0xff, ...
>     		:
>     };
>     ret = pdVmsLcdWrite(PDD_PORT_A1, cgdata, PDD_LCD_HVFLIP);
>     if (ret != PDD_LCDERR_OK) {
>     	/* Display not possible */
>     }

pdVmsLcdWrite

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000