Логотип.
 Разделы сайта Cтатьи.
Сайт в разработке!

Статистика сайта.

Посещений за день: 47
Посещений за месяц: 725
Посещений за год: 14751


Баннеры.

DMconnect
Maksy's PWS


Статистика в картинках.

likes counter


  • Главная.
  • Новости.
  • Программы.
  • Файлы.
  • Контакты.
  • Чат "Пиво".
  • Статьи.
  • Ссылки.
  • Гостевая.
  • Системные ресурсы IBM PC.

     Одной из первых задач после загрузки задачи является проверка куда мы попали: на каком типе IBM PC запущена задача?... под какой версией MS DOS?... сколько имеется памяти?... все ли необходимое оборудование присутствует? Имеется три способа получения этой информации. Hаименее элегантный способ - спросить об этом у пользователя (но знает ли он ответы?). Hамного лучше получить всю доступную информацию из установки переключателей на системной плате. Hо эта установка не всегда соответствует реальности. Поэтому лучше всего использовать третью возможность - получить прямой доступ к требуемому оборудованию или прочитать нужную информацию из области данных BIOS. Поскольку установка переключателей может служить отправной точкой для получения требуемой информации, то этот раздел начинается с обсуждения микросхемы, содержащей эту информацию - микросхемы интерфейса с периферией 8255.

     Программа может получить доступ к оборудованию только двумя способами. Она может обратиться к любому из портов ввода/вывода, соответствующему присоединенному оборудованию (обычно бывает занята лишь малая доля из 65535 возможных адресов портов). Или программа может обратиться к любому из более чем миллиону адресов оперативной памяти.

     Микросхема интерфейса с периферией Intel 8255 - лучшее место, с которого надо начинать, чтобы получить информацию об имеющемся оборудовании. Эта микросхема предназначена для многих целей. Она сообщает об установке переключателей на системной плате. Она принимает для компьютера ввод с клавиатуры. Она управляет рядом периферийных устройств, включая микросхему таймера 8253. Из машин семейства IBM PC только AT не использует микросхему 8255; он хранит информацию об оборудовании вместе с часами реального времени в специальной микросхеме с независимым питанием. Однако AT использует те же адреса портов, что и 8255, для работы с клавиатурой и управления микросхемой таймера.

     Микросхема 8255 имеет три однобайтных регистра, называемых от порта A до порта C. Адреса этих портов от 60H до 62H сответственно. Все три порта можно читать, но писать можно только в порт B. Для PC, установка бита 7 порта B в 1 изменяет информацию, содержащуюся в порте A. Аналогично для PC установка бита 2 определяет содержимое четырех младших битов порта C, а установка бита 3 делает то же самое для XT. Содержимое этих регистров следующее:

       Порт A (60H)
          когда в порте B бит 7=0
             биты 0-7 PC,XT,PCjr,AT: 8-битные скан-коды с клавиатуры
          когда в порте B бит 7=1 для PC
             бит 0    PC: 0 = нет накопителей на дискетах
                 1    PC: не используется
               2-3    PC: число банков памяти на системной плате
               4-5    PC: тип дисплея (11 = монохромный,
                          10 = цветной 80*25, 01 = цветной 40*25)
               6-7    PC: число накопителей на дискетах
    
       Порт B (61H)
             бит 0    PC,XT,PCjr: управляет каналом 2 таймера 8253
                 1    PC,XT,PCjr: вывод на динамик
                 2    PC: выбор содержимого порта C
                      PCjr: 1 = символьный режим, 0 = графический
                 3    PC,PCjr: 1 = кассетный мотор выключен
                      XT: выбор содержимого порта C
                 4    PC,XT: 0 = разрешение ОЗУ
                      PCjr: 1 = запрет динамика и мотора кассеты
                 5    PC,XT: 0 = разрешение ошибок щелей расширения
                 6    PC,XT: 1 = разрешение часов клавиатуры
               5-6    PCjr: выбор динамика (00 = 8253, 01 = кассета,
                      10 = ввод/вывод, 11 = микросхема 76496)
                 7    PC: выбор содержимого порта A
                      PC,XT: подтверждение клавиатуры
       Порт C (62H)
          когда в порте B бит 2=1 для PC или бит 3=1 для XT
          биты 0-3    PC: нижняя половина переключателя 2 конфи-
                      гурации (ОЗУ на плате расширения)
                 0    PCjr: 1 = введенный символ потерян
                 1    XT: 1 = есть мат. сопроцессор
                      PCjr: есть карта модема
                 2    PCjr: есть карта HГМД
               2-3    XT: число банков памяти на системной плате
                 3    PCjr: 0 = 128K памяти
                 4    PC,PCjr: ввод с кассеты
                      XT: не используется
                 5    PC,XT,PCjr: выход канала 2 8253
                 6    PC,XT: 1 = проверка ошибок щелей расширения
                      PCjr: 1 = данные с клавиатуры
                 7    PC,XT: 1 = контроль ошибок четности
                      PCjr: 0 = кабель клавиатуры подсоединен
          когда в порте B бит 2=0 для PC или бит 3=0 для XT
          биты 0-3    PC: верхняя половина переключателя 2 конфи-
                      гурации (не используется)
               0-1    XT: тип дисплея (11 = монохромный,
                      10 = цветной 80*25, 01 = цветной 40*25)
               2-3    XT: число накопителей HГМД (00 = 1 и т.д.)
               4-7    PC,XT: то же, что и с установленными битами
    


     Отметим, что 0 в одном из битов регистра соответствует установке переключателя "off".

     AT хранит информацию о конфигурации в микросхеме MC146818 фирмы Motorola, вместе с часами реального времени. Он вовсе не имеет микросхемы 8255, хотя для управления микросхемой таймера и приема данных с клавиатуры используются те же самые адреса портов. Микросхема имеет 64 регистра, пронумерованных от 00 до 3FH. Для чтения регистра нужно сначала послать его номер в порт с адресом 70H, а затем прочитать его через порт 71H. Приведем здесь только краткую сводку параметров:

       Hомер регистра               Использование
           10H             тип накопителя HГМД
           12H             тип накопителя фиксированного диска
           14H             периферия
           15H             память на системной плате (младший байт)
           16H             память на системной плате (старший байт)
           17H             общая память (младший байт)
           18H             общая память (старший байт)
           30H             память сверх 1 мегабайта (младший байт)
           31H             память сверх 1 мегабайта (старший байт)
    

    >>

    BitByByte, 2000г. (2025).