EMU8086 не поддерживает сквозной доступ к реальному оборудованию для гостевого кода, выполняемого на эмулируемом ПК 8086.
Из того, что я прочитал, он даже не полностью эмулирует аппаратное обеспечение ПК.для этой виртуальной гостевой машины (например, прерывания по таймеру или клавиатуры), в основном это просто int 21h
DOS и int 10h
и некоторые другие интерфейсы вызова BIOS.
Это игрушечный эмулятор для обучения, а не для написания реальных программ.Есть некоторые вещи, которые вы просто не можете с этим сделать.
Если вы хотите поговорить, чтобы аппаратное обеспечение на вашем рабочем столе делало что-нибудь, лучше всего написать программу, которая работает под вашим собственнымОС (Linux, Windows, OS X и т. Д.) И выполняет системные вызовы для доступа к ней через драйверы ядра.
Или напишите собственную ОС / загрузчик и загрузите ее, чтобы она могла напрямую обращаться к реальному оборудованию.
Или используйте BOCHS, которая полностью эмулирует PC-совместимую систему с некоторыми аппаратными устройствами, такими как карта Soundblaster.(С точки зрения хост-ОС, под которой вы запускаете BOCHS, это просто еще одна программа, которая использует обычные системные вызовы для воспроизведения / записи звука. Из внутри гостевой системы, которую эмулирует BOCHS, ваш код имеет прямойаппаратный доступ к звуковой карте.)
DOSBox - еще один полезный эмулятор, но он предназначен для игр, а не для полной точной эмуляции всего на ПК.Он не поддерживает все , например, недавний ответ SO говорит, что не поддерживает некоторые функции BIOS int 1Ah
RTC .