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

User Tag List

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

Тема: Crash-test

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 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
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    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 Кб, Просмотров: 264)
    Последний раз редактировалось GriV; 23.01.2008 в 13:01.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  4. #3
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #4
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    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,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  7. #6
    Guru Аватар для ZEman
    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    112
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    23 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    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, Звук, Цвет

  9. #8
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,404
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    12 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    Стоп. Из всех эмулей протестированных только EmuZWin глючило остальные отрабатывали. НО они видели эти #FD #DD как одну команду а не как несколько команд (как это делает реал и R80). Надо в отладчике посмотреть что он видит начиная с адреса #C000. Весьма вероятно что будет 1) проблема с тем, чтобы залезть в отладчик 2) проблем в отладчике что он будет видеть это как одну большую команду.
    я думаю следует отличать что видно в дебагере и как это обрабатывает эмулятор. В ZXMAK.NET дебагер отображает это как одну инструкцию. И при выполнении Step Into будет выполнена вся эта последовательность за раз. Но движок на самом деле выполняет это за множество шагов. Просто при выполнении Step Into в отладчике стоит цикл вызывающий ExecCycle до тех пор пока взведены флаги префиксов.

    Сделано для удобства отладки, т.к. смотреть промежуточные состояния процессора в отладчике было бы несколько экстравагантно
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #9
    Member Аватар для Vladson
    Регистрация
    14.01.2008
    Адрес
    Эстония, Таллинн
    Сообщений
    177
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    24
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #10
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Страница 1 из 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

Ваши права

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