File:  [RetroPC.NET] / xmil / adv / vram / vram.h
Revision 1.1: download - view: text, annotated - select for diffs
Fri Feb 4 15:42:10 2005 JST (20 years, 8 months ago) by yui
Branches: MAIN
CVS tags: HEAD
RetroPC CVS restarting 2005/02/04 (T.Yui)


// ---- TRAM

enum {
	TRAMATR_COLOR	= 0x07,
	TRAMATR_REVERSE	= 0x08,
	TRAMATR_BLINK	= 0x10,
	TRAMATR_PCG		= 0x20,
	TRAMATR_Yx2		= 0x40,
	TRAMATR_Xx2		= 0x80,
	TRAMKNJ_ULINE	= 0x20
};

enum {
	UPDATE_TRAM		= (1 << 5),
	UPDATE_VRAM0	= (1 << 6),
	UPDATE_VRAM1	= (1 << 7),
	UPDATE_VRAM		= UPDATE_VRAM0 | UPDATE_VRAM1,
	UPDATE_TVRAM	= UPDATE_VRAM0 | UPDATE_VRAM1 | UPDATE_TRAM
};

typedef struct {
	UINT8	atr;
	UINT8	ank;
	UINT8	knj;
	UINT8	_udt;
} TRAM;


// ---- GRAM

enum {
	GRAM_BANK0		= 0x00000,
	GRAM_BANK1		= 0x10000,

	GRAM_BANK0L		= 0x00000,
	GRAM_BANK0H		= 0x00400,
	GRAM_BANK1L		= 0x10000,
	GRAM_BANK1H		= 0x10400,

	GRAM_HALFSTEP	= 0x00400,

	GRAM_LINESTEP	= 0x0800,
	GRAM_B			= 0x0000,
	GRAM_R			= 0x4000,
	GRAM_G			= 0x8000,
	GRAM_RGBMASK	= 0xc000
};

#define	PORT2GRAM(port)		((port) - 0x4000)
#define	PORT2GRAM2(port)	((port) & (~0xc000))
#define	TRAM2GRAM(addr)		(addr)

#ifdef __cplusplus
extern "C" {
#endif

extern	TRAM	tram[0x800];
extern	UINT8	gram[];
extern	UINT8	vramupd[0x800];

#ifdef __cplusplus
}
#endif

#define	TRAM_ANK(addr)		tram[addr].ank
#define	TRAM_KNJ(addr)		tram[addr].knj
#define	TRAM_ATR(addr)		tram[addr].atr
#define	TRAMUPDATE(addr)	vramupd[addr]


RetroPC.NET-CVS <cvs@retropc.net>