ZX-Ревю 1996 №4-5 1996 г.

Этюды - компрессор символьной информации.


© М. Тамаринов, г. Соликамск.

Хочу предложить вашему вниманию две процедуры. Первая - компрессор символьной информации. Он был написан мной специально для компрессии игрового поля. Его достоинства:

1. Не важно сколько раз повторяется байт.

2. Компрессия на выходе будет либо меньше, чем нескомпрессированные данные (если есть что сжимать), либо равна (если сжимать нечего), но никак не больше.

Его недостатки:

1. В данных для компрессии не должны встречаться байты #FE и #FF (254, 255). Поэтому компрессор годен для сжатия символьной информации. Компрессор:

SMARTCOMP

LOOP

PASS

FORM

END

SINGLE FILL

OVFLOW

LD

IX,(BUFF)

LD

HL,(DEST)

LD

D,1

LD

A, (IX)

CP

#FF

JR

Z, END

CP

(IX+1)

JR

NZ,FORM

LD

A,0

CP

#FF

JR

NC,OVELOW

INC

D

INC

IX

JR

LOOP

LD

A, D

CP

3

JR

C,SINGLE

LD

(HL),#FE

INC

HL

LD

(HL),D

INC

HL

LD

A, (IX)

LD

(HL),A

INC

HL

LD

D,0

JR

PASS

LD

A, (IX)

LD

(HL),A

INC

HL

DEC

D

JR

NZ, FULL

JR

PASS

LD

(HL),#FE

INC

HL

LD

(HL),D

INC

HL

LD

A, (IX)

LD

(HL),A

INC

HL

INC

IX

LD

D,0

JR

LOOP

LD

(HL),#FF

LD

B, H

LD

C, L

RET

BUFF - адрес, с которого начинаются данные для компрессора. DEST - адрес, куда нужно поместить сжатые данные. Декомпрессор:

LD IX,(DEST)




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Зазеркалье - Эти сексуальные пришельцы.
Inferno - Об оболочке.
От редакции - история рождения газеты.
Графика - GFX глазами художника.
Visitors - список гостей первого Ижевского демопати ASCII 2001.

В этот день...   21 ноября