在计算机的CMOS(Complementary Metal-Oxide Semiconductor)中存有计算机的配置信息,如时间、驱动器、内存等。由于不同的厂家出的BIOS,其中还有一些厂家自己的东西。但在一些基本信息上是一致的,除了提供一些通常的应用,如为操作系统、系统诊断软件等提供信息,现在也用在如共享软件的密码保护等地方。
存取控制
CMOS的数据存取的可以分两步,先向端口70H(H表示十六进制,下同)写入要操作数据的偏移量,然后在71H上读取数值或者向71H写入数值进行赋值。如读取当前时间的小时的值:
1. Out 70H <--- 4 , 小时的地址偏移量为4;
2. In 71H ----> 变量
为保证操作的地址正确,应在修改之前暂停中断,防止一些针对CMOS的中断修改70H中的地址值。
各存储量的地址
时间和日期
偏移量 对应内容
00H 当前时间的秒
01H 定时器秒
02H 当前时间的分钟
03H 定时器分钟
04H 当前时间的小时
05H 定时器小时
06H 星期几
07H 一个月的第几天
08H 一年的第几个月
09H 当前年份
系统参数
偏移量 对应内容
10H 软盘驱动器类型
第7-4位(bit)对应A驱,第3-0位(bit)对应B驱
相应位上的值:
000 ----- 无 001 ----- 360K 010 ----- 1.2M 011 ----- 720K 100 ----- 1.44M
101 ----- 2.88M
14H 设备类型
第7-6位表明了软磁盘驱动器的数量:
00 ----- 一个磁盘驱动器 01 ----- 两个磁盘驱动器
第5-4位表明显示器类型
00 ----- 未定义 01 ----- 彩色,40列 10 ----- 彩色,80列 11 ----- 单显
第3-2位,保留
第1位为1表示有协处理器
第0位为0表示安装了软磁盘驱动器
15H 基本内存(Base Memory)大小的低字节,单位为K
16H 基本内存(Base Memory)大小的高字节,单位为K
17H 扩展内存(Expanded Memory)大小的低字节,单位为K
18H 扩展内存(Expanded Memory)大小的高字节,单位为K
19H 第一个物理硬盘的扩展驱动器类型
1AH 第二个物理硬盘的扩展驱动器类型
- by David Reilly, 1995