Spectrofon
#17
01 февраля 1996 |
|
Система - обсуждение насущных вопросов стандартизации Спектрум-совместимых компьютеров.
╔═══════╦═─────────────═╦══════╗ │───═══ │ C И C Т Е М А │═══───│ ╚═══════╩═─────────────═╩══════╝ Пpедлагаемый ниже матеpиал поднимает, на наш взгляд, очень интеpесную тему. Пе- pедаем слово нашим коppеспондентам из Хаpькова. Jemmini: В двух словах о проблеме. Нас весьма поразило то количество программ из России, которое ориентировано только на "ПЕНТАГОН" и не на что другое. Эта продук- ция в подавляющем большинстве случаев выг- лядит крайне плохо на фирменных машинах и машинах с раздельным полем памяти. Склады- вается впечатление, что это уже и не для SPECCY писано, а неизвестно для чего и на чем! Может быть эталоном стал уже вовсе не SPECCY, а его доморощенный аналог? Одним словом, я вас очень прошу, поднимите этот наболевший вопрос в своем журнале, ибо только ваш журнал может здесь чем-то по- мочь! (C) Jemmini & Metallica "МЕДЛЕHHАЯ" ПАМЯТЬ SPECCY ═══════════════════════════════════ ...Многие из них безвозвратно ушли в прошлое, некоторые трансформирова- лись, из некоторых родились "мон- стры"... (из предисловия к книге Н.Родионова) ATTENTION! Посредством жуpнала "SPECTROFON" мы хо- тим обратиться ко всем программистам и ха- керам, которые, возможно не по своей вине, забыли или не знали одно очень важное свойство SPECCY, о котором мы попробуем рассказать. Jemmini: Прежде, чем я начну излагать суть проб- лемы, хочу отметить одно различие в море совдеповских схем. Существует две их реа- лизации: с общим полем памяти и с раз- дельным. К первой относятся "ПЕНТАГОН", "ЛЕНИНГРАД-1,2", "БАЛТИК" и т.п. Предста- вителями второй реализации являются "КРАСНОДАР", "ХАРЬКОВ", "МОСКВА-48" и... фирменный SPECCY! В фирменном SPECCY, при чтении видео- контроллером данных, происходит "запира- ние" тактовых импульсов, идущих к цен- тральному процессору. Таким образом реали- зован останов процессора на время вывода информации из ОЗУ на экран. Как известно, видеопамять SPECCY находится в страницах ОЗУ с номерами 5 и 7. Поэтому видеокон- троллер производит выбор данных именно из этого участка памяти. Но SPECCY устроен так, что упомянутые страницы составляют со страницами 4 и 6 один блок. Только для удобства изложения я назову его блоком ви- деопамяти (далее по тексту БВП). Работа БВП из-за обращений к нему видеоконтролле- ра несколько замедлена, а именно на 25% (дело в том, что эти обращения "перекры- вают" два тактовых импульса из каждых восьми). Это замедление в определенных случаях может влиять на работу компьютера в целом, причем на быстродействии послед- него сказывается зависимость от частоты обращений центрального процессора к БВП. Замечу, что наибольшего своего значения эта частота достигает при выборке кодов команд из упомянутой памяти. Поэтому для сведения к минимуму обращений к БВП, ра- ционально помещать в него данные. Именно для данных и применяется эта память. Одним из тяжелых случаев является тот, когда в БВП помещена программа. При таком размещении, быстродействие на этом отрез- ке программы падает на четверть. Но даже не это заставило меня написать настоящее послание, а нечто менее очевид- ное, но не менее серьезное и неприятное! И эти неприятности связаны с привычкой мно- гих доморощенных...-soft'ов устанавливать в регистр вектора прерываний I число, ука- зывающее на этот злополучный БВП. Эта нак- ладка приводит к еще более трагичным ре- зультатам. Как я уже написал, фрагмент программы, попавший в БВП, теряет 25% скорости, но если туда попадает таблица прерываний, то ВСЯ МАШИНА СТАНОВИТСЯ МЕДЛЕННЕЕ НА 25%! Не углубляясь в причины, скажу к чему это приводит. Нет, машина не взрывается и да- же не виснет, а всего-лишь ВСЕ перестает "укладываться в прерывание", как принято говорить у программистов. Но это еще не все и не самое худшее, когда казалось бы и так достаточно. Беда начинается вместе с загрузкой с диска - ДОС не может читать диск! Ведь скорость его вращения осталась прежней, а скорость ДОС упала на 25%, в результате чего все задержки по времени стали неверными! Возникает ошибка чтения, а мне ли вам рассказывать как многие prog реагируют на это... Стоит заметить, что вышеизложенное "свойство" не зависит от режима прерыва- ний! Как решение этой проблемы мы рекомен- дуем всем программистам устанавливать в регистре I значения в диапазонах от #00 до #3F и от #80 до #BF. При такой установке накладок не происходит. Возможна также ус- тановка в диапазоне от #C0 до #FF при ус- ловии, что текущими в подавляющем большин- стве случаев являются страницы не принад- лежащие БВП. В случае значений от #40 до #7F, вектор прерываний всегда будет указы- вать в БВП, что неизбежно приведет к поте- ре быстродействия. Уважаемые коллеги из России! Разве вы располагаете только "ПЕНТАГОНАМИ"? Неуже- ли вы не видите как делали все фирмы, как делали поляки (у них были фирменные маши- ны!), и наконец, как сделано во всем из- вестных SATISFACTION и INSULT? Может быть вы просто не обращали внимания, а ведь там все с учетом вышесказанного: блок видеопа- мяти - под данные, остальная память - под программу. И что вы у фирм точно не найде- те, так это регистр I со значениями от #40 до #7F. Что же касательно положения в Украине, то могу вас заверить, что машин с раз- дельным полем памяти здесь предостаточно. Да и судя по публикациям в жуpнале "SPECTROFON" в России аналогичные машины тоже выпускаются. Jemmini & Metallica: Все, кто прочел эти строки! Примите во внимание вышеизложенное и не ленитесь на время работы с ДОС в регистр I заносить #3F, а в ОЗУ устанавливать таблицу преры- ваний так, чтобы она не попала в блок ви- деопамяти! А нам остается только на- деяться, что тот, кто допускал такие ошиб- ки, больше их не сделает, что наш рассказ будет полезен всем вам, дорогие синклерис- ты. Пока! Матвийчук М.В. (Jemminisoft) 310066, г.Харьков, пер. Прогрессивный, д.28, кв.1 тел.:(0572) 98-81-35 Гребенник В.А. (Metallica) 310091, г.Харьков, ул.Танкопия, д.5, кв.44 тел.:(0572) 90-45-24 * * * "S": Надо отметить, что эта проблема под- робно разбиралась в трехтомнике "Програм- мирование в машинных кодах и на языке АС- СЕМБЛЕРА" изданном "Инфоркомом" в 1993г. Но, поскольку это издание сейчас перешло в разряд библиографических редкостей, инфор- мация харьковских программистов несомненно вызовет определенный интерес. Еще раз об- ращаем ваше внимание на тот факт, что при попадании регистра I в диапазон от #40 до #7F замедление компьютера НЕ ЗАВИСИТ ОТ РЕЖИМА ПРЕРЫВАНИЯ! В каждом цикле машинных команд Z-80 обращается к ячейке памяти, адресуемой регистром I, выводя его в стар- шие восемь битов адресной шины и активизи- руя линию запроса памяти MREQ. Это ин- терпретируется ULA как обращение к БВП, приводя к конфликту с контроллером дисплея вне зависимости от режима прерыва- ния. Однако мы также не рекомендуем ис- пользовать значения регистра I от #00 до #3F для второго режима прерывания, т.к. при этом таблица прерываний попадает в об- ласть ПЗУ, что на компьютерах с неста- бильной шиной данных приводит к непредска- зуемым результатам. Видимо, оптимальным будет использовать значения регистра I из диапазона от #80 до #BF. ─═══─
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября