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

User Tag List

Показано с 1 по 10 из 10

Тема: Расчет длины INT или ЧЯДНТ

  1. #1
    Banned Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    1,054
    Благодарностей: 789
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Расчет длины INT или ЧЯДНТ

    .
    Последний раз редактировалось SoftLight; 07.10.2016 в 11:15.

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

  3. #2

  4. #3
    Master Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    584
    Благодарностей: 505
    Записей в дневнике
    3
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А я что говорю!(с)
    Остальное - от лукавого) Ну это только при первом вхождении так высчитываеЦЦО, потом то уж все рОвно. Проц жЫ предыдущую команду должОн дОвыполнять, во что бы то ни стало, а уж потом обрабатывать внешнее прерывание. Вот и набегают такты лишние, но не всегда по идее их 8, команды бывают оооочень длинныя.. Не?
    Profi v3.2 -=- Speccy2010,r2

  5. #4
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,969
    Благодарностей: 3445
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Что вы в трех соснах заблудились) Цикл inc bc, jr - это аж 18 тактов дискретности (т.е. ошибки). Какая тут може быть точность?
    Забей 20 килобайт нопов, начинающихся с HALT, затем вычисли на каком адресе прийдет прерывание, да вычти адрес с HALT'ом, вот тебе и точность в 4 такта.

  6. Эти 5 пользователя(ей) поблагодарили Titus за это полезное сообщение:
    GM BIT (22.02.2013), introspec (27.03.2013), klondike (04.03.2013), psb (22.02.2013), SoftLight (22.02.2013)

  7. #5
    Master
    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    696
    Благодарностей: 227
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    а разве halt не стоит не ждет пока не придет прерывание? Соотв., сразу после прихода прерывание z80 уходит по вектору
    В halt'е z80 не останавливается. Грубо говоря, halt работает как четырехтактовый jr $. Поэтому в прерывание он уходит не сразу, а как отработает цикл M1.

  8. #6
    Guru Аватар для VNN_KCS
    Регистрация
    11.10.2007
    Адрес
    Донецкая обл. г.Енакиево
    Сообщений
    2,316
    Благодарностей: 755
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обратитесь к Alone. Этот парень вам всё обьяснит.
    Стоко раз пользовался его п/программой настройки на 1-й такт INT-a!
    Pentevo - рулез

  9. #7
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Благодарностей: 230
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Расчет длины INT или ЧЯДНТ
    Как всем известно, каноническая длина INT составляет 71680 тактов для Pentagon и 69888 тактов для Scorpion и оригинального Spectrum. Я написал следующий позорный код, печатающий при вызове из Basic число, пропорциональное кол.-ву тактов:
    А в чём вопрос?

    ---------- Post added at 23:37 ---------- Previous post was at 23:36 ----------

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Вопрос к гуру мультиколоров: Что я делаю не так?
    Смотря, что хочешь узнать!

  10. #8
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,969
    Благодарностей: 3445
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Titus справедливо отметил, что нет средств чтобы с точностью до такта подсчитать программно длину INT просто потому, что inc bc - jr дают разброс точности в 18 тактов и предложил оригинальный альтернативный вариант подсчета, хотя и не с точностью до такта.
    Да нет, можно и с точностью посчитать. Учитывая, что в любом спектруме число тактов в кадре уж явно кратно 4, то имея дискретность команды 4 такта (NOP), мы посчитаем точно.
    Но даже если бы тактов в кадре было какое-то неделимое на 4 число, все равно можно было бы подсчитать точно, но не за один INT.

  11. Этот пользователь поблагодарил Titus за это полезное сообщение:
    SoftLight (23.02.2013)

  12. #9
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    9,563
    Благодарностей: 3223
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    есть ещё вариант подсчёта через системную бейсик переменную (frames).
    подобным образом определяется тип машины 48/128 в играх Sentinel и BubbleBobble

  13. Этот пользователь поблагодарил goodboy за это полезное сообщение:
    SoftLight (24.02.2013)

  14. #10
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    694
    Благодарностей: 514
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот мои скромные изыски по данному вопросу )

    файл загрузить в Unreal вместо ROM 48k и сброситься в 48 режим )
    проверено в эмуле от 2000 до 1 млн тактов показывает правильно )

    в Jemmini Commander'e сделан подсчёт с точностью до 32 тактов, здесь с точностью до 16 ( можно и до 10).
    Вложения Вложения
    • Тип файла: zip TM2.zip (1.6 Кб, Просмотров: 43)

  15. Этот пользователь поблагодарил shurik-ua за это полезное сообщение:
    zebest (19.03.2013)

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

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

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

Похожие темы

  1. Расчет модуля разности чисел
    от Andrew771 в разделе Программирование
    Ответов: 15
    Последнее: 15.02.2013, 20:06
  2. Расчет адреса точки на экране
    от Ares в разделе Программирование
    Ответов: 10
    Последнее: 26.07.2012, 15:46

Ваши права

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