User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 34

Тема: Crash-test

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прочитал тред. Не смешно. Длинная команда выполняется как серия коротких это известно давным давно. Соответственно, если "длинная" команда после очередного выполнения затирает себя (например), то на следующей итерации выполняется уже модифицированная команда. И прерывания обрабатываются как после обычной короткой команды LDI.

    Короче: LDIR = LDI;PC=PC-2. И точка. Осциллографом тыкать сразу - нет чтобы доки почитать...
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

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

  3. #2

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Короче: LDIR = LDI;PC=PC-2
    Это уж давно известно. Вопрос стоял про выполнение НЕ ИТЕРАТИВНЫХ команд, а именно цепочки префиксов.

  4. #3

    Регистрация
    06.05.2006
    Адрес
    Санкт-Петербург
    Сообщений
    127
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vladimir Kladov

    Короче: LDIR = LDI;PC=PC-2. И точка.
    Мне бы эту гениальную мысль, да лет 10 назад... а что теперь прошлое ворошить...
    Прочитал тред
    Честно-честно?
    Осциллографом тыкать сразу - нет чтобы доки почитать...
    Ну-ну, зачем же так злобно... Лучше на работе долго не задерживаться, да спать побольше, а еще на людей, которые раздражают и злят, не обращать особого внимания, тогда и настроение гораздо лучше будет, и быть может производительность повысится до версии 2.8 (а то и 3.0) .
    А то будете как я 4-мя постами выше

    DDp
    Вы как всегда на высоте, примите мои благодарности (кстати, что я могу для Вас сделать?). Этот тест был на то, правильно ли мы думаем(ли) о командах, на которые префиксы #DD/#FD не влияют. Итого осталось уточнить, как реагируют префиксы #DD/#FD на длинную цепочку из самих себя. С тактами вроде ясно и с регистром R почти понятно, но на всякий случай лучше проверить. Это несложно. А вот с прерываниями будет небольшая рутина...

    А у нас так глаз пристрелявши.
    Круто! Я даже прочувствовал то самое давно забытое ощущение возбуждения от созерцания подобных полосок ))

    Итак, продолжаем. (Может удобнее будет, если я сразу коды забабах*ю? ). Следующая пара прожек:

    Код:
    ORG     #8000
    XOR     A, A
    LD      R, A
    DI
    DB      #FD         ; R += 1
    DB      #DD         ; R += 1, PC -=1, R += 1 ???
    DB      #FD         ; R += 1, PC -=1, R += 1 ???
    DB      #DD         ; R += 1, PC -=1, R += 1 ???
    DB      #FD         ; R += 1, PC -=1, R += 1 ???
    DB      #DD         ; R += 1, PC -=1, R += 1 ???
    DB      #00         ; R += 1
    LD      A, R        ; R += 2
    OUT     (#FE), A    ; R += 1
    JR      $-11        ; R += 1
    и
    Код:
    ORG     #8000
    XOR     A, A
    LD      R, A
    DI
    DB      #DD         ; R += 1
    DB      #DD         ; R += 1, PC -=1, R += 1 ???
    DB      #DD         ; R += 1, PC -=1, R += 1 ???
    DB      #FD         ; R += 1, PC -=1, R += 1 ???
    DB      #FD         ; R += 1, PC -=1, R += 1 ???
    DB      #FD         ; R += 1, PC -=1, R += 1 ???
    DB      #00         ; R += 1
    LD      A, R        ; R += 2
    OUT     (#FE), A    ; R += 1
    JR      $-11        ; R += 1
    Если все предполагалось верно, тогда в обоих случаях бордюр должен быть постоянно белым и кол-во тактов между WR должно быть 81. Чуть позже наваяю поверку прерываний.

  5. #4

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Никаких "PC-=1"!
    В обоих вариантах период 60 тактов.
    Цвет брдюра -= 5 (R+=11).
    (в US0367 аналогично)

    The Undocumented Z80 Documented (by Sean Young) так же подтверждает это:
    3.7. ... FD or DD should be seen as prefix setting a flag which says “use IX or IY in
    stead of HL”, and not an instruction. In a large sequence of DD and FD bytes,
    it is the last one that counts. Also any other byte (or instruction) resets this flag.

  6. #5

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DDp,
    Значит дело в некорректной эмуляции данной цепочки эмуляторами.
    Имхо, z80_ex (c) boo_boo делает это наиболее точным образом- прерывания перекрываются внутренним флагом процессора, а не физическим DoS

  7. #6

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vitamin,
    вы о чём?
    Проверил на реале 2 последних фрагмента из поста #22.
    Какие прерывания?


    пошёл курить тему с начала.
    Последний раз редактировалось DDp; 09.02.2008 в 14:58.

  8. #7

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DDp Посмотреть сообщение
    вы о чём?
    Изначально меня интересовало, как ведет себя процессор при выполнении особо длинной цепочки префиксов, в частности, поведение при приходе прерывания (см. первый пост).
    ARTi для проверки идеи насчет уменьшения РС накидал примеры, косвенно проверяющие на основе изменения регистра R. Вот и все

  9. #8

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Изначально меня интересовало, как ведет себя процессор при выполнении особо длинной цепочки префиксов, в частности, поведение при приходе прерывания
    (Угу, пропустил начало)
    (по-экспериментировал на реале) Во время длинной последовательности префиксов прерывания не срабатывают.
    US 0.36.7 внешне ведёт себя как реал (вот только вешается при SoundDrv=ds)
    Вложения Вложения
    • Тип файла: zip seq1.zip (1.8 Кб, Просмотров: 213)

  10. #9

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от DDp Посмотреть сообщение
    US 0.36.7 внешне ведёт себя как реал
    В отладчик дает зайти? (см. сообщения GriV'а о поведении эмуляторов)

  11. #10

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    В отладчик дает зайти?
    В отладчик входит (PC=FB01).
    Пошагово последовательность префиксов выполняется как одна комманда.
    Отображается как попало (короткий буфер???).

    И ещё...
    На реальном проце поведение сигналов M1 и RFSH на последовательности префиксов такое же, как на последовательности NOP-ов.
    Вложения Вложения

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. test
    от Orionsoft в разделе Форум
    Ответов: 0
    Последнее: 02.03.2007, 17:17
  2. Test RAM
    от BYTEMAN в разделе Софт
    Ответов: 3
    Последнее: 05.04.2006, 20:45
  3. test
    от sicmaggot в разделе Программирование
    Ответов: 2
    Последнее: 19.07.2005, 18:20

Ваши права

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