Если вы хотите более глубоко понять, как работает клавиатура персонального компьютера, изучите распечатки программ ROM BIOS, приводимые в технических справочных руководствах по PC, PC/XT или PC/AT. Если вы поступите таким образом, то будьте внимательны, чтобы не сделать элементарной ошибки, которую обычно совершают, когда впервые приступают к изучению ROM BIOS, в особенности к изучению прерываний, используемых этой программой! ROM BIOS предоставляет для клавиатуры два различных номера прерываний: один, предназначенный для реагирования на аппаратные прерывания клавиатуры (прерывание 09Н) и сбора данных, поступающих от нее, в буфере памяти с младшими адресами и другой, предназначенный для реагирования на аппаратное прерывание, запрашивающее службы для клавиатуры (прерывание 16Н, или в десятичной нотации 22) и передающее данные из буфера памяти с младшими адресами системе DOS и вашим программам. Действие этих двух прерываний легко перепутать, и точно так же легко спутать сами эти прерывания с прерываниями по обработке Break-ситуации: 1ВН и 23Н (в десятичной нотации 27 и 35). В табл.6.5 перечислены прерывания, связанные с клавиатурой.
Общим лейтмотивом книги является неоднократно даваемый совет действовать не произвольно, стремясь достичь быстрого результата, а по правилам. Это опять-таки означает, что лучше писать программы, которые станут общими для всего семейства компьютеров IBM PC, чем привязываться к оригинальным возможностям какой-либо одной модели семейства, и что следует писать программы, которые используют портативные средства (такие как службы DOS или ROM BIOS) при манипулировании данными, вместо того чтобы впрямую программировать аппаратные средства. Данные правила относятся к программированию клавиатуры в той же мере, в какой они применимы к любому другому виду программирования.
|