PDA

Просмотр полной версии : ЮТ-88: Реализация на ПЛИС (uХ_Reverse)



Ewgeny7
23.11.2011, 12:09
Вот исходники и файлы конфигурации "ЮТ-88" для девборды u10.
Реализован "ЮТ-88" 64кб ОЗУ, Монитор-F, клавиатура PS/2, магнитофонный интерфейс, звук (биппер).
Частота процессора - 1.75 Мгц (практически как в оригинале).
Также прилеплен простой РОМдиск с двумя программами - "BASIC Микро-80" и "Тетрис".
Порядок работы с диском - кнопкой F10 "проецируем" диск на область памяти 0000-3FFF, затем директивой Т монитора копируем кусок диска в ОЗУ, затем кнопкой F11 "выключаем" ромдиск.

Для копирования бейсика делаем:
Т0,1FFF,0

для тетриса:
Т2000,2666,3000

Далее запускаем программы директивой G. (бейсик - G0, тетрис - G3000).

Исходники не "причесывал", ибо нафик нуно. Но там и так относительный порядок :)

Да, спасибо b2m за сырки К580ВМ80А :)

b2m
23.11.2011, 12:49
Прикольно. Я думал что на третьем циклоне будет значительно меньше LE расходоваться. Ан нет, процессор - 887 LE, хотя на втором не намного больше (где-то 905-910 в зависимости от обвязки).

И ещё, всегда неприятно удивляет, что клава расходует столько много LE (253 в данном случае, у меня в b2m не намного меньше). Никто не знает, как можно уменьшить её, кроме как засунуть таблицу перекодировки в M4K блок? А то она больше чем вся остальная обвязка :)

Ewgeny7
23.11.2011, 12:57
как можно уменьшить её
Ну, если только засунуть ее в ПЗУ (как ты и предложил). Только это ограничит нажатия до одной кнопки в один момент времени. Не стоит это экономии ячеек... ПЛИСы для наших целей и так достаточно жирные чтобы не экономить.

---------- Post added at 12:57 ---------- Previous post was at 12:56 ----------


Ан нет, процессор - 887 LE, хотя на втором не намного больше (где-то 905-910 в зависимости от обвязки).
Z80 кушает 2000LE, так что вроде расход оказывается вполне предсказуем.

vlad
24.11.2011, 01:41
Никто не знает, как можно уменьшить её, кроме как засунуть таблицу перекодировки в M4K блок?
Уменьшить можно, если её обработку полностью повесить на проц, чем то ведь все равно придется жертвовать, ищите компромисс...

b2m
24.11.2011, 12:12
Уменьшить можно, если её обработку полностью повесить на проц, чем то ведь все равно придется жертвовать, ищите компромисс...
Проблема в том, что всякие игрушки обычно работают напрямую с железом, и с клавиатурой тоже. Создание патча на каждую игру - не выход.

svofski
24.11.2011, 14:58
Если процессор работает на частоте около 1.75МГц, а его настоящий предел скорее всего около 25-50, у него есть время выполнять задачи, не требующие бешеной скорости, такие, как обработка клавиатуры. Надо только подпатчить процессор, чтобы упростить переключение контекста.

vlad
24.11.2011, 15:24
Если процессор работает на частоте около 1.75МГц, а его настоящий предел скорее всего около 25-50, у него есть время выполнять задачи, не требующие бешеной скорости, такие, как обработка клавиатуры. Надо только подпатчить процессор, чтобы упростить переключение контекста.
Оно то так :) Только с одной стороны, это будет уже не реплика ЮТ-88, а проц не ВМ80, а с другой, делать все это некому и не для кого... Так, что лучше оставить все как есть... Главное, есть начало, а допиливание уже дело времени и желания...

b2m
24.11.2011, 15:42
Надо только подпатчить процессор, чтобы упростить переключение контекста.
Второй процессор в том-же адресном пространстве? :)
Распределение памяти тоже надо патчить.

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

---------- Post added at 16:42 ---------- Previous post was at 16:38 ----------

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

Вот только будет ли выигрыш в количестве ячеек? :)

svofski
24.11.2011, 16:15
Про "проц не ВМ80", он и так не ВМ80 уже по определению. Ничего страшного в таких изменениях нет. Наоборот, в этом весь интерес. Потом, нечто подобное можно было сделать и с железным ВМ80. Уверен, что были какие-нибудь хардверные отладчики, которые подпихивали банки памяти целиком на ходу.


Второй процессор в том-же адресном пространстве?
Распределение памяти тоже надо патчить.
Скорее наоборот, один процессор перекидывать между разными адресными пространствами. В основном нужно менять распределение памяти: в процессоре можно было бы вообще ничего не подкручивать, но проще если у него будет железная поддержка двух контекстов: тогда можно вообще хоть по очереди инструкции исполнять в двух адресных пространствах.

У меня в БК сделано что-то отдаленно похожее: она сама себя вытягивает за волосы: подгружает себе ПЗУ-шки с SD-карты, работает с FAT-ом и загружает BIN-ы с той же SD-"кассеты", при этом для все это происходит прозрачно для основной программы. Но там не нужно было переключать контекст часто. Здесь будет немного другая задача, зато решив ее можно будет еще много чего сделать почти не расходуя лишние ячейки.


Оптимальный вариант, это когда матрица реализована на HDL, а перекодировкой и установкой регистров на пересечении строк и столбцов матрицы занимается другой, медленный процессор.
+1 этому.

Ewgeny7
25.11.2011, 12:35
А по-моему эти свистопляски с процессором - просто спорт ради спорта. Городить непонятно что ради 50-100 ячеек... Дело ваше. Мне больше нравится когда симулятор поближе к реалу.

---------- Post added at 12:35 ---------- Previous post was at 12:21 ----------

Привинтил я квазидиск на 256Мб. Добавил в ромдиск СР/М 64 и ОС ЮТ-88. Поигрался в этот глюкодром. СиПиэМка работает, только без дисковода толку от нее негусто. Чисто букаффки на экране посмотреть. ОСь_ЮТ глючная до безобразия, на половине директив виснет. Или это я просто такой кривой бинарник нашел???

b2m
25.11.2011, 12:35
Городить непонятно что ради 50-100 ячеек... Дело ваше.
А пока никто и не собирается чего-либо городить. Это был, так сказать, мозговой штурм. :)

svofski
25.11.2011, 19:26
А по-моему эти свистопляски с процессором - просто спорт ради спорта. Городить непонятно что ради 50-100 ячеек... Дело ваше. Мне больше нравится когда симулятор поближе к реалу
Конечно это спорт. Если это только ради экономии 100 ячеек, действительно не стоит.

palsw
11.10.2013, 00:34
Подскажите ,можно скомпилировать на другое железо (Speccy2007,Speccy2010) без навыков и знаний.
Ответ коротко Да/Нет/проще с 0 написать.

vlad
11.10.2013, 09:50
Подскажите ,можно скомпилировать на другое железо (Speccy2007,Speccy2010) без навыков и знаний.
Ответ коротко Да/Нет/проще с 0 написать.

Нет.

Ewgeny7
13.10.2013, 00:06
Или может кто-то успешно перенёс на U8/U9 ?
Я перенесу, на u8. В понедельник-вторник.

---------- Post added at 00:06 ---------- Previous post was at 00:04 ----------


можно скомпилировать на другое железо (Speccy2007,Speccy2010) без навыков и знаний.
Относительно названных плат - НЕТ/ПРОЩЕ_С_0_НАПИСАТЬ

palsw
13.10.2013, 00:10
Ewgeny7, спасибо -уже понял :)
других у меня нет плат ,будем реальный микроЭВМ паять

Ewgeny7
13.10.2013, 21:01
Я перенесу, на u8. В понедельник-вторник.
Погорячился...
Сделал раньше, сегодня.
Вот ЮТ-88 для u8_Reverse.
Ничем не отличается от описанного ранее для u10 (http://zx.pk.ru/showpost.php?p=438364&postcount=1), только магнитофонные вход/выход соответственно на GPI/GPIO.
Присутствует знаменитый глюк с курсором, четкого ответа на его присутствие/отсутствие в реальной машинке - я не припомню...

Ewgeny7
13.10.2013, 22:35
vlad, извини, я не тот проект выложил. Это был "промежуточный", на стадии переноса, дохлый по определению :(
Перезалил, пробуй.

b2m
14.10.2013, 11:04
Присутствует знаменитый глюк с курсором, четкого ответа на его присутствие/отсутствие в реальной машинке - я не припомню...
Глюка быть не должно. Точки символа смещены вправо на одно знакоместо (предусмотрена задержка на время выбора из знакогенератора), а инверсия берётся непосредственно со старшего бита ОЗУ.

vlad
14.10.2013, 11:24
Ewgeny7, глянь вот это с соседней темы [1 (http://electronicsfun.net/RU/archives/category/retrocomps/ut88)] [2 (http://electronicsfun.net/RU/downloads)] [3 (http://jtdigest.narod.ru/kollection/ut88/ut88.htm)] [4 (http://zxbyte.ru/ut88.htm)].
Пробовал скомпелить для проверки, но недостает rom файлов.

Ewgeny7
14.10.2013, 12:14
b2m, спасибо, исправлю.

---------- Post added at 12:14 ---------- Previous post was at 12:12 ----------


глянь вот это с соседней темы [1] [2] [3] [4].
Пробовал скомпелить для проверки, но недостает rom файлов.
Документация у меня есть, даже приобрел сами журналы ЮТ со статьями о компе.
Хоть он и чахлый сам по себе, но в качестве жевачки для мозгов вполне годится, поэтому в чужие проекты не заглядываю.

Ewgeny7
29.03.2014, 21:31
Продолжаю мучить проект ЮТ-88 на ПЛИС.
Начав с видеоконтроллера на первом Циклоне, проект перенесен на более солидную девборду u8_Reverse, поскольку встроенной памяти стало не хватать :)
Сейчас уже доделываю ЮТ-88 "в редакции" уважаемого Prusak'a, как самая навороченная и интересная версия этого компьютера.

Ewgeny7
31.03.2014, 12:52
СР/М 64 работает нормально, вроде бы. На квазидиск пишет/читает. Только после рестарта через загрузчик почему-то в квазидиске не остается информации... Или там заголовок хранится в основной памяти? Стрянно...
Вот с ОС ЮТ-88 вопросов больше.
Курсор... Это нечто такое из двух белых квадратов, причем в левом виден последний введенный символ слева от курсора. Так и должно быть?
Скроллинг. Дойдя до нижней строчки экрана ОСь улетает в космос. Например, вывод дампа, длиннее чем высота экрана.
Редактор Микрон. Вежливо спрашивает при старте, типа, "Новый текст будем делать?". Ага, новый. Экран очистился и.... И всё, собственно. Труп.
Как эта ОСь работает на реальных машинках?

KeKc
31.03.2014, 13:19
А оно, похоже, так и должно работать. В соседней теме народ уже писал, про то, какая эта ОС глючная.

Ewgeny7
31.03.2014, 14:24
Вот это действительно печально...
В оси встроены редактор/асм/отладчик, что сильно полезно для написания софтинок...

---------- Post added at 13:27 ---------- Previous post was at 13:25 ----------

Есть предположение, что поскольку в дампе куча ошибок, и народ местами что-то где-то исправлял, то это надо искать и пробовать версии.

---------- Post added at 14:24 ---------- Previous post was at 13:27 ----------

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

Ewgeny7
31.03.2014, 19:08
Скролл заработал.
Но перестала работать директива Damp, показывает первый байт дампа, затем вопросительный знак и - работа прекращается.... Буду обратно восстанавливать дамп, убирая изменения.

Ewgeny7
31.03.2014, 22:14
В общем, ковырялся-ковырялся, скролл работает, дизасм работает, директива D не работает, редактор Микрон не работает.