Обязательно!
Я хочу сделать комп на ПЛИС (но с "железным" процессором и памятью). Чтобы сменой прошивки можно было сделать другой комп, в т.ч. Радугу (если её карта памяти и портов достоверно известна). Но утерянный софт - да, проблема.
Вид для печати
Обязательно!
Я хочу сделать комп на ПЛИС (но с "железным" процессором и памятью). Чтобы сменой прошивки можно было сделать другой комп, в т.ч. Радугу (если её карта памяти и портов достоверно известна). Но утерянный софт - да, проблема.
Для новодела объединенного Радуги-Специалиста лучше добавить палитру. Получим качество картинки сопоставимое с Профи. Вообще, по видеорежиму Радуга ближе к Профи, так как видеорежим Радуги - это аппаратный мультиколор с теневыми атрибутами, но с другим порядком байтов видеоданных.
День добрый всем. Имею небольшой опыт написания эмуляторов собственных процессоров и KiCAD.
Хочу собрать Радугу 'новодел', у меня конечно своя конепция что-то вроде радиолюбителя из 90-х, но все будет доступно на github для переделки :)
Но и сначала планирую написать эмулятор классической Радуги, только конечно для верификации, чтобы "поиграть" боюсь сил не хватит.
Мне очень понравилась идея Радуги /*и Алесты*/ в том чтоб железо было как можно проще а совместимость достигать программно.
Сейчас у меня подобная ситуация как после СССР - рассыпуху купить можно а вот заграничные ретро чипы сложно и дорого /*TMS9928 AY38910*/
Я за стандарты в железе и софте, заметил что автор Шерлок не против Радуги С.
Есть идея /*не моя, на оригинальность не претендую :)*/ расширить Специалист до 'Радуги С' сохранив совместимость и с оригинальным Ч/Б и 5цветным, добавив программную совместимо сть с MSX и Радугой. В результате мне кажется достичь оригинальной идеи 80-х получить доступный/дешевый домашний компьютер для обучения со множеством софта.
- Вставив 128К памяти, можно использовать его верхние области как разные псевдо-ПЗУ, совместимые с разными компьютерами (один банк 64К сплошное ОЗУ 0-0xFFFF для MSX,CP/M второй 0-0x7FFF, с дисплеем 0x8000-0xF7FF с теневой цветной плоскостью)
- Используя электронный диск Специалиста можно грузить нужное ПЗУ на старте и иметь быстрый старт/работу MSXDOS,CP/M.
- Так как MSX и Радуга программы в основном используют BIOS то хотелось бы сохранить оригинальные биты Специалиста на месте избегая дополнительных триггеров и мультиплексоров.
Возникают сразу несколько вопросов:
1 Наверно к модератору, создавать для этого новую тему? Для того чтоб задавaть вопросы и экспертам Специалиста и Радуги
2 К Шерлоку
- как Вам такая идея компьютера?
- Посмотрев схему Радуги Альфа3 не нашел там прерывания по обращению к портам. Вроде слышал что в Радуге была программная эмуляция AY с перехватом обращений к портам и код в обработчике для 580ВИ53 /*что я обязательно хотел-бы добавить в Радуге С и для VDP TMS тоже*/. Может я плохо смотрел?
- почему Вы использовали 155ИД3 для расширения клавиатуры?
- может сохранился хоть фрагмент бинарника для Радуги, хоть пару десятков команд /*чтоб было на чем разрабатывать Эмулятор*/?
Заранее благодарен
редактировано:
убрал вопрос про совместимость клавиатуры, как я уже понял надо было использовать заводскую клавиатуру КУВТ самодельная на порядок хуже. /*в таком случае сохранить 100% совместимость со Специалистом c минимумом деталей трудная задача, будем думать...*/
Использовать прерывания (причем немаскируемые) по обращению к портам (и соответствующий обработчик) имеет смысл, если в целевом компьютере z80 как и в msx. А если в целевом компьютере 8080, то программы неминуемо требуют переделки и, в частности, на примере Вектора/Корвета/ПК8002 видно, что там заменяли процедуры обращения к AY на "эмуляторы" с использованием ВИ53.
Вы совершенно правы.
1) Я еще пару раз пересмотрел слайды для видео об Алесте. Я перепутал... Там говорилось о разных proof-of-concept проектах уже в Патисонике для создания Алесты.
2)Заглубляясь в тему Радуга/MSX, понимаю что как автор и говорил уже о Радуге - там самое главное BIOS.
Сам стандарт MSX поощряет использование BIOS - под вектора и BIOS выделено для этого аж 16К ROM. Со 'стандартными' MSX программами нет потребности в NMI даже на Z80! В 90% даже ничего не надо менять в программах. А для редких пары программ можно и 'пропатчить' для остальных нет смысла - быстродействия не хватит :( Так что нужды в 100%-ом эмуляторе обращений к портам нет. /*хотя для чего бы и нет, просто завести IORQ на NMI на всякий пожарный...*/
Имея теперь свободный доступ к иностранной литературе по MSX отчетливо вижу, что большинство MSX игр можно писать используя BIOS, без обращения к железу /*по крайней мере из 100% того что писалось в детстве :)*/ MSX это не только Yamaha КУВТ2, были разные номера слотов и разные мапперы так что была необходимость использовать BIOS дяже для игрушек.
Пусть поправит меня автор Радуги, насколько я понимаю программирование на ней сводилось к использованию вызовов MSX BIOS, и поэтому если в 'Радуге С' переместить/изменить пару портов для 100% совместимости со Специалистом это не 'сломает' оригинальную идею и этот компьютер можно будет называть 'Радуга C'?
Написание MSX BIOS для 'Радуги С' очень интересная для меня задача, этим и займусь. Начну с написания простенького эмулятора, правда с Z80. Его можно свободно купить /*и у меня еще оригинальный КР1858ВМ1 !*/ да и для самделок только 5вольт.
Если использовать RAM по максимуму не прибивая гвоздями положение ROM а использовать копирование при старте из 'ROM диска' то можно на той-же 'Радуге С' запускать и программы для Радио РК86, там BIOS в других адресах - буфер текстового экрана маленький - можно по кадровому прерыванию перерисовывать изменения. Самое то для советских школ в 80-х.
Только мне хочется реализовать Радугу С для себя конечно с минимумом деталей, используя БУ микросхемы SRAM от 486cache и FLASH от BIOS-ов.
Я понимаю у авторов стояла задача дешевого одноплатного компьютера формата КУВТ, но для себя хочу развести материнскую плату формата Spectrum Ленинград*/ с мезанинами 'радиолюбитель-friendly' /*модули ген.синро, звука, диск...*/ удобней для разводки и отладки.
Вопросы про Радугу можно задавать тут. А информацию по ходу вашего проекта в отдельной теме
Главное чтобы нравилась вам. Лучше ограничится одной платформой, а именно специалистом. Просто сделать его быстрым и цветным.
Небыло таковых. Такие прерывания были на музыкальной плате для спектрума.
А зачем специалист? Ну и пусть будет тогда MSX. Кроме VDP в MSX ничего сложного.
Это экономит биты 55-го порта
Не совсем понимаю суть вопроса. Команды у Радуги такиеже как у специалиста и Ириши.
- - - Добавлено - - -
У MSX игр свой собственный BIOS. Часто очень похожий, но не идентичный
Лучше ориентироваться на КУВТ
Не думайте о совместимости с Радугой. В этом нет смысла. Фокусируйтесь на Специалисте.
Небольшое уточнение. У радуги небыло совместимости с MSX, она не испольняла код от MSX. Были лишь заимствованы фрагменты аппаратной и програмной ахитектуры -- в очень ограниченом количестве.
Позволю себе некоторые советы
1. Ограничтесь одной четкой целью. Специалист, Радуга, MSX, Радио 86... выглядит излишеством
2. Проектируйте схему так будто каждый узел на одтельной плате даже если все на самом деле все на одной.
3. Начните проектирование с центральной шины или шин если их несколько
4. Если Специалист то добавте ему слот регистр и маппер, такая Радуга была, но в единственном экземпляре. Один из слотов будет зарезервирован за архитектурой специалиста, остальные на ваш вкус.
5. Ставте современную 8 бит память в одном чипе 512 кб или 1мгб
6. Добавьте в схему USB и FIFI serial интерфейс (может очень помочь в отладке и разработке)
7. Дешифратор перефирийныйх устройств специалиста можно промапить и IO пространство
8. Используйте прерывание частотой выше чем 50 раз в секунду, и проверкой бита на порте синхронизация к кадру. Высокая частота прерваний необходима для программных ADSR. Хорошее решение у Amstrad CPC.
9. Используйте NMI для аппаратных ошибок (доступ к несуществующей памяти или порту, WDT, запись в защищенную область)
11. Добавьте минимальный контроллер прерывания. Процессор должен всегда, быстро и безошибочно понимать то каое из прерываний произошло
12. Обязательно палитра, и если возбожно (оправдано) то более 8 бит.
13. Расчитывайте на максимальную тактовую частоту 8-20мГц. Но с возможностью downgrade, а не наоборот
14. Проектируйте так чтобы частота процессора не влияла на работоспособность софта
P.S. Вместо схемы с ВИ53 можно использовать подобие MagicSound. Разумеется оптимизировать немного. Добавить стерео, использовать лучший ЦАП, и т.д.
Лучше ориентироваться на стандарт! Потому, как у КУВТа, в том числе, есть некоторые не предусмотренные стандартом особенности.
Они стандарту не противоречат, в целом, но несколько выходят за его рамки.
Скажем так, разрабатываемое железо, по возможности, должно их поддерживать, а вот софт - использовать не должен, даже при заведомом наличии.
Ну как пример: читаемость/нечитаемость мапера.
Собственно рекомендую КУВТ так как он мне привычней на него большо русского софта и доки. Напомните мне, чем КУВТ не соотвествует стандарту?
Ну и к пункту 4. И читаемость маппера необходима, и использовать это в софте можно и нужно.
При необходимости для платформ без этого можно использовтаь условную компиляцию или условное исполнение. Все что делает код короче и быстрей, а особенно связанное с прерываниями, при этом не требуещее аппаратных затрат -- делать однозначно!
Спасибо за развернутый ответ!
Схема специалиста проста - это хорошая база для творчества. И нравится идея Специалиста и Радуги - используя рассыпуху реализовать сложные вещи простыми программно/аппаратными методами. Хочется без VDP, MSX-ы уже есть новодел - сложно это для меня и дорого.Цитата:
А зачем специалист? Ну и пусть будет тогда MSX. Кроме VDP в MSX ничего сложного.
Не совсем понимаю суть вопроса. Команды у Радуги такиеже как у специалиста и Ириши.
Я имел в виду просто какой-то фрагмент кода.
Согласен. Для меня очень важна простота и доступность реализации /*на рассыпухе конца 80х начала 90х*/ и совместимость.Цитата:
Позволю себе некоторые советы
1. Ограничтесь одной четкой целью. Специалист, Радуга, MSX, Радио 86... выглядит излишеством
Со специалистом 100% c MSX программная. Радио 86 - специалист и так мог 'эмулировать' ;)
/*Тогда программы переписывать людей не хватало а сейчас тем более - совместимость должна быть 100% чтоб хоть какой-то софт иметь.*/
Это достигается просто наличием 128к SRAM - не надо реализоыавать тучу чипселектов и перебрасывать ПЗУ туда сюда.
Мне кажется так можно было сделать и в Радуге /*конечно SRAM не было но DRAM уже стояли*/ софта для такого компьютера было-бы больше.
Такие компьютеры хотелось бы для школ вместо одной Ямахи - 10радуг, чтоб не сидеть по двое за одним столом...
У меня вопрос, я так понял все порты Специалиста вы переставили, почему?
Ведь потеряна совместимость и софт уже не доступен...
О какой Радуге Вы упомянули?Цитата:
2. Проектируйте схему так будто каждый узел на одтельной плате даже если все на самом деле все на одной.
3. Начните проектирование с центральной шины или шин если их несколько
4. Если Специалист то добавте ему слот регистр и маппер, такая Радуга была, но в единственном экземпляре. Один из слотов будет зарезервирован за архитектурой специалиста, остальные на ваш вкус.
7. Дешифратор перефирийныйх устройств специалиста можно промапить и IO пространство
У меня как раз идея реализовать /*регистр и 2 КП-шки получается*/ 4 слота MSX, один слот - 'Радуга С' станица экрана и страница ПЗУ+ввод-вывод.
Два слота - ОЗУ и псевдо-ПЗУ. Центральная шина - MSX.
Неужели была такая Радуга?
С шинами получается ребус - основная MSX, а в слоте Специалиста - специалист.
Планирую развести стандартный Ямаховский разъем для памяти, платы расширения 512к-4Мб уже есть.Цитата:
5. Ставте современную 8 бит память в одном чипе 512 кб или 1мгб
Скажите пожалуйста, когда Вы делали Радугу была доступна информация по Ямахе?
Могли Вы в то время поставить такой совместимый разъем на Радуге?
USB Это слишком круто, но выход для последовательного порта будет для отладки! /*для USB ftdi dongle*/Цитата:
6. Добавьте в схему USB и FIFI serial интерфейс (может очень помочь в отладке и разработке)
А как было в Радуге? Игрушку с графикой без внешнего терминала не поотлаживаешь.
Интересно, в музыке не силен, думал что 50Hz Было достаточно для эмуляции огибающих AY.Цитата:
8. Используйте прерывание частотой выше чем 50 раз в секунду, и проверкой бита на порте синхронизация к кадру. Высокая частота прерываний необходима для программных ADSR. Хорошее решение у Amstrad CPC.
Можете поделится опытом где это заметно? Может демки какие-то?
Конечно это основа эмуляции разных платформ. Всего навсего завести NMI все остальное сделает софт.Цитата:
9. Используйте NMI для аппаратных ошибок (доступ к несуществующей памяти или порту, WDT, запись в защищенную область)
11. Добавьте минимальный контроллер прерывания. Процессор должен всегда, быстро и безошибочно понимать то каое из прерываний произошло
Интересный вопрос про палитру. У Вас стоит двухпортовая память - сейчас такую не просто найти а в те времена тем более.Цитата:
12. Обязательно палитра, и если возбожно (оправдано) то более 8 бит.
Почему Вы использовали такую редкую микруху а не 'народную' К155РУ2 как Вектор и АТМ?
Спасибо, учтем. С высокой частотой только у MSX2 проблемки, там у них маппер на маппере получается если реализовывать 1:1 без wait-state-ов не обойтись.Цитата:
13. Расчитывайте на максимальную тактовую частоту 8-20мГц. Но с возможностью downgrade, а не наоборот
14. Проектируйте так чтобы частота процессора не влияла на работоспособность софта
Получается толку от повышения частоты выше 4MHz мало. Есть мысль расположить SRAM сразу у CPU...
MagicSound использует ZXbus, это можно потом переходник развести MSX<->ZXbus и в свободный слот воткнуть.Цитата:
P.S. Вместо схемы с ВИ53 можно использовать подобие MagicSound. Разумеется оптимизировать немного. Добавить стерео, использовать лучший ЦАП, и т.д.
ВИ53 хочу сделать на мезонине, влюбился я в эту идею Радуги хочется повторить и послушать.
Даже на Векторе MSX музыка была сносно перенесена.
А в Радуге с огибающими и шумом, очень интересно /*и доступно!*/.
В начале разработки софта на специалист и небыло. Задачи совместимости тоже небыло. Требовалось - более совершенное планирование пространства ввода вывода, битов на портах и ПЗУ.
Была, на ней стояло 256КБ памяти (если я не ошибаюсь)
Для вашего проекто больше подходит ZXBus или MSXBus как разьем расширения. А основная основная шина это вам решать.
Информация была, разьемов хороших небыло.
Поставьте ftdi на плату
Жалею что небыло.
Просто поверъте.
Она не была ни редкой ни дорогой
Думаю стот сфокусироватся на одной цели. Как там у MSX это все равно.
- В вашем случае необходим програмный переключаетль реэима турбо не турбо.
- Генератор wait для доступа к портам ввода вывода и в ПЗУ (если имеется) в режиме турбо
- Продумать что будет в момент прерываний
Не использует. Но MS можно поместить на тойже плате где и процессор.
Тогда используйте цифровой шум