File:  [RetroPC.NET] / xmil / adv / vram / makesub.h
Revision 1.2: download - view: text, annotated - select for diffs
Mon May 19 22:24:19 2008 JST (17 years, 5 months ago) by yui
Branches: MAIN
CVS tags: HEAD
code brush-up


enum {
	MAKETEXT_ROW	= 8,
	MAKETEXT_STEP	= 24
};


#ifdef __cplusplus
extern "C" {
#endif

extern const UINT8 patx2[256];
extern const UINT32 to256colex[256];

#define	PATx2LEFT(p)		(makescrn.patx2[(p) >> 4])
#define	PATx2RIGHT(p)		(makescrn.patx2[(p) >> 0])


// ---- make pattern

typedef void (*MAKETXTFN)(UINT8 *dst, UINT8 *term, const UINT8 *src);
extern const MAKETXTFN maketxtlfn[32];

void maketxt8_make(UINT8 *dst, UINT8 *term, const UINT8 *src,
													REG8 type, REG8 attr);
void makepcg8_make(UINT8 *dst, UINT8 *term, const UINT8 *src,
													REG8 type, REG8 attr);


// ---- make attributes

typedef void (*MAKEATRFN)(UINT8 *dst, UINT8 *term);
extern const MAKEATRFN makeatr8[16];


// ---- make character

void makechr8(UINT8 *dst, const MAKESCRN *m, UINT32 pos_cy, REG8 udtmp);
void makechr16(UINT8 *dst, UINT pos, UINT count, REG8 udtmp);


// ---- make mixer

#if defined(ADV_SIMULATE)
void makemix_mixstep(BRESULT x2);
void makemix_mixtext40(UINT8 *dst, const UINT8 *txt, UINT count);
void makemix_mixgrph40(UINT8 *dst, const UINT8 *grp, UINT count);
void makemix_mixtext80(UINT8 *dst, const UINT8 *txt, UINT count);
void makemix_mixgrph80(UINT8 *dst, const UINT8 *grp, UINT count);
#else
void __attribute__((long_call)) makemix_mixstep(BRESULT x2);
void __attribute__((long_call)) makemix_mixtext40(UINT8 *dst, const UINT8 *txt, UINT count);
void __attribute__((long_call)) makemix_mixgrph40(UINT8 *dst, const UINT8 *grp, UINT count);
void __attribute__((long_call)) makemix_mixtext80(UINT8 *dst, const UINT8 *txt, UINT count);
void __attribute__((long_call)) makemix_mixgrph80(UINT8 *dst, const UINT8 *grp, UINT count);
#endif

#if 0
void makemix_mixtext(UINT8 *dst, UINT align, const UINT8 *txt, UINT count);
void makemix_mixgrph(UINT8 *dst, UINT align, const UINT8 *grp, UINT count);

void makemix_settext(UINT8 *dst, UINT align, const UINT8 *txt, UINT count);
void makemix_ul20(UINT8 *dst, UINT pos);
void makemix_ul10(UINT8 *dst, UINT pos);

void makemix_cpy200(UINT8 *dst, UINT pos, UINT count);
void makemix_cpy400(UINT8 *dst, UINT pos, UINT count);

// void makemix_txt(UINT8 *dst, UINT align, const UINT8 *txt, UINT count);
// void makemix_mix(UINT8 *dst, UINT align,
//							const UINT8 *txt, const UINT8 *grp, UINT count);
// void makemix_doubler(UINT8 *dst, UINT count, UINT32 skipline);
// void makemix_remcpy(UINT8 *dst, UINT pos, UINT count);
#endif


// ---- make screens

void width40x25_200l(UINT pos);						// 40x25 200line
void width80x25_200l(UINT pos);						// 80x25 200line
void width40x12_200l(UINT pos);						// 40x12 200line
void width80x12_200l(UINT pos);						// 80x12 200line

#if 0
void width80x20l(void);								// 80x20
void width80x10l(void);								// 80x10
void width80x25_400h(void);							// 80x25 400line
void width80x12_400h(void);							// 80x12 400line
void width80x20h(void);								// 80x20
void width80x10h(void);								// 80x10
#endif

#ifdef __cplusplus
}
#endif


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