diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | driver/e1000.c | 1 | ||||
| -rw-r--r-- | driver/keyboard.c | 2 | ||||
| -rw-r--r-- | driver/mouse.c | 2 | ||||
| -rw-r--r-- | driver/pci.c | 2 | ||||
| -rw-r--r-- | grubiso/boot/grub/grub.cfg | 2 | ||||
| -rw-r--r-- | kernel/kernel.c | 40 | ||||
| -rw-r--r-- | userspace/Makefile | 2 | ||||
| -rw-r--r-- | userspace/fonts/Makefile | 12 | ||||
| -rw-r--r-- | userspace/fonts/bdf.c | 59 | ||||
| -rw-r--r-- | userspace/fonts/binarize.py | 16 | ||||
| -rw-r--r-- | userspace/fonts/binfont.src | 2 | ||||
| -rw-r--r-- | userspace/fonts/binfont_v2.src | 1237 | ||||
| -rw-r--r-- | userspace/fonts/envypn7x13.bdf | 4295 | ||||
| -rw-r--r-- | userspace/fonts/envypn7x13.src | 2844 | ||||
| -rw-r--r-- | userspace/fonts/tinyfont.c | 160 | ||||
| -rw-r--r-- | userspace/fonts/tinyfont.src | 667 | ||||
| -rw-r--r-- | userspace/xterm/terminal.c | 3 | ||||
| -rw-r--r-- | userspace/xterm/vesa.c | 324 | ||||
| -rw-r--r-- | userspace/xterm/xterm.c | 3 | ||||
| -rw-r--r-- | video/compositor.c | 65 |
21 files changed, 9451 insertions, 289 deletions
@@ -89,6 +89,8 @@ FoolOS was/is tested/developed on the following emulators/machines Todos ----- +pipes! schedulig! DMA! splice (2) + Autobuild via Jenkins (sanbboxed?) streamline: binutils,gcc,newlib,ncurses,ncurses-examples.vim building mesa3d, quake,doom, netwookring tcp/ip diff --git a/driver/e1000.c b/driver/e1000.c index 5d0cbe6..7b4a7cb 100644 --- a/driver/e1000.c +++ b/driver/e1000.c @@ -525,6 +525,7 @@ struct netdev e1000_init(uint32_t base) return dev; } + uint32_t e1000_interrupt (uint32_t esp) { // if ( p_interruptContext->getInteruptNumber() == pciConfigHeader->getIntLine()+IRQ0) diff --git a/driver/keyboard.c b/driver/keyboard.c index b333b78..a153c9b 100644 --- a/driver/keyboard.c +++ b/driver/keyboard.c @@ -26,10 +26,8 @@ int hex_to_dec(char c) return c+10-'a'; } -extern struct netdev e1000_dev; static void put(uint8_t c) { -// syscall_generic(SYSCALL_WRITE,kb_stream, (char *)&c , 1, 0); compositor_kb_handle(c); } diff --git a/driver/mouse.c b/driver/mouse.c index 0c48a5f..c0e71d5 100644 --- a/driver/mouse.c +++ b/driver/mouse.c @@ -154,7 +154,7 @@ void mouse_action() if(mouse_x>=1920)mouse_x=1920-1; if(mouse_y>=1080)mouse_y=1080-1; - compositor_mouse_handle(mouse_x,1080-mouse_y, mouse_byte[0]); + compositor_mouse_handle(mouse_x,1080-mouse_y-1, mouse_byte[0]); } void mouse_handler(uint8_t byte)//struct regs *a_r) //struct regs *a_r (not used but just there) diff --git a/driver/pci.c b/driver/pci.c index a6d68c1..4d0ea3e 100644 --- a/driver/pci.c +++ b/driver/pci.c @@ -6,7 +6,7 @@ #define PCI_CONFIG_DATA 0xCFC #define PCI_CONFIG_ADDRESS 0xCF8 -static uint32_t e1000_addr; +static uint32_t e1000_addr=0; static char *get_class(uint8_t v) { diff --git a/grubiso/boot/grub/grub.cfg b/grubiso/boot/grub/grub.cfg index ad49f88..f16c3a0 100644 --- a/grubiso/boot/grub/grub.cfg +++ b/grubiso/boot/grub/grub.cfg @@ -1,4 +1,4 @@ -set timeout=0 //seconds +set timeout=1 //seconds if loadfont ${prefix}/fonts/unicode.pf2 diff --git a/kernel/kernel.c b/kernel/kernel.c index 7c06ebf..7f92a25 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -48,11 +48,12 @@ * * All Processors are up and running in 32bit protected mode. * * Interrupts are installed and enabled: * - * - PS/2 Keyboard CPU0 - * - PS/2 Mouse CPU0 - * - PIT Timer (20Hz) (DISABLED in apic.c) CPU0 - * - APIC Timer (Frequency defined in kernel.h) ALL CPUS - * - E1000 CPU0 + * - APIC Timer (Frequency defined in kernel.h) ALL CPUS + * - PIT Timer (20Hz hardcoded in timer.c) CPU-0 + * + * - PS/2 Keyboard CPU-0 + * - PS/2 Mouse CPU-0 + * - E1000 CPU-0 * * * Software Interrupts: * @@ -143,43 +144,24 @@ void kernel_main(uint32_t eax,uint32_t ebx) apic_init(&cfg_acpi); ioapic_config(); - // -- VESA -- // - /* - fixme("tell terminal syscall somehow if we are vga or textmode"); - klog("Video Electronics Standards Association (VESA) init ... "); - - // binfont has to fit in ONE ext2 block // - - fixme("support binfonts spanning multiple blocks?"); - uint32_t inode= ext2_filename_to_inode(VMEM_EXT2_RAMIMAGE,VESA_FONT_PATH); - uint32_t addr= ext2_inode_blockstart( VMEM_EXT2_RAMIMAGE,inode,0); - vesa_init(cfg_multiboot,addr); // this only sets some internal static variables - - - // -- STD STREAMS -- // - klog("Standard Streams init ..."); - fd_init_std_streams(0,cfg_multiboot->framebuffer_type!=2); - */ - + // -- COMPOSITOR (TODO: text-mode fallback) -- // klog("Compositor init ..."); compositor_init(cfg_multiboot->framebuffer_width,cfg_multiboot->framebuffer_height,cfg_multiboot->framebuffer_pitch); - compositor_set_background("/home/miguel/bg2.ppm"); + compositor_set_background("/home/miguel/bg.ppm"); - // -- KB -- // + // -- KB DRIVER -- // klog("Keyboard init ..."); keyboard_init(); - // -- MOUSE -- // + // -- MOUSE DRIVER -- // klog("Mouse init ..."); mouse_init(); - // -- E1000 INIT (TODO: only if present!) --/ + // -- E1000 DRIVER --/ if(e1000_addr) { - #ifndef DISABLE_E1000 klog("E1000 init ..."); e1000_init(e1000_addr); - #endif } // we wait until the end since the time will only start ticking once diff --git a/userspace/Makefile b/userspace/Makefile index 94d35c4..4823598 100644 --- a/userspace/Makefile +++ b/userspace/Makefile @@ -53,7 +53,7 @@ ext2.img: $(PROGS) @mkdir -p mnt/pipes # mountpoint for pipes @cp $(PROGS) mnt/bin @cp /home/miguel/git/EXT/vim/src/vim mnt/bin - @cp fonts/binfont.bin mnt/doc/fonts + @cp fonts/*.bin mnt/doc/fonts @cp xterm/xterm mnt/bin @cp cpp/testcpp mnt/bin @cp ncurses/foolstart mnt/bin diff --git a/userspace/fonts/Makefile b/userspace/fonts/Makefile index a203753..31dfb20 100644 --- a/userspace/fonts/Makefile +++ b/userspace/fonts/Makefile @@ -1,5 +1,15 @@ ############ fool-font ############ -binfont.bin: binfont.src + +# how to binarize foolfont sources to foolfont binaries +%.bin: %.src python3 binarize.py $< $@ + +FONT_SRC=$(wildcard ./*.src) +FONT_BIN=$(patsubst %.src, %.bin, $(FONT_SRC)) + +all: + clean: -rm binfont.bin + -rm binfont_v2.bin + -rm tinyfont.bin diff --git a/userspace/fonts/bdf.c b/userspace/fonts/bdf.c new file mode 100644 index 0000000..ce717c5 --- /dev/null +++ b/userspace/fonts/bdf.c @@ -0,0 +1,59 @@ +// https://github.com/Tecate/bitmap-fonts +// https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format +// + +// +// simple converted of bdf to foolfont binary format +// limited functionality +// works only for monospace with identical bounding boxes.. +// for now width = 7 /height=13 is hardcoded! +// + +#include <stdio.h> +#include <string.h> +#include <stdbool.h> + +int main(int argc, char **argv) +{ + char buf[256]; + + FILE *f=fopen(argv[1],"r"); + + bool bitmap=false; + + printf("7\n"); + printf("13\n"); + + while(fgets(buf,256,f)) + { + buf[strlen(buf)-1]=0; + + //printf("[%s]\n",buf); + + if(!strcmp(buf,"BITMAP")) + { + printf("//reading bitmap\n"); + bitmap=true; + continue; + } + if(!strcmp(buf,"ENDCHAR"))bitmap=false; + + if(bitmap) + { + //int l=atoi(buf); + int l=strtol(buf,NULL,16); + + for(int i=0;i<7;i++) + { + if(l&(1<<(6-i)))printf("X"); + else printf("_"); + } + + printf("\n"); + } + + } + + + +} diff --git a/userspace/fonts/binarize.py b/userspace/fonts/binarize.py index a992c93..e043106 100644 --- a/userspace/fonts/binarize.py +++ b/userspace/fonts/binarize.py @@ -4,7 +4,10 @@ def binarize(file_in, file_out): """ Create a binary file from an ASCII file. Everything but '0' and '1' (alternatively '_' and 'X') is ignored - from the input file. """ + from the input file. + + The first two lines are width and height and will be saved + as the first two bytes of the resulting file""" print ("binarizing " + file_in + " to "+ file_out + ".") @@ -18,6 +21,11 @@ def binarize(file_in, file_out): try: + w=int(f.readline()) + h=int(f.readline()) + o.write(bytes([w])) + o.write(bytes([h])) + while True: b=readnext(f) @@ -56,7 +64,11 @@ def readnext(f): c=f.read(1) if not c: - return -1 + if l==0: + return -1 + else: + print("trailing only ",b," with ",l," bits"); + return int(b,2) if c=="0" or c=='_': l+=1 diff --git a/userspace/fonts/binfont.src b/userspace/fonts/binfont.src index c1d9ccc..b2b1f2e 100644 --- a/userspace/fonts/binfont.src +++ b/userspace/fonts/binfont.src @@ -1,3 +1,5 @@ +8 +10 // space (ox2o) diff --git a/userspace/fonts/binfont_v2.src b/userspace/fonts/binfont_v2.src new file mode 100644 index 0000000..05950da --- /dev/null +++ b/userspace/fonts/binfont_v2.src @@ -0,0 +1,1237 @@ +8 +10 + +// space (ox2o) + +________ +________ +________ +________ +___X____ +___X____ +________ +________ +________ +________ + +// ! + +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +________ +________ +___XX___ +___XX___ + +// " + +_XX__XX_ +_XX__XX_ +_XX__XX_ +________ +________ +________ +________ +________ +________ +________ + +// # + +________ +__X__X__ +__X__X__ +XXXXXXXX +__X__X__ +__X__X__ +__X__X__ +XXXXXXXX +__X__X__ +__X__X__ + +// $ + +________ +___X____ +_XXXXXX_ +XX_X__XX +_XXX____ +__XXXX__ +___X_XX_ +XX_X__XX +_XXXXXX_ +___X____ + +// % + +______XX +_X___XX_ +X_X_XX__ +_X__XX__ +___XX___ +___XX___ +__XX__X_ +__XX_X_X +_XX___X_ +XX______ + +// & + +__X_____ +_X_X____ +X___X___ +_X_X____ +__XX____ +_X_X____ +X___X_X_ +X____X__ +X___X_X_ +_XXX___X + +// ' + +___XX___ +___XX___ +___XX___ +________ +________ +________ +________ +________ +________ +________ + +// ( + +___X____ +__X_____ +_X______ +_X______ +X_______ +X_______ +_X______ +_X______ +__X_____ +___X____ + +// ) + +___X____ +_____X__ +______X_ +______X_ +_______X +_______X +______X_ +______X_ +_____X__ +___X____ + +// * + +________ +________ +X__X__X_ +_X_X_X__ +__XXX___ +XXXXXXX_ +__XXX___ +_X_X_X__ +X__X__X_ +________ + +// + + +________ +________ +___XX___ +___XX___ +XXXXXXXX +XXXXXXXX +___XX___ +___XX___ +________ +________ + +// , + +________ +________ +________ +________ +________ +________ +________ +___XX___ +___XX___ +__XX____ + +// - + +________ +________ +________ +________ +_XXXXXX_ +_XXXXXX_ +________ +________ +________ +________ + +// . + +________ +________ +________ +________ +________ +________ +________ +________ +___XX___ +___XX___ + +// / +______XX +_____XX_ +____XX__ +____XX__ +___XX___ +___XX___ +__XX____ +__XX____ +_XX_____ +XX______ + +// zero + +_XXXXXX_ +XXXXXXXX +XX___XXX +XX__X_XX +XX__X_XX +XX_X__XX +XX_X__XX +XXX___XX +XXXXXXXX +_XXXXXX_ + +// one + +___XX___ +__XXX___ +__XXX___ +_XXXX___ +XX_XX___ +___XX___ +___XX___ +___XX___ +___XX___ +_XXXXXX_ + +// 2 + +_XXXXXX_ +XXXXXXXX +_____XXX +_____XXX +____XXX_ +___XXX__ +_XXX____ +XXX_____ +XXXXXXXX +XXXXXXXX + +// 3 + +XXXXXXXX +XXXXXXXX +_____XXX +____XX__ +___XX___ +__XXX___ +____XXX_ +XX___XXX +XXXXXXXX +_XXXXXX_ + +// 4 + +___XX___ +__XXX___ +__XXX___ +_XXXX___ +XX_XX___ +XXXXXXXX +XXXXXXXX +___XX___ +___XX___ +___XX___ + +// 5 + +XXXXXXXX +XXXXXXXX +XXX_____ +XXX_____ +XXXXXXX_ +_XXXXXXX +______XX +X_____XX +XXXXXXXX +_XXXXXX_ + +// 6 + +_XXXXXX_ +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// 7 + +XXXXXXXX +XXXXXXXX +_____XXX +____XXX_ +____XXX_ +___XXX__ +___XXX__ +__XXX___ +__XXX___ +_XXX____ + +// 8 + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +_XXXXXX_ +_XXXXXX_ +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// 9 + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +_XXXXXXX +_XXXXXXX +______XX +______XX +XXXXXXXX +_XXXXXX_ + + +// : + +________ +________ +________ +________ +___XX___ +___XX___ +________ +___XX___ +___XX___ +________ + + +// ; + +________ +________ +________ +________ +___XX___ +___XX___ +________ +___XX___ +___XX___ +__XX____ + +// < + +________ +________ +______XX +____XX__ +__XX____ +XX______ +__XX____ +____XX__ +______XX +________ + +// = + +________ +________ +________ +________ +XXXXXXXX +________ +XXXXXXXX +________ +________ +________ + + +// > + +________ +________ +XX______ +__XX____ +____XX__ +______XX +____XX__ +__XX____ +XX______ +________ + +// ? + + +_XXXXXX_ +XXXXXXXX +XX____XX +_X___XX_ +____XX__ +___XX___ +___XX___ +________ +___XX___ +___XX___ + +// @ + +_XXXXXX_ +XXXXXXXX +XX____XX +XX_XXXXX +XX_X__XX +XX_X__XX +XX_XXXXX +XX______ +XXXXXXXX +_XXXXXXX + + +// A + +XXXXXXXX +XXXXXXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + +// B + +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXX_ +XXXXXXX_ +XX____XX +XX____XX +XXXXXXXX +XXXXXXX_ + +// C + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XXXXXXXX +XXXXXXXX + +// D + +XXXXXX__ +XXXXXXX_ +XX___XXX +XX____XX +XX____XX +XX____XX +XX____XX +XX___XXX +XXXXXXX_ +XXXXXX__ + +// E + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX______ +XX______ +XXXXXXXX +XXXXXXXX + +// F + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX______ +XX______ +XX______ +XX______ + +// G + +XXXXXXXX +XXXXXXXX +XX______ +XX______ +XX__XXXX +XX__XXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXXX + +// H + +XX____XX +XX____XX +XX____XX +XX____XX +XXXXXXXX +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + +// I + +_XXXXXX_ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +_XXXXXX_ + +// J + +XXXXXXXX +XXXXXXXX +______XX +______XX +______XX +______XX +XX____XX +XXX___XX +_XXXXXXX +__XXXXXX + +// K + +XX____XX +XX__XXX_ +XX__XXX_ +XX_XXX__ +XXXX____ +XXXX____ +XX_XXX__ +XX__XXX_ +XX__XXX_ +XX____XX + +// L + +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XXXXXXXX +XXXXXXXX + +// M + +XX____XX +XXX__XXX +XXX_XXXX +XXXXXXXX +XXXXXXXX +XX_XX_XX +XX_XX_XX +XX____XX +XX____XX +XX____XX + +// N + +XX____XX +XXX___XX +XXX___XX +XXXX__XX +XXXXX_XX +XX_XXXXX +XX__XXXX +XX___XXX +XX___XXX +XX____XX + +// O + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// P + +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXX_ +XX______ +XX______ +XX______ +XX______ + +// Q + +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX_XX_XX +XX_XXXXX +XX__XXXX +XXXXXXXX +_XXXXXXX + +// R + +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXXX +XXXXXXX_ +XXXXX___ +XX_XXX__ +XX__XXX_ +XX___XXX + +// S + +_XXXXXX_ +XXXXXXXX +XX____XX +_XX___X_ +__XX____ +___XXX__ +_X__XXX_ +XX___XXX +XXXXXXXX +_XXXXXX_ + +// T + +XXXXXXXX +XXXXXXXX +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ + +// U + +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// V + +XX____XX +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +_XX__XX_ +__XXXX__ +__XXXX__ +___XX___ +___XX___ + +// W + +XX____XX +XX____XX +XX_XX_XX +XX_XX_XX +XXXXXXXX +XXXXXXXX +XXX__XXX +XXX__XXX +XX____XX +XX____XX + +// x big + +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +__XXXX__ +_XX__XX_ +_XX__XX_ +XX____XX +XX____XX + +// Y + +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +__XXXX__ +___XX___ +___XX___ +___XX___ +___XX___ + +// Z + +XXXXXXXX +XXXXXXXX +_____XXX +_____XXX +____XXX_ +___XXX__ +_XXX____ +XXX_____ +XXXXXXXX +XXXXXXXX + +// [ + +XXXX____ +XXXX____ +XX______ +XX______ +XX______ +XX______ +XX______ +XX______ +XXXX____ +XXXX____ +// \ + +XX______ +_XX_____ +__XX____ +__XX____ +___XX___ +___XX___ +____XX__ +____XX__ +_____XX_ +______XX + +// ] + +____XXXX +____XXXX +______XX +______XX +______XX +______XX +______XX +______XX +____XXXX +____XXXX +// ^ + +___XX___ +__XXXX__ +_XX__XX_ +XX____XX +________ +________ +________ +________ +________ +________ + +// underscore + +________ +________ +________ +________ +________ +________ +________ +________ +XXXXXXXX +XXXXXXXX + +// ` + +__XX____ +___XX___ +____XX__ +________ +________ +________ +________ +________ +________ +________ + +// a +________ +________ +_XXXXXX_ +XXXXXXXX +______XX +_XXXXXXX +XXXXXXXX +XX____XX +XXXXXXXX +_XXXX_XX + +// b + +XX______ +XX______ +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX____XX +XX____XX +XXXXXXX_ +XXXXXXX_ + +// c + +________ +________ +________ +_XXXXXX_ +XXXXXXXX +XX______ +XX______ +XX______ +XXXXXXXX +_XXXXXX_ + +// d + +______XX +______XX +______XX +______XX +_XXXXXXX +_XXXXXXX +XX____XX +XX____XX +_XXXXXXX +_XXXXXXX + +// e + +________ +________ +_XXXXXX_ +XXXXXXXX +XX_____X +XXXXXXX_ +XX______ +XX______ +XXXXXXXX +_XXXXXX_ + +// f + +_XXXXXX_ +XXXXXXXX +XX______ +XX______ +XXXXXXX_ +XXXXXXX_ +XX______ +XX______ +XX______ +XX______ + +// g + +________ +________ +_XXXXXXX +_XXXXXXX +XX____XX +XX____XX +_XXXXXXX +______XX +XX____XX +_XXXXXXX + +// h + +XX______ +XX______ +XX______ +XX______ +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + + +// i + +________ +________ +________ +___XX___ +________ +___XX___ +___XX___ +___XX___ +___XX___ +__XXXX__ + + +// j + +________ +________ +____XX__ +________ +____XX__ +____XX__ +____XX__ +_XX_XX__ +_XX_XX__ +__XXX___ + +// k + + +XX______ +XX______ +XX______ +XX______ +XX____XX +XX__XXX_ +XXXXXX__ +XX_XXX__ +XX__XXX_ +XX___XXX + +// l + + +_XXXX___ +_XXXX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +_XXXXXX_ + + +// m +________ +________ +________ +XX______ +XXXX_XX_ +XXXXXXXX +XX_XX_XX +XX_XX_XX +XX_XX_XX +XX_XX_XX + +// n +________ +________ +________ +XX______ +XXXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XX____XX + +// o +________ +________ +________ +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XX____XX +XXXXXXXX +_XXXXXX_ + +// p +________ +________ +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +XXXXXXX_ +XX______ +XX______ +XX______ + +// q + +________ +________ +_XXXXXX_ +XXXXXXXX +XX____XX +XX____XX +_XXXXXXX +______XX +______XX +______XX + +// r +________ +________ +________ +XX__XX__ +XX_XXXX_ +XXXX__XX +XX______ +XX______ +XX______ +XX______ + +// s + +________ +________ +________ +_XXXXXX_ +XX____XX +_XX_____ +__XXXX__ +_____XX_ +XX____XX +_XXXXXX_ + +// t + +__XX____ +__XX____ +XXXXXX__ +XXXXXX__ +__XX____ +__XX____ +__XX____ +__XX__X_ +__XX_XX_ +___XXX__ + +// u +________ +________ +________ +________ +XX____XX +XX____XX +XX____XX +XX____XX +XX____XX +_XXXXXX_ + +// v +________ +________ +________ +________ +XX____XX +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +___XX___ + +// w +________ +________ +________ +________ +XX_XX_XX +XX_XX_XX +XX_XX_XX +XX_XX_XX +XXXXXXXX +_XX__XX_ + + +// x + +________ +________ +________ +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +_XX__XX_ +_XX__XX_ +XX____XX + + +// y + +________ +________ +________ +XX____XX +_XX__XX_ +_XX__XX_ +__XXXX__ +___XX___ +__XX____ +_XX_____ + + +// z +________ +________ +________ +________ +XXXXXXXX +_____XX_ +____XX__ +__XXX___ +_XX_____ +XXXXXXXX + +// { + +____XX__ +___X____ +__X_____ +__X_____ +XX______ +XX______ +__X_____ +__X_____ +___X____ +____XX__ + +// | + +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ +___XX___ + +// } + +__XX____ +____X___ +_____X__ +_____X__ +______XX +______XX +_____X__ +_____X__ +____X___ +__XX____ + +// ~ + +________ +________ +________ +_XX_____ +X__XX__X +_____XX_ +________ +________ +________ +________ diff --git a/userspace/fonts/envypn7x13.bdf b/userspace/fonts/envypn7x13.bdf new file mode 100644 index 0000000..3c83dab --- /dev/null +++ b/userspace/fonts/envypn7x13.bdf @@ -0,0 +1,4295 @@ +STARTFONT 2.1 +FONT -ypn-envypn-Medium-R-Normal--13-130-75-75-C-90-ISO8859-1 +SIZE 13 75 75 +FONTBOUNDINGBOX 7 13 0 -2 + +STARTPROPERTIES 21 +FOUNDRY "ypn" +FAMILY_NAME "envypn" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "Normal" +SPACING "C" +CHARSET_REGISTRY "ISO8859" +CHARSET_ENCODING "1" +COPYRIGHT "Designed by Ypnose - http://ywstd.fr - Special thanks to mirabilos" +AVERAGE_WIDTH 90 +PIXEL_SIZE 13 +POINT_SIZE 130 +RESOLUTION_X 75 +RESOLUTION_Y 75 +WEIGHT 10 +X_HEIGHT 11 +QUAD_WIDTH 7 +_GBDFED_INFO "Edited with gbdfed 1.6." +DEFAULT_CHAR 0 +FONT_DESCENT 2 +FONT_ASCENT 11 +ENDPROPERTIES + +CHARS 203 + +STARTCHAR space +ENCODING 32 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR exclamation +ENCODING 33 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +10 +10 +10 +10 +00 +10 +10 +00 +00 +ENDCHAR + +STARTCHAR dblquote +ENCODING 34 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +48 +48 +48 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR nmbrsign +ENCODING 35 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +28 +28 +7C +28 +7C +28 +28 +00 +00 +ENDCHAR + +STARTCHAR dollar +ENCODING 36 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +3C +50 +50 +38 +14 +14 +78 +10 +00 +ENDCHAR + +STARTCHAR percent +ENCODING 37 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +64 +64 +08 +10 +20 +4C +4C +00 +00 +ENDCHAR + +STARTCHAR ampersand +ENCODING 38 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +30 +48 +48 +20 +14 +48 +48 +34 +00 +00 +ENDCHAR + +STARTCHAR sglquote +ENCODING 39 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +10 +10 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR leftparent +ENCODING 40 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +08 +10 +20 +20 +20 +20 +20 +20 +10 +08 +00 +ENDCHAR + +STARTCHAR rightparent +ENCODING 41 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +20 +10 +08 +08 +08 +08 +08 +08 +10 +20 +00 +ENDCHAR + +STARTCHAR asterisk +ENCODING 42 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +10 +54 +38 +38 +54 +10 +00 +00 +00 +ENDCHAR + +STARTCHAR plus +ENCODING 43 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +10 +10 +7C +10 +10 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR comma +ENCODING 44 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +18 +30 +20 +ENDCHAR + +STARTCHAR dash +ENCODING 45 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +7C +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR dot +ENCODING 46 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +18 +18 +00 +00 +ENDCHAR + +STARTCHAR slashforw +ENCODING 47 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +08 +08 +10 +10 +20 +20 +40 +40 +00 +00 +ENDCHAR + +STARTCHAR zero +ENCODING 48 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +4C +54 +64 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR onehehe +ENCODING 49 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +30 +50 +10 +10 +10 +10 +7C +00 +00 +ENDCHAR + +STARTCHAR two +ENCODING 50 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +44 +08 +10 +20 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR three +ENCODING 51 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +78 +04 +04 +78 +04 +04 +04 +78 +00 +00 +ENDCHAR + +STARTCHAR four +ENCODING 52 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +44 +44 +3C +04 +04 +04 +00 +00 +ENDCHAR + +STARTCHAR five +ENCODING 53 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +40 +40 +78 +04 +04 +04 +78 +00 +00 +ENDCHAR + +STARTCHAR six +ENCODING 54 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +40 +40 +58 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR seven +ENCODING 55 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +04 +04 +08 +10 +10 +10 +10 +00 +00 +ENDCHAR + +STARTCHAR eight +ENCODING 56 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +44 +38 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR nine +ENCODING 57 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +3C +44 +44 +44 +3C +04 +04 +78 +00 +00 +ENDCHAR + +STARTCHAR colon +ENCODING 58 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +18 +18 +00 +00 +18 +18 +00 +00 +ENDCHAR + +STARTCHAR semicolon +ENCODING 59 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +18 +18 +00 +00 +18 +30 +20 +00 +ENDCHAR + +STARTCHAR lessthan +ENCODING 60 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +0C +18 +30 +60 +30 +18 +0C +00 +00 +ENDCHAR + +STARTCHAR equalsign +ENCODING 61 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +7C +00 +00 +7C +00 +00 +00 +00 +ENDCHAR + +STARTCHAR greathan +ENCODING 62 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +60 +30 +18 +0C +18 +30 +60 +00 +00 +ENDCHAR + +STARTCHAR question +ENCODING 63 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +44 +08 +10 +10 +00 +10 +00 +00 +ENDCHAR + +STARTCHAR at +ENCODING 64 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +38 +44 +5C +54 +54 +5C +40 +3C +00 +ENDCHAR + +STARTCHAR A +ENCODING 65 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +44 +44 +7C +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR B +ENCODING 66 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +78 +44 +44 +78 +44 +44 +44 +78 +00 +00 +ENDCHAR + +STARTCHAR C +ENCODING 67 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +40 +40 +40 +40 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR D +ENCODING 68 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +78 +44 +44 +44 +44 +44 +44 +78 +00 +00 +ENDCHAR + +STARTCHAR E +ENCODING 69 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +40 +40 +78 +40 +40 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR F +ENCODING 70 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +40 +40 +78 +40 +40 +40 +40 +00 +00 +ENDCHAR + +STARTCHAR G +ENCODING 71 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +40 +40 +4C +44 +4C +34 +00 +00 +ENDCHAR + +STARTCHAR H +ENCODING 72 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +44 +7C +44 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR I +ENCODING 73 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +10 +10 +10 +10 +10 +10 +7C +00 +00 +ENDCHAR + +STARTCHAR J +ENCODING 74 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +1C +24 +04 +04 +04 +04 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR K +ENCODING 75 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +48 +50 +60 +60 +50 +48 +44 +00 +00 +ENDCHAR + +STARTCHAR L +ENCODING 76 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +40 +40 +40 +40 +40 +40 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR M +ENCODING 77 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +6C +7C +54 +54 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR N +ENCODING 78 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +64 +54 +4C +44 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR O +ENCODING 79 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR P +ENCODING 80 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +78 +44 +44 +44 +78 +40 +40 +40 +00 +00 +ENDCHAR + +STARTCHAR Q +ENCODING 81 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +44 +44 +44 +54 +4C +38 +08 +08 +ENDCHAR + +STARTCHAR R +ENCODING 82 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +78 +44 +44 +44 +78 +50 +48 +44 +00 +00 +ENDCHAR + +STARTCHAR S +ENCODING 83 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +3C +40 +40 +38 +04 +04 +04 +78 +00 +00 +ENDCHAR + +STARTCHAR T +ENCODING 84 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +10 +10 +10 +10 +10 +10 +10 +00 +00 +ENDCHAR + +STARTCHAR U +ENCODING 85 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR V +ENCODING 86 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +44 +44 +44 +44 +28 +10 +00 +00 +ENDCHAR + +STARTCHAR W +ENCODING 87 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +44 +54 +54 +7C +6C +44 +00 +00 +ENDCHAR + +STARTCHAR X +ENCODING 88 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +28 +10 +28 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR Y +ENCODING 89 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +44 +28 +10 +10 +10 +10 +00 +00 +ENDCHAR + +STARTCHAR Z +ENCODING 90 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +04 +08 +10 +20 +40 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR leftbrack +ENCODING 91 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +38 +20 +20 +20 +20 +20 +20 +20 +20 +38 +00 +ENDCHAR + +STARTCHAR backslash +ENCODING 92 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +20 +20 +10 +10 +08 +08 +04 +04 +00 +00 +ENDCHAR + +STARTCHAR rightbrack +ENCODING 93 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +38 +08 +08 +08 +08 +08 +08 +08 +08 +38 +00 +ENDCHAR + +STARTCHAR cirumflex +ENCODING 94 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +38 +6C +44 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR underscore +ENCODING 95 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +7C +00 +ENDCHAR + +STARTCHAR grave +ENCODING 96 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +10 +18 +08 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR a +ENCODING 97 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR b +ENCODING 98 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +40 +40 +78 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR c +ENCODING 99 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +44 +40 +40 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR d +ENCODING 100 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +04 +04 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR e +ENCODING 101 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +44 +44 +78 +40 +3C +00 +00 +ENDCHAR + +STARTCHAR f +ENCODING 102 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +1C +20 +20 +78 +20 +20 +20 +20 +00 +00 +ENDCHAR + +STARTCHAR g +ENCODING 103 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +44 +44 +44 +44 +3C +04 +78 +ENDCHAR + +STARTCHAR h +ENCODING 104 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +40 +40 +78 +44 +44 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR i +ENCODING 105 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +00 +70 +10 +10 +10 +10 +1C +00 +00 +ENDCHAR + +STARTCHAR j +ENCODING 106 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +04 +00 +1C +04 +04 +04 +04 +04 +04 +78 +ENDCHAR + +STARTCHAR k +ENCODING 107 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +40 +40 +4C +50 +60 +60 +50 +4C +00 +00 +ENDCHAR + +STARTCHAR l +ENCODING 108 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +70 +10 +10 +10 +10 +10 +10 +1C +00 +00 +ENDCHAR + +STARTCHAR m +ENCODING 109 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +54 +54 +54 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR n +ENCODING 110 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +44 +44 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR o +ENCODING 111 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR p +ENCODING 112 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +44 +44 +44 +44 +78 +40 +40 +ENDCHAR + +STARTCHAR q +ENCODING 113 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +44 +44 +44 +44 +3C +04 +04 +ENDCHAR + +STARTCHAR r +ENCODING 114 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +5C +60 +40 +40 +40 +40 +00 +00 +ENDCHAR + +STARTCHAR s +ENCODING 115 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +3C +40 +38 +04 +04 +78 +00 +00 +ENDCHAR + +STARTCHAR t +ENCODING 116 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +20 +20 +78 +20 +20 +20 +20 +1C +00 +00 +ENDCHAR + +STARTCHAR u +ENCODING 117 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +44 +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR v +ENCODING 118 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +44 +44 +44 +44 +28 +10 +00 +00 +ENDCHAR + +STARTCHAR w +ENCODING 119 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +44 +44 +54 +54 +54 +38 +00 +00 +ENDCHAR + +STARTCHAR x +ENCODING 120 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +44 +28 +10 +28 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR y +ENCODING 121 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +44 +44 +44 +44 +44 +3C +04 +78 +ENDCHAR + +STARTCHAR z +ENCODING 122 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +7C +04 +18 +20 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR leftbrace +ENCODING 123 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +0C +10 +10 +10 +60 +10 +10 +10 +10 +0C +00 +ENDCHAR + +STARTCHAR vertbar +ENCODING 124 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +10 +10 +10 +10 +10 +10 +10 +10 +10 +10 +00 +ENDCHAR + +STARTCHAR rightbrace +ENCODING 125 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +60 +10 +10 +10 +0C +10 +10 +10 +10 +60 +00 +ENDCHAR + +STARTCHAR tilde +ENCODING 126 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +24 +54 +48 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR capitalOE +ENCODING 140 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +3E +48 +48 +48 +4E +48 +48 +3E +00 +00 +ENDCHAR + +STARTCHAR smalloe +ENCODING 156 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +3E +48 +4E +48 +48 +3E +00 +00 +ENDCHAR + +STARTCHAR nonbreak +ENCODING 160 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR invexcla +ENCODING 161 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +00 +10 +10 +10 +10 +10 +10 +00 +00 +ENDCHAR + +STARTCHAR centsign +ENCODING 162 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +10 +38 +54 +50 +50 +54 +38 +10 +00 +ENDCHAR + +STARTCHAR pound +ENCODING 163 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +0C +10 +10 +10 +3C +10 +10 +38 +44 +00 +00 +ENDCHAR + +STARTCHAR currency +ENCODING 164 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +44 +38 +44 +44 +44 +38 +44 +00 +00 +ENDCHAR + +STARTCHAR yensign +ENCODING 165 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +44 +44 +28 +10 +7C +10 +7C +10 +00 +00 +ENDCHAR + +STARTCHAR brokenbar +ENCODING 166 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +18 +18 +18 +00 +00 +18 +18 +18 +18 +00 +00 +ENDCHAR + +STARTCHAR section +ENCODING 167 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +3C +40 +50 +28 +28 +14 +04 +78 +00 +00 +ENDCHAR + +STARTCHAR umlaut +ENCODING 168 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +48 +48 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR copyright +ENCODING 169 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +7C +64 +64 +7C +44 +38 +00 +00 +ENDCHAR + +STARTCHAR femindic +ENCODING 170 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +1C +04 +1C +14 +1C +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR leftdlquote +ENCODING 171 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +14 +28 +50 +A0 +50 +28 +14 +00 +00 +ENDCHAR + +STARTCHAR nological +ENCODING 172 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +7C +04 +04 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR hyphen +ENCODING 173 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +38 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR trademark +ENCODING 174 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +38 +44 +7C +64 +64 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR macron +ENCODING 175 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +7C +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR degree +ENCODING 176 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +1C +14 +14 +1C +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR plusmin +ENCODING 177 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +10 +10 +7C +10 +10 +7C +00 +00 +00 +ENDCHAR + +STARTCHAR supertwo +ENCODING 178 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +18 +24 +24 +08 +10 +3C +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR superthree +ENCODING 179 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +18 +04 +18 +04 +04 +18 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR acuteacc +ENCODING 180 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +08 +18 +10 +00 +00 +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR micro +ENCODING 181 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +44 +44 +44 +44 +7C +40 +40 +40 +ENDCHAR + +STARTCHAR paragraph +ENCODING 182 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +74 +54 +54 +74 +14 +14 +00 +00 +ENDCHAR + +STARTCHAR middot +ENCODING 183 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +30 +30 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR cedilla +ENCODING 184 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +00 +00 +00 +00 +08 +18 +10 +00 +ENDCHAR + +STARTCHAR superone +ENCODING 185 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +08 +18 +28 +08 +08 +1C +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR mascuind +ENCODING 186 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +1C +14 +14 +1C +00 +00 +00 +00 +00 +00 +00 +ENDCHAR + +STARTCHAR rigdlquote +ENCODING 187 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +50 +28 +14 +0A +14 +28 +50 +00 +00 +ENDCHAR + +STARTCHAR fractone +ENCODING 188 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +10 +30 +10 +38 +00 +7C +00 +28 +28 +18 +08 +00 +ENDCHAR + +STARTCHAR fractwo +ENCODING 189 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +10 +30 +10 +38 +00 +7C +00 +30 +48 +10 +38 +00 +ENDCHAR + +STARTCHAR fracthree +ENCODING 190 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +10 +30 +10 +38 +00 +7C +00 +28 +28 +18 +08 +00 +ENDCHAR + +STARTCHAR invquestion +ENCODING 191 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +10 +00 +10 +10 +08 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Agrave +ENCODING 192 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +20 +10 +00 +38 +44 +44 +44 +7C +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR Acute +ENCODING 193 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +08 +10 +00 +38 +44 +44 +44 +7C +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR Acircum +ENCODING 194 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +10 +28 +00 +38 +44 +44 +44 +7C +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR Atilde +ENCODING 195 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +14 +28 +00 +38 +44 +44 +44 +7C +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR Adiaeresis +ENCODING 196 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +28 +00 +38 +44 +44 +44 +7C +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR Aring +ENCODING 197 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +10 +28 +10 +38 +44 +44 +44 +7C +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR AEligature +ENCODING 198 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +3E +48 +48 +48 +7E +48 +48 +4E +00 +00 +ENDCHAR + +STARTCHAR Cedilla +ENCODING 199 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +40 +40 +40 +40 +44 +38 +10 +30 +ENDCHAR + +STARTCHAR Egrave +ENCODING 200 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +20 +10 +00 +7C +40 +40 +78 +40 +40 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR Eacute +ENCODING 201 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +08 +10 +00 +7C +40 +40 +78 +40 +40 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR Ecircum +ENCODING 202 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +10 +28 +00 +7C +40 +40 +78 +40 +40 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR Ediaeresis +ENCODING 203 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +28 +00 +7C +40 +40 +78 +40 +40 +40 +7C +00 +00 +ENDCHAR + +STARTCHAR Igrave +ENCODING 204 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +20 +10 +00 +7C +10 +10 +10 +10 +10 +10 +7C +00 +00 +ENDCHAR + +STARTCHAR Iacute +ENCODING 205 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +08 +10 +00 +7C +10 +10 +10 +10 +10 +10 +7C +00 +00 +ENDCHAR + +STARTCHAR Icircum +ENCODING 206 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +10 +28 +00 +7C +10 +10 +10 +10 +10 +10 +7C +00 +00 +ENDCHAR + +STARTCHAR Idiaeresis +ENCODING 207 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +28 +00 +7C +10 +10 +10 +10 +10 +10 +7C +00 +00 +ENDCHAR + +STARTCHAR ETH +ENCODING 208 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +78 +44 +44 +44 +F4 +44 +44 +78 +00 +00 +ENDCHAR + +STARTCHAR Ntilde +ENCODING 209 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +14 +28 +00 +44 +64 +54 +4C +44 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR Ograve +ENCODING 210 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +20 +10 +00 +38 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Oacute +ENCODING 211 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +08 +10 +00 +38 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Ocircum +ENCODING 212 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +10 +28 +00 +38 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Otilde +ENCODING 213 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +14 +28 +00 +38 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Odiaeresis +ENCODING 214 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +28 +00 +38 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR multipli +ENCODING 215 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +44 +28 +10 +28 +44 +00 +00 +00 +ENDCHAR + +STARTCHAR Oslash +ENCODING 216 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +46 +4C +54 +64 +44 +C4 +38 +00 +00 +ENDCHAR + +STARTCHAR Ugrave +ENCODING 217 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +20 +10 +00 +44 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Uacute +ENCODING 218 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +08 +10 +00 +44 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Ucircum +ENCODING 219 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +10 +28 +00 +44 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Udiaeresis +ENCODING 220 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +28 +00 +44 +44 +44 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR Yacute +ENCODING 221 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +08 +10 +00 +44 +44 +44 +28 +10 +10 +10 +10 +00 +00 +ENDCHAR + +STARTCHAR THORN +ENCODING 222 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +60 +2C +32 +22 +22 +32 +2C +60 +00 +00 +ENDCHAR + +STARTCHAR smallsharp +ENCODING 223 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +44 +44 +58 +44 +44 +54 +48 +00 +00 +ENDCHAR + +STARTCHAR agrave +ENCODING 224 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +20 +10 +00 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR acute +ENCODING 225 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +08 +10 +00 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR acircum +ENCODING 226 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +10 +28 +00 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR atilde +ENCODING 227 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +14 +28 +00 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR adiaeresis +ENCODING 228 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +28 +00 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR aring +ENCODING 229 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +10 +28 +10 +3C +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR aeligature +ENCODING 230 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +3E +08 +7E +48 +48 +3E +00 +00 +ENDCHAR + +STARTCHAR ccedilla +ENCODING 231 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +38 +44 +40 +40 +44 +38 +10 +30 +ENDCHAR + +STARTCHAR egrave +ENCODING 232 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +20 +10 +00 +38 +44 +44 +78 +40 +3C +00 +00 +ENDCHAR + +STARTCHAR eacute +ENCODING 233 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +08 +10 +00 +38 +44 +44 +78 +40 +3C +00 +00 +ENDCHAR + +STARTCHAR ecircum +ENCODING 234 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +10 +28 +00 +38 +44 +44 +78 +40 +3C +00 +00 +ENDCHAR + +STARTCHAR ediaeresis +ENCODING 235 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +28 +00 +38 +44 +44 +78 +40 +3C +00 +00 +ENDCHAR + +STARTCHAR igrave +ENCODING 236 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +20 +10 +00 +70 +10 +10 +10 +10 +1C +00 +00 +ENDCHAR + +STARTCHAR iacute +ENCODING 237 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +08 +10 +00 +70 +10 +10 +10 +10 +1C +00 +00 +ENDCHAR + +STARTCHAR icircum +ENCODING 238 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +10 +28 +00 +70 +10 +10 +10 +10 +1C +00 +00 +ENDCHAR + +STARTCHAR idiaeresis +ENCODING 239 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +28 +00 +70 +10 +10 +10 +10 +1C +00 +00 +ENDCHAR + +STARTCHAR eth +ENCODING 240 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +10 +08 +30 +00 +38 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR ntilde +ENCODING 241 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +14 +28 +00 +78 +44 +44 +44 +44 +44 +00 +00 +ENDCHAR + +STARTCHAR ograve +ENCODING 242 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +20 +10 +00 +38 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR oacute +ENCODING 243 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +08 +10 +00 +38 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR ocircum +ENCODING 244 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +10 +28 +00 +38 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR otilde +ENCODING 245 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +14 +28 +00 +38 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR odiaeresis +ENCODING 246 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +28 +00 +38 +44 +44 +44 +44 +38 +00 +00 +ENDCHAR + +STARTCHAR division +ENCODING 247 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +10 +10 +00 +7C +00 +10 +10 +00 +00 +ENDCHAR + +STARTCHAR oslash +ENCODING 248 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +00 +00 +3A +4C +54 +64 +44 +B8 +00 +00 +ENDCHAR + +STARTCHAR ugrave +ENCODING 249 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +20 +10 +00 +44 +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR uacute +ENCODING 250 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +08 +10 +00 +44 +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR ucircum +ENCODING 251 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +10 +28 +00 +44 +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR udiaeresis +ENCODING 252 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +28 +00 +44 +44 +44 +44 +44 +3C +00 +00 +ENDCHAR + +STARTCHAR yacute +ENCODING 253 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +08 +10 +00 +44 +44 +44 +44 +44 +3C +04 +78 +ENDCHAR + +STARTCHAR thorn +ENCODING 254 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +60 +20 +2C +32 +22 +22 +32 +2C +20 +60 +00 +ENDCHAR + +STARTCHAR ydiaeresis +ENCODING 255 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +28 +00 +44 +44 +44 +44 +44 +3C +04 +78 +ENDCHAR + +STARTCHAR char9679 +ENCODING 9679 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +7C +FE +FE +FE +7C +38 +00 +00 +00 +ENDCHAR + +STARTCHAR char10008 +ENCODING 10008 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +C6 +EE +7C +38 +7C +EE +C6 +00 +00 +00 +ENDCHAR + +STARTCHAR char10010 +ENCODING 10010 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +00 +38 +38 +FE +FE +FE +38 +38 +00 +00 +00 +ENDCHAR + +STARTCHAR versioncontrolbranch +ENCODING 57504 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +C0 +CC +DE +CC +CC +9C +38 +70 +E0 +C0 +C0 +00 +ENDCHAR + +STARTCHAR lnsymbol +ENCODING 57505 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +40 +40 +40 +40 +7C +00 +22 +32 +2A +26 +22 +00 +ENDCHAR + +STARTCHAR closedpadlock +ENCODING 57506 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +00 +00 +7C +44 +44 +FE +EE +C6 +EE +EE +FE +00 +00 +ENDCHAR + +STARTCHAR rightwardsblackarrowhead +ENCODING 57520 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +80 +C0 +E0 +F0 +F8 +FC +FE +FC +F8 +F0 +E0 +C0 +80 +ENDCHAR + +STARTCHAR rightwardsarrowhead +ENCODING 57521 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +80 +C0 +60 +30 +18 +0C +06 +0C +18 +30 +60 +C0 +80 +ENDCHAR + +STARTCHAR leftwardsblackarrowhead +ENCODING 57522 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +02 +06 +0E +1E +3E +7E +FE +7E +3E +1E +0E +06 +02 +ENDCHAR + +STARTCHAR leftwardsarrowhead +ENCODING 57523 +SWIDTH 516 0 +DWIDTH 7 0 +BBX 7 13 0 -2 +BITMAP +02 +06 +0C +18 +30 +60 +C0 +60 +30 +18 +0C +06 +02 +ENDCHAR + +ENDFONT diff --git a/userspace/fonts/envypn7x13.src b/userspace/fonts/envypn7x13.src new file mode 100644 index 0000000..32ecdaf --- /dev/null +++ b/userspace/fonts/envypn7x13.src @@ -0,0 +1,2844 @@ +7 +13 +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +__X____ +__X____ +__X____ +__X____ +_______ +__X____ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X__X___ +X__X___ +X__X___ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_X_X___ +_X_X___ +XXXXX__ +_X_X___ +XXXXX__ +_X_X___ +_X_X___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +_XXXX__ +X_X____ +X_X____ +_XXX___ +__X_X__ +__X_X__ +XXXX___ +__X____ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +XX__X__ +XX__X__ +___X___ +__X____ +_X_____ +X__XX__ +X__XX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XX____ +X__X___ +X__X___ +_X_____ +__X_X__ +X__X___ +X__X___ +_XX_X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +__X____ +__X____ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +___X___ +__X____ +_X_____ +_X_____ +_X_____ +_X_____ +_X_____ +_X_____ +__X____ +___X___ +_______ +//reading bitmap +_______ +_______ +_X_____ +__X____ +___X___ +___X___ +___X___ +___X___ +___X___ +___X___ +__X____ +_X_____ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +__X____ +X_X_X__ +_XXX___ +_XXX___ +X_X_X__ +__X____ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +__X____ +__X____ +XXXXX__ +__X____ +__X____ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +__XX___ +_XX____ +_X_____ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_______ +XXXXX__ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +__XX___ +__XX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +___X___ +___X___ +__X____ +__X____ +_X_____ +_X_____ +X______ +X______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X__XX__ +X_X_X__ +XX__X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +_XX____ +X_X____ +__X____ +__X____ +__X____ +__X____ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +___X___ +__X____ +_X_____ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXX___ +____X__ +____X__ +XXXX___ +____X__ +____X__ +____X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +____X__ +____X__ +____X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +X______ +X______ +XXXX___ +____X__ +____X__ +____X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X______ +X______ +X_XX___ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +____X__ +____X__ +___X___ +__X____ +__X____ +__X____ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +_XXX___ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +_XXXX__ +____X__ +____X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +__XX___ +__XX___ +_______ +_______ +__XX___ +__XX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +__XX___ +__XX___ +_______ +_______ +__XX___ +_XX____ +_X_____ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +___XX__ +__XX___ +_XX____ +XX_____ +_XX____ +__XX___ +___XX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +XXXXX__ +_______ +_______ +XXXXX__ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +XX_____ +_XX____ +__XX___ +___XX__ +__XX___ +_XX____ +XX_____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +___X___ +__X____ +__X____ +_______ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X_XXX__ +X_X_X__ +X_X_X__ +X_XXX__ +X______ +_XXXX__ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXX___ +X___X__ +X___X__ +XXXX___ +X___X__ +X___X__ +X___X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X______ +X______ +X______ +X______ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +X______ +X______ +XXXX___ +X______ +X______ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +X______ +X______ +XXXX___ +X______ +X______ +X______ +X______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X______ +X______ +X__XX__ +X___X__ +X__XX__ +_XX_X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__XXX__ +_X__X__ +____X__ +____X__ +____X__ +____X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X__X___ +X_X____ +XX_____ +XX_____ +X_X____ +X__X___ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X______ +X______ +X______ +X______ +X______ +X______ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +XX_XX__ +XXXXX__ +X_X_X__ +X_X_X__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +XX__X__ +X_X_X__ +X__XX__ +X___X__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXX___ +X___X__ +X___X__ +X___X__ +XXXX___ +X______ +X______ +X______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X_X_X__ +X__XX__ +_XXX___ +___X___ +___X___ +//reading bitmap +_______ +_______ +_______ +XXXX___ +X___X__ +X___X__ +X___X__ +XXXX___ +X_X____ +X__X___ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXXX__ +X______ +X______ +_XXX___ +____X__ +____X__ +____X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_X_X___ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X_X_X__ +X_X_X__ +XXXXX__ +XX_XX__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +_X_X___ +__X____ +_X_X___ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +_X_X___ +__X____ +__X____ +__X____ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +____X__ +___X___ +__X____ +_X_____ +X______ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_XXX___ +_X_____ +_X_____ +_X_____ +_X_____ +_X_____ +_X_____ +_X_____ +_X_____ +_XXX___ +_______ +//reading bitmap +_______ +_______ +_______ +_X_____ +_X_____ +__X____ +__X____ +___X___ +___X___ +____X__ +____X__ +_______ +_______ +//reading bitmap +_______ +_______ +_XXX___ +___X___ +___X___ +___X___ +___X___ +___X___ +___X___ +___X___ +___X___ +_XXX___ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +_XXX___ +XX_XX__ +X___X__ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +XXXXX__ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +__X____ +__XX___ +___X___ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X______ +X______ +XXXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X______ +X______ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +____X__ +____X__ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +XXXX___ +X______ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__XXX__ +_X_____ +_X_____ +XXXX___ +_X_____ +_X_____ +_X_____ +_X_____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +____X__ +XXXX___ +//reading bitmap +_______ +_______ +_______ +X______ +X______ +XXXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +_______ +XXX____ +__X____ +__X____ +__X____ +__X____ +__XXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +____X__ +_______ +__XXX__ +____X__ +____X__ +____X__ +____X__ +____X__ +____X__ +XXXX___ +//reading bitmap +_______ +_______ +_______ +X______ +X______ +X__XX__ +X_X____ +XX_____ +XX_____ +X_X____ +X__XX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXX____ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +__XXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X_X_X__ +X_X_X__ +X_X_X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +XXXX___ +X______ +X______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +____X__ +____X__ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X_XXX__ +XX_____ +X______ +X______ +X______ +X______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXXX__ +X______ +_XXX___ +____X__ +____X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_X_____ +_X_____ +XXXX___ +_X_____ +_X_____ +_X_____ +_X_____ +__XXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +_X_X___ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X___X__ +X___X__ +X_X_X__ +X_X_X__ +X_X_X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X___X__ +_X_X___ +__X____ +_X_X___ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +____X__ +XXXX___ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +XXXXX__ +____X__ +__XX___ +_X_____ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +___XX__ +__X____ +__X____ +__X____ +XX_____ +__X____ +__X____ +__X____ +__X____ +___XX__ +_______ +//reading bitmap +_______ +_______ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +_______ +//reading bitmap +_______ +_______ +XX_____ +__X____ +__X____ +__X____ +___XX__ +__X____ +__X____ +__X____ +__X____ +XX_____ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_X__X__ +X_X_X__ +X__X___ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXXXX_ +X__X___ +X__X___ +X__X___ +X__XXX_ +X__X___ +X__X___ +_XXXXX_ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXXXX_ +X__X___ +X__XXX_ +X__X___ +X__X___ +_XXXXX_ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +_______ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +__X____ +_XXX___ +X_X_X__ +X_X____ +X_X____ +X_X_X__ +_XXX___ +__X____ +_______ +//reading bitmap +_______ +_______ +___XX__ +__X____ +__X____ +__X____ +_XXXX__ +__X____ +__X____ +_XXX___ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +X___X__ +_XXX___ +X___X__ +X___X__ +X___X__ +_XXX___ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___X__ +X___X__ +_X_X___ +__X____ +XXXXX__ +__X____ +XXXXX__ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +__XX___ +__XX___ +__XX___ +_______ +_______ +__XX___ +__XX___ +__XX___ +__XX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXXX__ +X______ +X_X____ +_X_X___ +_X_X___ +__X_X__ +____X__ +XXXX___ +_______ +_______ +//reading bitmap +_______ +_______ +X__X___ +X__X___ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +XXXXX__ +XX__X__ +XX__X__ +XXXXX__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +__XXX__ +____X__ +__XXX__ +__X_X__ +__XXX__ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +__X_X__ +_X_X___ +X_X____ +_X_____ +X_X____ +_X_X___ +__X_X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +XXXXX__ +____X__ +____X__ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_XXX___ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +XXXXX__ +XX__X__ +XX__X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXXX__ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +__XXX__ +__X_X__ +__X_X__ +__XXX__ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +__X____ +__X____ +XXXXX__ +__X____ +__X____ +XXXXX__ +_______ +_______ +_______ +//reading bitmap +_______ +__XX___ +_X__X__ +_X__X__ +___X___ +__X____ +_XXXX__ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +__XX___ +____X__ +__XX___ +____X__ +____X__ +__XX___ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +___X___ +__XX___ +__X____ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +XXXXX__ +X______ +X______ +X______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +XXX_X__ +X_X_X__ +X_X_X__ +XXX_X__ +__X_X__ +__X_X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XX____ +_XX____ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +___X___ +__XX___ +__X____ +_______ +//reading bitmap +_______ +___X___ +__XX___ +_X_X___ +___X___ +___X___ +__XXX__ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +__XXX__ +__X_X__ +__X_X__ +__XXX__ +_______ +_______ +_______ +_______ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +X_X____ +_X_X___ +__X_X__ +___X_X_ +__X_X__ +_X_X___ +X_X____ +_______ +_______ +//reading bitmap +_______ +__X____ +_XX____ +__X____ +_XXX___ +_______ +XXXXX__ +_______ +_X_X___ +_X_X___ +__XX___ +___X___ +_______ +//reading bitmap +_______ +__X____ +_XX____ +__X____ +_XXX___ +_______ +XXXXX__ +_______ +_XX____ +X__X___ +__X____ +_XXX___ +_______ +//reading bitmap +_______ +__X____ +_XX____ +__X____ +_XXX___ +_______ +XXXXX__ +_______ +_X_X___ +_X_X___ +__XX___ +___X___ +_______ +//reading bitmap +_______ +_______ +_______ +__X____ +_______ +__X____ +__X____ +___X___ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_X_____ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +___X___ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +__X____ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +__X_X__ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +__X____ +_X_X___ +__X____ +_XXX___ +X___X__ +X___X__ +X___X__ +XXXXX__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXXXX_ +X__X___ +X__X___ +X__X___ +XXXXXX_ +X__X___ +X__X___ +X__XXX_ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X______ +X______ +X______ +X______ +X___X__ +_XXX___ +__X____ +_XX____ +//reading bitmap +_X_____ +__X____ +_______ +XXXXX__ +X______ +X______ +XXXX___ +X______ +X______ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +___X___ +__X____ +_______ +XXXXX__ +X______ +X______ +XXXX___ +X______ +X______ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +__X____ +_X_X___ +_______ +XXXXX__ +X______ +X______ +XXXX___ +X______ +X______ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_X_X___ +_______ +XXXXX__ +X______ +X______ +XXXX___ +X______ +X______ +X______ +XXXXX__ +_______ +_______ +//reading bitmap +_X_____ +__X____ +_______ +XXXXX__ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +XXXXX__ +_______ +_______ +//reading bitmap +___X___ +__X____ +_______ +XXXXX__ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +XXXXX__ +_______ +_______ +//reading bitmap +__X____ +_X_X___ +_______ +XXXXX__ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_X_X___ +_______ +XXXXX__ +__X____ +__X____ +__X____ +__X____ +__X____ +__X____ +XXXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XXXX___ +X___X__ +X___X__ +X___X__ +XXX_X__ +X___X__ +X___X__ +XXXX___ +_______ +_______ +//reading bitmap +__X_X__ +_X_X___ +_______ +X___X__ +XX__X__ +X_X_X__ +X__XX__ +X___X__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_X_____ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +___X___ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +__X____ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +__X_X__ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +X___X__ +_X_X___ +__X____ +_X_X___ +X___X__ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___XX_ +X__XX__ +X_X_X__ +XX__X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_X_____ +__X____ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +___X___ +__X____ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +__X____ +_X_X___ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_X_X___ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +___X___ +__X____ +_______ +X___X__ +X___X__ +X___X__ +_X_X___ +__X____ +__X____ +__X____ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +XX_____ +_X_XX__ +_XX__X_ +_X___X_ +_X___X_ +_XX__X_ +_X_XX__ +XX_____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +X___X__ +X___X__ +X_XX___ +X___X__ +X___X__ +X_X_X__ +X__X___ +_______ +_______ +//reading bitmap +_______ +_______ +_X_____ +__X____ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +___X___ +__X____ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +__X____ +_X_X___ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +__X_X__ +_X_X___ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_X_X___ +_______ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +__X____ +_X_X___ +__X____ +_XXXX__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXXXX_ +___X___ +XXXXXX_ +X__X___ +X__X___ +_XXXXX_ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX___ +X___X__ +X______ +X______ +X___X__ +_XXX___ +__X____ +_XX____ +//reading bitmap +_______ +_______ +_X_____ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +XXXX___ +X______ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +___X___ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +XXXX___ +X______ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +__X____ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +XXXX___ +X______ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +XXXX___ +X______ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_X_____ +__X____ +_______ +XXX____ +__X____ +__X____ +__X____ +__X____ +__XXX__ +_______ +_______ +//reading bitmap +_______ +_______ +___X___ +__X____ +_______ +XXX____ +__X____ +__X____ +__X____ +__X____ +__XXX__ +_______ +_______ +//reading bitmap +_______ +_______ +__X____ +_X_X___ +_______ +XXX____ +__X____ +__X____ +__X____ +__X____ +__XXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_X_X___ +_______ +XXX____ +__X____ +__X____ +__X____ +__X____ +__XXX__ +_______ +_______ +//reading bitmap +_______ +__X____ +___X___ +_XX____ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +__X_X__ +_X_X___ +_______ +XXXX___ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_______ +_______ +//reading bitmap +_______ +_______ +_X_____ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +___X___ +__X____ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +__X____ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +__X_X__ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_X_X___ +_______ +_XXX___ +X___X__ +X___X__ +X___X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +__X____ +__X____ +_______ +XXXXX__ +_______ +__X____ +__X____ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_______ +_______ +_XXX_X_ +X__XX__ +X_X_X__ +XX__X__ +X___X__ +_XXX___ +_______ +_______ +//reading bitmap +_______ +_______ +_X_____ +__X____ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +___X___ +__X____ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +__X____ +_X_X___ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_X_X___ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +_______ +_______ +//reading bitmap +_______ +_______ +___X___ +__X____ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +____X__ +XXXX___ +//reading bitmap +_______ +_______ +XX_____ +_X_____ +_X_XX__ +_XX__X_ +_X___X_ +_X___X_ +_XX__X_ +_X_XX__ +_X_____ +XX_____ +_______ +//reading bitmap +_______ +_______ +_______ +_X_X___ +_______ +X___X__ +X___X__ +X___X__ +X___X__ +X___X__ +_XXXX__ +____X__ +XXXX___ +//reading bitmap +_______ +_______ +_______ +_XXX___ +XXXXX__ +XXXXXX_ +XXXXXX_ +XXXXXX_ +XXXXX__ +_XXX___ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +X___XX_ +XX_XXX_ +XXXXX__ +_XXX___ +XXXXX__ +XX_XXX_ +X___XX_ +_______ +_______ +_______ +//reading bitmap +_______ +_______ +_______ +_XXX___ +_XXX___ +XXXXXX_ +XXXXXX_ +XXXXXX_ +_XXX___ +_XXX___ +_______ +_______ +_______ +//reading bitmap +_______ +X______ +X__XX__ +X_XXXX_ +X__XX__ +X__XX__ +__XXX__ +_XXX___ +XXX____ +XX_____ +X______ +X______ +_______ +//reading bitmap +_______ +X______ +X______ +X______ +X______ +XXXXX__ +_______ +_X___X_ +_XX__X_ +_X_X_X_ +_X__XX_ +_X___X_ +_______ +//reading bitmap +_______ +_______ +XXXXX__ +X___X__ +X___X__ +XXXXXX_ +XX_XXX_ +X___XX_ +XX_XXX_ +XX_XXX_ +XXXXXX_ +_______ +_______ +//reading bitmap +_______ +X______ +XX_____ +XXX____ +XXXX___ +XXXXX__ +XXXXXX_ +XXXXX__ +XXXX___ +XXX____ +XX_____ +X______ +_______ +//reading bitmap +_______ +X______ +XX_____ +_XX____ +__XX___ +___XX__ +____XX_ +___XX__ +__XX___ +_XX____ +XX_____ +X______ +_______ +//reading bitmap +_____X_ +____XX_ +___XXX_ +__XXXX_ +_XXXXX_ +XXXXXX_ +XXXXXX_ +XXXXXX_ +_XXXXX_ +__XXXX_ +___XXX_ +____XX_ +_____X_ +//reading bitmap +_____X_ +____XX_ +___XX__ +__XX___ +_XX____ +XX_____ +X______ +XX_____ +_XX____ +__XX___ +___XX__ +____XX_ +_____X_ diff --git a/userspace/fonts/tinyfont.c b/userspace/fonts/tinyfont.c new file mode 100644 index 0000000..f1afcdf --- /dev/null +++ b/userspace/fonts/tinyfont.c @@ -0,0 +1,160 @@ +// https://hackaday.io/project/6309-vga-graphics-over-spi-and-serial-vgatonic/log/20759-a-tiny-4x6-pixel-font-that-will-fit-on-almost-any-microcontroller-license-mit +// https://robey.lag.net/2010/01/23/tiny-monospace-font.html + +// ultrasmall 3x5 font! + + +#include <stdio.h> +#include <stdint.h> + +// Font Definition +const uint8_t font4x6 [96][2] = { + { 0x00 , 0x00 }, /*SPACE*/ + { 0x49 , 0x08 }, /*'!'*/ + { 0xb4 , 0x00 }, /*'"'*/ + { 0xbe , 0xf6 }, /*'#'*/ + { 0x7b , 0x7a }, /*'$'*/ + { 0xa5 , 0x94 }, /*'%'*/ + { 0x55 , 0xb8 }, /*'&'*/ + { 0x48 , 0x00 }, /*'''*/ + { 0x29 , 0x44 }, /*'('*/ + { 0x44 , 0x2a }, /*')'*/ + { 0x15 , 0xa0 }, /*'*'*/ + { 0x0b , 0x42 }, /*'+'*/ + { 0x00 , 0x50 }, /*','*/ + { 0x03 , 0x02 }, /*'-'*/ + { 0x00 , 0x08 }, /*'.'*/ + { 0x25 , 0x90 }, /*'/'*/ + { 0x76 , 0xba }, /*'0'*/ + { 0x59 , 0x5c }, /*'1'*/ + { 0xc5 , 0x9e }, /*'2'*/ + { 0xc5 , 0x38 }, /*'3'*/ + { 0x92 , 0xe6 }, /*'4'*/ + { 0xf3 , 0x3a }, /*'5'*/ + { 0x73 , 0xba }, /*'6'*/ + { 0xe5 , 0x90 }, /*'7'*/ + { 0x77 , 0xba }, /*'8'*/ + { 0x77 , 0x3a }, /*'9'*/ + { 0x08 , 0x40 }, /*':'*/ + { 0x08 , 0x50 }, /*';'*/ + { 0x2a , 0x44 }, /*'<'*/ + { 0x1c , 0xe0 }, /*'='*/ + { 0x88 , 0x52 }, /*'>'*/ + { 0xe5 , 0x08 }, /*'?'*/ + { 0x56 , 0x8e }, /*'@'*/ + { 0x77 , 0xb6 }, /*'A'*/ + { 0x77 , 0xb8 }, /*'B'*/ + { 0x72 , 0x8c }, /*'C'*/ + { 0xd6 , 0xba }, /*'D'*/ + { 0x73 , 0x9e }, /*'E'*/ + { 0x73 , 0x92 }, /*'F'*/ + { 0x72 , 0xae }, /*'G'*/ + { 0xb7 , 0xb6 }, /*'H'*/ + { 0xe9 , 0x5c }, /*'I'*/ + { 0x64 , 0xaa }, /*'J'*/ + { 0xb7 , 0xb4 }, /*'K'*/ + { 0x92 , 0x9c }, /*'L'*/ + { 0xbe , 0xb6 }, /*'M'*/ + { 0xd6 , 0xb6 }, /*'N'*/ + { 0x56 , 0xaa }, /*'O'*/ + { 0xd7 , 0x92 }, /*'P'*/ + { 0x76 , 0xee }, /*'Q'*/ + { 0x77 , 0xb4 }, /*'R'*/ + { 0x71 , 0x38 }, /*'S'*/ + { 0xe9 , 0x48 }, /*'T'*/ + { 0xb6 , 0xae }, /*'U'*/ + { 0xb6 , 0xaa }, /*'V'*/ + { 0xb6 , 0xf6 }, /*'W'*/ + { 0xb5 , 0xb4 }, /*'X'*/ + { 0xb5 , 0x48 }, /*'Y'*/ + { 0xe5 , 0x9c }, /*'Z'*/ + { 0x69 , 0x4c }, /*'['*/ + { 0x91 , 0x24 }, /*'\'*/ + { 0x64 , 0x2e }, /*']'*/ + { 0x54 , 0x00 }, /*'^'*/ + { 0x00 , 0x1c }, /*'_'*/ + { 0x44 , 0x00 }, /*'`'*/ + { 0x0e , 0xae }, /*'a'*/ + { 0x9a , 0xba }, /*'b'*/ + { 0x0e , 0x8c }, /*'c'*/ + { 0x2e , 0xae }, /*'d'*/ + { 0x0e , 0xce }, /*'e'*/ + { 0x56 , 0xd0 }, /*'f'*/ + { 0x55 , 0x3B }, /*'g'*/ + { 0x93 , 0xb4 }, /*'h'*/ + { 0x41 , 0x44 }, /*'i'*/ + { 0x41 , 0x51 }, /*'j'*/ + { 0x97 , 0xb4 }, /*'k'*/ + { 0x49 , 0x44 }, /*'l'*/ + { 0x17 , 0xb6 }, /*'m'*/ + { 0x1a , 0xb6 }, /*'n'*/ + { 0x0a , 0xaa }, /*'o'*/ + { 0xd6 , 0xd3 }, /*'p'*/ + { 0x76 , 0x67 }, /*'q'*/ + { 0x17 , 0x90 }, /*'r'*/ + { 0x0f , 0x38 }, /*'s'*/ + { 0x9a , 0x8c }, /*'t'*/ + { 0x16 , 0xae }, /*'u'*/ + { 0x16 , 0xba }, /*'v'*/ + { 0x16 , 0xf6 }, /*'w'*/ + { 0x15 , 0xb4 }, /*'x'*/ + { 0xb5 , 0x2b }, /*'y'*/ + { 0x1c , 0x5e }, /*'z'*/ + { 0x6b , 0x4c }, /*'{'*/ + { 0x49 , 0x48 }, /*'|'*/ + { 0xc9 , 0x5a }, /*'}'*/ + { 0x54 , 0x00 }, /*'~'*/ + { 0x56 , 0xe2 } /*''*/ +}; + +uint8_t pgm_read_byte(uint8_t *x) +{ + return *x; +} + +// Font retreival function - ugly, but needed. +unsigned char getFontLine(unsigned char data, int line_num) { + const uint8_t index = (data-32); + unsigned char pixel = 0; + if (pgm_read_byte(&font4x6[index][1]) & 1 == 1) line_num -= 1; + if (line_num == 0) { + pixel = (pgm_read_byte(&font4x6[index][0])) >> 4; + } else if (line_num == 1) { + pixel = (pgm_read_byte(&font4x6[index][0])) >> 1; + } else if (line_num == 2) { + // Split over 2 bytes + return (((pgm_read_byte(&font4x6[index][0])) & 0x03) << 2) | (((pgm_read_byte(&font4x6[index][1])) & 0x02)); + } else if (line_num == 3) { + pixel = (pgm_read_byte(&font4x6[index][1])) >> 4; + } else if (line_num == 4) { + pixel = (pgm_read_byte(&font4x6[index][1])) >> 1; + } + return pixel & 0xE; +} + +int main() +{ + printf("3\n"); + printf("5\n"); + + for(int c=0;c<95;c++) + { + printf("\n"); + char cc=c+32; + // printf("// char [%c]\n",cc); + printf("\n"); + + for(int l=0;l<5;l++) + { + uint8_t v=getFontLine(cc,l); + for(int p=0;p<3;p++) + { + if(v&(1<<(3-p)))printf("X"); + else printf("_"); + //else printf(" "); + } + printf("\n"); + } + } +} + diff --git a/userspace/fonts/tinyfont.src b/userspace/fonts/tinyfont.src new file mode 100644 index 0000000..ef5f7f1 --- /dev/null +++ b/userspace/fonts/tinyfont.src @@ -0,0 +1,667 @@ +3 +5 + + +___ +___ +___ +___ +___ + + +_X_ +_X_ +_X_ +___ +_X_ + + +X_X +X_X +___ +___ +___ + + +X_X +XXX +X_X +XXX +X_X + + +_XX +XX_ +XXX +_XX +XX_ + + +X_X +__X +_X_ +X__ +X_X + + +_X_ +X_X +_X_ +X_X +XX_ + + +_X_ +_X_ +___ +___ +___ + + +__X +_X_ +_X_ +_X_ +__X + + +_X_ +__X +__X +__X +_X_ + + +___ +X_X +_X_ +X_X +___ + + +___ +_X_ +XXX +_X_ +___ + + +___ +___ +___ +_X_ +X__ + + +___ +___ +XXX +___ +___ + + +___ +___ +___ +___ +_X_ + + +__X +__X +_X_ +X__ +X__ + + +_XX +X_X +X_X +X_X +XX_ + + +_X_ +XX_ +_X_ +_X_ +XXX + + +XX_ +__X +_XX +X__ +XXX + + +XX_ +__X +_X_ +__X +XX_ + + +X__ +X__ +X_X +XXX +__X + + +XXX +X__ +XXX +__X +XX_ + + +_XX +X__ +XXX +X_X +XX_ + + +XXX +__X +_X_ +X__ +X__ + + +_XX +X_X +XXX +X_X +XX_ + + +_XX +X_X +XXX +__X +XX_ + + +___ +_X_ +___ +_X_ +___ + + +___ +_X_ +___ +_X_ +X__ + + +__X +_X_ +X__ +_X_ +__X + + +___ +XXX +___ +XXX +___ + + +X__ +_X_ +__X +_X_ +X__ + + +XXX +__X +_X_ +___ +_X_ + + +_X_ +X_X +X_X +X__ +_XX + + +_XX +X_X +XXX +X_X +X_X + + +_XX +X_X +XX_ +X_X +XX_ + + +_XX +X__ +X__ +X__ +_XX + + +XX_ +X_X +X_X +X_X +XX_ + + +_XX +X__ +XXX +X__ +XXX + + +_XX +X__ +XXX +X__ +X__ + + +_XX +X__ +X_X +X_X +_XX + + +X_X +X_X +XXX +X_X +X_X + + +XXX +_X_ +_X_ +_X_ +XXX + + +_XX +__X +__X +X_X +_X_ + + +X_X +X_X +XX_ +X_X +X_X + + +X__ +X__ +X__ +X__ +XXX + + +X_X +XXX +X_X +X_X +X_X + + +XX_ +X_X +X_X +X_X +X_X + + +_X_ +X_X +X_X +X_X +_X_ + + +XX_ +X_X +XXX +X__ +X__ + + +_XX +X_X +X_X +XXX +_XX + + +_XX +X_X +XX_ +X_X +X_X + + +_XX +X__ +_X_ +__X +XX_ + + +XXX +_X_ +_X_ +_X_ +_X_ + + +X_X +X_X +X_X +X_X +_XX + + +X_X +X_X +X_X +X_X +_X_ + + +X_X +X_X +X_X +XXX +X_X + + +X_X +X_X +_X_ +X_X +X_X + + +X_X +X_X +_X_ +_X_ +_X_ + + +XXX +__X +_X_ +X__ +XXX + + +_XX +_X_ +_X_ +_X_ +_XX + + +X__ +X__ +_X_ +__X +__X + + +_XX +__X +__X +__X +_XX + + +_X_ +X_X +___ +___ +___ + + +___ +___ +___ +___ +XXX + + +_X_ +__X +___ +___ +___ + + +___ +_XX +X_X +X_X +_XX + + +X__ +XX_ +X_X +X_X +XX_ + + +___ +_XX +X__ +X__ +_XX + + +__X +_XX +X_X +X_X +_XX + + +___ +_XX +X_X +XX_ +_XX + + +_X_ +X_X +X__ +XX_ +X__ + + +___ +_X_ +X_X +_XX +__X + + +X__ +X__ +XX_ +X_X +X_X + + +_X_ +___ +_X_ +_X_ +__X + + +___ +_X_ +___ +_X_ +_X_ + + +X__ +X_X +XX_ +X_X +X_X + + +_X_ +_X_ +_X_ +_X_ +__X + + +___ +X_X +XXX +X_X +X_X + + +___ +XX_ +X_X +X_X +X_X + + +___ +_X_ +X_X +X_X +_X_ + + +___ +XX_ +X_X +X_X +XX_ + + +___ +_XX +X_X +X_X +_XX + + +___ +X_X +XX_ +X__ +X__ + + +___ +_XX +XX_ +__X +XX_ + + +X__ +XX_ +X__ +X__ +_XX + + +___ +X_X +X_X +X_X +_XX + + +___ +X_X +X_X +X_X +XX_ + + +___ +X_X +X_X +XXX +X_X + + +___ +X_X +_X_ +X_X +X_X + + +___ +X_X +X_X +_XX +__X + + +___ +XXX +__X +_X_ +XXX + + +_XX +_X_ +XX_ +_X_ +_XX + + +_X_ +_X_ +_X_ +_X_ +_X_ + + +XX_ +_X_ +_XX +_X_ +XX_ + + +_X_ +X_X +___ +___ +___ diff --git a/userspace/xterm/terminal.c b/userspace/xterm/terminal.c index ed2b175..60cd8b0 100644 --- a/userspace/xterm/terminal.c +++ b/userspace/xterm/terminal.c @@ -384,14 +384,15 @@ terminal_tty terminal_init(term_out *screen,term_in *input) return tty; } + term_out tout; terminal_tty tty; + terminal_tty* terminal_init_vesa() { tout.put_char=vesa_console_put_char; tout.update_cursor=vesa_update_cursor; - tty=(terminal_init(&tout,NULL)); return &tty; diff --git a/userspace/xterm/vesa.c b/userspace/xterm/vesa.c index 9e89cbe..7f22a5f 100644 --- a/userspace/xterm/vesa.c +++ b/userspace/xterm/vesa.c @@ -1,56 +1,33 @@ #include <stdarg.h> #include <stdint.h> +#include <stdbool.h> #include <stdio.h> +#include <malloc.h> #include "vesa.h" -#define VMEM_USER_FRAMEBUFFER 0xfc000000 - -typedef struct foolfont_struct -{ - uint8_t line[10]; //every single fool font consists of 10 lines a 8 bit - -}foolfont; +void PutFont(char c, int x,int y, int color_fg,int color_bg); -static foolfont deffont[256]; - -//static vbemodeinfo *VbeModeInfoBlock; - -static int console_x; -static int console_y; - -static int console_lines; -static int console_cols; - -static uint8_t* buffer; -static uint8_t* physbase; - -void PutConsoleNL(); -void PutPixel(int x,int y, int color); +#define VMEM_USER_FRAMEBUFFER 0xfc000000 -// we need to obtain this from somewhere else.. +// framebuffer info static uint32_t vesaXres; static uint32_t vesaYres; static uint32_t vesaPitch; static uint32_t vesaBpp; static uint32_t vesaAddr; -//static char buf[80][24]; +// font +static uint8_t *foolfont; +static uint32_t font_width; +static uint32_t font_height; -void vesa_update_cursor(uint32_t col,uint32_t row) -{ - console_x=col; - console_y=row; -} +// cursor position +static int console_x; +static int console_y; -// helper_funcs -/* -static void vesa_print_char_col(int x, int y, char c, char col_fg, char col_bg) -{ - // uint16_t attrib = (col_bg << 4) | (col_fg & 0x0F); - // uint16_t* video_mem=(uint16_t *)SCR_VIDEOMEM+(x+y*SCR_REAL_WIDTH); - // *video_mem=c | (attrib << 8) ; -} -*/ +//terminal size +static int console_lines; +static int console_cols; // same colors as in screen.h static uint32_t cols[] = { @@ -72,44 +49,17 @@ static uint32_t cols[] = { 0xffffff, //white }; -// glue func for terminal -void vesa_console_put_char(uint8_t c,uint8_t color_bg, uint8_t color_fg, uint32_t x, uint32_t y) -{ -// print_char_col(x,y,c, color_bg, color_fg); - //PutFont(c, console_x*10,console_y*12, cols[color_fg],cols[color_bg]); - - //PutFont(c, x*10,y*12, cols[color_bg],cols[color_fg]); - PutFont(c, x*8,y*11, cols[color_bg],cols[color_fg]); - -// buf[console_x][console_y]=c; - -// console_x++; - -// #ifdef FOOLOS_CONSOLE_AUTOBREAK -// if(console_x>=console_cols)PutConsoleNL(); -// #endif -} - -void vesa_switch_buffers() -{ - for(int i=0;i<800*600*2;i++)physbase[i]=buffer[i]; -} - -void vesa_put_rect(int x, int y, int w , int h, int color) -{ - for(int i=x;i<x+w;i++) - for(int j=y;j<y+h;j++) - PutPixel(i,j,color); -} - -void vesa_clear_screen() +/** update cursor position */ +void vesa_update_cursor(uint32_t col,uint32_t row) { - vesa_put_rect(0,0,vesaXres, vesaYres, 0xffffff); + console_x=col; + console_y=row; } -void vesa_set_physbase(uint32_t addr) +/** put char */ +void vesa_console_put_char(uint8_t c,uint8_t color_bg, uint8_t color_fg, uint32_t x, uint32_t y) { - vesaAddr=addr; + PutFont(c, x,y, cols[color_bg],cols[color_fg]); } // @@ -132,79 +82,49 @@ void vesa_set_physbase(uint32_t addr) // our video memory // -uint32_t vesa_init() +uint32_t vesa_init(char *fontname) { + // LOAD FONT + FILE *f; + //if(fontname==NULL)f=fopen("/doc/fonts/binfont.bin","r"); + //if(fontname==NULL)f=fopen("/doc/fonts/tinyfont.bin","r"); + if(fontname==NULL)f=fopen("/doc/fonts/binfont_v2.bin","r"); - FILE *f=fopen("/doc/fonts/binfont.bin","r"); - fread(deffont,10,95,f); -//inf->framebuffer_type + fread(&font_width,1,1,f); + fread(&font_height,1,1,f); - /* - vesaXres=inf->framebuffer_width; - vesaYres=inf->framebuffer_height; - vesaPitch=inf->framebuffer_pitch; - vesaBpp=inf->framebuffer_bpp; - vesaAddr=inf->framebuffer_addr; - */ + int bits_per_font=font_width*font_height; + int alloc_bytes=(bits_per_font*95+7)/8; + + foolfont=malloc(alloc_bytes); + fread(foolfont,1,alloc_bytes,f); // virtual screen vesaXres=640; vesaYres=480; + vesaPitch=640*4; - vesaBpp=32; + vesaBpp=4; //32bit vesaAddr=VMEM_USER_FRAMEBUFFER; - - //the only functionallu important init lines! (rest is log) - //VbeModeInfoBlock=mode; -// deffont=rawfont; + // + + // console_x=0; console_y=0; - int line_height=12; - int col_width=10; - - console_lines=vesaYres/line_height; - console_cols=vesaXres/col_width; - //TODO dynamic (but need to sync with terminal!) console_cols=80; console_lines=24; - /* - // vesa info - klog("vbe version: 0x%x / video mode ptr: 0x%x 0x%x", - info->VbeVersion, info->VideoModePtr[1], info->VideoModePtr[0]); - - // vesa info on selected mode: - klog("colors r:%d 0x%x g:%d 0x%x b:%d 0x%x", - mode->red_position,mode->red_mask, - mode->green_position,mode->green_mask, - mode->blue_position,mode->blue_mask); - - klog("res: %d * %d / banks: %d / attr: 0x%x", - mode->Xres, mode->Yres, mode->banks, mode->attributes); - klog("bpp: %d / physbase: 0x%x", - mode->bpp,mode->physbase); - - // vesa modes - // todo: take segment from vbeinfo! -#ifdef FOOLSOS_SHOW_VESAMODES - uint16_t *modeptr=info->VideoModePtr[0]; - - while(*modeptr!=0xffff&&*modeptr!=0) - { - klog("mode supported : 0x%X", (*modeptr)); - modeptr++; - } -#endif -*/ return vesaAddr; } // TODO: what will happen in 24bit mode? +// TODO: optimize void PutPixel(int x,int y, int color) { + /* //do not write memory outside the screen buffer, check parameters against the VBE mode info if (x<0 || x>vesaXres|| y<0 || y>vesaYres) return; if (x) x = (x*(vesaBpp>>3)); // get bytes (divide by 8) @@ -215,142 +135,62 @@ void PutPixel(int x,int y, int color) cTemp[x+y] = (uint8_t)(color & 0xff); cTemp[x+y+1] = (uint8_t)((color>>8) & 0xff); cTemp[x+y+2] = (uint8_t)((color>>16) & 0xff); -} - - -void PutFont(char c, int x,int y, int color_fg,int color_bg) -{ - - int fnt=0x126-0x20; - - if(c>=0x20&&c<=0x126)fnt=c-0x20; - - int posx, posy, sizex=8, sizey=10; - - for(posx=x;posx<x+sizex;posx++) - { - PutPixel(posx,y-1,color_bg); - } - for(posy=y;posy<y+sizey;posy++) - { - PutPixel(x-1,posy,color_bg); - } - - for(posx=x;posx<x+sizex;posx++) - { - - for(posy=y;posy<y+sizey;posy++) - { - if(deffont[fnt].line[posy-y]&1<<(7-(posx-x))) - { - PutPixel(posx,posy,color_fg); - } - else - { - PutPixel(posx,posy,color_bg); - } - - } - } + */ + uint8_t *p=VMEM_USER_FRAMEBUFFER+y*vesaPitch+x*vesaBpp; + uint32_t *pix=p; + *pix=color; } -void PutString(char *str, int x,int y, int color, va_list va) -{ - - char buff[256]; - sprintf(buff,str,va); - str=buff; - - int i=x; - while((*str)!=0) - { - PutFont(*str, i,y, color,0x0); - i+=9; // spacing - str++; - } - -} -void PutConsoleChar(char c, int color) +static bool check_pixel(int idx,int x,int y) { - if(c=='\n') - { - PutConsoleNL(); - return; - } - //PutFont(c, console_x*10,console_y*12, color); - console_x++; - - - #ifdef FOOLOS_CONSOLE_AUTOBREAK - if(console_x>=console_cols)PutConsoleNL(); - #endif +// x=font_width-x-1; + int pixel_index=idx*font_width*font_height+y*font_width+x; + return foolfont[pixel_index/8]&(1<<(7-(pixel_index%8))); } -void PutConsole(char *str, int color) +/** + * Put character C in column X of row Y using colors fg and bg + */ +void PutFont(char c, int x,int y, int color_fg,int color_bg) { + int fnt; + if(c>=0x20&&c<=0x126)fnt=c-0x20; + else return; // any other fonts?? - while((*str)!=0) - { - PutConsoleChar(*str,color); - str++; - } + //x=x*(1+font_width); + //y=y*(1+font_height); + x=x*(font_width+1); + y=y*(font_height+1); -} -void PutConsoleNL() -{ - console_y++; - if(console_y<console_lines)return; + //fill broder with bg color + for(int posx=x;posx<x+font_width+1;posx++)PutPixel(posx,y+font_height,color_bg); + for(int posy=y;posy<y+font_height;posy++)PutPixel(x+font_width,posy,color_bg); - for(int line=0;line<24;line++) + // paint letter + for(int posx=x;posx<x+font_width;posx++) { - for(int j=0;j<console_cols;j++) + for(int posy=y;posy<y+font_height;posy++) { -// buf[j][line]=buf[j][line+1]; -// PutFont(buf[j][line],j*10,line*12,0x33ff66,0); -// PutFont(buf[j][line+1],j*10,line*12,0x33ff66,0); + //if(deffont[fnt].line[posy-y]&1<<(7-(posx-x))) + if(check_pixel(fnt,posx-x,posy-y))PutPixel(posx,posy,color_fg); + else PutPixel(posx,posy,color_bg); } } - - for(int i=0;i<console_cols;i++) + /* + for(int y=0;y<vesaYres;y++) { - PutFont(' ',i*10,23*12,0x33ff66,0); - //buf[i][23]=' '; + PutPixel(0,y,0xff); + PutPixel(100,y,0xff); + PutPixel(vesaXres-1,y,0xff); } - console_x=0; - console_y--; -} - -static int boxx; -static int boxy; -//////////////// -void vesa_render() -{ - vesa_clear_screen(); - vesa_put_rect(100,100,vesaXres-200,vesaYres-200,0xff); - vesa_put_rect(boxx-10,boxy-10,20,20,0x999999); - - boxx++; -// boxy+=boxx; - if(boxx>vesaXres-100)boxx=100; - // if(boxy>VbeModeInfoBlock->Yres-200)boxy=200; - - vesa_switch_buffers(); -} - -/* -void vesa_init_doublebuff() -{ - boxx=300; - boxy=300; - - int blocks=800*600*2/4096+1; - physbase=VbeModeInfoBlock->physbase; - buffer=pmmngr_alloc_blocks(blocks); - klog("Init buffer of %d blocks at 0x%08X",blocks,buffer); - - VbeModeInfoBlock->physbase=buffer; + for(int x=0;x<vesaXres;x++) + { + PutPixel(x,0,0xff); + PutPixel(x,100,0xff); + PutPixel(x,vesaYres-1,0xff); + } + */ } -*/ diff --git a/userspace/xterm/xterm.c b/userspace/xterm/xterm.c index bee8d8d..b333794 100644 --- a/userspace/xterm/xterm.c +++ b/userspace/xterm/xterm.c @@ -10,8 +10,7 @@ int main(int argc, char **argv) { _gui_win(); - - vesa_init(); + vesa_init(NULL); void *tty=terminal_init_vesa(); //int xterm_in[2]; diff --git a/video/compositor.c b/video/compositor.c index 4debe9a..d6689a7 100644 --- a/video/compositor.c +++ b/video/compositor.c @@ -5,6 +5,7 @@ #include "kmalloc.h" #include "log.h" #include "vmem.h" +#include "timer.h" #include "asm_x86.h" #include "mount.h" @@ -32,6 +33,9 @@ struct window struct window windows[MAX_WINDOWS]; +static uint32_t display_width=1920; +static uint32_t display_height=1080; + static uint16_t next_window=0; static uint16_t next_x=50; static uint16_t next_y=50; @@ -156,15 +160,27 @@ static void put_mouse() { if(mouse_k&1) { - for(int i=-5;i<5;i++) - for(int j=-5;j<5;j++) - backbuffer[(mouse_y+j)*vesa_width+mouse_x+i]=0x00ff00; + for(int i=0;i<1;i++) + for(int j=0;j<display_height;j++) +// backbuffer[(mouse_y+j)*vesa_width+mouse_x+i]=0x00ff00; + backbuffer[(j)*vesa_width+mouse_x+i]=0x0044ee; + + for(int i=0;i<display_width;i++) + for(int j=0;j<1;j++) +// backbuffer[(mouse_y+j)*vesa_width+mouse_x+i]=0x00ff00; + backbuffer[(mouse_y+j)*vesa_width+i]=0x0044ee; } else { - for(int i=-5;i<5;i++) - for(int j=-5;j<5;j++) - backbuffer[(mouse_y+i)*vesa_width+mouse_x+j]=0xff0000; + for(int i=0;i<1;i++) + for(int j=0;j<display_height;j++) +// backbuffer[(mouse_y+j)*vesa_width+mouse_x+i]=0x00ff00; + backbuffer[(j)*vesa_width+mouse_x+i]=0x000099; + + for(int i=0;i<display_width;i++) + for(int j=0;j<1;j++) +// backbuffer[(mouse_y+j)*vesa_width+mouse_x+i]=0x00ff00; + backbuffer[(mouse_y+j)*vesa_width+i]=0x000099; } } @@ -236,6 +252,8 @@ void compositor_swap_buffers() // klog("swap"); // background memcpy(backbuffer,bgimage,vesa_height*vesa_width*4);// TODO optimize? rects only too? + // compositor_set_background(0); + for(int i=next_window-1;i>=0;i--) { @@ -316,8 +334,22 @@ void compositor_mouse_handle(uint16_t x,uint16_t y, uint8_t key) } } +// https://stackoverflow.com/questions/3581528/how-is-the-square-root-function-implemented +double sqroot(double n){ + double lo = 0, hi = n, mid; + for(int i = 0 ; i < 10 ; i++){ + mid = (lo+hi)/2; + if(mid*mid == n) return mid; + if(mid*mid > n) hi = mid; + else lo = mid; + } + return mid; +} + void compositor_set_background(char *ppm_raw_filename) { +// uint64_t t=timer_get_ms()/333; + /* klog("loading bg..."); fd bg=mount_file_open(ppm_raw_filename); @@ -334,4 +366,25 @@ void compositor_set_background(char *ppm_raw_filename) } klog("finished"); + */ + + int center_x=vesa_width/2; + int center_y=vesa_height/2; + + int max_dist = center_x*center_x+center_y*center_y; + + for(int x=0;x<vesa_width;x++) + { + for(int y=0;y<vesa_height;y++) + { + int diffx=center_x-x; + int diffy=center_y-y; + int dist=diffx*diffx+diffy*diffy; + int val = 0xff*dist/max_dist; + + bgimage[x+y*vesa_width]=val; + //backbuffer[x+y*vesa_width]=valr<<16; + } + } + } |
