File Coverage

blib/lib/HiPi/Interface/MicroDotPHAT/Font.pm
Criterion Covered Total %
statement 9 11 81.8
branch n/a
condition n/a
subroutine 3 5 60.0
pod 0 2 0.0
total 12 18 66.6


line stmt bran cond sub pod time code
1             #########################################################################################
2             # Package HiPi::Interface::MicroDotPHAT::Font;
3             # Description : Interface to Pimoroni Micro Dot pHAT
4             # Copyright : Perl Port Copyright (c) 2018 Mark Dootson
5             # License : This is free software; you can redistribute it and/or modify it under
6             # the same terms as the Perl 5 programming language system itself.
7             #
8             # This is a port of the Pimoroni MicroDotPHAT Font Python code to Perl
9             #
10             # https://github.com/pimoroni/microdot-phat
11             #
12             #########################################################################################
13             # Pimoroni Copyright Notice
14             #########################################################################################
15             # MIT License
16             #
17             # Copyright (c) 2017 Pimoroni Ltd.
18             #
19             # Permission is hereby granted, free of charge, to any person obtaining a copy
20             # of this software and associated documentation files (the "Software"), to deal
21             # in the Software without restriction, including without limitation the rights
22             # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23             # copies of the Software, and to permit persons to whom the Software is
24             # furnished to do so, subject to the following conditions:
25             #
26             # The above copyright notice and this permission notice shall be included in all
27             # copies or substantial portions of the Software.
28             #
29             # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30             # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31             # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32             # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33             # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34             # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35             # SOFTWARE.
36             #
37             #########################################################################################
38              
39             package HiPi::Interface::MicroDotPHAT::Font;
40              
41             #########################################################################################
42 1     1   7 use strict;
  1         2  
  1         26  
43 1     1   5 use warnings;
  1         2  
  1         24  
44 1     1   5 use parent qw( Exporter );
  1         1  
  1         6  
45              
46             our $VERSION ='0.80';
47              
48             our @EXPORT_OK = qw( phat_tiny_numbers phat_font );
49              
50             our %EXPORT_TAGS = ( font => \@EXPORT_OK );
51              
52             # Pimoroni tinynumbers
53              
54             my $tinynumbers = [
55             [0b11111,0b11111],
56             [0b11111],
57             [0b10111,0b11101],
58             [0b10101,0b11111],
59             [0b11110,0b00011],
60             [0b11101,0b10111],
61             [0b11111,0b00111],
62             [0b10000,0b11111],
63             [0b10101,0b10101],
64             [0b11100,0b11111]
65             ];
66              
67             # Pimoroni 5x7 Font
68             my $font = {
69             '32' => [0x00, 0x00, 0x00, 0x00, 0x00], # (space)
70             '33' => [0x00, 0x00, 0x5f, 0x00, 0x00], # !
71             '34' => [0x00, 0x07, 0x00, 0x07, 0x00], # "
72             '35' => [0x14, 0x7f, 0x14, 0x7f, 0x14], # #
73             '36' => [0x24, 0x2a, 0x7f, 0x2a, 0x12], # $
74             '37' => [0x23, 0x13, 0x08, 0x64, 0x62], # %
75             '38' => [0x36, 0x49, 0x55, 0x22, 0x50], # &
76             '39' => [0x00, 0x05, 0x03, 0x00, 0x00], # '
77             '40' => [0x00, 0x1c, 0x22, 0x41, 0x00], # (
78             '41' => [0x00, 0x41, 0x22, 0x1c, 0x00], # )
79             '42' => [0x08, 0x2a, 0x1c, 0x2a, 0x08], # *
80             '43' => [0x08, 0x08, 0x3e, 0x08, 0x08], # +
81             '44' => [0x00, 0x50, 0x30, 0x00, 0x00], # ,
82             '45' => [0x08, 0x08, 0x08, 0x08, 0x08], # -
83             '46' => [0x00, 0x60, 0x60, 0x00, 0x00], # .
84             '47' => [0x20, 0x10, 0x08, 0x04, 0x02], # /
85             '48' => [0x3e, 0x51, 0x49, 0x45, 0x3e], # 0
86             '49' => [0x00, 0x42, 0x7f, 0x40, 0x00], # 1
87             '50' => [0x42, 0x61, 0x51, 0x49, 0x46], # 2
88             '51' => [0x21, 0x41, 0x45, 0x4b, 0x31], # 3
89             '52' => [0x18, 0x14, 0x12, 0x7f, 0x10], # 4
90             '53' => [0x27, 0x45, 0x45, 0x45, 0x39], # 5
91             '54' => [0x3c, 0x4a, 0x49, 0x49, 0x30], # 6
92             '55' => [0x01, 0x71, 0x09, 0x05, 0x03], # 7
93             '56' => [0x36, 0x49, 0x49, 0x49, 0x36], # 8
94             '57' => [0x06, 0x49, 0x49, 0x29, 0x1e], # 9
95             '58' => [0x00, 0x36, 0x36, 0x00, 0x00], # :
96             '59' => [0x00, 0x56, 0x36, 0x00, 0x00], # ;
97             '60' => [0x00, 0x08, 0x14, 0x22, 0x41], # <
98             '61' => [0x14, 0x14, 0x14, 0x14, 0x14], # =
99             '62' => [0x41, 0x22, 0x14, 0x08, 0x00], # >
100             '63' => [0x02, 0x01, 0x51, 0x09, 0x06], # ?
101             '64' => [0x32, 0x49, 0x79, 0x41, 0x3e], # @
102             '65' => [0x7e, 0x11, 0x11, 0x11, 0x7e], # A
103             '66' => [0x7f, 0x49, 0x49, 0x49, 0x36], # B
104             '67' => [0x3e, 0x41, 0x41, 0x41, 0x22], # C
105             '68' => [0x7f, 0x41, 0x41, 0x22, 0x1c], # D
106             '69' => [0x7f, 0x49, 0x49, 0x49, 0x41], # E
107             '70' => [0x7f, 0x09, 0x09, 0x01, 0x01], # F
108             '71' => [0x3e, 0x41, 0x41, 0x51, 0x32], # G
109             '72' => [0x7f, 0x08, 0x08, 0x08, 0x7f], # H
110             '73' => [0x00, 0x41, 0x7f, 0x41, 0x00], # I
111             '74' => [0x20, 0x40, 0x41, 0x3f, 0x01], # J
112             '75' => [0x7f, 0x08, 0x14, 0x22, 0x41], # K
113             '76' => [0x7f, 0x40, 0x40, 0x40, 0x40], # L
114             '77' => [0x7f, 0x02, 0x04, 0x02, 0x7f], # M
115             '78' => [0x7f, 0x04, 0x08, 0x10, 0x7f], # N
116             '79' => [0x3e, 0x41, 0x41, 0x41, 0x3e], # O
117             '80' => [0x7f, 0x09, 0x09, 0x09, 0x06], # P
118             '81' => [0x3e, 0x41, 0x51, 0x21, 0x5e], # Q
119             '82' => [0x7f, 0x09, 0x19, 0x29, 0x46], # R
120             '83' => [0x46, 0x49, 0x49, 0x49, 0x31], # S
121             '84' => [0x01, 0x01, 0x7f, 0x01, 0x01], # T
122             '85' => [0x3f, 0x40, 0x40, 0x40, 0x3f], # U
123             '86' => [0x1f, 0x20, 0x40, 0x20, 0x1f], # V
124             '87' => [0x7f, 0x20, 0x18, 0x20, 0x7f], # W
125             '88' => [0x63, 0x14, 0x08, 0x14, 0x63], # X
126             '89' => [0x03, 0x04, 0x78, 0x04, 0x03], # Y
127             '90' => [0x61, 0x51, 0x49, 0x45, 0x43], # Z
128             '91' => [0x00, 0x00, 0x7f, 0x41, 0x41], # [
129             '92' => [0x02, 0x04, 0x08, 0x10, 0x20], # \
130             '93' => [0x41, 0x41, 0x7f, 0x00, 0x00], # ]
131             '94' => [0x04, 0x02, 0x01, 0x02, 0x04], # ^
132             '95' => [0x40, 0x40, 0x40, 0x40, 0x40], # _
133             '96' => [0x00, 0x01, 0x02, 0x04, 0x00], # `
134             '97' => [0x20, 0x54, 0x54, 0x54, 0x78], # a
135             '98' => [0x7f, 0x48, 0x44, 0x44, 0x38], # b
136             '99' => [0x38, 0x44, 0x44, 0x44, 0x20], # c
137             '100' => [0x38, 0x44, 0x44, 0x48, 0x7f], # d
138             '101' => [0x38, 0x54, 0x54, 0x54, 0x18], # e
139             '102' => [0x08, 0x7e, 0x09, 0x01, 0x02], # f
140             '103' => [0x08, 0x14, 0x54, 0x54, 0x3c], # g
141             '104' => [0x7f, 0x08, 0x04, 0x04, 0x78], # h
142             '105' => [0x00, 0x44, 0x7d, 0x40, 0x00], # i
143             '106' => [0x20, 0x40, 0x44, 0x3d, 0x00], # j
144             '107' => [0x00, 0x7f, 0x10, 0x28, 0x44], # k
145             '108' => [0x00, 0x41, 0x7f, 0x40, 0x00], # l
146             '109' => [0x7c, 0x04, 0x18, 0x04, 0x78], # m
147             '110' => [0x7c, 0x08, 0x04, 0x04, 0x78], # n
148             '111' => [0x38, 0x44, 0x44, 0x44, 0x38], # o
149             '112' => [0x7c, 0x14, 0x14, 0x14, 0x08], # p
150             '113' => [0x08, 0x14, 0x14, 0x18, 0x7c], # q
151             '114' => [0x7c, 0x08, 0x04, 0x04, 0x08], # r
152             '115' => [0x48, 0x54, 0x54, 0x54, 0x20], # s
153             '116' => [0x04, 0x3f, 0x44, 0x40, 0x20], # t
154             '117' => [0x3c, 0x40, 0x40, 0x20, 0x7c], # u
155             '118' => [0x1c, 0x20, 0x40, 0x20, 0x1c], # v
156             '119' => [0x3c, 0x40, 0x30, 0x40, 0x3c], # w
157             '120' => [0x44, 0x28, 0x10, 0x28, 0x44], # x
158             '121' => [0x0c, 0x50, 0x50, 0x50, 0x3c], # y
159             '122' => [0x44, 0x64, 0x54, 0x4c, 0x44], # z
160             '123' => [0x00, 0x08, 0x36, 0x41, 0x00], # {
161             '124' => [0x00, 0x00, 0x7f, 0x00, 0x00], # |
162             '125' => [0x00, 0x41, 0x36, 0x08, 0x00], # }
163             '126' => [0x08, 0x08, 0x2a, 0x1c, 0x08], # ~
164              
165             '8221' => [0x00, 0x07, 0x00, 0x07, 0x00], # ”
166             '8592' => [0x08, 0x1C, 0x2A, 0x08, 0x08], # ←
167             '8593' => [0x08, 0x04, 0x7E, 0x04, 0x08], # ↑
168             '8594' => [0x08, 0x08, 0x2A, 0x1C, 0x08], # →
169             '8595' => [0x08, 0x10, 0x3F, 0x10, 0x08], # ↓
170             '9472' => [0x08, 0x08, 0x08, 0x08, 0x08], # ─
171             '9474' => [0x00, 0x00, 0x7F, 0x00, 0x00], # │
172             '9484' => [0x00, 0x00, 0x78, 0x08, 0x08], # ┌
173             '9488' => [0x08, 0x08, 0x78, 0x00, 0x00], # ┐
174             '9492' => [0x00, 0x00, 0x0F, 0x08, 0x08], # └
175             '9496' => [0x08, 0x08, 0x0F, 0x00, 0x00], # ┘
176             '9500' => [0x00, 0x00, 0x7F, 0x08, 0x08], # ├
177             '9508' => [0x08, 0x08, 0x7F, 0x00, 0x00], # ┤
178             '9516' => [0x08, 0x08, 0x78, 0x08, 0x08], # ┬
179             '9524' => [0x08, 0x08, 0x0F, 0x08, 0x08], # ┴
180             '9532' => [0x08, 0x08, 0x7F, 0x08, 0x08], # ┼
181             '9632' => [0x7F, 0x7F, 0x7F, 0x7F, 0x7F], # ■
182             '9633' => [0x7F, 0x41, 0x41, 0x41, 0x7F], # □
183             '9650' => [0x10, 0x1C, 0x1E, 0x1C, 0x10], # ▲
184             '9651' => [0x10, 0x1C, 0x12, 0x1C, 0x10], # △
185             '9660' => [0x04, 0x1C, 0x3C, 0x1C, 0x04], # ▼
186             '9661' => [0x04, 0x1C, 0x24, 0x1C, 0x04], # ▽
187             '9670' => [0x08, 0x1C, 0x3E, 0x1C, 0x08], # ◆
188             '9675' => [0x1C, 0x22, 0x22, 0x22, 0x1C], # ○
189             '9679' => [0x1C, 0x3E, 0x3E, 0x3E, 0x1C], # ●
190             '9733' => [0x64, 0x3E, 0x1F, 0x3E, 0x64], # ★
191             '12288' => [0x00, 0x00, 0x00, 0x00, 0x00], #  
192             '12289' => [0x10, 0x20, 0x40, 0x00, 0x00], # 、
193             '12290' => [0x70, 0x50, 0x70, 0x00, 0x00], # 。
194             '12300' => [0x00, 0x0F, 0x01, 0x01, 0x01], # 「
195             '12301' => [0x40, 0x40, 0x40, 0x78, 0x00], # 」
196             '12316' => [0x02, 0x01, 0x02, 0x04, 0x02], # 〜
197             '12353' => [0x28, 0x58, 0x3C, 0x68, 0x00], # ぁ
198             '12354' => [0x32, 0x7A, 0x2F, 0x1A, 0x72], # あ
199             '12355' => [0x38, 0x40, 0x08, 0x30, 0x00], # ぃ
200             '12356' => [0x3E, 0x40, 0x20, 0x00, 0x1C], # い
201             '12357' => [0x10, 0x0C, 0x4C, 0x30, 0x00], # ぅ
202             '12358' => [0x04, 0x05, 0x45, 0x25, 0x18], # う
203             '12359' => [0x48, 0x2C, 0x5C, 0x48, 0x00], # ぇ
204             '12360' => [0x44, 0x24, 0x35, 0x4D, 0x44], # え
205             '12361' => [0x68, 0x7C, 0x10, 0x64, 0x00], # ぉ
206             '12362' => [0x32, 0x7F, 0x0A, 0x48, 0x32], # お
207             '12363' => [0x34, 0x0F, 0x44, 0x38, 0x06], # か
208             '12365' => [0x22, 0x4A, 0x4F, 0x5A, 0x08], # き
209             '12367' => [0x00, 0x18, 0x24, 0x43, 0x00], # く
210             '12369' => [0x3E, 0x00, 0x44, 0x3F, 0x04], # け
211             '12371' => [0x22, 0x52, 0x42, 0x42, 0x44], # こ
212             '12373' => [0x24, 0x44, 0x47, 0x5C, 0x12], # さ
213             '12375' => [0x3F, 0x40, 0x40, 0x20, 0x10], # し
214             '12377' => [0x02, 0x0A, 0x56, 0x3F, 0x02], # す
215             '12379' => [0x04, 0x3E, 0x44, 0x5F, 0x44], # せ
216             '12381' => [0x08, 0x2D, 0x5B, 0x45, 0x44], # そ
217             '12383' => [0x72, 0x0F, 0x22, 0x4A, 0x48], # た
218             '12385' => [0x0A, 0x0E, 0x4B, 0x4A, 0x32], # ち
219             '12387' => [0x08, 0x48, 0x48, 0x30, 0x00], # っ
220             '12388' => [0x02, 0x02, 0x42, 0x22, 0x1C], # つ
221             '12390' => [0x02, 0x32, 0x4A, 0x46, 0x42], # て
222             '12392' => [0x30, 0x4B, 0x44, 0x44, 0x42], # と
223             '12394' => [0x0A, 0x27, 0x52, 0x38, 0x26], # な
224             '12395' => [0x3E, 0x00, 0x22, 0x42, 0x42], # に
225             '12396' => [0x38, 0x6F, 0x1C, 0x67, 0x78], # ぬ
226             '12397' => [0x12, 0x7F, 0x0A, 0x64, 0x78], # ね
227             '12398' => [0x3C, 0x62, 0x1E, 0x44, 0x38], # の
228             '12399' => [0x3E, 0x00, 0x32, 0x7F, 0x22], # は
229             '12402' => [0x04, 0x3E, 0x40, 0x47, 0x3C], # ひ
230             '12405' => [0x30, 0x05, 0x7A, 0x00, 0x38], # ふ
231             '12411' => [0x3E, 0x00, 0x35, 0x7F, 0x25], # ほ
232             '12414' => [0x2A, 0x5A, 0x7F, 0x2A, 0x4A], # ま
233             '12415' => [0x71, 0x3F, 0x08, 0x7E, 0x08], # み
234             '12416' => [0x1A, 0x3F, 0x42, 0x40, 0x26], # む
235             '12417' => [0x38, 0x4E, 0x34, 0x1F, 0x78], # め
236             '12418' => [0x14, 0x3F, 0x54, 0x40, 0x20], # も
237             '12419' => [0x1C, 0x68, 0x0C, 0x30, 0x00], # ゃ
238             '12420' => [0x04, 0x7F, 0x04, 0x2E, 0x18], # や
239             '12421' => [0x18, 0x50, 0x3C, 0x18, 0x00], # ゅ
240             '12422' => [0x1E, 0x44, 0x3F, 0x12, 0x0C], # ゆ
241             '12423' => [0x60, 0x7C, 0x28, 0x40, 0x00], # ょ
242             '12424' => [0x20, 0x50, 0x3F, 0x24, 0x44], # よ
243             '12425' => [0x10, 0x0D, 0x49, 0x4A, 0x30], # ら
244             '12426' => [0x0E, 0x00, 0x40, 0x21, 0x1E], # り
245             '12427' => [0x20, 0x55, 0x65, 0x4B, 0x30], # る
246             '12428' => [0x34, 0x7F, 0x04, 0x3E, 0x40], # れ
247             '12429' => [0x10, 0x49, 0x4D, 0x4B, 0x30], # ろ
248             '12431' => [0x24, 0x7F, 0x0A, 0x44, 0x38], # わ
249             '12434' => [0x22, 0x5F, 0x4A, 0x56, 0x42], # を
250             '12435' => [0x70, 0x0F, 0x30, 0x40, 0x20], # ん
251             '12443' => [0x02, 0x04, 0x01, 0x02, 0x00], # ゛
252             '12444' => [0x07, 0x05, 0x07, 0x00, 0x00], # ゜
253             '12449' => [0x44, 0x44, 0x3C, 0x14, 0x0C], # ァ
254             '12450' => [0x42, 0x42, 0x3A, 0x12, 0x0E], # ア
255             '12451' => [0x20, 0x10, 0x78, 0x04, 0x00], # ィ
256             '12452' => [0x10, 0x08, 0x04, 0x7E, 0x01], # イ
257             '12453' => [0x18, 0x08, 0x4C, 0x48, 0x38], # ゥ
258             '12454' => [0x0E, 0x42, 0x43, 0x22, 0x1E], # ウ
259             '12455' => [0x48, 0x48, 0x78, 0x48, 0x48], # ェ
260             '12456' => [0x42, 0x42, 0x7E, 0x42, 0x42], # エ
261             '12457' => [0x48, 0x38, 0x08, 0x7C, 0x08], # ォ
262             '12458' => [0x22, 0x12, 0x0A, 0x7F, 0x02], # オ
263             '12459' => [0x42, 0x3F, 0x02, 0x02, 0x7E], # カ
264             '12461' => [0x0A, 0x0A, 0x7F, 0x0A, 0x0A], # キ
265             '12463' => [0x08, 0x06, 0x42, 0x22, 0x1E], # ク
266             '12465' => [0x0F, 0x42, 0x42, 0x3E, 0x02], # ケ
267             '12467' => [0x42, 0x42, 0x42, 0x42, 0x7E], # コ
268             '12469' => [0x02, 0x4F, 0x42, 0x3F, 0x02], # サ
269             '12471' => [0x4A, 0x4A, 0x40, 0x20, 0x1C], # シ
270             '12473' => [0x42, 0x22, 0x12, 0x2A, 0x46], # ス
271             '12475' => [0x02, 0x3F, 0x42, 0x42, 0x4E], # セ
272             '12477' => [0x06, 0x48, 0x40, 0x30, 0x0E], # ソ
273             '12479' => [0x08, 0x4E, 0x52, 0x32, 0x0E], # タ
274             '12481' => [0x08, 0x4A, 0x4A, 0x3F, 0x09], # チ
275             '12483' => [0x18, 0x40, 0x58, 0x40, 0x30], # ッ
276             '12484' => [0x0E, 0x40, 0x4E, 0x20, 0x1E], # ツ
277             '12486' => [0x04, 0x45, 0x45, 0x3D, 0x04], # テ
278             '12488' => [0x00, 0x7F, 0x08, 0x10, 0x10], # ト
279             '12490' => [0x44, 0x44, 0x44, 0x3F, 0x04], # ナ
280             '12491' => [0x40, 0x42, 0x42, 0x42, 0x40], # ニ
281             '12492' => [0x42, 0x4A, 0x2A, 0x12, 0x2E], # ヌ
282             '12493' => [0x22, 0x12, 0x73, 0x0A, 0x16], # ネ
283             '12494' => [0x40, 0x40, 0x20, 0x10, 0x0E], # ノ
284             '12495' => [0x70, 0x0E, 0x00, 0x07, 0x78], # ハ
285             '12498' => [0x3F, 0x44, 0x44, 0x44, 0x44], # ヒ
286             '12501' => [0x02, 0x42, 0x42, 0x22, 0x1E], # フ
287             '12504' => [0x08, 0x04, 0x02, 0x0C, 0x30], # ヘ
288             '12507' => [0x32, 0x02, 0x7F, 0x02, 0x32], # ホ
289             '12510' => [0x02, 0x12, 0x22, 0x52, 0x0E], # マ
290             '12511' => [0x20, 0x2A, 0x2A, 0x2A, 0x40], # ミ
291             '12512' => [0x30, 0x2C, 0x22, 0x28, 0x70], # ム
292             '12513' => [0x40, 0x44, 0x28, 0x10, 0x2E], # メ
293             '12514' => [0x0A, 0x0A, 0x3E, 0x4A, 0x4A], # モ
294             '12515' => [0x08, 0x7C, 0x08, 0x28, 0x18], # ャ
295             '12516' => [0x04, 0x7F, 0x04, 0x14, 0x0C], # ヤ
296             '12517' => [0x48, 0x48, 0x48, 0x78, 0x40], # ュ
297             '12518' => [0x42, 0x42, 0x42, 0x7E, 0x40], # ユ
298             '12519' => [0x54, 0x54, 0x54, 0x7C, 0x00], # ョ
299             '12520' => [0x4A, 0x4A, 0x4A, 0x4A, 0x7E], # ヨ
300             '12521' => [0x04, 0x45, 0x45, 0x25, 0x1C], # ラ
301             '12522' => [0x0E, 0x40, 0x40, 0x20, 0x1E], # リ
302             '12523' => [0x7E, 0x00, 0x7E, 0x40, 0x38], # ル
303             '12524' => [0x7E, 0x40, 0x40, 0x20, 0x10], # レ
304             '12525' => [0x7E, 0x42, 0x42, 0x42, 0x7E], # ロ
305             '12527' => [0x0E, 0x42, 0x42, 0x22, 0x1E], # ワ
306             '12530' => [0x0A, 0x4A, 0x4A, 0x2A, 0x1E], # ヲ
307             '12531' => [0x42, 0x42, 0x40, 0x20, 0x1C], # ン
308             '12539' => [0x00, 0x00, 0x08, 0x00, 0x00], # ・
309             '12540' => [0x04, 0x08, 0x08, 0x08, 0x08], # ー
310             '65281' => [0x00, 0x00, 0x5F, 0x00, 0x00], # !
311             '65283' => [0x14, 0x7F, 0x14, 0x7F, 0x14], # #
312             '65284' => [0x24, 0x2A, 0x7F, 0x2A, 0x12], # $
313             '65285' => [0x23, 0x13, 0x08, 0x64, 0x62], # %
314             '65286' => [0x36, 0x49, 0x56, 0x20, 0x50], # &
315             '65288' => [0x00, 0x1C, 0x22, 0x41, 0x00], # (
316             '65289' => [0x00, 0x41, 0x22, 0x1C, 0x00], # )
317             '65290' => [0x2A, 0x1C, 0x3E, 0x1C, 0x2A], # *
318             '65291' => [0x08, 0x08, 0x3E, 0x08, 0x08], # +
319             '65292' => [0x00, 0x10, 0x30, 0x00, 0x00], # ,
320             '65294' => [0x00, 0x60, 0x60, 0x00, 0x00], # .
321             '65295' => [0x20, 0x10, 0x08, 0x04, 0x02], # /
322             '65296' => [0x3E, 0x51, 0x49, 0x45, 0x3E], # 0
323             '65297' => [0x42, 0x42, 0x7F, 0x40, 0x40], # 1
324             '65298' => [0x42, 0x61, 0x51, 0x49, 0x46], # 2
325             '65299' => [0x22, 0x41, 0x49, 0x49, 0x36], # 3
326             '65300' => [0x38, 0x24, 0x22, 0x7F, 0x20], # 4
327             '65301' => [0x2F, 0x45, 0x45, 0x45, 0x39], # 5
328             '65302' => [0x3C, 0x4A, 0x49, 0x49, 0x30], # 6
329             '65303' => [0x03, 0x01, 0x79, 0x05, 0x03], # 7
330             '65304' => [0x36, 0x49, 0x49, 0x49, 0x36], # 8
331             '65305' => [0x06, 0x49, 0x49, 0x49, 0x3E], # 9
332             '65306' => [0x00, 0x00, 0x12, 0x00, 0x00], # :
333             '65307' => [0x00, 0x40, 0x32, 0x00, 0x00], # ;
334             '65308' => [0x08, 0x14, 0x22, 0x41, 0x00], # <
335             '65309' => [0x14, 0x14, 0x14, 0x14, 0x14], # =
336             '65310' => [0x00, 0x41, 0x22, 0x14, 0x08], # >
337             '65311' => [0x02, 0x01, 0x51, 0x09, 0x06], # ?
338             '65312' => [0x1C, 0x22, 0x49, 0x55, 0x4E], # @
339             '65313' => [0x7C, 0x12, 0x11, 0x12, 0x7C], # A
340             '65314' => [0x7F, 0x49, 0x49, 0x49, 0x36], # B
341             '65315' => [0x3E, 0x41, 0x41, 0x41, 0x22], # C
342             '65316' => [0x7F, 0x41, 0x41, 0x22, 0x1C], # D
343             '65317' => [0x7F, 0x49, 0x49, 0x49, 0x41], # E
344             '65318' => [0x7F, 0x09, 0x09, 0x09, 0x01], # F
345             '65319' => [0x3E, 0x41, 0x49, 0x49, 0x79], # G
346             '65320' => [0x7F, 0x08, 0x08, 0x08, 0x7F], # H
347             '65321' => [0x00, 0x41, 0x7F, 0x41, 0x00], # I
348             '65322' => [0x20, 0x40, 0x41, 0x3F, 0x01], # J
349             '65323' => [0x7F, 0x08, 0x14, 0x22, 0x41], # K
350             '65324' => [0x7F, 0x40, 0x40, 0x40, 0x40], # L
351             '65325' => [0x7F, 0x02, 0x04, 0x02, 0x7F], # M
352             '65326' => [0x7F, 0x02, 0x04, 0x08, 0x7F], # N
353             '65327' => [0x3E, 0x41, 0x41, 0x41, 0x3E], # O
354             '65328' => [0x7F, 0x09, 0x09, 0x09, 0x06], # P
355             '65329' => [0x3E, 0x41, 0x51, 0x21, 0x5E], # Q
356             '65330' => [0x7F, 0x09, 0x19, 0x29, 0x46], # R
357             '65331' => [0x26, 0x49, 0x49, 0x49, 0x32], # S
358             '65332' => [0x01, 0x01, 0x7F, 0x01, 0x01], # T
359             '65333' => [0x3F, 0x40, 0x40, 0x40, 0x3F], # U
360             '65334' => [0x07, 0x18, 0x60, 0x18, 0x07], # V
361             '65335' => [0x7F, 0x20, 0x10, 0x20, 0x7F], # W
362             '65336' => [0x63, 0x14, 0x08, 0x14, 0x63], # X
363             '65337' => [0x03, 0x04, 0x78, 0x04, 0x03], # Y
364             '65338' => [0x61, 0x51, 0x49, 0x45, 0x43], # Z
365             '65339' => [0x00, 0x7F, 0x41, 0x41, 0x00], # [
366             '65340' => [0x02, 0x04, 0x08, 0x10, 0x20], # \
367             '65341' => [0x00, 0x41, 0x41, 0x7F, 0x00], # ]
368             '65342' => [0x04, 0x02, 0x01, 0x02, 0x04], # ^
369             '65343' => [0x40, 0x40, 0x40, 0x40, 0x40], # _
370             '65344' => [0x00, 0x01, 0x02, 0x00, 0x00], # `
371             '65345' => [0x24, 0x54, 0x54, 0x54, 0x78], # a
372             '65346' => [0x7F, 0x44, 0x44, 0x44, 0x38], # b
373             '65347' => [0x38, 0x44, 0x44, 0x44, 0x44], # c
374             '65348' => [0x38, 0x44, 0x44, 0x44, 0x7F], # d
375             '65349' => [0x38, 0x54, 0x54, 0x54, 0x18], # e
376             '65350' => [0x08, 0x08, 0x7E, 0x09, 0x09], # f
377             '65351' => [0x0C, 0x52, 0x52, 0x52, 0x3E], # g
378             '65352' => [0x7F, 0x08, 0x04, 0x04, 0x78], # h
379             '65353' => [0x00, 0x44, 0x7D, 0x40, 0x00], # i
380             '65354' => [0x20, 0x40, 0x40, 0x44, 0x3D], # j
381             '65355' => [0x7F, 0x20, 0x10, 0x28, 0x44], # k
382             '65356' => [0x00, 0x41, 0x7F, 0x40, 0x00], # l
383             '65357' => [0x7C, 0x04, 0x7C, 0x04, 0x78], # m
384             '65358' => [0x7C, 0x04, 0x04, 0x04, 0x78], # n
385             '65359' => [0x38, 0x44, 0x44, 0x44, 0x38], # o
386             '65360' => [0x7E, 0x12, 0x12, 0x12, 0x0C], # p
387             '65361' => [0x0C, 0x12, 0x12, 0x12, 0x7E], # q
388             '65362' => [0x7C, 0x08, 0x04, 0x04, 0x08], # r
389             '65363' => [0x48, 0x54, 0x54, 0x54, 0x24], # s
390             '65364' => [0x04, 0x04, 0x3F, 0x44, 0x44], # t
391             '65365' => [0x3C, 0x40, 0x40, 0x40, 0x7C], # u
392             '65366' => [0x1C, 0x20, 0x40, 0x20, 0x1C], # v
393             '65367' => [0x3C, 0x40, 0x38, 0x40, 0x3C], # w
394             '65368' => [0x44, 0x28, 0x10, 0x28, 0x44], # x
395             '65369' => [0x0E, 0x50, 0x50, 0x50, 0x3E], # y
396             '65370' => [0x44, 0x64, 0x54, 0x4C, 0x44], # z
397             '65371' => [0x00, 0x08, 0x36, 0x41, 0x41], # {
398             '65372' => [0x00, 0x00, 0x77, 0x00, 0x00], # |
399             '65373' => [0x41, 0x41, 0x36, 0x08, 0x00], # }
400             '65374' => [0x08, 0x04, 0x08, 0x10, 0x08], # ~
401             '65383' => [0x44, 0x44, 0x3C, 0x14, 0x0C], # ァ
402             '65384' => [0x42, 0x42, 0x3A, 0x12, 0x0E], # ィ
403             '65385' => [0x20, 0x10, 0x78, 0x04, 0x00], # ゥ
404             '65386' => [0x10, 0x08, 0x04, 0x7E, 0x01], # ェ
405             '65387' => [0x18, 0x08, 0x4C, 0x48, 0x38], # ォ
406             '65388' => [0x0E, 0x42, 0x43, 0x22, 0x1E], # ャ
407             '65389' => [0x48, 0x48, 0x78, 0x48, 0x48], # ュ
408             '65390' => [0x42, 0x42, 0x7E, 0x42, 0x42], # ョ
409             '65391' => [0x48, 0x38, 0x08, 0x7C, 0x08], # ッ
410             '65392' => [0x22, 0x12, 0x0A, 0x7F, 0x02], # ー
411             '65393' => [0x42, 0x3F, 0x02, 0x02, 0x7E], # ア
412             '65394' => [0x0A, 0x0A, 0x7F, 0x0A, 0x0A], # イ
413             '65395' => [0x08, 0x06, 0x42, 0x22, 0x1E], # ウ
414             '65396' => [0x0F, 0x42, 0x42, 0x3E, 0x02], # エ
415             '65397' => [0x42, 0x42, 0x42, 0x42, 0x7E], # オ
416             '65398' => [0x02, 0x4F, 0x42, 0x3F, 0x02], # カ
417             '65399' => [0x4A, 0x4A, 0x40, 0x20, 0x1C], # キ
418             '65400' => [0x42, 0x22, 0x12, 0x2A, 0x46], # ク
419             '65401' => [0x02, 0x3F, 0x42, 0x42, 0x4E], # ケ
420             '65402' => [0x06, 0x48, 0x40, 0x30, 0x0E], # コ
421             '65403' => [0x08, 0x4E, 0x52, 0x32, 0x0E], # サ
422             '65404' => [0x08, 0x4A, 0x4A, 0x3F, 0x09], # シ
423             '65405' => [0x18, 0x40, 0x58, 0x40, 0x30], # ス
424             '65406' => [0x0E, 0x40, 0x4E, 0x20, 0x1E], # セ
425             '65407' => [0x04, 0x45, 0x45, 0x3D, 0x04], # ソ
426             '65408' => [0x00, 0x7F, 0x08, 0x10, 0x10], # タ
427             '65409' => [0x44, 0x44, 0x44, 0x3F, 0x04], # チ
428             '65410' => [0x40, 0x42, 0x42, 0x42, 0x40], # ツ
429             '65411' => [0x42, 0x4A, 0x2A, 0x12, 0x2E], # テ
430             '65412' => [0x22, 0x12, 0x73, 0x0A, 0x16], # ト
431             '65413' => [0x40, 0x40, 0x20, 0x10, 0x0E], # ナ
432             '65414' => [0x70, 0x0E, 0x00, 0x07, 0x78], # ニ
433             '65415' => [0x3F, 0x44, 0x44, 0x44, 0x44], # ヌ
434             '65416' => [0x02, 0x42, 0x42, 0x22, 0x1E], # ネ
435             '65417' => [0x08, 0x04, 0x02, 0x0C, 0x30], # ノ
436             '65418' => [0x32, 0x02, 0x7F, 0x02, 0x32], # ハ
437             '65419' => [0x02, 0x12, 0x22, 0x52, 0x0E], # ヒ
438             '65420' => [0x20, 0x2A, 0x2A, 0x2A, 0x40], # フ
439             '65421' => [0x30, 0x2C, 0x22, 0x28, 0x70], # ヘ
440             '65422' => [0x40, 0x44, 0x28, 0x10, 0x2E], # ホ
441             '65423' => [0x0A, 0x0A, 0x3E, 0x4A, 0x4A], # マ
442             '65424' => [0x08, 0x7C, 0x08, 0x28, 0x18], # ミ
443             '65425' => [0x04, 0x7F, 0x04, 0x14, 0x0C], # ム
444             '65426' => [0x48, 0x48, 0x48, 0x78, 0x40], # メ
445             '65427' => [0x42, 0x42, 0x42, 0x7E, 0x40], # モ
446             '65428' => [0x54, 0x54, 0x54, 0x7C, 0x00], # ヤ
447             '65429' => [0x4A, 0x4A, 0x4A, 0x4A, 0x7E], # ユ
448             '65430' => [0x04, 0x45, 0x45, 0x25, 0x1C], # ヨ
449             '65431' => [0x0E, 0x40, 0x40, 0x20, 0x1E], # ラ
450             '65432' => [0x7E, 0x00, 0x7E, 0x40, 0x38], # リ
451             '65433' => [0x7E, 0x40, 0x40, 0x20, 0x10], # ル
452             '65434' => [0x7E, 0x42, 0x42, 0x42, 0x7E], # レ
453             '65435' => [0x0E, 0x42, 0x42, 0x22, 0x1E], # ロ
454             '65436' => [0x0A, 0x4A, 0x4A, 0x2A, 0x1E], # ワ
455             '65437' => [0x42, 0x42, 0x40, 0x20, 0x1C], # ン
456             '65438' => [0x02, 0x04, 0x01, 0x02, 0x00], # ゙
457             '65439' => [0x07, 0x05, 0x07, 0x00, 0x00], # ゚
458             };
459              
460 0     0 0   sub phat_font { return $font; }
461              
462 0     0 0   sub phat_tiny_numbers { return $tinynumbers; }
463              
464             1;
465              
466             __END__