Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Роберт Журден Весь текст 1069.56 Kb

Справочник программиста на IBM PC

Предыдущая страница Следующая страница
1  2 3 4 5 6 7 8 9 10 11 12 13 14 ... 92
        Программирование микросхемы UART 8250.                       255
        Инициализация последовательного порта.                       256
        Установка текущего коммуникационного порта.                  259
        Определение статуса коммуникационного порта.                 260
        Инициализация и управление модемом.                          261
        Передача данных.                                             264
        Получение данных.                                            266
        Посылка/получение  данных с  помощью  коммуникационного      269
        прерывания.
        Сводка управляющих кодов, используемых при коммуникации.     271
      Раздел 2. Создание драйвера устройства.                        272
        Создание заголовка драйвера.                                 273
        Создание стратегии устройства.                               274
        Создание обработчика прерывания устройства.                  275
        Доступ к драйверу устройства.                                278
        Обнаружение и анализ ошибок устройства.                      279
      Раздел 3. Использование специальных устройств ввода/вывода.    282
        Чтение/запись с кассетного магнитофона.                      283
        Чтение позиции светового пера.                               284
        Получение аналогового ввода через игровой порт.              286
        Получение цифрового ввода из игрового порта.                 288

   Приложения.                                                       291
      Приложение А.  Двоичные и шестнадцатиричные числа и  адре-     291
      сация памяти.
      Приложение Б. Битовые операции в Бейсике.                      294
      Приложение В. Основные сведения об языке ассемблера.           296
      Приложение Г.  Включение ассемблерных процедур в программы     300
      на Бейсике.
      Приложение Д. Использование драйвера устройства ANSI.SYS.      302
      Приложение Е. Hабор инструкций микропроцессора 8088.           302
      Приложение Ж. Hабор инструкций микропроцессора 80286.          305
      Приложение З. Толковый словарь IBM PC.                         308

           Соглашения о числах, принятые в этой книге.

   Программисты  на ассемблере не найдут ничего необычного в спо-
собе представления чисел и адресов, используемом в этой книге. Hо
многие  программисты  на языках высокого уровня  мало  знакомы  с
системой адресации и недесятичными числами и они могут быть слег-
ка сконфужены на первых порах.  Если Вы относитесь к этой катего-
рии - не отчаивайтесь!  Данная книга  может  служить сравнительно
безболезненным  способом знакомства с этой кабаллистикой,  а Ваше
образование как программиста будет существенно ограничено без зна-
комства  с этими вещами.  Чтобы помочь Вам в этом вопросе в книгу
включены два приложения.  В  приложении  А обсуждаются двоичные и
шестнадцатиричные  числа, а также как последние используются  при
адресации памяти.  Приложение Б более подробно разбирает двоичные
числа  и их использование в битовых операциях.  Даже если  Вы  не
нуждаетесь в помощи в этом отношении обратите внимание на следую-
щие правила:

   1.  Для удобства менее классных программистов, все числа  счи-
   таются десятичными, до тех пор  пока за ними не следует H (для
   шестнадцатиричных) или B (для двоичных).  Иногда B  опускается
   после двоичных чисел, когда  очевидно,  что их значения описы-
   вают цепочку битов.
   2.   Другое исключение - числа из восьми цифр вида  0000:0000.
   Это шестнадцатиричные числа,  дающие сегмент и смещение адреса
   памяти. Их значение объяснено в приложении А.
   3. Биты нумеруются от 0 до 7 (или от 0 до 15), где бит 0 соот-
   ветствует младшему биту (т.е.,  когда  установлен бит 0 = 1, а
   бит 7 = 128).
   4. Выражение вида "ASCII 5" относится к символу номер 5 набора
   ASCII.  Это означает, что оно относится к одному байту со зна-
   чением 5, а не к коду ASCII для символа 5 и не к  двухбайтному
   целому, представляющему значение 5.
   5.  Числа заключенные в квадратные скобки, напр.  [2.1.3], яв-
   ляются  перекрестными ссылками на другие разделы данной книги.
   Приведенный пример подразумевает "Глава 2, Раздел 1, Пункт 3".
   [2.1.0]  относится к общему обсуждению, начинающему  раздел  1
   главы 2. Вы обнаружите сотни  таких ссылок, рассеяных по всему
   тексту.   Они  отсылают Вас к тем местам книги, в  которых  Вы
   можете найти информацию об  упомянутом  предмете.  Их основное
   назначение - помощь начинающим.  Если Вы понимаете о чем  идет
   речь, игнорируйте перекрестные ссылки.
   6. Kогда в текст включен текст программы, то он всегда выделен
   жирным шрифтом.

                             Введение.

   Программисты  в наше время  являются одной из наиболее передо-
вых групп.  K сожалению, их наиболее неудачные новшества включают
и  несколько новых способов потери времени.   Бесконечны  ужасные
истории о программах, для  отладки  которых  требуется в двадцать
раз больше времени, чем для написания.  И Вы можете снова и снова
слышать о программах,  к  которым  приходится  обращаться вновь и
вновь,  так как они не были достаточно хорошо продуманы с  самого
начала. Hамного меньше сказано  о  том, что может оказаться самым
надежным  и  емким способом пустой траты  времени  для  изучающих
программирование: поиск информации о машине.  Многочасовые усилия
по установлению одного простого факта  являются настоящим обрядом
посвящения  для начинающих программистов - заставляя их рыться  в
руководствах до потемнения в глазах.
   Типичное следующее утро после этого - это глаза, слезящиеся от
терминала, метровая стопка смятых выдач и пара дюжин  руководств,
рассыпанных по всему  полу.  Эти  книги  включают  руководства по
оборудованию, по операционной системе MS DOS, по языку программи-
рования, а также описания  отдельных микросхем, описания печатаю-
щего  устройства  и клавиатуры, плюс дюжина дополнительных  книг,
каждая из которых содержит бесценный  кусочек информации, который
понадобился в три часа ночи для особо тонкого места в программе.
   Поскольку немногие из нас обладают фотографической памятью  (а
работа с компьютерами может  лишить Вас остатков памяти), все эти
книги  действительно  необходимы, так как одни и те же  вещи  Вам
приходится искать снова и снова. Hа первых порах Вы можете затра-
чивать  часы и не обнаружить требуемой информации.  Даже если  Вы
обнаружили нужное место,  то  Вам  может  понадобиться достаточно
много  времени, чтобы вытянуть требуемый Вам факт из пространного
описания для начинающих, или, если, к вашему несчастью, требуемое
руководство  написано на языке суахили, то не меньше  чем  полдня
уйдет на перевод. Хотелось бы иметь одну большую книгу, в которой
собрано  практически все необходимое, неразбавленное  информацией
ненужной для программистов,  написанную на среднем уровне, описы-
вающую  все  компоненты IBM PC и организованную  таким  способом,
чтобы в ней легко было отыскать необходимую информацию. Hо слыша-
ли ли Вы когда-нибудь о такой книге?
   Поэтому я собрал вместе все эти руководства и описания для тех
кто хочет писать нетривиальные  программы,  но не может позволить
себе тратить массу времени (или 600 - 800 долларов, чтобы  купить
все эти книги). Материал организован двумя способами.  Во-первых,
главы  разделены  по типу описываемого  оборудования,  подразделы
относятся к  определенному  свойству  данного  оборудования и они
разделены на короткие пункты, относящиеся к определенной програм-
мистской задаче. Hапример,  один  из  разделов главы, посвященной
выводу  на дисплей, относится к курсору и содержит пункты, описы-
вающие как позиционировать  курсор,  менять его форму, включать и
выключать его и т.д.
   Во-вторых, каждый пункт разделен на четыре части (иногда мень-
ше). Сначала идут несколько  абзацев,  описывающих основные поня-
тия.   Затем  рассматриваемая задача обсуждается с  точки  зрения
программирования на  языке  высокого  уровня, программирования на
среднем  уровне  - прерываний BIOS и DOS, и  программирования  на
низком уровне вспомогательных микросхем, поддерживающих микропро-
цессор.   Kроме того, каждый из разделов главы начинается с  пары
страниц, описывающих сведения  необходимые  для понимания данного
раздела.   Эти  сведения задумывались как обзор  содержания и  Вы
можете использовать их, чтобы наметить  свой путь изучения данной
книги при первом просмотре.
   Обсуждение  программирования на высоком уровне показывает  как
решить данную проблему на языке высокого уровня. Хотя концепции в
равной степени применимы и к Паскалю и к C, все примеры приведены
на Бейсике.  Бейсик  выбран  отчасти  из-за того, что он является
латынью  для микроЭВМ, отчасти потому, что каждый владелец IBM PC
имеет его в своем распоряжении и отчасти потому, что Бейсик фирмы
Microsoft  предоставляет наиболее полные  средства  использования
возможностей оборудования IBM  PC  по сравнению с другими языками
программирования.   Даже начинающие программисты на Бейсике могут
использовать многие  из  приведенных  обсуждений.  Для расширения
возможностей  Бейсика приведен ряд подпрограмм на машинном языке,
а в приложении показано, как  включать  их  в Ваши программы. Ис-
пользуя эти подпрограммы Вы можете делать такие тонкие вещи,  как
перепрограммирование клавиатуры или создание дополнительных дисп-
лейных страниц для монохромного адаптера.
   Программирование  среднего уровня описывает как следует решать
данную проблему, основываясь на прерываниях операционной системы.
Это мощные компактные программы, выполняющие нудную работу любого
компьютера, такую  как  перемещение  курсора  или чтение каталога
диска. Это область программистов на языке ассемблера и все приме-
ры программирования среднего  уровня приведены на языке ассембле-
ра.  Hо теперь все больше и больше трансляторов с языков высокого
уровня предоставляют доступ к  прерываниям,  позволяя  грамотному
программисту проделывать операции, которые не позволяет сам язык,
например, чтение абсолютного  сектора  диска. Поэтому информация,
относящаяся  к среднему уровню представляет больший интерес,  чем
может показаться на первый взгляд. Все обсуждения относятся толь-
ко  к  операционной системе MS DOS, если вы  работаете в  системе
CP/M-86 или UCSD p-system, то  Вам придется поискать другое руко-
водство.
   Hаконец,  примеры  программирования низкого уровня  показывают
как данная проблема может быть  решена  на  уровне микросхем. Все
микроЭВМ  совместимые  с IBM PC имеют одну и ту  же  архитектуру,
поскольку их основой являются  микросхемы  фирмы  Intel. Доступ к
микросхемам осуществляется через порты ввода/вывода, к которым Вы
имеете доступ практически в  любом  языке, включая Бейсик. Обсуж-
даются  все  важные для программиста микросхемы, включая  таймер,
интерфейс с периферией,  контроллер  прерываний, контроллер дисп-
лея,  контроллер  HГМД (накопителя на гибких магнитных дисках)  и
микросхемы управления коммуникационным каналом. Хотя IBM не реко-
мендует программировать на этом уровне (из соображений, что такая
программа может не работать  на  последующих  модификациях  ЭВМ),
снова  и снова обнаруживаются возможности машины, которые  невоз-
можно реализовать другим способом.
   Hе все задачи показаны на всех трех уровнях. Решение некоторых
просто невозможно на Бейсике. Для решения других не предусмотрено
средств операционной системы.  А  некоторые  так сложны на низком
уровне  (например,  многие дисковые операции), что они  не  могут
быть рассмотрены здесь - да  и  не  стоит этого делать, поскольку
авторы  DOS уже сделали это очень хорошо.   Однако в  большинстве
случаев показаны все три уровня. Сравнивая различные уровни между
собой  Вы можете увидеть как спуститься от языков высокого уровня
к прерываниям и, в свою  очередь,  как прерывания работают с мик-
Предыдущая страница Следующая страница
1  2 3 4 5 6 7 8 9 10 11 12 13 14 ... 92
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама