так всетаки, есть у кого-то еще реальный пентагон?
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Собсна,все отличие в добавлении 10-тактовой jp $ + 3 в обработчик прерывания. Причина видится мне в том, что в обработчике используются нечетнотактовые pop hl и or 4. Похоже, jp $ + 3 это компенисрует. Сделано методом тыка и отлажено в Unreal.
Код:ld (exit_addr),hl ld bc,#06ff .return: xor a ld hl,.loop ei .loop: dec a jp (hl) .isr: pop hl ld e,(hl) rl e rla ld e,d ld d,a sub e sub c sbc a,a or 4 dec b and b jp $ + 3 ; 10 for even M1 machines jr nz,.return inc hl ; 6 exit_addr = $ + 1 jp #0000 ; 10
Посмотрел схему Пентагона. Процессор имеет приоритет над видео-контроллером. Как только активен MREQ и на шине адреса - оперативка, в следующем такте происходит чтение памяти процессором. Все остальное время каждый такт происходит по очереди чтение атрибутов или пикселей. Так как они считываются асинхронно с границей знакоместа, то сначала они помещаются в буферные регистры, а на границе знакоместа переносятся в регистры вывода, а оттуда попиксельно выталкиваются на экран.
Исходя из выше-сказанного, мерцание пикселей в тесте легко объясняется. Судя по всему за один кадр видео-контроллер успевает считать нечетное количество байт (атрибуты + пиксели). Поэтому, в одном кадре непосредственно после записи #FF в верхний левый угол экрана считываются пиксели (полоска есть), а в другом - считываются атрибуты, а пиксели уже считались до записи (полоски нет).
RAT - чтение атрибутов, RPX - чтение пикселей, WRT - запись CPUКод:Tackts: 17983 | 17984 | 17985 Frame 0: RAT=32 | WRT=FF | RPX=FF (полоска есть) Frame 1: RPX=00 | WRT=FF | RAT=32 (полоски нет)
---------- Post added at 13:04 ---------- Previous post was at 12:52 ----------
Получается, что на текущий момент ни один из эмуляторов точно не воспроизводит времянку Пентагона.
Забавно, всегда считал, что эмулировать Пентагон проще всего. Оказалось, наоборот.
Последний раз редактировалось Lion17; 01.05.2013 в 13:21.
И было бы неплохо, что бы были версии этих тестов для прошивки в ПЗУ
Скрытый текст
Profi 6.2 Rev.B / 1024
Profi v5.02 /1024/палитра/FDD3,5"/FDD5,25"/HDD130/XT-Keyb/Covox
Profi v4.00 /1024
АТМ Turbo /512/ - собран но еще не запускался
ATM Turbo 2+ v7.10 - собран на 80%
Pentagon 128 - в планах восстановить (раскуроченная плата)
ZXMC20/NemoIDE/AT-Keyb (by Caro)
Revers U8EP3C
Speccy2010, r2
[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)