PDA

Просмотр полной версии : bk0010-fpga в DE1



svofski
02.06.2010, 20:37
На проект уже можно смотреть и даже в него играть: http://code.google.com/p/bk0010/

Сейчас он представляет собой практически полную БК-0010.01, без дисковода. Начинал его AlexFreed, потом передал его мне. Процессор полностью свой самописный: когда-то был POP11, потом AlexFreed доделал ему АЛУ и пару ВМ1-ных команд, а потом я, отчаявшись исправить чего-то в POP11, переписал весь процессор на Верилоге. Кроме проца -- все как обычно: клавиатура, пищалка, таймер. Видео на VGA 60 Гц. Память используется статическая.

С временем исполнения, циклами доступа к ОЗУ и прочим я ничего пока не делал. Процессор работает на 1.5 МГц, при этом общее быстродействие получается где-то раза в полтора быстрее, чем труъ. С ходом луча на БК ничего не синхронизируется, поэтому не вижу смысла выравнивать такт к такту, как на Векторе, но сделать среднее быстродействие по крайней мере близким к оригиналу будет можно.

Чтобы запустить bk-fpga надо скомпилировать проект, залить sof в DE1 (готовые .sof-ы пока не выкладываю, потому что всё пока сырое и быстро меняется, могу выложить если будет желание). Ничего дополнительного в плате прошивать не надо. Карточка должна быть обычная SD с FAT16. В каталог BK0010 надо положить 100000.rom (в Downloads) и KLAD.BIN (и много других BIN-ов).

Три левых тумблера в верхнем положении, остальные в нижнем. Крайний правый -- Цвет/ЧБ. KEY0 -- Reset, KEY3 -- переключатель режима Hyperdrive (25 МГц).

Загрузка .BIN-ов: Перейти в монитор - MO - нажать ScrollLock - можно набрать имя файла, можно нажать TAB, чтобы увидеть список того, чего есть. Если несколько букв уже набрано, покажутся только те файлы, которые начинаются с этих букв. Если такой файл один -- его имя просто допишется автоматом. После загрузки экран вернется в исходное состояние и можно запустить программу: S1000 (или, если там автозапуск, то просто любая клавиша). Если программа при загрузке затирает собой часть экрана, как POPCORN.BIN, экран восстанавливаться не будет. С .OVL-ами пока ничего сделать нельзя, хотя никто не запрещает грузить их с магнитофонного входа, это может работать ;)

Клавиатура: все обычные клавиши как на PC. РУС - CapsLock, ЛАТ - правый Shift. Верхний ряд на БК -- верхний ряд на клавишах Fxx (кроме того работают Ins, Del, Home). F12 -- СТОП. ScrollLock -- loader.

Santechnik
04.06.2010, 02:33
svofski, дорогой ты мой человечище! :v2_cheer: Это же мой любимый комп был! :v2_thumb: Такая новость с утра!!! :v2_clap2: Сразу после работы поеду покупать клаву PS2! :v2_smile:
Ты говоришь что проц быстрее в 1.5 раза. Т.е. игрушки будут в 1.5 раза быстрее бегать? А можно как-то их на нормальной скорости запускать?

svofski
04.06.2010, 03:18
Я уже сделал искуственное тормозило, которое делает скорость 1:1. Неточно, но работает.

Будешь покупать клаву PS/2, не забудь еще про SD-карту на гиг или два. Я не уверен, но SDHC скорее всего работать не будет.

Santechnik
04.06.2010, 12:00
Клаву купил - с трудом нашел по адекватной цене - раритет однако :)
А как сорцы одним файлом оттуда стянуть? А то что-то долго по одному тягать и по папкам раскладывать. Или может быть просто sof/pof выложишь для простоты?

svofski
04.06.2010, 12:43
sof/pof могу выложить, но это будет часов через 9, не раньше.

Лучше поступить так: поставь Mercurial SCM (http://mercurial.selenic.com/). После чего у себя в сорцовом каталоге ты сможешь сказать
hg clone https://bk0010.googlecode.com/hg/ bk0010 и у тебя будут все сорцы сразу, да еще и с историей. А иметь (и уметь) систему контроля версий все равно пригодится.

Santechnik
04.06.2010, 15:27
Понятно. Все скачал. Интересная прога. Никогда о такой не слышал.
Но pof не прошивается. Ты сам пробовал?
Он его для EPCS16 создает, вместо EPCS4, которая на DE1 установлена. А если в настройках проекта "AUTO" заменить принудительно на "EPCS4", то вот такую ерунду дает при компиляции:


Error: Can't place multiple pins assigned to pin location Pin_W20 (IOC_X50_Y2_N1)
Info: Pin SD_DAT is assigned to pin location Pin_W20 (IOC_X50_Y2_N1)
Info: Pin ~LVDS91p/nCEO~ is assigned to pin location Pin_W20 (IOC_X50_Y2_N1)
Info: Fitter preparation operations ending: elapsed time is 00:00:00
Warning: Found invalid Fitter assignments. See the Ignored Assignments panel in the Fitter Compilation Report for more information.
Error: Can't fit design in device
Error: Quartus II Fitter was unsuccessful. 2 errors, 3 warnings
Error: Peak virtual memory: 198 megabytes
Error: Processing ended: Fri Jun 04 15:01:30 2010
Error: Elapsed time: 00:00:05
Error: Total CPU time (on all processors): 00:00:04
Error: Quartus II Full Compilation was unsuccessful. 4 errors, 121 warnings

У меня комп с кактусом в одной комнате, а монитор, к которому подключиться можно в другой - у компа жены. Так что pof был бы удобнее, конечно. Ладно, сейчас пойду монитор у нее отбирать :v2_devil:

svofski
04.06.2010, 16:01
А.. Нет, я обхожусь .sof-ом обычно.


set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"

Но оно так и есть, если только Квартус сам чего-нибудь не перелопатил. Нужно пойти в assignments -> device & pin settings -> dual purpose pins и убедиться, что nCEO используется как обычный I/O после конфигурации. Там есть какие-то отдельные настройки для .pof-а? Я не помню.

Santechnik
04.06.2010, 17:14
Все так и есть.
Pof можно настроить assignments -> device & pin settings -> Configuration. Там можно выставить чип например.
Но пока монитор отобран. Жертв и разрушений нет :v2_biggr:
Хорошо, что завтра суббота - не могу оторваться. Пока все работает прекрасно. Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.

svofski
04.06.2010, 17:28
Это безмерно меня радует, что все работает =)


Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.
Мне кажется, что этого не может быть, потому что видеорежим у БК на самом деле один. Ч/Б выход выталкивает бит за битом, а цветной объединяет биты группами по два и выбирает 0/R/G/B. Переключение режима возможно на ходу через АР2+';' (Alt+';'), оно чисто логическое: меняет параметры в мониторе. На экране при этом могут быть как широкие буквы, так и узкие. Он же просто фреймбуфер, без изысков.

Постараюсь в ближайшее время сделать подгрузку оверлеев, хочется поиграть в MOON BUGGY.

SKcorp.
04.06.2010, 20:08
Пока все работает прекрасно. Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.

В реальной БК с завода не было такого.

esl
04.06.2010, 20:48
Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.

неа, у БК - 2 разных видеовыхода, один ЧБ
второй цветной

svofski
04.06.2010, 22:33
Сделал хук EMT36, теперь грузятся OVL-ы. Проверял на Moon Buggy, Hobbit-е, Tower-е, Astrodrom-е, Horace-е и наверное на чем-то еще. Сами BIN-ы тоже теперь можно грузить через команду монитора "M" для большей аутентичности.. В принципе, наверное и бейсиковские файлы грузить было бы можно, но Бейсик как-то жестко месит имена файлов. Пока не разобрался.

Из оверлейных: M_Pacman, Mars (не тот, который классический MARS, а какой-то с Дартами Вейдерами на заставке), Crack, RType (вообще грузится нормально, но странно прерывается игра), Xenon -- умирают различными способами, не факт, что от оверлейства.

(Кстати, как играть в Хоббита. Надо мух мочить, или чего делать? У меня клавиша настроенная на мочение никакого результата не дает.)

Santechnik
05.06.2010, 06:35
неа, у БК - 2 разных видеовыхода, один ЧБ
второй цветной

А можно сделать переключение режимов с клавиатуры? Например, по PrtSc?
Кстати, pof все еще не работает ;)

svofski
05.06.2010, 14:51
Сделал конфигурацию для .pof-а, возьми. Не понимаю, почему не получалось это сделать через гуй. Прописал ручками, все заработало. Занятно: сразу после включения работает криво, надо нажимать вручную ресет. После ресета все как обычно.

Про настройки с клавиатуры я подумаю. Пока слишком много более приоритетных задач, а цвета у БК такие, что вообще непонятно, зачем их включать. Если тебе интересно, ты можешь сам провести сигнал. Интерфейс клавы в kbd_intf.v, цвет переключается сигналом color модуля shifter. Они оба в bk0010.v.

Santechnik
05.06.2010, 16:37
Сделал конфигурацию для .pof-а, возьми.

Спасибо!


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

У меня одна из задачек с диска DE1 похоже глючила. Причина оказалась в том, что один из регистров неинициализировался правильно при запуске. Решилось пропиской его в секцию initial.


... а цвета у БК такие, что вообще непонятно, зачем их включать. Если тебе интересно, ты можешь сам провести сигнал.

А ДЕСАНТНИК! :) Я тут свой проект почти забросил - оторваться не могу от игр :) С сигналом завтра попробую - интересно.

svofski
05.06.2010, 16:58
А Десантник -- это что? Подскажи, как называется файл?

svofski
05.06.2010, 22:39
Сделал поддержку оверлеев, которые затирают собой стек. Теперь грузятся и работают MARS, XENON, M_PACMAN, CRACK.

Чтобы видеть пользовательский стек, пришлось сделать поддержку MFPI. Так понемногу получается полная PDP-11 с эмуляцией БК ;)

Santechnik
06.06.2010, 02:04
Десантник здесь - второй сверху:
http://roman-dushkin.narod.ru/bk_games_d.html

Ух сколько я часов в него накрутил в свое время :rolleyes:

Там цвета, кстати, по-сравнению с другими играми, весьма неплохие.

svofski
06.06.2010, 04:10
Угу, Десантника я тем временем нашел. Правда, неплохо, живенько все так. Вообще я не очень много играл на БК. Клад, Диверсант, Пакман текстовый. Еще у меня была кассета с Xenon-ом, но пароля я не знал. Сегодня первый раз смог в него поиграть (пароль: «MISLED» ;) )

Santechnik
06.06.2010, 06:37
Если интересно дальше шлифовать, то не работает HOME, PIF-PAF и RICK .
А не думал еще и ФОКАЛ ПЗУ тоже воткнуть?

svofski
06.06.2010, 14:58
Посмотрю. Про RType заметил, что он долбится в 177700


014606 043700 177700 BIC @#177700, R0

- Ох.

Фокал ты можешь воткнуть сам. Возьми, например, из BKBTL Ф*кальные rom-ы, склей их (copy /b например) и положи на SD-карту на место 100000.rom -- вот и будет Фокал. Может быть, я прикручу какой-нибудь способ выбирать ром для загрузки. Удерживая клавишу при ресете, или что-нибудь такое.

http://code.google.com/p/bkbtl/wiki/UsersManual -- где какие ПЗУ

Santechnik
06.06.2010, 16:17
А да. RTYPE тоже вылетает.
Фокал, гляну. Спасибо! А прикрутить можно и так, как проще реализовать. Не так часто переключаться надо. Я просто предпочитал Фокал Бейсику - он мне нравился больше. Я не нашел у тебя где ты загружаешь ROM - может быть на switch повесить?
И еще я нашел архив игр в img. Как-то этот образ можно открыть?

svofski
06.06.2010, 16:35
ROM загружается программой из sw/pff/boot.c, но тебе не надо его менять, просто запиши другой файл поверх того. Скорее всего, я сделаю выбор кнопкой на клавиатуре, если не будет принципиальных проблем.

img — это образы дискет. Дисководоимитатор приделать интересно, но пока еще до этого далеко.

svofski
06.06.2010, 20:24
Если интересно дальше шлифовать, то не работает HOME, PIF-PAF и RICK .
А не думал еще и ФОКАЛ ПЗУ тоже воткнуть?

Исправил загрузчик, теперь работают HOME и отладчик MIRAGE, например.

RICK и так по-моему работал, но надо переименовать файлы RICKL1,RICKL2,RICKL3, RICKL4 из .BIN в просто файлы без расширения, как он их хочет. Тогда все ок.

PIF-PAF -- у меня есть две версии, pifpaf.bin и piff.bin. Одна из них действительно чего-то не может сделать, а вторая работает хорошо.

Образы ПЗУ теперь называются M_BASIC.ROM и M_FOCAL.ROM. Бейсик грузится при старте по умолчанию, или при нажатой F1. Если при ресете удерживать F2, загрузится Фокал. Файл с именем 100000.rom больше не нужен. Оба образа --тут (http://code.google.com/p/bk0010/downloads/list).

---------- Post added at 20:24 ---------- Previous post was at 20:06 ----------

(да, DEMSL-у тоже его нумерованные оверлеи надо переименовать в файлы без расширения. Даже не знаю, может автоматом это как-то сделать...)

Santechnik
07.06.2010, 04:56
Класс! :v2_thumb: Сегодня обязательно попробую. Ты за эти 3 дня очень сильно проект продвинул. Быстро работаешь. Молодец! :v2_cheer:

svofski
07.06.2010, 14:44
Если взять бранч keyjoy (hg pull, hg update -c keyjoy), то можно поиграться с джойстиком на нумпаде. Кнопки 2,4,6,8 -- палка, Num0, Num5, Num/ -- батоны. Пока еще недоделал, поэтому в отдельном бранче, но рубиться в некоторые игры стало принципиально веселее. Flasse, RType, PopCorn -- прям как живые. А Xenon вот как-то не порадовал даже с джойстиком: графика красивая, а движение дерганое.

bigral
07.06.2010, 17:46
Вот вчера пускал у себя этот проект, очень круто сделано!!! Единственно что у меня виндоз2к и клиенты для доступа к сорцам обломались на сетапе, пришлось плагином к эклипсу затянуть сорцы. АВТОРУ БОЛЬШОЕ СПАСИБО ЗА ТРУДЫ! И САМЫЕ ТЕПЛЫЕ ПОЖЕЛАНИЯ!

оффтоп: ДАШЬ СПЕККИ НА ДИВАНЕ(deeone)?! (speccy on de1) сорцы у alexfreed-a просто показывают экран с мусором и все.

svofski
07.06.2010, 18:23
Спасибо за поддержку!

По поводу AlexFreed'овских сорцов -- я уверен, что из них можно сделать вполне исправный и удобный Спектрум, но для этого потребуются чьи-то хорошо сфокусированные усилия. Они работают, просто надо разобраться, что именно надо сделать, чтобы все завелось. По крайней мере нужно руководство. А то Спектрум скоро останется последним компьютером, который не сделан под DE1 ;) Ну, это все офф.

svofski
08.06.2010, 03:06
Доделал джойстик на нумпаде: кнопки 4,2,8,6 -- палка, 0,5,/,Enter -- батоны.

Улучшил tab completion и вывод каталога, теперь хоть 300 файлов можно держать, все нипочем.

Все это смержено в default и даже торжественно названо Rev31 (http://code.google.com/p/bk0010/source/browse/?r=Rev31).

Santechnik
08.06.2010, 16:55
Пытался не отвлекаться от своего проекта, но не выдержал - зашел :)
Здорово ты продвинул. А за Фокал - отдельное спасибо! :v2_thumb:
Практически законченный проект! Я тебе очень признателен, что ты БК сделал - мне этот комп дорог. :v2_cheer:
Вот только я не понял, зачем джой? Если бы он нажатия нескольких клавиш одновременно отрабатывал бы (т.е. двигаться и стрелять, например), то имело бы смысл. А так - только дублирование клавы. Или я что-то не допонял?

svofski
08.06.2010, 17:42
Он отрабатывает нажатие нескольких клавиш одновременно. У тебя не так? Я проверял на FLASSE в основном, еще на POPCORN-е и XENON-е.

---------- Post added at 17:42 ---------- Previous post was at 17:28 ----------

Еще можно так


10 cls
20 ?at(0,10)bin$(peek(&o177714));"-------------"
30 goto 20

и смотреть как при нажатии кнопок на нумпаде зажигаются битики по одному и понескольку. при этом клавиатура не должна всквакивать.

bigral
09.06.2010, 17:34
А так - только дублирование клавы. Или я что-то не допонял?

Я проверил в дигере - скорость реакции на кнопки примерно в 2 раза тормознее чем на джой, как я понял на БК-шке вообще НЕ реально сделать было динамичные игры без джоя. К стати несколько кнопок нажатых сразу должно пахать конечно.

svofski
09.06.2010, 18:29
Я заметил, что многие игры, даже если в них формально есть поддержка джойстика, все равно не понимают комбинации вроде "идти вправо, прыгнуть". Непонятно, зачем такая поддержка, или, может быть, бывали какие-то другие джойстики, которые надо как-то иначе реализовывать? Не знаю.

svofski
10.06.2010, 01:18
Rev32 (http://code.google.com/p/bk0010/source/browse/?r=Rev32):
* исправлена загрузка оверлеев
* автоматически добавляется расширение .BIN, если не получилось загрузить то, что передано в блоке параметров EMT36 (больше не надо переименовывать файлы для некоторых игр)
* исправлены дырки в опкодах 177xxx, 070xxx-073xxx, 075xxx, 076xxx

Теперь загружаются и работают BLOOD REVENGE, RUNNER, SPHUNT.

Выложил .sof и .pof (http://code.google.com/p/bk0010/downloads/detail?name=bk0010-bin-rev32.zip) в Downloads (http://code.google.com/p/bk0010/downloads/list).

Santechnik
11.06.2010, 11:53
Сейчас очень многое запускается. Отлично! :v2_thumb: С джойстиком разобрался - работает как надо, просто не все игры его правильно отрабатывали.
А нет ли где-нибудь архива всех игр одним файлом?
Кстати, не загружаются: BARBARIAN и JOEBLA.

svofski
11.06.2010, 14:59
http://pdp-11.ru/mybk/ --- там разве нету всего одним архивом? Даже если нет, есть ведь wget, например.

Вспомнил еще: http://cplusplus.boom.ru/bk0010/bk.html --- вот здесь те архивы, которыми я пользуюсь.

bigral
28.02.2011, 14:00
Привет Всем как продвигается проект? Планируются ли какие-нибудь улучшения?

svofski
28.02.2011, 14:14
Привет! Пока никак, ничего нового не планировал. А чего не хватает?

13joe
07.12.2011, 11:58
А можно добавить в проект ещё и эмуляцию БК-0011М ?

svofski
07.12.2011, 14:45
Разумеется можно. Проект полностью открыт, автор охотно отвечает на вопросы.

ivagor
10.11.2014, 14:04
Кто-нибудь успешно портировал проект на другие девборды?

Vslav
10.11.2014, 14:44
Кто-нибудь успешно портировал проект на другие девборды?

Не совсем портирую, но на проект поглядываю.
На DE0 (не нано) оно прямо не переносится, там нет SRAM. А SDRAМ контроллер я свой пишу, на несколько портов wishbone и с отдельной шиной для видеовыхода (со скандаблером с прицелом на КСМ/КГД, а не только ВП1-037).
ВП1-014 хочется сделать полноценную эмуляцию, чтобы каждая клавиша была представлена отдельным триггером, обрабатывалась как матрица логической репликой ВП1-014, а ставились/снимались через коды, поступающие с PS/2.
Ну процессор, понятно, будет или натуральный на внешнем модуле, или уже реплика по результатам реверса.

svofski
10.11.2014, 15:57
В моей БК все очень приблизительно. Мне этот проект чем-то больше Вектора даже нравится потому, что БК-0010 прощает многое и я мог позволить себе какие-то вольности, которые с Вектором никогда бы не прокатили. Ну где еще сделаешь для эмуляции загрузчика MMU собственной конструкции? При этом совместимость мало пострадала.

Ewgeny7
10.11.2014, 21:40
Кто-нибудь успешно портировал проект на другие девборды?
Проект просится на u16_Reverse, ибо 16-битный. Занялся бы? ;)

andykarpov
27.02.2015, 23:10
Проект просится на u16_Reverse, ибо 16-битный. Занялся бы? ;)

Вот бы в проект впилить SDRAM_Controller, тогда можно переносить хоть куда (хоть на ZrTech WXEDA)! :))))

svofski
27.02.2015, 23:14
Так можно же. Проще всего это сделать заинтриговав этим вопросом ivagor-а :)

ivagor
13.05.2015, 11:23
Подкорректировал проект svofski для новых de1 (на старых тоже должно работать). Ну и заодно немного разобрался, что к чему, можно теперь и на другие платки портануть. Исходники пока не выкладываю, может еще посмотрю на тему SDRAM
Для меня это в некотором роде знаковое событие, т.к. bk0010 - последний проект, из тех что я пробовал сразу после покупки de1 и они тогда не работали нормально. За полтора года со всеми разобрался :)

Небольшое замечание по свитчам - в wiki похоже описана более ранняя версия. Для работы принципиален SW7 - д.б.=1. SW1 - чб/цвет, остальное не важно.
JTAG я тут отрубил, такие дела

ivagor
14.05.2015, 10:56
Соорудил экспериментальную версию со сдрамом, но без "гиперчарджа"
Насколько без него грустно можно оценить по приложенному sofу

ivagor
14.05.2015, 11:26
А вот насчет портирования как-то странно - пока совсем не получается

ivagor
18.05.2015, 14:46
Похоже я все же успел первым портануть БК svofski куда-либо (или остальные скромно промолчали)
sofы для de2-115 и de1-soc - здесь (https://yadi.sk/d/ZbEm5aRtghit2)

---------- Post added at 16:46 ---------- Previous post was at 16:23 ----------

Для de1soc выложил еще вариант, использующий внутреннее озу плиса, а то с текущим сдрамным при общении с sd тоскливо

andykarpov
18.05.2015, 17:25
Похоже я все же успел первым портануть БК svofski куда-либо

Очень не терпится на исходники SDRAM-версии взглянуть!
Когда планируете опубликовать? :)

ivagor
18.05.2015, 18:17
Хочется все же хоть какой-то "гиперчардж" вернуть в сдрамную версию, потом выложу исходник. До портирования заниматься ускорением было не интересно, на de1 то и sramным вариантом можно пользоваться

ivagor
18.05.2015, 21:56
Выложил в ту же папку (https://yadi.sk/d/ZbEm5aRtghit2) исходники. Версия практически с колес, но надеюсь, что грубых ошибок нет. Спасибо svofski за проект и b2mу за исходный вариант контроллера сдрама, который уже долго является для меня неиссякаемым источником вдохновения :)
Будет работать только с CORE_25MHZ, если хотите 50 (в чем для данного проекта со сдрамом практически нет смысла) - надо править

andykarpov
19.05.2015, 12:36
Версия практически с колес, но надеюсь, что грубых ошибок нет.

Спасибо! получилось на WXEDA запустить.
Пока без звука, правда.

Спасибо ivagor, спасибо svofski, спасибо b2m!!!

Есть несколько вопросов:
1) можно ли как-то подкрутить vga-развертку, у меня что-то изображение не помещается целиком на экран (левая часть на половине знакоместа обрывается, это уже на максимальном сдвиге вправо средствами самого монитора) ?
2) что есть hypercharge и как оно работает?
3) непонятно куда идет ссылка на ay_sound, так таковой реализации в проекте я не обнаружил.

svofski
19.05.2015, 13:55
ivagor, ты монстр!
Жду-недождусь засосать pull request в основное дерево.

ivagor
19.05.2015, 15:35
При живом svofski лезть поперек нехорошо, если что - удалю этот пост

2) что есть hypercharge и как оно работает?
Турбо в проекте включается или в kernel mode проца (чтобы быстрее шла загрузка с sd) или вручную по key3. То что вручную - обозначено в проекте как hypercharge

3) непонятно куда идет ссылка на ay_sound, так таковой реализации в проекте я не обнаружил.
Есть догадка, что работа над вектором и бк шла параллельно, а в некоторых случаях последовательно. Похоже этот фрагмент - копипаста из v06cc. Можно туда, например, ковокс подать. Или можно рассматривать как задел на будущее - кто-нибудь как захочет сделает 0011 с ay - а уже кое-что готово :)

svofski - если после изменения нескольких (десятков) строк я монстр, то ты как создатель проекта тогда кто? :)
Насчет pull request - в смысле чтобы я закачал в репозиторий? А может ты сам, как с вектором?

---------- Post added at 18:35 ---------- Previous post was at 17:37 ----------


1) можно ли как-то подкрутить vga-развертку, у меня что-то изображение не помещается целиком на экран (левая часть на половине знакоместа обрывается, это уже на максимальном сдвиге вправо средствами самого монитора) ?
Можно поиграть циферками в vga1.v
vga_h_sync <= ~((CounterX > 565) && (CounterX < 590));
Например, чтобы сдвинуть вправо
vga_h_sync <= ~((CounterX > 535) && (CounterX < 560));

svofski
19.05.2015, 15:36
Я могу и сам, конечно. Но круче смотрится потом, спустя годы, когда у проекта разные участники.

ivagor
19.05.2015, 15:45
Да я слабо владею этой штукой, как залью что-нибудь не туда. А можно так - ты организуешь бранч (или как там его) а я может потом попробую туда чего-нибудь закомиттить?

svofski
19.05.2015, 15:46
Хорошо =)

ivagor
19.05.2015, 16:01
Насчет изображения - похоже действительно оно при текущих цифрах смещено влево
Для моего монитора (подстройку на мониторе не делал, просто менял цифры в проекте):
Влево максимальный сдвиг от исходных цифр всего на 3 позиции (если больше, то обрезается левый край)
Вправо максимальный сдвиг на 40 позиций (с точностью до единиц не подбирал, может чуть больше)

andykarpov
19.05.2015, 16:38
Можно поиграть циферками в vga1.v
vga_h_sync <= ~((CounterX > 565) && (CounterX < 590));
Например, чтобы сдвинуть вправо
vga_h_sync <= ~((CounterX > 535) && (CounterX < 560));

То есть этим нехитрым способом мы сдвигаем (делаем чуть раньше) начало ССИ ? Длина его при этом остается такой же ?

svofski
19.05.2015, 16:41
parameter HSYNC_TIME = 25;
parameter HSYNC_START = 535;
...
vga_h_sync <= ~((CounterX > HSYNC_START) && (CounterX < (HSYNC_START + HSYNC_TIME)));

andykarpov
19.05.2015, 16:45
parameter HSYNC_TIME = 25;
parameter HSYNC_START = 535;
...
vga_h_sync <= ~((CounterX > HSYNC_START) && (CounterX < (HSYNC_START + HSYNC_TIME)));

да, так покрасивее и удобнее будет, все же :) спасибо!

можно еще развить тему, прикрутить к девборде какой-нибудь энкодер ну или там переменный резистор + ацп :) этот параметр ловить на лету, затем куда-нить на sdcard или в eeprom писать :) получится практически аналоговая "точная" подстройка :))) ну и няшные крутилки :)

svofski
19.05.2015, 16:48
Все-таки VGA-шный стандарт на то и стандарт, чтобы людей избавить от такой няшности. Просто у меня не было ничего особенно настроено, а мой монитор слишком ловко сам подстраивается под любую кривость, вот я и не придал этому значения.

ivagor
19.05.2015, 17:02
Провокационный вопрос из зала - какое стандартный режим ты реализовал? На 800x600 (http://tinyvga.com/vga-timing/800x600@60Hz) не очень похоже

svofski
19.05.2015, 17:10
Ну нереально же так вспомнить. А что монитор-то говорит? Могу вечером у своего монитора спросить.

andykarpov
19.05.2015, 17:13
Ну нереально же так вспомнить. А что монитор-то говорит? Могу вечером у своего монитора спросить.

Мой говорит 800x600x57.

PS: Вот порт под WXEDA: https://github.com/andykarpov/bk0010-wxeda

ivagor
19.05.2015, 17:36
Мой говорит 800x600x57
Аналогично

svofski
19.05.2015, 17:39
Ну значит и мой вряд ли скажет чего-то другое.

Можно подогнать под 800х600х60. Это ж не Вектор.

ivagor
19.05.2015, 17:43
Кстати, в сдрамной версии это будет еще проще, т.к. vram отдельный (хотя владельцы совсем бюджетных плисин расточительному использованию озу плиса вряд ли обрадуются). Можно изменить его параметры на вариант с двумя тактовыми и задать любую нужную для чтения (делал так в специалисте и было очень удобно)

ivagor
24.05.2015, 14:24
Легкий наброс :)
Интересно, почему никто до сих пор не доработал проект svofski до 0011? Сам я не потяну, я не бкшник, но имхо сложность примерно соответствует "апгрейду" 06ц->6128ц, т.е. для человека в теме делов на полдня
Текущая сдрамная версия для этого не годится, там видеоозу прибито к одному месту, но в принципе можно это решить

Vslav
25.05.2015, 11:01
Интересно, почему никто до сих пор не доработал проект svofski до 0011?

Навскидку две проблемы:

Для 0011 надо решать вопрос с кадровой частотой - в 11 есть бит, который может читать процессор и определять состояние кадровой синхронизации. На этом строится часть мультиколорных эффектов, просто так 60ГЦ удобных для ВГА не вкрутить.

Также в 0011 есть битик означающий "клавиша нажата", надо доделывать 014-ую, если совсем по "честному" заводить массив триггеров на каждую клавишу и с них снимать ИЛИ. Как более экономный вариант (но менее надежный) - счетчик нажатий/отжатий.

ivagor
25.05.2015, 13:11
Насчет мультиколора - это проблема в основном для демок, для начала можно и с неправильной разверткой пожить

TheGWBV
25.05.2015, 13:47
Для 0011 надо решать вопрос с кадровой частотой - в 11 есть бит, который может читать процессор и определять состояние кадровой синхронизации. На этом строится часть мультиколорных эффектов, просто так 60ГЦ удобных для ВГА не вкрутить.

А можно сделать частоту 48.5*3/2=72,75 Гц и прерывание по КСИ отправлять каждый второй кадр (т.е. с частотой 36,375 Гц) ?
Но лучше бы, если большинство мониторов потянет, 48.5*2 и КСИ каждый второй кадр...

svofski
25.05.2015, 16:29
Легкий наброс :)
Интересно, почему никто до сих пор не доработал проект svofski до 0011? Сам я не потяну, я не бкшник, но имхо сложность примерно соответствует "апгрейду" 06ц->6128ц, т.е. для человека в теме делов на полдня
Текущая сдрамная версия для этого не годится, там видеоозу прибито к одному месту, но в принципе можно это решить
В основном я думаю это оттого, что для большинства людей, включая меня, вникнуть в чужой проект в достаточной мере, чтобы его расширить, задача трудная и недостаточно себя оправдывающая.

Для меня лично БК интересна была тем, что это довольно абстрактный компьютер без жестких рамок, где можно было безнаказанно проявить некоторые вольности типа как то, что я сделал с управлением памятью, практически без ущерба для совместимости с оригиналом. А БК-0011 для меня мифологический компьютер, которого я не видел в то время, когда это могло бы нарушить мою психику, и который к тому же уже не позволяет себя реализовывать как попало. Я подозреваю, что если начать пытаться решить проблему с разверткой, которую озвучил Vslav, можно столкнуться с изрядным количеством сложностей и в результате может оказаться не проще, чем с Вектором.

CodeMaster
07.01.2016, 23:44
Интересно, почему никто до сих пор не доработал проект svofski до 0011?

Теперь уже БК-0011 видимо надо делать на отреверсином Vslav'ом ВМ1. Хотя и БК-0010 возможно была бы интересна с учётом 100% симуляции процессора (ну и матриц ВП1, когда они там появятся)

vazman
30.01.2016, 21:28
Запустил на DE2. Спасибо.Монитор говорит - режим 800х600х56

svofski
31.01.2016, 01:51
vazman, здорово!

svinka
31.03.2020, 13:56
а где сейчас живут последние исходники этого проекта? там же???

svofski
31.03.2020, 14:07
svinka, здесь https://github.com/svofski/bk0010
Но это такой проект... ему 10 лет в обед ;)


initial import from svn
svofski
svofski committed on 17 Apr 2010

svinka
31.03.2020, 14:17
svofski, нужно подсмостреть именно в ретро проекте :) Спасибо