一 |
Title |
Data |
Data Name |
No |
typedef struct SclXy {
Fixed32 x;
Fixed32 y;
} SclXy;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclXyz {
Fixed32 x;
Fixed32 y;
Fixed32 z;
} SclXyz;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclLineTb {
Fixed32 h; /* 水平方向画面スクロール値 */
Fixed32 v; /* 垂直方向画面スクロール値 */
Fixed32 dh; /* 水平方向座標増分 */
} SclLineTb;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclLinWindowTb {
Uint16 start; /* 水平方向始点座標 */
Uint16 end; /* 水平方向終点座標 */
} SclLinWindowTb;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclRgb {
Sint16 red; /* 赤 */
Sint16 green; /* 緑 */
Sint16 blue; /* 青 */
} SclRgb;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclVramConfig{
Uint32 ktboffsetA; /* 回転パラメータ用係数テーブルをVRAMの相対アドレスで*/
/* 指定(SCL_RBGO_Kが指定してある場合は、 */
/* そこからの相対アドレスを指定する。) */
Uint32 ktboffsetB; /* 指定単位は、2048(0x400)Byte */
/* 回転パラメータB用係数テーブルをVRAMの */
/* 相対アドレスで指定 */
Uint8 vramModeA; /* VRAM Aを2つのバンクに分割するかを指定 */
/* ON/OFF */
Uint8 vramModeB; /* VRAM Bを2つのバンクに分割するかを指定 */
/* ON/OFF */
Uint8 vramA0; /* VRAM A0を回転面の何で使用するかを指定 */
/* 分割しない場合はVRAM A全体に対して有効 */
/* SCL_NON */
/* 回転面のデータは置かない */
/* SCL_RBG0_K */
/* RBG0の係数データを置く */
/* SCL_RBG0_PN */
/* RBG0のパターンネームデータを置く */
/* Scl_RBG0_CHAR */
/* RBG0のキャラクターを置く */
Unit8 vramA1; /* VRAMA1を回転面の何で使用するかを指定 */
/* VRAMAを分割しない場合は無効 */
Uint8 vramB0; /* VRAM B0を回転面の何で使用するかを指定 */
/* 分割しない場合はVRAM B全体に対して有効 */
Uint8 vramB1; /* VRAM B1を回転面の何で使用するかを指定 */
/* VRAM Bを分割しない場合は無効 */
Uint8 colram; /* カラーRAMに係数データを置くかを指定 */
/* VRAM中に係数データを置くと使用不可となる */
/* カラーRAMモードは、SCL_CRM15-2048で */
/* なければ指定不可 */
/* SCL_RBG0_K or SCL_NONで指定 */
} SclVramConfig;
![]() |
回転面の何らかのデータを置いたVRAMのバンクには他のデータを置くことができません。 ただし、係数データは、ktboffsetA、ktboffsetBを指定すると、他のデータを置くことができます。 |
|---|
一 |
Title |
Data |
Data Name |
No |
typedef struct Sclconfig {
Uint8 dispenbl; /* 表示ON/OFF */
/* 画面表示イネーブルレジスタ(180020h) */
/* ON 画面に絵を表示する */
/* OFF 画面に絵を表示しない */
Uint8 charsize; /* キャラクタサイズ */
/* キャラクタコントロールレジスタ(180028h〜18002ah) */
/* SCL_CHAR_SIZE_1X1 */
/* 1X1に設定 */
/* SCL_CHAR_SIZE_2x2 */
/* 2x2に設定 */
Uint8 pnamesize; /* パターンネームサイズ */
/* パターンネームコントロールレジスタ(180030h〜180038h)*/
/* SCL_PN2WORD */
/* 2Word単位に設定 */
/* SCL_PN1WORD */
/* 1Word単位設定 */
Uint8 platesize; /* プレーンサイズ */
/* プレーンサイズレジスタ(18003ah) */
/* SCL_PL_SIZE_1X1 */
/* 1X1に設定 */
/* SCL_PL_SIZE_2X1 */
/* 2X1に設定 */
/* SCL_PL_SIZE_2X2 */
/* 2x2に設定 */
Uint8 bmpsize; /* ビットマップサイズ*/
/* キャラクタコントロールレジスタ(180028h〜18002ah) */
/* SCL_BMP_SIZE_512X256 */
/* 512X256に設定 */
/* SCL_BMP_SIZE_512X512 */
/* 512X512に設定 */
/* SCL_BMP_SIZE_1024X256 */
/* 1024X256に設定 */
/* SCL_BMP_SIZE_1024X512 */
/* 1024X512に設定 */
Uint8 coltype; /* キャラクタ色数 */
/* キャラクタコントロールレジスタ(180028h〜18002ah) */
/* SCL_COL_TYPE_16 */
/* 16色に設定 */
/* SCL_COL_TYPE_256 */
/* 256色に設定 */
/* SCL_COL_TYPE_2048 */
/* 2048色に設定 */
/* SCL_COL_TYPE_32K */
/* 32万色に設定 */
/* SCL_COL_TYPE_1M */
/* 1677万色に設定 */
Uint8 datatype; /* ビットマップイネーブル */
/* キャラクタコントロールレジスタ(180028h〜18002ah) */
/* SCL_BITMAP */
/* ビットマップ形式に指定 */
/* SCL_CELL */
/* セル形式に指定 */
Uint8 mapover; /* 画面オーバー処理 */
/* 画面オーバー処理レジスタ(18003ah) */
/* SCL_OVER_0 */
/* 表示エリア外は、表示エリアに設定 */
/* された画像を繰り返す。 */
/* SCL_OVER1 */
/* 表示エリア外は、画面オーバーパターン */
/* ネームレジスタで指定したパターンを繰り返 */
/* します(回転面のみ) */
/* SCL_OVER_2 */
/* 表示エリア外は、透明にする */
/* SCL_OVER_3 */
/* 表示エリアを、512x512にしてそれ */
/* 以外を透明にする */
Uint8 flip; /* キャラクタナンバー補助モード */
/* パターンネームデータのサイズが1Wordの時の特殊機能と */
/* 反転機能を使用するかを指定します。 */
/* 指定した場合はキャラクタナンバーが10bitになり指定し */
/* なければ12bitになります */
/* パターンネームコントロールレジスタ(180030h〜180038h) */
/* SCL_PN_10BIT */
/* 特殊機能と反転機能を有効にします */
/* SCL_PN_12BITT */
/* 特殊機能と反転機能を無効にします */
Uint16 patnamecontrl; /* パターンネームコントロールレジスタ中の補助データ */
Uint32 plate_addr[16]; /* スクロール画面マップレジスタ */
/* セル形式の場合はパターンネームテーブルの先頭アドレスを */
/* 指定 */
/* ビットマップ形式の場合はビットマップデータの先頭アドレス */
/* を指定 */
/* ノーマル(180040h〜18004eh) */
/* 回転(180050h〜18006eh) */
} Sclconfig;一 |
Title |
Data |
Data Name |
No |
typedef struct SclLineParam {
Uint8 delta_enbl; /* ラインズームイネーブル */
/* ライン&縦セルスクロールレジスタ(18009ah) */
/* ON/OFF */
Uint8 v_enbl; /* ラインスクロールイネーブル(垂直) */
/* ライン&縦セルスクロールレジスタ;(18009ah) */
/* ON/OFF */
Uint8 h_enbl; /* セルスクロールイネーブル(水平) */
/* ライン&縦セルスクロールレジスタ(18009ah) */
/* ON/OFF */
Uint8 cell_enbl; /* 縦セルスクロールイネーブル */
/* ライン&縦セルスクロールレジスタ(18009ah) */
/* ON/OFF */
Uint8 interval; /* ライインスクロール間隔 */
/* ライン&縦セルスクロールレジスタ(18009ah) */
/* SCL_1_LINE */
/* 1ラインごとにラインスクロールデータテーブルを */
/* 設定する */
/* SCL_2_LINE */
/* 2ラインごとにラインスクロールデータテーブルを */
/* 設定する */
/* SCL_4_LINE */
/* 4ラインごとにラインスクロールデータテーブルに */
/* 設定する */
/* SCL_8_LINE */
/* 8ラインごとにラインスクロールデータテーブルに */
/* 設定する */
Uint32 line_addr; /* ラインスクロールアドレスレジスタ(18009ch〜18009eh) */
/* ラインスクロールテーブルを置くVRAM上のアドレスを設定 */
Uint32 cell_addr; /* 縦セルスクロールテーブルアドレスレジスタ(18009c〜18009e) */
/* 縦セルスクロールテーブルを置くVRAM上のアドレスを設定 */
GlbLineTb line_tbl[]; /* ラインスクロールテーブル */
Fixed32 cell_tbl[]; /* 縦セルスクロールアドレスレジスタ */
} SclLineParam;一 |
Title |
Data |
Data Name |
No |
typedef struct SclSysreg{
/* Address 内容 */
Uint16 tvmode; /* 180000H TV画面モード */
Uint16 extenbl; /* 180002H 外部信号 */
Uint16 tvstatus; /* 180004H 画面ステータス */
Uint16 vramsize; /* 180006H VRAMサイズ */
Uint16 H_val; /* 180008H Hカウンター */
Uint16 V_val; /* 18000AH Vカウンター */
Uint16 vramchg; /* 18000CH */
Uint16 ramcontrl; /* 18000EH RAMコントロール */
Uint16 vramcyc[8]; /* 180010H VRAMサイクルパターン */
Uint16 dispenbl; /* 180020H 画面表示イネーブル */
Uint16 mosaic; /* 180022H モザイクコントロール */
Uint16 specialcode_sel; /* 180024H 特殊コードセレクト */
Uint16 specialcode; /* 180026H 特殊機能コード */
} SclSysreg; 本ライブラリ内では以下のようにシンボル登録されています。このシンボルに対して書き込みを行ったのちにグローバル変数"SclProcess"に1を書き込むと次のV-Blank時にレジスタに反映されます。
SclSysreg Scl_s_reg;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclDataset{
/* Address 内容 */
Uint16 charcontrl0; /* 180028H キャラクタコントロール(NBG0,NBG1) */
Uint16 charcontrl1; /* 18002AH キャラクタコントロール(NBG2,NBG3,RBG0) */
Uint16 bmpalnum0; /* 18002CH ビットマップパレットナンバー(NBG0,NBG1) */
Uint16 bmpalnum1; /* 18002EH ビットマップパレットナンバー(RBG0) */
Uint16 patnamecontrl[5]; /* 180030H パターンネームコントロール */
Uint16 platesize; /* 18003AH プレーンサイズ */
Uint16 mapoffset0; /* 18003CH マップオフセット(NBG0〜NBG3) */
Uint16 mapoffset1; /* 18003EH マップオフセット(回転パラメータA.B) */
Uint16 normap[8]; /* 180040H マップ(ノーマルスクロール) */
Uint16 rotmap[16]; /* 180050H マップ(回転パラメータA,B) */
} SclDataset;本ライブラリ内では以下のようにシンボル登録されています。このシンボルに対して書き込みを行ったのちにグローバル変数“SclProcess”に1を書き込むと次のV-Blank時にレジスタに反映されます。
SclDataset Scl_d_reg;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclNorscl{
/* Address 内容 */
Fixed32 n0_move_x; /* 180070H 水平方向画面スクロール値(NBG0) */
Fixed32 n0_move_y; /* 180074H 垂直方向画面スクロール値(NBG0) */
Fixed32 n0_delta_x; /* 180078H 水平方向座標増分(NBG0) */
Fixed32 n0_delta_y; /* 18007CH 垂直方向座標増分(NBG0) */
Fixed32 n1_move_x; /* 180080H 水平方向画面スクロール値(NBG1) */
Fixed32 n1_move_y; /* 180084H 垂直方向画面スクロール値(NBG1) */
Fixed32 n1_delta_x; /* 180088H 水平方向座標増分(NBG1) */
Fixed32 n1_delta_y; /* 18008CH 垂直方向座標増分(NBG1) */
Uint16 n2_move_x; /* 180090H 水平方向画面スクロール値(NBG2) */
Uint16 n2_move_y; /* 180092H 垂直方向画面スクロール値(NBG2) */
Uint16 n3_move_x; /* 180094H 水平方向画面スクロール値(NBG3) */
Uint16 n3_move_y; /* 180096H 垂直方向画面スクロール値(NBG3) */
Uint16 zoomenbl; /* 180098H 縮小イネーブル */
Uint16 linecontrl; /* 18009AH ライン&縦セルスクロールコントロール(NBG0,NBG1)*/
Uint32 celladdr; /* 18009CH 縦セルスクロールテーブルアドレス(NBG0,NBG1) */
Uint32 lineaddr[2]; /* 1800A0H ラインスクロールテーブルアドレス */
Uint32 linecolmode; /* 1800A8H ラインカラー画面テーブルアドレス */
Uint32 backcolmode; /* 1800ACH バック画面テーブルアドレス */
} SclNorscl;本ライブラリ内では以下のようにシンボル登録されています。このシンボルに対して書き込みを行ったのちにグローバル変数“SclProcess”に1を書き込むと次のV-Blank時にレジスタに反映されます。
SclNorscl Scl_n_reg;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclRotscl{
/* Address 内容 */
Uint16 paramode; /* 1800B0H 回転パラメータモード */
Uint16 paramcontrl; /* 1800B2H 回転パラメータリードコントロール */
Uint16 k_contrl; /* 1800B4H 係数テーブルコントロール */
Uint16 k_offset; /* 1800B6H 係数テーブルアドレスオフセット */
Uint16 mapover[2]; /* 1800B8H 画面オーバーパターンネーム */
Uint32 paramaddr; /* 1800BAH 回転パラメータテーブルアドレス */
} SclRotscl;本ライブラリ内では以下のようにシンボル登録されています。このシンボルに対して書き込みを行ったのちにグローバル変数“SclProcess”に1を書き込むと次のV-Blank時にレジスタに反映されます。
SclRotscl Scl_r_reg;
一 |
Title |
Data |
Data Name |
No |
typedef struct SclWinscl{
/* Address 内容 */
Uint16 win0_start[2]; /* 1800C0H ウィンドウポジション(W0,始点XY) */
Uint16 win0_end[2]; /* 1800C4H ウィンドウポジション(W0,終点XY) */
Uint16 win1_start[2]; /* 1800C8H ウィンドウポジション(W1,始点XY) */
Uint16 win1_end[2]; /* 1800CCH ウィンドウポジション(W1,終点XY) */
Uint16 wincontrl[4]; /* 1800D0H ウィンドウコントロール */
Uint32 linewin0_addr; /* 1800D8H ラインウィンドウテーブルアドレス(W0) */
Uint32 linewin1_addr; /* 1800DCH ラインウィンドウテーブルアドレス(W0) */
} SclWinscl;本ライブラリ内では以下のようにシンボル登録されています。このシンボルに対して書き込みを行ったのちにグローバル変数"SclProcess"に1を書き込むと次のV-Blank時にレジスタに反映されます。
SclWinscl Scl_w_reg;
一 |
Title |
Data |
Data Name |
No |
Uint16 SclDisplayX;
Uint16 SclDisplayY;
★PROGRAMMER'S GUIDE
★VDP2ライブラリ