Shinobiライブラリ - LCD関数

pdVmsLcdWrite

データの液晶表示

書式

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

引数

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

戻り値

エラーコード

解説

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

 解像度   横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ビット(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   上下左右反転して表示 

戻り値エラーコードは以下の値が戻ります。

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


用例

  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,1999