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'овское не по количеству ненужных наворотов, а по удобству работы. В общем, на эту тему мы еще поспорим, а сейчас придется закругляться, а то если я начну разбирать по косточкам этот вопрос, то статья вдвое длинее станет.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября