если использовать set'ы - 700*15=10 500т
+ inc h - 700*4=2800т
итого 12800, а есть около 18000 свободных
если использовать set'ы - 700*15=10 500т
+ inc h - 700*4=2800т
итого 12800, а есть около 18000 свободных
но это все медленноКод:/// вход hl,adr, b - длина line ld hl,16384 ;начало линии ld b,85 ld a,h and 7 sub 8 neg ld c,a /// sc0 set 2,(hl) ;рисуем в одном знакоместе inc h ; dec c ; jr z,sc1 ; djnz sc0 ; ret sc1 ;переходим на знакоместо ниже ld a,l add a,32 ld l,a jr c,sc3 ld a,h sub 8 ld h,a sc3 ld c,8 djnz sc0 ret
Код:быстро так на входе sp адрес таблицы адресов экрана b количество точек loop pop hl add hl,de set 2,(hl) djnz loop
С уважением,
Jerri / Red Triangle.
там два djnz, не могу додуматься. наверное и поможет
---------- Post added at 10:59 ---------- Previous post was at 10:58 ----------
нет у меня 16384 свободных
---------- Post added at 11:00 ---------- Previous post was at 10:59 ----------
это намного медленнее пред варианта
---------- Post added at 11:03 ---------- Previous post was at 11:00 ----------
Jerri за избавление от доп переменной спасибо
---------- Post added at 11:14 ---------- Previous post was at 11:03 ----------
как-бы развернуть цикл, чтоб осталось:
вначале set + inc h сколько надо
середина down_hl: dup 8: set: inc h: edup: down_hl
конец set + inc h сколько надо
было бы идеально
loop
dup 8
set 2,(hl)
inc h
edup
ld a,l
sub e;-32
ld l,a
sbc a,a
and d;-8
add a,h
ld h,a
djnz loop
А начало и конец дорисовывать отдельно.
GM BIT, там не 16384
там 192*2 байта таблица
С уважением,
Jerri / Red Triangle.
Как правильно организовать кольцевой счетчик на 6 (цветов)?
естьнадо
Только надо "ровный", без условных переходов, ибо бордюр, а у мну только на 8 получился, и то криво((
В шесть регистров надо 6 чисел записывать. Можно конечно в памяти сделать 6 ячеек и LDIR-ом их сдвигать по кругу, но тогда я не придумаю как задержку регулировать а5 же ровно.
Profi v3.2 -=- Speccy2010,r2
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
ld l,(hl)
Это вся процедура. Номер цвета в L. Старший байт адреса таблицы в H. Таблица содержит 1,2,3,4,5,0.
---------- Post added at 12:17 ---------- Previous post was at 12:13 ----------
Если надо использовать не цвета 0,1,2,3,4,5, а, например, цвета 2,6,4,5,1,3 (в таком порядке), то таблица будет начинаться с адреса #xx01 и содержать 3,6,2,5,1,4.
Последний раз редактировалось Shadow Maker; 05.04.2014 в 13:54. Причина: alone, это ж Этюды, пишите законченные рабочие процедуры с in-out, а не "умному достаточно".
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)