nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 03:20



This topic is locked, you cannot edit posts or make further replies.  [ 108 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next
Великий долгострой nedoSprinter 

Как назвать железяку, чтобы юзеры потянулись?
Zprint 8%  8%  [ 1 ]
Zpring 17%  17%  [ 2 ]
Zprinx 8%  8%  [ 1 ]
Неважно т.к. ничего не получится 17%  17%  [ 2 ]
А мне пофиг 33%  33%  [ 4 ]
Названия в опросе - полная лажа 17%  17%  [ 2 ]
Total votes : 12

Великий долгострой nedoSprinter 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Post 
Shaos wrote:
Shaos wrote:
На ATM2+ тоже были 320x200 и даже 640x200 :)
Там правда намутнено со спектрумовыми экранами и порезано фиг знает каким образом - однако оно там есть ;)
Теоретически можно сэмулировать программно...

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

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

_________________
:dj: https://mastodon.social/@Shaos


30 May 2013 17:23
Profile WWW
Senior
User avatar

Joined: 09 Aug 2012 11:20
Posts: 176
Location: 95.135.174.189
Post 
Молчание знак согласия!
А хватит ног у пика?

_________________
Хочу стать всезнайкой ;-)


31 May 2013 01:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Post 
He3HauKo wrote:
Молчание знак согласия!
А хватит ног у пика?


Ну большой поставить - 40 ногий.
Если что можно добавить внешних регистров.
У пиков есть режим PSP (Parallel Slave Port) - когда часть ног становится 8 сигналами данных и тремя сигналами управления - /CS, /WR и /RD.
При записи в такой "интеллектуальный" порт, значение будет немедленно сохранено во внутреннем регистре, а снаружи будет вызвано внутреннее прерывание (если настроено правильно), вызывающее программу-обработчик - таким образом добиваемся быстрой (и надёжной) реакции на запись в порт (или виртуальную ячейку памяти) - вобщем как-то так...

_________________
:dj: https://mastodon.social/@Shaos


31 May 2013 02:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Post 
Shaos wrote:
Хотя может и не стоит замахиваться сразу на 800x600, а начать с "EGA on VGA" 640x350 с пиксельклоком 25.175 MHz?...

P.S. 640x400 и 640x480 тоже можно по ходу поддержать, т.к. у них пиксельклок тот же

P.P.S. Пока пожалуй остановлюсь на 640x350@70 и 640x400@70, тогда вместо вот этих режимов:
Quote:
- text 40x32 with 16 colors (mode 02h);
- text 80x32 with 16 colors (mode 03h);
- graphic 320x256 with 256 colors (mode 81h);
- graphic 640x256 with 16 colors (mode 82h).

вводятся вот такие (жирным выделены программно "совместимые" со старым Спринтером):
Quote:
#01 - Text 80x35 with 16 colors and characters 8x10 (640x350);
#02 - Text 40x32 with 16 colors and characters 8x10 - emulated by #01 or #84 (640x350);
#03 - Text 80x32 with 16 colors and characters 8x10 - emulated by #01 or #84 (640x350);
#04 - Text 80x40 with 16 colors and characters 8x10 (640x400 - future?);
#80 - Hybrid mode with graphics on top and text on bottom of screen 640x400 (future?);
#81 - Graphics 320x256 with 256-color palette - emulated by mode #85 with offset 50;
#82 - Graphics 640x256 with 16 colors - emulated by mode #84 with offset 50;
#83 - Graphics 320x200 with 256-color palette and 2 pages (top and bottom);
#84 - Graphics 640x350 with 16 colors and 7 configurable zones;
#85 - Graphics 320x350 with 256-color palette and 7 configurable zones;
#86 - Graphics 640x400 with 16 colors;
#87 - Graphics 320x400 with 256-color palette.



Подкорректировал текстовые режимы - настоящим текстовым режимом пока будет только #01 (в случае аппаратной реализации) либо #84 (в случае эмуляции). Текст и атрибуты будут располагаться в незадействованной в режиме 640x350 восьмой графической странице - 8000 байт текста и 8000 байт атрибутов (области идут друг за другом или вперемешку как на спринтере?), т.е. всего там может уместиться 100 строк по 80 символов - думаю имеет смысл сделать скрол и перемотку назад (в случае командной строки) именно через этот буфер. Также чтобы сымитировать спринтеровские 80x32 и досовские 80x25 надо будет иметь возможность указывать не только смещение внутри буфера, но и размер видимой области в строках, а также вертикальное смещение в пределах экрана.

_________________
:dj: https://mastodon.social/@Shaos


02 Jun 2013 09:14
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Post 
Я пожалуй отпочкую сообщения про видео-контроллер как таковой, т.к. его не только в клоне Спринтера можно будет заюзать...

Пусть это будет nedoVGA :roll:

P.S. Отпочковал: http://www.nedopc.org/forum/viewtopic.php?t=10318

_________________
:dj: https://mastodon.social/@Shaos


03 Jun 2013 17:10
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Post 
Вот в этой беседе 2005 года очень многое перекликается со Zpring:

http://zx.pk.ru/showthread.php?t=535

И самое интересное, что большинство беседующих - тогдашние обитатели нашего nedoPC-форума :)

_________________
:dj: https://mastodon.social/@Shaos


23 Jun 2013 23:48
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Вобщем концепция изменилась - я наконец понял, что процессор Z180 совсем не подходит для Sprinter-совместимого компьютера т.к. он имеет совсем левый MMU, который маппит 1 Мб памяти невесть как, а также этот проц не поддерживает недокументированные команды Z80 и имеет свой набор внутренних портов, что может помешать работать с внешними портами. По поводу графики - если поддерживать модель смешанных режимов как на Спринтере, чтобы каждая клетка 8х8 (или 16x8) могла быть текстовой либо графической, то надо отталкиваться от его оригинальной структуры видеопамяти:

Image

Для того, чтобы можно было охватить больше пикселов по вертикали (вплоть до 640x480), надо снизу приделать ещё 256 Кб видеопамяти (собственно как и предполагалось в Sp2000 изначально), тогда вертикальный размер будет достигать 512 пикселов, соединив которые в кольцо можно будет делать вертикальный скролл. Горизонтальный скрол будет выполняться в кольце на 640 байтов, а системные поля справа будут оставаться нетронутыми (и в нижней полоске многое станет "Free area" т.к. аппаратура всё также будет брать фонты и палитры из первых 256 Кб):

Attachment:
vramsys-zpring.jpg
vramsys-zpring.jpg [ 30.33 KiB | Viewed 7219 times ]


Image Image Image

P.S. С другой стороны в ZX-режиме Спринтера вся графика смещалась вправо вплоть до вертикали 703:

Image

соответственно горизонтальный скроллинг можно делать в пределах этих самых 704 байтов (что значит 0x2c0 будет превращаться в 0x000 при прохождении через границу, замыкая графику в кольцо по горизонтали):
Code:
10 1011 1110 = 702
10 1011 1111 = 703
10 1100 0000 = 704 -> 0

кольцо же по вертикали беспроблемно будет замыкаться само путём перебирания всех 9 битов:
Code:
1 1111 1111 = 511
0 0000 0000 = 0

Правда при этом "Screen Description Area" должна будет расшириться...

P.P.S. Эта самая "Screen Description Area" превращается на Спринтере в текстовый экран при переключении в текстовый режим - каждые 4 байта представляют знакоместо и байты 1 и 2 (т.е. средние два из четырёх) описывают код символа и атрибут соответственно (в атрибуте младшие 4 бита - цвет символа, далее 4й,5й и 6й биты - цвет фона, не уверен по поводу старшего 7го бита). Текст в этой зоне лежит как бы на боку и строка графической памяти представляет из себя столбик букв, состоящий из 40 знакомест - значит теоретический предел текстового режима 80x40 или 320 пикселов по вертикали (сейчас там ещё и синхросигналы расположены), но если расширить эту зону до палитр, то максимальная высота представления текста составит 56 строк или 448 вертикальных точек - что почти соответствует полной высоте кадра сигнала VGA для 350 и 400 видимых строк (по стандарту там 449 линий вместе с отступами и синхросигналами). Судя по моему эмулятору, левый столбик букв почему-то начинается с 129й строки и дальнейшие строки вниз представляют из себя столбики текста идущие слева-направо.

P.P.P.S. На самом деле в графическом режиме зона шрифтов по идее тоже может быть задействована как обычная видеопамять - т.е. графические экраны можно растянyть вплоть до 767й колонки ( 0x2FF= 10 1111 1111 ):

Image

P.P.P.P.S. Однако в этом случае при переключении между текстовым и графическим экраном придётся зону шрифтов подменять обратно... оказалось, что DSS это уже делает сам при каждом включении текстового режима

_________________
:dj: https://mastodon.social/@Shaos


07 Dec 2020 19:43
Profile WWW
Maniac

Joined: 05 Oct 2009 19:44
Posts: 223
Location: 212.164.105.5
Скролл на стоке сделать не то, чтобы не возможно - скролироваться будет небольшой участок. есть демка которая это наглядно демонстрирует. при этом скролл возможен только кратно 8 или 16 точек. а нам надо попиксельно. сток на это не способен.
второй момент тоже интересен - вариант использования видеопамяти в качестве backбуффера. т.е. включили режим 320на256. там два экрана - 0й и 1й. выстроены последовательно друг за другом. ок. это удобно. было бы ещё удобнее иметь ещё две копии этих экранов для back буфера, чтобы простыми операциями акселя, не прибегая к переключениям озу постранично, кидать данные фона (слоя) в этот буфер.


07 Dec 2020 23:41
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Что за демка? Да - я тоже хотел 8 пикселов сделать скролл для начала
Но если FPGA достаточно большой, то можно в нём нахимичить чтобы попиксельно
И копирование в пределах видеопамяти акселем само собой - тайлы/спрайты в неиспользуемых областях

_________________
:dj: https://mastodon.social/@Shaos


08 Dec 2020 00:26
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Вобщем снова идём по режимам и переосмысливаем (жирным выделены старые режимы Спринтера):

#01 - Mixed Mode 640x350 (???);
#02 - Text 40x32 with 16 colors and characters 8x8 - emulated by #01 (640x350) with offset;
#03 - Text 80x32 with 16 colors and characters 8x8 - emulated by #01 (640x350) with offset;
#04 - Text Mode 80x50 with 16 colors and characters 8x8 (640x400 - no scrolling);
#05 - High-Quality Text Mode 80x35 with 16 colors and characters 8x10 (640x350 - no scrolling); \
#06 - High-Quality Text Mode 80x40 with 16 colors and characters 8x10 (640x400 - no scrolling); - Future
#07 - High-Quality Text Mode 80x48 with 16 colors and characters 8x10 (640x480 - no scrolling); /

#80 - Graphics 368x288 with 256-color palette and compatible with mode #81 page 0 (???);
#81 - Graphics 320x256 with 256-color palette (over 640x350 - emulated by mode #C1 with offset 48);
#82 - Graphics 640x256 with 16 colors (over 640x350 - emulated by mode #C2 with offset 48);
#83 - Graphics 352x280 with 256-color palette and 4 pages (no scrolling);
#84 - Graphics 704x280 with 16-color palette and 4 pages (no scrolling);
#85 - Graphics 384x512 with 256-color palette and 2 pages (over 800x600 with border???); - Future
#86 - Graphics 768x512 with 16-color palette and 2 pages (over 800x600 with border???); - Future


#C1 - Graphics 320x350 with 256-color palette, horizontal and vertical scrolling;
#C2 - Graphics 640x350 with 16 colors with horizontal and vertical scrolling;
#C3 - Graphics 320x400 with 256-color palette, horizontal and vertical scrolling; - Future
#C4 - Graphics 640x400 with 16 colors, horizontal and vertical scrolling; - Future
#C5 - Graphics 640x480 with 16 colors, horizontal and vertical scrolling. - Future


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

P.S. Вот ещё один пример экрана 640x256 показанного в 640x350 с чёрными полосами сверху-снизу и растянутого к соотношению сторон 16:9:

Attachment:
desktop640x350.jpg
desktop640x350.jpg [ 45.29 KiB | Viewed 7125 times ]

Тут чёрный квадрат был квадратным когда 640x256 были растянуты в 16:9, а белый квадрат - реально квадратный в нативном разрешении...

P.P.S. А вот как могло бы выглядеть полное занимание 640x350 в соотношении сторон 16:9 (пропорции иконок также поправлены):

Attachment:
desktop640x350full.jpg
desktop640x350full.jpg [ 47.13 KiB | Viewed 7089 times ]


P.P.P.S. Возможные порты для работы с экраном (жирным выделен старый функционал):

#89 - порт куда пишем номер текущей строки с номером от 0 до 255 (как и раньше)
#8A - порт куда пишем номер текущей строки с номером от 256 до 511 (пишем туда Y-256)
#8B - порт куда пишем номер 16-строчного блока для работы через окно (0...31)

#C9 - порт где можно быстро переключить экран в 256-строчном режиме (0,1,2,3)
#CA - младший байт горизонтального смещения экрана (сохраняется в буферном регистре)
#CB - старший байт горизонтального смещения экрана (запись обоих байтов в 10-битный регистр горизонтального смещения)
#CC - младший байт вертикального смещения экрана (сохраняется в буферном регистре)
#CD - старший байт вертикального смещения экрана (запись обоих байтов в 9-битный регистр вертикального смещения)
#CE - высота чёрной зоны сверху
#CF - высота чёрной зоны снизу

P.P.P.P.S. Наверное номера режимов со скролом надо будет убрать в новую область - скажем в #Cx т.к. они будут совсем другие (никаких клеточек-квадратиков и микса с текстовыми режимами) - убрал

_________________
:dj: https://mastodon.social/@Shaos


10 Dec 2020 01:49
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Shaos wrote:
Наверное номера режимов со скролом надо будет убрать в новую область - скажем в #Cx т.к. они будут свосем другие (никаких клеточек-квадратиков и микса с текстовыми режимами)
Что-то я думаю, что в моём будущем недо-спринтере ВООБЩЕ не должно быть этих клеточек-квадратиков (как и спектрумовского режима)! Соответственно и в эмуляторе тоже!
Я тут начал задумываться, а почему собственно никто (кроме самого Ивана) НИКОГДА не использовал всю массу возможностей, которые дают эти клеточки-квадратики?
Возможно у фирмы ПетерcПлюс был план - используя существующую софт-кору превратить Спринтер в более-менее классический компьютер с линейной адресацией видеопамяти?
Именно поэтому они продвигали только тот софт, который использовал "классический" подход - переключаем видеорежим и линейно пишем в видеопамять без всяких эзотерических хитростей...

_________________
:dj: https://mastodon.social/@Shaos


22 Dec 2020 07:03
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Shaos wrote:
Возможно у фирмы ПетерcПлюс был план - используя существующую софт-кору превратить Спринтер в более-менее классический компьютер с линейной адресацией видеопамяти?
Именно поэтому они продвигали только тот софт, который использовал "классический" подход - переключаем видеорежим и линейно пишем в видеопамять без всяких эзотерических хитростей...

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

Так было сделано в ЭВМ Т3-29, и это очень ускоряет вывод на экран! :kruto:
Мне даже несколько странно всю жизнь, что после Т3-29 я такого нигде не видел... :-?

_________________
iLavr


22 Dec 2020 08:21
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Ну аппаратный текстовый режим для слабой машины нужен - не спорю, но прямолинейный, а не такой, где можно настроить любой квадратик так, чтобы он читал своё содержимое откуда угодно

_________________
:dj: https://mastodon.social/@Shaos


22 Dec 2020 09:47
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Shaos wrote:
Ну аппаратный текстовый режим для слабой машины нужен - не спорю, но прямолинейный, а не такой, ...

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

И раз уж ты пишешь:
Shaos wrote:
я думаю, что в моём будущем недо-спринтере ВООБЩЕ не должно быть этих клеточек-квадратиков (как и спектрумовского режима)! Соответственно и в эмуляторе тоже!
То, может быть, сразу и ускорить самую тормозную часть - видеоадаптер?

_________________
iLavr


22 Dec 2020 12:40
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Ну видеоадаптер там вроде живёт своей жизнью в своей собственной памяти плюс там есть акселератор который средствами Альтеры умеет копировать вертикали и горизонтали до 256 байт со скоростью 7 миллионов байт в секунду

_________________
:dj: https://mastodon.social/@Shaos


22 Dec 2020 15:43
Profile WWW
Display posts from previous:  Sort by  
This topic is locked, you cannot edit posts or make further replies.   [ 108 posts ]  Go to page Previous  1 ... 4, 5, 6, 7, 8  Next

Who is online

Users browsing this forum: No registered users and 5 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.