mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-31 13:25:58 -05:00
Compare commits
23 Commits
ImHex-v1.1
...
ImHex-v1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
575e4d5381 | ||
|
|
6b0fad199e | ||
|
|
ece86f1124 | ||
|
|
ce2b4d60ca | ||
|
|
7c88439681 | ||
|
|
8d3c94be8f | ||
|
|
0b15299980 | ||
|
|
eda13b2518 | ||
|
|
aa6c90fa5b | ||
|
|
65f2b7821b | ||
|
|
de752cdbc3 | ||
|
|
e574f8048e | ||
|
|
874855dc1c | ||
|
|
6f161f7c52 | ||
|
|
a6e5efbb7f | ||
|
|
72c92ce671 | ||
|
|
5cf0daca4b | ||
|
|
c41f7479aa | ||
|
|
660da67e3b | ||
|
|
9b564fe403 | ||
|
|
be0632fac2 | ||
|
|
3a4b3873d1 | ||
|
|
63468e543a |
8
.gitattributes
vendored
8
.gitattributes
vendored
@@ -1,10 +1,2 @@
|
||||
*.pat linguist-language=Rust
|
||||
*.hexpat linguist-language=Rust
|
||||
constants/* text eol=lf
|
||||
encodings/* text eol=lf
|
||||
includes/* text eol=lf
|
||||
magic/* text eol=lf
|
||||
patterns/* text eol=lf
|
||||
structs/* text eol=lf
|
||||
tips/* text eol=lf
|
||||
yara/* text eol=lf
|
||||
14
.github/workflows/tests.yml
vendored
14
.github/workflows/tests.yml
vendored
@@ -9,7 +9,7 @@ on:
|
||||
jobs:
|
||||
tests:
|
||||
name: 🧪 Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
@@ -19,7 +19,6 @@ jobs:
|
||||
- name: 🧰 Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: recursive
|
||||
|
||||
- name: ⬇️ Install dependencies
|
||||
@@ -27,14 +26,15 @@ jobs:
|
||||
sudo apt update
|
||||
sudo apt install -y \
|
||||
build-essential \
|
||||
gcc-11 \
|
||||
g++-11 \
|
||||
gcc-12 \
|
||||
g++-12 \
|
||||
lld \
|
||||
${PKGCONF:-} \
|
||||
cmake \
|
||||
make \
|
||||
python3 \
|
||||
python3-pip
|
||||
python3-pip \
|
||||
libmagic-dev
|
||||
|
||||
sudo pip install jsonschema
|
||||
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
cd tests
|
||||
mkdir -p build
|
||||
cd build
|
||||
CC=gcc-11 CXX=g++-11 cmake \
|
||||
CC=gcc-12 CXX=g++-12 cmake \
|
||||
-DCMAKE_C_FLAGS="-fuse-ld=lld" \
|
||||
-DCMAKE_CXX_FLAGS="-fuse-ld=lld" \
|
||||
-DLIBPL_ENABLE_TESTS=OFF \
|
||||
@@ -53,7 +53,7 @@ jobs:
|
||||
- name: 🧪 Perform Unit Tests
|
||||
run: |
|
||||
cd tests/build
|
||||
ctest
|
||||
ctest --output-on-failure
|
||||
- name: 📎 Validate JSON Files
|
||||
run: |
|
||||
cd constants
|
||||
|
||||
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -1,8 +1,4 @@
|
||||
[submodule "rules"]
|
||||
path = yara/official_rules
|
||||
url = https://github.com/Yara-Rules/rules
|
||||
branch = master
|
||||
[submodule "tests/lib/pl"]
|
||||
path = tests/lib/pl
|
||||
url = https://github.com/WerWolv/PatternLanguage
|
||||
branch = master
|
||||
branch = master
|
||||
30
README.md
30
README.md
@@ -32,12 +32,14 @@ Hex patterns, include patterns and magic files for the use with the ImHex Hex Ed
|
||||
| VDF | | `patterns/vdf.hexpat` | Binary Value Data Format (.vdf) files |
|
||||
| IP | | `patterns/ip.hexpat` | Ethernet II Frames (IP Packets) |
|
||||
| UF2 | | `patterns/uf2.hexpat` | [USB Flashing Format](https://github.com/microsoft/uf2) |
|
||||
| File System | | `patterns/fs.hexpat` | Drive File System |
|
||||
|
||||
### Scripts
|
||||
|
||||
| Name | Path | Description |
|
||||
|------|------|-------------|
|
||||
| svd2pat | `scripts/svd2pat.py` | Converts a ARM .svd register MMIO definition file into a pattern |
|
||||
| csv2tbl | `scripts/csv2tbl.py` | Converts a 010 editor CSV encoding file into a table file |
|
||||
|
||||
### Pattern Libraries
|
||||
|
||||
@@ -72,15 +74,37 @@ Hex patterns, include patterns and magic files for the use with the ImHex Hex Ed
|
||||
|
||||
| Name | Path | Description |
|
||||
|------|------|-------------|
|
||||
| ANSI | `encodings/ansi.tbl` | ANSI encoding |
|
||||
| Arabic ISO | `encodings/arabic_iso.tbl` | Arabic ISO encoding |
|
||||
| Arabic Windows | `encodings/arabic_windows.tbl` | Arabic Windows encoding |
|
||||
| ASCII | `encodings/ascii.tbl` | Regular ASCII encoding |
|
||||
| ASCII+ANSI | `encodings/ascii_ansi.tbl` | Extended ASCII encoding |
|
||||
| ASCII+OEM | `encodings/ascii_oem.tbl` | ASCII encoding with Windows OEM characters |
|
||||
| Baltic ISO | `encodings/baltic_iso.tbl` | Baltic ISO encoding |
|
||||
| Baltic Windows | `encodings/baltic_windows.tbl` | Baltic Windows encoding |
|
||||
| Cyrillic ISO | `encodings/cyrillic_iso.tbl` | Cyrillic ISO encoding |
|
||||
| Cyrillic Windows | `encodings/cyrillic_windows.tbl` | Cyrillic Windows encoding |
|
||||
| Cyrillic KOI8-R | `encodings/cyrillic_koi8_r.tbl` | Cyrillic KOI8-R encoding (Russian Characters) |
|
||||
| Cyrillic KOI8-U | `encodings/cyrillic_koi8_u.tbl` | Cyrillic KOI8-U encoding (Ukranian Characters) |
|
||||
| Eastern Europe ISO | `encodings/eastern_europe_iso.tbl` | Eastern Europe ISO encoding |
|
||||
| Eastern Europe Windows | `encodings/eastern_europe_windows.tbl` | Eastern Europe Windows encoding |
|
||||
| EBCDIC | `encodings/ebcdic.tbl` | Extended Binary Coded Decimal Interchange Code, developed by IBM for their Main Frames |
|
||||
| EUC-JP | `encodings/euc_jp.tbl` | EUC-JP encoding with NEC special and IBM extended characters |
|
||||
| Greek ISO | `encodings/greek_iso.tbl` | Greek ISO encoding |
|
||||
| Greek Windows | `encodings/greek_windows.tbl` | Greek Windows encoding |
|
||||
| Hebrew ISO | `encodings/hebrew_iso.tbl` | Hebrew ISO encoding |
|
||||
| Hebrew Windows | `encodings/hebrew_windows.tbl` | Hebrew Windows encoding |
|
||||
| ISO/IEC 646 | `encodings/iso_646.tbl` | ISO/IEC 646 encoding, an older version of ASCII |
|
||||
| ISO/IEC 6937 | `encodings/iso_6937.tbl` | ISO/IEC 6937 encoding, an extension of ASCII containing additional character |
|
||||
| Shift-JIS with half-width characters | `encodings/shiftjis_halfchars.tbl` | Shift-JIS encoding including half-width characters at 0xA1 - 0xDF |
|
||||
| Shift-JIS UTF-8 | `encodings/shiftjis.tbl` | Shift-JIS encoding in UTF-8 |
|
||||
| JIS 0201 | `encodings/jis_x_0201.tbl` | JIS X 0201 encoding in UTF-8 |
|
||||
| JIS X 0211 | `encodings/jis_x_0211.tbl` | JIS X 0211 encoding in UTF-8 |
|
||||
| JIS 0213 | `encodings/jis_x_0213.tbl` | JIS X 0213 encoding in UTF-8 |
|
||||
| Macintosh | `encodings/macintosh.tbl` | Macintosh character encoding used by the Kermit protocol |
|
||||
| Shift-JIS UTF-8 | `encodings/shiftjis.tbl` | Shift-JIS encoding in UTF-8 |
|
||||
| Thai | `encodings/thai.tbl` | Thai character encoding |
|
||||
| Turkish ISO | `encodings/turkish_iso.tbl` | Turkish ISO encoding |
|
||||
| Turkish Windows | `encodings/turkish_windows.tbl` | Turkish Windows encoding |
|
||||
| UTF-8 | `encodings/utf8.tbl` | UTF-8 encoding |
|
||||
| Vietnamese | `encodings/vietnamese.tbl` | Vietnamese character encoding |
|
||||
|
||||
## Contributing
|
||||
|
||||
|
||||
@@ -1,255 +0,0 @@
|
||||
*0D0A
|
||||
00
|
||||
01
|
||||
02
|
||||
03
|
||||
04
|
||||
05
|
||||
06
|
||||
07
|
||||
0B
|
||||
0C
|
||||
0E
|
||||
0F
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
1A
|
||||
1B
|
||||
1C
|
||||
1D
|
||||
1E
|
||||
1F
|
||||
7E
|
||||
7F
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
8A
|
||||
8B
|
||||
8C
|
||||
8D
|
||||
8E
|
||||
8F
|
||||
90
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
9A
|
||||
9B
|
||||
9C
|
||||
9D
|
||||
9E
|
||||
B7
|
||||
08=BackSpace
|
||||
09=\t
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
91='
|
||||
92='
|
||||
9F==<3D>
|
||||
A0=
|
||||
A1=<3D>
|
||||
A2=<3D>
|
||||
A3=<3D>
|
||||
A4=<3D>
|
||||
A5=<3D>
|
||||
A6=<3D>
|
||||
A7=<3D>
|
||||
A8=<3D>
|
||||
A9=<3D>
|
||||
AA=<3D>
|
||||
AB=<3D>
|
||||
AC=<3D>
|
||||
AD=<3D>
|
||||
AE=<3D>
|
||||
AF=<3D>
|
||||
B0=<3D>
|
||||
B1=<3D>
|
||||
B2=<3D>
|
||||
B3=<3D>
|
||||
B4=<3D>
|
||||
B5=<3D>
|
||||
B6=<3D>
|
||||
B8=<3D>
|
||||
B9=<3D>
|
||||
BA=<3D>
|
||||
BB=<3D>
|
||||
BC=<3D>
|
||||
BD=<3D>
|
||||
BE=<3D>
|
||||
BF=<3D>
|
||||
C0=A
|
||||
C1=<3D>
|
||||
C2=<3D>
|
||||
C3=<3D>
|
||||
C4=<3D>
|
||||
C5=<3D>
|
||||
C6=<3D>
|
||||
C7=<3D>
|
||||
C8=<3D>
|
||||
C9=<3D>
|
||||
CA=<3D>
|
||||
CB=<3D>
|
||||
CC=<3D>
|
||||
CD=<3D>
|
||||
CE=<3D>
|
||||
CF=<3D>
|
||||
D0=<3D>
|
||||
D1=<3D>
|
||||
D2=<3D>
|
||||
D3=<3D>
|
||||
D4=<3D>
|
||||
D5=<3D>
|
||||
D6=<3D>
|
||||
D7=<3D>
|
||||
D8=<3D>
|
||||
D9=<3D>
|
||||
DA=<3D>
|
||||
DB=<3D>
|
||||
DC=<3D>
|
||||
DD=<3D>
|
||||
DE=<3D>
|
||||
DF=<3D>
|
||||
E0=<3D>
|
||||
E1=<3D>
|
||||
E2=<3D>
|
||||
E3=<3D>
|
||||
E4=<3D>
|
||||
E5=<3D>
|
||||
E6=<3D>
|
||||
E7=<3D>
|
||||
E8=<3D>
|
||||
E9=<3D>
|
||||
EA=<3D>
|
||||
EB=<3D>
|
||||
EC=<3D>
|
||||
ED=<3D>
|
||||
EE=<3D>
|
||||
EF=<3D>
|
||||
F0=<3D>
|
||||
F1=<3D>
|
||||
F2=<3D>
|
||||
F3=<3D>
|
||||
F4=<3D>
|
||||
F5=<3D>
|
||||
F6=<3D>
|
||||
F7=<3D>
|
||||
F8=<3D>
|
||||
F9=<3D>
|
||||
FA=<3D>
|
||||
FB=<3D>
|
||||
FC=<3D>
|
||||
FD=<3D>
|
||||
FE=<3D>
|
||||
FF=<3D>
|
||||
256
encodings/arabic_iso.tbl
Normal file
256
encodings/arabic_iso.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=
|
||||
81=
|
||||
82=
|
||||
83=
|
||||
84=
|
||||
85=
|
||||
86=
|
||||
87=
|
||||
88=
|
||||
89=
|
||||
8A=
|
||||
8B=
|
||||
8C=
|
||||
8D=
|
||||
8E=
|
||||
8F=
|
||||
90=
|
||||
91=
|
||||
92=
|
||||
93=
|
||||
94=
|
||||
95=
|
||||
96=
|
||||
97=
|
||||
98=
|
||||
99=
|
||||
9A=
|
||||
9B=
|
||||
9C=
|
||||
9D=
|
||||
9E=
|
||||
9F=
|
||||
A0=
|
||||
A1
|
||||
A2
|
||||
A3
|
||||
A4=¤
|
||||
A5
|
||||
A6
|
||||
A7
|
||||
A8
|
||||
A9
|
||||
AA
|
||||
AB
|
||||
AC=،
|
||||
AD=
|
||||
AE
|
||||
AF
|
||||
B0
|
||||
B1
|
||||
B2
|
||||
B3
|
||||
B4
|
||||
B5
|
||||
B6
|
||||
B7
|
||||
B8
|
||||
B9
|
||||
BA
|
||||
BB=؛
|
||||
BC
|
||||
BD
|
||||
BE
|
||||
BF=؟
|
||||
C0
|
||||
C1=ء
|
||||
C2=آ
|
||||
C3=أ
|
||||
C4=ؤ
|
||||
C5=إ
|
||||
C6=ئ
|
||||
C7=ا
|
||||
C8=ب
|
||||
C9=ة
|
||||
CA=ت
|
||||
CB=ث
|
||||
CC=ج
|
||||
CD=ح
|
||||
CE=خ
|
||||
CF=د
|
||||
D0=ذ
|
||||
D1=ر
|
||||
D2=ز
|
||||
D3=س
|
||||
D4=ش
|
||||
D5=ص
|
||||
D6=ض
|
||||
D7=ط
|
||||
D8=ظ
|
||||
D9=ع
|
||||
DA=غ
|
||||
DB
|
||||
DC
|
||||
DD
|
||||
DE
|
||||
DF
|
||||
E0=ـ
|
||||
E1=ف
|
||||
E2=ق
|
||||
E3=ك
|
||||
E4=ل
|
||||
E5=م
|
||||
E6=ن
|
||||
E7=ه
|
||||
E8=و
|
||||
E9=ى
|
||||
EA=ي
|
||||
EB=ً
|
||||
EC=ٌ
|
||||
ED=ٍ
|
||||
EE=َ
|
||||
EF=ُ
|
||||
F0=ِ
|
||||
F1=ّ
|
||||
F2=ْ
|
||||
F3
|
||||
F4
|
||||
F5
|
||||
F6
|
||||
F7
|
||||
F8
|
||||
F9
|
||||
FA
|
||||
FB
|
||||
FC
|
||||
FD
|
||||
FE
|
||||
FF
|
||||
256
encodings/arabic_windows.tbl
Normal file
256
encodings/arabic_windows.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81=پ
|
||||
82=‚
|
||||
83=ƒ
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88=ˆ
|
||||
89=‰
|
||||
8A=ٹ
|
||||
8B=‹
|
||||
8C=Œ
|
||||
8D=چ
|
||||
8E=ژ
|
||||
8F=ڈ
|
||||
90=گ
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98=ک
|
||||
99=™
|
||||
9A=ڑ
|
||||
9B=›
|
||||
9C=œ
|
||||
9D=
|
||||
9E=
|
||||
9F=ں
|
||||
A0=
|
||||
A1=،
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=ھ
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=¯
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=¹
|
||||
BA=؛
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=؟
|
||||
C0=ہ
|
||||
C1=ء
|
||||
C2=آ
|
||||
C3=أ
|
||||
C4=ؤ
|
||||
C5=إ
|
||||
C6=ئ
|
||||
C7=ا
|
||||
C8=ب
|
||||
C9=ة
|
||||
CA=ت
|
||||
CB=ث
|
||||
CC=ج
|
||||
CD=ح
|
||||
CE=خ
|
||||
CF=د
|
||||
D0=ذ
|
||||
D1=ر
|
||||
D2=ز
|
||||
D3=س
|
||||
D4=ش
|
||||
D5=ص
|
||||
D6=ض
|
||||
D7=×
|
||||
D8=ط
|
||||
D9=ظ
|
||||
DA=ع
|
||||
DB=غ
|
||||
DC=ـ
|
||||
DD=ف
|
||||
DE=ق
|
||||
DF=ك
|
||||
E0=à
|
||||
E1=ل
|
||||
E2=â
|
||||
E3=م
|
||||
E4=ن
|
||||
E5=ه
|
||||
E6=و
|
||||
E7=ç
|
||||
E8=è
|
||||
E9=é
|
||||
EA=ê
|
||||
EB=ë
|
||||
EC=ى
|
||||
ED=ي
|
||||
EE=î
|
||||
EF=ï
|
||||
F0=ً
|
||||
F1=ٌ
|
||||
F2=ٍ
|
||||
F3=َ
|
||||
F4=ô
|
||||
F5=ُ
|
||||
F6=ِ
|
||||
F7=÷
|
||||
F8=ّ
|
||||
F9=ù
|
||||
FA=ْ
|
||||
FB=û
|
||||
FC=ü
|
||||
FD=
|
||||
FE=
|
||||
FF=ے
|
||||
256
encodings/ascii.tbl
Normal file
256
encodings/ascii.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
8A
|
||||
8B
|
||||
8C
|
||||
8D
|
||||
8E
|
||||
8F
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
9A
|
||||
9B
|
||||
9C
|
||||
9D
|
||||
9E
|
||||
9F
|
||||
A0
|
||||
A1
|
||||
A2
|
||||
A3
|
||||
A4
|
||||
A5
|
||||
A6
|
||||
A7
|
||||
A8
|
||||
A9
|
||||
AA
|
||||
AB
|
||||
AC
|
||||
AD
|
||||
AE
|
||||
AF
|
||||
B0
|
||||
B1
|
||||
B2
|
||||
B3
|
||||
B4
|
||||
B5
|
||||
B6
|
||||
B7
|
||||
B8
|
||||
B9
|
||||
BA
|
||||
BB
|
||||
BC
|
||||
BD
|
||||
BE
|
||||
BF
|
||||
C0
|
||||
C1
|
||||
C2
|
||||
C3
|
||||
C4
|
||||
C5
|
||||
C6
|
||||
C7
|
||||
C8
|
||||
C9
|
||||
CA
|
||||
CB
|
||||
CC
|
||||
CD
|
||||
CE
|
||||
CF
|
||||
D0
|
||||
D1
|
||||
D2
|
||||
D3
|
||||
D4
|
||||
D5
|
||||
D6
|
||||
D7
|
||||
D8
|
||||
D9
|
||||
DA
|
||||
DB
|
||||
DC
|
||||
DD
|
||||
DE
|
||||
DF
|
||||
E0
|
||||
E1
|
||||
E2
|
||||
E3
|
||||
E4
|
||||
E5
|
||||
E6
|
||||
E7
|
||||
E8
|
||||
E9
|
||||
EA
|
||||
EB
|
||||
EC
|
||||
ED
|
||||
EE
|
||||
EF
|
||||
F0
|
||||
F1
|
||||
F2
|
||||
F3
|
||||
F4
|
||||
F5
|
||||
F6
|
||||
F7
|
||||
F8
|
||||
F9
|
||||
FA
|
||||
FB
|
||||
FC
|
||||
FD
|
||||
FE
|
||||
FF
|
||||
256
encodings/ascii_ansi.tbl
Normal file
256
encodings/ascii_ansi.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82=‚
|
||||
83=ƒ
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88=ˆ
|
||||
89=‰
|
||||
8A=Š
|
||||
8B=‹
|
||||
8C=Œ
|
||||
8D
|
||||
8E=Ž
|
||||
8F
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98=˜
|
||||
99=™
|
||||
9A=š
|
||||
9B=›
|
||||
9C=œ
|
||||
9D
|
||||
9E=ž
|
||||
9F=Ÿ
|
||||
A0=
|
||||
A1=¡
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=ª
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=¯
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=¹
|
||||
BA=º
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=¿
|
||||
C0=À
|
||||
C1=Á
|
||||
C2=Â
|
||||
C3=Ã
|
||||
C4=Ä
|
||||
C5=Å
|
||||
C6=Æ
|
||||
C7=Ç
|
||||
C8=È
|
||||
C9=É
|
||||
CA=Ê
|
||||
CB=Ë
|
||||
CC=Ì
|
||||
CD=Í
|
||||
CE=Î
|
||||
CF=Ï
|
||||
D0=Ð
|
||||
D1=Ñ
|
||||
D2=Ò
|
||||
D3=Ó
|
||||
D4=Ô
|
||||
D5=Õ
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ø
|
||||
D9=Ù
|
||||
DA=Ú
|
||||
DB=Û
|
||||
DC=Ü
|
||||
DD=Ý
|
||||
DE=Þ
|
||||
DF=ß
|
||||
E0=à
|
||||
E1=á
|
||||
E2=â
|
||||
E3=ã
|
||||
E4=ä
|
||||
E5=å
|
||||
E6=æ
|
||||
E7=ç
|
||||
E8=è
|
||||
E9=é
|
||||
EA=ê
|
||||
EB=ë
|
||||
EC=ì
|
||||
ED=í
|
||||
EE=î
|
||||
EF=ï
|
||||
F0=ð
|
||||
F1=ñ
|
||||
F2=ò
|
||||
F3=ó
|
||||
F4=ô
|
||||
F5=õ
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ø
|
||||
F9=ù
|
||||
FA=ú
|
||||
FB=û
|
||||
FC=ü
|
||||
FD=ý
|
||||
FE=þ
|
||||
FF=ÿ
|
||||
256
encodings/ascii_oem.tbl
Normal file
256
encodings/ascii_oem.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=Ç
|
||||
81=ü
|
||||
82=é
|
||||
83=â
|
||||
84=ä
|
||||
85=à
|
||||
86=å
|
||||
87=ç
|
||||
88=ê
|
||||
89=ë
|
||||
8A=è
|
||||
8B=ï
|
||||
8C=î
|
||||
8D=ì
|
||||
8E=Ä
|
||||
8F=Å
|
||||
90=É
|
||||
91=æ
|
||||
92=Æ
|
||||
93=ô
|
||||
94=ö
|
||||
95=ò
|
||||
96=û
|
||||
97=ù
|
||||
98=ÿ
|
||||
99=Ö
|
||||
9A=Ü
|
||||
9B=¢
|
||||
9C=£
|
||||
9D=¥
|
||||
9E=₧
|
||||
9F=ƒ
|
||||
A0=á
|
||||
A1=í
|
||||
A2=ó
|
||||
A3=ú
|
||||
A4=ñ
|
||||
A5=Ñ
|
||||
A6=ª
|
||||
A7=º
|
||||
A8=¿
|
||||
A9=⌐
|
||||
AA=¬
|
||||
AB=½
|
||||
AC=¼
|
||||
AD=¡
|
||||
AE=«
|
||||
AF=»
|
||||
B0=░
|
||||
B1=▒
|
||||
B2=▓
|
||||
B3=│
|
||||
B4=┤
|
||||
B5=╡
|
||||
B6=╢
|
||||
B7=╖
|
||||
B8=╕
|
||||
B9=╣
|
||||
BA=║
|
||||
BB=╗
|
||||
BC=╝
|
||||
BD=╜
|
||||
BE=╛
|
||||
BF=┐
|
||||
C0=└
|
||||
C1=┴
|
||||
C2=┬
|
||||
C3=├
|
||||
C4=─
|
||||
C5=┼
|
||||
C6=╞
|
||||
C7=╟
|
||||
C8=╚
|
||||
C9=╔
|
||||
CA=╩
|
||||
CB=╦
|
||||
CC=╠
|
||||
CD=═
|
||||
CE=╬
|
||||
CF=╧
|
||||
D0=╨
|
||||
D1=╤
|
||||
D2=╥
|
||||
D3=╙
|
||||
D4=╘
|
||||
D5=╒
|
||||
D6=╓
|
||||
D7=╫
|
||||
D8=╪
|
||||
D9=┘
|
||||
DA=┌
|
||||
DB=█
|
||||
DC=▄
|
||||
DD=▌
|
||||
DE=▐
|
||||
DF=▀
|
||||
E0=α
|
||||
E1=ß
|
||||
E2=Γ
|
||||
E3=π
|
||||
E4=Σ
|
||||
E5=σ
|
||||
E6=µ
|
||||
E7=τ
|
||||
E8=Φ
|
||||
E9=Θ
|
||||
EA=Ω
|
||||
EB=δ
|
||||
EC=∞
|
||||
ED=φ
|
||||
EE=ε
|
||||
EF=∩
|
||||
F0=≡
|
||||
F1=±
|
||||
F2=≥
|
||||
F3=≤
|
||||
F4=⌠
|
||||
F5=⌡
|
||||
F6=÷
|
||||
F7=≈
|
||||
F8=°
|
||||
F9=∙
|
||||
FA=·
|
||||
FB=√
|
||||
FC=ⁿ
|
||||
FD=²
|
||||
FE=■
|
||||
FF=
|
||||
256
encodings/baltic_iso.tbl
Normal file
256
encodings/baltic_iso.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=
|
||||
81=
|
||||
82=
|
||||
83=
|
||||
84=
|
||||
85=
|
||||
86=
|
||||
87=
|
||||
88=
|
||||
89=
|
||||
8A=
|
||||
8B=
|
||||
8C=
|
||||
8D=
|
||||
8E=
|
||||
8F=
|
||||
90=
|
||||
91=
|
||||
92=
|
||||
93=
|
||||
94=
|
||||
95=
|
||||
96=
|
||||
97=
|
||||
98=
|
||||
99=
|
||||
9A=
|
||||
9B=
|
||||
9C=
|
||||
9D=
|
||||
9E=
|
||||
9F=
|
||||
A0=
|
||||
A1=”
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=„
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=Ø
|
||||
A9=©
|
||||
AA=Ŗ
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=Æ
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=“
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=ø
|
||||
B9=¹
|
||||
BA=ŗ
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=æ
|
||||
C0=Ą
|
||||
C1=Į
|
||||
C2=Ā
|
||||
C3=Ć
|
||||
C4=Ä
|
||||
C5=Å
|
||||
C6=Ę
|
||||
C7=Ē
|
||||
C8=Č
|
||||
C9=É
|
||||
CA=Ź
|
||||
CB=Ė
|
||||
CC=Ģ
|
||||
CD=Ķ
|
||||
CE=Ī
|
||||
CF=Ļ
|
||||
D0=Š
|
||||
D1=Ń
|
||||
D2=Ņ
|
||||
D3=Ó
|
||||
D4=Ō
|
||||
D5=Õ
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ų
|
||||
D9=Ł
|
||||
DA=Ś
|
||||
DB=Ū
|
||||
DC=Ü
|
||||
DD=Ż
|
||||
DE=Ž
|
||||
DF=ß
|
||||
E0=ą
|
||||
E1=į
|
||||
E2=ā
|
||||
E3=ć
|
||||
E4=ä
|
||||
E5=å
|
||||
E6=ę
|
||||
E7=ē
|
||||
E8=č
|
||||
E9=é
|
||||
EA=ź
|
||||
EB=ė
|
||||
EC=ģ
|
||||
ED=ķ
|
||||
EE=ī
|
||||
EF=ļ
|
||||
F0=š
|
||||
F1=ń
|
||||
F2=ņ
|
||||
F3=ó
|
||||
F4=ō
|
||||
F5=õ
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ų
|
||||
F9=ł
|
||||
FA=ś
|
||||
FB=ū
|
||||
FC=ü
|
||||
FD=ż
|
||||
FE=ž
|
||||
FF=’
|
||||
256
encodings/baltic_windows.tbl
Normal file
256
encodings/baltic_windows.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82=‚
|
||||
83
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88
|
||||
89=‰
|
||||
8A
|
||||
8B=‹
|
||||
8C
|
||||
8D=¨
|
||||
8E=ˇ
|
||||
8F=¸
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98
|
||||
99=™
|
||||
9A
|
||||
9B=›
|
||||
9C
|
||||
9D=¯
|
||||
9E=˛
|
||||
9F
|
||||
A0=
|
||||
A1
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=Ø
|
||||
A9=©
|
||||
AA=Ŗ
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=Æ
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=ø
|
||||
B9=¹
|
||||
BA=ŗ
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=æ
|
||||
C0=Ą
|
||||
C1=Į
|
||||
C2=Ā
|
||||
C3=Ć
|
||||
C4=Ä
|
||||
C5=Å
|
||||
C6=Ę
|
||||
C7=Ē
|
||||
C8=Č
|
||||
C9=É
|
||||
CA=Ź
|
||||
CB=Ė
|
||||
CC=Ģ
|
||||
CD=Ķ
|
||||
CE=Ī
|
||||
CF=Ļ
|
||||
D0=Š
|
||||
D1=Ń
|
||||
D2=Ņ
|
||||
D3=Ó
|
||||
D4=Ō
|
||||
D5=Õ
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ų
|
||||
D9=Ł
|
||||
DA=Ś
|
||||
DB=Ū
|
||||
DC=Ü
|
||||
DD=Ż
|
||||
DE=Ž
|
||||
DF=ß
|
||||
E0=ą
|
||||
E1=į
|
||||
E2=ā
|
||||
E3=ć
|
||||
E4=ä
|
||||
E5=å
|
||||
E6=ę
|
||||
E7=ē
|
||||
E8=č
|
||||
E9=é
|
||||
EA=ź
|
||||
EB=ė
|
||||
EC=ģ
|
||||
ED=ķ
|
||||
EE=ī
|
||||
EF=ļ
|
||||
F0=š
|
||||
F1=ń
|
||||
F2=ņ
|
||||
F3=ó
|
||||
F4=ō
|
||||
F5=õ
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ų
|
||||
F9=ł
|
||||
FA=ś
|
||||
FB=ū
|
||||
FC=ü
|
||||
FD=ż
|
||||
FE=ž
|
||||
FF=˙
|
||||
256
encodings/cyrillic_iso.tbl
Normal file
256
encodings/cyrillic_iso.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=
|
||||
81=
|
||||
82=
|
||||
83=
|
||||
84=
|
||||
85=
|
||||
86=
|
||||
87=
|
||||
88=
|
||||
89=
|
||||
8A=
|
||||
8B=
|
||||
8C=
|
||||
8D=
|
||||
8E=
|
||||
8F=
|
||||
90=
|
||||
91=
|
||||
92=
|
||||
93=
|
||||
94=
|
||||
95=
|
||||
96=
|
||||
97=
|
||||
98=
|
||||
99=
|
||||
9A=
|
||||
9B=
|
||||
9C=
|
||||
9D=
|
||||
9E=
|
||||
9F=
|
||||
A0=
|
||||
A1=Ё
|
||||
A2=Ђ
|
||||
A3=Ѓ
|
||||
A4=Є
|
||||
A5=Ѕ
|
||||
A6=І
|
||||
A7=Ї
|
||||
A8=Ј
|
||||
A9=Љ
|
||||
AA=Њ
|
||||
AB=Ћ
|
||||
AC=Ќ
|
||||
AD=
|
||||
AE=Ў
|
||||
AF=Џ
|
||||
B0=А
|
||||
B1=Б
|
||||
B2=В
|
||||
B3=Г
|
||||
B4=Д
|
||||
B5=Е
|
||||
B6=Ж
|
||||
B7=З
|
||||
B8=И
|
||||
B9=Й
|
||||
BA=К
|
||||
BB=Л
|
||||
BC=М
|
||||
BD=Н
|
||||
BE=О
|
||||
BF=П
|
||||
C0=Р
|
||||
C1=С
|
||||
C2=Т
|
||||
C3=У
|
||||
C4=Ф
|
||||
C5=Х
|
||||
C6=Ц
|
||||
C7=Ч
|
||||
C8=Ш
|
||||
C9=Щ
|
||||
CA=Ъ
|
||||
CB=Ы
|
||||
CC=Ь
|
||||
CD=Э
|
||||
CE=Ю
|
||||
CF=Я
|
||||
D0=а
|
||||
D1=б
|
||||
D2=в
|
||||
D3=г
|
||||
D4=д
|
||||
D5=е
|
||||
D6=ж
|
||||
D7=з
|
||||
D8=и
|
||||
D9=й
|
||||
DA=к
|
||||
DB=л
|
||||
DC=м
|
||||
DD=н
|
||||
DE=о
|
||||
DF=п
|
||||
E0=р
|
||||
E1=с
|
||||
E2=т
|
||||
E3=у
|
||||
E4=ф
|
||||
E5=х
|
||||
E6=ц
|
||||
E7=ч
|
||||
E8=ш
|
||||
E9=щ
|
||||
EA=ъ
|
||||
EB=ы
|
||||
EC=ь
|
||||
ED=э
|
||||
EE=ю
|
||||
EF=я
|
||||
F0=№
|
||||
F1=ё
|
||||
F2=ђ
|
||||
F3=ѓ
|
||||
F4=є
|
||||
F5=ѕ
|
||||
F6=і
|
||||
F7=ї
|
||||
F8=ј
|
||||
F9=љ
|
||||
FA=њ
|
||||
FB=ћ
|
||||
FC=ќ
|
||||
FD=§
|
||||
FE=ў
|
||||
FF=џ
|
||||
256
encodings/cyrillic_koi8_r.tbl
Normal file
256
encodings/cyrillic_koi8_r.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=─
|
||||
81=│
|
||||
82=┌
|
||||
83=┐
|
||||
84=└
|
||||
85=┘
|
||||
86=├
|
||||
87=┤
|
||||
88=┬
|
||||
89=┴
|
||||
8A=┼
|
||||
8B=▀
|
||||
8C=▄
|
||||
8D=█
|
||||
8E=▌
|
||||
8F=▐
|
||||
90=░
|
||||
91=▒
|
||||
92=▓
|
||||
93=⌠
|
||||
94=■
|
||||
95=∙
|
||||
96=√
|
||||
97=≈
|
||||
98=≤
|
||||
99=≥
|
||||
9A=
|
||||
9B=⌡
|
||||
9C=°
|
||||
9D=²
|
||||
9E=·
|
||||
9F=÷
|
||||
A0=═
|
||||
A1=║
|
||||
A2=╒
|
||||
A3=ё
|
||||
A4=╓
|
||||
A5=╔
|
||||
A6=╕
|
||||
A7=╖
|
||||
A8=╗
|
||||
A9=╘
|
||||
AA=╙
|
||||
AB=╚
|
||||
AC=╛
|
||||
AD=╜
|
||||
AE=╝
|
||||
AF=╞
|
||||
B0=╟
|
||||
B1=╠
|
||||
B2=╡
|
||||
B3=Ё
|
||||
B4=╢
|
||||
B5=╣
|
||||
B6=╤
|
||||
B7=╥
|
||||
B8=╦
|
||||
B9=╧
|
||||
BA=╨
|
||||
BB=╩
|
||||
BC=╪
|
||||
BD=╫
|
||||
BE=╬
|
||||
BF=©
|
||||
C0=ю
|
||||
C1=а
|
||||
C2=б
|
||||
C3=ц
|
||||
C4=д
|
||||
C5=е
|
||||
C6=ф
|
||||
C7=г
|
||||
C8=х
|
||||
C9=и
|
||||
CA=й
|
||||
CB=к
|
||||
CC=л
|
||||
CD=м
|
||||
CE=н
|
||||
CF=о
|
||||
D0=п
|
||||
D1=я
|
||||
D2=р
|
||||
D3=с
|
||||
D4=т
|
||||
D5=у
|
||||
D6=ж
|
||||
D7=в
|
||||
D8=ь
|
||||
D9=ы
|
||||
DA=з
|
||||
DB=ш
|
||||
DC=э
|
||||
DD=щ
|
||||
DE=ч
|
||||
DF=ъ
|
||||
E0=Ю
|
||||
E1=А
|
||||
E2=Б
|
||||
E3=Ц
|
||||
E4=Д
|
||||
E5=Е
|
||||
E6=Ф
|
||||
E7=Г
|
||||
E8=Х
|
||||
E9=И
|
||||
EA=Й
|
||||
EB=К
|
||||
EC=Л
|
||||
ED=М
|
||||
EE=Н
|
||||
EF=О
|
||||
F0=П
|
||||
F1=Я
|
||||
F2=Р
|
||||
F3=С
|
||||
F4=Т
|
||||
F5=У
|
||||
F6=Ж
|
||||
F7=В
|
||||
F8=Ь
|
||||
F9=Ы
|
||||
FA=З
|
||||
FB=Ш
|
||||
FC=Э
|
||||
FD=Щ
|
||||
FE=Ч
|
||||
FF=Ъ
|
||||
256
encodings/cyrillic_koi8_u.tbl
Normal file
256
encodings/cyrillic_koi8_u.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=─
|
||||
81=│
|
||||
82=┌
|
||||
83=┐
|
||||
84=└
|
||||
85=┘
|
||||
86=├
|
||||
87=┤
|
||||
88=┬
|
||||
89=┴
|
||||
8A=┼
|
||||
8B=▀
|
||||
8C=▄
|
||||
8D=█
|
||||
8E=▌
|
||||
8F=▐
|
||||
90=░
|
||||
91=▒
|
||||
92=▓
|
||||
93=⌠
|
||||
94=■
|
||||
95=∙
|
||||
96=√
|
||||
97=≈
|
||||
98=≤
|
||||
99=≥
|
||||
9A=
|
||||
9B=⌡
|
||||
9C=°
|
||||
9D=²
|
||||
9E=·
|
||||
9F=÷
|
||||
A0=═
|
||||
A1=║
|
||||
A2=╒
|
||||
A3=ё
|
||||
A4=є
|
||||
A5=╔
|
||||
A6=і
|
||||
A7=ї
|
||||
A8=╗
|
||||
A9=╘
|
||||
AA=╙
|
||||
AB=╚
|
||||
AC=╛
|
||||
AD=ґ
|
||||
AE=╝
|
||||
AF=╞
|
||||
B0=╟
|
||||
B1=╠
|
||||
B2=╡
|
||||
B3=Ё
|
||||
B4=Є
|
||||
B5=╣
|
||||
B6=І
|
||||
B7=Ї
|
||||
B8=╦
|
||||
B9=╧
|
||||
BA=╨
|
||||
BB=╩
|
||||
BC=╪
|
||||
BD=Ґ
|
||||
BE=╬
|
||||
BF=©
|
||||
C0=ю
|
||||
C1=а
|
||||
C2=б
|
||||
C3=ц
|
||||
C4=д
|
||||
C5=е
|
||||
C6=ф
|
||||
C7=г
|
||||
C8=х
|
||||
C9=и
|
||||
CA=й
|
||||
CB=к
|
||||
CC=л
|
||||
CD=м
|
||||
CE=н
|
||||
CF=о
|
||||
D0=п
|
||||
D1=я
|
||||
D2=р
|
||||
D3=с
|
||||
D4=т
|
||||
D5=у
|
||||
D6=ж
|
||||
D7=в
|
||||
D8=ь
|
||||
D9=ы
|
||||
DA=з
|
||||
DB=ш
|
||||
DC=э
|
||||
DD=щ
|
||||
DE=ч
|
||||
DF=ъ
|
||||
E0=Ю
|
||||
E1=А
|
||||
E2=Б
|
||||
E3=Ц
|
||||
E4=Д
|
||||
E5=Е
|
||||
E6=Ф
|
||||
E7=Г
|
||||
E8=Х
|
||||
E9=И
|
||||
EA=Й
|
||||
EB=К
|
||||
EC=Л
|
||||
ED=М
|
||||
EE=Н
|
||||
EF=О
|
||||
F0=П
|
||||
F1=Я
|
||||
F2=Р
|
||||
F3=С
|
||||
F4=Т
|
||||
F5=У
|
||||
F6=Ж
|
||||
F7=В
|
||||
F8=Ь
|
||||
F9=Ы
|
||||
FA=З
|
||||
FB=Ш
|
||||
FC=Э
|
||||
FD=Щ
|
||||
FE=Ч
|
||||
FF=Ъ
|
||||
256
encodings/cyrillic_windows.tbl
Normal file
256
encodings/cyrillic_windows.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=Ђ
|
||||
81=Ѓ
|
||||
82=‚
|
||||
83=ѓ
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88=€
|
||||
89=‰
|
||||
8A=Љ
|
||||
8B=‹
|
||||
8C=Њ
|
||||
8D=Ќ
|
||||
8E=Ћ
|
||||
8F=Џ
|
||||
90=ђ
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98
|
||||
99=™
|
||||
9A=љ
|
||||
9B=›
|
||||
9C=њ
|
||||
9D=ќ
|
||||
9E=ћ
|
||||
9F=џ
|
||||
A0=
|
||||
A1=Ў
|
||||
A2=ў
|
||||
A3=Ј
|
||||
A4=¤
|
||||
A5=Ґ
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=Ё
|
||||
A9=©
|
||||
AA=Є
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=Ї
|
||||
B0=°
|
||||
B1=±
|
||||
B2=І
|
||||
B3=і
|
||||
B4=ґ
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=ё
|
||||
B9=№
|
||||
BA=є
|
||||
BB=»
|
||||
BC=ј
|
||||
BD=Ѕ
|
||||
BE=ѕ
|
||||
BF=ї
|
||||
C0=А
|
||||
C1=Б
|
||||
C2=В
|
||||
C3=Г
|
||||
C4=Д
|
||||
C5=Е
|
||||
C6=Ж
|
||||
C7=З
|
||||
C8=И
|
||||
C9=Й
|
||||
CA=К
|
||||
CB=Л
|
||||
CC=М
|
||||
CD=Н
|
||||
CE=О
|
||||
CF=П
|
||||
D0=Р
|
||||
D1=С
|
||||
D2=Т
|
||||
D3=У
|
||||
D4=Ф
|
||||
D5=Х
|
||||
D6=Ц
|
||||
D7=Ч
|
||||
D8=Ш
|
||||
D9=Щ
|
||||
DA=Ъ
|
||||
DB=Ы
|
||||
DC=Ь
|
||||
DD=Э
|
||||
DE=Ю
|
||||
DF=Я
|
||||
E0=а
|
||||
E1=б
|
||||
E2=в
|
||||
E3=г
|
||||
E4=д
|
||||
E5=е
|
||||
E6=ж
|
||||
E7=з
|
||||
E8=и
|
||||
E9=й
|
||||
EA=к
|
||||
EB=л
|
||||
EC=м
|
||||
ED=н
|
||||
EE=о
|
||||
EF=п
|
||||
F0=р
|
||||
F1=с
|
||||
F2=т
|
||||
F3=у
|
||||
F4=ф
|
||||
F5=х
|
||||
F6=ц
|
||||
F7=ч
|
||||
F8=ш
|
||||
F9=щ
|
||||
FA=ъ
|
||||
FB=ы
|
||||
FC=ь
|
||||
FD=э
|
||||
FE=ю
|
||||
FF=я
|
||||
256
encodings/eastern_europe_iso.tbl
Normal file
256
encodings/eastern_europe_iso.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=
|
||||
81=
|
||||
82=
|
||||
83=
|
||||
84=
|
||||
85=
|
||||
86=
|
||||
87=
|
||||
88=
|
||||
89=
|
||||
8A=
|
||||
8B=
|
||||
8C=
|
||||
8D=
|
||||
8E=
|
||||
8F=
|
||||
90=
|
||||
91=
|
||||
92=
|
||||
93=
|
||||
94=
|
||||
95=
|
||||
96=
|
||||
97=
|
||||
98=
|
||||
99=
|
||||
9A=
|
||||
9B=
|
||||
9C=
|
||||
9D=
|
||||
9E=
|
||||
9F=
|
||||
A0=
|
||||
A1=Ą
|
||||
A2=˘
|
||||
A3=Ł
|
||||
A4=¤
|
||||
A5=Ľ
|
||||
A6=Ś
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=Š
|
||||
AA=Ş
|
||||
AB=Ť
|
||||
AC=Ź
|
||||
AD=
|
||||
AE=Ž
|
||||
AF=Ż
|
||||
B0=°
|
||||
B1=ą
|
||||
B2=˛
|
||||
B3=ł
|
||||
B4=´
|
||||
B5=ľ
|
||||
B6=ś
|
||||
B7=ˇ
|
||||
B8=¸
|
||||
B9=š
|
||||
BA=ş
|
||||
BB=ť
|
||||
BC=ź
|
||||
BD=˝
|
||||
BE=ž
|
||||
BF=ż
|
||||
C0=Ŕ
|
||||
C1=Á
|
||||
C2=Â
|
||||
C3=Ă
|
||||
C4=Ä
|
||||
C5=Ĺ
|
||||
C6=Ć
|
||||
C7=Ç
|
||||
C8=Č
|
||||
C9=É
|
||||
CA=Ę
|
||||
CB=Ë
|
||||
CC=Ě
|
||||
CD=Í
|
||||
CE=Î
|
||||
CF=Ď
|
||||
D0=Đ
|
||||
D1=Ń
|
||||
D2=Ň
|
||||
D3=Ó
|
||||
D4=Ô
|
||||
D5=Ő
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ř
|
||||
D9=Ů
|
||||
DA=Ú
|
||||
DB=Ű
|
||||
DC=Ü
|
||||
DD=Ý
|
||||
DE=Ţ
|
||||
DF=ß
|
||||
E0=ŕ
|
||||
E1=á
|
||||
E2=â
|
||||
E3=ă
|
||||
E4=ä
|
||||
E5=ĺ
|
||||
E6=ć
|
||||
E7=ç
|
||||
E8=č
|
||||
E9=é
|
||||
EA=ę
|
||||
EB=ë
|
||||
EC=ě
|
||||
ED=í
|
||||
EE=î
|
||||
EF=ď
|
||||
F0=đ
|
||||
F1=ń
|
||||
F2=ň
|
||||
F3=ó
|
||||
F4=ô
|
||||
F5=ő
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ř
|
||||
F9=ů
|
||||
FA=ú
|
||||
FB=ű
|
||||
FC=ü
|
||||
FD=ý
|
||||
FE=ţ
|
||||
FF=˙
|
||||
256
encodings/eastern_europe_windows.tbl
Normal file
256
encodings/eastern_europe_windows.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82=‚
|
||||
83
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88
|
||||
89=‰
|
||||
8A=Š
|
||||
8B=‹
|
||||
8C=Ś
|
||||
8D=Ť
|
||||
8E=Ž
|
||||
8F=Ź
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98
|
||||
99=™
|
||||
9A=š
|
||||
9B=›
|
||||
9C=ś
|
||||
9D=ť
|
||||
9E=ž
|
||||
9F=ź
|
||||
A0=
|
||||
A1=ˇ
|
||||
A2=˘
|
||||
A3=Ł
|
||||
A4=¤
|
||||
A5=Ą
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=Ş
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=Ż
|
||||
B0=°
|
||||
B1=±
|
||||
B2=˛
|
||||
B3=ł
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=ą
|
||||
BA=ş
|
||||
BB=»
|
||||
BC=Ľ
|
||||
BD=˝
|
||||
BE=ľ
|
||||
BF=ż
|
||||
C0=Ŕ
|
||||
C1=Á
|
||||
C2=Â
|
||||
C3=Ă
|
||||
C4=Ä
|
||||
C5=Ĺ
|
||||
C6=Ć
|
||||
C7=Ç
|
||||
C8=Č
|
||||
C9=É
|
||||
CA=Ę
|
||||
CB=Ë
|
||||
CC=Ě
|
||||
CD=Í
|
||||
CE=Î
|
||||
CF=Ď
|
||||
D0=Đ
|
||||
D1=Ń
|
||||
D2=Ň
|
||||
D3=Ó
|
||||
D4=Ô
|
||||
D5=Ő
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ř
|
||||
D9=Ů
|
||||
DA=Ú
|
||||
DB=Ű
|
||||
DC=Ü
|
||||
DD=Ý
|
||||
DE=Ţ
|
||||
DF=ß
|
||||
E0=ŕ
|
||||
E1=á
|
||||
E2=â
|
||||
E3=ă
|
||||
E4=ä
|
||||
E5=ĺ
|
||||
E6=ć
|
||||
E7=ç
|
||||
E8=č
|
||||
E9=é
|
||||
EA=ę
|
||||
EB=ë
|
||||
EC=ě
|
||||
ED=í
|
||||
EE=î
|
||||
EF=ď
|
||||
F0=đ
|
||||
F1=ń
|
||||
F2=ň
|
||||
F3=ó
|
||||
F4=ô
|
||||
F5=ő
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ř
|
||||
F9=ů
|
||||
FA=ú
|
||||
FB=ű
|
||||
FC=ü
|
||||
FD=ý
|
||||
FE=ţ
|
||||
FF=˙
|
||||
256
encodings/ebcdic.tbl
Normal file
256
encodings/ebcdic.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=
|
||||
05=TAB
|
||||
06=
|
||||
07=DEL
|
||||
08=
|
||||
09=
|
||||
0A=
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=
|
||||
15=
|
||||
16=BS
|
||||
17=
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=
|
||||
1B=
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=
|
||||
22=
|
||||
23=
|
||||
24=
|
||||
25=LF
|
||||
26=ETB
|
||||
27=ESC
|
||||
28=
|
||||
29=
|
||||
2A=
|
||||
2B=
|
||||
2C=
|
||||
2D=ENQ
|
||||
2E=ACK
|
||||
2F=BEL
|
||||
30=
|
||||
31=
|
||||
32=SYN
|
||||
33=
|
||||
34=
|
||||
35=
|
||||
36=
|
||||
37=EOT
|
||||
38=
|
||||
39=
|
||||
3A=
|
||||
3B=
|
||||
3C=DC4
|
||||
3D=NAK
|
||||
3E=
|
||||
3F=SUB
|
||||
40=
|
||||
41=
|
||||
42=â
|
||||
43=ä
|
||||
44=à
|
||||
45=á
|
||||
46=ã
|
||||
47=å
|
||||
48=ç
|
||||
49=ñ
|
||||
4A=¢
|
||||
4B=.
|
||||
4C=<
|
||||
4D=(
|
||||
4E=+
|
||||
4F=|
|
||||
50=&
|
||||
51=é
|
||||
52=ê
|
||||
53=ë
|
||||
54=è
|
||||
55=í
|
||||
56=î
|
||||
57=ï
|
||||
58=ì
|
||||
59=ß
|
||||
5A=!
|
||||
5B=$
|
||||
5C=*
|
||||
5D=)
|
||||
5E=;
|
||||
5F=¬
|
||||
60=-
|
||||
61=/
|
||||
62=Â
|
||||
63=Ä
|
||||
64=À
|
||||
65=Á
|
||||
66=Ã
|
||||
67=Å
|
||||
68=Ç
|
||||
69=Ñ
|
||||
6A=¦
|
||||
6B=,
|
||||
6C=%
|
||||
6D=_
|
||||
6E=>
|
||||
6F=?
|
||||
70=ø
|
||||
71=É
|
||||
72=Ê
|
||||
73=Ë
|
||||
74=È
|
||||
75=Í
|
||||
76=Î
|
||||
77=Ï
|
||||
78=Ì
|
||||
79=`
|
||||
7A=:
|
||||
7B=#
|
||||
7C=@
|
||||
7D='
|
||||
7E==
|
||||
7F="
|
||||
80=Ø
|
||||
81=a
|
||||
82=b
|
||||
83=c
|
||||
84=d
|
||||
85=e
|
||||
86=f
|
||||
87=g
|
||||
88=h
|
||||
89=i
|
||||
8A=«
|
||||
8B=»
|
||||
8C=ð
|
||||
8D=ý
|
||||
8E=þ
|
||||
8F=±
|
||||
90=°
|
||||
91=j
|
||||
92=k
|
||||
93=l
|
||||
94=m
|
||||
95=n
|
||||
96=o
|
||||
97=p
|
||||
98=q
|
||||
99=r
|
||||
9A=ª
|
||||
9B=º
|
||||
9C=æ
|
||||
9D=¸
|
||||
9E=Æ
|
||||
9F=¤
|
||||
A0=µ
|
||||
A1=~
|
||||
A2=s
|
||||
A3=t
|
||||
A4=u
|
||||
A5=v
|
||||
A6=w
|
||||
A7=x
|
||||
A8=y
|
||||
A9=z
|
||||
AA=¡
|
||||
AB=¿
|
||||
AC=Ð
|
||||
AD=Ý
|
||||
AE=Þ
|
||||
AF=®
|
||||
B0=^
|
||||
B1=£
|
||||
B2=¥
|
||||
B3=·
|
||||
B4=©
|
||||
B5=§
|
||||
B6=¶
|
||||
B7=¼
|
||||
B8=½
|
||||
B9=¾
|
||||
BA=[
|
||||
BB=]
|
||||
BC=¯
|
||||
BD=¨
|
||||
BE=´
|
||||
BF=×
|
||||
C0={
|
||||
C1=A
|
||||
C2=B
|
||||
C3=C
|
||||
C4=D
|
||||
C5=E
|
||||
C6=F
|
||||
C7=G
|
||||
C8=H
|
||||
C9=I
|
||||
CA=
|
||||
CB=ô
|
||||
CC=ö
|
||||
CD=ò
|
||||
CE=ó
|
||||
CF=õ
|
||||
D0=}
|
||||
D1=J
|
||||
D2=K
|
||||
D3=L
|
||||
D4=M
|
||||
D5=N
|
||||
D6=O
|
||||
D7=P
|
||||
D8=Q
|
||||
D9=R
|
||||
DA=¹
|
||||
DB=û
|
||||
DC=ü
|
||||
DD=ù
|
||||
DE=ú
|
||||
DF=ÿ
|
||||
E0=\
|
||||
E1=÷
|
||||
E2=S
|
||||
E3=T
|
||||
E4=U
|
||||
E5=V
|
||||
E6=W
|
||||
E7=X
|
||||
E8=Y
|
||||
E9=Z
|
||||
EA=²
|
||||
EB=Ô
|
||||
EC=Ö
|
||||
ED=Ò
|
||||
EE=Ó
|
||||
EF=Õ
|
||||
F0=0
|
||||
F1=1
|
||||
F2=2
|
||||
F3=3
|
||||
F4=4
|
||||
F5=5
|
||||
F6=6
|
||||
F7=7
|
||||
F8=8
|
||||
F9=9
|
||||
FA=³
|
||||
FB=Û
|
||||
FC=Ü
|
||||
FD=Ù
|
||||
FE=Ú
|
||||
FF=
|
||||
256
encodings/greek_iso.tbl
Normal file
256
encodings/greek_iso.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=
|
||||
81=
|
||||
82=
|
||||
83=
|
||||
84=
|
||||
85=
|
||||
86=
|
||||
87=
|
||||
88=
|
||||
89=
|
||||
8A=
|
||||
8B=
|
||||
8C=
|
||||
8D=
|
||||
8E=
|
||||
8F=
|
||||
90=
|
||||
91=
|
||||
92=
|
||||
93=
|
||||
94=
|
||||
95=
|
||||
96=
|
||||
97=
|
||||
98=
|
||||
99=
|
||||
9A=
|
||||
9B=
|
||||
9C=
|
||||
9D=
|
||||
9E=
|
||||
9F=
|
||||
A0=
|
||||
A1=‘
|
||||
A2=’
|
||||
A3=£
|
||||
A4
|
||||
A5
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE
|
||||
AF=―
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=΄
|
||||
B5=΅
|
||||
B6=Ά
|
||||
B7=·
|
||||
B8=Έ
|
||||
B9=Ή
|
||||
BA=Ί
|
||||
BB=»
|
||||
BC=Ό
|
||||
BD=½
|
||||
BE=Ύ
|
||||
BF=Ώ
|
||||
C0=ΐ
|
||||
C1=Α
|
||||
C2=Β
|
||||
C3=Γ
|
||||
C4=Δ
|
||||
C5=Ε
|
||||
C6=Ζ
|
||||
C7=Η
|
||||
C8=Θ
|
||||
C9=Ι
|
||||
CA=Κ
|
||||
CB=Λ
|
||||
CC=Μ
|
||||
CD=Ν
|
||||
CE=Ξ
|
||||
CF=Ο
|
||||
D0=Π
|
||||
D1=Ρ
|
||||
D2
|
||||
D3=Σ
|
||||
D4=Τ
|
||||
D5=Υ
|
||||
D6=Φ
|
||||
D7=Χ
|
||||
D8=Ψ
|
||||
D9=Ω
|
||||
DA=Ϊ
|
||||
DB=Ϋ
|
||||
DC=ά
|
||||
DD=έ
|
||||
DE=ή
|
||||
DF=ί
|
||||
E0=ΰ
|
||||
E1=α
|
||||
E2=β
|
||||
E3=γ
|
||||
E4=δ
|
||||
E5=ε
|
||||
E6=ζ
|
||||
E7=η
|
||||
E8=θ
|
||||
E9=ι
|
||||
EA=κ
|
||||
EB=λ
|
||||
EC=μ
|
||||
ED=ν
|
||||
EE=ξ
|
||||
EF=ο
|
||||
F0=π
|
||||
F1=ρ
|
||||
F2=ς
|
||||
F3=σ
|
||||
F4=τ
|
||||
F5=υ
|
||||
F6=φ
|
||||
F7=χ
|
||||
F8=ψ
|
||||
F9=ω
|
||||
FA=ϊ
|
||||
FB=ϋ
|
||||
FC=ό
|
||||
FD=ύ
|
||||
FE=ώ
|
||||
FF
|
||||
256
encodings/greek_windows.tbl
Normal file
256
encodings/greek_windows.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82=‚
|
||||
83=ƒ
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88
|
||||
89=‰
|
||||
8A
|
||||
8B=‹
|
||||
8C
|
||||
8D
|
||||
8E
|
||||
8F
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98
|
||||
99=™
|
||||
9A
|
||||
9B=›
|
||||
9C
|
||||
9D
|
||||
9E
|
||||
9F
|
||||
A0=
|
||||
A1=΅
|
||||
A2=Ά
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=―
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=΄
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=Έ
|
||||
B9=Ή
|
||||
BA=Ί
|
||||
BB=»
|
||||
BC=Ό
|
||||
BD=½
|
||||
BE=Ύ
|
||||
BF=Ώ
|
||||
C0=ΐ
|
||||
C1=Α
|
||||
C2=Β
|
||||
C3=Γ
|
||||
C4=Δ
|
||||
C5=Ε
|
||||
C6=Ζ
|
||||
C7=Η
|
||||
C8=Θ
|
||||
C9=Ι
|
||||
CA=Κ
|
||||
CB=Λ
|
||||
CC=Μ
|
||||
CD=Ν
|
||||
CE=Ξ
|
||||
CF=Ο
|
||||
D0=Π
|
||||
D1=Ρ
|
||||
D2
|
||||
D3=Σ
|
||||
D4=Τ
|
||||
D5=Υ
|
||||
D6=Φ
|
||||
D7=Χ
|
||||
D8=Ψ
|
||||
D9=Ω
|
||||
DA=Ϊ
|
||||
DB=Ϋ
|
||||
DC=ά
|
||||
DD=έ
|
||||
DE=ή
|
||||
DF=ί
|
||||
E0=ΰ
|
||||
E1=α
|
||||
E2=β
|
||||
E3=γ
|
||||
E4=δ
|
||||
E5=ε
|
||||
E6=ζ
|
||||
E7=η
|
||||
E8=θ
|
||||
E9=ι
|
||||
EA=κ
|
||||
EB=λ
|
||||
EC=μ
|
||||
ED=ν
|
||||
EE=ξ
|
||||
EF=ο
|
||||
F0=π
|
||||
F1=ρ
|
||||
F2=ς
|
||||
F3=σ
|
||||
F4=τ
|
||||
F5=υ
|
||||
F6=φ
|
||||
F7=χ
|
||||
F8=ψ
|
||||
F9=ω
|
||||
FA=ϊ
|
||||
FB=ϋ
|
||||
FC=ό
|
||||
FD=ύ
|
||||
FE=ώ
|
||||
FF
|
||||
256
encodings/hebrew_iso.tbl
Normal file
256
encodings/hebrew_iso.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=
|
||||
81=
|
||||
82=
|
||||
83=
|
||||
84=
|
||||
85=
|
||||
86=
|
||||
87=
|
||||
88=
|
||||
89=
|
||||
8A=
|
||||
8B=
|
||||
8C=
|
||||
8D=
|
||||
8E=
|
||||
8F=
|
||||
90=
|
||||
91=
|
||||
92=
|
||||
93=
|
||||
94=
|
||||
95=
|
||||
96=
|
||||
97=
|
||||
98=
|
||||
99=
|
||||
9A=
|
||||
9B=
|
||||
9C=
|
||||
9D=
|
||||
9E=
|
||||
9F=
|
||||
A0=
|
||||
A1
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=×
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=‾
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=¹
|
||||
BA=÷
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF
|
||||
C0
|
||||
C1
|
||||
C2
|
||||
C3
|
||||
C4
|
||||
C5
|
||||
C6
|
||||
C7
|
||||
C8
|
||||
C9
|
||||
CA
|
||||
CB
|
||||
CC
|
||||
CD
|
||||
CE
|
||||
CF
|
||||
D0
|
||||
D1
|
||||
D2
|
||||
D3
|
||||
D4
|
||||
D5
|
||||
D6
|
||||
D7
|
||||
D8
|
||||
D9
|
||||
DA
|
||||
DB
|
||||
DC
|
||||
DD
|
||||
DE
|
||||
DF=‗
|
||||
E0=א
|
||||
E1=ב
|
||||
E2=ג
|
||||
E3=ד
|
||||
E4=ה
|
||||
E5=ו
|
||||
E6=ז
|
||||
E7=ח
|
||||
E8=ט
|
||||
E9=י
|
||||
EA=ך
|
||||
EB=כ
|
||||
EC=ל
|
||||
ED=ם
|
||||
EE=מ
|
||||
EF=ן
|
||||
F0=נ
|
||||
F1=ס
|
||||
F2=ע
|
||||
F3=ף
|
||||
F4=פ
|
||||
F5=ץ
|
||||
F6=צ
|
||||
F7=ק
|
||||
F8=ר
|
||||
F9=ש
|
||||
FA=ת
|
||||
FB
|
||||
FC
|
||||
FD
|
||||
FE
|
||||
FF
|
||||
256
encodings/hebrew_windows.tbl
Normal file
256
encodings/hebrew_windows.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82=‚
|
||||
83=ƒ
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88=ˆ
|
||||
89=‰
|
||||
8A
|
||||
8B=‹
|
||||
8C
|
||||
8D
|
||||
8E
|
||||
8F
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98=˜
|
||||
99=™
|
||||
9A
|
||||
9B=›
|
||||
9C
|
||||
9D
|
||||
9E
|
||||
9F
|
||||
A0=
|
||||
A1=¡
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=₪
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=×
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=¯
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=¹
|
||||
BA=÷
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=¿
|
||||
C0=ְ
|
||||
C1=ֱ
|
||||
C2=ֲ
|
||||
C3=ֳ
|
||||
C4=ִ
|
||||
C5=ֵ
|
||||
C6=ֶ
|
||||
C7=ַ
|
||||
C8=ָ
|
||||
C9=ֹ
|
||||
CA
|
||||
CB=ֻ
|
||||
CC=ּ
|
||||
CD=ֽ
|
||||
CE=־
|
||||
CF=ֿ
|
||||
D0=׀
|
||||
D1=ׁ
|
||||
D2=ׂ
|
||||
D3=׃
|
||||
D4=װ
|
||||
D5=ױ
|
||||
D6=ײ
|
||||
D7=׳
|
||||
D8=״
|
||||
D9
|
||||
DA
|
||||
DB
|
||||
DC
|
||||
DD
|
||||
DE
|
||||
DF
|
||||
E0=א
|
||||
E1=ב
|
||||
E2=ג
|
||||
E3=ד
|
||||
E4=ה
|
||||
E5=ו
|
||||
E6=ז
|
||||
E7=ח
|
||||
E8=ט
|
||||
E9=י
|
||||
EA=ך
|
||||
EB=כ
|
||||
EC=ל
|
||||
ED=ם
|
||||
EE=מ
|
||||
EF=ן
|
||||
F0=נ
|
||||
F1=ס
|
||||
F2=ע
|
||||
F3=ף
|
||||
F4=פ
|
||||
F5=ץ
|
||||
F6=צ
|
||||
F7=ק
|
||||
F8=ר
|
||||
F9=ש
|
||||
FA=ת
|
||||
FB
|
||||
FC
|
||||
FD=
|
||||
FE=
|
||||
FF
|
||||
256
encodings/macintosh.tbl
Normal file
256
encodings/macintosh.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=Ä
|
||||
81=Å
|
||||
82=Ç
|
||||
83=É
|
||||
84=Ñ
|
||||
85=Ö
|
||||
86=Ü
|
||||
87=á
|
||||
88=à
|
||||
89=â
|
||||
8A=ä
|
||||
8B=ã
|
||||
8C=å
|
||||
8D=ç
|
||||
8E=é
|
||||
8F=è
|
||||
90=ê
|
||||
91=ë
|
||||
92=í
|
||||
93=ì
|
||||
94=î
|
||||
95=ï
|
||||
96=ñ
|
||||
97=ó
|
||||
98=ò
|
||||
99=ô
|
||||
9A=ö
|
||||
9B=õ
|
||||
9C=ú
|
||||
9D=ù
|
||||
9E=û
|
||||
9F=ü
|
||||
A0=†
|
||||
A1=°
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=§
|
||||
A5=•
|
||||
A6=¶
|
||||
A7=ß
|
||||
A8=®
|
||||
A9=©
|
||||
AA=™
|
||||
AB=´
|
||||
AC=¨
|
||||
AD=≠
|
||||
AE=Æ
|
||||
AF=Ø
|
||||
B0=∞
|
||||
B1=±
|
||||
B2=≤
|
||||
B3=≥
|
||||
B4=¥
|
||||
B5=µ
|
||||
B6=∂
|
||||
B7=∑
|
||||
B8=∏
|
||||
B9=π
|
||||
BA=∫
|
||||
BB=ª
|
||||
BC=º
|
||||
BD=Ω
|
||||
BE=æ
|
||||
BF=ø
|
||||
C0=¿
|
||||
C1=¡
|
||||
C2=¬
|
||||
C3=√
|
||||
C4=ƒ
|
||||
C5=≈
|
||||
C6=∆
|
||||
C7=«
|
||||
C8=»
|
||||
C9=…
|
||||
CA=
|
||||
CB=À
|
||||
CC=Ã
|
||||
CD=Õ
|
||||
CE=Œ
|
||||
CF=œ
|
||||
D0=–
|
||||
D1=—
|
||||
D2=“
|
||||
D3=”
|
||||
D4=‘
|
||||
D5=’
|
||||
D6=÷
|
||||
D7=◊
|
||||
D8=ÿ
|
||||
D9=Ÿ
|
||||
DA=⁄
|
||||
DB=€
|
||||
DC=‹
|
||||
DD=›
|
||||
DE=fi
|
||||
DF=fl
|
||||
E0=‡
|
||||
E1=·
|
||||
E2=‚
|
||||
E3=„
|
||||
E4=‰
|
||||
E5=Â
|
||||
E6=Ê
|
||||
E7=Á
|
||||
E8=Ë
|
||||
E9=È
|
||||
EA=Í
|
||||
EB=Î
|
||||
EC=Ï
|
||||
ED=Ì
|
||||
EE=Ó
|
||||
EF=Ô
|
||||
F0=
|
||||
F1=Ò
|
||||
F2=Ú
|
||||
F3=Û
|
||||
F4=Ù
|
||||
F5=ı
|
||||
F6=ˆ
|
||||
F7=˜
|
||||
F8=¯
|
||||
F9=˘
|
||||
FA=˙
|
||||
FB=˚
|
||||
FC=¸
|
||||
FD=˝
|
||||
FE=˛
|
||||
FF=ˇ
|
||||
@@ -1,4 +1,4 @@
|
||||
00=()
|
||||
00=
|
||||
090D=(R)
|
||||
0A=(BR)
|
||||
20=
|
||||
|
||||
256
encodings/thai.tbl
Normal file
256
encodings/thai.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85=…
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
8A
|
||||
8B
|
||||
8C
|
||||
8D
|
||||
8E
|
||||
8F
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98
|
||||
99
|
||||
9A
|
||||
9B
|
||||
9C
|
||||
9D
|
||||
9E
|
||||
9F
|
||||
A0
|
||||
A1=ก
|
||||
A2=ข
|
||||
A3=ฃ
|
||||
A4=ค
|
||||
A5=ฅ
|
||||
A6=ฆ
|
||||
A7=ง
|
||||
A8=จ
|
||||
A9=ฉ
|
||||
AA=ช
|
||||
AB=ซ
|
||||
AC=ฌ
|
||||
AD=ญ
|
||||
AE=ฎ
|
||||
AF=ฏ
|
||||
B0=ฐ
|
||||
B1=ฑ
|
||||
B2=ฒ
|
||||
B3=ณ
|
||||
B4=ด
|
||||
B5=ต
|
||||
B6=ถ
|
||||
B7=ท
|
||||
B8=ธ
|
||||
B9=น
|
||||
BA=บ
|
||||
BB=ป
|
||||
BC=ผ
|
||||
BD=ฝ
|
||||
BE=พ
|
||||
BF=ฟ
|
||||
C0=ภ
|
||||
C1=ม
|
||||
C2=ย
|
||||
C3=ร
|
||||
C4=ฤ
|
||||
C5=ล
|
||||
C6=ฦ
|
||||
C7=ว
|
||||
C8=ศ
|
||||
C9=ษ
|
||||
CA=ส
|
||||
CB=ห
|
||||
CC=ฬ
|
||||
CD=อ
|
||||
CE=ฮ
|
||||
CF=ฯ
|
||||
D0=ะ
|
||||
D1=ั
|
||||
D2=า
|
||||
D3=ำ
|
||||
D4=ิ
|
||||
D5=ี
|
||||
D6=ึ
|
||||
D7=ื
|
||||
D8=ุ
|
||||
D9=ู
|
||||
DA=ฺ
|
||||
DB
|
||||
DC
|
||||
DD
|
||||
DE
|
||||
DF=฿
|
||||
E0=เ
|
||||
E1=แ
|
||||
E2=โ
|
||||
E3=ใ
|
||||
E4=ไ
|
||||
E5=ๅ
|
||||
E6=ๆ
|
||||
E7=็
|
||||
E8=่
|
||||
E9=้
|
||||
EA=๊
|
||||
EB=๋
|
||||
EC=์
|
||||
ED=ํ
|
||||
EE=๎
|
||||
EF=๏
|
||||
F0=๐
|
||||
F1=๑
|
||||
F2=๒
|
||||
F3=๓
|
||||
F4=๔
|
||||
F5=๕
|
||||
F6=๖
|
||||
F7=๗
|
||||
F8=๘
|
||||
F9=๙
|
||||
FA=๚
|
||||
FB=๛
|
||||
FC
|
||||
FD
|
||||
FE
|
||||
FF
|
||||
256
encodings/turkish_iso.tbl
Normal file
256
encodings/turkish_iso.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=
|
||||
81=
|
||||
82=
|
||||
83=
|
||||
84=
|
||||
85=
|
||||
86=
|
||||
87=
|
||||
88=
|
||||
89=
|
||||
8A=
|
||||
8B=
|
||||
8C=
|
||||
8D=
|
||||
8E=
|
||||
8F=
|
||||
90=
|
||||
91=
|
||||
92=
|
||||
93=
|
||||
94=
|
||||
95=
|
||||
96=
|
||||
97=
|
||||
98=
|
||||
99=
|
||||
9A=
|
||||
9B=
|
||||
9C=
|
||||
9D=
|
||||
9E=
|
||||
9F=
|
||||
A0=
|
||||
A1=¡
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=ª
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=¯
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=¹
|
||||
BA=º
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=¿
|
||||
C0=À
|
||||
C1=Á
|
||||
C2=Â
|
||||
C3=Ã
|
||||
C4=Ä
|
||||
C5=Å
|
||||
C6=Æ
|
||||
C7=Ç
|
||||
C8=È
|
||||
C9=É
|
||||
CA=Ê
|
||||
CB=Ë
|
||||
CC=Ì
|
||||
CD=Í
|
||||
CE=Î
|
||||
CF=Ï
|
||||
D0=Ğ
|
||||
D1=Ñ
|
||||
D2=Ò
|
||||
D3=Ó
|
||||
D4=Ô
|
||||
D5=Õ
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ø
|
||||
D9=Ù
|
||||
DA=Ú
|
||||
DB=Û
|
||||
DC=Ü
|
||||
DD=İ
|
||||
DE=Ş
|
||||
DF=ß
|
||||
E0=à
|
||||
E1=á
|
||||
E2=â
|
||||
E3=ã
|
||||
E4=ä
|
||||
E5=å
|
||||
E6=æ
|
||||
E7=ç
|
||||
E8=è
|
||||
E9=é
|
||||
EA=ê
|
||||
EB=ë
|
||||
EC=ì
|
||||
ED=í
|
||||
EE=î
|
||||
EF=ï
|
||||
F0=ğ
|
||||
F1=ñ
|
||||
F2=ò
|
||||
F3=ó
|
||||
F4=ô
|
||||
F5=õ
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ø
|
||||
F9=ù
|
||||
FA=ú
|
||||
FB=û
|
||||
FC=ü
|
||||
FD=ı
|
||||
FE=ş
|
||||
FF=ÿ
|
||||
256
encodings/turkish_windows.tbl
Normal file
256
encodings/turkish_windows.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82=‚
|
||||
83=ƒ
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88=ˆ
|
||||
89=‰
|
||||
8A=Š
|
||||
8B=‹
|
||||
8C=Œ
|
||||
8D
|
||||
8E
|
||||
8F
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98=˜
|
||||
99=™
|
||||
9A=š
|
||||
9B=›
|
||||
9C=œ
|
||||
9D
|
||||
9E
|
||||
9F=Ÿ
|
||||
A0=
|
||||
A1=¡
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=ª
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=¯
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=¹
|
||||
BA=º
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=¿
|
||||
C0=À
|
||||
C1=Á
|
||||
C2=Â
|
||||
C3=Ã
|
||||
C4=Ä
|
||||
C5=Å
|
||||
C6=Æ
|
||||
C7=Ç
|
||||
C8=È
|
||||
C9=É
|
||||
CA=Ê
|
||||
CB=Ë
|
||||
CC=Ì
|
||||
CD=Í
|
||||
CE=Î
|
||||
CF=Ï
|
||||
D0=Ğ
|
||||
D1=Ñ
|
||||
D2=Ò
|
||||
D3=Ó
|
||||
D4=Ô
|
||||
D5=Õ
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ø
|
||||
D9=Ù
|
||||
DA=Ú
|
||||
DB=Û
|
||||
DC=Ü
|
||||
DD=İ
|
||||
DE=Ş
|
||||
DF=ß
|
||||
E0=à
|
||||
E1=á
|
||||
E2=â
|
||||
E3=ã
|
||||
E4=ä
|
||||
E5=å
|
||||
E6=æ
|
||||
E7=ç
|
||||
E8=è
|
||||
E9=é
|
||||
EA=ê
|
||||
EB=ë
|
||||
EC=ì
|
||||
ED=í
|
||||
EE=î
|
||||
EF=ï
|
||||
F0=ğ
|
||||
F1=ñ
|
||||
F2=ò
|
||||
F3=ó
|
||||
F4=ô
|
||||
F5=õ
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ø
|
||||
F9=ù
|
||||
FA=ú
|
||||
FB=û
|
||||
FC=ü
|
||||
FD=ı
|
||||
FE=ş
|
||||
FF=ÿ
|
||||
1114111
encodings/utf8.tbl
Normal file
1114111
encodings/utf8.tbl
Normal file
File diff suppressed because it is too large
Load Diff
256
encodings/vietnamese.tbl
Normal file
256
encodings/vietnamese.tbl
Normal file
@@ -0,0 +1,256 @@
|
||||
00=NUL
|
||||
01=SOH
|
||||
02=STX
|
||||
03=ETX
|
||||
04=EOT
|
||||
05=ENQ
|
||||
06=ACK
|
||||
07=BEL
|
||||
08=BS
|
||||
09=TAB
|
||||
0A=LF
|
||||
0B=VT
|
||||
0C=FF
|
||||
0D=CR
|
||||
0E=SO
|
||||
0F=SI
|
||||
10=DLE
|
||||
11=DC1
|
||||
12=DC2
|
||||
13=DC3
|
||||
14=DC4
|
||||
15=NAK
|
||||
16=SYN
|
||||
17=ETB
|
||||
18=CAN
|
||||
19=EM
|
||||
1A=SUB
|
||||
1B=ESC
|
||||
1C=FS
|
||||
1D=GS
|
||||
1E=RS
|
||||
1F=US
|
||||
20=
|
||||
21=!
|
||||
22="
|
||||
23=#
|
||||
24=$
|
||||
25=%
|
||||
26=&
|
||||
27='
|
||||
28=(
|
||||
29=)
|
||||
2A=*
|
||||
2B=+
|
||||
2C=,
|
||||
2D=-
|
||||
2E=.
|
||||
2F=/
|
||||
30=0
|
||||
31=1
|
||||
32=2
|
||||
33=3
|
||||
34=4
|
||||
35=5
|
||||
36=6
|
||||
37=7
|
||||
38=8
|
||||
39=9
|
||||
3A=:
|
||||
3B=;
|
||||
3C=<
|
||||
3D==
|
||||
3E=>
|
||||
3F=?
|
||||
40=@
|
||||
41=A
|
||||
42=B
|
||||
43=C
|
||||
44=D
|
||||
45=E
|
||||
46=F
|
||||
47=G
|
||||
48=H
|
||||
49=I
|
||||
4A=J
|
||||
4B=K
|
||||
4C=L
|
||||
4D=M
|
||||
4E=N
|
||||
4F=O
|
||||
50=P
|
||||
51=Q
|
||||
52=R
|
||||
53=S
|
||||
54=T
|
||||
55=U
|
||||
56=V
|
||||
57=W
|
||||
58=X
|
||||
59=Y
|
||||
5A=Z
|
||||
5B=[
|
||||
5C=\
|
||||
5D=]
|
||||
5E=^
|
||||
5F=_
|
||||
60=`
|
||||
61=a
|
||||
62=b
|
||||
63=c
|
||||
64=d
|
||||
65=e
|
||||
66=f
|
||||
67=g
|
||||
68=h
|
||||
69=i
|
||||
6A=j
|
||||
6B=k
|
||||
6C=l
|
||||
6D=m
|
||||
6E=n
|
||||
6F=o
|
||||
70=p
|
||||
71=q
|
||||
72=r
|
||||
73=s
|
||||
74=t
|
||||
75=u
|
||||
76=v
|
||||
77=w
|
||||
78=x
|
||||
79=y
|
||||
7A=z
|
||||
7B={
|
||||
7C=|
|
||||
7D=}
|
||||
7E=~
|
||||
7F=DEL
|
||||
80=€
|
||||
81
|
||||
82=‚
|
||||
83=ƒ
|
||||
84=„
|
||||
85=…
|
||||
86=†
|
||||
87=‡
|
||||
88=ˆ
|
||||
89=‰
|
||||
8A
|
||||
8B=‹
|
||||
8C=Œ
|
||||
8D
|
||||
8E
|
||||
8F
|
||||
90
|
||||
91=‘
|
||||
92=’
|
||||
93=“
|
||||
94=”
|
||||
95=•
|
||||
96=–
|
||||
97=—
|
||||
98=˜
|
||||
99=™
|
||||
9A
|
||||
9B=›
|
||||
9C=œ
|
||||
9D
|
||||
9E
|
||||
9F=Ÿ
|
||||
A0=
|
||||
A1=¡
|
||||
A2=¢
|
||||
A3=£
|
||||
A4=¤
|
||||
A5=¥
|
||||
A6=¦
|
||||
A7=§
|
||||
A8=¨
|
||||
A9=©
|
||||
AA=ª
|
||||
AB=«
|
||||
AC=¬
|
||||
AD=
|
||||
AE=®
|
||||
AF=¯
|
||||
B0=°
|
||||
B1=±
|
||||
B2=²
|
||||
B3=³
|
||||
B4=´
|
||||
B5=µ
|
||||
B6=¶
|
||||
B7=·
|
||||
B8=¸
|
||||
B9=¹
|
||||
BA=º
|
||||
BB=»
|
||||
BC=¼
|
||||
BD=½
|
||||
BE=¾
|
||||
BF=¿
|
||||
C0=À
|
||||
C1=Á
|
||||
C2=Â
|
||||
C3=Ă
|
||||
C4=Ä
|
||||
C5=Å
|
||||
C6=Æ
|
||||
C7=Ç
|
||||
C8=È
|
||||
C9=É
|
||||
CA=Ê
|
||||
CB=Ë
|
||||
CC=̀
|
||||
CD=Í
|
||||
CE=Î
|
||||
CF=Ï
|
||||
D0=Đ
|
||||
D1=Ñ
|
||||
D2=̉
|
||||
D3=Ó
|
||||
D4=Ô
|
||||
D5=Ơ
|
||||
D6=Ö
|
||||
D7=×
|
||||
D8=Ø
|
||||
D9=Ù
|
||||
DA=Ú
|
||||
DB=Û
|
||||
DC=Ü
|
||||
DD=Ư
|
||||
DE=̃
|
||||
DF=ß
|
||||
E0=à
|
||||
E1=á
|
||||
E2=â
|
||||
E3=ă
|
||||
E4=ä
|
||||
E5=å
|
||||
E6=æ
|
||||
E7=ç
|
||||
E8=è
|
||||
E9=é
|
||||
EA=ê
|
||||
EB=ë
|
||||
EC=́
|
||||
ED=í
|
||||
EE=î
|
||||
EF=ï
|
||||
F0=đ
|
||||
F1=ñ
|
||||
F2=̣
|
||||
F3=ó
|
||||
F4=ô
|
||||
F5=ơ
|
||||
F6=ö
|
||||
F7=÷
|
||||
F8=ø
|
||||
F9=ù
|
||||
FA=ú
|
||||
FB=û
|
||||
FC=ü
|
||||
FD=ư
|
||||
FE=₫
|
||||
FF=ÿ
|
||||
71
includes/std/time.pat
Normal file
71
includes/std/time.pat
Normal file
@@ -0,0 +1,71 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
|
||||
namespace std::time {
|
||||
|
||||
struct Time {
|
||||
u8 sec;
|
||||
u8 min;
|
||||
u8 hour;
|
||||
u8 mday;
|
||||
u8 mon;
|
||||
u16 year;
|
||||
u8 wday;
|
||||
u16 yday;
|
||||
bool isdst;
|
||||
} [[sealed]];
|
||||
|
||||
union TimeConverter {
|
||||
Time time;
|
||||
u128 value;
|
||||
};
|
||||
|
||||
using EpochTime = u128;
|
||||
|
||||
enum TimeZone : u8 {
|
||||
Local,
|
||||
UTC
|
||||
};
|
||||
|
||||
fn epoch() {
|
||||
return builtin::std::time::epoch();
|
||||
};
|
||||
|
||||
fn to_local(EpochTime epoch_time) {
|
||||
TimeConverter converter;
|
||||
|
||||
converter.value = builtin::std::time::to_local(epoch_time);
|
||||
|
||||
return converter.time;
|
||||
};
|
||||
|
||||
fn to_utc(EpochTime epoch_time) {
|
||||
TimeConverter converter;
|
||||
|
||||
converter.value = builtin::std::time::to_utc(epoch_time);
|
||||
|
||||
return converter.time;
|
||||
};
|
||||
|
||||
|
||||
fn now(TimeZone time_zone = TimeZone::Local) {
|
||||
TimeConverter converter;
|
||||
|
||||
if (time_zone == TimeZone::Local)
|
||||
converter.value = builtin::std::time::to_local(std::time::epoch());
|
||||
else if (time_zone == TimeZone::UTC)
|
||||
converter.value = builtin::std::time::to_utc(std::time::epoch());
|
||||
else
|
||||
converter.value = 0x00;
|
||||
|
||||
return converter.time;
|
||||
};
|
||||
|
||||
fn format(Time time, str format_string = "%c") {
|
||||
TimeConverter converter;
|
||||
converter.time = time;
|
||||
|
||||
return builtin::std::time::format(format_string, converter.value);
|
||||
};
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
#include <std/io.pat>
|
||||
#include <std/math.pat>
|
||||
|
||||
namespace std::type {
|
||||
|
||||
struct GUID {
|
||||
u32 time_low;
|
||||
u16 time_mid;
|
||||
u16 time_high_and_version;
|
||||
u8 clock_seq_and_reserved;
|
||||
u8 clock_seq_low;
|
||||
u8 node[6];
|
||||
} [[format("std::type::guid_formatter"), single_color]];
|
||||
|
||||
fn guid_formatter(GUID guid) {
|
||||
bool valid = ((le u16(guid.time_high_and_version) >> 12) <= 5) && (((guid.clock_seq_and_reserved >> 4) >= 8) || ((guid.clock_seq_and_reserved >> 4) == 0));
|
||||
|
||||
return std::format("{}{{{:08X}-{:04X}-{:04X}-{:02X}{:02X}-{:02X}{:02X}{:02X}{:02X}{:02X}{:02X}}}",
|
||||
valid ? "" : "Invalid ",
|
||||
le u32(guid.time_low),
|
||||
le u16(guid.time_mid),
|
||||
le u16(guid.time_high_and_version),
|
||||
guid.clock_seq_and_reserved,
|
||||
guid.clock_seq_low,
|
||||
guid.node[0],
|
||||
guid.node[1],
|
||||
guid.node[2],
|
||||
guid.node[3],
|
||||
guid.node[4],
|
||||
guid.node[5]);
|
||||
};
|
||||
|
||||
|
||||
using float16 = u16 [[format("std::type::float16_formatter")]];
|
||||
|
||||
fn float16_formatter(float16 value) {
|
||||
float sign = (value >> 15) == 0b01 ? -1.0 : 1.0;
|
||||
float exponent = std::math::pow(2.0, float((value >> 10) & 0x1F) - 14);
|
||||
u16 mantissa = value & 0x3FF;
|
||||
|
||||
float fraction = 0;
|
||||
for (s8 i = 9, i >= 0, i -= 1) {
|
||||
if ((mantissa & (1 << i)) != 0) {
|
||||
fraction += 1.0 / std::math::pow(2.0, (10.0 - i));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return std::format("{:f}", sign * exponent * fraction);
|
||||
|
||||
};
|
||||
|
||||
|
||||
bitfield Bits {
|
||||
bit0 : 1;
|
||||
bit1 : 1;
|
||||
bit2 : 1;
|
||||
bit3 : 1;
|
||||
bit4 : 1;
|
||||
bit5 : 1;
|
||||
bit6 : 1;
|
||||
bit7 : 1;
|
||||
} [[format("std::type::bits_formatter"), right_to_left]];
|
||||
|
||||
bitfield Nibbles {
|
||||
low : 4;
|
||||
high : 4;
|
||||
} [[format("std::type::nibble_formatter")]];
|
||||
|
||||
union Byte {
|
||||
u8 value;
|
||||
Bits bits;
|
||||
Nibbles nibbles;
|
||||
} [[format("std::type::byte_formatter"), single_color]];
|
||||
|
||||
fn byte_formatter(Byte byte) {
|
||||
return std::format("0x{0:02X} (0b{1:08b}) LSB:{2}, MSB:{3}",
|
||||
byte.value,
|
||||
byte.value,
|
||||
byte.bits.bit0,
|
||||
byte.bits.bit7);
|
||||
};
|
||||
|
||||
fn bits_formatter(Bits bits) {
|
||||
return std::format("0b{}{}{}{}{}{}{}{}",
|
||||
bits.bit7,
|
||||
bits.bit6,
|
||||
bits.bit5,
|
||||
bits.bit4,
|
||||
bits.bit6,
|
||||
bits.bit2,
|
||||
bits.bit1,
|
||||
bits.bit0);
|
||||
};
|
||||
|
||||
fn nibble_formatter(Nibbles nibbles) {
|
||||
return std::format("{{ {0:0X}, {1:0X} }}", nibbles.high, nibbles.low);
|
||||
};
|
||||
|
||||
}
|
||||
58
includes/type/byte.pat
Normal file
58
includes/type/byte.pat
Normal file
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
|
||||
namespace type {
|
||||
|
||||
bitfield Bits {
|
||||
bit0 : 1;
|
||||
bit1 : 1;
|
||||
bit2 : 1;
|
||||
bit3 : 1;
|
||||
bit4 : 1;
|
||||
bit5 : 1;
|
||||
bit6 : 1;
|
||||
bit7 : 1;
|
||||
} [[format("type::impl::format_bits"), right_to_left]];
|
||||
|
||||
bitfield Nibbles {
|
||||
low : 4;
|
||||
high : 4;
|
||||
} [[format("type::impl::format_nibbles")]];
|
||||
|
||||
union Byte {
|
||||
u8 value;
|
||||
Bits bits;
|
||||
Nibbles nibbles;
|
||||
} [[format("type::impl::format_byte"), single_color]];
|
||||
|
||||
|
||||
namespace impl {
|
||||
|
||||
fn format_byte(Byte byte) {
|
||||
return std::format("0x{0:02X} (0b{1:08b}) LSB:{2}, MSB:{3}",
|
||||
byte.value,
|
||||
byte.value,
|
||||
byte.bits.bit0,
|
||||
byte.bits.bit7);
|
||||
};
|
||||
|
||||
fn format_bits(Bits bits) {
|
||||
return std::format("0b{}{}{}{}{}{}{}{}",
|
||||
bits.bit7,
|
||||
bits.bit6,
|
||||
bits.bit5,
|
||||
bits.bit4,
|
||||
bits.bit6,
|
||||
bits.bit2,
|
||||
bits.bit1,
|
||||
bits.bit0);
|
||||
};
|
||||
|
||||
fn format_nibbles(Nibbles nibbles) {
|
||||
return std::format("{{ {0:0X}, {1:0X} }}", nibbles.high, nibbles.low);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
29
includes/type/float16.pat
Normal file
29
includes/type/float16.pat
Normal file
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
#include <std/math.pat>
|
||||
|
||||
namespace type {
|
||||
|
||||
using float16 = u16 [[format("type::impl::format_float16")]];
|
||||
|
||||
namespace impl {
|
||||
|
||||
fn format_float16(float16 value) {
|
||||
float sign = (value >> 15) == 0b01 ? -1.0 : 1.0;
|
||||
float exponent = std::math::pow(2.0, float((value >> 10) & 0x1F) - 14);
|
||||
u16 mantissa = value & 0x3FF;
|
||||
|
||||
float fraction = 0;
|
||||
for (s8 i = 9, i >= 0, i -= 1) {
|
||||
if ((mantissa & (1 << i)) != 0) {
|
||||
fraction += 1.0 / std::math::pow(2.0, (10.0 - i));
|
||||
}
|
||||
}
|
||||
|
||||
return std::format("{:f}", sign * exponent * fraction);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
38
includes/type/guid.pat
Normal file
38
includes/type/guid.pat
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
|
||||
namespace type {
|
||||
|
||||
struct GUID {
|
||||
u32 time_low;
|
||||
u16 time_mid;
|
||||
u16 time_high_and_version;
|
||||
u8 clock_seq_and_reserved;
|
||||
u8 clock_seq_low;
|
||||
u8 node[6];
|
||||
} [[sealed, format("type::impl::format_guid")]];
|
||||
|
||||
namespace impl {
|
||||
|
||||
fn format_guid(GUID guid) {
|
||||
bool valid = ((le u16(guid.time_high_and_version) >> 12) <= 5) && (((guid.clock_seq_and_reserved >> 4) >= 8) || ((guid.clock_seq_and_reserved >> 4) == 0));
|
||||
|
||||
return std::format("{}{{{:08X}-{:04X}-{:04X}-{:02X}{:02X}-{:02X}{:02X}{:02X}{:02X}{:02X}{:02X}}}",
|
||||
valid ? "" : "Invalid ",
|
||||
le u32(guid.time_low),
|
||||
le u16(guid.time_mid),
|
||||
le u16(guid.time_high_and_version),
|
||||
guid.clock_seq_and_reserved,
|
||||
guid.clock_seq_low,
|
||||
guid.node[0],
|
||||
guid.node[1],
|
||||
guid.node[2],
|
||||
guid.node[3],
|
||||
guid.node[4],
|
||||
guid.node[5]);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
39
includes/type/ip.pat
Normal file
39
includes/type/ip.pat
Normal file
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
|
||||
namespace type {
|
||||
|
||||
struct IPv4Address {
|
||||
u8 bytes[4];
|
||||
} [[sealed, format("type::impl::format_ipv4_address")]];
|
||||
|
||||
struct IPv6Address {
|
||||
u16 words[8];
|
||||
} [[sealed, format("type::impl::format_ipv6_address")]];
|
||||
|
||||
namespace impl {
|
||||
|
||||
fn format_ipv4_address(IPv4Address address) {
|
||||
return std::format("{}.{}.{}.{}",
|
||||
address.bytes[0],
|
||||
address.bytes[1],
|
||||
address.bytes[2],
|
||||
address.bytes[3]);
|
||||
};
|
||||
|
||||
fn format_ipv6_address(IPv6Address address) {
|
||||
return std::format("{:04X}:{:04X}:{:04X}:{:04X}:{:04X}:{:04X}:{:04X}:{:04X}",
|
||||
address.words[0],
|
||||
address.words[1],
|
||||
address.words[2],
|
||||
address.words[3],
|
||||
address.words[4],
|
||||
address.words[5],
|
||||
address.words[6],
|
||||
address.words[7]);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
33
includes/type/leb128.pat
Normal file
33
includes/type/leb128.pat
Normal file
@@ -0,0 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
#include <std/mem.pat>
|
||||
|
||||
namespace type {
|
||||
|
||||
struct LEB128 {
|
||||
u8 array[while($ == addressof(this) || std::mem::read_unsigned($-1, 1) & 0x80 != 0)] [[hidden]];
|
||||
} [[sealed, format("type::impl::format_leb128"), transform("type::impl::transform_leb128")]];
|
||||
|
||||
namespace impl {
|
||||
|
||||
fn transform_leb128_array(auto array) {
|
||||
u128 res = array[0] & 0x7f;
|
||||
for(u8 i = 1, array[i-1] & 0x80 != 0, i+=1) {
|
||||
res |= u64(array[i] & 0x7f) << 7 * i;
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
fn format_leb128(auto leb128) {
|
||||
u128 res = type::impl::transform_leb128_array(leb128.array);
|
||||
return std::format("{} ({:#x})", res, res);
|
||||
};
|
||||
|
||||
fn transform_leb128(auto leb128) {
|
||||
return type::impl::transform_leb128_array(leb128.array);
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
25
includes/type/mac.pat
Normal file
25
includes/type/mac.pat
Normal file
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
|
||||
namespace type {
|
||||
|
||||
struct MACAddress {
|
||||
u8 bytes[6];
|
||||
} [[sealed, format("type::impl::format_mac_address")]];
|
||||
|
||||
namespace impl {
|
||||
|
||||
fn format_mac_address(MACAddress address) {
|
||||
return std::format("{:02X}:{:02X}:{:02X}:{:02X}:{:02X}:{:02X}",
|
||||
address.bytes[0],
|
||||
address.bytes[1],
|
||||
address.bytes[2],
|
||||
address.bytes[3],
|
||||
address.bytes[4],
|
||||
address.bytes[5]);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
18
includes/type/time.pat
Normal file
18
includes/type/time.pat
Normal file
@@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include <std/io.pat>
|
||||
#include <std/time.pat>
|
||||
|
||||
namespace type {
|
||||
|
||||
using time_t = u16 [[format("type::impl::format_time_t")]];
|
||||
|
||||
namespace impl {
|
||||
|
||||
fn format_time_t(time_t value) {
|
||||
return std::time::format(std::time::to_utc(value));
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -17,9 +17,9 @@ struct ARFile {
|
||||
u8 data[std::string::parse_int(this.file_size, 10)];
|
||||
padding[sizeof(data) & 1];
|
||||
}
|
||||
} [[static]];
|
||||
};
|
||||
|
||||
char signature[8] @ 0x00;
|
||||
std::assert(signature == "!<arch>\n", "File is not a valid archive!");
|
||||
|
||||
ARFile files[while($ < std::mem::size())] @ $;
|
||||
ARFile files[while($ < std::mem::size())] @ $;
|
||||
|
||||
@@ -181,7 +181,7 @@ namespace program {
|
||||
u64 memory_size;
|
||||
u64 alignment;
|
||||
}
|
||||
} [[static]];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -251,7 +251,7 @@ namespace section {
|
||||
u64 address_alignment;
|
||||
u64 entry_size;
|
||||
}
|
||||
} [[static]];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
168
patterns/fs.hexpat
Normal file
168
patterns/fs.hexpat
Normal file
@@ -0,0 +1,168 @@
|
||||
#include <std/io.pat>
|
||||
|
||||
struct DiskTimeStamp {
|
||||
u8 seconds, minutes, hours;
|
||||
};
|
||||
|
||||
enum DiskProtection : u16 {
|
||||
None = 0x0000,
|
||||
CopyProtected = 0x5A5A
|
||||
};
|
||||
|
||||
bitfield CHS {
|
||||
h : 8;
|
||||
s : 6;
|
||||
c : 10;
|
||||
} [[right_to_left, format("chs_formatter")]];
|
||||
|
||||
fn chs_formatter(CHS chs) {
|
||||
return std::format("({:X}, {:X}, {:X}) | 0x{:X}", chs.c, chs.h, chs.s, (chs.c * 16 + chs.h) * 63 + (chs.s - 1));
|
||||
};
|
||||
|
||||
enum PartitionStatus : u8 {
|
||||
None = 0x00,
|
||||
Active = 0x80
|
||||
};
|
||||
|
||||
enum PartitionType : u8 {
|
||||
EmptyPartitionEntry = 0x00,
|
||||
FAT32_CHS = 0x0B,
|
||||
FAT32_LBA = 0x0C
|
||||
};
|
||||
|
||||
namespace fat32 {
|
||||
|
||||
u64 bytesPerCluster;
|
||||
|
||||
struct FSInfo {
|
||||
u32 leadSignature;
|
||||
padding[480];
|
||||
u32 structSignature;
|
||||
u32 freeClusterCount;
|
||||
u32 nextFreeCluster;
|
||||
padding[12];
|
||||
u32 trailSignature;
|
||||
};
|
||||
|
||||
bitfield SequenceNumber {
|
||||
padding : 1;
|
||||
lastLogical : 1;
|
||||
padding : 1;
|
||||
number : 5;
|
||||
} [[left_to_right]];
|
||||
|
||||
enum EntryStatus : u8 {
|
||||
Regular = 0x00,
|
||||
DotEntry = 0x2E,
|
||||
DeletedEntry = 0xE5
|
||||
};
|
||||
|
||||
union EntryStatusOrSequenceNumber {
|
||||
EntryStatus entryStatus;
|
||||
SequenceNumber sequenceNumber;
|
||||
};
|
||||
|
||||
bitfield Attributes {
|
||||
readOnly : 1;
|
||||
hidden : 1;
|
||||
systemFile : 1;
|
||||
volumeLabel : 1;
|
||||
subdirectory : 1;
|
||||
archive : 1;
|
||||
padding : 2;
|
||||
} [[right_to_left]];
|
||||
|
||||
struct DirEntry {
|
||||
char fileName[8];
|
||||
char extension[3];
|
||||
Attributes attributes;
|
||||
u8 reserved[10];
|
||||
u16 time, date;
|
||||
u16 startingCluster;
|
||||
u32 fileSize;
|
||||
|
||||
u8 data[fileSize] @ startingCluster * bytesPerCluster;
|
||||
};
|
||||
|
||||
struct VFATDirEntry {
|
||||
EntryStatusOrSequenceNumber entryStatusOrSequenceNumber;
|
||||
char16 name1[5];
|
||||
Attributes attributes;
|
||||
u8 type;
|
||||
u8 nameChecksum;
|
||||
char16 name2[6];
|
||||
u16 startingCluster;
|
||||
char16 name3[2];
|
||||
|
||||
if (entryStatusOrSequenceNumber.sequenceNumber.number > 1)
|
||||
VFATDirEntry nextLogicalEntry;
|
||||
else
|
||||
DirEntry physicalEntry;
|
||||
};
|
||||
|
||||
struct Partition {
|
||||
u8 jmpCode[3];
|
||||
char oemName[8];
|
||||
u16 bytesPerSector;
|
||||
u8 sectorsPerCluster;
|
||||
u16 reservedAreaSize;
|
||||
u8 numFats;
|
||||
u16 rootEntryCount;
|
||||
u16 numSectors;
|
||||
u8 mediaType;
|
||||
u16 fatSize;
|
||||
u16 sectorsPerTrack;
|
||||
u16 numHeads;
|
||||
u32 numHiddenSectors;
|
||||
u32 numFsSectors;
|
||||
u32 numFatSectors;
|
||||
u16 extFlags;
|
||||
u16 fsVersion;
|
||||
u32 rootCluster;
|
||||
u16 fsInfoSector;
|
||||
u16 backupBootSector;
|
||||
padding[12];
|
||||
u8 driveNumber;
|
||||
padding[1];
|
||||
u8 bootSignature;
|
||||
u32 volumeID;
|
||||
char volumeLabel[11];
|
||||
char fsType[8];
|
||||
u8 bootstrapCode[420];
|
||||
u16 signature;
|
||||
|
||||
bytesPerCluster = (sectorsPerCluster * 1024) * bytesPerSector;
|
||||
|
||||
FSInfo fsInfo @ addressof(this) + fsInfoSector * bytesPerSector;
|
||||
VFATDirEntry rootDirEntry @ addressof(this) + rootCluster * bytesPerCluster;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
struct PartitionEntry {
|
||||
PartitionStatus status;
|
||||
CHS chsFirstSectorAddress;
|
||||
PartitionType type;
|
||||
CHS chsLastSectorAddress;
|
||||
u32 lbaFirstSectorAddress;
|
||||
u32 numSectors;
|
||||
|
||||
if (type == PartitionType::EmptyPartitionEntry)
|
||||
continue;
|
||||
else if (type == PartitionType::FAT32_CHS || type == PartitionType::FAT32_LBA)
|
||||
fat32::Partition partition @ lbaFirstSectorAddress * 512;
|
||||
};
|
||||
|
||||
struct MasterBootRecord {
|
||||
u8 bootstrapCodeArea1[218];
|
||||
padding[2];
|
||||
u8 originalPhysicalDrive;
|
||||
DiskTimeStamp diskTimeStamp;
|
||||
u8 bootstrapCodeArea2[216];
|
||||
u32 diskSignature;
|
||||
DiskProtection diskProtection;
|
||||
PartitionEntry partitionEntries[4];
|
||||
u16 bootSignature;
|
||||
};
|
||||
|
||||
MasterBootRecord mbr @ 0x00;
|
||||
@@ -1,4 +1,10 @@
|
||||
#pragma MIME application/x-dosexec
|
||||
#pragma MIME application/x-msdownload
|
||||
#pragma pattern_limit 100000
|
||||
#pragma array_limit 10000
|
||||
#include <std/mem.pat>
|
||||
#include <std/string.pat>
|
||||
#include <std/ctype.pat>
|
||||
#include <std/io.pat>
|
||||
|
||||
enum MachineType : u16 {
|
||||
Unknown = 0x00,
|
||||
@@ -7,9 +13,13 @@ enum MachineType : u16 {
|
||||
ARM = 0x1C0,
|
||||
ARM64 = 0xAA64,
|
||||
ARMNT = 0x1C4,
|
||||
DECAlphaAXP = 0x183,
|
||||
EBC = 0xEBC,
|
||||
I386 = 0x14C,
|
||||
I860 = 0x14D,
|
||||
IA64 = 0x200,
|
||||
LOONGARCH32 = 0x6232,
|
||||
LOONGARCH64 = 0x6264,
|
||||
M32R = 0x9041,
|
||||
MIPS16 = 0x266,
|
||||
MIPSFPU = 0x366,
|
||||
@@ -28,32 +38,99 @@ enum MachineType : u16 {
|
||||
WCEMIPSV2 = 0x169
|
||||
};
|
||||
|
||||
enum PEFormat : u16 {
|
||||
PE32 = 0x10B,
|
||||
PE32Plus = 0x20B
|
||||
};
|
||||
|
||||
enum SubsystemType : u16 {
|
||||
Unknown = 0x00,
|
||||
Native = 0x01,
|
||||
WindowsGUI = 0x02,
|
||||
WindowsCUI = 0x03,
|
||||
OS2CUI = 0x05,
|
||||
POSIXCUI = 0x07,
|
||||
Windows9xNative = 0x08,
|
||||
WindowsCEGUI = 0x09,
|
||||
EFIApplication = 0x0A,
|
||||
EFIBootServiceDriver = 0x0B,
|
||||
EFIRuntimeDriver = 0x0C,
|
||||
EFIROM = 0x0D,
|
||||
Xbox = 0x0E,
|
||||
WindowsBootApplication = 0x10
|
||||
};
|
||||
|
||||
bitfield Characteristics {
|
||||
stripped : 1;
|
||||
relocationsStripped : 1;
|
||||
executableImage : 1;
|
||||
lineNumsStripped : 1;
|
||||
localSymsStripped : 1;
|
||||
lineNumbersStripped : 1;
|
||||
localSymbolsStripped : 1;
|
||||
aggressiveWsTrim : 1;
|
||||
largeAddressAware : 1;
|
||||
reserved : 1;
|
||||
bytesReversedLo : 1;
|
||||
is32BitMachine : 1;
|
||||
debugStripped : 1;
|
||||
debugInfoStripped : 1;
|
||||
removableRunFromSwap : 1;
|
||||
netRunFromSwap : 1;
|
||||
system : 1;
|
||||
dll : 1;
|
||||
upSystemOnly : 1;
|
||||
uniprocessorMachineOnly : 1;
|
||||
bytesReversedHi : 1;
|
||||
};
|
||||
} [[right_to_left]];
|
||||
|
||||
bitfield DLLCharacteristics {
|
||||
reserved : 4;
|
||||
padding : 1;
|
||||
highEntropyVA : 1;
|
||||
dynamicBase : 1;
|
||||
forceIntegrity : 1;
|
||||
nxCompatible : 1;
|
||||
noIsolation : 1;
|
||||
noSEH : 1;
|
||||
doNotBind : 1;
|
||||
appContainer : 1;
|
||||
wdmDriver : 1;
|
||||
cfGuard : 1;
|
||||
terminalServerAware : 1;
|
||||
} [[right_to_left]];
|
||||
|
||||
bitfield SectionFlags {
|
||||
reserved : 3;
|
||||
doNotPad : 1;
|
||||
reserved : 1;
|
||||
containsCode : 1;
|
||||
containsInitializedData : 1;
|
||||
containsUninitializedData : 1;
|
||||
linkOther : 1;
|
||||
comments : 1;
|
||||
reserved : 1;
|
||||
remove : 1;
|
||||
comdat : 1;
|
||||
padding : 2;
|
||||
globalPointerRelocation : 1;
|
||||
purgeable : 1;
|
||||
is16Bit : 1;
|
||||
locked : 1;
|
||||
preloaded : 1;
|
||||
dataAlignment : 4;
|
||||
extendedRelocations : 1;
|
||||
discardable : 1;
|
||||
notCacheable : 1;
|
||||
notPageable : 1;
|
||||
shared : 1;
|
||||
executed : 1;
|
||||
read : 1;
|
||||
writtenTo : 1;
|
||||
} [[right_to_left]];
|
||||
|
||||
struct DataDirectory {
|
||||
u32 virtualAddress;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
struct OptionalHeader32 {
|
||||
u16 magic;
|
||||
struct OptionalHeader {
|
||||
PEFormat magic;
|
||||
u8 majorLinkerVersion;
|
||||
u8 minorLinkerVersion;
|
||||
u32 sizeOfCode;
|
||||
@@ -61,8 +138,13 @@ struct OptionalHeader32 {
|
||||
u32 sizeOfUninitializedData;
|
||||
u32 addressOfEntryPoint;
|
||||
u32 baseOfCode;
|
||||
u32 baseOfData;
|
||||
u32 imageBase;
|
||||
if (magic == PEFormat::PE32) {
|
||||
u32 baseOfData;
|
||||
u32 imageBase;
|
||||
}
|
||||
else if (magic == PEFormat::PE32Plus) {
|
||||
u64 imageBase;
|
||||
}
|
||||
u32 sectionAlignment;
|
||||
u32 fileAlignment;
|
||||
u16 majorOperatingSystemVersion;
|
||||
@@ -75,103 +157,527 @@ struct OptionalHeader32 {
|
||||
u32 sizeOfImage;
|
||||
u32 sizeOfHeaders;
|
||||
u32 checksum;
|
||||
u16 subsystem;
|
||||
u16 dllCharacteristics;
|
||||
u32 sizeOfStackReserve;
|
||||
u32 sizeOfStackCommit;
|
||||
u32 sizeOfHeapReserve;
|
||||
u32 sizeOfHeapCommit;
|
||||
SubsystemType subsystem;
|
||||
DLLCharacteristics dllCharacteristics;
|
||||
if (magic == PEFormat::PE32) {
|
||||
u32 sizeOfStackReserve;
|
||||
u32 sizeOfStackCommit;
|
||||
u32 sizeOfHeapReserve;
|
||||
u32 sizeOfHeapCommit;
|
||||
}
|
||||
else if (magic == PEFormat::PE32Plus) {
|
||||
u64 sizeOfStackReserve;
|
||||
u64 sizeOfStackCommit;
|
||||
u64 sizeOfHeapReserve;
|
||||
u64 sizeOfHeapCommit;
|
||||
}
|
||||
u32 loaderFlags;
|
||||
u32 numberOfRvaAndSizes;
|
||||
DataDirectory directories[numberOfRvaAndSizes];
|
||||
u32 numberOfRVAsAndSizes;
|
||||
DataDirectory directories[numberOfRVAsAndSizes];
|
||||
};
|
||||
|
||||
struct OptionalHeader64 {
|
||||
u16 magic;
|
||||
u8 majorLinkerVersion;
|
||||
u8 minorLinkerVersion;
|
||||
u32 sizeOfCode;
|
||||
u32 sizeOfInitializedData;
|
||||
u32 sizeOfUninitializedData;
|
||||
u32 addressOfEntryPoint;
|
||||
u32 baseOfCode;
|
||||
u64 imageBase;
|
||||
u32 sectionAlignment;
|
||||
u32 fileAlignment;
|
||||
u16 majorOperatingSystemVersion;
|
||||
u16 minorOperatingSystemVersion;
|
||||
u16 majorImageVersion;
|
||||
u16 minorImageVersion;
|
||||
u16 majorSubsystemVersion;
|
||||
u16 minorSubSystemVersion;
|
||||
u32 win32VersionValue;
|
||||
u32 sizeOfImage;
|
||||
u32 sizeOfHeaders;
|
||||
u32 checksum;
|
||||
u16 subsystem;
|
||||
u16 dllCharacteristics;
|
||||
u64 sizeOfStackReserve;
|
||||
u64 sizeOfStackCommit;
|
||||
u64 sizeOfHeapReserve;
|
||||
u64 sizeOfHeapCommit;
|
||||
u32 loaderFlags;
|
||||
u32 numberOfRvaAndSizes;
|
||||
DataDirectory directories[numberOfRvaAndSizes];
|
||||
};
|
||||
|
||||
struct COFFHeader {
|
||||
u32 signature;
|
||||
struct COFFHeader {
|
||||
char signature[4];
|
||||
MachineType machine;
|
||||
u16 numberOfSections;
|
||||
u32 timeDateStamp;
|
||||
u32 pointerToSymbolTable;
|
||||
u32 numberOfSymbolTable;
|
||||
u32 numberOfSymbols;
|
||||
u16 sizeOfOptionalHeader;
|
||||
Characteristics characteristics;
|
||||
|
||||
if (machine == MachineType::AMD64) {
|
||||
OptionalHeader64 optionalHeader;
|
||||
} else {
|
||||
OptionalHeader32 optionalHeader;
|
||||
|
||||
if (sizeOfOptionalHeader > 0x00) {
|
||||
OptionalHeader optionalHeader;
|
||||
}
|
||||
};
|
||||
|
||||
struct DOSHeader {
|
||||
u16 signature;
|
||||
u8 header[0x3A];
|
||||
COFFHeader *coffHeaderPointer : u32;
|
||||
char signature[2];
|
||||
u16 lastPageSize;
|
||||
u16 numberOfPages;
|
||||
u16 relocations;
|
||||
u16 headerSizeInParagraphs;
|
||||
u16 minimumAllocatedParagraphs;
|
||||
u16 maximumAllocatedParagraphs;
|
||||
u16 initialSSValue;
|
||||
u16 initialRelativeSPValue;
|
||||
u16 checksum;
|
||||
u16 initialRelativeIPValue;
|
||||
u16 initialCSValue;
|
||||
u16 relocationsTablePointer;
|
||||
u16 overlayNumber;
|
||||
u16 reservedWords[4];
|
||||
u16 oemIdentifier;
|
||||
u16 oemInformation;
|
||||
u16 reservedWords[10];
|
||||
u32 coffHeaderPointer;
|
||||
};
|
||||
|
||||
fn isdosmessage(char c) {
|
||||
return std::ctype::isalnum(c) || c == '.' || c == ' ';
|
||||
};
|
||||
|
||||
struct DOSStub {
|
||||
u8 code[14];
|
||||
s8 message[0x27];
|
||||
u8 data[11];
|
||||
u8 code[while(std::mem::read_string($, 4) != "This")];
|
||||
char message[while(isdosmessage(std::mem::read_unsigned($, 1)))];
|
||||
char data[while(std::mem::read_unsigned($, 1) != 0x00)];
|
||||
};
|
||||
|
||||
union SectionMisc {
|
||||
u32 physicalAddress;
|
||||
u32 virtualSize;
|
||||
struct PEHeader {
|
||||
DOSHeader dosHeader;
|
||||
if (dosHeader.headerSizeInParagraphs * 16 < std::mem::size()) {
|
||||
DOSStub dosStub @ dosHeader.headerSizeInParagraphs * 16;
|
||||
}
|
||||
};
|
||||
|
||||
struct Section {
|
||||
PEHeader peHeader @ 0x00;
|
||||
|
||||
COFFHeader coffHeader @ peHeader.dosHeader.coffHeaderPointer;
|
||||
|
||||
struct SectionHeader {
|
||||
char name[8];
|
||||
SectionMisc misc;
|
||||
if (coffHeader.characteristics.executableImage) {
|
||||
u32 virtualSize;
|
||||
} else {
|
||||
u32 physicalAddress;
|
||||
}
|
||||
u32 virtualAddress;
|
||||
u32 sizeOfRawData;
|
||||
u32 ptrRawData;
|
||||
u32 ptrRelocations;
|
||||
u32 ptrLineNumbers;
|
||||
u16 numberOfRelactions;
|
||||
u16 numberOfRelocations;
|
||||
u16 numberOfLineNumbers;
|
||||
SectionFlags characteristics;
|
||||
};
|
||||
|
||||
SectionHeader sectionTable[coffHeader.numberOfSections] @ (addressof(coffHeader.characteristics) + 2) + coffHeader.sizeOfOptionalHeader;
|
||||
|
||||
u16 currentSectionIndex;
|
||||
fn updateSectionIndex() {
|
||||
currentSectionIndex = currentSectionIndex + 1;
|
||||
};
|
||||
|
||||
struct NullTerminatedString {
|
||||
char string[while(std::mem::read_unsigned($, 1) != 0x00)];
|
||||
padding[1];
|
||||
} [[inline]];
|
||||
|
||||
// Declarations of sections and variables used by it
|
||||
// Imports + Readonly Data Section
|
||||
struct DirectoryTable {
|
||||
u32 lookupTableRVA;
|
||||
u32 timeDateStamp;
|
||||
u32 forwarderChain;
|
||||
u32 dllNameRVA;
|
||||
u32 addressTableRVA;
|
||||
};
|
||||
|
||||
struct ImportsSection {
|
||||
DirectoryTable directoryTables[while(std::mem::read_unsigned($, 16) != 0x00)];
|
||||
DirectoryTable nullDirectoryTable;
|
||||
};
|
||||
|
||||
struct ReadonlyDataSection {
|
||||
u8 readonlyDataStart[while($ < coffHeader.optionalHeader.directories[1].virtualAddress - (sectionTable[currentSectionIndex].virtualAddress - sectionTable[currentSectionIndex].ptrRawData))];
|
||||
ImportsSection importsSection;
|
||||
u8 readonlyDataEnd[while($ < sectionTable[currentSectionIndex+1].ptrRawData)];
|
||||
};
|
||||
|
||||
// Resource Section
|
||||
struct ResourceDirectoryTable {
|
||||
u32 characteristics;
|
||||
u32 timeDateStamp;
|
||||
u16 majorVersion;
|
||||
u16 minorVersion;
|
||||
u16 nameEntriesAmount;
|
||||
u16 idEntriesAmount;
|
||||
};
|
||||
|
||||
enum ResourceID : u32 {
|
||||
Bitmap = 0x02,
|
||||
Icon = 0x03,
|
||||
Menu = 0x04,
|
||||
Dialog = 0x05,
|
||||
String = 0x06,
|
||||
GroupIcon = 0x0D,
|
||||
Version = 0x10,
|
||||
Manifest = 0x18
|
||||
};
|
||||
|
||||
struct IdDirectoryEntry {
|
||||
ResourceID id;
|
||||
u32 relativeOffsetToData;
|
||||
};
|
||||
|
||||
struct ResourceDirectory {
|
||||
ResourceDirectoryTable resourceDirectoryTable;
|
||||
IdDirectoryEntry idEntries[resourceDirectoryTable.idEntriesAmount];
|
||||
};
|
||||
|
||||
struct ResourceSection {
|
||||
ResourceDirectory rootDirectory;
|
||||
};
|
||||
|
||||
// Exports Section
|
||||
struct ExportDirectoryTable {
|
||||
u32 exportFlags;
|
||||
u32 timeDateStamp;
|
||||
u16 majorVersion;
|
||||
u16 minorVersion;
|
||||
u32 nameRVA;
|
||||
u32 ordinalBase;
|
||||
u32 addressTableEntries;
|
||||
u32 numberOfNamePointers;
|
||||
u32 exportAddressTableRVA;
|
||||
u32 namePointerRVA;
|
||||
u32 ordinalTableRVA;
|
||||
};
|
||||
|
||||
struct ExportAddress {
|
||||
if (std::mem::read_unsigned($, 4) > sectionTable[currentSectionIndex].sizeOfRawData && std::mem::read_unsigned($, 4) < sectionTable[currentSectionIndex].ptrRawData) {
|
||||
u32 exportRVA;
|
||||
}
|
||||
else {
|
||||
u32 forwarderRVA;
|
||||
}
|
||||
};
|
||||
|
||||
struct ExportsSection {
|
||||
ExportDirectoryTable exportDirectoryTable;
|
||||
ExportAddress exportAddressTable[exportDirectoryTable.addressTableEntries];
|
||||
u32 exportNamePointerTable[exportDirectoryTable.numberOfNamePointers];
|
||||
};
|
||||
|
||||
// Exception Section
|
||||
bitfield ExceptionSectionBits {
|
||||
functionLength : 22;
|
||||
instructions32Bit : 1;
|
||||
exceptionHandler : 1;
|
||||
} [[right_to_left]];
|
||||
|
||||
struct FunctionTableEntry {
|
||||
if (coffHeader.machine == MachineType::MIPSFPU) {
|
||||
u32 beginVA;
|
||||
u32 endVA;
|
||||
u32 exceptionHandlerPointer;
|
||||
u32 handlerDataPointer;
|
||||
u32 prologEndVA;
|
||||
} else if (coffHeader.machine == MachineType::ARM || MachineType::ARM64 || MachineType::ARMNT || MachineType::POWERPC || MachineType::POWERPCFP || MachineType::SH3 || MachineType::SH4) {
|
||||
u32 beginVA;
|
||||
u8 prologLength;
|
||||
ExceptionSectionBits miscellaneousBits;
|
||||
} else if (coffHeader.machine == MachineType::AMD64 || MachineType::IA64) {
|
||||
u32 beginRVA;
|
||||
u32 endRVA;
|
||||
u32 unwindInformationRVA;
|
||||
}
|
||||
};
|
||||
|
||||
struct ExceptionSection {
|
||||
FunctionTableEntry functionTableEntries[while($ < sectionTable[currentSectionIndex].ptrRawData + sectionTable[currentSectionIndex].sizeOfRawData)];
|
||||
};
|
||||
|
||||
// TLS Section
|
||||
struct TLSSection {
|
||||
if (coffHeader.optionalHeader.magic == PEFormat::PE32) {
|
||||
u32 rawDataStartVA;
|
||||
u32 rawDataEndVA;
|
||||
u32 indexAddress;
|
||||
u32 callbacksAddress;
|
||||
}
|
||||
else if (coffHeader.optionalHeader.magic == PEFormat::PE32Plus) {
|
||||
u64 rawDataStartVA;
|
||||
u64 rawDataEndVA;
|
||||
u64 indexAddress;
|
||||
u64 callbacksAddress;
|
||||
}
|
||||
u32 zeroFillSize;
|
||||
u32 characteristics;
|
||||
};
|
||||
|
||||
struct PEHeader {
|
||||
DOSHeader dosHeader;
|
||||
DOSStub dosStub;
|
||||
// Relocations Section
|
||||
bitfield RelocationWord {
|
||||
type : 4;
|
||||
offset : 12;
|
||||
};
|
||||
|
||||
PEHeader peHeader @ 0x00;
|
||||
struct BaseRelocationBlock {
|
||||
u32 pageRVA;
|
||||
u32 blockSize;
|
||||
RelocationWord word;
|
||||
};
|
||||
|
||||
Section sectionsTable[peHeader.dosHeader.coffHeaderPointer.numberOfSections]
|
||||
@ addressof(peHeader.dosHeader.coffHeaderPointer) + sizeof(peHeader.dosHeader.coffHeaderPointer);
|
||||
struct BaseRelocationTable {
|
||||
BaseRelocationBlock baseRelocationBlocks[while(std::mem::read_unsigned($, 8) != 0x00)];
|
||||
};
|
||||
|
||||
// General Section things
|
||||
enum I386Relocations : u16 {
|
||||
Absolute = 0x00,
|
||||
Dir16 = 0x01,
|
||||
Rel16 = 0x02,
|
||||
Dir32 = 0x06
|
||||
};
|
||||
|
||||
struct Relocation {
|
||||
u32 virtualAddress;
|
||||
u32 symbolTableIndex;
|
||||
if (coffHeader.machine == MachineType::I386) {
|
||||
I386Relocations type;
|
||||
}
|
||||
else {
|
||||
u16 type;
|
||||
}
|
||||
};
|
||||
|
||||
struct LineNumber {
|
||||
u32 lineNumber @ $ + 4;
|
||||
if (lineNumber > 0x00) {
|
||||
u32 virtualAddress @ $ - 8;
|
||||
} else {
|
||||
u32 symbolTableIndex @ $ - 8;
|
||||
}
|
||||
$ += 8;
|
||||
};
|
||||
|
||||
fn importsSectionExists() {
|
||||
bool returnedValue = false;
|
||||
std::print("Checking which section is .idata for read-only data section");
|
||||
for (u16 i = 0, i < coffHeader.numberOfSections, i = i + 1) {
|
||||
std::print("Checking section " + std::string::to_string(i));
|
||||
if (sectionTable[i].name == ".idata") {
|
||||
std::print("Check successful. Section " + std::string::to_string(i) + " is .idata, so the read-only data section won't have an imports section in it");
|
||||
returnedValue = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!returnedValue) {
|
||||
std::print("Check failed! This means there is no separate imports section");
|
||||
}
|
||||
return returnedValue;
|
||||
};
|
||||
|
||||
struct Section {
|
||||
if (std::string::starts_with(sectionTable[currentSectionIndex].name, ".pdata")) { // Exception section
|
||||
ExceptionSection exceptionSection;
|
||||
}
|
||||
else if (std::string::starts_with(sectionTable[currentSectionIndex].name, ".rdata")) {// Read-only data section
|
||||
if (importsSectionExists() || coffHeader.optionalHeader.directories[1].size == 0) {
|
||||
u8 readonlyDataSection[sectionTable[currentSectionIndex].sizeOfRawData];
|
||||
}
|
||||
else {
|
||||
ReadonlyDataSection readonlyDataSection;
|
||||
}
|
||||
}
|
||||
else if (std::string::starts_with(sectionTable[currentSectionIndex].name, ".idata")) {// Imports section
|
||||
ImportsSection importsSection;
|
||||
}
|
||||
else if (std::string::starts_with(sectionTable[currentSectionIndex].name, ".edata")) {// Exports section
|
||||
ExportsSection exportsSection;
|
||||
}
|
||||
else if (std::string::starts_with(sectionTable[currentSectionIndex].name, ".rsrc")) { // Resource section
|
||||
ResourceSection resourceSection;
|
||||
}
|
||||
else if (std::string::starts_with(sectionTable[currentSectionIndex].name, ".tls")) { // Thread-local storage section
|
||||
TLSSection tlsSection;
|
||||
}
|
||||
else if (std::string::starts_with(sectionTable[currentSectionIndex].name, ".reloc")) {// Thread-local storage section
|
||||
BaseRelocationTable relocationsSection;
|
||||
}
|
||||
else {
|
||||
u8 freeformSection[sectionTable[currentSectionIndex].sizeOfRawData]; // Freeform data section
|
||||
}
|
||||
|
||||
// Additional things
|
||||
//Relocation relocations[sectionTable[currentSectionIndex].numberOfRelocations] @ sectionTable[currentSectionIndex].ptrRelocations;
|
||||
LineNumber lineNumbers[sectionTable[currentSectionIndex].numberOfLineNumbers] @ sectionTable[currentSectionIndex].ptrLineNumbers;
|
||||
|
||||
// Next section
|
||||
if (currentSectionIndex < coffHeader.numberOfSections-1) { // If it's not the last section (to avoid problems this code would have with it)
|
||||
updateSectionIndex(); // Make the current section index the next section's index
|
||||
if (sectionTable[currentSectionIndex].sizeOfRawData > 0) { // If the size of this section is bigger than 0
|
||||
$ = sectionTable[currentSectionIndex].ptrRawData; // Put the current offset at the start of the next section
|
||||
}
|
||||
}
|
||||
} [[inline]];
|
||||
|
||||
Section sections[coffHeader.numberOfSections] @ sectionTable[0].ptrRawData;
|
||||
|
||||
// Symbol & String Tables
|
||||
enum SectionNumberType : s16 {
|
||||
Undefined = 0,
|
||||
Absolute = -1,
|
||||
Debug = -2
|
||||
};
|
||||
|
||||
enum SymbolTypeMSB : u8 {
|
||||
Null = 0x00,
|
||||
Pointer = 0x10,
|
||||
Function = 0x20,
|
||||
Array = 0x30
|
||||
};
|
||||
|
||||
enum SymbolTypeLSB : u8 {
|
||||
Null = 0x00,
|
||||
Void = 0x01,
|
||||
Char = 0x02,
|
||||
Short = 0x03,
|
||||
Integer = 0x04,
|
||||
Long = 0x05,
|
||||
Float = 0x06,
|
||||
Double = 0x07,
|
||||
Struct = 0x08,
|
||||
Union = 0x09,
|
||||
Enum = 0x0A,
|
||||
MemberOfEnum = 0x0B,
|
||||
Byte = 0x0C,
|
||||
Word = 0x0D,
|
||||
UInt = 0x0E,
|
||||
DWord = 0x0F
|
||||
};
|
||||
|
||||
enum StorageClassType : s8 {
|
||||
EndOfFunction = -1,
|
||||
Null = 0,
|
||||
Automatic = 1,
|
||||
External = 2,
|
||||
Static = 3,
|
||||
Register = 4,
|
||||
DefinedExternally = 5,
|
||||
Label = 6,
|
||||
UndefinedLabel = 7,
|
||||
MemberOfStruct = 8,
|
||||
Argument = 9,
|
||||
StructTag = 10,
|
||||
MemberOfUnion = 11,
|
||||
UnionTag = 12,
|
||||
TypeDefinition = 13,
|
||||
UndefinedStatic = 14,
|
||||
EnumTag = 15,
|
||||
MemberOfEnum = 16,
|
||||
RegisterParameter = 17,
|
||||
Bitfield = 18,
|
||||
Block = 100,
|
||||
BlockFunction = 101,
|
||||
EndOfStruct = 102,
|
||||
File = 103,
|
||||
Section = 104,
|
||||
WeakExternal = 105,
|
||||
CLRToken = 107
|
||||
};
|
||||
|
||||
struct SymbolNameAddress {
|
||||
u32 zeroes;
|
||||
u32 offset;
|
||||
};
|
||||
|
||||
struct SymbolName {
|
||||
if (std::mem::read_unsigned($, 4) == 0) {
|
||||
SymbolNameAddress nameAddress;
|
||||
}
|
||||
else {
|
||||
char shortName[8];
|
||||
}
|
||||
};
|
||||
|
||||
struct SymbolType {
|
||||
SymbolTypeMSB msb;
|
||||
SymbolTypeLSB lsb;
|
||||
};
|
||||
|
||||
struct Symbol {
|
||||
SymbolName name;
|
||||
u32 value;
|
||||
SectionNumberType sectionNumber;
|
||||
SymbolType type;
|
||||
StorageClassType storageClass;
|
||||
u8 numberOfAuxSymbols;
|
||||
};
|
||||
|
||||
Symbol symbolTable[coffHeader.numberOfSymbols] @ coffHeader.pointerToSymbolTable;
|
||||
|
||||
struct StringTable {
|
||||
u32 size;
|
||||
NullTerminatedString strings[while($ < addressof(this) + size)];
|
||||
} [[inline]];
|
||||
|
||||
StringTable stringTable[coffHeader.numberOfSymbols > 0] @ addressof(symbolTable) + sizeof(symbolTable);
|
||||
|
||||
// Rich Header
|
||||
enum ProductType : u16 {
|
||||
Unmarked = 0x00 ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
Imports = 0x01 ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
STDLIBDLL = 0x04 ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC6CVTRes = 0x06 ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC6CCompiler = 0x0A ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC6CPPCompiler = 0x0B ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
OldNames = 0x0C ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
MASM613 = 0x0E ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2003Assembler = 0x0F ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2002Linker = 0x19 ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2002CCompiler = 0x1C ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2002CPPCompiler = 0x1D ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2003SDKIMP = 0x5D ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2003CPPCompiler = 0x60 ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2008SDKIMP = 0x93 ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
Linker12 = 0x9D ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
MASM10 = 0x9E ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2010CCompiler = 0xAA ^ richHeaderEnd[0].mask.maskArray[1],
|
||||
VC2010CPPCompiler = 0xAB ^ richHeaderEnd[0].mask.maskArray[1]
|
||||
};
|
||||
|
||||
union RichHeaderMask {
|
||||
u32 maskVariable;
|
||||
u16 maskArray[2];
|
||||
};
|
||||
|
||||
struct RichHeaderEnd {
|
||||
char signature[4];
|
||||
RichHeaderMask mask;
|
||||
} [[inline]];
|
||||
|
||||
u8 richHeaderAmount;
|
||||
u8 richHeaderEndPosition;
|
||||
u8 richHeaderCorpusPosition;
|
||||
fn initializeRichHeader() {
|
||||
$ = sizeof(peHeader);
|
||||
while ($ < peHeader.dosHeader.coffHeaderPointer) {
|
||||
if (std::mem::read_string($, 4) == "Rich") {
|
||||
richHeaderAmount = 1;
|
||||
richHeaderEndPosition = $;
|
||||
break;
|
||||
}
|
||||
$ += 1;
|
||||
}
|
||||
};
|
||||
initializeRichHeader();
|
||||
|
||||
RichHeaderEnd richHeaderEnd[richHeaderAmount] @ richHeaderEndPosition;
|
||||
|
||||
struct Product {
|
||||
u16 buildNumber;
|
||||
ProductType productID;
|
||||
u32 objectCount;
|
||||
};
|
||||
|
||||
struct RichHeaderCorpus {
|
||||
char maskedSignature[4];
|
||||
u32 nullPadding[3];
|
||||
Product products[while($ != richHeaderEndPosition)];
|
||||
} [[inline]];
|
||||
|
||||
fn setupRichHeader() {
|
||||
if (richHeaderAmount > 0) {
|
||||
//0x20 is the size of a Rich Header with one product
|
||||
for (u8 richCursor = $ - 0x20, richCursor > sizeof(peHeader), richCursor = richCursor - 0x01) {
|
||||
if (str(std::mem::read_unsigned(richCursor, 4) ^ richHeaderEnd[0].mask.maskVariable) == "DanS") {
|
||||
richHeaderCorpusPosition = richCursor;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
setupRichHeader();
|
||||
|
||||
RichHeaderCorpus richHeaderCorpus[richHeaderAmount] @ richHeaderCorpusPosition;
|
||||
|
||||
31
scripts/csv2tbl.py
Normal file
31
scripts/csv2tbl.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import csv
|
||||
import sys
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print(f"Usage: {sys.argv[0]} <file.csv>")
|
||||
exit()
|
||||
|
||||
fileName = sys.argv[1]
|
||||
|
||||
index = 0x00
|
||||
with open(f"{fileName}.tbl", "w", encoding="utf-8") as outFile:
|
||||
with open(fileName) as file:
|
||||
reader = csv.reader(file)
|
||||
for row in reader:
|
||||
for cell in row:
|
||||
if cell != "":
|
||||
try:
|
||||
number = int(cell, 16)
|
||||
if number <= 0x1F:
|
||||
lut = [ "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", "BS", "TAB", "LF", "VT", "FF", "CR", "SO", "SI", "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US"]
|
||||
print(f"{index:02X}={lut[number]}", file=outFile)
|
||||
elif number == 0x7F:
|
||||
print(f"{index:02X}=DEL", file=outFile)
|
||||
else:
|
||||
if chr(number) == chr(0xFFFD):
|
||||
raise Exception
|
||||
|
||||
print(f"{index:02X}={chr(number)}", file=outFile)
|
||||
except Exception:
|
||||
print(f"{index:02X}", file=outFile)
|
||||
index += 1
|
||||
35
scripts/extract_legacy_hexproj.py
Normal file
35
scripts/extract_legacy_hexproj.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def extractData(projectName, jsonData, objectName, extension):
|
||||
if objectName in jsonData:
|
||||
with open(f"./{projectName}.{extension}", "w") as output:
|
||||
output.write(jsonData[objectName])
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2 or not str(sys.argv[1]).endswith(".hexproj"):
|
||||
print(f"Usage: {sys.argv[0]} <filename.hexproj>")
|
||||
exit(1)
|
||||
|
||||
projectPath = sys.argv[1]
|
||||
with open(projectPath, "r") as file:
|
||||
jsonData = json.loads(file.read())
|
||||
|
||||
projectName = Path(projectPath).stem
|
||||
|
||||
extractData(projectName, jsonData, "dataProcessor", "hexnode")
|
||||
extractData(projectName, jsonData, "pattern", "hexpat")
|
||||
|
||||
if "bookmarks" in jsonData:
|
||||
with open(f"./{projectName}.hexbm", "w") as output:
|
||||
jsonOutput = {}
|
||||
jsonOutput["bookmarks"] = jsonData["bookmarks"]
|
||||
|
||||
output.write(json.dumps(jsonOutput, indent=4))
|
||||
|
||||
if "filePath" in jsonData:
|
||||
print(f"Project file used file {jsonData['filePath']}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -4,8 +4,20 @@ project(tests)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
add_subdirectory(lib/pl)
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
pattern_language
|
||||
GIT_REPOSITORY https://github.com/WerWolv/PatternLanguage
|
||||
GIT_TAG master
|
||||
)
|
||||
|
||||
FetchContent_MakeAvailable(pattern_language)
|
||||
|
||||
enable_testing()
|
||||
|
||||
add_subdirectory(patterns)
|
||||
add_subdirectory(patterns)
|
||||
add_subdirectory(includes)
|
||||
add_subdirectory(magic)
|
||||
|
||||
add_custom_target(test_all DEPENDS patterns_tests includes_test magic_test)
|
||||
29
tests/includes/CMakeLists.txt
Normal file
29
tests/includes/CMakeLists.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(includes_test)
|
||||
|
||||
set(TOP_LEVEL "${CMAKE_CURRENT_SOURCE_DIR}/../..")
|
||||
|
||||
file(GLOB INCLUDES
|
||||
"${TOP_LEVEL}/includes/*/*.pat"
|
||||
)
|
||||
|
||||
set(PATTERN_INCLUDES "${TOP_LEVEL}/includes")
|
||||
|
||||
add_executable(includes_test
|
||||
source/main.cpp
|
||||
)
|
||||
|
||||
target_include_directories(includes_test PRIVATE include)
|
||||
target_link_libraries(includes_test libpl)
|
||||
|
||||
set_target_properties(includes_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
|
||||
foreach (include IN LISTS INCLUDES)
|
||||
file(RELATIVE_PATH INCLUDE_NAME ${PATTERN_INCLUDES} ${include})
|
||||
|
||||
set(TEST_NAME "Includes/${INCLUDE_NAME}")
|
||||
|
||||
add_test(NAME ${TEST_NAME} COMMAND includes_test "${INCLUDE_NAME}" "${include}" "${PATTERN_INCLUDES}" WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
set_tests_properties(${TEST_NAME} PROPERTIES SKIP_RETURN_CODE 77)
|
||||
endforeach ()
|
||||
74
tests/includes/source/main.cpp
Normal file
74
tests/includes/source/main.cpp
Normal file
@@ -0,0 +1,74 @@
|
||||
#include <pl.hpp>
|
||||
#include <pl/helpers/file.hpp>
|
||||
|
||||
#include <pl/core/errors/preprocessor_errors.hpp>
|
||||
#include <pl/core/errors/evaluator_errors.hpp>
|
||||
|
||||
#include <fmt/format.h>
|
||||
#include <cstdlib>
|
||||
|
||||
#define EXIT_SKIP 77
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
// Any number of arguments other than 4 are invalid
|
||||
if (argc != 4)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
// Extract command line arguments
|
||||
const std::string includeName = argv[1];
|
||||
const std::fs::path includeFilePath = argv[2];
|
||||
const std::fs::path includePath = argv[3];
|
||||
|
||||
fmt::print("Running test {} on test file {}\n", includeName, includeFilePath.filename().string());
|
||||
|
||||
// Open pattern file
|
||||
pl::hlp::fs::File patternFile(includeFilePath, pl::hlp::fs::File::Mode::Read);
|
||||
if (!patternFile.isValid())
|
||||
return EXIT_FAILURE;
|
||||
|
||||
// Setup Pattern Language Runtime
|
||||
pl::PatternLanguage runtime;
|
||||
{
|
||||
constexpr auto DummyPragmaHandler = [](const auto&, const auto&){
|
||||
pl::core::err::M0006.throwError("Include files should never use this pragma!");
|
||||
return false;
|
||||
};
|
||||
|
||||
runtime.setDataSource([&](pl::u64 address, pl::u8 *data, size_t size) {
|
||||
pl::core::err::E0011.throwError("Include files should never read from memory directly!");
|
||||
}, 0x00, 0x100000);
|
||||
runtime.setDangerousFunctionCallHandler([]{ return true; });
|
||||
runtime.setIncludePaths({ includePath });
|
||||
|
||||
runtime.addPragma("endian", DummyPragmaHandler);
|
||||
runtime.addPragma("MIME", DummyPragmaHandler);
|
||||
runtime.addPragma("base_address", DummyPragmaHandler);
|
||||
runtime.addPragma("eval_depth", DummyPragmaHandler);
|
||||
runtime.addPragma("array_limit", DummyPragmaHandler);
|
||||
runtime.addPragma("pattern_limit", DummyPragmaHandler);
|
||||
}
|
||||
|
||||
// Execute pattern
|
||||
if (!runtime.executeString(patternFile.readString())) {
|
||||
fmt::print("Error during execution!\n");
|
||||
|
||||
if (const auto &hardError = runtime.getError(); hardError.has_value())
|
||||
fmt::print("Hard error: {}:{} - {}\n\n", hardError->line, hardError->column, hardError->message);
|
||||
|
||||
for (const auto &[level, message] : runtime.getConsoleLog()) {
|
||||
switch (level) {
|
||||
using enum pl::core::LogConsole::Level;
|
||||
case Debug: fmt::print(" [DEBUG] "); break;
|
||||
case Info: fmt::print(" [INFO] "); break;
|
||||
case Warning: fmt::print(" [WARN] "); break;
|
||||
case Error: fmt::print(" [ERROR] "); break;
|
||||
}
|
||||
|
||||
fmt::print("{}\n", message);
|
||||
}
|
||||
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
Submodule tests/lib/pl deleted from d399836b69
31
tests/magic/CMakeLists.txt
Normal file
31
tests/magic/CMakeLists.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(magic_test)
|
||||
|
||||
set(TOP_LEVEL "${CMAKE_CURRENT_SOURCE_DIR}/../..")
|
||||
|
||||
set(MAGIC_FOLDER "${TOP_LEVEL}/magic")
|
||||
file(GLOB MAGIC_FILES
|
||||
"${MAGIC_FOLDER}/*"
|
||||
)
|
||||
|
||||
add_executable(magic_test
|
||||
source/main.cpp
|
||||
)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_search_module(MAGIC libmagic>=5.39)
|
||||
|
||||
target_include_directories(magic_test PRIVATE include)
|
||||
target_link_libraries(magic_test libpl magic)
|
||||
|
||||
set_target_properties(magic_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
|
||||
foreach (magic_file IN LISTS MAGIC_FILES)
|
||||
file(RELATIVE_PATH MAGIC_NAME ${MAGIC_FOLDER} ${magic_file})
|
||||
|
||||
set(TEST_NAME "Magic/${MAGIC_NAME}")
|
||||
|
||||
add_test(NAME ${TEST_NAME} COMMAND magic_test "${MAGIC_NAME}" "${magic_file}" WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||
set_tests_properties(${TEST_NAME} PROPERTIES SKIP_RETURN_CODE 77)
|
||||
endforeach ()
|
||||
34
tests/magic/source/main.cpp
Normal file
34
tests/magic/source/main.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <pl/helpers/file.hpp>
|
||||
#include <pl/helpers/guards.hpp>
|
||||
|
||||
#include <fmt/format.h>
|
||||
#include <cstdlib>
|
||||
|
||||
#include <magic.h>
|
||||
|
||||
#define EXIT_SKIP 77
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
// Any number of arguments other than 3 are invalid
|
||||
if (argc != 3)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
// Extract command line arguments
|
||||
const std::string magicName = argv[1];
|
||||
const std::fs::path magicFilePath = argv[2];
|
||||
|
||||
fmt::print("Running test {} on test file {}\n", magicName, magicFilePath.filename().string());
|
||||
|
||||
magic_t ctx = magic_open(MAGIC_NONE);
|
||||
PL_ON_SCOPE_EXIT { magic_close(ctx); };
|
||||
|
||||
if (ctx == nullptr)
|
||||
return EXIT_FAILURE;
|
||||
|
||||
if (magic_compile(ctx, magicFilePath.string().c_str()) != 0) {
|
||||
fmt::print("Error during compilation: {}\n", magic_error(ctx));
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
@@ -8,7 +8,7 @@ file(GLOB PATTERNS
|
||||
"${TOP_LEVEL}/patterns/*.hexpat"
|
||||
)
|
||||
|
||||
set(PATTERN_INCLUDES "${TOP_LEVEL}/includes/std")
|
||||
set(PATTERN_INCLUDES "${TOP_LEVEL}/includes")
|
||||
|
||||
add_executable(patterns_tests
|
||||
source/main.cpp
|
||||
@@ -24,7 +24,6 @@ foreach (pattern IN LISTS PATTERNS)
|
||||
|
||||
file(GLOB TEST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/test_data/${PATTERN_NAME}.*")
|
||||
|
||||
message(STATUS ${CMAKE_CURRENT_SOURCE_DIR}/test_data/${PATTERN_NAME}.*)
|
||||
if (TEST_FILES)
|
||||
list(GET TEST_FILES 0 TEST_FILE)
|
||||
else ()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include <pl.hpp>
|
||||
#include <helpers/file.hpp>
|
||||
#include <pl/helpers/file.hpp>
|
||||
|
||||
#include <fmt/format.h>
|
||||
#include <cstdlib>
|
||||
@@ -27,12 +27,12 @@ int main(int argc, char **argv) {
|
||||
fmt::print("Running test {} on test file {}\n", patternName, testFilePath.stem().string());
|
||||
|
||||
// Open pattern file
|
||||
pl::fs::File patternFile(patternFilePath, pl::fs::File::Mode::Read);
|
||||
pl::hlp::fs::File patternFile(patternFilePath, pl::hlp::fs::File::Mode::Read);
|
||||
if (!patternFile.isValid())
|
||||
return EXIT_FAILURE;
|
||||
|
||||
// Open test file
|
||||
pl::fs::File testFile(testFilePath, pl::fs::File::Mode::Read);
|
||||
pl::hlp::fs::File testFile(testFilePath, pl::hlp::fs::File::Mode::Read);
|
||||
if (!testFile.isValid())
|
||||
return EXIT_FAILURE;
|
||||
|
||||
@@ -55,14 +55,15 @@ int main(int argc, char **argv) {
|
||||
fmt::print("Error during execution!\n");
|
||||
|
||||
if (const auto &hardError = runtime.getError(); hardError.has_value())
|
||||
fmt::print("Hard error: {}\n\n", hardError.value().what());
|
||||
fmt::print("Hard error: {}:{} - {}\n\n", hardError->line, hardError->column, hardError->message);
|
||||
|
||||
for (const auto &[level, message] : runtime.getConsoleLog()) {
|
||||
switch (level) {
|
||||
case pl::LogConsole::Level::Debug: fmt::print(" [DEBUG] "); break;
|
||||
case pl::LogConsole::Level::Info: fmt::print(" [INFO] "); break;
|
||||
case pl::LogConsole::Level::Warning: fmt::print(" [WARN] "); break;
|
||||
case pl::LogConsole::Level::Error: fmt::print(" [ERROR] "); break;
|
||||
using enum pl::core::LogConsole::Level;
|
||||
case Debug: fmt::print(" [DEBUG] "); break;
|
||||
case Info: fmt::print(" [INFO] "); break;
|
||||
case Warning: fmt::print(" [WARN] "); break;
|
||||
case Error: fmt::print(" [ERROR] "); break;
|
||||
}
|
||||
|
||||
fmt::print("{}\n", message);
|
||||
|
||||
Submodule yara/official_rules updated: d1851b6364...0f93570194
Reference in New Issue
Block a user