1(config file for best .exe and .dll compression
2derived from max.cfg with E8E9 preprocessor)
3
4comp 5 9 0 3 22 (hh hm ph pm n)
5  0 const 160
6  1 icm 5  (orders 0-6)
7  2 isse 13 1 (sizebits j)
8  3 isse 16 2
9  4 isse 18 3
10  5 isse 19 4
11  6 isse 20 5
12  7 isse 20 6
13  8 match 22 24
14  9 icm 17 (order 0 word)
15  10 isse 19 9 (order 1 word)
16  11 icm 10 (sparse with gaps 1-3)
17  12 icm 10
18  13 icm 10
19  14 icm 14 (pic)
20  15 mix 16 0 15 24 255 (mix orders 1 and 0)
21  16 mix 8 0 16 10 255 (including last mixer)
22  17 mix2 0 15 16 24 0
23  18 sse 8 17 32 255 (order 0)
24  19 mix2 8 17 18 16 255
25  20 sse 16 19 32 255 (order 1)
26  21 mix2 0 19 20 16 0
27hcomp
28  c++ *c=a b=c a=0 (save in rotating buffer)
29  d= 2 hash *d=a b-- (orders 1,2,3,4,5,7)
30  d++ hash *d=a b--
31  d++ hash *d=a b--
32  d++ hash *d=a b--
33  d++ hash *d=a b--
34  d++ hash b-- hash *d=a b--
35  d++ hash *d=a b-- (match, order 8)
36  d++ a=*c a&~ 32 (lowercase words)
37    a< 65 jt 14 a> 90 jt 10
38    d++ hashd d-- (added: update order 1 word hash)
39    *d<>a a+=*d a*= 20 *d=a jmp 9
40    a=*d a== 0 jt 3 (order 1 word)
41       d++ *d=a d--
42    *d=0 d++
43  d++ b=c b-- a=0 hash *d=a (sparse 2)
44  d++ b-- a=0 hash *d=a (sparse 3)
45  d++ b-- a=0 hash *d=a (sparse 4)
46  d++ a=b a-= 212 b=a a=0 hash
47    *d=a b<>a a-= 216 b<>a a=*b a&= 60 hashd (pic)
48  d++ a=*c a<<= 9 *d=a (mix)
49  d++
50  d++
51  d++ d++
52  d++ *d=a (sse)
53  halt
54pcomp exe_jo e ;
55  b=a
56  a=d a== 0 if
57    d=b d++ (block type + 1 saved in d)
58    c=0 r=a 0
59  elsel a=d a< 9 if
60    (read block size)
61    a=c a<<= 8 a+=b c=a
62    d++ d++
63  elsel a=d a== 9 if
64    (default block)
65    a=b out
66    c-- a=c a== 0 if d=0 endif
67  elsel
68    (exe block)
69    a=d a< 14 if
70      a=r 0 a<<= 8 a+=b r=a 0
71      d++
72    elsel
73      a=d a== 14 if a=c r=a 1 a= 6 r=a 2 endif
74      a=d a< 19 if
75        a= 18 a-=d c=a *c=b (fill queue)
76      elsel
77        a=b r=a 3
78        a= 5 do c=a a-- b=a *c=*b a> 0 while
79        c=0 a=r 3 *c=a
80
81        b=0
82        c=0 a=*c a== 255 if b++ endif a== 0 if b++ endif (c[0]==0x00 || c[0]==0xFF)
83        c= 4 a=*c a== 232 if b++ endif a== 233 if b++ endif (c[4]==0xE8 || c[4]==0xE9)
84        c= 5 a=*c a== 15 if c= 4 a=*c a&= 240 a== 128 if b++ endif endif (c[5]==0x0F && {c[4]&0xF0}==0x80)
85        a=b a== 2 if
86          ({{{offset-1}^{offset-6}}&-BLOCK}==0)
87          a= 1 a<<= 16 c=a a=0 a-=c c=a
88          a=r 2 a-= 6 b=a a=r 2 a-- a^=b a&=c
89          a== 0 if
90            ({{c[1]^176}|{c[2]^176}<<8|{c[3]^176}<<16|c[0]<<24}-offset-begin)
91            c=0 a=*c a<<= 24 b=a
92            c++ a=*c a^= 176 b<>a a|=b b=a
93            c++ a=*c a^= 176 a<<= 8 b<>a a|=b b=a
94            c++ a=*c a^= 176 a<<= 16 b<>a a|=b
95            b=r 2 a-=b b=r 0 a-=b
96
97            c= 3 *c=a
98            c-- a>>= 8 *c=a
99            c-- a>>= 8 *c=a
100            c-- a>>= 8 a&= 1 a*= 255 *c=a
101          endif
102        endif
103
104
105        c= 5 a=*c out
106        a=r 2 a++ r=a 2
107      endif
108      d++
109      a=r 1 a-- r=a 1 a== 0 if
110        c= 4 a=*c out
111        c-- a=*c out c-- a=*c out
112        c-- a=*c out c-- a=*c out
113        d=0
114      endif
115    endif
116  endif endif endif
117  halt
118end