Из газеты Psychoz #11, Челябинск, 2002 Dithering 2*2=16 ;) (c) Dark^X-Trade 1. Для вывода одной строки: POP HL ; hl = tttcccc0 tttcccc0 ==> 8k table LD A,(HL) ; (hl)= dddd0000 POP HL INC L OR (HL) ; (hl)= 0000dddd LD (DE),A INC E Итого: 49 тактов = 12.25т/0.5п =24.5т/п Hа полный экран (12288 байт) т.о. уйдет 301056 тактов = 4.2 фрейма :( Так что актуален интерлейсинг - в первом кадре рисуются четныестроки, во втором нечетные. Это не только вдвое сократит время дитеринга, но еще и организует подобие motion blur'а:) Естественно, это надо делать на одном экране, иначе будет каша. 2. Для вывода двух строк: Как всегда рисуем меандром (змейкой). POP HL; tt0cccc0 tt0cccc0 ==> 16k table LD C,(HL); llll0000 нижняя строка INC L LD A,(HL); hhhh0000 верхняя строка POP HL SET 5,L OR (HL); 0000hhhh LD (DE),A INC D INC L LD A,C OR (HL); 0000llll LD (DE),A INC E ;90 POP HL LD A,(HL); llll0000 INC L LD C,(HL); hhhh0000 POP HL SET 5,L INC L OR (HL); 0000llll LD (DE),A DEC D DEC L LD A,C OR (HL); 0000hhhh LD (DE),A INC E ;94 ;90+94=184 на 8 полных пикселей = 23 т/п Т.о. вырвали еще 1.5 т/п Ура! Теперь вывод всего экрана занимает 282624такта. Note: Hе следует забывать, что паттерн имеет размер 4*4, посему для случая (1) надо на каждую строку менять таблицу (4 варианта). Для случая (2) надо на каждую пару строк менять таблицу (2варианта).