Орион-128/Радио 04-93/«Орион-128» — настоящее и будущее
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: Г. РОГОВ, М. БРИДЖИДИ |
С момента опубликования в журнале описания радиолюбительского компьютера «Орион-128» прошло уже более трех лет. За это время его повторили десятки тысяч радиолюбителей, многие из которых прошли перед этим школу его предшественников — более простых и, естественно, ограниченных в своих возможностях компьютеров типа «Радио-86РК» и ему подобных. По сравнению с ними «Орион-128» обладает более широкими возможностями (цвет, графика, объем памяти и т. д.). Есть еще несколько причин, обусловивших его популярность. Он прост в изготовлении, не содержит дефицитных деталей. Один из самых трудоемких элементов — печатная плата довольно быстро появилась на рынке. Помимо тех принципиальных системных программ, что были опубликованы на страницах нашего журнала, тот же самый рынок предложил пользователям «Ориона-128» много других, превратив его тем самым в компьютер «на каждый день». И, наконец, открытая, то есть предусматривавшая достаточно свободное расширение, архитектура компьютера давала основания надеяться, что вскоре на страницах журнала появятся описания различных внешних устройств и, в первую очередь, контроллера дисковода.
Однако с расширением «Ориона-128» дела пошли не так быстро, как хотелось бы редакции. По ряду причин авторы компьютера явно затянули решение этого вопроса. Другие радиолюбительские коллективы (сегодня редко кто работает в одиночку над сложными вещами) заняли выжидательную позицию, не предлагая редакции достойных внимания разработок: ведь «по крупному» на страницах журнала по «Ориону-128» выступали до сих пор в основном лишь его авторы. А вдруг, мол, это—позиция редакции и у «пришельцев» нет шансов опубликовать описание своей конструкции? Эта ситуация привела даже к тому, что во второй половине прошлого года число публикаций в журнале по «Ориону-128» заметно уменьшилось. Некоторые читатели даже прислали письма в редакцию с вопросами: «А не „забросили“ ли вообще этот компьютер?»
Тем временем владельцы «Ориона-128» не хотели ждать, и в радиолюбительских кругах (а также на рынке) появилось сразу несколько вариантов контроллера и иных внешних устройств для этого компьютера. Молчание авторов «Ориона-128» по вопросам развития компьютера, отсутствие на страницах журнала информации о распределении адресного пространства для внешних устройств, которое все могли бы использовать как стандарт, привело к тому, что расширение компьютера пошло «вразнос» — каждый стал «сажать» внешние устройства по «своим» адресам.
Такое положение не могло, конечно, не беспокоить многочисленных пользователей «Ориона-128». Об этом они рассказали в своих письмах редакции, попросили нас поскорее определиться в этом вопросе. Статья, которую мы публикуем в этом номере, — ответ на эти письма.
Как это было и с «Радио-86РК», редакция журнала с уважением отнесется к любым вариантам развития «Ориона-128», но нашу поддержку получат лишь те конструкции и программы, авторы которых будут следовать основным положениям по его расширению, перечисленным в публикуемой здесь статье. Это вовсе не ограничение творчества, а та самая, разумная стандартизация, которая позволит нам общими усилиями в короткие сроки довести «Орион-128» до более высокой ступени развития.
Со следующего номера журнал начинает публикации, посвященные установке на «Орионе-128» дисковой операционной системы СР/М-80 (далее — просто СР/М). Это — описание контроллера дисковода, материалы по работе с СР/М и информация для разработчиков программного обеспечения. Отметим, что установка СР/М на «Орион-128» отнюдь не исключает работу с ORDOS. Более того, пользователи, привыкшие использовать ORDOS, получают возможность хранить файлы на дискетах.
А как быть тем, кто уже изготовил сам или приобрел контроллер для «Ориона-128» с другими вариантами «посадки» в адресном пространстве компьютера и с соответствующим программным обеспечением?
Про все версии контроллеров, что «гуляют» в радиолюбительских кругах, мы очень определенно сказать не можем. Ясно пока следующее. Во-первых, упоминавшийся выше вариант контроллера является прямым аналогом (точнее — улучшенным вариантом) так называемого «лыткаринского» (версия 3.10) и совместим с «ленинградской» версией контроллера — одной из самых первых, что появились у радиолюбителей. Так что здесь с совместимостью все в порядке. Во-вторых, описанный в журнале в конце прошлого — начале этого года контроллер для «Ориона-128», который работает под SPDOS, весьма просто модифицируется, чтобы использовать программное обеспечение новой версии контроллера. В-третьих, некоторые другие, получившие уже распространение контроллеры (в частности, версия авторов «Ориона-128») также легко модифицируются и могут работать в единой системе, используя единое программное обеспечение. О переделке упомянутых контроллеров мы расскажем в ближайших номерах нашего журнала.
Ну и, наконец, редакция поддержит свои публикации распространением дискет с основным программным обеспечением. Но об этом чуть позже, а сейчас — статья для тех, кто задумывается о будущем «Ориона-128».
КЛАССИФИКАЦИЯ УСТРОЙСТВ
Введем понятия устройств расширения, внешних и дополнительных устройств компьютера.
Устройствами расширения будем называть функционально законченные устройства, подключаемые непосредственно к системному разъему компьютера, взаимодействие процессора с которыми происходит путем обмена информацией с их внутренними регистрами как с ячейками памяти. Устройства расширения при работе используют сигналы, выведенные на системный разъем. Пример такого устройства — контроллер дисковода.
При разработке устройств расширения недопустимо вносить какие-либо изменения в схему компьютера. Исключение составляет лишь вывод с основной платы на системный разъем дополнительных сигналов, необходимых для работы устройства. Более подробно о таких сигналах мы расскажем ниже.
Внешние устройства отличает от устройств расширения то, что их подключают к компьютеру через порты ввода-вывода и они самостоятельно не обрабатывают сигналы, выведенные на системный разъем. К таким устройствам можно отнести, например, программатор или телефонный модем. Основное требование, предъявляемое к внешним устройствам, — соответствие их сигналов электрическим параметрам портов, к которым их подключают. Так, например, для подключения к порту микросхемы DD55 «Ориона-128» (см. рис. 1 в [1]) принтера с интерфейсом RS — 232 («Стык С2») необходимо преобразовать ТТЛ-сигналы порта в двуполярные сигналы интерфейса RS — 232.
Дополнительными являются устройства, подключаемые непосредственно к основной плате компьютера, после чего они становятся его составной частью. Назначение таких устройств — введение в компьютер новых режимов или возможностей. Примером могут служить устройства, обеспечивающие получение режима расширения экрана до 16 Кбайт и замену процессора 580ВМ80 на более производительный Z80.
При введении в «Орион-128» дополнительных устройств необходимо обеспечить полную программную совместимость с базовым вариантом и сохранить все имеющиеся качества компьютера. Новые режимы, вводимые в него, должны быть выключаемыми. Например, для включения-выключения режима 16-килобайтного экрана используют один из разрядов системного порта 4 (адрес 0FB00H), а при установке процессора Z80 (даже турбированного варианта) обеспечивают полную эмуляцию всех сигналов микропроцессора 580BM80.
ОСНОВНЫЕ ТРЕБОВАНИЯ К ПРОГРАММНОМУ ОБЕСПЕЧЕНИЮ
Разрабатываемое программное обеспечение должно быть ориентировано на работу с МОНИТОРом-2 [2,3]. Программы при работе должны использовать только стандартные вызовы подпрограмм МОНИТОРа, описанные в [2,4]. Допустимы прямые обращения к служебным ячейкам МОНИТОРа, но только к тем, которые рассмотрены в [2,4]. Выводить символы на экран необходимо преимущественно через подпрограмму 0F809H, предполагая возможную подмену драйвера вывода символа на экран. Особенно это касается текстовых редакторов. Служебную текстовую информацию можно выводить также и через подпрограмму 0F80FH.
Основными клавиатурами для «Ориона-128» считают клавиатуры «РК-86» и «МС7007», подключаемые по схемам, представленным в [3,5].
Для игровых программ допустимы непосредственные обращения к порту клавиатуры, но только в тех случаях, когда это повышает быстродействие программы.
Программы, обращающиеся к клавиатуре непосредственно, должны автоматически настраиваться на ее тип. Благодаря тому, что для разных клавиатур применена различная настройка портов, тип клавиатуры можно узнать очень просто, определив, например, на какой режим работы настроен порт А (адрес 0F400H). Программа автоматического определения типа клавиатуры представлена в табл. 1.
ПОДКЛЮЧЕНИЕ ДЖОЙСТИКА
Одним из наиболее распространенных устройств, используемых в игровых программах для ввода информации, является джойстик. Он состоит из перемещаемой ручки и одной или нескольких кнопок. Ручкой задают компьютеру направление перемещения объекта, а нажатием кнопки — выполнение команды «Выбор» в прикладных программах или «Огонь» в игровых.
Сейчас есть уже немало программ для «Ориона-128», поддерживающих работу с джойстиком, и встает проблема совместимости разных схем его подключения.
Учитывая, что большинство программ работают только с клавиатурой, наиболее просто было бы подключить джойстик параллельно клавишам управления курсором и клавише пробела. Однако это не лучший вариант, так как ни в клавиатуре «РК-86», ни в"МС7007" названные клавиши не имеют общей электрической связи и, следовательно, использовать большинство джойстиков без их переделки было бы невозможно. Наиболее правильное решение этой проблемы — выделить для джойстика отдельный порт.
Удобнее всего подключать джойстик к порту В микросхемы DD55 (рис. 1), так как порты А и С используют для работы с принтером. При замыкании какого-либо контакта на джойстике напряжение низкого уровня поступит на соответствующий разряд порта В. При использовании двух джойстиков второй подключают по той же схеме, что и первый, только к порту А. Однако в этом случае возможны конфликтные ситуации при работе с принтером.
В настоящее время отечественная промышленность выпускает несколько видов джойстиков. Чаще всего для подключения их к компьютеру используют разъем типа ОНЦ-ВГ с семью или пятью контактами. Один из возможных вариантов распайки каждого из таких разъемов показан на рис. 2 (для вилок).
РАСШИРЕННОЕ ОПИСАНИЕ СИГНАЛОВ НА СИСТЕМНОМ РАЗЪЕМЕ
Большинство печатных плат «Ориона-128», доступных радиолюбителям, имеют похожие топологии и отличаются одна от другой и от платы, представленной в [6], в основном, числом ошибок.
При разработке компьютера, вероятно, трудно было учесть все необходимое для его развития. Поэтому подключение к «Ориону-128» устройств расширения почти всегда связано с необходимостью вывода на системный, разъем дополнительных сигналов.
Руководствуясь изложенным выше, мы решили дать полное описание основных (цепи которых показаны на схеме компьютера) в дополнительных сигналов, выведенных на системный разъем «Ориона-128».
В табл. 2 представлены номера контактов рядов В и С этого разъема, номера связанных с ними проводников, новые наименования сигналов и их описания.
ПОДКЛЮЧЕНИЕ ПРИНТЕРА
Основным интерфейсом для печатающего устройства, подключаемого к «Ориону-128», считают интерфейс ИРПР-М (интерфейс для радиального подключения устройств с параллельной передачей информации, модифицированный). Он аналогичен интерфейсу Centronics, разработанному фирмой Centronics Data Computer Corporation. В настоящее время этот интерфейс является, по существу, стандартным для производителей печатающей техники, и его используют практически во всех отечественных и зарубежных печатающих устройствах.
Интерфейс ИРПР-М считают параллельным, так как при передаче одного байта он предполагает выдачу всех восьми битов данных одновременно. Помимо сигналов данных используют специальные сигналы для синхронизации передачи, индикации ошибочных ситуаций, инициализации печатающего устройства и другие.
Использование полного набора специальных сигналов необязательно. Для обеспечения передачи данных достаточно всего двух: сигнала от принтера, показывающего, что он готов принять данные (BUSY), и сигнала от компьютера, указывающего, что данные, выставленные на шину, истинны и могут быть приняты (/STROBE). Более подробно об интерфейсе ИРПР-М можно прочитать в [7].
Принтер подключают к портам А (адрес 0F600H) и С (адрес 0F602H) микросхемы DD55 «Ориона-128» (рис. 3). Буферные элементы DD1, DD2 защищают выходы микросхемы DD55 от перегрузки. Заметим, что большинство принтеров не перегружают порт и установка буферных элементов необязательна.
Данные поступают в порт А. Младший разряд данных D0 соответствует разряду РА0. Для специальных сигналов используют порт С. Сигнал BUSY поступает от принтера на разряд РСЗ. Его высокий уровень означает, что принтер занят и не может принять данные, а низкий — готовность к приему. Сигнал /STROBE процессор выдает на разряд РС7. Его низкий уровень означает, что данные, выставленные на шину, истинны и могут быть приняты.
По сложившейся практике драйвер печати не вставляют в каждую программу, способную выводить информацию на принтер, а создают в виде отдельного файла ORDOS , имеющего зарезервированное имя «LPT». При необходимости выдать информацию на принтер программа автоматически или по специальной команде загружает файл «LPT» и производит печать, используя подпрограммы этого файла. Примером второго способа может служить программа BASIC [8], в которой перед использованием операторов LPRINT и LLIST загружают файл «LPT», задавая команду LOAD «LPT».
Подпрограммы драйвера печати LPT вызывают по следующим адресам:
- 0А800Н — подпрограмма определения готовности принтера (при готовности подпрограмма возвращает сброшенный, а при отсутствии готовности — установленный флаг Z);
- 0А803Н — подпрограмма выдачи кода, содержащегося в регистре С, на принтер.
Листинг драйвера LPT, поддерживающего интерфейс ИРПР-М, приведен в табл. 3.
АДРЕСА УСТРОЙСТВ РАСШИРЕНИЯ
Адресное пространство «Ориона-128» 0F700H…0F7FFH длиной 256 байт выделено для подключения к компьютеру устройств расширения (в том числе также и многофункциональных микросхем, например, дополнительных портов, таймеров и других). Эта область получила название «порт расширения». Главным при решении задачи использования указанной области было распределение ее между различными устройствами. Наиболее удачно, с точки зрения простоты реализации и максимального использования возможностей, разделение области на 32 участка длиной по 8 байт каждый. В этом случае при несложной схеме дешифрации можно подключить до 32 различных устройств, выделив каждому из них участок длиной 8 байт. Однако это не означает, что под устройство нельзя резервировать, в зависимости от его сложности, два, три и более 8-байтовых участка. Их распределение в адресном пространстве порта расширения показано в табл. 4.
Адреса | Назначение (устройство, тип БИС) |
0F700H … 0F72FH | Контроллер дисковода на микросхеме КР1818ВГ93 |
0F730 H , 0F738H | Зарезервированы |
0F740H | КР580ВИ53 |
0F748H | Зарезервирован |
0F750H | 512ВИ1 |
0F758H | Зарезервирован |
0F760H | КР580ВН59 |
0F768H .0F770H , 0F778H | Зарезервированы |
0F780H | КР580ВВ55 |
0F788H | КР580ВВ55 |
0F790H | КР580ВИ53 |
0F798H | КР580ВВ51 |
0F7A0H, 0F7A8H, 0F7B0H, 0F7B8H | Свободны |
0F7C0H, 0F7C8H, 0F7D0H, 0F7D8H | Зарезервированы |
0F7E0H, 0F7E8H, 0F7F0H, 0F7F8H | Свободны |
Примечания:
- Адреса регистров микросхемы КР1818ВГ93 — 0700H … 0703H, адрес регистра управления контроллера — 0F720H.
- По адресам 07A0H … 07BFH и 07E0H … 07FFH пользователь может размещать любые устройства по своему усмотрению.
Г. РОГОВ, М. БРИДЖИДИ
г. Москва
ЛИТЕРАТУРА
- Сугоняко В., Сафронов В., Коненков К. Персональный радиолюбительский компьютер «Орион-128». — Радио, 1990, № 1, с. 37-43.
- Сугоняко В., Сафронов В. Основной МОНИТОР для ПРК"Орион-128". — Радио, 1991, № 1, с. 35-38.
- Сугоняко В., Сафронов В. «Орион-128». Сообщаем подробности. — Радио, 1991, N° 2, с. 44-48.
- Сугоняко В., Сафронов В., Коненков К. Программное обеспечение персонального радиолюбительского компьютера «Орион-128». — Радио, 1990, № 2, с. 46-52.
- Сугоняко В., Сафронов В. Наладка ПРК «Орион-128». — Радио, 1990, № 5, с. 33-38.
- Коненков К., Сафронов В., Сугоняко В. ПРК «Орион-128» — топология печатной платы. — Радио, 1990, № 4, с. 44-47.
- Бененсон В. П., Ветенберг И. М., Мельников В. В. и др. Печатающие устройства для персональных ЭВМ. — М.: Радио и связь, 1992.
- Сугоняко В., Сафронов В. Бейсик «ORION». — Радио, 1991, № 4, с. 32-39.