User Tag List

Страница 21 из 81 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя
Показано с 201 по 210 из 810

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

  1. #201

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

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение

    TRACE3 -- это после исправления PF для битовых инструкций?
    Пока нет. Но вот с битом чётности опять непонятно. C2 - это 1100 0010. Число единиц - 3 - нечётное (odd). Если верить опять тому же мануалу - бит надо сбрасывать, а устанавливается он - если чётное (even).
    Я сейчас в инструкциях OR поставил обращение к таблице чётности, но Р всё равно в нуле. Может проинвертировать таблицу-то надо?
    И ещё: для каких из: AND r, CP r, ADC A,r, ADD A,r, SUB r и SBC r надо подставлять в P/V бит чётности? (ато я мануалу уже не знаю как верить ...)
    Последний раз редактировалось Lisitsin; 23.02.2011 в 16:42.

  2. #202

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

    По умолчанию

    Цитата Сообщение от Лисицын Василий Николаеви Посмотреть сообщение
    Пока нет. Но вот с битом чётности опять непонятно. C2 - это 1100 0010. Число единиц - 3 - нечётное (odd). Если верить опять тому же мануалу - бит надо сбрасывать, а устанавливается он - если чётное (even).
    Я сейчас в инструкциях OR поставил обращение к таблице чётности, но Р всё равно в нуле. Может проинвертировать таблицу-то надо?
    В моем сообщении опечатка. Перед исполнением "OR L" по адресу #808E регистр A=#86 и L=#C2. Результат операции #86 | #C2 = #C6 = %11000110 -- количество единиц четное, PF взводим.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  3. #203

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

    По умолчанию

    А AND r, CP r, ADC A,r, ADD A,r, SUB r и SBC r?
    Ато я OR исправил, но всё равно SCF 4efc failed, expected 0ebf

  4. #204

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

    По умолчанию

    Цитата Сообщение от Лисицын Василий Николаеви Посмотреть сообщение
    А AND r, CP r, ADC A,r, ADD A,r, SUB r и SBC r?
    Ато я OR исправил, но всё равно SCF 4efc failed, expected 0ebf
    Арифметические: ADD, ADC, SUB, SBC, CP.
    Битовые/логические: AND, XOR, OR.

    Для всех логических выставляем PF как флаг четности.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  5. #205

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

    По умолчанию

    Битовые-логические исправил. SCF всё равно failed. Трейсинг со слов 892B 0EA4 0000 0000 0EA5 2000 2000; уже с исправленными инструкциями.
    До конца трейсинг будет долгий. В реальном масштабе времени он занимает около 15 секунд, а сейчас пройдено около половины секунды.

    А может IX и IY отключить? Всё по-быстрее будет.
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.

  6. #206

    Регистрация
    27.02.2006
    Адрес
    MOSCOW
    Сообщений
    158
    Спасибо Благодарностей отдано 
    174
    Спасибо Благодарностей получено 
    10
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Извините если я повторюсь... про флаг P/V

    P/V - Если при логических операциях и командах сдвига кол-во установленных в ЕДИНИЦУ битов чётно (функция чётности 'P')

    P/V - Если результат арифмитической операции находится вне диапазона представления чисел со знаком, т.е. меньше -128, либо больше +127 (функция переполнения 'V')


    Команды LD A,I и LD A,R ,в отличие от всех остальных команд загрузки, оказывают влияние на флаги:
    H < - 0
    N < - 0
    P/V <-IFF2 (триггер разрешения/запрещения прерываний)


    Далее....

    P/V (Parity/Overflow) - Флаг чётности/переполнения


    Этот флаг имеет несколько функций.
    1. При арифмитических операциях над числами со знаком он действует как флаг переполнения V. Т.к. диапазон представления чисел со знаком от -128 до +127, то при операциях над ними возможен выход результата за эти пределы - переполнение. В этом случае флаг устанавливается в 1, сигнализируя об ошибочности результата. Логика установки флага V в 1 такова:

    а) если был перенос из 6-го бита в 7-ой, и не было переноса из 7-го бита во флаг C;

    б) не было переноса из 6-го бита в 7-ой, но есть перенос из 7-го бита во флаг C.

    Сложение

    _+76 = 0 1 0 0 1 1 0 0
    -114 = 1 0 0 0 1 1 1 0
    ----------------------
    ______1 1 0 1 1 0 1 0 = -38 верно
    C=0
    V=0

    Сложение

    __-1 = 1 1 1 1 1 1 1 1
    __-1 = 1 1 1 1 1 1 1 1
    ----------------------
    ______1 1 1 1 1 1 1 0 = -2 верно
    C=1
    V=0

    Сложение

    _+82 = 0 1 0 1 0 0 1 0
    _+94 = 0 1 0 1 1 1 1 0
    ----------------------
    ______1 0 1 1 0 0 0 0 = -80 неверно!
    C=0
    V=1

    В последнем примере произошла установка флага V.
    Это означает, что ошибка должна быть програмно учтена при анализе результата.

    P.S Может чем поможет ВАМ

  7. #207

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    Битовые-логические исправил. SCF всё равно failed. Трейсинг со слов 892B 0EA4 0000 0000 0EA5 2000 2000; уже с исправленными инструкциями.
    До конца трейсинг будет долгий. В реальном масштабе времени он занимает около 15 секунд, а сейчас пройдено около половины секунды.
    К моменту исполнения по адресу #892B различия с эталоном не только в регистре F, но и в регистре A, поэтому начинать трассировку с этого адреса уже поздновато. Давайте вернемся к трассировке с адреса #8085. Очень много строк не пока нужно. Насчет SCF тоже не беспокойтесь. Чем позже будет проходить этот первый тест, тем больше инструкций мы успеем исправить анализируя сравнительно небольшие трейсинги без дополнительных ухищрений. В конце концов наша цель -- исправить все ошибки, а не пройти конкретный набор тестов.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  8. #208

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

    По умолчанию

    Начиная с 8085:
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.

  9. #209

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    Начиная с 8085:
    Продвинулись на одну инструкцию, и теперь 14 строк трейсинга совпадает с эталоном.

    "CP #FF" по #80EF не копирует 3 и 5 биты операнда (#FF) в F.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  10. #210

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

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение
    Продвинулись на одну инструкцию, и теперь 14 строк трейсинга совпадает с эталоном.

    "CP #FF" по #80EF не копирует 3 и 5 биты операнда (#FF) в F.
    Работаю ...
    А все команды CP, CPI копируют биты 3, 5 из операнда в F?

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

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

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

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

Ваши права

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