通过 dos.h (turbo c++) 获取像素颜色

Get pixel color via dos.h (turbo c++)

我目前正在做一个项目,需要我在没有 graphics.h 的情况下在屏幕上绘制东西,我正在使用 DOSBOX (turbo c++)。

以下函数通过中断 (dos.h) 在屏幕的 x,y 中放置颜色为 "color"(1-256) 的像素:

void PutPixel(int x, int y, int color) {
    _AH = 0x0C;
    _AL = color;
    _CX = x;
    _DX = y;
    _BX = 0x01;
    geninterrupt (0x10);
}

returns x,y 中像素颜色的函数代码是什么?我想象的是这样的:

type getPixel(int x, int y){
//code
return color;
}

此外,有人可以解释一下 PutPixel 的工作原理吗?我知道它会修改寄存器,但我不知道每个值的含义(除了基于上下文的 _CX、_DX、_AL)。

我猜getPixel()可以这样实现:

int getPixel(int x, int y)
{
    _AH = 0x0D;
    _CX = x;
    _DX = y;
    _BX = 0x01;
    geninterrupt (0x10);
    return _AL;
}

这些东西通过调用存储在计算机 BIOS 中的代码(中断处理程序)来工作。

您可以在 Wikipedia

中阅读更多相关信息