PDA

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



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

zx-kit
27.12.2017, 19:13
Когда-то давно я переделал игру ZOO от Специалиста на Радио-86РК. Графика заменялась на переключаемый шрифт с тайлами игры. Появилась идея сделать в новом компьютере символьный режим с загружаемыми шрифтами с регулируемой шириной 4-16 точек и выводом на монитор VGA NHD 640*360.

Это позволит запускать после доработки мониторы Радио-86РК, Орион-128, Специалист, IS-DOS, CPM для быстрого вывода текста на VGA монитор.

По видеокарте найдены оптимальные по возможностям, сложности и скорости режимы. Решено отображать одновременно символьный и графический режимы с разрешением 640*360 точек. Символьный режим с аппаратным скроллингом позволит быстро выводить текст и фон из тайлов в играх. Графический режим имеет блиттер для быстрого рисования следующего кадра игры и два переключаемых буфера для устранения мерцаний. В каждом режиме точки могут располагаться на двух уровнях. При этом чередуются символьные и графические уровни, у каждого уровня свои палитры. Для экономии места под тайлы и спрайты в одном байте располагается две точки.

Символьный режим имеет размер буфера 256 строк по 256 символов. Символы отображаются автоматически из буфера символов. Скроллинг с шагом 2 точки. Для скроллинга указать начало окна - номер первой строки и столбца в буфере, первой строки и столбца в символе. При скроллинге по-горизонтали с шагом 2 точки 640 точек будут сдвинуты за 5.33 секунд. Для больших пространств из символов по мере движения добавлять в буфер новые символы.

Графический режим без скроллинга. Два переключаемых экрана. Рисовать спрайты с шагом 2 точки с помощью блиттера. Для указания координат спрайта добавить старший байт для x. Если рисовать спрайты в пределах 512 точек, а справа расположить рамку шириной 640-512=128 точек, то достаточно будет в старший байт записать 0 и использовать однобайтовые координаты. Для рамки записать в старший байт 1.

СИМВОЛЫ/ТАЙЛЫ.

Четыре шрифта можно прошить во FLASH 128 K для возможности вывода текста сразу после включения компьютера. 16 загружаемых шрифтов можно записать в SRAM 512 K. Это позволит использовать набор из 4K тайлов для фона в играх.

На каждый символ дополнительно есть байт атрибута. 3 бита - номер палитры, 1 бит - тип шрифта (прошитый/загружаемый), 4 бита - номер шрифта.

ДВУХУРОВНЕВЫЕ ТАЙЛЫ.

На точку 4 бита: 3 бита - номер цвета и 1 бит - уровень. В одном символе можно разместить точки фона, например, стены, и объекта на переднем плане - ящика, столба, камня. Между двумя уровнями символов разместить уровень графики. Также один уровень графики выше.

УРОВНИ И ЦВЕТА:

0 - стены, лес
1 - движущиеся объекты, выстрелы
2 - ящики, столбы, камни
3 - рамка, индикаторы

0 Символы 8 цветов
1 Графика 15 цветов + прозрачный
2 Символы 8 цветов
3 Графика 15 цветов + прозрачный

У каждого уровня свои 8 палитр.

У символов 2 точки в байте: 3 бита - номер цвета и 1 бит - уровень.
Атрибут тайла: 3 бита - палитра, 1 бит - тип шрифта, 4 бита - номер шрифта (1xxx - живые тайлы).

ЖИВЫЕ ТАЙЛЫ:

В играх нужно изображать огонь, воду, вращающиеся монетки и другие живые тайлы. Поэтому половину символов из 4К использовать под них. Каждый живой тайл состоит из 16 обычных символов, которые будут меняться автоматически через каждые 133 мс (8 кадров 60 Гц). Цикл движения будет около двух секунд. Всего живых тайлов будет 2K/16=128.

СПРАЙТЫ.

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

В основной памяти спрайт хранится по 2 точки в байте:
4 бита - номер цвета, 1111 - прозрачный

Каждая точка в графическом режиме в видеокарте представляется одним байтом:
1 бит - номер уровня
3 бита - номер палитры
4 бита - номер цвета

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

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

Для палитры две микросхемы по 32 К.

Размеры символов: 4, 6, 8, 10, 12, 14, 16 точек. Для 80 символов в строке ширина символа 8 точек, для 64 символов в строке ширина 10 точек, для 40 символов в строке ширина 16 точек. В байте шрифта 2 точки по 4 бита.

При выводе слова на монитор достаточно установить шрифт, цвет, номер строки, номер столбца. Затем записывать в один порт все символы слова или предложения (OTIR). При записи символа в порт символа в буфер символа записывается символ, автоматически записывается атрибут из регистров шрифта и палитры, а затем увеличивается номер столбца.

Начало отображаемого окна через запись в порты: начальная строка, начальный столбец, начальная строка в символе, начальный столбец в символе.
Размер символа устанавливается через запись в порты: первая отображаемая строка символа (0-12), первый отображаемый столбец символа (0-12).

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

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

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

Строк VGA 360. Упростим запись смещения. Будет одно смещение у двух строк. Всего 180 пар. Хватит одного байта для адресации памяти.

Слои дальнего фона с параллаксом сделать простыми. Всего по 256 символов в каждом слое. Всего по одной палитре на слой. На точку 15 цветов плюс прозрачный. Смещение по-вертикали общее на оба слоя. Размер буферов символов по 256 столбцов символов и 128 строк.

VGA выход выбран с разверткой NHD 640*360.
Разрешение 640*360 точек.
Частота кварца 20 МГц выбрана для упрощения вывода на VGA NHD. Z80 на 5 МHz.

Планируется модель памяти с четырьмя окнами.
Адреса портов должны быть восьмибитные с полной дешифрацией. Избегать комбинирования битов нескольких регистров управления в один порт. Для упрощения каждый параметр записывать в отдельный порт с восьмибитным адресом. Так проще и быстрее.

Текущая конструкция модульного компьютера.
На рисунке изображена кросс-плата с 8 разъемами PBD-80. Модули размером 183*122 мм предполагается устанавливать горизонтально на разных уровнях. Большой размер модулей для большого количества микросхем логики в DIP корпусах. Между модулями стойки на 20 мм.
https://pic.maxiol.com/thumbs2/1656395157.628207308.22062802levelmont.png (https://pic.maxiol.com/?v=1656395157.628207308.22062802levelmont.png&dp=2)

zx-kit
28.12.2017, 16:22
второй (текстовый) режим можно использовать для вывода огрубленной графики если знакогенератор заполнить не "рисунками символов", а чанками - типа как псевдографика, но по факту просто набор разнообразно заполненных точками знакомест (при знакогенераторе в 256 символов и знакоместе 8х8 размер чанка составит 2х2 точки, т.е. огрубление всего то в 2 раза). При этом для вывода такой графики получается существенное преимущество: каждый кадр требует модификации в N раз меньшего объема ОЗУ (N=количеству строк в знакоместе), что уже наконец то даст нам возможность поиграть в DOOM на Корвете. :)

Не хватит комбинаций битов в одном байте. В символе может быт только 8 чанков. Поэтому их размеры будут больше. Наверно символьный экран лучше сделать в разрешении 640х350 85 Hz и размер символа 8х14 точек. А рисовать проще в графическом режиме 320x240 с адресацией типа Ориона и Специалиста, но с адреса 0, двумя экранами и режиме рисования одним цветом + прозрачный.
- - - Добавлено - - -




Адреса включения-выключения - это что имеется в виду? Начальный адрес текстового экрана в ОЗУ SRAM-ины? Если это оно, то это очень нужная фича, т.к. позволит иметь несколько планов/экранов между которыми можно моментально переключаться - хоть для "рисования", хоть для работы нескольких консолей (т.е. нескольких приложений - каждое со своей консолью), если это не оно, то многоэкранный текстовый мод нужно добавить. Также, если такое возможно (например если в видеоадапторе стоит микроконтроллер как у Freddy) не был бы лишним скроллинг задаваемого пользователем окна (для каждого экрана - свой размер окна) во все стороны.

Хост будет иметь возможность писать/читать непосредственно в видеоОЗУ, или он его будет позиционируемо заполнять через некий канал ввода (как например терминальных вариантов)?
Надо определить адреса видеоОЗУ для хранения символов. Ориентировочно в области 0000-3FFF. Можно разместить 4 области по 4К для символьных экранов с атрибутами. В знакогенераторе можно записать сразу две кодировки KOI-8 и CP-1251. Насчет скроллинга - это займет много микросхем. В ОЗУ видеокарты можно будет только писать. На чтение она невидима, читаются данные из ПЗУ.

s_kosorev
28.12.2017, 21:34
Не хватит комбинаций битов в одном байте.
11-12 битные байты использовать.

Надо определить адреса видеоОЗУ для хранения символов.
Предлагаю адрес 1000, удобно запомнить, удобство очень важно.

В знакогенераторе можно записать сразу две кодировки KOI-8 и CP-1251.
UTF-32 самый удобный способ. Любой символ можно указать, всегда 32 бита, будет быстро работать

zx-kit
29.12.2017, 00:21
Оба типа экранов, графический и символьный, будут начинаться с адреса 0000H. Все только на запись. Графических 2 экрана, символьных 4 экрана. Номер отображаемого экрана выбирать записью числа в соответствующий регистр.

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

Для символьного экрана младший байт будет указывать номер строки символов, старший байт - номер столбца.

Лучше сделать выбор кодировки символов. Можно сделать несколько шрифтов и кодировок. Для знакогенератора будет FLASH 128К x 8 бит. Один шрифт займет 256 * 16 = 4Кбайта. Всего можно зашить до 32 шрифтов. Текущий шрифт выбирать записью числа в соответствующий регистр. Символы будут рисоваться текущим цветом. В текущем цвете 4 бита на RGBI PAPER и 4 бита на RGBI INK.

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

Если брать ZX-SPECTRUM за некий минимально приемлемый стандарт динамики в играх (что явно не так, потому что на спекки нехватает скорости для портирования игр с полной перерисовкой экрана, типа как в boulder dash или river ride), то можно заключить что для 7кб экрана нужно около 3.5 mhz (z80). Для нового компа надо обеспечить как минимум в 2 раза большую скорость (это 7mhz для экрана в 7кб, а лучше 14mhz, но тут уже встанет вопрос о скорости памяти, прикольно лепить из "советских" микрух но они тормозные, а ставить импортный sram "неспортивно"). Есть вариант ити путем "тайлов и спрайтов" по типу ПК8002 Эльф (что по сути v9938 на рассыпухе), это проверенный подход использующийся в c64,nes,msx,sega... он за счет усложнения схемы позволит оставить проц на тех же 3.5 mhz, правда 3D игры типа elite от него ничего не получат. Есть еще мульти-процессорность, сделать в компе несколько шин (типа как в ук-нц) и выделить отдельный и максимально разогнанный z80 для рисования графики который будет устраивать "гонки с лучем" как в atari2600, его будет тормозить видеоконтроллер (а вообще для графики надо бы шото пожирнее, например 16bit как в pcengine). По идее можно иметь и больше шин, например 2 отдельных процессора для 2-х равных частей экрана и 4 паралельных шины (одна для видео-контроллера, 2 для граф. процессоров и одна для основного cp/m процессора). Ну в общем ... тут надо пробовать, возможно сначала промоделировать в самописной программе или vhdl. Если делать "абы как" то выйдет очередной орион-128.

zx-kit
29.12.2017, 08:21
С MSX+ не знаком. Видеорежимы планируются быстрее, чем у Спектрума:

2 экрана вместо одного с возможностью выбора, на каком рисовать, а какой отображать.
В видеокарту надо только писать, что экономит время.
Вместо операций чтение + чтение +"AND"+запись+ чтение + чтение +"ОR"+ запись у Спектрума в новой видеокарте надо только чтение + запись + чтение + запись.

Адресация экранов линейная, как у Ориона, но лучше, так как начало с адреса 0000.
Можно в адреса ПЗУ и видеокарты включить ОЗУ.
Освобождается 7 Кб на месте старого экрана Спектрума.
Не надо заполнять область атрибутов - атрибут один, текущий.
Рисуется как в Спектруме сразу по 8 точек на байт, но есть выбор - рисовать двумя цветами или одним + прозрачный.
Z80 на частоте 6 MHz. Хотя теоретически можно и 20 MHz поставить.
То есть можно обновить весь экран за 1-2 кадра и переключить без мерцания.

Видеопамять придется брать статику на 10 ns в корпусе SOJ. Это связано с частотой чтения из видеопамяти 25 MHz при выводе точек на VGA монитор с частотой 12.5 MHz. То есть память нужна быстрее, чем 40 ns.
Для адапатации игр Спектрума будут использоваться часть экрана размером 256х192. Для новых игр можно рисовать на всем экране 320х240.

Reobne
29.12.2017, 09:40
Думаю, что крутизна должна быть умеренная. От острова ZX128 до острова CHELYABINSK должен быть один шаг в лучшую сторону. Чтобы имеющийся софт легко перешагнул. Чтобы имеющиеся программисты легко перешагнули.

Ещё важные критерии: Надёжность, дешевизна, полнота и понятность документации, возможность самостоятельной независимой сборки.
Продуманность системы слотов в материнке. Разьём должен позволять разрабатывать широкий спектр карт.
Продуманность базовой модели. Что на материнке, какие карты вставлены.
Маркетинг. :)

Другие критерии:
Можно-ли будет сделать карту с доп ОЗУ управляемую, как на известных клонах.
Можно-ли сделать карту ПЗУ, которое-бы работало, пока картриджа нету.
Размеры и вес корпуса. Энергопотребление. Помехозащищённость. Красота.

zx-kit
29.12.2017, 09:55
Как раз получается один шаг для улучшения графики в лучшую сторону без потери скорости. Почти как в Орионе, Только проще и удобнее. Если получится, большинство микросхем будет в корпусах DIP. Слоты я решил DIN-64. Сигналы надо обсуждать. По два контакта будут на +5V, +3V3, GND. Шину адреса и данных наверно полностью. А вот остальные сигналы надо уточнить. На материнке предполагаетс только видеокарта, так как она будет из большого количества микросхем и на модуль не влезет. Еще может схема включения БП ATX на АТМЕГЕ.
Модули - RAM, картриджа, клавиатуры,.. на отдельных платах.

Reobne
29.12.2017, 10:39
Процессор-то на материнке? Видеопамять на материнке?

zx-kit
29.12.2017, 11:44
Процессор 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 на передней панели корпуса.

Error404
29.12.2017, 12:01
Основное ОЗУ на отдельном модуле. 2 микросхемы SRAM по 32 К в корпусах DIP-24.


DIP-28 наверное?



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

Вот этих DIP-28 32Кб с доступом ЕМНИП 15нс от кэшей PC З86-486 у меня (и у любого любителя ИМХО) вагон и маленькая тележка (да и в барахолке продаются регулярно по очень небольшим ценам, т.к. они в отличие от 64кб совсем не дефицит). Учитывая что они 15нс, они прекрасно пойдут и в качестве основной памяти, и в качестве видеопамяти для VGA. Поэтому было бы здорово унифицировать. И я за отдельный видеоадаптер в слоте, даже если для этого требуется его упрощение до вменяемого количества корпусов выкидывая всякие аппаратные скроллинги (фиг с ними, в текстовом моде и софтовый скроллинг будет в пять раз быстрее графики тупо за счет меньших объемов). Потому что такой адаптер во-первых можно подключать к другим ПК (я бы к Ориону подключил, например), а во вторых для олдфилов можно слепить заменяемый упрощенный вариант, дающий 100% совместимость со Спеком (пущай себе на здоровье рисуют демы на бордюре, а для нормальных людей он не нужен ;) ).

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

zx-kit
29.12.2017, 12:24
DIP-28 наверное?

Да.


Вот этих DIP-28 32Кб с доступом ЕМНИП 15нс от кэшей PC З86-486 у меня (и у любого любителя ИМХО) вагон и маленькая тележка (да и в барахолке продаются регулярно по очень небольшим ценам, т.к. они в отличие от 64кб совсем не дефицит). Учитывая что они 15нс, они прекрасно пойдут и в качестве основной памяти, и в качестве видеопамяти для VGA. Поэтому было бы здорово унифицировать.

У меня таких нет и в продаже не видел. Продаются широкие на 45-70 ns. Для видеопамяти я предполагал 256Кх16 bit в корпусе SOJ 10 ns.



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

Отдельным модулем только на FPGA влезет.


Потому что такой адаптер во-первых можно подключать к другим ПК (я бы к Ориону подключил, например), а во вторых для олдфилов можно слепить заменяемый упрощенный вариант, дающий 100% совместимость со Спеком (пущай себе на здоровье рисуют демы на бордюре, а для нормальных людей он не нужен ;) ).

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

Error404
29.12.2017, 12:50
Да.
А что тогда на материнской плате будет ?

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

TomaTLAB
29.12.2017, 20:03
А не надо материнскую плату. Надо просто "елку", "корзину", "крейт". Процессор тоже в виде модуля, можно будет разные варианты делать (не так там и много в обвязке, на самом деле).
Основную память тоже в отдельный модуль. Мапер - отдельно - там тоже могут быть варианты

http://storage8.static.itmages.com/i/17/1229/s_1514566747_1702266_37bd0f6b97.jpg (https://itmages.com/image/view/6366213/37bd0f6b) http://storage8.static.itmages.com/i/17/1229/s_1514566747_5812248_51a76aa67d.jpg (https://itmages.com/image/view/6366212/51a76aa6) http://storage1.static.itmages.com/i/17/1229/s_1514566752_8196180_9db176814c.jpg (https://itmages.com/image/view/6366215/9db17681) http://storage9.static.itmages.com/i/17/1229/s_1514566747_5787269_2825f1a3ac.jpg (https://itmages.com/image/view/6366214/2825f1a3)
Процессорный модуль на 580ВМ80, но планируется и 85-й, и Z80. Мапер сделан на 155РП3 - это я "возжелал странного" :) можно сделать гораздо менее экзотический :)


С MSX+ не знаком Зря, полюбопытствуйте, организацию памяти в особенности. Из MSX можно много интересного почерпнуть. Оно там как раз модульное все по своей сути.

Totem
29.12.2017, 21:38
А не надо материнскую плату. Надо просто "елку", "корзину", "крейт". Процессор тоже в виде модуля, можно будет разные варианты делать (не так там и много в обвязке, на самом деле).
Основную память тоже в отдельный модуль. Мапер - отдельно - там тоже могут быть варианты

http://storage8.static.itmages.com/i/17/1229/s_1514566747_1702266_37bd0f6b97.jpg (https://itmages.com/image/view/6366213/37bd0f6b) http://storage8.static.itmages.com/i/17/1229/s_1514566747_5812248_51a76aa67d.jpg (https://itmages.com/image/view/6366212/51a76aa6) http://storage1.static.itmages.com/i/17/1229/s_1514566752_8196180_9db176814c.jpg (https://itmages.com/image/view/6366215/9db17681) http://storage9.static.itmages.com/i/17/1229/s_1514566747_5787269_2825f1a3ac.jpg (https://itmages.com/image/view/6366214/2825f1a3)
Процессорный модуль на 580ВМ80, но планируется и 85-й, и Z80. Мапер сделан на 155РП3 - это я "возжелал странного" :) можно сделать гораздо менее экзотический :)

Зря, полюбопытствуйте, организацию памяти в особенности. Из MSX можно много интересного почерпнуть. Оно там как раз модульное все по своей сути.
Здравая мысль, только не интересная для модульного "ретрокомпа", суть его ограниченность одной платформой, ZST так и не удосужился посмотреть на универсальный маппер.

zx-kit
29.12.2017, 22:29
Ну, как у всех "взрослых" бытовых настольных компов, чья компановка проверена временем и таки является модульной - проц (а это прилично обвязки если делать по-нормальному - с буферизаций шин и т.п.), основная память ОЗУ, ПЗУ, адаптер клавиатуры (мы же не останемся на 40 кнопках?) ну и что-то по мелочи
Если не видеокарту, тогда ничего не надо. Иначе идея модульного компьютера не работает. Нужна возможность менять любой модуль на более навороченный. Но другие процы я не планирую. Только Z80 в разных корпусах.

Какой надо адаптер клавиатуры ? Такой и сделаем. Но надо режим совместимости с клаваиатурой ZX Spectrum. Я могу на базе прошивки плату Super Joystick Port 2 на АТМЕГЕ и регистрах сдвига сделать новую версию, чтобы работала в CP/M и были русские буквы.

Название микросхемы кэша напиши. Может продают такие еще.

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


А не надо материнскую плату. Надо просто "елку", "корзину", "крейт". Процессор тоже в виде модуля, можно будет разные варианты делать (не так там и много в обвязке, на самом деле).
Основную память тоже в отдельный модуль.
Зря, полюбопытствуйте, организацию памяти в особенности. Из MSX можно много интересного почерпнуть. Оно там как раз модульное все по своей сути.
Я тоже так планировал сначала. Но если делать видеокарту на DIP она будет огромной.
Надо ссылку рабочую на схемы.

Totem
29.12.2017, 22:52
zst, дружище, смотри нашу беседу "о метеоре, без "троллоло и всех сопуствующих""

TomaTLAB
29.12.2017, 23:26
И так ли тут нужна "быстрая (кэшовая)" память? Мы собираемся выдергивать из нее по байту на графическую точку?
Или все же все-таки байт на 8 точек?

Totem
29.12.2017, 23:48
И так ли тут нужна "быстрая (кэшовая)" память? Мы собираемся выдергивать из нее по байту на графическую точку?
Или все же все-таки байт на 8 точек?
нет, основой концепт RAM- 64 Kбайта. С возможностью включать в адреса 0000-3FFF ROM и видеокарту.
Графический режим - для игр 320х240 по 4 бита RGBI на точку. Будут использоваться адреса 0000-3FFF. Только запись. Возможность вместо видеокарты подключать RAM.
вообщем даже для самоделки это "грабли".
ничего подобного делать не надо, все уже придумано до нас.

TomaTLAB
30.12.2017, 01:20
Ну, как у всех "взрослых" бытовых настольных компов, чья компановка проверена временем
Это "ширпотреб". Полупустой железный гроб на столе. Концепция "апгрейда" неактуальна уже лет 20 как, комп нужно менять целиком.
Есть много пространных статей почему это так. Да думаю и так понятно. Да, модульность есть, на момент сборки можно повыбирать из альтернатив, по вкусу и кошельку.
А "не широтреб", т.е. пром-автоматика и иже с ней - это, как правило, процессорная плата того же формата, что и все остальные, воткнутые в "back panel".
Даже в формате ISA или PCI, не говоря уже про всякие евромеханики. Ну или бутербродный PC-104 еще.
А на классической материнке, от трети до двух площади слоты занимают. Почти всегда пустые.

zx-kit
30.12.2017, 08:47
И так ли тут нужна "быстрая (кэшовая)" память? Мы собираемся выдергивать из нее по байту на графическую точку?
Или все же все-таки байт на 8 точек?
У каждой точки свой цвет. На каждую точку отдельный байт.
Если по 4 бита на точку, то цвета RGBI как в Спектруме. На экране 15 цветов. По 2 бита на каналы RGB.
Если 8 бит на точку, то цвета как у MSX2 256-color screen mode 8. На экране 256 цветов. По 3 бита на каналы RGB.
Если 8 бит на точку + ОЗУ палитры, то цвета как у MSX2+ Screen mode 10 & 11 Screen mode 12. На экране 256 цветов из палитры. По 5 битов на каналы RGB.

Для изображения на мониторе надо читать сразу по 4 или 8 бит на точку.
Можно по-другому. Читать сразу 8 байтов для 8 точек. Для этого надо 8 микросхем памяти. Но их можно использовать медленные. В которые записывать одновременно 8 цветов с учетом прозрачного цвета. В соответствуюющие прозрачному цвету микросхемы не записывать. То есть цвета накладыаются поверх старых без клешинга.

Если выводить на телевизор через SCART, то читать можно в 2 раза реже, то есть память можно использовть медленную. Но тут надо видеоконвертер для вывода на VGA.

Можно читать сразу по 8 точек. Записывать в 8 регистров сдвига.
При чтении по 1 точке регистры сдвига не нужны.

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


нет, основой концепт RAM- 64 Kбайта. С возможностью включать в адреса 0000-3FFF ROM и видеокарту.
Графический режим - для игр 320х240 по 4 бита RGBI на точку. Будут использоваться адреса 0000-3FFF. Только запись. Возможность вместо видеокарты подключать RAM.
вообщем даже для самоделки это "грабли".
ничего подобного делать не надо, все уже придумано до нас.
А аргументы есть ?

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

Кроме скорости нужно учитывать еще объем памяти для экрана. Для 256х256 точек надо 64 Кбайта. Для 512х256 надо 128 Кбайт.
Так как у нас экран 320х240 точек, то для него надо 128 Кбайт. А так как экранов 2, но надо 256 Кбайт. То есть хорошо подходит микросхема статики 256Кх16 бит. Так как у нас точки по 8 бит, то можно сделать второй слой. Или на точку выделить по 16 бит, тогда палитру не надо будет делать. Сразу HICOLOR.

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

Почитал про мэппер MSX2. Давайте для расширения ОЗУ сделаем так же:
Maximum size An MSX memory mapper contains up to 256 (2^8) blocks of 16 KiB (16384 bytes) each. Thus the maximum size for a mapper is 4 MiB (4096 KiB).
I/O ports It occupies a single cartridge slot, which can be a primary or secondary slot, internal or external. Its configuration is controlled via 4 I/O ports:


A write to I/O port 252 (FCh) determines which block is accessible in address range 0000-3FFFh of the cartridge slot.
A write to I/O port 253 (FDh) determines which block is accessible in address range 4000-7FFFh of the cartridge slot.
A write to I/O port 254 (FEh) determines which block is accessible in address range 8000-BFFFh of the cartridge slot.
A write to I/O port 255 (FFh) determines which block is accessible in address range C000-FFFFh of the cartridge slot.

Initialisation During bootup, the MSX2 bios initializes memory mapper(s) by writing to these I/O ports. Default configuration is as follows:


Block 3 is selected for 0000-3FFFh area.
Block 2 is selected for 4000-7FFFh area.
Block 1 is selected for 8000-BFFFh area.
Block 0 is selected for C000-FFFFh area.

Hacker VBI
30.12.2017, 12:29
рраз - и получается TSU

zx-kit
30.12.2017, 12:33
рраз - и получается TSU

В АТМ тоже маппер есть. Только вот в маппере от MSX2 порт FE используется. Придется при модернизации игр со Спектрума заменять порты в подпрограммах опроса клавитуры. Еще надо порты для подключения картриджа и видеокарты в сегмент 0000-3FFF. Надо предусмотреть режим, когда из этого сегмента можно читать данные из основного ОЗУ, например, спрайты, а запись по этим же адресам только в память видеокарты.

Totem
30.12.2017, 13:14
У каждой точки свой цвет. На каждую точку отдельный байт.
Если по 4 бита на точку, то цвета RGBI как в Спектруме. На экране 15 цветов. По 2 бита на каналы RGB.
Если 8 бит на точку, то цвета как у MSX2 256-color screen mode 8. На экране 256 цветов. По 3 бита на каналы RGB.
Если 8 бит на точку + ОЗУ палитры, то цвета как у MSX2+ Screen mode 10 & 11 Screen mode 12. На экране 256 цветов из палитры. По 5 битов на каналы RGB.

Для изображения на мониторе надо читать сразу по 4 или 8 бит на точку.
Можно по-другому. Читать сразу 8 байтов для 8 точек. Для этого надо 8 микросхем памяти. Но их можно использовать медленные. В которые записывать одновременно 8 цветов с учетом прозрачного цвета. В соответствуюющие прозрачному цвету микросхемы не записывать. То есть цвета накладыаются поверх старых без клешинга.

Если выводить на телевизор через SCART, то читать можно в 2 раза реже, то есть память можно использовть медленную. Но тут надо видеоконвертер для вывода на VGA.

Можно читать сразу по 8 точек. Записывать в 8 регистров сдвига.
При чтении по 1 точке регистры сдвига не нужны.

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


А аргументы есть ?

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

Кроме скорости нужно учитывать еще объем памяти для экрана. Для 256х256 точек надо 64 Кбайта. Для 512х256 надо 128 Кбайт.
Так как у нас экран 320х240 точек, то для него надо 128 Кбайт. А так как экранов 2, но надо 256 Кбайт. То есть хорошо подходит микросхема статики 256Кх16 бит. Так как у нас точки по 8 бит, то можно сделать второй слой. Или на точку выделить по 16 бит, тогда палитру не надо будет делать. Сразу HICOLOR.

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

Почитал про мэппер MSX2. Давайте для расширения ОЗУ сделаем так же:
Maximum size An MSX memory mapper contains up to 256 (2^8) blocks of 16 KiB (16384 bytes) each. Thus the maximum size for a mapper is 4 MiB (4096 KiB).
I/O ports It occupies a single cartridge slot, which can be a primary or secondary slot, internal or external. Its configuration is controlled via 4 I/O ports:


A write to I/O port 252 (FCh) determines which block is accessible in address range 0000-3FFFh of the cartridge slot.
A write to I/O port 253 (FDh) determines which block is accessible in address range 4000-7FFFh of the cartridge slot.
A write to I/O port 254 (FEh) determines which block is accessible in address range 8000-BFFFh of the cartridge slot.
A write to I/O port 255 (FFh) determines which block is accessible in address range C000-FFFFh of the cartridge slot.

Initialisation During bootup, the MSX2 bios initializes memory mapper(s) by writing to these I/O ports. Default configuration is as follows:


Block 3 is selected for 0000-3FFFh area.
Block 2 is selected for 4000-7FFFh area.
Block 1 is selected for 8000-BFFFh area.
Block 0 is selected for C000-FFFFh area.

А аргументы есть ?
ну ты сам и ответил на свой вопрос.
т.е. ты делаешь уже клон MSX
ну а деление памяти на банки 16K,"игровому крутому компу", просто мешает.
всю эту графику тебе нужно все одно "рисовать процом", сразу забудь о z80 на частоте ниже 14 MГц
всю эту графику тебе нужно где то хранить, забудь о играх класса сложене чем поделка в AGD.

zx-kit
30.12.2017, 16:58
А аргументы есть ?
ну ты сам и ответил на свой вопрос.
т.е. ты делаешь уже клон MSX
ну а деление памяти на банки 16K,"игровому крутому компу", просто мешает.
всю эту графику тебе нужно все одно "рисовать процом", сразу забудь о z80 на частоте ниже 14 MГц
всю эту графику тебе нужно где то хранить, забудь о играх класса сложене чем поделка в AGD.

А почему банки по 16 К мешают играм ?
Что мешает поставить Z80 на 14 МГц ?
А если в картридже будет 512 К.
А если модуль ОЗУ с маппером сделать на 1 М ?

Error404
30.12.2017, 22:06
А почему банки по 16 К мешают играм ?
Что мешает поставить Z80 на 14 МГц ?
А если в картридже будет 512 К.
А если модуль ОЗУ с маппером сделать на 1 М ?

... то туда и UZIX можно запилить. В отличие от.

Totem
31.12.2017, 00:11
А почему банки по 16 К мешают играм ?
Что мешает поставить Z80 на 14 МГц ?
А если в картридже будет 512 К.
А если модуль ОЗУ с маппером сделать на 1 М ?

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

- - - Updated - - -


... то туда и UZIX можно запилить. В отличие от.

от чего?
MSX?

zx-kit
31.12.2017, 10:51
Осталось проработать принцип подключения картриджа в область 0000-3FFF. Как сделано у MSX2+ не нашел.
Требования:
После сброса запускается программа на картридже. Она настраивает маппер ОЗУ, копирует часть программы с FLASH в ОЗУ.
Затем запускает программу в ОЗУ.
Программа в ОЗУ может отключить картридж и включить вместо него ОЗУ. Тогда будет доступно 64 К.
Или можно подключать нужные страницы FLASH с данными, спрайтами и т.д. без копирования в ОЗУ.

Error404
31.12.2017, 10:58
от чего?
MSX?

В отличие от конфигураций где нет диспетчеров (мапперов) памяти или они не перекрывают всё адресное пространство ЦПУ (как например бесполезный диспетчер Спека-128 или Профи)

Totem
31.12.2017, 11:24
В отличие от конфигураций где нет диспетчеров (мапперов) памяти или они не перекрывают всё адресное пространство ЦПУ (как например бесполезный диспетчер Спека-128 или Профи)

вообще могу предложить, маппер который с градацией 4K -32K, для CPU видеокарты не существует, ее вообще может не быть.
можешь читать и писать не портя содержимое страниц и тд.
http://zx-pk.ru/threads/26909-prostenkaya-videokarta-dlya-8-bit-podelok.html?p=909886&viewfull=1#post909886
Порты дешифруется в CPLD-"пили что хочешь"
В этом варианте совместимость с ZX, показана.
Я сейчас ULAX занят и АY-CUBE, и уже наверное к нему не вернусь. Если интересно используйте.

zx-kit
31.12.2017, 11:47
Спасибо. Но мне ближе Z80 и простой маппер по 16 К. А для устранения клешинга достаточно режима рисования одним цветом на байт с учетом прозрачности.

Totem
31.12.2017, 12:13
Спасибо. Но мне ближе Z80 и простой маппер по 16 К. А для устранения клешинга достаточно режима рисования одним цветом с учетом прозрачности.
Так ты в этом варианте можешь сделать страницы, любые. и по 16K и по 32, и 8, и 4. У тебя после ресета может быть как MSX совместимый маппер так и ZX.
там так то Z80, и стоит. А в cpld еще место останется под SD-CARD.
А для устранения клешинга достаточно режима рисования одним цветом с учетом прозрачности
тут могу только "взоржать аки конь".

zx-kit
31.12.2017, 17:36
А для устранения клешинга достаточно режима рисования одним цветом с учетом прозрачности
тут могу только "взоржать аки конь".
Значит до тебя еще не дошел принцип Метеора.

Totem
31.12.2017, 19:43
Значит до тебя еще не дошел принцип Метеора.

"ПрицЫп " только один, это софт. Сможешь написать 300-400 игр ?
лично для меня, даже не важно, на какой ретро- платформе сделана игра или дема, важно сократить время адаптации.
Скажу по секрету, в следующем году, ULAX будет уже в "железе" и со свой игрой, ну а если понравится идея/сценарий то и под TS и NEXT.
С наступающим!

zx-kit
31.12.2017, 20:08
Ну и что, делайте.
Тебя тоже с Новым Годом !

Reobne
01.01.2018, 05:38
С новым Годом! :)

Как вам такая фантазия:
На материнке много-много слотов, питание(стабилизаторы фильтры, предохранители), и больше ничего.
Графическая видеокарта "Метеор", в виде бутерброда, втыкается сразу в два соседних слота. А для текстого режима - третий слой бутерброда, опционально. (Ибо текст можно и в графике рисовать)
Модульность, она же в меньшей степени нужна для апгрейда, а больше для конфигурирования системы под конкретные потребности, и хорошо описаный формат слота, для разработки самодельных осциллографов, спектрографов, триденанопринтеров, светодиодогирляндомигател ей, сервомоторокукольнотеатро управлятеров, и прочие.

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

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

zx-kit
01.01.2018, 12:03
Порты в компьютере "CHELYABINSK":
F0 -
F1 - режим символьный/графический
F2 - номер символьного экрана
F4 - номер графического экрана
F5 - ATTR
F6 - PAPER
F7 - INK
F8 - BEEPER/AUDIODAC LEFT
F9 - BEEPER/AUDIODAC RIGHT
FA - управлеиние картриджем
FB - управление чтением и записью ОЗУ в четырех окнах
FC - страница памяти в окне 0000-3FFF
FD - страница памяти в окне 4000-7FFF
FE - страница памяти в окне 8000-BFFF
FF - страница памяти в окне C000-FFFF

При записи в порты ATTR, PAPER, INK включается соответствующий режим графики.

zx-kit
01.01.2018, 14:18
"ПрицЫп " только один, это софт. Сможешь написать 300-400 игр ? ...в следующем году, ULAX будет уже в "железе" и со свой игрой!

Мне тоже надо подумать об игре.

Reobne
01.01.2018, 18:12
О какие порты! Совсем не ZX-овские. Получается, что непеределанную спектрум программу на Челябенске не запустить?

zx-kit
01.01.2018, 18:35
О какие порты! Совсем не ZX-овские. Получается, что непеределанную спектрум программу на Челябенске не запустить?
Ага ! И это хорошо. На Челябинске только избранные улучшенные игры будут.

Totem
01.01.2018, 18:57
Ага ! И это хорошо. На Челябинске только избранные улучшенные игры будут.

кто б сомневался, что Челебяинск суровый город с суровым народом...:v2_wink::v2_clapp:

Reobne
02.01.2018, 07:51
Ага ! И это хорошо. На Челябинске только избранные улучшенные игры будут.
А останется-ли теоретическая возможность сделать карту для Челябинска, реализующую спектрум порты, чтобы таки запускать оригинальные игры?
И останется-ли теоретическая возможность сделать карту для оригинального ZX Spectrum, чтобы запускать красивые "Челябинск" игры, без клешинга?

zx-kit
02.01.2018, 12:04
А останется-ли теоретическая возможность сделать карту для Челябинска, реализующую спектрум порты, чтобы таки запускать оригинальные игры?
И останется-ли теоретическая возможность сделать карту для оригинального ZX Spectrum, чтобы запускать красивые "Челябинск" игры, без клешинга?
Чтобы запустить без изменения игры со Спектрума надо продублировать весь Спектрум: Z80 на частоте 3.5 MHz, INT 50 Hz, без VGA, с ПЗУ BASIC, 128К ОЗУ с портом управления ОЗУ и ПЗУ, TR-DOS или магнитофон, т.е. отключить все новое и вернуть все старое. Много ли это даст ? Наверно у многих по нескольку Спектрумов уже есть. Для старых игр

Чтобы игры без клешинга запускать на Спектруме надо выбрать, для какой модели делать, убрать развертку VGA, сделать INT 50 Hz, найти свободные, желательно однобайтовые порты, сделать коммутатор RGBI,SYNC, INT между новым и старым режимом, подключить их со старого компьютера или полностью продублировать старый режим.

Reobne
02.01.2018, 16:00
Чтобы игры без клешинга запускать на Спектруме надо выбрать, для какой модели делать, убрать развертку VGA, сделать INT 50 Hz, найти свободные, желательно однобайтовые порты, сделать коммутатор RGBI,SYNC, INT между новым и старым режимом, подключить их со старого компьютера или полностью продублировать старый режим.
С точки зрения простого покупателя. Можно будет сделать так, что он купил плату "Метеор", в ней слот для картриджа от "Челябинска", от неё шнур в телевизор, он втыкает обычный картридж для "Челябинска" и пошла игра?

s_kosorev
02.01.2018, 16:25
Если делать новый, не совместимый с какой либо базой компьютер, есть смысл делать на ARM с внешней шиной, хоть компилятор будет.

zx-kit
02.01.2018, 17:14
С точки зрения простого покупателя. Можно будет сделать так, что он купил плату "Метеор", в ней слот для картриджа от "Челябинска", от неё шнур в телевизор, он втыкает обычный картридж для "Челябинска" и пошла игра?

Приставку - аналог компьютера в корпусе ATX ? И какая у нее конфигурация должна быть ?

Без ARM, STM32, USB, HDMI, SD, часов.
Мне больше нравятся VGA, SRAM, PS/2, ATMEGA.
- - - Добавлено - - -


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

Некоторые люди недолюбливают ARMы и FPGA. Любят прозрачность схемы.
Делать так на счетчиках, регистрах и логике. Максимум добавить SRAM. А синхроимпульсы сформировать с помощью FLASH.
Мне интересно сделать видеокарту VGA без FPGA.

zx-kit
03.01.2018, 14:24
Маппер MSX2 использует следующие адреса:
FC - страница памяти в окне 0000-3FFF
FD - страница памяти в окне 4000-7FFF
FE - страница памяти в окне 8000-BFFF
FF - страница памяти в окне C000-FFFF

Вопрос к специалистам по MSX2. Нужно ли оставлять именно эти адреса, или можно другие ?

Error404
03.01.2018, 14:38
Совместимость это всегда в плюс

zx-kit
03.01.2018, 14:45
Совместимость это всегда в плюс
Если оставить эти адреса будут работать программы с MSX2 ?
Текстовые. А графические со Спектрума будут

Reobne
03.01.2018, 15:30
Обсудим переделку биперного звука со спектрума.
Порт не тот, и тактовая частота процессора не та. Ну и чуть-чуть прерывания не по 50 герц.
Варианты:
1. Капитально и индивидуально переделывать программы.
2. Специальная "звуковая карта", позволяющая однообразить переделку звука. Например понижающая частоту процессора, или записывающая вывод как сэмпл, а потом его воспроизводящая самостоятельно.
3. Добавление особых способностей эмулирования, позволяющих войти в "защищённый режим". Такой режим, что при попытке процессором вывести нечто в любой порт, или достижением особого счётчика тактов нуля, произойдёт немаскируемое прерывание. В прерывании, прочитать счётчик, узнать, сколько осталось до конца мнимого кадра, подождать это реально по времени, вывести в реальный порт эти значения, и продолжить защищённый_режим. Возможно такая фишка поможет и ОС писателям многозадачность организовывать, чтобы задачи не сильно баловались.

zx-kit
03.01.2018, 15:42
Обсудим переделку биперного звука со спектрума.
Порт не тот, и тактовая частота процессора не та. Ну и чуть-чуть прерывания не по 50 герц.
Варианты:
1. Капитально и индивидуально переделывать программы.
2. Специальная "звуковая карта", позволяющая однообразить переделку звука. Например понижающая частоту процессора, или записывающая вывод как сэмпл, а потом его воспроизводящая самостоятельно.
3. Добавление особых способностей эмулирования, позволяющих войти в "защищённый режим". Такой режим, что при попытке процессором вывести нечто в любой порт, или достижением особого счётчика тактов нуля, произойдёт немаскируемое прерывание. В прерывании, прочитать счётчик, узнать, сколько осталось до конца мнимого кадра, подождать это реально по времени, вывести в реальный порт эти значения, и продолжить защищённый_режим. Возможно такая фишка поможет и ОС писателям многозадачность организовывать, чтобы задачи не сильно баловались.
Да, частота Z80 чем больше, тем лучше. А вот звуки завязаны на частоты. Давайте в старых играх звук выключим.
А для новых лучше сделать микросхему GM+MP3. Тем более, что MP3 стал уже свободным.
Или переделать звуки в старых играх на MIDI.

OrionExt
03.01.2018, 15:50
С Новым Годом!


Если оставить эти адреса будут работать программы с MSX2 ?
Не будут. База в MSX - слотово-страничная организация памяти (порт A8 (http://map.grauw.nl/resources/msx_io_ports.php#ppi)) и VDP (TMS9918A).


Вставлю свою копейку. Вот так с нуля делать комп да еще с такими амбициями, ну не знаю. Если бы дело касалось очередной поделки на Z80 c инета, да и ладно. Но тут как я понял, хотят сделать все и сразу.

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

zx-kit
03.01.2018, 16:41
С Новым Годом!


Не будут. База в MSX - слотово-страничная организация памяти (порт A8 (http://map.grauw.nl/resources/msx_io_ports.php#ppi)) и VDP (TMS9918A).


Вставлю свою копейку. Вот так с нуля делать комп да еще с такими амбициями, ну не знаю. Если бы дело касалось очередной поделки на Z80 c инета, да и ладно. Но тут как я понял, хотят сделать все и сразу.

По мне нужна базовая совместимость с любым компом, выбирайте выбор не такой и маленький.
Понятно. Тогда возвращаемся в CP/M и возвращаем на порт FE BEEPER. Бордера к сожалению не будет. Маппер в новых играх будет по другим адресам. Хотя можно оставить и на этих как в MSX2. BEPEER менять на звуки GM или MP3. Хотя звуки можно оставить и через BEEPER. 6 и 3.5 МHz не такая уж большая разница. Можно у Z80 две разные частоты сделать через тумблер. Или на будущее через мультиплекстор частоты 3.5 / 6 / 14 / 20 MHz.

Может тогда и INT 50 Hz оставить ? Тогда вместо VGA сделать SCART и цифровые выходы RBGI на видеоконвертер VGA.

То есть на частоте 3.5 MHz звуки переделывать не придется. А в турборежиме отключать тумблером по-вкусу.

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

Еще один вариант VGA 50 и 60 Hz через тумблер. Соответственно будет меняться INT 50 и 60 Hz.

Totem
03.01.2018, 16:47
http://atkritka.com/upload/iblock/9ba/atkritka_1383279904_577.jpg

zx-kit
03.01.2018, 17:41
Давай без картинок. Давай обсуждать. Мы ищем решение чтобы поменьше переделывать, но чтобы были и новые возможности. Со старым итак все понятно.

А если INT 60, а Z80 на 4 MHz ?
Но при 20 MHz звуки все равно будут другими.
Надо осваивать MIDI.

Как обеспечить выбор частоты Z80 ? Atmega+кнопки+индикатор ?

zx-kit
03.01.2018, 20:54
Допустим, что клешинг успешно побежден путем простой доработки игр со Спектрума.
Что дальше ? Если захотим написать новую ? Сможем ли мы сделать игру уровня SEGA ?
Разрешение экрана у нас будет 320x240. Цветов надо больше 15. Еще если посмотреть на сеговские игры, то можно увидеть, что у них обычно 3 слоя фона - за игроком 2 слоя и один слой перед игроком. Надо на будущее предусмотреть возможность расширения графики. Для этого видеокарту расположить на материнской плате. И добавить в ней 4 слота для возможности добавления четырех слоев. Для новых игр скроллинг нужен.
А чтобы не делать палитру каждую точку кодировать по 16 бит.

zx-kit
03.01.2018, 22:10
Каждый слой - это плата. На ней регистры смещения по-горизонтали и вертикали, счетчики, мультиплексторы, SRAM, выходные регистры.
Если в компьютере графика не нужна, то все четыре слоя не устанавливать.
Если только игры ZX Spectrum без клешинга, то установить слой 2.
Для простых новых игр слои 2 и 3.
Если для игр типа как на Сеге - все 4 слоя.

bigral
04.01.2018, 00:27
10ns SRAM - неспортивное поведение, почему тогда не vram (с внутренним сдвиговым регистром 256bit длинной) или не двухпортовка? Чтобы было интересно надо ограничиться только микрухами времен ссср. ПК 8002 жирный пример!

s_kosorev
04.01.2018, 00:38
даешь 25МГц VGA на совке!

zx-kit
04.01.2018, 00:44
10ns SRAM - неспортивное поведение, почему тогда не vram (с внутренним сдвиговым регистром 256bit длинной) или не двухпортовка? Чтобы было интересно надо ограничиться только микрухами времен ссср. ПК 8002 жирный пример!
Схему ПК8002 не видел, но там более 100 микросхем было и возможности не очень. VGA не было, например.
Только на микросхемах из CCCР не получится. Мне надо емкую, быструю и дешевую SRAM 256Kx16бит. Синхроимпульсы для разных режимов планирую зашить во FLASH. ПЗУ не предлагать. Выходы RGBI надо делать на иностранной 74ACT, т.к. у советстких микросхем выходной ток маловат. Может в некоторых местах потребуется 74ACT.

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


даешь 25МГц VGA на совке!

Судя по таблице параметров микросхем, выпускаемых на белорусском заводе микросхемы LS работают до 30 MHz.

Totem
04.01.2018, 00:45
Давай без картинок. Давай обсуждать. Мы ищем решение чтобы поменьше переделывать, но чтобы были и новые возможности. Со старым итак все понятно.

А если INT 60, а Z80 на 4 MHz ?
Но при 20 MHz звуки все равно будут другими.
Надо осваивать MIDI.

Как обеспечить выбор частоты Z80 ? Atmega+кнопки+индикатор ?

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

zx-kit
04.01.2018, 00:47
найди время,"поковырять этот веселый форум" , внезапно узнаешь, что все есть.
Чего есть ? Хватит говорить загадками, намеками и т.п. И убери свою картинку.

s_kosorev
04.01.2018, 01:11
Судя по таблице параметров микросхем, выпускаемых на белорусском заводе микросхемы LS работают до 30 MHz.
ога, в одной ветке вентиля один буфер, во второй пару а за углом обратная связь и внезапно уже на 15Мгц глючит

bigral
04.01.2018, 01:12
А что такого в этом vga? Для планируемого разрешения вполне себе pal ntsc хватит.

zx-kit
04.01.2018, 01:33
ога, в одной ветке вентиля один буфер, во второй пару а за углом обратная связь и внезапно уже на 15Мгц глючит


А что такого в этом vga? Для планируемого разрешения вполне себе pal ntsc хватит.

Считаете, что не стоит ? Будет глючить ? Хорошо, VGA убираем. Остается выход RGBI цифровой. INT 50 Hz.

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

А что с символьным экраном для CP/M 80x25 символов ?

Но, если будет аппаратный скроллинг с частотой 50 Hz, а современные телевизоры и мониторы работают на 60 Hz, не будет ли рывков при движении фона ?
Если делать сразу 60 Hz, то большая вероятность, что будет плавно.

Точки при VGA 640x480 60 Hz будут выдаваться на монитор с частотой 12.5 MHz в графическом режиме и 25 MHz в символьном. Может тогда символьный убрать, а рисовать символы в режиме 320х240 точек ?

bigral
04.01.2018, 01:50
По-моему текстовое разрешение 80x25 вполне себе доступно было на мониторах с 15khz разверткой. Современные телевизоры шарят 50hz. Кроме того есть опыт использования 50Hz с разными мониторами на ZXEVO. Но можно перейти на 60hz окончательно (думаю не осталось теликов которые не покажут 60hz).

zx-kit
04.01.2018, 02:08
По-моему текстовое разрешение 80x25 вполне себе доступно было на мониторах с 15khz разверткой. Современные телевизоры шарят 50hz. Кроме того есть опыт использования 50Hz с разными мониторами на ZXEVO. Но можно перейти на 60hz окончательно (думаю не осталось теликов которые не покажут 60hz).
Хорошая идея. И какую же частоту пикселов выбрать ? Может уточнить разрешение экрана для текстового.

Не, все-таки на мониторе изображение ровно 640х480 60 Hz. Пикселы квадратные.
Можно было бы 800х600, но как это изобразится на мониторе FULL HD 1920x1050 ?
640х480 просто увеличится в два раза.

Похоже придется от DIP микросхем отказаться и делать VGA-выход на FPGA. И пересмотреть разрешение экрана и развертку. Может сразу FULL HD с масштабированием для точного попадания в пикселы экрана.

bigral
04.01.2018, 03:36
народ впринципе привык к частоте пикселей в 7mhz... в идеале конечно пиксель должен стремится к идеальному квадратику

zx-kit
04.01.2018, 09:35
Допустим, что клешинг успешно побежден путем простой доработки игр со Спектрума.
Что дальше ? Если захотим написать новую ? Сможем ли мы сделать игру уровня SEGA ?
Разрешение экрана у нас будет 320x240. Цветов надо больше 15. Еще если посмотреть на сеговские игры, то можно увидеть, что у них обычно 3 слоя фона - за игроком 2 слоя и один слой перед игроком. Надо на будущее предусмотреть возможность расширения графики. Для этого видеокарту расположить на материнской плате. И добавить в ней 4 слота для возможности добавления четырех слоев. Для новых игр скроллинг нужен.
А чтобы не делать палитру каждую точку кодировать по 16 бит.
Задача становится слишком сложной. Совместить три разных компьютера:
1. ZX Spectrum с устранением клешинга.
2. Текстовой компьютер с CP/M.
3. Игровой компьютер, похожий на Сегу.

У каждого свои графические режимы, развертки, частоты, порты и т.п.
Не разделить ли их на три разных компьютера ?

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

Три разных проекта. В этой теме оставить игровой компьютер.

Какой я виду конфигурацию и возможности моего игрового компьютера:

Программирование близкое к программированию на ZX Spectrum-е. Рисование по 8 точек на байт. Обеспечить возможность переделки старых игр для устранения клешинга. Но графика с линейной адресацией с адреса 0000. Устранение клешинга осуществляется путем рисования одним цветом на байт. Возможность рисования нулевыми битами, единичными битами или обоими сразу. Перейти на VGA развертку, увеличить размер экрана, увеличить скорость Z80, добавить новый звук, автоматический скроллинг фона, увеличить количество цветов, новый маппер памяти, все порты однобайтовые, без ПЗУ c BASICом, старого режима графики с атрибутами.

Z80 на частоте 20 MHz
VGA 640x480 60 Hz
INT 60 Hz
Размер экрана 320x240 с масштабированием в 2 раза.
4 слоя графики с возможностью аппаратного скроллинга.
Внутри видеопамяти точка хранится как 16 бит. Старший бит - признак прозрачности.
VIDEODAC 3 цепочки R-2R по 5 битов.
ОЗУ 1 M с маппером типа MSX2 - 4 окна по 16 Кбайт.
ПЗУ на внешнем картридже. Адресация страниц FLASH картриджа тем же маппером.
Звук - микросхема General Midi +MP3
Клавиатура PS/2
Мышь PS/2
Геймпад от Sony Playstation 2
Частота Z80 возможно будет переключаться кнопками и индикатором на передней панели с помощью Атмеги, генераторов и мультиплексторов.
Предварительно: 3.5 / 6 / 10 / 12 / 14 / 20 MHz.

Error404
04.01.2018, 11:53
Только на микросхемах из CCCР не получится. Мне надо емкую, быструю и дешевую SRAM 256Kx16бит.

Повторюсь:
UM61256FK-15
W24257AK-15
и им подобные (их реально тьма)
Это ОЗУ 32к х8 (быстрые SRAM 15нс) из кэшей 386 (т.е. времен падения CCCP, как и заказывали). Узкие DIP (7.5мм) 28 ног с шагом ног 2,54 - идеально для пайки/разводки. Для получения разрядности данных x16 ставим таких две. С разбора думаю есть почти у каждого, если нет - регулярно продается на барахолке, вот например тема из последних (http://zx-pk.com/forum/viewtopic.php?f=14&t=9145)(в этой теме они 35р. за штуку, но бывало и дешевле).

Т.е. вся плата видеоадаптера получится вся на DIP с МСХ примерно одного времени выпуска.

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

Есть и на Алиекспрессе (https://ru.aliexpress.com/item/5pcs-lot-CY7C199-15PC-CY7C199-srams-256-kbit-15NS-28DIP-ic-good-quality-new-original-free/32818736209.html?ws_ab_test=searchweb0_0,searchweb 201602_1_10152_10151_10065_10344_10068_10342_10343 _10340_10341_10543_10084_10083_10307_10301_10059_1 0314_10534_100031_10604_10103_10607_10606_10142_10 125,searchweb201603_2,ppcSwitch_5&algo_expid=66298696-c69a-4c21-91ef-d3dabb99d738-6&algo_pvid=66298696-c69a-4c21-91ef-d3dabb99d738&priceBeautifyAB=0), но дороже

Totem
04.01.2018, 13:18
Задача становится слишком сложной. Совместить три разных компьютера:
1. ZX Spectrum с устранением клешинга.
2. Текстовой компьютер с CP/M.
3. Игровой компьютер, похожий на Сегу.
.
грабли, грабли, костыли, грабли, грабли
смотрю все идет как и ожидалось еще и по кругу.

s_kosorev
04.01.2018, 17:20
Не попадались компьютеры на msp430, может на нем сделать компьютер?

zx-kit
04.01.2018, 18:45
Это ОЗУ 32к х8 (быстрые SRAM 15нс) из кэшей 386 (т.е. времен падения CCCP, как и заказывали). Узкие DIP (7.5мм) 28 ног с шагом ног 2,54 - идеально для пайки/разводки. Для получения разрядности данных x16 ставим таких две. Т.е. вся плата видеоадаптера получится вся на DIP с МСХ примерно одного времени выпуска.

Для символьного экрана хватит. Надо определиться еще с:
FLASH - какой объем и корпус предпочтительнее.
Разрешение и частоту кадров. С пиксельклоком 27.175 MHz есть 640x350 70 Hz 640x400 70 Hz
Размер символов. 16x8 или 14x8.
Где скачать готовый шрифт.
Можно символы размером 19х8 точек с разверткой 640х480 60 Hz.

balu_dark
04.01.2018, 22:32
Ребят - честное слово читать все не было времени но по поводу вопроса о совмещении трех разных компьютеров.
Что мешает взять идею Wing Lion примененную в спринтере и то что отличается - сделать в виде загружаемой в FPGA конфигурации ?
одновременно же ве ьри компа физически запускаться не будут ? что мешает нажав в стартовом меню нужную кнопку или выбрав нужный комп как либо еще - прогрузив за пол секунды в фпга начинку видеоконтроллера продолжить работать с нужным компом.
Это же позволит как угодно модифицировать конкретный видеоконтроллер без ущерба для остальных.
Если это уже предлагалось - можете просто не отвечать на мой вопрос. Дабы не тратить ваше время.

s_kosorev
05.01.2018, 00:19
реконфигурация на мелкой логике, как бы сложновата

zx-kit
05.01.2018, 01:16
Ребят - честное слово читать все не было времени но по поводу вопроса о совмещении трех разных компьютеров.
Что мешает взять идею Wing Lion примененную в спринтере и то что отличается - сделать в виде загружаемой в FPGA конфигурации ?
одновременно же ве ьри компа физически запускаться не будут ? что мешает нажав в стартовом меню нужную кнопку или выбрав нужный комп как либо еще - прогрузив за пол секунды в фпга начинку видеоконтроллера продолжить работать с нужным компом.
Это же позволит как угодно модифицировать конкретный видеоконтроллер без ущерба для остальных.

Я думал об этом. Можно через разъем типа DRB-9M подключать внешние картриджи с ConfROM для каждого модуля на FPGA. Можно в каждом картридже поставить по 2 ConfROM, прошить две разные конфигурации и при необходимости переключать тумблером. В шине один сигнал переключает конфигурации всех модулей - на FPGA и без FPGA. И мой любимый способ - тумблер выбора конфигурации на переднюю панель.

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

Если в шину добавить еще 3 сигнала, то можно будет с управляющего микроконтроллера подавать на модули байт параметров.

TomaTLAB
05.01.2018, 02:12
Если уж понесло в сторону FPGA и микроконтроллеров, то и конфигурировать ее тем же МК вычитав конфу с SD-шки, что религия не позволяет?
На кой ляд огород городить? А в момент отладки вообще удобней по JTAG-у цепляться.

bigral
05.01.2018, 06:45
Про невозможность "три компа" в одном флаконе. Ну как бы текстовый режим с CP/M и ZX-ом был уже в ATM (и железо NEXT-а теоретически позволяет тоже самое), это именно последней - "игровой части" не было. Я начал эту тему с вопроса: будет ли новый комп чем-то круче msx2+, это потому что в msx2+ вполе себе есть все чего когда либо желали спектрумисты да и вообще строители большенства 8bit компов. Современный atmega рядом с z80 смотрится как smart fortwo рядом с "инвалидкой", ради чего лепить это "бельмо на глазу", вполне себе "задачи для контроллера" решаются на mcs-48 и mcs-51, на крайняк еще на одном z80 (zx-next! и атм нам пример).

Но тема легко начинает дрифовать во флейм, а потому прошу ответить автора на вопросы:

1. Есть ли смысл лепить в один аппарат fpga с 10ns памятью и тут же рядом z80 с 5 вольтовым питанием? Если да то какой смысл, и чем ZX EVO хуже планируемого компа?

2. Описанная конфигурация нового компа (z80 20mhz + 10ns sram + много цветов на точку + ничего "прикольного"), ПРИ САМОМ ХОРОШЕМ РАСКЛАДЕ, будет примерно выглядеть как atari st (или что тоже самое примерно i8086-ПЭЦЭ 10mhz+vga). Это и есть цель нового компа?

zx-kit
05.01.2018, 09:38
Мне интересно сделать компьютер, в котором исправить недостатки графики ZX Spectrum:

Нелинейная адресация байтов на экране
2 цвета на знакоместо 8х8 точек, что приводит к клешингу
Адрес экрана с C000
FLASH и общая яркость у PAPER и INK.
Невозможность без мерцания обновить весь экран (в модели 48 К).

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

Потом пойти дальше и улучшить возможности для написания игр. Увеличить скорость Z80, количество цветов, аппаратный скроллинг. При этом программисты смогут использовать опыт разработки для ZX Spectrum. Но возможностей будет больше и реализовать идеи будет легче. И делать расширение экрана не как раньше - массив точек для графического экрана с непосредственной записью каждой точки или аппаратные спрайты и тайлы. Я предлагаю записывать по 8 точек, без чтения-модификации-записи, просто добавить прозрачный цвет и аппаратный скроллинг фона.

Модульная конструкция для того, чтобы можно было модуль сделать на любой элементной базе: микросхемы DIP, SOIC, CPLD, FPGA, ATMEGA и т.п.

Всегда будет компьютер круче по возможностям. Я делаю улучшение старого компьютера до того уровня, до которого считаю достаточно и интересно. Примерно SEGA. При этом способ программирования Z80 остается как у ZX Spectrum. И можно будет доработать старые игры для улучшения графики как в эмуляторе ULAX.

Другие компьютеры мне не интересны. Может у них больше возможностей. У меня был Спектрум и я улучшаю его. Это мне интересно.
Самое главное - чтобы программисту не надо было много изучать для использования новых возможностей графики. Принцип рисования должен остаться похожим, но возможностей больше и убрать ограниния ZX Spectrum. Получится игровой комп.

vlad
05.01.2018, 10:27
И можно будет доработать старые игры для улучшения графики как в эмуляторе ULAX.
Схема ULAX, описание, игры есть? Как вы его собираетесь делать?

Можете сказать, чем графика ULAX и техника раскраски существующих игр лучше чем в Spec256?

Вот вам для сравнения раскрашенная игра для Spec256 на DivGMX(хотите модульность - используйте крос-плату с несколькими слотами ZXBUS):

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

Для раскрашивания игр не требуется внесения изменений в код игры, есть возможность включения слоя фоновой графики, раскрашено (https://github.com/mvvproject/Spec256-Games) более 20 игр.

zx-kit
05.01.2018, 10:40
Чем больше компов - тем лучше. Каждый выбирает по себе. Видео без клешинга атрибутов наглядно показывает, как можно улучшить вид старых игр, если убрать клешинг. В ходе пятилетней работы над видеокартой METEOR найдено простое решение для устранения клешинга. Этих способов несколько, я буду делать по-своему. Раскраска игр - это не интересно. Интересно доработать подпрограммы вывода графики для улучшения внешнего вида игры. Ну и надо думать про новые игры, которые могут появиться, если добавить мои предложения по улучшению графики в эмуляторы.

Totem
05.01.2018, 16:18
Можете сказать, чем графика ULAX и техника раскраски существующих игр лучше чем в Spec256?
Она позволяет сохранить стиль игры, именно в "ретро", не перерисовывая, всю графику. Ее вообще рисовать не надо.
При полной или частичной перерисовке, будет отличаться от spec256 -15 битным цветом.(естественно, если нужно)
Оба способа могут быть использоваться одновременно.
Это хорошо подходит, для достаточно простого улучшения старого софта.
Новые игрушки могут использовать уже "плюшки" ULAX или софт, где есть исходники, или те кому не лень копать модифицировать код самой игры.
Это только часть возможностей.

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


Чем больше компов - тем лучше. Каждый выбирает по себе. Видео без клешинга атрибутов наглядно показывает, как можно улучшить вид старых игр, если убрать клешинг. В ходе пятилетней работы над видеокартой METEOR найдено простое решение для устранения клешинга. Этих способов несколько, я буду делать по-своему. Раскраска игр - это не интересно. Интересно доработать подпрограммы вывода графики для улучшения внешнего вида игры. Ну и надо думать про новые игры, которые могут появиться, если добавить мои предложения по улучшению графики в эмуляторы.

ну вот опять, шел к компу- пришел к видяхе.

vlad
06.01.2018, 14:20
Она позволяет сохранить стиль игры, именно в "ретро", не перерисовывая, всю графику. Ее вообще рисовать не надо.
Новые игрушки могут использовать уже "плюшки" ULAX или софт, где есть исходники, или те кому не лень копать модифицировать код самой игры.
На Spec256 графика игры и код не трогается вообще, т.е. не требуется поиск и модификация процедур вывода. На раскрашивание затрачивается в разы меньше времени, в отличии от ULAX.

При полной или частичной перерисовке, будет отличаться от spec256 -15 битным цветом.(естественно, если нужно)
Графика Spec256 представлена из палитры 16,7 млн различных цветов, в отличие от ULAX, где всего лишь 32768 возможных цвета.

Это только часть возможностей.
В Spec256 есть аппаратная фоновая графика, которой нет в ULAX.
Spec256 поддержан и аппаратно реализован в отличие от ULAX.
ULAX - нигде аппаратно не представлен, его не возможно использовать ни на одном клоне или классическом ZX-Spectrum, т.е. это всего лишь только раздутая выдумка и не более, как Быстрая видеокарта "METEOR-2013" (http://zx-pk.ru/threads/21462-bystraya-videokarta-quot-meteor-2013-quot.html?highlight=%d0%bc%d0%b5%d1%82%d0%b5%d0%be %d1%80), "Meteor Graphics" (http://zx-pk.ru/threads/25643-igry-bez-kleshinga-atributov-dlya-quot-meteor-graphics-quot.html?highlight=%d0%bc%d0%b5%d1%82%d0%b5%d0%be %d1%80), Модульный "Орион" (http://zx-pk.ru/threads/27261-modulnyj-quot-orion-quot.html?highlight=%d0%9c%d0%be%d0%b4%d1%83%d0%bb %d1%8c%d0%bd%d1%8b%d0%b9+%d0%9e%d1%80%d0%b8%d0%be% d0%bd), Модульный компьютер "CHELYABINSK" (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html) :)

Totem, у тебя интересная концепция, часть идей реально можно реализовать, но не в этом ТС проекте.

Totem
06.01.2018, 15:35
На Spec256 графика игры и код не трогается вообще, т.е. не требуется поиск и модификация процедур вывода. На раскрашивание затрачивается в разы меньше времени, в отличии от ULAX.
Взял и перевернул все с ног на голову.
В ULAX тоже код оригинальный и графика не подвергаются модификации.
Про меньше времени? тут вообще у тебя парадокс, 15 игр примерно за 3 месяца притом, во время стадии разработки эмулятора, да они в разной степени готовности, но цели была проработка "внутренностей", а не релиз игры.



Графика Spec256 представлена из палитры 16,7 млн различных цветов, в отличие от ULAX, где всего лишь 32768 возможных цвета.
15bit тут просто "из коробки", чего достаточно для портирования графики с любой ретро платформы .
палитры оставим тем, кто любит усложнять себе жизнь.
Поиск графики и "подмена", тут мало чем отличаются от Spec256. Результат будет зависеть исключительно от художественных навыков.



В Spec256 есть аппаратная фоновая графика, которой нет в ULAX.
Spec256 поддержан и аппаратно реализован в отличие от ULAX.
Слои ULAX не нужны, блиттер
Если кодер хочет ускорить, он поправит свой код с минимальными доработками. Если нет, может просто, ее "обезклэшить", вообще не трогая код, может "раскрасить" если хочет.


ULAX - нигде аппаратно не представлен, его не возможно использовать ни на одном клоне или классическим ZX-Spectrum, т.е. это всего лишь только раздутая выдумка и не более
Т.е. нам нечего больше делать как писать "фейки"?
Утомляет писать одно и тоже , проекту 6 месяцев, у него есть эмулятор и несколько игр, демонстрирующие потенциальные возможности.
Работы над картой ведутся. Учитывая, что минимум я на 2,5 месяца выбыл по больничному, результат вполне нормальный.
Можешь дальше развивать идею фейка"

P.S. Модераторам просьба перенести в раздел ULAX.

Lethargeek
06.01.2018, 16:29
На Spec256 графика игры и код не трогается вообще, т.е. не требуется поиск и модификация процедур вывода. На раскрашивание затрачивается в разы меньше времени, в отличии от ULAX.
Наглая брехня! :v2_dizzy_stop: Модификация процедур не требуется, на разбор их времени нужно на порядок меньше, чем на обязательную раскраску "в отличие" (на что темпы адаптации игор какбэ намекают).


Графика Spec256 представлена из палитры 16,7 млн различных цветов, в отличие от ULAX, где всего лишь 32768 возможных цвета.
лол, и что ты собираешься с ними делать? выделять 128 цветов из 256 под плавные градиенты? :v2_laugh:


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


Spec256 поддержан и аппаратно реализован в отличие от ULAX.
ну что ж, не он первый из ряда мертворождённых и тупиковых :v2_rolley


ULAX - нигде аппаратно не представлен, его не возможно использовать ни на одном клоне или классическом ZX-Spectrum, т.е. это всего лишь только раздутая выдумка и не более,
Spec256 много лет был "нигде аппаратно не представлен" (потому что неоправданно монструозен)
а с ULAX вдруг прям такой ты сразу нетерпеливый, т.е. это всего лишь только твоя боль в районе копчика и не более :v2_tong2:

vlad
06.01.2018, 17:30
лол, и что ты собираешься с ними делать? выделять 128 цветов из 256 под плавные градиенты?
Само название Spec256 как-бы намекает :v2_dizzy_ironic:

пффф, нашёл чем похвалиться, сделать это можно элементарно (потому я пока что и не сделал - неинтересно)
Так прямо и пиши - не умею и не знаю, а то им видите ли неинтересно :v2_laugh:

ты бы лучше рассказал наконец, как твой "оптимизированный" спек мог остаться полносовместимым с оригиналом
Игры идут, значит совместимость сохраняется, а полностью совместимый - это уже копия 1:1 того-же ZX Spectrum, сам себе противоречишь, учи мат часть :v2_laugh:

а то после твоих же сообщений - гложут сомнения; или как упакованную графику красить будешь
Так как и на ULAX :v2_laugh:

ну что ж, не он первый из ряда мертворождённых и тупиковых
Spec256 реально работает в железе, а ULAX всего-лишь одна из выдумок, которой и останется, т.к. даже тех. описания не существует :v2_laugh:

Spec256 много лет был "нигде аппаратно не представлен" (потому что неоправданно монструозен)
Был, т.к. никто не смог реализовать его до этого аппаратно, хотя это давно уже можно было сделать. Можно даже на Speccy2010 портировать, если будут желающие...

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

Totem
06.01.2018, 17:34
Само название Spec256 как-бы намекает
Угу намекает, на ограничения.


Так как и на ULAX
Пример?



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

vlad
06.01.2018, 17:48
Угу намекает, на ограничения.
Т.к. такого кол-ва цветов вполне достаточно для спектрумовских игр.

Пример?
Использованием реализованной в Spec256 технологии индексной маркировки. Как по твоему фон меняется в играх в которых не изменился ни один бит кода?

Наблюдаем только едкую желч тролля и не более.
Какой вопрос - такой и ответ... Продолжаю ждать конструктивного диалога по ULAX.

shurik-ua
06.01.2018, 17:48
Пока вы не выложите описание этого самого ULAX - с вами трудно дискутировать )
Мол у нас есть чёрный ящик, который сразу делает хорошо - но как он это делает пока не скажем.

Lethargeek
06.01.2018, 17:58
Использованием реализованной в Spec256 технологии индексной маркировки.
какой нафиг "индексной маркировки"? :v2_dizzy_facepalm: в результате распаковки в лучшем случае ты получишь лишь два цвета на ВСЕ объекты, включая фоновые; а в худшем случае - рассинхронизацию


Пока вы не выложите описание этого самого ULAX - с вами трудно дискутировать )
так не дискутируй, кто заставляет? но vlad ведь и не собирается дискутировать, а только толсто троллить и нагло врать

Totem
06.01.2018, 18:21
Т.к. такого кол-ва цветов вполне достаточно для спектрумовских игр.
Ну это только по твоему мнению- в ULAХ, можно брать любую графику, подвергая ее минимальной конвертации в редакторе, не задумывать о палитре.
Это один из способов.
Можно не брать графику, а поиграться с "клэшем"
Это один из способов.
Оба способа могут быть реализованы одновременно.
Читай выше.
Все это можешь наблюдать, в примерах.



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

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


Пока вы не выложите описание этого самого ULAX - с вами трудно дискутировать )
Мол у нас есть чёрный ящик, который сразу делает хорошо - но как он это делает пока не скажем.
Не правда, "ящик есть" -"черный" он, по причине совсем другой .
Кстате, ты сам приложил к этому усилия, выдернув фразу из контекста
http://zx-pk.ru/threads/27710-zx-ulax.html?p=916053&viewfull=1#post916053

zx-kit
13.01.2018, 08:14
MEMORY MAPPER компьютера «CHELYABINSK»
Новая версия там (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html?p=945572&viewfull=1#post945572).

Totem
13.01.2018, 09:47
Ну вот, уже очень близко, скоро будет, ATM, TS и }{имера, только со своими портами и кучей логики.

zx-kit
13.01.2018, 13:25
Ну вот, уже очень близко, скоро будет, ATM, TS и }{имера, только со своими портами и кучей логики.
Посмотрел варианты мапперов ATM2, TS, ZX-EVO BASE, MSX2 и выбрал простой, быстрый и эффективный - свой !

TomaTLAB
13.01.2018, 16:02
В каждом окне можно выбрать внутреннюю память компьютера (ОЗУ) или внешнюю память (картридж) с помощью порта E4:
Я правильно понимаю, что получается два "слота" в терминах MSX? Почему не четыре? Пол байта осталось.


В каждом окне можно разрешить/запретить запись в ОЗУ с помощью порта E5:
А это для чего?

zx-kit
13.01.2018, 16:21
Я правильно понимаю, что получается два "слота" в терминах MSX? Почему не четыре? Пол байта осталось.

В MSX2 4 слота. 0 для ПЗУ BIOS+BASIC, на 1 и 2 описания нет. Наверно там картриджи. В третьем слоте еще делится на 4. Слот второго уровня. Там тоже может быть два ПЗУ, один один слот ОЗУ, еще один для сетевой карты. Для управления используются 2 порта и ячейка памяти с адресом FFFF. Намудрили сильно. Зачем это ? У меня только ОЗУ, ПЗУ и видеокарта. Пока не представляю что еще можно подключать. Принцип MSX2 не очень понятен и удобен.


А это для чего?
В окне 0 будет видеокарта только на запись. Если запретить запись в ОЗУ в окне 0, то в это окно можно подключать разные страницы ОЗУ со спрайтами. И копировать их из ОЗУ в видеокарту. При этом адреса могут быть одинаковые. В окнах 2-4 отключать запись пока нет необходимости. Может для символьного экрана пригодится.

В MSX2 слот - это скорее всего комбинация типов памяти в окнах. А у меня только два типа памяти и ПЗУ внешнее.

TomaTLAB
13.01.2018, 17:00
В MSX любой слот может расширятся на 4 субслота, не только 3-й. То, что для этого использовали не порт, а ячейку памяти, действительно, намудрили. Но может на то были причины.
Слоты и субслоты там в принципе равнозначны (кроме 0-го откуда комп стартует, ROM-BIOS должен быть в нем).
Куда втыкать все остальное, в принципе, по барабану, как правило. Есть нюансы, но то от несоблюдения стандарта.
Т.е. можно, например, "переставить" сетевую карту в "картриджный" слот 1, а ее место воткнуть "картридж" с игрой - и с вероятностью 99% все будет работать, юзер даже не заметит.

Вы так же начинаете плодить лишние разнородные сущности, ограничивая однородные. При этом "сваливаете" все в одно окно.
Смотрите, вы можете маппером поставить в любое окно любую 16к банку из 256-и возможных. Итого 4 метра адресного пространства.
Это в одном "слоте". У вас их 2 (но легко 4) итого 8 (но легко 16) метров! Не нужно относится к "слотам" как к чему-то физическо-механическому - это всего лишь области адресного пространства.
Что, и где в них размещать - зависит от фантазии.

Я же в своей конструкции делаю еще проще, у меня один большой маппер и никаких слотов. Выделено 16 портов (или 8 регистров по 16 бит), 8 окон по 8кБ, в любое окно ставится любая 8к банка из 65536-и :)
Что я там распихаю по этим 64к банок...

zx-kit
13.01.2018, 19:02
Запись в ОЗУ можно отключать только в окне 0.

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

Давайте далего в будущее заглядывать не будем. Жить нам осталось недолго. Распределим память окнами по 16 К между ОЗУ, ПЗУ и видеокартой. Для начала достаточно.

zx-kit
15.01.2018, 19:30
MEMORY MAPPER компьютера «CHELYABINSK»

Память делится на блоки по 4 Мбайт. Блоки делятся на страницы по 16 Кбайт. Адресное пространство Z80 делится на окна по 16 Кбайт. В каждом окне можно подключить любую страницу любого блока.

Номера и адреса окон:
Окно номер 0 (00) - адреса 0000-3FFF
Окно номер 1 (01) - адреса 4000-7FFF
Окно номер 2 (10) - адреса 8000-BFFF
Окно номер 3 (11) - адреса C000-FFFF

Номера страниц по 16 Кбайт записываются в порты:
E0 - номер страницы памяти в окне 0
E1 - номер страницы памяти в окне 1
E2 - номер страницы памяти в окне 2
E3 - номер страницы памяти в окне 3

Номера блоков по 4 Мбайт записываются в порты:
E4 - номер блока памяти в окне 0
E5 - номер блока памяти в окне 1
E6 - номер блока памяти в окне 2
E7 - номер блока памяти в окне 3

00 = SRAM0
...
80 = SDRAM0
...
FF = START ROM

Модуль памяти может занимать несколько блоков. Например, если модуль сделан на базе микросхемы SDRAM 32 Мбайта, то он займет 8 блоков.

После включения или сброса компьютера запускается на выполнение программа в постоянной памяти (ROM). Для увеличения возможностей компьютера ROM располагается на сменных картриджах. Это позволит перенастраивать компьютер для простого и быстрого использования сразу после включения. Размер картриджа может быть до 4 Мбайт. Для удобной работы можно иметь несколько картриджей на микросхемах FLASH. Во FLASH можно записывать нужные в данный отрезок времени или часто используемые игры, системные программы и загрузчики операционных систем.

Оперативная память (RAM) используется для хранения стека Z80, команд, данных и переменных программ, запускаемых с ROM или внешних носителей. ОЗУ располагается на модулях компьютера.

Окно 0 используется для записи графических данных в видеокарту "METEOR". В этом окне совместно с видеокартой можно использовать ROM или RAM в режиме чтения.

170815: Добавлена возможность в каждом окне выбора блоков ROM и RAM размером по 4 Мбайта. Может когда-нибудь понадобятся такие объемы. В окне 0 только чтение из памяти.

180121: MEMORY MAPPER преобразован в DEVICES MAPPER (http://zx-pk.ru/threads/28612-modulnyj-kompyuter-quot-chelyabinsk-quot.html?p=946507&viewfull=1#post946507)

OrionExt
15.01.2018, 22:27
Я бы не наступал на одни и те же грабли в разрезе истории MSX и добавил бы правила.
1. Полная дешифрация портов (16bit).
2. Резервирование портов 0х0000 … 0х003F для семейства процессоров Z180.
Игнорирование этих правил привело со временем к трудностям (невозможности) расширения стандарта MSX.

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

TomaTLAB
16.01.2018, 02:16
MEMORY MAPPER компьютера «CHELYABINSK»
О! Похоже. немного обмозговать нужно... По крайней мере в одну сторону думать начали.

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


FF = START ROM Логично. железячно удобно.

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


Я бы не наступал на одни и те же грабли в разрезе истории MSX и добавил бы правила.
1. Полная дешифрация портов (16bit). Маппер один, читаемый. Наличие памяти от состояния маппера не зависит. Даже если вообще ОЗУ нет, маппер должен быть весь целиком. Ну кто знает о чем я ;)

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

Упс... Для Z80 да.

zx-kit
16.01.2018, 06:09
Я бы не наступал на одни и те же грабли в разрезе истории MSX и добавил бы правила.
1. Полная дешифрация портов (16bit).

Адресация двумя байтами неудобна для программирования и медленная, портится регистр С. Может лучше отдельный порт для старшего байта? Сначала используем 0. Если не хватит портов, то будем записывать туда 1, 2, 3... Но дешифрация двух байтов - это еще сложные схемы портов ввода-вывода. В Спектруме для дешифрации 1 бит использовали...


2. Резервирование портов 0х0000 … 0х003F для семейства процессоров Z180.

Это можно. Начать использовать порты от FF к 40 в младшем байте.


Игнорирование этих правил привело со временем к трудностям (невозможности) расширения стандарта MSX.
А что надо сделать ? И что даст Z180 ? Как для него программы писать ? Будут ли работать старые игры и программы CP/M ?

Totem
16.01.2018, 09:43
А что надо сделать ? И что даст Z180 ? Как для него программы писать ? Будут ли работать старые игры и программы CP/M ?
33MГц- это даст.
там ядро Z80, чуть улучшенное, и пара команд работают не так, но редких.
порты там можно и переносить в 3 области.

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


Адресация двумя байтами неудобна
Бред какой


Я бы не наступал на одни и те же грабли в разрезе истории MSX и добавил бы правила.
1. Полная дешифрация портов (16bit).
2. Резервирование портов 0х0000 … 0х003F для семейства процессоров Z180.
Игнорирование этих правил привело со временем к трудностям (невозможности) расширения стандарта MSX.
Он их любит, всмысле грабли.

Reobne
16.01.2018, 11:15
Сообщение от zst
Я бы не наступал на одни и те же грабли в разрезе истории MSX и добавил бы правила.
1. Полная дешифрация портов (16bit)
Неправильно цитируешь! Это сказал не zst, а OrionExt.

Totem
16.01.2018, 11:57
Неправильно цитируешь! Это сказал не zst, а OrionExt.
Поправил, спб.

OrionExt
16.01.2018, 12:20
Адресация двумя байтами неудобна для программирования и медленная, портится регистр С.
Ну что делать, какой есть Z80. А так регистр С портит старший разряд порта :v2_smile: И если за этим не следить (а кому это надо) со временем получается … (один из вариантов (http://map.grauw.nl/resources/msx_io_ports.php#switch_io) как это пытались решить. Вот где неудобно получилось.)


Может лучше отдельный порт для старшего байта? Сначала используем 0. Если не хватит портов, то будем записывать туда 1, 2, 3...
Вы считаете это проще?


Но дешифрация двух байтов - это еще сложные схемы портов ввода-вывода. В Спектруме для дешифрации 1 бит использовали...
Один корпус логики.


А что надо сделать ? И что даст Z180 ? Как для него программы писать ? Будут ли работать старые игры и программы CP/M ?
По мне Z180 единственный реальный кандидат на апгрейд ЦПУ. Это лично мое, а так можно и на Z80 сидеть и не куда не дергаться.

zx-kit
16.01.2018, 20:20
Можно распределить порты так:
00-3F - внутренние порты Z8S180 (64 порта).
40-4F - 16 битные порты (4096 портов).
50-FF - 8 битные порты (176 портов).

Для упрощения конверсии игр с ZX Spectrum можно оставить такие же адреса AY(FD) , клавиатуры (FE) и BEEPERa (FE), KEMPSTON JOYSTICK и MOUSE (DF).

Однобайтные порты очень удобно использовать. Не надо загружать BC. Можно использовать эти регистры для более полезных вещей и ускорения работы подпрограммы. Например, чтобы установить текущий атрибут можно использовать команды:
LD A,(BC) ; загрузка атрибута из области данных
OUT (ATTR),A ; запись в порт атрибута

А для включения некоторых часто используемых режимов просто:
OUT (MODE3),A ; без загрузки A

Чтобы дешифрировать 16 битов надо схему сравнения, которая будет занимать не меньше трех микросхем.
33MГц- это даст.
там ядро Z80, чуть улучшенное, и пара команд работают не так, но редких.
порты там можно и переносить в 3 области.



Давайте поставим Z8S180 на частоте 20 MHz. Почитал, что там нового добавили:
Встроенный генератор.
2 последовательных порта.
2 таймера.
Несколько входов прерываний.
Команда умножения.
DMA.
Некоторые команды выполняются за меньшее кол-во тактов. Например, LDIR - за 14 тактов вместо 21. Ускорение в 1.5 раза.
Есть процессоры на 33 МГц. Но их лучше не использовать.

3 области памяти со смещением с шагом 4 Кбайта в пределах 64 К для адресации 1 Мбайта. Но эти возможности лучше не использовать. У нас уже хороший маппер есть.

OrionExt
16.01.2018, 21:31
Чтобы дешифрировать 16 битов надо схему сравнения, которая будет занимать не меньше трех микросхем.
Микросхему 74LS688 вам в помощь:)

Totem
16.01.2018, 23:46
Можно распределить порты так:
00-3F - внутренние порты Z8S180 (64 порта).
40-4F - 16 битные порты (4096 портов).
50-FF - 8 битные порты (176 портов).

Для упрощения конверсии игр с ZX Spectrum можно оставить такие же адреса AY(FD) , клавиатуры (FE) и BEEPERa (FE), KEMPSTON JOYSTICK и MOUSE (DF).

Однобайтные порты очень удобно использовать. Не надо загружать BC. Можно использовать эти регистры для более полезных вещей и ускорения работы подпрограммы. Например, чтобы установить текущий атрибут можно использовать команды:
LD A,(BC) ; загрузка атрибута из области данных
OUT (ATTR),A ; запись в порт атрибута

А для включения некоторых часто используемых режимов просто:
OUT (MODE3),A ; без загрузки A

Чтобы дешифрировать 16 битов надо схему сравнения, которая будет занимать не меньше трех микросхем.
Давайте поставим Z8S180 на частоте 20 MHz. Почитал, что там нового добавили:
Встроенный генератор.
2 последовательных порта.
2 таймера.
Несколько входов прерываний.
Команда умножения.
DMA.
Некоторые команды выполняются за меньшее кол-во тактов. Например, LDIR - за 14 тактов вместо 21. Ускорение в 1.5 раза.
Есть процессоры на 33 МГц. Но их лучше не использовать.

3 области памяти со смещением с шагом 4 Кбайта в пределах 64 К для адресации 1 Мбайта. Но эти возможности лучше не использовать. У нас уже хороший маппер есть.
ты вообще противоречишь сам себе и изначальной теме.
давай разберем.
ты вот по тексту, пытаешься сделать MSX совместимую самоделку, с возможностью портирования игр с ZX, ты в своем уме?
а хотел сделать быстрый игровой комп с катриджами- при этом отказываясь от топового камня на 33МГц.
если не в курсе их у меня есть, и есть наши наработки по 180 с Ewgeny7, поковыряй ветку "самоделки".
3 области памяти со смещением с шагом 4 Кбайта в пределах 64 К для адресации 1 Мбайта. Но эти возможности лучше не использовать. У нас уже хороший маппер есть
у тебя не маппер, а ад, даже, для MSX -самой продвинутой с этой точки зрения и времени платформы.
хочешь меньше корпусов, а не хочешь использовать MMU 180.
помолчим уж, что CP/M и Uziх, есть под 180.
Что за бред ты нам тут предлагаешь? я уже не гворю о видео -невидемой карте?:v2_dizzy_priest::v2_dizzy_vampire::v2_ dizzy_mutant::v2_dizzy_biggrin2:

s_kosorev
17.01.2018, 00:13
2. Резервирование портов 0х0000 … 0х003F для семейства процессоров Z180.
почему ez80 за бортом? нужно резерв 0-0xff

OrionExt
17.01.2018, 00:50
почему ez80 за бортом? нужно резерв 0-0xff
ez80 спасибо, это без меня:)

zx-kit
17.01.2018, 01:07
ты вообще противоречишь сам себе и изначальной теме.
давай разберем.
ты вот по тексту, пытаешься сделать MSX совместимую самоделку, с возможностью портирования игр с ZX, ты в своем уме?

Из MSX2 предлагали маппер. Но он мне не подходит. Игры с MSX я не собирался портировать. Там другая видеокарта. Просто так не портируешь. Да и клешинга там нету. Зачем они.


а хотел сделать быстрый игровой комп с катриджами- при этом отказываясь от топового камня на 33МГц.

Не слишком ли он быстрый будет для памяти и FLASH ?


если не в курсе их у меня есть, и есть наши наработки по 180 с Ewgeny7, поковыряй ветку "самоделки".

Посмотрел - все картинки стерлись. Архив с файлами нашел. Какой у тебя 180 - Z8S180 33 MHz PLCC-68 ?


3 области памяти со смещением с шагом 4 Кбайта в пределах 64 К для адресации 1 Мбайта. Но эти возможности лучше не использовать. У нас уже хороший маппер есть
у тебя не маппер, а ад, даже, для MSX -самой продвинутой с этой точки зрения и времени платформы.
хочешь меньше корпусов, а не хочешь использовать MMU 180.

Я же в одной строке кратко описал возможности MMU. Ничего особенного. А если делать память больше 1 Мбайта, то он только мешает. Для 1 Мбайта и MSX маппер может и подходит, но слишком громздкий. Я считаю, что мой удобнее. Никаких слотов и объем доступной памяти больше.


помолчим уж, что CP/M и Uziх, есть под 180.
Что за бред ты нам тут предлагаешь? я уже не гворю о видео -невидемой карте?:v2_dizzy_priest::v2_dizzy_vampire::v2_ dizzy_mutant::v2_dizzy_biggrin2:
Я делаю свой компьютер, а не клон MSX. И он будет ближе к ZX Spectrum-у, только с большими возможностями. Примерно как ZX-EVO.

Totem
17.01.2018, 01:41
почему ez80 за бортом? нужно резерв 0-0xff

А у тебя есть? У меня есть и отладка и прогер и камни. Кстати год назад, человек опенсорсе сделал, кабло и софт.
а еще резерв, по терпению изучения всех нюансов с префиксами и тд

- - - Updated - - -


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

- - - Updated - - -


Посмотрел - все картинки стерлись. Архив с файлами нашел. Какой у тебя 180 - Z8S180 33 MHz PLCC-68 ?
qfn тоже есть.

zx-kit
17.01.2018, 01:51
ой ты, запускаешься на частоте, способности eprom древней, копирушь в срам свое пзу, запрещаешь к нему запись, точно также к коду и фуллскриновым картинкам, где скорость вывода не принципиальна.

Тогда надо переключаемый генератор, который после сброса и при обращениии к ПЗУ будет выдавать низкую частоту, а при работе с RAM программно переключаться на максимальную скорость. Будет ли 180 работать от внешнего генератора и удваивать с 16 MHz до 32 ?

Но и RAM должна быть не более 30 ns. Уже выбор по микросхемам меньше. Хотя, если делать максимальную скорость, то надо 10 ns. Еще на этой скорости могут не заработать микросхемы серии К555. Также и другие внешние устройства не расчитаны на такую скорость.


qfn тоже есть.
Хотелось бы приобрести Z8S180 33 MHz PLCC-68, так как ее легче макетировать. Надо пробовать, будет ли работать на максимальной скорости.

Totem
17.01.2018, 02:14
Я же в одной строке кратко описал возможности MMU. Ничего особенного. А если делать память больше 1 Мбайта, то он только мешает. Для 1 Мбайта и MSX маппер может и подходит, но слишком громздкий. Я считаю, что мой удобнее. Никаких слотов и объем доступной памяти больше.
Фигово ты "курил мою тему", ей вообще по барабану какой у тебя маппер, все что она делает, это контролирует запись/чтение, в адресном пространстве 64K.
что и требуется для модульного-игрового -самодельного компа, особливо ориенированого на катрижди, просто потому как у тебя, нет ограничений.

- - - Updated - - -


Тогда надо переключаемый генератор, который после сброса и при обращениии к ПЗУ будет выдавать низкую частоту, а при работе с RAM программно переключаться на максимальную скорость. Будет ли 180 работать от внешнего генератора и удваивать с 16 MHz до 32 ?
У S180 , есть порт который отвечеает за удвоение частоты PHI, у 180 без S такого нет.
Работает, не сомневайси :)
QFN могу выслать, PLCC у меня один, не дам :)

- - - Updated - - -


Но и RAM должна быть не более 30 ns
не поверишь, дам и память, 512K 5V 20ns.

- - - Updated - - -


Также и другие внешние устройства не расчитаны на такую скорость.
там wait тоже можно сделать сколько нужно.

- - - Updated - - -


Еще на этой скорости могут не заработать микросхемы серии К555
не поверишь,вышлю серию 74F, если попросишь .:v2_dizzy_biggrin2:

zx-kit
17.01.2018, 02:29
Фигово ты "курил мою тему", ей вообще по барабану какой у тебя маппер, все что она делает, это контролирует запись/чтение, в адресном пространстве 64K.
что и требуется для модульного-игрового -самодельного компа, особливо ориенированого на катрижди, просто потому как у тебя, нет ограничений.

- - - Updated - - -


У S180 , есть порт который отвечеает за удвоение частоты PHI, у 180 без S такого нет.
Работает, не сомневайси :)
QFN могу выслать, PLCC у меня один, не дам :)

- - - Updated - - -


не поверишь, дам и память, 512K 5V 20ns.

- - - Updated - - -


там wait тоже можно сделать сколько нужно.

- - - Updated - - -


не поверишь,вышлю серию 74F, если попросишь .:v2_dizzy_biggrin2:
Вышли, пожалуйста. Для маппера памяти и части схемы надо быстрые аналоги:
4 шт К555ИР26 или ИР32.
2 шт ИР23
2 шт ИД7
2 шт ЛА2
2 шт ЛЛ1
2 шт ЛН1
2 шт ТМ2

Но похоже проще это делать в CPLD...
На таких скоростях даже 74F может на заработать, если несколько микросхем соединить последовательно.
Может как в ZX-EVO на материнской плате разместить FPGA/CPLD, на которой сделать маппер и общий дешифратор, а Z180, RAM, буферы для подключения картриджа, порт клавиатуры на модулях ? На шину подавать сигналы управления с дешифратора для управления модулями и старшие адреса памяти.

FPGA с маппером тоже можно на модуле сделать.

Хотя можно начать с макета на Z80 и скорости 6 MHz для опробования идеи. Для начала надо найти 4 шт К555ИР26 или ИР32 для маппера и 8 микросхем КЭШа для одного слоя видеокарты.

Totem
17.01.2018, 02:57
На таких скоростях даже 74F может на заработать

Но похоже проще это делать в CPLD...
наконец к тебе приходит понимание, что быстрая-и супер-пупер -игровая -модульная система , может быть реализована только на более менее современной базе.
Хотя в моем варианте, достаточно и 3,5-7МГц CPU

s_kosorev
17.01.2018, 10:24
ez80 спасибо, это без меня
ну вот так же, z180 не уперся, его еще сложнее чем ez80 достать

Totem
17.01.2018, 11:05
ну вот так же, z180 не уперся, его еще сложнее чем ez80 достать
брал тут
https://ru.utsource.net/sch/z8s180
никаких проблем

Error404
17.01.2018, 14:27
Вышли, пожалуйста. Для маппера памяти и части схемы надо быстрые аналоги:
4 шт К555ИР26 или ИР33.


Наверное ИР32 (аналог ИР26 но с ОК)?

s_kosorev
17.01.2018, 15:03
Вышли, пожалуйста. Для маппера памяти и части схемы надо быстрые аналоги:
производитель, тря

zx-kit
17.01.2018, 15:57
Наверное ИР32 (аналог ИР26 но с ОК)?
Да. ИР32.

Как насчет параметров для символьного режима ? Не в этом компьютере, так в другом. Пока для ТЗ.
Если для монитора 640x480 60 Hz, то лучше и текстовой режим туда вписать. Символы размером 16x8. Тогда влезет 30 строк по 80 символов.

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


брал тут
https://ru.utsource.net/sch/z8s180
никаких проблем

Закажу себе пока Z8S18020VEC. И микросхемы пока буду использовать К555.

Error404
17.01.2018, 16:05
Как насчет параметров для символьного режима ? Не в этом компьютере, так в другом. Пока для ТЗ.
Если для монитора 640x480 60 Hz, то лучше и текстовой режим туда вписать. Символы размером 16x8. Тогда влезет 30 строк по 80 символов.


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

zx-kit
17.01.2018, 16:17
вполне годный режим. Туда и стандартный 80х25 нормально впишется, и еще место на строку состояния/команд останется (или что-то для многооконного меню).
А что с цветами для текстового режима? Он будет? какого вида?
Но только я голосую за отдельный видеоадаптер вменяемой сложности (карта в слоте), даже если при этом придется отказаться от аппаратных скроллингов.
Да, наверно лучше сделать отдельной видеокартой. Кому надо установят. Можно в порт атрибута записать текущий атрибут и закрашивать им символы. 4 бита на цвет фона и 4 бита на цвет символов.

Totem
17.01.2018, 17:09
Закажу себе пока Z8S18020VEC.
А какой смысл в 20MГц ? сэкономить пару сотен? тыж MMU его юзать не собираешься? у тебя свой маппер :v2_dizzy_biggrin2: тогда обычный Z80 20MГц

Error404
17.01.2018, 17:17
4 бита на цвет фона и 4 бита на цвет символов.

И предлагаю еще добавить один 8-битный регистр (аналогично: 4+4), который всему экранному пространству будет добавлять некое цветовое смещение - простейший аналог палитр. Тупо дополнительные константные биты в RR-смесителе цветности, которые можно программировать. Ибо обычные 16с+16с схемы очень ядовитые из-за небольшого количества цветов (и как результат - большого шага градиента между ними). Цена вопроса - одна ИР22.

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

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

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

Кроме того, этот регистр добавляет такую фичу: можно заполнить все посимвольные атрибуты цвета константой ("цветовое смещение" несут теперь они) и вообще их более не трогать, а цвет букв и фона всего экрана выставлять одной командой записи в этот регистр (этакий цветной монохром - быстрый как монохром). Этот режим хорош для CP/M где из коробки поддержки цветов нет (программы его не программируют), но он не лишний (для приятности восприятия).

zx-kit
17.01.2018, 18:01
А какой смысл в 20MГц ? сэкономить пару сотен? тыж MMU его юзать не собираешься? у тебя свой маппер :v2_dizzy_biggrin2: тогда обычный Z80 20MГц
Система будет работать надежнее, меньше греться, можно будет использовать DIP микросхемы для любителей ретро. У Z180 маппер имеет ограничение 1 Мбайт. Поэтому границы настроить на 0000, 8000 и C000. Тогда можно будет пользоваться моим маппером без ограничений размера памяти. Я вот думаю может MP3 + MIDI микросхему подключу. Ей надо много памяти для звуков, а у Z180 DMA есть.

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


И предлагаю еще добавить один 8-битный регистр (аналогично: 4+4), который всему экранному пространству будет добавлять некое цветовое смещение - простейший аналог палитр. Тупо дополнительные константные биты в RR-смесителе цветности, которые можно программировать. Ибо обычные 16с+16с схемы очень ядовитые из-за небольшого количества цветов (и как результат - большого шага градиента между ними). Цена вопроса - одна ИР22.

Т.е. допустим, у меня кадр с 16 цветами и в целом все устраивает, но красный и желтый ввиду их ядовитости хотелось бы приглушить. Меняю содержимое этого регистра и получаю что надо.
Кроме того, этот регистр добавляет такую фичу: можно заполнить все посимвольные атрибуты цвета константой ("цветовое смещение" несут теперь они) и вообще их более не трогать, а цвет букв и фона всего экрана выставлять одной командой записи в этот регистр (этакий цветной монохром - быстрый как монохром). Этот режим хорош для CP/M где из коробки поддержки цветов нет (программы его не программируют), но он не лишний (для приятности восприятия).

Может тогда уж палитру придумать 4->15 битов. Из двух микросхем кэша.

Valen
17.01.2018, 19:29
А может ставить сразу 32-битовый, широкой распространёности и хорошей доступности (с компайлером Си) ?
Тот-же M68K или любой из ARM-ов.
(Банками клацать немного надоело, большую программу неудобно делать.)

TomaTLAB
17.01.2018, 19:33
Ну тогда сразу взять "малинку" и не париться.

zx-kit
17.01.2018, 19:52
(Банками клацать немного надоело, большую программу неудобно делать.)
А если придумать механизм при котором подпрограммы вызывать по номеру ? А в таблице адреса физические.

Или по глобальному адресу. При вызове подпрограммы сохранять в стеке номер блока и страницы. При возврате восстанавливать их из стека.

Valen
17.01.2018, 21:50
Наверно ты прав, можно что-то придумать

Error404
18.01.2018, 12:40
Или по глобальному адресу. При вызове подпрограммы сохранять в стеке номер блока и страницы. При возврате восстанавливать их из стека.

Делал такое в своем клоне CP/M. Для драйверов или крупных многостраничных программ писаных на ассемблере достаточно удобно пользовать, но компиляторы ЯВУ такое обрабатывать не умеют (если только не написать компилятор самому), а практически любое реалистичное портирование на наши 8 бит в современном мире - это С.

OrionExt
18.01.2018, 13:09
Кросс платформенный Си под Z80/180 вроде поддерживают Big модель памяти. Сам не пробовал. Но как я понял там заточено по простые маперы памяти. И понятно, что под наши зоопарки маперов не особо подходят.

bigral
18.01.2018, 16:34
Кросс платформенный Си под Z80/180 вроде поддерживают Big модель памяти. Сам не пробовал. Но как я понял там заточено по простые маперы памяти. И понятно, что под наши зоопарки маперов не особо подходят.

Я как-то смотрел sdcc, максимум чего можно добиться это что оно просто будет само вставлять типа как "макрос" врубления нужной страницы при обращении в дальнюю память или при вызове far jmp... НО все это дело прийдется в проге самой уже планировать изначально, т.е. изначально указать компилеру какой сегмент кода в каком банке будет лежать или какие данные в каком банке. Возникает вообще вопрос это реально кто-то использует? или просто эксперементальная фича в альфа версии у которой нет шанса быть доведенной до ума.

Ну короче, такого автоматизма какой был достигнут на системах pdp-11 или MS-DOS, там где просто пишешь код и хранишь данные в сегментах, а потом link-ер может это все слепить "по разному" (да еще и с overlay-ами) НЕТУ! Да оно и понятно почему - изза того что вся эта штука с overlay-ами очень сильно завязана на linker\loader встроенный либо в саму OS либо завязанным на железо и встраеваемый в exe-шник самим link-ером.

Остановился на том, что надо писать отдельные модули (код+данные), которые ничего не знают ни о памяти ни о страницах, они просто могут манипулировать своими локальными данными используя свои процедуры. После того как все нужные модули будут написанны прийдется написать отдельный мини-kernel который будет связывать все эти модули в кучу, он будет знать как, кого и куда загружать, кому и куда надо вписать адреса вызовов, где и сколько выделить стека. Таким образом делается все вручную от начала до конца, а раз так то про встроенный z180 мапер можно забыть (ну т.е. он то по моще может и такой же самый как у pdp-11 или i8088, но чтоб его применить надо написать по новой rt11 или msdos для z180).

Totem
18.01.2018, 17:11
встроенный z180 мапер можно забыть
ну отчего так сразу
есть softotools -на 30 дней бесплатный.
есть IAR с таблеткой

OrionExt
18.01.2018, 18:38
bigral, почитывая мануалы к коммерческим компиляторам (sdcc не обсуждается) у меня сложилось мнение, что Z180 мапер таки можно использовать из коробки. Тут другое. Все эти компиляторы рассчитаны на генерирование кода для неких промышленных контролеров (в разрезе использования big модели памяти). А так да. Даже для CP/M (продвинутых клонах с ОЗУ > 64Kb) придется строить костыли разной сложности. И таких примеров костылей в интернете можно найти не мало.

Totem
18.01.2018, 18:49
bigral, почитывая мануалы к коммерческим компиляторам (sdcc не обсуждается) у меня сложилось мнение, что Z180 мапер таки можно использовать из коробки. Тут другое. Все эти компиляторы рассчитаны на генерирование кода для неких промышленных контролеров (в разрезе использования big модели памяти). А так да. Даже для CP/M придется строить костыли разной сложности. И таких примеров костылей в интернете можно найти не мало.

в чем выражаются костыли? например?
Например для eZ80, все из коробки и СP/M там уже давно есть. И других ОS и ZDS бесплатный.
И даже кабель отладочный уже давно "поломали"-он вообщем то нужен только для eZ80 c флэшем на борту.
что останавливает? отсутствие железок-платы?

OrionExt
18.01.2018, 18:57
Например для eZ80, все из коробки и СP/M там уже давно есть. И других ОS и ZDS бесплатный.
C eZ80 не знаком даже поверхностно, да и нет желания знакомиться.

Totem
18.01.2018, 19:00
C eZ80 не знаком даже поверхностно, да и нет желания знакомиться.
ну если будет желание, то отладочная плата (фирмовая) у меня есть, как и камень отдельно.

s_kosorev
18.01.2018, 19:46
у меня есть, как и камень отдельно.
вышли zst

Totem
18.01.2018, 20:14
.

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


вышли zst

Всегда знал, что у тебя есть "фаталистическое" чувство юмора:v2_dizzy_biggrin2:

zx-kit
19.01.2018, 04:37
вышли zst

Не надо мне высылать. Я тоже идеей eZ80 не проникся. Z180 - совместим с Z180. Найду для макета. Пока макет на Z80 6 MHz надо сделать.

Для быстрой работы Z180 надо делать два модуля. Основной 4M на быстрой памяти SRAM без задержек и второй для дополнительных данных на SDRAM. А с какой максимальной скоростью будет работать модуль RAM на базе FPGA и SDRAM 32M ? Наверно уже на 14 MHz надо будет тормозить Z180.

Или основной модуль 1M статики, второй 4 М статики, третитй 32M динамики.

Или основной модуль 128К статики, второй 1 М статики, третитй 32M динамики.

...

Надо выбрать размер базового модуля RAM, которого хватит для работы игр.

Надо сразу ориентироваться на возможность портирования SYMBOS на компьютер "CHELYABINSK". Еще надо выбрать накопитель для SYMBOS. Загружать можно с картриджа. Но нужен еще интерфейс с HDD или SD или USB-FLASH. Посоветуйте модуль, который можно использовать в этом компьютере.

Error404
19.01.2018, 12:49
Надо сразу ориентироваться на возможность портирования SYMBOS на компьютер "CHELYABINSK". Еще надо выбрать накопитель для SYMBOS. Загружать можно с картриджа.


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



Но нужен еще интерфейс с HDD или SD или USB-FLASH. Посоветуйте модуль, который можно использовать в этом компьютере.

В качестве SD мне очень нравится решение с аппаратным регистром. Я даже нарисовал такую схему (http://zx-pk.ru/threads/27393-spi-kontroller-dlya-oriona-na-diskretnykh-is.html) (лучшую на мой взгляд из имеющихся на DIP-россыпухе, т.е. сохранен дух эпохи при простоте, универсальности реализации SPI и максимальной для 8-биток скорости работы) с намерением собрать и использовать (более простые но и более тормозные схемы подключения SD я уже успешно использую), но застрял на этапе макетирования (МГТФ-ить усидчивости не хватает), а моделировать в Протеусе я не умею. Но на первый взгляд, должно работать.

Totem
19.01.2018, 14:57
дополнительных данных на SDRAM.:v2_confu::v2_dizzy_wall:

OrionExt
19.01.2018, 16:49
:v2_confu::v2_dizzy_wall:
Мне бы вашу активность да по делу. В разделе MSX/MSX-EXT;)

Комбинашка смайликов – прикольная. Один репу чухает, а второй через стену пытается достучатся, но стена очень толстая.

bigral
19.01.2018, 18:41
Мне бы вашу активность да по делу. В разделе MSX/MSX-EXT;)

Если это касается самого факта попытки применить SDRAM то я поддерживаю такие смайлы. Зачем SDRAM для ретро-платформы? (хотя автор упорно не хочет ответить на вопрос, а вообще ретро ли это, ссылаясь на то что разговор идет на уровне концепции которую потом хоть в 155ла3 хоть в cyclone5 гы гы).

565ру6/5/7 наше все!

OrionExt
19.01.2018, 18:45
Сложно обсуждать поток мыслей топик кастера. Пора ему сделать хотя бы один шаг. И сделать реальную штуку с минимальной обвязкой.

bigral
19.01.2018, 18:45
Надо сразу ориентироваться на возможность портирования SYMBOS на компьютер "CHELYABINSK".

А чем слотовая структура MSX и мегамапер от MSX2 не устраивает? Или у них есть недостатки?

Что если абстрагироваться от v9958 и рассмотреть такой себе msx без видеоконтроллера, чем не устраивает?

OrionExt
19.01.2018, 18:55
И тут все начнется а ПО, и так далеее. А так пофонить можно конечно. Злой я.

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

bigral, Окстись какой MSX? Ты чего-то попутал. В этой дискуссии.

bigral
19.01.2018, 18:57
И тут все начнется а ПО, и так далеее. А так пофонить можно конечно.

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

OrionExt
19.01.2018, 19:24
Сделать мир лучше с метеор-ом. Ага. Пойду я лучше соберу FM-штуку и слушателя добавится - один. И может еще добавится один музыкант FM, хотелось бы.

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

Не хочется – цель топик кастера – огласить. Мне понятно (личное мнение).

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

bigral, ты рихтовал? Я да. Поверь лутше родится заново=) ничего не рихтуется (хи хи в кишках все разное). Это другая история.

zx-kit
19.01.2018, 20:20
Автор этой ОС очень неохотно делится исходниками (хотя вроде по слухам такие единичные случаи и были), большинство портов что есть сделаны им самим. Там в-общем и к прикладному ПО подход такой же: "вот такую модель планирования памяти я придумал, а кому не нравится - валите нафиг, я сам всё напишу". Собственно, оттого в этой ОС и программ всего 9 штук.

Кто нибудь знает, как с ним связаться - где ссылка на его координаты? Надо посоветоваться о характеристиках компьютера, которые подходят для SYMBOS.


В качестве SD мне очень нравится решение с аппаратным регистром. Я даже нарисовал такую схему (http://zx-pk.ru/threads/27393-spi-kontroller-dlya-oriona-na-diskretnykh-is.html) (лучшую на мой взгляд из имеющихся на DIP-россыпухе, т.е. сохранен дух эпохи при простоте, универсальности реализации SPI и максимальной для 8-биток скорости работы) с намерением собрать и использовать (более простые но и более тормозные схемы подключения SD я уже успешно использую), но застрял на этапе макетирования (МГТФ-ить усидчивости не хватает), а моделировать в Протеусе я не умею. Но на первый взгляд, должно работать.
Спасибо, значит надо для макетирования еще ИР24 купить.

Если это касается самого факта попытки применить SDRAM то я поддерживаю такие смайлы. Зачем SDRAM для ретро-платформы? (хотя автор упорно не хочет ответить на вопрос, а вообще ретро ли это, ссылаясь на то что разговор идет на уровне концепции которую потом хоть в 155ла3 хоть в cyclone5 гы гы).
565ру6/5/7 наше все!
Память более 4 Мб на ру5 не сделать. И медленная она. Надо не более 50 ns для Z80 на 20 MHz для статики без WAITов. Большие объемы только у SDRAM. Сам не хочу, но если потребуются большие объемы, то придется на SDRAM. Почему никто не говорит какой объем для базового модуля RAM ?

Сложно обсуждать поток мыслей топик кастера. Пора ему сделать хотя бы один шаг. И сделать реальную штуку с минимальной обвязкой.
А какую минимальную конфигурацию ? Какие взять базовые характеристики модулей ? У меня есть плата с 10 слотами SL-98 для макетирования и макетки к ней. Потом моджно будет поменять разхем. А пока использовать то, что есть. Некоторые микросхемы для макетов еще надо купить. КЭШ, ИР24, ИР32. Часть деталей есть, заказал генераторы 25.175 для VGA 640x480 60 Hz. Постепенно все собирается как из мозаики. Планирую заказать печатные платы VGA VIDEODAC.

А чем слотовая структура MSX и мегамапер от MSX2 не устраивает? Или у них есть недостатки?

Поправьте, если я ошибусь. Про MSX2 почитал. И вот, какое у меня сложилось мнение. В MSX было 128К RAM и упрощенный маппер. В MSX2 памяти 64К, но добавили маппер. Маппер странный и не очень удобный. Слот в MSX2 - это всего лишь комбинация типа памяти в четырех окнах по 16К. В слоте 1 уровня комбинация 00 - это ПЗУ BASIC+ BIOS. Комбинация 11 - это переход к слоту второго уровня. 01 и 10 - картриджи и другие внешние устройства.

2 уровень - 00 = ПЗУ, 11 - ОЗУ до 4 Мб c включение произвольной страницы в любое окно. При этом для всех четырех байтов в ячейке с адресом FFFF !!! Я не понимаю, зачем такие сложности. Я делаю тоже произвольное включение, тоже в 4 окна, тоже по 16 К, тоже до 4Mб. Но я это упрощаю и делаю более удобным. Убрал выбор слота второго уровня из ячейки с адресом FFFF. Убрал вообще слоты. Убрал ПЗУ на плате, улучшил выбор страницы в окне. Стало намного проще. Кроме этого, вместо слотов двух уровней в моем маппере возможность в любом окне выбрать любой блок памяти. При этом можно устанавливать в физические слоты блоки RAM и ROM. Каждый блок размером до 4 Мбайт.


Что если абстрагироваться от v9958 и рассмотреть такой себе msx без видеоконтроллера, чем не устраивает?
Организация памяти не совсем удобная и ограничена размерами RAM и ROM. Не целесообразно копировать полностью маппер MSX2, так потребуется копировать все ROM. Мне подсказали, что у MSX2 хороший маппер. Я изучил, убрал лишнее и усовершенствовал. Получился универсальный маппер без ограничений.

Мне посоветовали зарезервироваь адреса устройств ввод с адресами 00-3F для Z180. Я посчитал это разумным, изучил Z180 и выбрал Z8S18020 для макетирования на будущее.

Мне сказали, что в MSX2 есть огнаничение по порта из-за однобайтовой адресации. Я усовершенствовал. Сделал возможным зарезервировать адреса для Z180, часть адресов для будущего расширени зарезервировал за шеснандцатибитными портами, а большую часть оставил под однобайтными портами для упрощения написания программ. А вы справшиваете, какие недостатки у MSX2 и что спланировал я.

И тут все начнется а ПО, и так далеее. А так пофонить можно конечно. Злой я.

Чтобы было ПО надо адаптировать CP/M для этого компьютера, портировать игры ZX Spectrum с одновременным ускорением устранением клешинга и договориться с автором SYMBOS для адаптации под новый ретро-компьютер. Кроме этого я старался спроектировать компьютер так, чтобы программистам было удобно писать новые программы для компьютера "CHELYABINSK".

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

Сделать мир лучше с метеор-ом. Ага. Пойду я лучше соберу FM-штуку и слушателя добавится - один. И может еще добавится один музыкант FM, хотелось бы.

Я предлагаю продумать подключение микросхемы MP3+Gentral Midi в качестве одного из модулей.


Не хочется – цель топик кастера – огласить. Мне понятно (личное мнение).
Да говори. Цель - на основе опыта нескольких делсятилетий сделать хороший ретро-компьютер с большими возможностями. Устранить недостатки существующих компьютеров.

zx-kit
19.01.2018, 22:54
Подготовленные для макетирования материалы:

https://www.radikal.kz/images/2018/01/20/CHELYABINSK-001.md.jpg (https://www.radikal.kz/images/2018/01/20/CHELYABINSK-001.jpg)

Totem
20.01.2018, 08:11
Надо посоветоваться о характеристиках компьютера, которые подходят для SYMBOS.
Тебя часом Барсик не укусил?

Большие объемы только у SDRAM
Точно нужна вакцина. DRAM то куда обычный делся?

Totem
20.01.2018, 13:22
Мне бы вашу активность да по делу. В разделе MSX/MSX-EXT
Дык это MSX и реала у меня давно нет.
А тут можно "вычленить" из фантазий, хорошую идею для свой поделки.

zx-kit
20.01.2018, 14:57
Сводка портов компьютера "CHELYABINSK"

Распределение портов:
00-3F - внутренние порты Z8S180 (64 порта). Не использовать для портов компьютера.
40-4F - 16 битные порты (4096 портов).
50-FF - 8 битные порты (176 портов).
Порты F4-FF желательно зарезервировать для конфигурации "Ориона-128".

Для упрощения конверсии игр с ZX Spectrum можно оставить такие же адреса AY(FD) , клавиатуры (FE) и BEEPERa (FE), KEMPSTON JOYSTICK и MOUSE (DF).

Однобайтные порты очень удобно использовать. Не надо загружать BC. Можно использовать эти регистры для более полезных вещей и ускорения работы подпрограммы. Например, чтобы установить текущий атрибут можно использовать команды:
LD A,(BC) ; загрузка атрибута из области данных
OUT (ATTR),A ; запись в порт атрибута

А для включения некоторых часто используемых режимов просто:
OUT (MODE3),A ; без загрузки A


Порты ввода:
FE - клавиатура как у ZX Spectrum. старший байт указывает номер ряда.
FF - чтение состояния 256 портов вывода с восьмибитной адресацией. старший байт указывает номер восьмибитного порта.

Порты вывода:
DE - управление скоростью Z80
DF - Kempston joystick and mouse

E0 - младший байт номера режима экрана
E1 - старший байт номера режима экрана
E2 - номер графического экрана
E3 - номер символьного экрана

E4 - номер шрифта
E5 - PAPER
E6 - INK
E7 - ATTR

F0 - номер страницы памяти в окне 0
F1 - номер страницы памяти в окне 1
F2 - номер страницы памяти в окне 2
F3 - номер страницы памяти в окне 3

F4 - номер устройства в окне 0
F5 - номер устройства в окне 1
F6 - номер устройства в окне 2
F7 - номер устройства в окне 3

F8 - смещение слоя по-горизонтали младший байт DXL
F9 - смещение слоя по-горизонтали старший байт DXH
FA - смещение слоя по-вертикали DY
FB - не использовать

FC - управление видеокартой METEOR (0 - запись в память видеокарты разрешена, 1 - запись запрещена)
FD - AY
FE - BEEPER
FF - не использовать

Totem
20.01.2018, 17:16
Для упрощения конверсии игр с ZX Spectrum можно оставить такие же адреса AY(FD) , клавиатуры (FE) и BEEPERa (FE), KEMPSTON JOYSTICK и MOUSE (DF)
серьезно? а какие порты использует ZX? афигенная афигешная афигея, уж прости честный троллинг.
ага

Однобайтные порты очень удобно использовать. Не надо загружать BC.
ага как будто это важно на частоте 14MГц минимум и SRAM.
В итоге и не MSX, и не ZX, еще хочу посмотреть сколько и чего ты адаптируешь и особенно на использование 32МB памяти, да даже 4.
Хочу просто напомнить, что единственная платформа, которая "выжимает все соки из железа" и имеет поддержку/SDK, благодаря разработчикам -это TS-CONF, хочешь сказать, что осилишь?

zx-kit
20.01.2018, 17:57
У кемпстон джойстик два адреса 1F и DF. Так как в новом компьютере порты 00-3F зарезервированы под Z180, остается только один DF.
Скорость увеличивают не для того, чтобы ее потом зря тратить. Подпрограммы рисования должны быть максимально быстрые. Поэтому будут использоваться однобайтовые порты. Тебе жалко чтоли ? Их 176. Зачем тебе двухбайтовые ?

Наверно базовый модуль RAM можно сделать 4 Мбайта, как в ZX-EVO.
Я не обладаю такими навыками как TS-LABS, но это не мешает мне разрабатывать такой компьютер, какой хочу. Таких людей на форуме много. Каждый делает то, что хочет.

barsik
20.01.2018, 18:13
Задача совместить три разных компьютера:

1. ZX Spectrum с устранением клешинга.
2. Текстовый компьютер с CP/M.
3. Игровой компьютер, похожий на Сегу.

У каждого свои графические режимы, развертки, частоты, порты и т.п. Не разделить ли их на три разных компьютера ?

Наиболее быстрая текстообработка получается с текстовым адаптером. Сравните скорость в КОРВЕТЕ, где при ролике глаз ничего не успевает заметить и ролик в СПЕЦИАЛИСТЕ, где можно заснуть во время ролика. И для качественной текстообработки нужна не только скорость вывода и ролика, но и качество фонта.

Минимально приемлемый фонт - с матрицей 7*10, но лучше 8*12. Иметь 80 символов в строке совершенно незачем. При 80-ти символах символы мелкие, зрение портится. Для набора просто текстов достаточно 64 символа в строке. Но т.к сейчас писать просто тексты на 8-ми разрядке не требуется, а удобно лишь иметь возможность писать или редактировать исходники программ, то достаточно текстового режима 53 символа в 21-ой строке.

На СПЕЦИАЛИСТЕ и ОРИОНЕ вообще нет нормальной текстообработки, дикая тормознутость и убогий фонт (а зрение и без того хреновое). Потому в начале 90-тых сделал несколько текстовых адаптеров и попробовав разные форматы экрана, в итоге пришёл к выводу, что наиболее практичный формат это 53 символа в 21-ой строке. Этого достаточно как для комментариев в ассемблерных исходниках, так и для программ на ЯВУ.

При этом удобный кварц в 9 МГЦ, красивый и главное разборчивый фонт 8*12 не портящий зрение, в адресном пространстве на экран тратится менее 2 кб и годится самое тормозное ОЗУ 565 РУ2 (а для 64 символов в строке скорости 565 РУ2 уже не хватает, оттого в КОРВЕТЕ и пришлось ставить ОЗУ 132 РУ4, что скоростной аналог 565 РУ2).

Текстовый адаптер не обязан быть синхронным с тактом CPU. Это я к тому, что нет необходимости встраивать текстовый адаптер в сам компьютер. Это приведёт к громоздкости и в итоге до реала дело так и не дойдёт. Пусть видеочасть будет определяться видео режимом ZX-Spectrum.

Достаточно предусмотреть одну карту памяти, где формируется выборка на желаемую экр.область в 2 кб. На слот надо вывести две цепи - /CS 2 кб и /MEMDI (Memory disable), отключающий все устройства на основной плате. Тогда при установке платы текстового адаптера в слот, цепи /CS 2 кб и /MEMDI автоматически замыкаются и текстовая экранная память оказывается в адресном пространстве.

У меня к этому личный корыстный интерес, т.к если выпустить печатные платы текстового адаптера, то его захотят поиметь пользователи тормозных рэтро-компьютеров не имеющих нормальной текстообработки (а это все компьютеры кроме КОРВЕТА и ЮТ88). Сейчас я пользуюсь тормозным СПЕЦИАЛИСТОМ, отчего при ролике экрана на нём постоянно засыпаю и падаю со стула. Потому и стал снова думать о полезности текстового адаптера.

Totem
20.01.2018, 18:13
У кемпстон джойстик два адреса 1F и DF. Так как в новом компьютере порты 00-3F зарезервированы под Z180, остается только один DF.
Скорость увеличивают не для того, чтобы ее потом зря тратить. Подпрограммы рисования должны быть максимально быстрые.

Наверно базовый модуль RAM можно сделать 4 Мбайта, как в ZX-EVO.

ответ не верный, z180 умеет переносить, свои порты в 3 области.
тебе достаточно поставить Z80 20МГц, и не иметь проблем с портами z180 вообще, что ты собрался использовать из z180 DMA? ради этого надо ставить Z180?
Когда у тебя 1 подпрограмма/менеджер памяти переключает страницы, это важно, для удобства, выкраивать каждый такт тебе не имеет смысла. это не ZX на 3,5MГц, тем более если у тебя "крутая видяха"= удобство написания игр.
Он базовый и для нового ATM, если не ошибаюсь.

zx-kit
20.01.2018, 18:15
Тогда какой шрифт лучше вписать в разрешение монитора 640х480 ?
Ширина символа: 640 / 53 = 12.08
Высота символа; 480 / 21 = 22.86

Получается 12х22 точки на символ.

Totem
20.01.2018, 18:17
Тогда какой шрифт лучше вписать в разрешение монитора 640х480 ?

а нафиг он тебе сдался вообще текстовый режим?

zx-kit
20.01.2018, 18:35
а нафиг он тебе сдался вообще текстовый режим?

Для CP/M. Почему не спрашиваешь у разработчиков ATM и ZX-EVO ?
Может быть для конверсии программ с Ориона и РК. Игры - конвертировать с игровых компьютеров, программы - с текстовых компьютеров.

OrionExt
20.01.2018, 18:41
zst, посмотрите на группу инструкция Z180 - IN0 OUT0 OTIM OTIMR OTDM OTDMR TSTIO. Нет надобности для предустановки 16-бит адреса использовать регистровую пару BC.

При использовании 16-бит I/O в схему дешифрации добавится всего одна микросхема 74LS688. Я ее приводил ранее, реакции почему-то не последовало.

Totem
20.01.2018, 18:48
Для CP/M.Почему не спрашиваешь у разработчиков ATM и ZX-EVO ?

Ну не смешите уже далее
вот тебе, 50MГц CP/M
http://noplabs.com/cpm50/cpm50.html
покажи нам, что такого тут, может заинтересовать ? графика, звук? скорость выполнения задач?

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

zx-kit
20.01.2018, 18:50
zst, посмотрите на группу инструкция Z180 - IN0 OUT0 OTIM OTIMR OTDM OTDMR TSTIO. Нет надобности для предустановки 16-бит адреса использовать регистровую пару BC.

При использовании 16-бит I/O в схему дешифрации добавится всего одна микросхема 74LS688. Я ее приводил ранее, реакции почему-то не последовало.
Так она только 8 битов сравнивает. Для 16 битов надо две. И еще сложить сигналы с двух микросхем, добавить IORQ, RD, WR. Уже три микросхемы. Зачем усложнять там, где нужна простота и скорость. Для рисования только 8 битные порты. Нечего тратить скорость. При этом возможность использования OUT(C),REG останется. А для медленных устройств можно использовать и двухбайтные, чтобы зря не расходовать 176 однобайтовых адресов. Для двухбайтовых портов я зарезервировал 4096 адресов.

Кроме этого у нас 256 блоков памяти. В каждом окне по 16Кбайт можно включить любой. Например, SRAM, SDRAM, DRAM, FLASH (картридж), ROM-DISK и т.п. Также в качестве блока можно подключать и устройства ввода-вывода, например, подключить модули, эмулирующие RK илио ОРИОН с их портами и экранными областями. Это делает модульную конструкцию и мой маппер удобным для построения разных компьютеров.

Totem
20.01.2018, 19:02
Так она только 8 битов сравнивает. Для 16 битов надо две. И еще сложить сигналы с двух микросхем, добавить IORQ, RD, WR. Уже три микросхемы. Зачем усложнять там, где нужна простота и скорость. Для рисования только 8 битные порты. Нечего тратить скорость. При этом возможность использования OUT(C),REG останется. А для медленных устройств можно использовать и двухбайтные, чтобы зря не расходовать 176 однобайтовых адресов. Для двухбайтовых портов я зарезервировал 4096 адресов.

Кроме этого у нас 256 блоков памяти. В каждом окне по 16Кбайт можно включить любой. Например, SRAM, SDRAM, DRAM, FLASH (картридж), ROM-DISK и т.п. Также в качестве блока можно подключать и устройства ввода-вывода, например, подключить модули, эмулирующие RK илио ОРИОН с их портами и экранными областями. Это делает модульную конструкцию и мой маппер удобным для построения разных компьютеров.
УУУУ Барсик укусил, на предыдущей странице.:v2_dizzy_doctor::v2_lol:

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

ответь для себя и все читателям, зачем ты ставишь z8s180
причины? решаемые задачи?:v2_rolley:v2_dizzy_ironic::v2_blush:

zx-kit
20.01.2018, 19:16
Не я это предложил. Но идея мне понравилась. По крайней мере на будущее, надо предусмотреть возможность установки. Его маппер можно отключить. Пока можно на Z80 и DIP микросхемах сделать комп. Потом заменить Z80 на Z180, поставить быстрые дешифраторы портов и память и установить на частоту 20 MHz или даже 33 MHz.

Totem
20.01.2018, 19:20
IN0 OUT0 OTIM OTIMR OTDM OTDMR TSTIO
при обращении к внутренним портам, Z180 выставит на старшие 8бит -00000000 и что мы будем с этим делать? запись будет в оба порта , даже если ты , принудительно выставишь бит в схеме. Кривое решение.

OrionExt
20.01.2018, 19:27
Вот и мне не понятно с фига тут велосипед придумывать. Ну как говорится дело хозяйское 8-битная, так 8-битная:)

Error404
20.01.2018, 19:31
Тогда какой шрифт лучше вписать в разрешение монитора 640х480 ?
Ширина символа: 640 / 53 = 12.08
Высота символа; 480 / 21 = 22.86

Получается 12х22 точки на символ.

Предлагаю придерживаться уже обговоренного (и здравого смысла). Экран: 80х30 с матрицей символа 8х16, знакогенератор на 256 символов (фонты 1) загружаемые 2) переключаемые из нескольких загруженных - чтобы моментально), режим цветности 1) каждый символ своим цветом(атрибутом) 2) все символы одним общим цветовым атрибутом (цветной монохром), обсуждаемы палитры. Один экран активный и несколько неактивных (сколько влезет в 16к видеопамяти).

У нас вывод на VGA-монитор, а не телек КВН, поэтому 53х21 даже комментировать не стану. Вообще, IRL мне и 80 в строке мало, зарабатывая на жизнь в консоли, первое что делаю стартуя терминал - увеличиваю окно до хотя бы 135х40 (иначе в экранчик не лезет требуемое количество информации).

zx-kit
20.01.2018, 19:35
А теперь вопрос к специалистам - как сделать, чтобы в компьютере можно было использовать Z80 или Z180 ?

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


Предлагаю придерживаться уже обговоренного (и здравого смысла). Экран делим на режимы: первый 80х30 с матрицей символа 8х16 и второй режим 80х60 с матрицей символа 8х8 (для чанковой графики), знакогенератор на 256 символов (фонты 1) загружаемые 2) переключаемые из нескольких загруженных - чтобы моментально), режим цветности 1) каждый символ своим цветом(атрибутом) 2) все символы одним общим цветовым атрибутом (цветной монохром), обсуждаемы палитры. Один экран активный и несколько неактивных (сколько влезет в 16к видеопамяти).

У нас вывод на VGA-монитор, а не телек КВН, поэтому 53х21 даже комментировать не стану. Вообще, IRL мне и 80 в строке мало, зарабатывая на жизнь в консоли, первое что делаю стартуя терминал - увеличиваю окно до хотя бы 135х40 (иначе в экранчик не лезет требуемое количество информации).
Была у меня идея сделать экран не 320х240 при разрешении 640х480, а сразу 480х240 при разрешении 1920х1080. Но это конечно только на FPGA можно сделать. Зато экран широкий и там можно много буковок напечатать.

Totem
20.01.2018, 19:37
Не я это предложил. Но идея мне понравилась. По крайней мере на будущее, надо предусмотреть возможность установки. Его маппер можно отключить. Пока можно на Z80 и DIP микросхемах сделать комп. Потом заменить Z80 на Z180, поставить быстрые дешифраторы портов и память и установить на частоту 20 MHz или даже 33 MHz.

Его маппер отключать не надо, он после резета работает? как стандартный Z80 в адресном 64K, у него есть пара команд, которые работают не так как в стандартом z80 и некоторые выполняет чуть быстрее, что дает идеальный- эффективный рост на 5% . Проблема замены исключительно в портах (которые можно перенести) и этих командах.
не заменишь ты его, без правки/резки схемы.:v2_wink2:

zx-kit
20.01.2018, 19:40
Его маппер отключать не надо, он после резета работает? как стандартный Z80 в адресном 64K, у него есть пара команд, которые работают не так как в стандартом z80 и некоторые выполняет чуть быстрее, что дает идеальный- эффективный рост на 5% . Проблема замены исключительно в портах (которые можно перенести) и этих командах.
не заменишь ты его, без правки/резки схемы.:v2_wink2:
Ускорение команды LDIR на 50%, LDI на 33 % без увлеличения частоты процессора. Они нужны для рисования графики. Это очень важно.
Модули же разные под разные процессоры.

Totem
20.01.2018, 19:40
Предлагаю придерживаться уже обговоренного (и здравого смысла). Экран: 80х30 с матрицей символа 8х16, знакогенератор на 256 символов (фонты 1) загружаемые 2) переключаемые из нескольких загруженных - чтобы моментально), режим цветности 1) каждый символ своим цветом(атрибутом) 2) все символы одним общим цветовым атрибутом (цветной монохром), обсуждаемы палитры. Один экран активный и несколько неактивных (сколько влезет в 16к видеопамяти).

У нас вывод на VGA-монитор, а не телек КВН, поэтому 53х21 даже комментировать не стану. Вообще, IRL мне и 80 в строке мало, зарабатывая на жизнь в консоли, первое что делаю стартуя терминал - увеличиваю окно до хотя бы 135х40 (иначе в экранчик не лезет требуемое количество информации).

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

OrionExt
20.01.2018, 19:46
Ну, так Z80/Z180 все равно будет на A15-A8 что-то выставлять. Хотим мы это или не хотим. Как я это понимаю. И если это сразу не отследить, то потом с переходом с 8-бит на 16-бит придется что-то придумывать или сразу делать, как это предложил zst.

Totem
20.01.2018, 19:51
Ускорение команды LDIR на 50%, LDI на 33 % без увлеличения частоты процессора. Они нужны для рисования графики. Это очень важно.
Модули же разные под разные процессоры.
ухаха, идеальный- эффективный рост на 5%, я тебе потом расскажу как сделать 100% эффективную работу CPU с GPU, если конечно ты, что то сделаешь.

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


Ну, так Z80/Z180 все равно будет на A15-A8 что-то выставлять. Хотим мы это или не хотим. Как я это понимаю. И если это сразу не отследить, то потом с переходом с 8-бит на 16-бит придется что-то придумывать или сразу делать, как это предложил zst.

z180 стабильно выставит 0 на шину адреса A15-A8, эти команды и так, спецом введены, как и перенос портов, чтоб было меньше косяков, а такие "перембулы" их плодят.

zx-kit
20.01.2018, 19:52
идеальный- эффективный рост на 5%
Это почему это ? DATASHEET почитай.

Totem
20.01.2018, 20:04
Это почему это ? DATASHEET почитай.
поверь и не один,читал еще древний скан HD180-от хитача, откуда вырос z8s :) и не только читал, ухаха.
ты отличаешь максимальный прирост производительности CPU на одной частоте в одной линейке CPU, при смене ядра? или частный случай, где используются только оптимизированные под задачу команды?:v2_neutr::v2_dizzy_biggrin2:
а error dat'ы читал? :v2_wink: а Есенина?

zx-kit
20.01.2018, 20:07
поверь и не один,читал еще древний скан HD180-от хитачача, откуда вырос z8s :) и не только читал, ухаха.
ты отличаешь максимальный прирост производительности CPU на одной частоте в одной линейке CPU, при смене ядра? или частный случай, где используются только оптимизированные под задачу команды?:v2_neutr::v2_dizzy_biggrin2:
Наверно ты говоришь про среднюю производительность программы. Я же говорю про ускорение команд вывода графики. Важны только они, так как там много данных пересылаются.

OrionExt
20.01.2018, 20:15
z180 стабильно выставит 0 на шину адреса A15-A8, эти команды и так, спецом введены, как и перенос портов, чтоб было меньше косяков, а такие "перембулы" их плодят.
С этими инструкциями IN0 OUT0 …. все четко, а с IN A,(n) OUT (n),A и IN A,(C) OUT (C),A не все так однозначно. Опять же если не ошибаюсь. A7-A0 тут все четко, если не нужна 16-бит адресация.

А A15-A8 будет выхватывать Acc или B регистр. Мы не используем в программе 16-битную адресацию, и в B регистре может быть что угодно (Acc понятно, как пример A <- F8. На шине адреса F8F8).

Totem
20.01.2018, 21:22
Наверно ты говоришь про среднюю производительность программы. Я же говорю про ускорение команд вывода графики. Важны только они, так как там много данных пересылаются.


да ты че, "крутой модульный-игровой"? а буду push'ить и pop'ить, так быстрей, на 14MГ и z80, ты "заманаешься", "чето" оптимизировать и копаться в коде, я уже молчу про то, как у тебя АY одиночный будет работать на z180 3,5 MГц без правки плеера. гыгы .

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


С этими инструкциями IN0 OUT0 …. все четко, а с IN A,(n) OUT (n),A и IN A,(C) OUT (C),A не все так однозначно. Опять же если не ошибаюсь. A7-A0 тут все четко, если не нужна 16-бит адресация.

А A15-A8 будет выхватывать Acc или B регистр. Мы не используем в программе 16-битную адресацию, и в B регистре может быть что угодно (Acc понятно, как пример A <- F8. На шине адреса F8F8).

при обращении к внутреннему, 8 бит порту , старшие адреса принудительно лягут в 0, если используются IN0 и им подобным, запись в любом случае произойдет в оба порта, если адреса портов идентичны внутренним z180. так правильней.

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


Не я это предложил. Но идея мне понравилась. По крайней мере на будущее, надо предусмотреть возможность установки. Его маппер можно отключить. Пока можно на Z80 и DIP микросхемах сделать комп. Потом заменить Z80 на Z180, поставить быстрые дешифраторы портов и память и установить на частоту 20 MHz или даже 33 MHz.

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

OrionExt
20.01.2018, 21:41
Ладно, бог с этими портами. Хотя если делать ZX ориентированный компьютер, тут без вариантов I/O – 16 бит. По поводу CPU без вариантов Z80. Z180 как дополнительный CPU. Хотя зная ZX-программистов, которые любили злоупотреблять фичами Z80, не многое ПО запустится на Z180.

Я к чему Z180 предложил. Мне он интересен как камень. И где-то там в голове планирую его использовать на платформе MSX-EXT. Основное ПО для MSX писали японцы. Юзали японцы официальную документацию на Z80 и всякими фичами не злоупотребляли. Поэтому основная масса ПО замечательно работает на R800 (разновидность Z180). И то там два процессора Z80 и R800, которые могут переключаться на лету.

Ну, в общем как то так:)

Totem
20.01.2018, 22:02
Ладно, бог с этими портами. Хотя если делать ZX ориентированный компьютер, тут без вариантов I/O – 16 бит. По поводу CPU без вариантов Z80. Z180 как дополнительный CPU. Хотя зная ZX-программистов, которые любили злоупотреблять фичами Z80, не многое ПО запустится на Z180.

Я к чему Z180 предложил. Мне он интересен как камень. И где-то там в голове планирую его использовать на платформе MSX-EXT. Основное ПО для MSX писали японцы. Юзали японцы официальную документацию на Z80 и всякими фичами не злоупотребляли. Поэтому основная масса ПО замечательно работает на R800 (разновидность Z180). И то там два процессора Z80 и R800, которые могут переключаться на лету.

Ну, в общем как то так:)
ну наконец, хоть у одного, началось прояснение :v2_wink::v2_wink2::v2_dizzy_biggrin2:
R800 в живую не видел, что то читал, общем нет опыта обращения совсем :) чтоб было еще понятней- если имею и располагаю "избытками железа", всегда помогу, если проект интересен,конечно. Старые форумчане -"до войн по замеру писюнов и платформ", соврать не дадут, а срачи-это не интресно. :)

zx-kit
21.01.2018, 12:07
Коммутатор памяти в модульном компьютере "CHELYABINSK"

Адресное пространство Z80 делится на 4 окна по 16 Кбайт.

Номера и адреса окон:
Окно номер 0 (00) - адреса 0000-3FFF
Окно номер 1 (01) - адреса 4000-7FFF
Окно номер 2 (10) - адреса 8000-BFFF
Окно номер 3 (11) - адреса C000-FFFF

Через каждое окно можно подключить одно из 16 устройств с памятью.

Номера устройств записываются в порты:
F4 - номер устройства с памятью в окне 0
F5 - номер устройства с памятью в окне 1
F6 - номер устройства с памятью в окне 2
F7 - номер устройства/тип памяти в окне 3

Устройство с памятью может содержать 256 страниц по 16 Кбайт памяти.

Номера страниц записываются в порты:
F0 - номер страницы памяти в окне 0
F1 - номер страницы памяти в окне 1
F2 - номер страницы памяти в окне 2
F3 - номер страницы памяти в окне 3

Одно устройство с памятью можно подключить в разные окна или в разных окнах подключить разные устройства с памятью.

Smalovsky
21.01.2018, 15:38
Может, стоит обратить внимание на ранние разработки спектрумов с возможностью запуска кп/м? Например, на Кворум.
https://geektimes.ru/post/122762/
http://atmturbo.nedopc.com/others/kvorum/kv_ports.htm
Мне понравилась эта архитектура тем что есть возможность записи в нулевую страницу озу с блокировкой записи в последующем. Это намного лучше, так как даёт возможность запуска различных ос.

zx-kit
21.01.2018, 17:07
Может, стоит обратить внимание на ранние разработки спектрумов с возможностью запуска кп/м? Например, на Кворум.
https://geektimes.ru/post/122762/
http://atmturbo.nedopc.com/others/kvorum/kv_ports.htm
Мне понравилась эта архитектура тем что есть возможность записи в нулевую страницу озу с блокировкой записи в последующем. Это намного лучше, так как даёт возможность запуска различных ос.
В окно 0 можно подключить RAM. Осталось сделать блокировку записи.

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

Вместо запрета записи можно записать это на картридж и подключить нужную страницу.

zx-kit
21.01.2018, 23:59
Добавлена блокировка записи в RAM:

F0 - RAM MODE 0 (чтение и запись)
F1 - RAM MODE 1 (только чтение)

s_kosorev
22.01.2018, 00:06
mmu нужен умный, к примеру следящий за z80 arm 180мгц, у которого есть карта, где и когда переключать банки, блокировать память итд
будет самый быстрый mmu

zx-kit
22.01.2018, 00:12
mmu нужен умный, к примеру следящий за z80 arm 180мгц, у которого есть карта, где и когда переключать банки, блокировать память итд
будет самый быстрый mmu
arm 180мгц не получится переключать. надо еще проверить, будет ли коммутатор памяти на К555ИР26 успевать на частоте Z80 20 MHz.

s_kosorev
22.01.2018, 00:27
успеет, если что можно рпи зеро, там поболее частоты, заодно выход на hdmi будет

bigral
22.01.2018, 17:40
Добавлена блокировка записи в RAM:

F0 - RAM MODE 0 (чтение и запись)
F1 - RAM MODE 1 (только чтение)

Для чего это нужно? если речь про OS c защитой, то надо делать 2 полноценных режима работы supervisor \ user. А это железо для: блокирования in/out в режиме user. А также железо для установки регистров mmu при переходах между режимами supervisor \ user различными путями: изза физических прерываний, rst, reti. А иначе эти полумеры бесполезны.

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


успеет, если что можно рпи зеро, там поболее частоты, заодно выход на hdmi будет

не давай сразу квантовый компьютер на 50 кубитов там скорость поболее будет...

s_kosorev
22.01.2018, 17:45
не давай сразу квантовый компьютер на 50 кубитов там скорость поболее будет...
Sergio78 не потянет, дороже штанов

zx-kit
22.01.2018, 19:14
Для чего это нужно? если речь про OS c защитой, то надо делать 2 полноценных режима работы supervisor \ user. А это железо для: блокирования in/out в режиме user. А также железо для установки регистров mmu при переходах между режимами supervisor \ user различными путями: изза физических прерываний, rst, reti. А иначе эти полумеры бесполезны.
Я просто спроектировал простой коммутатор памяти на нескольких микросхемах для возможности адресации до 1 Гбайта различной памяти по 4 Мбайта на устройство. Запрет записи в окне нужен для работы Метеора. Чтобы из окна 0 можно было читать данные или запускать код на чтение. И одновременно через это окно записывать спрайты в Метеор.

Также запрет записи в RAM позволит построить устройство, в котором в одном окне совмещаются ПЗУ (только чтение) и устройства вывода (только запись).

TomaTLAB
22.01.2018, 22:42
Также запрет записи в RAM позволит построить устройство, в котором в одном окне совмещаются ПЗУ (только чтение) и устройства вывода (только запись).
Зачем!? это нужно при
возможности адресации до 1 Гбайта ???

zx-kit
22.01.2018, 23:19
Да, не нужно и невозможно через один коммутатор, но режим RAM только чтение остается. Применение найдется. Все устройства с памятью подключаются через коммутатор памяти, кроме видеокарты METEOR. Она может быть подключена только в окно 0 в режиме только запись. Вне зависимости, от подключения в окно 0 других устройств. А чтобы при записи в видеокарту не портилась память этого устройства можно отключать запись в это окно.

Старший бит в номере устройтсва будет показывать разрешение записи в него. 0 - запись разрешена, 1 - запрещена.

Error404
23.01.2018, 16:21
В порядке офтопа:
вот тут интересный бложек где автор подключает к компу с Z80 фабричный ISA VGA-адаптер (http://kgelabs.nl/?p=147) от PC XT (что дает и графику, и текстовые режимы с выводом на VGA-монитор). Статья немногословная, но есть какая-то простая схема на одной ИЕ18 согласования времянок шин (учитывая что идет 16-битный обмен как я понял через набортный параллельный порт), и есть исходник. Статья свежая, автор с высокой степенью вероятности еще живой. :)

barsik
23.01.2018, 17:16
фабричный ISA VGA-адаптер от PC XT
Вполне здравая идея, но не для вывода графики.

Сожалею, что не поставил HERCULES- или EGA-адаптер в СПЕЦИАЛИСТ и ОРИОН в 1993-94 (тогда они резко упали в цене, т.к устарели). Но естественно, не для вывода графики, а чтобы использовать их в качестве текстового адаптера.

Я хотел ставить именно Hercules, т.к EGA/VGA мониторы в 1993 стоили ~$150, а для адаптера Hercules годился дешёвый советский дисплей 6105, с небольшой подстройкой. У меня был на XT в 1992 сначала CGA-адаптер с поганым шрифтом 8*8, а вскоре я его заменил на Hercules, где фонт 9*14. Качество текстообработки не сравнить, и кстати, большинство XT-игр работали и с Hercules-ом, отображая цвета плотностью точек.

VGA-адаптер в 8-ми разрядке может служить в основном лишь текстовым адаптером, т.к в VGA/SVGA в графическом режиме слишком много памяти. Если ОРИОН и СПЕЦИАЛИСТ при выводе текста на свой небольшой экран в 12 кб - уже тормозят, то что будет, если их заставить выводить на минимальный экран в 64 кб, не говоря уже о 256 кб или 512 кб экранного ОЗУ.

С приемлемой скоростью удастся использовать только 4-х цветный CGA-режим с объёмом экранного ОЗУ в 16000 байт (т.к 80*8*25=16000, из 16 кб свободно 384 неотображаемых байта).

А вот текстовый адаптер, встроенный в SVGA, в MDA текстовом режиме 80*25 даёт шикарный фонт 9*14 или 9*16 (также 8*14 и 8*16), позволяет загрузку фонта пользователя, даёт 16 цветов для символов и имеет размер экранного ОЗУ менее, чем в 4 кб. Чтобы сделать аналогичный адаптер на мелкой логике в минимуме уйдёт полсотни корпусов (это без загрузки фонтов), а чтобы получить полноценный аналог придётся истратить 200 мелких TTL-корпусов.

А для извращений, в SVGA есть и странные текстовые режимы, дающие 128 и более символов в строке с таким же качественным шрифтом (это режимы, начиная с 100H, уже не помню, но вроде бы режим 105H даёт много строк и символов в строке)

TomaTLAB
23.01.2018, 17:34
на мелкой логике в минимуме уйдёт полсотни корпусов (это без загрузки фонтов) Без загрузки фонтов (т.е. считай графического режима) уйдет, от силы, корпусов 20 (ну если не на РУ5 делать, а взять 62256).
А если взять ВГ75+ВТ57 то и того меньше. Вот только этим летом мусолили.

zx-kit
23.01.2018, 20:36
Схема коммутатора памяти.

https://www.radikal.kz/images/2018/02/01/KOMMUTATOR-PAMYTI_18020103.md.png (https://www.radikal.kz/images/2018/02/01/KOMMUTATOR-PAMYTI_18020103.png)

RS-триггер на элементах DD1.2, DD1.3 и резисторы поддтяжки осуществляют подключение старшей страницы картриджа после сброса. На входах RD будет 1, выходы отключены, номер устройства = F, номер сраницы = FF. Запись в порт FE переключает RS-триггер и выходы регистровых файлов включаются.

После запуска программы на картридже надо выполнить команды настройки окна 0:
di
ld a, #FF
out (#f4),a ; устройство FF в окне 0 (картридж)
out (#f0),a ; страница FF в окне 0 (старшая)
ld a,0
out (#fe),a ; включение выходов коммутатора памяти

Далее записать номера устройств и страниц в окнах 1-3 в соответствии с требуемыми задачами. Например, включить RAM:

ld a, #00
out (#f5),a ; устройство 00 в окне 1 SRAM0 mode RW (чтение и запись)
out (#f6),a ; устройство 00 в окне 2 SRAM0 mode RW (чтение и запись)
out (#f7),a ; устройство 0в окне 3 SRAM0 mode RW (чтение и запись)

ld a, 1
out (#f1),a ; страница 1 в окне 1
ld a, 2
out (#f2),a ; страница 2 в окне 2
ld a, 3
out (#f3),a ; страница 3 в окне 3

Error404
23.01.2018, 21:03
А если взять ВГ75+ВТ57 то и того меньше. Вот только этим летом мусолили.

Я обеими руками - за. Проблема только в том, что никто так и не взял ВГ75+ВТ57, и не сделал {решение которое я мог бы взять и спаять/запустить}. Одни разговоры (а своих силенок мне не хватит). А решение на Атмеге128 и без исходников мне не нравится (потому что во первых на жирной планарной атмеге, а во вторых без исходников - никакой пустяк не поправишь).

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


Схема коммутатора памяти.


А можно для понятности нарисовать как оно будет подключаться к адресам ОЗУ (MA0..MA15, MA16...MAxx)
А то эти DEVICE, PAGE - какие-то дублирующиеся сущности.

zx-kit
23.01.2018, 22:33
А можно для понятности нарисовать как оно будет подключаться к адресам ОЗУ (MA0..MA15, MA16...MAxx)
А то эти DEVICE, PAGE - какие-то дублирующиеся сущности.
PAGE - это номер страницы по 16 Кбайт, 8 старших адресов МA14-МA21 модуля памяти. MA0-MA13 подаются с A0-A13 Z80.
DEVICE - идет на селектор модуля памяти. У каждого модуля свой номер.

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

Схема модуля RAM 1M:

https://www.radikal.kz/images/2018/01/24/MODULNYI-KOMPYTER_18012401.md.png (https://www.radikal.kz/images/2018/01/24/MODULNYI-KOMPYTER_18012401.png)

Error404
23.01.2018, 23:56
Т.е. если комп планируем с 2Мб памяти (мне например больше не надо), то достаточно будет только двух ИР26? Это здорово сокращает схему (либо третью и четвертую тогда можно не впаивать если их таки развели).

И еще: на выходы этих двух ИР26 надо повесить буфер АП5 чтобы по тем же портам где мы пишем в ИР26 осуществлять и чтение их состояния на шину данных (например чтобы в прерывании перед включением других страниц сохранять текущие, и по выходу их восстанавливать).

zx-kit
24.01.2018, 04:41
Т.е. если комп планируем с 2Мб памяти (мне например больше не надо), то достаточно будет только двух ИР26? Это здорово сокращает схему (либо третью и четвертую тогда можно не впаивать если их таки развели).
И еще: на выходы этих двух ИР26 надо повесить буфер АП5 чтобы по тем же портам где мы пишем в ИР26 осуществлять и чтение их состояния на шину данных (например чтобы в прерывании перед включением других страниц сохранять текущие, и по выходу их восстанавливать).

Тип номер устройства и номер страницы - это совсем разные сущности, которые привязаны к одинаковым окнам. Два регистра для номера девайса обязтельно нужны. это определяет тип памяти - RAM, ROM, палитра, символьный экран, другие типы устройств на будущее.

ИР26/ИР32 - это не простро регистр, а 4 регистра + дешифратор + мультиплексор. Просто так его состояние не прочитать. Если делать на других микросхемах, вместо двух ИР26 надо 4*ИР23 + ИД7 + 4*КП12. И все равно состояние этих регистров не прочитать. Надо будет еще 4*КП12 и ИД7.

Если надо читать состояние портов, то проще для этого использовать кэш. В нем для этого использовать младшие 256 ячеек и записывать одновременно с записью в порты значения для всех 256 портов с восьмибитной адресацией. Когда надо - читаем значение соответствующей ячейки из порта номер FF. В старшем байте указать адрес требуемой ячейки. На входе микросхемы поставить 2*КП11 для коммутации адреса. Если младший адрес FF, то к адресам памяти подключать старший байт шины адреса, Иначе - младший байт.

Можно для номера девайса оставить 4 бита и уберать из схемы коммутатора четвертый ИР32. При этом упростятся дешифраторы на модулях памяти.

Тогда номера устройств такие:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010 - память палитры
1011 - память символьного экрана
1100 - RAM mode 0 (чтение и запись)
1101 - RAM mode 1 (только чтение)
1110 - картридж mode 0 (чтение и запись)
1111 - картридж mode 1 (только чтение)

Остается 10 свободных номеров. Хватит наверно. Хотя для подключения DRAM 32 Мбайт надо 8 номеров. Подобное было в истории ZX Spectum, когда для экономии на дешифрации портов использовали 1 бит, полагая, что 8 портов хватит на все случаи жизни.

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

TomaTLAB
24.01.2018, 09:05
А то эти DEVICE, PAGE - какие-то дублирующиеся сущности.
Можно рассматривать их просто как 16-бит расширения адреса, что с точки зрения маппера так и есть.
Какие из них для чего будут использоваться - маппер не волнует, это уже вопрос "стандарта" и дешифратора.

ИР26/ИР32 - это не простро регистр, а 4 регистра + дешифратор + мультиплексор. Просто так его состояние не прочитать. Если делать на других микросхемах, вместо двух ИР26 надо 4*ИР23 + ИД7 + 4*КП12. И все равно состояние этих регистров не прочитать. Надо будет еще 4*КП12 и ИД7.
Можно сделать гораздо проще, как сделано в некоторых разновидностях мапперов MSX.
Ставим еще 4шт. ИР26/32, пишем в них тоже самое, что и в основные, но на шину читаем из них.

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


и стоит ли обрезать количество битов в номере девайса до 4 и упрощать дешифраторы. Не стоит. А для упрощения дешифратора можно применить связку СП1 + ИД7.
Даже если у ИДшки будет задействован единственный выход - это в любом случае проще и гибче чем паутина из "мелочи".

zx-kit
26.01.2018, 23:15
Режим 640х240 не подойдет для вывода текста ?

Totem
27.01.2018, 00:48
PAGE - это номер страницы по 16 Кбайт, 8 старших адресов МA14-МA21 модуля памяти. MA0-MA13 подаются с A0-A13 Z80.
DEVICE - идет на селектор модуля памяти. У каждого модуля свой номер.

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

Схема модуля RAM 1M:

https://www.radikal.kz/images/2018/01/24/MODULNYI-KOMPYTER_18012401.md.png (https://www.radikal.kz/images/2018/01/24/MODULNYI-KOMPYTER_18012401.png)
Лучше сразу рисуй 2 по 512KB, реально, тебе не понабится столько, от слов "совсем и никогда".
цена SRAM на 1MB -будет несовместима с концепцией "не дорого тепло лапового".

Error404
27.01.2018, 00:48
Режим 640х240 не подойдет для вывода текста ?

символ 8х9 ?

zx-kit
27.01.2018, 06:22
Лучше сразу рисуй 2 по 512KB, реально, тебе не понабится столько, от слов "совсем и никогда".
цена SRAM на 1MB -будет несовместима с концепцией "не дорого тепло лапового".
А сколько надо ?
Можно 512 Кбайт собрать из 16-ти микросхем кэша по 32 Кбайт
или 256 Кбайт собрать из 8-ми микросхем кэша по 32 Кбайт
или 128 Kбайт собрать из 4-х микросхем кэша по 32 Кбайт.
Микросхемы по 512 Кбайт и 1М обычно в TSSOP.

Totem
27.01.2018, 08:32
А сколько надо ?
Можно 512 Кбайт собрать из 16-ти микросхем кэша по 32 Кбайт
или 256 Кбайт собрать из 8-ми микросхем кэша по 32 Кбайт
или 128 Kбайт собрать из 4-х микросхем кэша по 32 Кбайт.
Микросхемы по 512 Кбайт и 1М обычно в TSSOP.

Чего, так тебя кидает от простоты дешифрации и экономии на DIP логике копеечной , до вкручивания 74lvc32 ? Вот кто то видел в живую ее родную в DIP?
512КВ на 16 корпусах, быстрой SRAM! кросаувчик, да меня жаба задушит, только при мысли, что CPU быстрее 14 MГц никода работать не будет, уж не говоря просто про питание этой прорвы.
2x512 в DIP по цене будут в большинстве случаев дороже 1MB или чуть дешевле, но в TSOP , в 2 -2,5 раза дешевле, но ты же не собираешься разводить плату под определенные чипы? все одно сокет будет. Это и будет тем пределом на который стоит расчитывать.
а самый доступный по цене это 128KB.
http://pdf.datasheet.live/31da1018/toshiba.co.jp/TC551001CFI-85L.pdf

zx-kit
27.01.2018, 10:08
Модуль RAM 1 Mбайт на одной микросхеме SRAM:

https://www.radikal.kz/images/2018/02/01/MODUL-RAM-1M_18020101.md.png (https://www.radikal.kz/images/2018/02/01/MODUL-RAM-1M_18020101.png)

bigral
27.01.2018, 15:00
sram это жЫр. Нужен ли он тут? В качестве основной памяти надо ставить DRAM (меньше адресных ног и больше обьем). sram можно влепить в качестве cache-a, правда в железе его реализовать далеко не просто в софте проще но тоже кусок работы.

zx-kit
27.01.2018, 15:09
sram это жЫр. Нужен ли он тут? В качестве основной памяти надо ставить DRAM (меньше адресных ног и больше обьем). sram можно влепить в качестве cache-a, правда в железе его реализовать далеко не просто в софте проще но тоже кусок работы.
Да вроде итак хорошо получилось. Какую память хочим такую и паяем. Разъм и сигналы одинаковые при этом. Просто номер страницы в коммутаторе памяти меняем и имеем быстрый доступ без WAIT до 20 МГц Z80.

Denn
28.01.2018, 01:07
Касательно ЦПУ подкину такие ссылки:

http://www.cpu-world.com/CPUs/Z80/Kawasaki-KL5C8400C.html

http://zx-pk.ru/threads/10104-hardware-emulyator-z80.html

http://zx-pk.ru/threads/28423-dvukhportovaya-pamyat.html?p=938305&viewfull=1#post938305


Прикупили с товарищем такие совсем недавно (в декабре 2017-го), планируем завести на клоке 40 МГц (судя по посту по третьей ссылке, это удастся без проблем). Корпус конечно не феньшуйный, но зато честные ламповые 5 Вольт питания :)

Totem
28.01.2018, 02:34
Касательно ЦПУ подкину такие ссылки:

http://www.cpu-world.com/CPUs/Z80/Kawasaki-KL5C8400C.html

http://zx-pk.ru/threads/10104-hardware-emulyator-z80.html

http://zx-pk.ru/threads/28423-dvukhportovaya-pamyat.html?p=938305&viewfull=1#post938305


Прикупили с товарищем такие совсем недавно (в декабре 2017-го), планируем завести на клоке 40 МГц (судя по посту по третьей ссылке, это удастся без проблем). Корпус конечно не феньшуйный, но зато честные ламповые 5 Вольт питания :)
ммм, весьма такой аргументЪ, только не понятно, как это связано логикой на схеме. :v2_rolley

- - - Updated - - -


sram это жЫр. Нужен ли он тут? В качестве основной памяти надо ставить DRAM (меньше адресных ног и больше обьем). sram можно влепить в качестве cache-a, правда в железе его реализовать далеко не просто в софте проще но тоже кусок работы.
и какой смысл ставить 1MB DRAM или 128КВ? в чем этот великий "цынус"?

zx-kit
28.01.2018, 09:45
Касательно ЦПУ подкину такие ссылки. Прикупили с товарищем такие совсем недавно (в декабре 2017-го), планируем завести на клоке 40 МГц (судя по посту по третьей ссылке, это удастся без проблем). Корпус конечно не феньшуйный, но зато честные ламповые 5 Вольт питания :)

Спасибо. Пока начну с тех, что есть в наличии 6 MHz. Потом можно опробовать на 20 MHz.
Но на 20 MHz не все картриджи будут работать. Значит надо придумать схему переключения скорости Z80. На плате процессора надо будет поставить генераторы на 12, 14 и 20 MHz (К555ЛН1), делители (К555ТМ2), мультиплексор (К555КП12), дешифратор (К555ИД7) и порт управления скорости DE (К555ТМ9).

После сброса включать скорость 3.5 MHz, загружать программу с медленной FLASH в быструю RAM, потом переходить в RAM и врубать максимальную скорость. Если надо подгрузить данные с картриджа, переключаться на скорость, допустим 6 MHz, потом опять на максимальную

Denn
28.01.2018, 10:29
Но на 20 MHz не все картриджи будут работать. Значит надо придумать схему переключения скорости Z80. На плате процессора надо будет поставить генераторы на 12, 14 и 20 MHz (К555ЛН1), делители (К555ТМ2), мультиплексор (К555КП12), дешифратор (К555ИД7) и порт управления скорости DE (К555ТМ9).

После сброса включать скорость 3.5 MHz, загружать программу с медленной FLASH в быструю RAM, потом переходить в RAM и врубать максимальную скорость. Если надо подгрузить данные с картриджа, переключаться на скорость, допустим 6 MHz, потом опять на максимальную

Я сделал проще. Кварцевый гена на 40 МГц (в DIP), АС193 (а-ка ИЕ7), АС153 (а-ка КП2), ну и порт HC273 (а-ка ИР35, можно и ТМ9 если требуется менее 8 бит). Получается сетка клоков: 5, 10, 20 и 40 (можно взять и 2.5, 5, 10, 20, если в системе не предполагается использование 40МГц ЦПУ). По резету скидываемся в минимум (5 или 2.5 МГц), МПС стартует код в ПЗУ, который копирует BIOS в быстрое СОЗУ, затем ПЗУ отключается из адресного пр-ва, клок ЦПУ переключается на максимум. При обращении к медленным ЗУ/ВУ (если таковые есть в системе) предварительно программно снижается клок до соответствующих приемлемых значений, т.о. не требуется городить дополнительной схемотехники на тему WAIT.

П.С. из каких соображений выбор пал на серию 555 ? КМОП-ы (74xC/74xCT) же интереснее во всех смыслах, имхо.

zx-kit
28.01.2018, 11:24
Есть разные К555 и КР1533. ACT надо покупать. И у многих на форуме также.
Если бы была точная инфомация, до каких частот какая серия работает.
У Интеграла читал, что даже LS (555) работает до 30 MHz.

Denn
28.01.2018, 11:44
Дело не только в частотах. Потребление, нагрузочная способность, помехоустойчивость.

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


Если бы была точная инфомация, до каких частот какая серия работает.

На русские есть отличная брошюра от Шило:

http://onlinevuz.ru/_ld/86/72312747.jpg

на импорт есть даташиты. Про быстродействие там есть инфа.

bigral
29.01.2018, 12:33
и какой смысл ставить 1MB DRAM или 128КВ? в чем этот великий "цынус"?

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

zx-kit
29.01.2018, 14:54
На мой взгляд для небольного объема 64К, 128К, 1М проще и быстрее использовать статику. Никаких мультиплексоров и задержек.

Если надо большие объемы 32M можно заморачиваться с динамикой - регенерация, мультиплексоры адреса, замедление и т.п. проблемы. Какие микросхемы DRAM порекомендуешь ?

Totem
29.01.2018, 15:55
Ставь SIMM30x2 слот, рефреш можно сделать Cas before RAS и на галке, используя, "люто волшебный" для таких компов пин z80 /RFSH.
http://www.piclist.com/techref/mem/dram/slide8.html
У Павла Рябцева есть кстати 2MBx8 чипы, и симмы для них фабричные.
блокировку всех портов я бы ввел тоже с системного разъема. BLKPORT , тогда можно будет ставить в катридж 180 и как ускоритель и как основной CPU, при старте перенеся его внутренние порты выше, в одну из 3 областей и включить обратно.
У него wait'ы настраиваются, так, что сможешь работать и с DRAM не меня частоту проца.
и на частотах основного Z80 я бы остановился на 3,5- 28MГц - можешь AY прикрутить и если уговоришь любителей CPM и они напишут под этот комп плеер, не так им скучно будет сидеть и смотреть на ее софт.
UART еще запили -полезно, без видяхи, на перевых порах.
Вот такие тебе рацухи.:v2_dizzy_biggrin2:

zx-kit
29.01.2018, 16:36
Ставь SIMM30x2 слот, рефреш можно сделать Cas before RAS и на галке, используя, "люто волшебный" для таких компов пин z80 /RFSH.
http://www.piclist.com/techref/mem/dram/slide8.html
У Павла Рябцева есть кстати 2MBx8 чипы, и симмы для них фабричные.
блокировку всех портов я бы ввел тоже с системного разъема. тогда можно будет ставить 180 и как ускоритель и как основной CPU, при старте перенеся его внутренние порты выше, в одну из 3 областей и включить обратно.
У него wait'ы настраиваются, так, что сможешь работать и с DRAM не меня частоту проца.
На Павла Рябцова расчитывать не стоит - в любой момент могут кончиться. Надо в компьютере использовать микросхемы, которые можно купить в магазине в России. Если знаешь емкую DRAM, которая подойдет - напиши.
У Z180 можно не переключать порты, а просто в компьютере зарезервировать 00-3F только для него. Компьютер новый - как хотим так и расределяем порты. Какие еще тонкости надо учесть, чтобы использовать другие возможности Z180 ? Прерывания, сом-порты, таймеры. А в своих портах пусть что хочет то и делает.

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

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

Что надо для запуска компьютера ?
1. Кросс-плата.
2. Z80 на 6 MHz.
3. Генератор + счетчик для тактирования Z80.
4. Схема коммутатора памяти.
5. FLASH в панели ZIF-32 в качестве макета картриджа.
6. Блок питания +5V.
7. Графический или символьный контроллер для вывода на экран VGA.

Первые 6 пунктов можно спаять. Осталось разработать 7 пункт.

Как все заработает можно будет думать дальше - как подключить:
1. ОЗУ.
2. Клавиатуру.
3. Мышь.
4. Геймпад.
5. Другие устройства.

КР1533ИР32 и К555СП1, панельки для Z180 и кэш, купил, скоро будут генераторы на 25.175 MHz. Только вот кэш на барахолке не удалось купить - продавец пропал.

Totem
29.01.2018, 17:22
На Павла Рябцова расчитывать не стоит - в любой момент могут кончиться.
Если знаешь емкую DRAM, которая подойдет - напиши

Та какая разница, у тебя же стандартный SIMMx2.


а просто в компьютере зарезервировать 00-3F только для него. Компьютер новый - как хотим так и расределяем порты. Какие еще тонкости надо учесть, чтобы использовать другие возможности Z180 ? Прерывания, сом-порты, таймеры. А в своих портах пусть что хочет то и делает.
Самая нужная вещь DMA и ММU, с таймером не извращался.Женя на нем пищалку сделал.
Учти, что частота PHI 180(это частота ядра Z80), она в 2 раза меньше чем, чем входная частота генератора. в s180 есть порт, который делает турбо.


Кроме этого для Z80 можно сдлеллать схему чтобы переключать на разные скорости программно, временно отключая такты на время переключения. А процдет ли такой способ переключения с Z180, у которого свой генератор и удвоитель ? Или сразу затачивать компьютер только под Z180 ?
ну вообщем дело твое, никто не мешает поставить MUX 2 в 1 и переключаться с 3,5 на 4 например, M1 тут нужен. енто я не успел сделать, пришел Концепт и отобрал все свободное время
но "опять жешь" у тебя взде 555, хотя это не важно особо, можно и F поставить, но оно не очень доступное, у меня просто несколько десятков плат с ними есть от телефонной станции.



коро будут генераторы на 25.175 MHz
я бы на твоем месте забыл сейчас о видяхе. :v2_rolley

zx-kit
29.01.2018, 17:29
Та какая разница, у тебя же стандартный SIMMx2.


Самая нужная вещь DMA и ММU, с таймером не извращался.Женя на нем пищалку сделал.
Учти, что частота PHI 180(это частота ядра Z80), она в 2 раза меньше чем, чем входная частота генератора. в s180 есть порт, который делает турбо.


ну вообщем дело твое, никто не мешает поставить MUX 2 в 1 и переключаться с 3,5 на 4 например, M1 тут нужен. енто я не успел сделать, пришел Концепт и отобрал все свободное время
но "опять жешь" у тебя взде 555, хотя это не важно особо, можно и F поставить, но оно не очень доступное, у меня просто несколько десятков плат с ними есть от телефонной станции.



я бы на твоем месте забыл сейчас о видяхе. :v2_rolley
Без симов обойдемся. RFSH на разъеме не будет. Нечего тормозить быструю SRAM для регенерации медленной DRAM. Кому не хватит 4М на статике поставят еще один модуль на 4M с другим номером устройства. В этом вся прелесть модульной конструкции...

А что у тебя видяха уже готова ? И для Челябинска будет версия ? Какие возможности ?

Totem
29.01.2018, 17:32
Только вот кэш на барахолке не удалось купить - продавец пропал.



https://www.ebay.com/itm/162783456149
брал тут, самая доступная и дешевая в одном корпусе, для старта вполне достаточно. но слот под срам тоже нужен, потом ЛУТом делай ставь любые чипы.
пришлю кэш, если ты сделаешь :) хоть прототип полурабочий. если нужно:)

zx-kit
29.01.2018, 17:36
https://www.ebay.com/itm/162783456149
брал тут самая доступная и дешевая в одном корпусе, для старта вполне достаточно. но слот под срам тоже нужен, потом утом делай ставь любые чипы.
пришлю кэш, если ты сделаешь :) хоть прототип полурабочий. если нужно:)
Медленная в широком корпусе у меня есть. Можно начать паять на ней. Постепенно прорабатывая схему. Потом и кэш появится. Печатку уже под узкие дипы сделать. Цоколевка у них стандартная.

Totem
29.01.2018, 18:36
Медленная в широком корпусе у меня есть.
тогда все проще.

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





Без симов обойдемся. RFSH на разъеме не будет. Нечего тормозить быструю SRAM для регенерации медленной DRAM. Кому не хватит 4М на статике поставят еще один модуль на 4M с другим номером устройства. В этом вся прелесть модульной конструкции...
мммм, ну о перевых, если ты дополнительно хочешь ставить DRAM, а не вместо основной SRAM и использовать частоты CPU , скажем выше 7MГц, то память нужно будет поделить на банки SRAM/DRAM -и ввести схему регенарции CAS before RAS,
которая есть у любого "современного" чипа DRAM, используя абсолютно бесплатный пин RFSH на Z80, выдается автоматом, см.времянки в даташите z80 , на zilog, там последняя версиия сейчас :)
При обращении к DRAM, CPU будет wait'ся , а SRAM буде на это параллельно.

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


Потом и кэш появится
ну меня есть кучка и в DIP и SOJ, если уж комп модульный-любительский-крутой- игровой, то я бы точно дал шанс всем сделать, кто захочет и под чипы, которые есть у него. ЛУТ дело простое.
Глядишь и найдешь, кого заинтересованного, в написании софта для него :v2_dizzy_biggrin2:

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


А что у тебя видяха уже готова ? И для Челябинска будет версия ? Какие возможности ?
Ты что имеешь ввиду, "юльку" или поделку -простая видяха? :v2_dizzy_biggrin2:

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


Кому не хватит 4М
это дорого, никто в здравом уме, не будет ставить SRAM больше, чем 512КB в самодельный комп без софта.:v2_dizzy_biggrin2::v2_dizzy_wall:
а вот SIMM на 256KB-4MB или бесплатный или самодельный, покатит.

TomaTLAB
29.01.2018, 19:01
это дорого, никто в здравом уме, не будет ставить SRAM больше, чем 512КB в самодельный комп без софта.
С чего такая уверенность? :) Тем более, что в самодельный ее запаивать намертво вряд-ли кто будет. В здравом уме :) А вот в панельки воткнуть, и типа "смари че можно" это запросто :)

Totem
29.01.2018, 19:32
С чего такая уверенность? :) Тем более, что в самодельный ее запаивать намертво вряд-ли кто будет. В здравом уме :) А вот в панельки воткнуть, и типа "смари че можно" это запросто :)
Ну Женя ака Ewgeny7 , например может и в самоделку 2 чипа 512KB в DIP и софт хоть минимальный ,"Басик запилить", а тут 8 SRAM чипов. :v2_dizzy_biggrin2: нет софта, нет прототипа, нет концепта и даже соместимости пока нет с какой нить платформой. :v2_confu::v2_rolley:v2_dizzy_biggrin2:
ну дык я и призываю к здравому смыслу :v2_dizzy_priest::v2_dizzy_turn:

zx-kit
29.01.2018, 19:36
Ну Женя ака Ewgeny7 , например может и в самоделку 2 чипа 512KB в DIP и софт хоть минимальный ,"Басик запилить", а тут 8 SRAM чипов. :v2_dizzy_biggrin2: нет софта, нет прототипа, нет концепта и даже соместимости пока нет с какой нить платформой. :v2_confu::v2_rolley:v2_dizzy_biggrin2:
ну дык я и призываю к здравому смыслу :v2_dizzy_priest::v2_dizzy_turn:
А мы Ewgeny7 в нашу пятерку единомышленников позовем. Он нам и прототип спаяет и CP/M запустит.
Компьютер простой. Каждый может спаять из тех деталей, что имеются.

А ты подумай, зачем делать совместимый комп ?

Totem
29.01.2018, 20:06
А мы Ewgeny7 в нашу пятерку позовем. Он нам и прототип спаяет и CP/M запустит.
А ты подумай, зачем делать совместимый комп ?
он и своими проектами занят и другими делами, рассчитывать на это я бы не стал, у него почти вся линейка Z80-180, уже сделана дико например:)

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


А ты подумай, зачем делать совместимый комп ?
Чтоб тратить меньше время на порт софта и использовать уже имеющийся наработки, хотя можно и не делать, я же тебе уже озвучил, вводи порты для управления частотой и ставь MUXы на частоты CPU и AY, как минимум будешь обеспечен музыкой с платформ, где есть AY с минимальной правкой плееров.

zx-kit
29.01.2018, 21:13
Модуль картриджа 512 К:

https://www.radikal.kz/images/2018/02/01/MODUL-KARTRIDZA_18020103.md.png (https://www.radikal.kz/images/2018/02/01/MODUL-KARTRIDZA_18020103.png)

TomaTLAB
29.01.2018, 23:08
Он нам и прототип спаяет и CP/M запустит. По ЦПМ у нас Барсик специалист :) Евгений больше по басикам :)
Хотя для таких платформ басик "это святое". :)

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


RFSH на разъеме не будет. На разъем нужно тащить по возможности все. Чтобы потом не было "мучительно больно" кидать проводами. Пусть лучше пин на разъеме "в резерве" будет, можно потом переопределить. Он типа есть, "but strongly prohibited to further use" :)

zx-kit
31.01.2018, 05:32
На разъем нужно тащить по возможности все. Чтобы потом не было "мучительно больно" кидать проводами. Пусть лучше пин на разъеме "в резерве" будет, можно потом переопределить. Он типа есть, "but strongly prohibited to further use" :)

Надо это обсудить - тип разъема и сигналы.
35 сигналов с Z80 (предлагаю исключить ненужные для регенерации древней памяти и захвата шин)
6 контактов питания +5V, +3V3, GND по 2 контакта
8 номер устройства с памятью
8 номер страницы памяти
...
Предлагаю вариант контактов с шагом 2.54 мм:
Для модулей - вилка угловая PLD-80R (2 ряда по 40 контактов)
На кроссплату - розетка прямая PBD-80 (2 ряда по 40 контактов)

shurik-ua
31.01.2018, 08:04
предлагаю исключить ненужные для регенерации древней памяти и захвата шин
насчёт сигнала регенерации может и можно исключить, а вот захват шин лучше оставить для всяких там дигитайзеров или ДМА музыки )

zx-kit
31.01.2018, 17:47
Надо две шины. Два ряда разъемов DIN-64.

Модули основной шины - устройства ввода-вывода и различная память. Один разъем, только основные микросхемы без дешифраторов. С шины на модули подаются готовые сигналы для выбора микросхем.
Первая шина с основными сигналами Z80 через буферы. Шина данных двунаправленная.

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

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

Процессорный модуль на большой плате с двумя разъемами. Тут будут буферы, регистры, коммутатор памяти, дешифратор портов и т.п.


Сигналы Z80 (37 шт.):
16 - шина адреса
8 - шина данных
5 - IORQ, MREQ, RD, WD, M1
5 - RESET, INT, NMI, Z80_CLK, WAIT
3 - BUSRQ, BUSAK, RFSH

Дополнительные сигналы (16 шт.):
4 - номер устройства с памятью
8 - номер страницы памяти
1 - AY_CLK
2 - номер конфигурации компьютера
1 - POWER_GOOD

Питание (6 шт):
2 - +5V
2 - +3V3
2 - GND

Итого: 37 + 16 + 6 = 59

Остается 78 - 59 = 19 контактов. Можно добавить сигналы Z180.

OrionExt
31.01.2018, 18:52
PLD - эти разъемы в априори крайне не удобны. Одно дело собрал, воткнул и забыл. Другое дело каждый день по пять раз подключать/отключать плату. Поэтому предложение следующие. Использовать 2 ряда по 32 контакта (если надо можно и третий ряд добавить). Что это дает? Можно использовать как PLD так и DIN 41612. Каждый сам для себя решит, какой разъем использовать.

Да в природе существуют и трех-рядные PLD.


Ширина печатной платы, из экономии, должна быть 100 мм. Высота тоже 100 мм. 40 * 2.54 = 101.6 мм.
Плата должна быть <100мм. Если больше – это уже другая тарифная сетка при заказе плат.

zx-kit
01.02.2018, 05:31
По нескольку раз в день вытаскивать будут только на время отладки. 62 контакта наверно будет маловато. В DIN 64 контакта или 96, но DIN дороже и не такой распространенный в магазинах. A PBD/PLD во многих магазинах есть. Поэтому в модульных компьютерах на макетках пока DIN не применяют. Но надо еще подумать.

8 сигналов для выбора устройства с памятью избыточно для кросс-платы с 8-10 гнездами.
Давайте все-таки уменьшим до четырех. Это освободит 4 контакта в шине и упростит дешифраторы. Для сравнения четырех битов достаточно одной микросхемы К555СП1.
Ограничил количество модулей SRAM до двух по 4 Мбайта. Добавил RAM-диск, символьный экран, палитру, картридж. Осталось 8 свободных номеров для устройтсв с памятью.

Предварительный список устройств с памятью:
0 - SRAM1 mode RW - (чтение и запись)
1 - SRAM1 mode RO - (только чтение)
2 - SRAM2 mode RW - (чтение и запись)
3 - SRAM2 mode RO - (только чтение)
4 - RAM-диск
5 - палитра для всех слоев графики
6 - символьный экран (1 план)
7 - модуль "Метеор" (2 план)
8 - модуль тайлов (3 план)
9 - модуль спрайтового слоя (4 план)
A - модуль тайлов (5 план)
B - модуль тайлов (6 план)
C - модуль "ZX Spectrum" (7 план)
D - модуль "Орион"
E - номер расширения еще на +15 номеров устройств
F - картридж

zx-kit
01.02.2018, 13:59
Модуль RAM-диска на 1 Мбайт:

https://www.radikal.kz/images/2018/02/01/MODUL-RAM-DISKA-1M_1802010240313068dc7c29d8.md.png (https://www.radikal.kz/images/2018/02/01/MODUL-RAM-DISKA-1M_1802010240313068dc7c29d8.png)

Сигнал POWER_GOOD равен 1 когда питание +5V в норме. Как только питание падает, сигнал падает до 0 и SRAM выключается и переходит в режим хранения данных. При этом питание идет с трехвольтовый литиевой батарейки CR2032. Пришли к выводу, что этого достаточно на 5 лет.

Totem
01.02.2018, 16:07
http://kartinki.info/uploads/posts/2017-01/1484563369_2887-rukalico-mnogo-ruk.gif

OrionExt
01.02.2018, 18:51
Для надежности для безперебойного питания SRAM подключены две батарейки по 4.5 V
Только таки одна батарейка. Второй разъем батареи используется для так сказать безударного перехода при замене севшей батареи.

zx-kit
01.02.2018, 19:24
Конструктив.

Кросс-плата 200х100 мм. На ней 10 розеток PBD-80 (2 ряда по 40 контактов). Шаг контактов 2.54, шаг расположения разъемов 8 * 2.54 = 20.32 мм.

Одна пара контактов не влезает на плату. Впаивать 39 пар контактов, а два крайних будут висеть с краю платы и использоваться как ключ. Один из контактов (номер 1) в розетке забиваем обрезком штыря, а на модуле соответствующий контакт откусываем. Это обеспечит некоторую защиту от неправильной установки модуля другим концом. Контакт номер 2 оставить, но не использовать.

В шине у нас будет 78 сигналов.

Типовой размер модулей 100 х 100 мм. На платах модулей угловые вилки PLD-80R (2 ряда по 40 контактов).

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


Только таки одна батарейка. Второй разъем батареи используется для так сказать безударного перехода при замене севшей батареи.
Наверно проще использовать блок из трех батареек по 1.5 V (не аккумулятороы по 1.2 V). Но надо 2 блока, иначе при замене батареек в одном питание может прерваться и данные в рам-диске испортятся. Или в одном блоке батарейки сядут, а второй поддержит питание. Конечно надо периодически контролировать напряжение и менять севшие батарейки.

TomaTLAB
02.02.2018, 17:25
На кой ляд 4,5В? Почти вся статика содержимое держит при поддерживающем питании от 1,5В. Главное не пытаться дергать ее при этом.
Полутора-вольтовые батарейки дохнут просто от долгого лежания. Поэтому поставить туда 3-х вольтовую литиевую CR2032 и можно забыть лет на 5.
Два держателя тоже не уперлись. Дать снаружи питание при замене батарейки или менять ее во включенном устройстве - религия не позволяет?

zx-kit
04.02.2018, 09:31
Модуль палитры:

https://www.radikal.kz/images/2018/02/03/MODUL-PALITRY_18020303.md.png (https://www.radikal.kz/images/2018/02/03/MODUL-PALITRY_18020303.png)

Точка на экране будет кодироваться одним байтом. Всего на экране будет до 255 цветов с кодами 00-FE из палитры. Код FF зарезервирован под признак прозрачности. Палитра будет одна общая для символьного и графического экрана. У символьного экрана атрибут будет состоять из 4х битов PAPER и 4х битов INK. То есть цвет точки кодируется 4-мя битами. Добавим регистр для старших 4х битов и получим 8 битов на точку.

Totem
04.02.2018, 15:00
Конструктив.

Кросс-плата 200х100 мм. На ней 10 розеток PBD-80 (2 ряда по 40 контактов). Шаг контактов 2.54, шаг расположения разъемов 8 * 2.54 = 20.32 мм.

Одна пара контактов не влезает на плату. Впаивать 39 пар контактов, а два крайних будут висеть с краю платы и использоваться как ключ. Один из контактов (номер 1) в розетке забиваем обрезком штыря, а на модуле соответствующий контакт откусываем. Это обеспечит некоторую защиту от неправильной установки модуля другим концом. Контакт номер 2 оставить, но не использовать.

В шине у нас будет 78 сигналов.

Типовой размер модулей 100 х 100 мм. На платах модулей угловые вилки PLD-80R (2 ряда по 40 контактов).

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


Наверно проще использовать блок из трех батареек по 1.5 V (не аккумулятороы по 1.2 V). Но надо 2 блока, иначе при замене батареек в одном питание может прерваться и данные в рам-диске испортятся. Или в одном блоке батарейки сядут, а второй поддержит питание. Конечно надо периодически контролировать напряжение и менять севшие батарейки.

Странно, что не предусмотрен обогрев аккумуляторов, в Челябинске суровые мужчины, но от ЭМИ никакой защиты нет, пыле сборник и вентиляция, то хоть планируется ? Корпус надеюсь сварной, а не на заклепках. :v2_dizzy_newspaper:

OrionExt
04.02.2018, 15:28
Почему нет третьего аккумулятора? Не взлетит (конструкторы самолетов прикручиваю детали на трех болтах).

VladimirS
04.02.2018, 16:18
Что глумиться над человеком, он хоть что-то делает.
Трудно поверить, но даже самые современные Boeing и Airbus до сих пор клепают.

OrionExt
04.02.2018, 16:27
Что глумиться над человеком, он хоть что-то делает.
Та кто глумиться, взялся за такое дело, хоть литературу почитай. А то я смотрю (читаю), где-то меня наеб…, думаю, вспоминаю. Вспомнил - пишу. Очевидную вещь о двух разъемах для подключения одной батарейки, так нет. Автор свято верит, что он изобрел новый велосипед о восьми-угольных колесах.