User Tag List

Страница 18 из 81 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя
Показано с 171 по 180 из 810

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

  1. #171

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

    По умолчанию

    Всем привет. Только что запускал R-TYPE. Но корабля не было и через 10 секунд свалился в сбой. Ни у кого не завалялось тестовых программок для проверки эмуляции? Типа для проверки корректности выполнения команд Z80?
    всем спасибо.

  2. #172

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

    По умолчанию

    Смотрите в приложении набор утилиток для тестирования. Начать стоит, наверное, с z80tests.
    Вложения Вложения
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  3. #173

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

    По умолчанию

    Благодарю, Higgins. Запустил Z80tests и в итоге кругом failed: (да как он вообще у меня работает?)
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.

  4. #174

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

    По умолчанию

    Цитата Сообщение от Лисицын Василий Николаеви Посмотреть сообщение
    Благодарю, Higgins. Запустил Z80tests и в итоге кругом failed: (да как он вообще у меня работает?)
    Ну, что, хорошее начало.

    Судя по картинке, тест даже не может корректно сообщить об ошибке, то есть проблемы с какими-то основными вещами.

    Можно попробовать еще раз глазами внимательно проверить реализации самых первых инструкций в тесте и, если будут найдены ошибки, исправить их и попробовать тест еще раз. Если тест сообщит, что тест для этих инструкции пройден успешно, значит сам код тестирования исполняется верно, и можно продолжать искать ошибки для других инструкций. Иначе, нельзя быть уверенным в том, что код тестирования исполняется верно, и тогда сообщения Failed/Passed не имеют никакого значения. В этом случае следует начать с проверки основных инструкций (арифметика, сравнения и переходы) и флагов (C, Z).
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  5. #175

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

    По умолчанию

    Ну вот, например, SCF: MRIN failed: что это за MRIN? SCF я делаю элементарно:
    EX37: CBR F,1<<NN - сбрасываю N
    SBR F,1<<CC - устанавливаю с
    NOP - коррекция времени выполнения команды
    JMP LOOP - возврат в следующий цикл M1
    и ещё не ясно что такое expected GRND
    А Basic глючит следующим образом: PRINT 10 - в ответ - 1. PRINT 12.21 - в ответ 1.21. Целую часть пишет всегда либо 1 (если >=1) либо 0 (<1). Синус, косинус считает при этом верно. При загрузки программ с кассеты загрузчик стартует только со второй попытки загрузки, а в первый раз выдаёт OK и сваливается в main-loop.
    А Basic глючит следующим образом: PRINT 10 - в ответ - 1. PRINT 12.21 - в ответ 1.21. Целую часть пишет всегда либо 1 (если >=1) либо 0 (<1). Синус, косинус считает при этом верно. При загрузки программ с кассеты загрузчик стартует только со второй попытки загрузки, а в первый раз выдаёт OK и сваливается в main-loop.
    Последний раз редактировалось Lisitsin; 11.02.2011 в 23:46.

  6. #176

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

    По умолчанию

    А вот и R-TYPE.
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.

  7. #177

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

    По умолчанию

    А вот и Robocop:
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.

  8. #178

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

    По умолчанию

    Цитата Сообщение от Лисицын Василий Николаеви Посмотреть сообщение
    Ну вот, например, SCF: MRIN failed: что это за MRIN? SCF я делаю элементарно:
    MRIN означает, что утилита не может правильно вывести значение контрольной суммы, т.е. ошибки эмулятора приводят к тому, что вместо шестнадцатиричных цифр печатаются неподходящие буквы и токены.

    Тест печатает цифры контрольной суммы с помощью RST #10. Для ориентации в коде: само значение контрольной суммы хранится по адресу #9527. По адресам #8926 - #8931 лежит тело цикла тестирования. Процедура по адресу #80F5 печатает значение в HL (собственно, контрольную сумму). Процедура #80FE печатает значение в A. Процедура #810B печатает значение в четырех младших битах A, то есть одну шестнадцатиричную цифру.

    Все эти процедуры печати очень простые и не работать там, в общем-то, нечему, за одним исключением: процедура #810B использует DAA. Это для вас должно быть звоночком. Во-первых, потому что проблемы с этой инструкцией -- обычное дело для эмуляторов. Во-вторых, потому что проблемы с печатью чисел в BASIC тоже указывают на возможные проблемы именно с этой инструкцией.

    Значит, вопрос такой: как вы считаете результат для DAA?
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  9. #179

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение
    как вы считаете результат для DAA?
    добавлю пять копеек - для Z80 и i8080 эта команда работает по разному. Это так, для информации...
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  10. #180

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

    По умолчанию

    Посчитать DAA можно так:

    #define PF_LOG(n) ((!PF_LOG4((n)) == !PF_LOG4((n) >> 4)) << PF_BIT)

    case 0x27: /* DAA: f(4) */
    d = 0x0000;
    if((Z80_AF & Z80_CF) || Z80_AF >= 0x9a00) d |= 0x6000, Z80_AF |= Z80_CF;
    if((Z80_AF & Z80_HF) || ((Z80_AF & 0x0f00) >= 0x0a00)) d |= 0x0600;

    if(!(Z80_AF & Z80_NF)) Z80_AF = ((Z80_AF + d) & 0xff00) |
    (((Z80_AF & 0x0f00) >= 0x0a00) << HF_BIT) | (Z80_AF & Z80_CF);
    else Z80_AF = ((Z80_AF - d) & 0xff00) |
    (((Z80_AF & Z80_HF) && (Z80_AF & 0x0f00) <= 0x0500) << HF_BIT) | Z80_NF | (Z80_AF & Z80_CF);

    r = (Z80_AF >> 8);
    Z80_AF |= PF_LOG(r) | (!r << ZF_BIT) | (r & (Z80_SF | Z80_XF | Z80_YF));
    Команда короткая -- 4 такта, поэтому в вашем случае, чтобы выдержать скорость эмуляции, наверное, понадобится вводить таблички.

    Нашелся еще один тест на инструкции. Смотрите в приложении.
    Вложения Вложения
    • Тип файла: zip zexfix.zip (4.6 Кб, Просмотров: 136)
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

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

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

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

Эту тему просматривают: 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

Ваши права

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