User Tag List

Страница 9 из 18 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 174

Тема: команда BIT n,(HL)

  1. #81

    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    дополнение по результатам от CHRV :

    - LDIR/LDDR
    не влияет на memptr при BC=1 (те при однократном исполнении)
    при BC<>1 memptr=адрес инструкции+1

    - CPI
    memptr=0 (?)

    - CPIR
    при BC=1 или A=(HL) как CPI,
    в остальных случаях -- непонятно... (для этого теста в обоих битах 1, может, memptr=HL?)

    - CPDR
    при BC=1 или A=(HL) не влияет (как и CPD)
    в остальных случаях memptr=адрес инструкции

    - INI
    memptr=BC+1

    - IND
    memptr=BC

    INIR/INDR
    memptr=0 (?)

    OUTI/OUTD
    memptr=f(BC), что за f - неясно. первое, что приходит в голову, и с чем совпадает результат: memptr=BC >> 2, но как-то это дико О__о

    OTIR/OTDR
    memptr=0 (?)

    к слову, любопытно, каким образом проектировались клоны? к примеру, сомневаюсь, что КР1858ВМ3 делался по лицензии ZiLOG, но memptr там есть, и ведет он себя так же, как на фирменных процах (хотя по другим вещам, вроде DAA, этот кристалл отличается от Z80).
    Последний раз редактировалось boo_boo; 04.03.2006 в 16:28.

  2. #82

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,377
    Спасибо Благодарностей отдано 
    1,696
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от boo_boo
    к слову, любопытно, каким образом проектировались клоны? к примеру, сомневаюсь, что КР1858ВМ3 делался по лицензии ZiLOG, но memptr там есть, и ведет он себя так же, как на фирменных процах (хотя по другим вещам, вроде DAA, этот кристалл отличается от Z80).
    В доках описывающих буржуйские/российские аналоги - ВМ3 - единственный процессор, про который уаказано, что он не точная копия, а лишь 'функциональный аналог Z80'

    А чем он по DAA отличается?

  3. #83

    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus
    В доках описывающих буржуйские/российские аналоги - ВМ3 - единственный процессор, про который уаказано, что он не точная копия, а лишь 'функциональный аналог Z80'

    А чем он по DAA отличается?
    странно, зачем разработчики "функционального аналога" точно симитировали недокументированную и никому непонятную фишку (собсно bit(hl)), оставив за бортом вещи поважнее.

    по DAA - вообще бред какой-то, не только недокументированные флаги, даже S и H не пойми как себя ведут.

  4. #84

    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    кстати, глянул на vhdl-сорцы t80, чего-то там мутится с 5 и 3 битами F для bit (HL) и bit (i+d). вот только не пойму, что -- чтоб понять, надо с vhdl разбираться

  5. #85

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,377
    Спасибо Благодарностей отдано 
    1,696
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от boo_boo
    странно, зачем разработчики "функционального аналога" точно симитировали недокументированную и никому непонятную фишку (собсно bit(hl)), оставив за бортом вещи поважнее.

    по DAA - вообще бред какой-то, не только недокументированные флаги, даже S и H не пойми как себя ведут.
    Пока что мое имхо такое - либо внутри вм3 стоит опять же буржуйский кристал каккой-либо модификации Z80, либо при стачивании кристала, с последующим воспроизведением его заново, наши умельцы чего-то изменили/потеряли/недосмотрели

  6. #86

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Исчерпывающий тест для DAA

    в виде TR-DOS. Есля я ничего не напутал, то при запуске спросит имя (введите буковку этого хватит), и запишет на диск 4 файла общим размером 128К - AF после DAA для каждого из 65536 вариантов исходных AF. Т.е. первые 2 байта - это F, A после DAA когда на входе была AF=0000, вторые 2 байта F, A, когда было AF=0001 и т.д.

    Прада, TR-DOS диск махонький получился...
    А, вот, одну строчку в басике забыл. Теперь добавил. Можете попробовать на нестандартном прогнать. Сравним с оригинальным Z80.
    Вложения Вложения
    Последний раз редактировалось Vladimir Kladov; 03.03.2006 в 16:46.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  7. #87

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насчет разницы между CPI/CPIR CPD/CPDR мне это как-то очень подозрительно. Откуда это вдруг процессору известно, что предыдущая выполнявшаяся команда тоже была CPIR или CPDR, а не другая какая-нибудь. (В том смысле, что он ведь их по одной выполняет) Или он держит где-то у себя такой флажок. Или как получается, что он сбрасывает только для CPIR которая только 1 раз отрабатывает, но берет из HL (допустим) в других случаях. Ведь он при повторном исполнении если бы не знал что перед этим тоже была CPIR опять бы его сбросил. С командой CPDR все понятней если CPD ничего не трогает.


    Надо бы еще добавить "двойные" тесты, когда после "сброса" или "установки" флажков вполняется сначала CPI, а потом опять CPI или CPIR. Вообще, нужно смотреть все комбинации:

    CPI : CPI
    CPI : CPD
    CPI : CPIR (BC=1)
    CPI : CPIR (BC=2)
    CPI : CPDR (BC=1)
    CPI : CPDR (BC=2)
    CPD : CPI
    CPD : CPD
    CPD : CPIR (BC=1)
    CPD : CPIR (BC=2)
    CPD : CPDR (BC=1)
    CPD : CPDR (BC=2)
    CPIR (BC=1) : CPI
    CPIR (BC=1) : CPD
    CPIR (BC=1) : CPIR (BC=1)
    CPIR (BC=1) : CPIR (BC=2)
    CPIR (BC=1) : CPDR (BC=1)
    CPIR (BC=1) : CPDR (BC=2)
    CPIR (BC=2) : CPI
    CPIR (BC=2) : CPD
    CPIR (BC=2) : CPIR (BC=1)
    CPIR (BC=2) : CPIR (BC=2)
    CPIR (BC=2) : CPDR (BC=1)
    CPIR (BC=2) : CPDR (BC=2)
    CPDR (BC=1) : CPI
    CPDR (BC=1) : CPD
    CPDR (BC=1) : CPIR (BC=1)
    CPDR (BC=1) : CPIR (BC=2)
    CPDR (BC=1) : CPDR (BC=1)
    CPDR (BC=1) : CPDR (BC=2)
    CPDR (BC=2) : CPI
    CPDR (BC=2) : CPD
    CPDR (BC=2) : CPIR (BC=1)
    CPDR (BC=2) : CPIR (BC=2)
    CPDR (BC=2) : CPDR (BC=1)
    CPDR (BC=2) : CPDR (BC=2)

    Разумеется HL должен показывать куда-нибудь туда, где A <> (HL) при всех сравнениях (можно вроде бы уже считать, что этот случай эквивалентен последнему выполнению). Из таких тестов можно:
    1) получить подтверждение, что такая память у процессора о предыдущей команде есть;
    2) узнать, различает ли он 2 команды CPIR : CPIR, CPI : CPI и т.д. или считает их продолжением цепочки. Кстати, можно бы еще для интереса сразу воткнуть что-нибудь нейтральное между и посмотреть еще такие тройные тесты:
    CPI : NOP : CPI
    CPIR (BC=1) : NOP : CPIR (BC=1)
    CPIR (BC=2) : NOP : CPIR (BC=1)
    CPIR (BC=2) : NOP : CPIR (BC=2)
    3) учитывает ли этот гипотетический флажок две разные команды LDIR действительно по разным адресам как одну длинную команду LDIR.

    INI/IND/OUTI/OUTD вместе с R уже не так интересны. А вот CPI/CPIR не очень устраивает. Заодно надо бы подергать HL в разные места памяти, пусть покажет, действительно ли из HL берутся флажки (из HL+1 в смысле?).
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  8. #88

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    опаньки. Наверное такой флажое для процессора - это PF. Т.е. он смотрит на PF, а не на какой-то там еще флажок, предполагая, что PF = 0 - признак "начала" последовательности, и тогда и сбрасывает в CPIR memptr. А после cpIR в котором BC <> 0, PF=1, и тогда он не сбрасывает. Но PF может быть = 1 не только после CPIR. Надо еще в этом направлении тесты расширить: флаги до команды тоже пробовать и сбрасывать, и устанавливать. По крайней мере это надо повторить и для CPD / CPDR и для LDI / LDD / LDIR / LDDR. Теплее?
    Последний раз редактировалось Vladimir Kladov; 04.03.2006 в 08:58.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  9. #89

    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    опаньки, опаньки. Мой предыдущий пост - лажа. PF совершенно не при чем. Флажок в ЦПУ есть какоц-то. Я попробовал использовать в качестве флажка адрес предыдущей выполнявшейся команды, если он тот же, то выполняется та же команда, и сброс не делается, т.е. остается результат от предпоследнего выполнения CPIR (установка).

    Теперь насчет того откуда установка. Если брать HL или HL-1 (т.е. после и до выполнения команды), то пара результатов не сходится. Сошлось когда я просто стал впихивать FF в memptr. Результат странный. Сейчас еще попробую что-нибудь.

    Увы. Попробовал все, что пришло в голову: A-(HL), A-(HL)-F, A - ничего не подходит. Только чистый FF. Надо смотреть с разными HL и выяснять, что может влиять еще на memptr в CPIR. Раз HL не подходит.

    Двойные (и тройные) тесты все еще интересуют. Хочется выяснить, достаточно ли анализировать адрес предыдущей команды, или надо запоминать именно саму команду (код операции), чтобы задействовать как флажок "продолжения" для CPIR. Для прочих команд это менее актуально.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  10. #90

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Thumbs up

    Ребята (бу-бу и Владимир Кладов)
    Есть такая просьба - может быть сделать чётко структурированный документ (файл-текст) с описанием регистра и влиянием на него команд?

    Если честно там чуть повыше было описание (от Vladimir Kladov), только оно сильно сокращённое.
    Последний раз редактировалось GriV; 04.03.2006 в 18:58.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

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

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

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

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

Похожие темы

  1. Команда Outland corp
    от nyuk в разделе Люди
    Ответов: 12
    Последнее: 10.11.2006, 10:16

Ваши права

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