📄 键盘.htm
字号:
style="FONT-FAMILY: Tahoma">”安装定制的键盘处理程序——“</SPAN><FONT face=Tahoma><SPAN
lang=EN-US>keyboard_handler </SPAN></FONT><SPAN
style="FONT-FAMILY: Tahoma">”到</SPAN><FONT face=Tahoma><SPAN
lang=EN-US>IRQ1</SPAN></FONT><SPAN style="FONT-FAMILY: Tahoma">。确保在“</SPAN><FONT
face=Tahoma><SPAN lang=EN-US>main</SPAN></FONT><SPAN
style="FONT-FAMILY: Tahoma">”中对“</SPAN><FONT face=Tahoma><SPAN
lang=EN-US>keyboard_install </SPAN></FONT><SPAN
style="FONT-FAMILY: Tahoma">”进行调用。</SPAN></P>
<P><SPAN
style="FONT-FAMILY: Tahoma">为了设置键盘灯,你需要给键盘控制器发送一个指令。给键盘发送命令有特殊的程序。首先你必须等待键盘控制器,直到它的状态为空闲。为了做到这一点,你需要循环地从控制寄存器中读(这时,它被称为状态寄存器),直到键盘空闲:</SPAN></P>
<TABLE id=table4 style="BORDER-COLLAPSE: collapse" width="100%" border=1>
<TBODY>
<TR>
<TD><FONT face=Tahoma size=2><SPAN lang=EN-US><FONT color=#800000>if
((inportb(0x64) & 2) == 0) break;</FONT>
</SPAN></FONT></TD></TR></TBODY></TABLE>
<P><SPAN
style="FONT-FAMILY: Tahoma">循环之后,你可以把控制字节写入数据寄存器。除了特殊情况,你不应该直接写入控制寄存器。要设置键盘灯,你先要按上面说的办法发送控制字节</SPAN><FONT
face=Tahoma><SPAN lang=EN-US>0xED </SPAN></FONT><SPAN
style="FONT-FAMILY: Tahoma">,然后发送字节说明哪个灯要开或关。这个字节有下面的格式:</SPAN><FONT
face=Tahoma><SPAN lang=EN-US>Bit0</SPAN></FONT><SPAN
style="FONT-FAMILY: Tahoma">是</SPAN><FONT face=Tahoma><SPAN lang=EN-US>Scroll
lock</SPAN></FONT><SPAN style="FONT-FAMILY: Tahoma">,</SPAN><FONT
face=Tahoma><SPAN lang=EN-US>Bit1</SPAN></FONT><SPAN
style="FONT-FAMILY: Tahoma">是</SPAN><FONT face=Tahoma><SPAN lang=EN-US>Num
lock</SPAN></FONT><SPAN style="FONT-FAMILY: Tahoma">,而</SPAN><FONT
face=Tahoma><SPAN lang=EN-US>Bit2</SPAN></FONT><SPAN
style="FONT-FAMILY: Tahoma">是</SPAN><FONT face=Tahoma><SPAN lang=EN-US>Caps
lock</SPAN></FONT><SPAN style="FONT-FAMILY: Tahoma">。</SPAN></P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma">既然有了基本的键盘支持,你可能还希望扩展上面的代码。关于键盘的这一节更多的是像你展示如何进行基本操作,而不是非常详细地总览所有的键盘控制函数。注意到你要用键盘控制器去使能和处理</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma">PS/2</SPAN><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma">鼠标端口。键盘控制器的辅助通道管理着</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma">PS/2</SPAN><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma">鼠标。到这个时候,我们有了一个可以在屏幕绘图、处理异常、</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma">IRQ</SPAN><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: Tahoma">、计时器和键盘的内核了。点击查看还剩下什么是你的内核需要开发的。<BR></SPAN><FONT
face=Tahoma> </FONT>
<TABLE cols=150 width="100%">
<TBODY>
<TR>
<TD align=left width=150><FONT face=Tahoma><A
href="http://rammaker.cosoft.org.cn/store/bkerndev_zh_CN_beta/Docs/pit.htm"><<
可编程间隔定时器</A> </FONT></TD>
<TD align=middle width=*><FONT face=Tahoma><A
href="mailto:friesenb@gmail.com">联系 Brandon F.</A> </FONT></TD>
<TD align=right width=150><A
href="http://rammaker.cosoft.org.cn/store/bkerndev_zh_CN_beta/Docs/whatsleft.htm"><FONT
face=Tahoma>后面该做什么?>></FONT></A>
</FONT></TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -