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

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 34

Тема: Crash-test

  1. #1
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Crash-test

    Интересует, как будет работать следующий кусок кода на реале и разных эмулях:

    Код:
        org 24576
        ld hl,freestart
    fill:ld (hl),#dd
        inc hl
        ld (hl),#fd
        inc hl
        ld a,h
        and a
        jr nz,fill
        ld hl,testcode
        ld de,testcode-freestart
        ld bc,freestart-testcode
        ldir
        jr freestart
    testcode:
        ld hl,0
        ld a,2
        out (254),a
        xor a
        ld b,a
        djnz $
        djnz $
        out (254),a
        jp freestart
    freestart:
    Смысл, думаю понятен. Как будет работать выполнение ОЧЕНЬ длинной команды (в смысле взаимодействия с системой прерываний и т.д.

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

  3. #2
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Благодарностей: 104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Thumbs up

    Должны пропускаться как NOP'ы. В своё время даже это использовалось в защите коммерческих программ - тупые отладчики вешались на такой последовательности (DoS атака отладчиков :-D). R80 определяет их как NOPI (в отличие от стандартных NOP), каждый NOPI 4 такта. Unreal (0.2.1) определяет их как одну команду. Проверять на прерывания ломает... хотя ладно счас...

    гыгы Unreal вообще глючит на таких командах, даже в отладчик выйти не может (DoS проканала :-D). Прикрепляю SNAP, тестируйте где хотите :-)

    Гыгы, ещё одна DoS проканала :-D EmuZWin вешается на приходе прерывания (когда полоска внизу экрана), причём выдается ошибку ("программа будет закрыта").

    RealSpec (у меня достаточно древняя версия) тоже глючит, он принимает эту команду как одну, со всеми вытекающими - даже в меню надо попасть умудриться в промежуток когда он отрисует бордюр, во время выполнения длинной команды он ничего не позволяет нажать %). Ещё одна DoS проканала %)
    Тут кто то спрашивал как эмули можно обнаружить? ;-)
    Вложения Вложения
    • Тип файла: 7z ddfd.7z (11.0 Кб, Просмотров: 215)
    Последний раз редактировалось GriV; 23.01.2008 в 13:01.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  4. #3
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    Unreal вообще глючит на таких командах
    Вот я о том же. У него идет непрерывная выборка префиксов до получения КОП (если мне не изменяет склероз).

  5. #4
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Благодарностей: 295
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vitamin, Итак ... сли сделать "0DDH,0FDH" 100 раз, а потом "3", то получается 1602 такта. Проверял на "Zilog Z84H", бак же я делал в своём эмуляторе, там такая же картина. Смысл таков: если встречается "0DDH,0FDH", то на это тратится 4*2 такта и PC устанавливается на "0FDH". Прерывания исполняются безотказно безо всяких ошибок. Дома есть "Thomphson Z80A", завтра возьму на работу и попробую что на нём. Но мне кажется, что картна будет та же.
    AAA

  6. #5
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Robus Посмотреть сообщение
    Смысл таков: если встречается "0DDH,0FDH", то на это тратится 4*2 такта и PC устанавливается на "0FDH"
    Т.е. есть отдельный контроль на чередование префиксов? А если префиксы будут дублироватсья? Например, в моем исходнике сделать префиксы одинаковые

    Добавлено через 1 минуту
    Цитата Сообщение от GriV Посмотреть сообщение
    Тут кто то спрашивал как эмули можно обнаружить? ;-)
    Какая же я деструктивная личность )))) Просто стало интересно, как будут себя вести эмули и _как должны_ себя вести по идее.
    Последний раз редактировалось Vitamin; 23.01.2008 в 13:30. Причина: Добавлено сообщение

  7. #6
    Veteran Аватар для ZEman
    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    1,806
    Благодарностей: 286
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    и ZX SPIN 0.622 и Klive 1.1 открывают этот снапшот и никаких ошибок не выдают.

  8. #7
    Member Аватар для Vladson
    Регистрация
    14.01.2008
    Адрес
    Эстония, Таллинн
    Сообщений
    165
    Благодарностей: 472
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    Тут кто то спрашивал как эмули можно обнаружить?
    Тут скорее не "обнаружить" а "обрушить"
    Разрабатываю новый сетевой протокол
    Variable Length Advanced Data Sending Over Network
    Что он будет делать и зачем нужен не знаю, разработал пока только название.

  9. #8
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Благодарностей: 104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Цитата Сообщение от ZEman Посмотреть сообщение
    и ZX SPIN 0.622 и Klive 1.1 открывают этот снапшот и никаких ошибок не выдают.
    Стоп. Из всех эмулей протестированных только EmuZWin глючило остальные отрабатывали. НО они видели эти #FD #DD как одну команду а не как несколько команд (как это делает реал и R80). Надо в отладчике посмотреть что он видит начиная с адреса #C000. Весьма вероятно что будет 1) проблема с тем, чтобы залезть в отладчик 2) проблем в отладчике что он будет видеть это как одну большую команду.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  10. #9
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,270
    Благодарностей: 190
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zemu - всё работает (следует сказать спасибо boo_boo за отличную либу z80ex)
    в дебаге видно как куча NOP* , при пошаговом исполнении проскакивает через несколько комманд.
    [target] [zemu] [js8x] [pouet 1, 2]
    KAY-1024, 5''FDD, 3''FDD, HDD

  11. #10
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,031
    Благодарностей: 1426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Меня интересует вопрос прихода прерывания во время выполнения этой длинной команды. Сыгнорируется ли оно, если сигнал закончится до окончания. Если выполнится, то куда будет указывать адрес возврата, есть ли некий флаг, указывающий с каким из регистров (IX/IY) будет идти работа.

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

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

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

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

Похожие темы

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

Ваши права

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