grtry.c

来自「如何编写自己的图形开发包 利用tc2.0在DOS下编写一个功能完整的图形开」· C语言 代码 · 共 82 行

C
82
字号
#include "MyType.h"
#include "GrTry.h"

/* 设置好寄存器,并完成初始化   */
void SetSVGAMode(INT16 vmode)
{
    switch (vmode)                      /* 记录当前的分辨率     */                      
    {
        case TRY320X200X256:
            COLS = 320;
            ROWS = 200;
            break;

        case TRY640X480X256:
            COLS = 640;
            ROWS = 480;
            break;

        case TRY800X600X256:
            COLS = 800;
            ROWS = 600;
            break;

        case TRY1024X768X256:
            COLS = 1024;
            ROWS = 768;
            break;
    }


    _AX = 0x4f02;           
    _BX = vmode;
    __int__(0x10);          
}

/* 获取当前模式         */
INT16 GetSVGAMode()         
{
    _AX = 0x4f03;
    __int__(0x10);

    return _BX;
}

/* 画点函数         */
void Dot(INT16 x, INT16 y, UINT8 color)
{
    UINT32  PageAll1, PageAll2;
    UINT8   PageIndex;

    if (x > -1 && x < COLS && y > -1 && y < ROWS)
    {
        PageAll1 = PageAll2 = (UINT32)y*(UINT32)COLS+(UINT32)x;
        PageIndex = PageAll1 >> 16;
        SelectPage(PageIndex);

        VideoBuffer[PageAll2] = color;
    }
}

/* 图形初始化       */
void InitSVGA()
{
    OldSMode = GetSVGAMode();
}


/* 回到原来模式     */
void ExitSVGA()
{
    SetSVGAMode(OldSMode);
}

/* 换页函数         */
void SelectPage(register UINT8 page)
{
    _BX = 0;
    _DX = page;
    _AX = 0x4f05;
    __int__(0x10);
}

⌨️ 快捷键说明

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