если использовать 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
там два 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 байта таблица
Как правильно организовать кольцевой счетчик на 6 (цветов)?
естьhttp://savepic.org/5257679.gifнадоhttp://savepic.org/5252559.gif
Только надо "ровный", без условных переходов, ибо бордюр, а у мну только на 8 получился, и то криво((
В шесть регистров надо 6 чисел записывать. Можно конечно в памяти сделать 6 ячеек и LDIR-ом их сдвигать по кругу, но тогда я не придумаю как задержку регулировать а5 же ровно.
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.