4cade/res/notes/font.txt

153 lines
2.6 KiB
Plaintext

CIRCUITOUS font information
2020-09 last updated
- $80 characters only (high bit is always 0)
- $20 and above are standard ASCII
- $00..$1F are various shapes and characters in no standard order
- Capital letters are full-width, which makes all-caps drawing look bad, so
don't do that
- Capital letters are also full-height, which makes single-spaced text look
bad, so don't do that either
Font routines are near the top of LC RAM, accessible to either bank. However,
font data is stored in LC RAM bank 2, because that's where we have space. Note
that most strings are in LC RAM bank 1, which is admittedly inconvenient. You
are responsible for copying characters to a place where the drawing routine can
access them. (See src/ui.font.a) The drawing routines will switch to LC 2 to
access font data, then back to LC 1 before returning.
Font data is stored non-consecutively. Row 0 data starts at $D600, in order, so
row 0 of character $00 is at $D600, row 0 of character $01 is at $D601, &c.
Row 1 starts at $D680; row 2 starts at $D700. The entire font set finishes at
$D9FF.
HEX DESCRIPTION
$00 full horizontal circuit path
$01 horizontal circuit path endpoint with rounded left side
$02 horizontal circuit path endpoint with rounded right side
$03 full vertical circuit path
$04 vertical circuit path endpoint with rounded top
$05 vertical circuit path endpoint with rounded bottom
$06 rounded top-left quadrant circuit path
$07 rounded top-right quadrant circuit path
$08 left arrow
$09 rounded bottom-right quadrant circuit path
$0A
$0B up arrow
$0C rounded bottom-left quadrant circuit path
$0D carriage return symbol
$0E open apple
$0F closed apple
$10 dot, small
$11 dot, medium
$12 dot, large
$13 dot, extra large
$14 heart
$15 right arrow
$16 bolt
$17 times
$18
$19
$1A down arrow
$1B lowercase a with umlaut
$1C lowercase e with accent
$1D lowercase i with accent
$1E lowercase o with backtick accent
$1F uppercase A with accent
$20 space
$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 full block (solid cursor)