2011-04-22 57 views
2

我已经完全在Assembly中开发了一个自己的操作系统,现在我想实现一个鼠标驱动程序,因为我发现Windows中的INT 33h与EMU8086一起工作,但是当我从软盘启动时,工作。我试过USB和PS/2鼠标,结果相同。任何人都可以解释我必须做什么才能使操作系统识别鼠标吗?如何让鼠标在我自己的操作系统中工作? INT 33h无法在Windows以外工作

+0

过去10年我没有做过x86硬件编程,但现在是由BIOS提供的INT 33h吗?我认为这只是应用程序和鼠标驱动程序之间的协议,如果您正在编写自己的操作系统,那么它并不适合开箱即用。 – wigy 2011-04-22 10:00:15

+1

你是对的,INT 33h是DOS中断而不是BIOS中断。然而,我发现一些关于INT 15h – Claudio 2011-04-22 10:39:15

+0

不知道,但+1为您的工作 – BlackBear 2011-04-22 11:53:31

回答

2

我不会假设旧的BIOS“定位设备”功能(例如“int 0x15,ax = 0xC200”)也可以。

如果你正在编写一个操作系统,你需要为操作系统编写设备驱动程序。这意味着要为USB键盘/鼠标编写完整的USB堆栈和驱动程序;并为PS/2键盘和鼠标编写驱动程序。见http://wiki.osdev.org/Mouse_Input

+0

现在我想起它,我似乎回想起诠释15小时指示设备例程一路回到原来的PC或PCjr,并在那里的游戏杆。虽然有可能他们在新机器上支持鼠标,但它们更可能不支持。 – 2011-04-22 16:58:01

相关问题