//	
//	clipuvia.h
//
//	P/ECE Signetics 2637 UVI(Universal Video Interface) Emulator
//
//	CLiP - Common Library for P/ECE
//	Copyright (C) 2001-2005 Naoyuki Sawa
//
//	* Sat Apr 30 13:14:00 JST 2005 Naoyuki Sawa
//	- 作成開始。
//

// このファイルはC/アセンブラソース両方から参照します。
// C言語特有の定義を含めてはいけません。

// このシンボルを定義すると、アセンブラコードを使用します。
// このシンボルを定義しなければ、Ｃ言語コードを使用します。
#define UVI_ASM

/* clipuvia.s、framuvia.sからのinclude時のみ、以下の定義を有効にします。 */
#ifdef UVI_DEFINE_OFFSET
;****************************************************************************
;	
;****************************************************************************

				; typedef struct _UVIOBJ {
#define OBJ_SIZE	 0	; 	unsigned char size;				/* + 0,1: サイズ (0=標準,1=縦2倍拡大) */
#define OBJ_COLOR	 1	; 	unsigned char color;				/* + 1,1: カラー */
#define OBJ_RESV	 2	; 	short resv;					/* + 2,2: (予約) */
#define OBJ_X		 4	; 	short x;					/* + 4,2: X座標 */
#define OBJ_Y		 6	; 	short y;					/* + 6,2: Y座標 */
#define OBJ_FONT	 8	; 	unsigned char* font/*[8]*/;			/* + 8,4: フォント */
#define SIZEOF_UVIOBJ	12	; } UVIOBJ;						/* =12 */

				; typedef struct _UVI {
				; 	/*---------- Video ----------*/
#define RAM		  0	; 	unsigned char* ram/*[0x400]*/;			/* +  0,  4: 外部RAM、内部レジスタ */
#define VBUFF		  4	; 	unsigned char* vbuff/*[128*208]*/;		/* +  4,  4: 現在の仮想画面 (NULL=実描画無し) */
#define SCAN_START	  8	; 	short scan_start;				/* +  8,  2: 前回のスキャンライン位置 (描画区間上端  ) */
#define SCAN_END	 10	; 	short scan_end;					/* + 10,  2: 現在のスキャンライン位置 (描画区間下端+1) */
#define SCROLL_Y	 12	; 	short scroll_y;					/* + 12,  2: 垂直スクロール (フレーム単位) */
#define SCROLL_X	 14	; 	char  scroll_x[26/*Row*/];			/* + 14, 26: 水平スクロール (-1:行未取得、0..7:取得済) */
#define BG		 40	; 	unsigned short bg[26/*Row*/][16/*Col*/];	/* + 40,832: BG (000000cc0gffffff c=Color,g=GM,f=Code) */
#define COLOR		872	; 	unsigned char color[4/*B7:6*/][2/*Font*/];	/* +872,  8: BGカラー */
#define POT		880	; 	unsigned char pot[4];				/* +880,  4: A/D Potentiometer */
#define OBJ		884	; 	UVIOBJ obj[4];					/* +884, 48: OBJ1,OBJ2,OBJ3,OBJ4 */
				; 	/*---------- Sound ----------*/
#define TONE_COUNT	932	; 	int tone_count;					/* +932,  4: Tone  進行カウンタ */
#define NOISE_COUNT	936	; 	int noise_count;				/* +936,  4: Noise 進行カウンタ */
#define TONE_POLAR	940	; 	unsigned short tone_polar;			/* +940,  2: Tone  出力極性 */
#define NOISE_LFSR	942	; 	unsigned short noise_lfsr;			/* +942,  2: Noise Linear Feedback Shift Register */
#define SIZEOF_UVI	944	; } UVI;						/* =944 */

;****************************************************************************
;	
;****************************************************************************
#endif /*UVI_DEFINE_OFFSET*/
