Доделанная и неглючная.
Нет никакого смысла блюсти совместимость со всякими Z180.
Спектрум - это не Z80 или Z180, это совокупность миллиона нюансов, и в том числе SLI.
Вид для печати
Какой смысл её юзать в z80? Вообще все "недок" команды? Я этого никогда не понимал и видимо не пойму уже. Ну делает этот код некое действие и что? Ладно бы, если бы оно было реально полезное. А так.. Ну зачем команда SLI? или SLL? Ускорение по тактам? В чем? Где? Доказательства в студию (примеры)
Из scf: sla a получаем sli a. Выгоду по байтам и тактам посчитать легко.
Да нет, это понятно, там выгода 4 такта, если у нас 100% флаг C не был установлен. Но много ли найдётся случаев, когда это нужно? Ну не надо делать SCF и что? Это ерунда на самом деле. А вот если бы по этим 8-и кодам были бы команды умножения, то вот это было бы большим плюсом. Вот я к чему. Смысл юзать команды, от которых или нет вообще выгоды или она мизерна?
Многие зачастую путают два понятия.
1. Сохранение совместимости с парком софта и принятые когда-то ТРАДИЦИИ. Это поддержка и сохранность прошлого. Т.е., скажем картинная галерея сохраняет традиции и наследие художников, когда-то существоваших.
2. Выработка правил хорошего тона, оптимального программирования для БУДУЩЕГО. Переводя опять же на художников - берем лучшее из техники прошлого, оптимизируем, добавляем современное и новое и делаем что-то сейчас, а так же учим этим навыкам тех, кто будет творить в будущем.
Так вот - Спектрум и его софт - это на 99.999% пункт 1.
Я это понимаю, но не понимаю всё же тех, кто использовал некоторые особенности чего-то без веской на то причины. Вот я о чём.
---------- Post added at 01:11 ---------- Previous post was at 01:08 ----------
Как например тех же товарисчей которые писали дисковые процедуры к ZX-Format. Увы, это пример *****кода. С дисковода B: их журнал не работает. В номере 2, сверяют 2x512 байт ПЗУ TR-DOS на абсолютное соответствие с ПЗУ 5.04Т - зачем? Да не зачем. Говнокод сделанный любительским способом не зная как вообще надо. И этого надо придерживаться? Чушь и бред!
Причины:
1. Интересно применить
2. Удобно в каком-то алгоритме
3. Для защиты (что наиболее логично)
---------- Post added at 23:17 ---------- Previous post was at 23:13 ----------
То, что не работает с диска B - это не айс.
То, что сравнивается с 5.04T - это неправда, т.к. у меня на 5.03 и 7.00 все работает.
И это не чушь и бред - это попытка защитить свой журнал теми досупными средствами и знаниями, которыми они располагали.
На самом деле это назывется деццтво. (у меня было аналогично)
насчёт этого как раз я и спросил привести пример, т.к. у меня в практике программирования такого не было вообще. А если и надо было сделать сдвиг влево с одновременным задвижением 1 в мл. разряд, то я это делал стандартными командами без ущерба производительности. (ну не было такого случая когда оно лежит в цикле для вывода графики)
А вот этот момент наиболее ожидаем и логичен. Я занимаясь, спектрумом имея скудные описания z80 ещё в 1992 г. в отладчиках перепробовал все "недок" команды. Расписал для себя, что же они делают. Не имея вразумительных данных вообще о микропроцессорных системах, только изучая их. И за чем же тогда, такие команды применять? Если начинающий смог в них разобраться? Какая защита? О чём ты? Смешно. Ну отладчик или дизасм (коих на спектруме отродяся не было) не сможет эту команду адекватно отразить, но мы то знаем уже. Или это защита от дебилла?
Идеальная защита - это квинтэессенция целого комплекса неизвестных, малоизвестных или сложнорешаемых задач. Поэтому совершенно логично, что желая защитить программу, программист будет делать упор в том числе на недокументированные команды, тем самым уменьшая число людей потенциально могущих взломать защиту.