中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-30 06:15
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 求救:dos下256色模式 查看 735 回复 1
楼 主 求救:dos下256色模式 发表于 2006-04-17 13:56 ·  中国 北京 海淀区 联通
新手上路
积分 12
发帖 2
注册 2006-03-31 11:13
20年会员
UID 53094
性别 女
状态 离线
这位大侠:
我现在是在dos下使用的 640×480 256色的模式。
g_mode =0x101; /* Select VGA ( 640x480 ) Mode 256 color */
regs.x.ax=0x4F02;
regs.x.bx=(short)g_mode;
int86(0x10,&regs,&regs);
if(regs.h.al !=0x4F)
{
printf("VESA modes NOT supported! \n");
}

short get_pale( unsigned char p_color )

{
int t,i;


unsigned char my_color={ 0, 0, 0,
108,108,108,
138,138,138,
157,157,157,
255,255,255,
81,204,189,
82,103,254,
2, 28,202,
247,223,142,
187,187,0,
63,143,39,
193,168,49,
255,255,0,
210,0,210,
202,0,0,
151,0,0
};

for(t=0;t<256;t++)
{
if(t<16)
{
for(i=0;i<3;i++)
{
p_color=my_color;

}
}
else
{
for(i=0;i<3;i++)
{
p_color=0;

}

}
}
return 1;
}
/* *******************************************
* 2006/4/14 设置色板 256 色
**********************************************/
void SetPalette(unsigned char pal)
{
union REGS r;
struct SREGS s;
r.h.ah=0x10;
r.h.al=0x12;
r.x.bx=0;
r.x.cx=256;
s.es=FP_SEG(pal);
r.x.dx=FP_OFF(pal);
int86x(0x10,&r,&r,&s);
}
256色板只设置了16中颜色,由于我以前采用的是640×480 16色的标准模式,当我重新选择了256色的方式,设置完色板后,我得程序运行后是花屏的,所以我想原来的一些显示字符和象素的函数可能都要进行重新写,各位大侠,如果谁有类似的扩充显示模式的代码,给提供一点可以吗?
先谢谢啦!!!
dos下开发有时觉得好孤单,呵呵Sample Text
2 发表于 2006-04-17 23:46 ·  中国 湖南 常德 电信
银牌会员
★★★
积分 1,384
发帖 709
注册 2005-10-29 22:22
20年会员
UID 44271
状态 离线
发错地方了吧,应该发到编程去啊。
论坛跳转: