User Tag List

Страница 40 из 81 ПерваяПервая ... 363738394041424344 ... ПоследняяПоследняя
Показано с 391 по 400 из 810

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

  1. #391

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

    По умолчанию

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

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

  3. #392

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    TRACE_BIT(IX_D)1.zip
    В строке 16. "BIT 7, (IX - #01)" по #88BE должен взводить SF, если тестируемый бит взведен.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  4. #393

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

    По умолчанию

    Идёт !!! вместе с IY !!!!!!!
    LDI failed.
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:14.

  5. #394

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    LDI failed.
    Условие: PC=#89AE ИЛИ #89B0. Регистры PC, BC, DE, HL, AF.

    Флаги для всего семейства LDI, LDD, LDIR и LDDR:
    - SF, ZF и CF не меняем.
    - Флаги 3 и 5. Если принять r за значение ячейки, которое читается из (HL) и пишется в (DE), то разряд 3 (считая от 0) суммы r+A (где A -- это регистр A) даст значение для флага 3, а бит 1 этой суммы даст значение для флага 5.
    - PF взведен, если BC (после декремента) не равен нулю.
    - HF и NF сброшены.

    Если это инструкция с повторением (LDIR, LDDR) и если она должна быть повторена (то есть BC после декремента не равен нулю), тогда PC уменьшается на два, то есть, становится на начало той же инструкции, и MEMPTR получает PC+1, где PC -- это уже уменьшенное на два прежнее значение PC. MEMPTR устанавливается только в этом случае. Если это инструкция без повтора или если повтора нет, MEMPTR остается прежним.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  6. #395

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

    По умолчанию

    LDI, LDD, LDIR, LDDR Passed. CPI, CPD FAILED:
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:14.

  7. #396

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    CPI, CPD FAILED:
    Условие: PC=#89AE ИЛИ #89B0. Регистры PC, BC, HL, AF.

    Обратите внимание, что условие то же, что и для LDI. Чтобы поймать именно CPI нужно выводить трейсинг только после того, как управление пройдет по адресу PC=#8966.

    Флаги:
    - SF, ZF и HF выставляются так же, как в инструкции "CP n", где в роли "n" -- значение ячейки в (HL).
    - Флаги 3 и 5. Вычисляем значение r = A - n - HF. Здесь "A" -- это регистр A, "n" -- значение ячейки, "HF" -- значение флага HF (0 или 1). Здесь берется не значение HF на входе, а значение этого флага уже после выполнения "CP n". Как и в случае с LDI, во флаг 3 копируем разряд 3 значения "r", а во флаг 5 -- разряд 1 того же значения.
    - PF устанавливаем так же, как в LDI.
    - NF нужно взвести.
    - CF не меняем (то есть, он должен быть такой же, как на входе, а не такой, как после "CP n").

    MEMPTR:
    CPI и CPIR увеличивают MEMPTR на 1.
    CPD и CPDR уменьшают MEMPTR на 1.
    Но: если исполняется CPIR или CPDR и нужное значение не найдено (сравнение дало сброшенный ZF) и BC не равно 0, тогда PC уменьшается на 2, после чего MEMPTR получает значение PC+1. Во всех остальных случаях MEMPTR остается прежним.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  8. #397

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

    По умолчанию

    Ваши консультации бесценны !
    CPI, CPD прошли. CPDR и CPIR я прописал, но следом за CPD в тесте идёт INI, которая у меня пока не реализована. Может продолжем с ввода-вывода?
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:14.

  9. #398

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

    По умолчанию

    Цитата Сообщение от Lisitsin Посмотреть сообщение
    CPI, CPD прошли. CPDR и CPIR я прописал, но следом за CPD в тесте идёт INI, которая у меня пока не реализована. Может продолжем с ввода-вывода?
    А CPIR и CPDR в тесте и нету, поэтому будем продолжать по списку.

    Пока пишу про группу INI, несколько вопросов. Есть ли подвижки в правильности/стабильности работы Бейсика? Осталась ли проблема с загрузкой программ с ленты? Можете ли загрузить zexall? Если можете, подтверждает ли он наш прогресс? И как с загрузкой и работой игр, с которыми раньше были проблемы?

    ---------- Post added at 19:20 ---------- Previous post was at 18:54 ----------

    Условие для INI то же, что для CPI, но для начала трассировки управление должно пройти через PC=#8976.

    Для этих инструкций лучше MEMPTR посчитать до вычисления флагов. Для INI и INIR MEMPTR получает значение BC-1, для IND и INDR -- значение BC+1. Здесь BC -- это значение регистра до декремента B.

    Флаги:
    - SF и флаги 3 и 5 копируются из соответствующих разрядов регистра B (после его декремента).
    - ZF выставляется как результат проверки регистра B (после его декремента) на равенство нулю.
    - PF выставляется как флаг четности для 8-разрядного значения, которое вычисляется так. Берем младшую половину MEMPTR (после его установки как описано выше), прибавляем к нему значение, прочитанное из порта. Назовем эту промежуточную сумму "cf". Затем берем три младших разряда этой суммы и делаем XOR с регистром B (после его декремента). Вот для этого сумасшедшего числа и считаем четность, и выставляем PF.
    - HF и CF. Если сумма "cf" дает переполнение (то есть, было переполнение при 8-разрядном сложении младшей половины MEMPTR с регистром B), тогда взводим HF и CF. Иначе, оба флага сброшены.
    - NF копируем из старшего разряда значения, прочитанного из порта.
    Higgins ZX Spectrum Emulator 8.10 alpha 3 available
    Please write us to report a bug or request a feature.

  10. #399

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

    По умолчанию

    Значит дело такое: самая большая продвижка по бейсику была последняя - страниц 15 назад. Бейсик вообще был нестабилен. Сейчас стоит как вкопанный. Есть один постоянный глюк, проявляется при загрузке с ленты: с первого раза нет автоматического старта загрузчика. Zexall вообще не грузится (приложение). ROBOCOP при старте игры или виснет или сбрасывается в бейсик. Есть простенькая игрушка - feenix - она работает.
    Последний раз редактировалось Lisitsin; 28.05.2014 в 08:14.

  11. #400

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

    По умолчанию

    Вопрос: а куда читается при этом байт из порта? В А?

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

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

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

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

Ваши права

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