PDA

Просмотр полной версии : Каким может быть новый клон Специалиста?



CityAceE
11.07.2025, 22:55
Решил завести новую тему, так как в любую тему, которую открывает fifan или кто-то другой с идеей повторить в железе тот или иной клон, набегают люди (в том числе и я) со своими хотелками. Предлагаю свои хотелки накидывать сюда, и, возможно, это кого-нибудь сподвигнет воплотить это в железе. Ну а нет, так хоть помечтаем.

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

Второе и важное: на этом клоне должно запускаться и беспроблемно работать всё то немногое ПО, что было создано за все эти 40 лет. При этом допускаю, что в случае производственной необходимости можно таки будет поправить немногочисленный софт, который хоть и использует какие-то стандартные адреса для портов, но тем не менее отличающийся от того, что используется и описано в «Мониторе». Я имею в виду порты стандартной ВВ55, которая занимает аж 2 КБ. «Монитор» обращается по адресам FF00-FF03, но остальные программы могут использовать любой адрес в диапазоне F800-FFFF. Это, конечно, соответствует схеме, но тем не менее не очень хорошо. Лучше бы использовать именно так, как в «Мониторе». Но ещё раз повторюсь, что это в случае какого-то хитрого решения. А так лучше закрепить за стандартным портом весь диапазон адресов F800-FFFF.

А вот диапазон F000-F7FF нужно разбить на 16 диапазонов с дополнительным дешифратором, который уже был описан в «Моделисте-Конструкторе», правда, применительно к диапазону F800-FFFF. В диапазоне F000-F7FF попроще. Тут автор компьютера предложил использовать программатор, ну и Алексей Морозов свой контроллер SD сюда же подключил. И то, и то обращается по адресам F000-F003, так что конфликта не будет.

Параллельный порт, получается, есть. Значит, куда-то нужно и последовательный порт прикрутить. Полезная вещь! Главное, чтобы была в стандарте.

По адресу F400-F403 Pyk посадил AY. И если ещё пару месяцев назад ничего под это дело не было, то на сегодня можно проигрывать, как минимум, три популярных трекерных формата и, как следствие, тысячи мелодий. И я думаю, что этим дело не ограничится. Но начало уже положено. А на очереди TurboSound, когда одновременно играют два AY, то есть это уже не 3, а целых 6 каналов.

Ещё один из кандидатов на участок из этого диапазона — мышь. Нет софта? Ну и ладно! Будет! Дайте готовый комп с разъёмом под мышь, и мы что-нибудь напишем или адаптируем.

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

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

Графика. В целом 8-ми цветная графика выглядит не так уж и плохо. Но её главный минус, мешающий полноценно пользоваться цветами, — это невозможность узнавать цвет конкретной точки. Думаю, что графика МХ будет получше. На МХ графику можно 1:1 переносить со Спектрума, но при этом графика МХ обладает другими преимуществами. Но даже под МХ, по сути, ничего толкового не сделали. Мне на память приходят только коммандер и моя адаптация Batty со Спектрума, да и та под Z80. В общем, можно игнорировать. А вот если придумать что-то новенькое или позаимствовать что-то старенькое, что не требует много памяти, работает быстро и при этом даёт много цветов на пиксель. Главное, чтобы был режим со стандартным разрешением 384*256. Можно, наверное, что-то придумать. Но тут наверняка кто-то опять начнёт ворчать, что, дескать, никто под это писать не будет. Вот если такой графики не будет, то гарантировано никто ничего не напишет. А если будет, то тут ещё вопрос!

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

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

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

Ну а мы в своём Телеграмном междособойчике потихоньку пилим и обкатываем хотелки в FPGA и Emu80. Но помимо этого хочется иметь то же самое и в реальном железе!

Mick
12.07.2025, 14:43
Память. Её в стандарте крайне мало — всего 48 кило. Из которых можно пользоваться только тридцатью шестью. Здесь я вообще никак не изучал вопрос. Но всё выглядит так, что нужно организовывать страничный доступ. При этом нужно подумать, как эти самые страницы подключать. Какого они размера должны быть, в какие области подключаться и как переключаться. Нужно изучить то, что есть, и, если решение хорошее, то воспользоваться им или придумать что-то своё, с учётом современных реалий.

По мне как я уже писал, мне интересны подключение чипов 256Kx16, а именно я бы поставил 2 таких чипа, т.е. общая емкость 1Мб. Чтобы так сказать ни в чем себе не отказывать. А стандарт переключения надо брать с уж имеющихся платформ, чтобы проще было адаптировать программы. На вскидку, можно взять как MSX или тот же Спектрум.
Тут на мой взгляд не надо повторять ошибки конструкторов из СССР, делаем комп ни с чем не совместимый и надеемся что будут программы. В результате получили большой зоопарк мало совместимые между собой машин.
Не забываем что у Специалиста вроде как порты никак не задействованы, т.е. это как минимум тоже дополнительное расширение.

CityAceE
12.07.2025, 19:25
По мне как я уже писал, мне интересны подключение чипов 256Kx16, а именно я бы поставил 2 таких чипа, т.е. общая емкость 1Мб.
Мне идея нравится. Одного мегабайта по идее должно хватить под все нужды, а цена такой памяти, как я понимаю, невысокая. Вопрос в аппаратной реализации.


А стандарт переключения надо брать с уж имеющихся платформ, чтобы проще было адаптировать программы.
Тут уже можно подумать и про вторую экранную область, как у Спектрума. Ну и непонятно что делать с последними 16-ю килобайтами, где находятся ПЗУ и внешние устройства.


Тут на мой взгляд не надо повторять ошибки конструкторов из СССР, делаем комп ни с чем не совместимый и надеемся что будут программы.
Изначальное условие - полная и безоговорочная совместимость со стандартным Специалистом, а всё остальное через "навесы".


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

Serg6845
13.07.2025, 11:06
Мне идея нравится. Одного мегабайта по идее должно хватить под все нужды, а цена такой памяти, как я понимаю, невысокая. Вопрос в аппаратной реализации.

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


Тут уже можно подумать и про вторую экранную область, как у Спектрума.

у Специалиста (даже стандартного) их можно сделать три штуки минимальными усилиями (0x1000-0x3fff, 0x5000-0x7fff, 0x9000-oxbfff). опять же вопрос - чем переключать.


Ну и непонятно что делать с последними 16-ю килобайтами, где находятся ПЗУ и внешние устройства.


отмапить в переключаемую страницу памяти например. а я у себя сделал так что все неиспользуемое пространство в верхних 16к отображается в виде ОЗУ (верхняя четверть РУ5). очень удобно - почти 8к доп. ОЗУ.


Изначальное условие - полная и безоговорочная совместимость со стандартным Специалистом, а всё остальное через "навесы".


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

Mick
13.07.2025, 13:30
нужно определиться с адресами переключателя "навесов" (кстати к вопросу об использовании портов)

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

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

RW9UAO
14.07.2025, 08:16
две страницы видеопамяти. в одну рисуем, вторую показываем.
классика же.

SYR-ALEX
14.07.2025, 20:21
Давно нужно было создать подобную тему.
Может наши хотелки сейчас и не востребованы , но со временем ... . Как знать ?
Прерывания по 50ГЦ ( отключаемые ) подерживаю обоими руками . Несколько экранных облостей , 2 хорошо , а 4 ещё лучше. Памяти под небо , страницами по 16 КБ. SD . COM port . AY или TURBO SOUND . Мышь PS/2 с ZX как самая простая и проверенная в работе . Цвет 16х16 как у МХ , а лучше по аналогии ULA+ 64 из 512. Чтение цвета как прямое - как в ОРИОНЕ , так и косвенное .
Поделюсь своими мыслями .

https://i.ibb.co/trmLRdt/Mapper-mod.png (https://ibb.co/trmLRdt)

Маппер . Совместим с журнальным Специалистом . Можно применить как для доработки существующего клона так и для нового.
Разделяет память на 4 окна страницами по 16 КБ . Всего до 255 страниц (4 МБ). Страници можно миксовать в произвольном порядке .
Условно делится на:
/ROM - ПЗУ до 1 Мб (монитор , ROM DISK, порты стандартного специалиста + расширения на адресах памяти),
/RAM - основное ОЗУ до 1МБ( ОЗУ на основной плате ),
/ERAM - раширенное ОЗУ до 1МБ,
/SLOT - тут как фантазия позволит до 1МБ , дополнительное ОЗУ , ВУ требующие большое количество портов , картриджи , различные подключаемые модули со своим ПЗУ...

На DD5 ,DD6 ,DD7 - дешифратор портов стандартного Специалиста , DD4:B дешивратор предназначен для дробления адресов #F000-F7FF с шагом 512 байт . Для боле мелкого дробления можно применить ИД7 или ИД3 .
По сбросу на выводе 6 DD1:A устанавливается лог. 1 , выходы DD2 и DD3 переходят в 3-е состояние . Подтягивающие резисторы на выходах DD2 и DD3 обеспечивают стабильную 1-цу , устанавливая на выходе 7 DD4:A лог. 0 , что формирует выборку последней страници ПЗУ . Т.к. процессор начинает работать с нулевого адреса в этой странице должен быть загрузчик для настройки мапера ( по аналогии с Эриком ). На входах DD7 кроме адресов процессора A12-A15 , присутствуют сигналы А17''-A19'' - определяют в какой странице ПЗУ порты будут "видны" процессору . Для упрощения и гибкости схемы дешифратор портов можно сделать и на ПЗУ .
Это скорее набросок идеии чем конечная схема .

CityAceE
14.07.2025, 22:25
Может наши хотелки сейчас и не востребованы , но со временем ... . Как знать ?
Для многих, как и для меня, именно Специалист, а не Спектрум, был первым компом. Но Специалист, откровенно говоря, на сегодня реально довольно скромный по своим параметрам компьютер. Я думаю, что под него не очень интересно писать. Думаю, что поэтому нового софта и нет. А нет софта, нет и интереса к платформе. Замкнутый круг. Есть подозрение, что если добиться полной совместимости с классикой и при этом снабдить компьютер новыми возможностями, и не в теории, а на практике (реальное железо на дискретной логике + обязательно эмулятор для разработки), то кто-то из программистов захочет поиграться с такой обновлённой платформой. Плюс, конечно, нужен некий постоянный движ. Сейчас же весь движ в основном заключается в бесконечной пайке клонов из прошлого с небольшими доработками, которые по сути ни на что не влияют. Спаял человек, запустил пару стареньких игрушек и положил на полку. Это никак не двигает платформу. Вот я поэтому и предлагаю, вдохнуть в неё новую жизнь. Со своей стороны в силу своих скромных возможностей пытаюсь делать что-то со стороны софта, но вот по части железа я полный нуб. Я могу сказать что бы я хотел с точки зрения программирования, но я представления не имею насколько сложно это будет реализовать на практике, и вообще возможно ли. Тут же главное ещё и не переборщить и соблюсти баланс! Комп должен быть предельно простым. В общем тут важно экспертное мнение специалистов в области программного обеспечения. Так что, думаю, наши хотелки очень важны!


Прерывания по 50ГЦ ( отключаемые ) подерживаю обоими руками .
Прерывания уже имеем в FPGA реализации и в Emu80. Даже не понятно почему автор компьютера не сделал их сразу. Это крайне необходимая вещь. Так что прерываниям быть. Но пока никак не обсуждалось как их отключать. Да и есть ли в этом необходимость? Есть ли вообще программы, которые как-то могут задействовать команду EI? Есть такие и есть, то EI легко меняется на NOP. Поправьте меня, если я не прав.


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


Памяти под небо , страницами по 16 КБ.
По 16Кб вроде да, привычно. Но опять же нужно посмотреть как на других платформах. Может быть стоить уменьшить или наоборот увеличить окно? Тоже нужно взвесить все "за" и "против".


AY или TURBO SOUND .
Тут уже вопрос стоит в том, что не "ИЛИ", а именно "И"! TS - классная разработка, которую однозначно стоит поддержать. Музыки написано много. Я уже проверил, Специалист тянет её проигрывание и даже ещё немного времени остаётся. Возможно, для удешевления и простоты реализации, сделать один AY, а TS вставлять в панельку AY, как расширение.


Цвет 16х16 как у МХ , а лучше по аналогии ULA+ 64 из 512. Чтение цвета как прямое - как в ОРИОНЕ , так и косвенное .
Самый интересный и важный вопрос! Вроде бы графика у МХ выглядит достойно. По организации вопросов вообще нет. Но очень хотелось бы самому выбирать те 16 цветов, которые одновременно будут выводиться на экран. И именно выбирать, а не переключать жёстко заданные палитры. Но опять же, я не знаю, насколько это затратно с аппаратной точки зрения. Ну и чтение цвета - это 100%, без него всё будет впустую. Очень сложно будет программировать игры, да и даже простенький графический редактор типа Paint тоже будет очень сложно сделать. Есть ли какие-то несложные решения?


На DD5 ,DD6 ,DD7 - дешифратор портов стандартного Специалиста , DD4:B дешивратор предназначен для дробления адресов #F000-F7FF с шагом 512 байт . Для боле мелкого дробления можно применить ИД7 или ИД3 .
В Моделисте-Конструкторе публиковали схему дополнительной дешифрации участками по 128 Кб на одной микросхеме. Думаю, что 16 участков памяти для внешних устройств, всё же лучше, чем 4 при делении по 512 байт.

Serg6845
14.07.2025, 23:38
Чем больше экранов, тем, естественно, для программиста лучше. Вопрос в том, насколько это сложно в реализации и сколько потребует дополнительных корпусов?

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



Самый интересный и важный вопрос! Вроде бы графика у МХ выглядит достойно. По организации вопросов вообще нет. Но очень хотелось бы самому выбирать те 16 цветов, которые одновременно будут выводиться на экран. И именно выбирать, а не переключать жёстко заданные палитры. Но опять же, я не знаю, насколько это затратно с аппаратной точки зрения.


это уже на ramdac тянет... если сможешь его сейчас достать.


Ну и чтение цвета - это 100%, без него всё будет впустую. Очень сложно будет программировать игры, да и даже простенький графический редактор типа Paint тоже будет очень сложно сделать. Есть ли какие-то несложные решения?


в соседней теме сейчас очередную инкарнацию МХ обсуждают, там вроде бы есть чтение цвета - но в 2 захода, сначала прочитать ячейку экранного ОЗУ, потом порт цвета. теоретически можно сделать в один заход - но тогда 12 кило основной памяти тогось. а ее и так не очень много.



В Моделисте-Конструкторе публиковали схему дополнительной дешифрации участками по 128 Кб на одной микросхеме. Думаю, что 16 участков памяти для внешних устройств, всё же лучше, чем 4 при делении по 512 байт.

это всего лишь ИД3 поставить вместо ИД7.

CityAceE
15.07.2025, 08:31
и с цветом надо думать.
Именно! Графику нужно предельно продумать. Именно графика и звук привлекают людей. И если со звуком всё более менее понятно (бипер + 2AY), то с графикой большой вопрос. Но графика к кучей цветов и большим разрешением годится только чтобы фотки смотреть, которыми сегодня никого не удивить. Нужна такая графика, которую легко программировать, и которая быстро работает.


это уже на ramdac тянет... если сможешь его сейчас достать.
Стало быть невозможно. А если выбирать между жёстко заданным набором палитр? То же самое?


есть чтение цвета - но в 2 захода, сначала прочитать ячейку экранного ОЗУ
Собственно, обратная процедура записи цвета. Это первое, что приходит в голову, если думать о такой организации цвета. Но мы в данный момент никак и ни к чему не привязаны. Можно придумать что-то своё.


теоретически можно сделать в один заход - но тогда 12 кило основной памяти тогось.
Если прикрутить 1 мегабайт и больше, и задействовать её в общем для всех поле, то 12 кило уже не кажутся такими уж и большими расходами. Но это уже получится как на Спектруме, только с атрибутом на байт, а не на знакоместо. Итого 24 кило для такого слабого процика... Много графики на экране не подвигаешь. Тут нужен процессор побыстрее...

И, кстати, на счёт процессора. Я знаю только одну проблему с Z80 на Специалисте - нерабочий Бейсик, который ivagor благополучно пропатчил и превратил в рабочий. Но, как мне кажется, Z80 отлично в нашу концепцию вписывается! Он быстрее сам по себе и гонится неплохо, при этом максимально совместим с 8080. Опять же, одно питание. Почти весь софт, созданный за эти годы под Специалист, на нём прекрасно работает. Есть же несколько клонов уже сразу с Z80 (Эрик, Сябр). Думаю, что нужно именно Z80 закладывать в новый клон. Или есть какие-то весомые аргументы против такого решения?

SYR-ALEX
15.07.2025, 11:54
И, кстати, на счёт процессора. Я знаю только одну проблему с Z80 на Специалисте - нерабочий Бейсик, который ivagor благополучно пропатчил и превратил в рабочий. Но, как мне кажется, Z80 отлично в нашу концепцию вписывается! Он быстрее сам по себе и гонится неплохо, при этом максимально совместим с 8080. Опять же, одно питание. Почти весь софт, созданный за эти годы под Специалист, на нём прекрасно работает. Есть же несколько клонов уже сразу с Z80 (Эрик, Сябр). Думаю, что нужно именно Z80 закладывать в новый клон. Или есть какие-то весомые аргументы против такого решения?

Процессор да надо Z80 или ВМ85 для повышения скорости . Из программ в моём распоряжении на Сябре некоректно работают только мониторазависимые . Бейсик пропадченый под Z80 есть. В Телеге я уже намекал о NEC V20 , этот даст и совместимость с существующим ПО и новый толчёк к развитию . Можно ущё и NEC V30 рассмотреть . Тоже умеет код i8080 , но это уже полноценный 16бит проц даст прирост по скорости в разы .

CityAceE
15.07.2025, 12:10
Процессор NEC V20 может быть и интересен, как нечто необычное и мощное, но мы же здесь всё-таки мечтаем о чём-то массовом и недорогом. Поэтому, на мой взгляд, лучшим выбором будет всё-таки пока ещё легкодоставаемый и недорогой Z80.

fifan
15.07.2025, 13:25
Я то же за Z80. Тем более я пишу для Специалиста на мнемоники Z80 (так получилось). Из-за этих моих слов прошу не открывать сор про чья мнемоника лучше.

CityAceE
15.07.2025, 14:23
Тем более я пишу для Специалиста на мнемоники Z80 (так получилось)
Аналогично. К, сожалению, знания родных мнемоник i8080 безвозвратно затёрлись годами проведёнными за Спектрумом.

Ну и отлично! Каких-то аргументов против Z80 пока не прозвучало. А мнения SYR-ALEX и fifan для меня лично много значит. Ещё один плюс Z80 - на него проще переносить софт с того же Спектрума и других платформ на том же процессоре. Так что пока будем придерживаться Z80 в качестве основной хотелки по процессору для нашего гипотетического клона.

Основные мне известные проблемы замены i8080 на Z80:
1. Общее повышение быстродействия, что может особенно негативно сказаться на звук и работу с магнитофоном. Вроде бы есть пропатченое ПЗУ для корректной работы с лентой? Или там разница на уровне допустимой погрешности?
2. Отличие в работе команд IN/OUT. Думаю, что если и есть какие-то программы, которые используют IN/OUT для доступа к памяти, то их по пальцам можно посчитать. Наверное, эти программы можно пропатчить или вовсе проигнорировать, чего не хотелось бы, конечно.
3. Отличие в обработке флагов в некоторых командах. Самое больное - это неработающий Бейсик. Но его ivagor благополучно заставил работать на Z80. Что-то ещё из софта?
4. Отличие в работе недокументированных команд. Вот здесь посерьёзнее. Почти весь софт от SP-580 в качестве защиты использует недокументированные команды вместо стандартных. В целом всё это отлавливается, и недокументированные команды легко заменяются на документированные. Но это работа... Хотя, положа руку на сердце, софт SP-580 требует особой конфигурации компьютера. Вряд ли в новом клоне будет предусмотрена такая конфигурация. Хотя как знать? Но опять же, некоторые игры, типа Jet-Set, перенесли под стандартный конфиг, и вот они уже вряд ли запустятся на Z80. Нужно проверять.

Осмелюсь спросить экспертное мнение ivagor по поводу использования Z80 в качестве основного процессора в этом гипотетическом клоне, какие плюсы и минусы?

ivagor
15.07.2025, 15:15
Про минусы мне добавить по-крупному нечего (IN/OUT при желании решается на аппаратном уровне, но скорее всего этим заниматься никто не будет), а плюсы зависят от того, что планируется делать с подобным клоном Специалиста.

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

Разница в таймингах команд тоже в принципе может быть скомпенсирована на аппаратном уровне, но этим 100% никто заниматься не будет.

Mick
15.07.2025, 15:40
Думаю, что нужно именно Z80 закладывать в новый клон. Или есть какие-то весомые аргументы против такого решения?

Эх облом, я все надеялся ВМ80 разогнать. Но да ладно.

SYR-ALEX
15.07.2025, 17:48
Я то же за Z80. Тем более я пишу для Специалиста на мнемоники Z80 (так получилось). Из-за этих моих слов прошу не открывать сор про чья мнемоника лучше.

Какая разница в каких мнемониках , сях , питонах - да хоть рунами . Главное результат .:v2_dizzy_ironic:

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


Про минусы мне добавить по-крупному нечего (IN/OUT при желании решается на аппаратном уровне, но скорее всего этим заниматься никто не будет), а плюсы зависят от того, что планируется делать с подобным клоном Специалиста.

За IN/OUT думаю не стоит переживать . В Специалисте по прямому назначению использовать без ВК28/38 не возможно .

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

Предлогаю сформулировать ТЗ , обсудить ТУ , а там и до реализации не долго .
Для начала давайте решим по менеджеру памяти . Я за 4 окна по 16КБ с поризвольной постановкой любой страници в любое окно .
Стандартные порты оставить как есть и продублировать на IN/OUT . Это даст возможность использовать всю память под ОЗУ . Новые порты только через IN/OUT .
Если использовать ранее предложенный мной маппер , банки /ROM, /ERAM, /SLOT можно использовать на максимальной скорости процессора без торможения и конфликтов с видео . Т.е. турбировать .

fifan
15.07.2025, 19:36
Есть у меня один манускрипт (https://xn----7sbombne2agmgm0c.xn--p1ai/for_out/z80.doc) с прошлого века о Z80. Писался он на волне подключения Z80 к Специалисту.

CityAceE
15.07.2025, 21:05
Эх облом, я все надеялся ВМ80 разогнать. Но да ладно.
Будем Z80 разгонять ;)


За IN/OUT думаю не стоит переживать . В Специалисте по прямому назначению использовать без ВК28/38 не возможно .
По прямому невозможно, то по непрямому кое-кто пользовался. Вот как раз у fifan'а в манускрипте приводится пример.


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


Я за 4 окна по 16КБ с поризвольной постановкой любой страници в любое окно .
Поддерживаю. Но есть непонимание, что делать с проецируемыми в область памяти внешними устройствами?


Стандартные порты оставить как есть и продублировать на IN/OUT . Это даст возможность использовать всю память под ОЗУ . Новые порты только через IN/OUT .
Выглядит логично. Но некоторые новые "навесы" вполне можно будет подключать и с стандартному Специалисту. Например, AY или мышь. Нужно предусмотреть подобный сценарий. Новый клон с новыми крутыми возможностями это хорошо, но большой вопрос в том, а много ли этих клонов будет собрано и много ли людей захотят поддержать его программно? Все новые навороты с высокой степенью вероятности могут так и остаться новыми наворотами без какой-либо поддержки. Так что я считаю, что не стоит забывать и про классику. Мелкую периферию типа AY, мыши, последовательного порта и т.д. нужно ориентировать не только на этот клон, а на любой классический Специалист. Просто у нашего клона для удобства всё сразу будет на борту. Не хочется получить некий новый ни с чем несовместимый комп, который будет просто сбоку приделан к Специалисту. Хочется получить именно развитие платформы, чтобы новый клон оставался Специалистом, но при этом имел новые возможности.


Если использовать ранее предложенный мной маппер , банки /ROM, /ERAM, /SLOT можно использовать на максимальной скорости процессора без торможения и конфликтов с видео . Т.е. турбировать .
Из этого всего понял только слово "турбировать" :) И вот здесь тоже есть что обсудить. До какой частоты турбировать, чтобы не пришлось выискивать экземпляр Z80, работающий на этой частоте? Делать только Турбо и и неТурбо или сделать ещё промежуточные шаги? Если делать, то для чего это может понадобиться? Как переключать турбирование?

Ну и ещё вопрос по Z80. Прерывания. Как с ними быть? Там и немаскируемые есть, и маскируемые. А маскируемых целых три - IM0, IM1 и IM2. "Дорого" ли будет сделать полноценную поддержку всех режимов, чтобы задействовать возможность Z80 на полную катушку?

Mick уже упоминал про слоты расширения. Тоже нужно иметь ввиду. Можно ли будет сделать так, что периферию от Спектрума туда вставлять?

Mick
16.07.2025, 08:28
Mick уже упоминал про слоты расширения. Тоже нужно иметь ввиду. Можно ли будет сделать так, что периферию от Спектрума туда вставлять?

Если ставить Z80, то по сути можно и целиком перенести ZX Bus, только оценить какие нужны сигналы, а какие можно заменить на нужные.

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


Будем Z80 разгонять

До скольки?
8МГц - это минимум нужно, а так до 20МГц процессоры есть. Там больше будут вопросы с памятью.

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


Ну и ещё вопрос по Z80. Прерывания. Как с ними быть? Там и немаскируемые есть, и маскируемые. А маскируемых целых три - IM0, IM1 и IM2. "Дорого" ли будет сделать полноценную поддержку всех режимов, чтобы задействовать возможность Z80 на полную катушку?

Обычно в Спектруме используются IM 0 и IM 2

CityAceE
16.07.2025, 11:26
Если ставить Z80, то по сути можно и целиком перенести ZX Bus
Ну и отлично! Значит, нужно галочку напротив этого пункта поставить.


8МГц - это минимум нужно, а так до 20МГц процессоры есть. Там больше будут вопросы с памятью.
Я в схемотехнике не шарю. Но SYR-ALEX вот что пишет:


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


Обычно в Спектруме используются IM 0 и IM 2
В Спектруме да, но мы же не ещё один Спектрум проектируем.

Я вот тут ещё размышлял на досуге и подумал про SP-580. Классную штуку придумали в Барнауле в своё время. Много (https://zx-pk.ru/threads/36040-katalog-programm-dlya-monitora-sp-580.html) отличных игр произвели и адаптировали под свой Монитор. По задумке авторов, в Специалист с Монитором SP-580 можно было загружать с кассеты программы от Радио-86РК. И если программы не использовали каких-то выкрутасов, а пользовались только стандартными точками входа в Монитор, то такие программы теоретически должны были запускаться и работать на Специалисте. Для этого они переместили адреса периферии и ПЗУ. Доработка несложная, но всё-таки она требуется. Возможность запуска софта от Радио-86РК также может стать для кого-то привлекательной.

Мне кажется, что будет несложно записью в какой-нибудь порт менять раскладку адресов на SP-580. Всё же мы делаем Специалист, а не ещё один ненужный никому, кроме его создателей, несовместимый ни с чем компьютер. Хочется железный компьютер, на котором запустится максимум наследия. А программы от SP-580 очень даже достойны того, чтобы их запускать не только под эмулятором.

Но тут, как обычно, без вопросов не обойтись.
1. Как я уже писал выше, SP-580 в своих программах активно использовали недокументированные команды, которые на Z80 работают совершенно иначе. Значит, придётся кропотливо выискивать эти команды и менять на нормальные. А это тоже работа. Но эту работу благодаря Emu80 можно делать и заранее.
2. Программы от Радио-86РК для вывода звука используют EI/DI. Что с этим делать? Или звук они тоже через Монитор выводят в основном?

Ну и ещё про SP-580. Ребята предлагали поставить ВИ53. Её адрес вроде не конфликтует ни с чем. Но софта под неё так и не написали, кроме шахмат с одним единственным звуком. Правда Денис Грачёв смог адаптировать свой проигрыватель для одноголосных мелодий и эти мелодии даже можно проиграть (https://zx-pk.ru/threads/35969-bipernaya-muzyka-na-spetsialiste.html?p=1205749&viewfull=1#post1205749) там. Так вот вопрос по поводу ВИ53? Нужна ли она в новом клоне? Для музыки, однозначно, AY лучше, который мы уже планируем ставить. Но может быть таймеру можно будет найти какое-то другое полезное применение?

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

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

Mick
16.07.2025, 12:25
В Спектруме да, но мы же не ещё один Спектрум проектируем.

А в чем проблема? При условии что в нынешнем Специалисте никаких прерываний от слова вообще нет. А IM 0 это обычный режим как и в ВМ80, а IM 2 это вектор размещается в памяти. Не вижу проблем из за этого.

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


Я в схемотехнике не шарю. Но SYR-ALEX вот что пишет:

Не буду спорить, но чем выше частота, тем требовательнее к времянкам. Для 8МГц проблем не будет, а для 16(20)МГц уже возможно возникнут некоторые трудности.

CityAceE
16.07.2025, 14:21
А в чем проблема?
Проблем нет. Я к тому, что не стоит вот так сразу копировать Спектрум. Возможно, это и есть идеальное решение. А, возможно, стоит рассмотреть возможности IM1 и реализовать их тоже. Мы же пока просто обсуждаем.

Mick
16.07.2025, 14:43
Я к тому, что не стоит вот так сразу копировать Спектрум

Копирование Спектрума - это когда к Специалисту добавляется режим Спектрум. А прерывания это всего лишь дополнительная возможность в Z80. По сути IM 2 в Спектруме применяется в демо. Но в принципе можно обойтись и одним IM 0 (штатным) прерыванием по фиксированному адресу.

CityAceE
16.07.2025, 14:49
Я не про сокращение, а наоборот про самое полное раскрытие возможностей Z80. Я к тому, что можно же все три типа прерываний задействовать.

Zidane
17.07.2025, 09:32
Интерес к платформе есть. И очень даже. Но что конкретно мне мешает - отсутствие вменяемого Монитора. Стандартные подпрограммы ПЗУ выводят строки и символы в режиме наложения, что сильно ограничивает скорость работы даже в ассемблере, не то что на BASIC. В итоге, подпрограммы системного ПЗУ - главный тормоз компьютера. Я тут как то ролик накидал про то, как 8-битные шаблоны и строки из таких шаблонов выводить на экран Специалиста - так оно в несколько раз быстрее. Опять же, шаблоны 8*8 намного приятнее и удобнее в использовании, чем 6*8. Второе - ассемблер. Все-таки, писать в "Микрон" в современном мире - сомнительное удовольствие. Нашел VASM, обалденная, а главное - универсальная (и под I8080 и под Z80) штука. Сейчас разбираюсь.
Потому как видится мне: без переделки Монитора - новый редактор ассемблера и BASIC со своим шрифтом. Не то, чтобы я не хотел их написать - знаний пока не хватает, но я учусь ). Второе: 2 мегагерца для 12 килобайт видеопамяти маловато. Как ни пытаюсь сделать вертикальный скроллинг, даже через стек выходит быстрее, чем стандартный, но все равно заметно. Кстати у BASIC "Микрон" бесячий момент, когда вместо скроллинга очищается экран. Такая себе идея. Так что софт нужен и важен, и что самое главное вполне может появиться. Только вот Монитор в ПЗУ, по сути, останется не у дел. Ну и где-то я уже предлагал - в каком-то из журналов предлагалось использовать несколько ПЗУ для хранения интерпретатора BASIC и ассемблера. А если вместо этого ПЗУ реализовать разъем для картриджа и использовать данный диапазон адресов для работы с ROM-диском. Кстати такое в журналах тоже было, но не помню, как там оно было реализовано. Это я к тому, что, скажем, в Вектор-06Ц реализована вполне интересная идея, в рамках ограниченного ОЗУ - в ПЗУ только загрузчик (не от хорошей жизни, разумеется) а вот все остальное грузится с внешнего носителя.

CityAceE
17.07.2025, 09:48
Разные виды Мониторов на Специалисте существовали. В то числе и оконный Монитор Доможирова, который использовал матрицу 8*8 для символов. Но проблема в том, что почти все программы для Специалиста используют для вывода текста именно стандартные ПП Монитора. Если что-то поменять, то весь софт "поплывёт". Так что стандартный Монитор ради совместимости вообще никак нельзя трогать. Но можно подумать о том, чтобы подменять его на время неким другим системным ПО, также размещённым в ПЗУ. То есть, если старый софт ничего не знает про новое системное ПО, то оно по умолчанию пользуется тем, что было. А новый софт может начинать свою работу с переключения на новый Монитор.

А если продолжить осуждать Монитор, то в него, как минимум, нужно добавить полный набор символов для латиницы и кириллицы, а также привести раскладку клавиатуры к современному стандарту QWERY/ЙЦУКЕН.

Про средства разработки на самом компьютере согласен, нужен, как минимум, нормальный ассемблер. МИКРОН устарел по всем фронтам. Ну а лично для меня ещё и мнемоники Z80 нужны.


Я тут как то ролик накидал
Можно ссылку на этот ролик?

b2m
17.07.2025, 10:25
стандартный Монитор ради совместимости вообще никак нельзя трогать
Можно всё, но нужно иметь возможность переключаться в режим совместимости со стандартным Специалистом (а может даже и со Специалистом МХ). Как пример - вариант HardWareMan-а Специалист МХ2.

Zidane
17.07.2025, 11:14
Можно ссылку на этот ролик?
https://youtube.com/live/9r-Xrf8II6Q Но это еще работа в Микрон. Сейчас с VASM разберусь и все ок. На самом деле там ничего сложного и все работает. Но нужно шапку файла добавлять, чтобы грузилось в эмулятор. Вот и ищу - где-то на сайте видел.

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

Да, еще. Я был бы весьма заинтересован в Z80 на новом Специалисте. Ибо 12 килобайт для 2 МГц, как я писал выше, много. Или 8085.. Но это хотелки, чо уж тут.

CityAceE
17.07.2025, 11:26
Я был бы весьма заинтересован в Z80 на новом Специалисте.
Добро пожаловать в соответствующую тему (https://zx-pk.ru/threads/36280-kakim-mozhet-byt-novyj-klon-spetsialista.html) со своими хотелками ;)


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


import sys


def hex_number(number):
sting_number = str(hex(number)).lstrip('0x').upper()
while len(sting_number) < 4:
sting_number = '0' + sting_number
return sting_number


if len(sys.argv) > 1:
filename = sys.argv[1]
if len(sys.argv) > 2:
start = int(sys.argv[2])
else:
start = 0

with open(filename, 'rb') as f_obj:
binary_file = f_obj.read()

finish = len(binary_file) - 1

cs = 0
for i in range(finish):
cs += binary_file[i]
cs += (binary_file[i] << 8)

cs = (cs & 0xff00) | ((cs + binary_file[finish]) & 0xff)

binary_file = bytearray(binary_file)

header = [start % 256, start // 256, (start + finish) % 256, (start + finish) // 256]
header = bytearray(header)

check_sum = [cs % 256, cs // 256]
check_sum = bytearray(check_sum)

rks_file = header + binary_file + check_sum

if '.' in filename:
name_parts = filename.split('.')
name_parts[-1] = 'rks'
filename = '.'.join(name_parts)
else:
filename = filename + '.rks'

print("ИМЯ ФАЙЛА:", filename)
print("КОНТРОЛЬНАЯ СУММА =" + hex_number(cs))
print("НАЧАЛЬНЫЙ АДРЕС =" + hex_number(start))
print("КОНЕЧНЫЙ АДРЕС =" + hex_number(start + finish))

with open(filename, 'wb') as f_obj:
f_obj.write(rks_file)

else:
print("Usage: python bin2rks.py filename.bin [start_address]")

Serg6845
17.07.2025, 13:37
Всё же мы делаем Специалист, а не ещё один ненужный никому, кроме его создателей, несовместимый ни с чем компьютер.

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


Хочется железный компьютер, на котором запустится максимум наследия. А программы от SP-580 очень даже достойны того, чтобы их запускать не только под эмулятором.

Но тут, как обычно, без вопросов не обойтись.
1. Как я уже писал выше, SP-580 в своих программах активно использовали недокументированные команды, которые на Z80 работают совершенно иначе. Значит, придётся кропотливо выискивать эти команды и менять на нормальные. А это тоже работа. Но эту работу благодаря Emu80 можно делать и заранее.


а по другому никак. товарищи из SP580 - ССЗБ, не стали бы заморачиваться с этой фигней и переносом ПЗУ/портов - глядишь и распространение бы пошире получили.
технически-то переключение сделать - никаких проблем.


2. Программы от Радио-86РК для вывода звука используют EI/DI. Что с этим делать? Или звук они тоже через Монитор выводят в основном?


кроме этого у РК есть еще некоторые серьезные отличия. типа чтения символа из нужной позиции экрана. не помню сделали это в мониторе SP-580 или нет, если и сделали - будет криво и медленно.
и хороший вопрос - что есть полезного на РК что уже не адаптировали в том или ином виде даже в то время (это к вопросу - стоит ли заморачиваться с запуском программ от РК)


Ну и ещё про SP-580. Ребята предлагали поставить ВИ53. Её адрес вроде не конфликтует ни с чем. Но софта под неё так и не написали, кроме шахмат с одним единственным звуком. Правда Денис Грачёв смог адаптировать свой проигрыватель для одноголосных мелодий и эти мелодии даже можно проиграть (https://zx-pk.ru/threads/35969-bipernaya-muzyka-na-spetsialiste.html?p=1205749&viewfull=1#post1205749) там. Так вот вопрос по поводу ВИ53? Нужна ли она в новом клоне? Для музыки, однозначно, AY лучше, который мы уже планируем ставить. Но может быть таймеру можно будет найти какое-то другое полезное применение?

если я правильно помню - Exolon для Специалиста может использовать таймер для синхронизации, только не помню по каким адресам.


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

тут хороший вопрос - любая хотелка - это приличный объем макетирования, это время и ресурсы. сделать на FPGA проще - но тогда оно скорее всего в FPGA и останется, вряд ли кто будет делать под FPGA схематиком, а переводить потом из *HDL в схему для рассыпухи - это без меня :)

CityAceE
17.07.2025, 14:33
если я правильно помню - Exolon для Специалиста может использовать таймер для синхронизации, только не помню по каким адресам.
Что-то я не припоминаю такого факта. ivagor не прояснишь?

Serg6845
17.07.2025, 15:04
Что-то я не припоминаю такого факта. ivagor не прояснишь?

https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1065828&viewfull=1#post1065828

ivagor
17.07.2025, 15:13
В чем собственно вопрос? Две версии могут использовать таймер для коррекции скорости, если детектируют его наличие. Если не детектируют - не будут использовать.

CityAceE
17.07.2025, 22:31
Как я уже писал выше, SP-580 в своих программах активно использовали недокументированные команды, которые на Z80 работают совершенно иначе. Значит, придётся кропотливо выискивать эти команды и менять на нормальные. А это тоже работа. Но эту работу благодаря Emu80 можно делать и заранее.

Решил проверить, а что же там с ПЗУ. И первое же, что я там увидел было:


ROM:C000 org 0C000h
ROM:C000 jp loc_C003
ROM:C003 ; ---------------------------------------------------------------------------
ROM:C003
ROM:C003 loc_C003: ; CODE XREF: ROM:C000↑j
ROM:C003 ld sp, 8FABh
ROM:C006 ld a, 82h
ROM:C008 out (0F3h), a
ROM:C00A jp unk_F836


Понятно, что в ПЗУ каждый байт на счету, но... Эх...

Serg6845
17.07.2025, 22:41
Решил проверить, а что же там с ПЗУ. И первое же, что я там увидел было:


ROM:C000 org 0C000h
ROM:C000 jp loc_C003
ROM:C003 ; ---------------------------------------------------------------------------
ROM:C003
ROM:C003 loc_C003: ; CODE XREF: ROM:C000↑j
ROM:C003 ld sp, 8FABh
ROM:C006 ld a, 82h
ROM:C008 out (0F3h), a
ROM:C00A jp unk_F836


Понятно, что в ПЗУ каждый байт на счету, но... Эх...

странно. посмотрел у себя файл ПЗУ -

C:\spets\sp580\SP580.BIN
0000000000: C3 03 C0 31 9F 8F 3E 82 │ 32 03 F0 C3 00 F8 00 00

никаких обращений к портам (D3 F3) не видно. классический ld (0f003h),a
похоже их тоже было больше одного варианта.

aspgnom
17.07.2025, 22:47
Привет всем. Я тут новенький, а так старенький 8-бит электронщик/программист. Первый собранный комп был "Специалист".
Мою любовь и боль. Как все помнят сборка на мгтф и половина горелых микросхем с ес-1020.Сборка и отладка заняла почти 2 года.
Потом быстрая пересадка на IBM PC и я на больше чем 30 лет забыл про 8-битный мир. Потом увидел статьи CityAceE и ностальжи
вернуло меня на путь истинный.
Посмотрев на попытку CityAceE переписать с Атари tony захотелось самому перенести какую то игру. Окунувшись в проект я так
увлекся что трачу на это все свое свободное время(когда глаза позволяют.)

https://pic.maxiol.com/thumbs2/1752782477.94636015.emu80qtkqszjrleua.png (https://pic.maxiol.com/?v=1752782477.94636015.emu80qtkqszjrleua.png&dp=2)
https://pic.maxiol.com/thumbs2/1752782234.94636015.emu80qtbpau5ximk7.png (https://pic.maxiol.com/?v=1752782234.94636015.emu80qtbpau5ximk7.png&dp=2)
https://pic.maxiol.com/thumbs2/1752782511.94636015.emu80qtfvlvi4unjp.png (https://pic.maxiol.com/?v=1752782511.94636015.emu80qtfvlvi4unjp.png&dp=2)

Появление SD в эмуляторе развязать ахилесову пяту: или памяти не хватает либо экран перерисовывается 1500000 тактов.
Кеширование, развертка циклов, использование для копирования стека позволило довести перерисовку до 350000 тактов.
Пока моих мозгов для оптимизации дальше не хватает. Игра пошаговая стратегия - ей хватит. Есть чем заниматься дальше.

Так вод мое мнение что нужно "Специалисту" как программеру:
1. Чтение данных атрибута цвета, что позволит ускорить мою перерисовку на 15-30% и сэкономит память.
2. Довести количество цветов атрибута цвета до 16/16 на байт видеопамяти. Резко улучшается картинка.
Сделать это совместимо со старой схемой и ввести регистр режима.
3. Сделать возможность отключать запись в область атрибута цвета и обратное отключение записи в видеопамять.
Такая система позволяет получить несколько эффектов и ускорит вывод на экран.
Все это опять завести на регистр режима.
4. Сделать возможной палитру цветов из которой выбирается 16/16 и дать к ней программный доступ.
5. Представить видеопамять и память атрибутов как 2 бита на точку и получить 4 цвета любой точки из палитры.
Вывести на регистр режима.(По моему так в Векторе)
С текущей производительностью Специалиста пока все. Это бы осилить программно.

Мечты:
1. Довести проц минимум до 8 Мгц.
2. Довесить видеопамять до 4 бит на точку. Получить 16 цветов из палитры что позволит переносить очень много игр(Довесить еще 2 линейки памяти)
3. Из за пункта 2 резко понадобится память (тут как хотите но минимум 256кб)
4. Если памяти много , одну страницу превратить в ПДП на Ковокс для вывода Wav
Наверное пока все.

ivagor
18.08.2025, 11:24
В чем собственно вопрос?
Перечитал часть эксолоновской темы и понял, в чем вопрос.
Serg6845 пробовал запустить на реале версию для mx и она не заработала, т.к. требовала таймер (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1066110&viewfull=1#post1066110). После этого я добавил (https://zx-pk.ru/threads/29991-exolon-dlya-pk-spetsialist.html?p=1066915&viewfull=1#post1066915) и в версию для mx детект таймера и переход на нетаймерную тормозилку, если его нет.

CityAceE
09.09.2025, 14:55
Что ж, после того, как я обзавёлся своим собственным Сябром мне ещё больше захотелось новый клон.
Скажу откровенно, что я испытал вау-эффект, когда запустил разрабатываемую мной игру на i8085 в Turbo! Просто всё залетало, как на приставках. Так что Турбо - это, безусловно вещь, которая жизненно необходима для нового софта. А весь старый прекрасно и на классике и идёт.

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

Отличным вариантом сейчас выглядит Z80(+turbo) + MX2 (память, графика) + AY + прерывания + SD + ZX-bus.