-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdotmat5x7.py
147 lines (142 loc) · 6.69 KB
/
dotmat5x7.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
dots = [
[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,], # 0x20, Space
[0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02,], # 0x21, !
[0x09, 0x09, 0x12, 0x00, 0x00, 0x00, 0x00,], # 0x22, "
[0x0a, 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x0a,], # 0x23, #
[0x04, 0x0f, 0x14, 0x0e, 0x05, 0x1e, 0x04,], # 0x24, $
[0x19, 0x19, 0x02, 0x04, 0x08, 0x13, 0x13,], # 0x25, %
[0x04, 0x0a, 0x0a, 0x0a, 0x15, 0x12, 0x0d,], # 0x26, &
[0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,], # 0x27, '
[0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02,], # 0x28, (
[0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08,], # 0x29, )
[0x04, 0x15, 0x0e, 0x1f, 0x0e, 0x15, 0x04,], # 0x2a, *
[0x00, 0x04, 0x04, 0x1f, 0x04, 0x04, 0x00,], # 0x2b, +
[0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08,], # 0x2c, ,
[0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,], # 0x2d, -
[0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c,], # 0x2e, .
[0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x10,], # 0x2f, /
[0x0e, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0e,], # 0x30, 0
[0x02, 0x06, 0x02, 0x02, 0x02, 0x02, 0x07,], # 0x31, 1
[0x0e, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1f,], # 0x32, 2
[0x0e, 0x11, 0x01, 0x06, 0x01, 0x11, 0x0e,], # 0x33, 3
[0x02, 0x06, 0x0a, 0x12, 0x1f, 0x02, 0x02,], # 0x34, 4
[0x1f, 0x10, 0x1e, 0x01, 0x01, 0x11, 0x0e,], # 0x35, 5
[0x06, 0x08, 0x10, 0x1e, 0x11, 0x11, 0x0e,], # 0x36, 6
[0x1f, 0x01, 0x02, 0x04, 0x08, 0x08, 0x08,], # 0x37, 7
[0x0e, 0x11, 0x11, 0x0e, 0x11, 0x11, 0x0e,], # 0x38, 8
[0x0e, 0x11, 0x11, 0x0f, 0x01, 0x02, 0x0c,], # 0x39, 9
[0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x0c, 0x00,], # 0x3a, :
[0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x04, 0x08,], # 0x3b, ;
[0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02,], # 0x3c, <
[0x00, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x00,], # 0x3d, =
[0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08,], # 0x3e, >
[0x0e, 0x11, 0x01, 0x02, 0x04, 0x00, 0x04,], # 0x3f, ?
[0x0e, 0x11, 0x17, 0x15, 0x17, 0x10, 0x0f,], # 0x40, @
[0x04, 0x0a, 0x11, 0x11, 0x1f, 0x11, 0x11,], # 0x41, A
[0x1e, 0x11, 0x11, 0x1e, 0x11, 0x11, 0x1e,], # 0x42, B
[0x0e, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0e,], # 0x43, C
[0x1e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x1e,], # 0x44, D
[0x1f, 0x10, 0x10, 0x1c, 0x10, 0x10, 0x1f,], # 0x45, E
[0x1f, 0x10, 0x10, 0x1f, 0x10, 0x10, 0x10,], # 0x46, F
[0x0e, 0x11, 0x10, 0x10, 0x13, 0x11, 0x0f,], # 0x47, G
[0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11,], # 0x48, H
[0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e,], # 0x49, I
[0x1f, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0c,], # 0x4a, J
[0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11,], # 0x4b, K
[0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f,], # 0x4c, L
[0x11, 0x1b, 0x15, 0x11, 0x11, 0x11, 0x11,], # 0x4d, M
[0x11, 0x11, 0x19, 0x15, 0x13, 0x11, 0x11,], # 0x4e, N
[0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e,], # 0x4f, O
[0x1e, 0x11, 0x11, 0x1e, 0x10, 0x10, 0x10,], # 0x50, P
[0x0e, 0x11, 0x11, 0x11, 0x15, 0x12, 0x0d,], # 0x51, Q
[0x1e, 0x11, 0x11, 0x1e, 0x14, 0x12, 0x11,], # 0x52, R
[0x0e, 0x11, 0x10, 0x0e, 0x01, 0x11, 0x0e,], # 0x53, S
[0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,], # 0x54, T
[0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e,], # 0x55, U
[0x11, 0x11, 0x11, 0x11, 0x11, 0x0a, 0x04,], # 0x56, V
[0x11, 0x11, 0x11, 0x15, 0x15, 0x1b, 0x11,], # 0x57, W
[0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11,], # 0x58, X
[0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x04,], # 0x59, Y
[0x1f, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1f,], # 0x5a, Z
[0x0e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0e,], # 0x5b, [
[0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01,], # 0x5c, \
[0x0e, 0x02, 0x02, 0x02, 0x02, 0x02, 0x0e,], # 0x5d, ]
[0x04, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x00,], # 0x5e, ^
[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f,], # 0x5f, _
[0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00,], # 0x60, `
[0x00, 0x0e, 0x01, 0x0d, 0x13, 0x13, 0x0d,], # 0x61, a
[0x10, 0x10, 0x10, 0x1c, 0x12, 0x12, 0x1c,], # 0x62, b
[0x00, 0x00, 0x00, 0x07, 0x08, 0x08, 0x07,], # 0x63, c
[0x01, 0x01, 0x01, 0x07, 0x09, 0x09, 0x07,], # 0x64, d
[0x00, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0f,], # 0x65, e
[0x06, 0x09, 0x08, 0x1c, 0x08, 0x08, 0x08,], # 0x66, f
[0x0e, 0x11, 0x13, 0x0d, 0x01, 0x01, 0x0e,], # 0x67, g
[0x10, 0x10, 0x10, 0x16, 0x19, 0x11, 0x11,], # 0x68, h
[0x00, 0x02, 0x00, 0x06, 0x02, 0x02, 0x07,], # 0x69, i
[0x02, 0x00, 0x06, 0x02, 0x02, 0x12, 0x0c,], # 0x6a, j
[0x10, 0x10, 0x12, 0x14, 0x18, 0x14, 0x12,], # 0x6b, k
[0x06, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,], # 0x6c, l
[0x00, 0x00, 0x0a, 0x15, 0x15, 0x11, 0x11,], # 0x6d, m
[0x00, 0x00, 0x16, 0x19, 0x11, 0x11, 0x11,], # 0x6e, n
[0x00, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e,], # 0x6f, o
[0x00, 0x0e, 0x09, 0x09, 0x0e, 0x08, 0x08,], # 0x70, p
[0x00, 0x07, 0x09, 0x09, 0x07, 0x01, 0x01,], # 0x71, q
[0x00, 0x00, 0x16, 0x19, 0x10, 0x10, 0x10,], # 0x72, r
[0x00, 0x00, 0x0f, 0x10, 0x0e, 0x01, 0x1e,], # 0x73, s
[0x08, 0x08, 0x1c, 0x08, 0x08, 0x09, 0x06,], # 0x74, t
[0x00, 0x00, 0x11, 0x11, 0x11, 0x13, 0x0d,], # 0x75, u
[0x00, 0x00, 0x11, 0x11, 0x11, 0x0a, 0x04,], # 0x76, v
[0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0a,], # 0x77, w
[0x00, 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11,], # 0x78, x
[0x00, 0x11, 0x11, 0x0f, 0x01, 0x11, 0x0e,], # 0x79, y
[0x00, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f,], # 0x7a, z
[0x06, 0x08, 0x08, 0x10, 0x08, 0x08, 0x06,], # 0x7b, {
[0x04, 0x04, 0x04, 0x00, 0x04, 0x04, 0x04,], # 0x7c, |
[0x0c, 0x02, 0x02, 0x01, 0x02, 0x02, 0x0c,], # 0x7d, }
[0x08, 0x15, 0x02, 0x00, 0x00, 0x00, 0x00,], # 0x7e, ~
[0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,], # 0x7f, DEL
]
_widths = [0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 4, 2, 4, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ,5, 5, 5, 5]
descenders = [0]*256
descenders[0x61-0x20]=-1
descenders[0x67-0x20]=-2
descenders[0x6a-0x20]=-2
descenders[0x70-0x20]=-2
descenders[0x71-0x20]=-2
descenders[0x79-0x20]=-2
for i in range(0, len(dots)):
bytes = dots[i]
shiftit = 0
for byte in bytes:
if byte % 2 == 0: shiftit += 1
if shiftit == len(bytes):
for j in range(0, len(bytes)):
bytes[j] = bytes[j] >> 1
widths = []
for i in range(0, len(dots)):
bytes = dots[i]
width = 3 #min width =
for byte in bytes:
if width < _widths[byte]: width = _widths[byte]
widths.append(width)
widths[0x20-0x20] = 1
widths[0x21-0x20] = 2
widths[0x23-0x20] = 5
widths[0x24-0x20] = 5
widths[0x25-0x20] = 5
widths[0x26-0x20] = 5
widths[0x28-0x20] = 5
widths[0x29-0x20] = 5
widths[0x2a-0x20] = 5
widths[0x2f-0x20] = 5
widths[0x3a-0x20] = 4
widths[0x3b-0x20] = 4
widths[0x5c-0x20] = 5
widths[0x5b-0x20] = 5
widths[0x5d-0x20] = 5
widths[0x63-0x20] = 4
widths[0x6c-0x20] = 2
widths[0x7b-0x20] = 5
widths[0x7d-0x20] = 5
widths[0x2f-0x20] = 5
widths[0x5c-0x20] = 5