Глаза боятся, а руки делают. Психанул (в хорошем смысле) и за 1.5-2 часа переделал на 8080. Теперь на векторе безо всяких оговорок есть пример трассировки лучей. Рисует очень долго, примерно 12 минут 16 секунд.
Upd 26.11.2023: v2
1. Добавил подсчет и показ числа прерываний (в HEX), потраченных на расчет и рисование. Чтобы перевести во время преобразуем в десятичные и делим на 50.08
2. Оптимизировал.
v1: 8F8Fhex -> 733.85 секунды
v2: 7DFDhex -> 644.03 секунды
v2FastAddSub: 798Fhex -> 621.39 секунды
Версия FastAddSub дает чуть отличающуюся картинку, но она и на z80 дает отличающуюся картинку. Можно кстати глянуть здесь, там 3 варианта и во всех этот элемент рисует чуть по разному.
Upd 29.11.2023: v3
Не стал разбираться, в чем особенности FastAddSub и сделал свои варианты сложения и вычитания с таблицами. Получилось быстрее и с полным совпадением по точности с нетабличными. Также ускорил умножение и некоторые другие вещи.
v3: 6303hex -> 505.25 секунды (8 минут 25.25 секунды)
Выложил исходник v1 (для TASM 3.2)
Upd 03.12.2023:
v4 (8080) - 6164hex -> 497.84 секунды (8 минут 17.84 секунды)
v4 (8085) - 5462hex -> 431.35 секунды (7 минут 11.35 секунды)




Ответить с цитированием