Вход

Просмотр полной версии : Быстрая видеокарта "METEOR-2013"



Страницы : 1 2 3 4 [5]

HardWareMan
12.06.2019, 16:49
zst, причем, на 100-й странице.

Ратмир
12.06.2019, 17:42
Off top
Zst что означает ваша подпись? Напишите в ЛС чем помочь?

zx-kit
13.06.2019, 04:00
zst, причем, на 100-й странице.

У меня на 25-й странице.
Надо больше писать.

zx-kit
16.06.2019, 08:07
Для упрощения подключения к монитору можно сделать скандаблер. Кадровую частоту оставить 50 Hz, а частоту точек и строчной развертки удвоить.

Для кварца 14 MHz есть выбор из таких режимов 640x480 VGA:

Кадровая 50 Hz, INT 50 Hz, Z80 3.5 MHz.
Кадровая 60 Hz, INT 60 Hz, Z80 3.5 MHz.
Кадровая 60 Hz, INT 30 Hz, Z80 3.5 MHz.
Кадровая 67 Hz, INT 67 Hz, Z80 3.5 MHz. Точки квадратные.
Кадровая 67 Hz, INT 33 Hz, Z80 3.5 MHz. Точки квадратные.

Если поставить более быстрый Z80, то его можно будет использовать на частоте в 2 или 4 раза быстрее.

Смена частоты Z80 или INT может привести к изменениям в скорости игры.
INT 30 или 33 Hz даст больше времени для построения в буфере следующего кадра. Если положение INT перенести в правый нижний угол SCREEN, то времени для копирования до луча будет больше.

Какой режим лучше ?

На мой взгляд режим "Кадровая 67 Hz, INT 33 Hz, Z80 3.5 MHz. Точки квадратные." позволит в будущем легко сделать плавные игры с 33 fps.

zx-kit
16.06.2019, 22:05
Для копирования буфера с новой графикой на экран надо использовать автомат на счетчиках и дополнительную память для загрузки параметров копирования. Наверно более универсально записать один раз в дополнительную память адреса отрезков в буфере и экране. А потом данные для очередного копирования будут читаться на более высокой скорости. Проще заранее посчитать и загрузить в таблицу.

Для простоты автомата можно байты парами записывать.
Первый байт - что делать: увеличивать или загружать и какой счетчик,
а второй байт - байт для загрузки части адреса или не использовать.

Если байты идут последовательно, то в первом байте - соответствующее число.
Во втором байте: по два бита на счетчик - что делать.

Ориентировочно:
00 - не менять
01 - +1
10 - -1
11 - перенос из младшего счетчика

Можно сделать хардварное перетасовывание битов приемника чтоб писать в видео память как
будто она линейно расположена. Тогда к экрану лучше обращаться не по адресам, а по координатам в байтах и аппаратно биты переставить.

А как можно сохранить часть фона перед рисованием в буфер спрайта, а потом восстановить ? Самое простое - сохранить весь буфер, но в друг это не для всех игр подойдет. Если буфер линейный наверно можно змейкой. Указать вначале адреса, а потом +-1.

Может проще все игры под линейный буфер переделывать для однотипности ? Линейный буфер также можно весь змейкой копировать - так быстрее. Линейный буфер упрощает переход к байту вниз. Если переставить биты аппаратно, то даже экран становится линейным. А вот если в буфере строки идут подряд по 32 байта, то для перехода к байту вниз надо прибавить 32 к адресу...

Можно для этого случая сумматор добавить, но если игру переделать под линейный буфер, то и рисование графики в буфер ускорится.

Если линейный буфер сделать с адреса 0000H, то еще проще и быстрее.

А если еще ускорить z80, то будет все рисоваться плавно и быстро.

omercury
17.06.2019, 00:09
Если переставить биты аппаратно, то даже экран становится линейным. А вот если в буфере строки идут подряд по 32 байта, то для перехода к байту вниз надо прибавить 32 к адресу...
А сейчас просто сделать инкремент старшего байта адреса.
Ну ведь специально сделана такая "странная" адресация для ускорения и удобства.

NEO SPECTRUMAN
17.06.2019, 05:52
Ну ведь специально сделана такая "странная" адресация для ускорения и удобства.
для ускорения и удобство сделана адресация у
специалиста, ориона, вектора...

ЭТО сделано из экономии и для упрощения конструкции

omercury
17.06.2019, 22:41
ЭТО сделано из экономии и для упрощения конструкции
При линейной адресации длина дорожек больше чтоле?
Да меди сэкономили? :D

NEO SPECTRUMAN
18.06.2019, 00:53
При линейной адресации длина дорожек больше чтоле?
Да меди сэкономили?

вот тут описуетсо как из за кастрированного спектрум 16К
пришлось выкручиваться и сделать то что было сделано
http://hype.retroscene.org/blog/891.html

менее читабельная но более подробная статья
http://zxpress.ru/article.php?id=18217

клепались бы сразу одни 48-е
и возможно бы адресация была линейной
а проц бы стоял на вайте при записи в видео память пол строки пока читает видео контролер
тк на это, на фоне предыдущих zx80\81, могли бы и положить...

- - - Добавлено - - -

кстате смотрю на схему резинового спека
и примечательно то
что мы называем
"медленная" память на самом деле быстрая 150ns
а то что называем
"быстрая" память на самом деле медленная 200ns :v2_dizzy_vodka:

omercury
18.06.2019, 16:10
Забавно читать, как одни обосновывают то, что сделали другие. Причём сделали значительно раньше обоснования.
Всё намного проще: младший байт (именно байт, не 7 бит) адресов пикселей и атрибутов полностью совпадает.
И сделано это как раз для удобства манипуляций с экраном, а вовсе не для регенерации памяти.
И, разумеется, для увеличения скорости этих манипуляций - 16битная математика на восьмибитке ресурсозатратна.

NEO SPECTRUMAN
18.06.2019, 18:17
Всё намного проще: младший байт (именно байт, не 7 бит) адресов пикселей и атрибутов полностью совпадает.
ты ВООБЩЕ понимаешь о чем там написано?
именно 7 бит а не байт


у 4116 только 7 адресных линий
вместимость 128*128 = 16384 бита (2К)
кури мат часть

вот те самые 16 килобайт "медленной" памяти
на схеме резинового спектрума
https://jpegshare.net/images/ac/1b/ac1b4913bc452f94c63f93f152c62363.png
слава богу хоть в наших спектрумах
нет памяти с тремя напряжениями питания...

goodboy
18.06.2019, 19:07
построение экрана уже многократно обсуждалось
"Когда контроллер дисплея считывает два байта, адрес байта атрибутов выставляется полный, 14 бит двумя циклами по 7 бит RAS-CAS. Чтение байта пикселей выполняется сразу вслед за этим в страничном режиме, одним циклом CAS. При этом выставляются только старшие 7 бит адреса, младшие 7 бит используются от атрибутов. Тем самым вместо долгого цикла из RAS-CAS-RAS-CAS происходит более короткий цикл RAS-CAS-CAS."
...
патент на именно такой экран можно нагуглить

Lethargeek
18.06.2019, 21:09
Всё намного проще: младший байт (именно байт, не 7 бит) адресов пикселей и атрибутов полностью совпадает.
И сделано это как раз для удобства манипуляций с экраном, а вовсе не для регенерации памяти.
ну ты, блин, даёшь) и как часто нужно преобразовать адрес пикселей в адрес атрибута или обратно?
по уму намного реже, чем сдвинуть адрес на соседний сканлайн, что в целом неудобней при расслоении

omercury
18.06.2019, 22:04
у 4116 только 7 адресных линий
вместимость 128*128 = 16384 бита (2К)
кури мат часть
У всех асинхронных DRAM половина внутренних адресных линий защёлкивается по RAS, поэтому без разницы 16 или 64к.
Младший байт для экрана Спектрума всё равно одинаков, в пределах одного столбца экрана изменения будут только по старшему байту.
Научись считать.


патент на именно такой экран можно нагуглить
Спасибо, нагуглил.
Если речь о патенте за № EP0107687B1, то ни слова про режим RAS/CAS/CAS там нет.
Это патент на построение цветного изображения с разделением памяти на область маски (память пикселов) и область цветовых данных (память атрибутов), причём конкретно размером 192х256 с кодированием цвета тремя битами на передний(INK) и задний (PAPER), а также бит уровня общей яркости и бит мерцания.
Про PAGE MODE RAED ни единого слова нетути... иначе этот патент нарушал бы целый ряд других патентов, например US5587964A.
И если в фирменном Спеке действительно память читается по единому RAS и двум CAS, то это исключительно частный случай построения фирменного Спека.

Кстати, а это на самом деле так?
Кто-нибудь проверял?


ну ты, блин, даёшь) и как часто нужно преобразовать адрес пикселей в адрес атрибута или обратно?
по уму намного реже, чем сдвинуть адрес на соседний сканлайн, что в целом неудобней при расслоении
Дык ты погромист - тебе и видней.
Помнится в те времена это декларировалось именно в таком ключе.

Lethargeek
18.06.2019, 22:43
Помнится в те времена это декларировалось именно в таком ключе.
в сборниках "500 игор" тоже много декларировали пурги
и про "гениального инженера" Синклера песни пели
дикие, пещерные времена

goodboy
18.06.2019, 23:42
вот вам `свежайшее` интервью с Альтвассером
https://paleotronic.com/2018/10/01/an-interview-with-zx-spectrum-designer-richard-altwasser/
........
Использование трех байтов на символьный пиксельный блок для цвета и атрибутов и восемь байтов для пиксельных данных было предложено тремя наблюдениями. Во-первых, цветовое разрешение человеческого глаза меньше, чем для яркости. Во-вторых, стандарт цветного телевидения PAL, признающий эту разницу, имеет намного более низкую цветность, чем ширина полосы яркости. В-третьих, общепринятые и популярные реализации телетекста в Ceefax и Oracle допускают цвет на уровне персонажа, с передним планом, фоном и мигающим. Желание использовать наименьшую возможную память и прецедент цветового уровня символов телетекста привели непосредственно к принятой схеме.
........
Большинство микрокомпьютеров расположили свою палитру в порядке RGB, палитра Spectrum несколько отличается, так как цвета организованы путем увеличения яркости. Можете ли вы прокомментировать, почему был сделан этот выбор?

Вероятно, это стало результатом моего внимания к выходам ULA яркости и цветности, Y, U & V, для которых я разработал простой трехканальный ЦАП, реализованный в ULA и защищенный патентами GB19820011723, EP0107687 и WO8303916.

omercury
19.06.2019, 00:41
вот вам `свежайшее` интервью с Альтвассером
Спасибо!


Вероятно, это стало результатом моего внимания к выходам ULA яркости и цветности, Y, U & V, для которых я разработал простой трехканальный ЦАП, реализованный в ULA и защищенный патентами GB19820011723, EP0107687 и WO8303916.

GB19820011723, к сожалению, найти не удалось.

EP0107687 ссылки есть в теме, открытой Вами здесь
https://patentscope.wipo.int/search/ru/detail.jsf?docId=EP11450436&tab=NATIONALBIBLIO&office=&prevFilter=&sortOption=%D0%94%D0%B0%D1%82%D1%8B+%D0%BF%D1%83%D 0%B1%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8+%D0 %BF%D0%BE+%D1%83%D0%B1%D1%8B%D0%B2%D0%B0%D0%BD%D0% B8%D1%8E&queryString=ALL%3A%28EP0107687%29&recNum=4&maxRec=4

WO8303916 - вот, что по нему попалось
https://patentscope.wipo.int/search/ru/detail.jsf?docId=WO1983003916&tab=PCTBIBLIO&maxRec=1000
далее оттуда же, с последней вкладки.
https://patentscope.wipo.int/search/docs2/pct/WO1983003916/pdf/kaniQ4Dl82g4x08DCmJA76cQkM_fqNp6JcTLZ7J3k_uD1yi1Nz _NhSj9DaYZXoHNj84wWYABj4T5DtHAgG4uKXWPKhW6Q4RNgoa_ dNoveSmOLqithCAdv3QifJv9BZVO?docId=id0000000086088 1&psAuth=ig1ALbMTkAHk9cD2bDu_lP3uZJ0FF65V8tZZY6LNZ0A

https://patentscope.wipo.int/search/docs2/pct/WO1983003916/pdf/zPbNanUcjdZhGwnVf95TyPyeiEtrFMbfRmgEQAWOqG6njEtlgz WuKiLtQglxrvGlH4AeFBwKvFN0rx6Hb6M6ukZQvI03aQHV3ssQ rsBSkxRmiBCx2cM9xcdQlwsBG9oC?docId=id0000001880351 0&psAuth=ig1ALbMTkAHk9cD2bDu_lGzPZ2nqGYomeyrzn-fIiDQ

Где там хоть одно слово ("схема аль чертёж"(с)) об адресации?
Сомневаюсь, что в ненайденом документе что-нибудь есть.

HardWareMan
19.06.2019, 10:56
У всех асинхронных DRAM половина внутренних адресных линий защёлкивается по RAS, поэтому без разницы 16 или 64к.
Младший байт для экрана Спектрума всё равно одинаков, в пределах одного столбца экрана изменения будут только по старшему байту.
Научись считать.
Кстати, действительно. Убили двух зайцев:
1. Сократили на пол цикла обращение к ОЗУ, при этом PM как правило гораздо быстрее работает, т.к. precharge у DRAM самый длинный процесс и он только при RAS (вся строка регенерируется). Эту же особенность используют с момента появления этого типа памяти в IBM PC, так как х86 большой разрядности обычно требует сразу параграф, который линеен.
2. При печати символа 8х8 с атрибутом на экран, нужно 1 раз вычислить младший адрес, он будет общим и для атрибутов и для графики. А потом манипулировать только старшим, заполняя сначала атрибут а потом 8 строк графики. Очень толково и на первый взгляд не очевидно.

Lethargeek
19.06.2019, 12:59
2. При печати символа 8х8 с атрибутом на экран, нужно 1 раз вычислить младший адрес, он будет общим и для атрибутов и для графики. А потом манипулировать только старшим, заполняя сначала атрибут а потом 8 строк графики. Очень толково и на первый взгляд не очевидно.
и очень бестолково в других, менее унылых сценариях

NEO SPECTRUMAN
19.06.2019, 15:23
ну ты, блин, даёшь) и как часто нужно преобразовать адрес пикселей в адрес атрибута или обратно?
307200 раз в секунду

- - - Добавлено - - -


Где там хоть одно слово ("схема аль чертёж"(с)) об адресации?
дык это буржуйские патенты
у них можно лить воду про сферическое устройство не приводя детальной схемы
а потом под это описание подходит 100500 новых девайсов
никаким образом к поделки отношения не имеющих

- - - Добавлено - - -


Где там хоть одно слово ("схема аль чертёж"(с)) об адресации?
дык это буржуйские патенты
у них можно лить воду про сферическое устройство не приводя детальной схемы
а потом "под это описание подходит" 100500 новых девайсов
никаким образом к поделки отношения не имеющих

Lethargeek
19.06.2019, 15:25
307200 раз в секунду
и при чём здесь "для удобства манипуляций"?

HardWareMan
19.06.2019, 18:41
и очень бестолково в других, менее унылых сценариях
Изначально это был домашний компьютер с бейсиком. Это как расширенный инженерный программируемый калькулятор. Скорость вывода символа тут играет первостепенную роль. А то, что на этом калькуляторе стали пилить игры - это уже второй вопрос, за пределами юрисдикции разработчиков. Ведь и на программируемых калькуляторах играли и печатали игровые программы в журналах. Так что видеоускоритель нужен тем, кто хочет играть на этом калькуляторе, т.е. вам. Собственно, вы же и пилите тут Метеор, или я не прав?

NEO SPECTRUMAN
19.06.2019, 23:13
Это как расширенный инженерный программируемый калькулятор. Скорость вывода символа тут играет первостепенную роль.
просто бред

"калькулятор" должен быстро считать то что на бумашке считать 15 лет
главное через три часа написать результат на экране
а за сколько миллисекунд нарисуется результат абсолютно не важно

в zx80 на этот экран вообще положили
или считаем или экран
можошь найти посмотреть видео
как при вводе с клавиатуры каждого символа
генерация видео сигнала отключается нафик вообще



у мя на неком casio fx-83gt plus
на время расчета на экране тожо пустота
да и отрисовка достаточно инертная
но сам ввод не тормозит

- - - Добавлено - - -

вот ввод с клавиатуры это самое главное
он не должен тормозить
а этображение введеного может и задержаться

и не должно быть этих *****х буферов

когда девайс тормозил торомозил
а потом когда уже не актуально ВНЕЗАПНО вывел все что ты натыкал пока он не подавал признаков жизни
да еще и не туда куда это было нужно...

ПРОСТО УБИВАТЬ УРОДОВ ЗА ЭТУ ГАДОСТЬ НАДО

Lethargeek
20.06.2019, 00:42
Изначально это был домашний компьютер с бейсиком. Это как расширенный инженерный программируемый калькулятор. Скорость вывода символа тут играет первостепенную роль.
Не "тут", а "там". Бейсик в это время пихали в каждый первый домашний комп. Никого им было не удивить, потому изначально Спектрум подавался как "улучшенный" домашний комп С ЦВЕТНОЙ ГРАФИКОЙ (что даже отразилось в его названии) по сравнению с предшественниками. Только графика почему-то оказалась оптимизирована вовсе не под новые графические задачи (в каковые входят не только игры) - а под вывод устаревшего неулучшенного текста жёстко заданного размера. Очень бестолковое "улучшение".

NEO SPECTRUMAN
20.06.2019, 01:28
а под вывод устаревшего неулучшенного текста
фанатикам "оптимизации экрана для вывода букоф" видимо ничего доказать нельзя...

а вот то что без этой оптимизации
частота проца 16К спека просела бы аж до ~2,355 МГц ничего?

а так эффективаная у него дето ~2,847 МГц

+20%

и ладно бы она просто просела

а как бы "повысилось" качество считывания с магнитофона при этом
если бы проц по пол строки тупо стоял вообще...

скорости записи они бы тоже прикрутили...

- - - Добавлено - - -

Кстате может по этому? и имеем 256х192 (чтоб можно было делать кастрированную 16К резинку)
хотя "медленной" памяти хватило бы аж на 400х288...

48к вполне бы тянул 320х240 без гигантского бордюра на пол экрана
(нет не тянул бы
чтоб закинуть один байт в экран
пришлось бы стоять до 160 тактов на вайте
пришлось бы снова перетасовывать экран так чтоб оптимизировать чтение видео контролером)

- - - Добавлено - - -


Очень бестолковое "улучшение".
Впринципе
zx81 кроме большего экрана и аппаратного скролла из коробки

больше не по каким параметрам не может тягаться с 48к спектрумом...

да и те уникальные возможности которые у него есть
раскрываются достаточно тяжело...
и воощем пока под оно научились хоть как то кодить время zx80\81 подошло к концу

да и какой не какой
у спектрума появился хоть какой то цвет
а он то очень даже полезен даже для "калькулятора"

HardWareMan
20.06.2019, 08:30
фанатикам "оптимизации экрана для вывода букоф" видимо ничего доказать нельзя...
Хоть и не являюсь фанатиком как оптимизации экрана для вывода букоф так и этого вашего Спецтрума в целом отмечу, что это сейчас вам, имеющим статическое ОЗУ на 512КБ со временем доступа 15нс легко обсуждать корявость организации Спецтрума Синклером. А вы начните думать в рамках конца 70х, с поправкой на элементную базу, доступную именно тогда. Ведь даже через 10 лет, в конце 80х, уже появился наш клон, полностью собранный на отечественной элементной базе, за исключением процессора, и тайминги которого практически идеальны и равномерны по сравнению с оригиналом.

NEO SPECTRUMAN
20.06.2019, 13:04
в целом отмечу, что это сейчас вам, имеющим статическое ОЗУ на 512КБ со временем доступа 15нс легко обсуждать корявость организации Спецтрума
не правда
нет у меня таких SRAM-ов

самые жирные что у меня есть это жменя w24512ak-15 на 64К



до щас легко обсуждать

я вообще думаю что можно было сохранить и хорошую адресуемость видео памяти при 3 обращениях к ней

щас кручу разные варианты как можно было бы сделать



а тогда это могло быть первое попавшееся решение проблемы
и что ее так и решили
и теперь что маємо то маємо...

Lethargeek
20.06.2019, 13:54
а вот то что без этой оптимизации
частота проца 16К спека просела бы аж до ~2,355 МГц ничего?
7 бит общих можно сделать и по-другому, так что ничего бы не проседало
и да, спек-16k был нинужын

NEO SPECTRUMAN
20.06.2019, 16:22
7 бит общих можно сделать и по-другому
у тебя есть идеи как именно
чтоб при этом адресация была лучше чем то что счас
и чтоб атрибуты были для знакомест 8х8 и теже 256х192
?

omercury
20.06.2019, 20:03
есть идеи как именно
А то!
поменять старший и младший байты местами и манипулировать младшим байтом. ;)
Экран, правда при этом разбежится кусками по всей памяти, но это ерунда!

Или ещё лучше: байт на точку.
Ну и что, что при этом от озу вообще ничего не останется даже под стек, все 48к станут экраном, зато линейная адресация, 256 цветов на точку и никакого клешинга!:biggrin:
По большому счёту весь экран можно адресовать портами ввода/вывода, а память освободить под буферы и код. Часть правда займут ПП вывода изображения.
И ещё 16к портов останется под нужды пользователя.
Аппаратно никаких проблем нет - вместо MREQ использовать IORQ и полную адресацию.

Как идейка?
Ради линейной-то адресации?
Ведь стОит, однозначно!
:)

P.S.
Особенно монументально оно будет выглядеть на дискретной логике.
По-Церетелевски.
:v2_dizzy_roll:

NEO SPECTRUMAN
20.06.2019, 20:20
А то!
поменять старший и младший байты местами и манипулировать младшим байтом.
Экран, правда при этом разбежится кусками по всей памяти, но это ерунда!
до только никто на это бы не пошел
тем более для 16к

Lethargeek
20.06.2019, 20:26
у тебя есть идеи как именно
чтоб при этом адресация была лучше чем то что счас
и чтоб атрибуты были для знакомест 8х8 и теже 256х192
?
например


столбцы по 256 байт (и пиксели, и атрибуты столбца)

14-битные адреса в 16k странице:
ccccccH ppppxxx - пикселей
ccccccH HHHaaaa - атрибутов

где
cccccc - номер столбца
H - верхняя или нижняя половина
(все биты H равны между собой)
Hppppxxx - возрастание от #10 до #EF
(xxx - номер линии в знакоместе)
HHHHaaaa - убывание от #0D до #F2
(с переходом через ноль декрементом)
(aaaa = инверсия pppp)

совпадают старшие биты
то есть RAS = ccccccH

движение по горизонтали:
inc/dec h

движение по вертикали:
inc/dec l - для пикселей
dec/inc l - для атрибутов

адрес атрибутов из адреса пикселей:
ld a,l:sra a:sra a:sra a:xor #0F:ld l,a

адрес пикселей из адреса атрибутов:
ld a,l:add a:add a:add a:xor #78:ld l,a

тут число атрибутных строк 28, но можно и меньше отображать
еще можно перераспределить байты между атрибутами и пикселями
вплоть до мультиколора высотой 128 пикселей

число столбцов - сколько влезет в экран по ширине
правда, при отображении RAS теперь не перебирает все комбинации
но для полного рефреша должно хватить +1 холостого чтения на сканлайн

NEO SPECTRUMAN
20.06.2019, 20:47
конечно не совсем то тк 8К с дырками (что для 16к машины не оч)
но натолкнул на мысли
что не обязательно атрибутам
считаться от того же счетчика
или можно инвертировать

да и можно наверно даже положить на линейность атрибутов

omercury
20.06.2019, 21:19
А то!
поменять старший и младший байты местами


14-битные адреса в 16k странице:
ccccccH ppppxxx - пикселей
ccccccH HHHaaaa - атрибутов
где
cccccc - номер столбца

А я как-то не так сказал? о_О


движение по горизонтали:
inc/dec h

движение по вертикали:
inc/dec l - для пикселей
dec/inc l - для атрибутов

Сейчас :
по горизонтали:
inc/dec l (диапазон 0-31)

движение по вертикали:
inc/dec h в пределах знакоместа (диапазон 0-7)
l+32/l-32 по строкам

Экран разлетелся кусками по всем 16к, ну и пёс с ним, рефреш, ну, допустим, обойдём.
Что это даёт?

shurik-ua
20.06.2019, 21:24
ещё такая идейка - включаем какой-то бит в порту - теперь вся запись в память будет идти только в видеопамять (49152 байт которой - байт на точку) и в основную ничего не пишется - но теперь уже процессор запарится рисовать того же Дизю )

zx-kit
20.06.2019, 21:27
Память в ZX Spectrume по древности была как у Радио-86РК с тремя питаниями. Ужас. По сравнению с ZX Spectrumom Ленинград - идеальный компьютер. Никакой ULA не надо, нет антенного выхода, нет медленной памяти, нет атрибутов, всего 8 микросхем РУ5, нет мембранной клавиатуры, нет стабилизатора +5В внутри компьютера, нет преобразователей питания, нет динамика, зато есть кнопка RESET, кемпстон джойстик и выход RGB, а звук идет сразу на телевизор и игры бесплатные.

LENINGRAD-2012 конечно еще лучше Ленинграда. Устранены упрощения схемы и вместо ПЗУ стоит FLASH на 128К. И схема чтения с магнитофона на К561ЛН2 и можно подключить SEGA джойстик с AUTOFIRE и есть медленная память и атрибуты и правильный INT и правильные синхроимпульсы и разъем ZX-BUS и плата меньшего размера и развертка Pentagon-128 и разъемы современные на плате и выход на SCART.

Жалко, что технология изготовления механических кнопок в России утеряна... И китайцы не делают. Зато есть отличные старые PS/2 клавиатуры по отработанной технологии. Которые по качеству лучше, чем современные с низким ходом кнопок.

Сейчас еще проще делать компьютеры. Память 512K обычно 10 ns. 128К обычно 45 ns. Никая регенерация не нужна. Лепи какую хочешь адресацию.

Если Alone использовал в игре линейный буфер, значит это самый быстрый способ, значит надо сделать вместо ПЗУ линейный буфер и все игры переделывать под него.

А как насчет выхода сразу на VGA 640х480 67 Hz и INT 33 Hz ?

NEO SPECTRUMAN
20.06.2019, 21:51
Экран разлетелся кусками по всем 16к, ну и пёс с ним
тогда уже проще запилить идеальный 384х256

чот не пойму
а что мешало перепутать адресные линии только прямо перед самой памятью

чтоб писать вроде бы как линейно



01 0Й ЙYYY yyyx xxxx
FE DC BA98 7654 3210

0ЙЙyyyY YYxxxxx
CAS-DCB765A RAS-9843210

011ЙЙY0
CAS-DCB765A



неужели правда убивали 2-х зайцев
или с ходу не додумались

или я что то туплю?

zx-kit
20.06.2019, 21:58
Наверно времени не было додуматься. Нам сейчас со стороны виднее, чем им там тогда. А Орион мог бы быть лучше Спектрума, если бы сразу стоял Z80 на 3.5 MHz. Но для запуска игр Спектрума пришлось бы делать такой же экран с нелинейной адресацией, зато наши игры можно было бы сразу в линейном экране делать.

Интересно, а почему в Орион сразу весь Спектрум не добавили ? Вот был бы универсальный компьютер. И не надо было бы сейчас ничего изобретать.

omercury
20.06.2019, 22:02
тогда уже проще запилить идеальный 384х256
...и целую одну программу для этого режима.


чот не пойму
а что мешало перепутать адресные линии только прямо перед самой памятью
И что это даст?
Линейный адрес для сканера экрана? Дык он и так линеен по 32 байта.
Линейный адрес в памяти? А смысл в нём, если софта нету?

NEO SPECTRUMAN
20.06.2019, 22:07
...и целую одну программу для этого режима.
я говорю не щас а про тогда
как бы можно было лучшо сделать
чисто из спортивного интереса



И что это даст?
Линейный адрес для сканера экрана? Дык он и так линеен по 32 байта.
линейный адрес и для проца и для видео контролера
только не линейное расположение данных в самих микросхемах
им то пофиг...

RAS CAS-ами заведует ULA

zx-kit
20.06.2019, 22:14
Старший байт Z80 надо было подключить к младшему байту ОЗУ.

NEO SPECTRUMAN
20.06.2019, 22:18
Старший байт Z80 надо было подключить к младшему байту ОЗУ.
у этого ОЗУ нема линий для всего байта :)
как можно было додуматься делать такое ОЗУ :)

omercury
20.06.2019, 22:19
линейный адрес и для проца и для видео контролера
И какой в этом смысл?
Не нужен никому именно линейный доступ, нужен удобный. И быстрый.

zx-kit
20.06.2019, 22:22
И какой в этом смысл?
Не нужен никому именно линейный доступ, нужен удобный. И быстрый.

Линейный доступ как в ОРионе и удобный и быстрый.
Еще лучше два линейных экрана - на одном рисуем, а другой отображаем. Тогда не надо было бы копировать каждый раз из буфера на экран

NEO SPECTRUMAN
20.06.2019, 22:23
И какой в этом смысл?
Не нужен никому именно линейный доступ, нужен удобный. И быстрый.
думаю линейный был бы быстрей и удобней чем то что сейчас есть

более удобный и быстрый только линейный столбиками по 256 байт (по типу специалиста ориона вектора)
но он много жрет памяти...
и для того времени его бы не применили на 16к машине

хотя можно было бы сделать 8 килобайтный 256х256
но все равно это больше половины памяти 16к спека

zx-kit
20.06.2019, 22:26
думаю линейный был бы быстрей и удобней чем то что сейчас есть

более удобный и быстрый только линейный столбиками по 256 байт (по типу специалиста ориона вектора)
но он много жрет памяти...
и для того времени его бы не применили на 16к машине

хотя можно было бы сделать 8 килобайтный 256х256
но все равно это больше половины памяти 16к спека
Так ведь 2К можно было бы использовать - они ведь никуда не деваются.

NEO SPECTRUMAN
20.06.2019, 22:29
Так ведь 2К можно было бы использовать - они ведь никуда не деваются.
смысле?
по типу ориона там нет дырок
пискели
0x xxxx yyyy yyyy
атрибуты (по типу спектрумов к примеру так)
10 00xx xxxy yyyy

ras cas не учитывал

zx-kit
20.06.2019, 22:32
Наверно надо было 256х256 делать. И два переключаемых экрана для скорости. Не как в 128К.
Лучше бы убрали антенный вход, стабилизаторы, преобразователи, ULA и поставили нормальную память с одним питанием. Вышло бы дешевле. Блок питания китайский на +5В дешевый использовали бы. Или стабилизатор +5В из компьютера переставили бы в блок питания. Компьютер бы меньше грелся. А схема вывода на телевизор и порт клавиатуры на логике наврено была бы дешевле, чем заказная ULA. Короче, надо было Синклеру смотреть на схему Ленинграда

omercury
20.06.2019, 22:45
Удобный тебе Летаргик показал, когда одним (парой) регистром ты весь экран адресуешь.
Когда простой (и короткой) операцией ты прыгаешь по полю, куда тебе нужно.
Да, видеопамять разлетается на куски, но кого это сейчас, в век терабайтов волнует?
Для наших игрушек надо меньше одного мегабайта, мы ставим 32 и не паримся, нам сейчас хватает ресурсов.
Тогда их не было.
Но это только одна сторона.
Сейчас можно сделать (извиняюсь за каламбур) современный крутой ретрокомпьютер, с любыми удобными возможностями.
Только вот ПО для него никто не напишет.

zx-kit
20.06.2019, 22:47
Сейчас уже старые игры сделаны под нелинейный экран. Но на него сразу не рисуют. Рисуют сначала в буфер. Мы можем сделать буфер линейным даже в ZX Spectrum. В линейном буфере легко и быстро рисовать спрайты змейкой. А в новом компьютере можно сделать линейный буфер еще круче - с адреса 0 и аппаратное копирование с этого буфера в старый экран. Под новый буфер можно переделать часть игр. Тогда возрастет их скорость и плавность. Это будет не новый софт, а улучшенный. А если еще добавить рисование одним цветом без клешинга, то можно будет раскрасить часть бесцветных игр. Для каждого спрайта можно будет выбрать свой цвет.

Софт будет старый, но выглядеть будет лучше.

NEO SPECTRUMAN
20.06.2019, 22:48
Блок питания китайский на +5В дешевый использовали бы
а 82 китайцы что то делали?
(просто я не уверен)

omercury
20.06.2019, 22:49
А схема вывода на телевизор и порт клавиатуры на логике наврено была бы дешевле, чем заказная ULA. Короче, надо было Синклеру смотреть на схему Ленинграда
Но коментс.
я пацтулом

- - - Добавлено - - -


а 82 китайцы что то делали?
(просто я не уверен)

Делали.
Полотенца прессованные помнишь?

NEO SPECTRUMAN
20.06.2019, 22:50
Сейчас уже старые игры сделаны под нелинейный экран.
ну не кто не мешает потрепать языком про то
что вот можно было совсем немного сделать не так
и было бы гораздо лучшо


из этого
можот что то подчеркнется для пиляния новых железок




там и флеш был 300 лет не нужен
а был бы вместо второй брайт
и графика бы была на порядок лучше...

zx-kit
20.06.2019, 22:57

там и флеш был 300 лет не нужен
а был бы вместо второй брайт
и графика бы была на порядок лучше...

На счет этого с нами все единогласно согласны.
А если делать новый атрибут без флеша, как лучше расположить биты в новом атрибуте ?
Я вот думаю в новом компьютере если не делать флеш, то схема будет на 1.5 микросхемы меньше.

omercury
20.06.2019, 22:57
Сейчас уже старые игры сделаны под нелинейный экран. Но на него сразу не рисуют. Рисуют сначала в буфер. Мы можем сделать буфер линейным даже в ZX Spectrum. В линейном буфере легко и быстро рисовать спрайты змейкой. А в новом компьютере можно сделать линейный буфер еще круче - с адреса 0 и аппаратное копирование с этого буфера в старый экран. Под новый буфер можно переделать часть игр.

Сам переделаешь?

Или заплатишь?

В принципе вариант есть: научись создавать предрассудки.
Например, убеди всех, что комп "Chelyabinsk" от ZST очень круто иметь, и намного понтовей, чем айфон и мазератти с бугатти вместе взятые.
Вот когда убедишь, тогда к тебе сами прибегут лицензию на его производство покупать, и программы напишут.

...а пока...
:v2_smoke:

zx-kit
20.06.2019, 23:02
Сам переделаешь?

Или заплатишь?

В принципе вариант есть: научись создавать предрассудки.
Например, убеди всех, что комп "Chelyabinsk" от ZST очень круто иметь, и намного понтовей, чем айфон и мазератти с бугатти вместе взятые.
Вот когда убедишь, тогда к тебе сами прибегут лицензию на его производство покупать, и программы напишут.

...а пока...
:v2_smoke:
Уже и помечтать нельзя ?
Наверно можно наоборот новый компьютер сделать упрощенно. Лишь бы старые игры хоть как-то запустились. Пусть не будет флеша, медленной памяти, атрибутов, INT в правом нижнем углу SCR. В таком виде игры могут выглядеть чуть хуже. Но если их доработать, что не сложно, то будут выглядеть лучше. См. ULAX.

Lethargeek
20.06.2019, 23:07
Экран разлетелся кусками по всем 16к, ну и пёс с ним, рефреш, ну, допустим, обойдём.
где, блин, разлетелся, с чего ты взял? весь экран единым большим куском
за одним столбцом из 256 байт сразу другой, и так сколько тебе нужно столбцов
неиспользуемых байтов на столбец мало (у меня в примере всего 4)


Что это даёт?
дык, код быстрее и короче становится без привязки к знакоместам

- - - Добавлено - - -

+ можно изменять ширину экрана и форму атрибутов в тех же времянках

omercury
20.06.2019, 23:21
где, блин, разлетелся, с чего ты взял? весь экран единым большим куском
за одним столбцом из 256 байт сразу другой, и так сколько тебе нужно столбцов
Ах да, адресация-то "вертикальная".
А атрибуты после столбцов и для каждого разрешения с другого адреса.
Либо разрыв.


дык, код быстрее и короче становится без привязки к знакоместам
Ты в любом случае привязан, либо к координатам (а столбец - это не знакоместо?), либо к адресам.


+ можно изменять ширину экрана и форму атрибутов в тех же времянках
Каждому фермеру - трактор своей конструкции!

zx-kit
20.06.2019, 23:27
В линейном экране легко перемещаться по всему экрану без дополнительных проверок и коррекции адреса, как сейчас в нелинейном приходится. На самом деле не очень важно, что экран нелинейный. Рисуют то в буфере сначала. А программист расположит байты как ему удобнее и быстрее. А потом копирует из буфера на экран.

goodboy
20.06.2019, 23:29
старые игры сделаны под нелинейный экран. Но на него сразу не рисуют. Рисуют сначала в буфер.
посмотри первый арканоид - буфера там нету.
я тебе пытался объяснить что во многих играх переброска экрана из буфера достаточно быстрая.
тормозят сложные расчёты при рисовании в буфер

omercury
20.06.2019, 23:29
Уже и помечтать нельзя ?
Помечтать я и сам люблю.
Толку правда с этого...



Наверно можно наоборот новый компьютер сделать упрощенно.
Не нужен новый старый компьютер. В смысле новая архитектура - она бессмысленна.
Делай примочки к старой архитектуре.


Пусть не будет флеша, медленной памяти, атрибутов, INT в правом нижнем углу SCR.
Нет, дорогой, пусть будут.
Тогда они были, значит должны быть и сейчас. На этом всё и держится.
Если очень хочется, то отключаемые.

NEO SPECTRUMAN
20.06.2019, 23:36
что во многих играх переброска экрана из буфера достаточно быстрая.
все равно эта переброска жрет порядка фрейма

конечно если там не игровой экранчик 80х80...

конечно еще есть варианты
когда перебрасывается только перерисовываемые участки
тогда это правда быстро

например в alien8 по моему (ну и во всех играх на filmation)
линейный буфер
но в экран перебрасывается только квадратик с игроком и всякие движущиеся объекты

zx-kit
20.06.2019, 23:56
посмотри первый арканоид - буфера там нету.
я тебе пытался объяснить что во многих играх переброска экрана из буфера достаточно быстрая.
тормозят сложные расчёты при рисовании в буфер
Для таких игр только Z80 разгонять до 14 MHz. На такой скорости можно и без линейного буфера.

- - - Добавлено - - -


Помечтать я и сам люблю.
Толку правда с этого...



Не нужен новый старый компьютер. В смысле новая архитектура - она бессмысленна.
Делай примочки к старой архитектуре.


Нет, дорогой, пусть будут.
Тогда они были, значит должны быть и сейчас. На этом всё и держится.
Если очень хочется, то отключаемые.
А если сделать наоборот ?
Сразу Z80 14 MHz, VGA, INT 33 Hz, без FLASH, добавить возможность раскраски черно-белых игр и аппаратное копирование буфера на нелинейный экран ? Вернее дополнительных цветов.

Или даже Z8S180 25 MHz, VGA, INT 60 Hz

Нет серия К555 и обычная статическая память 128К 45 ns на 25 MHz работать не смогут. На такой скорости надо ПЛИС и память 10 ns.

Или Z80 12 MHz, VGA, INT 57 Hz

omercury
21.06.2019, 00:05
А если сделать наоборот ?
Сразу Z80 14 MHz, VGA, INT 33 Hz, без FLASH, добавить возможность раскраски черно-белых игр и аппаратное копирование буфера на нелинейный экран ?
А нормально на нём работать всё будет?


Сразу Z80 14 MHz,
Z80 @ 3.5MHz + Z80 @ 7MHz + всё, что хочешь ещё, хоть с шагом в герц


INT 33 Hz
INT 50Hz, INT 60Hz + INT сколькохочешьгерц


без FLASH
Обязательно с FLASH + если хочешь, без FLZSH

Далее по вкусу.

zx-kit
21.06.2019, 00:11
А нормально на нём работать всё будет?


Z80 @ 3.5MHz + Z80 @ 7MHz + всё, что хочешь ещё, хоть с шагом в герц


INT 50Hz, INT 60Hz + INT сколькохочешьгерц


Обязательно с FLASH + если хочешь, без FLZSH

Далее по вкусу.

Большая скорость Z80 позволит улучшить плавность в играх, где много вычислений. И это также позволит сделать INT как частоту кадров VGA.
Если использовать для VGA генератор 25.175, то развертка будет идеально по стандарту VGA 640x480 60 Hz. При этом INT можно сделать тоже 60 Hz, а Z80 на частоте около 12.6 MHz.

omercury
21.06.2019, 00:14
А если сделать наоборот ?
Сразу Z80 14 MHz, VGA, INT 33 Hz, без FLASH, добавить возможность раскраски черно-белых игр и аппаратное копирование буфера на нелинейный экран ?
А всё на нём работать нормально будет?


Сразу Z80 14 MHz,
Z80 @ 3.5MHz + Z80 @ 7MHz + всё, что хочешь


INT 33 Hz
INT 50Hz, INT 60Hz + INT сколькохочешьгерц


без FLASH
Обязательно с FLASH + если хочешь, без FLZSH

Далее по вкусу.



Нет серия К555 и обычная статическая память 128К 45 ns на 25 MHz работать не смогут. На такой скорости надо ПЛИС и память 10 ns.
NEXT на 555 серии сделали?
И как, сильно это кого-то напрягло?
Народ проголосовал "рублём"

zx-kit
21.06.2019, 00:21
Дело в том, что сейчас почти на любой китайской девборде можно сделать Спектрум или Суперспектрум. У Некста есть кое-что особенное - это корпус и клавиатура. Остальное можно сделать например на Reverse или Speccy2010, если не помешает SDRAM.

- - - Добавлено - - -

Можно конечно с VGA не заморачиваться и остаться на SCART 50 Hz и INT 50 Hz. И программно переключать скорость Z80 3.5 / 14.

omercury
21.06.2019, 00:39
если не помешает SDRAM.
У меня в одном проекте SDRAM работает на 125МГц CL-3. Асинхронно со спеком. Синхронизация разумеется есть, но каждый работает от своего генератора на некратных частотах.
Платы раздельные.
Пишет, читает и выводит на экран бурстами по 8 слов, спек при этом работает на 14МГц.
Что читает, правда, не проверял, но цикл чтения есть. ;)
Видеовыхлоп, думаю, потянет и без всяких двухпортовок.
Проверю, само собой.


Можно конечно с VGA не заморачиваться и остаться на SCART 50 Hz и INT 50 Hz.
А что мешает стандартный сделать по стандартной схеме, а VGA, как обычно, через двухпортовку в FPGA?
INT, разумеется, со стандартного блока развёрток.
Уж если на обычной SRAM 1024х768@75Гц с трёхкратным дублированием (пиксельклок 79,8МГц) работало, то уж с блочной RAM точно будет.

- - - Добавлено - - -


У Некста есть кое-что особенное - это корпус и клавиатура.
Корпус "резинки" с клавой можно купить на ретро-чегототам.
Или нет? (с)

NEO SPECTRUMAN
21.06.2019, 00:40
Z80 3.5 / 14.
пора брать уже 24 28 МГц
14 это 2009 год

и так ужо отстаем от плана :)

1982 - 3,5 МГц
1992 - 7 МГц
2002 - 14 МГц
2012 - 28 МГц
2022 - 56 МГц

zx-kit
21.06.2019, 00:49
У меня в одном проекте SDRAM работает на 125МГц CL-3. Асинхронно со спеком. Синхронизация разумеется есть, но каждый работает от своего генератора на некратных частотах.
Платы раздельные.
Пишет, читает и выводит на экран бурстами по 8 слов, спек при этом работает на 14МГц.
Что читает, правда, не проверял, но цикл чтения есть. ;)
Видеовыхлоп, думаю, потянет и без всяких двухпортовок.
Проверю, само собой.


А что мешает стандартный сделать по стандартной схеме, а VGA, как обычно, через двухпортовку в FPGA?
INT, разумеется, со стандартного блока развёрток.
Уж если на обычной SRAM 1024х768@75Гц с трёхкратным дублированием (пиксельклок 79,8МГц) работало, то уж с блочной RAM точно будет.

- - - Добавлено - - -


Корпус "резинки" с клавой можно купить на ретро-чегототам.
Или нет? (с)

Успех Некта похож на успех Айфона. Вроде ничего особенного, а людям нравится.

omercury
21.06.2019, 00:50
пора брать уже 24 28 МГц
14 это 2009 год

и так ужо отстаем от плана :)

1982 - 3,5 МГц
1992 - 7 МГц
2002 - 14 МГц
2012 - 28 МГц
2022 - 56 МГц

3,5 - стандарт, 7 - обычная турба. Должно быть.

56 не каждая плиска потянет, 50-то не везде идёт.
Дизайн асинхронный, на комбинаторике весь.

zx-kit
21.06.2019, 00:53
3,5 - стандарт, 7 - обычная турба. Должно быть.

56 не каждая плиска потянет, 50-то не везде идёт.
Дизайн асинхронный, на комбинаторике весь.
Тогда надо 8 ядер.

omercury
21.06.2019, 00:54
Вроде ничего особенного, а людям нравится.
Корпус хорош (в смысле рендер корпуса), в остальном ничего прорывного.

- - - Добавлено - - -


Тогда надо 8 ядер.

ОСь напишешь?
:)

NEO SPECTRUMAN
21.06.2019, 00:55
но 28 вполне есть в нгс-е по моему

да и 20-24 думаю можно взять

zx-kit
21.06.2019, 00:58
Корпус хорош (в смысле рендер корпуса), в остальном ничего прорывного.
Я и говорю - ничего особенного. Если будут исходники - Vlad запустит на Reverse тоже самое. Также и с ULAX.

- - - Добавлено - - -


ОСь напишешь?
:)
Кстати - а если в ПЗУ написать загрузчик, где Z80 будет обращаться к VNC2 с помощью его оси ? Тогда можно будет и в программах иметь доступ к папке с игрой. Ось готова.

zx-kit
23.06.2019, 11:11
Алгоритм копирования буфера нужно изменить. Копировать теперь надо по 1 точке. Это уменьшит скорость копирования в 8 раз, зато в 8 раз уменьшится количество микросхем на входе и выходе памяти и появится возможность копировать буфер 1 в другой буфер 2 или на экран с точностью до точки, то есть позволит делать скроллинг по-горизонтали.

Также это позволит рисовать спрайт байтами, но с точностью до точки. Чтобы рисовать с точностью до точки нужно задавать смещение в байте в порте SHIFT (3 бита). Для закрашивания восьми точек в нужные цвета надо продумать схему преобразования байта в последовательность 8 точек.

Пока идея такая. Мы загружаем в порт атрибута ATTR текущие цвета BRIGHT, PAPER и INK. Загружаем смещение в порт SHIFT. При записи байта в основную память смещение из регистра SHIFT записывается в младшие биты счетчика адресов точек. В старшие биты записывается адрес из Z80. А в счетчик точек записывается нужное число для цикла из 8 точек.

Также байт записывается в регистр сдвига. Затем этот регистр 8 раз сдвигается и получаем бит точки. По биту точки с помощью мультиплексора получаем цвет точки и в зависимости от режима рисования выборочно записываем этот цвет в RAM. Адреса при этом увеличиваются.

Получается почти как при выводе на телевизор, но это мы будем делать при записи байта в любую область основной памяти.

Totem
23.06.2019, 20:34
мне это иногда напоминает метания, одного уважаемого кодера, но в отличии от этой темы, он вложил туда гораздо больше идей и мозга гы

balu_dark
23.06.2019, 21:16
мне это иногда напоминает метания, одного уважаемого кодера, но в отличии от этой темы, он вложил туда гораздо больше идей и мозга гы

Он хоть и изобретает велосипед, зато не обкладывает любого задавшего вопрос хренами как ты в своем топике про клэшинг :) Троль из тебя так себе - больше неадеквата , чем здорового троллинга!
Тролить надо мяяякшшеее , тоньшее и лукшшеее!

Totem
23.06.2019, 23:20
Он хоть и изобретает велосипед, зато не обкладывает любого задавшего вопрос хренами как ты в своем топике про клэшинг :) Троль из тебя так себе - больше неадеквата , чем здорового троллинга!
Тролить надо мяяякшшеее , тоньшее и лукшшеее!

я не тролю, я знаю, допилит докуметашку в нашей теме , именно для ленивых, будет бонбой , а эти мысли в слух хозяина ветки , вызавют ржач да извини не ответил в личку тогда, возвращайся из модератератов, культурно послать нахуй , теперь не работает, удачи человечище, не превращайся в зрителя :) +

Алгоритм копирования буфера нужно изменить. (с) епать копать, у тебя бета пред глазами уже 3 года, качай и смотри играй.

zx-kit
24.06.2019, 21:02
При записи байта в адресное пространство Z80 будем записывать 8 последовательных байтов в параллельную графическую память. Памяти потребуется 64 * 8 =512 Килобайт. Каждую точку сможем записывать независимо от других. Это позволит рисовать одним или двумя цветами на байт. Для указания младших битов адреса используем начальный адрес из порта SHIFT. Старшие биты адреса с шины адреса Z80. Получится 3+16=19 битов адреса. Потребуется этот адрес записать в 5 счетчиков по 4 бита. Адреса остальных 7 точек определим путем увеличения на 1 счетчиков адреса.

Четыре бита цвета получается из порта атрибута ATTR. Старшие 4 бита в байте графической памяти можно использовать как номер палитры. Для этого номер палитры записывать в порт PALETTE. В каждой из 16-ти палитр 15-ти цветам можно назначить 15 реальных цветов по 15 бит на точку. 15 битов в виде младшего и старшего байта можно подавать на видеоконвертер VGA SPUTNIK, который преобразует их в 15 битов и выведет на монитор VGA.

Так у Метеора может появиться палитра.

Режимы записи в графическую память такие:

00 STANDARD - стандартный режим ZX Spectruma, цвет точки зависит от атрибута в стандартном экране
01 MASK - записываются только цвета PAPER
10 SPRITE - записываются только цвета INK
11 TILE - записываются оба цвета PAPER и INK из порта ATTR

zx-kit
27.06.2019, 07:59
Идея такая - делаем новый комп, заточенный под графику. Он кроме стандартного режима графики с цветовыми атрибутами 8x8 точек будет иметь дополнительный режим. С помощью нового режима графики можно будет переделать старые игры для рисования каждого спрайта своим цветом без клешинга атрибутов. При записи байта восемь точек будут закрашиваться выборочно текущим цветом. Байт содержит информацию, какие точки закрашивать. А текущий цвет для рисования предварительно записывается в порт цвета.

Для раскрашивания старых игр нужно доработать подпрограмму рисования для выбора нового режима графики и установки цвета спрайта. Сначала, используя байт маски, надо нарисовать силуэт спрайта черным цветом. Затем, используя байт спрайта, надо нарисовать контур спрайта выбранным цветом. Байты маски и спрайта можно использовать те же самые из старой игры.

Часто игры рисуют не сразу на экран, а сначала в буфер. Это позволяет решить проблему нелинейности экрана и устранить мерцания. При этом следующий кадр игры можно рисовать в буфере в течение несколько кадров телевизора. А затем “быстро” скопировать изображение из буфера на экран. Для копирования используют команды LDI (примерно 17 тактов Z80 на 8 точек) или POP/PUSH (примерно 13 тактов Z80 на 8 точек). Но даже при последем способе скорости Z80 не хватает для копирования за кадр телевизора всего экрана. Часто копируют верхние 2/3 экрана или меньше. А индикаторы жизней рисуют прямо на экране.

Новая графика должна работать не только при прямой записи в экран, но и при записи в буфер. Для раскраски старых игр надо сделать так, чтобы все адресное пространство Z80 работало как новая графика, добавить возможность копировать новую графику из основного буфера во временный для сохранения фона, обратно для восстановления фона и готового изображения и основного буфера на экран.

Параллельно основной памяти 64 Кбайта надо установить графическую память. На каждый бит основной памяти приходится байт графической памяти. Потребуется 64 Кбайт * 8 = 512 Кбайт графической памяти. При записи байта в адресное пространство Z80 будем записывать восемь последовательных байтов в параллельную графическую память.

s_kosorev
27.06.2019, 10:16
Зачем цепляться за z80?
Можно поставить cortex-m4 на 180мгц и с внешней шиной, много головной боли уйдет

- - - Добавлено - - -

z80 эмулировать для обратной совместимости.

zx-kit
16.12.2019, 04:24
В связи с разработкой платы "VGA SPUTNIK" с возможностью отображать цвет 12 бит на точку возможно в новогодние каникулы начну наконец делать плату для видеокарты "METEOR-2020" на FPGA. Видеокарта будет простая с разверткой TV и с цифровым выходом на "VGA SPUTNIK". На мелкой логике схема получается сложная и трудно сделать все правильно сразу.

zx-kit
07.01.2020, 14:05
Про завершение разработки видеокарты читайте в новой теме METEOR-2020 (https://zx-pk.ru/threads/31241-videokarta-quot-meteor-2020-quot-dlya-ustraneniya-kleshinga.html).