我必须为我可以运行计算器的操作系统编写代码。它就像一个桌面计算器。为此,我正在阅读brokenthorn operating development series我已完成second stage of bootloader引导加载程序处于实模式。在此之后,作者正在解释保护模式。我不想使用保护模式。我没有时间。所以我想通过使用bios中断在实模式下编写计算器。可能吗?我认为它可以写在引导程序的第二阶段(我不确定。)意味着我不必使用内核(我不确定)。我不知道如何使用BIOS中断来处理键盘。任何人都可以给我一个链接来帮助我吗?如果我认为上面的任何错误是错误的,请纠正我。谢谢。
答案 0 :(得分:9)
如果您想使用高级BIOS键盘服务,而不是自己处理键盘中断,那么INT 16h
就是您想要的。
INT 16h
或AH=00h
的 10h
将阻止等待按键(在AL
中返回ASCII结果);如果您想要避免阻止,请先使用AH=01h
或11h
来查询按键是否可用(如果密钥可用,则立即返回ZF
清除,否则设置为“{1}}。参见例如here或here(或Google“INT 16h”了解更多信息)。
答案 1 :(得分:4)
您可以处理IRQ 1(由x86控制器映射到中断9)并从端口60h
读取密钥。
请参阅http://inglorion.net/documents/tutorials/x86ostut/keyboard/。