nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 23 Jan 2022 12:39



Reply to topic  [ 47 posts ]  Go to page Previous  1, 2, 3, 4  Next
Графический "сопроцессор" на ардуино - реально ли? 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20079
Location: Silicon Valley
Reply with quote
Santa wrote:
Мне почему-то кажется, что ничего сложного не должно быть. Организовать порт и реализовать прямой доступ ардуинки к видеопамяти. Единственно, по тактам придётся втиснуться, чтобы не сильно замедлялась работа остального добра.

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

_________________
:eugeek: https://twitter.com/Shaos1973


29 Nov 2021 04:04
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Santa wrote:
Shaos wrote:
Ведь задача "нужно быстро нарисовать окружность"

Окружности, линии, треугольники с/без заливкой, можно спрайты заранее подгруженные.
Чтобы освободить проц от большинства нагрузки на графику, не потерять совместимость с уже имеющимися программами, очень быстро рисовать графику. При этом чтобы по минимуму модифицировать сам Спектрум, не добавляя ничего в его ПЗУ, не сложнее подключения AY.

Мне кажется, вы очень жестко ставите задачу, хотя я для "Специалиста" тоже хотел именно так. :wink:
У оригинального Спектрума 48, какой он у вас есть, память по нынешним меркам слишком медленная
и определённо медленная для поставленной вами задачи.

Здесь на форуме разрабатывался клон "Специалиста" на современной статической памяти - вот с ней
еще есть возможность всяких трюков "кто первым лезет в память".
Со старой памятью и не меняя кардинально схемы, боюсь, ничего путного не получится... :-?

_________________
iLavr


29 Nov 2021 08:54
Profile
Novelist

Joined: 18 Feb 2006 09:19
Posts: 25
Reply with quote
Lavr wrote:
Со старой памятью и не меняя кардинально схемы, боюсь, ничего путного не получится... :-?

Изменю вопрос:
Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?
Чтобы ардуина могла брать оттуда и класть туда данные?
Это хотя бы реально, раз с видеопамятью такая засада?


02 Dec 2021 13:58
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Santa wrote:
Изменю вопрос:
Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?
Чтобы ардуина могла брать оттуда и класть туда данные?
Это хотя бы реально, раз с видеопамятью такая засада?

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

Это ничего не меняет в плане сложности: видеопамять или не-видео-память...

_________________
iLavr


02 Dec 2021 16:29
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20079
Location: Silicon Valley
Reply with quote
Santa wrote:
Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?

В большинстве клонов ОЗУ общее - и для видеопамяти и для не-видеопамяти...

_________________
:eugeek: https://twitter.com/Shaos1973


02 Dec 2021 22:55
Profile WWW
Novelist

Joined: 18 Feb 2006 09:19
Posts: 25
Reply with quote
Lavr wrote:
В связи с этим лезть ардуиной в память древнего Спектрума с динамической памятью мне представляется
задачей достаточно сложной, и поэтому набросать такую схемку я не возьмусь.

Теперь понятно, спасибо.
Жаль.


03 Dec 2021 00:51
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Santa wrote:
Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?

В большинстве клонов ОЗУ общее - и для видеопамяти и для не-видеопамяти...

Я просто помню, что у какой-то модели было 16К отдельно, а другая линейка отдельно.
Во времена начала ZX-Спектрум барыги продавали на рынке две линейки "целые" и "половинки".
Причем, если я правильно помню, при обращении к 16К с видеопамятью организовывалась
задержка процессора, а в остальную память он без задержки лез...

Но это никак не помогает облегчить ситуацию с вопросом топикстартера.
Висела-то вся память всё равно на одной шине.

_________________
iLavr


03 Dec 2021 12:46
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20079
Location: Silicon Valley
Reply with quote
Santa wrote:
Lavr wrote:
В связи с этим лезть ардуиной в память древнего Спектрума с динамической памятью мне представляется
задачей достаточно сложной, и поэтому набросать такую схемку я не возьмусь.

Теперь понятно, спасибо.
Жаль.

А что жаль то? Я вначале объяснил как это делают другие - надо просто сделать также :)

_________________
:eugeek: https://twitter.com/Shaos1973


03 Dec 2021 16:22
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Я вначале объяснил как это делают другие - надо просто сделать также :)

Как ты объяснил, даже я сам не понял в чем смысл того варианта "графического сопроцессора".
По твоему объяснению быстрым микроконтроллером на внешней шине мы отслеживаем обращения
z80 к своей видеопамяти и дублируем его действия в специальной памяти микроконтроллера, из
которой сформирован видеовыход на современный VGA. Так?

Получается, что процессор z80 всё равно по-старому должен рисовать в видеопамяти - эту нагрузку
мы с него таким "графическим сопроцессором" не сняли. Я правильно твою мысль понял? :roll:

_________________
iLavr


03 Dec 2021 17:23
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20079
Location: Silicon Valley
Reply with quote
Ну как не сняли? Сняли нагрузку - он же команды теперь внешнему "сопроцессору" подаёт и он всё рисует. Разве что Z80 теперь это нарисованное прочитать не сможет т.к. будет читать только свою видеопамять - тут как бы получается 2 слоя графики - одна родная спектрумовая и вторая внешняя, наложенная на спектрумовую - юзер видит на дисплее одно (графический план с 3D объектами, альфаканалом и т.д.) поверх другого (обычный спектрумовый экран).

По аналогичному принципу работает видеокарта для ZX-Spectrum, которая называется SPECTRA:
Quote:
Its primary function is to allow the Spectrum to be connected to a TV via a SCART socket to produce an RGB picture that is sharp, bright and free from dot-crawl. ...... An exciting additional feature of the SPECTRA interface is its ability to extend the Spectrum’s display to support 64 simultaneous colours and at a variety of increased vertical and horizontal resolutions, resulting in a total of 32 different display modes. At long last, the limited colour abilities of the Spectrum can be overcome, opening the potential for new visually stunning programs. In its highest resolution mode, the smallest block of clash-free colour becomes just 1 pixel high by 2 pixels wide when using a basic 8 colour palette!

http://www.fruitcake.plus.com/Sinclair/Spectrum/Spectra/SpectraInterface.htm

Примеры графики:

http://www.fruitcake.plus.com/Sinclair/Spectrum/Spectra/SpectraInterface_ScreenGallery.htm


Attachments:
SPECTRA_BasicControl_Mode4.gif
SPECTRA_BasicControl_Mode4.gif [ 17.62 KiB | Viewed 553 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
03 Dec 2021 19:54
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Ну как не сняли? Сняли нагрузку - он же команды теперь внешнему "сопроцессору" подаёт и он всё рисует. Разве что Z80 теперь это нарисованное прочитать не сможет т.к. будет читать только свою видеопамять - тут как бы получается 2 слоя графики - одна родная спектрумовая и вторая внешняя, наложенная на спектрумовую - юзер видит на дисплее одно (графический план с 3D объектами, альфаканалом и т.д.) поверх другого (обычный спектрумовый экран).

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

Я всё же как-то предполагал, что графический сопроцессор только получает команды от основного z80.
А сам z80 больше рисованием в видеопамяти не занимается.

_________________
iLavr


03 Dec 2021 20:20
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20079
Location: Silicon Valley
Reply with quote
Ну z80 всё также пишет, а "сопроцессор" ловит - никакого противоречия в этом нет. И при этом никто никого не тормозит.
Просто проц обратно сможет прочитать только то, что записал в свою память, а не то, что на экране будет пользователю показываться.

_________________
:eugeek: https://twitter.com/Shaos1973


03 Dec 2021 22:27
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Ну z80 всё также пишет, а "сопроцессор" ловит - никакого противоречия в этом нет. И при этом никто никого не тормозит.

Блин... мы как глухой и немой разговариваем... :-?

Я считаю, что если есть графический сопроцессор, то центральный процессор z80 больше
не должен писать в видео-ОЗУ и заниматься отрисовкой графики от слова СОВСЕМ
!

Он должен только делать расчеты и выдавать команды графическому сопроцессору типа:
поставить точку (цвет, координаты),
нарисовать линию (цвет, координаты),
нарисовать круг (цвет, координаты),
нарисовать полигон (цвет, координаты), и т.п.

В этом случае сам центральный процессор z80 больше ничего не изображает в видео-ОЗУ.

Это я так считаю. В этом случае ото всех расчетов по вычислению точки в видео-ОЗУ, алгоритмов
Брезенхэма и т.п. центральный процессор z80 ОСВОБОЖДЁН!

_________________
iLavr


04 Dec 2021 10:18
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20079
Location: Silicon Valley
Reply with quote
Ну для меня например очевидно, что новый видеовыход должен уметь выводить старую графику тоже (иначе как пользователь сможет запустить программу, использующую этот новый графический сопроцессор, если не сможет увидеть вводимые LOAD "" на новом дисплее) - поэтому и выходит, что надо ловить запись в обычную видеопамять имитируя обычный ZX-экран (таким образом даже получится например переделывать старые ZX-игры, постепенно добавляя в них новые слои новой графики поверх старой).

_________________
:eugeek: https://twitter.com/Shaos1973


04 Dec 2021 15:02
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Ну для меня например очевидно, что новый видеовыход должен уметь выводить старую графику тоже ...

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

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

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

Совместимости по всем программам, конечно же, не будет.
Но совместимость с программами на языке высокого уровня остаётся вполне.
Все эти PSET(...), LINE(...), BOX(...), CIRCLE(...) как и PRINT(...) можно сразу отдавать графическому сопроцессору.
В этом случае, я считаю, производительность поднимется значительно.

_________________
iLavr


04 Dec 2021 16:05
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 47 posts ]  Go to page Previous  1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.