Shinobiライブラリ - LCD関数

pdVmsLcdWrite

データの液晶表示

書式

Sint32 pdVmsLcdWrite( port, *data, flag )
Uint32 port
const void *data
Uint32 flag

引数

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

戻値

PDD_LCDERR_OK成功
PDD_LCDERR_NO_LCDビジュアルメモリが接続されていない
PDD_LCDERR_BUSYビジュアルメモリはアクセス中

解説

ビジュアルメモリの液晶ディスプレイにビットマップのグラフィックを表示します。

解像度横48x縦32ピクセル
階調数2階調(モノクロ)

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

PDD_PORT_A1ポートAの拡張ソケット1
PDD_PORT_A2ポートAの拡張ソケット2
PDD_PORT_B1ポートBの拡張ソケット1
PDD_PORT_B2ポートBの拡張ソケット2
PDD_PORT_C1ポートCの拡張ソケット1
PDD_PORT_C2ポートCの拡張ソケット2
PDD_PORT_D1ポートDの拡張ソケット1
PDD_PORT_D2ポートDの拡張ソケット2

引数 dataに指定するピクセルデータ形式は、ソフトウェアで取り扱いやすいように1ピクセルを8ビット(1byte)で 表現します。下位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) {
    /* 表示できなかった */
  }

pdVmsLcdWrite
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998