User Tag List

Страница 24 из 81 ПерваяПервая ... 202122232425262728 ... ПоследняяПоследняя
Показано с 231 по 240 из 810

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

  1. #231

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    Должно работать:
    "CP #80" по #0B26 не взводит SF при A=#53.

    (#53 - #80) mod #100 = #100 - #2D = #D3 = %11010011 -- старший разряд взведен.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  2. #232

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

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение
    "CP #80" по #0B26 не взводит SF при A=#53.

    (#53 - #80) mod #100 = #100 - #2D = #D3 = %11010011 -- старший разряд взведен.
    Работаю ...

  3. #233

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

    По умолчанию

    Гениально !!!
    пропал реальный глюк в бейсике.
    10 PRINT 6
    20 GOTO 10

    RUN

    раньше цикле так в десятом выдавал какой-нибудь глюк типа NONSENCE IN BASIC.
    Теперь как часы - сколько не крути !!!

    Но загрузчик автоматически пока не стартует - только со второго раза.
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.

  4. #234

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    TRACE8_0.zip
    Отлично. Теперь "ADD HL, HL" по #0B79 ошибочно взводит 5-й разряд регистра F. Инструкции "ADD HL/IX/IY, rr" должны копировать биты 3 и 5 старшей половины результата сложения в F.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  5. #235

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

    По умолчанию

    В работе. А все 16-битные ADD, ADC, SBC так себя ведут, и что при этом происходит с флагом S ?
    Спасибо ...

  6. #236

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    В работе. А все 16-битные ADD, ADC, SBC так себя ведут, и что при этом происходит с флагом S ?
    Да, 16-разрядные ADD, ADC и SBC копируют биты 3 и 5 из старшей половины результата в F. При этом 16-разрядный ADD флаг S не меняет, а 16-разрядные ADC и SBC копируют старший (знаковый) разряд результата во флаг S.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  7. #237

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

    По умолчанию

    Цитата Сообщение от Higgins Посмотреть сообщение
    Да, 16-разрядные ADD, ADC и SBC копируют биты 3 и 5 из старшей половины результата в F. При этом 16-разрядный ADD флаг S не меняет, а 16-разрядные ADC и SBC копируют старший (знаковый) разряд результата во флаг S.
    Приветствую.
    А ADD HL,rr копируют биты 3, 4 из старшего байта результата после операции сложения или из H до операции сложения? И ещё: я читал, что BIT 7,r влияет на S, копируя в него седьмой бит тестируемого байта. Правда ли сие? А остальные BIT n,r на него не влияют? Это я начитался "Z80 Undocumented Features (in software behaviour)" By Sean Young (sean@msxnet.org) (приложение)
    Вложения Вложения
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:11.

  8. #238

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    А ADD HL,rr копируют биты 3, 4 из старшего байта результата после операции сложения или из H до операции сложения?
    А что такое результат до операции сложения?

    ADD копирует биты 3 и 5 из старшей половины результата сложения. Разумеется, после самого сложения.

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    И ещё: я читал, что BIT 7,r влияет на S, копируя в него седьмой бит тестируемого байта. Правда ли сие? А остальные BIT n,r на него не влияют?
    Да, "BIT 7, ..." копирует старший бит в S и остальные не влияют. То есть инструкции "BIT" ведут себя так, как если бы сначала формировалась битовая маска с взведенным разрядом в указанной позиции, которая затем применялась бы к операнду инструкции. Тогда в случае сброшенного тестируемого разряда получаем взведенные ZF (в результате применения маски получаем ноль) и PF (количество взведенных разрядов равно нулю, то есть их количество условно четно). А если тестируемый разряд взведен и это старший (знаковый) разряд, тогда взводится SF.

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    By Sean Young
    Хороший документ.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  9. #239

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

    По умолчанию

    А у Sean Young по поводу битов 5 и 3 при ADD HL,rr я читаю:ADD HL,xx (use high byte of HL, i.e. H, before the addition) - типа до сложения. Или у меня ещё и с английским туговато?
    Последний раз редактировалось Lisitsin; 28.02.2011 в 19:07.

  10. #240

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    А у Sean Young по поводу битов 5 и 3 при ADD HL,rr я читаю:ADD HL,xx (use high byte of HL, i.e. H, before the addition) - типа до сложения. Или у меня ещё и с английским туговато?
    Полностью это выглядит так:

    BIT n,(HL) *Z*1**0-

    P/V, Z, S set as the other BIT instructions, but the 5 and 3 flags are
    different. Okay, brace yourself. They are a copy of an internal register of
    the Z80, which is set as follows:

    ADD HL,xx (use high byte of HL, i.e. H, before the addition)
    То есть "BIT n, (HL)" устанавливает P, Z и S как прочие инструкции "BIT", но флаги 3 и 5 устанавливает по-другому. И это правильно.

    Однако то, что говорится о самом внутреннем регистре не верно. Во-первых, читая эти слова можно подумать, что внутренний регистр 8-разрядный. Это не так, и "BIT n, (HL)" копирует биты 3 и 5 из старшей половины 16-разрядного внутреннего регистра, MEMPTR.

    Во-вторых, "ADD HL, ..." присваивает внутреннему регистру не старшую половину H до сложения, а увеличенное на единицу значение HL. Это происходит действительно до сложения (то есть до копирования результата сложения в HL), но здесь речь идет не о выставлении флагов 3 и 5, а о значении MEMPTR после исполнения "ADD HL, ...". Сама эта инструкция -- "ADD HL, ..." -- копирует во флаги 3 и 5 соответствующие разряды старшей половины результата сложения.

    К слову, это относится только к "BIT n, (HL)", но не к "BIT n, (i+d)", которые копируют 3 и 5 биты адреса (i+d) в F.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

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

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

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

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

Ваши права

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