⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m1b_lin.c

📁 nucleus 文件系统,内核和彩色图形系统,在小系统上非常好用
💻 C
📖 第 1 页 / 共 3 页
字号:
			if(pxBit == 0)
			{
				dstBgnByte++;
				pxBit = 0x80;
			}
		}
	}

	return;
}


/* Y major top->bottom, right->left masked, OR. */
void M1BMOYMRL(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr | pxBit;
		rowTablePtr[0]++;
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			pxBit = (pxBit << 1);
			if(pxBit == 0)
			{
				dstBgnByte--;
				pxBit = 0x01;
			}
		}
	}

	return;
}


/* X major top->bottom, left->right masked, OR. */
/* #define M1BMOXMLR M1BMOH */
/* Diagonal top->bottom, left->right masked, OR. */
/* #define M1BMODLR M1BMOH */
/* Horizontal left->right masked, OR. */
void M1BMOH(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr | pxBit;
		pxBit = (pxBit >> 1);
		if(pxBit == 0)
		{
			dstBgnByte++;
			pxBit = 0x80;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}


/* X major top->bottom, right->left masked, OR. */
/* #define M1BMOXMRL M1BMODRL */
/* Diagonal top->bottom, right->left masked, OR. */
void M1BMODRL(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr | pxBit;
		pxBit = (pxBit << 1);
		if(pxBit == 0)
		{
			dstBgnByte--;
			pxBit = 0x01;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}


/* Y major top->bottom, left->right masked, OR NOT dest. */
/* #define M1BMOYMLR_ND M1BMOV_ND */
/* Y major top->bottom, vertical masked, OR NOT dest. */
void M1BMOV_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(lclPenColor) *dstPtr = *dstPtr | pxBit;
		rowTablePtr[0]++;
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			pxBit = (pxBit >> 1);
			if(pxBit == 0)
			{
				dstBgnByte++;
				pxBit = 0x80;
			}
		}
	}

	return;
}


/* Y major top->bottom, right->left masked, OR NOT dest. */
void M1BMOYMRL_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(lclPenColor) *dstPtr = *dstPtr | pxBit;
		rowTablePtr[0]++;
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			pxBit = (pxBit << 1);
			if(pxBit == 0)
			{
				dstBgnByte--;
				pxBit = 0x01;
			}
		}
	}

	return;
}


/* X major top->bottom, left->right masked, OR NOT dest. */
/* #define M1BMOXMLR_ND M1BMOH_ND */
/* Diagonal top->bottom, left->right masked, OR NOT dest. */
/* #define M1BMODLR_ND M1BMOH_ND */
/* Horizontal left->right masked, OR NOT dest. */
void M1BMOH_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(lclPenColor) *dstPtr = *dstPtr | pxBit;
		pxBit = (pxBit >> 1);
		if(pxBit == 0)
		{
			dstBgnByte++;
			pxBit = 0x80;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}


/* X major top->bottom, right->left masked, OR NOT dest. */
/* #define M1BMOXMRL_ND M1BMODRL_ND */
/* Diagonal top->bottom, right->left masked, OR NOT dest. */
void M1BMODRL_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(lclPenColor) *dstPtr = *dstPtr | pxBit;
		pxBit = (pxBit << 1);
		if(pxBit == 0)
		{
			dstBgnByte--;
			pxBit = 0x01;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}


/* Y major top->bottom, left->right masked, AND. */
/* #define M1BMAYMLR M1BMAV */
/* Y major top->bottom, vertical masked, AND. */
void M1BMAV(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr & ~pxBit;
		rowTablePtr[0]++;
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			pxBit = (pxBit >> 1);
			if(pxBit == 0)
			{
				dstBgnByte++;
				pxBit = 0x80;
			}
		}
	}

	return;
}


/* Y major top->bottom, right->left masked, AND. */
void M1BMAYMRL(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr & ~pxBit;
		rowTablePtr[0]++;
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			pxBit = (pxBit << 1);
			if(pxBit == 0)
			{
				dstBgnByte--;
				pxBit = 0x01;
			}
		}
	}

	return;
}


/* X major top->bottom, left->right masked, AND. */
/* #define M1BMAXMLR M1BMAH */
/* Diagonal top->bottom, left->right masked, AND. */
/* #define M1BMADLR M1BMAH */
/* Horizontal left->right masked, AND. */
void M1BMAH(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr & ~pxBit;
		pxBit = (pxBit >> 1);
		if(pxBit == 0)
		{
			dstBgnByte++;
			pxBit = 0x80;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}


/* X major top->bottom, right->left masked, AND. */
/* #define M1BMAXMRL M1BMADRL */
/* Diagonal top->bottom, right->left masked, AND. */
void M1BMADRL(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr & ~pxBit;
		pxBit = (pxBit << 1);
		if(pxBit == 0)
		{
			dstBgnByte--;
			pxBit = 0x01;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}


/* Y major top->bottom, left->right masked, AND NOT dest. */
/* #define M1BMAYMLR_ND M1BMAV_ND */
/* Y major top->bottom, vertical masked, AND NOT dest. */
void M1BMAV_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(!(lclPenColor)) *dstPtr = *dstPtr & ~pxBit;
		rowTablePtr[0]++;
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			pxBit = (pxBit >> 1);
			if(pxBit == 0)
			{
				dstBgnByte++;
				pxBit = 0x80;
			}
		}
	}

	return;
}


/* Y major top->bottom, right->left masked, AND NOT dest. */
void M1BMAYMRL_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(!(lclPenColor)) *dstPtr = *dstPtr & ~pxBit;
		rowTablePtr[0]++;
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			pxBit = (pxBit << 1);
			if(pxBit == 0)
			{
				dstBgnByte--;
				pxBit = 0x01;
			}
		}
	}

	return;
}


/* X major top->bottom, left->right masked, AND NOT dest. */
/* #define M1BMAXMLR_ND M1BMAH_ND */
/* Diagonal top->bottom, left->right masked, AND NOT dest. */
/* #define M1BMADLR_ND M1BMAH_ND */
/* Horizontal left->right masked, AND NOT dest. */
void M1BMAH_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(!(lclPenColor)) *dstPtr = *dstPtr & ~pxBit;
		pxBit = (pxBit >> 1);
		if(pxBit == 0)
		{
			dstBgnByte++;
			pxBit = 0x80;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}


/* X major top->bottom, right->left masked, AND NOT dest. */
/* #define M1BMAXMRL_ND M1BMADRL_ND */
/* Diagonal top->bottom, right->left masked, AND NOT dest. */
void M1BMADRL_ND(void)
{
	int i;
	byte pxBit;

	pxBit = (byte) (0x80 >> (dRect.Xmin & 0x07));
	dstBgnByte = dRect.Xmin >> 3;
	for (i = 0; i <= majorAxisLengthM1; i++)
	{
		dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
		*dstPtr = *dstPtr ^ pxBit;
		if(!(lclPenColor)) *dstPtr = *dstPtr & ~pxBit;
		pxBit = (pxBit << 1);
		if(pxBit == 0)
		{
			dstBgnByte--;
			pxBit = 0x01;
		}
		errTermL += errTermAdjUpL;
		if (errTermL >= 0)
		{	/* minor axis advance */
			errTermL -= errTermAdjDownL;
			rowTablePtr[0]++;
		}
	}

	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -