BIOS入门之我见-界面

软件是为人类服务的,因此通常都需要一个界面或需要提供个人机交互的接口,比如BIOS里面就有个叫setup的界面,供用户设置选项。说到人机交互,则是另外一门学问,这跟心理学,人体工程学都能挂靠上的,这里就只针对我们预计的小项目提供的界面来介绍。
    上篇布局中已经把我们想要实现的各功能划分的各具体文件中,而负责界面UI显示的,我们用Display.c文件实现,本文就针对这个文件详细介绍一下。 要知道,实现界面显示功能方法,途经很多,微软VC MFC等,Linux下用QT,而我们的这个DOS传统系统下做显示功能,没必要也不方便实现显示,因此本文采用的策略是通过写屏来实现,理由 1, 更直观地理解X86字符显示的基本原理,2,增强对指针操作的掌握。
    
    下面来说说VGA的发展,尽管现在的显示技术已经突飞猛进,光Intel的集成显卡就弄出不少花活,神马DP,eDP, HDMI, DVI等等, 但通常VGA作为一个经典的显示适配标准仍然有很大地市场空间,CGA,MDA,EGA,MCGA,VGA,SVGA,较为通用的还是VGA标准 
    视频显存和视频控制器,要知道,处理显示部分,相对比较复杂,我们回归到最原始的IBM PC来看看,有 助于理解,X86架构的PC将内存A0000H-BFFFFH这1M一下的128K空间分配给显存使用,这部分内存,主CPU 可以访问,视频显示控制器(GPU)也可以访问,当需要显示信息时,主CPU将显示内容写到显存中,然后就是视频显示控制器的工作了,读取显存中的内容,并将其转化合适的的信号到显示设备上。至于这128K的Video Buffer实际上只用的部分,具体怎样使用,要根据显示适配器和所选择的模式来定了。在DOS下,默认的是模式3 模拟CGA模式,显示字符,其显示一个页面的字符是80x25,即一共显示25行,每行80个字符,16色,对应的显存开始位置是B8000h。 在B8000h这个位置开始,就是DOS默认显示第一个字符的位置,在对应的位置写上要显示的ASCII,就能在第一行第一列看到对应的字符,而B8001h这个Byte就是第一个字符的显示属性了,参考如下表格各位的定义说明
表一 屏幕属性位定义
属性位定义 D7 D6 D5 D4 D3 D2 D1 D0
Blinking R        G           B Intensity R        G        B
   Background  Foreground

对应的I R G B 组合成16中颜色,如下表所示。
表二 颜色对应表
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值