PDA

Просмотр полной версии : Радиолюбительский компьютер "LEVEL"



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

VladimirS
04.02.2018, 16:45
Пусть делает, кому он мешает?

Totem
04.02.2018, 19:18
Пусть делает, кому он мешает?

а с чего взято, что это глумеж? Конечно пусть делает, никто запретить ему это не может, но могут подсказать или помочь избежать глобальных ошибок и чрезмерной универсальности для 8 бит компа-самоделки, юмор и сарказм, тоже присутствуют без это того, уж никак.
ну раз он такой суровый, предлагаю впилить речевой информатор и гироскоп, аля "Рита" -
переносишь такой 12 кг к клепаном корпусе , наклоняешь и тут сразу тебе -"Критический угол атаки", подключил клавиатуру, тебе раз - "Текстовый режим активирован", уронил на ногу корпус, как джентльмен сказал пару ласковых, а из корпуса тебе -"Предельная перегрузка".
от это будет замечательный и веселый комп. :v2_yahoo:
для тех кто не знает про "Риту" ничего, под спойлером "веселая компиляция"


https://www.youtube.com/watch?v=rp_VfbRDFsQ

Ждемс, реализации в железе.:v2_dizzy_biggrin2:

OrionExt
04.02.2018, 19:39
Автор нас "тролит", который месяц. Не ну мне прикольно по мелочи чего-то подправить (для начинающих самое то). Но что делать с бульдозером, который давит под 80км/час

Totem
04.02.2018, 19:57
Автор нас "тролит", который месяц. Не ну мне прикольно по мелочи чего-то подправить (для начинающих самое то). Но что делать с бульдозером, который давит под 80км/час

бульдозер не каток, сбил "гуслю", "вышеб ведущую" и наслаждайся "дрифтом" и "паркуром"


https://www.youtube.com/watch?v=K9dhLS63KI8

"Самое то есть не только", тут в соответствующей ветке про самоделки, но и примерно штук 40, в инете реализаций, самых популярных? со схемами и исходниками.:v2_rolley

OrionExt
04.02.2018, 20:01
и наслаждайся "дрифтом" и "паркуром"y
Какой нах дрифт на бюльдозере:v2_dizzy_botan:

Видел я дрифт бульдозера, школьником. Урок был понят . Утанул в какашках(глине).

Totem
04.02.2018, 20:06
Какой нах дрифт на бюльдозере:v2_dizzy_botan:

ну премерно такой, как и под спойлером выше:v2_dizzy_grandfathe


https://www.youtube.com/watch?v=ulm4G28392s

OrionExt
04.02.2018, 20:33
До последенего. Споил открыл. Смотрим выше:)

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

Тута ребята от MSX (профи) пол рынка прокакали, а тут ничего не знаю, и хочу 3 батарейки:). Сори. Это не то.

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

Хотя Автор. Смотри – шину MSX открыли раньше (50 контактов), потом официально пошла ISA (60 – вроде).

А вам уже мало:)

Totem
04.02.2018, 21:15
До последенего. Споил открыл. Смотрим выше:)
аллегория и шутка, утопят и ище не раз или вылетят в с трассы, или в столб, но мы не об этом.
мы за реализацию в железе, суровой и компактной системы и тут нужно успеть , следующий метеорит, может смешать с "глиной" все. :v2_dizzy_rain::v2_dizzy_biggrin2:

omercury
04.02.2018, 21:40
а тут ничего не знаю, и хочу 3 батарейки:).

Самое смешное, что все три сядут одновременно.:v2_dizzy_messed:

Totem
05.02.2018, 01:22
Самое смешное, что все три сядут одновременно.:v2_dizzy_messed:

не сядут, если их не ставить или сядут те, кто их не поставил по проекту, или тот,кто их предложил в проекте сядет, или тот, кто одобрил проект сядет.
вот это дилемма :v2_confu::v2_blink::v2_dizzy_newspaper:

TomaTLAB
05.02.2018, 15:42
Смотри – шину MSX открыли раньше (50 контактов), потом официально пошла ISA (60 – вроде).А вам уже мало
Вообще то S-100 была еще раньше, так что, есть еще куда расти :) В MSX "физически" адресованные разъемы (почти как в PCI), одна линия прерываний. На чем и сэкономлено десятка полтора контактов.
MSX - интересный, но своеобразный стандарт. Там и заточено все на карики было. Грубо говоря, если игрушке не хватало стандарно-минимального ОЗУ, то она эту память "носила с собой" в собственном карике. То же самое и со звуком, и еще черт знает с чем.



Какой же это дрифт? Это же самый что ни на есть штатный разворот. Оно же по другому то и не умеет :)

https://www.youtube.com/watch?v=ulm4G28392s

OrionExt
05.02.2018, 19:54
Вообще то S-100 была еще раньше, так что, есть еще куда расти :) В MSX "физически" адресованные разъемы (почти как в PCI), одна линия прерываний. На чем и сэкономлено десятка полтора контактов
Шина S-100 уж больно универсальная (здоровенная). Как пример туда можно присобачить PDP11, Z80, 68000 да хоть 80486. Наверное, можно и Pentium, только вот по частоте ее уже будет не разогнать. А шины MSX и ISA больше заточены на свою архитектуру отчего и имеют ограничения (менее универсальны). А если честно я даже не знаю что еще нужно к шине MSX добавить, если не пускаться во все тяжкие железные эксперименты.

Таки останусь при своем мнении касательно системного разъема 2 ряда по 32 контакта, если в удаленной перспективе будет мало добавить еще 1 ряд и того 3 ряда. Подобный подход был применен для системной шины Орион-128.

PLD разъемы - редкая гадость. И их применение можно оправдать только ценой. Ведь автор модульного компьютера рассчитывает на повторяемость своего изделия. Поэтому должен продумать варианты замены PLD разъема. Ну, если это все для себя любимого, то и обсуждать тут нечего:)

barsik
05.02.2018, 20:46
Вся системная шина целиком нужна только на периферийных платах с памятью. Потому на SWTPC (в 1975) применили полноценную шину только на части разъёмов расширения (предназначенных для расширений ОЗУ, ПЗУ и для периферийных плат, где свой драйвер в ПЗУ). Для обычных I/O устройств достаточно менее 15 контактов: /CS (на область слота), /IORD, /IOWR, A0, A1, D0...D7, /RESET и /M1. Т.о если разбить шину на 2 разъёма стоящих в ряд, то второй разъём в большинстве случаев можно не запаивать.

Через шину S-100 процессор 486 не подключить, т.к там ~200 штырьков, а в шине S-100 только 100 контактов.

OrionExt
05.02.2018, 20:56
Т.о если разбить шину на 2 разъёма стоящих в ряд, то второй разъём в большинстве случаев можно не запаивать.
Можно и так, только кросс-плату придется переделывать или намеренно делать ее шире, что скажется на цене. А так можно сразу три ряда сделать, впаивать 2-х рядный или 3-х рядный.


Через шину S-100 процессор 486 не подключить, т.к там 370 штырьков, а в шине S-100 только 100 контактов.
Вы не правы. Клац (http://www.s100computers.com/My%20System%20Pages/80486%20Board/80486%20CPU%20Board.htm).

andreil
05.02.2018, 21:13
Вы не правы. Клац (http://www.s100computers.com/My%20System%20Pages/80486%20Board/80486%20CPU%20Board.htm).
Последний фрейм описывает ситуацию. (https://pikabu.ru/story/prizyivatelskoe_4782662)

zx-kit
06.02.2018, 01:07
Насчет трех батареек - принято, уже исправил под схемой рам-диска, что достаточно одной CR2032 3V.

Насчет шины:.
Шина S-100 уж больно универсальная (здоровенная). Как пример туда можно присобачить PDP11, Z80, 68000 да хоть 80486. Наверное, можно и Pentium, только вот по частоте ее уже будет не разогнать. А шины MSX и ISA больше заточены на свою архитектуру отчего и имеют ограничения (менее универсальны). А если честно я даже не знаю что еще нужно к шине MSX добавить, если не пускаться во все тяжкие железные эксперименты.

Таки останусь при своем мнении касательно системного разъема 2 ряда по 32 контакта, если в удаленной перспективе будет мало добавить еще 1 ряд и того 3 ряда. Подобный подход был применен для системной шины Орион-128.

PLD разъемы - редкая гадость. И их применение можно оправдать только ценой. Ведь автор модульного компьютера рассчитывает на повторяемость своего изделия. Поэтому должен продумать варианты замены PLD разъема. Ну, если это все для себя любимого, то и обсуждать тут нечего:)


Вся системная шина целиком нужна только на периферийных платах с памятью. Потому на SWTPC (в 1975) применили полноценную шину только на части разъёмов расширения (предназначенных для расширений ОЗУ, ПЗУ и для периферийных плат, где свой драйвер в ПЗУ). Для обычных I/O устройств достаточно менее 15 контактов: /CS (на область слота), /IORD, /IOWR, A0, A1, D0...D7, /RESET и /M1. Т.о если разбить шину на 2 разъёма стоящих в ряд, то второй разъём в большинстве случаев можно не запаивать.



Можно и так, только кросс-плату придется переделывать или намеренно делать ее шире, что скажется на цене. А так можно сразу три ряда сделать, впаивать 2-х рядный или 3-х рядный.


А что нам MSX, S-100 и другие шины, которые разработаны для других компьютеров и систем? Это что - идеал ? И по-другому уже нельзя ? Тянуть в свой компьютер их ограничения ? У нас другие задачи и другой компьютер. Полная свобода действий. Какую надо шину - такую и сделаем ! C учетом себестоимости.

Согласен. Для большинства модулей хватит 64 контакта. Поэтому можно для них шину с разъемом DIN-64 или PBD-64 для бюджетного варианта. Кросс-плату сделать на 10 разъемов. Для графической шины сделать еще один такой же разъем DIN-64 или PBD-64 для бюджетного варианта. И короткую кросс-плату на 5-7 разъемов.

Графические платы будут иметь по два разъема и устанавливаться сразу в две кросс-платы, длинную и короткую.

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

Насчет графических плат:
0 - символьный слой - 30х80 символов
1 - тайловый слой - столбики и деревья на первом плане
2 - спрайтовый слой - ГГ и враги
3 - слой Метеор - для устранения клешинга в играх, портированных с ZX Spectrum-а
4 - тайловый слой - дома и деревья за спрайтами
5 - тайловый слой - дальний фон
6 - генератор синхроимпульсов, развертки VGA, смеситель слоев и палитра
7 - входные регистры цвета, VIDEODAC и разъем VGA


На графическую шину вывести:
8 бит - цвет точки с текущего слоя
3 бита - номер видимого слоя
1 бит - отдельно с каждого разъема - признак прозрачности точки этого слоя
1 бит - разрешения вывода цвета точки на графическую шину
1 бит - тактовая VGA
2 бита - загрузка счетчиков смещения слоев
15 битов - цвет точки после палитры - по 5 битов на RGB

... добавим потом

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

Слои 0,6 и 7 можно перенести на кросс-плату. Тогда сделать одну кросс-плату, на которой разъем VGA, VIDOEDAC, палитра, смеситель слоев, 5 графических разъемов и 10 основных разъемов. Без графических слоев компьютер сможет работать с OS CP/M. Если установить модуль в слой 3 - игры со Спектрума без клешинга атрибутов, а если остальные графические модули - то уже можно делать динамические игры уровня Сеги. Каждый выберет себе свою комплектацию.

И тогда кросс-плата получится размером, похожим на размер ATX. И тогда питание можно сделать ATX и корпус использовать стандартный MIDI ATX. Ну вот, вроде с заклепками в корпусе все определилось.

Error404
06.02.2018, 12:28
По поводу портов. Можно сделать маппер портов (т.е. дешифратор) на отдельной плате. Тогда этот модульный компьютер заменой платки маппера можно будет аппаратно приблизить к такому клону какой кому интересен, не перепиливая соседние платы.

zx-kit
06.02.2018, 16:24
По поводу портов. Можно сделать маппер портов (т.е. дешифратор) на отдельной плате. Тогда этот модульный компьютер заменой платки маппера можно будет аппаратно приблизить к такому клону какой кому интересен, не перепиливая соседние платы.

Можно попробовать. Что для этого надо ? Наверно убрать лишние линии адреса из основного разъема и перенести их в дополнительный. А в основной сигналы CS_N для требуемых устройств. Еще надо таблицу адресов портов для формирования этих CS, какие дополнительные сигналы, кроме шины, еще нужны, например, A0, A1, RESET, CLK. Какие компьютеры получится переключать и сколько ? Можно ли сделать универсальную плату с коммутатором адресов портов ?

Еще пока не придумал, как на одной плате можно совместить маленькую английскую клавиатуру ZX Spectrum-a без WAIT и большую русскую клавиатуру от РАДИО-86РК ?

Smalovsky
06.02.2018, 18:08
Я хотел бы обратиться к Тотемычу. Тотемыч, ты писал, что читаешь топик для повышения своего опыта и заимствования полезных наработок. Видимо, ты уже вобрал всё полезное в этом топике и начал хамить открыто. Не " подгрызай корни" как персонаж одной басни. Веди конструктивный диалог интеллигентно.

Totem
06.02.2018, 22:08
Я хотел бы обратиться к Тотемычу. Тотемыч, ты писал, что читаешь топик для повышения своего опыта и заимствования полезных наработок. Видимо, ты уже вобрал всё полезное в этом топике и начал хамить открыто. Не " подгрызай корни" как персонаж одной басни. Веди конструктивный диалог интеллигентно.
Дорогой товарищъ, исключительно для идей, которые интересны, но никогда не были реализованы в железе. Ну а если ты не заметил, что сарказм и шутки, довольны плотно перемешаны и с моим опытом в различных железках и не только моим. Единственно с "Ритой" получилось не к месту, но тут я новости не смотрел ...это да.
Что там еще показалось ? Где хамство, конкретно? Цитата?

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


Точка на экране будет кодироваться одним байтом. Всего на экране будет до 255 цветов с кодами 00-FE из палитры



То есть цвет точки кодируется 4-мя битами
И какое разрешение планируется?

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


По поводу портов. Можно сделать маппер портов (т.е. дешифратор) на отдельной плате. Тогда этот модульный компьютер заменой платки маппера можно будет аппаратно приблизить к такому клону какой кому интересен, не перепиливая соседние платы.
Им не нравится, что такой дешифратор, если универсальный, то это epm7128 или кучка GAL, на стандартной логике он будет несколько "монструозным", в любом случае если там не одна клавиатура.

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


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

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


И тогда кросс-плата получится размером, похожим на размер ATX. И тогда питание можно сделать ATX и корпус использовать стандартный MIDI ATX. Ну вот, вроде с заклепками в корпусе все определилось.
"Ниче себе", корпуса есть и БП тоже.

то уже можно делать динамические игры уровня Сеги
Мда, а какая максимальная частота CPU?

zx-kit
06.02.2018, 22:28
Разрешение монитора 640x480 60 Hz.
Разрешение символьного режима 640x480 точки, 30 строк по 80 символов размером 16х8 точек.
Разрешение графических режимов 320х240 точек. Для игр, портированных со Спектрума 256х192 точки.
По 255 цветов на слой + прозрачный.
Палитра 8->15 для каждого слоя своя.
Частота Z80 до 20 MHz.

Totem
06.02.2018, 22:51
теперь поясни, если точка у тебя кодируется 4 битами, то сколько нужно памяти для отображения пусть одного экрана 256x192 ?

zx-kit
06.02.2018, 23:01
теперь поясни, если точка у тебя кодируется 4 битами, то сколько нужно памяти для отображения пусть одного экрана 256x192 ?
128 Kбайт
320х240 и 256х192 -> 512 х 256 точек по 8 бит
На 2 экрана надо 256 Kбайт. Это 8 микросхем кэша по 32 Kбайт.

Totem
06.02.2018, 23:17
128 Kбайт
320х240 и 256х192 -> 512 х 256 точек по 8 бит
На 2 экрана надо 256 Kбайт. Это 8 микросхем кэша по 32 Kбайт.
Ответ не на мой вопрос. Я задал конкретный вопрос, еще уточню. Cколько основной RAM требуется, для режима 256x192 при 4 битах на точку.

zx-kit
06.02.2018, 23:19
Ответ не на мой вопрос. Я задал конкретный вопрос, еще уточню. Cколько основной RAM требуется, для режима 256x192 при 4 битах на точку.
Спрайты и тайлы в каждой игре занимают разное место. Они не меняются.

Totem
06.02.2018, 23:35
Спрайты и тайлы в каждой игре занимают разное место. Они не меняются.

ты ответь на предыдущий, сколько памяти нужно на такое разрешение, все -цифру

zx-kit
06.02.2018, 23:39
ты ответь на предыдущий, сколько памяти нужно на такое разрешение, все -цифру
Еще раз повторяю. В видеокарте 256 Кбайт. В основной памяти освобождается около 7 Кбайт на месте стандартного экрана Спектрума.
-7 Кбайт. Ты это хотел услышать ?

Totem
06.02.2018, 23:48
сколько памяти любой , 256x192 4 бита на точку?

zx-kit
06.02.2018, 23:50
сколько памяти любой , 256x192 4 бита на точку?
Чтобы на новом экране изобразить стандартную картинку Спектрума надо 6912 байтов в основной памяти на эту картинку. Если рисовать спрайтами с маской, то столько же, сколько и для стандартного экрана.

Например, спрайт с маской размером 16х16 точек. Маска займет 32 байта и спрайт 32 байта.

Totem
06.02.2018, 23:54
ты можешь просто назвать цыфирь? объем памяти или нужно еще как-то это особенно спросить?
сколько памяти любой , 256x192 4 бита на точку?

zx-kit
07.02.2018, 00:06
ты можешь просто назвать цыфирь? объем памяти или нужно еще как-то это особенно спросить?
Да про какую память ты спрашиваешь ?!
Есть память спрайтов/тайлов в основной памяти и есть память в видеокарте. Другой памяти не тратится.

Тайл размером 16х16 точек займет в основной памяти 32 байта BITMAP и 4 байта атрибутов. Дальше считай сам, сколько у тебя тайлов в игре.

Перечитай медленно мои предыдущие ответы.

LeoN65816
07.02.2018, 01:41
Да, уж... :v2_dizzy_facepalm:

zx-kit
07.02.2018, 05:55
В Спектруме экраны в играх строятся не целыми картинками, а с помощью повторяющихся тайлов. Поэтому нет такого понятия, как "сколько занимает экран в основной памяти". Его нельзя посчитать один раз для всех игр. Размер занимаемой тайлами памяти зависит от игры, способа построения экрана, размера игрового поля и т.п. Но на все обычно хватает 48 Кбайтов. Заставка к игре (картинка, загружаемая перед игрой), если ее хранить в основной памяти займет для Метеора столько же байтов, сколько и для Спектрума, т.е. 6912 байтов. Но заставки обычно не хранятся в памяти, поэтому основную память не занимают. Понятно ?

OrionExt
07.02.2018, 08:27
В Спектруме экраны в играх строятся не целыми картинками, а с помощью повторяющихся тайлов.
Очень смелое обобщающее умозаключение по прошествии более 3-х десятков лет с момента появления ZX:v2_dizzy_aaaaa:

bigral
07.02.2018, 18:40
PLD разъемы - редкая гадость. И их применение можно оправдать только ценой. Ведь автор модульного компьютера рассчитывает на повторяемость своего изделия. Поэтому должен продумать варианты замены PLD разъема.

Это почему? Век живи век учись...

andreil
07.02.2018, 18:56
Это почему? Век живи век учись...
У меня в одном прототипе используются PLD с шагом 2мм - сопливят безжалостно. "Папа" болтается в "маме", при отклонении ось более чем на 10 градусов контакт теряется на части пинов =/
PLD с шагом 2,54мм чуть получше, но всё равно сопливят, да и фиксация у них после пары циклов "подключил-отключил" уже плачевная.

zx-kit
08.02.2018, 06:19
Хорошо. Будем применять разъемы DIN-64.

Принцип рисования тайла размером 8х8 точек с помощью видеокарты Метеор. (здесь будут в последующем дополнения и уточнения).

В игре есть тайл. Он состоит из 8 байтов для области BITMAP и 1 байт для области атрибутов. Размер как в оригинальном ZX Spectrum.
Только в Метеоре вместо области атрибутов используется переменная/порт с текущим атрибутом ATTR.

Поэтому байт атрибута записываем в порт ATTR. В HL - адрес начала восьми байтов тайла, в E - координату тайла по-вертикали, в D - координату знакоместа по-горизонтали.
Затем 8 команд LDI. И все. На экране, основном или теневом будет нарисован в цвете квадратный тайл размером 8х8 точек.

Кому не понятно - задавайте вопросы. Добавлю в этот пост.

zx-kit
08.02.2018, 20:40
Пока есть медленные SRAM 32K широкий DIP-28 70 ns и не пришли генераторы на 25.175.
Надо нарисовать схемы и собрать минимальный вариант - модернизированный потомок Спектрума:

1. Модуль процессора: генератор 14 MHz, счетчик-делитель до 3.5 MHz, Z80 DIP-40.
2. Модуль коммутатора памяти и дешифратора портов: с него на другие модули через шину будут идти готовые сигналы CS.
3. Модуль ОЗУ: 2 * SRAM 32K широкий DIP-28 70 ns.
4. Модуль картриджа: FLASH 128K DIP-32.
5. Модуль видеокарты METEOR-1: 8 * SRAM 32K широкий DIP-28 70 ns, счетчики, FLASH 128K DIP-32 и т.д. Развертка TV, выход цифровой RGBI, режим 256х192 4 бита.
6. Модуль клавиатуры и джойстика: порт механической клавиатуры и KEMPSTON джойстика с разъемами для подключения адаптера SUPER JPYSTICK PORT 2.
7. Модуль аудио: BEEPER.

Как спаяю - выложу фотки.

Пока можно подумать об интерфейсе с PC. Есть несколько адаптеров USB:
FT232RL, FT2232H, FT245 и т.п. надо выбрать адаптер и схему подключения с максимальной скоростью и аппаратной остановкой передачи и приема при паузах во время работы.

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

Можно будет адаптировать мою дему "FUTURE TANK". Но она для 128K. Понадобится добавить ОЗУ до 128К.

Lethargeek
08.02.2018, 21:28
Принцип рисования тайла размером 8х8 точек
а вот, например, в Switchblade ширина у тайлов 12 пикселей

zx-kit
08.02.2018, 22:01
а вот, например, в Switchblade ширина у тайлов 12 пикселей
Значит там используется маска при рисовании кирпичей. Т.е. надо рисовать как спрайты с маской, а не целыми тайлами.

Totem
08.02.2018, 23:04
Значит там используется маска при рисовании кирпичей. Т.е. надо рисовать как спрайты с маской, а не целыми тайлами.

я рисую "тайлом"-мелом по стене, мой фламестер где-то, где-то вдалеке. :v2_dizzy_dance:

bigral
09.02.2018, 00:42
DIN-64 стоит 5 евро оно надо? arduino ничему не научило (хотя содрали его наверно с pc104)? сейчас 100*100 плата считается чутли не стандартом для хобби электроники, вот ставь на расстоянии 2 см друг от друга 5 шт. того что называют machine pin headers и будет тебе мини "корзина" а у модулей на торце припаиваются штыри (токо не согнутые а один ряд с одной стороны а другой с обратной, прямо как у divIDE 5.7c). Все пункты СРАЗУ делать необязательно, начинай сразу с 5-го (видяха метеор) и для проверки цепляй ее на zx-bus любого спектрума что под рукой.

OrionExt
09.02.2018, 01:29
DIN-64 стоит 5 евро оно надо?
C чего такая роскошь?) $1.45 (https://ru.aliexpress.com/item/European-style-socket-DIN41612-c00a-9001-31641-264-curved-needle-2-row-64-2-32-p/32794444116.html?ws_ab_test=searchweb0_0,searchweb 201602_2_10152_10151_10065_10344_10068_10342_10343 _10340_10341_10084_10083_10618_10307_5711211_57223 15_10313_10059_10534_100031_10103_10624_10623_1062 2_10621_10620_10142_10125,searchweb201603_1,ppcSwi tch_5&algo_expid=ec93477c-8b6b-48e4-a208-90776c6632a1-10&algo_pvid=ec93477c-8b6b-48e4-a208-90776c6632a1&priceBeautifyAB=0)

Lethargeek
09.02.2018, 02:50
Значит там используется маска при рисовании кирпичей. Т.е. надо рисовать как спрайты с маской, а не целыми тайлами.
Нет, не значит. Не нужна маска в монохромном режиме. В принципе, при печати таких тайлов на Спеке даже чтение с экрана необязательно.

zx-kit
09.02.2018, 05:41
Нет, не значит. Не нужна маска в монохромном режиме. В принципе, при печати таких тайлов на Спеке даже чтение с экрана необязательно.
В Спектруме потребуется прочитать байт, в котором 4 бита от соседнего тайла. Потом наложить 4 бита с нового тайла и записать обратно результат наложения. С Метеором читать не надо, так как есть прозрачный цвет. Просто писать целыми байтами, где нарисованы только 4 бита. И 4 бита с соседнего тайла останутся нетронутым.

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


DIN-64 стоит 5 евро оно надо? arduino ничему не научило (хотя содрали его наверно с pc104)? сейчас 100*100 плата считается чутли не стандартом для хобби электроники, вот ставь на расстоянии 2 см друг от друга 5 шт. того что называют machine pin headers и будет тебе мини "корзина" а у модулей на торце припаиваются штыри (токо не согнутые а один ряд с одной стороны а другой с обратной, прямо как у divIDE 5.7c).

Модулей будет наверно больше 5, поэтому в размер 100х100 для кросс-платы уложиться трудно, если только не сделать как у TomaTLAB (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html?p=943176&viewfull=1#post943176). Там кросс-плату с 5 разъемами можно подклчить к такой же и увеличить число слотов до 10/15/20 ...

У Ардуино дешевые разъемы и модули вставляются этажеркой. У нас кросс-плата. При этом падение напряжений, например питания только в одном разъеме, а у Ардуино на всех в этажерке. И у последнего напряжение может быть меньше. Но платы при этом не надо закреплять, они держатся друг на друге. В принципе, пожно и так. Только сквозные штыри мама-папа наверно стоят тоже дороже обычного папы или мамы. Тогда питание на каждую плату надо подавать отдельно с платы питания отдельными разъемами и проводками.


Все пункты СРАЗУ делать необязательно, начинай сразу с 5-го (видяха метеор) и для проверки цепляй ее на zx-bus любого спектрума что под рукой. Согласен, 5 модуль можно спаять под ZX-BUS для начала и установить для проверки в LENINGRAD-2012. Даже для макетирования можно не делать схему развертки, а подпаяться к счетчикам на схеме Ленинграда и сделать отдельный видеовыход. Но во FLASH без коммутатора памяти влезет только 16 К. Там только короткий тест можно написать. Но для начала хватит. Потом можно дальше думать.

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

И где делают хорошего качества печатные платы размерами 100х100 мм ? Я пока делаю платы в России на проверенном заводе Электроконнект. Стоит ли заказывать в Китае ? Не будет ли потом проблем при пайке плат ?

Dr.Potapov
09.02.2018, 10:41
теперь поясни, если точка у тебя кодируется 4 битами, то сколько нужно памяти для отображения пусть одного экрана 256x192 ?

256 * 192 * 4 = 24 576 байт

Я так понимаю устройство это (на примере текстового режима 80х30 для понятности) задумано так:


Есть видеокарта с образно говоря 48 Кбайт собственной памяти (80 * 480 = 38400 байт под растр символов 8х16, 16*256 = 4096 байт под шрифт и 16*3 =48 байт под палитру) из которой она самостоятельно строит изображение на экране монитора.
В ОЗУ компьютера есть стандартная область 16384-23296 (6912 байт), где расположена стандартная видеопамять спектрума.
Видеокарта замаплена на ОЗУ 16384-23296, из которых 2400 байт (80*30) отводится на код символа, и 2400 байт отводится на цвет и фон символа по 4 бита (итого 4800 байт некой "управляющей" области памяти)
Программа которая выводит на экран фразу "Hello World!" пишет по адресу 16384-16396 коды символов 48h 65h 6Ch 6Ch 6Fh 20h 57h 6Fh 72h 6Ch 64h 21h а по адресу 18784-18796 их цвет (допустим белый на черном 01110000b)
Видеокарта читая "управляющую" область ОЗУ формирует в своей памяти растр (согласно шрифту), и уже из него формирует видеосигнал на монитор согласно палитре


Графический режим, как я понимаю (хотя на самом деле не понимаю), должен по задумке автора работать так-же - "управляющая" спрайтами область в ОЗУ а видеокарта уже самостоятельно это все растеризует и выводит на монитор.

Lethargeek
09.02.2018, 10:50
В Спектруме потребуется прочитать байт, в котором 4 бита от соседнего тайла. Потом наложить 4 бита с нового тайла и записать обратно результат наложения.
и где здесь маска? и нет, необязательно "обратно", можно ведь и парой печатать тайлы


С Метеором читать не надо, так как есть прозрачный цвет.
зато надо писать дважды два непрозрачных

zx-kit
09.02.2018, 15:22
256 * 192 * 4 = 24 576 байт

В памяти видеокарты больше, так как округляется до чисел 2 в степени N и 2 экрана. С расчетом 320х240. Тогда округляется до 512х256. Ну и 4 бита все равно целый байт. И еще 2 экрана. Итого для этого экрана надо 256 Кбайт.

Я так понимаю устройство это (на примере текстового режима 80х30 для понятности) задумано так:


Есть видеокарта с образно говоря 48 Кбайт собственной памяти (80 * 480 = 38400 байт под растр символов 8х16, 16*256 = 4096 байт под шрифт и 16*3 =48 байт под палитру) из которой она самостоятельно строит изображение на экране монитора.
Видеокарта читая "управляющую" область ОЗУ формирует в своей памяти растр (согласно шрифту), и уже из него формирует видеосигнал на монитор согласно палитре


В общем верно, но адрес начала 0 и палитра 256 цветов по 2 байта. Т.е. 512 байтов на 1 слой. Для символьного экрана растр в память не пишется, а только символы преобразуются через шрифт, палитру и сразу на выход.


Графический режим, как я понимаю (хотя на самом деле не понимаю), должен по задумке автора работать так-же - "управляющая" спрайтами область в ОЗУ а видеокарта уже самостоятельно это все растеризует и выводит на монитор.
Графический по-другому. При записи одного байта в память видеокарты получается 8 байтов на 8 точек. Прозрачный цвет позволяет закрашивать выборочно точки в этой восьмерке.

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


и где здесь маска? и нет, необязательно "обратно", можно ведь и парой печатать тайлы

Ну и для Метеора токой метод возможно подойдет.


зато надо писать дважды два непрозрачных
И это хорошо. Отдельно рисуем PAPER, отдельно INK спрайта. И никакого клешинга после этого !

Lethargeek
09.02.2018, 19:13
Ну и для Метеора токой метод возможно подойдет.
такой - нет, когда перед выводом в одном регистре куски двух тайлов


И это хорошо.
что ж хорошего в необязательных (даже на обычном спектруме) операциях

OrionExt
09.02.2018, 19:20
Не скатывайтесь в обсуждение виде0-карты. Тут видимо для меня смысл другой. Модульный компьютер:)

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

А чего ждет автора, проблемы видео-карты? Или не проблемы. Но точно интерес его (если доберется) будет в другом:D

Totem
09.02.2018, 20:43
Очень сильный акцент на видеокарту, при практически полном отсутствии самого компа, я когда курил/прорабатывал тему, в ровно таком ключе.
Комп должен быть любительским, иметь минимум корпусов и использовать только ретро железки, включая CPLD и FPGA.
Должен максимально абстрагироваться от любого "видеовыхлопа" и дать максимально возможный объем адресного пространства для кода и данных и иметь минмальный вывод результата работы через UART.
Использовать самую документированную и полную шину пусть только по сигналам на самом слоте.
Комп может иметь любой менеджер памяти от ZX классики до MSX -подобного.
Комп должен иметь расширенный менеджмент памяти, для запрета и разрешения записи в адресном пространстве Z80 64KB
Комп не должен иметь более 128 КБ основной памяти на SRAM, вся остальная память, расширяются либо на SRAM 32КБ c кэшей , либо DRAM(SIMM) если нужен объем.
Примерно так, только тут очень мало пунктов еще, в итоге у меня получилось ,то что ты уже видел. 6 микросхем простейшего управления памятью (он же расширенный), если управляющие сигналы посадить на 0 и выбросить CPLD, то получишь классический ZX менеджер 48КБ.:v2_rolley:v2_wink:
Ну а слоты уж под все "хотелки" и да комп в идеале должен влазить в клавиатуру.

OrionExt
09.02.2018, 20:49
Totem, не читал, но осуждаю. Может, ХВАТИТ?

Totem
09.02.2018, 20:55
Totem, не читал, но осуждаю. Может, ХВАТИТ?
Я вижу избыточность, для простого модульного компа.
MSX машинка достойная не спорю, но там и без нас напридумывали

OrionExt
09.02.2018, 21:07
MSX машинка достойная не спорю, но там и без нас напридумывали
Да причем тут, MSX. Хотя эта машинка, требует подумать. О проеба…. 8-о проеб… платформе. Для всех.

А тут парень ворвался, надо помочь (параллельной – темой). Хотя парень, пока голословит, вот вопрос.

Totem
09.02.2018, 21:20
Да причем тут, MSX. Хотя эта машинка, требует подумать. О проеба…. 8-о проеб… платформе. Для всех.

А тут парень ворвался, надо помочь (параллельной – темой). Хотя парень, пока голословит, вот вопрос.

А ты почитай вникнись, автор уже какую страницу делает не комп, а уже видеокарту. где на каждую запись другого цвета на 8 пикселей надо писать в порт, если спрайт не 2 цвета.
Я а про комп.

OrionExt
09.02.2018, 21:30
Я а про комп.
Меня что, радует. В теме можно обсудить модульную конструкцию. Хотя все скатывается в хрень ( даже первый лвл. не раскрыт)

Totem
09.02.2018, 21:52
Меня что, радует. В теме можно обсудить модульную конструкцию. Хотя все скатывается в хрень ( даже первый лвл. не раскрыт)

С моей точки зрения, модульность - это возможность, как и разобрать существующий/самодельный комп на модули, так и модули оформить в комп, по своим возможностям, иными словами -если тебя устраивает куча плат на в корпусе standart ATX или сколоченным из фанеры, или комп в клавиатуре, с одинаковыми возможностями по функционалу и минимальным изменениями в софте, то это замечательно. Я ее не навязываю, но это единственный способ, после реализации компа и софта, иметь хоть минимальную группу интересующийся людей, а не оформлять поделку в коробку или на полку.

zx-kit
09.02.2018, 22:06
Меня что, радует. В теме можно обсудить модульную конструкцию. Хотя все скатывается в хрень ( даже первый лвл. не раскрыт)
Да все вроде уже разработали. Основное. Осталось видеовывод сделать. Так как тут самое новое, чего нет в других компах. Обычно в старых компьютерах медленные видеорежимы типа массив точек в основной памяти, атрибуты с клешингом или спецмикросхема.

Totem
09.02.2018, 23:10
Ну конечно, поэтому ты предлагаешь в своем метеоре, например озвученный выше
8 пикселей
запись в порт атрибутов и расчет адреса картой
LDI
запись в порт атрибутов и расчет адреса картой
LDI
и тд,
я так то просто звездное небо хочу на фоне "поскролить."
Может мы не знаем или не поняли как нам вывести 1 пиксел в 16 цветах ?

zx-kit
09.02.2018, 23:26
Ну конечно, поэтому ты предлагаешь в своем метеоре, например озвученный выше
8 пикселей
запись в порт атрибутов и расчет адреса картой
LDI
запись в порт атрибутов и расчет адреса картой
LDI
и тд,
я так то просто звездное небо хочу на фоне "поскролить."
Может мы не знаем или не поняли как нам вывести 1 пиксел в 16 цветах ?
Для рисования знакоместа 8х8 точек достаточно один раз установить значение ATTR и 8 раз LDI.

Перед рисованием НЕСКОЛЬКИХ тайлов надо включить режим рисования атрибутами:
ld a, ATTR_MODE
out (MODE),a

Перед рисованием очередного тайла надо задать адрес тайла в основной памяти и координаты на экране:
ld hl, адрес тайла
ld de, координаты тайла на экране

Задать два цвета для тайла:
ld a, атрибут знакоместа
out (ATTR),a

Нарисовать тайл
ldi
ldi
ldi
ldi
ldi
ldi
ldi
ldi

Для скроллинга звездного неба надо разработать тайловый слой с аппараным сдвигом.
Или перерисовывать в теневом экране все небо.


Пример команд для рисования точек.

Перед рисованием НЕСКОЛЬКИХ точек надо включить режим рисования цветом:
ld a, INK_MODE
out (MODE),a

Перед рисованием точек ДРУГИМ цветом надо задать цвет:
ld a, цвет точки
out (ATTR),a

Для рисования точки:
ld hl, координаты байта с точкой
ld a, байт с точкой
ld (hl), a

Totem
09.02.2018, 23:38
Круто, оберни в SDK и напиши библиотеку, чтоб никто из кодеров не видел, что творится на "лоу левеле"-:v2_dizzy_ok::v2_crazy:
главное, чтоб они не знали, от какой "поболи", ты их избавил :v2_frown::v2_dizzy_gamer::v2_dizzy_biggrin2:

zx-kit
09.02.2018, 23:52
Круто, оберни в SDK и напиши библиотеку, чтоб никто из кодеров не видел, что творится на "лоу левеле"-:v2_dizzy_ok::v2_crazy:
главное, чтоб они не знали, от какой "поболи", ты их избавил :v2_frown::v2_dizzy_gamer::v2_dizzy_biggrin2:
Ты знаешь лучший вариант ?

Totem
10.02.2018, 00:21
Ты знаешь лучший вариант ?
ты все одно, их не воспримешь, затащить бесполезный текстовый режим -это нормально для тебя, ограничить доступ к видеопамяти 16KБ и не меньше и не больше, тоже.
Но вопрос, зачем? если, ты все одно читаешь, тот же монохром и атрибуты из основной памяти,LDI и пишешь в порты для имения цвета точки?
попробуй представить себе кренделя, который возьмется за порт простейшей игры с ZX 16KБ под твой метеор :)
И памяти у тебя столько и срам, что амгига 500-600 , удавиться от зависти , а толку 0.

zx-kit
10.02.2018, 12:11
ты все одно, их не воспримешь, затащить бесполезный текстовый режим -это нормально для тебя, ограничить доступ к видеопамяти 16KБ и не меньше и не больше, тоже.
Но вопрос, зачем? если, ты все одно читаешь, тот же монохром и атрибуты из основной памяти,LDI и пишешь в порты для имения цвета точки?
попробуй представить себе кренделя, который возьмется за порт простейшей игры с ZX 16KБ под твой метеор :)
И памяти у тебя столько и срам, что амгига 500-600 , удавиться от зависти , а толку 0.
Мою видеокарту постоянно критикуешь, а свою хвалишь, хотя не написал о способе ее программирования. Ты зациклился на своей схемотехнике. Есть больше одного способа все делать. Почему ты навязываешь мне свой. У меня другие схемы и другое мнение на адресацию, способ записи параметров, программирования, размер окна и т.п.

Totem
10.02.2018, 13:31
Мою видеокарту постоянно критикуешь, а свою хвалишь, хотя не написал о способе ее программирования. Ты зациклился на своей схемотехнике. Есть больше одного способа все делать. Почему ты навязываешь мне свой. У меня другие схемы и другое мнение на адресацию, способ записи параметров, программирования, размер окна и т.п.
а что я должен делать, если ты в "крутой Челябинск" затаскиваешь все анахронизмы ретро компов и самоделок, единственное ты ввел, контроль чтения/записи в CPU0/ROM - это прорыв.
Чем тебе не нравится, конструктивная критика? Докажи, что твое решение в железе не только лучше/дешевле/доступней, но и удобней и проще для кодера. Если это действительно так, я пересмотрю свои решения и возьму твое. В чем проблема?
просто ты рассматриваешь свои железки отдельно, а я как комплекс, читай совокупность всех факторов, соблюдая баланс .
о какой видео карте ты говоришь? о Концепте в ветке концептов или именно, о достаточно простой и реализуемой с ретро железяками? без особых извращений с точки зрения кодера?

zx-kit
10.02.2018, 14:02
Я то написал фрагмент кода и он удобнее и проще для кодера, чем аналогичный для Спектрума. Теперь ты напиши, как выполняются такие же задачи в ULAX или в видеокарте из концептов. Или хотя бы для Спектрума. Тогда сравним.

Еще я придумал простой и эффективный коммутатор памяти с большими возможностями. И окно 16 К для него оптимально. И советуюсь с другими специалистами по модульному компьютеру. А ты с кем советуешься ? Если тебе кто-нибудь напишет, что твоя концепция не подходит - что будешь делать ?

Totem
10.02.2018, 15:43
Я то написал фрагмент кода и он удобнее и проще для кодера, чем аналогичный для Спектрума. Теперь ты напиши, как выполняются такие же задачи в ULAX или в видеокарте из концептов. Или хотя бы для Спектрума. Тогда сравним.

Еще я придумал простой и эффективный коммутатор памяти с большими возможностями. И окно 16 К для него оптимально. И советуюсь с другими специалистами по модульному компьютеру. А ты с кем советуешься ? Если тебе кто-нибудь напишет, что твоя концепция не подходит - что будешь делать ?


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


Еще я придумал простой и эффективный коммутатор памяти с большими возможностями. И окно 16 К для него оптимально.
Оптимально для чего? если я ставлю модуль с простым графическим контроллером аля ZX, но с вменяемой адресаций для имитации текстового режима с атрибутами ,достаточно 8KБ (округляем), остальные 8КБ я теряю . 8KБ для Z80 -это роскошный кусок памяти.
Собственно с моей точки зрения, у тебя страницы могут коммутироваться хоть по 32КБ, хоть как стандартные у тебя 16K, но есть возможность вообще, отключить любое обращение к основной памяти с градацией по 4-32КБ в адресном пространстве Z80.
Не могу пока, раскрыть всех подробностей о "девайсе" из Концептов, это как раз и есть "ЮлияИксадровна", но там, кодеру, за пару дней, свою игру можно сделать конфеткой, уровня амиги 500. Не меняя ни бита в коде и графике.
И тот вариант с простой видяхой, тоже не требует сильных напрягов, он либо использует 4Bit per pixel и быстрый CPU 14MГц с 2 страницами VRAM, которые разделены физически по шинам , либо еще одну "методу", не готов ее обсуждать именно сейчас, она очень тесно переплетена с "Юлькой" и является ее частным и простым случаем,
не требующим такой универсальности.

zx-kit
10.02.2018, 18:39
Оптимально для чего? если я ставлю модуль с простым графическим контроллером аля ZX, но с вменяемой адресаций для имитации текстового режима с атрибутами ,достаточно 8KБ (округляем), остальные 8КБ я теряю . 8KБ для Z80 -это роскошный кусок памяти.
Собственно с моей точки зрения, у тебя страницы могут коммутироваться хоть по 32КБ, хоть как стандартные у тебя 16K, но есть возможность вообще, отключить любое обращение к основной памяти с градацией по 4-32КБ в адресном пространстве Z80.

Экран 320х240 с округлением до степени двойки будет 512х256 точек или 16 Кбайт адресов. Занимает видеокарта адреса ПЗУ. Поэтому как было свободных 48К ОЗУ так и остается. Кроме этого с Метеором не надо будет тратить место под буфер и экран в основном ОЗУ. Теперь эта память тратится в видеокарте. Поэтому для программ больше места. А если надо все 64Кбайта, то можно вместо адресов ПЗУ включить ОЗУ и подключать видеокарту только когда надо вывести данные на экран. Куда еще больше места ? Кроме этого в любое окно можно подключить до 256 страниц памяти. И типов памяти/устройств может быть 16. При желании можно будет и больше сделать. А ты про какие-то 8 Кбайт беспокоишься.

При большом объеме памяти можно в одном окне оставить основной код программы, в другом окне подключать подпрограммы по мере необходимости, а в третьем окне подключать графические и другие данные. И окно 16 Кбайт очень удобно для этого. Максимально удобный размер.

Если не хочешь написать код к своей видеокарте, то на основе твоего опыта сборки модульных компьютеров и разработки видеокарт прокомментируй мой код. Покажи, в чем недостатки и как надо было сделать лучше/проще/удобнее/быстрее и т.п. А то ты глянешь и все тебе кажется плохим. На мой взгляд очень даже хорошо все получается.

Totem
10.02.2018, 20:18
Экран 320х240 с округлением до степени двойки будет 512х256 точек или 16 Кбайт адресов. Занимает видеокарта адреса ПЗУ. Поэтому как было свободных 48К ОЗУ так и остается. Кроме этого с Метеором не надо будет тратить место под буфер и экран в основном ОЗУ. Теперь эта память тратится в видеокарте. Поэтому для программ больше места. А если надо все 64Кбайта, то можно вместо адресов ПЗУ включить ОЗУ и подключать видеокарту только когда надо вывести данные на экран. Куда еще больше места ? Кроме этого в любое окно можно подключить до 256 страниц памяти. И типов памяти/устройств может быть 16. При желании можно будет и больше сделать. А ты про какие-то 8 Кбайт беспокоишься.

При большом объеме памяти можно в одном окне оставить основной код программы, в другом окне подключать подпрограммы по мере необходимости, а в третьем окне подключать графические и другие данные. И окно 16 Кбайт очень удобно для этого. Максимально удобный размер.

Если не хочешь написать код к своей видеокарте, то на основе твоего опыта сборки модульных компьютеров и разработки видеокарт прокомментируй мой код. Покажи, в чем недостатки и как надо было сделать лучше/проще/удобнее/быстрее и т.п. А то ты глянешь и все тебе кажется плохим. На мой взгляд очень даже хорошо все получается.

Экран 320х240 с округлением до степени двойки будет 512х256 точек или 16 Кбайт адресов. Занимает видеокарта адреса ПЗУ
Ну а зачем, оно мне нужно? как кодеру

Поэтому как было свободных 48К ОЗУ так и остается
какое "счастие", а можно и 58-60КБ оставить, ну от задачи.

Кроме этого с Метеором не надо будет тратить место под буфер и экран в основном ОЗУ. Теперь эта память тратится в видеокарте.

А если надо все 64Кбайта, то можно вместо адресов ПЗУ включить ОЗУ и подключать видеокарту только когда надо вывести данные на экран.
надожЪ, а ты сам догадался или подсказал кто? гыгы, вот только чем это отличается от этого? ты увидел только 2 чипа по 32КБ VRAM? и страницы ZX ? это тебя сразу смутило?

http://i12.pixs.ru/storage/1/7/3/zx222jpg_9245273_25944173.jpg

ну поясни, мне чет непонятно.

Если не хочешь написать код к своей видеокарте, то на основе твоего опыта сборки модульных компьютеров и разработки видеокарт прокомментируй мой код.
Я его уже вчера комментировал , это ад , который присутствует в компах с разными битовыми плоскостями, им от него никуда не деться это -ретро.

Покажи, в чем недостатки и как надо было сделать лучше/проще/удобнее/быстрее и т.п. А то ты глянешь и все тебе кажется плохим. На мой взгляд очень даже хорошо все получается.
Избыточность, оно не плохое, оно просто атавизм, очень хорошо получается, тепреь собирай это все вместе и пиши игрушку.
Только непонятно, что делать, когда придет INT, а главное ,лично мне такая система без звука, даром не сдалась, хоть у нее 24 бита на пиксель.

zx-kit
10.02.2018, 20:46
надожЪ, а ты сам догадался или подсказал кто? гыгы, вот только чем это отличается от этого? ты увидел только 2 чипа по 32КБ VRAM? и страницы ZX ? это тебя сразу смутило?
ну поясни, мне чет непонятно.

Подсказал TomaTLAB (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html?p=945306&viewfull=1#post945306) а потом полет фантазии дальше.
Не совсем понятно, что у тебя там нарисовано. Но видно, что у тебя не во все окна по 16 К можно подключать разные страницы. Я разработал коммутатор, который позволяет в любом из четырех окон по 16 Кбайт подключать любые страницы. И кроме основного ОЗУ и ПЗУ можно подключать дополнительные устройства с памятью. До 16 типов устройств. При необходимости можно увеличить до 256, но это усложнит дешифраторы в устройствах на 1 микросхему и пока хватит 16. И управление и возможности лучше, чем у ATM, ZX-EVO BASE CONF, TSU и MSX2. Например, для каждого окна отдельный порт с коротким адресом. Картридж внешний сменный и тоже может до 256 страниц по 16 Кбайт. В каких компьютерах так ?

Хотя вот думаю, может отдельные видеоконтроллеры - симвлольный экран, Метеор для устранения клешинга, слои с тайлами и т.п. адресовать как разные устройства и подключать также в разные окна. Может 15 хватит. А 16 оставить на возможность расширения еще на 16 устройтсв с усложненными дешираторами. У первых 16 в старших битах 0000.

OrionExt
10.02.2018, 21:24
О мэппере. В конце концов, не важно, какой у тебя мэппер (удобный или неудобный). Намного важней наличие ПО под этот мэппер. Неудобство мэппера можно компенсировать частотой ЦПУ.

О модульном компьютере. Я могу поверить, что такой компьютер можно сделать. Но что делать с ПО? На его создание уйдут многие годы (в одно лицо). Поэтому, если вернутся к суровой реальности, имеет смысл взять за основу любой массово выпускаемый в те годы компьютер. И дальше можно заниматься его улутшайзенгом до бесконечности получая от этого фан.

Все выше написанное также относится и к видео-подсистеме.

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

Чем меня подкупает модульная конструкция. Можно неспешно пилить (экспериментировать) модули. Каждый модуль не займет много времени. А это главное для хобби, ведь хобби не работа. А тут можно за короткий промежуток времени получить реальный результат и не заниматься изобретение 8-битного монстра многие годы, так и не достигнув цели.

zx-kit
10.02.2018, 21:44
О модульном компьютере. Я могу поверить, что такой компьютер можно сделать. Но что делать с ПО? На его создание уйдут многие годы (в одно лицо). Поэтому, если вернутся к суровой реальности, имеет смысл взять за основу любой массово выпускаемый в те годы компьютер. И дальше можно заниматься его улутшайзенгом до бесконечности получая от этого фан.

Все выше написанное также относится и к видео-подсистеме.
Может ты прав. А может нет. Не все так однозначно.
Допустим, ты хочешь запустить имеющееся ПО. Допустим, у тебя есть РАДИО-86РК, MSX2, Орион-128, ZX Spectrum или их клоны. По твоему надо в новом компьютере дублировать один или несколько этих компьютеров ? А ведь они работают не просто с процессором, но и с маппером памяти, адресами устройств и самими этими устройствами. Получится, что для полной совместимости надо продублировать полностью весь компьютер. А разумно ли это в наше время при наличии рядом готовых компьютеров ?

Я считаю, что надо адаптировать компьютер для запуска программ с двух основных компьютеров/систем:
CP/M - она работает через свой BIOS, который можно доработать почти под любой компьютер. И многие программы заработают. Желательно для этой ОС символьный экран на 80 симвлов в строке.
ZX Spectrum - доработанные программы для устранения клешинга. Не доработанные проще запустить, например, на Speccy2010 или ZX-EVO. Еще возможно ISDOS.

Еще раз - зачем дублировать компьютеры ? Лучше сделать компьютер с новыми возможностями и который позволяет делать что-то новое, что недоступно на других компьютерах.


Чем меня подкупает модульная конструкция. Можно неспешно пилить (экспериментировать) модули. Каждый модуль не займет много времени. А это главное для хобби, ведь хобби не работа. А тут можно за короткий промежуток времени получить реальный результат и не заниматься изобретение 8-битного монстра многие годы, так и не достигнув цели.

Согласен. Кроме этого, можно модули заменять, дорабатывать, докупать и т.п. для разных целей и собирать компьютеры по вкусу покупателя. И расширять возможности компьютера без переделки других модулей или замены всего одноплатного компьютера.

OrionExt
10.02.2018, 21:51
Еще раз - зачем дублировать компьютеры ? Лучше сделать компьютер с новыми возможностями и который позволяет делать что-то новое, что недоступно на других компьютерах..
Ну, натянешь ты СР/М, напишешь некий биос и/или монитор может еще что-то. Этим обычно и заканчивается в 99,9% при изобретении очередного некого компа. Хотя может ты относися к тому 0,1%. Но и 0,1% энтузиазм рано или поздно пропадает без подпитки из вне (сообщества вокруг ретро-платформы).

zx-kit
10.02.2018, 22:02
Ну, натянешь ты СР/М, напишешь некий биос и/или монитор может еще что-то. Этим обычно и заканчивается в 99,9% при изобретении очередного некого компа. Хотя может ты относися к тому 0,1%. Но и 0,1% энтузиазм рано или поздно пропадает без подпитки из вне (сообщества вокруг ретро-платформы).
CP/M я наверно не доработаю. Но дорабатает кто-нибудь в этом разбирающийся.

Компьютер для хобби, для творчества. Я делаю такие схемы, чтобы желающие могли его легко спаять. И алгоритмы работы устройств простые и эффективные, выбор режимов работы такие простые, чтобы можно было без особых затруднений написать свою игру, адаптировать игру со Спектрума или текстовую программу с Ориона.

OrionExt
10.02.2018, 22:06
Ну, вот смотри, берешь Орион и подключаешь к нему V9958 или свою видео-карту. Или вот реальный пример берешь MSX и подключаешь VDP от Sega Master System (можно не спешно тянуть игры).

База фанатов уже есть. Даже если не взлетит, фанаты ничего не теряют. А если взлетит так вообще будет супер.

zx-kit
10.02.2018, 22:12
Ну, вот смотри, берешь Орион и подключаешь к нему V9958 или свою видео-карту. Или вот реальный пример берешь MSX и подключаешь VDP от Sega Master System (можно не спешно тянуть игры).

База фанатов уже есть. Даже если не взлетит, фанаты ничего не теряют. А если взлетит так вообще будет супер.
Допустим, сделаю я видео-карту для Спектрума. Но в нем нет коммутатора, медленный проц, нет картриджа. Зато есть схема управления памятью, ROM, дисковод, схема вывода на экран. Это все надо будет добавить, а новые возможности отключить. Получится не рыба, не мясо, а гибрид.
И в результате скажут: "ЭТО НЕ ZX SPECTRUM".

Totem
10.02.2018, 22:20
Не совсем понятно, что у тебя там нарисовано. Но видно, что у тебя не во все окна по 16 К можно подключать разные страницы.
Уже 3 раз говорю, показан простейший вариант и самый реальный, где страницы переключаются исключительно, для совместимости, с классическим ZX 128 и вариантом, где может быть использован режим SamCoupe - 4 бита на точку. Ничего сверхъестественного, при CPU на 14 МГц. где требуется 24КБ, но так как VRAM физически,
сидят на разных шинах, а область CPU 0-1, "замаплена" c ней, ничего не мешает , работать с VRAM1, как CPU, так и другому "девайсу" на шине, пока отображается VRAM0 например. СPU может брать данные из этой (CPU0-1) и писать в страницу VRAM. а может отрубить свой доступ туда, полностью. и отдать любому/модулю/ускорителю и забрать нужные данные, уже готовые.
Это простейший случай, напомню, о прозрачных цветах речи еще нет, просто для понимания. И это лишь самоделка не забывай, о массовости в промышленных масштабах, речи быть не может. Чем больше сможешь сам, надергать готового тем лучше и быстрее :)

OrionExt
10.02.2018, 22:23
Получится не рыба, не мясо, а гибрид. И в результате скажут: "ЭТО НЕ ZX SPECTRUM".
Ну почему гибрид. Разве MSX гибрид (это единственный комп с возможность расширения на уровне биос-а). Или ZX гибрид с музыкальной картой OPL4. Плюс еще модульность, так это вообще супер.

Ну а кому не ZX. Пускай сидят за ZX48 с резиновой клавиатурой. Есть и такие ретрограды в степени 2:)

zx-kit
10.02.2018, 22:29
Можно за основу взять Орион и подключить свою видео-карту, но будут работать только текстовые программы, которые работают через биос с символьным экраном.
Но графический экран у меня только для игр 320х240.

Totem
10.02.2018, 22:29
Допустим, сделаю я видео-карту для Спектрума. Но в нем нет коммутатора, медленный проц, нет картриджа. Зато есть схема управления памятью, ROM, дисковод, схема вывода на экран. Это все надо будет добавить, а новые возможности отключить. Получится не рыба, не мясо, а гибрид.
И в результате скажут: "ЭТО НЕ ZX SPECTRUM".
С точки зрения ZX/Z80 -это формально, по архитектуре "ZX Spectrum", как интерпретируются, данные, которые пишутся в любую область VRAM какую сам назначишь, а это может быть модуль, повторю, почти такой как ZX, но с более вменяемой адресацией, "абсолютли"! (с) Курицын " не важно.

OrionExt
10.02.2018, 22:37
zst, я вот уже почти всю базу MSX собрал на модулях. Теперь можно заняться экспериментами. А главное всегда можно чего-то подкрутить или поменять.

Можно и Орион на модульные рельсы перевести. Правда, там по сути весь комп - это большая видео-карта. У меня клепки (пока) не хватило, как это все вменяемо на модули разобрать. Поднаторею может и за Орион возьмусь:)

Totem
10.02.2018, 22:44
Ну почему гибрид. Разве MSX гибрид (это единственный комп с возможность расширения на уровне биос-а). Или ZX гибрид с музыкальной картой OPL4. Плюс еще модульность, так это вообще супер.

Ну а кому не ZX. Пускай сидят за ZX48 с резиновой клавиатурой. Есть и такие ретрограды в степени 2:)

У MSX, единственный недостаток, это его "видео чип".

OrionExt
10.02.2018, 22:53
У MSX, единственный недостаток, это его "видео чип".
Ну почему недостаток. Ну, заточен на бизнес графику. Пока доступен. Да сложно программируется видео, точнее совсем не так как это в основном принято у 8-битных компов. Но темнее менее динамические игры писать на нем возможно, и они есть. Мне вот другое там не понятно. Ведь было решение с расшариванием видео памяти на основную память, но почему-то в массы не пошло. Нонсенс.

Totem
10.02.2018, 23:58
Ну почему недостаток. Ну, заточен на бизнес графику. Пока доступен. Да сложно программируется видео, точнее совсем не так как это в основном принято у 8-битных компов. Но темнее менее динамические игры писать на нем возможно, и они есть. Мне вот другое там не понятно. Ведь было решение с расшариванием видео памяти на основную память, но почему-то в массы не пошло. Нонсенс.
Для "ЮлииИксандровны", это печаль, но тоже решаемая задача, теоретически, она "8 битных мужиков любит", любых. :)

- - - Updated - - -


Метеор для устранения клешинга, слои с тайлами и т.п. адресовать как разные устройства и подключать также в разные окна.
Вот дался тебе этот клэшинг -это боль, только одной машинки - ZX, при том, он особо не волнует, ни творцов крутых игрушек, ни демомейкеров.
Ты "ниразу от слова совсем" не сможешь, сделать лучше. А самое главное, заинтересовать их, своей железякой. нет ПО - мертвое железо, таких проектов "штук адцать. ", а если можешь выдернуть готовое, для самоделки, это + к бонусу потраченного времени на разработку железа, а время -это единственная валюта, которую нельзя поменять ни на что :v2_dizzy_grandfathe

zx-kit
12.02.2018, 17:52
ZILOG меня поддержал. Жду прихода образцов Z80 20 MHz и Z180 33 MHz.

bigral
12.02.2018, 18:37
пару копеек:

1. msx с его "проблемой" tms9918 это как раз пример того как передрали комп на S100. Именно таким образом TI решали вопрос - "комп отдельно, видяха отдельно!". В смысле у них разные шины памяти и работают они ассинхронно. Именно поэтому например, изначально бравшийся CLK для Z80 от самого tms9918, у OrionExt-а был брутально сгенерен со своего генератора. В zx или с64 такое невозможно, просто по факту, потому что проц и видяха это одно целое и работает синхронно. Потому и ОРИОН128 не может OrionExt сходу "разбить" на модули, потому что там модули будут - "видео и проц" + "клавиатура и магнитофон"... а это как бы не модули. Тоже самое и zx. Тоже самое и atari xl. Тоже самое и c64. НО!!! совсем другое дело IBM PC... или pdp-11 или любой комп на S100.

2. в этой теме куча разговоров про видяху а не про архитектуру компа именно потому что это определяет суть комп-а... будет ли он тормозом в стиле ОРИОН128 и ВЕКТОР06 или он претендует на лавры ПК8002 (который, по непроверенным данным, по крутости не сильно хуже c64 и msx2, при том что не использует ни одной "импортной" микрухи и работает на МЕНЬШИХ частотах).

3. про видяху, автор решил сделать максимально простой алгоритм пересчета координат в видео-адреса... а остальное он хочет "подавить" мощей 14mhz процессора... ... ... ... ... ... ... Ну блин может это и прикольно для кого-то, но для меня это очередной "atari st" или же если хотите "i8086 + vga mode 13h". А неинтересно мне это потому, что уже эта ниша занята проектами "ПОИСК-1\2\3 + EGA\VGA", и там есть "модули", и там есть cp/m или ms-dos, и там есть куча всяких borland pascal / c++ с EMS и оверлеями.

OrionExt
12.02.2018, 19:15
ZILOG меня поддержал.
Если нельзя, но очень хочется, то можно:)

Как раз сейчас делаю платку прототип 100х100 по стандарту Eurocard под разъем DIN 41612. Платка совместима с разъемами PLD.

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


Именно поэтому например, изначально бравшийся CLK для Z80 от самого tms9918, у OrionExt-а был брутально сгенерен со своего генератора.
Да откуда такая уверенность, что процессор надо тактировать от VDP. Требуется официальная инфа.

Часть производителей MSX так не считают. И потом вон у TMS9928A/9929A вообще выхода 3.58МГц нет. Все это заморочки от NTSC стандарта. Касательно сигнала системной шины CLOCK. Это ни что иное, как частота тактирования ЦПУ. Именно ЦПУ. Используется для регена DRAM на внешних модулях памяти.


Потому и ОРИОН128 не может OrionExt сходу "разбить" на модули, потому что там модули будут - "видео и проц" + "клавиатура и магнитофон"... а это как бы не модули. Тоже самое и zx. Тоже самое и atari xl. Тоже самое и c64.
Ну да как то так.

zx-kit
12.02.2018, 20:06
про видяху, автор решил сделать максимально простой алгоритм пересчета координат в видео-адреса... а остальное он хочет "подавить" мощей 14mhz процессора... ... ... ... ... ... ... Ну блин может это и прикольно для кого-то, но для меня это очередной "atari st" или же если хотите "i8086 + vga mode 13h". А неинтересно мне это потому, что уже эта ниша занята проектами "ПОИСК-1\2\3 + EGA\VGA", и там есть "модули", и там есть cp/m или ms-dos, и там есть куча всяких borland pascal / c++ с EMS и оверлеями.
Ну Метеор и на частоте 3.5 MHz будет быстрее Спектрума. И я еще не начал делать тайловые слои, которые и без блиттера быстрые.
А на счет того, что ниша занята. Да хватит нам всем места. У нас уже на Z80 пяток модульных компьютеров наберется.

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


Как раз сейчас делаю платку прототип 100х100 по стандарту Eurocard под разъем DIN 41612. Платка совместима с разъемами PLD.

Я тоже планирую. Давно уже планирую (http://zx-pk.ru/threads/10327-zxkit1-konstruktor-dlya-zx-tvorchestva.html?p=832228&viewfull=1#post832228).
Только вот с сигналами тогда не определился. Хотелось предусмотреть сразу все. Сейчас многое прояснилось. От трехвольтовой шины и ПЛИС на каждом модуле возвращаюсь к пятивольтовой шине и DIP микросхемам К555. Только вот про буферизацию шины данных надо уточнить у специалистов.

Barsik вроде еще в 90-е устанавливал в Орион-128 Z80 и К555АП6. Как там правильно переключать направление буферов чтобы случайно чего не пожечь ?

Хорошо бы договориться о стандарте на шину компьютеров на базе Z80/Z180. Хотя бы для компьютеров, близких к ZX и Ориону. У MSX наверно несовместимая с ними шина.

bigral
13.02.2018, 00:20
Ну Метеор и на частоте 3.5 MHz будет быстрее Спектрума. И я еще не начал делать тайловые слои, которые и без блиттера быстрые.

Про тайлы я так и не понял, они будут или нет? Если да то комп будет похож на ПК8000, ну да скорость перерисовки экрана там супер, но есть проблема со сдвигом background-a (так же как и в msx1) и с выводом спрайтов. Потому что для этого надо сдвигать сами тайлы\спрайты в памяти и потом накладывать так же как и на zx-spectrum, а это сжирает всю скорость и главная суть тайлов исчезает. Удачные компы с тайловой технологией это С64(бомба!), atari xl(мало цветов), msx2+(нет синхронности и общей шины с процом, тяжело сделать sprite multiplex-ор). Остальные страдающие: pk86-токо текст (и еще дофига ерунды), пк8000\пк8002\msx1 - нет сдвига тайлов, msx2-кривой сдвиг по горизонтали.

Про блиттер я вообще не слышал до этого момента, если его делать то выйдет шото типа amiga, которое за счет скорости переброски и обьема памяти может успевать выводить на экран больше чем голый процессор (например за счет того, что конфигурация о том "откуда и куда кидать" и "как при этом сдвигать" будет хранится в отдельном высокоскоростном sram небольшого размера).

zx-kit
13.02.2018, 01:03
Про тайлы я так и не понял, они будут или нет? Если да то комп будет похож на ПК8000, ну да скорость перерисовки экрана там супер, но есть проблема со сдвигом background-a (так же как и в msx1) и с выводом спрайтов. Потому что для этого надо сдвигать сами тайлы\спрайты в памяти и потом накладывать так же как и на zx-spectrum, а это сжирает всю скорость и главная суть тайлов исчезает. Удачные компы с тайловой технологией это С64(бомба!), atari xl(мало цветов), msx2+(нет синхронности и общей шины с процом, тяжело сделать sprite multiplex-ор). Остальные страдающие: pk86-токо текст (и еще дофига ерунды), пк8000\пк8002\msx1 - нет сдвига тайлов, msx2-кривой сдвиг по горизонтали.

Для ходилок изображение строить на четырех слоях/планах:
1 план. Тайлы. Объекты перед спрайтами ГГ и врагов - столбики, деревья, заборы, ящики и т.п.
2 план. Спрайты. Все движущиеся объекты - ГГ, враги, пули, снаряды, взрывы и т.п.
3 план. Тайлы. Передний фон - дома, лестницы, деревья, мебель и т.п.
4 план. Тайлы. Дальний фон - горы, небо, облака, пески и т.п.

Тайлы можно сделать так.
В одной микросхеме кэша карта уровня размером 256х128 тайлов. Каждый тайл в слое имеет номер от 0 до 255. Этот номер подается на две микросхемы кэша. В ней тайлы как в знакогенераторе, но по 8 бит на точку. Размер тайла 16х16 точек. Занимает в памяти 256 байтов. В двух микросхемах кэша влезет 256 тайлов. Задается смещение в тайлах и точках. После кэша стоит регистр. После этого определяется признак прозрачности 255 и выдается на шину. Смеситель слоев определяет, какой слой виден и подает номер слоя на шину и активирует сигнал вывода цвета точки на шину. Если номер слоя совпадает, из регистра на графическую шину выдается цвет точки. Три модуля слоев одинаковы, кроме номера слоя и контакта, на который подается признак прозрачности. Задавая смещение в слое можно будет показывать на экране соответствующую часть фона уровня. Это имитирует аппаратный скроллинг.

Спрайты посложнее и помедленне рисовать. Тут нужна скорость процессора и возможность рисования в любом месте экрана с точностью до точки. И накладывать несколько спрайтов с перекрытием. Можно использовать такой способ. Координату X столбика записать в соответствующий порт. Записать 0 в регистр D, координату Y спрайта - в регистр E. Адрес в основном ОЗУ столбика точек спрайта записать в регистры HL. И нарисовать столбик точек спрайта по 8 бит на точку несколькими командами LDI или одной LDIR. После этого аналогично нарисовать все столбики спрайта. Спрайты будут храниться в основном ОЗУ или на картридже. Размер на блок спрайтов потребуется большой. Признак прозрачности также 255. При таком байте точка не рисуется. Это имитирует эффект наложения спрайтов с учетом прозрачности. Так как спрайты рисуются медленно использовать 2 экрана. На одном рисуем, другой отображаем на мониторе. Скроллинг для слоя спрайтов не нужен.

Вот такая задумка для ускорения игр. Каждый слой/план может иметь свою палитру. Возможно для других игр надо больше слоев, например, слой для счетчика попыток и очков, курсор для мышки и т.п. Но для большого количества игр будет достаточно 4х слоев. Это для игр типа Сеги. Еще один модуль для игр со Спектрума и один для символьного экрана. Но количество модулей будет больше и для графики нужна дополнительная графическая шина.

bigral
13.02.2018, 12:26
Короче главная идея в том что "битовые сдвиги" тебя достали... связываться с ними ты не хочешь, потому отныне и навсегда графика с 2,4,8,16,32,64,128 цветами считается табу. Есть только 8bit на точку! Что есть байт. А байты лежат в памяти отдельно друг от друга, каждый по своему адресу, и сдвигов никаких ненадо не при выводе их на экран не при занесении их в экран... А то что это потребует дикой пропускной способности памяти ты решил подавить 15ns кэшем и шириной шины в 16bit (или 64 таки?) Ну идея старая, тот же самый vga mode 13h. То что там много слоев с апаратным наложением... ну это такое, ничего вызывающего эмоции. Ну видяха получится в стиле vulcan74 https://youtu.be/HqSYwKYwtOo Я бы сказал уныло, почему? Да потому что 15ns и ширина 16bit это 133Mb/sec трансфера (я уже молчу про "слои" у каждого из которых своя шина). Для сравнения у С64 и ZX-a стояла память 150ns x 8bit это 6.6Mb/sec что в 20 раз меньше. Я с самого начала темы задал вопрос, будет ли это проект retro? или допускаются cpld \ fpga, на что получил ответ типа: "тут речь об концепции и архитектуре, а реализацию каждый будет мутить на чем захочет". Довольно странное для меня понимание вопроса, потому что например с64 МОЖНО реализовать и на sn74fxxx и на cyclon10 исходя из одной и той же принципиальной схемы. Но вот с PS4 такой фокус не пройдет. Потому советую сделать шаг назад, подумать над вариантом 16 цветов на точку с палитрой 256 (это amstrad cpc plus! очень достойная графика https://youtu.be/W3-kACj3uQA). Рассмотреть как там ПК8002 сделан и сделать шото в стиле с64. Это будет реальное retro и реально привлечет интерес.

И вот тут http://zx-pk.ru/threads/28278-2017!-krizis-retrokompyuternogo-khobbi-i-spektrumostroeniya-varianty-vykhoda.html не совсем четко но видно чего хотят форумчане. По простому - это либо реальное ретро, либо точные эмули реального ретро в fpga. Но просто самостоятельные компы на fpga интересуют народ гораздо меньше (примеры: tsconf, retroleum, spec256, sprinter... буржуйский zx next под вопросом, но думаю труба ему такая же как и "новым амигам").

zx-kit
13.02.2018, 16:31
Не я начал разговор о том, что нам надо превзойти MSX2+ (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html?p=943062&viewfull=1#post943062). Но идея мне понравилась. Для графических модулей будет отдельный ряд из восьми разъемов DIN-64. Для наложения слоев в шине будет 8 бит на цвет. Выдаваться будет с модуля с верхней закрашенной точкой. Модули будут на микросхемах DIP и КЭШ.

Блиттер не планируется. Скорость шины не считал, мне это не надо.

Компьютер не ретро, а скорее новый. Вернее фантазии на тему, какой крутой можно было бы сделать тогда комп, если были бы доступные микросхемы КЭШ. Сам про них недавно узнал. Спасибо, Error404 подсказал их применять. CPLD/FPGA постараюсь не использовать. Микросхемы по-возможности буду использовать пятивольтовые в корпусах DIP-14/16/20, а память статику 32К*8 20 ns в корпусах DIP-28.

Запись в видеокарту Метеор производится байтами как в Спектруме, но из атрибута получаются сразу 8 точек по 4 бита. Поэтому в Метеоре будет 8 микросхем кэша, у которых адреса параллельно, а байты раздельно. В каждую микросхему записывается соответствующая точка. В байте использутеся только 4 бита, так как в байте атрибутов их 4. Но можно добавить режим, когда PAPER и INK записываются отдельными байтами. При этом потребуется добавить соответствующие регистры и 8 мультиплексоров КП11.

Режим тайлов простой, но усовершенствованый по сравнению с Денди. Тайлы 16х16, а не 8х8. Цветов 256, а не 12. Можно сразу записать тайлы всего уровня, чтобы не приходилось подрисовывать с краю при скроллинге. Ну и слоев тайлов три. Осталось придумать, как выбирать соотношение карты уровня: 1024*32, 512*64, 256*128, 128*256, 64*512, 32*1024.

Totem
13.02.2018, 17:02
хочу вывести картинку 128 x128 pixels.

zx-kit
13.02.2018, 19:26
хочу вывести картинку 128 x128 pixels.
Ну давай. Ты уже знаешь все способы. Каким будешь выводить ? Тайлами, как спрайт, в режиме INK_MODE или в символьном режиме ?

Lethargeek
13.02.2018, 20:05
омпьютер не ретро, а скорее новый. Вернее фантазии на тему, какой крутой можно было бы сделать тогда комп,
блин, а мы-то с пацанами в ретрокомпутерном нашем детстве считали, что определяется "крутость" тем, ЧТО умеет комп, а не КАК :v2_unsur:


если были бы доступные микросхемы КЭШ.
:v2_dizzy_facepalm: :v2_laugh: да ведь все заботливо тобою собранные в кучу древние костыли выдуманы были и применялись как раз по причине НЕдоступности такой памяти

zx-kit
13.02.2018, 20:12
Главное обеспечить в компьютере все или многое для облегчения программирования и приемлемой скорости. Убрать лишние заморочки с нелинейной адресацией, комбинацией разных битов в одном порту, двухбайтовые порты, зависимость скорости процессора от тактовой видевывода и т.п. трудности. Вот они то и мешают людям осваивать программирование. И не важно, есть ли блиттер. Скорость итак достаточная будет. Я выбрал тайлы, выбрал размер тайлов, количество цветов и т.п. исходя из доступных комплектующих. Мы же в реальном мире живем. Нельзя увеличивать все параметры до бесконечности. Что ты считаешь костылями мало кого интересует. Я выбрал такие способы, которые подходят мне и подойдут многим.

Lethargeek
13.02.2018, 20:35
Главное обеспечить в компьютере все или многое для облегчения программирования и приемлемой скорости. Убрать лишние заморочки с нелинейной адресацией, комбинацией разных битов в одном порту, двухбайтовые порты, зависимость скорости процессора от тактовой видевывода и т.п. трудности.
...и добавить новых трудностей-заморочек с тайлами, спрайтами, слоями, ограничениями цветности-размерности итд :v2_rolley


Вот они то и мешают людям осваивать программирование. И не важно, есть ли блиттер.
важно, чтобы было поменьше лишнего, что и мешает освоению программирования, бесполезно занимая нервные клетки
а блиттер отличается как раз тем, что при его достаточной скорости - лишним уже будет всё остальное


Я выбрал тайлы, выбрал размер тайлов, количество цветов и т.п. исходя из доступных комплектующих.
вот никак выбор тайлов и других поросших мхом костылей "из доступных комплектующих" НЕ исходит :v2_dizzy_no:


Мы же в реальном мире живем. Нельзя увеличивать все параметры до бесконечности.
и поэтому ты их неоправданно ухудшаешь? :v2_dizzy_facepalm:


Что ты считаешь костылями мало кого интересует.
я считаю, что ты сам себе напротиворечил

TomaTLAB
13.02.2018, 22:22
древние костыли выдуманы были и применялись как раз по причине НЕдоступности такой памяти
Неее.... Отнюдь... Можно и на РУ5-ых извернуться и выводить хоть байт на точку, хоть три. Именно байт из адресного пространства процессора.
Вот только процессор-то просто не переварит такой объем за приемлемое время. Мы же про Z80? Теплый ламповый?
Вот отсюда все эти плоскости, инки-паперы и прочие регистры цвета-маски.
Не, ну и выдернуть байт на 8 точек в сдвиговый регистр оно конечно тоже жизнь упрощало. :)

Lethargeek
13.02.2018, 22:42
Неее.... Отнюдь... Можно и на РУ5-ых извернуться и выводить хоть байт на точку, хоть три. Именно байт из адресного пространства процессора.
это было слишком ненадёжно и слишком дорого
а надёжно и недорого - недоступно


Именно байт из адресного пространства процессора.
вообще нет связи


Вот только процессор-то просто не переварит такой объем за приемлемое время.
dma на быстрой памяти переварит


Мы же про Z80? Теплый ламповый?
мы про все возможные технологии


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

zx-kit
14.02.2018, 05:00
Тайлы может и устарели, но они до сих пор могут работать и помогают выводить и сдвигать слой фона без лишних команд. Видеокарта рисует их автоматически и сдвигать их легко без дополнительных команд пересылки. Тайлы также помогают изобразить огромные игровые пространства из повторяющихся блоков при небольших расходах памяти. Кроме этого можно ведь способ вывода тайлов и усовершенствовать, глядя на недостатки тайлов в старых игровых приставках.

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

В Челябинске тайлы крупнее, их фактически больше, их легче записывать в экран. В Денди 256 тайлов размером 8х8 точек. В играх тайлы объединяют в блоки 16х16. При этом количество таких блоков фактически в 4 раза меньше, чем тайлов, то есть 64. И этого количества было достаточно для игр. Почему бы тайлы не сделать сразу 16х16 точек ? Тайлов/блоков будет 256, а не 64. Для записи тайла 16х16 достаточно будет записать один байт, а у Денди лепили в экранную область 4 мелких тайла 8х8, т.е. записывали 4 байта.

В Челябинске тайлы более цветастые - по 256 цветов на точку. В денди по 2 бита на цвет точки + байт атрибутов на 4 блока 16х16 точек. В итоге количество цветов на экране для тайлов 13.

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

Как это работает.
В одной микросхеме кэша 32 К * 8 размещается карта тайлов размером 256х128 тайлов для всего уровня игры или его части. Каждый тайл в карте тайлов занимает один байт и имеет номер от 0 до 255 как в символьном экране. При выводе на монитор по координатам в развертке и смещению в карте тайлов на блок данных тайлов подаются соответствующие сигналы - номер тайла, номер строки тайла и номер столбца тайла. Блок данных тайлов реализован на двух микросхемах кэша. Работает как знакогенератор в символьном экране. Размер тайла 16х16 точек. Занимает в памяти 256 байтов. В двух микросхемах кэша 64 Кбайта размещаются данные 256 тайлов.

После кэша стоит регистр. С его выходов цвет точки подается на графическую шину, если выбран вывод с этого слоя графики. Чтобы определить с какого слоя выдавать точку после кэша цвет точки анализируется - прозрачная она или нет. Код прозрачной точки 255 или FF. Микросхема К555ЛА2 выдает на шину признак прозрачности 0, если код равен FF. Смеситель слоев определяет, какой самый ближний слой виден, то есть цвет точки не прозрачный и подает номер слоя на схему выбора слоя и активирует сигнал вывода цвета точки на шину.

drbars
14.02.2018, 12:21
zst, карта должна поддерживать все имеющиеся стандарты. Основных два TS-Conf и ZX Spectrum Next. Пилить ещё стандарты нет особо смысла, т.к. софта не будет.

vlad
14.02.2018, 12:30
карта должна поддерживать все имеющиеся стандарты. Основных два TS-Conf и ZX Spectrum Next. Пилить ещё стандарты нет особо смысла, т.к. софта не будет.
Также нет смысла пилить годами концепцию, когда уже есть готовая карта. Начните уже делать достойный софт.

Lethargeek
14.02.2018, 12:58
Почему тайлы в компьютере Челябинск лучше, чем в Денди.
потому что хренобайты быстрой кэш памяти, а ты всё с денди соревнуешься, ё-моё :v2_dizzy_facepalm:


карта должна поддерживать все имеющиеся стандарты. Основных два TS-Conf и ZX Spectrum Next.
"всех" десятки, вот чем эти два неспектрума "стандартнее" msx и других неспектрумов на z80? особенно для модульного неспектрума

zx-kit
15.02.2018, 04:53
Lethargeek, пиши по теме. Я понял, что блиттер решает все проблемы, но тут разрабатывается новый игровой ретро компьютер на микросхемах логики и кэш-памяти в корпусах DIP и быстром микропроцессоре на частоте 20/33 MHz.

В одном режиме компьютер будет совместим с играми ZX Spectrum, доработанными для устранения клешинга.
В другом для программирования своих игр изображение фона строится тайлами, типа как в NES и SEGA, а спрайты будут рисоваться в спрайтовом слое командами LDIR.
В третьем режиме - текстовые программы с символьным экраном 30х80 символов.

Вот и советуй именно по выбранным способам изображения. Только давай без голословной критики. Подскажи, как улучшить, что добавить и почему ? Или не пиши. У тебя есть своя тема по видеокарте. Там и обсуждай свой блиттер. Посмотрим, что скажут другие.

Текущий вариант конструкции и шин.
Кросс-плата из двух рядов по 8 гнезд DIN-64. Габариты ориентировочно 170х210 мм. В каждом ряду своя шина с буферизацией. Все линии шин подтянуты к +5В через резисторы 10 кОм.
Первая шина для устройств ввода-вывода и модулей памяти. Буферы шины адреса и двунаправленный на шину данных.
Вторая шина для графических модулей. Через отдельные буферы шина адреса и шина данных только на вывод. И дополнительные сигналы - синхроимпульсы, цвет точки с текущего слоя и т.п.

Большинство модулей рассчитано на платы размерами max 100х100 мм с одним разъемом DIN-64.
Модуль процессора особенный с двумя разъемами. С него через буферы идут сигналы на обе шины. На плате также также будет коммутатор памяти, который для ускорения работы подключается к процессору напрямую без буферов. Также на плате будут располагаться дешифраторы портов ввода, вывода и двунаправленных. Сигналы выбора портов будут идти на общую шину. На модулях будут располагаться только основные микросхемы без дешифраторов. Это позволит упростить модули и сделать возможность перепрограммирования адресов путем замены модуля процессора.

Детали постепенно собираются. Вот что уже есть:
Z80 20 MHz PLCC-44 с панелькой.
Z180 33 MHz PLCC-68 с панелькой.
К1533ИР32 и другая логика.
Панельки для КЭШ.
Разъемы DIN-64.
Макетки.
Кварцы на 12, 14, 16 MHz.
FLASH 128 Кбайт 70 ns DIP-32 с панелью ZIP-32.

В пути:
Кэш-память 32K*8 в узких DIP-28.
Генераторы 25.175 MHz.

drbars
15.02.2018, 12:03
zst, как насчет добавить в схему DataGear? Уже считай стандарт DMA на спектруме. Например в Next он уже интегрирован. Для фирменных машин существует в виде платы вставляемой в слот процессора.

Dr.Potapov
15.02.2018, 12:44
В одном режиме компьютер будет совместим с играми ZX Spectrum, доработанными для устранения клешинга.
В другом для программирования своих игр изображение фона строится тайлами, типа как в NES и SEGA, а спрайты будут рисоваться в спрайтовом слое командами LDIR.
В третьем режиме - текстовые программы с символьным экраном 30х80 символов.

Вот и советуй именно по выбранным способам изображения. Только давай без голословной критики. Подскажи, как улучшить, что добавить и почему ?
С моей точки зрения, три вышеописанных режима это свойства видеокарты (прошу прощения, что опять встреваю с видео). По-моему тут у вас в проекте ключевая ошибка - вы жестко "наградили" компьютер тремя режимами без возможности избежать их или расширить каким либо образом.

Мои соображения (раз критикую, то разумеется и предлагаю) - оставить компу комповое, а видеокарту вынести совсем в отдельное устройство, жестоко замапленное на #4000-#5980 (стандартный zx VRAM).

Таким образом можно подойти к разработке итеративным путем - сначала реализовать на отдельной плате стандартный zx видеорежим (к примеру 0), затем в другом устройстве реализовать и нулевой и первый (текстовый 80х25), затем в следующем устройстве реализовать нулевой, первый и второй режим (256х192 / 24bpp к примеру).

Как реализовать нулевой режим я писать не буду - там простой маппинг на стандартную видеопамять спектрума (для совместимости), он же является основным.

Режим #01 я описал вкраце тут (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html?p=949640&viewfull=1#post949640). Поясню почему там фигурирует видеопамять, хотя вроде бы можно и без нее обойтись. По моим соображениям она нужна (и в небольшом количестве для этого режима) для того, что бы можно было забросить в видеокарту произвольные изображения в стандартном спектрумовском формате (1 байт на 8 точек + 1 байт на цвет точки и фона), через порты например, предварительно пометив нужную область в символьной области памяти #4000-#47D0 нулями, что бы видеокарта не формировала из этих знакомест символы на экране.

Режим #02 может выглядеть аналогично - управляющая область памяти в #4000-#5980 где расположены структуры объектов (как в режиме #01 там расположены коды символов и их цвет).
Структура объекта "тайл", к примеру может быть выровненной до 32 байт и в упрощенном виде выглядеть так:

objID db #00,#00 - ID объекта для его отрисовки
objX db #00,#00 - X-координата объекта
objY db #00,#00 - Y-координата объекта
... и так далее
что дает 192 (при выравнивании 32 байта на одну структуру) одновременно отрисовываемых видеокартой объекта с Z-сортировкой по порядку расположения в памяти (т.е. описатель тайла заднего плана должен быть расположен в памяти раньше, чем описатель тайла ближнего плана, а герой где то посередине).

Растр объектов заранее должен быть загружен в память видеокарты (через те же порты к примеру, в понятном видеокарте формате). Своей памяти на борту карты при 256х192/24bpp должно быть около мегабайта, что в общем то и не так много.

Объектами может служить тайл, спрайт, источник частиц, что то еще, что поддержит прошивка видеокарты.

В режиме #02 описал вполне себе суровый 2D ускоритель, который не занимает ни байта в памяти стандартного спектрума. В момент загрузки программы графика забрасывается в память карты, а затем управляется описателями структур через стандартную область памяти.

Lethargeek
15.02.2018, 16:29
Lethargeek, пиши по теме. Я понял, что блиттер решает все проблемы, но тут разрабатывается новый игровой ретро компьютер на микросхемах логики и кэш-памяти в корпусах DIP и быстром микропроцессоре на частоте 20/33 MHz.
Именно по теме я и пишу. В чём здесь "но"? Да тем более на логике будет проще запилить единственный механизм, а не свалку нескольких разнородных.


Вот и советуй именно по выбранным способам изображения.
Я тебе именно по ним советую так не делать. Или не морочить людей хотя бы, будто бы так хочешь им жизнь облегчить.


Только давай без голословной критики. Подскажи, как улучшить, что добавить и почему ?
Вот что за беспощадное стремление добавлять? Чтоб улучшить, иногда нужно не добавить, нужно убрать. И не раз уже писал тебе, почему.


Или не пиши. У тебя есть своя тема по видеокарте. Там и обсуждай свой блиттер.
Так я здесь никаких своих подробностей не давал. О(б)суждаю строго твои решения. :D

Totem
15.02.2018, 17:49
zst, как насчет добавить в схему DataGear? Уже считай стандарт DMA на спектруме. Например в Next он уже интегрирован. Для фирменных машин существует в виде платы вставляемой в слот процессора.

Одобрямс, раз блиттера нет, хоть DMA будет.

zx-kit
16.02.2018, 01:59
С моей точки зрения, три вышеописанных режима это свойства видеокарты (прошу прощения, что опять встреваю с видео). По-моему тут у вас в проекте ключевая ошибка - вы жестко "наградили" компьютер тремя режимами без возможности избежать их или расширить каким либо образом.

Мои соображения (раз критикую, то разумеется и предлагаю) - оставить компу комповое, а видеокарту вынести совсем в отдельное устройство, жестоко замапленное на #4000-#5980 (стандартный zx VRAM).

Таким образом можно подойти к разработке итеративным путем - сначала реализовать на отдельной плате стандартный zx видеорежим (к примеру 0), затем в другом устройстве реализовать и нулевой и первый (текстовый 80х25), затем в следующем устройстве реализовать нулевой, первый и второй режим (256х192 / 24bpp к примеру).

Как реализовать нулевой режим я писать не буду - там простой маппинг на стандартную видеопамять спектрума (для совместимости), он же является основным.


Видеокарта будет состоять из нескольких плат.
0. Плата развертки VGA 640x480 60 Hz. На ней формирователь синхроимпульсов, смеситель слоев, палитры для всех слоев, VIDEODAC VGA.
1. Метеор. 4 бита на цвет точки.
2. Символьный экран 30х80 символов.
3. Спрайтовый слой. 8 бит на точку.
4-6. Три одинаковых тайловых слоя. 8 бит на точку с картой тайлов и аппаратным скроллингом.
7. Может быть стандартный экран ZX Spectrum с клешингом.

Их можно разрабатывать отдельно и добавлять постепенно.

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


Именно по теме я и пишу. В чём здесь "но"? Да тем более на логике будет проще запилить единственный механизм, а не свалку нескольких разнородных.

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

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


zst, как насчет добавить в схему DataGear? Уже считай стандарт DMA на спектруме. Например в Next он уже интегрирован. Для фирменных машин существует в виде платы вставляемой в слот процессора.
Может DMA в Z180 подойдет ?

Lethargeek
16.02.2018, 02:47
Да не нужен один механизм.
Если он справляется с любым случаем - нужен он, а не нужны все "оптимальные" остальные. Свалка "оптимальных" - неоптимальна.


Для каждого вида изображения нужен свой, оптимальный.
Ну и сколько у нас "видов изображения"? Ты уже изучил все ретроигры на всех платформах? :v2_rolley


Для тайлов нужна карта и аппаратный скроллинг, а не блиттер.
Тайлы (кандалы для художника и кодера) не нужны, а значит, и для них ничего не нужно.


Для символьного экрана другой механизм с заданием цвета отдельными атрибутами и увеличением кодов вправо для печати командой LDIR.
Ископаемый костыль для получения избыточной скорости. Вот зачем успевать в кадре символов печатать намного больше, чем их помещается на экране :v2_conf3:


Для устранения клешинга запись по 8 точек с учетом прозрачного.
Пачкой ldi? О последствиях ты не подумал, конечно же. Только вот в оригинале байты спрайта идти будут не в том порядке, то есть их придётся переставлять, фактически нарисовать заново, а раз так, то зачем отдельным способом выводить и готовить графику под этот лишний отдельный способ?

bigral
16.02.2018, 12:37
datagear - мусор бесполезный (ну разве что для демо, бред психоделический показать обкуренной тусовке). blitter - это никакое не "ретро", это уже начало эры 2D\3D ускорителей, он требуется когда принято решение "переписать в памяти изображение каждого кадр-а перед показом", это самое решение сразу же увеличивает требование к скорости памяти в 2 ато и 3 и более раз. Тайлы и спрайты на то и выдуманны были чтоб обновлять не кучу мегабайт перед каждым кадром а пару килобайт (и добиваться того же результата). Естественно игры типа gunfright, elite, driller ничего не получат от спрайтов и тайлов, но таких игр на ретро платформах не более 10% было, все остальное спрайтово-тайловое. tsconf,zxnext,spec256,sprinter,retroleum ... все они уже есть, все они уже показали свой НУЛЕВОЙ потенциал, интереса к ним НЕТ и не будет, потому что пользовать частоты в 100mhz, двухпортовую SRAM, тонны LUT-ов и на выхлопе иметь результат хуже чем у atari st "это какой-то позор" (с)швондер. По крайней мере топить за то чтобы вышел еще один fpga монстер в теме про типа-"ретро-комп" этот нонсенс (хотя если там 20ns SRAM, то он НА ПОРЯДОК быстрее чем классическое ретро, пары линеек ру6-х видать было мало, v9990 курит в сторонке).

Lethargeek
16.02.2018, 13:20
blitter - это никакое не "ретро", это уже начало эры 2D\3D ускорителей,
ну и что? чем 1984 тебе не ретро? это если брать только персоналки, а у ксерокса еще до спектрума блиттер был


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


это самое решение сразу же увеличивает требование к скорости памяти в 2 ато и 3 и более раз
снова нет, хотя сегодня это неважно


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


tsconf,zxnext,spec256,sprinter,retroleum ... все они уже есть, все они уже показали свой НУЛЕВОЙ потенциал, интереса к ним НЕТ и не будет, потому что пользовать частоты в 100mhz, двухпортовую SRAM, тонны LUT-ов и на выхлопе иметь результат хуже чем у atari st "это какой-то позор" (с)швондер.
путаешь причину и следствие, слабый результат не причина низкого интереса, а следствие нежелания или невозможности запариваться надолго (чего требуют указанные решения)

OrionExt
16.02.2018, 15:43
Отца русской демократии zst - спасет только практическая реализация всех (части) своих задумок. Уж по другому никак.

На львиную долю задумок, ответов просто нет:)

zx-kit
16.02.2018, 19:58
Символьный экран надо сделать теневым. Включать только при печати на экран. Возможность включать в любое окно. Но для CP/M желательно использовать окно с адреса 4000H, так как в окне с адреса 0000 область RST, а с адреса 8000H и выше ДОС, которая и печатает на экран. Ориентировочно будет два текстовых режима.

Простой для программиста режим 30 строк по 64 символа. Достоинство — длина строки символов 128 кратна 2 в степени N. Поэтому строки идут друг за другом без пустот. Текст легко редактировать и печатать на экране с помощью команд LDIR. Шрифт более крупный и разборчивый. Так как разрешение монитора 640х480 точек символ будет состоять из 10х16 точек.

Расположение символов в экранном ОЗУ. Байт атрибута, байт символа, байт атрибута, байт символа. Для перехода к символу справа надо увеличить адрес на 2. Для перехода к символу снизу надо увеличить адрес на 128.

Возможно будет и второй режим 30 строк по 80 символов. Текста в строке больше, но он менее разборчивый и труднее обработка строк. Строка не кратна 2 в степени N. Поэтому будут пустые промежутки при длине строки 256 символов. Одной командой LDIR всю страницу уже не напечатать. Так как разрешение монитора 640х480 точек символ будет состоять из 8х16 точек.

Кодировка предположительно КОИ-8 с псевдографикой.
В окне можно разместить 4 страницы по 4 Кбайта. Из страницы в страницу можно будет копировать текст командой LDIR. Текущую отображаемую страницы выбирать записью в дополнительный порт.
Атрибут будет состоять из 4х бит цвета PAPER и 4х бит цвета INK. Для слоя символьного экрана будет своя палитра с возможностью прозрачного цвета.

Для UZIX и текстовых программ с выводом на экран большого количества информации - символьный экран 60х80 символов со шрифтом 8х8 точек.

Наверно надо сделать несколько символьных режимов:
00. 30 строк по 40 символов размером 16х16 точек
01. 30 строк по 64 символа размером 10х16 точек
10. 30 строк по 80 символов размером 8х16 точек
11. 60 строк по 80 символов размером 8х8 точек

Символьный режим 30х40 символов размерами 16х16 подойдет для игр. Этот слой надо сделать самым близким. Если в палитре использовать прозрачный цвет, то текст можно писать поверх фона. Это позволит поверх скроллируемого фона отображать очки, попытки и т. п. информацию.

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

Если в знакогенераторе будет 2 бита на точку, то можно будет делать шрифты с обводкой, тенью, трехцветные и т. п.

В атрибутах перед шрифтами можно указать инверсию символа, номер цветовой палитры, номер фонта, например, чтобы сделать слово жирным текстом.

zx-kit
17.02.2018, 10:54
Наверно надо сделать несколько символьных режимов:
00. 30 строк по 40 символов размером 16х16 точек
01. 30 строк по 64 символа размером 10х16 точек
10. 30 строк по 80 символов размером 8х16 точек
11. 60 строк по 80 символов размером 8х8 точек

Для нового компьютера на этапе разработки надо предусмотреть совместимость с операционными системами.
CP/M - большой объем ОЗУ начиная с 0 и символьный экран 30х64 символа.
UZIX и подобные - расширение ОЗУ окнами по 16К и символьный экран 60х80 символов.
DSDOS - ?
SYMBOS - ?

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


... (хотя если там 20ns SRAM, то он НА ПОРЯДОК быстрее чем классическое ретро, пары линеек ру6-х видать было мало, v9990 курит в сторонке).
Динамическая память сложная для использования, так как там надо мультиплексоры адреса и регенерацию. SRAM проще - подал адрес, считал данные. И в одной микросхеме сразу весь байт, а не как в РУ5 один бит. Компьютер итак сложный получается - зачем его делать еще сложнее и дороже ?

Ну и частота процессора до 33 MHz. Тут только кэш 32 Кбайта для видоемодулей и SRAM 1 Mбайт для основной памяти с временем доступа не более 20 ns. Была бы еще статика с раздельными входами и выходами данных - тогда схема видеомодулей была бы проще.

LeoN65816
17.02.2018, 13:10
11. 60 строк по 80 символов размером 8х8 точек
4800 байт текста и 4800 байт аттрибутов. Тяжко будет процу 10 КБ скроллить... Да и режиме 30х80 тоже 5 КБ скролла будут небыстрыми...


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

zx-kit
17.02.2018, 16:39
4800 байт текста и 4800 байт аттрибутов. Тяжко будет процу 10 КБ скроллить... Да и режиме 30х80 тоже 5 КБ скролла будут небыстрыми...

Для режима 60х80 символов при кварце 3.5 MHz при использовании команды LDIR 60*80*2*21*285.7 ns=57.6 ms.
Для режима 30х80 символов 28.8 ms.


Поделись, пожалуйста, что даст статика с раздельными входами и выходами данных для схемы видеомодулей?
Память с совмещенными входами и выходами больше подходит как основная память. То есть когда надо только читать и писать и соединение только с Z80.
Для видеомодулей писать надо с Z80, а читать в регистр К555ИР23. При чтении надо разорвать связь между Z80 и памятью. Для этого надо поставить буферный элемент и схему управления им.

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

Символьный режим 30х40 символов размерами 16х16 подойдет для игр. Этот слой надо сделать самым близким. Если в палитре использовать прозрачный цвет, то текст можно писать поверх фона. Это позволит поверх скроллируемого фона отображать очки, попытки и т. п. информацию.

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

Если в знакогенераторе будет 2 бита на точку, то можно будет делать шрифты с обводкой, тенью, трехцветные и т. п.

В атрибутах перед шрифтами можно указать инверсию символа, номер цветовой палитры, номер фонта, например, чтобы сделать слово жирным текстом.

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

В графической шине сигналы с Z80 через регистры ИР23 c тактированием частотой VGA 25,175 MHz.

LeoN65816
17.02.2018, 17:26
Читаю шит даташный на Z84C0020, рассматриваю диаграммы обращений к памяти/портам (при 0 Waitstates):
1. Чтение опкода (nMREQ + nRD) - 1.5 такта опорки.
2. Чтение/запись памяти (nMREQ + nRD/nWR) - 2 такта.
3. Чтение/запись портов ввода/вывода (nIORQ + nRD/nWR) - 2.5 такта.

Я правильно "всосал"?

zx-kit
17.02.2018, 19:55
Судя по диаграммам в разделе Timing, цикл M1 занимает 4 такта, чтение и запись памяти по 3 такта, чтение и запись портов по 4 такта.

Для подключения клавиатуры с русскими буквами будет использоваться модуль "Орион".
Это отдельное устройство с памятью. Будет подключаться при надобности в окно C000-FFFF.

RAM
C000-F3FF - RAM на микросхеме кэш 32К.

Порты в адресном пространстве памяти
F400-F4FF - порт клавиатуры на КР580ВВ55.
F500-F5FF - порт ROM-диска на КР580ВВ55.
F600-F6FF - порт CF-карты (IDE) на КР580ВВ55.

ROM
F800-FFFF - монитор 2К на FLASH 128К.

Портов управления графикой Ориона нет, так как для вывода текста будет использоваться символьный экран, подключаемый при надобности в окно 4000-7FFF, а для игр - новые графические модули.

PS/2 клавиатура будет подключаться через адаптер KEYB&SINC (http://www.zxkit.ru/catalog1/konstruktory/chtoby-podklyuchit/keyboard-ps2/keyb-sinc-adapter-ps-2-klaviatury-i-dvuh-sega-dzhojstikov/) с прошивкой и распайкой для "Ориона" и "РАДИО-86РК".

Еще можно подключить UART и SD карту. Подскажите схему и как это все запустить с CP/M пока без клавиатуры и видеокарты.

zx-kit
17.02.2018, 23:37
Лучше ВВ55 и другие микросхемы подключать как порты:

F0
F1
F2
F3
F4 - порт клавиатуры на КР580ВВ55.
F5 - порт ROM-диска на КР580ВВ55.
F6 - порт CF-карты (IDE) на КР580ВВ55.
F7 - порт часов на КР580ВИ51.
F8
F9
FA
FB
FC
FD - AY
FE - BEEPER
FF

А вместо ROM скопировать образ с картриджа в адреса F800-FFFF.
При этом на модуле останутся только порты, которые будут доступны и в других конфигурация компьютера.

Totem
18.02.2018, 00:36
"Лучеб" ты сделал сразу "Иришу" и "производные" укушенный "барсиком", с семплом z8s180 33MГц
тот случай, когда не хватает смайлов на форуме
http://content.onliner.by/news/2012/11/large/3f1c16df06c766f8d8f02e1b53605867.jpg

zx-kit
19.02.2018, 22:03
Модуль дешифраторов. Схема сделана с запасом. Формирует сигналы выбра по младшему байту адреса порта и для Ориона по старшему адресу памяти. Выбранные сигналы можно подать на шину. В модуле сигнал подается на вход выбора микросхемы наприямую, если она двунаправленная или через элемент ЛЛ1. Для порта ввода (клавиатура, джойстик и т.п.) на второй вход элемента подать RD. Для порта вывода (BEEPER, регистр выбора режима и т.п.) - WR.

https://www.radikal.kz/images/2018/02/20/MODULNYI-KOMPYTER_18021902.md.png (https://www.radikal.kz/images/2018/02/20/MODULNYI-KOMPYTER_18021902.png)

shurik-ua
20.02.2018, 00:12
ZILOG меня поддержал. Жду прихода образцов Z80 20 MHz и Z180 33 MHz.
И что, бесплатно выслали сэмплы ?

zx-kit
20.02.2018, 18:46
И что, бесплатно выслали сэмплы ?
Да.

Посмотрел на мониторе FULL HD изображение с эмулятора при разрешении 800х600. Экран спектрума нормально смотрится с увеличением в 2 раза. Может разрешение экрана увеличить до 384х256 или 400х256 ? И частоту пикселов 20 MHz подать на Z80 и видеокарту ?

shurik-ua
20.02.2018, 19:32
Да.

https://www.youtube.com/watch?v=Iy7-GGuxaiI

по поводу разрешения экрана - лучше начать с минимального - а там, как говорится, аппетит прийдёт во время еды )

zx-kit
28.02.2018, 21:12
Все идеи по улучшению графических и других возможностей компьютеров надо разделить на 3 модульных компьютера.

1. Компьютер "METEOR-128". Для доработанных игр ZX Spectrum и новых игр. Тема "Идеальный Спектрум" (http://zx-pk.ru/threads/28903-idealnyj-spektrum.html)
Z80 на частоте 3.5 MHz.
Коммутатор памяти.
Порты управления с однобайтовой адресацией.
RAM 128K.
Без ПЗУ.
FLASH картридж 128К.
Три плоскости улучшенной спековской графики с маской.
В каждой плоскости теневой и отображаемый экраны.
Линейная адресация с адреса 0.
Аппаратный мультиколор.
FLASH BRIGHT.
Развертка TV 50 Hz.
15 спековских цветов без маски.
Видеовыход RGBI.
Окно графики 256х192 точки.
Частота точек 7 MHz.
INT 50 Hz.
Звук BEEPER, возможен дополнительный модуль с музыкальным сопроцессором.
Порт геймпада SEGA MEGADRIVE с двумя кнопками FIRE.
Порты механической клавиатуры на 40 кнопок, кемпстона, бипера.

2. Компьютер "CHELYABINSK". Для игровых программ типа как SEGA MEGADRIVE.
Z8S180 на частоте 25 MHz.
Коммутатор памяти.
Порты управления с однобайтовой адресацией.
RAM 128K-1M.
FLASH картридж 128К-512K.
Графический режим - один спрайтовый слой и 3 тайловых фона с аппаратным скроллингом.
Окно графики 320х240 точек.
256 цветов из палитры 32768.
Видеовыход VGA 640x480 60 Hz.
Частота точек 12,5 MHz.
INT 60 Hz.
Порты клавиатуры, PS2 геймпада, MP3+General Midi.
Клавиатура 64 клавиши русско-английская.

Тайлы аппартаные. Вся карта уровня задается двухбатными номерами спрайтов. В окне выводится часть карты указанием координаты в карте. Таких слоев тайлов 3 плоскости - одна перед спрайтами и две после спрайтов. Размер тайла 16х16 точек по 255 цветов на точку.

Спрайты на отдельной плоскости. 255 цветов на точку. Рисуются вертикальными столбиками командой LDIR.

3. Компьютер "HORIZONT". Для любителей текстовых компьютеров типа Орион и Радио-86РК и системных программ.
Z80 на частоте 20 MHz.
Коммутатор памяти.
Порты управления с однобайтовой адресацией.
RAM 1M.
FLASH картридж 128К-512K.
RAM-DISK с батарейкой.
Компорты.
Таймеры.
Прерывания.
DMA.
Текстовой режим 64 символа в строке.
Графический режим типа Орион 384х256 точки 4 бита.
Видеовыход SVGA 800x600 60 Hz.
Частота точек 20 MHz.
INT 60 Hz.
Порты клавиатуры, бипера.
Клавиатура 64 клавиши русско-английская.

zx-kit
20.07.2018, 19:57
Давайте уже решим сделать новый компьютер - лучше чем иностранный next. я имею ввиду принцип работы и возможности, а не внешний вид. для меня важнее как он работает, что может и насколько просто программирование, а не сколько табуреток или тумбочек занимает.

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

creator
20.07.2018, 20:00
Хочу Амигу!

zx-kit
20.07.2018, 20:01
Хочу Амигу!

Поконкретнее? Мы же можем сделать элементы Амиги или даже что-то лучше. И насколько компьютер должен быть старым и похожим на Спектрум ?

creator
20.07.2018, 20:19
Поконкретнее?
Какой вопрос, такой и ответ.

Мы же можем сделать элементы Амиги или даже что-то лучше.
Вы даже не можете исполнить текущие заказы.

zx-kit
20.07.2018, 20:44
Какой вопрос, такой и ответ.

Вы даже не можете исполнить текущие заказы.

Да заказов то не так уж много. Я уже и цены снизил - все равно мало. Я же не разработчик NEXT. Куда мне до них и их объемов. Но мечта сделать хороший новый компьютер есть.

Но чтобы я не предлагал - все не подходит, все критикуют.

Spectramine
20.07.2018, 22:11
Сделайте компьютер, на котором можно будет сконфигурировать любой древний комп - от zx80 и Радио 86РК до Amiga CD и Acorn Archimedes. Чтобы зашел в БИОС, выбрал комп, перезагрузился, и опа - у тебя другой старый комп. Чтобы в одной коробочке было сотни старых компов и десятки тысяч игр и демок. Вот это будет тема. Да, и чтобы цена в пределах разумного. И чтобы подключался к любому монитору/ТВ, и работал с AT-клавой.

Rusazar
20.07.2018, 22:25
Такая разработка есть, сделана зарубежом на ПЛИС, готовится в производство в барахолке, в новоделе http://zx-pk.com/forum/viewtopic.php?t=10426

siemensC35
20.07.2018, 22:38
Сделайте компьютер, на котором можно будет сконфигурировать любой древний комп - от zx80 и Радио 86РК до Amiga CD и Acorn Archimedes. Чтобы зашел в БИОС, выбрал комп, перезагрузился, и опа - у тебя другой старый комп. Чтобы в одной коробочке было сотни старых компов и десятки тысяч игр и демок. Вот это будет тема. Да, и чтобы цена в пределах разумного. И чтобы подключался к любому монитору/ТВ, и работал с AT-клавой.
берем мать аля 775 и запускаем эмулятор(Ы))
можно небольшой лордер нарисовать, и в авторан
да это не спортивно но мы все ленивые же...

Spectramine
20.07.2018, 23:03
Такая разработка есть, сделана зарубежом на ПЛИС, готовится в производство в барахолке, в новоделе http://zx-pk.com/forum/viewtopic.php?t=10426

Вот это круто. Вроде то, о чем мечталось.

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

Плохо только, что HDMI выхода нет на ней вроде как.

Rusazar
20.07.2018, 23:14
Это не проблема, китайцы наделали кучу переходников, включая и такой: VGA выход (приставка) - HDMI вход (монитор). Берем этот Aixxco качество Портативный plug and play VGA к HDMI Выход 1080 P HD аудио ТВ AV HD ТВ PC видео кабель VGA2HDMI конвертер адаптер
http://s.aliexpress.com/6baMv6bI или аналогичный подешевле.

Mist v1.3 удачное решение для эмуляции ретро компов и консолей, выбор их делается через стартовое меню, в директориях располагаются нужные образы дисков или картриджей и вперед в игры с мышкой, клавиатурой или джойстиком. А любящим что-то делать есть возможность изучить verilog и написать отсутствующий комп или консоль, или доработать/изменить существующий. Работает от одного 5В 2А БП.

По моим ссылкам на барахолке в теме по ней можно увидеть её возможности, достаточно большое сообщество её поддерживающее и развивпющее. Зарубежом она достаточна дорога, тут же благодаря усилиям Павла Рябцова предлагается гораздо дешевле её собрать и пользоваться.

Записываемся в теме, кто заинтересовался и ждем осени.

Spectramine
20.07.2018, 23:33
Я всё равно сам не спаяю. Но буду следить за развитием событий. Авось кто-то готовый девайс будет продавать со временем.

Rusazar
20.07.2018, 23:37
Думаю это не проблема, тут спецов хватает, за отдельную плату соберут девайс из платы и комплектующих купленные у Павла. Так, что можно не ждать долго, а заранее согласовать и договориться. Тогда дело не затянется. Дело за малым, ждать осени, когда придут платы и соберут на пробу первый экземпляр.

siemensC35
21.07.2018, 00:06
им хоть на пиво будет?
за бугром совсем другие люди, им не жалко задонатить, это у наших людей пейсами можно заметать дороги

Rusazar
21.07.2018, 00:11
Потому и дорога, что разработчиков конфигураций чем-то мотивировать нужно, им хоть на пиво будет?


https://www.youtube.com/watch?v=AWLc6fhvMmQТам платится за аппаратную начинку, а разработчики конфигураций ретро компов и консолей с продажи самой "железки" не хрена не получают, все на добровольных началах. Но я за всегда готов отблагодарить их за труд портирования, хотя бы на пиво или что-либо по полезнее, чем пиво )

Rusazar
21.07.2018, 00:13
за бугром совсем другие люди, им не жалко задонатить, это у наших людей пейсами можно заметать дорогиДля того, чтобы задонатить, надо народу дать достойную оплату труда и социальные гарантии, тогда и будет донат. А с нищих нечего взять, как бы сами ноги не протянули...

zx-kit
21.07.2018, 12:15
Давайте не будем изобретать то, что уже есть - ZX Spectrum, эмуляторы на FGPA и ARM.
Надо изобрести компьютер чуть лучше ZX Spectrum. Но совместимости с ним трудно добиться, так как в нем много ограничений, которые в новом компьютере будут мешать - FLASH, нелинейный экран с атрибутами, мало свободных портов, все заточено под старый экран, менеджер памяти, TR-DOS.

Экран надо делать линейным с адреса 0, если рисовать байтами. Если 4 бита на точку, то разгоняем Z80, добавляем памяти с новым коммутатором памяти. Старые игры на новый компьютер передалать можно, но не очень легко. А без переделки запускать старые игры на новом компьютере не имеет смысла.

Если делать 4 бита на точку, то экран 256х192 точки будет весить 24 К. То есть для обращения к экрана надо 2 окна памяти по 16 К. И увеличить экран будет трудно.

Конечно уже придуманы некоторые видеокарты, которые улучшают графику Спектрума. Но в них подпрограммы наложения изображения на экран или в буфер заменяются на другие, которые выполняются на ARM или FPGA. Это все-таки больше похоже на эмулятор

Lethargeek
22.07.2018, 03:09
Давайте не будем изобретать то, что уже есть - ZX Spectrum, эмуляторы на FGPA и ARM.
Надо изобрести компьютер чуть лучше ZX Spectrum.
так он (они) давно уже тоже есть, лет примерно столько же, сколько спектрум))))

Rusazar
22.07.2018, 07:56
Конечно уже придуманы некоторые видеокарты, которые улучшают графику Спектрума. Но в них подпрограммы наложения изображения на экран или в буфер заменяются на другие, которые выполняются на ARM или FPGA. Это все-таки больше похоже на эмулятор

В твоих словах слово "эмулятор" звучит как то недостойно, типа то старое, "ламповое", на "рассыпухе" и есть лучшее, а это эмуляторы, отстой.

Давай определимся со смыслом слова "эмулятор" в цифровой технике, которое вот такое:


Эмуляция — один из способов электронного архивирования устаревающих вычислительных систем. В такой трактовке целью эмуляции является точное воспроизведение оригинального цифрового окружения, что может быть труднодостижимым и затратным по времени, однако ценно ввиду возможности достижения близкой связи с аутентичным цифровым объектом.

И эмуляция в FPGA это зачастую точное соответствие оригинальным цифровым аппаратам. И нет в этом абсолютно ничего недостойного или плохого, вся "ламповость" повторяется с точностью до такта и нужной скорости... При желании давая гибко модифицировать, "улучшать" нужное изделие в коде FPGA без особого напряга, со всеми своими "хотелками"... Пора менять свои убеждения и заблуждения. :)

ZX_NOVOSIB
22.07.2018, 08:39
И эмуляция в FPGA это зачастую точное соответствие оригинальным цифровым аппаратам. И нет в этом абсолютно ничего недостойного или плохого, вся "ламповость" повторяется с точностью до такта и нужной скорости..
Ключевое слово "зачастую". Вон в этих ваших пентевах вроде стоит железный z80, казалось бы, не FPGA. Но он не православный дип, и в нём уже нет некоторых недокументированных команд, а значит некоторый софт и игры могут глючить. А уж если речь о FGPA, то тут ваще жесть начинается )) Так что фтопку эти ваши плисы. Хотя какую-то логику можно и в плис наверно засунуть. Вон есть же тр-дос для фирменных спектрумов, от MV1971, там плис, и ничо всё нормально, никто не жаловался, ибо она там заменяет логику, а не ВГ93 и т.п.

Rusazar
22.07.2018, 09:26
Ключевое слово "зачастую". Вон в этих ваших пентевах вроде стоит железный z80, казалось бы, не FPGA. Но он не православный дип, и в нём уже нет некоторых недокументированных команд, а значит некоторый софт и игры могут глючить.

Не желаю обидеть, но что за бред тут написан про Z80 который в zxevo стоит? Z84C0020FEC 44 pin это полноценный Z80, со всеми недокументированными командами. Я сам владелец zxevo и нет ни одной проги, которая бы глючила из-за использования недокументированных команд. Если есть какая прога для теста недокументированных команд могу ей протестировать.

ZX_NOVOSIB
22.07.2018, 10:05
Если есть какая прога для теста недокументированных команд могу ей протестировать.
Вот эта тема (http://zx-pk.ru/threads/19193-igry-s-turbo-zagruzkoj-dlya-quot-leningrad-2012-quot.html)работает?

Rusazar
22.07.2018, 10:10
Вот эта тема (http://zx-pk.ru/threads/19193-igry-s-turbo-zagruzkoj-dlya-quot-leningrad-2012-quot.html)работает?

Конкретно, что смотреть со 300 с лишним страниц?

ZX_NOVOSIB
22.07.2018, 10:24
Rusazar, да ничо не смотерть. Скачиваешь любую игру из темы и грузишь её.

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


Не желаю обидеть, но что за бред тут написан про Z80 который в zxevo стоит? Z84C0020FEC 44 pin это полноценный Z80, со всеми недокументированными командами.
Тоже не желаю обидеть, но как же это "ртфм. out (C),#FF, который на z84c становится out (C), #00. или наоборот."?

Rusazar
22.07.2018, 10:37
Rusazar, да ничо не смотерть. Скачиваешь любую игру из темы и грузишь её.Это как бы разные вещи, во-первых ты затронул тему не совместимости недокументированных команд оригинального z80 и обновленного варианта, в новом корпусе z84c0020fec, что ложно, т.к. кристалл тот же со всеми командами, включая все недокументированные, во-вторых зачем мне подсовывать турбированные ленточные версии игр, если у zxevo в двух конфигурациях встроена поддержка tap формата читаемого с micro SD носителя?

Вопрос ставлю иначе, чтобы было доступнее, какие есть на примете игры/программы с использованием недокументированных команд которые бы отказались работать на zxevo/pentevo использующие обновленный z80 - z84c0020fec? Ответ будет один, таких нет, и не будет - процессоры полностью совместимы!

ZX_NOVOSIB
22.07.2018, 10:41
Ответ будет один, таких нет, и не будет - процессоры полностью совместимы!
Ладно, зайдем с другого угла. ZX-Format 8-ой работает?

Rusazar
22.07.2018, 10:52
Ладно, зайдем с другого угла. ZX-Format 8-ой работает?Только, что запустил zx-form3.trd на прошивке Baseconf: TS&Base_VDC2 12.04.2018 beta и он загрузился и заработал.

Еще есть вопросы?

ZX_NOVOSIB
22.07.2018, 10:58
zx-form3.trd
А 8-ой?

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


во-вторых зачем мне подсовывать турбированные ленточные версии игр, если у zxevo в двух конфигурациях встроена поддержка tap формата читаемого с micro SD носителя?
Суть не в том, что встроено, а что нет, у меня в эмуляторе тоже много чего встроено. Суть в том, чтобы работало всё то, что работает в оригинальном компьютере. Если загрузка работает в оригинальном, но не работает в новом клоне, то встает вопрос "а нафиг он нужен, такой клон".

Rusazar
22.07.2018, 10:58
А 8-ой?И этот тоже загрузился, отдекрюнчился до стартового экрана с крутящейся 8, вышел меню с разделами, все статьи грузятся, музыка играется... Еще вопросы?

SoftLight
22.07.2018, 11:06
Если загрузка работает в оригинальном, но не работает в новом клоне, то встает вопрос "а нафиг он нужен, такой клон".

Гы. В 'оригинальном' это в каком?
Я смотрю любая тема скатывается в обсуждение тру и не тру спектрумов и спектрумистов. На эве работает все, что работает в оригинале с диска. Просто в бейзкофе стоит vtr-dos. Вот он раньше бывало не все эмулировал верно, в частности не работала демка unreal и некоторые дисковые турбо-загрузчики. Но это давно исправлено. А в ts-конфе изначально все работает с диска без всякой эмуляции. Проблем совместимости из-за процессора точно нет и не было.

CLR
22.07.2018, 11:10
Господа, тут все-таки неисправимый романтик zst пытается разработать "более лучший" Спектрум, судя по всему даже ценой потери совместимости с оригиналом. Несмотря на все мои попытки указать на безнадежность этой затеи. Так что давайте лучше по существу советовать, если у кого есть дельные мысли по теме.

ZX_NOVOSIB
22.07.2018, 11:14
Проблем совместимости из-за процессора точно нет и не было.
А када пишут "out (C),#FF, который на z84c становится out (C), #00. или наоборот" это что имеют в виду?

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


Несмотря на все мои попытки указать на безнадежность этой затеи. Так что давайте лучше по существу советовать
По существу тут нечего советовать. Человек либо изобретает нужный ему комп/приблуду, либо нет. Всё просто.

Rusazar
22.07.2018, 11:17
Гы. В 'оригинальном' это в каком?
Я смотрю любая тема скатывается в обсуждение тру и не тру спектрумов и спектрумистов. На эве работает все, что работает в оригинале с диска. Просто в бейзкофе стоит vtr-dos. Вот он раньше бывало не все эмулировал верно, в частности не работала демка unreal и некоторые дисковые турбо-загрузчики. Но это давно исправлено. А в ts-конфе изначально все работает с диска без всякой эмуляции. Проблем совместимости из-за процессора точно нет и не было.Приятно видеть адекватного чела, большинство начитаются не пойми каких мифов из компьютерной жизни и несутся с ними, не расставаясь. От себя замечу, если бы это изделие не воспроизводило 100% софта сделанного под Пентагон, то мне он не был бы и нафиг нужен.... Ну, а тут еще есть бонусы ввиде второй прошивки TS-conf c VDAC2 на FT812, кучей звуковых карт и прочего, бери, как говорится и пользуйся чем пожелаешь!

Spectramine
22.07.2018, 11:50
У z84 по сравнению с z80 есть как минимум пара известных различий в выполнении команд:
1) недокументированная команда OUT (C),0 на z80 превращается в OUT (C),#FF на z84;
2) после команд LD A,I/LD A,R на z84 не может произойти прерывание, а на z80 - может (но в этом случае во флаг P/V будет занесен 0, хотя прерывания были включены до выполнения команды).

ZX_NOVOSIB
22.07.2018, 12:25
weiv, Приятно видеть адекватного чела, большинство начитаются не пойми каких мифов из компьютерной жизни и несутся с ними, не расставаясь. От себя замечу, если бы это изделие воспроизводило 100% софта сделанного под Пентагон, то мне он был бы нужен....

Rusazar
22.07.2018, 12:30
У z84 по сравнению с z80 есть как минимум пара известных различий в выполнении команд:
1) недокументированная команда OUT (C),0 на z80 превращается в OUT (C),#FF на z84;
2) после команд LD A,I/LD A,R на z84 не может произойти прерывание, а на z80 - может (но в этом случае во флаг P/V будет занесен 0, хотя прерывания были включены до выполнения команды).Да это есть, но есть одно НО, Z80 имел обозначение Z84 в версии CMOS в DIP корпусе и именно NMOS Z80 отличается от CMOS Z80 в некоторых моментах, которые описаны здесь http://www.worldofspectrum.org/z88forever/dn327/z80undoc.htm.

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

Так, что вопросы отправляйте на деревню дедушке, т.е. в Zilog или лучше к программерам, которые допускают использование *****кода, или править самим такие проги и все проблема устранена.
https://uploads.tapatalk-cdn.com/20180722/c1f36f6d4c050ce6ffc6c93fb09be1c6.jpg

ZX_NOVOSIB
22.07.2018, 12:58
Так, что вопросы отправляйте на деревню дедушке, т.е. в Zilog или лучше к программерам, которые допускают использование *****кода, или править самим такие проги и все проблема устранена.
Дедушке писать никто не будет. Программерам тем более. Люди просто берут нормальные спектрумы с нормальным Z80, чтобы потом не заморачиваться и не греть голову "а будет или не будет у меня работать вот это? Кому и куда писать, если не будет?" Если кому на совместимость пофиг, то тот сам себе злобный буратино. Большинству же всё-таки хочется максимально возможной совместимости со всем старым софтом (не важно *****код там или ещё что)

Rusazar
22.07.2018, 13:24
Дедушке писать никто не будет. Программерам тем более. Люди просто берут нормальные спектрумы с нормальным Z80, чтобы потом не заморачиваться и не греть голову "а будет или не будет у меня работать вот это? Кому и куда писать, если не будет?" Если кому на совместимость пофиг, то тот сам себе злобный буратино. Большинству же всё-таки хочется максимально возможной совместимости со всем старым софтом (не важно *****код там или ещё что)Потрудитесь еще раз внимательно прочесть мой пост выше, там ясно написано если вы поставите на свой любимый "оригинальный" ZX процессор Z80 разных годов выпуска CMOS вместо NMOS или разных производителей этого же проца, например Т34 то могут "всплыть" проблемы с софтом. Поэтому это проблема касается именно софтописателей, а не аппаратной составляющей, которая в документированной части команд полностью ИДЕНТИЧНА.

Примите это понятие для себя и живите спокойно. В zxevo/pentevo стоит именно оригинальный проц, в другом корпусе, с улучшенным частотным диапазоном и проблем с прогами я не сталкивался, все работает!

И так же все FPGA реплики от оригинала и до различных модификаций Speccy так же работают. Заявляю это как владелец и пользовать ориганальной версии Mist v1.2 от поляка Лотарека. Так же на ней идут софты от Atari ST, Amiga, с поддержкой процессоров от 68000 до 68020. Это я привел просто в пример, что возможности данной FPGA не ограничиваются лишь 8-16 битными процами.

Поэтому выбор есть всегда и он достойный в плане эмуляции, не каждый хочет/может собирать кучу "оригинального" железа для приятного времяпровождения за геймингом или других целей, к примеру написания музыки используя возможности Midi Atari ST...

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

ZX_NOVOSIB
22.07.2018, 14:31
Потрудитесь еще раз внимательно прочесть мой пост выше, там ясно написано если вы поставите на свой любимый "оригинальный" ZX процессор Z80 разных годов выпуска CMOS вместо NMOS или разных производителей этого же проца, например Т34 то могут "всплыть" проблемы с софтом. Поэтому это проблема касается именно софтописателей, а не аппаратной составляющей, которая в документированной части команд полностью ИДЕНТИЧНА.
Да зачем еще раз читать-то, хватит и одного раза ("достаточно одной таблэтки") :)

Зачем вместо NMOS ставить CMOS или Т34 тоже не ясно. Не надо их ставить и всё будет в ажуре )) И никаких "софтописательных" проблем тоже не возникнет )

Конечному юзеру XXI века наплевать на то, что там идентично, а что нет, главное чтобы работало как можно большее количество софта, в том числе и софта с *****кодом. Если у юзера сбросится какая-то *****кодовая дема или крэктра, то его слабо утешат слова про "ИДЕНТИЧНОСТЬ" (и даже если это слово написать большими буквами, то все равно не утешит)

Mick
22.07.2018, 14:49
Конечному юзеру XXI века наплевать на то, что там идентично, а что нет, главное чтобы работало как можно большее количество софта, в том числе и софта с *****кодом. Если у юзера сбросится какая-то *****кодовая дема или крэктра, то его слабо утешат слова про "ИДЕНТИЧНОСТЬ" (и даже если это слово написать большими буквами, то все равно не утешит)

Конечному пользователю вообще наплевать запустилась ли демка или программа или свалилась в даун. Уж нам то это не знать.
Подавляющее большинство отечественных клонов не имело порта атрибутов и ничего, проходили мимо. Во вторых, процессоры ставили в них какие найдут - не парились что это CMOS или NMOS.
Я сам помню, когда запускал с дискеты программу на своем ZX-777. Свалилась, печалька - пошли дальше к следующей. Если программка интересная, ну да в дебагере полазаешь в ней, не получилось исправить - идем дальше. По сему не считаю это проблемой мирового масштаба. Я считаю, что сами *****кодеры которые якобы патаясь защитить или выежнутся перед общественностью ставили себя в неловкое положение - многие просто не увидят их работу. Я сильно сомневаюсь, что простой постсоветский молодой человек в 90-х при обнаружении у себя не того процессора бежал его менять на нужный, чтобы посмотреть на шедевр *****кодинга. Да ему пофиг на это, он просто переключался на другую программу.
Конечно не исключаю фанатов во всем - они естественно имели только оригинальные компы или процы. Кто им сейчас также мешает делать тоже самое.
Сейчас если производят только CMOS процессоры, то и надо ориентироваться на них в своих разработка. Конечно это не касается FPGA гей-процов, там можно эмулировать хоть NMOS, хоть CMOS.

Rusazar
22.07.2018, 14:58
Конечному пользователю вообще наплевать запустилась ли демка или программа или свалилась в даун. Уж нам то это не знать.
Подавляющее большинство отечественных клонов не имело порта атрибутов и ничего, проходили мимо. Во вторых, процессоры ставили в них какие найдут - не парились что это CMOS или NMOS.
Я сам помню, когда запускал с дискеты программу на своем ZX-777. Свалилась, печалька - пошли дальше к следующей. Если программка интересная, ну да в дебагере полазаешь в ней, не получилось исправить - идем дальше. По сему не считаю это проблемой мирового масштаба. Я считаю, что сами *****кодеры которые якобы патаясь защитить или выежнутся перед общественностью ставили себя в неловкое положение - многие просто не увидят их работу. Я сильно сомневаюсь, что простой постсоветский молодой человек в 90-х при обнаружении у себя не того процессора бежал его менять на нужный, чтобы посмотреть на шедевр *****кодинга. Да ему пофиг на это, он просто переключался на другую программу.
Конечно не исключаю фанатов во всем - они естественно имели только оригинальные компы или процы. Кто им сейчас также мешает делать тоже самое.
Сейчас если производят только CMOS процессоры, то и надо ориентироваться на них в своих разработка. Конечно это не касается FPGA гей-процов, там можно эмулировать хоть NMOS, хоть CMOS.

Плюсую Мику, грамотный ответ, но думаю там беЗполезно достукиваться до стойкого догматика, который уже принял свои таблетки )))

Rusazar
22.07.2018, 15:19
И раз уж Mick тут и читает тему, то выражу свою благодарность за разрвботанные тобой для ZX-Bus чудесные звуковые карты ZXM-MoonSound и ZXM-Souncard, которыми я пользуюсь и частенько запускаю на PentEVO музыку.

ZX_NOVOSIB
22.07.2018, 15:24
Во вторых, процессоры ставили в них какие найдут - не парились что это CMOS или NMOS.

Я сильно сомневаюсь, что простой постсоветский молодой человек в 90-х при обнаружении у себя не того процессора бежал его менять на нужный

Сейчас если производят только CMOS процессоры, то и надо ориентироваться на них
Про прошлое время никто и не спорит. Но что было, то было. Сейчас не проблема достать NMOS. Ведь если уж чел решился на приобретение "реала", то он уже немного псих, а раз так, то нужно быть психом до конца и заморочиться на NMOS. Благо "сейчас" это не "тогда", и купить NMOS можно по щелчку мышки, да хотя бы на местной барахолке. А если на совместимость плевать, всегда можно ограничится эмуляторами. А многие даже эмуляторы не ставят, а играются на viva-games.ru и не парятся. Если конечно зачем-то нужны 14мгц в ущерб совместимости, то тут и CMOS сгодится. Но по мне уж лучше совместимость, чем 14мгц.

SegaBoy
22.07.2018, 15:26
В самых первых оригинальных Спектрумах стоят процессоры от NEC, а далее и в Синклеровских и в Амстрадовских стоят Z84. Получается оригинальные модели не тру-спектрумы? И самым тру можно считать только изделия с мгтф, без корпусов и клавиатур? Главное чтоб спектрафон (прости господи) запускался и чьи то упражнения в программировании, так что ли?

ZX_NOVOSIB
22.07.2018, 15:34
Главное чтоб спектрафон (прости господи) запускался и чьи то упражнения в программировании, так что ли?
Да.

CLR
22.07.2018, 15:37
Что-то мне тоже было всегда плевать, ну не запустилась одна программа из сотни, да и хрен бы с ней, вон рядом ещё 100500 программ. Какое-то не вполне здоровое эстетство искать идеальную совместимость там, где оригиналы-то были не очень совместимы друг с другом.

ZX_NOVOSIB
22.07.2018, 15:41
да и хрен бы с ней
а на 14 мгц не хрен? Чем 7 не устраивают?

Rusazar
22.07.2018, 15:43
а на 14 мгц не хрен? Чем 7 не устраивают?Знатный вы тролль, общения вам не хватает видать в глуши...

CLR
22.07.2018, 15:50
На 7/14/(28) довольно забавно выглядят 3D игры от Incentive (Dark side, Driller, Total Eclipse) да некоторые демки. Да и ещё CP/M на Профи пошустрее. Для классического софта особого смысла в турбе нету, он под 3,5 писан и работает как надо.

zx-kit
22.07.2018, 18:51
Какие недостатки у Nexta ? Каким должен быть компьютер? Только размер меньше тумбочки и заказную клавиатуру не предлагать. Будем использовать серийные. Главное содержание, а не форма.

Lethargeek
22.07.2018, 23:27
Какие недостатки у Nexta ?
принципиальные - спектрум в роли сбоку-бантика у неспектрума со спрайтами и слоями


Каким должен быть компьютер?
круче и (главное) удобнее остальных для юзера и програмера

zx-kit
23.07.2018, 04:51
принципиальные - спектрум в роли сбоку-бантика у неспектрума со спрайтами и слоями
круче и (главное) удобнее остальных для юзера и програмера
Когда я предлагал идеальный Спектрум без старого режима графики наоборот сожалели, почему нельзя будет загружать старые игры. Вот в некст добавили сбоку бантик. Что это дало ? Могут загружать старые игры. А дальше, что в этом крутого?

Люди будут играть на китайской клавиатуре неизвестного качества. А в магазинах можно купить серийную надежную клавиатуру по отлаженной технологии с длинным тонким проводом. Если сломается - купить новую. Самое важное в компьютере не внешний вид или кабели, а как он выполняет программы. Но я не про конструкцию. Пусть некст компактный и красивый, имеет множество интерфейсов, похож на игрушку. Что не смогли реализовать в нем и что cможем мы ?

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

Программисты игр для Спектрума предлагайте! Какие возможности нужны для новых игр уровня немного выше Денди-Сега-MSX-AMIGA. 3D не планируется. И главное, как управлять компьютером, чтобы было удобно писать программы.

Mick
23.07.2018, 09:00
Программисты игр для Спектрума предлагайте! Какие возможности нужны для новых игр уровня немного выше Денди-Сега-MSX-AMIGA. 3D не планируется. И главное, как управлять компьютером, чтобы было удобно писать программы.

Если по существу, надо исходить из того, что сейчас пишут программы как правило на PC, отлаживают на эмуляторах, а потом скидывают на спек.
Те кто пишет непосредственно на самом Спеке единицы. Это истинные хардкорщики и им новодел нового поколения не нужен по сути.
То есть как минимум должен быть удобный способ переноса программ на девайс без многочисленных телодвижений.

Кроме того что многие уже обросли умственным "жирком", то как минимум программы писать будут на языках типа Си, ибо на асме это долго и лениво.
Иными словами процессор должен быть мощный, способный переваривать кучу ленивого кода автора.

Во вторых, каков возрастной критерий для нового компьютера. Старики тем которым уже за 40 или около того (по сути большинство тут) их сдвинуть с места очень сейчас сложно. Молодежь сидит с головой в смартфонах, только уши торчат.

Error404
23.07.2018, 11:42
2) после команд LD A,I/LD A,R на z84 не может произойти прерывание


А вот это конкретный косяк, даже не верится что такое заложено. Встает вопрос а нафига так сделано.

Spectramine
23.07.2018, 11:58
А вот это конкретный косяк, даже не верится что такое заложено. Встает вопрос а нафига так сделано.

А это не косяк) Это инженеры Zilog так пофиксили ошибку чтения флага IFF2. Команды LD A,I/LD A,R должны выдавать состояние маскируемых прерываний (включены/выключены, внутренний флаг IFF2) во флаг P/V по документации. Но на NMOS Z80, если во время выполнения команды произошел захват импульса INT маскируемого прерывания, во флаг P/V заносится 0 (потому как прерывания _уже_ запрещены, так как после команды идет подтверждение прерывания).

Инженеры решили, что так быть не должно, и пофиксили в CMOS Z80 - тем, что запретили захват прерывания во время LD A,I/LD A,R. Теперь, если импульс прерывания приходит во время этих команд, он игнорируется, зато во флаг P/V заносится адекватное состояние разрешения маскируемых прерываний. Ну подумаешь, прерывание произойдет после следующей команды, а не после этой.

zx-kit
23.07.2018, 16:41
Если по существу, надо исходить из того, что сейчас пишут программы как правило на PC, отлаживают на эмуляторах, а потом скидывают на спек.
Те кто пишет непосредственно на самом Спеке единицы. Это истинные хардкорщики и им новодел нового поколения не нужен по сути.
То есть как минимум должен быть удобный способ переноса программ на девайс без многочисленных телодвижений.

Кроме того что многие уже обросли умственным "жирком", то как минимум программы писать будут на языках типа Си, ибо на асме это долго и лениво.
Иными словами процессор должен быть мощный, способный переваривать кучу ленивого кода автора.

Во вторых, каков возрастной критерий для нового компьютера. Старики тем которым уже за 40 или около того (по сути большинство тут) их сдвинуть с места очень сейчас сложно. Молодежь сидит с головой в смартфонах, только уши торчат.
1. Понял, после сброса программа в ПЗУ должна загружать игру с PC через USB.

2. Частоту Z80 желательно максимально возможную 20 MHz.

3. Компьютер планируется для бывших радиолюбителей возрастом 40-50 лет, которым интересно что-то спаять своими руками или написать программу для своих задач. Другим людям такие компьютеры не интересны.

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

Lethargeek
23.07.2018, 23:17
Когда я предлагал идеальный Спектрум без старого режима графики наоборот сожалели, почему нельзя будет загружать старые игры.
ну естественно - а вот не надо было называть это "спектрумом"


Программисты игр для Спектрума предлагайте! Какие возможности нужны для новых игр уровня немного выше Денди-Сега-MSX-AMIGA. 3D не планируется.
много раз уже говорил: много быстрой памяти + быстрый проц, способный полностью её нагрузить
или + еще блиттер, если проц у нас не настолько быстрый (что вероятнее)
при достаточно большой скорости уровня и "намного выше" легко достигнуть
(теоретически, конечно - игры-то всё равно писать будет некому)


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

zx-kit
24.07.2018, 06:10
Если максимальная скорость то ZS180 32 MHz память SRAM 10 ns. И экран 8 бит на точку с наложением в один буфер и отображением другого буфера. Так ?

zx-kit
24.07.2018, 18:16
Текущие характеристики:

Вывод на монитор VGA 800х600 60 Hz.
Частота INT = частоте кадров VGA 60 Hz.
Частота пикселов 20 MHz.
Частота Z80 20 MHz или ZS180 32 MHz.

Два экрана по 128К х 8 бит 45 ns SOIC-32.
В один экран только пишем из Z80. С другого только читаем в регистр вывода на монитор.
Разрешение экрана 400х256 точек.
8 бит на цвет точки.
Палитра 8 бит -> 15 бит.
Основное ОЗУ 1 М 45 ns.

Принцип формирования изображения.
На одном экране рисуется с нуля следующий кадр.
С другого экрана данные побайтно читаются и передаются на палитру и VIDEODAC.

Вроде просто и быстро.

Lethargeek
24.07.2018, 19:34
Если максимальная скорость то ZS180 32 MHz память SRAM 10 ns
ну сам же видишь, что такой проц не нагрузит такую память


Разрешение экрана 400х256 точек.
почему такое странное разрешение?


Вроде просто и быстро.
считать надо, сколько проц и блиттер прокачать смогут (кмк 45нс маловато будет)

bigral
24.07.2018, 22:25
Текущие характеристики:

Вывод на монитор VGA 800х600 60 Hz.
Частота INT = частоте кадров VGA 60 Hz.
Частота пикселов 20 MHz.
Частота Z80 20 MHz или ZS180 32 MHz.

Два экрана по 128К х 8 бит 45 ns SOIC-32.
В один экран только пишем из Z80. С другого только читаем в регистр вывода на монитор.
Разрешение экрана 400х256 точек.
8 бит на цвет точки.
Палитра 8 бит -> 15 бит.
Основное ОЗУ 1 М 45 ns.

Принцип формирования изображения.
На одном экране рисуется с нуля следующий кадр.
С другого экрана данные побайтно читаются и передаются на палитру и VIDEODAC.

Вроде просто и быстро.

беспонтовый трешак, практически программирование на нем будет эквивалентно ".MODEL tiny", ".8086" а само железо будет "исполнять" примерно тоже самое что и связка 286-20mhz+vga+adlib и это все БЕЗ DOS-a, MASM-a и т.д.

zx-kit
25.07.2018, 05:44
почему такое странное разрешение?

400 - это максимальное количество точек по-горизонтали для VGA 800x600 с удвоением точек.
256 - это максимальное количество точек по-вертикали, которое может адресовать процессор младшим байтом шины адреса.

Широкий экран пригодится для отображения редко меняющейся информации в игре или для текста 50х32 символов.

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


беспонтовый трешак, практически программирование на нем будет эквивалентно ".MODEL tiny", ".8086" а само железо будет "исполнять" примерно тоже самое что и связка 286-20mhz+vga+adlib и это все БЕЗ DOS-a, MASM-a и т.д.
Аппаратный скроллинг фона ограничивает возможности написания игр плоскими как в Денди и Сеге (вид сверху или сбоку). Для игр типа "Черный ворон" , "НЛО" (вид под 45 градусов) нужно свободное наложение большого количества планов.

Mick
25.07.2018, 08:32
Вроде просто и быстро.

Вот, если честно. Но кто будет писать программы на него. Ведь, если посудить почему собирают реплики компов разных лет, а не "изобретают" новые. Да просто потому что проги уже написаны. А если сейчас и пишут, то единицы. То есть, даже если создашь крутой комп, ему надо типа ОСи, иначе юзеру лениво в мониторе директивы набирать - нужно чтобы было все с окнами, многозадачностью и прочими прелестями.
Если вспомнить из истории, то был такой Романыч, который кажется один из первых тут сварганил игровую приставку на ARM9 (если память не изменяет), но никто не поддержал его. Посему непонятым он ушел с форума.
Взять кучу новых FPGA платформ, в частности Reverse и постоянные призывы автора включится в поддержку его продукта, но опять тишина.
К большому сожалению, но на нашем форуме большинство читателей, паятелей, собирателей и коллекционеров, но отнюдь не творчески творителей.

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

bigral
25.07.2018, 23:22
Аппаратный скроллинг фона ограничивает возможности написания игр плоскими как в Денди и Сеге (вид сверху или сбоку). Для игр типа "Черный ворон" , "НЛО" (вид под 45 градусов) нужно свободное наложение большого количества планов.

будь реалистом, все чего народ хочет это повтора в какомто виде вот этого https://youtu.be/Pf32zM-ble4

Lethargeek
25.07.2018, 23:27
400 - это максимальное количество точек по-горизонтали для VGA 800x600 с удвоением точек.
256 - это максимальное количество точек по-вертикали, которое может адресовать процессор младшим байтом шины адреса.

Широкий экран пригодится для отображения редко меняющейся информации в игре или для текста 50х32 символов.
так не проще ли взять стандартный 360x240 без удвоений
с которым символов шириной 6 точек влезет 60 в строку
5 точек на сам символ даже для широких букв достаточно

zx-kit
26.07.2018, 06:06
Вот, если честно. Но кто будет писать программы на него. Ведь, если посудить почему собирают реплики компов разных лет, а не "изобретают" новые. Да просто потому что проги уже написаны. А если сейчас и пишут, то единицы. То есть, даже если создашь крутой комп, ему надо типа ОСи, иначе юзеру лениво в мониторе директивы набирать - нужно чтобы было все с окнами, многозадачностью и прочими прелестями.

Может проще адаптировать ОС от Ориона ?

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


будь реалистом, все чего народ хочет это повтора в какомто виде вот этого https://youtu.be/Pf32zM-ble4
Ну а какого конкретно уровня игры нужны ? Space Invaders ? Pac Man ? Конечно нет ! Надо выбрать минимум достаточно высокий. Напиши образцы для подражания: названия игр и на каком компьютере. Я подумаю, какие возможности в железе помогут сделать такие же в новом компьютере.

Надо вместе обсудить и решить достаточное разрешение экрана для игр, количество цветов на экране, количество цветов в тайле, количество цветов в спрайте. Мне вот нравится как в Сеге - 7 цветов на спрайт + прозрачный. Хотя 15 цветов + прозрачный кажется лучше и без увеличения аппаратных затрат. По 4 бита на точку.

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


так не проще ли взять стандартный 360x240 без удвоений
с которым символов шириной 6 точек влезет 60 в строку
5 точек на сам символ даже для широких букв достаточно
Тут можно предоставить программисту выбор из четырех вариантов по-горизонтали: 256/320/360/400.
По-вертикали: 192/240/256/300(для текущей концепции пока невыполнимо).

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

В новом компьютере будет использован новый способ вывода на монитор. Два экрана. В рабочий идет запись процессором или блиттером, а с отображаемого идет вывод на монитор. Доступ в течение кадра VGA между двумя прерываниями INT к экранам раздельный. Частота вывода точек на монитор и скорость процессора могут быть разными в широких пределах.

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

creator
26.07.2018, 06:24
https://www.youtube.com/watch?v=5GQqdGzaARY


https://www.youtube.com/watch?v=B1FwD9jvD-o


https://www.youtube.com/watch?v=BoiHk_3siYg

Lethargeek
26.07.2018, 07:21
тадауж...

https://www.youtube.com/watch?v=FfBFxvelfVM

...и теоретический максимум :v2_devil:

https://www.youtube.com/watch?v=biFBCq5ouik

Djoni
26.07.2018, 07:32
1. Понял, после сброса программа в ПЗУ должна загружать игру с PC через USB.

2. Частоту Z80 желательно максимально возможную 20 MHz.

3. Компьютер планируется для бывших радиолюбителей возрастом 40-50 лет, которым интересно что-то спаять своими руками или написать программу для своих задач. Другим людям такие компьютеры не интересны.

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


Эх ребята не придумывайте велосипед , если нужна возможность обмена данными с PC то есть стандартный порт фирменной машины rs-232 ,с времён ZX 128 висит на портах AY-3-8912 , есть и программная поддержка .

http://gifok.net/images/2018/07/26/2018-07-26_11-15-29.md.png (http://gifok.net/image/8SQH)

Если нужен более скоростной обмен через USB или Wi-Fi то есть открытый проект Interface 1bis (https://sites.google.com/site/interface1bis/), там операции копирования и обмена данными происходят без участия z80 всем занимается контролер 1bis.

Зачем адаптировать ОС с другой платформы чем плоха CP/M под +3 например ? испанцы написали драйвер работ с Hdd под интерфейсы divide и divmmc.

CodeMaster
26.07.2018, 09:40
Эх ребята не придумывайте велосипед

Почитываю я иногда эту тему и метания автора из конца в конец родили одну теоретическую мысль: а можно ли сделать действительно универсальный олдскульный (т.е. не на ПЛИС) модульный компьютер (ограничимся например только 8 битами)? Т.е. некая шина (возможно S-100, возможно своя, т.к. S-100 для таких извратов не задумывалась) и модули (скорее всего с буферами и возможно с инверторами, т.к. активные сигналы у разных процов, например, могут быть разного уровня). И дальше комплектовать его как из кубиков: модули генератора (1, 2.5, 3.5, 5 МГЦ), модули процессоров (i8080, Z80, 6502), модули ПЗУ, модули ОЗУ (16, 32, 64 и дальше КБ), модули диспетчера памяти, модуль видеогенератора, модуль клавиатуры, ну и т.д.

Возможно на подобной базе теоретически собрать обычный комп Спектрум, Орион, Радио РК, модет быть даже Корвет или Вектор? Или универсальная шина и её арбитраж будет очень сложными и из этого могут получиться только самоделки, которые делал Ewgeny7?

bigral
26.07.2018, 13:39
Возможно на подобной базе теоретически собрать обычный комп Спектрум, Орион, Радио РК, модет быть даже Корвет или Вектор? Или универсальная шина и её арбитраж будет очень сложными и из этого могут получиться только самоделки, которые делал Ewgeny7?

Спектрум, орион, корвет и вектор НЕ получатся, изза того что арбитр доступа в память в таких компах и есть видеоконтроллер (т.е. схема синхронная в которой шина видеопамяти\видеоконтролл� �ра привязанна напрочь к основной шине). Можно сделать версии компов которые будут по времянкам не совместимы, но по портам\памяти совместимы и на них пойдет большая часть софта незаточенная на времянки (а другой софт можно подпилить и адаптировать). Что касается PK86, msx, ibm и прочих таких, то там видеоконтроллер отделен от основной шины а значит вполне можно сделать. Кроме того сам вычислитель и видеоконтроллер могут быть заменены на любой другой (т.е. имея одну "корзину" с любым стандартом шины, используя адаптеры шин, можно влепить лубую процессорную плату, любую плату памяти, любую переферию и любой видеоконтроллер). Хороший пример всего этого сайт про компы на шине S100 http://www.s100computers.com/ там давно эти вещи реализованны и обкатанны. Главные проблемы которые при этом возникают это: сложность реализации адаптеров шин (изза того что не все шины имеют эквивалентные циклы работы), сложность mapping-а адресов (так как адресное пространство CPU "не резиновое"), поддержка софтом (так как такие "химеры" никогда не имели успеха на рынке то и софта под них нету, нужны свои BIOS + драйвера OS).

CodeMaster
26.07.2018, 13:55
Спектрум, орион, корвет и вектор НЕ получатся, изза того что арбитр доступа в память в таких компах и есть видеоконтроллер (т.е. схема синхронная в которой шина видеопамяти\видеоконтролл� �ра привязанна напрочь к основной шине).
Ну, дык, а нельзя его сделать в виде сменного модуля (может с каким-то особым приоритетом)? А в случае остального будет ставится некая "заглушка".


Главные проблемы которые при этом возникают это: сложность реализации адаптеров шин (изза того что не все шины имеют эквивалентные циклы работы)
Это понимаю.


сложность mapping-а адресов (так как адресное пространство CPU "не резиновое")
Это не понимаю ;-)


поддержка софтом (... нужны свои BIOS + драйвера OS).
Тут вот тоже не понял. По идее (моей ;-) должен получится полный клон, свои firmware это уже неинтересно, это как я говорил буду самоделки типа от Ewgeny7 (от там перепиливал Васьки по конкретную архитектуру), более продвинутые конечно.

bigral
26.07.2018, 14:25
Ну а какого конкретно уровня игры нужны ? Space Invaders ? Pac Man ? Конечно нет ! Надо выбрать минимум достаточно высокий. Напиши образцы для подражания: названия игр и на каком компьютере. Я подумаю, какие возможности в железе помогут сделать такие же в новом компьютере.

1-й уровень игр это те что не требуют спрайтов, типичный представитель boulder dash на atari 8bit;
2-й уровень игр это те что кроме уровня 1 требуют спрайты которые и сверху и снизу тайлов могут быть и друг на друге это gradius или zanac-ex;

на этом можно остановиться...

3-й уровень это многоуровневые тайловые слои с разными палитрой и сдвигом;
4-й уровень это пиксельные процессоры поворота\масштабирования\с глаживания пикселей спрайтов и тайловых слоев;

на этом 2D ускорители закончили свое развитие...

есть элементы 3D ускорителей которые иногда добавляли в помощь: blitter-ы, рисование графических примитивов

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



Это не понимаю ;-)
...
Тут вот тоже не понял. По идее (моей ;-) должен получится полный клон, свои firmware это уже неинтересно, это как я говорил буду самоделки типа от Ewgeny7 (от там перепиливал Васьки по конкретную архитектуру), более продвинутые конечно.

Эти 2 последних пункта не про КЛОНЫ а про ХИМЕРЫ, когда например чувак подключил на шину S100 адаптер сделанный на v9958 (msx2+)... ну и учитывая что у него там и Z80 главный процессор и 286-й CPU есть... то возникает проблема в какие адреса этот адаптер залепить в пространстве z80 и в пространстве 286... и какой софт пускать.

Спектрум в виде "заглушки" влепить нельзя. Сам по себе спектрум это видеоконтроллер который жестко ломится к памяти через строго определенные куски времени и ему плевать что еще кому-то эта память нужна. Т.е. его надо будет выделить в отдельную плату видеоконтроллера с собственной памятью 6912 байт для экрана. При этом надо будет адаптер шины (скажем QBUS для того чтоб влепить его в ДВК). Как может выглядеть такой адаптер? В самом простом и тормозном варианте этот адаптер может быть тот же Z80 что и есть в спектруме только с возможностью доступа к выделенной адресной области на шине QBUS + логика арбитража QBUS шины... таким образом z80 будет брать прогу из памяти ДВК и писать в экран своего контроллера а сам pdp11 проц будет загружать ему проги в память и эмулировать i\o. Изза того что в QBUS свои времянки прийдется тормозить z80 в те моменты когда на обычном спектруме никакого торможения не наблюдается потому данный сурогат ДВК и спектрума будет слабо совместим, но таки много софта заработатет в каком-то виде и возможно многое можно будет подпилить до "нормального" уровня.

CodeMaster
26.07.2018, 15:35
Эти 2 последних пункта не про КЛОНЫ а про ХИМЕРЫ, когда например чувак подключил на шину S100 адаптер сделанный на v9958 (msx2+)... ну и учитывая что у него там и Z80 главный процессор и 286-й CPU есть...
Я про такое не спрашивал.


Спектрум в виде "заглушки" влепить нельзя.
Твоя моя не понимай. Не "Спектрум" и не в виде "заглушки", а модуль "видеовыхода + арбитр памяти" на основе ULA или T34ВГ1 в особый слот между слотами проца и памяти, который может рулить ими обоими. Если видеоадаптер "отделён" от шины то туда ставится модуль с разводкой, которая "выравнивает" все слоты.


может быть тот же Z80 что и есть в спектруме только с возможностью доступа к выделенной адресной области на шине QBUS + логика арбитража QBUS шины...

Эка Вас батенька... я вообще только про 8-битки спрашивал. Не видел на них QBus.

bigral
26.07.2018, 20:00
Твоя моя не понимай. Не "Спектрум" и не в виде "заглушки", а модуль "видеовыхода + арбитр памяти" на основе ULA или T34ВГ1 в особый слот между слотами проца и памяти, который может рулить ими обоими. Если видеоадаптер "отделён" от шины то туда ставится модуль с разводкой, которая "выравнивает" все слоты.

Ну если на материнке отдельно поставить Z80 и вывести все его сигналы на "слот проца", отдельно запаять линейку РУ5 и вывести все сигналы на другой "слот памяти", с ay-3-8910 и вв55 сделать тоже самое, то вероятно можно сочинить скажем плату которая будучи вставленна сразу во все слоты сделает из всего этого спектрум... Ну и другую плату скажем можно сочинить, которая сделает из этого MSX. По сути будет что-то похожее на советские радиоконструкторы детали в которых паять ненадо было.

CodeMaster
26.07.2018, 21:21
то вероятно можно сочинить скажем плату которая будучи вставленна сразу во все слоты сделает из всего этого спектрум... Ну и другую плату скажем можно сочинить, которая сделает из этого MSX.

И скорее всего эта плата будет составлять 2/3 компа (это если на рассыпухе), но как я сказал сразу - это интересно чисто теоретически. Возможно, такая габаритная конструкция ограничит максимальную частоту клока и Z80 уже не взлетит на 3.5 МГц или задержки в буферах и т.п. не позволят на 100% повторить какой-то комп.

Lethargeek
27.07.2018, 00:32
1-й уровень игр это те что не требуют спрайтов, типичный представитель boulder dash на atari 8bit;
2-й уровень игр это те что кроме уровня 1 требуют спрайты которые и сверху и снизу тайлов могут быть и друг на друге это gradius или zanac-ex;

на этом можно остановиться...

3-й уровень это многоуровневые тайловые слои с разными палитрой и сдвигом;
4-й уровень это пиксельные процессоры поворота\масштабирования\с глаживания пикселей спрайтов и тайловых слоев;

на этом 2D ускорители закончили свое развитие...
шулер, начал про игры, кончил про 2d ускорители :D
то есть, игры неогея примитивнее сеговских, по-твоему?
(в нём же, кроме спрайтов с неподвижным фоном, ничего нету)))


есть элементы 3D ускорителей которые иногда добавляли в помощь: blitter-ы, рисование графических примитивов
бред, с каких пор блиттер - "элемент 3d ускорителя"

zx-kit
27.07.2018, 06:13
тадауж...

https://www.youtube.com/watch?v=FfBFxvelfVM


Красивая игрушка хотя фон только один и не очень плавный
Все зависит от художника наше дело сделать подходящее железо
параметры примерно экран 320х240 256 цветов 15 цветов на тайл и спрайт

Lethargeek
27.07.2018, 08:40
Красивая игрушка хотя фон только один и не очень плавный
просто персонаж так движется в рваном ритме
на амигах приходилось жертвовать цветами ради слоёв
отчего они часто выглядели плоскими и картонными

тут фон один, зато нормально раскрашенный
но причина, по которой выбрал такой пример
это скорость и количество анимации


параметры примерно экран 320х240 256 цветов 15 цветов на тайл и спрайт
сам-то понимаешь, что предлагаешь?
зачем цветоограниченные спрайты с таким экраном?
спрайты в том же неогее (видео выше) - потому что ромы 200нс
сейчас можно честно перебросить пиксель несколько раз
за то же время, за какое он тогда читался спрайтовой схемой

zx-kit
27.07.2018, 17:47
Значит для тайлов и спрайтов надо 255 цветов + прозрачный на точку. То есть 1 байт на точку.
Экран 320х240 точек 255 цветов вывести на монитор можно. Теперь остается придумать, как его быстро рисовать.

zx-kit
27.07.2018, 21:28
Текущая концепция компьютера для игр типа "Ruff 'n' Tumble":

Разрешение экрана 320х240 точек
1 байт на цвет точки
Палитра 8 -> 24 бита как у файлов BMP
2 слоя - фон и спрайты
Тайлы и спрайты по 255 цветов на точку + прозрачный
Фон рисуется автоматически из тайлов в процессе вывода на экран по смещению в карте
Номер тайла из двух байтов
Спрайты рисуются программно-аппаратным способом
Блиттер на микросхемах на одну линию длиной от 8 до 320 точек
2 экрана по два слоя
Доступ к экранам раздельный и монопольный в течение кадра. На рабочем рисует блиттер, с отображаемого читает схема вывода на монитор
Процессор Z8S180 32 MHz

Lethargeek
28.07.2018, 00:20
Экран 320х240 точек 255 цветов вывести на монитор можно. Теперь остается придумать, как его быстро рисовать.
что тут думать, блиттер + скрипты для него


2 слоя - фон и спрайты
Тайлы и спрайты по 255 цветов на точку + прозрачный
просто блоки; кстати, режим вывода с прозрачностью полезен и для процессора


Фон рисуется автоматически из тайлов в процессе вывода на экран по смещению в карте
Номер тайла из двух байтов
Спрайты рисуются программно-аппаратным способом
непонятно, что еще за способ, и зачем он должен отличаться у тайлов/спрайтов (на амигах, кстати, нет аппаратных тайлов)
блиттеру совершенно безразлично, что рисовать, только знать размер, координаты, режим прозрачности, повороты и отражения...
чтобы проц не дёргать - задавать скрипт, просто список ссылок на дескрипторы блоков (и мб на вложенные списки такие же)
дал команду блиттеру на отрисовку одного экрана, в это время правишь скрипт для другого

zx-kit
28.07.2018, 07:38
что тут думать, блиттер + скрипты для него


просто блоки; кстати, режим вывода с прозрачностью полезен и для процессора


непонятно, что еще за способ, и зачем он должен отличаться у тайлов/спрайтов (на амигах, кстати, нет аппаратных тайлов)
блиттеру совершенно безразлично, что рисовать, только знать размер, координаты, режим прозрачности, повороты и отражения...
чтобы проц не дёргать - задавать скрипт, просто список ссылок на дескрипторы блоков (и мб на вложенные списки такие же)
дал команду блиттеру на отрисовку одного экрана, в это время правишь скрипт для другого
Блиттер со скриптами - это верх автоматизации и максимальная скорость, но и самый сложный вариант для схем на логике. Для начала можно разогнать процессор и рисовать все им. Следующий шаг для ускорения закраски - блиттер на линию из точек. Его можно сделать на микросхемах.

Это уже будет существенным ускорением. Блиттер на копирование точки будет тратить 2 такта, а команда LDI 16 тактов для Z80 и 12 тактов для Z180. То есть блиттер на линию быстрее процессора всего в 6 или 8 раз, но уже хорошо. И это самое критическое место, а циклы линий в блоке и управление последовательность наложения можно и программно, так как это не очень критичное время.

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

Хотя для маленких спрайтов может даже быстрее рисовать командой LDI, а не блиттером, так как в блиттер надо постоянно записывать координаты и адреса спрайтов через порты, а для LDI они уже в регистрах. Так что смена процессора на Z8S180 20/32 MHz решает почти все вопросы со скоростью.

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

Lethargeek
28.07.2018, 09:32
Блиттер со скриптами - это верх автоматизации и максимальная скорость, но и самый сложный вариант для схем на логике.
Ты спросил "как быстро", а не "как просто". И он НЕ самый сложный, а на самом деле ПРОЩЕ аппаратных тайлов и спрайтов - нету жёстких требований по таймингам.


Ну и фон для ходилок желательно не рисовать ни процесором, ни блиттером, а чтобы он сам рисовался по карте уровня и смещению.
Так "рисовался" или всё же "отображался"? Если РИСОВАТЬ - тогда в буфере именно процессором или блиттером.


Аппаратный вывод фона из тайлов не требует времени блиттера,
Требует, они читаются с той же шины (а не отдельно, как отображаемый активный экран!)
Кстати, вывод аппаратных тайлов и пикселей активного экрана еще придётся как-то объединять.


а залить весь фон блиттером тоже сколько-то времени займет.
Блин, да сколько ж можно-то уже, а? :v2_dizzy_facepalm: Так и продолжаешь ходить кругами. Ничего хорошего не получится, пока наконец не начнёшь уже просчитывать варианты вместо пальцетыканья наугад. У тебя на заливку дохренища времени с быстрой памятью (какой не было во времена аппаратных тайлов). И что важнее - нет ограничения на размеры блоков. И ведь сам только что пожаловался на сложность, и тут же хочешь городить ненужные усложнения, причём они и дизайнеру игрушек попортят жизнь.

zx-kit
28.07.2018, 12:51
Мы может сэкономить время блиттера на что-то полезное, если фон будет отображаться из карты уровня во время вывода на монитор.

Время заполнения тайлами экрана 320x240 по 8 бит на точку по 2 такта на пересылку при частоте блиттера 20 МГц равно (320*240*2) / 20MHz = 7,68 ms

Поэтому не стоит тратить драгоценное время блиттера на рисование фона.

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

Текущая концепция компьютера для игр типа "Ruff 'n' Tumble":

Разрешение экрана 320х240 точек
1 байт на цвет точки
Палитра 8 -> 24 бита как у файлов BMP. 2 палитры - для фона и для спрайтов
2 слоя - фон и спрайты

Фон отображается автоматически в процессе вывода на экран по смещению в карте уровня
Размер карты тайлов 512x256 тайлов размером 8х8 точек
Количество тайлов 2048 размером 8х8 точек

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

Спрайты рисуются программно-аппаратным способом. Блиттер на микросхемах на одну линию длиной от 8 до 320 точек. Управление спрайтами и строками блиттера программное.

Железо:
Процессор Z80 или Z8S180 на частоте 20 MHz
ОЗУ карты уровня - 2 м/c 128Кx8
ОЗУ тайлов уровня - 1 м/c 128Кx8
ОЗУ теневого и активного экрана для блиттера - 2 м/c 128Кx8
ОЗУ палитры - 3 м/c 128Кx8
ОЗУ спрайтов уровня - ?
ОЗУ основное - ?

Lethargeek
28.07.2018, 22:16
zst, ну вот почему ты с маниакальным упорством жаждешь УСЛОЖНИТЬ железо ради УХУДШЕНИЯ характеристик и НЕУДОБСТВА? :v2_dizzy_facepalm:


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

Время заполнения тайлами экрана 320x240 по 8 бит на точку по 2 такта на пересылку при частоте блиттера 20 МГц равно (320*240*2) / 20MHz = 7,68 ms

Поэтому не стоит тратить драгоценное время блиттера на рисование фона.
а на что еще "полезное" его тратить? :v2_dizzy_tired2:
даже по твоим расчётам блиттер успеет обновить весь экран за кадр больше двух раз
почему, кстати, только 20мгц частоты? ты хотел же статику поставить 10нс
плюс, скорость переброски в экран физически отдельный - вдвое быстрее
если шины не мультиплексированы, так как можно одновременно читать и писать

еще атрибуты тайла надо будет либо в каждой строке повторно читать, либо кучу аппаратных регистров
и всё ради чего? ради "экономии" ненужной - ценой удобства, которое гораздо важнее прочего


Блиттер на микросхемах на одну линию длиной от 8 до 320 точек.
это как "на одну линию", нахрена? он с любым размером блока должен работать, в том его удобство и состоит

CLR
28.07.2018, 23:17
Подозреваю, это все от желания сотворить чудо на тёплых ламповых дип-микросхемах.

Ewgeny7
28.07.2018, 23:45
Хочу ZST-Hybrid, оно же "Скорпион-1024" с пентагоновской разверткой + Z80 СР/М (с экраном 80х25 символов), переключаемые по мере желания. Остальное - от лукавого и тээсконфовщина неправославная.
Вот. Высказался. Пойду спать :)

shurik-ua
29.07.2018, 00:36
Хочу ZST-Hybrid, оно же "Скорпион-1024" с пентагоновской разверткой + Z80 СР/М
а как же блиттер с тайлами о восьми слоях )) - не феншуйно это в 2018 и без блиттера )

Totem
29.07.2018, 02:06
а как же блиттер с тайлами о восьми слоях )) - не феншуйно это в 2018 и без блиттера )

а где игрушки под Спринтер? у меня почти полная коллекция деталей, все не решусь заказать плату-ибо смысла 0

zx-kit
29.07.2018, 06:52
zst, ну вот почему ты с маниакальным упорством жаждешь УСЛОЖНИТЬ железо ради УХУДШЕНИЯ характеристик и НЕУДОБСТВА? :v2_dizzy_facepalm:


а на что еще "полезное" его тратить? :v2_dizzy_tired2:
даже по твоим расчётам блиттер успеет обновить весь экран за кадр больше двух раз
почему, кстати, только 20мгц частоты? ты хотел же статику поставить 10нс
плюс, скорость переброски в экран физически отдельный - вдвое быстрее
если шины не мультиплексированы, так как можно одновременно читать и писать

еще атрибуты тайла надо будет либо в каждой строке повторно читать, либо кучу аппаратных регистров
и всё ради чего? ради "экономии" ненужной - ценой удобства, которое гораздо важнее прочего


это как "на одну линию", нахрена? он с любым размером блока должен работать, в том его удобство и состоит
Чтобы нарисовать фон из тайлов процессор для каждого тайла должен вычислить координаты на экране и адрес тайла в памяти, записать это облать данных блиттера. Блиттер будет читать эти данные для рисования каждого спрайта. А если выводить фон автоматически, то ничего этог делать не надо. В этом упрощение для программиста и гарантия, что фон будет выводиться плавно и времени блиттера хватит на отрисовку спрайтов и переднего фона.

Проще сделать блиттер на микросхемах для копирования одной линии, чем нескольких линий всего блока. Микросхемы на частоте больше 20 МГц работать не смогут. И памяти надо много отдельных микросхем, поэтому я буду использовать 128 К х 8 45 ns SOIC-32.

Lethargeek
29.07.2018, 09:23
Чтобы нарисовать фон из тайлов процессор для каждого тайла должен вычислить координаты на экране и адрес тайла в памяти, записать это облать данных блиттера.
и с какого перепугу он это ДОЛЖЕН? что мешает блиттеру самому для себя читать не только пиксели, но и данные?


Блиттер будет читать эти данные для рисования каждого спрайта.
ОДИН раз для одного блока всего-то навсего


А если выводить фон автоматически, то ничего этог делать не надо.
ага, щяз :v2_dizzy_stop: не тупи, с аппаратным фоном делать "это" надо будет НАМНОГО ЧАЩЕ :v2_tong2:
потому что блиттер отрисовку ведёт поблочно, а тайловая схема фон отображает построчно, перескакивая с тайла на тайл
то есть с КАЖДОЙ СТРОЧКОЙ одного и того же тайла нужно заново читать его атрибуты - номер или адрес как минимум
а еще ВСЮ палитру тайла, если применяешь палитры тайлов; а еще дополнительные признаки вроде отражения итд
еще раз: это всё ДЛЯ КАЖДОЙ СТРОЧКИ КАЖДОГО ТАЙЛА!


В этом упрощение для программиста
для программиста проще крупными объектами оперировать, а для дизайнера - иметь поменьше ограничений


и гарантия, что фон будет выводиться плавно и времени блиттера хватит на отрисовку спрайтов и переднего фона.
на колу мочало, начинай сначала...
И ТАК ХВАТИТ - даже с 20мгц, даже без двукратного ускорения с двумя шинами
в том же Ruff'n'Tumble явно меньше двух экранов пикселей выводится в каждом кадре


Проще сделать блиттер на микросхемах для копирования одной линии, чем нескольких линий всего блока.
:v2_dizzy_facepalm: ты не путай, это называется DMA; а блиттер потому и БЛиттер, что он для БЛоков

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

Ewgeny7
29.07.2018, 11:50
а как же блиттер с тайлами о восьми слоях )) - не феншуйно это в 2018 и без блиттера )
А на кой феншуй оно сдалось? Кодеры в очередь стоят уже, тайлы блиттерить? Тьфу, это матюги какие-то, а не слова...
Нам нужны Диззи, Р-Тайп и (прости Господи) Спектрофон. Всё остальное - одно непотребство :)

zx-kit
29.07.2018, 16:43
и с какого перепугу он это ДОЛЖЕН? что мешает блиттеру самому для себя читать не только пиксели, но и данные?


ОДИН раз для одного блока всего-то навсего



как будет рисовать блиттер весь фон следующего кадра при движении ?
тайлы в этой игре шириной 32 точки
из чего сделан такой умный блиттер ?
можно ли его сделать на микросхемах ?

Totem
29.07.2018, 23:42
как будет рисовать блиттер весь фон следующего кадра при движении ?
тайлы в этой игре шириной 32 точки
из чего сделан такой умный блиттер ?
можно ли его сделать на микросхемах ?
ну делай с DMA - копируй построчно фон и тайл. 3 корпуса, в 180 он штатный- 0 корпусов. на больших частотах CPU вполне себе.
правда выше 8 МГц, найти DMA от зилог, весьма проблематично и затратно.

zx-kit
30.07.2018, 05:08
Можно сделать так:
Фон и спрайты составлять из кусочков/тайлов 8х8 как в Денди.
Процессор вычисляет координаты каждого тайла для следующего кадра и записывает в специальную очередь с помощью команд PUSH номер тайла и его координаты на экране.
В конце очереди записывает код 0.

Делаем блиттер на микросхемах для рисования тайла 8х8 точек.
Он берет из очереди координаты и номер тайла и рисует на рабочем экране.
Как только прочитается код 0 - конец рисования.

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


ну делай с DMA - копируй построчно фон и тайл. 3 корпуса, в 180 он штатный- 0 корпусов. на больших частотах CPU вполне себе.
правда выше 8 МГц, найти DMA от зилог, весьма проблематично и затратно.
ДМА в Z8S180 медленный. 6 тактов на байт. Нам нужно сделать быстрый - 1 такт на байт. Для этого надо два набора счетчиков - адрес источника и адрес приемника и две микросхемы памяти.

Lethargeek
30.07.2018, 05:28
как будет рисовать блиттер весь фон следующего кадра при движении ?
точно так же, как и прошлого кадра, изменился только начальный адрес
плюс корректировка краёв (для аппаратных тайлов тоже нужна)


из чего сделан такой умный блиттер ?
можно ли его сделать на микросхемах ?
а из чего ты собрался делать тайловую схему (сложнее блиттера)? :p

zx-kit
30.07.2018, 06:11
точно так же, как и прошлого кадра, изменился только начальный адрес плюс корректировка краёв (для аппаратных тайлов тоже нужна) Надо изменить координаты всех тайлов. И периодически менять номера или адреса тайлов. Это сможет сделать только процессор.
а из чего ты собрался делать тайловую схему (сложнее блиттера)? :p Из счетчиков и нескольких микросхем памяти. По сложности как сделать текстовой режим. В одной микросхеме памяти номера символов, в другой - знакогенератор. - - - Добавлено - - -
Хочу ZST-Hybrid, оно же "Скорпион-1024" с пентагоновской разверткой + Z80 СР/М (с экраном 80х25 символов), переключаемые по мере желания. Остальное - от лукавого и тээсконфовщина неправославная. Вот. Высказался. Пойду спать :) Фон из тайлов - это почти текст из символов с загружаемым знакогенератором. Взять режим VGA 640х480 60 Hz и сделать 2 разрешения: 320x240 для игр и 640х240 для текста

Lethargeek
30.07.2018, 09:36
Надо изменить координаты всех тайлов.
и в чём проблема? тут процессор как раз не нужен
вывел блок, приплюсовал смещение к адресу


И периодически менять номера или адреса тайлов. Это сможет сделать только процессор.
а для этого - нужен и в схеме с аппаратными тайлами


Из счетчиков и нескольких микросхем памяти.
и что мешает к блиттеру добавить несколько счётчиков?


По сложности как сделать текстовой режим.
и по качеству ничем не лучше древней консольщины
только без софта и аудитории

zx-kit
30.07.2018, 18:23
и по качеству ничем не лучше древней консольщины только без софта и аудитории По качеству фон из аппаратных тайлов будет выглядеть точно также, как в игре "Ruff 'n' Tumble" на Амиге. Все зависит от художника. Но аппаратные тайлы потребуют 3 микросхемы памяти 128K и 27 микросхем логики. Многовато. Подключение отдельной микросхемы памяти к процессору требует 5 мультиплексоров КП11 и два буфера АП6.

Error404
31.07.2018, 13:13
Можно сделать так:
Фон и спрайты составлять из кусочков/тайлов 8х8 как в Денди.
Процессор вычисляет координаты каждого тайла для следующего кадра и записывает в специальную очередь с помощью команд PUSH номер тайла и его координаты на экране.
В конце очереди записывает код 0.

Делаем блиттер на микросхемах для рисования тайла 8х8 точек.
Он берет из очереди координаты и номер тайла и рисует на рабочем экране.
Как только прочитается код 0 - конец рисования.


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

ИМХО это разновидность задачи для алфавитно-цифрового дисплея (АЦД), где имеется двумерный массив экранных символов и ОЗУ знакогенератора. Пишешь по (X+Y) в массив экрана АЦД байт кода символа (тайла в вашей нотации) и одним махом выводишь на экран 8 байт из ОЗУ знакогенератора где заранее подгружены тайлы (смотря сколько там высота символа) в нужной позиции видео-ОЗУ. Плюс: быстрота работы, простота программирования, реализуется на 2х МСХ серии 555, можно использовать как быстрый символьный дисплей (что ИМХО важнее). Минусы: режимы наложения (AND,OR,XOR) сложнореализуемы, попиксельные координаты вывода тайла кратны высоте/ширине символов.

Lethargeek
31.07.2018, 15:04
По качеству фон из аппаратных тайлов будет выглядеть точно также, как в игре "Ruff 'n' Tumble" на Амиге.
еще раз: на амигах НЕТ аппаратных тайлов, а программные в какой-то другой игре могут быть совсем другого размера, и даже формы


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

zx-kit
31.07.2018, 19:02
Мы же делаем компьютер в ретро-стиле, а не нео-гео.
В ретро-компьютере обязательно фон и спрайты должны быть кратны 8.
И дизайнерам уровней привычно карту уровня рисовать из тайлов.
И программистам привычно выводить фон из тайлов.
И микросхемам привычно делать все кратно 8.

creator
31.07.2018, 19:13
zst, всего хорошего.

zx-kit
31.07.2018, 21:19
zst, всего хорошего. Погоди, не уходи. Что я такого сказал ? У нас в компьютерах все кратно восьми. И в играх Амиги фон из тайлов кратен восьми. А что в Амиге не смогли сделать аппаратные тайлы - может не хватило памяти.

Lethargeek
01.08.2018, 07:53
Мы же делаем компьютер в ретро-стиле, а не нео-гео.
если ты про возраст, то чем неогей, почти тридцатилетний, тебе не ретро?
если ключевое слово "компьютер", то почему ты непременно хочешь тайлы, как на консольках?


В ретро-компьютере обязательно фон и спрайты должны быть кратны 8.
ага, сходи расскажи это Стиву Возняку, у которого в байте 7 монохромных или 3.5 цветных пикселей в эпол-II `:v2_laugh:
но даже если так, у тебя же пиксель кратен восьми - а значит, и всё остальное, автоматически :v2_dizzy_roll:


И дизайнерам уровней привычно карту уровня рисовать из тайлов.
И программистам привычно выводить фон из тайлов.
а бухгалтерам привычно было считать на счётах :v2_rolley

в данном случае "привычно" значит "не было выбора"
почему ты не хочешь, чтобы выбор у людей появился? :mad:


И микросхемам привычно делать все кратно 8.
сам-то понял, что сморозил? у них пины, ретро-память ОДНОБИТНАЯ вообще :v2_tong:


И в играх Амиги фон из тайлов кратен восьми.
это совершенно необязательно, как и вообще "фон из тайлов"
например, в изометрических игрушках какие тайлы?
иногда был смысл у кратности в ширину
только не 8, а 16 (сам догадаешься?)


А что в Амиге не смогли сделать аппаратные тайлы - может не хватило памяти.
хех, а может, потому что делали универсальный компьютер, а не приставку для шаблонных игрушек :v2_dizzy_coder:

Totem
01.08.2018, 17:30
Можно сделать так:
Фон и спрайты составлять из кусочков/тайлов 8х8 как в Денди.
Процессор вычисляет координаты каждого тайла для следующего кадра и записывает в специальную очередь с помощью команд PUSH номер тайла и его координаты на экране.
В конце очереди записывает код 0.

Делаем блиттер на микросхемах для рисования тайла 8х8 точек.
Он берет из очереди координаты и номер тайла и рисует на рабочем экране.
Как только прочитается код 0 - конец рисования.

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


ДМА в Z8S180 медленный. 6 тактов на байт. Нам нужно сделать быстрый - 1 такт на байт. Для этого надо два набора счетчиков - адрес источника и адрес приемника и две микросхемы памяти.
тебе ехать или шашечки, 8 бит комп, быстрый и совместимый на ретро основе-дизигне, с простым менджентом памяти? И память сотвественно нужна быстрая и эти 2 счетчика и порт и "синхоронизировать доморошененный" DMA c CPU либо его отключать на время работы DMA ? -тогда еще пригоршня микрух как минимум 74F или аналог наш, как минимум.
Видео и сам комп вещи разные, комп в минималке, может быть просто с uart . Главное ,что можно будет самому собрать хоть текстовый вывод, хоть графику "полноценную 4 бит пер пиксель", количество энтузиазма, легкость сборки будет определять популярность. Иначе это еще один Энтерпайз 128- там кстати, энтузиазма в софте на порядки отличаются от 0. :)

zx-kit
01.08.2018, 18:49
почему ты не хочешь, чтобы выбор у людей появился? :mad:

А выбор итак есть. Раздели картинку на плитки 8х8 точек, присвой каждой плитке номер и запиши номера в память карты. Можешь разместить там большую картинку на 3 экрана и закольцевать как в игре METAL SLUG 3 (35:50 ... 39:20). Игрок будет смотреть 3,5 минуты на повторяющиеся деревья. А перед этим можешь прокручивать повторяющиеся облака.

Это выбирает дизайнер. Повторяющуюся большую картинку или намного большую площадь, построенную из повторяющихся плиток.

А отображаются оба типа фона одинаково. По прерыванию надо загрузить в регистры новые координаты верхнего левого угла окна в карте. В течение кадра схема на счетчиках сама все отобразит.


это совершенно необязательно, как и вообще "фон из тайлов"
например, в изометрических игрушках какие тайлы?

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

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

Totem
02.08.2018, 00:03
А выбор итак есть. Раздели картинку на плитки 8х8 точек, присвой каждой плитке номер и запиши номера в память карты. Можешь разместить там большую картинку на 3 экрана и закольцевать как в игре METAL SLUG 3 (35:50 ... 39:20). Игрок будет смотреть 3,5 минуты на повторяющиеся деревья. А перед этим можешь прокручивать повторяющиеся облака.

Это выбирает дизайнер. Повторяющуюся большую картинку или намного большую площадь, построенную из повторяющихся плиток.

А отображаются оба типа фона одинаково. По прерыванию надо загрузить в регистры новые координаты верхнего левого угла окна в карте. В течение кадра схема на счетчиках сама все отобразит.

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

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


все кто пишут под спек - люди давно в возрасте, им выложиться в коде гораздо интересней на "тру платформе", имели смысл лет 20 назад твои потуги и желания, но сейчас до "купера и до феномора товои " купи GBA -пробеги или просто посмотри на ютубиках,
https://youtu.be/YFKusOerZDA
как думашь, портироавать сможешь? или сделать более круто? сходи на стим и посмотри просто подражающие 8 бит проекты, до твоих "блиттеров" дело никому нет, это просто интересно в качестве ретро.

zx-kit
02.08.2018, 05:53
Пока я планирую делать игровой компьютер с возможностями между SEGA и AMIGA.
Экран 320х240 8бит на точку. 256 цветов с палитрой 24 бита.

Эталоны игр:
ALADDIN (SEGA)
"RUFF 'N' TUBLE" (AMIGA)
DUNE 2 (PC)

Какие еще игры хорошие ?

Lethargeek
02.08.2018, 08:47
А выбор итак есть. Раздели картинку на плитки 8х8 точек, присвой каждой плитке номер и запиши номера в память карты.
не хочу, зачем мне эта мелочная возня? НЕТУ ВЫБОРА как мне удобней делить картинку!
следственно, повторю вопрос: почему ты не хочешь, чтобы выбор у людей появился? :mad:


Можешь разместить там большую картинку на 3 экрана и закольцевать как в игре METAL SLUG 3 (35:50 ... 39:20). Игрок будет смотреть 3,5 минуты на повторяющиеся деревья. А перед этим можешь прокручивать повторяющиеся облака.
а такое существует лет 35 - и зачем для этого новые поделки изобретать?
когда можно взять настоящий ретрокомп с огромной юзерской базой
если уж вдруг захочется возиться с мелкими плитками


Фон все-равно нужен. Он стирает старые спрайты. Поэтому надо модернизировать тайловый фон так, чтобы он отображался не сразу на экран, а рисовался в рабочий экран блиттера, затирая предыдущую картинку.
А ПРИ ЧЁМ ТУТ АППАРАТНЫЕ ТАЙЛЫ твои в духе текстового режима? :v2_wacko:
и зачем НАВЯЗЫВАТЬ блиттерно-программным "тайлам" один размер?
это не модернизация, а маразм!

zx-kit
02.08.2018, 17:03
купи GBA -пробеги или просто посмотри на ютубиках,
https://youtu.be/YFKusOerZDA
как думашь, портироавать сможешь? или сделать более круто? сходи на стим и посмотри просто подражающие 8 бит проекты, до твоих "блиттеров" дело никому нет, это просто интересно в качестве ретро.
А что такого в GBA ? Точек там мало - это не образец. Смотреть надо на SEGA, NEO-GEO, AMIGA, где 320 точек.

Решили же, что характеристики компьютера должны позволять делать игры типа РУТ И ТУМБЛЕР.

Там фон с кратностью 8 точек. Можно сделать аппаратными тайлами. А для спрайтов сделать блиттер.

Можно уменьшить разрешение до 320х224 точки.

Размер карты уровня 256 тайлов по-вертикали и 512 по-горизонтали. В карте 128К тайлов. В памяти тайлов 2048 тайлов. Размер тайла 8х8 точки.

Надо придумать доступ к карте уровня. Как вариант несколько портов:

1. Координата по-вертикали
2. Младший байт координаты по-горизонтали
3. Старший байт координаты по-горизонтали
4. Младший байт номера тайла
5. Старший байт номера тайла

Сначала записываем в порты координаты, замем номер.

Или через окно 16 К все записывать.

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


cp/m - даст "быстрый старт" изза наличия кучи СТАРОГО софта, но всеравно проиграет тому что уже есть на MSX и новейших msxdos... Отсюда вопрос - а будет ли новый комп круче чем MSX2+ ? Думаю сделать такой будет довольно трудно, в основном изза эффективности v9958 (у которого отдельная шина для видеопамяти и структура экрана спрайтово-тайловая).

С играми вроде все прояснилось. Теперь надо уточнить с текстовыми режимами для CP/M. Текущее разрешение монитора 640х480 60 Hz. В графике 320х240 строки VGA дублируются и две точки рядом одинаковые. В текстовом режиме для знакогенератора будут достпуно разрешение VGA 640 x 480. Надо решить, размер символа, количество строк и символов в строке, адресацию байтов и атрибутов и т.п. Для упрощения схемы можно зашить шрифт во FLASH.

Lethargeek
02.08.2018, 18:09
Там фон с кратностью 8 точек. Можно сделать аппаратными тайлами. А для спрайтов сделать блиттер.
https://2.bp.blogspot.com/-0j1DYb8czfg/V8XqgjUTT-I/AAAAAAAAchI/bQZ8I9QQ0EIfIWXyhbYZNg0K1URgoHDTACLcB/s1600/The%2BThing.jpg

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

конкретно "там" размер плиток 16x16 пикселей: http://eab.abime.net/showthread.php?t=20418

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

а вот так выглядит свеженький ремейк по мотивам:
https://www.unrealengine.com/en-US/blog/rad-rodgers---a-glorious-recreation-of-classic-90s-platformer-nostalgia

zx-kit
02.08.2018, 21:33
конкретно "там" размер плиток 16x16 пикселей: http://eab.abime.net/showthread.php?t=20418

Ну я же и говорю при кратности размеров тайлов восьми можно классные уровни нарисовать. 8/16/24/32 и т.д. Никаких проблем - главное уметь рисовать.

Lethargeek
03.08.2018, 10:02
Ну я же и говорю при кратности размеров тайлов восьми
почему 8? почему не 2, 4 или 16? или вообще без кратности? ОБЪЕКТИВНЫЕ причина сможешь назвать?
а не "потому что везде так было в ретрокомпьютерах" (как я показал выше, вовсе не везде было так)


можно классные уровни нарисовать.
а без ненужных лишних ограничений рисовать еще удобней, более классные
почему ты не хочешь, чтобы уровни рисовали лучше, чем 30+ лет назад? :mad:


8/16/24/32 и т.д. Никаких проблем - главное уметь рисовать.
никаких проблем не было у носорога, привыкшего думать, что плохое зрение - не его проблемы, и не заметившего браконьера с большим калибром
а твоя проблема в том, что ты однозначно ухудшаешь характеристики без каких-либо к тому оснований, и сам не понимаешь, к чему ведёшь
между прочим, по ссылке выше можно было посчитать кол-во тайлов 16x16 в RnT, так вот, их там на первый же уровень более 800
собирать из тайлов 8x8 (что само по себе лишняя возня) - нужно будет больше 3000 тайлов (и тебе уже тупо памяти не хватает)
то же самое касается карты уровня, 13 экранов в ширину, 9 в высоту - "хватит всем"? :D

Error404
03.08.2018, 12:13
Теперь надо уточнить с текстовыми режимами для CP/M. Текущее разрешение монитора 640х480 60 Hz. В графике 320х240 строки VGA дублируются и две точки рядом одинаковые. В текстовом режиме для знакогенератора будут достпуно разрешение VGA 640 x 480. Надо решить, размер символа, количество строк и символов в строке, адресацию байтов и атрибутов и т.п. Для упрощения схемы можно зашить шрифт во FLASH.

Предлагаю знакоместо 8х16 точек и соответственно экран 80х30 символов, что позволит иметь штатные для CP/M 80х25 символов. Остальные 5 строк можно будеть использовать на строки состояния (те же РУС/ЛАТ/CAPS/кодировку отображать) или оконные меню (например от резидентных программ), или что-то подобное от интерфейса гипервизоров (например для переключения задач в MPM - что-то типа таскбара), или отдать все 80х30 под терминал (например в UZIX).

Знакогенератор на 256 символов с возможностью загрузки знгакогенератора (т.е. ОЗУ), либо {что попроще аппаратно} с переключением константных наборов символов (т.е. ПЗУ с переключением регистром старших адресов - чтобы был выбор набора символов).

Как вариант (если это не сильно сложно), предусмотреть 2 режима знакоместа - 8х16 (экран 80х30 символов) и 8х8 (экран 80х60 символов), где 8х8 удобен для псевдографических игр (имея что-то типа чанков в одном из наборов знакогенератора)

zx-kit
03.08.2018, 16:34
Принцип вывода фона аппаратно-тайловым способом.

Фон конструируется как в игре Майнкрафт из кубиков. Не надо рисовать целый дом с нуля. Можно его построить из кирпичей. Также забор сколачивается из кусочков-тайлов. Все изображение строится из заранее нарисованных тайлов в конструкторе уровней. Затем изображение всего уровня преобразуется в область тайлов и область карты. Тайлы нумеруются двумя байтами и в карту уровня записываются соответствующие номера.

Для отображения на экране монитора текущего места уровня надо в регистры записать координаты левого верхнего угла окна с точностью до точки. Во время отображения верхней границы экрана в счетчики точек по-вертикали записывается координата Y на карте. Во время отображения левой границы экрана в счетчики точек по-горизонтали записывается координата X на карте. Счетчик по-горизонтали считает импульсы частотой 12,6 MHz.

Надо две микросхемы памяти для карты уровня (256К х 16) и тайлов (512К х 8).
В карте уровня находятся двухбайтные номера тайлов.
Размер карты уровня 512 х 512 тайлов.
Если размер тайла 8 х 8 точек, то будет 8192 разных тайлов.
Если размер тайла 16 х 16 точек, то будет 2048 разных тайлов.


почему 8? почему не 2, 4 или 16? или вообще без кратности? ОБЪЕКТИВНЫЕ причина сможешь назвать?
а не "потому что везде так было в ретрокомпьютерах" (как я показал выше, вовсе не везде было так)

между прочим, по ссылке выше можно было посчитать кол-во тайлов 16x16 в RnT, так вот, их там на первый же уровень более 800
собирать из тайлов 8x8 (что само по себе лишняя возня) - нужно будет больше 3000 тайлов (и тебе уже тупо памяти не хватает)
то же самое касается карты уровня, 13 экранов в ширину, 9 в высоту - "хватит всем"? :D
Если размер тайла 2 в степени N: 4/8/16/32 можно автоматически определить адрес отображаемой в данный момент точки. Размер 8x8 был выбран как минимальный размер для буквы. Можно добавить мультиплексор для переключения на размер 16х16 для упрощения рисования фона.

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

Lethargeek
03.08.2018, 18:35
Принцип вывода фона аппаратно-тайловым способом.

Фон конструируется как в игре Майнкрафт из кубиков. Не надо рисовать целый дом с нуля. Можно его построить из кирпичей.
угу, а из панелей строить куда удобней, а еще можно монолит в опалубку отливать
ты нам про устройство ног не рассказывай, а ЗАЧЕМ СОБАКЕ ПЯТАЯ НОГА, объясни-ка

громоздить вот эти все "упрощения":

Надо две микросхемы памяти для карты уровня (256К х 16) и тайлов (512К х 8).
В карте уровня находятся двухбайтные номера тайлов.
Размер карты уровня 512 х 512 тайлов.
Если размер тайла 8 х 8 точек, то будет 8192 разных тайлов.
Если размер тайла 16 х 16 точек, то будет 2048 разных тайлов.

Можно добавить мультиплексор для переключения на размер 16х16 для упрощения рисования фона.
когда блиттер успевает отрисовать И спрайты, И фон из плиток произвольных (!) форм, размеров и номеров!



Если размер тайла 2 в степени N: 4/8/16/32 можно автоматически определить адрес отображаемой в данный момент точки.
ну полный бред же :v2_dizzy_facepalm:
с аппаратными тайлами адрес пикселя в принципе не нужен (шаг равен тайлу)
а с блиттером или программным движком можно себе выбрать любой размер


Размер 8x8 был выбран как минимальный размер для буквы.
да зачем вообще какой-то минимальный размер для буквы?!
и, если уж на то пошло, зачем делать буквы одинакового размера?
когда блиттер мог бы даже пропорциональные шрифты легко выводить
причём проще, чем в аппаратных текстовых режимах, для программиста

zx-kit
04.08.2018, 06:18
объясни-ка громоздить вот эти все "упрощения": когда блиттер успевает отрисовать И спрайты, И фон из плиток произвольных (!) форм, размеров и номеров! Посчитай сколько целых тайлов 16х16 надо отобразить на экране: 20х14=280, а при движении еще куча кусочков по краям. Ты предлагаешь определять процессором координаты каждого тайла ? Это совсем не просто. Хотя процессор справится.

Но при аппаратно-тайловом способе ничего этого не надо. Один раз при движении фона надо записать координаты левого верхнего угла окна. Вот это просто. Или ты считаешь, что при рисовании блиттером карта уровня и память тайлов будут меньше или они совсем не нужны ?
ну полный бред же :v2_dizzy_facepalm: с аппаратными тайлами адрес пикселя в принципе не нужен (шаг равен тайлу) а с блиттером или программным движком можно себе выбрать любой размер Для аппаратно-тайлового способа изображения фона определение адреса точки - это основная задача схемы. Вычислить адрес точки, где записан номер цвета. А ты говоришь не нужен !
да зачем вообще какой-то минимальный размер для буквы?! и, если уж на то пошло, зачем делать буквы одинакового размера? когда блиттер мог бы даже пропорциональные шрифты легко выводить причём проще, чем в аппаратных текстовых режимах, для программиста Шрифты мы обсудим при разработке операционной системы "SCROLLS" для нового компьютера. Вот ты все пишешь про изображение фона блиттером с тайлами произвольного размера. Это возможно.

Но опиши процесс разработки уровня, как хранить изображения объектов, как описать где-какой объект. как определять координаты объектов.

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

Для спрайтового способа даже при одинаковых спрайтах нужны расчеты координат.

Lethargeek
05.08.2018, 16:40
Посчитай сколько целых тайлов 16х16 надо отобразить на экране: 20х14=280, а при движении еще куча кусочков по краям. Ты предлагаешь определять процессором координаты каждого тайла ?
чукча не читатель? я предлагал:

и в чём проблема? тут процессор как раз не нужен
вывел блок, приплюсовал смещение к адресу

Но при аппаратно-тайловом способе ничего этого не надо. Один раз при движении фона надо записать координаты левого верхнего угла окна. Вот это просто.
см. выше - с блиттером ничего этого не надо. Один раз при движении фона надо записать координаты левого верхнего угла окна. Дальше блиттер сам. Это просто.


Или ты считаешь, что при рисовании блиттером карта уровня и память тайлов будут меньше или они совсем не нужны ?
не нужны: физически отдельно в отдельной памяти, с жёстко заданными размерами и лимитами, в обязательном определённом формате


Для аппаратно-тайлового способа изображения фона определение адреса точки - это основная задача схемы. Вычислить адрес точки, где записан номер цвета. А ты говоришь не нужен !
нечего там ВЫЧИСЛЯТЬ такого страшного, не тупи! адрес точки это адрес начала тайла + для всех тайлов одинаковое смещение


Но опиши процесс разработки уровня,
"разработка уровня" это что? если про формат карты, то он никак не должен быть привязан к отображению (см. ниже)


как хранить изображения объектов,
массивы пикселей + дескрипторы блоков (на один массив мб несколько)


как описать где-какой объект. как определять координаты объектов.
в смысле "где"? какие "координаты"? "потрудитесь излагать ваши мысли яснее!" (c)


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

Totem
06.08.2018, 11:04
Процессор Z80 на 6 MHz в корпусе DIP-40 на отдельном модуле с генератором на кварце 12 MHz, делителем до 6 MHz, подтяжкой шины данных к +5V. 8 резисторов по 10К. На этом же модуле надо поставить буферы шин адреса и управления. Возможно для шины данных тоже. Надо уточнять схему.

Основное ОЗУ на отдельном модуле. В базовом варианте 2 микросхемы SRAM по 32 К в корпусах DIP-24.

ВидеоОЗУ, ОЗУ символьного экрана, возможно ОЗУ палитры, FLASH знакогенератора на материнской плате.

Арбитра шины как в ZX-BUS не будет. Чтобы избежать конфликтов на шине данных каждый модуль соединяется с шиной данных защитными резисторами по 470 Ом. За каждым устройством закрепляется определенный адрес с полной дешифрацией младшего байта. Порт FE наверно останется как у Спектрума для совместимсти. Возможно AY, КEMPSTON тоже.

AY + BEEPER на отдельном модуле. Вместо AY лучше поставить микросхему MP3.

Для расширения ОЗУ через окно 0000-3FFF будет новый регистр номера страницы. Возможно как в ATM или другом компьютере.

При установке Z80 на другую частоту надо поменять кварц и делители. Если в другом корпусе, то надо делать новый модуль процессора.

Корпус MIDI ATX c 7 отверстиями для модулей.

Вместо картриджа можно будет поставить обычное ПЗУ BASIC в таком же картридже, т.е. ПЗУ внешнее, сменное. Для загрузки игр не надо будет никаких нажатий кнопок - просто включить питание компьютера. Разъем для картриджа типа SL-40 на передней панели корпуса.
https://farm1.staticflickr.com/925/43018666222_a02063e998_o.gif

zx-kit
02.06.2019, 15:07
Для реализации быстрого рисования нужно оптимизировать параметры тайлов фона. Оставить 15 цветов без палитры как в ZX Spectrum. В одном байте будет 2 точки по 4 бита. Точки байта располагать вертикально.

Такой выбор имеет следующие плюсы:

Цвета будут узнаваемы, останется ощущение ретро.
Экономится память тайлов.
4 бита проще преобразовать в аналоговый сигнал на SCART.
Можно использовать имеющийся видеоконвертер VGA&PAL для подключения монитора VGA.
Рисовать в буфер экрана можно сразу по 2 точки. При этом память можно использовать 8-битную.

Размер тайла 16x16 точек. Достаточно хороший размер. С ним работать можно. Не стоит усложнять с произвольными размерами. Из этих тайлов рисуем уровень. Каждый тайл нумеруем двумя байтами. Загружаем карту уровня и память тайлов. В карте можно разместить сразу несколько планов и куски фона для эффекта параллакса. Чтобы нарисовать фона указываем блиттеру прямоугольное окно в карте уровня и координаты в буфере. Блиттер это накладывает, затирая предыдущее изображение в буфере. Так в буфере рисуем дальний план, затем блиттером рисуем спрайты, затем накладываем передний план. После прихода прерывания от INT блиттером копируем требуемую прямоугольную область из буфера на экран.

zx-kit
25.04.2020, 17:52
4 ВАРИАНТ. ИДЕАЛЬНЫЙ ДОМАШНИЙ РАДИОЛЮБИТЕЛЬСКИЙ КОМПЬЮТЕР:

Идеальный домашний радиолюбительский компьютер должен быть на Z80 без БИС типа ВВ55 с линейным экраном.

По сравнию с советскими компьютерами у Спектрума был INT, BEEPER. Можно добавить русских кнопок. Для ускорения графики желательно два экрана по одному адресу.

Загрузка должна быть автоматическая после сброса. На каких ОС, мониторов , бейсиков, LOAD"NAME". Включил компьютер и он без вопросов и нажатия кнопок должен загрузить первую программу с магнитофона.

ROM-DISK с часто используемыми программами.

У портов полная дешифрация младшего адреса. Никаких двухбайтовых адресов, упрощенной дешифрации или размещения портов в адресном пространстве.

В ПЗУ минимальная программа LOADER. Остальное грузится с ROM диска или с магнитофона.

ПЗУ отключаемое программно.

Адреса всех портов однобайтовые.

Должен быть встроенный порт джойстика - курсор и 4 кнопки. Одной мало.

Рисовать сразу по 8 точек (выборочно по значению записываемого байта) текущим цветом. Для этого надо память с независимой адресацией точки. 8 микросхем SRAM. По 4 бита на точку. 16 цветов. Тогда рисовалось бы быстро и без клешинга.

Нафик AY c колокольчиками. Лучше многоканальный BEEPER с автоматическим проигрыванием фрагментов звуков.

Ещё лучше General Midi с настоящими звуками вместо AY.

Идеальный компьютер должен уметь читать состояние нескольких нажатых кнопок. Клавиатура должна быть выносная. Совместимая по английским буквам со Спектрумом.

И конструкция компьютера должна быть, конечно, модульная на импортных разъёмах DIN-64.

Проще Z80 нет. Простые схемы, простые программы.

Нужно простое подключение к монитору VGA 640*480@60Hz. Вполне подходит графический режим 320*240.

Надо разработать домашний радиолюбительский компьютер уровня Радио-86РК, Специалист, Орион, Ленинград, ЮТ-88, БК, ПК8002 Эльф, Atari, Commodore 64 и т.п.

Но лучше! На основе сегодняшних знаний! Подходящий для игр.

Восемь микросхем 32К * 8 позволят разместить два экрана 320 * 240 * 8бит.

OrionExt
25.04.2020, 17:59
PDP пердуны со стальными анусами будут рассказывать о важности их архитектуры. Предприимчивые на PDP теме косить капусту при любом случаи.

А тем временем мир изменился.

zx-kit
25.04.2020, 18:13
По новой идее ПЗУ, дополнительное ОЗУ, экраны, ROM - диски и другие устройства с памятью должны подключаться через окно 16 Кбайт с адреса 0.

При этом для чтения и записи нужны разные регистры для номера устройства и номера страницы. Это позволит в одном окне копировать данные из одного устройства в другое.

Например, рисование спрайта из ROM-диска на экран командой LDIR.