"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автораадреса портов &H3D4 и &H3D5.
100 '' 'проверка наличия монохромной карты 110 OUT &H3B4,&HF 'адрес регистра курсора 120 X = INP(&H3B5) 'чтение и сохранение значения 130 OUT &H3B5,100 'посылаем в регистр любое значение 140 IF INP(&H3B5)<>100 THEN... 'если карта есть - вернется то же 150 OUT &H3B5,X 'восстанавливаем значение регистра Низкий уровень. Приведенные примеры соответствуют примерам на Бейсике. ;--- Определение активного адаптера: MOV AX,40H ;указываем ES на область данных BIOS MOV ES,AX MOV AL,ES:[87H] ;проверяем наличие EGA CMP AL,0 JE NO_EGA ;если 0040:0087 = 0, то EGA нет TEST AL,00001000B ;EGA есть, проверяем бит 3 JNZ EGA_NOT_ACTIVE ;если бит 3=1, то EGA неактивен . . EGA_NOT_ACTIVE: MOV AL,ES:[10H] ;проверяем байт статуса дисплея CMP AL,48 ;это монохромная карта? JE MONOCHROME ;переход если да Предполагая наличие монохромной карты проверим установлена ли цветная карта (неактивная): ;--- Установлена ли неактивная цветная карта? MOV DX,3D4H ;указываем на регистр адреса 6845 MOV AL,0FH ;запрашиваем регистр курсора OUT DX,AL ;указываем на регистр INC DX ;указываем на регистр данных IN AL,DX ;получаем текущее значение XCNG AH,AL ;сохраняем значение MOV AL,100 ;тестовое значение 100 OUT DX,AL ;посылаем его IN AL,DX ;считываем его снова CMP AL,100 ;сравниваем значения JNE NO_CARD ;переход если нет карты XCNG AH,AL ;иначе есть цветная карта OUT DX,AL ;тогда восстанавливаем значение .h3 1.1.5 Определение числа и типа дисковых накопителей. -------------------------------------------------------- |
|
|