User Tag List

Страница 22 из 26 ПерваяПервая ... 181920212223242526 ПоследняяПоследняя
Показано с 211 по 220 из 256

Тема: Эмулятор БК-0010-01, БК-0011 и БК-0011М

  1. #211

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я чё-то туплю немного. Поэтому буду задавать туповатые вопросы.
    Но, во-первых, алгоритм эмуляции ВИ53 я взял из MAME, почти как есть, с одним изменением - у меня выход инвертированный, т.е. там, где везде в документации написано output = high, у меня на выходе 0, чтобы звуковухе было хорошо и она не пердела.
    Во вторых, в исходниках было написано, что в режимах 2 и 3 в счётчик писать 1 запрещено, но если очень хочется, то можно.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    запись в режиме 2 в счетчик чисел 1 или 0 должна приводить output в high на ближайшем из событий WR фронт сигнала + тактовый спад
    что за ближайшее событие? которое после записи в счётчик или собственно запись в счётчик и есть ближайшее событие?
    т.е. вот мы записали в счётчик 1, по фронту WR, а потом надо ждать следующего WR, чтобы вывод стал high?
    Не могу понять пока, в каком месте исходник ковырять.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Могу тебе осцилографом натыкать в реальную ВИ53 в которую записали эти числа.
    У меня есть документация на 8253 и там есть диаграммы, я им верю.
    И вот насчёт вот этого ещё:
    Цитата Сообщение от BlaireCas Посмотреть сообщение
    При работе в режиме 3 и значении счетчика 2 должно все-же выдавать свои 500кГц частоту
    У меня передискретизация в текущую выбранную частоту дискретизации вывода, допустим в 44100, делается просто путём выборки редких сэмплов из частоты 500кГц, той же амплитуды, чтобы было быстрее и меньше расчётов проводить. Поэтому будет пердёж, для таких больших частот. Тут надо какое нибудь БПФ применять, или ещё что-нибудь. А мне думать лень, чтобы было красиво и не так затратно.

  2. #211
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #212

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    что за ближайшее событие? которое после записи в счётчик или собственно запись в счётчик и есть ближайшее событие?
    Как-то криво сказал. Вообщем вот как смотрится на осцилографе. Вверху выход счетчика, внизу WR.
    Написал тестовый код очень простой, он устанавливает счетчики в режим 2 и последовательно записывает числа 2 и 1
    Код:
    	mov	#177714, R5
    10$:	mov	#^C^B1000000000000010, (R5)	; both chips, counter 0, value = 2
    	mov	#^C^B1001000000000010, (R5)	; ~WR high
    	wait
    	mov	#^C^B1000000000000001, (R5)	; both chips, counter 0, value = 1
    	mov	#^C^B1001000000000001, (R5)	; ~WR high
    	wait
    	br	10$

    2 картинки с сигналами

    [свернуть]

    То-есть запись числа 1 сразу выкидывает выход в high на ближайшем видимо low WR + тактовоe не дожидаясь поднятия WR.
    А возвращение к нормальному режиму работы - будет честно ожидать поднятия WR, затем загрузка счетчика и тд

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

    Цитата Сообщение от gid Посмотреть сообщение
    в режимах 2 и 3 в счётчик писать 1 запрещено, но если очень хочется, то можно
    Ну это простой способ заглушить канал если записать в режиме 2 единицу (ну или ноль).
    Зачем вообще нужен режим 2 - ну учитывая что в менестрели стоит RC-фильтр - это относительно простенький ЦАП на несколько уровней громкости. Где это применить пока неизвестно (и так есть-же ковокс/AY)
    Последний раз редактировалось BlaireCas; 19.02.2025 в 10:01.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  4. #213

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    То-есть запись числа 1 сразу выкидывает выход в high на ближайшем видимо low WR + тактовоe не дожидаясь поднятия WR.
    А возвращение к нормальному режиму работы - будет честно ожидать поднятия WR, затем загрузка счетчика и тд
    Это мы щас про что говорим? Про сигналы на ногах микросхемы или про биты в регистре 177714?
    Вот непонятно получается, документация говорит, что WR работает по уровню, пока там 0 - делается операция записи, а по факту - запись данных фиксируется фронтом 'low to high'.
    Документация говорит, что режимы 2 и 3 управляются только Gate, перезапись счётчика во время счёта, счёт не останавливает. Счёт запускает фронт Gate 'low to high', и пока он 'high', то счёт идёт, остановка счёта - обнуление Gate. А тут вдруг выясняется, что WR вдруг влияет на счёт.

    Я там новую сборку эмулятора выложил, пофиксил некоторые ошибки в эмуляции менестреля, но вот чтоб придушить его по малому периоду счёта - не получается, это надо делать в реальном времени передискретизацию отдельных выходов каналов из 1Мгц в текущую частоту вывода звука, затем микшировать. Так мне оно представляется, и как-то оно сильно ресурсозатратно получается.
    Добавлено: Проверил идею, в принципе работоспособно, но очень прожорливо получается. Ну и там, где должна быть тишина, получается очень тонкий свист, который надо фильтрами давить, т.к. алгоритмы передискретизации работают не чисто.
    Последний раз редактировалось gid; 24.02.2025 в 16:53.

  5. #214

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    924
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    218
    Поблагодарили
    158 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    очередные пожелания о внедрении новых фич (наглые вы ребята, скажет автор):

    - в окне дампа хорошо бы сделать переключаемой систему счисления (как в окне регистров): восьмеричка, десятичка, хекс

    - в том же окне дампа хотелось бы возможность редактирования правой колонки с текстовым представлением. не раз приходилось это делать путем ручного ввода байт через поле дампа, но это как зубочисткой в супе ковыряться =) была бы очень удобная фича для правки текста "на горячую", дабы не компилить и не запускать по новой. понятно, что весь диапазон символов там не введешь, но хотя бы "стандартный" текстовый ввод латиницы с пробелами и русских символов (с учетом БКашной кодировки) уже отлично

    - хотелка не от меня, но присоединюсь: планируется ли внедрить поиск в отладчик? в окне дампа наиболее логично, по-моему. по условному Ctrl+F вводим нужную последовательнось слов/байт, дамп становится на первое найденное (если нашел), еще какая-нибудь комба - продолжить поиск. в идеале, для совсем лентяев, можно и поиск в окне отладки со вводом прямо текстом команды (call 5436, например)

  6. #215

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    очередные пожелания
    Вы описали функционал DESS. Я бы тоже очень хотел, чтобы всё это было, но не знаю как это сделать. Так что даже обещать ничего не буду.
    Как только пойму, как такие штуки делаются, так сразу и прикручу к эмулятору.

    Этот пользователь поблагодарил gid за это полезное сообщение:

    reddie(07.03.2025)

  7. #216

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашлось некое несоответствие работы эмулятора и реальной БК. Связано с работой клавиатуры.
    Пишем относительно простую программку:

    (Cлева у меня реальная БК-0011М, справа эмулятор 4.4.2501.9615 х64, почему они вместе - ну у меня к БК подключен лог. анализатор видеосигнала для компа)
    Итого программа делает следующее (с адреса 1000):
    Код:
    mtps #200
    cmp @#177662, #40
    bne 1004
    halt
    Запускаем. Жмем сначала пробел - для теста - выходит со звуком "пииик" как на реале так и в эмуляторе.
    Далее запускаем еще раз - теперь для веселья начинаем жать всякие кнопки вида 1 2 3 и только потом жмем пробел.
    На реале выходит с одним звуком нажатия пробела.
    На эмуляторе выходит с трелью звуков будто эмулятор сохранил где-то в буфере нажатые кнопки и только после halt-а их начал по прерыванию кидать.
    Внимание - перехват прерывания 60 разумеется пофиксит этот баг.
    Итого - такое впечатление что эмулятор хранит где-то нажатые кнопки при запрещенных прерываниях. И когда оно все-ж разрешается - выплевывает весь буфер сохраненный. Что не есть хорошо.
    Гид почини плиз!

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

    Цитата Сообщение от gid Посмотреть сообщение
    Вы описали функционал DESS
    (это специально чтобы на почту емейл пришел, само сообщение выше)

    PS: Пишу от пользователя Дима с телеграм-канала про БК, у него пока-что тут нет аккаунта чтобы описать баг. Но я проверил на своей БКшке тоже - баг имеется.
    Последний раз редактировалось BlaireCas; 19.04.2025 в 14:06.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

    Этот пользователь поблагодарил BlaireCas за это полезное сообщение:

    Oleg N. Cher(21.04.2025)

  8. #217

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Гид почини плиз!
    Починил.

    Эти 2 пользователя(ей) поблагодарили gid за это полезное сообщение:

    BlaireCas(25.04.2025), Oleg N. Cher(26.04.2025)

  9. #218

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Починил.
    Есть еще такое пожелание в bkscript добавить опцию "держать скажем КТ нажатой три секунды" чтобы можно было указать для запуска .bin-арей не стартовать бейсик, а отваливаться в монитор. Ну и потом уже как-обычно там в скрипте можно будет написать загрузку бинарника. Смысл - в 11М модели лучше бинари запускать не после бейсика, а не давая запуститься бейсику, ну чтобы на 40000 стояла банка 5 с экраном. Конечно не прям уж применимо, но мало-ли.. Имхо будет не лишним.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  10. #219

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    924
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    218
    Поблагодарили
    158 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Я бы тоже очень хотел, чтобы всё это было
    Огромная благодарность за внедрение в компилятор опции вставки файлов данных (insert), давно ждал. Кому как, а мне реально удобней так, чем возиться с линковкой. Привычка еще со спектрумовских ассемблеров, там подобная фукнция была еще в асмах 90-х. Удобно подгружать внешние таблицы/спрайты/музыку и прочие данные сразу в компилируемый бинарник без лишних телодвижений со сборкой, для "однофайловых" проектов - самое то!

  11. #220

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати спасибо за возможность запускать бинарники без бейсика на конфиге 11М. Это полезная штука!

    И теперь опять с доработками эмуляции. Обсуждали тут такой баг процессора ВМ1:
    Код:
    clr R1
    movb PC, R0
    inc R1
    В реальной БКшке значение R1 станет равным 2.
    В эмуляторе такой баг не эмулируется (ну вот мол эмулируйте нам баги а то трудно жить без багов понимаешь-ли )
    Я не слишком силен в микрокодах всяких - но как понял после команды байтового movb с первым операндом PC, а второй операнд простой регистр - следующая за ней однословная команда выполнится 2 раза. Это может быть да любая команда. Проверялось и если после movb например поставить br - он тоже выполнится два раза.

    Может есть соображения как повторить данный баг и в эмуляторе тоже?
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

Страница 22 из 26 ПерваяПервая ... 181920212223242526 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Отличия БК-0011М от БК-0010(01)?
    от nzeemin в разделе БК-0010/0011
    Ответов: 22
    Последнее: 30.03.2021, 18:47
  2. БК-0010/0011: Разное
    от CD-Inc в разделе БК-0010/0011
    Ответов: 73
    Последнее: 30.07.2012, 16:58
  3. Начало выпуска БК-0011 и БК-0011М
    от dk_spb в разделе БК-0010/0011
    Ответов: 6
    Последнее: 14.10.2010, 14:22
  4. Отличие 0011 и 0011М
    от Kronshou в разделе БК-0010/0011
    Ответов: 11
    Последнее: 17.01.2010, 22:24
  5. Москва - куплю все связанное с БК-0010/0011
    от kt315b в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 04.10.2008, 05:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •