User Tag List

Показано с 1 по 10 из 174

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Вот точно какие команды выполняются в биг-тесте:
    ORG 99FEh
    CALL NZ, 9BEFh

    ORG 9BEFH
    PUSH AF
    PUSH BC
    PUSH DE
    PUSH HL
    PUSH IY
    DI
    LD (9C56H),SP
    LD SP,8005H
    POP IY
    POP IX
    POP HL
    POP DE
    POP BC
    POP AF
    LD SP,(8011H)
    ;а вот здесь выполняется bit n,(hl), после чего: nop nop и далее
    ORG 9C0DH
    LD (9C54H),SP
    LD SP,9C54H
    PUSH AF

    дальше флажки уже сохранены какие есть т.е. после bit n(hl) они уже не менялись и даже этот кусок не нужен. Соответственно под подозрение попадают все PUSH/POP и LD (),SP с LD SP,().
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    Вот точно какие команды выполняются в биг-тесте
    ясный пень, LD SP,(8011H) нулями все забил. по моему тесту (последнему), LD SP,(nnnn) на memptr влияет -- сует в него адрес. так что на "большой тест" предлагаю забить, все с ним ясно...

  4. #3

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    сделаю, как написано в доке плюс ld sp,() / ld (),sp - чем sp хуже bc/de/hl? тогда большой тест пройдёт ;-)

  5. #4

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

    По умолчанию

    Цитата Сообщение от SMT
    сделаю, как написано в доке плюс ld sp,() / ld (),sp - чем sp хуже bc/de/hl? тогда большой тест пройдёт ;-)
    хе-хе а как насчет чтобы этот (последний в треде) тест совпал с реалом?

  6. #5

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

    По умолчанию

    у меня уже прошел, осталось мелочи: объясни, boo-boo (коль те так больше нравится): что в btest2 такое тесты cpd/cpdr/cpi/cpdr и как для них правильно загружать адрес в memptr (или не адрес, а значение? из A? или из (HL)?). И пожалуйста, чуть подробнее насчет EI HALT в IM2 - откуда в регистр попадать должно? (Хоть бы исходники положил что ли, по дизассемблерному коду лазить не смешно).
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  7. #6

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

    По умолчанию тест на bit n,(hl)

    благодаря Wlodek'у и CHRV мы теперь имеем над чем подумать

    в тестировании принимали участие:
    Z0840008,Т34ВМ1,КР1858ВМ3,Z084C0010,КР185 8ВМ1 от CHRV,
    пентагон Wlodek'a с неизвестным кристаллом (однако, не являющимся одним из вышеперечисленных)

    у родных Z084C00010, Z0840008 все одинаково.
    остальные кристаллы отличаются или по memptr, или по другим флагам.

    итак, memptr, внутренний регистр z80, из старшего байта которого берутся 3 и 5 биты F при выполнении опкода bit n,(hl). судя по результатам теста вырисовывается такая картина (тут плюсиками помечены пункты, совпадающие с nocash-докой, минусом -- несовпадающие или отсутствующие, загогулиной -- ни то, ни се.):

    + LD A,(addr)
    memptr=addr+1

    ~ LD (addr),A
    для Z0840008, Z084C00010, КР1858ВМ3: memptr=A*0x100
    на пентагоне Wlodek'a, Т34ВМ1, КР1858ВМ1: memptr=0

    ~ LD (addr), rp; LD rp,(addr)
    memptr=addr+1

    + EX (SP),rp
    memptr=rp

    + ADD/ADC/SBC rp,rp2
    memptr=rp+1

    + RLD/RRD
    memptr=HL+1

    + JP/JR/CALL/DJNZ/RET/RETI/?RST? addr (при переходе)
    memptr=addr

    + JP/CALL при отрицательном условии
    memptr=addr

    + IN A,(port)
    memptr=полный_адрес_порта(A*0x100+ port) + 1

    - OUT (port),A
    для Z0840008, Z084C00010, КР1858ВМ3: memptr=полный_адрес_порта(A*0x100+ port)
    для пентагона Wlodek'a, Т34ВМ1, КР1858ВМ1: memptr=0

    + IN A(C)
    memptr=BC+1

    + OUT (C),A
    memptr=BC+1

    - CPI/CPD/CPIR/CPDR
    самое непонятное... иногда меняет memptr, неясно, по какому принципу.
    [в этом тесте все cpi обнуляют memptr, cpd оставляют как есть, все cpir изменяют непонятно как (первые два обнуляют, остальные, которые при BC=5 выставляют 3й бит), первые два cpdr оставляют как есть, последующие три (BC=5) выставляют 3й бит]

    - INI/INIR/OTI/OTIR/IND/INDR/OUTD/OTDR
    или просто memptr=0, или что-то похитрее, ведется следствие...

    - прерывания:
    как при обычном переходе. то есть memptr=адрес обработчика прерывания

    + любая инструкция с (IX/IY+d)
    memptr=IX/IY+d

    за остальными инструкциями ничего подозрительного не замечено.

    пристегиваю архив с результатами теста и самим тестом (сорс для sjasmplus, сляпано быстро и на коленке, звиняюсь ,)
    Вложения Вложения
    Последний раз редактировалось boo_boo; 27.02.2006 в 00:26.

  8. #7

    Регистрация
    15.01.2005
    Адрес
    USSR
    Сообщений
    2,038
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от boo_boo
    в тестировании принимали участие:
    пентагон Wlodek'a с неизвестным кристаллом
    По-моему, на нём написано "Z80A GoldStar". Уточнить вряд ли удастся, потому что на него давно наклеен радиатор.

  9. #8

    Регистрация
    05.05.2005
    Адрес
    Германия
    Сообщений
    1,614
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от boo_boo
    пристегиваю архив с результатами теста и самим тестом (сорс для sjasmplus, сляпано быстро и на коленке, звиняюсь ,)
    Если дашь тест в формате TAP или TZX то протестю на оригинальном ZX Spectrum+. Если надо, могу посмотреть чем камень в нём стоит.

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

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

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

Похожие темы

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

Ваши права

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