Благодарю за отклик и найденные неточности. Однако замечание про ШИМ мне непонятно: посмотрел ещё раз спецификацию i8253 – длительность импульса (режим 1) кратна периоду тактовой частоты (1/1.5 МГц=0,667 мкс) и она должна быть не более половины периода частоты дискретизации (если будет больше половины, то «громкость» начнёт не расти, а падать). Т.е. при частоте дискретизации, скажем, 8 кГц (период 125 мкс) получаем не более 125/2/0,667=93 уровней громкости. Частоты дискретизации реально использовались порядка 4-8 кГц – звук через обычный магнитофон или усилитель при этом был вполне качественным (насколько это возможно при таких частотах и таком типе ЦАП). В «сэмплерном» синтезаторе (пример его звучания в ролике) использовались частоты 7,2 кГц (один голос) и 3,6 кГц (два голоса) – большую частоту при выбранном функционале (с произвольными амплитудной и частотной огибающими) мне получить не удалось (не хватало скорости процессора).
А вот замечание по строению экрана у «Львова» совершенно верное – я действительно совсем забыл, что у него цвет кодируется не двумя последовательными битами (как у БК, CGA, Амстрада и т.д.), а очень редким и странным способом – со смещением в 4 бита (я даже теперь как-то сразу и не пойму – а как же можно на «Львове» сделать сравнительно быстро попиксельный скроллинг?). Так что сравнение со «Львовом» в плане горизонтального скроллинга, конечно, в статье ошибочное (но само по себе преимущество планарной организации «Вектора» от этого, конечно, не меняется). Спасибо за найденную ошибку.
ROR – это, конечно, моя опечатка, должно быть RAR.
Стабильность времени выполнения машинных команд на «Векторе» – это для меня пока загадка. Я когда-то считал, что все команды у него выполняются всегда за одинаковое время, однако как раз при работе с цифровым звуком (а это было давно – 1993-94 год, и сейчас я, конечно, всех тонкостей не помню) столкнулся с очень загадочным явлением – при вроде бы абсолютно точном выравнивании времени выполнения разных ветвей программы (что было необходимо для соблюдения равномерных интервалов дискретизации) звук воспроизводился с подозрительным треском (не очень сильным, но всё же заметным – см. ролик), которого теоретически быть не должно. И убрать этот треск у меня тогда не получилось, поэтому я и пришёл к выводу, что время выполнения команд не совсем стабильно. А при подготовке статьи наткнулся на какой-то вариант описания «Вектора», где было также написано, что иногда выполнение команд занимает всё же больше тактов, чем обычно. Если у вас есть точные данные по этому вопросу, поделитесь, пожалуйста.
- - - Добавлено - - -
Откуда же вы взяли, что "Вектор" должен быть быстрее "Спектрума" – в статье этого нет. Понятно, что при чисто программном выводе графики Z80 у "Спектрума" быстрее ВМ80А "Вектора". Единственный случай, когда скорости "Вектора" и "Спектрума" при этом сравнимы – очистка мелких тайлов или заполнение их мелкой текстурой (за счёт столбцовой видеопамяти "Вектора" и удобства в этом случае вывода через PUSH). Ну и два других случая, когда "Вектор" может быть быстрее "Спектрума" – "аппаратное" наложение спрайтов на фон (за счёт наложения планов на "Векторе") и вертикальный скроллинг (у "Вектора" он аппаратный, в отличие от "Спектрума"). А какой смысл сравнивать эти два ПК при чисто программном скроллинге или программном наложении спрайтов – итак понятно, кто здесь будет быстрее.
И зря вы опять фантазируете, выискивая недостатки "Вектора" – в статье всё достаточно подробно и честно описано (попиксельный сдвиг на "Векторе" используется довольно часто и выглядит вполне плавно, программное наложение спрайтов практически не используется (всегда применяется очень быстрое "аппаратное"), теневой буфер почти никогда не нужен (по причине достаточно быстрого скроллинга и наложения спрайтов на фон).
Если же вы хотите серьёзно сравнить "Вектор" и "Спектрум" по скорости работы с графикой – это очень интересно, но лучше уж тогда создать отдельную тему и обсуждать это в ней.
Однако, как я уже написал в статье, главное достоинство "Вектора" и отличие его от "Спектрума" – не сокращение графических возможностей до минимума, чтобы процессор мог чисто программно манипулировать графикой с хорошей скоростью, а гибкость и универсальность видеосистемы плюс хорошие аппаратные средства ускорения графики (возможность выбора количества цветов и разрешения, отсутствие атрибутных ограничений, аппаратное наложение планов (с возможностью выбора, сколько цветов будет в каждом плане), аппаратный вертикальный скроллинг, программируемая палитра, возможность программного скроллинга не всего экрана, а одной-двух плоскостей и т.д.).
PS. Ещё одно преимущество "Вектора" над "Спектрумом-48" – аппаратное переключение кадровых буферов, причём тоже гибкое. Например, если нам надо получить абсолютно плавный (без изломов и мерцаний) программный монохромный скроллинг хоть всего экрана на "Векторе", мы отводим для видимого изображения 3 плоскости (тогда на экране будет до 8 цветов), формируем любым способом сдвинутое изображение в скрытой плоскости и во время обратного хода луча меняем местами отображаемую плоскость и скрытую. И всё - будет отличный скроллинг (с аппаратным наложением спрайтов!), и не надо тратить время процессора для копирования из буфера на экран. Аналогично можно использовать два аппаратных 4-цветных буфера (по две плоскости в каждом) и сдвигать уже 4-цветный фон (но тогда нужно накладывать спрайты программно или использовать под ними однородный фон).





Ответить с цитированием