И нафиг не надо ни в коем случае. Получается примерно 67 тактов + 384 байта занято фигнёй.
Проще вот так
Скрытый текст
Код:;на входе H - y в пикселях, L - x в знакоместах ld a,H ;4 rla ;4 rla ;4 and %11100000 ;7 or L ;4 ld L,a ;4 ld a,H ;4 and %00000111 ;7 ld b,a ;4 Портится регистр B ld a,H ;4 rra ;4 rra ;4 rra ;4 and %00011000 ;7 ;0101100 для #4000 ;1101100 для #с000 or b ;4 ld H,a ;4 = 66 на вычисление одного адреса ;на выходе в HL адрес[свернуть]
Но это для случая вывода спрайта с точностью до пикселя по вертикали
минус - Портится регистр B(или c,d,e)
В книжке - вариант для познакоместного вывода. Если убрать все проверки, получится
Скрытый текст
Код:[CALL 3742] ld d,a ;4 rrca ;4 rrca ;4 rrca ;4 and %11100000 ;7 ld l,a ;4 ld a,d ;4 and %00011000 ;7 or %01000000 ;7 ld h,a ;4 = 49 ... ADD A,C ;4 ...проверка выхода ADD A,L ;4 LD L,A ;4 = 61[свернуть]
61 такт.
Плюсы: быстрее
Минусы: познакоместно, вызывается для каждого знакоместа в спрайте, хотя для попиксельного вывода будет вызываться кусок, выполняющий сдвиг адреса вниз для каждой байтовой линии в спрайте. Так что тут хз.
Единственное, что приходит в голову, подумать над форматом хранения спрайтов, но надо ли, ведь не супер-демо пишется
- - - Добавлено - - -
Не согласен, эта книжка у меня была когда-то, всё нормально понималось вроде, как для того, кто вощбе не знал маш.коды. Но может у меня такое мнение потому, что других книг по спеку не было, и сравнивать не с чем. Была ещё такая же "на бейсике" и zx-ревю 1993 (1-12), но эта не в счёт(кстати всё ещё в бумаге вон валяется страшная, как война).
Можешь ссылку дать? А-то я тоже всякий колхоз придумываю, а с нормальными способами не знаком.





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