PDA

Просмотр полной версии : Специалист_МХ_FPGA на u10ep3c



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

Ewgeny7
06.02.2011, 21:58
Новая неделя начнется завтра... Чо дальше делать будем с этим вариантом Спеца? Страницы памяти довешивать?

fifan
07.02.2011, 04:57
Эту версию с исходниками выложу на сайт. А впереди - расширение до МХ.

Error404
10.02.2011, 12:09
Такая мысль.
Железный SPI контроллера SD HarwareMan-а способен с минимальной доработкой (добавлением некоего селектора) работать не только с SD, но и с PCF8583?

Чтобы иметь к ней доступ на уровне тупо "читать/писать байт" - без программых сдвигов. Тогда контроллер SD "на рассыпухе" можно было бы дополнить еще и часами (а это надо раз уж вы на Спеце решили делать FAT с датами файлов). И поддержать программно.

Программно поддерживать решение которое живет только в ФПГА (PCF8583 на платке u9/u10) и которое нельзя подключить к древнему Спецу/Ориону - это не олдскульно, а следовательно не интересно. А вот если есть рабочий "рассыпной" прототип, то тогда уже и в u9/u10 реализовать аналог - почетно.

Ибо уже предельно грустно смотреть как с эмулятором ВИ1 на u9/u10 ничего не выходит. А иметь часы при наличии RTC на платке вроде как бы нелишне.

Конечно, чип PCF8583 - неудачный, но раз уж на u9/u10 поставили его, то и к контроллеру SD HarwareMan-а надо прикручивать его (чтобы два раза не писать ПО)

fifan
10.02.2011, 17:11
Всё это конечно хорошо. Ну а зачем нужен этот таймер PCF8583 на реальном Спеце? Я так думаю юзеры это не поддержат. ПО под него вообще нет. Никто не собирается меня поддерживать. Я не могу и железо делать и проги писать.

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

Если платы Специалиста на дисретных микруках нашлось более десятка желающих купить, то Спец на плисине никто не возмётся повторить (я хочу собрать плату на Циклоне-1 (http://www.spetsialist-mx.ru/for_out/NewSpets.gif)).

Ещё о таймере. Перспективы на чип PCF8583 небольшие, я бы сказал совсем нет. Да и штатный К580ВИ53 на МХ используется только для вывода звука. Может пока просто собрать то что было раньше, чем выдумывать новое?

Может я сумбурно написал, но пока это так. Не очень большая перспектива по разработке чего-то нового к Специалисту.

Error404
10.02.2011, 18:10
Всё это конечно хорошо. Ну а зачем нужен этот таймер PCF8583 на реальном Спеце? Я так думаю юзеры это не поддержат. ПО под него вообще нет. Никто не собирается меня поддерживать. Я не могу и железо делать и проги писать.

Ещё о таймере. Перспективы на чип PCF8583 небольшие, я бы сказал совсем нет. Да и штатный К580ВИ53 на МХ используется только для вывода звука. Может пока просто собрать то что было раньше, чем выдумывать новое?

Может я сумбурно написал, но пока это так. Не очень большая перспектива по разработке чего-то нового к Специалисту.

Не аргумент. Нового не хотят, а типа "собрать то что было раньше" - в очередь стоят? Не верю. Если не интересно лично разработчику - так и надо говорить. Мы все тут практически в КАЖДОМ случае любую разработку делаем только для себя. Уже бессмысленно рассчитывать, что вот ты что-то сделаешь и кому-то это будет интересно повторять. Интересующихся меньше чем разработок. :)

sergey2b
10.02.2011, 18:36
Спец на плисине, благодаря помощи Ewgeny7, хорошо продвинулся. Но повторять эту конфигурацию кроме меня и Евгения никто не собирается. По крайней мере отзывов нет.

была бы версия для altera de1 то у кого эта dev board есть попробовали
помоему проблемма что надо покупать/собирать u9/u10

Ewgeny7
10.02.2011, 19:28
была бы версия для altera de1 то у кого эта dev board есть попробовали
помоему проблемма что надо покупать/собирать u9/u10
Дык взяли и перенесли бы на DE1. Это гораздо проще чем переносить наоборот, на uX.

---------- Post added at 19:28 ---------- Previous post was at 19:23 ----------


способен с минимальной доработкой
Нет, I2C работает на более чем 8 битах, плюс последний бит может быть активирован как передающей, так и принимающей стороной. Это посложнее сдвигового регистра для SPI...

fifan
10.02.2011, 19:42
Ewgeny7 всё объяснил чётко. Я приводил ссылку на плату на Циклоне-1. Так вот перенос всего проекта занимает у меня полчаса. Значит перенос на DE1 тоже довольно прост. На счёт цены DevBoard. Да u9/10 стоит в несколько раз меньше DE1.

Вернёмся к проекту. Евгений, ты не юзал сырки 8253, кои есть готовые на Векторе? Для реализации МХ мне нужно описывать К580ВИ53, вооплощение которого есть на Векторе (http://code.google.com/p/vector06cc/).
Ещё. Напомни мне какой максимум объёмом блок кодов можно одновременно подключить в проекте? У меня выбор: использовать ROM-диск объёмом 32 и 48 кБайт - http://www.spetsialist-mx.ru/index19.html - в таблице по ссылке соответственно без ROM-диска пользователя и с оным.

Ewgeny7
10.02.2011, 20:42
32 и 48 кБайт
48 - нельзя.
32 + 16 - вероятно можно.

Error404
10.02.2011, 21:46
Нет, I2C работает на более чем 8 битах, плюс последний бит может быть активирован как передающей, так и принимающей стороной. Это посложнее сдвигового регистра для SPI...

Спрашивается - и нафига ж было использовать в проекте такой чип? Проще нету что ли?
Хотелось восьминогого таракана - ставили бы DS1202/DS1302: и интерфейс простейший и драйвера готовые под Z80 уже есть с исходниками и примером включения. Так нет же, нате вам. :(

Ewgeny7
10.02.2011, 22:35
Спрашивается - и нафига ж было использовать в проекте такой чип?
Я уже задавал подобный вопрос, правда, менее эмоционально :)

Error404
10.02.2011, 23:30
Я уже задавал подобный вопрос, правда, менее эмоционально :)

Посмотрел цоколевку - между тем что есть и тем что хочется совпадают только ноги питания. :)

Ewgeny7
11.02.2011, 09:00
Посмотрел цоколевку - между тем что есть и тем что хочется совпадают только ноги питания.
Уже хорошо :) Остальное - на соплях МГТФ... +1 проводок придется кинуть от GPIO, DS1302 имеют трёхпроводной интерфейс.

vlad
11.02.2011, 10:04
Спрашивается - и нафига ж было использовать в проекте такой чип? Проще нету что ли?
Хотелось восьминогого таракана - ставили бы DS1202/DS1302: и интерфейс простейший и драйвера готовые под Z80 уже есть с исходниками и примером включения. Так нет же, нате вам.
По поводу I2C, аппаратный контроллер уже написал, сейчас в отладке. Т.к. чип юзается на нижнем уровне иерархии, то аппаратную эмуляцию любого другого на среднем уровне некто не мешает сделать, как это сделано в конфигурации u9Speccy.
По поводу другого таракана, можно вместо PCF8583P (Clock/calendar with 240 x 8-bit) установить DS1307N (64 x 8 Serial RTC) или DS1338 (I2C RTC with 56-Byte NV RAM). Если пренебречь байтами энергонезависимого статического ОЗУ. Как подключить вывод 3(Vbat) решите сами.

---------- Post added at 09:04 ---------- Previous post was at 08:52 ----------

Сейчас занят написанием арбитра для кеширования SDRAM. Для начала хочу сделать кеш прямого отображения. Т.к. проц в основном молотит только циклы чтения, то выигрыш в производительности будет ощутимый, правда придется пожертвовать RRAM (16К Cache + 2K Tag). Это так, просто интересно...

Error404
11.02.2011, 10:20
По поводу I2C, аппаратный контроллер уже написал, сейчас в отладке. Т.к. чип юзается на нижнем уровне иерархии, то аппаратную эмуляцию любого другого на среднем уровне некто не мешает сделать, как это сделано в конфигурации u9Speccy.
По поводу другого таракана, можно вместо PCF8583P (Clock/calendar with 240 x 8-bit) установить DS1307N (64 x 8 Serial RTC) или DS1338 (I2C RTC with 56-Byte NV RAM). Если пренебречь байтами энергонезависимого статического ОЗУ. Как подключить вывод 3(Vbat) решите сами.


Так в том и дело, что ваще не хочется этого I2C, а не просто хочется именно Dallas. Ну к чему эти усложнения - что у нас более интересных проектов нет ,чтобы в этих I2C ковыряться? А иначе ковыряться придется, т.к. я не сторонник того, чтобы делать решения, которые работают только в ПЛИС.

Завтра пойду в Чип-Дип, там сейчас DS1302 по 50 рублей. Типа налетай - подешевело. :)
Думаю, прикольно было бы сделать так: схемно подключаться будет прям к тем же выводам схемы подключения 512ВИ1 (т.е. или одна или другая, а вся прочая обвязка максимально такая же), и соответственно висеть на том же самом порту. И будет программно автодетектиться - что у нас там на этом порту - ВИ1 или DS1302.

vlad
11.02.2011, 10:38
Ну к чему эти усложнения - что у нас более интересных проектов нет ,чтобы в этих I2C ковыряться? А иначе ковыряться придется, т.к. я не сторонник того, чтобы делать решения, которые работают только в ПЛИС.
На FPGA думаю проще, не возникает кучи вариантов, какой чип запаять с минимальными переделками...

fifan
12.02.2011, 19:20
Направлю тему в правильное русло. Несколько дней бьюсь над добавлением режима МХ. Вставил прошивки Теста_МХ и 27 кБайтный ROM-диск с RAMFOSом и своими программами. Начало теста вижу так - всё в красном цвете. Должно быть всё красочно (http://www.zx.pk.ru/attachment.php?attachmentid=19260&d=1279451996). ROM-диск вообще никак не включается. Ещё вставил в атач схему селектора адресов, которая работала на реальном компе. В ней все выходящие сигналы инверсные.

Ewgeny7
28.02.2011, 19:09
Вот результат дневных ковыряний. Что на фотках не так?

fifan
28.02.2011, 21:14
Все квадратики в Тесте памяти должны быть красными. А после запуска теста идёт равномерное окрашивание экрана разными цветами? В RAMFOSе после появления этого экрана по F6 идет вывод файлов на экран?

Ewgeny7
28.02.2011, 21:52
А после запуска теста идёт равномерное окрашивание экрана разными цветами?
Да, идёт.


В RAMFOSе после появления этого экрана по F6 идет вывод файлов на экран?
Нет.

---------- Post added at 21:52 ---------- Previous post was at 21:36 ----------

Мыло послал зухелем (смотри ЛС)

fifan
23.04.2011, 21:52
Можете посмотреть работу u10. Файл 13 МБайт -http://www.spetsialist-mx.ru/for_out/Video1.avi.

DevL
28.04.2011, 01:57
отличная идея !

подумывал самому замутить свой первый Специалист на сегодняшних FPGA - а тут такой прогресс :)

жду вот свой u10 :)

fifan
28.04.2011, 05:35
Сейчас две проблемы, это видно из ролика:
1. Самопроизвольное изменение цвета теста_мх при проверке RAM-диска
2. Не работает клавиатура в режиме МХ - другой способ опроса в отличии от STD. Посему драйвер клавиатуры нужно пересмотреть.

Ewgeny7
19.05.2011, 16:01
Сейчас проблем поубавилось :)
Тест идет нормально, клава работает.
Когда у нас ДОС начнет работать с SD-интерфейсом? ;)

fifan
19.05.2011, 16:59
Огромный респект, Ewgeny7. Что-то изменил в моём коде?

Кстати содержание ROM-диска я сам составлял. Большинство тесты. Назначение музыкального теста и способ с ним работы мне неизвестен.

Ещё раз большое спасибо, Ewgeny7. По SD. Сейчас только в STD считывается файл bios.bin, ну ты в курсе. Попросим HardWareManа переделать под МХ, чтоб тож хотя б пока грузил какой-нибудь файл... А вообще нужно odi образ грузить, переделать систему MX-DOS под SD. Автор Специалиста_МХ, Леонид Афанасьев, полностью расписал формат odi, благо он совпадает с орионовским. Будем двигаться в направлении работы с SD картой!

Ewgeny7
19.05.2011, 17:06
Попросим HardWareManа переделать под МХ, чтоб тож хотя б пока грузил какой-нибудь файл... А вообще нужно odi образ грузить, переделать систему MX-DOS под SD. Автор Специалиста_МХ, Леонид Афанасьев, полностью расписал формат odi, благо он совпадает с орионовским. Будем двигаться в направлении работы с SD картой
Можно накрайняк для простоты сделать работу с образом на карте, имеющем стандартное имя и неизменяемый размер (типа DISK01.ODI).

---------- Post added at 17:06 ---------- Previous post was at 17:03 ----------


Кстати содержание ROM-диска я сам составлял. Большинство тесты. Назначение музыкального теста и способ с ним работы мне неизвестен.
А можешь собрать диск типа "барсик + ассм + редактор"? Хотя, редактор и так есть в рамфосе. Каку-нить игрушку типа lode runner'a или шахмат?

fifan
19.05.2011, 17:33
Каку-нить игрушку типа lode runner'a или шахмат?
Конечно, не плохая идея. Начинаю подбор. Есть из чего выбирать. Из последних образов дискет от Афанасьева штук 6 с играми. Буду подбирать по принципу цвет и популярность. Какой объём в кБайтах можно одновременно загружать в плисину, вроде вспоминаю число 40, не так ли?

Ewgeny7
19.05.2011, 17:38
Какой объём в кБайтах можно одновременно загружать в плисину, вроде вспоминаю число 40, не так ли?
32 вроде... сам уже забыл.

fifan
19.05.2011, 19:11
Если можно было грузить в два этапа, согласно таблицы -http://www.spetsialist-mx.ru/index19.html:
1. 0000...3FFF (16 кБайт) - система;
2. 4000...BFFF (32 кБайт) - программы пользователя.
То во вторую секцию можно было бы загрузить аж 32 кБайта! Возможно так в Циклоне?

Ewgeny7
19.05.2011, 20:10
Да, вроде как в ЭТОТ циклон должно влезть 32кб + 16кб

HardWareMan
20.05.2011, 07:54
Можно накрайняк для простоты сделать работу с образом на карте, имеющем стандартное имя и неизменяемый размер (типа DISK01.ODI).
Именно так для начала и хочется, цель: не переделывать целевой софт (только сам рамфос подправить немного, а точнее его DOS часть).

Ewgeny7
20.05.2011, 08:58
Именно так для начала и хочется
Одобрямс.
Было бы здорово, если бы ты еще скомпоновал универсальный драйвер для SD-интерфейса. Типа, вызов функций инита, чтения сектора, запись сектора.
Аналогично тому, что сделал Error404 для интерфейсов MSX & N8M, и Savelij для Z-controller'a.

Я маленько подправил видеогенератор, сделал вместо 640*480 более понятный мониторам режим 800*600. А то забодало после СкорпЭвы настраивать моник под СпецаFPGA.

HardWareMan
20.05.2011, 09:51
Одобрямс.
Я тут бегло проанализировал RAMFOS, оказалось, он поддерживает до 16 страниц дополнительного ОЗУ (номер страницы AND'ится с 0FH перед вызовом шлюза, но думаю эту цифру можно "расширить" до 128, т.е. по маске 7FH, старший бит - это признак обращения к ROM). Возможно, и до 16 страниц ROM, но тут я не вникал. Даже с поддержкой дисковода, столько страниц ПЗУ не нужно, а вот ОЗУ интересно...

Было бы здорово, если бы ты еще скомпоновал универсальный драйвер для SD-интерфейса. Типа, вызов функций инита, чтения сектора, запись сектора.
Аналогично тому, что сделал Error404 для интерфейсов MSX & N8M, и Savelij для Z-controller'a.
Можно. Единственное, нужно ТЗ: адреса "посадки", рабочий адрес (если он будет куда-то копироваться перед работой) и прочие желаемые мелочи.

vlad
20.05.2011, 09:54
Да, вроде как в ЭТОТ циклон должно влезть 32кб + 16кб
В EP3C10 46 М9К блоков (блок 1024 байта х 9 бит) т.е. доступно 46К двухпортовой RAM.

Ewgeny7
20.05.2011, 10:16
В EP3C10 46 М9К блоков (блок 1024 байта х 9 бит) т.е. доступно 46К двухпортовой RAM
Значит, получится винегрет из 32 + 8 + 4 + 2... В единый "монолит" эту память не собрать, проходили уже.
Собственно, у нас примерно так сейчас и сделано.

HardWareMan
20.05.2011, 14:30
Было бы здорово, если бы ты еще скомпоновал универсальный драйвер для SD-интерфейса. Типа, вызов функций инита, чтения сектора, запись сектора.
Так как никакого ответа я не получил, то просто отдам исходник инита и чтения карты. Запись еще пока не делал и не обкатывал. Юзайте себе на здоровье.

Ewgeny7
20.05.2011, 14:49
то просто отдам исходник инита и чтения карты.
Очень хорошо :) Что и требовалось для начала.

fifan
20.05.2011, 17:50
Значит, получится винегрет из 32 + 8 + 4 + 2...
Собственно, у нас примерно так сейчас и сделано.
Вернее 27 (RAMFOS+ROM-disk) + 6 (Монитор-2) + 2 (Тест_МХ) + 2 (Тест_М).
Первую цифру я хочу сделать как 16 (RAMFOS) + 32 (ROM-disk). Но одновременно в работе участвует только одно "ПЗУ", переключаемое кнопками Num Lock(MX/STD) и Scroll Lock/Home(Test on/off).

HardWareMan, как приспособить твой лоадер под МХ? Что в нём переделать? Если что у меня есть весь исходник...;). Кстати вот с помощью твоих тестовых подпрограмм нарисовал данный пример коммандера, ты ж мечтал воплотить что-то подобное в жизнь? У тебя ещё нет подпрограмм опроса клавиатуры и ввода символа.

Ewgeny7, на твой вопрос по клавиатуре Специалиста_МХ отвечаю картинкой раскладки, взятой из брошюры по RAMFOSу (http://www.spetsialist-mx.ru/Docs/RAMFOS.djvu).

http://www.spetsialist-mx.ru/images/Keyboard3.png

Ewgeny7
20.05.2011, 20:00
отвечаю картинкой раскладки
Если я правильно догадываюсь, то АР2 и КОИ как раз и "добавляют" ту самую двойку.
На F2(КОИ) в рамфосе как раз переключаются раскладки знакогенератора.
Надо бы в модуле клавы сделать переключение на другую раскладку при mode=1...

---------- Post added at 19:35 ---------- Previous post was at 19:33 ----------

У нас есть еще 128кб неиспользуемого ОЗУ, которую можно использовать как ПЗУ. Только туда нужно будет заливать образы из SD.

---------- Post added at 20:00 ---------- Previous post was at 19:35 ----------

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

fifan
20.05.2011, 20:03
Надо бы в модуле клавы сделать переключение на другую раскладку при mode=1...
Сделаю. Нужно сейчас чётко проштудировать все клавиши, может ещё какие-нибудь кроме функциональных в STD и МХ разные.


У нас есть еще 128кб неиспользуемого ОЗУ, которую можно использовать как ПЗУ. Только туда нужно будет заливать образы из SD.
Считай нету. Последний Специалист_МХ имел 64 * 8 = 512 кБайт RAM-диска. В реальной железке я не знаю какую прогу использовали для теста всей памяти. Тест_МХ тестирует только 256 кБайт.:eek:
Адресовались верхние 256 кБайт также как и нижние. Т.е. в выражение:
page <= dataO (1 downto 0);
Поставить двоичку вместо единицы и разобраться с А19.

Ewgeny7
20.05.2011, 23:15
Считай нету.
Есть. 64кб основного ОЗУ, 16кб под цвет, 256 рамдиск. Более 128 осталось неиспользованным.

---------- Post added at 23:15 ---------- Previous post was at 22:03 ----------

а есть где описание формата .rks?

fifan
21.05.2011, 07:07
Есть. 64кб основного ОЗУ, 16кб под цвет, 256 рамдиск. Более 128 осталось неиспользованным.
А у меня две срамины по 512 кБайт друг на дружку запаяны. Итого - 1 МБайт.

а есть где описание формата .rks?
http://www.nedopc.org/forum/viewtopic.php?t=9406 - описаны все известные форматы применимо к Специалисту.

Ewgeny7
21.05.2011, 13:47
Сделал ромдиск с бесиком_МХ и тетрисом.
Кстати, у нас процик работает на 4 и 8 Мгц :)

fifan
21.05.2011, 18:37
Сделал ромдиск с бесиком_МХ и тетрисом.
Работает?

Кстати, у нас процик работает на 4 и 8 Мгц :)
Неа, 2 и 4.

---------- Post added at 19:36 ---------- Previous post was at 18:14 ----------

Сейчас переделываю селектор адресов, подключаю таймер. Какой программой проверять последний не знаю, через него в МХ должен пойти звук.

---------- Post added at 20:37 ---------- Previous post was at 19:36 ----------

Таймер не подключил, зато исправил драйвер клавиатуры. Теперь в МХ верхний ряд:
АР2 - КОИ - F1 - ... - F8 - СТР
имеет соответствие писишных клавиш:
Ctrl - F11 - F1 - ... - F8 - F12.
Ещё больше возникло препятствие по клавиши Esc. Напомню сейчас на неё повешен сброс. А в Специалисте_МХ лучше на неё повешать АР2, (из описания) - <АР2> - реализует те же функции, что и <СТР>, но преимущественно на более высоком уровне (прерывает, отменяет работу самой программы).
Исходники оформлю и помещу, как всегда на страницу (http://www.spetsialist-mx.ru/index9.html) позже.

fifan
21.05.2011, 21:48
Всё исходники исправил и опубликовал. См. мой сайт в подписи, далее в нём: ПЛИС, нижняя таблица.

Ewgeny7
21.05.2011, 22:43
Неа, 2 и 4.
Счетчики посмотри. Не поверишь простой математике (32/2/2), запусти игрушку спецовскую.
Я запустил тетрис из ромдиска и слегка опупел...
Переделал режимы на 2 и 8 Мгц соответственно.

fifan
22.05.2011, 07:35
Счетчики посмотри. Не поверишь простой математике (32/2/2), запусти игрушку спецовскую.
Верно. Сейчас вроде 16 и 8. Обалдеть!

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

Ewgeny7
22.05.2011, 13:08
Я внес такие изменения:

signal del: std_logic_vector (2 downto 0);

process(clock,del)
begin
if (clock'event and clock = '1') then
if turbo = '1' then
clk_cpu <= del (0); -- "Турбо" режим 8 МГц
else
clk_cpu <= del (2); -- "Нормальный" режим 2 МГц
end if;
end if;
end process;
Получаем 2 и 8 Мгц соответственно.

fifan
22.05.2011, 21:02
Ewgeny7, я тут попытался вывести индикатор (на внешней плате у меня распаяны два светодиода) режима РУС/LAT. Это с заделом на ввод русской раскладки. Сделал в драйвере клавы триггер от нажатия клавиши Caps Lock. Светодиод чётко срабатывает, но возникли два косяка:
1. Не крузится система с SD карты в режиме STD - только первоначальная надпись лоадера
2. Зависает тест на первом красном экране в Тесте_МХ.
У тебя такого не было?
В исходниках нововведения закомментированы - вернул чтоб не глючило.

Ewgeny7
22.05.2011, 21:24
fifan, прямо сейчас взял проект с твоего сайта, фпихнул твои .vhd из архива, скомпилил, залил. Всё четко работает, на любой скорости и в любом режиме...
Держи на всякий случай проект в архиве. Там есть и .sof и .jic. Оба работают прекрасно.
Если "симптомы" останутся (не грузится SD и глючит тест), инвертируй клок на входе модуля SPI:


SD:SPI
port map(
A0 => a_buff (0),
WR => wr_n,
CS => not spi_cs,
MISO => miso,
INSERT => sd_ins,
CLK => not clock,

vlad
22.05.2011, 22:08
Если "симптомы" останутся (не грузится SD и глючит тест), инвертируй клок на входе модуля SPI
Принято...

Ewgeny7
22.05.2011, 22:36
vlad, там свой драйвер для своей песочницы. Не мешай ребятам развлекаться решая "мировые проблемы" :)
А насчет перевода на VHDL - да, это уберет лишние тормоза и глюки. Но это я оставил "на десерт" :)

fifan
23.05.2011, 05:25
Ты ж меня не понял. Кроме вот этих строк, которые нужно раскоментировать, соответственно определения в модулях spetskey:spetskeyboard и SD:SPI.

--signal ruslat_key: std_logic; -- клавиша "РУС / LAT"
--signal led_red_spi: std_logic; -- светодиод "OPERATE"
--led_red <= led_red_spi when spi_cs = '1' else ruslat_key; -- красный светодиод
И соответственно в драйвере клавы все закоментированные включить.
Этот то и у меня работает. А вот нововведение - сигнал ruslat от клавиши переключения раскладок при задействовании глючит прога. Но в то же время светодиод вовремя гаснит и включается как надо по нажатию Caps Lock (РУС/LAT).

Ewgeny7
23.05.2011, 22:57
Ты ж меня не понял.
Посмотрю, но попозже. Сейчас мне мозг полоскают курсы по подготовке к экзаменам на 4 группу электробезопасности... В четверг снова вернусь к форуму.

Ewgeny7
27.05.2011, 13:43
Изменение в проекте:


spetskey:spetskeyboard
port map(
clk => not clock_32,

работает всё, и карта, и тест. И светодиодики.

fifan
29.05.2011, 11:07
работает всё, и карта, и тест. И светодиодики.
Пробовал не прокатило. Идея у меня такая. При нажатии РУС/LAT (Caps Lock) включается красный светодиод. Код текущей раскладки опять возвращается в драйвер клавиатуры. Там включается русская раскладка (rus_lat == 1'b1). При повторном нажатии возвращается английская раскладка. Светодиод и клавиши работают, соответствующие буквы выходят на дисплей, но тест RAM-диска в режиме МХ не работает и в режиме STD не грузится система с SD карты.:v2_slee2: Вот проект во вложении.:v2_wink2:

DevL
04.07.2011, 12:57
спасибо vlad'y за board!

теперь общие вопросы:
- как я понял - SD обязательна ибо на ней BIOS.BIN,
правильно?
- есть ли по ROMFOS доки , как например с SD работать? ( или просто моя SD не запустилась )
- где можно посмотреть и может помочь с исходниками ( не VHDL - это нашлось , но .bin из roms директории )

DevL
06.07.2011, 23:29
что то как то тишо и нет никого :)

Ewgeny7
06.07.2011, 23:34
- как я понял - SD обязательна ибо на ней BIOS.BIN,
Для обычного Специалиста - да. На карте хранится Монитор для него.


- есть ли по ROMFOS доки , как например с SD работать? ( или просто моя SD не запустилась )
Доки у fifan'а на сайте, но про работу с SD пока не думай, РАМФОС ее пока не видит.
Вообще, дискового интерфейса сейчас нет вообще никакого.

DevL
07.07.2011, 00:03
Для обычного Специалиста - да. На карте хранится Монитор для него.


Доки у fifan'а на сайте, но про работу с SD пока не думай, РАМФОС ее пока не видит.
Вообще, дискового интерфейса сейчас нет вообще никакого.

у меня с SD даже BIOS.BIN не хочет грузить, u10_spets_fpga_rev36

MBR видит, начинает с BIOS.BIN, потом по правому краю экрана появляется мусор и все...

еще - где лежат если вообще исходники test-m.rom ?

хочется пару старых игрушек запустить, хочу из rom попробывать...

звука тоже можно не ждать?

да, интересует обычный Специалист, не MX....

PS спасибо за появление :) !

HardWareMan
07.07.2011, 05:52
Мусор по правому краю - это нормально. Это буфер чтения с карты. Какие-нибудь сообщения показываются при загрузке?

fifan
07.07.2011, 19:36
Всё есть на моём сайте, в том числе и упомянутая 36 версия для u10. Я выкладываю последнюю рабочую версию. Напоследок я застопорился на том, что при подключении русской раскладки SPI встает и немного глючил какой-то тест (вроде ROM-диска), но эта версия не выкладывалась.

На счёт игр. Сам компануешь файл bios.bin (не более 12 кБайт) соответственно нужно записать сначала сам монитор, например monitor2_1,2,3.rar (http://www.spetsialist-mx.ru/index6.html) и ещё 6 кБайт игрушек. Я так делал - всё работало. Пока только так. Приеду с отдыха допишу драйвер для загрузки bin файлов. Будем под STD игры и программы загружать! Да и переключаемые раскладки тоже хочу сделать. Вернее переключение уже работает, остальное глючит...

DevL
07.07.2011, 21:26
ага, у меня bios.bin просто из u10_spets_fpga_rev36/BIOS.BIN 6234байт который,

я может конечно слепой :) но где можно узнать как именно надо собрать/Сам компануешь файл bios.bin ?

пример можно?

и еще - звук стоит ждать?

спасибо!

Ewgeny7
08.07.2011, 17:47
и еще - звук стоит ждать?
В понедельник попробую найти на работе версию со звуком :)

fifan
09.07.2011, 19:34
и еще - звук стоит ждать?
спасибо!
Звук есть. Загружаешь проект и смотришь пины, вроде GPI0.

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

DevL
12.07.2011, 13:59
кстати - еще вопрос - где можно найти исходники всех roms?

которые 10_spets_fpga_rev36\roms

HardWareMan
12.07.2011, 15:03
кстати - еще вопрос - где можно найти исходники всех roms?

которые 10_spets_fpga_rev36\roms
Их не было и 20 лет назад. :3 Правда, Монитор-4 я на спеце в начале 90х дизасмил, что-то там правил для себя. Так же распечатывал дизасм редактора Практик. Сейчас же все проще - ИДу в зубы и пошел. Например, вот наброски в аттаче.

fifan
12.07.2011, 19:27
кстати - еще вопрос - где можно найти исходники всех roms?

которые 10_spets_fpga_rev36\roms
Я делал сам. Потом конвертировал в hex формат. Исходники такие: тест_М (Рюмика для Специалиста-М), тест ROM-диска для МХ, загрузчик SD карты для STD и RAMFOS со своим ROM-диском. Сейчас нет возможности файлы сюда кинуть - чуть позже, в конце недели.

fifan
29.07.2011, 07:04
Пока есть время до прихода новых плат Специалиста_МХ2, снова решил покопаться с кодом. Последний раз у меня при переключении раскладок клавиатуры РУС/LAT глучил SD драйвер и какой-то тест не работал.

fifan
30.07.2011, 18:23
Так. Посмотрел работу своей u10. Тест RAM-диска и сама оболочка RAMFOSа не пашет. Раскладка русская/латинская работает. Буду смотреть из-за чего так в проекте.

fifan
03.08.2011, 19:33
Тест RAM-диска точно не работает, посмотрю всё строки связанные с обращением к дополнительной памяти. Как советовал Ewgeny7 попробую инвертировать clk в соответствующих процессах.

fifan
15.12.2011, 18:11
Специалист на u10 готов. Правда выводимый звук в режиме МХ очень слабый. Вроде, придерживался схемы от Шевцова. Использовал исходники 8253 от ПК Вектор на ПЛМ от svofski.
Напоминаю ещё раз клавиши управления:
Scrool Lock - Тест вкл./выкл.;
Pause или Num Lock - режим: Стандарт/МХ;
Delete - сброс;
Alt - РУС/LAT;
Shift -НР.
Остальные клавиши как в эмуляторе от b2m.
Зашитые коды в память плисины: Тест-М, Тест_МХ, BIOS Loader V.5 HardWareManа (для загрузки образа ПЗУ (BIOS.BIN) с SD карты) и RAMFOS с ROM-диском пользователя с тестовыми программами.

fifan
18.12.2011, 12:16
Всё - звук в МХ появился (http://zx.pk.ru/showpost.php?p=446970&postcount=819), после переделки ROM-диска пользователя представлю прошивки.

Проект потом можно будет портировать на u8, u9 и другие платформы. Минимальные требования - 512 кБайт SRAM ОЗУ, от 4 до 51 кБайта для прошивок, не менее 2200 ячеек. Я собираюсь перенести проект на свою плату (http://www.spetsialist-mx.ru/for_out/NewSpets.gif).

fifan
04.01.2012, 21:37
Пока нашлась ещё одна работа для u10 (какой универсальный конструктор!), а именно - PS/2 адаптер для Специалиста. Идея такова. Взять эмуляцию 8255 и PS/2 драйвер от отлаженной выше конструкции и засунуть в отдельную ПЛИС в виде небольшой платы вставляемой в панельку К580ВВ55 ППА клавиатуры. Т.к. проект занимает около 180 ячеек, то будущая плисина должна быть более вместительная чем EPM7128SLC84, например EPM240T100C5 с 3,3 вольтовым питанием. Вот схема.
http://s017.radikal.ru/i440/1201/73/ca77c3f35a81t.jpg (http://radikal.ru/F/s017.radikal.ru/i440/1201/73/ca77c3f35a81.jpg.html)
u10 Reverse будет отладочной платкой адаптера. Жаль что на ней не хватает ног GPIO для всех входов/выходов 8255 (необходимо 19). Схема формирует сигнал инверсного сброса для подачи на Специалист. Планирую также ввести вход для переключения режима Стандарт/МХ для переключения раскладок верхней строки функциональных клавиш клавиатуры Специалиста. Присутствует также пищалка для вывода звука и для работы требуется внешний кварцевый генератор на 50 МГц (вернее 32 МГц - от такой частоты работает драйвер клавиатуры в самом Специалисте_МХ_FPGA).

Жду пожеланий, советов.

vlad
04.01.2012, 22:36
u10 Reverse будет отладочной платкой адаптера. Жаль что на ней не хватает ног GPIO для всех входов/выходов 8255 (необходимо 19).
Используйте незадействованные у Вас на плате GPIO от неустановленных чипов MAX3232[4] и AT45DB161D[4]. Правда такой вариант не совсем удобен, но зато оптимально подойдет для быстрой отладки :)

fifan
05.01.2012, 09:41
Если что, вот проект под u10, назначение некоторых пинов потом изменится. Пока паяю переходник для подключения к реальному Специалисту_МХ2.

fifan
17.01.2012, 10:52
Проект почти доделан. (http://www.spetsialist-mx.ru/index9.html) Может использоваться для портирования на другие DevBoard. Таймер подключен, RAM - диск увеличен до 512 кБайт.
Для U10 назначение задействованных GPIO такового:
Звук - использован зуммер от материнских плат, подключён через электролит 10 мкФ (+ - на плату) - пин #128 (GPIO2).
Красный светодиод - Operate - работа с SD картой - пин #126 (GPIO4).
Зелёный светодиод - Insert - работа с SD картой - пин #121 (GPIO7).
Светодиоды подключены катодами через резистор 1 кОм. Аноды - на +5 В.

fifan
09.12.2012, 10:10
После большого перерыва опять зашил проект Специалиста_МХ на u10. Включил ... и забыл назначенные мною клавиши на ps/2 клаве. Посмотрел свою же шпаргалку. Да звук в МХ через таймер как-то не очень. Буду искать другие исходники таймера, экспериментировать с выводом звука.
Хочу подключить к u10 через 74LVC245 Flash-диск на ВВ55 для Специалиста_МХ2 от HardWareMan'а и загружать игры под стандартный Специалист с диска.
До этого DevBoard u10 хотел задействовать в PS/2 адаптере (http://www.zx.pk.ru/showpost.php?p=452261&postcount=324). Ничего не вышло, теперь знаю почему. Не было развязки между 5-ти вольтовыми выводами ВВ55 и самой ПЛИС. Теперь схема адаптера будет такой. ПЛИС (EPM240T100) надыбал, нужно заказать плату - только в новом году.
http://photo.qip.ru/photo/fifan72/200812259/small/212716713.gif (http://photo.qip.ru/users/fifan72/200812259/212716713/)

fifan
09.12.2012, 13:42
Мне нужно более 170 ячеек для эмуляции. Все подпрограммы опроса PS/2 клавиатуры взяты мною с данного проекта темы. Вот исходники, если нужно.

Fitter Status : Successful - Sun Dec 09 15:39:42 2012
Quartus II Version : 9.1 Build 222 10/21/2009 SJ Full Version
Revision Name : ps2spets_epm240
Top-level Entity Name : ps2spets
Family : MAX II
Device : EPM240T100C5
Timing Models : Final
Total logic elements : 171 / 240 ( 71 % )
Total pins : 25 / 80 ( 31 % )
Total virtual pins : 0
UFM blocks : 0 / 1 ( 0 % )

petrov1962
11.01.2016, 16:52
Проект почти доделан. (http://www.spetsialist-mx.ru/index9.html) Может использоваться для портирования на другие DevBoard. Таймер подключен, RAM - диск увеличен до 512 кБайт.
Для U10 назначение задействованных GPIO такового:
Звук - использован зуммер от материнских плат, подключён через электролит 10 мкФ (+ - на плату) - пин #128 (GPIO2).
Красный светодиод - Operate - работа с SD картой - пин #126 (GPIO4).
Зелёный светодиод - Insert - работа с SD картой - пин #121 (GPIO7).
Светодиоды подключены катодами через резистор 1 кОм. Аноды - на +5 В.

fifan, можно ли попросить перекомпилировать проект Специалиста на U9?

fifan
12.01.2016, 19:00
fifan, можно ли попросить перекомпилировать проект Специалиста на U9?
У меня U9 нет. Да и на SDRAM исходники не знаю где взять, может здесь (https://github.com/andykarpov/specialist-wxeda) что-нибудь найдётся. Но там (http://zx-pk.ru/showthread.php?t=24428) только укороченная версия Специалиста.

Ewgeny7
12.01.2016, 19:13
На u9 есть SRAM, нужно только пины переназначить.
У меня сейчас тоже нет девятки :(

petrov1962
13.01.2016, 11:54
На u9 есть SRAM, нужно только пины переназначить.
У меня сейчас тоже нет девятки :(

Евгений, на форуме был " Мануал по проектированию ZX-Spectrum на ПЛИС (девборда U9_Reverse)". - не могу найти, вроде вы автор,
может кинете ссылкой или мануалом. Попробую разобраться в переназначении пинов.

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

Судя по схемам U9 и U10 переназначать пины надо не только SRAM, но и клавиатуры, VGA и SD карты.

ivagor
13.01.2016, 12:17
Если мне не изменяет память, там еще и SRAM за пределами 512 Кб используется

fifan
13.01.2016, 14:30
В последней редакции на u10 (http://www.spetsialist-mx.ru/index9.html) используется SRAM на 1 МБайт. Хотя это кажется многовато, но это сделано для простого прямого доступа ко всему ОЗУ. Поясню:
1. стандартное ОЗУ Специалиста 48 кБайт;
2. видео ОЗУ цвета 16 кБайт;
3. RAM-диск на 512 кБайт.
1 и 2 достаточно для "стандартного" Специалиста, 3 добавляется в Специалисте_МХ. Для лучшей адресации под 1 и 2 отведено по 64 кБайт (лишнее не используется).

Для повторения исходников от u10 для "стандартного" Специалиста первых двух страниц достаточно. И под него сделан считыватель SD карты от HardWareMan'а. Под МХ пока ещё SD карта не подключена. Если нужен ещё и Специалист_МХ, то RAM-диск можно сократить до 256 кБайт. Напомню, что на u10 "стандартный" и МХ переключаются с клавиатуры.

petrov1962
13.01.2016, 15:08
Т.е. микросхему SRAM 512х8 U9 можно использовать без переделки программы?

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

В исходниках U10 ps2_clk - PIN_75
ps2_data - PIN_74
А на принципиальной схеме U10 - наоборот. Это правильно?
На схеме U10 сигнал SRAM_CE0# идет с 49 пина, а в U9 - сидит на земле через R5.
Как с этим быть?

Ewgeny7
13.01.2016, 15:28
А на принципиальной схеме U10 - наоборот. Это правильно?
За давностью лет точно не помню, но на схеме вроде как перепутаны сигналы были...


вроде вы автор,
может кинете ссылкой или мануалом
http://zx-pk.ru/attachment.php?attachmentid=54822&d=1447017410

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


Судя по схемам U9 и U10 переназначать пины надо не только SRAM, но и клавиатуры, VGA и SD карты
Это само собой разумеется. Нужно будет менять все лапы.

fifan
13.01.2016, 15:28
Сначала определите что Вам нужно - Специалист или Специалист_МХ?

petrov1962
13.01.2016, 15:35
За давностью лет точно не помню, но на схеме вроде как перепутаны сигналы были...


http://zx-pk.ru/attachment.php?attachmentid=54822&d=1447017410

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


Это само собой разумеется. Нужно будет менять все лапы.

Евгений, по этой ссылке я ходил, ведет на несуществующую страницу.

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


Сначала определите что Вам нужно - Специалист или Специалист_МХ?
Для начала Специалист, потом и МХ, если первый получится.
Попробовать научиться перекомпилировать чужие проекты.

Ewgeny7
13.01.2016, 16:15
ведет на несуществующую страницу
Да, извини, это я хожу по удаленным сообщениям, как по живым...
Вот тут (https://yadi.sk/i/9VCSdCPVmsmbu) забирай.

petrov1962
13.01.2016, 23:30
petrov1962, давайте меняться, Вы мне загрузчик файлов с SD (FAT16/32) из каталога (асм для z80 + драйвер z-controller), чтобы я его смог встроить в меню OSD NES (не для себя ведь только делаю и трачу время), а я вам "Специалист МХ" (уже сделан, работает загрузка образов .rks из SD FAT16, образы можно скачать например здесь - http://emu80.org/dl.html) для ReVerSE-U9 ?

Я бы с удовольствием, если бы умел. Программист из меня никакой...

ivagor
14.01.2016, 12:33
В софте для работы с sd рекомендую исправить процедуру (https://github.com/mvvproject/ReVerSE-U9/blob/master/u9_specialist/xsd/fs_proc.inc) SHL_D (b2m давно уже про это написал, и я поправил в т.ч. для специалиста, но только в версиях с картинками). Надо заменить фрагмент

MOV A,C
ADD A
MOV C,A
на

MOV A,C
ADC A
MOV C,A

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

Выложил (https://yadi.sk/d/mU266AGCmvxic) исправленный rom (и hex) и jic. Реверса у меня нет, поэтому jic я не проверял, т.ч. тут без гарантий или можно подождать пока MVV перекомпилирует.

b2m
14.01.2016, 18:12
b2m давно уже про это написал
Мдя... Слово не воробей, вылетит - не поймаешь :)
Интересно, во скольких ещё местах в интернете есть эта глупая ошибка? :(

HardWareMan
14.01.2016, 19:39
Удвоение (арифметический сдвиг влево) двойного слова [BCDE]?

b2m
15.01.2016, 12:16
Ага. После написания 6-ти строчек скопировал их, регистры поменял, а про ADC забыл :)