147.VGA256色模式编程
【摘要】
/* VGA256.c -- VGA 256 色编程*/#include "dos.h"#include "conio.h"#include "stdio.h" void InitScr();void RstScr();void PutPoint(int x, int y, int Color);void Rect(int x1...
-
/*
-
VGA256.c -- VGA 256 色编程
-
*/
-
#include "dos.h"
-
#include "conio.h"
-
#include "stdio.h"
-
-
void InitScr();
-
void RstScr();
-
void PutPoint(int x, int y, int Color);
-
void Rect(int x1, int y1, int x2, int y2, int Color);
-
void LineV(int x1, int y1, int x2, int y2, int Color);
-
-
int main()
-
{
-
int x1, y1, x2, y2, i, j;
-
x1 = y1 = 0;
-
x2 = 319;
-
y2 = 199;
-
InitScr();
-
for (i = 0; i < 256; i++)
-
LineV(i, 0, i, 199, i);
-
for( i = 18; i < 100; i++)
-
Rect(x1++, y1++, x2--, y2--, i);
-
for( i = 18; i < 50; i++)
-
Rect(x1--, y1--, x2++, y2++, i);
-
getch();
-
RstScr();
-
}
-
-
void InitScr()
-
{
-
union REGS In;
-
In.x.ax = 0x13; /*进入13H模式 */
-
int86(0x10, &In, &In);
-
}
-
-
void RstScr()
-
{
-
union REGS In;
-
In.x.ax = 0x03; /* 退出13H模式 */
-
int86(0x10, &In, &In);
-
}
-
-
/* 直接写视频缓冲区 */
-
void PutPoint(int x, int y, int Color) /* 画点函数 */
-
{
-
char far *p;
-
p = (char far *) (0x0a0000000L);
-
* (x+y*320+p) = Color;
-
}
-
-
/* 利用VGA BIOS中断在屏幕上画点, 速度慢
-
void PutPoint(int x, int y, int Color)
-
{
-
union REGS In;
-
In.h.ah = 0x0C;
-
In.h.al = Color;
-
In.x.cx = x;
-
In.x.dx = y;
-
In.h.bh = 0;
-
int86(0x10, &In, &In);
-
}
-
*/
-
-
void LineV(int x1, int y1, int x2, int y2, int Color) /* 画一垂直线 */
-
{
-
int i;
-
for (i = 0; i < 199; i++)
-
PutPoint(x1, i, Color);
-
}
-
-
void Rect(int x1, int y1, int x2, int y2, int Color) /* 画一矩形*/
-
{
-
int i;
-
for(i = x1; i <= x2; i++)
-
{
-
PutPoint(i, y1, Color);
-
PutPoint(i, y2, Color);
-
}
-
for(i = y1; i <= y2; i++)
-
{
-
PutPoint(x1, i, Color);
-
PutPoint(x2, i, Color);
-
}
-
}
文章来源: blog.csdn.net,作者:程序员编程指南,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_41055260/article/details/124665856
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)