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

📄 mkcmap.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include <draw.h>#include <memdraw.h>/*struct Memcmap{	uchar	cmap2rgb[3*256];	uchar	rgb2cmap[16*16*16];};*/static Memcmap*mkcmap(void){	static Memcmap def;	int i, rgb, r, g, b;	for(i=0; i<256; i++){		rgb = cmap2rgb(i);		r = (rgb>>16)&0xff;		g = (rgb>>8)&0xff;		b = rgb&0xff;		def.cmap2rgb[3*i] = r;		def.cmap2rgb[3*i+1] = g;		def.cmap2rgb[3*i+2] = b;	}	for(r=0; r<16; r++)	for(g=0; g<16; g++)	for(b=0; b<16; b++)		def.rgb2cmap[r*16*16+g*16+b] = rgb2cmap(r*0x11, g*0x11, b*0x11);	return &def;}voidmain(int argc, char **argv){	Memcmap *c;	int i, j, inferno;	inferno = 0;	ARGBEGIN{	case 'i':		inferno = 1;	}ARGEND	memimageinit();	c = mkcmap();	if(!inferno)		print("#include <u.h>\n#include <libc.h>\n");	else		print("#include \"lib9.h\"\n");	print("#include <draw.h>\n");	print("#include <memdraw.h>\n\n");	print("static Memcmap def = {\n");	print("/* cmap2rgb */ {\n");	for(i=0; i<sizeof(c->cmap2rgb); ){		print("\t");		for(j=0; j<16; j++, i++)			print("0x%2.2ux,", c->cmap2rgb[i]);		print("\n");	}	print("},\n");	print("/* rgb2cmap */ {\n");	for(i=0; i<sizeof(c->rgb2cmap);){		print("\t");		for(j=0; j<16; j++, i++)			print("0x%2.2ux,", c->rgb2cmap[i]);		print("\n");	}	print("}\n");	print("};\n");	print("Memcmap *memdefcmap = &def;\n");	print("void _memmkcmap(void){}\n");	exits(0);}

⌨️ 快捷键说明

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