aboutsummaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2015-03-11 19:18:59 +0100
committerAlex Auvolat <alex@adnab.me>2015-03-11 19:18:59 +0100
commit50b5427a8edbb8d59215334f5a250e7f8d6d7ca7 (patch)
tree7263505b2a6145256ce1f494108a4ceb853c4de0 /res
parent0b76aff59b586d87ee0449bc7deda878f4633515 (diff)
downloadkogata-50b5427a8edbb8d59215334f5a250e7f8d6d7ca7.tar.gz
kogata-50b5427a8edbb8d59215334f5a250e7f8d6d7ca7.zip
Add keyboard handling code. New font thanks to Muazzam from OSDev!
Diffstat (limited to 'res')
-rw-r--r--res/fonts/Makefile10
-rw-r--r--res/fonts/muazzam.s2006
-rw-r--r--res/fonts/pcvga.c (renamed from res/fonts/default.c)11
-rw-r--r--res/keymaps/Makefile10
-rw-r--r--res/keymaps/fr.c68
5 files changed, 2095 insertions, 10 deletions
diff --git a/res/fonts/Makefile b/res/fonts/Makefile
index c4de63d..8b50213 100644
--- a/res/fonts/Makefile
+++ b/res/fonts/Makefile
@@ -1,10 +1,18 @@
CC=gcc
CFLAGS=-I../../src/lib/include -std=c11
+AS=nasm
+ASFLAGS=-fbin
%.bf: %.c
$(CC) $(CFLAGS) -o $<.bin $<
./$<.bin > $@
rm $<.bin
-all: default.bf
+%.bf: %.s
+ $(AS) $(ASFLAGS) -o $@ $<
+
+all: pcvga.bf muazzam.bf
+
+clean:
+ rm *.bf || exit 0
diff --git a/res/fonts/muazzam.s b/res/fonts/muazzam.s
new file mode 100644
index 0000000..43c74a8
--- /dev/null
+++ b/res/fonts/muazzam.s
@@ -0,0 +1,2006 @@
+;---------------------------------------------------------;
+; Written by: Muazzam Ali Kazmi ;
+; Public domain ;
+;---------------------------------------------------------;
+
+magic:
+ dd 0xD184C274
+glyph_geom:
+ dw 8, 16
+nchars:
+ dd 127
+
+times 512 db 0
+
+.space: ;[space]
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.exclamation: ;!
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00000000b
+ db 00010000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.quotation: ;"
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 01101100b
+ db 01001000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.hash: ;#
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00100010b
+ db 00100010b
+ db 01111111b
+ db 00100010b
+ db 01000100b
+ db 01000100b
+ db 11111111b
+ db 01000100b
+ db 01000100b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.dollor: ;$
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00010000b
+
+ db 00111100b
+ db 01010010b
+ db 01010000b
+ db 01010000b
+ db 00111100b
+ db 00010010b
+ db 00010010b
+ db 01010010b
+ db 00111100b
+
+ db 00010000b
+ db 00000000b
+ db 00000000b
+
+
+.percent: ;%
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000010b
+ db 00100010b
+ db 01010100b
+ db 00100100b
+ db 00001000b
+ db 00001010b
+ db 00010101b
+ db 00010010b
+ db 00100000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.ampersand: ;&
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00110000b
+ db 01001000b
+ db 00110000b
+ db 00110100b
+ db 01001000b
+ db 01000101b
+ db 00111110b
+ db 00000001b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.apostrophe: ;'
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00010000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.parenthesis.left: ;(
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00100000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 00100000b
+ db 00011000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.parenthesis.right: ;)
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00000100b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00000100b
+ db 00011000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.astrisk: ;*
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00101010b
+ db 00011100b
+ db 00011100b
+ db 00101010b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.plus: ;+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 01111111b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.comma: ;,
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00011000b
+ db 00011000b
+
+ db 00001000b
+ db 00010000b
+ db 00000000b
+
+
+.minus: ;-
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 01111110b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.fullStop: ;.
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00011000b
+ db 00011000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.slash: ;/
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000010b
+ db 00000010b
+ db 00000100b
+ db 00000100b
+ db 00001000b
+ db 00001000b
+ db 00010000b
+ db 00010000b
+ db 00100000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+;Numbers
+;
+
+.zero: ;0
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00100100b
+ db 01000010b
+ db 01000010b
+ db 01011010b
+ db 01000010b
+ db 01000010b
+ db 00100100b
+ db 00011000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.one: ;1
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00010000b
+ db 00110000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00111000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.two: ;2
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 00000010b
+ db 00000100b
+ db 00001000b
+ db 00010000b
+ db 00100000b
+ db 01000000b
+ db 01111110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.three: ;3
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 00000010b
+ db 00000100b
+ db 00111000b
+ db 00000100b
+ db 00000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.four: ;4
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00001100b
+ db 00010100b
+ db 00100100b
+ db 01000100b
+ db 01000100b
+ db 01111110b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.five: ;5
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111110b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01111100b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 01111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.six: ;6
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.seven: ;7
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111110b
+ db 00000010b
+ db 00000100b
+ db 00001000b
+ db 00001000b
+ db 00010000b
+ db 00010000b
+ db 00100000b
+ db 00100000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.eight: ;8
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.nine: ;9
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111110b
+ db 00000010b
+ db 00000010b
+ db 00000100b
+ db 00011000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.colon: ;:
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00011000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00011000b
+ db 00011000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.semicolon: ;;
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00011000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00011000b
+ db 00011000b
+ db 00001000b
+ db 00010000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.less: ;<
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000100b
+ db 00001000b
+ db 00010000b
+ db 00100000b
+ db 01000000b
+ db 00100000b
+ db 00010000b
+ db 00001000b
+ db 00000100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.equal: ;=
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 01111110b
+ db 00000000b
+ db 01111110b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.greater: ;>
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00100000b
+ db 00010000b
+ db 00001000b
+ db 00000100b
+ db 00000010b
+ db 00000100b
+ db 00001000b
+ db 00010000b
+ db 00100000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.question: ;?
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 00000010b
+ db 00000100b
+ db 00001000b
+ db 00010000b
+ db 00010000b
+ db 00000000b
+ db 00010000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.at: ;@
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01001110b
+ db 01010010b
+ db 01001110b
+ db 01000000b
+ db 01000000b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+;Upper case
+;
+
+.A:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00100100b
+ db 01000010b
+ db 01000010b
+ db 01111110b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.B:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.C:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111110b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 00111110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.D:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111000b
+ db 01000100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000100b
+ db 01111000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.E:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111110b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01111110b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01111110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.F:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111110b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01111110b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.G:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01001110b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.H:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01111110b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.I:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00111000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.J:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00001110b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+ db 01000100b
+ db 01000100b
+ db 00111000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.K:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000010b
+ db 01000100b
+ db 01001000b
+ db 01010000b
+ db 01100000b
+ db 01010000b
+ db 01001000b
+ db 01000100b
+ db 01000010b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.L:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01111111b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.M:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01100110b
+ db 01100110b
+ db 01100110b
+ db 01011010b
+ db 01011010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.N:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01100010b
+ db 01100010b
+ db 01100010b
+ db 01010010b
+ db 01010010b
+ db 01001010b
+ db 01001010b
+ db 01000110b
+ db 01000110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.O:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.P:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01111100b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.Q:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01001010b
+ db 01000110b
+ db 00111110b
+
+ db 00000001b
+ db 00000000b
+ db 00000000b
+
+
+.R:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01111100b
+ db 01100000b
+ db 01010000b
+ db 01001000b
+ db 01000100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.S:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111100b
+ db 01000010b
+ db 01000000b
+ db 01000000b
+ db 00111100b
+ db 00000010b
+ db 00000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.T:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111111b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.U:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.V:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00100100b
+ db 00100100b
+ db 00011000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.W:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01011010b
+ db 01011010b
+ db 01100110b
+ db 01100110b
+ db 01100110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.X:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000100b
+ db 01000100b
+ db 00101000b
+ db 00101000b
+ db 00010000b
+ db 00010000b
+ db 00101000b
+ db 01000100b
+ db 01000100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.Y:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000100b
+ db 01000100b
+ db 00101000b
+ db 00101000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.Z:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111110b
+ db 00000100b
+ db 00001000b
+ db 00001000b
+ db 00010000b
+ db 00010000b
+ db 00100000b
+ db 01000000b
+ db 01111110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.squreBracket.left: ;[
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01111000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01111000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+.backSlash: ; back slash
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000000b
+ db 01000000b
+ db 00100000b
+ db 00100000b
+ db 00010000b
+ db 00010000b
+ db 00001000b
+ db 00001000b
+ db 00000100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+
+.squreBracket.right: ;]
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011110b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00000010b
+ db 00011110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.caret: ;^
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00001000b
+ db 00010100b
+ db 00100010b
+ db 01000001b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.underScore: ;_
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 11111111b
+ db 00000000b
+ db 00000000b
+
+
+.graveAccent: ;`
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011000b
+ db 00001000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+
+
+;Lower case
+;
+.a:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01111100b
+ db 00000010b
+ db 00000010b
+ db 00111110b
+ db 01000010b
+ db 01000010b
+ db 00111101b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.b:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000000b
+ db 01000000b
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.c:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00111100b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.d:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000100b
+ db 00000100b
+ db 00111100b
+ db 01000100b
+ db 01000100b
+ db 01000100b
+ db 01000100b
+ db 01000100b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.e:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01111110b
+ db 01000000b
+ db 01000000b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.f:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00011100b
+ db 00100000b
+ db 00100000b
+ db 01111100b
+ db 00100000b
+ db 00100000b
+ db 00100000b
+ db 00100000b
+ db 00100000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.g:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00111110b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111110b
+ db 00000010b
+ db 00000010b
+
+ db 01111100b
+ db 00000000b
+ db 00000000b
+
+
+.h:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000000b
+ db 01000000b
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.i:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00001000b
+ db 00000000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.j:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00001000b
+ db 00000000b
+ db 00011100b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+ db 00000100b
+
+ db 00111000b
+ db 00000000b
+ db 00000000b
+
+
+.k:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 01000000b
+ db 01000000b
+ db 01000000b
+ db 01001000b
+ db 01010000b
+ db 01100000b
+ db 01010000b
+ db 01001000b
+ db 01000100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.l:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00111000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00000110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.m:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 11110110b
+ db 00101010b
+ db 00101010b
+ db 00101010b
+ db 00101010b
+ db 00101010b
+ db 00101010b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.n:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01111100b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.o:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.p:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01111100b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01111100b
+ db 01000000b
+ db 01000000b
+
+ db 01000000b
+ db 00000000b
+ db 00000000b
+
+
+.q:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00111110b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111110b
+ db 00000010b
+ db 00000010b
+
+ db 00000010b
+ db 00000000b
+ db 00000000b
+
+
+.r:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00101111b
+ db 00110000b
+ db 00100000b
+ db 00100000b
+ db 00100000b
+ db 00100000b
+ db 00100000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.s:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00111100b
+ db 01000000b
+ db 01000000b
+ db 00111100b
+ db 00000010b
+ db 00000010b
+ db 00111100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.t:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00010000b
+ db 00010000b
+ db 01111100b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00001110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.u:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00111110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.v:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00100100b
+ db 00100100b
+ db 00011000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.w:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 01011010b
+ db 01011010b
+ db 01100110b
+ db 01100110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.x:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01000100b
+ db 01000100b
+ db 00101000b
+ db 00010000b
+ db 00101000b
+ db 01000100b
+ db 01000100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.y:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01000010b
+ db 01000010b
+ db 01000010b
+ db 00100100b
+ db 00011000b
+ db 00001000b
+ db 00010000b
+
+ db 01100000b
+ db 00000000b
+ db 00000000b
+
+
+.z:
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00000000b
+ db 00000000b
+ db 01111110b
+ db 00000100b
+ db 00001000b
+ db 00010000b
+ db 00100000b
+ db 01000000b
+ db 01111110b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.curlyBracket.left: ;{
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00001100b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 01100000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00001100b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.verticalBar: ;|
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+
+ db 00010000b
+ db 00000000b
+ db 00000000b
+
+
+.curlyBracket.right: ;}
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db 00110000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00000110b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00110000b
+
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
+.tilde: ;~
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00110010b
+ db 01001100b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+
diff --git a/res/fonts/default.c b/res/fonts/pcvga.c
index 43fddce..b646eb8 100644
--- a/res/fonts/default.c
+++ b/res/fonts/pcvga.c
@@ -1,4 +1,3 @@
-#include <stdlib.h>
#include <stdio.h>
#include <proto/font_file.h>
@@ -270,14 +269,8 @@ ascii_bitmap_font_header h = {
};
int main() {
- FILE *f = fopen("default.bf", "wb");
- if (f == 0) {
- fprintf(stderr, "Could not open default.bf\n");
- exit(1);
- }
-
- fwrite(&h, 1, sizeof(h), f);
- fwrite(font_data, 256, 16, f);
+ fwrite(&h, 1, sizeof(h), stdout);
+ fwrite(font_data, 256, 16, stdout);
return 0;
}
diff --git a/res/keymaps/Makefile b/res/keymaps/Makefile
new file mode 100644
index 0000000..394685e
--- /dev/null
+++ b/res/keymaps/Makefile
@@ -0,0 +1,10 @@
+CC=gcc
+CFLAGS=-I../../src/lib/include -std=c11
+
+%.km: %.c
+ $(CC) $(CFLAGS) -o $<.bin $<
+ ./$<.bin > $@
+ rm $<.bin
+
+all: fr.km
+
diff --git a/res/keymaps/fr.c b/res/keymaps/fr.c
new file mode 100644
index 0000000..f039142
--- /dev/null
+++ b/res/keymaps/fr.c
@@ -0,0 +1,68 @@
+#include <stdio.h>
+
+#include <proto/keymap_file.h>
+
+keymap_t fr_keymap = {
+ { // normal
+ /* 0x00 */ 0, 0, '&', L'é', '"', '\'', '(', '-', L'è', '_', L'ç', L'à', ')', '=', 0, 0,
+ /* 0x10 */ 'a', 'z', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '^', '$', 0, 0, 'q', 's',
+ /* 0x20 */ 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', L'ù', L'²', 0, '*', 'w', 'x', 'c', 'v',
+ /* 0x30 */ 'b', 'n', ',', ';', ':', '!', 0, '*', 0, ' ', 0, 0, 0, 0, 0, 0,
+ /* 0x40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '-', 0, 0, 0, '+', 0,
+ /* 0x50 */ 0, 0, 0, 0, 0, 0, '<', 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { // shift
+ /* 0x00 */ 0, 0, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', L'°', '+', 0, 0,
+ /* 0x10 */ 'A', 'Z', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', L'¨', L'£', 0, 0, 'Q', 'S',
+ /* 0x20 */ 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', '%', '~', 0, L'µ', 'W', 'X', 'C', 'V',
+ /* 0x30 */ 'B', 'N', '?', '.', '/', L'§', 0, '*', 0, ' ', 0, 0, 0, 0, 0, 0,
+ /* 0x40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '-', 0, 0, 0, '+', 0,
+ /* 0x50 */ 0, 0, 0, 0, 0, 0, '>', 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { // caps
+ /* 0x00 */ 0, 0, '&', L'É', '"', '\'', '(', '-', L'È', '_', L'Ç', L'À', ')', '=', 0, 0,
+ /* 0x10 */ 'A', 'Z', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', L'¨', '$', 0, 0, 'Q', 'S',
+ /* 0x20 */ 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', L'Ù', L'²', 0, '*', 'W', 'X', 'C', 'V',
+ /* 0x30 */ 'B', 'N', ',', ';', ':', '!', 0, '*', 0, ' ', 0, 0, 0, 0, 0, 0,
+ /* 0x40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '-', 0, 0, 0, '+', 0,
+ /* 0x50 */ 0, 0, 0, 0, 0, 0, '>', 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ },
+ { // alt gr
+ /* 0x00 */ 0, 0, L'¹', '~', '#', '{', '[', '|', '`', '\\', '^', '@', ']', '}', 0, 0,
+ /* 0x10 */ L'æ', L'«', L'€', L'¶', L'ŧ', L'←', L'↓', L'→',
+ L'ø', L'þ', L'¨', L'¤', 0, 0, '@', L'ß',
+ /* 0x20 */ L'ð', L'đ', L'ŋ', L'ħ', 'j', L'ĸ', L'ł', L'µ',
+ '^', L'¬', 0, '`', L'ł', L'»', L'¢', L'“',
+ /* 0x30 */ L'”', 'n', L'´', ';', L'·', '!', 0, '*', 0, ' ', 0, 0, 0, 0, 0, 0,
+ /* 0x40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '-', 0, 0, 0, '+', 0,
+ /* 0x50 */ 0, 0, 0, 0, 0, 0, '|', 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ },
+ { // shift + alt gr
+ /* 0x00 */ 0, 0, L'¡', L'⅛', L'£', '$', L'⅜', L'⅝', L'⅞', L'™', L'±', L'°', L'¿', L'˛', 0, 0,
+ /* 0x10 */ L'Æ', '<', L'¢', L'®', L'Ŧ', L'¥', L'↑', L'ı', L'Ø', L'Þ', L'°', L'¯', 0, 0, L'Ω', L'§',
+ /* 0x20 */ L'Ð', L'ª', L'Ŋ', L'Ħ', 'J', '&', L'Ł', L'º', L'ˇ', L'¬', 0, L'˘', L'Ł', '>', L'©', L'‘',
+ /* 0x30 */ L'’', 'N', L'˝', L'×', L'÷', L'˙', 0, '*', 0, ' ', 0, 0, 0, 0, 0, 0,
+ /* 0x40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '-', 0, 0, 0, '+', 0,
+ /* 0x50 */ 0, 0, 0, 0, 0, 0, L'¦', 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /* 0x70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ },
+ true,
+};
+
+
+int main() {
+ fwrite(&fr_keymap, 1, sizeof(fr_keymap), stdout);
+
+ return 0;
+}
+
+/* vim: set ts=4 sw=4 tw=0 noet :*/