一 |
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;