Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: Вопрос по таймеру БК0011м

  1. #1
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вопрос по таймеру БК0011м

    Решил я доработать эмулятор БК0010/11 для платформы "мурмулятор". А именно, реализовать прерывание по вектору 0100 от таймера 50Гц. В документации говорится, что прерывание разрешается записью бита 14 в регистр клавиатуры 0177662. У меня заработали демки с AY-музыкой только после того, как я инвертировал данный бит, т.е. 0 - прерывание разрешено, 1 - запрещено. Вопрос: на реальном железе также, или просто где-то в коде эмулятора происходит инверсия?

    Ссылка на мой форк репозитория: https://github.com/y-salnikov/PICO-BK

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

    Oleg N. Cher (19.10.2024)

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

  4. #2
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    1,233
    Спасибо Благодарностей отдано 
    335
    Спасибо Благодарностей получено 
    366
    Поблагодарили
    260 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Решил я доработать эмулятор БК0010/11 для платформы "мурмулятор". А именно, реализовать прерывание по вектору 0100 от таймера 50Гц. В документации говорится, что прерывание разрешается записью бита 14 в регистр клавиатуры 0177662. У меня заработали демки с AY-музыкой только после того, как я инвертировал данный бит, т.е. 0 - прерывание разрешено, 1 - запрещено. Вопрос: на реальном железе также, или просто где-то в коде эмулятора происходит инверсия?
    см документация
    https://forum.maxiol.com/index.php?s...ndpost&p=51663
    читайте БК-0011М - Руководство системного программиста - там все правильно написано
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  5. #3
    Veteran
    Регистрация
    22.11.2009
    Адрес
    Москва
    Сообщений
    1,638
    Спасибо Благодарностей отдано 
    80
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    113 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    В документации говорится, что прерывание разрешается записью бита 14 в регистр клавиатуры 0177662. У меня заработали демки с AY-музыкой только после того, как я инвертировал данный бит, т.е. 0 - прерывание разрешено, 1 - запрещено.
    все верно, 0 = разрешено

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

  6. #4
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    там все правильно написано
    Различная документация
    ...
    содержит ошибку
    Разряд 14 - управляет включением системного таймера. При значении 0 таймер выключен, при 1 - включен.

    правильно

    Разряд 14 - управляет включением системного таймера. При значении 0 таймер включен, при 1 - выключен.
    Понял, ошибка в документации. Все версии "БК-0011М - Руководство системного программиста" что я видел, содержат ошибку.

  7. #5
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,833
    Спасибо Благодарностей отдано 
    316
    Спасибо Благодарностей получено 
    305
    Поблагодарили
    230 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а там даже по ссылке

    Различная документация
    Прикрепленный файл BK_0011_technical_guide.htm ( 137.61 килобайт ) Кол-во скачиваний: 1482


    содержит ошибку
    Разряд 14 - управляет включением системного таймера. При значении 0 таймер выключен, при 1 - включен.

    правильно

    Разряд 14 - управляет включением системного таймера. При значении 0 таймер включен, при 1 - выключен.

    Вот тут БК-0011М - Руководство системного программиста

    все корректно
    С уважением,
    Jerri / Red Triangle.

  8. #6
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А может кто знает, сколько тактов это прерывание должно занимать?

  9. #7
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    573
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    157
    Поблагодарили
    120 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Никто, кажись, не знает.
    Посчитаем.
    Прерывание вырабатывается от кадрового синхроимпульса, он возникает каждый раз при формировании экрана.
    Экран БК состоит из 256 отображаемых строк + 64 неотображаемых служебных
    каждая строка состоит из 32 отображаемых слов + 16 неотображаемых служебных
    Итого (256+64)*(32+16) = 320*48 = 15360 слов.
    В каждом слове - 8 цветных точек. Итого 122880 точек. Хоть не все их видно, но счётчики внутри микросхемы считают всё.
    На каждую точку тратится 8 тактов 6МГц.
    Итого получается 983040 тактов 6МГц между каждым синхроимпульсом.
    Последний раз редактировалось gid; 22.10.2024 в 16:10.

  10. #8
    Master
    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    916
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    207
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Никто, кажись, не знает.
    Посчитаем.
    Прерывание вырабатывается от кадрового синхроимпульса, он возникает каждый раз при формировании экрана.
    Экран БК состоит из 256 отображаемых строк + 64 неотображаемых служебных
    каждая строка состоит из 32 отображаемых слов + 16 неотображаемых служебных
    Итого (256+64)*(32+16) = 320*48 = 15360 слов.
    В каждом слове - 8 цветных точек. Итого 122880 точек. Хоть не все их видно, но счётчики внутри микросхемы считают всё.
    На каждую точку тратится 8 тактов 6МГц.
    Итого получается 983040 тактов 6МГц между каждым синхроимпульсом.
    Знают, просто редко уже заходят на форум)) сам пришел лишь после цитирования цитаты выше в БК-канале Телеграма.
    "Что ж, давайте посчитаем": в одной экранной строке 192 такта процессора для БК0010 (3МГц) или 256 тактов процессора для 11М (4МГц). Но у десятки кадрового прерывания нет, поэтому сразу переходим к расчетам для 4МГц-версии. Перемножив 256 (тактов в строке) на 320 (строк в кадре), получаем 81920 тактов в кадре.
    Предвижу вопросы вида "а откуда взяты цифры 256 и 320"? Что ж, давайте посчитаем (с) Тактовая частота генератора БК известна, 12МГц. Количество ПОЛНЫХ тв-строк в кадре (а не доступных программно и отображаемых графически) - 320. Частота кадров БК тоже известна - 48.82, проверяется любым конвертером типа ГБСЦ или ОССЦ. Подставив в уравнение 256 тактов на строку (при частоте проца 4МГц) и перемножив на 320 строк, получаем 81920. Разделив 12МГц на три (4МГЦ же) и еще раз разделив на 48.82, получим _почти_ 81920 (погрешность тут неизбежна, поскольку 48.82 - округленное значение)

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

    jerri (22.10.2024)

  12. #9
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    573
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    157
    Поблагодарили
    120 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Предыдущий оратор назвал цифры, которые я уже где-то видел, и даже куда-то записал. Только забыл, куда. Поэтому приходится каждый раз вычислять всё заново.
    С моими расчётами чё-то совсем не сходится, поэтому пошёл я думать и искать, где у меня косяк.
    Оказалось, что сигнал WTI - это не строб сдвига в сдвиговом регистре, а строб загрузки нового слова. Так что до точек можно было не доходить, остановиться на словах.
    Итого (256+64)*(32+16) = 320*48 = 15360 слов в кадре.
    Каждое слово загружается в регистр сдвига через каждые 8 тактов 6МГц.
    Итого, значит, получается 122880 тактов 6МГц между каждым синхроимпульсом кадровой развёртки.

    122880/6000000 = 0,02048 секунд. 1/0,02048 = 48,828125 Гц
    Вот теперь всё сходится. Без привязки к ТЧ процессора, которая может быть не только 3 или 4 МГц, но и 5, и 6, и вообще любое число.

  13. #10
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    190
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо.
    Я хотел сделать 2 режима работы: 60Гц синхронно с кадровой разверткой VGA и 48.82 Гц для AY-музыки. Может стоит добавить режим привязанный к тактам процессора?

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. БК0011М на Н1806ВМ2
    от MM в разделе БК-0010/0011
    Ответов: 2
    Последнее: 25.09.2024, 22:48
  2. БК0011М Несколько вопросов.
    от Руслан в разделе БК-0010/0011
    Ответов: 4
    Последнее: 22.08.2017, 05:58
  3. Странности БК0011М.
    от Andrew_Samara в разделе БК-0010/0011
    Ответов: 21
    Последнее: 24.04.2017, 22:57
  4. Ремонт БК0011м
    от лю в разделе БК-0010/0011
    Ответов: 17
    Последнее: 25.06.2015, 19:14
  5. БК0011М - не отвечает клавиатуру.
    от Slava95 в разделе БК-0010/0011
    Ответов: 10
    Последнее: 08.03.2014, 21:34

Метки этой темы

Ваши права

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