С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А то ещё можно сделать такой инкремент одной командой ld l,(hl)![]()
А у меня счётчик в L, а не в аккумуляторе![]()
А у меня совсем нет счетчика, во дела))
раньше не сталкивался, но пригодилась и такая процедура:
расчет адреса экрана по координатам знакомест
оттудаКод:; Get screen address ; D = Y character position ; E = X character position ; Returns address in DE ; Get_Char_Address: LD A,D AND %00000111 RRA RRA RRA RRA OR E LD E,A LD A,D AND %00011000 OR %01000000 LD D,A RET ; Returns screen address in DE
Помогите с оптимизацией построения вертикальной линии. То, что я надумал не устраивает по скорости
Дело в том, что на входе желательно только иметь адрес и кол-во точек, и до начала построения основного экрана строится линия примерно из 350 точек, хочется выйти на 700
Код:/// вход hl,adr, b - длина, а - сколько попадает на первое знакоместо (128-1 точка, 64-2точки ... 1-8точек) line ld hl,16384 ;начало линии ld b,85 ld a,1 /// sc0 set 2,(hl) ;рисуем в одном знакоместе inc h ; rlca ; jr c,sc1 ; djnz sc0 ; ret sc1 ex af,af ;переходим на знакоместо ниже ld a,l add a,32 ld l,a jr c,sc3 ld a,h sub 8 ld h,a sc3 ex af,af djnz sc0 ret
Последний раз редактировалось GM BIT; 31.03.2014 в 11:50.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)