C 中的 VGA 编程:获取 x、y 坐标和偏移量
VGA Programming in C: Getting the x, y coordinates from and offset
我正在用 C 语言为 256 色 VGA 编程。我的屏幕尺寸是 320*200,所以基于这个假设,我的绘图像素函数如下:
void plot_pixel(int x, int y, byte color){
int offset;
offset = (y<<8) + (y<<6) + x;
VGA[offset]=color;
}
我总是将屏幕的 x、y 坐标转换为显存的偏移量。我正在努力实现的是做相反的事情。我想向我发送一个视频偏移函数和 return 一个数组,其中包含对应于 x 和 y 坐标的 2 个整数:
get_xy(int offset){
...
}
但是,我仍然找不到将单个数字转换为两个值的方法。
谁能帮我实现这个?
简单的数学逆向。最好使用 unsigned
类型。
y = offset/((1<<8) + (1<<6));
x = offset%((1<<8) + (1<<6));
我正在用 C 语言为 256 色 VGA 编程。我的屏幕尺寸是 320*200,所以基于这个假设,我的绘图像素函数如下:
void plot_pixel(int x, int y, byte color){
int offset;
offset = (y<<8) + (y<<6) + x;
VGA[offset]=color;
}
我总是将屏幕的 x、y 坐标转换为显存的偏移量。我正在努力实现的是做相反的事情。我想向我发送一个视频偏移函数和 return 一个数组,其中包含对应于 x 和 y 坐标的 2 个整数:
get_xy(int offset){
...
}
但是,我仍然找不到将单个数字转换为两个值的方法。
谁能帮我实现这个?
简单的数学逆向。最好使用 unsigned
类型。
y = offset/((1<<8) + (1<<6));
x = offset%((1<<8) + (1<<6));