-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathhrum35_02.txt
55 lines (35 loc) · 1.17 KB
/
hrum35_02.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
> Упакованные блоки имеют заголовок:
>
>+0 5 последних байт блока.
>+5 дв байта #10,#10
>+7 два байта начала битового потока.
>+9 первый байт блока.
>+10 сами упакованные данные.
%1<byte>, копировать byte в выход.
%000abc, длина 1 байт, смещение FFF8+[abc].
%001<byte>, длина 2 байта, смещение FF00+<byte>
%010<byte>, длина 3 байта, смещение FF00+<byte>
Большая длина:
%01100<len> - длина len байт, len>=1
%01101 - длина 4
%01110 - длина 5
%0111100 - длина 6
%0111101 - длина 7
%0111110 - длина 8
%011111100 - длина 9
%011111101 - длина 10
%011111110 - длина 11
%01111111100 - длина 12
%01111111101 - длина 13
%01111111110 - длина 14
%01111111111 - длина 15
Смещение:
%0<byte>, смешение FF00+<byte>
%1abcd<byte>, смещение (F0+[abcd])*256+<byte>
%01100<00> - остановка распаковки.
Краткая классификация ссылок:
1. Копирование, 1 байт.
2. длина 1 байт, смещения $FFF8..$FFFF (-1..-8)
3. длина 2 байта, смещения $FF00..$FFFF (-1..-256)
4. длина 3-255 байт, смещение $F000..$FFFF (-1..-4096)
примечание: кодирование длины=3, смещения F000..FEFF - через %01100<byte>, <byte>=3, выгоднее на 1 бит, чем копирование 3 байт.