| Справочник программиста на персональном компьютере фирмы IBM | 24 |
1 1 = имеется мат. сопроцессор
0 0 = нет НГМД, 1 = имеется НГМД
Высокий уровень.
В Бейсике нужно просто прочитать байты статуса из области
данных BIOS. В приложении Б объяснено выполнение битовых операций
в Бейсике. В приведенном примере проверка наличия дисковых нако-
пителей достигается проверкой четности младшего байта статусного
регистра (четный - нет накопителей).
100 DEF SEG = 0 'указывыаем на дно памяти
110 X = PEEK(&H410) 'получаем младший байт регистра
120 IF X MOD 2 = 0 THEN 140 'он четный - нет накопителей
130 PRINT "Имеется диск" 'иначе имеется накопитель
140 GOTO 160 'идем ко второму сообщению
150 PRINT "Нет накопителей" 'второе сообщение
160 ... 'продолжаем...
Проверка наличия COM1:
100 DEF SEG = 40H 'указываем на область данных BIOS
110 PORT = PEEK(0) + 256*PEEK(1) 'получаем слово со смещением 0
120 IF PORT = 0 THEN... '... то нет адаптера COM1
Средний уровень.
Прерывание 11H BIOS возвращает байт статуса оборудования в AX.
На входе ничего подавать не надо. В примере определяется число
дисковых накопителей.
; -получение числа дисковых накопителей:
INT 11H ;получаем байт статуса
TEST AL,0 ;имеются накопители?
JZ NO_DRIVES ;переход, если нет
Предыдущая страница 24 Следующая страница
1416937386
|