Просмотр полной версии : bk0010-fpga в DE1
На проект уже можно смотреть и даже в него играть: 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 раза быстрее бегать? А можно как-то их на нормальной скорости запускать?
Я уже сделал искуственное тормозило, которое делает скорость 1:1. Неточно, но работает.
Будешь покупать клаву PS/2, не забудь еще про SD-карту на гиг или два. Я не уверен, но SDHC скорее всего работать не будет.
Santechnik
04.06.2010, 12:00
Клаву купил - с трудом нашел по адекватной цене - раритет однако :)
А как сорцы одним файлом оттуда стянуть? А то что-то долго по одному тягать и по папкам раскладывать. Или может быть просто sof/pof выложишь для простоты?
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:
А.. Нет, я обхожусь .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:
Хорошо, что завтра суббота - не могу оторваться. Пока все работает прекрасно. Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.
Это безмерно меня радует, что все работает =)
Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.
Мне кажется, что этого не может быть, потому что видеорежим у БК на самом деле один. Ч/Б выход выталкивает бит за битом, а цветной объединяет биты группами по два и выбирает 0/R/G/B. Переключение режима возможно на ходу через АР2+';' (Alt+';'), оно чисто логическое: меняет параметры в мониторе. На экране при этом могут быть как широкие буквы, так и узкие. Он же просто фреймбуфер, без изысков.
Постараюсь в ближайшее время сделать подгрузку оверлеев, хочется поиграть в MOON BUGGY.
Пока все работает прекрасно. Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.
В реальной БК с завода не было такого.
Единственное, насколько я помню, когда видеорежим переключался в "узкие буквы" (не помню разрешение - ну то которое в Мониторе), то он автоматически становился черно-белым.
неа, у БК - 2 разных видеовыхода, один ЧБ
второй цветной
Сделал хук 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 все еще не работает ;)
Сделал конфигурацию для .pof-а, возьми. Не понимаю, почему не получалось это сделать через гуй. Прописал ручками, все заработало. Занятно: сразу после включения работает криво, надо нажимать вручную ресет. После ресета все как обычно.
Про настройки с клавиатуры я подумаю. Пока слишком много более приоритетных задач, а цвета у БК такие, что вообще непонятно, зачем их включать. Если тебе интересно, ты можешь сам провести сигнал. Интерфейс клавы в kbd_intf.v, цвет переключается сигналом color модуля shifter. Они оба в bk0010.v.
Santechnik
05.06.2010, 16:37
Сделал конфигурацию для .pof-а, возьми.
Спасибо!
Занятно: сразу после включения работает криво, надо нажимать вручную ресет. После ресета все как обычно.
У меня одна из задачек с диска DE1 похоже глючила. Причина оказалась в том, что один из регистров неинициализировался правильно при запуске. Решилось пропиской его в секцию initial.
... а цвета у БК такие, что вообще непонятно, зачем их включать. Если тебе интересно, ты можешь сам провести сигнал.
А ДЕСАНТНИК! :) Я тут свой проект почти забросил - оторваться не могу от игр :) С сигналом завтра попробую - интересно.
А Десантник -- это что? Подскажи, как называется файл?
Сделал поддержку оверлеев, которые затирают собой стек. Теперь грузятся и работают MARS, XENON, M_PACMAN, CRACK.
Чтобы видеть пользовательский стек, пришлось сделать поддержку MFPI. Так понемногу получается полная PDP-11 с эмуляцией БК ;)
Santechnik
06.06.2010, 02:04
Десантник здесь - второй сверху:
http://roman-dushkin.narod.ru/bk_games_d.html
Ух сколько я часов в него накрутил в свое время :rolleyes:
Там цвета, кстати, по-сравнению с другими играми, весьма неплохие.
Угу, Десантника я тем временем нашел. Правда, неплохо, живенько все так. Вообще я не очень много играл на БК. Клад, Диверсант, Пакман текстовый. Еще у меня была кассета с Xenon-ом, но пароля я не знал. Сегодня первый раз смог в него поиграть (пароль: «MISLED» ;) )
Santechnik
06.06.2010, 06:37
Если интересно дальше шлифовать, то не работает HOME, PIF-PAF и RICK .
А не думал еще и ФОКАЛ ПЗУ тоже воткнуть?
Посмотрю. Про 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. Как-то этот образ можно открыть?
ROM загружается программой из sw/pff/boot.c, но тебе не надо его менять, просто запиши другой файл поверх того. Скорее всего, я сделаю выбор кнопкой на клавиатуре, если не будет принципиальных проблем.
img — это образы дискет. Дисководоимитатор приделать интересно, но пока еще до этого далеко.
Если интересно дальше шлифовать, то не работает 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:
Если взять бранч keyjoy (hg pull, hg update -c keyjoy), то можно поиграться с джойстиком на нумпаде. Кнопки 2,4,6,8 -- палка, Num0, Num5, Num/ -- батоны. Пока еще недоделал, поэтому в отдельном бранче, но рубиться в некоторые игры стало принципиально веселее. Flasse, RType, PopCorn -- прям как живые. А Xenon вот как-то не порадовал даже с джойстиком: графика красивая, а движение дерганое.
Вот вчера пускал у себя этот проект, очень круто сделано!!! Единственно что у меня виндоз2к и клиенты для доступа к сорцам обломались на сетапе, пришлось плагином к эклипсу затянуть сорцы. АВТОРУ БОЛЬШОЕ СПАСИБО ЗА ТРУДЫ! И САМЫЕ ТЕПЛЫЕ ПОЖЕЛАНИЯ!
оффтоп: ДАШЬ СПЕККИ НА ДИВАНЕ(deeone)?! (speccy on de1) сорцы у alexfreed-a просто показывают экран с мусором и все.
Спасибо за поддержку!
По поводу AlexFreed'овских сорцов -- я уверен, что из них можно сделать вполне исправный и удобный Спектрум, но для этого потребуются чьи-то хорошо сфокусированные усилия. Они работают, просто надо разобраться, что именно надо сделать, чтобы все завелось. По крайней мере нужно руководство. А то Спектрум скоро останется последним компьютером, который не сделан под DE1 ;) Ну, это все офф.
Доделал джойстик на нумпаде: кнопки 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:
Вот только я не понял, зачем джой? Если бы он нажатия нескольких клавиш одновременно отрабатывал бы (т.е. двигаться и стрелять, например), то имело бы смысл. А так - только дублирование клавы. Или я что-то не допонял?
Он отрабатывает нажатие нескольких клавиш одновременно. У тебя не так? Я проверял на 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
и смотреть как при нажатии кнопок на нумпаде зажигаются битики по одному и понескольку. при этом клавиатура не должна всквакивать.
А так - только дублирование клавы. Или я что-то не допонял?
Я проверил в дигере - скорость реакции на кнопки примерно в 2 раза тормознее чем на джой, как я понял на БК-шке вообще НЕ реально сделать было динамичные игры без джоя. К стати несколько кнопок нажатых сразу должно пахать конечно.
Я заметил, что многие игры, даже если в них формально есть поддержка джойстика, все равно не понимают комбинации вроде "идти вправо, прыгнуть". Непонятно, зачем такая поддержка, или, может быть, бывали какие-то другие джойстики, которые надо как-то иначе реализовывать? Не знаю.
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.
http://pdp-11.ru/mybk/ --- там разве нету всего одним архивом? Даже если нет, есть ведь wget, например.
Вспомнил еще: http://cplusplus.boom.ru/bk0010/bk.html --- вот здесь те архивы, которыми я пользуюсь.
Привет Всем как продвигается проект? Планируются ли какие-нибудь улучшения?
Привет! Пока никак, ничего нового не планировал. А чего не хватает?
А можно добавить в проект ещё и эмуляцию БК-0011М ?
Разумеется можно. Проект полностью открыт, автор охотно отвечает на вопросы.
Кто-нибудь успешно портировал проект на другие девборды?
Кто-нибудь успешно портировал проект на другие девборды?
Не совсем портирую, но на проект поглядываю.
На DE0 (не нано) оно прямо не переносится, там нет SRAM. А SDRAМ контроллер я свой пишу, на несколько портов wishbone и с отдельной шиной для видеовыхода (со скандаблером с прицелом на КСМ/КГД, а не только ВП1-037).
ВП1-014 хочется сделать полноценную эмуляцию, чтобы каждая клавиша была представлена отдельным триггером, обрабатывалась как матрица логической репликой ВП1-014, а ставились/снимались через коды, поступающие с PS/2.
Ну процессор, понятно, будет или натуральный на внешнем модуле, или уже реплика по результатам реверса.
В моей БК все очень приблизительно. Мне этот проект чем-то больше Вектора даже нравится потому, что БК-0010 прощает многое и я мог позволить себе какие-то вольности, которые с Вектором никогда бы не прокатили. Ну где еще сделаешь для эмуляции загрузчика MMU собственной конструкции? При этом совместимость мало пострадала.
Кто-нибудь успешно портировал проект на другие девборды?
Проект просится на u16_Reverse, ибо 16-битный. Занялся бы? ;)
andykarpov
27.02.2015, 23:10
Проект просится на u16_Reverse, ибо 16-битный. Занялся бы? ;)
Вот бы в проект впилить SDRAM_Controller, тогда можно переносить хоть куда (хоть на ZrTech WXEDA)! :))))
Так можно же. Проще всего это сделать заинтриговав этим вопросом ivagor-а :)
Подкорректировал проект svofski для новых de1 (на старых тоже должно работать). Ну и заодно немного разобрался, что к чему, можно теперь и на другие платки портануть. Исходники пока не выкладываю, может еще посмотрю на тему SDRAM
Для меня это в некотором роде знаковое событие, т.к. bk0010 - последний проект, из тех что я пробовал сразу после покупки de1 и они тогда не работали нормально. За полтора года со всеми разобрался :)
Небольшое замечание по свитчам - в wiki похоже описана более ранняя версия. Для работы принципиален SW7 - д.б.=1. SW1 - чб/цвет, остальное не важно.
JTAG я тут отрубил, такие дела
Соорудил экспериментальную версию со сдрамом, но без "гиперчарджа"
Насколько без него грустно можно оценить по приложенному sofу
А вот насчет портирования как-то странно - пока совсем не получается
Похоже я все же успел первым портануть БК 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-версии взглянуть!
Когда планируете опубликовать? :)
Хочется все же хоть какой-то "гиперчардж" вернуть в сдрамную версию, потом выложу исходник. До портирования заниматься ускорением было не интересно, на de1 то и sramным вариантом можно пользоваться
Выложил в ту же папку (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, так таковой реализации в проекте я не обнаружил.
ivagor, ты монстр!
Жду-недождусь засосать pull request в основное дерево.
При живом 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));
Я могу и сам, конечно. Но круче смотрится потом, спустя годы, когда у проекта разные участники.
Да я слабо владею этой штукой, как залью что-нибудь не туда. А можно так - ты организуешь бранч (или как там его) а я может потом попробую туда чего-нибудь закомиттить?
Насчет изображения - похоже действительно оно при текущих цифрах смещено влево
Для моего монитора (подстройку на мониторе не делал, просто менял цифры в проекте):
Влево максимальный сдвиг от исходных цифр всего на 3 позиции (если больше, то обрезается левый край)
Вправо максимальный сдвиг на 40 позиций (с точностью до единиц не подбирал, может чуть больше)
andykarpov
19.05.2015, 16:38
Можно поиграть циферками в vga1.v
vga_h_sync <= ~((CounterX > 565) && (CounterX < 590));
Например, чтобы сдвинуть вправо
vga_h_sync <= ~((CounterX > 535) && (CounterX < 560));
То есть этим нехитрым способом мы сдвигаем (делаем чуть раньше) начало ССИ ? Длина его при этом остается такой же ?
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 писать :) получится практически аналоговая "точная" подстройка :))) ну и няшные крутилки :)
Все-таки VGA-шный стандарт на то и стандарт, чтобы людей избавить от такой няшности. Просто у меня не было ничего особенно настроено, а мой монитор слишком ловко сам подстраивается под любую кривость, вот я и не придал этому значения.
Провокационный вопрос из зала - какое стандартный режим ты реализовал? На 800x600 (http://tinyvga.com/vga-timing/800x600@60Hz) не очень похоже
Ну нереально же так вспомнить. А что монитор-то говорит? Могу вечером у своего монитора спросить.
andykarpov
19.05.2015, 17:13
Ну нереально же так вспомнить. А что монитор-то говорит? Могу вечером у своего монитора спросить.
Мой говорит 800x600x57.
PS: Вот порт под WXEDA: https://github.com/andykarpov/bk0010-wxeda
Мой говорит 800x600x57
Аналогично
Ну значит и мой вряд ли скажет чего-то другое.
Можно подогнать под 800х600х60. Это ж не Вектор.
Кстати, в сдрамной версии это будет еще проще, т.к. vram отдельный (хотя владельцы совсем бюджетных плисин расточительному использованию озу плиса вряд ли обрадуются). Можно изменить его параметры на вариант с двумя тактовыми и задать любую нужную для чтения (делал так в специалисте и было очень удобно)
Легкий наброс :)
Интересно, почему никто до сих пор не доработал проект svofski до 0011? Сам я не потяну, я не бкшник, но имхо сложность примерно соответствует "апгрейду" 06ц->6128ц, т.е. для человека в теме делов на полдня
Текущая сдрамная версия для этого не годится, там видеоозу прибито к одному месту, но в принципе можно это решить
Интересно, почему никто до сих пор не доработал проект svofski до 0011?
Навскидку две проблемы:
Для 0011 надо решать вопрос с кадровой частотой - в 11 есть бит, который может читать процессор и определять состояние кадровой синхронизации. На этом строится часть мультиколорных эффектов, просто так 60ГЦ удобных для ВГА не вкрутить.
Также в 0011 есть битик означающий "клавиша нажата", надо доделывать 014-ую, если совсем по "честному" заводить массив триггеров на каждую клавишу и с них снимать ИЛИ. Как более экономный вариант (но менее надежный) - счетчик нажатий/отжатий.
Насчет мультиколора - это проблема в основном для демок, для начала можно и с неправильной разверткой пожить
Для 0011 надо решать вопрос с кадровой частотой - в 11 есть бит, который может читать процессор и определять состояние кадровой синхронизации. На этом строится часть мультиколорных эффектов, просто так 60ГЦ удобных для ВГА не вкрутить.
А можно сделать частоту 48.5*3/2=72,75 Гц и прерывание по КСИ отправлять каждый второй кадр (т.е. с частотой 36,375 Гц) ?
Но лучше бы, если большинство мониторов потянет, 48.5*2 и КСИ каждый второй кадр...
Легкий наброс :)
Интересно, почему никто до сих пор не доработал проект svofski до 0011? Сам я не потяну, я не бкшник, но имхо сложность примерно соответствует "апгрейду" 06ц->6128ц, т.е. для человека в теме делов на полдня
Текущая сдрамная версия для этого не годится, там видеоозу прибито к одному месту, но в принципе можно это решить
В основном я думаю это оттого, что для большинства людей, включая меня, вникнуть в чужой проект в достаточной мере, чтобы его расширить, задача трудная и недостаточно себя оправдывающая.
Для меня лично БК интересна была тем, что это довольно абстрактный компьютер без жестких рамок, где можно было безнаказанно проявить некоторые вольности типа как то, что я сделал с управлением памятью, практически без ущерба для совместимости с оригиналом. А БК-0011 для меня мифологический компьютер, которого я не видел в то время, когда это могло бы нарушить мою психику, и который к тому же уже не позволяет себя реализовывать как попало. Я подозреваю, что если начать пытаться решить проблему с разверткой, которую озвучил Vslav, можно столкнуться с изрядным количеством сложностей и в результате может оказаться не проще, чем с Вектором.
CodeMaster
07.01.2016, 23:44
Интересно, почему никто до сих пор не доработал проект svofski до 0011?
Теперь уже БК-0011 видимо надо делать на отреверсином Vslav'ом ВМ1. Хотя и БК-0010 возможно была бы интересна с учётом 100% симуляции процессора (ну и матриц ВП1, когда они там появятся)
Запустил на DE2. Спасибо.Монитор говорит - режим 800х600х56
а где сейчас живут последние исходники этого проекта? там же???
svinka, здесь https://github.com/svofski/bk0010
Но это такой проект... ему 10 лет в обед ;)
initial import from svn
svofski
svofski committed on 17 Apr 2010
svofski, нужно подсмостреть именно в ретро проекте :) Спасибо
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot