Цитата(XVR @ Jan 12 2011, 16:45)

Пардон, я думал, что вы реализовали алгоритм от ReAl (он сюда подходит гораздо лучше)
Я на ACEX1K30..1K50 когда-то давно сверял, c битовой картой © Ivan Mak вроде бы чуть лучше работал.
А я просто по быстрячку
Macintosh PackBits модифицировал под случай, когда массово повторяться может только 0, поэтому его нет смысла и писать в выходной поток.
Цитата(StanislavF @ Jan 12 2011, 11:26)

Как тогда быть? Что использовать вместо pgm_read_byte_far?
У Вас в массиве во флеше записаны знаковые байты. Значит, нужно возврат pgm_read_byte_far приводить к знаковому байту.
Код
int8_t counter;
counter = (int8_t)pgm_read_byte_far( ptr );
Я пользовался не знаковым числом, а флагом в старшем бите беззнакового 8-битного числа.