BIOS 通信区的重要参数,现在看一下格式对不对。
ROM BIOS通信区的重要参数,很多网络上没有公开。
0010h-0011h 含义图 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 +--+--+---+---+--+--+--+---+--+--+---+--+--+---+--+---+ | | | | | | | | | | | | | | | | | +--+--+---+---+--+--+--+---+--+--+---+--+--+---+--+---+ ______ ___ ___ _______ ___ _____ _____ ______ __ ___ | | | | | | | | | |__\ 为1表示有软盘驱动器 | | | | | | | | |__\ 为1表示有8087协处理器 | | | | | | | |___\ 系统板RAM容量: | | | | | | | 00:64K, 01:138K | | | | | | | 10:192K,11:256K | | | | | | |___________\ 显示器类型: | | | | | | 01:40X25 CGA卡,10:80X25CGA卡 | | | | | | 11:80X25 单色卡, 00:EGA卡 | | | | | |___________________\ 软盘驱动器个数 | | | | |_________________________\ 为0表示安装了DMA芯片 | | | |_________________________________\ RS-232串行适配器个数 | | |________________________________________\ 为1表示接有游戏适配器 | |_____________________________________________\ 为1表示有串行打印机 |___________________________________________________\ 已连的打印机个数
0012h,字节,测试标志。为1表示测试键盘,为0表示操作键盘。
0013h-0014h,字,以K字节为单位表示的内存容量。
0015h-0016h,字,以K字节为单位表示的扩充内存容量。
0017h,字节,键盘第一个状态字,状态字如图1-5所示。
7 6 5 4 3 2 1 0 +--+--+--+--+--+--+--+--+ | | | | | | | | | +--+--+--+--+--+--+--+--+ ___ __ __ __ __ __ __ __ | | | | | | | |____\ 右Shift键按下 | | | | | | |________\ 左Shift键按下 | | | | | |____________\ Ctrl 键按下 | | | | |________________\ Alt 键按下 | | | |____________________\ Scroll Lock 键按下 | | |________________________\ Num Lock 键按下 | |____________________________\ Caps Lock 键按下 |_________________________________\ Insert 键按下
0018h,字节,表示键盘特殊键状的第二字节,状态字如图1-6。
7 6 5 4 3 2 1 0 +--+--+--+--+--+--+--+--+ | | | | | | | X| X| +--+--+--+--+--+--+--+--+ | | | | | | | | | | | |_\ 只用于PCJr,表示键盘定位接通(04h) | | | | |_____\ Ctrl-NumLock 键按下(08h) | | | |_________\ Scroll Lock 键按下(10h) | | |_____________\ Num Lock 键按下(20h) | |_________________\ Cape Lock 键按下(40h) |_____________________\ Insert 键按下(80h)
0019h,字节,为存储由备用键盘键入的字符而保留
001ah~001bh,字,键盘缓冲区首指针
001ch~001dh,字, 键盘缓冲区尾指针
001eh~003dh,16个字,键盘缓冲区,可以存放16个键盘输入的字符扫描码。
003eh,字节,表示磁盘驱动器的搜索状态,0~3位对应于驱动器0~3。如果这些位中有一位为0,则在搜索到磁道之前,必须重新校准相应的驱动器,状态字如图1-7所示.
7 6 5 4 3 2 1 0 +--+--+--+--+--+--+--+--+ | X| X| X| X| | | | | +--+--+--+--+--+--+--+--+ ___________ __________ | | | |____\ 分别表示驱动器0~3,某一位为1,表示相应的驱动器在寻道之前需首先回到0道。 V (不用)
003fh,字节,表示磁盘驱动器的马达状态,如同前一个字节,0~3位对应驱动器0~3,如果某一位被置1,则相应驱动器的马达正在运转,状态字如图1~8所示.
0040h,字节,表明每次软盘操作后直至马达停转时的延时。
7 6 5 4 3 2 1 0 +--+--+--+--+--+--+--+--+ | | X| X| X| | | | | +--+--+--+--+--+--+--+--+ | ___________ | | v | 该位为1,表 |____\ 分别表示驱动器 0~3,某一位为1,表示相应驱动器的马达正在旋转, 示正在执行写操作 可以立即进行读,写和寻道操作,否则,应先启动马达并等待转速达到平稳。
0041h,字节,表明出错原因。
01------ 磁盘控制器命令错
02------ 地址标记未找到
03 ------ 磁盘写保护
04 ------ 扇区未找到
08 ------ DMA错
09 ------ DMA 企图超越64K段界
10 ------ CRC 错
20 ------ NEC控制器错
40 ------ 寻道错
80 ------ 连接器未响应
0042h~0048h,7字节,表示从NEC磁盘控制器返回的状态信息。
0049h,字节,表示当前显示器的工作方式。常见的显示方式有:
00--40X25 黑白字符方式
01--40X25 彩色字符方式
02--80X25 黑白字符方式
03--80X25 彩色字符方式
04--320X200 彩色图像方式
05--320X200 黑白图像方式
06--640X200 黑白图像方式
07--80X25 单色板
004ah--004bh,字,屏幕显示列数存放单元。
004ch--004dh,字,字符方式下,显示缓冲区每一页所占的内存字节数。
0065h,字节,存放CRT方式寄存器的当前值。
0066h,字节,屏幕颜色控制字。
006c--006fh,双字,时钟计数值,PC/XT及长城0520-CH机每隔55毫秒产生一次时间中断,该计数值即加1。
006ch的一个字是计数低位,006eh的一个字是计数的高位。当计数达到24小时后,该两个字的内容恢复为0,并使0070h字单元内容加1。
0070h,字节,时钟计数超过标志。当时钟计数器达到一天结束且复位时,此字节置1,以表示新的一天开始。中断1A功能调用0在读取这一天的时间后,将此字节复位。
0071h,字节,若按下Break键,则该字节的第7位为1。
0072h--0073h,字,当系统热启动时,该字内容为1234h。
0074h,字节,硬盘操作状态字节。
0075h,字节,硬盘驱动个数。
0076h,字节,驱动器控制字节。
0077h,字节,硬盘访问起始地址中的偏移量。
0078h--007bh,4个字节,打印机操作最长等待时间。
007ch--007fh,4个字节,RS-232口操作最长等待时间。
0080h--0081h,字,存放键盘缓冲区起始单元的偏移量。
0082h--0083h,字,存放键盘缓冲区结束单元的偏移量。
0084h--00abh,用于EGA系统的附加显示器参数。
00ach--00efh,为ROM BIOS保留的通信区。
用户程序通信区
0040:00F0h-----0040:00FFh为"用户程序内部通信区"
DOS通信区
0050:0000h-----0050:0004h。
0050:0000h,字节,用于记录屏幕打印操作的状态
00h------屏幕打印不工作或已正确完成。
01h------正在进行屏幕打印
0ffh------在屏幕打印中发生错误
00h------驱动器作为A驱动器使用
01h------驱动器作为B驱动器使用
机器标识
=================
数值 机器类型
-----------------------------
0FFh PC
0FEh PC/XT
0FDh PCjr
0FCh PC/AT
0F9h PC convertible
=================