font data structure now supports 16-bit glyphs
We can't yet render the latter 8 bits.
This commit is contained in:
parent
2c87cd2f34
commit
79e2569f1a
|
@ -2,10 +2,6 @@
|
|||
#
|
||||
# We need to do this in machine code because Mu doesn't have global variables
|
||||
# yet (for the start of the font).
|
||||
#
|
||||
# There are uncomfortable assumptions baked in here about english/latin
|
||||
# script. We convert the grid of pixels into a fixed-width grid of graphemes,
|
||||
# which may not work well with other language families.
|
||||
|
||||
== code
|
||||
|
||||
|
@ -90,8 +86,9 @@ draw-grapheme-on-screen-buffer: # buffer: (addr byte), g: grapheme, x: int, y:
|
|||
81 7/subop/compare %esi 0x80/imm32
|
||||
0f 8d/jump-if->= $draw-grapheme-on-screen-buffer:end/disp32
|
||||
# var letter-bitmap/esi = font[g]
|
||||
c1 4/subop/shift-left %esi 4/imm8
|
||||
69/multiply %esi 0x21/imm32/glyph-size 6/r32/esi
|
||||
81 0/subop/add %esi Font/imm32
|
||||
46/increment-esi # skip size
|
||||
# var ycurr/edx: int = y*16
|
||||
8b/-> *(ebp+0x14) 2/r32/edx
|
||||
c1 4/subop/shift-left %edx 4/imm8
|
||||
|
|
392
font.subx
392
font.subx
|
@ -5,234 +5,366 @@
|
|||
# See https://en.wikipedia.org/wiki/GNU_Unifont#The_.hex_font_format
|
||||
# Website: http://unifoundry.com/unifont/index.html
|
||||
# License: http://unifoundry.com/LICENSE.txt (GPL v2)
|
||||
# Each line below is a bitmap for a single character.
|
||||
# Each byte within a line is a bitmap for a single row of 8 pixels.
|
||||
# Each glyph consists of a 1-byte size followed by a 16-byte bitmap.
|
||||
# The size can currently be only 8 or 16 (10).
|
||||
# * If it's 8, the glyph is 8 pixels wide, each row consists of one byte, and
|
||||
# the last 8 bytes of the bitmap are ignored.
|
||||
# * If it's 16, the glyph is 16 pixels wide, and each row consists of two
|
||||
# bytes.
|
||||
|
||||
== data
|
||||
|
||||
Font:
|
||||
# some unprintable ASCII chars
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
08/size # nul character hard-coded to 8 bits wide
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 # nul character hard-coded to blank
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 39 93 c2 52 32 5f 8a 52 71 93 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 3b a5 c1 24 31 19 89 24 71 25 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 7b a5 c1 24 79 19 c1 24 79 25 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 79 bf c2 48 7a 49 c2 48 79 89 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 7a 4d c2 52 7b 53 c2 d6 7a 4f 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 31 a5 ca 28 7a 31 ca 28 49 a5 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 73 d1 ca 10 73 d1 ca 10 73 df 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 1e 39 91 40 1e 31 91 08 1e 71 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 22 f9 a2 20 3e 21 a2 20 22 21 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 20 f9 a0 80 20 f9 a0 80 3e 81 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 22 f9 a2 20 22 21 94 20 08 21 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 3e f9 a0 80 3e f9 a0 80 20 81 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 1e f1 a0 88 20 f1 a0 90 1e 89 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 1e 71 a0 88 1c 89 82 88 3c 71 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 1e f9 a0 20 1c 21 82 20 3c f9 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 39 1d a5 10 25 1d a5 10 39 dd 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 71 89 ca 18 4a 09 ca 08 71 9d 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 71 99 ca 04 4a 09 ca 10 71 9d 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 71 99 ca 04 4a 19 ca 04 71 99 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 71 85 ca 0c 4a 15 ca 1c 71 85 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 49 93 ea 54 6a 59 db d4 4a 53 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 34 53 c2 9a 31 17 89 12 71 13 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 7b b9 c1 24 79 39 c1 24 79 39 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 33 25 c4 b4 47 ad c4 a4 34 a5 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 3e 89 a0 d8 3e a9 a0 88 3e 89 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 3a 5d c2 52 32 5d 8a 52 71 9d 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 79 cf c2 10 79 91 c0 50 7b 8f 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 1e 71 90 80 1e 61 90 10 10 e1 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 0e 71 90 80 16 61 92 10 0e e1 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 1c 71 92 80 1c 61 94 10 12 e1 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
10/size
|
||||
aa aa 00 01 80 00 00 01 80 00 12 71 92 80 12 61 92 10 0c e1 80 00 00 01 80 00 00 01 80 00 55 55
|
||||
# 0x20 = space
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# !
|
||||
00 00 00 00 08 08 08 08 08 08 08 00 08 08 00 00
|
||||
08/size
|
||||
00 00 00 00 08 08 08 08 08 08 08 00 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# "
|
||||
00 00 22 22 22 22 00 00 00 00 00 00 00 00 00 00
|
||||
08/size
|
||||
00 00 22 22 22 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 0x23 = '#'
|
||||
00 00 00 00 12 12 12 7e 24 24 7e 48 48 48 00 00
|
||||
08/size
|
||||
00 00 00 00 12 12 12 7e 24 24 7e 48 48 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# $
|
||||
00 00 00 00 08 3e 49 48 38 0e 09 49 3e 08 00 00
|
||||
08/size
|
||||
00 00 00 00 08 3e 49 48 38 0e 09 49 3e 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# %
|
||||
00 00 00 00 31 4a 4a 34 08 08 16 29 29 46 00 00
|
||||
08/size
|
||||
00 00 00 00 31 4a 4a 34 08 08 16 29 29 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# &
|
||||
00 00 00 00 1c 22 22 14 18 29 45 42 46 39 00 00
|
||||
08/size
|
||||
00 00 00 00 1c 22 22 14 18 29 45 42 46 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# '
|
||||
00 00 08 08 08 08 00 00 00 00 00 00 00 00 00 00
|
||||
08/size
|
||||
00 00 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# (
|
||||
00 00 00 04 08 08 10 10 10 10 10 10 08 08 04 00
|
||||
08/size
|
||||
00 00 00 04 08 08 10 10 10 10 10 10 08 08 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# )
|
||||
00 00 00 20 10 10 08 08 08 08 08 08 10 10 20 00
|
||||
08/size
|
||||
00 00 00 20 10 10 08 08 08 08 08 08 10 10 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# *
|
||||
00 00 00 00 00 00 08 49 2a 1c 2a 49 08 00 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 08 49 2a 1c 2a 49 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# +
|
||||
00 00 00 00 00 00 08 08 08 7f 08 08 08 00 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 08 08 08 7f 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# ,
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 18 08 08 10
|
||||
08/size
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 18 08 08 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# -
|
||||
00 00 00 00 00 00 00 00 00 3c 00 00 00 00 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# .
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 18 18 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# /
|
||||
00 00 00 00 02 02 04 08 08 10 10 20 40 40 00 00
|
||||
08/size
|
||||
00 00 00 00 02 02 04 08 08 10 10 20 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 0x30 = '0'
|
||||
00 00 00 00 18 24 42 46 4a 52 62 42 24 18 00 00
|
||||
08/size
|
||||
00 00 00 00 18 24 42 46 4a 52 62 42 24 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 1
|
||||
00 00 00 00 08 18 28 08 08 08 08 08 08 3e 00 00
|
||||
08/size
|
||||
00 00 00 00 08 18 28 08 08 08 08 08 08 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 2
|
||||
00 00 00 00 3c 42 42 02 0c 10 20 40 40 7e 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 02 0c 10 20 40 40 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 3
|
||||
00 00 00 00 3c 42 42 02 1c 02 02 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 02 1c 02 02 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 4
|
||||
00 00 00 00 04 0c 14 24 44 44 7e 04 04 04 00 00
|
||||
08/size
|
||||
00 00 00 00 04 0c 14 24 44 44 7e 04 04 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 5
|
||||
00 00 00 00 7e 40 40 40 7c 02 02 02 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 7e 40 40 40 7c 02 02 02 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 6
|
||||
00 00 00 00 1c 20 40 40 7c 42 42 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 1c 20 40 40 7c 42 42 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 7
|
||||
00 00 00 00 7e 02 02 04 04 04 08 08 08 08 00 00
|
||||
08/size
|
||||
00 00 00 00 7e 02 02 04 04 04 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 8
|
||||
00 00 00 00 3c 42 42 42 3c 42 42 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 42 3c 42 42 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 9
|
||||
00 00 00 00 3c 42 42 42 3e 02 02 02 04 38 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 42 3e 02 02 02 04 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# :
|
||||
00 00 00 00 00 00 18 18 00 00 00 18 18 00 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 18 18 00 00 00 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# ;
|
||||
00 00 00 00 00 00 18 18 00 00 00 18 08 08 10 00
|
||||
08/size
|
||||
00 00 00 00 00 00 18 18 00 00 00 18 08 08 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# <
|
||||
00 00 00 00 00 02 04 08 10 20 10 08 04 02 00 00
|
||||
08/size
|
||||
00 00 00 00 00 02 04 08 10 20 10 08 04 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# =
|
||||
00 00 00 00 00 00 00 7e 00 00 00 7e 00 00 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 00 7e 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# >
|
||||
00 00 00 00 00 40 20 10 08 04 08 10 20 40 00 00
|
||||
08/size
|
||||
00 00 00 00 00 40 20 10 08 04 08 10 20 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# ?
|
||||
00 00 00 00 3c 42 42 02 04 08 08 00 08 08 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 02 04 08 08 00 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 0x40 = @
|
||||
00 00 00 00 1c 22 4a 56 52 52 52 4e 20 1e 00 00
|
||||
08/size
|
||||
00 00 00 00 1c 22 4a 56 52 52 52 4e 20 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# A
|
||||
00 00 00 00 18 24 24 42 42 7e 42 42 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 18 24 24 42 42 7e 42 42 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# B
|
||||
00 00 00 00 7c 42 42 42 7c 42 42 42 42 7c 00 00
|
||||
08/size
|
||||
00 00 00 00 7c 42 42 42 7c 42 42 42 42 7c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# C
|
||||
00 00 00 00 3c 42 42 40 40 40 40 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 40 40 40 40 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# D
|
||||
00 00 00 00 78 44 42 42 42 42 42 42 44 78 00 00
|
||||
08/size
|
||||
00 00 00 00 78 44 42 42 42 42 42 42 44 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# E
|
||||
00 00 00 00 7e 40 40 40 7c 40 40 40 40 7e 00 00
|
||||
08/size
|
||||
00 00 00 00 7e 40 40 40 7c 40 40 40 40 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# F
|
||||
00 00 00 00 7e 40 40 40 7c 40 40 40 40 40 00 00
|
||||
08/size
|
||||
00 00 00 00 7e 40 40 40 7c 40 40 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# G
|
||||
00 00 00 00 3c 42 42 40 40 4e 42 42 46 3a 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 40 40 4e 42 42 46 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# H
|
||||
00 00 00 00 42 42 42 42 7e 42 42 42 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 42 42 42 42 7e 42 42 42 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# I
|
||||
00 00 00 00 3e 08 08 08 08 08 08 08 08 3e 00 00
|
||||
08/size
|
||||
00 00 00 00 3e 08 08 08 08 08 08 08 08 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# J
|
||||
00 00 00 00 1f 04 04 04 04 04 04 44 44 38 00 00
|
||||
08/size
|
||||
00 00 00 00 1f 04 04 04 04 04 04 44 44 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# K
|
||||
00 00 00 00 42 44 48 50 60 60 50 48 44 42 00 00
|
||||
08/size
|
||||
00 00 00 00 42 44 48 50 60 60 50 48 44 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# L
|
||||
00 00 00 00 40 40 40 40 40 40 40 40 40 7e 00 00
|
||||
08/size
|
||||
00 00 00 00 40 40 40 40 40 40 40 40 40 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# M
|
||||
00 00 00 00 42 42 66 66 5a 5a 42 42 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 42 42 66 66 5a 5a 42 42 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# N
|
||||
00 00 00 00 42 62 62 52 52 4a 4a 46 46 42 00 00
|
||||
08/size
|
||||
00 00 00 00 42 62 62 52 52 4a 4a 46 46 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# O
|
||||
00 00 00 00 3c 42 42 42 42 42 42 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 42 42 42 42 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 0x50 = P
|
||||
00 00 00 00 7c 42 42 42 7c 40 40 40 40 40 00 00
|
||||
08/size
|
||||
00 00 00 00 7c 42 42 42 7c 40 40 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# Q
|
||||
00 00 00 00 3c 42 42 42 42 42 42 5a 66 3c 03 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 42 42 42 42 5a 66 3c 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# R
|
||||
00 00 00 00 7c 42 42 42 7c 48 44 44 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 7c 42 42 42 7c 48 44 44 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# S
|
||||
00 00 00 00 3c 42 42 40 30 0c 02 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 3c 42 42 40 30 0c 02 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# T
|
||||
00 00 00 00 7f 08 08 08 08 08 08 08 08 08 00 00
|
||||
08/size
|
||||
00 00 00 00 7f 08 08 08 08 08 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# U
|
||||
00 00 00 00 42 42 42 42 42 42 42 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 42 42 42 42 42 42 42 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# V
|
||||
00 00 00 00 41 41 41 22 22 22 14 14 08 08 00 00
|
||||
08/size
|
||||
00 00 00 00 41 41 41 22 22 22 14 14 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# W
|
||||
00 00 00 00 42 42 42 42 5a 5a 66 66 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 42 42 42 42 5a 5a 66 66 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# X
|
||||
00 00 00 00 42 42 24 24 18 18 24 24 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 42 42 24 24 18 18 24 24 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# Y
|
||||
00 00 00 00 41 41 22 22 14 08 08 08 08 08 00 00
|
||||
08/size
|
||||
00 00 00 00 41 41 22 22 14 08 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# Z
|
||||
00 00 00 00 7e 02 02 04 08 10 20 40 40 7e 00 00
|
||||
08/size
|
||||
00 00 00 00 7e 02 02 04 08 10 20 40 40 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# [
|
||||
00 00 00 0e 08 08 08 08 08 08 08 08 08 08 0e 00
|
||||
08/size
|
||||
00 00 00 0e 08 08 08 08 08 08 08 08 08 08 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# \
|
||||
00 00 00 00 40 40 20 10 10 08 08 04 02 02 00 00
|
||||
08/size
|
||||
00 00 00 00 40 40 20 10 10 08 08 04 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# ]
|
||||
00 00 00 70 10 10 10 10 10 10 10 10 10 10 70 00
|
||||
08/size
|
||||
00 00 00 70 10 10 10 10 10 10 10 10 10 10 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# ^
|
||||
00 00 18 24 42 00 00 00 00 00 00 00 00 00 00 00
|
||||
08/size
|
||||
00 00 18 24 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# _
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 00
|
||||
08/size
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 0x60 = backtick
|
||||
00 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
08/size
|
||||
00 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# a
|
||||
00 00 00 00 00 00 3c 42 02 3e 42 42 46 3a 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 3c 42 02 3e 42 42 46 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# b
|
||||
00 00 00 40 40 40 5c 62 42 42 42 42 62 5c 00 00
|
||||
08/size
|
||||
00 00 00 40 40 40 5c 62 42 42 42 42 62 5c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# c
|
||||
00 00 00 00 00 00 3c 42 40 40 40 40 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 3c 42 40 40 40 40 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# d
|
||||
00 00 00 02 02 02 3a 46 42 42 42 42 46 3a 00 00
|
||||
08/size
|
||||
00 00 00 02 02 02 3a 46 42 42 42 42 46 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# e
|
||||
00 00 00 00 00 00 3c 42 42 7e 40 40 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 3c 42 42 7e 40 40 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# f
|
||||
00 00 00 0c 10 10 10 7c 10 10 10 10 10 10 00 00
|
||||
08/size
|
||||
00 00 00 0c 10 10 10 7c 10 10 10 10 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# g
|
||||
00 00 00 00 00 02 3a 44 44 44 38 20 3c 42 42 3c
|
||||
08/size
|
||||
00 00 00 00 00 02 3a 44 44 44 38 20 3c 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# h
|
||||
00 00 00 40 40 40 5c 62 42 42 42 42 42 42 00 00
|
||||
08/size
|
||||
00 00 00 40 40 40 5c 62 42 42 42 42 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# i
|
||||
00 00 00 08 08 00 18 08 08 08 08 08 08 3e 00 00
|
||||
08/size
|
||||
00 00 00 08 08 00 18 08 08 08 08 08 08 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# j
|
||||
00 00 00 04 04 00 0c 04 04 04 04 04 04 04 48 30
|
||||
08/size
|
||||
00 00 00 04 04 00 0c 04 04 04 04 04 04 04 48 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# k
|
||||
00 00 00 40 40 40 44 48 50 60 50 48 44 42 00 00
|
||||
08/size
|
||||
00 00 00 40 40 40 44 48 50 60 50 48 44 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# l
|
||||
00 00 00 18 08 08 08 08 08 08 08 08 08 3e 00 00
|
||||
08/size
|
||||
00 00 00 18 08 08 08 08 08 08 08 08 08 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# m
|
||||
00 00 00 00 00 00 76 49 49 49 49 49 49 49 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 76 49 49 49 49 49 49 49 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# n
|
||||
00 00 00 00 00 00 5c 62 42 42 42 42 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 5c 62 42 42 42 42 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# o
|
||||
00 00 00 00 00 00 3c 42 42 42 42 42 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 3c 42 42 42 42 42 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 0x70 = p
|
||||
00 00 00 00 00 00 5c 62 42 42 42 42 62 5c 40 40
|
||||
08/size
|
||||
00 00 00 00 00 00 5c 62 42 42 42 42 62 5c 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# q
|
||||
00 00 00 00 00 00 3a 46 42 42 42 42 46 3a 02 02
|
||||
08/size
|
||||
00 00 00 00 00 00 3a 46 42 42 42 42 46 3a 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# r
|
||||
00 00 00 00 00 00 5c 62 42 40 40 40 40 40 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 5c 62 42 40 40 40 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# s
|
||||
00 00 00 00 00 00 3c 42 40 30 0c 02 42 3c 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 3c 42 40 30 0c 02 42 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# t
|
||||
00 00 00 00 10 10 10 7c 10 10 10 10 10 0c 00 00
|
||||
08/size
|
||||
00 00 00 00 10 10 10 7c 10 10 10 10 10 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# u
|
||||
00 00 00 00 00 00 42 42 42 42 42 42 46 3a 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 42 42 42 42 42 42 46 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# v
|
||||
00 00 00 00 00 00 42 42 42 24 24 24 18 18 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 42 42 42 24 24 24 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# w
|
||||
00 00 00 00 00 00 41 49 49 49 49 49 49 36 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 41 49 49 49 49 49 49 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# x
|
||||
00 00 00 00 00 00 42 42 24 18 18 24 42 42 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 42 42 24 18 18 24 42 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# y
|
||||
00 00 00 00 00 00 42 42 42 42 42 26 1a 02 02 3c
|
||||
08/size
|
||||
00 00 00 00 00 00 42 42 42 42 42 26 1a 02 02 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# z
|
||||
00 00 00 00 00 00 7e 02 04 08 10 20 40 7e 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 7e 02 04 08 10 20 40 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# {
|
||||
00 00 00 0c 10 10 08 08 10 20 10 08 08 10 10 0c
|
||||
08/size
|
||||
00 00 00 0c 10 10 08 08 10 20 10 08 08 10 10 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# |
|
||||
00 00 08 08 08 08 08 08 08 08 08 08 08 08 08 08
|
||||
08/size
|
||||
00 00 08 08 08 08 08 08 08 08 08 08 08 08 08 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# }
|
||||
00 00 00 30 08 08 10 10 08 04 08 10 10 08 08 30
|
||||
08/size
|
||||
00 00 00 30 08 08 10 10 08 04 08 10 10 08 08 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# ~
|
||||
00 00 00 31 49 46 00 00 00 00 00 00 00 00 00 00
|
||||
08/size
|
||||
00 00 00 31 49 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
# 0x7f = del (unused)
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
08/size
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
|
|
|
@ -141,9 +141,8 @@ All text-mode screen primitives require a screen object, which can be either
|
|||
the real screen on the computer or a fake screen for tests.
|
||||
|
||||
The real screen on the Mu computer can currently display only ASCII characters,
|
||||
though it's easy to import more of the font. There is only one font. All
|
||||
graphemes are 8 pixels wide and 16 pixels tall. These constraints only apply
|
||||
to the real screen.
|
||||
though it's easy to import more of the font. There is only one font, and it's
|
||||
mostly fixed-width, with graphemes being either 8 or 16 pixels wide.
|
||||
|
||||
- `draw-grapheme`: draws a single grapheme at a given coordinate, with given
|
||||
foreground and background colors.
|
||||
|
|
Loading…
Reference in New Issue