Попытаюсь объяснить ещё раз - доступ внешнего устройства к внутренней видеопамяти усложняет всё неимоверно - напомню, что к видеопамяти обращается не только центральный процессор спектрума (чтение и запись), но и видеоконтроллер (только чтение), который формирует картинку на телевизоре - соответственно эту самую ардуину надо будет как-то вкорячить по тактам так, чтобы она не мешала видеоконтроллеру, который в отличие от процессора остановить нельзя (иначе формирование видео исчезнет и картинка на телеке пропадёт).Santa wrote: Мне почему-то кажется, что ничего сложного не должно быть. Организовать порт и реализовать прямой доступ ардуинки к видеопамяти. Единственно, по тактам придётся втиснуться, чтобы не сильно замедлялась работа остального добра.
Графический "сопроцессор" на ардуино - реально ли?
Moderator: Shaos
-
- Admin
- Posts: 24080
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Графический "сопроцессор" на ардуино - реально ли?
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Графический "сопроцессор" на ардуино - реально ли?
Мне кажется, вы очень жестко ставите задачу, хотя я для "Специалиста" тоже хотел именно так.Santa wrote:Окружности, линии, треугольники с/без заливкой, можно спрайты заранее подгруженные.Shaos wrote:Ведь задача "нужно быстро нарисовать окружность"
Чтобы освободить проц от большинства нагрузки на графику, не потерять совместимость с уже имеющимися программами, очень быстро рисовать графику. При этом чтобы по минимуму модифицировать сам Спектрум, не добавляя ничего в его ПЗУ, не сложнее подключения AY.

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

iLavr
-
- Novelist
- Posts: 25
- Joined: 18 Feb 2006 08:19
Re: Графический "сопроцессор" на ардуино - реально ли?
Изменю вопрос:Lavr wrote:Со старой памятью и не меняя кардинально схемы, боюсь, ничего путного не получится...
Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?
Чтобы ардуина могла брать оттуда и класть туда данные?
Это хотя бы реально, раз с видеопамятью такая засада?
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Графический "сопроцессор" на ардуино - реально ли?
Если у Вас обычный старый Спектрум, а не современный новодел со статической памятью, то в нёмSanta wrote:Изменю вопрос:
Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?
Чтобы ардуина могла брать оттуда и класть туда данные?
Это хотя бы реально, раз с видеопамятью такая засада?
установлена динамическая память. Эта память, даже если она физически разделена на видеопамять
и не-видео-память, регенерируется всё теми же счетчиками его видеоконтроллера.
В связи с этим лезть ардуиной в память древнего Спектрума с динамической памятью мне представляется
задачей достаточно сложной, и поэтому набросать такую схемку я не возьмусь.
Это ничего не меняет в плане сложности: видеопамять или не-видео-память...
iLavr
-
- Admin
- Posts: 24080
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Графический "сопроцессор" на ардуино - реально ли?
В большинстве клонов ОЗУ общее - и для видеопамяти и для не-видеопамяти...Santa wrote:Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Novelist
- Posts: 25
- Joined: 18 Feb 2006 08:19
Re: Графический "сопроцессор" на ардуино - реально ли?
Теперь понятно, спасибо.Lavr wrote:В связи с этим лезть ардуиной в память древнего Спектрума с динамической памятью мне представляется
задачей достаточно сложной, и поэтому набросать такую схемку я не возьмусь.
Жаль.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Графический "сопроцессор" на ардуино - реально ли?
Я просто помню, что у какой-то модели было 16К отдельно, а другая линейка отдельно.Shaos wrote:В большинстве клонов ОЗУ общее - и для видеопамяти и для не-видеопамяти...Santa wrote:Вы могли бы набросать схемку подключения ардуино к оперативной не-видео- памяти Спектрума?
Во времена начала ZX-Спектрум барыги продавали на рынке две линейки "целые" и "половинки".
Причем, если я правильно помню, при обращении к 16К с видеопамятью организовывалась
задержка процессора, а в остальную память он без задержки лез...
Но это никак не помогает облегчить ситуацию с вопросом топикстартера.
Висела-то вся память всё равно на одной шине.
iLavr
-
- Admin
- Posts: 24080
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Графический "сопроцессор" на ардуино - реально ли?
А что жаль то? Я вначале объяснил как это делают другие - надо просто сделать такжеSanta wrote:Теперь понятно, спасибо.Lavr wrote:В связи с этим лезть ардуиной в память древнего Спектрума с динамической памятью мне представляется
задачей достаточно сложной, и поэтому набросать такую схемку я не возьмусь.
Жаль.

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Графический "сопроцессор" на ардуино - реально ли?
Как ты объяснил, даже я сам не понял в чем смысл того варианта "графического сопроцессора".Shaos wrote:Я вначале объяснил как это делают другие - надо просто сделать также
По твоему объяснению быстрым микроконтроллером на внешней шине мы отслеживаем обращения
z80 к своей видеопамяти и дублируем его действия в специальной памяти микроконтроллера, из
которой сформирован видеовыход на современный VGA. Так?
Получается, что процессор z80 всё равно по-старому должен рисовать в видеопамяти - эту нагрузку
мы с него таким "графическим сопроцессором" не сняли. Я правильно твою мысль понял?

iLavr
-
- Admin
- Posts: 24080
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Графический "сопроцессор" на ардуино - реально ли?
Ну как не сняли? Сняли нагрузку - он же команды теперь внешнему "сопроцессору" подаёт и он всё рисует. Разве что Z80 теперь это нарисованное прочитать не сможет т.к. будет читать только свою видеопамять - тут как бы получается 2 слоя графики - одна родная спектрумовая и вторая внешняя, наложенная на спектрумовую - юзер видит на дисплее одно (графический план с 3D объектами, альфаканалом и т.д.) поверх другого (обычный спектрумовый экран).
По аналогичному принципу работает видеокарта для ZX-Spectrum, которая называется SPECTRA:
Примеры графики:
http://www.fruitcake.plus.com/Sinclair/Spectrum/Spectra/SpectraInterface_ScreenGallery.htm
По аналогичному принципу работает видеокарта для ZX-Spectrum, которая называется SPECTRA:
http://www.fruitcake.plus.com/Sinclair/Spectrum/Spectra/SpectraInterface.htmIts 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_ScreenGallery.htm
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Графический "сопроцессор" на ардуино - реально ли?
Ну я ж про это и говорю - обычный спектрумовый экран рисует всё тот же z80, как и былоShaos wrote:Ну как не сняли? Сняли нагрузку - он же команды теперь внешнему "сопроцессору" подаёт и он всё рисует. Разве что Z80 теперь это нарисованное прочитать не сможет т.к. будет читать только свою видеопамять - тут как бы получается 2 слоя графики - одна родная спектрумовая и вторая внешняя, наложенная на спектрумовую - юзер видит на дисплее одно (графический план с 3D объектами, альфаканалом и т.д.) поверх другого (обычный спектрумовый экран).
без графического сопроцессора. Но теперь z80 ещё и замедляется, отдавать команды графическому сопроцессору.
Я всё же как-то предполагал, что графический сопроцессор только получает команды от основного z80.
А сам z80 больше рисованием в видеопамяти не занимается.
iLavr
-
- Admin
- Posts: 24080
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Графический "сопроцессор" на ардуино - реально ли?
Ну z80 всё также пишет, а "сопроцессор" ловит - никакого противоречия в этом нет. И при этом никто никого не тормозит.
Просто проц обратно сможет прочитать только то, что записал в свою память, а не то, что на экране будет пользователю показываться.
Просто проц обратно сможет прочитать только то, что записал в свою память, а не то, что на экране будет пользователю показываться.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Графический "сопроцессор" на ардуино - реально ли?
Блин... мы как глухой и немой разговариваем...Shaos wrote:Ну z80 всё также пишет, а "сопроцессор" ловит - никакого противоречия в этом нет. И при этом никто никого не тормозит.

Я считаю, что если есть графический сопроцессор, то центральный процессор z80 больше
не должен писать в видео-ОЗУ и заниматься отрисовкой графики от слова СОВСЕМ!
Он должен только делать расчеты и выдавать команды графическому сопроцессору типа:
поставить точку (цвет, координаты),
нарисовать линию (цвет, координаты),
нарисовать круг (цвет, координаты),
нарисовать полигон (цвет, координаты), и т.п.
В этом случае сам центральный процессор z80 больше ничего не изображает в видео-ОЗУ.
Это я так считаю. В этом случае ото всех расчетов по вычислению точки в видео-ОЗУ, алгоритмов
Брезенхэма и т.п. центральный процессор z80 ОСВОБОЖДЁН!
iLavr
-
- Admin
- Posts: 24080
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Графический "сопроцессор" на ардуино - реально ли?
Ну для меня например очевидно, что новый видеовыход должен уметь выводить старую графику тоже (иначе как пользователь сможет запустить программу, использующую этот новый графический сопроцессор, если не сможет увидеть вводимые LOAD "" на новом дисплее) - поэтому и выходит, что надо ловить запись в обычную видеопамять имитируя обычный ZX-экран (таким образом даже получится например переделывать старые ZX-игры, постепенно добавляя в них новые слои новой графики поверх старой).
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Графический "сопроцессор" на ардуино - реально ли?
Так я тебе об этом и говорю, что ты, как и топикстартер, хотите поддерживать и старую графикуShaos wrote:Ну для меня например очевидно, что новый видеовыход должен уметь выводить старую графику тоже ...
и новые возможности, которые даст "сопроцессор".
А я хотел для "Специалиста" совсем другой графический сопроцессор, который бы совсем освобождал
бы центральный процессор от вывода графики.
Если ты хоть раз смотрел процедуру вывода точки в заданное место растрового экрана, то это весьма
непростая процедура. И её лучше поручить отдельному быстрому процессору.
Совместимости по всем программам, конечно же, не будет.
Но совместимость с программами на языке высокого уровня остаётся вполне.
Все эти PSET(...), LINE(...), BOX(...), CIRCLE(...) как и PRINT(...) можно сразу отдавать графическому сопроцессору.
В этом случае, я считаю, производительность поднимется значительно.
iLavr