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

User Tag List

Страница 7 из 8 ПерваяПервая ... 345678 ПоследняяПоследняя
Показано с 61 по 70 из 80

Тема: Вместо HALT

  1. #61
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Сваял простой тест: Вложение 63707.
    Если бага LD A,R у Z80 нет, программа повисит 10 секунд, и выдаст сообщение. Если есть - отработает быстрее.
    NMOS/CMOS сразу индицируется цветом бордюра (черный - NMOS, белый - CMOS).

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

    Потестил эмули - ZXSpin, Zero и EmuzWin о баге не знают, Spectaculator, SpecEmu, Fuse, Unreal и ZXMAK2 знают.
    Развивая тему: http://zx-pk.ru/threads/27033-prokho...l=1#post970613 (на случай, если тут тему кто-то не читал).

    Судя по всему, Spectaculator и ZXMAK2 эмулируют этот баг Z80 не вполне правильно - иногда при поступлении импульса прерывания во время команды LD A,R во флаг P/V заносится 1, и мой новый тест по ссылке выдает на них ошибку. А вот Fuse, Unreal и SpecEmu всегда в этом случае в флаг P/V заносят 0, и тест виснет, как положено. Желающие могут запустить тест на фирменных реалах или Пентагоне (на Скорпионах и других клонах бесполезно), сравнить поведение реала с эмуляторами.
    Последний раз редактировалось Spectramine; 09.07.2018 в 14:02.

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

  3. #62
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кому интересно, благодаря daniel, запустившему новый тест на своих реалах, выяснилось, что на реальных компах тест виснет, как и ожидалось, то есть Spectaculator и ZXMAK2 не вполне правильно эмулируют работу команды LD A,R. Это может влиять, ну например, на эмуляцию программ, использующих регистр R как генератор случайных чисел. В частности, неправильно пишутся/читаются RZX, например вот этот RZX воспроизводится без ошибок только на Спектакуляторе, на котором он был записан.

  4. #63
    Member
    Регистрация
    12.12.2015
    Адрес
    г. Москва
    Сообщений
    65
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня вопрос на ту же тему. Как между делом, пока у меня выполняется много кода с запрещёнными прерываниями, понять что прерывание таки случилось? Я ведь правильно понимаю, оно не случается "вдогонку"? Дело в том, что код использует стек в качестве переносчика данных, а прерывание может туда нагадить. Вот я и думаю, как бы в промежутках кода проверять не случилось-ли оно, и вызывать обработчик.

  5. #64
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,755
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dimidus Посмотреть сообщение
    Как между делом, пока у меня выполняется много кода с запрещёнными прерываниями, понять что прерывание таки случилось?
    с чего ему случаться если оно запрещено ?
    работать нетрадиционно со стеком можно и при разрешённых прерываниях.
    тут два варианта.
    1 как в ЧерномВороне. процедура на im2 правит сама испорченные данные.
    2 как в Zub/Amaurote. постоянная проверка целостности данных и их коррекция

  6. #65
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dimidus Посмотреть сообщение
    У меня вопрос на ту же тему. Как между делом, пока у меня выполняется много кода с запрещёнными прерываниями, понять что прерывание таки случилось? Я ведь правильно понимаю, оно не случается "вдогонку"? Дело в том, что код использует стек в качестве переносчика данных, а прерывание может туда нагадить. Вот я и думаю, как бы в промежутках кода проверять не случилось-ли оно, и вызывать обработчик.
    скорей всего никак
    на многих клонах можно вообще словить 2+ обработчика прерываний подряд
    если обработчики короткие

    ...по моему на msx-ах прерывание будет висить до тех пор пока не произойдет его подтверждение
    на некоторых спетрумах по моему максимум что есть
    это прекращение сигнала инта при его подтверждении
    чтоб не ловить 2 подряд
    (не уверен уже есть ли точно(и расчитывать на это в любом случае нельзя))

    при наличии порта FF можно поймать факт начала\конца экрана
    и вызвать обработчик
    но это должны быть чем то оправданно
    так как на большим количестве спектрумов это поделие работать не будет
    да и сама проверка будет длительной
    тк в строке 96 тактов бордюра
    да и над самим экраном, по моему, все не так просто читается


    можно попытаться поймать 50Гц-ный фон с матафонного входа
    (тоесть вообще можно попробовать получить опорные 100Гц дополнительно)
    но это особое извращение для знающих толк
    (которого вполне может ни у кого больше не быть)
    и врятли оно эмулируется
    ну и 50Гц сети явно не будут совпадать с 50Гц экрана...

    ДЕТКИ НЕ ПЫТАЙТЕСЬ ПОВТОРИТЬ ЭТО ДОМА!
    ну разве что это будет wild demo
    где такое можно и нужно
    Последний раз редактировалось NEO SPECTRUMAN; 08.10.2019 в 01:48.

  7. #66
    Veteran
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,041
    Спасибо Благодарностей отдано 
    931
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dimidus Посмотреть сообщение
    Как между делом, пока у меня выполняется много кода с запрещёнными прерываниями, понять что прерывание таки случилось?
    Цитата Сообщение от goodboy Посмотреть сообщение
    1 как в ЧерномВороне. процедура на im2 правит сама испорченные данные.
    2 как в Zub/Amaurote. постоянная проверка целостности данных и их коррекция
    3. Если известно сколько именно времени исполняется "много кода", то посчитать. Можно использовать также замер_времени после "много кода" до следующего прерывания.

  8. #67
    Member
    Регистрация
    12.12.2015
    Адрес
    г. Москва
    Сообщений
    65
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    скорей всего никак
    ...
    Жалко... Как я понимаю, чтение из регистра R, это из той же оперы?

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    можно попытаться поймать 50Гц-ный фон с матафонного входа...
    А это вообще взлом Матрицы!

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

    Цитата Сообщение от goodboy Посмотреть сообщение
    с чего ему случаться если оно запрещено ?
    работать нетрадиционно со стеком можно и при разрешённых прерываниях.
    тут два варианта.
    1 как в ЧерномВороне. процедура на im2 правит сама испорченные данные.
    2 как в Zub/Amaurote. постоянная проверка целостности данных и их коррекция
    Интересная мысль! Буду думать в этом направлении. Спасибо!

  9. #68
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,755
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я тут недавно долго ловил баг. прога работала при IM1, но через какое-то время (в турбе быстрее) сбрасывалась.
    вот кусок кода висящий на прерываниях в ROM. увеличение системной переменной (frames)
    Код:
    	LD   HL,(#5C78)
    	INC  HL
    	LD   (#5C78),HL
    	LD   A,H
    	OR   L
    	JR   NZ,L0048
    	INC  (IY+#40) !!!!!
    L0048:	PUSH BC
    в моём случае это был муз.плейер который использовал IY для работы с данными.
    оказалось такое встречается и в играх, например JoeBlade2 48k
    Последний раз редактировалось goodboy; 08.10.2019 в 13:10.

  10. #69
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,975
    Спасибо Благодарностей отдано 
    171
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    88 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    INC (IY+#40)
    А что там за переменная BASIC'а? И только в ТУРБО сбрасывалась?
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  11. #70
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,755
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    допустим у тебя в программе IY используется для своих целей
    INC (IY+#40) естественно что-то испортит.
    испортит и не в турбо (просто в турбо это произойдёт быстрей)

Страница 7 из 8 ПерваяПервая ... 345678 ПоследняяПоследняя

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

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

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

Похожие темы

  1. HALT контроллер
    от zx_ в разделе БК-0010/0011
    Ответов: 9
    Последнее: 28.09.2018, 00:49
  2. Di:Halt 99
    от Vinnny в разделе События
    Ответов: 29
    Последнее: 13.07.2018, 19:59
  3. Di:HALT:2009
    от TmK в разделе События
    Ответов: 206
    Последнее: 11.08.2009, 14:26
  4. Di:Halt 2007 invitation
    от sq/skrju в разделе События
    Ответов: 12
    Последнее: 25.05.2007, 11:44

Ваши права

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