Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Документация по Программированию    >>    ibmpc
   
 
 Программно-Аппаратная Реализация IBM PC  Питер Нортон 24.09.83

Одна из первых удачных книг, рассказывающих о внутреннем устройстве персонального компьютера с точки зрения программиста. В 80-х годах XX века эта публикация (первое издание) стала настольной книгой любого уважающего себя компьютерщика. Книга просто и доступно рассказывает об управлении аппаратными ресурсами IBM PC. Приводятся примеры программирования на языках Ассемблер, Паскаль, Бейсик. Формат - Plain text.



205k 
 

П.НОРТОН ПРОГРАММНО-АППАРАТНАЯ РЕАЛИЗАЦИЯ КОМПЬЮТЕРА IBM PC (Inside the IBM PC. Access to advanced features and programming) Prentice-Hall Publishing Comp.,1983 Перевод с английского С.Писарева,Б.Шура Киев 1987 Предисловие переводчиков. Текст предлагаемой читателю книги сформирован и отредактирован с помощью оконного текстового редактора LEXICON (разработчик ВЦ АН СССР, Е.Веселов) сотрудниками НПО "Горсистемотехника" (г.Киев) тт. Шевцовым С.И., Шут И.Б., Варфоломеевой Л.В. Прилагаемые рисунки выполнены т.Шевцовым С.И. с помощью системы Grafix Partner. Авторы перевода благодарны всем им за оказанную поддержку и внимание. В дальнейшем перевод будет изменяться и пополняться с учетом материалов (отсутствующих в оригинале), отражающих особенности новых версий операционной системы и аппаратуры. Тел. 221-27-94 Перекодировка в коды ASCII (основной вариант), формати- зация и разметка для распечатки книги в среде НЕЙРОН-ТЕКСТ (WordStar) для ПЭВМ "НЕЙРОН И9.66" и "ИСКРА-1030" выполнена П.Н.Руденко (ПО им.С.П.Королева). Тел. 483-99-80, 483-97-79 ОГЛАВЛЕНИЕ ГЛАВА 1. ВВЕДЕНИЕ В СФЕРУ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ . . . . 1.1. Краткий обзор содержания книги . . . . . . . . . . . . 1.2. Вспомогательные обучающие средства . . . . . . . . . . 1.3 Используемые программные средства, языки программирования и тексты программ . . . . . . . . . . . . . . . 1.4. Возможные аспекты рассмотрения проблемы . . . . . . . 1.5. Обзор оригинальных источников, используемых в данной работе . . . . . . . . . . . . . . . . . . . . . . . . . 1.6. Некоторые особенности изложения материала . . . . . . Приложение 1.1. Текст программы визуализации всех символов на экране дисплея (язык Бейсик) . . . . . . . . . . . . ГЛАВА 2. АРХИТЕКТУРА ТЕХНИЧЕСКИХ СРЕДСТВ . . . . . . . . . 2.1. Микропроцессор - центральный узел персонального компьютера . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Краткие сведения об остальных компонентах компьютера . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Функциональные назначения этих компонентов . . . . . . 2.4. Использование разъемов расширения . . . . . . . . . . 2.5. Дополнительные сведения о технических средствах . . . 2.6. Три аспекта рассмотрения архитектурных решений . . . . 2.7. Возможности комплектации IBM/PC . . . . . . . . . . . ГЛАВА 3. ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ IBM/PC . . . . . . . . . 3.1. Организация памяти персонального компьютера . . . . . 3.2. Принципы адресации . . . . . . . . . . . . . . . . . . 3.3. Сверхоперативная память на регистрах . . . . . . . . . 3.5. Прерывания . . . . . . . . . . . . . . . . . . . . . . 3.6. Стеки . . . . . . . . . . . . . . . . . . . . . . . . 3.7. Порты . . . . . . . . . . . . . . . . . . . . . . . . Приложение 3.1. Текст программы поиска активного участка памяти ( Бейсик) . . . . . . . . . . . . . . . . . . . . . . . . Приложение 3.2. Текст программы обработки прерываний (Ассемблер). . . . . . . . . . . . . . . . . . . . . . . . . . . Приложение 3.3. Текст программы поиска активных портов (Паскаль) . . . . . . . . . . . . . . . . . . . . . . . . . . . Приложение 3.4. Текст программы считывания данных из порта (Ассемблер). . . . . . . . . . . . . . . . . . . . . . . . ГЛАВА 4. АРХИТЕКТУРА И ВОЗМОЖНОСТИ ОПЕРАЦИОННОЙ СИСТЕМЫ . . 4.1. Для чего нужны операционные системы . . . . . . . . . 4.2. Шесть основных модулей ДОС . . . . . . . . . . . . . . 4.3. Нижний уровень программной поддержки - система BIOS-ПЗУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. Процедура начальной загрузки - структура процесса . . 4.5. Операции с периферийным устройством - компонента IBMBIO.COM . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6. Ядро операционной системы - компоненты IBMDOS.COM . . 4.7. "Внутренние" компоненты (команды) операционной системы - компонента COMMAND.COM . . . . . . . . . . . . . . . 4.8. "Внешние" команды операционной системы - особенности выполнения и загрузки . . . . . . . . . . . . . . . 4.9. Функции обслуживания пользователем операционной системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . ГЛАВА 5. ОРГАНИЗАЦИЯ ВНЕШНЕЙ ПАМЯТИ . . . . . . . . . . . . 5.1. Устройство гибкого магнитного диска (дискеты) . . . . 5.2. Форматы хранения информации . . . . . . . . . . . . . 5.3. Типы дискет и проблемы защиты от копирования . . . . . 5.4. Стандартный накопитель информации на гибких магнитных дисках . . . . . . . . . . . . . . . . . . . . . . . . 5.5. Принципы хранения файлов . . . . . . . . . . . . . . . 5.6. Организация справочников . . . . . . . . . . . . . . . 5.7. Структура таблицы размещения файлов . . . . . . . . . 5.8. Стратегия размещения файлов . . . . . . . . . . . . . 5.5. Файлы в текстовом формате . . . . . . . . . . . . . . 5.10. Форматы записей данных . . . . . . . . . . . . . . . 5.11. Форматы программных (исполняемых) файлов . . . . . . Приложение 5.1. Текст программы анализа структуры справочника (Паскаль) . . . . . . . . . . . . . . . . . . . . . Приложение 5.2. Текст программы анализа структуры таблицы размещения файлов (Паскаль) . . . . . . . . . . . . . . Приложение 5.3. Текст программы обработки справочника и таблицы размещения файлов (Паскаль) . . . . . . . . . . . . . . ГЛАВА 6. РАБОТА С ПЗУ . . . . . . . . . . . . . . . . . . 6.1. Организация ПЗУ и его использование . . . . . . . . . 6.2. Анализ содержимого ПЗУ средствами программы DEBUG . . 6.3. Анализ содержимого ПЗУ - метод дезассемблирования . . 6.4. Анализ содержимого ПЗУ - реконструкция интепретатора языка Бейсик . . . . . . . . . . . . . . . . . . . 6.5. Существующие версии BIOSa . . . . . . . . . . . . . . 6.6. Механизм выборки информации из ПЗУ . . . . . . . . . . 6.7. Описание специальных прерываний . . . . . . . . . . . Приложение 6.1. Текст программы проверки метки версии ПЗУ (Паскаль) . . . . . . . . . . . . . . . . . . . . . . . . . ГЛАВА 7. ОПЕРАЦИИ С ДИСКАМИ . . . . . . . . . . . . . . . . 7.1. Три уровня дисковых операций . . . . . . . . . . . . . 7.2. Средства поддержки дисковых операций уровня BIOS-ПЗУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3. Параметры дисков и методы защиты от копирования . . . ГЛАВА 8. ВИДЕОДОСТУП - ТЕКСТОВЫЙ РЕЖИМ . . . . . . . . . . 8.1. Типы видеомониторов . . . . . . . . . . . . . . . . . 8.2. Принципы отображения информации . . . . . . . . . . . 8.3. Метод хранения копии изображения в оперативной памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4. Страничный механизм цветного графического дисплея . . 8.5. Атрибуты изображений . . . . . . . . . . . . . . . . . 8.6. Использование цвета . . . . . . . . . . . . . . . . . 8.7. Режим прямого управления видеомонитором . . . . . . . 8.8. Управление перемещением курсора . . . . . . . . . . . 8.9. Стандартный режим управления видеомонитором . . . . . 8.10. Псевдографический режим . . . . . . . . . . . . . . . 8.11. Средства управления видеодоступа уровня BIOS-ПЗУ . . Приложение 8.1. Текст программы демонстрации возможностей управления цветом (Бейсик) . . . . . . . . . . . . Приложение 8.2. Текст программы генерации изображений (Паскаль) . . . . . . . . . . . . . . . . . . . . . . . . . . . ГЛАВА 9. ВИДЕОДОСТУП - ГРАФИЧЕСКИЙ РЕЖИМ . . . . . . . . . 9.1. Основы машинной графики . . . . . . . . . . . . . . . 9.2. Понятие элемента отображения (пиксель) . . . . . . . . 9.3. Отображение пикселей на экране . . . . . . . . . . . . 9.5. Генерация текстов в графическом режиме . . . . . . . . Приложение 9.1. Текст программы генерации графических образов (Паскаль) . . . . . . . . . . . . . . . . . . . . . . . ГЛАВА 10. БЛОК КЛАВИАТУРЫ . . . . . . . . . . . . . . . . . 10.1. Принципы построения . . . . . . . . . . . . . . . . . 10.2. Механизм смены внутренних кодов . . . . . . . . . . . 10.3. Клавиши управления . . . . . . . . . . . . . . . . . 10.4. Программная поддержка операций с клавиатурой уровня BIOS-ПЗУ . . . . . . . . . . . . . . . . . . . . . . . . 10.5. Работа с клавиатурой в рамках языковых процессоров. . Приложение 10.1. Текст программы демонстрации возможностей управления клавиатурой (Бейсик) . . . . . . . . . . ГЛАВА 11. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ . . . . . . . . . . . 11.1. Асинхронный коммуникационный адаптер . . . . . . . . 11.2. Адаптер устройства печати . . . . . . . . . . . . . . 11.3. Интерфейс с накопителем информации на магнитной кассете . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4. Дополнительные процедуры обслуживания уровня BIOS-ПЗУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5. Генерация звука . . . . . . . . . . . . . . . . . . . Приложение 11.1. Текст программы генерации звука с использованием таймера (Ассемблер) . . . . . . . . . . . . . . . Глава 1. ВВЕДЕНИЕ В СФЕРУ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ Книга, предлагаемая читателю, рассказывает о чудесах - о тех чудесах, которые позволяет творить Персональный Компьютер фирмы "IBM" (IBM/PC). Появление персонального компьютера фирмы "IBM" знаменовало собой фактическое введение нового и очень высоко- го стандарта качества и производительности персональных компьютеров. Те, кто уже знал и понимал возможности персональных компьютеров, увидели в IBM/PC новое средство, превосходящее все то что существовало до сих пор. Те же, кто считал персональные компьютеры не более чем игрушками, начали осозновать действительную ценность этих компьютеров в качестве полезнейшего рабочего инструмента инженера или ученого. Эта книга отличается от большинства книг,знакомящих чителей с компьютерами. Она рассчитана на тех читатей, которые не желают останавливаться на сведениях для начинающих, а хотят узнать действительные возможности персонального компьютера фирмы "IBM". Компьютер IBM/PC позволяет реализовать множество интереснейших возможностей, о которых будет рассказано в данной книге. Эта книга адресована всем, кого действительно интересует как работает IBM/PC и что можно делать с ее помощью, независимо от того, является ли читатель опытным профессионалом или начинающим пользователем компьютеров. Книга позволяет не только понять как функционирует IBM/PC, но и обьясняет как можно его использовать на практике. Она предлагает дополнительный и более глубокий материал об IBM/PC для всех, кто в нем нуждается. Мы поможем Вам понять не только принципы функционирования машины, Но и ее потенциальные возможности. Книга содержит множество советов и практических рекомендаций, касающихся программирования для IBM/PC. Но не следует считать эту книгу руководством по программированию для IBM/PC, в основном она посвящена возможностям самого компьютера. 1.1. Краткий обзор содержания книги Эта книга в основном посвящена программам (или программному обеспечению), поскольку именно они реализуют большинство возможностей компьютера. Но помимо этого необходимо рассмотреть и аппаратные средства компьютера - этому посвящена глава 2. В главе 3 рассматривается функционирование ценитального узла компьютера - собственно микропроцессора. Операционная система РС-DOS кратко описывается в главе 4. В этой главе приведены пояснения принципов работы ДОС и в качестве дополнительного материала описаны программные средства, обеспечивающие доступ к различным возможностям ДОС. Далее, в главе 5, рассматривается организация внешней памяти и способы хранения данных на гибких магнитных дисках. Примеры программ показывают способы расшифровки служебной информации об организации хранения данных на дискете, которая обычно скрыта от пользователя. Глава 6 посвящена программному обеспечению, которое хранится в ПЗУ (постоянном запоминающем устройстве) IBM/PC. В этой главе показано как можно пользоваться этими программами. Этот материал подготавливает почву для изучения глав с 7 по 11, в которых, шаг за шагом, описываются служебные программы, хранящиеся в ПЗУ. Каждая из этих глав сопровождается примером программ, позволяющих использовать те или иные возможности компьютера. Глава 7 описывает доступ к процедурам работы с дискетами. Главы 8 и 9 описывают работу с дисплеем, соответственно в алфавитно-цифровом и графическом режимах. Глава 10 посвящена использованию клавиатуры, а глава 11 подводит итоги рассмотрения всего предыдущего материала. Приложения этой книги включают краткий глоссарий компьютерной терминологии, введение в Паскаль и описание интерфейса между программами, написанными на ассемблере, и программами на Паскале или другом языке высокого уровня. 1.2. Вспомогательные обучающие средства Если Вы просто хотите узнать побольше об IBM/PC, то Вам не потребуется ничего, кроме этой книги. Однако, чтобы применить полученные знания на практике этого будет недостаточно, потребуется, как минимум, сам компьютер. Чтобы воспользоваться программами, приведенными в этой книге, потребуется IBM/PC с 64К байтами памяти и одним дисководом. Все программы могут работать как с монохромным дисплеем, так и с цветным графическим адаптером. Потребуется также операционная система ДОС и поставляемые вместе с нею средства, такие как программа DEBUG. Можно воспользоваться любой версией ДОС: исходной версией 1.00, неофициальной и временной версией 1.05, усовершенствованной версией 1.10 или ДОС 2.00. Чтобы как можно полнее использовать все возможности, предоставляемые IBM/PC, Вам потребуется дополнительный пакет программ на гибких магнитных дисках, прилагаемый к этой книге. Средства доступа ко всем возможностям IBM/PC были разработаны специально для этой книги. Содержимое пакета описывается в приложении 5. Вам не нужно будет использовать Макроассемблер фирмы "IBM" для использования представленных в книге процедур доступа, написанных на ассемблере. Все эти программы включены в пакет программ в виде готовых к использованию обьектных модулей. Однако, если Вам захочется внести изменения в ассемблерную программу, чтобы адаптировать ее к своим нуждам, то потребуется и ассемблер, и необходимо будет освоить язык ассемблера. Один из разделов этой книги представляет собой простое введение в использование ассемблера. Чтобы использовать приведенные в книге программы на языке Паскаль либо сами по себе, либо в составе Ваших собственных программ, Вам потребуется компилятор языка Паскаль для IBM/PC. И, наконец, Вам может потребоваться копия "Сервисных программ Нортона" (The Norton Utilities). Она включает программу восстановления поврежденных дискет (FileFix), уничтоженных файлов (UnErase), модификации секторов на дискете (SecMod) и управления скрытыми файлами (FileHide и BatHide); реорганизация и сортировка файлов (DiskOpt и FileSort) и управления экранным режимом (Reverse, ScrAtr и Clear), а также несколько других полезных служебных программ. 1.3. Используемые программные средства, языки программирования и тексты программ В этой книге будет приведено множество программ и мы сразу же приступим к рассмотрению первой из них, текст которой приведен в приложении 1-1. Эта программа написана на языке БЭЙСИК и выдает на экран все 256 кодов символов, отображаемых дисплеем IBM/PC. Многие пользователи, как это ни удивительно, никогда не видели всего набора символов, так что это представляет для них интерес. Просмотр сразу всех возможных символов может оказаться полезным для выбора из их числа таких символов, которые будут использоваться для организации специальных эффектов. Программа отображает символы в виде таблицы по 16 символов в каждом ряду. Если необходимо установить порядковый номер любого символа, то можно использовать функцию CHR$ языка БЕЙСИК. Так первая строка содержит символы от CHR$(0) до CHR$(15), а вторая CHR$(16)-CHR$(81). Шестнадцатиричные коды символов определяются по меткам строк и столбцов. В примерах программ, приведенных в этой книге, используются три языка программирования: БЕЙСИК, Паскаль и язык ассемблера. Интерпретатор языка БЕЙСИК имеется в любом варианте IBM/PC, поэтому БЕЙСИК используется во всех случаях, когда им целесообразно воспользоваться. Однако БЕЙСИК не слишком хорошо приспособлен для решения серьезных задач, поэтому, в основном используется язык Паскаль. Паскаль приобрел большую популярность в мире персональных компьютеров благодаря своим возможностям, компактности и надежности. У Паскаля имеются и очень сильные конкуренты - в первую очередь языки Си и Форс. Однако, для нас Паскаль имеет два важных преимущества. Во-первых, он проще и его легче изучить, чем языки Си и Форс и во-вторых, что наиболее важно, фирма "IBM" поставляет Паскаль для своих персональных компьютеров с самого начала. И коль скоро нам необходим какой-то общий язык общения, большая часть программ в этой книге написана на Паскале. Если вы не знакомы с языком Паскаль, не отчаивайтесь, наиболее простой способ немного изучить этот язык заключается в чтении примеров, приведенных в книге. Они были специально написаны как можно доступнее и подобраны таким образом, чтобы постепенно обучать читателя. Кроме того, приложение 2 содержит краткое руководство по языку Паскаль, демонстрирующее его возможности и стиль программирования, поясняющее наиболее важные компоненты языка. Я настоятельно рекомендую язык Паскаль всем, кто еще не выбрал, на каком языке программировать на IBM/PC. Если Вы собираетесь использовать другой язык, то примеры программ на Паскале, приведенные в этой книге, все равно будут полезны. Они показывают приемы работы на IBM/PC, которые можно перенести и в другие языки программирования. Многие из наиболее мощных и интересных возможностей IBM/PC можно задействовать только с помощью программ, написанных на языке ассемблера. В этой книге мы рассмотрим все эти возможности и способы их использования. Чтобы обеспечить Вам наиболее благоприятные возможности для их использования в книге приведен полный набор программ, написанных на языке ассемблера, которые представят Вам доступ ко всем возможностям IBM/PC и операционной системы ДОС. В приложении 3 описываются способы подключения модулей, написанных на языке ассемблера. Потребности описания относятся к языку Паскаль, но они практически в том же виде могут быть применены к любому языку программирования, который использует стандартные механизмы вызова программ. Специально для этой книги было написано небольшое число программ. Одни - с чисто иллюстративным назначением - чтобы продемонстрировать некоторые приемы работы. Другие программы предназначены для помощи в получении информации о Вашем компьютере. Третью группу составляют программные средства, обеспечивающие Вам доступ ко множеству важных возможностей, предоставляемых IBM/PC. По возможности листинги этих программ были включены в эту книгу , и в первую очередь, это относится к тем программам, изучить которые читателю наиболее полезно. Однако, некоторые из вспомогательных программ лучше не изучать, а непосредственно использовать, книга содержит тексты только тех программ, которые полезно изучить, а все остальные программы включены в специальный пакет, записанный на дискете, прилагающейся к данной книге. Этот пакет содержит все программы, листинги которых приведены в книге, и многие другие полезные программы. Содержимое пакета описывается в приложении 5. Программы, написанные на языке ассемблера, записаны на дискете как в виде исходного текста, так и в виде готовых к использованию обьектных модулей. Если Вы захотите внести в эти программы какие-либо изменения, то Вам пригодится исходный текст. Для использования готовых программ Вам не нужно изучать язык ассемблера и использовать ассемблер. Программы на Паскале также представлены и в виде исходного текста, и в виде готовых, скомпилированных модулей, которые готовы к использованию. В пакет программ включена одна вспомогательная программа, DiskLook. Эта программа позволяет просматривать всю иформацию, хранящуюся на гибких магнитных дисках. Она может вывести перечень файлов, упорядоченный по именам, датам или размерам или имена всех файлов, которые были удалены. Программа DiskLook позволяет просмотреть распределение дискового пространства, показывает расположение любого файла и и позволяет считывать данные с любого места на дискете. 1.4. Три пересекающиеся области Хотя не все это замечают, но появление IBM/PC привело к возникновению трех пересекающихся областей интересов. Чтобы это стало очевидным, должо пройти определенное время, но читатель должен знать о них и об их связи с данной книгой. Появление персонального компьютера фирмы "IBM" было, как ни странно это звучит, появлением первого IBM/PC-подобного компьютера; первого, но не единственного. Кроме того, появилась операционная система фирмы "Майкрософт", MS-DOS; версия этой операционной системы для IBM/PC получила название PC-DOS, хотя можно встретить и названия IBM-DOS и просто ДОС. Отсюда и возникают три области интересов. Во-первых, это интерес к самому компьютеру IBM/PC. Далее, это интерес к компьютерам в большей или меньшей степени имитирующим IBM/PC и, наконец, это интерес к семейству компьютеров, использующих операционную систему MS-DOS. Между этими областями много общего, так что любая книга, посвященная одной из областей, содержит обширный материал и по остальным. Эта книга посвящена первопричине появления всех этих областей интереса - персональному компьютеру фирмы "IBM", но большая часть того о чем пойдет речь, может пригодиться и тем, кто интересуется IBM/PC-подобными компьютерами и тем, кто интересуется семейством компьютеров, работающих под управлением операционной системы MS-DOS. Время от времени, при изложении материала этой книги, когда можно провести такое разделение, я буду указывать, что относится, а что не относится к остальным двум областям.