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

📄 例4-19.c

📁 王为青 刘变红 编著《C语言高级编程及实例剖析》源代码
💻 C
字号:
/* Note:Your choice is C IDE */
#include <stdio.h>
#include <dos.h>
int vga12_point(int row,int col,int color,int xor)
{
	unsigned int bm;
	int bp,i,j;
	long int ix;
	char far *ptr(char far *)0xA0000000;
	static char x[8]={128,64,32,16,8,4,2,1};
	unsigned char t,a,b,c,d;
	if(col<0)||col>639||row<0||row>479)
		return;
	bp=col%8;
	bm=128;
	bm>>=bp;
	ix=(long)row *80L+(long)(col/8);
	t=x[bp];
	if(color<0)
		xor=1;
	if(xor!=0)
	{
		outportb(0x03CE,5); 
		outportb(0x03CF,0);
		outportb(0x03CE,4);
		outportb(0x03CF,0);
		a=*(ptr+ix)&t;
		if(a!=0)
			a=1;
		outportb(0x03CE,4);
		outportb(0x03CF,1);
		b=*(ptr+ix)&t;
		if(b!=0)
			b=2;
		outportb(0x03CE,4);
		outportb(0x03CF,2);
		c=*(ptr+ix)&t;
		if(c!=0)
			c=4;
		outportb(0x03CE,4);
		outportb(0x03CF,3);  
		d=*(ptr+ix)&t;
		if(d!=0)
			d=8;
		a=a|b|c|d;
	}
	if(color<0)
	{
		color=a;
		color=color%16;
		return(color);
	}
	outportb(0x03CE,5);
	outportb(0x03CF,2); 
	color=color%127;
	outportb(0x03CE,8);
	t=tm;
	outportb(0x03CF,t);
	outportb(0x03C4,2);
	outportb(0x03C5,255); 
	if(xor!=0)
	{
		t=*(ptr+ix);
		t=a^color;
		*(ptr+ix)=t;
	}
	else
	{    
		t=*(ptr+ix);
		*(ptr+ix)=color;
	}  
	outportb(0x03CE,8);
	outport(0x03CF,255);
	outportb(0x03CE,5);
	outportb(0x03CF,0); 
	return(color);
}

⌨️ 快捷键说明

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