" Список прерываний Ральфа Брауна " может быть полезен для вас.
На этом сайте перечислены большинство прерываний, обычно используемых в системах x86:
В списке перечислены не только прерывания BIOS, но также прерывания MS-DOS и прерывания, используемые обычными программами.Это включает в себя раздел, в котором перечислены системные вызовы Linux (прерывание 0x80).
... т.е., пожалуйста, не включайте ...
К сожалению, вам придется отделить«общие» прерывания BIOS, прерывания, присутствующие только в определенных BIOS, и прерывания MS-DOS самостоятельно.
Однако для многих прерываний в списке говорится что-то вроде: «Только в BIOS, сделанных Example Software Inc.»
... мое недавнее редактирование ...
Если я вас правильно понимаю, вы хотите иметь какой-то API, который сообщает вам, какие прерывания присутствуют в определенномsystem.
К сожалению, такого API не существует:
BIOS не обязательно является одним программным обеспечением.Вместо этого некоторые аппаратные компоненты (например, графическая карта) могут иметь собственное встроенное ПО.
Встроенное ПО такого компонента обычно не имеет собственных прерываний, но оно может добавить функциональность к прерываниям BIOS, изменяявектор прерывания.
Прошивка видеокарты может добавить функцию AX=5678h
в int 10h
, изменив вектор прерывания так, чтобы он указывал на следующий фрагмент кода:
new_int_10_vector:
cmp ax, 5678h
je new_function
; (In reality, the next line is not as simple as shown here)
jmp original_int_10_vector
new_function:
; Perform the "new" function "AX=5678h" of "int 10h"
; ...
iret
Если современный BIOSпоставщики хотели бы ввести функцию, в которой перечислены все поддерживаемые функции (функция, которую вы ищете), у них возникнет проблема:
Как BIOS обнаружит, что в прошивке видеокарты добавлена дополнительная функция AX=5678h
до int 10h
?