вообще все эти трюки для неиспользования переходов полезны на х86, а на z80 каждый такт на вес золота )
вообще все эти трюки для неиспользования переходов полезны на х86, а на z80 каждый такт на вес золота )
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну да, это крайности. В прямом смысле слова.
Последний раз редактировалось 0xDEAD; 30.01.2022 в 13:00.
Схожий трюк можно проделать, если нужно сбросить/установить нулевой бит в аккуме или (HL), но перед этим проверить его.
Наиболее очевидны команды BIT 0,x: RES 0,x - но скроллы сэкономят байт: RRCA и следом SLA A/SLI A, для (HL) аналогично.
Ну и затем проверяем флаг переноса, а не нуля.
Очень странный и показательный ( в прямом смысле) тест инструкции CCF (ну или SCF)
По идее он проверяет установку\снятие 3 и 5 флагов, если не путаю.Код:.loop push hl pop af ccf push af pop bc ld a,l xor c ld (hl),a inc hl ld a,h and d ld h,a jp .loop
Вот только КАК он это делает - я плохо понимаю.
И да, это не для эмулей, они такое не могут эмулить. А вот на некоторых реальных процессорах красиво получается
https://drive.google.com/file/d/1lxI...ew?usp=sharing
Этого "мусора", в виде шевелящихся черных\белых точек - в эмулях не бывает.
Последний раз редактировалось zebest; 30.01.2022 в 16:09.
Profi v3.2 -=- Speccy2010,r2
Он ничего не проверяет, он строит регулярную картинку по заданному алгоритму, берет младший байт текущего адреса, ксорит с регистром F после CCF, и выводит на экран.
Это не весь тест, а его фрагмент, так как неизвестно содержимое регистров D и HL. Похоже, в HL выставлен #4000, а в D маска, не дающая HL выйти за пределы 4кб области, типа $EF.
Если содержимое F после CCF нестабильно, на регулярной картинке будут мерцающие точки.
Эмули могут всё сэмулить, была бы в этом необходимость. Раз на Zilog такого нет, я этим заниматься не буду)
Если это и глюки - то довольно интересные)))))
У меня 3 (три!) штуки профика и десяток процессоров Z80. От платы эти глюки не зависят, а онли от производителя процессора) На Зилогах такого нет, на ST, Sharp, Т34 и пр. - как с добрым утромПодделки? не думаю (с)
)))))
Просто это особенности работы флагов CCF\SCF, которые нафик никомуу не нужны, но все же эти особенности есть)
(Ну или проектировщики профиков совсем л.)
Вот ST-шка
https://drive.google.com/file/d/1N1h...ew?usp=sharing
во первых другой паттерн, ну и точки белые, в правом квадрате побольше, слева - поменьще, но они есть.
И это не артефакты экрана . Это уже в памИтИ так![]()
Последний раз редактировалось zebest; 30.01.2022 в 18:06.
Profi v3.2 -=- Speccy2010,r2
Кстати, тут на форуме человек давно предполагал подобное поведение флагов 3 и 5 после CCF/SCF, но на реальные тесты его не хватило) Однако, на Зайлогах такой нестабильности не оказалось, что радует (меньше возни писателям эмулей).
Новый тест Патрика проверяет разницу SCF\CCF у трех производителей, Zilog, ST, NEC. Мои процессоры (кроме Zilog и GS) ни в одну категорию не попадают. А именно NEC у меня и нет.
Profi v3.2 -=- Speccy2010,r2
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)