Совместное советско-американское предприятие «СОВАМИНКО» К О М П Ь Ю Т Е Р ПРЕСС А ППА РА ТНОЕ ОБЕСПЕЧЕНИЕ Интерфейсы периферийных устройств - последовательный и параллельный 5 Кабели - это не совсем просто 11 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Импорт объектов из внешней программы на Turbo Pascal 15 Объектно-ориентированное программирование в среде Turbo Pascal для Windows 19 Компилятор Borland C++ 2.0 Создание Windows-программ без SDK 31 Виртуальные функции? Это очень просто! 35 Windows 3.1. Что новенького? 47 НОВЫЕ ПРОДУКТЫ Разрешите представиться: MS-DOS 5.0! 42 Citizen PN48 - принтер для компьютера-блокнота 51 РАБОТАЕМ ГРАМОТНО Как выбрать программу проверки орфографии 53 БАЗЫ ДАННЫХ Clarion - СУБД для профессионалов 57 dBASE IV для начинающих 61 ПЕРСОНАЛИИ Мальчик-миллиардер из Microsoft 67 МЕЖДУ ПРОЧИМ Сделай сам 72 НОВОСТИ 77 1'92 Адрес редакции: ШМРШ2 113093, г.Москва, аб.ящик 37 Факс: 200-22-89 Телефоны для справок: 491-01-53, 420-83-80. E-mail: [email protected] КОМПЬЮТЕРПРЕСС Издается с 1989 года Выходит 12 раз в год. 1’92 (25) Главный редактор: Б.М. Молчанов Редакционная коллегия: А.Г.Агафонов А.Е.Борзенко И.С.Вязаничев (зам. главного редактора) М.Ю.Михайлов А.В.Синев К.В.Чащин Технические редакторы: А.А.Кирсанова Т.Н.Полюшкина Литературный редактор: Т.Н.Шестернева Корректор: Сдано в набор 12.12.91. Подписано к печати 16.12.91. Формат 84x108/16. Печать офсетная. Бумага офсетная. Усл.печ.л. 8.4-Ю.42 (обл.) Тираж 100000 экз. Т.И.Колесникова (1 завод-70000). Заказ 2419. Цена 3 р. 80 к. Оформление художника: Оригинал-макет подготовлен агентством “КомпьютерПресс”. Отпечатано в полиграфической фирме М.Н.Сафонова «Красный пролетарий» РГИИЦ «Республика» 103473, Москва, Краснопролетарская, 16. Фото: М.П.Кудрявцева ♦ Тексты проверены системой “ОРФО” ©Агентство «КомпьютерПресс», 1992 Дорогой читатель, ты держишь в руках юбилейный — двадцать пятый — номер нашего журнала. С чем тебя, а также себя мы и поздравляем. Когда мы начинали, а было это два с небольшим года назад, все было не так: и время было не то, и законы, и компьютеры были не те, да и страна была не та. Еще не было ни малых предприятий, ни цветных лазерных принтеров, ни бирж, ни ноутбуков, ни ГКЧП. Зато были КПСС, КГБ и хлеб по 20 копеек И даже время от времени колбаса. Что лучше — ощущать себя относительно сытым или относительно свободным — каждый решает сам. Впрочем, в нашей чудной стране каждое принятое решение в итоге оказывается неверным... Когда мы взялись за издание этого журнала, то, как выяснилось, даже отдаленно не представляли тех трудностей, с которыми столкнемся, но, как бы то ни было, журнал выходит более-менее регулярно (хотя такой регулярности не пожелаем своим читателям), бумажно-полиграфические проблемы относительно решены (не спорим, бывает и лучше), и главное для нас сегодня — найти решение вечного вопроса: как угодить максимальному числу читателей. Это всегда являлось нашей целью. Ведь чем мы отличаемся от других компьютерных журналов, выходящих в нашей стране? В них в основном заложена одна схема: перевод статей из весьма уважаемых западных журналов. Но что годится для западного читателя, зачастую не подходит нашему. Конечно, интересен совет, что для решения такой-то проблемы достаточно заменить 386/20 на 486/50, но у нас, пожалуй, многих больше интересует, что можно выжать из старенькой XT 'ишки. Поэтому мы стараемся, начав и продолжая линию как можно более объективных обзоров событий компьютерного мира и сообщая о всех достойных внимания новостях, давать информацию, ориентированную исключительно на конкретные нужды нашего небогатого, но крайне любознательного и смекалистого читателя. Всем угодить невозможно, это понятно: начинающим надо одно, просто пользователям другое, крутым программистам — третье, электронщикам — четвертое и т.д. Статья, с упоением прочитанная одним, вызовет скуку у другого — это неизбежно, как невозможно совершенство. В книге Лоуренса Питера “Принцип Питера“ приведен отрывок из армейских инструкций: “Колышки для палаток., должны быть окрашены в оранжевый цвет. Яркая окраска — лучшее средство, чтобы быстро отыскать колышки... При пользовании колышками, окрашенными в яркий оранжевый цвет, их следут вбивать в землю глубоко, так чтобы они не были видны“. Конечно, можно согласиться со словами Грушо Маркса, что “военная мудрость есть понятие, содержащее противоречие в самом себе“, но в данном случае все верно: либо колышки видны неприятелю, либо они не видны никому. Сегодня мы видим решение этой проблемы в ориентировании на письма читателей, на принцип “о чем просят, о том споем“. Так что пишите письма и, не стесняясь, рисуйте вопросы, как поет Булат Шалвович: “Ничего, что мы чужие. Вы рисуйте! Я потом, что не понятно, объясню". Более того, написавшие самые толковые письма, возможно, получат некоторое удовлетворение в виде пачки дензнаков — в этом номере мы сообщаем о новом конкурсе на лучшую публикацию года, правда, итоги прошлогоднего конкурса удастся подвести, видимо, не ранее третьего номера. Дорогой читатель! Позволь с некоторым опозданием поздравить тебя с Новым годом и пожелать тебе в первую очередь бодрости и оптимизма. Без оптимизма в наше нелегкое время просто не прожить, а бодрость нужна, чтобы справляться с отдельными временными трудностями. Ну, и конечно — удачи! А мы сделаем все, чтобы помочь тебе хоть в чем-то — хотя бы в решении компьютерных проблем. Б. Мол чанов, главный редактор АППАРАТНОЕ ОБЕСПЕЧЕНИЕ 5 ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ — ПОСЛЕДОВ А ТЕЛЬНЫЙ И ПАРАЛЛЕЛЬНЫЙ Подсоединение периферийных Порты бывают последовательные, практически все принтеры, пред устройств, таких как мышка или т.е. информационные биты пере назначенные для персоналок, ис принтер, к персональному ком даются последовательно один за пользуют интерфейс Centronics, пьютеру производится через так другим, и параллельные, когда не так что при подключении принте называемые устройства сопряже сколько бит данных передаются ра к компьютеру проблем не воз ния (адаптеры). Обычно адаптеры одновременно. Для подключения никает. выполнены в виде отдельных плат джойстика служит специальный ввода-вывода (Input-Output Card, аналоговый игровой адаптер — I/O Card), Вставляемых в разъемы Game Adapter. Обычно он. распо CENTRONICS: расширения на системной плате. лагается на плате ввода-вывода байт за байтом Вообще говоря, взаимодействие вместе с параллельным и последо периферийного устройства с адап вательными портами. Плату со Интерфейс Centronics исполь тером происходит с одним всеми этими портами называют, зует электрические сигналы TTL- (возможно одним из двух) стан как правило, многофункциональ уровня (+5 В и О В) и еще не так дартным интерфейсом, определя ной платой ввода-вывода (Multi давно был чаще всего конструк ющим, в частности, тип и “род“ I/O Card). Параллельные порты тивно выполнен на нескольких соединителя, уровни и длительно используются обычно для подклю TTL-микросхемах. Эти микро сти электрических сигналов, про чения принтера (в ряде случаев схемы служат для декодирования токолы обмена. К одной плате плоттера или сканера). Интерфейс адреса, промежуточного хранения ввода-вывода может подключаться параллельного порта выполнен в и инвертирования отдельных сиг несколько устройств, если, ко соответствии с интерфейсом Cen налов (рис. 1). В последнее время нечно, на ней конструктивно раз tronics (получившим свое название широкое распространение полу мещено несколько адаптеров по имени американской фирмы — чили параллельные адаптеры, в устройств, которые в случае пер производителя принтеров, предло которых практически все функции сональных компьютеров часто на жившей в свое время собственный отдельных TTL-микросхем объе зывают портами ввода-вывода. интерфейс для принтера). Сегодня динены в одной БИС 82С11, вы- КомпьютерПресс 1'92 6 ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ — ПОСЛЕДОВАТЕЛЬНЫЙ И ПАРАЛЛЕЛЬНЫЙ течение приблизи тельно 10 мкс удер живает эту линию в активном состоянии. ***Busy*** Если прин тер не может принять данные, то сигнал ак тивизируется. Это мо жет произойти, на пример, в следующих случаях: при инициа лизации принтера, ес ли принтер находится в состоянии off-line, при появлении ошиб ки, а также при обна Рис.1. ружении конца бума ги. полненной по КМОП-технологии распределение сигналов по кон (уровни сигналов по-прежнему тактам показано на рис.З. Надо ***Paper out*** Этот сигнал сооб TTL). Обычно эта микросхема сказать, что для простой передачи щает компьютеру о том, что за расположена на плате в специаль данных требуются не все сигналы, кончилась бумага. Если вставить ной панельке — chip socket — и определенные стандартом Cen в принтер новый лист, сигнал не зря. Электрические наводки в tronics. Для того чтобы обеспечить дезактивируется. кабеле (не говоря уже о разных функционирование интерфейса, “землях" принтера и компьютера) достаточно использовать только ***Select*** С помощью этого сиг достаточно часто выводят эту мик 8 бит данных (DO — D7), строб- нала принтер сообщает машине, росхему из строя (КМОП — кап сигнал данных (Data Strobe) и что он выбран и активен. У мно ризная вещь!). В таких случаях сигнал занятости принтера (Busy). гих принтеров данный сигнал можно лишь пожалеть о “старой Пара слов о сигналах интерфейса имеет постоянное значение. доброй" TTL-технике. Centronics, используемых для ра Для того чтобы избежать оши боты с принтерами. ***Auto feed*** Активирование бок и потери информации при пе этого сигнала вызывает продви редаче данных с TTL-уровнями, ***Data Strobe*** Когда компью жение бумаги в принтере на од максимальная длина кабеля для тер посылает данные на прин ну строку вперед. Как правило, принтера не должна быть больше тер, он в течение 5 мкс должен переход на другую строку осу двух-трех метров. Обычно для активировать этот сигнал. Этим ществляется программно — вы сигналов данных и управления в принтеру сообщается о том, что водом в порт определенных сим кабеле используются витые пары, данные на соответствующих ши волов. а все проводники заключены в нах готовы. общий экран. С. помощью специ альных дополнительных устройств ***Data*** По этим Контакт Направление Сигнал (усилителей сигналов) длина ка 8 сигнальным ли беля может быть без особых про ниям данные пере блем увеличена до десяти, а то и даются от компью 1 Выход Data Strobe 2 Выход Data 0 до двадцати метров. Основной за тера к принтеру. 3 Выход Data 1 дачей усилителей при этом явля После установле 4 Выход Data 2 5 Выход Data 3 ется сохранение временных соот ния сигнала Data 6 Выход Data 4 ношений сигналов, их уровней и Strobe принтер чи 7 Выход Data 5 фронтов. Подсоединение кабеля к тает эту информа 8 Выход Data 6 9 Выход Data 7 адаптеру (для пользователя — к цию. 10 Вход Acknowledge компьютеру) производится через 11 Вход Busy 12 Вход Paper Out 25-контактный разъем типа ***Acknowledge*** 13 Вход Select D—shell, распределение сигналов Если принтер при 14 Выход Auto feed по контактам которого приведено нял выставленные 15 Вход Error 16 Выход Init на рис.2. Со стороны принтера компьютером дан 17 Выход Select Input используется специальный 36-кон ные, то в подт-вер- 18-25 — Ground тактный разъем типа Centronics; ждение он в Рис.2. КомпьютерПресс Г 92 АППАРАТНОЕ ОБЕСПЕЧЕНИЕ 7 ***Еггог*** Этот сигнал от принтера мо жет быть ак тивным в сле дующих ситуа циях: если принтер нахо дится в состоя нии off-line, ес ли закончилась бумага или во время печати произошла ошибка. Если сигнал на этой линии будет Рис . 4 активным в те чение прибли зительно 50- ♦♦♦Ground#,+ Это сигнал вается перестановкой перемычек 100 мкс, то происходит инициа “Корпус" (“Земля“) для сигна (Jumpers) на плате, описание лизация принтера — как при его лов данных и управляющих сиг которых обычно приведено в включении. налов. технической документации на Персональный компьютер рабо плату. ♦♦♦Select Input#+% Активирование тает максимум с тремя параллель Начиная с базового адреса, и дезактивирование этого сигна ными портами, которые в MS-DOS каждый адаптер принтера имеет в ла аналогично подаче управляю имеют логические имена lptl, lpt2 адресном пространстве три адреса. щих кодов DC1 (Device Control и lpt3. В адресном пространстве При этом первый адрес соответ 1) — выбор устройства и DC2 — компьютера резервируются базо ствует регистру данных, посыла отмена выбора устройства. вые адреса этих портов: ЗВСЬ, емых от компьютера к принтеру. 378h и 278h. Первый адрес В случае использования TTL-мик- обычно использу росхем этот регистр часто бывает ется, если прин реализован на микросхеме тер-порт нахо 74LS374. Чтение установленных Контакт Направление Сигнал дится, например, битов данных можно осуществить на плате графи по тому же адресу. Физически 1 Выход Data Strobe 2 Выход Data 0 ческого адаптера чтение данных происходит через 3 Выход Data 1 Hercules или буфер данных, выполненный, на 4 Выход Data 2 EGA. На плате пример, на микросхеме 74LS244. 5 Выход Data 3 _ .6 Выход Data 4 Multi I/O Card Следующий адрес (базовый адрес 7 Выход Data 5 адрес lptl — плюс единица) позволяет читать 8 Выход Data 6 9 Выход Data 7 378h, a lpt2 — регистр статуса адаптера 10 Вход Acknowledge 278h. Для прин (расположенный, конечно, в 11 Вход Busy терного порта принтере) через буферную мик 12 Вход Paper Out 13 Вход Select lptl предусмот росхему — часто 74LS240 (или 14 Выход Auto feed рено аппаратное 74LS367 — 74LS368). В регистре 15 - No connect 16 - Gnd прерывание статуса биты 3-7 позволяют опре 17 - Shassis Gnd IRQ7, а для делить состояние некоторых сиг 18 Выход +5 V lpt2 — IRQ5, хо налов интерфейса Centronics: 19-30 - Gnd 31 Вход Init тя на практике бит 3 = 0: Error 32 Выход Error они используются бит 4 = 1 : Select 33 - Gnd очень редко. Ус бит 5 =1 : Paper out 34 - Cl ock тановка базовых бит 6 = 0: Acknowledge 35 Выход Test адресов портов и бит 7 = 0: Busy 36 Выход Select Input возможность ис Чтение регистра статуса имеет пользования пре смысл при передаче данных на Рис.3. рываний настраи принтер, для определения состо КомпьютерПресс Г 92 8 ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ — ПОСЛЕДОВАТЕЛЬНЫЙ И ПАРАЛЛЕЛЬНЫЙ ные CCITT определенного “трюка“ через эти (Междуна восемь адресов происходит Обозначение Адреса Прерывание родный обращение к 11 регистрам, консульта которые программируются соот С0М1 3F8h-3FFh IRQ4 тивный ко ветствующим образом. На рис.6 COM2 2F8h-2FFh IRQ3 митет по приведено полное обозначение телегра этих регистров, описание же их по COM3 3E8h-3EFh IRQ10 (IRQ2) фии и те отдельным битам выходит за COM4 2E8h-2EFh IRQ11 (IRQ5) лефо рамки данной статьи (по этому нии), — поводу существует большое коли Рис.5. V.24 (ме чество справочной литературы). ханические По существу, сердцем последова яния принтера и процесса пере характеристики) и V28 (эле тельного адаптера является мик дачи данных. ктрические характеристики). Хотя росхема UART (Universal Asyn Адрес третьего порта (базовый первоначально RS-232 был пред chronous Receiver/Transmitter) — адрес плюс 2) соответствует реги назначен для связи центральной универсальный асинхронный при стру управления интерфейса. Этот машины с терминалами, его емопередатчик 8250 или 16450. регистр (read only — только для простота и богатые возможности Декодирование адресов для этой чтения), для которого может обеспечили ему более широкое микросхемы происходит либо на использоваться микросхема применение. В современной персо дискретных TTL-микросхемах, 74LS174, позволяет определить налке может быть до четырех пос либо при помощи микросхемы следующие состояния принтера: ледовательных адаптеров, имею программируемой логической мат бит 0 = 0: сигнал Data Strobe щих логические имена соответст рицы (Programmable Array Logic). активен, венно СОМ1, COM2, COM3 и Поскольку стандарт передачи и бит 1 = 0 : сигнал Auto feed COM4. Структурная схема одного приема использует высокие уровни включен, из адаптеров приведена на рис.4. сигналов +/-15 В или +/-12 В, то бит 2 = 0: инициализация Базовые адреса адаптеров и соот для преобразования логических принтера, ветствующие прерывания приведе уровней в интерфейсные и наобо бит 3=1: принтер выбран, ны на рис.5. Следует обратить рот используются микросхемы бит 4 = 1: прерывание разре внимание на тот факт, что ис приемников и передатчиков, шено. пользование прерываний IRQ 10 и обычно 1489 и 1488. Каждая из Для того чтобы работать с IRQ11 в IBM PC/AT возможно этих микросхем включает в себя принтером из собственных про только на дополнительном (корот четыре приемника или четыре пе грамм, проще всего использовать ком) слоте. Таким образом, при редатчика. При передаче микрос специальное прерывание BIOS int менение трех или четырех после хема UART преобразует парал 17h. Однако, в некоторых случаях довательных портов с соответству лельный код в последовательный и может потребоваться программи ющими прерываниями возможно передает его побитно в линию, рование на уровне регистров, только на плате ввода-вывода для обрамляя исходную последова тогда информация о приведенных PC/AT (16 бит данных). В проти тельность битами старта, останова выше регистрах просто необхо вном случае можно задействовать и контроля. При приеме данных дима. только два прерывания (IRQ4 и UART преобразует последователь IRQ3) или использовать, если воз ный код в параллельный можно, прерывание IRQ2 или (разумеется, опуская служебные Интерфейс в мир RS-232 IRQ5. символы). Непременным условием В адресном пространстве портов правильной передачи/приема яв Последовательный интерфейс PC может использоваться для боль последова шинства периферийных устройств: тельный плоттер, удаленный принтер, адаптер Адрес Обозначение мышь, модем, программатор ПЗУ занимает 0 THR Transmitter Holding Register и т.д. До настоящего времени для восемь 0 RBR Receiver Buffer Register 0 DLL Divisor Latch LSB последовательной связи использу последо 1 DLM Divisor Latch MSB ются адаптеры с интерфейсом ватель 1 IER Interrupt Enable Register RS-232. Описание этого ин ных адре 2 HR Interrupt Identification Register 3 LCR Line Control Register терфейса было опубликовано сов, 4 MCR Modem Control Register Американской промышленной ас включая 5 LSR Line Status Register 6 MSR Modem Status Register социацией еще в 1969 году. Евро базовый. пейским аналогом RS-232 явля Однако с Рис.6. ются два стандарта, разработан помощью КомпьютерПресс Г 92