Невероятно, но - факт! Провел подряд несколько тестов и все ОК!
Дема называется Blava demo. При переходе к части 3 практически всегда сбрасывалась. 1-го такта не хватало!
Невероятно, но - факт! Провел подряд несколько тестов и все ОК!
Дема называется Blava demo. При переходе к части 3 практически всегда сбрасывалась. 1-го такта не хватало!
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
может, его еще из-за чего-то не хватало? очень странно -- в официальном мануале говорится, что при запросе вектора прерывания добавляется 2 wait-a (что отражено на диаграмме), в z80undocumented прямо сказано, что IM0 с RST -- 13 тактов... при этом согласно доке с расписанными циклами, для CALL -- 2 wait'a, а для RST, выходит, 1? CPU ж не знает, что к нему придет, откуда такая дискриминация? ИМХО больше похоже на опечатку в документе с расписанными циклами, иначе вообще непонятно, что к чему O__oСообщение от Vladimir Kladov
кстати, у меня в z80ex -- 13 тактов на im0-rst, и blava работает стабильно (в zemu)...
насчет temporary index register -- занятно.. похоже, кто-то что-то знает, но молчит![]()
кстати, вот еще любопытная дока: http://www.funet.fi/pub/msx/mirrors/...s/z80prg02.htm
там упоминаются некие внутренние регистры w и z, используемые для работы с 16-битными значениями (тк шина данных 8-и битная)
Последний раз редактировалось boo_boo; 19.03.2006 в 01:19.
надеюсь выглядеть будет разборчиво, вставляю:Сообщение от boo_boo
INTERRUPTS
----------
NMI _ OCF(5)* SWH(3) SWL(3) *Op Code Ignored
SP-1 ---> SP-1 --->
MODE 0 - INTA(6) ODL(3) ODH(4) SWH(3) SWL(3)
(CALL INSERTED) SP-1 ---> SP-1 --->
- INTA(6) SWH(3) SWL(3)
(RST INSERTED)
SP-1 ---> SP-1 --->
MODE 1 INTA(7) SWH(3) SWL(3)
(RST 38H
INTERNAL)
SP-1 ---> SP-1 --->
MODE 2 - INTA(7) SWH(3) SWL(3) MRL(3) MRH(3)
(VECTOR
SUPPLIED)
SP-1 ---> SP-1 --->
В Пентагоне - нет проблем. Там ведь нет тормозов в памяти, тактов в кадре хватает с большим избытком. Но она сделана для фирменного 128-го, а там есть contented memory. Вот такой вопрос: с чего начинается работа этой демы после "якобы загрузки"? Т.е. надпись Press Any Key просто мигает на черном фоне и все? А должно мигать - на фоне мультиколорного располосования всего экрана, типа как в overscan.кстати, у меня в z80ex -- 13 тактов на im0-rst, и blava работает стабильно (в zemu)...
Может и они. Sharp - вот кто знает, но молчит.насчет temporary index register -- занятно.. похоже, кто-то что-то знает, но молчит![]()
кстати, вот еще любопытная дока: http://www.funet.fi/pub/msx/mirrors/...s/z80prg02.htm
там упоминаются некие внутренние регистры w и z, используемые для работы с 16-битными значениями (тк шина данных 8-и битная)
С чего вы взяли? Я, например, уверен, что они производили по готовому шаблону, не вдаваясь в детали, и, тем более не разводя схему заново.Сообщение от Vladimir Kladov
а в RS эта дема идёт? там по тактам im0 и im1 не различаются, кроме возможных тормозов за счёт contented портов
Мне тут попалась страничка: Sharp сделал z80 на стеклянной пластине. Вроде как скорость движения электронов в такой пластине в 600 раз больше чем в обычном полупроводнике. Инфа за 2002 год. Может и утка. Думаю, чтобы сделать такое, простопо шаблону вряд ли достаточно работать.
В RS не помню, а в Spectaculator'е точно сбрасывалась. И в Spin'е. Щас RS гляну. Так, в RS вообще не пашет, уже после первого скрина на второй с замком не выходит. (Считая скрин Press Any Key нулевым). То ли не может ленту догрузить, то ли еще. А кто сказал, что RS - самый точный? 8-]
честно говоря, фирменному руководству + куче других руководств доверия больше, чем перепечатке из какой-то книги... однако, и весь мир может ошибаться..
MODE 0 - INTA(6) ODL(3) ODH(4) SWH(3) SWL(3)
(CALL INSERTED) SP-1 ---> SP-1 --->
- INTA(6) SWH(3) SWL(3)
(RST INSERTED)
это намек на то, что M1-цикл при IM0 сжирает 6 тактов для любой инструкции? то есть 4 не считая wait'ов? странно...
ИМХО стоит на реале проверить...
Почему для любой. В Спектруме возможна только инструкция RST38. Эта область за экраном всегда, на шине всегда FF. Т.е. для нас - для любой инструкции RST38.
я имею в виду -- в этой доке при IM0 цикл M1 одинаковой длины для RST и для CALL, почему? крайне это подозрительно и похоже на опечатку. то есть, всякое бывает, но ИМХО то, что какая-то демка заработала, еще ничего не доказывает, проверять надо на реале.Сообщение от Vladimir Kladov
Vladimir Kladov, похоже, мы раздули из мухи слона![]()
поглядел я на результаты моего последнего теста от Wlodek'a...
сдается мне, с CP* все просто, как апельсин! а именно:
CPD: memptr=memptr-1
CPI: memptr=memptr+1
CPIR: memptr=адрес_инструкции+2 или как CPI если BC=1 или A=(HL)
или, возможно, нечто типа memptr=(адрес_инструкции+1)+(кол ичество_изменений_PC)
CPDR: memptr=адрес_инструкции или как CPD если BC=1 или A=(HL)
очень похоже!!!! только CPIR надо проверить (при адресах типа F7FD, F7FC, F7F1 и разных BC)
а такие странные результаты для пар были оттого, что 1) первая команда пары тоже меняет BC 2) в предыдущих тестах при "сброшенном" memptr он был на самом деле 0x0001![]()
Последний раз редактировалось boo_boo; 20.03.2006 в 23:13.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)