User Tag List

Страница 30 из 81 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя
Показано с 291 по 300 из 810

Тема: ZX Spectrum: аппаратная реализация на восьми микросхемах

  1. #291

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока failed. Прошли меньше 0,5% от DAA. Может исключить IX, IY, SP? И ещё: я тут подумал, если ошибка при возникновении накапливается, может найти где она начинается? могу запуститься по содержимому BC сразу с половины, четверти/трёх четвёртых и т д трейсинга.
    Вложения Вложения

  2. #292

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начиная с BC=8000:
    Вложения Вложения

  3. #293

    Регистрация
    03.05.2007
    Адрес
    St. Petersburg
    Сообщений
    297
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    TRACE_DAA_00A2.zip
    Здесь проходим все.

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    TRACE_DAA_8000.zip
    К моменту BC=#8000 контрольная сумма уже отличается, то есть ошибка где-то раньше.

    Предложение такое: мы уже занем, что оснастка работает как положено. В каждой итерации она исполняется одинаково. Поэтому можно оставить только состояние до и после "DAA". Формально условие будет такое: (PC=#86E7 ИЛИ PC=#86E8). Если объем вывода существенно влияет на время сбора трейсинга, можно оставить только значения для AF.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  4. #294

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение
    Здесь проходим все.
    Предложение такое: мы уже занем, что оснастка работает как положено. В каждой итерации она исполняется одинаково. Поэтому можно оставить только состояние до и после "DAA". Формально условие будет такое: (PC=#86E7 ИЛИ PC=#86E8). Если объем вывода существенно влияет на время сбора трейсинга, можно оставить только значения для AF.
    Получается что-то типа этого: (начало с BC=0100)
    Вложения Вложения
    Последний раз редактировалось Lisitsin; 06.03.2011 в 22:08.

  5. #295

    Регистрация
    03.05.2007
    Адрес
    St. Petersburg
    Сообщений
    297
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    TRACE_DAA_0100.zip
    Отлично, попалась на строке 1570. На входе AF=#0410, на выходе ошибочное AF=#6A2D вместо правильного AF=#0A0C.

    Насчет #6A вместо #0A: #60 нужно добавлять только если CF взведен или A >= #9A. В последнем случае CF на выходе следует взвести (тогда в F получим правильное #xD вместо имеющегося #xC).

    Насчет взведенного флага 5: это может быть из-за ошибочно добавленного #60 к результату. Если нет, то во флаги 3 и 5 следует скопировать соответствующие разряды результирующего значения регистра A.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  6. #296

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение
    На входе AF=#0410, на выходе ошибочное AF=#6A2D вместо правильного AF=#0A0C.
    Не понял ... На входе AF=0410, т. е. С=0, N=0, H=0. A=04 - добавлять нужно 00.

  7. #297

    Регистрация
    03.05.2007
    Адрес
    St. Petersburg
    Сообщений
    297
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    Не понял ... На входе AF=0410, т. е. С=0, N=0, H=0. A=04 - добавлять нужно 00.
    В данном случае добавляем #06 из-за взведенного HF.

    Если на входе CF взведен или регистр A больше или равен #9A, то следует a) добавить #60 и b) взвести CF.

    Далее, если взведен HF или четыре младших разряда A больше или равны 10, тогда добавляем #06 (возможно, к дополнение к ранее добавленным #60).

    Далее, если NF взведен, тогда эти #60 и #06 следует не добавлять к A, а вычитать из A.

    Как считать HF уже выяснили. Про CF сказано выше. NF не меняем. PF считаем как флаг четности. ZF взводим если результат в A получился нулевым. Про флаги 3 и 5 тоже сказано выше. Вроде бы все, что нужно.
    Последний раз редактировалось Higgins; 06.03.2011 в 23:12.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  8. #298

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Точно. Н=1. Но тогда я вообще не понимаю. Я пользовался при генерировании DAA вложением. Так вот там эта ситуация (Н=1, С=0, N=0, А=04) - вообще не определена. Значит там где-то ошибка?
    Вложения Вложения

  9. #299

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение
    В данном случае добавляем #06 из-за взведенного HF.

    Если на входе CF взведен или регистр A больше или равен #9A, то следует a) добавить #60 и b) взвести CF.

    Далее, если взведен HF или четыре младших разряда A больше или равны 10, тогда добавляем #06 (возможно, к дополнение к ранее добавленным #60).

    Далее, если NF взведен, тогда эти #60 и #06 следует не добавлять к A, а вычитать из A.

    Как считать HF уже выяснили. Про CF сказано выше. NF не меняем. PF считаем как флаг четности. ZF взводим если результат в A получился нулевым. Про флаги 3 и 5 тоже сказано выше. Вроде бы все, что нужно.
    Переделаю всё заново. В документацию веры нет. Да здравствует здравая логика !!!

  10. #300

    Регистрация
    05.09.2010
    Адрес
    г. Рязань
    Сообщений
    716
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    P A S S E D !
    Вот они, результаты работы с умным человеком !
    Вложения Вложения

Страница 30 из 81 ПерваяПервая ... 262728293031323334 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. реализация JavaScript-a на ZX-Spectrum-48k
    от bigral в разделе Программирование
    Ответов: 4
    Последнее: 10.01.2010, 12:02
  2. Аппаратная эмуляция GS/TFM/AY
    от Black_Cat в разделе Эмуляторы
    Ответов: 34
    Последнее: 03.05.2008, 23:34

Ваши права

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