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

User Tag List

Страница 48 из 48 ПерваяПервая ... 4445464748
Показано с 471 по 477 из 477

Тема: Emu80 v.4

  1. #471
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,280
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DemonId7 Посмотреть сообщение
    проверяется последний байт, откуда был вызван обработчик, и если он равен 0xFF, то происходил выход из обработчика, без вызова обработчика в ПЗУ и без разрешения прерываний
    Похоже на "пропуск" команды rst 7, но на следующий вопрос - "а зачем?" нужно разбираться (в чем вряд ли есть смысл).

  2. #472
    Master
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    581
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Скорее всего, кем-то задумывалась проверка на явный вызов обработчика по команде RST 7. Но зачем это было нужно и почему автор был уверен, что такая проверка будет всегда корректно работать - не понимаю...

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

    Упс, ivagor меня опередил

  3. #473
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    357
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В оригинальном коде видны следы другого кода, в частности попытка останавливать мотор дисковода по таймеру. Рискну предположить, что и этот непонятный код из той же серии.
    Еще раз спасибо, без этого отладчика я бы ни в жизь не нашел источник проблемы Теперь можно заканчивать софтину, осталась немного.

  4. #474
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,280
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно это традиция для разработчиков ПК8000. В основном пзу в обработчике прерывания тоже есть фрагмент-рудимент (c 2600h) который не используется (по крайней мере я не нашел, кто и как мог бы его вызвать).

  5. #475
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    2,784
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Pyk, кстати на заметку -- недавно столкнулся с этим, вдруг пригодится для RPi. Запускал v06x на андроиде. И вот на одном телефоне все хорошо, а на другом, более древнем, при включенном аудио-фильтре хрюкает и тормозит. Фильтр мудреный, 100 отводов, с simd инструкциями завернутыми в страшный темплейтный код, кто его знает.. Убираю вычислительную часть фильтра, ничего не улучшается. И тут я заметил, что смещение входного буфера, в который семплы складываются по 1.5e6 штук в секунду, увеличивается выражением вроде i = (i + 1) % sizeof buffer.

    На современных x86/amd64 этого вообще не заметишь. А на ARM %, в зависимости от тыщи параметров, может компилироваться в библиотечный вызов даже с -O3. И тогда один целочисленный % 1500000 раз в секунду легко перевешивает умножитель-сумматор с плавающей точкой с сотней отводов, но 48000 раз в секунду. Переделал на обычную проверку на переполнение и все стало быстро, а вычислительная часть фильтра выполняется практически незаметно.
    Больше игр нет

  6. #476
    Master
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    581
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    svofski, спасибо за полезные наблюдения, буду иметь в виду. Я правильно понял, что там было даже не 64-битное деление?

    А с телефонами на android/ARM тоже недавно немного поэкспериментировал - тормозит со звуком, скорее всего по аналогичной причине. Считаю, что нормальная работа на ARM важна, обязательно вернусь к этому вопросу, в том числе попробую выловить % в критичных участках. Но это все скорее уже ближе к осени, летом руки нечасто доходят до эмулятора... А вообще emu80 сам по себе более тормозной из-за того, что ради унифицированности зачастую приходилось жертвовать эффективностью...

  7. #477
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    2,784
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Pyk, нет, обычный unsigned int. Транслируется в __aeabi_uidivmod, это фишка арма. Собственно можно скомпилировать с -save-temps и пошукать по .s файлам.
    Больше игр нет

Страница 48 из 48 ПерваяПервая ... 4445464748

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

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

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

Похожие темы

  1. Emu80, старые версии
    от Pyk в разделе Эмуляторы отечественных компьютеров
    Ответов: 68
    Последнее: 11.03.2017, 01:33

Ваши права

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