Detecting Colour and Monochrome Monitors

来自osdev
Zhang3讨论 | 贡献2022年3月25日 (五) 02:34的版本 (创建页面,内容为“检测用户是否拥有彩色或单色视频卡是一项微不足道的任务。 BIOS 数据段中包含此信息的值。 下面是一个来检索这个的函数 (在ISO C中) : == 函数== <source lang="c"> #include <stdint.h> enum video_type { VIDEO_TYPE_NONE = 0x00, VIDEO_TYPE_COLOUR = 0x20, VIDEO_TYPE_MONOCHROME = 0x30, }; uint16_t detect_bios_area_hardware(void) { const uint16_t* bda_de…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

检测用户是否拥有彩色或单色视频卡是一项微不足道的任务。 BIOS 数据段中包含此信息的值。 下面是一个来检索这个的函数 (在ISO C中) :

函数

#include <stdint.h>

enum video_type
{
    VIDEO_TYPE_NONE = 0x00,
    VIDEO_TYPE_COLOUR = 0x20,
    VIDEO_TYPE_MONOCHROME = 0x30,
};

uint16_t detect_bios_area_hardware(void)
{
    const uint16_t* bda_detected_hardware_ptr = (const uint16_t*) 0x410;
    return *bda_detected_hardware_ptr;
}

enum video_type get_bios_area_video_type(void)
{
    return (enum video_type) (detect_bios_area_hardware() & 0x30);
}