Продвижение сайта стоимость самая доступная.
Лучшие книги интернета
Материалы предоставлены только для просмотра. Любое использование материалов в коммерческих целях запрещено

13Робер Журден



    100 A = INP(&H61) 'получаем значение из порта B
    110 A = A OR 128 'устанавливаем бит 7
    120 OUT &H61,A 'посылаем байт назад в порт B
    130 B = INP(&H60) 'получаем значение из порта A
    140 A = A AND 128 'сбрасываем бит 7
    150 OUT &H61,A 'восстанавливаем значение порта B
    160 GOSUB 1000 'преобразуем в двоичную строку
    170 NUMDISK$ = RIGHT$(B$,1) 'получаем нулевой бит
    180 IF D$ = 1 THEN NUMDISK = 0: GOTO 230 'нет дисков
    190 C$ = LEFT$(B$,2) 'берем два старших бита строки
    200 TALLEY = 0 'переменная для числа дисков
    210 IF RIGHT$(C$,1) = "1" THEN TALLEY = 2 'берем старший бит
    220 IF LEFT$(C$,1) = "1" THEN TALLEY = TALLEY + 1 'и младший
    230 TALLEY = TALLEY + 1 'счет начинается с 1, а не с 0
    'теперь имеем число накопителей
    1000 '''Подпрограмма преобразования байта в двоичную строку
    1010 B$ = "" 'заводим строку
    1020 FOR N = 7 TO 0 STEP -1 'проверка очередной степени 2
    1030 Z = B - 2^N '
    1040 IF Z >= 0 THEN B = Z: B$ = B$+"1" ELSE B$ = B$+"0"
    1050 NEXT 'повторяем для каждого бита
    1060 RETURN 'все закончено
    Низкий уровень.
    Ассемблерная программа получает число имеющихся дисковых нако-
    пителей тем же способом, что и в вышеприведенном примере, но
    более просто. Напоминаем, что нельзя забывать о восстановлении
    первоначального значения в порте B.

Предыдущая страница    13    Следующая страница




1180691813