|
ZX Review
#1-2
31 декабря 1996 |
|
Читатель-читателю - О железе, софте и прочем компьютера Profi...

ЧИТАТЕЛЬ - ЧИТАТЕЛЮ
П.Федин, г.Москва
О железе, софте и прочем...
Слава богу, наступила пора, когда все уже поняли, что с неразберихой в
железе и программах, оставшейся с давних времен, пора заканчивать.
И начались разговоры о стандартизации. Я читаю об этом в разных изданиях, но,
увы, вижу, что иногда авторы статей на эту тему упускают некоторые вещи. Я
считаю, что до принятия стандарта нужно собрать информацию обо всех
существующих в данное время моделях, чтобы постараться учесть нюансы каждой
из них.
Я вношу свой вклад в это дело и предоставляю информацию о компьютере PROFI.
Хочу предложить вам выкладку из результатов проведенных мной исследований.
Первым рассмотренным вопросом будет адресация дополнительных устройств этого
компьютера. Итак, здесь мы имеем следующую картину:
Порты обычных устройств. Доступны всегда.
#XX1F - порт A микросхемы 580ВВ55, обычно - Kempston джойстик.
#XX3F - порт B 580ВВ55. Обычно - данные на принтер.
#XX5F - порт C 580ВВ55. Обычно - управление принтером (строб и BUSY).
#XX7F - регистр управления 580ВВ55.
#XXFE - бордюр, магнитофон, клавиатура и т.д.
#7FFD - первый регистр конфигурации. Все как у Speccy-128.
#DFFD - второй регистр конфигурации. Структура рассмотрена ниже.
#BFFD - регистр данных AY.
#FFFD - регистр адреса AY.
Порты контроллера IDE винчестера. Эти и нижеследующие порты доступны только
при снятой защелке (бит 5 порта #DFFD равен 1).
#06AB - системный регистр контроллера Только запись.
#07EB - регистр команд винчестера. Только запись.
#07CB - регистр состояния винчестера. Только чтение.
#06EB - регистр номера головки на запись.
#06CB - регистр номера головки на чтение.
#05EB - старший байт номера дорожки на запись.
#05CB - старший байт номера дорожки на чтение.
#04EB - младший байт номера головки на запись.
#04CB - младший байт номера головки на чтение.
#03EB - регистр номера сектора на запись.
#03CB - регистр номера головки на чтение.
#02EB - счетчик секторов на запись.
#02CB - счетчик секторов на чтение.
#01EB - регистр стартового цилиндра предкомпенсации. Только запись.
#01CB - регистр ошибок. Только чтение.
Порты компорта.
#XXB3 - регистр управления компортом и контроллером прерываний.
#XXD3 - регистр данных 580ВВ51.
#XXF3 - регистр управления/состояния 580ВВ51.
#XX8F - регистр чтения и загрузки канала 0 580ВИ53. Задает скорость работы
последовательного порта.
#XXAF - регистр чтения и загрузка канала 1 580ВИ53. Используется для
генерации -12 В для питания 580ВВ51.
#XXCF - регистр чтения и загрузки канала 2 580ВИ53. Hе используется.
#XXEF - регистр управления 580ВИ53.
Порты CMOS-часов.
#XXDF - регистр данных 580ВИ51.
#XXFF - регистр адреса 580ВИ51. Только запись, поэтому на порт атрибутов не
влияет. Правда, у меня почему-то этот порт не работает, хотя
говорят, что он все-таки есть.
Я специально обьединил порты в группы по устройствам. В этих группах ясно
прослеживается принцип построения адресов:
XXXXXXXX 0AAXXXXX - 580ВВ55.
XXXXXXXX XXXXXXX0 - порт #FE.
0XXXXXXX XXXXXX0X - порт #7FFD.
XX0XXXXX XXXXXX0X - порт #DFFD.
X0XXXXXX XXXXXX0X - порт #BFFD
111XXXXX XXXXXX0X - порт #FFFD.
XXXXXAAA 1CI01011 - контроллер винчестера.
XXXXXXXX 1CA10011 - компорт (580ВВ51).
XXXXXXXX 1AA01111 - 580ВИ53.
XXXXXXXX 1XA11111 - CMOS-часы.
A - биты локальной адресации (номер регистра в устройстве)
C - если этот бит сброшен, то выбирается дополнительный регистр, не входящий
в микросхему, а биты адресации игнорируются.
I - в контроллере винчестера указывает направление передачи данных.
0 - ввод, 1 - вывод.
Мы видим, что дешифрация стандартных портов построена стандартно, а за
дополнительные устройства отвечают биты 0 - 4 и 7, причем каждому устройству
соответствует строго определенная их комбинация. Таким образом, для
подключения дополнительных устройств можно использовать оставшиеся комбинации
этих битов плюс все возможные комбинации битов локальной адресации.
В этом случае возможно использование следующих адресов:
XXXXXXXX 10000011 - #83.
XXXXXXXX 10100011 - #A3.
XXXXXXXX 11000011 - #C3.
XXXXXXXX 11100011 - #E3.
XXXXXXXX 10000111 - #87. 1
XXXXXXXX 10100111 - #A7. 12
XXXXXXXX 11000111 - #C7. 1
XXXXXXXX 11100111 - #E7. 12
XXXXXXXX 10010111 - #97. 1
XXXXXXXX 10110111 - #B7. 123
XXXXXXXX 11010111 - #D7. 1
XXXXXXXX 11110111 - #F7. 123
XXXXXXXX 10011011 - #9B.
XXXXXXXX 10111011 - #BB.
XXXXXXXX 11011011 - #DB.
XXXXXXXX 11111011 - #FB.
Вот полный список портов, свободных для использования любыми устройствами.
Теперь, для совместимости с остальными моделями компьютера, выкинем те
адреса, которые конфликтуют с устройствами, не имеющимися в Profi, но
присутствующими в других машинах. Из нерассмотренных здесь интерфейсов
известны:
XXXXXXXX SXXXX0XX - ZX-LPRINT.
XXXXXXXX XX0XXXXX - Kempston mouse.
XXXXXXXX XXX0XXXX - модем.
Отбросив из вышеприведенного списка адреса, конфликтующие с этими, останутся
#B7 и #F7, дешифрацию которых необходимо производить по следующей схеме:
XXXXXXXX X0X10111 - #B7.
XXXXXXXX X1X10111 - #F7.
При этом мы не рассматриваем старший байт адреса, а если применить и его,
то получим ну очень много устройств. Только НЕ НАДО стремиться к упрощению
адресации. Здесь я упростил дешифрацию до предела, опустив 2 бита, но ЛЮБОЕ
дальнейшее упрощение приведет к конфликтам. А вот и пример того, до чего
может довести упрощение адресации. Если бы стандартные порты Speccy-128
дешифрировались полностью, то и адресов было бы намного больше. Вспомните
поговорку - скупой платит дважды. Так что не гоняйтесь за дешевизной - пара
корпусов никого не устроит.
Рассматривая приведенную карту портов Profi, Вы не могли не заметить
один печальный факт - ни Kempston mouse, ни модем НЕ ВПИСЫВАЮТСЯ в нее. Вот
Вам печальный пример того, что разработчики не всегда учитывают особенности
других существующих устройств. Вот и С. Шмелев в ZX РЕВЮ 96/9 предлагал
перепахать интерфейс ВВ55. Конечно, на Кванте ничего не стоит это сделать,
но вот на Профи... Нет, я не говорю, что все авторы подобных разработок
неправы, а наоборот, неправы были разработчики Profi. Они стали лепить
новые порты, не ознакомившись с тем, что уже есть. И теперь владельцы этих
машин лишены возможности использовать Kempston Mouse, а если они пользуются
винчестером и компортом, то во время работы с ним они вынуждены отключать еще
и модем. Вот к чему мы пришли.
Поэтому заявляю всем разработчикам аппаратуры - ПРЕКРАТИТЕ ВЫДУМЫВАТЬ НОВЫЕ
СТАНДАРТЫ! ХВАТИТ!!! Но и впадать в другую крайность - призывать всех
повыкидывать машины, подобные моей, и покупать Scorpion, тоже не стоит, ибо
этих несчастных мутантов уже слишком много, и в одночасье сменить парк машин
невозможно. Уже есть какие-то стандарты, пусть не совсем сложившиеся, но
все-таки с ними надо считаться. Иначе это не прекратится. Мы должны выбрать
какой-то один стандарт и следовать ему, но так, чтобы его можно было внедрять
на ВСЕХ машинах. Я очень хотел бы, чтобы с моей статьей ознакомились в
редакции журнала ZX-FORMAT, пропагандирующей Kempston Mouse и призывающей
вынести на свалку все остальное, а также уважаемые члены студии X-TRADE,
готовящие к выпуску свой General Sound. Как бы с ним не вышло такой же
истории, как и с Kempston Mouse на Profi...
И напоследок скажу немного на тему новой операционной системы. Эта тема
напрямую связана с той, которую я рассмотрел выше. Ведь для обеспечения
функционирования нового оборудования нужна новая ОС. Только такая система
должна быть гибкой и наращиваемой, чтобы обеспечить ее подстройку под любое
новое оборудование. В ZX РЕВЮ 96/7-8 прозвучали мысли о том, что надо
пересаживаться на Profi под CP/M. Повторяю - ВЫ НИКОГО НИКОГДА НЕ ЗАСТАВИТЕ
ВЫКИНУТЬ СВОЙ СКОРПИОН И КУПИТЬ PROFI (как, впрочем, и наоборот - примечание
для редакции ZX-FORMAT).
К тому же базовой моделью остается машина со 128K, следовательно ОС ОБЯЗАНА
ФУНКЦИОНИРОВАТЬ С ЭТИМ ОБЬЕМОМ ПАМЯТИ. Дальше - загружаемая ОС подвержена
атаке вирусов, а ПЗУ'шная - нет. Тем более, что никому не нужен Бейсик-128.
Пару слов по поводу четвертой страницы ПЗУ. Не используется она далеко не
везде. Например, на Scorpionе в ней находится теневой монитор, на GRMе -
системное меню, на Profi - загрузчик CP/M и всевозможные тесты. К тому же на
многих машинах потребуются аппаратные доработки для обеспечения программного
доступа к ней, а это увеличивает стоимость ОС. Вот на чем надо экономить, а
не на ЛЛ'ках в дешифраторах портов. К тому же CP/M жутко тормозная. "Но для
этого есть TURBO!"-скажете Вы. А на IBM PC тоже было TURBO, потом его сняли,
потому что его перестали выключать, а потом и этого стало мало... Нет,
товарищи, так не годится... К тому же не у всех оно есть. Отсюда еще одно
условие - ОС ДОЛЖНА РАБОТАТЬ С НОРМАЛЬНОЙ СКОРОСТЬЮ НА 3.5 МГЦ. И
современное ПО как раз в TR DOS'е намного превосходит CP/M'овское не по
количеству ненужных наворотов, а по удобству работы. В общем, на эту тему мы
еще поспорим, а сейчас придется закругляться, а то если я начну разбирать по
косточкам этот вопрос, то статья вдвое длинее станет.
Другие статьи номера:
Похожие статьи:
В этот день... 29 ноября