чё-нить в стиле
:)Код:ld hl,addr1-1
ld e,a
ld d,0
add hl,de
ld de,addr2
ldd
inc de
inc de
ldd
inc de
inc de
...
Вид для печати
чё-нить в стиле
:)Код:ld hl,addr1-1
ld e,a
ld d,0
add hl,de
ld de,addr2
ldd
inc de
inc de
ldd
inc de
inc de
...
это же ересь
Код:ld b,a
ld a,(hl)
ld (de),a
inc hl
dec de
djnz $-4
---------- Post added at 00:49 ---------- Previous post was at 00:48 ----------
кстати по слогам не пробовал паковать?
Паковать надо хаффманом. ZXRar позволяет.
Вот так у меня сейчас сделано.
Да плохо эти методы жмут словарь, они для обычных текстов подходят, а тут все слова разные. Буквосочетания тоже смотрел, плохая статистика для сжатия. Поэтому я выбрал алгоритм, который фиксирует только изменившиеся буквы от предыдущего слова. Теперь сделал, как ты предложил, слова задом наперед кодировать, так еще больше жмется.
Здесь в этюде я спрашиваю про распаковку уже, слово-то распаковал из последовательности битов, а теперь надо в прямой вид привести.
---------- Post added at 10:08 ---------- Previous post was at 09:45 ----------
Вот хорошая статья по сжатию словаря: http://compression.ru/download/artic...wien_task.html
---------- Post added at 10:17 ---------- Previous post was at 10:08 ----------
Еще: http://compression.graphicon.ru/sh/2003-10-24.htm
Распаковка - 10 килобайт в секунду. А сколько у тебя сейчас?
Памяти нужно 200 байт под код, 100 байт под дерево.
a - уже установлено
ld hl,addr1
ld de,addr2
cpm
add a,8
add a,a
add a,a
ld (__jmp+1),a
jmp jr 0
dup 8
ld a,(hl)
ld (de),a
inc hl
dec de
edup
ret
По одному байту. Байты друг от друга не зависят. Единственный контекст, который надо помнить - текущий адрес и текущий сдвинутый байт.
Хаффман тоже без границ байтов. Разница только в том, что там длина символа плавающая. Чем символ чаще, тем он короче.
В ZX-Guide вообще была фреймовая листалка с текстом по Хаффману. В самом длинном тексте было 140К (на 128К машине).