Дополнительные видеорежимы подобные Таймекс
256*192 аппаратный мультиколор
512*192 с выбором цвета бумаги/фона
Только похоже в фирменную ULA первых версий не влезет
Как может повлиять на написание программ, исправление аппаратной ошибки фирменного спектрума. Нарушение регенерации экрана при некоторых значениях регистра I.
Какие предложения по прерываниям. В SAMcoupe сложно. Есть простое решение?
Еще простые технические решения для графики, звука
По поводу графики вопрос интересный. Действительно, если принять спектрумовское техническое решение организации экранной памяти, что было бы можно в нем улучшить не пожертвовав ни процессорным временем, ни дополнительными драгоценными байтами?
Для начала следующие соображения:
1. Пожертвовав 6-ю дополнительными битами где-нибудь в памяти, можно было бы сделать "сдвиг" всех знакомест по горизонтали на 0...7 точек (3 бита) и по вертикали на 0...7 точек (3 бита). Это дало бы возможность плавно передвигать объекты (напрямер, статичную картинку, разноцветный текст и т.п.) без конфликта атрибутов.
2. Если уж есть режим мигания, прочему бы не сделать его немного полезней, введя возможность изменения его длительности? По-минимуму можно обойтись 4-мя вариантами длительности (2 бита), которые записать в байт из п.1 (таким образом, все 8 битов этого дополнительного байта будут осмысленны).
Но это все пожелания. А вот с базовыми атрибутами ИМХО можно было бы и получше заморочиться. Давайте посчитаем кол-во возможных вариантов раскраски знакоместа: 8(вариантов INK)*8(вариантов PAPER)*2(BRIGHT)*2(FLASH) = 256 (2^8, естественно). Без учета BRIGHT и FLASH всего 8*8 = 64 варианта раскраски. НО! Из них уникальных всего... 28! Дело в том, что INK и PAPER абсолютно равнозначны, и вариант, когда например INK-зеленый, а PAPER - голубой равносилен (с точностью до инверсии бита конкретной точки) варианту INK-голубой, PAPER - зеленый!
Очевидно, что оставшимся 64 - 28 = 36 вариантам сочетаний INK и PAPER можно поставить в соответствие другие палитры. Да, простота и ясность могут пострадать. Хотя, как закодировать... Можно так: если численное значение цвета INK < численного значения цвета PAPER, то цвета нормальные. Если наоборот, то повышенной яркости (пока забудем про бит BRIGHT). Таким образом имеем 28 стандартных палитр, 28 палитр повышенной яркости и 8 вариантов (это когда цвет INK = цвету PAPER) еще на что-нибудь. Например, на коричневый цвет INK на 8-ми различных цветах PAPER (коричневого спектруму не хватает).
Как-то так...
Бит яркости - ИМХО идея удачная. С учетом вышесказанного, может еще больше повышать яркость (тогда имеем уже 4 градации яркости). Атрибут мигания конечно не очень нужен. Вместо него можно ввести еще одну градацию яркости, а можно сделать вообще вот так:
Битов BRIGHT и FLASH нет. По 4 бита на INK и на PAPER. 120 вариантов сочетаний INK и PAPER обычной яркости (INK < PAPER) + 120 вариантов сочетаний повышенной яркости (INK > PAPER) + коричневый на 16 различных цветах (8 обычной, 8 повышенной яркости). Сравните все это с базовыми 28 вариантами уникальных сочетаний обычной яркости + 28 вариантов уникальных сочетаний повышенной яркости с малофункциональоным атрибутом мигания и без коричневого цвета.
Такие мысли родились... Конечно, предстваленные варианты не претендуют на оптимальность с точки зрения организации цветов, но претендуют на полноту использования памяти. Чего, как я надеюсь показал, в базовой кодировке нет (она недоиспользует память, причем очень сильно).
Последний раз редактировалось e2e4; 23.05.2010 в 20:33.
1) по поводу какой бы комп получился если бы Альтвассер и Викерс делали его сами? Вот такой: http://en.wikipedia.org/wiki/Jupiter_Ace
2) по поводу улучшения графики путем введения палитры и выброса flash/bright - идея не новая и вероятно скоро будет сделана в железе http://sites.google.com/site/ulaplus/
вот мнение по этому режиму того самого Криса Смита который раскопал ULA:Could Sinclair have done this back in the day?
Yes, but more than one ULA would have been required and it would have been much more complicated and therefore expensive. It would take "...gazillions of gates and flip-flops. 64 * 8 Flip-Flop/latches for the palette storage = 512, plus a 640 2-input-nor gates for the multiplexing (4*16*8 + 16*8 ). That would take 832 matrix cells of the ULA, plus the other necessary circuitry. The 5C000 ULA had 440 matrix cells in total, so you'd need at least two ULAs of that size. This is so impractical that external memory would have been required for the palette. Propagation delay will have been the major issue, leading to other colour effects similar to the two-levels-of-intensity effect and the edge-artifact with flashing cells. As devices are much larger and efficient these days, it is likely to fit into a reasonably cheap CPLD. Worse case, a small amount of external memory may be required, or FPGA is used instead, as this will have the internal memory required. The design has been proven, but not synthesized, so I don't know how big a CPLD/FPGA is required." -- Chris Smith.
Крис смотрит на вопрос "со своей колокольни" считая, что все что было в схемотехнике осталось без изменений, а можно только менять содержимое ULA. При том зачем-то пытаясь сделать из нее ОЗУ (типа в одну ULA не влезет, тогда нужно две).
Наш ответ "Турецкому султану" будет таков: нужно было не экономить на спичках (в надежде собрать денег на элекромопед), а рассчитывать, что после удачной обкатки схемы на ULA (неважно двух или трех) она будет перенесена в заказной чип или более совершенную ULA.
Другое дело, что Синклер после провала с заказухой в "Черных часах" болялся связываться с разработкой микросхем (с нуля). А после калькуляторов мыслил категорией "жизни" 2-3-х лет для выпускаемого компьютера. А следовательно не видел смысла делать его расширяемым (в области графики). К тому же выжать что-либо по разрешению из телевизионного экрана не просто. А кол-во цветов для учебного компьютера (он ведь не для игр его делал) было достаточным.
Впрочем, судя по длящемуся до настоящего времени упрямству дедушки Клайва, это был бы уже ZX Spectrum без Синклера.
Так или иначе приходим к мысли что zx-spectrum появился в следствии удачного стечения обстоятельств а не потому что хотели сделать "хороший продукт для людей на долго". Клайв похоже так ничего до сих пор и не понял что касается компьютеров и до сих пор считает что софт это дешевая прибавка к аппарату, которую спокойно напишут за пол года энтузиасты для тех кто купит себе это дешевое железо. Многие, особенно железячники у нас тоже так думали и в непопулярности советских компов винили К580ВМ80. Кроме того, судя по тому каким выпустили jupiter ace ихние железячники были "далеки от народа" как в прочем в свое время и Иван Мак со своим спринтером. Совсем другое дело atari 8-bit, c-64, apple-2, nes конечно при разработке этих компов были потраченны суммы на порядки большие, но разработчики четко представляли место будущего компа на рынке и в общих чертах его будущий софт.
ZX Spectrum появился в результате жесткой конкуренции SRL с Acorn, как продукт призванный завоевать рынок школьных компьютеров. Следствием чего были его характеристики и цена.
Массовость, которую получил ZX Spectrum действительно стала следствием его низкой цены, а вот столь быстрое появление софта действительно было связано во многом с удачным моментом появления. По телевизору в прайм-тайм гоняли передачи о программировании, журналы пестрели статьями о вундеркиндах заработавших состояиния написанием игр, учереждались разные премии и все это подогревалось массовым спросом. Программисты становились живыми легендами (или легендочками).
Безусловно C-64 более совершенный и произвели их раз в 10 больше чем ZX-ов. Но при этом кол-во софта примерно одинаково.
Безусловно Apple ][ куда более совершенен с точки зрения архитектуры и расширяемости, да и выпускался в течение десяти лет, но стоил при этом в пять раз дороже ZX-а.
Безусловно Клайв Синклер вел себя самонадеяно и видел в ZX Spectrum всего лишь еще одну ступеньку на пути к своим амбициозным идеям. И расстался то он со всеми ZX-ами без особого сожаления. Продал, как свой подержаный авто.
Но дальше спеки словно пережил вторую жизнь, у нас в странах бывшего СССР. Выжил вопреки запрету на торговлю и невозможности легально купить детали, вопреки дороговизне производимых клонов, проломив все преграды, перетянув производства и прессу на свой лад. И став частью судеб целого поколения.
А ведь всего два инженера и один дизайнер над ним работали. Если разумеется не считать вложения в разработку и производство, рекламу, информационный фон, бренд и направляющую роль Клайва Синклера .
Мои предложения были бы такие:
аппаратные: 1) ввести пару портов - в один вводишь координату X, в другой координату Y; в третьем порту определяется нужно нарисовать точку или её стереть (может быть еще режим OVER). Реализовать подобное было бы очень просто, а скорость векторных игр возросла бы существенно.
2) Динамиком управлять с помощью простейшего 8-битного АЦП R-2R
Программные улучшения: 1) заменить стандартную процедуру рисования окружности на быструю с клиппировкой 2) у оператора PLOT снять тупое ограничение на количество точек по вертикали 176 и поставить 192
3) исправить ошибку NMI
Кворум-192, Кворум-128 CP/M, Кворум-64, ZS-Scorpion 256 Turbo+&Caro ZX_MC, Мастер48К
Видимо имелся ввиду ЦАПДинамиком управлять с помощью простейшего 8-битного АЦП R-2R
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)