Вход

Просмотр полной версии : БК001Х на FPGA



Ynicky
12.06.2019, 18:51
У меня дома никогда не было никакой реальной БК-шки,
только ZX спектрум. А на работе начинал с ДВК-1.
Тут на форуме понравился проект "PDP-11 на FPGA" от Hunta.
Загорелся сделать что-то подобное, так как есть платы
с FPGA. Решил начать с самого простого - БК0010.
Так как проекты, которые нашел в интернете, у меня не заработали,
решил сделать свой. Взял за основу PDP2011,
а точнее его процессор. Прикрутил свои VGA и PS/2
контроллеры и внутреннюю память.
Сначала проект хоть и задышал, но не заработал.
Прогнал тесты на команды, которые тоже нашел в интернете.
В процессоре нашел несколько ошибок с байтовыми командами.
После того как поправил, заработали Фокал, Бейсик, тесты,
и даже вошел в Пролог. Захотел загрузить игры с магнитофона.
Но, к сожалению, они не грузятся, а тест магнитофона
выдает ошибку. Записал выходной тестовый сигнал на комп.
Установил частоту процессора так, чтобы периоды сигналов
0 и 1 были 400 и 800 мкС соответственно. Она оказалась
примерно 390 кГц. Т.е. как я понял, процессор выполняет
команды очень быстро.
Сейчас у меня сигнал со звуковой карты компа приходит
на встроенное АЦП в FPGA с тактовой частотой 2 МГц.
Может оно портит сигнал. Хочу сделать шилд с компаратором.
Как сделаю - проверю. Хочу поиграть в LAND, в который
играл в молодости на ДВК. Сейчас при загрузке выдается
одна буква L, а дальше висит.

Если кому интересно - могу выложить проект сдесь.
Но он еще очень сырой. Не до конца доделан контроллер
PS/2. В VGA контроллере еще не сделал поддержку цвета,
хотя 512х256 и 256х256 режимы вместе со скроллингом уже работают.

69292
69293
69294
69295
69296

Hunta
12.06.2019, 19:12
После того как поправил, заработали Фокал, Бейсик, тесты,
и даже вошел в Пролог
Поздравляю!


PDP-11 на FPGA" от Hunta
Ну, это не совсем мой проект - это скорей - изучение FPGA-VHDL на примере проекта PDP-2011 и мои бодания с ним в попытке переделать под своё видение :)


Т.е. как я понял, процессор выполняет
команды очень быстро.

Ну если он тактируется 50-ю МГц - конечно, он будет ОЧЕНЬ быстрым :)


Если кому интересно - могу выложить проект сдесь.
Удачи с доведением проекта до полной работоспособности :)

ivagor
12.06.2019, 19:18
Ynicky, есть рабочий проект (https://zx-pk.ru/threads/13034-bk0010-fpga-v-de1.html) svosfki, там можно что-нибудь подсмотреть.

krotan
12.06.2019, 19:32
Загорелся сделать что-то подобное, так как есть платы
с FPGA. Решил начать с самого простого - БК0010. Какие платы и какой FPGA?

Ynicky
12.06.2019, 19:54
Какие платы и какой FPGA?

69297
Сейчас проект в "Марсоходе3".
Для других плат делаю шилд, чтобы подключить клавиатуру и монитор.

Hunta
13.06.2019, 10:15
Если кому интересно - могу выложить проект сдесь.
Если будут заинтересованные или нужны будут советы - конечно, выкладывайте. Хотя по хорошем стоило бы создать репозиторий где-нибудь типа github-а
Если же интересно самому добить проект - лучше уже конечный результат :)

Ynicky
13.06.2019, 19:12
Если будут заинтересованные или нужны будут советы - конечно, выкладывайте.

Советы, конечно, нужны, т.к. у меня не было реальной БК.
Да и информацию приходится искать по крохам, а это долго.
Вот, например, текущий вопрос, на который я никак не могу
найти ответ:
Какие коды должен посылать контроллер клавиатуры для команд
"ГРАФ", "ЗАП", "СТИР" по нажатию клавиш СУ/АР2/U, СУ/АР2/V,
СУ/АР2/W ? Имеется в виду 7 разрядный код и вектор прерывания.

Проект 20190613:
https://cloud.mail.ru/public/hqxv/4Wp4jqEkJ

gid
13.06.2019, 20:08
Там есть небольшое различие.
при нажатии комбинаций клавиш СУ/АР2/U, СУ/АР2/V, СУ/АР2/W генерируются 7 разрядные сканкоды 025, 026, 027 соответственно. (Клавиша СУ модифицирует коды буквенных клавиш @(0100)..Z(0132) -> 0..032, ну и заодно остальных символов 0133..0137 -> 033..037. Клавиша АР2 генерирует прерывание по вектору 0274).

Но эти коды в драйвере клавиатуры преобразуются в коды 0225, 0226, 0227 соответственно, и выдаются пользователю. И ими же включаются/выключаются эти режимы в обработчике EMT 16.

Все числа в сообщении - восьмеричные.

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

Хотя. В документации написано, что режимы ГРАФ, ЗАП, СТИР включаются комбинациями клавиш АР2/Шифт/5, АР2/Шифт/6, АР2/Шифт/7.

Ynicky
13.06.2019, 20:48
В документации написано, что режимы ГРАФ, ЗАП, СТИР включаются комбинациями клавиш АР2/Шифт/5, АР2/Шифт/6, АР2/Шифт/7.

Эти комбинации тоже видел, но в другой литературе.
А я взял их из руководства по эксплуатации.
Спасибо, попробую.

MM
13.06.2019, 21:22
Вопрос для программеров - вот например если бы изначально БК11М была бы на порядок ( 10 раз ) более быстрая - с точки зрения написания софта это повысило бы привлекательность М-ЭВМ ?

Hunta
13.06.2019, 21:27
вот например если бы изначально БК11М была бы
У всей серии БК две основные проблемы. Первая - быстродействия (существенная), вторая - не стандартная архитектура. На примере Э85 можно понять, что со вторым можно бороться более или менее успешно - в зависимости от уровня нестандартности.

LeoN65816
14.06.2019, 06:18
с точки зрения написания софта это повысило бы привлекательность М-ЭВМ ?
Разумеется! Тем более, в 10 (!!!) раз - это более, чем на 3 (канонических) программерских порядка (10 > 2^3)! ;) Это гипертурбо, это была бы "вааще" ракета. :v2_dizzy_dance:

Manwe
14.06.2019, 09:47
Клавиша АР2 генерирует прерывание по вектору 0274Наверное, не отдельно нажатая клавиша АР2 генерирует прерывание, а только в сочетании с алфавитно цифровой?

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


Вопрос для программеров - вот например если бы изначально БК11М была бы на порядок ( 10 раз ) более быстрая - с точки зрения написания софта это повысило бы привлекательность М-ЭВМ ?В играх стало было бы возможным строить кадр за один проход луча, причём с масками на спрайтах – это сразу другой уровень качества: ничего не мерцало бы, движения стали бы более плавными, не дёргался бы горизонтальный скроллинг. Можно было бы сделать Super Mario на полной скорости. Конечно, такой компьютер привлекательней для программистов.

gid
14.06.2019, 10:34
Наверное
Наверное. Я имел в виду, что АР2 - это клавиша модификатор, так же как и СУ и Шифт (короткая, но жирная стрелка вниз, или аббревиатура НР, для любителей точности и перфекционистов). АР2 модифицирует вектор прерывания с 060 на 0274 для любой клавиши, генерирующей код при её нажатии.

вот например если бы изначально БК11М была бы на порядок ( 10 раз ) более быстрая - с точки зрения написания софта это повысило бы привлекательность М-ЭВМ ?
Поначалу - да, игры бы были более привлекательны графически. Но потом всё опять бы упёрлось в недостаток архитектуры - дурацкое распределение памяти и дурацкое же управление ей.
Ситуацию мог бы улучшить ВМ3 с его MMU, но тоже не сильно. СМК-512 - некая альтернатива MMU, тому пример.

Manwe
14.06.2019, 21:51
недостаток архитектуры - дурацкое распределение памяти и дурацкое же управление ей.А в чём дурацкость?

CodeMaster
14.06.2019, 22:31
А в чём дурацкость?
Видеопамять посредине - Unix like ОС не запустить.

Manwe
16.06.2019, 19:24
Видеопамять посрединеС этим согласен.

zx_
23.06.2019, 19:42
сколько там той видеопамяти

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