示例#1
0
/* $1b ABA inherent ***** */
INLINE void aba (void)
{
	UINT16 t;
	t=A+B;
	CLR_HNZVC; SET_FLAGS8(A,B,t); SET_H(A,B,t);
	A=t;
}
示例#2
0
/* $f9 ADCB extended ***** */
INLINE void adcb_ex( void )
{
	UINT16 t,r;
	EXTBYTE(t); r = B+t+(CC&0x01);
	CLR_HNZVC; SET_FLAGS8(B,t,r); SET_H(B,t,r);
	B = r;
}
示例#3
0
/* $fb ADDB extended ***** */
INLINE void addb_ex( void )
{
	UINT16 t,r;
	EXTBYTE(t); r = B+t;
	CLR_HNZVC; SET_FLAGS8(B,t,r); SET_H(B,t,r);
	B = r;
}
示例#4
0
/* $bb ADDA extended ***** */
INLINE void adda_ex( void )
{
	UINT16 t,r;
	EXTBYTE(t); r = A+t;
	CLR_HNZVC; SET_FLAGS8(A,t,r); SET_H(A,t,r);
	A = r;
}
示例#5
0
// actually this is ADDX, causes garbage in nightgal.cpp otherwise
INLINE void adcx_im( void )
{
	UINT16 t,r;
	IMMBYTE(t); r = X+t/*+(CC&0x01)*/;
	CLR_HNZVC; SET_FLAGS8(X,t,r); SET_H(X,t,r);
	X = r;
}
示例#6
0
/* $b9 ADCA extended ***** */
INLINE void adca_ex( void )
{
	UINT16 t,r;
	EXTBYTE(t); r = A+t+(CC&0x01);
	CLR_HNZVC; SET_FLAGS8(A,t,r); SET_H(A,t,r);
	A = r;
}
示例#7
0
文件: 6800ops.c 项目: ernestd/fbarr
/* $eb ADDB indexed ***** */
M6800_INLINE void addb_ix( void )
{
	UINT16 t,r;
	IDXBYTE(t); r = B+t;
	CLR_HNZVC; SET_FLAGS8(B,t,r); SET_H(B,t,r);
	B = r;
}
示例#8
0
文件: 6800ops.c 项目: ernestd/fbarr
/* $d9 ADCB direct ***** */
M6800_INLINE void adcb_di( void )
{
	UINT16 t,r;
	DIRBYTE(t); r = B+t+(CC&0x01);
	CLR_HNZVC; SET_FLAGS8(B,t,r); SET_H(B,t,r);
	B = r;
}
示例#9
0
文件: 6800ops.c 项目: ernestd/fbarr
/* $ab ADDA indexed ***** */
M6800_INLINE void adda_ix( void )
{
	UINT16 t,r;
	IDXBYTE(t); r = A+t;
	CLR_HNZVC; SET_FLAGS8(A,t,r); SET_H(A,t,r);
	A = r;
}
示例#10
0
文件: 6800ops.c 项目: ernestd/fbarr
/* $99 ADCA direct ***** */
M6800_INLINE void adca_di( void )
{
	UINT16 t,r;
	DIRBYTE(t); r = A+t+(CC&0x01);
	CLR_HNZVC; SET_FLAGS8(A,t,r); SET_H(A,t,r);
	A = r;
}
示例#11
0
/**
@method copy_from( rect ) -> self
Sets @self to the same position and size as @rect.
This is meant for optimizations.
Returns @self.
*/
static VALUE rb_array_copy_from(VALUE self, VALUE rect)
{
	if(self==rect){
		return Qtrue;
	}

	Check_Type(rect, T_ARRAY);

	SET_X(array_get_x(rect));
	SET_Y(array_get_y(rect));
	SET_W(array_get_w(rect));
	SET_H(array_get_h(rect));

	return self;
}
示例#12
0
static VALUE rb_array_inflate_bang(VALUE self, VALUE size)
{
	normalize(self);
	{
		GET_X();
		GET_Y();
		GET_W();
		GET_H();
		double dx=array_get_x(size);
		double dy=array_get_y(size);
		SET_X(x-dx/2);
		SET_Y(y-dy/2);
		SET_W(w+dx);
		SET_H(h+dy);
	}
	return self;
}
示例#13
0
__inline__ static void normalize(VALUE self)
{
	GET_W();
	GET_H();
	if(w<0){
		GET_X();
		x=x+w;
		w=-w;
		SET_X(x);
		SET_W(w);
	}
	if(h<0){
		GET_Y();
		y=y+h;
		h=-h;
		SET_Y(y);
		SET_H(h);
	}
}