34b2 я ещё не выкладывал, а там по-другомуСообщение от Vladimir Kladov
34b2 я ещё не выкладывал, а там по-другомуСообщение от Vladimir Kladov
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ха! Чтобы тест bit n,(hl) прошел и совпал с колонкой Z80(real), надо сделать ручкой Янгу, и напросто занулить XF и YF после этой команды...
Или у Янга на руках был не тот процессор, либо одно из двух. Но именно так работает Spectaculator. Причем видимо не зависимо от того какой процессор выбран. Мда вот. А ведь даже в некоторых форматов снапшотов сохраняется теперь значение этого регистра, с комментарием, что дескать влияет на флажки в результате команды именно bit n,(hl)
А с bit n,(ix+n) фишка вот какая. Здесь Янг может быть и прав. Но я пробовал сделать пару финтов. Например, занулить их. И тест все равно проходит! (Я, конечно, понимаю, там может быть IX всегда показывает сам на такой адрес, что ((IX+1)/256)&28h=0. Но тогда грош цена такому тесту!).
В общем, народ. Если не найдутся реальщики готовые сотрудничать, чтобы подтвердить или наоборот развеять слухи о MemPtr-регистре, то ничего мы тут не добьемся. На данный момент результаты показывают: само существование этого регистра, возможно, результат работы с конкретным (горелым? левым?) Z80. Или тот тест прогонялся не на настоящем фирменном Z80, а на какой-нибудь под(д)елке (из Китая?). Даже на команды CPDr, CPIr он тоже похоже не влияет. Какие еще команды якобы берут из него флажки? (Сейчас выяснится, что слухи о memptr не более чем миф, вроде ракслы в спековской элите... )
Пойду пока смотреть где у меня сдвиги не так пашут.
Может, реальщики нас просто не видят, потому что в раздел "Эмуляторы" не заглядывают? Запостить надо в раздел железо просьбу заглянуть сюда. А то как в современной многоэтажке живем, как выглядят сосдеи по площадке и чем дышат - не знаем...
а реально скачать описание z80 в каком-нить VHDL? будет ли такая модель вести себя, как фирменная. или ядрописатели в том же положении, и могли пропустить недокументированные фичи
скачать реально, с opencores -- t80/tv80... только Zilog исходниками z80 с народом не делилась, сталбыть авторы этих ядер тоже работали по описаниям.Сообщение от SMT
благодаря Wlodek'у (тут ) мой недотест bit 0, (hl) принес свои плоды. очень странные плоды...
в каждой клетке на картинке -- 3 и 5 биты F после очистки флагов, выполнения определенной команды, и последующего bit 0,(hl)
(далее звездочка обозначает этот докУмент)
клетки 1-3: LD A,(FFXX) -- флаги установлены. похоже, и впрямь в memptr идет адрес (или адрес+1, как говорят в *?), надо проверять подробней.
4-6: LD (FFXX),A для A=0,FF,AA -- пусто. (то есть * врет). или эта команда вообще ни на что не влияет, или просто обнуляет memptr (кстати, именно LD (addr),A при A=0 я делаю при очистке флагов, надеясь, что она, как говорится в *, сделает MEMPTR=A*0x100, то есть обнулит его нафиг. похоже, тем или иным образом он таки обнуляется О__о)
7-12: ld (FFFE),rp для BC,SP,DE,HL,IX,IY -- установлены, опять похоже, что в memptr идет адрес или адрес+1.
13-18: ld rp,(FFFE) для тех же регистров -- установлены, видимо, снова адрес.
19: ex (SP),IX при SP=BFE6, (SP)=IX=FFFE -- включено, черт разберет, или адрес, или (SP)
20: ADD HL,BC при HL=FF00,BC=1 -- включено.
21: ADD HL,BC при HL=FFFF,BC=1 -- выключено. видимо, для ADD HL,BC в memptr попадает результат операции.
22-23: аналогично для ADC, результат тот же.
24-25: аналогично для SBC, тот же результат! ого, откуда взяться нулям в 3 и 5 битах после вычитания 1 из FFFF?
26 -- rld для HL=FFFE, биты включены
27 -- rld для HL=FFFF, выключены
28, 29 -- то же для rrd
30,31,32: JP, JR, CALL C3XX -- выключено, но это мало о чем не говорит, так как адрес я выбрал дурацкий -__-
33,34: JP z,FFFF и CALL Z,FFFF при сброшенном Z. включено. и впрямь для JP и CALL memptr меняется, даже если условие не выполнено.
35,36: in A,(F0) и in A,(FF) при A=0. выключено.
37: in A,(C) при BC=FFF0. включено.
38: in A,(C) при BC=FFFF. выключено. похоже, что memptr=bc+1 как в *
39-40: OUT (FF),A при A=FE и A=FF. выключено.
41: OUT (C),A при BC=FFF0. включено
42: OUT (C),A при BC=FFFF. выключено. ситуация, аналогичная in A,(C)
43-62: ldi,ldd,ldir,lddr,cpi,cpd,cpir,cpdr в нескольких вариантах. пусто.
63-70: ini,ind -- пусто.
71-78: outi,outd -- пусто.
79-86: inir,indr -- пусто.
87-94: otir,otdr -- пусто.
95: IM2, EI, HALT при I=FC -- установлен __только__ 5 бит!
96: чушь, хотел проверить JP IX, но забыл сделать JP %)
97: inc (hl) -- пусто
98: rlc (ix+1) при ix=FFFE. установлено.
99,100: RLC (HL) для HL=40xx и FFFF. пусто.
-------------------
вывод: то что написано в *, не то наполовину лажа, не то проверялось на другом кристалле. у янга не написано практически ничего, но что есть, совпадает...
вообщем, никто ничего не знает. чтобы разобраться, надо гонять МНОГО тестов, на реале, желательно на нескольких реалах О__о
Последний раз редактировалось boo_boo; 25.02.2006 в 05:24.
Ну что же никак не равеется этот миф о наличие у населения РАЗНЫХ кристаллов. Может быть (да и то, глубого гепотетически) и был какой-то другой кристалл, но никаких документальных подтверждений тому не было, и в спектрумах такого кристалла замечено не было тоже!Сообщение от boo_boo
на самом деле "разный" кристалл можно было запросто получить после пробоя его паяльником с плохим заземлением. Это же запросто: все (почти) работает, но иногда ведет себя странно. Раз работает, люди считают, что он "такой же". А глюки относятся на недосып или случайность.
Кроме того, однозначно известоно, что кристалл выпускался разными производителями, а не только самим Zilog'ом. Они что же, получали полную техническую документацию? Почему же тогда одни кристаллы могут только на 3.5-4МГц работать, другие на 12МГц, а иные гонятся аж до 20МГц. И все они - идентичны? Что-то сомневаюсь.
А еще, чтобы понять, как эти тесты коррелируют с zexall, надо на том же компе (у Wlodek'а) прогнать сам zexall. Если он согдасится, конечно, ждать 11 часов (с турбой можно быстрее, если есть, но все равно 6,5 часов, и все это время регулярно подходить, и списывать с экрана результаты, и нажимать Enter, когда пора скролл делать). Вот я сделал в виде TRD, если удобнее так на реал загонять. (Миль пардон, я перекомпилировал с некоторыми исправлениями в своем ZXAsm, но надеюсь все совпадает: по крайней мере результаты прогона эмуляторах вроде бы те же, что и .z80).
Первый раз получился тест, который на пентагоне доходит до первого запроса на скролл и на нач то больше не реагирует. Я добавил EI в двух местах, перед вызовом 10h (pr-char), и еще раз прогнал весь тест. Должно пойти на реале. Очень хочется увидеть результаты живого прогона... Кто-нибудь, АУ! Wladek! особенно у тебя.
а смысл прогонять ВСЕ тесты? я, когда отлаживал us, запускал выборочно. самый длинный тест - это арифметико-логические команды с аккумулятором, он сложностей не вызывает ни у одного эмулятора. думаю, тест bit n,(hl) займёт несколько минут на реале
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)