summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/libopenbios
diff options
context:
space:
mode:
authorRajithaY <rajithax.yerrumsetty@intel.com>2017-04-25 03:31:15 -0700
committerRajitha Yerrumchetty <rajithax.yerrumsetty@intel.com>2017-05-22 06:48:08 +0000
commitbb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch)
treeca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/openbios/libopenbios
parenta14b48d18a9ed03ec191cf16b162206998a895ce (diff)
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/roms/openbios/libopenbios')
-rw-r--r--qemu/roms/openbios/libopenbios/Kconfig97
-rw-r--r--qemu/roms/openbios/libopenbios/aout_load.c176
-rw-r--r--qemu/roms/openbios/libopenbios/bindings.c532
-rw-r--r--qemu/roms/openbios/libopenbios/bootcode_load.c99
-rw-r--r--qemu/roms/openbios/libopenbios/bootinfo_load.c269
-rw-r--r--qemu/roms/openbios/libopenbios/build.xml31
-rw-r--r--qemu/roms/openbios/libopenbios/clib.fs36
-rw-r--r--qemu/roms/openbios/libopenbios/client.c367
-rw-r--r--qemu/roms/openbios/libopenbios/console.c68
-rw-r--r--qemu/roms/openbios/libopenbios/elf_info.c151
-rw-r--r--qemu/roms/openbios/libopenbios/elf_load.c537
-rw-r--r--qemu/roms/openbios/libopenbios/fcode_load.c109
-rw-r--r--qemu/roms/openbios/libopenbios/font_8x16.c4622
-rw-r--r--qemu/roms/openbios/libopenbios/font_8x8.c2571
-rw-r--r--qemu/roms/openbios/libopenbios/forth_load.c88
-rw-r--r--qemu/roms/openbios/libopenbios/helpers.fs35
-rw-r--r--qemu/roms/openbios/libopenbios/init.c27
-rw-r--r--qemu/roms/openbios/libopenbios/initprogram.c85
-rw-r--r--qemu/roms/openbios/libopenbios/ipchecksum.c55
-rw-r--r--qemu/roms/openbios/libopenbios/linuxbios.h181
-rw-r--r--qemu/roms/openbios/libopenbios/linuxbios_info.c130
-rw-r--r--qemu/roms/openbios/libopenbios/load.c122
-rw-r--r--qemu/roms/openbios/libopenbios/ofmem_common.c990
-rw-r--r--qemu/roms/openbios/libopenbios/video_common.c258
-rw-r--r--qemu/roms/openbios/libopenbios/xcoff_load.c147
25 files changed, 0 insertions, 11783 deletions
diff --git a/qemu/roms/openbios/libopenbios/Kconfig b/qemu/roms/openbios/libopenbios/Kconfig
deleted file mode 100644
index 1b36f1925..000000000
--- a/qemu/roms/openbios/libopenbios/Kconfig
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-menu "Module Configuration"
-
-
-config CMDLINE
- bool "Command Line Editing"
- default y
- help
- Improved openfirmware prompt
-
-config DEBLOCKER
- bool "Deblocker"
- default y
- help
- Deblocker implementation
-
-endmenu
-
-menu "Filesystem Configuration"
-
-config DISK_LABEL
- bool "Disk-Label"
- default y
- help
- Disk-label package implementation
-
-config PART_SUPPORT
- depends on DISK_LABEL
- bool "Partition support"
- default y
- help
- Support for partition tables
-
-config MAC_PARTS
- depends on PART_SUPPORT && BIG_ENDIAN
- bool "Mac partition support"
- default y
- help
- Support for Macintosh partition tables
-
-config PC_PARTS
- depends on PART_SUPPORT
- bool "PC style partition support"
- default y
- help
- Support for PC style partition tables
-
-config FS
- depends on DISK_LABEL
- bool "Filesystem Support"
- default y
- help
- Include filesystem support
-
-config HFS
- depends on FS && BIG_ENDIAN
- bool "HFS support"
- default y
- help
- Include HFS support
-
-config HFSP
- depends on FS && BIG_ENDIAN
- bool "HFS+ support"
- default y
- help
- Include HFS+ support
-
-config GRUBFS
- depends on FS
- bool "Additional Filesystems (from GRUB)"
- default y
- help
- Grub provides a lot of filesystem drivers.
-
-source "fs/grubfs/Kconfig"
-
-config DEBUG_FS
- depends on FS
- bool "Debugging output for Filesystem code"
- default y
- help
- Say Y here if you want to debug the filesystem layer
-
-endmenu
-
-menu "Miscellaneous"
-
-config LINUXBIOS
- bool "Support reading LinuxBIOS table"
- default y
- help
- If you want to boot OpenBIOS as a LinuxBIOS payload,
- you should say Y here.
-
-endmenu
diff --git a/qemu/roms/openbios/libopenbios/aout_load.c b/qemu/roms/openbios/libopenbios/aout_load.c
deleted file mode 100644
index e9d200251..000000000
--- a/qemu/roms/openbios/libopenbios/aout_load.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* a.out boot loader
- * As we have seek, this implementation can be straightforward.
- * 2003-07 by SONE Takeshi
- */
-
-#include "config.h"
-#include "kernel/kernel.h"
-
-#ifdef CONFIG_SPARC64
-#define CONFIG_SPARC64_PAGE_SIZE_8KB
-#endif
-
-/* NextStep bootloader on SPARC32 expects the a.out header directly
- below load-base (0x4000) */
-#ifdef CONFIG_SPARC32
-#define AOUT_HEADER_COPY
-#endif
-
-#include "libopenbios/sys_info.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/aout_load.h"
-#include "libc/diskio.h"
-#define printf printk
-#define debug printk
-
-#define addr_fixup(addr) ((addr) & 0x00ffffff)
-
-static char *image_name, *image_version;
-static int fd;
-
-static int
-check_mem_ranges(struct sys_info *info,
- unsigned long start,
- unsigned long size)
-{
- int j;
- unsigned long end;
- unsigned long prog_start, prog_end;
- struct memrange *mem;
-
- prog_start = virt_to_phys(&_start);
- prog_end = virt_to_phys(&_end);
-
- end = start + size;
-
- if (start < prog_start && end > prog_start)
- goto conflict;
- if (start < prog_end && end > prog_end)
- goto conflict;
- mem = info->memrange;
- for (j = 0; j < info->n_memranges; j++) {
- if (mem[j].base <= start && mem[j].base + mem[j].size >= end)
- break;
- }
- if (j >= info->n_memranges)
- goto badseg;
- return 1;
-
- conflict:
- printf("%s occupies [%#lx-%#lx]\n", program_name, prog_start, prog_end);
-
- badseg:
- printf("A.out file [%#lx-%#lx] doesn't fit into memory\n", start, end - 1);
- return 0;
-}
-
-int
-is_aout(struct exec *ehdr)
-{
- return ((ehdr->a_info & 0xffff) == OMAGIC
- || (ehdr->a_info & 0xffff) == NMAGIC
- || (ehdr->a_info & 0xffff) == ZMAGIC
- || (ehdr->a_info & 0xffff) == QMAGIC);
-}
-
-int
-aout_load(struct sys_info *info, ihandle_t dev)
-{
- int retval = -1;
- struct exec ehdr;
- unsigned long start, size;
- unsigned int offset;
-
- image_name = image_version = NULL;
-
- /* Mark the saved-program-state as invalid */
- feval("0 state-valid !");
-
- fd = open_ih(dev);
- if (fd == -1) {
- goto out;
- }
-
- for (offset = 0; offset < 16 * 512; offset += 512) {
- seek_io(fd, offset);
- if (read_io(fd, &ehdr, sizeof ehdr) != sizeof ehdr) {
- debug("Can't read a.out header\n");
- retval = LOADER_NOT_SUPPORT;
- goto out;
- }
- if (is_aout(&ehdr))
- break;
- }
-
- if (!is_aout(&ehdr)) {
- debug("Not a bootable a.out image\n");
- retval = LOADER_NOT_SUPPORT;
- goto out;
- }
-
- if (ehdr.a_text == 0x30800007)
- ehdr.a_text=64*1024;
-
- if (N_MAGIC(ehdr) == NMAGIC) {
- size = addr_fixup(N_DATADDR(ehdr)) + addr_fixup(ehdr.a_data);
- } else {
- size = addr_fixup(ehdr.a_text) + addr_fixup(ehdr.a_data);
- }
-
- if (size < 7680)
- size = 7680;
-
- fword("load-base");
- start = POP(); // N_TXTADDR(ehdr);
-
- if (!check_mem_ranges(info, start, size))
- goto out;
-
- printf("Loading a.out %s...\n", image_name ? image_name : "image");
-
- seek_io(fd, offset + N_TXTOFF(ehdr));
-
- if (N_MAGIC(ehdr) == NMAGIC) {
- if ((size_t)read_io(fd, (void *)start, ehdr.a_text) != ehdr.a_text) {
- printf("Can't read program text segment (size 0x" FMT_aout_ehdr ")\n", ehdr.a_text);
- goto out;
- }
- if ((size_t)read_io(fd, (void *)(start + N_DATADDR(ehdr)), ehdr.a_data) != ehdr.a_data) {
- printf("Can't read program data segment (size 0x" FMT_aout_ehdr ")\n", ehdr.a_data);
- goto out;
- }
- } else {
- if ((size_t)read_io(fd, (void *)start, size) != size) {
- printf("Can't read program (size 0x" FMT_sizet ")\n", size);
- goto out;
- }
- }
-
- debug("Loaded %lu bytes\n", size);
- debug("entry point is %#lx\n", start);
-
-#ifdef AOUT_HEADER_COPY
- // Copy the a.out header just before start
- memcpy((char *)(start - 0x20), &ehdr, 0x20);
-#endif
-
- // Initialise saved-program-state
- PUSH(addr_fixup(start));
- feval("saved-program-state >sps.entry !");
- PUSH(size);
- feval("saved-program-state >sps.file-size !");
- feval("aout saved-program-state >sps.file-type !");
-
- feval("-1 state-valid !");
-
-out:
- close_io(fd);
- return retval;
-}
-
-void
-aout_init_program(void)
-{
- // Currently not implemented
- feval("0 state-valid !");
-}
diff --git a/qemu/roms/openbios/libopenbios/bindings.c b/qemu/roms/openbios/libopenbios/bindings.c
deleted file mode 100644
index 4f7a99379..000000000
--- a/qemu/roms/openbios/libopenbios/bindings.c
+++ /dev/null
@@ -1,532 +0,0 @@
-/*
- * Creation Date: <2003/11/24 12:30:18 samuel>
- * Time-stamp: <2004/01/07 19:37:38 samuel>
- *
- * <bindings.c>
- *
- * Forth bindings
- *
- * Copyright (C) 2003, 2004 Samuel Rydh (samuel@ibrium.se)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "libopenbios/bindings.h"
-#include "libc/string.h"
-#include "libc/stdlib.h"
-#include "libc/byteorder.h"
-
-
-/************************************************************************/
-/* forth interface glue */
-/************************************************************************/
-
-void
-push_str( const char *str )
-{
- PUSH( pointer2cell(str) );
- PUSH( str ? strlen(str) : 0 );
-}
-
-/* WARNING: sloooow - AVOID */
-cell
-feval( const char *str )
-{
- push_str( str );
- return eword("evaluate", 2);
-}
-
-cell
-_eword( const char *word, xt_t *cache_xt, int nargs )
-{
- static xt_t catch_xt = 0;
- cell ret = -1;
-
- if( !catch_xt )
- catch_xt = findword("catch");
- if( !*cache_xt )
- *cache_xt = findword( (char*)word );
-
- if( *cache_xt ) {
- PUSH_xt( *cache_xt );
- enterforth( catch_xt );
- if( (ret=POP()) )
- dstackcnt -= nargs;
- }
- return ret;
-}
-
-/* note: only the built-in dictionary is searched */
-int
-_fword( const char *word, xt_t *cache_xt )
-{
- if( !*cache_xt )
- *cache_xt = findword( (char*)word );
-
- if( *cache_xt ) {
- enterforth( *cache_xt );
- return 0;
- }
- return -1;
-}
-
-int
-_selfword( const char *method, xt_t *cache_xt )
-{
- if( !*cache_xt )
- *cache_xt = find_ih_method( method, my_self() );
- if( *cache_xt ) {
- enterforth( *cache_xt );
- return 0;
- }
- return -1;
-}
-
-int
-_parword( const char *method, xt_t *cache_xt )
-{
- if( !*cache_xt )
- *cache_xt = find_ih_method( method, my_parent() );
- if( *cache_xt ) {
- enterforth( *cache_xt );
- return 0;
- }
- return -1;
-}
-
-void
-bind_func( const char *name, void (*func)(void) )
-{
- PUSH( pointer2cell(func) );
- push_str( name );
- fword("is-cfunc");
-}
-
-void
-bind_xtfunc( const char *name, xt_t xt, ucell arg, void (*func)(void) )
-{
- PUSH_xt( xt );
- PUSH( arg );
- PUSH( pointer2cell(func) );
- push_str( name );
- fword("is-xt-cfunc");
-}
-
-xt_t
-bind_noname_func( void (*func)(void) )
-{
- PUSH( pointer2cell(func) );
- fword("is-noname-cfunc");
- return POP_xt();
-}
-
-void
-throw( int error )
-{
- PUSH( error );
- fword("throw");
-}
-
-
-/************************************************************************/
-/* ihandle related */
-/************************************************************************/
-
-phandle_t
-ih_to_phandle( ihandle_t ih )
-{
- PUSH_ih( ih );
- fword("ihandle>phandle");
- return POP_ph();
-}
-
-ihandle_t
-my_parent( void )
-{
- fword("my-parent");
- return POP_ih();
-}
-
-ihandle_t
-my_self( void )
-{
- fword("my-self");
- return POP_ih();
-}
-
-xt_t
-find_package_method( const char *method, phandle_t ph )
-{
- push_str( method );
- PUSH_ph( ph );
- fword("find-method");
- if( POP() )
- return POP_xt();
- return 0;
-}
-
-xt_t
-find_ih_method( const char *method, ihandle_t ih )
-{
- return find_package_method( method, ih_to_phandle(ih) );
-}
-
-
-xt_t
-find_parent_method( const char *method )
-{
- return find_ih_method( method, my_parent() );
-}
-
-void
-call_package( xt_t xt, ihandle_t ihandle )
-{
- PUSH_xt( xt );
- PUSH_ih( ihandle );
- fword("call-package");
-}
-
-void
-call_parent( xt_t xt )
-{
- PUSH_xt( xt );
- fword("call-parent");
-}
-
-void
-call_parent_method( const char *method )
-{
- push_str( method );
- fword("$call-parent");
-}
-
-
-/************************************************************************/
-/* open/close package/dev */
-/************************************************************************/
-
-ihandle_t
-open_dev( const char *spec )
-{
- push_str( spec );
- fword("open-dev");
- return POP_ih();
-}
-
-void
-close_dev( ihandle_t ih )
-{
- PUSH_ih( ih );
- fword("close-dev");
-}
-
-ihandle_t
-open_package( const char *argstr, phandle_t ph )
-{
- push_str( argstr );
- PUSH_ph( ph );
- fword("open-package");
- return POP_ih();
-}
-
-void
-close_package( ihandle_t ih )
-{
- PUSH_ih( ih );
- fword("close-package");
-}
-
-
-/************************************************************************/
-/* ihandle arguments */
-/************************************************************************/
-
-char *
-pop_fstr_copy( void )
-{
- int len = POP();
- char *str, *p = (char*)cell2pointer(POP());
- if( !len )
- return NULL;
- str = malloc( len + 1 );
- if( !str )
- return NULL;
- memcpy( str, p, len );
- str[len] = 0;
- return str;
-}
-
-char *
-my_args_copy( void )
-{
- fword("my-args");
- return pop_fstr_copy();
-}
-
-
-/************************************************************************/
-/* properties */
-/************************************************************************/
-
-void
-set_property( phandle_t ph, const char *name, const char *buf, int len )
-{
- if( !ph ) {
- printk("set_property: NULL phandle\n");
- return;
- }
- PUSH(pointer2cell(buf));
- PUSH(len);
- push_str( name );
- PUSH_ph(ph);
- fword("set-property");
-}
-
-void
-set_int_property( phandle_t ph, const char *name, u32 val )
-{
- u32 swapped=__cpu_to_be32(val);
- set_property( ph, name, (char*)&swapped, sizeof(swapped) );
-}
-
-char *
-get_property( phandle_t ph, const char *name, int *retlen )
-{
- int len;
-
- if( retlen )
- *retlen = -1;
-
- push_str( name );
- PUSH_ph( ph );
- fword("get-package-property");
- if( POP() )
- return NULL;
- len = POP();
- if( retlen )
- *retlen = len;
- return (char*)cell2pointer(POP());
-}
-
-u32
-get_int_property( phandle_t ph, const char *name, int *retlen )
-{
- u32 *p;
-
- if( !(p=(u32 *)get_property(ph, name, retlen)) )
- return 0;
- return __be32_to_cpu(*p);
-}
-
-
-/************************************************************************/
-/* device selection / iteration */
-/************************************************************************/
-
-void
-activate_dev( phandle_t ph )
-{
- PUSH_ph( ph );
- fword("active-package!");
-}
-
-phandle_t
-activate_device( const char *str )
-{
- phandle_t ph = find_dev( str );
- activate_dev( ph );
- return ph;
-}
-
-void
-device_end( void )
-{
- fword("device-end");
-}
-
-phandle_t
-get_cur_dev( void )
-{
- fword("active-package");
- return POP_ph();
-}
-
-phandle_t
-find_dev( const char *path )
-{
- phandle_t ret = 0;
- push_str( path );
- fword("(find-dev)");
- if( POP() )
- return POP_ph();
- return ret;
-}
-
-char *
-get_path_from_ph( phandle_t ph )
-{
- PUSH(ph);
- fword("get-package-path");
- return pop_fstr_copy();
-}
-
-phandle_t
-dt_iter_begin( void )
-{
- fword("iterate-tree-begin");
- return POP_ph();
-}
-
-phandle_t
-dt_iterate( phandle_t last_tree )
-{
- if( !last_tree )
- return dt_iter_begin();
-
- PUSH_ph( last_tree );
- fword("iterate-tree");
- return POP_ph();
-}
-
-phandle_t
-dt_iterate_type( phandle_t last_tree, const char *type )
-{
- if( !last_tree )
- last_tree = dt_iter_begin();
-
- /* root node is never matched but we don't care about that */
- while( (last_tree = dt_iterate(last_tree)) ) {
- char *s = get_property( last_tree, "device_type", NULL );
- if( s && !strcmp(type, s) )
- break;
- }
- return last_tree;
-}
-
-
-/************************************************************************/
-/* node methods */
-/************************************************************************/
-
-void
-make_openable( int only_parents )
-{
- phandle_t ph, save_ph = get_cur_dev();
- PUSH_ph( save_ph );
-
- for( ;; ) {
- if( only_parents++ )
- fword("parent");
- if( !(ph=POP_ph()) )
- break;
- activate_dev( ph );
- PUSH_ph( ph );
- fword("is-open");
- }
- activate_dev( save_ph );
-}
-
-static void
-call1_func( void )
-{
- void (*func)(cell v);
- func = (void*)cell2pointer(POP());
-
- (*func)( POP() );
-}
-
-
-static void
-add_methods( int flags, int size, const method_t *methods, int nmet )
-{
- xt_t xt=0;
- int i;
-
- /* nodes might be matched multiple times */
- if( find_package_method(methods[0].name, get_cur_dev()) )
- return;
-
- if( size ) {
- PUSH( size );
- fword("is-ibuf");
- xt = POP_xt();
- }
-
- for( i=0; i<nmet; i++ ) {
- /* null-name methods specify static initializers */
- if( !methods[i].name ) {
- typedef void (*initfunc)( void *p );
- char *buf = NULL;
- if( xt ) {
- enterforth( xt );
- buf = (char*)cell2pointer(POP());
- }
- (*(initfunc)methods[i].func)( buf );
- continue;
- }
- if( !size )
- bind_func( methods[i].name, methods[i].func );
- else
- bind_xtfunc( methods[i].name, xt, pointer2cell(methods[i].func),
- &call1_func );
- }
-
- if( flags & INSTALL_OPEN )
- make_openable(0);
-}
-
-void
-bind_node( int flags, int size, const char * const *paths, int npaths,
- const method_t *methods, int nmet )
-{
- phandle_t save_ph = get_cur_dev();
- int i;
-
- for( i=0; i<npaths; i++ ) {
- const char *name = paths[i];
-
- /* type matching? */
- if( *name == 'T' ) {
- phandle_t ph = 0;
- name++;
- while( (ph=dt_iterate_type(ph, name)) ) {
- activate_dev( ph );
- add_methods( flags, size, methods, nmet );
- }
- continue;
- }
-
- /* path patching */
- if( activate_device(name) )
- add_methods( flags, size, methods, nmet );
- else if( *name == '+' ) {
- /* create node (and missing parents) */
- if( !activate_device(++name) ) {
- push_str( name );
- fword("create-node");
- }
- add_methods( flags, size, methods, nmet );
- }
- }
- activate_dev( save_ph );
-}
-
-phandle_t
-bind_new_node( int flags, int size, const char *name,
- const method_t *methods, int nmet )
-{
- phandle_t save_ph = get_cur_dev();
- phandle_t new_ph;
- /* create node */
- push_str( name );
- fword("create-node");
- add_methods( flags, size, methods, nmet );
- new_ph = get_cur_dev();
-
- activate_dev( save_ph );
- return new_ph;
-}
diff --git a/qemu/roms/openbios/libopenbios/bootcode_load.c b/qemu/roms/openbios/libopenbios/bootcode_load.c
deleted file mode 100644
index 0fabf55c1..000000000
--- a/qemu/roms/openbios/libopenbios/bootcode_load.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Raw bootcode loader (CHRP/Apple %BOOT)
- * Written by Mark Cave-Ayland 2013
- */
-
-#include "config.h"
-#include "kernel/kernel.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/bootcode_load.h"
-#include "libc/diskio.h"
-#include "drivers/drivers.h"
-#define printf printk
-#define debug printk
-
-
-int
-bootcode_load(ihandle_t dev)
-{
- int retval = -1, count = 0, fd;
- unsigned long bootcode, loadbase, entry, size, offset;
- ihandle_t bootcode_info;
-
- /* Mark the saved-program-state as invalid */
- feval("0 state-valid !");
-
- fd = open_ih(dev);
- if (fd == -1) {
- goto out;
- }
-
- /* If we don't have the get-bootcode-info word then we don't support
- loading bootcode via %BOOT */
- bootcode_info = find_ih_method("get-bootcode-info", dev);
- if (!bootcode_info) {
- goto out;
- }
-
- /* Default to loading at load-base */
- fword("load-base");
- loadbase = POP();
- entry = loadbase;
- size = 0;
-
-#ifdef CONFIG_PPC
- /*
- * Apple OF does not honor load-base and instead uses pmBootLoad
- * value from the boot partition descriptor.
- *
- * Tested with:
- * a debian image with QUIK installed
- * a debian image with iQUIK installed (https://github.com/andreiw/quik)
- * an IQUIK boot floppy
- * a NetBSD boot floppy (boots stage 2)
- */
- if (is_apple()) {
- PUSH(bootcode_info);
- fword("execute");
-
- loadbase = POP();
- entry = POP();
- size = POP();
- }
-#endif
-
- bootcode = loadbase;
- offset = 0;
-
- while(1) {
- if (seek_io(fd, offset) == -1)
- break;
- count = read_io(fd, (void *)bootcode, 512);
- offset += count;
- bootcode += count;
- }
-
- /* If we didn't read anything then exit */
- if (!count) {
- goto out;
- }
-
- /* Use proper file size if we got it from bootcode info */
- if (size == 0) {
- size = offset;
- }
-
- /* Initialise saved-program-state */
- PUSH(entry);
- feval("saved-program-state >sps.entry !");
- PUSH(size);
- feval("saved-program-state >sps.file-size !");
- feval("bootcode saved-program-state >sps.file-type !");
-
- feval("-1 state-valid !");
-
-out:
- close_io(fd);
- return retval;
-}
-
diff --git a/qemu/roms/openbios/libopenbios/bootinfo_load.c b/qemu/roms/openbios/libopenbios/bootinfo_load.c
deleted file mode 100644
index f33678185..000000000
--- a/qemu/roms/openbios/libopenbios/bootinfo_load.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- *
- * <bootinfo_load.c>
- *
- * bootinfo file loader
- *
- * Copyright (C) 2009 Laurent Vivier (Laurent@vivier.eu)
- *
- * Original XML parser by Blue Swirl <blauwirbel@gmail.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/bootinfo_load.h"
-#include "libopenbios/ofmem.h"
-#include "libc/vsprintf.h"
-
-//#define DEBUG_BOOTINFO
-
-#ifdef DEBUG_BOOTINFO
-#define DPRINTF(fmt, args...) \
- do { printk("%s: " fmt, __func__ , ##args); } while (0)
-#else
-#define DPRINTF(fmt, args...) \
- do { } while (0)
-#endif
-
-static char *
-get_device( const char *path )
-{
- int i;
- static char buf[1024];
-
- for (i = 0; i < sizeof(buf) && path[i] && path[i] != ':'; i++)
- buf[i] = path[i];
- buf[i] = 0;
-
- return buf;
-}
-
-static char *
-get_partition( const char *path )
-{
- static char buf[2];
-
- buf[0] = '\0';
- buf[1] = '\0';
-
- while ( *path && *path != ':' )
- path++;
-
- if (!*path)
- return buf;
- path++;
-
- if (path[0] == ',' || !strchr(path, ',')) /* if there is not a ',' or no partition id then return */
- return buf;
-
- /* Must be a partition id */
- buf[0] = path[0];
-
- return buf;
-}
-
-static char *
-get_filename( const char * path , char **dirname)
-{
- static char buf[1024];
- char *filename;
-
- while ( *path && *path != ':' )
- path++;
-
- if (!*path) {
- *dirname = NULL;
- return NULL;
- }
- path++;
-
- while ( *path && isdigit(*path) )
- path++;
-
- if (*path == ',')
- path++;
-
- strncpy(buf, path, sizeof(buf));
- buf[sizeof(buf) - 1] = 0;
-
- filename = strrchr(buf, '\\');
- if (filename) {
- *dirname = buf;
- (*filename++) = 0;
- } else {
- *dirname = NULL;
- filename = buf;
- }
-
- return filename;
-}
-
-int
-is_bootinfo(char *bootinfo)
-{
- return (strncasecmp(bootinfo, "<chrp-boot", 10) ? 0 : -1);
-}
-
-int
-bootinfo_load(struct sys_info *info, const char *filename)
-{
- // Currently not implemented
- return LOADER_NOT_SUPPORT;
-}
-
-/*
- Parse SGML structure like:
- <chrp-boot>
- <description>Debian/GNU Linux Installation on IBM CHRP hardware</description>
- <os-name>Debian/GNU Linux for PowerPC</os-name>
- <boot-script>boot &device;:\install\yaboot</boot-script>
- <icon size=64,64 color-space=3,3,2>
-
- CHRP system bindings are described at:
- http://playground.sun.com/1275/bindings/chrp/chrp1_7a.ps
-*/
-
-void
-bootinfo_init_program(void)
-{
- char *base;
- int proplen;
- phandle_t chosen;
- int tag, taglen, script, scriptlen, scriptvalid, entity, chrp;
- char tagbuf[128], c;
- char *device, *filename, *directory, *partition;
- int current, size;
- char *bootscript;
- char *tmp;
- char bootpath[1024];
-
- /* Parse the boot script */
-
- chosen = find_dev("/chosen");
- tmp = get_property(chosen, "bootpath", &proplen);
- memcpy(bootpath, tmp, proplen);
- bootpath[proplen] = 0;
-
- DPRINTF("bootpath %s\n", bootpath);
-
- device = get_device(bootpath);
- partition = get_partition(bootpath);
- filename = get_filename(bootpath, &directory);
-
- feval("load-base");
- base = (char*)cell2pointer(POP());
-
- feval("load-size");
- size = POP();
-
- /* Some bootinfo scripts contain a binary payload after the
- NULL-terminated Forth string such as OS 9. Restrict our
- size to just the Forth section, otherwise we end up trying
- to allocate memory for the entire binary which might fail. */
- size = strnlen(base, size);
-
- bootscript = malloc(size);
- if (bootscript == NULL) {
- DPRINTF("Can't malloc %d bytes\n", size);
- return;
- }
-
- if (!is_bootinfo(base)) {
- DPRINTF("Not a valid bootinfo memory image\n");
- free(bootscript);
- return;
- }
-
- chrp = 0;
- tag = 0;
- taglen = 0;
- script = 0;
- scriptvalid = 0;
- scriptlen = 0;
- entity = 0;
- current = 0;
- while (current < size) {
-
- c = base[current++];
-
- if (c == '<') {
- script = 0;
- tag = 1;
- taglen = 0;
- } else if (c == '>') {
- tag = 0;
- tagbuf[taglen] = '\0';
- if (strncasecmp(tagbuf, "chrp-boot", 9) == 0) {
- chrp = 1;
- } else if (chrp == 1) {
- if (strncasecmp(tagbuf, "boot-script", 11) == 0) {
- script = 1;
- scriptlen = 0;
- } else if (strncasecmp(tagbuf, "/boot-script", 12) == 0) {
-
- script = 0;
- bootscript[scriptlen] = '\0';
-
- DPRINTF("got bootscript %s\n",
- bootscript);
-
- scriptvalid = -1;
-
- break;
- } else if (strncasecmp(tagbuf, "/chrp-boot", 10) == 0)
- break;
- }
- } else if (tag && taglen < sizeof(tagbuf)) {
- tagbuf[taglen++] = c;
- } else if (script && c == '&') {
- entity = 1;
- taglen = 0;
- } else if (entity && c ==';') {
- entity = 0;
- tagbuf[taglen] = '\0';
- if (strncasecmp(tagbuf, "lt", 2) == 0) {
- bootscript[scriptlen++] = '<';
- } else if (strncasecmp(tagbuf, "gt", 2) == 0) {
- bootscript[scriptlen++] = '>';
- } else if (strncasecmp(tagbuf, "device", 6) == 0) {
- strcpy(bootscript + scriptlen, device);
- scriptlen += strlen(device);
- } else if (strncasecmp(tagbuf, "partition", 9) == 0) {
- strcpy(bootscript + scriptlen, partition);
- scriptlen += strlen(partition);
- } else if (strncasecmp(tagbuf, "directory", 9) == 0) {
- strcpy(bootscript + scriptlen, directory);
- scriptlen += strlen(directory);
- } else if (strncasecmp(tagbuf, "filename", 8) == 0) {
- strcpy(bootscript + scriptlen, filename);
- scriptlen += strlen(filename);
- } else if (strncasecmp(tagbuf, "full-path", 9) == 0) {
- strcpy(bootscript + scriptlen, bootpath);
- scriptlen += strlen(bootpath);
- } else { /* unknown, keep it */
- bootscript[scriptlen] = '&';
- strcpy(bootscript + scriptlen + 1, tagbuf);
- scriptlen += taglen + 1;
- bootscript[scriptlen] = ';';
- scriptlen++;
- }
- } else if (entity && taglen < sizeof(tagbuf)) {
- tagbuf[taglen++] = c;
- } else if (script && scriptlen < size) {
- bootscript[scriptlen++] = c;
- }
- }
-
- /* If the payload is bootinfo then we execute it immediately */
- if (scriptvalid) {
- DPRINTF("bootscript: %s\n", bootscript);
- feval(bootscript);
- }
- else
- DPRINTF("Unable to parse bootinfo bootscript\n");
-}
diff --git a/qemu/roms/openbios/libopenbios/build.xml b/qemu/roms/openbios/libopenbios/build.xml
deleted file mode 100644
index feb8f6c7d..000000000
--- a/qemu/roms/openbios/libopenbios/build.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<build>
-
- <library name="openbios" type="static" target="target">
- <object source="aout_load.c" condition="LOADER_AOUT"/>
- <object source="bindings.c"/>
- <object source="bootcode_load.c" condition="LOADER_BOOTCODE"/>
- <object source="bootinfo_load.c" condition="LOADER_BOOTINFO"/>
- <object source="client.c"/>
- <object source="console.c"/>
- <object source="elf_info.c" />
- <object source="elf_load.c" condition="LOADER_ELF"/>
- <object source="font_8x8.c" condition="FONT_8X8"/>
- <object source="font_8x16.c" condition="FONT_8X16"/>
- <object source="fcode_load.c" condition="LOADER_FCODE"/>
- <object source="forth_load.c" condition="LOADER_FORTH"/>
- <object source="init.c"/>
- <object source="initprogram.c"/>
- <object source="ipchecksum.c"/>
- <object source="load.c"/>
- <object source="linuxbios_info.c" condition="LINUXBIOS"/>
- <object source="ofmem_common.c" condition="OFMEM"/>
- <object source="xcoff_load.c" condition="LOADER_XCOFF"/>
- <object source="video_common.c"/>
- </library>
-
- <dictionary name="openbios" target="forth">
- <object source="clib.fs"/>
- <object source="helpers.fs"/>
- </dictionary>
-
-</build>
diff --git a/qemu/roms/openbios/libopenbios/clib.fs b/qemu/roms/openbios/libopenbios/clib.fs
deleted file mode 100644
index 04dd0aa43..000000000
--- a/qemu/roms/openbios/libopenbios/clib.fs
+++ /dev/null
@@ -1,36 +0,0 @@
-\ tag: C helpers
-\
-\ Misc C helpers
-\
-\ Copyright (C) 2003, 2004 Samuel Rydh
-\
-\ See the file "COPYING" for further information about
-\ the copyright and warranty status of this work.
-\
-
-\ should perhaps be moved somewhere else
-: set-property ( buf len propname propname-len phandle -- )
- >r 2swap encode-bytes 2swap r> encode-property
-;
-
-\ install C function
-: is-cfunc ( funcaddr word word-len -- )
- $create , does> @ call
-;
-
-\ install a nameless C function
-: is-noname-cfunc ( funcaddr -- xt )
- 0 0 is-cfunc last-xt
-;
-
-\ is-xt-cfunc installs a function which does the following:
-\ - xt is executes
-\ - funcarg is pushed
-\ - funcaddr is called
-
-: is-xt-cfunc ( xt|0 funcarg funcaddr word word-len -- )
- is-func-begin
- rot ?dup if , then
- swap ['] (lit) , , ['] (lit) , , ['] call ,
- is-func-end
-;
diff --git a/qemu/roms/openbios/libopenbios/client.c b/qemu/roms/openbios/libopenbios/client.c
deleted file mode 100644
index 8b3d582b6..000000000
--- a/qemu/roms/openbios/libopenbios/client.c
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * Creation Date: <2003/11/25 14:29:08 samuel>
- * Time-stamp: <2004/03/27 01:13:53 samuel>
- *
- * <client.c>
- *
- * OpenFirmware client interface
- *
- * Copyright (C) 2003, 2004 Samuel Rydh (samuel@ibrium.se)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/of.h"
-
-/* Uncomment to enable debug printout of client interface calls */
-//#define DEBUG_CIF
-//#define DUMP_IO
-
-/* OF client interface. r3 points to the argument array. On return,
- * r3 should contain 0==true or -1==false. r4-r12,cr0,cr1 may
- * be modified freely.
- *
- * -1 should only be returned if the control transfer to OF fails
- * (it doesn't) or if the function is unimplemented.
- */
-
-#define PROM_MAX_ARGS 10
-typedef struct prom_args {
- prom_uarg_t service;
- prom_arg_t nargs;
- prom_arg_t nret;
- prom_uarg_t args[PROM_MAX_ARGS];
-} __attribute__((packed)) prom_args_t;
-
-static inline const char *
-arg2pointer(prom_uarg_t value)
-{
- return (char*)(uintptr_t)value;
-}
-
-static inline const char *
-get_service(prom_args_t *pb)
-{
- return arg2pointer(pb->service);
-}
-
-#ifdef DEBUG_CIF
-static void memdump(const char *mem, unsigned long size)
-{
- int i;
-
- if (size == (unsigned long) -1)
- return;
-
- for (i = 0; i < size; i += 16) {
- int j;
-
- printk("0x%08lx ", (unsigned long)mem + i);
-
- for (j = 0; j < 16 && i + j < size; j++)
- printk(" %02x", *(unsigned char*)(mem + i + j));
-
- for ( ; j < 16; j++)
- printk(" __");
-
- printk(" ");
-
- for (j = 0; j < 16 && i + j < size; j++) {
- unsigned char c = *(mem + i + j);
- if (isprint(c))
- printk("%c", c);
- else
- printk(".");
- }
- printk("\n");
- }
-}
-
-static void dump_service(prom_args_t *pb)
-{
- int i;
- const char *service = get_service(pb);
- if (strcmp(service, "test") == 0) {
- printk("test(\"%s\") = ", arg2pointer(pb->args[0]));
- } else if (strcmp(service, "peer") == 0) {
- printk("peer(0x" FMT_prom_uargx ") = ", pb->args[0]);
- } else if (strcmp(service, "child") == 0) {
- printk("child(0x" FMT_prom_uargx ") = ", pb->args[0]);
- } else if (strcmp(service, "parent") == 0) {
- printk("parent(0x" FMT_prom_uargx ") = ", pb->args[0]);
- } else if (strcmp(service, "instance-to-package") == 0) {
- printk("instance-to-package(0x" FMT_prom_uargx ") = ", pb->args[0]);
- } else if (strcmp(service, "getproplen") == 0) {
- printk("getproplen(0x" FMT_prom_uargx ", \"%s\") = ",
- pb->args[0], arg2pointer(pb->args[1]));
- } else if (strcmp(service, "getprop") == 0) {
- printk("getprop(0x" FMT_prom_uargx ", \"%s\", 0x" FMT_prom_uargx ", " FMT_prom_arg ") = ",
- pb->args[0], arg2pointer(pb->args[1]),
- pb->args[2], pb->args[3]);
- } else if (strcmp(service, "nextprop") == 0) {
- printk("nextprop(0x" FMT_prom_uargx ", \"%s\", 0x" FMT_prom_uargx ") = ",
- pb->args[0], arg2pointer(pb->args[1]), pb->args[2]);
- } else if (strcmp(service, "setprop") == 0) {
- printk("setprop(0x" FMT_prom_uargx ", \"%s\", 0x" FMT_prom_uargx ", " FMT_prom_arg ")\n",
- pb->args[0], arg2pointer(pb->args[1]),
- pb->args[2], pb->args[3]);
- memdump(arg2pointer(pb->args[2]), pb->args[3]);
- printk(" = ");
- } else if (strcmp(service, "canon") == 0) {
- printk("canon(\"%s\", 0x" FMT_prom_uargx ", " FMT_prom_arg ")\n",
- arg2pointer(pb->args[0]), pb->args[1], pb->args[2]);
- } else if (strcmp(service, "finddevice") == 0) {
- printk("finddevice(\"%s\") = ", arg2pointer(pb->args[0]));
- } else if (strcmp(service, "instance-to-path") == 0) {
- printk("instance-to-path(0x" FMT_prom_uargx ", 0x" FMT_prom_uargx ", " FMT_prom_arg ") = ",
- pb->args[0], pb->args[1], pb->args[2]);
- } else if (strcmp(service, "package-to-path") == 0) {
- printk("package-to-path(0x" FMT_prom_uargx ", 0x" FMT_prom_uargx ", " FMT_prom_arg ") = ",
- pb->args[0], pb->args[1], pb->args[2]);
- } else if (strcmp(service, "open") == 0) {
- printk("open(\"%s\") = ", arg2pointer(pb->args[0]));
- } else if (strcmp(service, "close") == 0) {
- printk("close(0x" FMT_prom_uargx ")\n", pb->args[0]);
- } else if (strcmp(service, "read") == 0) {
-#ifdef DUMP_IO
- printk("read(0x" FMT_prom_uargx ", 0x" FMT_prom_uargx ", " FMT_prom_arg ") = ",
- pb->args[0], pb->args[1], pb->args[2]);
-#endif
- } else if (strcmp(service, "write") == 0) {
-#ifdef DUMP_IO
- printk("write(0x" FMT_prom_uargx ", 0x" FMT_prom_uargx ", " FMT_prom_arg ")\n",
- pb->args[0], pb->args[1], pb->args[2]);
- memdump(arg2pointer(pb->args[1]), pb->args[2]);
- printk(" = ");
-#endif
- } else if (strcmp(service, "seek") == 0) {
-#ifdef DUMP_IO
- printk("seek(0x" FMT_prom_uargx ", 0x" FMT_prom_uargx ", 0x" FMT_prom_uargx ") = ",
- pb->args[0], pb->args[1], pb->args[2]);
-#endif
- } else if (strcmp(service, "claim") == 0) {
- printk("claim(0x" FMT_prom_uargx ", " FMT_prom_arg ", " FMT_prom_arg ") = ",
- pb->args[0], pb->args[1], pb->args[2]);
- } else if (strcmp(service, "release") == 0) {
- printk("release(0x" FMT_prom_uargx ", " FMT_prom_arg ")\n",
- pb->args[0], pb->args[1]);
- } else if (strcmp(service, "boot") == 0) {
- printk("boot \"%s\"\n", arg2pointer(pb->args[0]));
- } else if (strcmp(service, "enter") == 0) {
- printk("enter()\n");
- } else if (strcmp(service, "exit") == 0) {
- printk("exit()\n");
- } else if (strcmp(service, "test-method") == 0) {
- printk("test-method(0x" FMT_prom_uargx ", \"%s\") = ",
- pb->args[0], arg2pointer(pb->args[1]));
- } else {
- printk("of_client_interface: %s", service);
- for( i = 0; i < pb->nargs; i++ )
- printk(" " FMT_prom_uargx, pb->args[i]);
- printk("\n");
- }
-}
-
-static void dump_return(prom_args_t *pb)
-{
- int i;
- const char *service = get_service(pb);
- if (strcmp(service, "test") == 0) {
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "peer") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "child") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "parent") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "instance-to-package") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "getproplen") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "getprop") == 0) {
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- if ((prom_arg_t)pb->args[pb->nargs] != -1)
- memdump(arg2pointer(pb->args[2]), MIN(pb->args[3], pb->args[pb->nargs]));
- } else if (strcmp(service, "nextprop") == 0) {
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- memdump(arg2pointer(pb->args[2]), 32);
- } else if (strcmp(service, "setprop") == 0) {
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "canon") == 0) {
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- memdump(arg2pointer(pb->args[1]), pb->args[pb->nargs]);
- } else if (strcmp(service, "finddevice") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "instance-to-path") == 0) {
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- memdump(arg2pointer(pb->args[1]), pb->args[pb->nargs]);
- } else if (strcmp(service, "package-to-path") == 0) {
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- memdump(arg2pointer(pb->args[1]), pb->args[pb->nargs]);
- } else if (strcmp(service, "open") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "close") == 0) {
- /* do nothing */
- } else if (strcmp(service, "read") == 0) {
-#ifdef DUMP_IO
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
- memdump(arg2pointer(pb->args[1]), pb->args[pb->nargs]);
-#endif
- } else if (strcmp(service, "write") == 0) {
-#ifdef DUMP_IO
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
-#endif
- } else if (strcmp(service, "seek") == 0) {
-#ifdef DUMP_IO
- printk(FMT_prom_arg "\n", pb->args[pb->nargs]);
-#endif
- } else if (strcmp(service, "claim") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else if (strcmp(service, "release") == 0) {
- /* do nothing */
- } else if (strcmp(service, "boot") == 0) {
- /* do nothing */
- } else if (strcmp(service, "enter") == 0) {
- /* do nothing */
- } else if (strcmp(service, "exit") == 0) {
- /* do nothing */
- } else if (strcmp(service, "test-method") == 0) {
- printk("0x" FMT_prom_uargx "\n", pb->args[pb->nargs]);
- } else {
- printk("of_client_interface return:");
- for (i = 0; i < pb->nret; i++) {
- printk(" " FMT_prom_uargx, pb->args[pb->nargs + i]);
- }
- printk("\n");
- }
-}
-#endif
-
-/* call-method, interpret */
-static int
-handle_calls(prom_args_t *pb)
-{
- int i, j, dstacksave;
- ucell val;
-
-#ifdef DEBUG_CIF
- printk("%s %s ([" FMT_prom_arg "] -- [" FMT_prom_arg "])\n",
- get_service(pb), arg2pointer(pb->args[0]), pb->nargs, pb->nret);
-#endif
-
- dstacksave = dstackcnt;
- for (i = pb->nargs - 1; i >= 0; i--)
- PUSH(pb->args[i]);
-
- push_str(get_service(pb));
- fword("client-call-iface");
-
- /* Ignore client-call-iface return */
- POP();
-
- /* If the catch result is non-zero, restore stack and exit */
- val = POP();
- if (val) {
- printk("%s %s failed with error " FMT_ucellx "\n", get_service(pb), arg2pointer(pb->args[0]), val);
- dstackcnt = dstacksave;
- return 0;
- }
-
- /* Store catch result */
- pb->args[pb->nargs] = val;
-
- j = dstackcnt;
- for (i = 1; i < pb->nret; i++, j--) {
- if (dstackcnt > dstacksave) {
- pb->args[pb->nargs + i] = POP();
- }
- }
-
-#ifdef DEBUG_CIF
- /* useful for debug but not necessarily an error */
- if (j != dstacksave) {
- printk("%s '%s': possible argument error (" FMT_prom_arg "--" FMT_prom_arg ") got %d\n",
- get_service(pb), arg2pointer(pb->args[0]),
- pb->nargs - 2, pb->nret, j - dstacksave);
- }
-
- printk("handle_calls return:");
- for (i = 0; i < pb->nret; i++) {
- printk(" " FMT_prom_uargx, pb->args[pb->nargs + i]);
- }
- printk("\n");
-#endif
-
- dstackcnt = dstacksave;
- return 0;
-}
-
-int
-of_client_interface(int *params)
-{
- prom_args_t *pb = (prom_args_t*)params;
- ucell val;
- int i, j, dstacksave;
-
- if (pb->nargs < 0 || pb->nret < 0 ||
- pb->nargs + pb->nret > PROM_MAX_ARGS)
- return -1;
-
-#ifdef DEBUG_CIF
- dump_service(pb);
-#endif
-
- /* call-method exceptions are special */
- if (!strcmp("call-method", get_service(pb)) || !strcmp("interpret", get_service(pb)))
- return handle_calls(pb);
-
- dstacksave = dstackcnt;
- for (i = pb->nargs - 1; i >= 0; i--)
- PUSH(pb->args[i]);
-
- push_str(get_service(pb));
- fword("client-iface");
-
- val = POP();
- if (val) {
- if (val == -1) {
- printk("Unimplemented service %s ([" FMT_prom_arg "] -- [" FMT_prom_arg "])\n",
- get_service(pb), pb->nargs, pb->nret);
- } else {
-#ifdef DEBUG_CIF
- printk("Error calling client interface: " FMT_ucellx "\n", val);
-#endif
- }
-
- dstackcnt = dstacksave;
- return -1;
- }
-
- j = dstackcnt;
- for (i = 0; i < pb->nret; i++, j--) {
- if (dstackcnt > dstacksave) {
- pb->args[pb->nargs + i] = POP();
- }
- }
-
-#ifdef DEBUG_CIF
- if (j != dstacksave) {
- printk("service %s: possible argument error (%d %d)\n",
- get_service(pb), i, j - dstacksave);
-
- /* Some clients request less parameters than the CIF method
- returns, e.g. getprop with OpenSolaris. Hence we drop any
- stack parameters on exit after issuing a warning above */
- }
-
- dump_return(pb);
-#endif
-
- dstackcnt = dstacksave;
- return 0;
-}
diff --git a/qemu/roms/openbios/libopenbios/console.c b/qemu/roms/openbios/libopenbios/console.c
deleted file mode 100644
index 7f3aad8ef..000000000
--- a/qemu/roms/openbios/libopenbios/console.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * <console.c>
- *
- * Simple text console
- *
- * Copyright (C) 2005 Stefan Reinauer <stepan@openbios.org>
- * Copyright (C) 2013 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation
- *
- */
-
-#include "config.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/console.h"
-#include "drivers/drivers.h"
-
-/* ******************************************************************
- * common functions, implementing simple concurrent console
- * ****************************************************************** */
-
-/* Dummy routines for when console is unassigned */
-
-static int dummy_putchar(int c)
-{
- return c;
-}
-
-static int dummy_availchar(void)
-{
- return 0;
-}
-
-static int dummy_getchar(void)
-{
- return 0;
-}
-
-struct _console_ops console_ops = {
- .putchar = dummy_putchar,
- .availchar = dummy_availchar,
- .getchar = dummy_getchar
-};
-
-#ifdef CONFIG_DEBUG_CONSOLE
-
-void init_console(struct _console_ops ops)
-{
- console_ops = ops;
-}
-
-int putchar(int c)
-{
- return (*console_ops.putchar)(c);
-}
-
-int availchar(void)
-{
- return (*console_ops.availchar)();
-}
-
-int getchar(void)
-{
- return (*console_ops.getchar)();
-}
-#endif // CONFIG_DEBUG_CONSOLE
diff --git a/qemu/roms/openbios/libopenbios/elf_info.c b/qemu/roms/openbios/libopenbios/elf_info.c
deleted file mode 100644
index f7febef9d..000000000
--- a/qemu/roms/openbios/libopenbios/elf_info.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Support for ELF Boot Proposal as a boot image */
-#include "config.h"
-#include "arch/common/elf_boot.h"
-#include "libopenbios/sys_info.h"
-#include "asm/io.h"
-#include "libopenbios/ipchecksum.h"
-#include "openbios-version.h"
-#define printf printk
-#define debug printk
-
-/* ELF image notes provide information to the loader who boots us */
-
-/* This compiles and generates correct PT_NOTE segment for me.
- * If it doesn't, use assembly version below. */
-
-struct elf_image_note {
- Elf_Nhdr hdr0;
- char name0[sizeof(ELF_NOTE_BOOT)];
- char prog_name[sizeof(PROGRAM_NAME)];
-
- Elf_Nhdr hdr1;
- char name1[sizeof(ELF_NOTE_BOOT)];
- char version[sizeof(OPENBIOS_VERSION_STR)];
-
- Elf_Nhdr hdr2;
- char name2[sizeof(ELF_NOTE_BOOT)];
- unsigned short checksum;
-};
-
-const struct elf_image_note elf_image_notes
- __attribute__ ((section (".note.ELFBoot"))) =
-{
- .hdr0 = {
- .n_namesz = sizeof(ELF_NOTE_BOOT),
- .n_descsz = sizeof(PROGRAM_NAME),
- .n_type = EIN_PROGRAM_NAME,
- },
- .name0 = ELF_NOTE_BOOT,
- .prog_name = PROGRAM_NAME,
-
- .hdr1 = {
- .n_namesz = sizeof(ELF_NOTE_BOOT),
- .n_descsz = sizeof(OPENBIOS_VERSION_STR),
- .n_type = EIN_PROGRAM_VERSION,
- },
- .name1 = ELF_NOTE_BOOT,
- .version = OPENBIOS_VERSION_STR,
-
- .hdr2 = {
- .n_namesz = sizeof(ELF_NOTE_BOOT),
- .n_descsz = sizeof(unsigned short),
- .n_type = EIN_PROGRAM_CHECKSUM,
- },
- .name2 = ELF_NOTE_BOOT,
- .checksum = 0, /* to be computed by external tool */
-};
-
-/* This is refered by other files */
-const char *program_name = elf_image_notes.prog_name;
-const char *program_version = elf_image_notes.version;
-
-#if 0
-
- /* This tells the linker to make a PT_NOTE segment.
- * If the section is named just ".note", it will be
- * mixed up with useless .version notes generated by GCC.
- */
- .section ".note.ELFBoot", "a"
-
- .align 4
- .int 2f - 1f
- .int 4f - 3f
- .int EIN_PROGRAM_NAME
-1: .asciz "ELFBoot"
-2: .align 4
-3: .asciz PROGRAM_NAME
-4:
-
- .align 4
- .int 2f - 1f
- .int 4f - 3f
- .int EIN_PROGRAM_VERSION
-1: .asciz "ELFBoot"
-2: .align 4
-3: .asciz OPENBIOS_VERSION_STR
-4:
-
- .align 4
- .int 2f - 1f
- .int 4f - 3f
- .int EIN_PROGRAM_CHECKSUM
-1: .asciz "ELFBoot"
-2: .align 4
-3: .short 0
-4:
-#endif
-
-/* Collect information from the ELF bootloader
- * Note that we have to copy them to our own memory,
- * otherwise they might be overwritten afterward. */
-void collect_elfboot_info(struct sys_info *info)
-{
- Elf_Bhdr *hdr = NULL;
- char *addr, *end;
- Elf_Nhdr *nhdr;
- char *desc;
-
- if (info->boot_type == ELF_BHDR_MAGIC)
- hdr = phys_to_virt(info->boot_data);
- else
- hdr = phys_to_virt(info->boot_arg);
-
- if (hdr->b_signature != ELF_BHDR_MAGIC)
- return;
-
- if (ipchksum(hdr, hdr->b_size) != 0) {
- printf("Broken ELF boot notes\n");
- return;
- }
-
- addr = (char *) (hdr + 1);
- end = addr + hdr->b_size;
- while (addr < end) {
- nhdr = (Elf_Nhdr *) addr;
- addr += sizeof(Elf_Nhdr);
- addr += (nhdr->n_namesz + 3) & ~3;
- desc = addr;
- addr += (nhdr->n_descsz + 3) & ~3;
-
- if (nhdr->n_namesz == 0) {
- /* Standard notes */
- switch (nhdr->n_type) {
- case EBN_FIRMWARE_TYPE:
- info->firmware = strdup(desc);
- break;
- case EBN_BOOTLOADER_NAME:
- debug("Bootloader: %s\n", desc);
- break;
- case EBN_BOOTLOADER_VERSION:
- debug("Version: %s\n", desc);
- break;
- case EBN_COMMAND_LINE:
- info->command_line = strdup(desc);
- break;
- case EBN_LOADED_IMAGE:
- debug("Image name: %s\n", desc);
- break;
- }
- }
- }
-}
diff --git a/qemu/roms/openbios/libopenbios/elf_load.c b/qemu/roms/openbios/libopenbios/elf_load.c
deleted file mode 100644
index 9c7850e11..000000000
--- a/qemu/roms/openbios/libopenbios/elf_load.c
+++ /dev/null
@@ -1,537 +0,0 @@
-/* ELF Boot loader
- * As we have seek, this implementation can be straightforward.
- * 2003-07 by SONE Takeshi
- */
-
-#include "config.h"
-#include "kernel/kernel.h"
-#include "libc/diskio.h"
-#include "arch/common/elf_boot.h"
-#include "libopenbios/elf_load.h"
-#include "libopenbios/sys_info.h"
-#include "libopenbios/ipchecksum.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/ofmem.h"
-#define printf printk
-#define debug printk
-
-#define DEBUG 0
-
-#define MAX_HEADERS 0x20
-#define BS 0x100 /* smallest step used when looking for the ELF header */
-
-#ifdef CONFIG_PPC
-extern void flush_icache_range( char *start, char *stop );
-#endif
-
-/* FreeBSD and possibly others mask the high 8 bits */
-#define addr_fixup(addr) ((addr) & 0x00ffffff)
-
-static char *image_name, *image_version;
-static int fd;
-
-/* Note: avoid name collision with platforms which have their own version of calloc() */
-static void *ob_calloc(size_t nmemb, size_t size)
-{
- size_t alloc_size = nmemb * size;
- void *mem;
-
- if (alloc_size < nmemb || alloc_size < size) {
- printf("calloc overflow: %u, %u\n", nmemb, size);
- return NULL;
- }
-
- mem = malloc(alloc_size);
- memset(mem, 0, alloc_size);
-
- return mem;
-}
-
-static int check_mem_ranges(struct sys_info *info,
- Elf_phdr *phdr, int phnum)
-{
- int i, j;
- unsigned long start, end;
- unsigned long prog_start, prog_end;
- struct memrange *mem;
-
- prog_start = virt_to_phys(&_start);
- prog_end = virt_to_phys(&_end);
-
- for (i = 0; i < phnum; i++) {
- if (phdr[i].p_type != PT_LOAD)
- continue;
- start = addr_fixup(phdr[i].p_paddr);
- end = start + phdr[i].p_memsz;
- if (start < prog_start && end > prog_start)
- goto conflict;
- if (start < prog_end && end > prog_end)
- goto conflict;
- mem=info->memrange;
- for (j = 0; j < info->n_memranges; j++) {
- if (mem[j].base <= start && mem[j].base + mem[j].size >= end)
- break;
- }
- if (j >= info->n_memranges)
- goto badseg;
- }
- return 1;
-
-conflict:
- printf("%s occupies [%#lx-%#lx]\n", program_name, prog_start, prog_end);
-
-badseg:
- printf("Segment %d [%#lx-%#lx] doesn't fit into memory\n", i, start, end-1);
- return 0;
-}
-
-static unsigned long process_image_notes(Elf_phdr *phdr, int phnum,
- unsigned short *sum_ptr,
- unsigned int offset)
-{
- int i;
- char *buf = NULL;
- int retval = 0;
- unsigned long addr, end;
- Elf_Nhdr *nhdr;
- const char *name;
- void *desc;
-
- for (i = 0; i < phnum; i++) {
- if (phdr[i].p_type != PT_NOTE)
- continue;
- buf = malloc(phdr[i].p_filesz);
- seek_io(fd, offset + phdr[i].p_offset);
- if ((size_t)read_io(fd, buf, phdr[i].p_filesz) != phdr[i].p_filesz) {
- printf("Can't read note segment\n");
- goto out;
- }
- addr = (unsigned long) buf;
- end = addr + phdr[i].p_filesz;
- while (addr < end) {
- nhdr = (Elf_Nhdr *) addr;
- addr += sizeof(Elf_Nhdr);
- name = (const char *) addr;
- addr += (nhdr->n_namesz+3) & ~3;
- desc = (void *) addr;
- addr += (nhdr->n_descsz+3) & ~3;
-
- if (nhdr->n_namesz==sizeof(ELF_NOTE_BOOT)
- && memcmp(name, ELF_NOTE_BOOT, sizeof(ELF_NOTE_BOOT))==0) {
- if (nhdr->n_type == EIN_PROGRAM_NAME) {
- image_name = ob_calloc(1, nhdr->n_descsz + 1);
- memcpy(image_name, desc, nhdr->n_descsz);
- }
- if (nhdr->n_type == EIN_PROGRAM_VERSION) {
- image_version = ob_calloc(1, nhdr->n_descsz + 1);
- memcpy(image_version, desc, nhdr->n_descsz);
- }
- if (nhdr->n_type == EIN_PROGRAM_CHECKSUM) {
- *sum_ptr = *(unsigned short *) desc;
- debug("Image checksum: %#04x\n", *sum_ptr);
- /* Where in the file */
- retval = phdr[i].p_offset
- + (unsigned long) desc - (unsigned long) buf;
- }
- }
- }
- }
-out:
- close_io(fd);
- if (buf)
- free(buf);
- return retval;
-}
-
-static int load_segments(Elf_phdr *phdr, int phnum,
- unsigned long checksum_offset,
- unsigned int offset, unsigned long *bytes)
-{
- //unsigned int start_time, time;
- int i;
-
- *bytes = 0;
- // start_time = currticks();
- for (i = 0; i < phnum; i++) {
- if (phdr[i].p_type != PT_LOAD)
- continue;
- debug("segment %d addr:" FMT_elf " file:" FMT_elf " mem:" FMT_elf " ",
- i, addr_fixup(phdr[i].p_paddr), phdr[i].p_filesz, phdr[i].p_memsz);
- seek_io(fd, offset + phdr[i].p_offset);
- debug("loading... ");
- if ((size_t)read_io(fd, phys_to_virt(addr_fixup(phdr[i].p_paddr)), phdr[i].p_filesz)
- != phdr[i].p_filesz) {
- printf("Can't read program segment %d\n", i);
- return 0;
- }
- bytes += phdr[i].p_filesz;
- debug("clearing... ");
- memset(phys_to_virt(addr_fixup(phdr[i].p_paddr) + phdr[i].p_filesz), 0,
- phdr[i].p_memsz - phdr[i].p_filesz);
- if (phdr[i].p_offset <= checksum_offset
- && phdr[i].p_offset + phdr[i].p_filesz >= checksum_offset+2) {
- debug("clearing checksum... ");
- memset(phys_to_virt(addr_fixup(phdr[i].p_paddr) + checksum_offset
- - phdr[i].p_offset), 0, 2);
- }
- debug("ok\n");
-
- }
- // time = currticks() - start_time;
- //debug("Loaded %lu bytes in %ums (%luKB/s)\n", bytes, time,
- // time? bytes/time : 0);
- debug("Loaded %lu bytes \n", *bytes);
-
- return 1;
-}
-
-static int verify_image(Elf_ehdr *ehdr, Elf_phdr *phdr, int phnum,
- unsigned short image_sum)
-{
- unsigned short sum, part_sum;
- unsigned long offset;
- int i;
-
- sum = 0;
- offset = 0;
-
- part_sum = ipchksum(ehdr, sizeof *ehdr);
- sum = add_ipchksums(offset, sum, part_sum);
- offset += sizeof *ehdr;
-
- part_sum = ipchksum(phdr, phnum * sizeof(*phdr));
- sum = add_ipchksums(offset, sum, part_sum);
- offset += phnum * sizeof(*phdr);
-
- for (i = 0; i < phnum; i++) {
- if (phdr[i].p_type != PT_LOAD)
- continue;
- part_sum = ipchksum(phys_to_virt(addr_fixup(phdr[i].p_paddr)), phdr[i].p_memsz);
- sum = add_ipchksums(offset, sum, part_sum);
- offset += phdr[i].p_memsz;
- }
-
- if (sum != image_sum) {
- printf("Verify FAILED (image:%#04x vs computed:%#04x)\n",
- image_sum, sum);
- return 0;
- }
- return 1;
-}
-
-static inline unsigned padded(unsigned s)
-{
- return (s + 3) & ~3;
-}
-
-static Elf_Bhdr *add_boot_note(Elf_Bhdr *bhdr, const char *name,
- unsigned type, const char *desc, unsigned descsz)
-{
- Elf_Nhdr nhdr;
- unsigned ent_size, new_size, pad;
- char *addr;
-
- if (!bhdr)
- return NULL;
-
- nhdr.n_namesz = name? strlen(name)+1 : 0;
- nhdr.n_descsz = descsz;
- nhdr.n_type = type;
- ent_size = sizeof(nhdr) + padded(nhdr.n_namesz) + padded(nhdr.n_descsz);
- if (bhdr->b_size + ent_size > 0xffff) {
- printf("Boot notes too big\n");
- free(bhdr);
- return NULL;
- }
- if (bhdr->b_size + ent_size > bhdr->b_checksum) {
- do {
- new_size = bhdr->b_checksum * 2;
- } while (new_size < bhdr->b_size + ent_size);
- if (new_size > 0xffff)
- new_size = 0xffff;
- debug("expanding boot note size to %u\n", new_size);
-#ifdef HAVE_REALLOC
- bhdr = realloc(bhdr, new_size);
- bhdr->b_checksum = new_size;
-#else
- printf("Boot notes too big\n");
- free(bhdr);
- return NULL;
-#endif
- }
-
- addr = (char *) bhdr;
- addr += bhdr->b_size;
- memcpy(addr, &nhdr, sizeof(nhdr));
- addr += sizeof(nhdr);
-
- if (name && nhdr.n_namesz) {
- memcpy(addr, name, nhdr.n_namesz);
- addr += nhdr.n_namesz;
- pad = padded(nhdr.n_namesz) - nhdr.n_namesz;
- memset(addr, 0, pad);
- addr += pad;
- }
-
- memcpy(addr, desc, nhdr.n_descsz);
- addr += nhdr.n_descsz;
- pad = padded(nhdr.n_descsz) - nhdr.n_descsz;
- memset(addr, 0, pad);
-
- bhdr->b_size += ent_size;
- bhdr->b_records++;
- return bhdr;
-}
-
-static inline Elf_Bhdr *add_note_string(Elf_Bhdr *bhdr, const char *name,
- unsigned type, const char *desc)
-{
- return add_boot_note(bhdr, name, type, desc, strlen(desc) + 1);
-}
-
-static Elf_Bhdr *build_boot_notes(struct sys_info *info, const char *cmdline)
-{
- Elf_Bhdr *bhdr;
-
- bhdr = malloc(256);
- bhdr->b_signature = ELF_BHDR_MAGIC;
- bhdr->b_size = sizeof *bhdr;
- bhdr->b_checksum = 256; /* XXX cache the current buffer size here */
- bhdr->b_records = 0;
-
- if (info->firmware)
- bhdr = add_note_string(bhdr, NULL, EBN_FIRMWARE_TYPE, info->firmware);
- bhdr = add_note_string(bhdr, NULL, EBN_BOOTLOADER_NAME, program_name);
- bhdr = add_note_string(bhdr, NULL, EBN_BOOTLOADER_VERSION, program_version);
- if (cmdline)
- bhdr = add_note_string(bhdr, NULL, EBN_COMMAND_LINE, cmdline);
- if (!bhdr)
- return bhdr;
- bhdr->b_checksum = 0;
- bhdr->b_checksum = ipchksum(bhdr, bhdr->b_size);
- return bhdr;
-}
-
-int
-is_elf(Elf_ehdr *ehdr)
-{
- return (ehdr->e_ident[EI_MAG0] == ELFMAG0
- && ehdr->e_ident[EI_MAG1] == ELFMAG1
- && ehdr->e_ident[EI_MAG2] == ELFMAG2
- && ehdr->e_ident[EI_MAG3] == ELFMAG3
- && ehdr->e_ident[EI_CLASS] == ARCH_ELF_CLASS
- && ehdr->e_ident[EI_DATA] == ARCH_ELF_DATA
- && ehdr->e_ident[EI_VERSION] == EV_CURRENT
- && ehdr->e_type == ET_EXEC
- && ARCH_ELF_MACHINE_OK(ehdr->e_machine)
- && ehdr->e_version == EV_CURRENT
- && ehdr->e_phentsize == sizeof(Elf_phdr));
-}
-
-int
-find_elf(Elf_ehdr *ehdr)
-{
- int offset;
-
- for (offset = 0; offset < MAX_HEADERS * BS; offset += BS) {
- if ((size_t)read_io(fd, ehdr, sizeof ehdr) != sizeof ehdr) {
- debug("Can't read ELF header\n");
- return 0;
- }
-
- if (is_elf(ehdr)) {
- debug("Found ELF header at offset %d\n", offset);
- return offset;
- }
-
- seek_io(fd, offset);
- }
-
- debug("Not a bootable ELF image\n");
- return 0;
-}
-
-Elf_phdr *
-elf_readhdrs(int offset, Elf_ehdr *ehdr)
-{
- unsigned long phdr_size;
- Elf_phdr *phdr;
-
- phdr_size = ehdr->e_phnum * sizeof(Elf_phdr);
- phdr = malloc(phdr_size);
- seek_io(fd, offset + ehdr->e_phoff);
- if ((size_t)read_io(fd, phdr, phdr_size) != phdr_size) {
- printf("Can't read program header\n");
- return NULL;
- }
-
- return phdr;
-}
-
-int
-elf_load(struct sys_info *info, ihandle_t dev, const char *cmdline, void **boot_notes)
-{
- Elf_ehdr ehdr;
- Elf_phdr *phdr = NULL;
- unsigned long checksum_offset, file_size;
- unsigned short checksum = 0;
- int retval = -1;
- unsigned int offset;
-
- image_name = image_version = NULL;
-
- /* Mark the saved-program-state as invalid */
- feval("0 state-valid !");
-
- fd = open_ih(dev);
- if (fd == -1) {
- goto out;
- }
-
- offset = find_elf(&ehdr);
- if (!offset) {
- retval = LOADER_NOT_SUPPORT;
- goto out;
- }
-
-#if DEBUG
- printk("ELF header:\n");
- printk(" ehdr.e_type = %d\n", (int)ehdr.e_type);
- printk(" ehdr.e_machine = %d\n", (int)ehdr.e_machine);
- printk(" ehdr.e_version = %d\n", (int)ehdr.e_version);
- printk(" ehdr.e_entry = 0x%08x\n", (int)ehdr.e_entry);
- printk(" ehdr.e_phoff = 0x%08x\n", (int)ehdr.e_phoff);
- printk(" ehdr.e_shoff = 0x%08x\n", (int)ehdr.e_shoff);
- printk(" ehdr.e_flags = %d\n", (int)ehdr.e_flags);
- printk(" ehdr.e_ehsize = 0x%08x\n", (int)ehdr.e_ehsize);
- printk(" ehdr.e_phentsize = 0x%08x\n", (int)ehdr.e_phentsize);
- printk(" ehdr.e_phnum = %d\n", (int)ehdr.e_phnum);
-#endif
-
- if (ehdr.e_phnum > MAX_HEADERS) {
- printk ("elfload: too many program headers (MAX_HEADERS)\n");
- retval = 0;
- goto out;
- }
-
- phdr = elf_readhdrs(offset, &ehdr);
- if (!phdr)
- goto out;
-
- if (!check_mem_ranges(info, phdr, ehdr.e_phnum))
- goto out;
-
- checksum_offset = process_image_notes(phdr, ehdr.e_phnum, &checksum, offset);
-
- printf("Loading %s", image_name ? image_name : "image");
- if (image_version)
- printf(" version %s", image_version);
- printf("...\n");
-
- if (!load_segments(phdr, ehdr.e_phnum, checksum_offset, offset, &file_size))
- goto out;
-
- if (checksum_offset) {
- if (!verify_image(&ehdr, phdr, ehdr.e_phnum, checksum))
- goto out;
- }
-
- /* If we are attempting an ELF boot image, we pass a non-NULL pointer
- into boot_notes and mark the image as elf-boot rather than standard
- ELF */
- if (boot_notes) {
- *boot_notes = (void *)virt_to_phys(build_boot_notes(info, cmdline));
- feval("elf-boot saved-program-state >sps.file-type !");
- } else {
- feval("elf saved-program-state >sps.file-type !");
- }
-
- //debug("current time: %lu\n", currticks());
-
- debug("entry point is " FMT_elf "\n", addr_fixup(ehdr.e_entry));
-
- // Initialise saved-program-state
- PUSH(addr_fixup(ehdr.e_entry));
- feval("saved-program-state >sps.entry !");
- PUSH(file_size);
- feval("saved-program-state >sps.file-size !");
-
- feval("-1 state-valid !");
-
-out:
- close_io(fd);
- if (phdr)
- free(phdr);
- if (image_name)
- free(image_name);
- if (image_version)
- free(image_version);
- return retval;
-}
-
-void
-elf_init_program(void)
-{
- char *base;
- int i;
- Elf_ehdr *ehdr;
- Elf_phdr *phdr;
- size_t size, total_size = 0;
- char *addr;
- uintptr_t tmp;
-
- /* TODO: manage ELF notes section */
- feval("0 state-valid !");
- feval("load-base");
- base = (char*)cell2pointer(POP());
-
- ehdr = (Elf_ehdr *)base;
-
- if (!is_elf(ehdr)) {
- debug("Not a valid ELF memory image\n");
- return;
- }
-
- phdr = (Elf_phdr *)(base + ehdr->e_phoff);
-
- for (i = 0; i < ehdr->e_phnum; i++) {
-
-#if DEBUG
- debug("filesz: %08lX memsz: %08lX p_offset: %08lX "
- "p_vaddr %08lX\n",
- (unsigned long)phdr[i].p_filesz, (unsigned long)phdr[i].p_memsz,
- (unsigned long)phdr[i].p_offset, (unsigned long)phdr[i].p_vaddr );
-#endif
-
- size = MIN(phdr[i].p_filesz, phdr[i].p_memsz);
- if (!size)
- continue;
-#if !defined(CONFIG_SPARC32) && !defined(CONFIG_X86)
- if( ofmem_claim( phdr[i].p_vaddr, phdr[i].p_memsz, 0 ) == -1 ) {
- printk("Ignoring failed claim for va %lx memsz %lx!\n",
- (unsigned long)phdr[i].p_vaddr,
- (unsigned long)phdr[i].p_memsz);
- }
-#endif
- /* Workaround for archs where sizeof(int) != pointer size */
- tmp = phdr[i].p_vaddr;
- addr = (char *)tmp;
-
- memcpy(addr, base + phdr[i].p_offset, size);
-
- total_size += size;
-
-#ifdef CONFIG_PPC
- flush_icache_range( addr, addr + size );
-#endif
- }
-
- // Initialise saved-program-state
- PUSH(ehdr->e_entry);
- feval("saved-program-state >sps.entry !");
- PUSH(total_size);
- feval("saved-program-state >sps.file-size !");
- feval("elf saved-program-state >sps.file-type !");
-
- feval("-1 state-valid !");
-}
diff --git a/qemu/roms/openbios/libopenbios/fcode_load.c b/qemu/roms/openbios/libopenbios/fcode_load.c
deleted file mode 100644
index f4eb7bf3f..000000000
--- a/qemu/roms/openbios/libopenbios/fcode_load.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * FCode boot loader
- */
-
-#include "config.h"
-#include "kernel/kernel.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/fcode_load.h"
-#include "libopenbios/sys_info.h"
-#include "libc/diskio.h"
-#define printf printk
-#define debug printk
-
-static int fd;
-
-int
-is_fcode(unsigned char *fcode)
-{
- return (fcode[0] == 0xf0 // start0
- || fcode[0] == 0xf1 // start1
- || fcode[0] == 0xf2 // start2
- || fcode[0] == 0xf3 // start4
- || fcode[0] == 0xfd); // version1
-}
-
-int
-fcode_load(ihandle_t dev)
-{
- int retval = -1;
- uint8_t fcode_header[8];
- unsigned long start, size;
- unsigned int offset;
-
- /* Mark the saved-program-state as invalid */
- feval("0 state-valid !");
-
- fd = open_ih(dev);
- if (fd == -1) {
- goto out;
- }
-
- for (offset = 0; offset < 16 * 512; offset += 512) {
- seek_io(fd, offset);
- if (read_io(fd, &fcode_header, sizeof(fcode_header))
- != sizeof(fcode_header)) {
- debug("Can't read FCode header from ihandle " FMT_ucellx "\n", dev);
- retval = LOADER_NOT_SUPPORT;
- goto out;
- }
-
- if (is_fcode(fcode_header))
- goto found;
- }
-
- debug("Not a bootable FCode image\n");
- retval = LOADER_NOT_SUPPORT;
- goto out;
-
- found:
- size = (fcode_header[4] << 24) | (fcode_header[5] << 16) |
- (fcode_header[6] << 8) | fcode_header[7];
-
- fword("load-base");
- start = POP();
-
- printf("\nLoading FCode image...\n");
-
- seek_io(fd, offset);
-
- if ((size_t)read_io(fd, (void *)start, size) != size) {
- printf("Can't read file (size 0x%lx)\n", size);
- goto out;
- }
-
- debug("Loaded %lu bytes\n", size);
- debug("entry point is %#lx\n", start);
-
- // Initialise saved-program-state
- PUSH(start);
- feval("saved-program-state >sps.entry !");
- PUSH(size);
- feval("saved-program-state >sps.file-size !");
- feval("fcode saved-program-state >sps.file-type !");
-
- feval("-1 state-valid !");
-
-out:
- close_io(fd);
- return retval;
-}
-
-void
-fcode_init_program(void)
-{
- /* If the payload is Fcode then we execute it immediately */
- ucell address;
-
- fword("load-base");
- address = POP();
-
- if (!is_fcode((unsigned char *)address)) {
- debug("Not a valid Fcode memory image\n");
- return;
- }
-
- PUSH(address);
- PUSH(1);
- fword("byte-load");
-}
diff --git a/qemu/roms/openbios/libopenbios/font_8x16.c b/qemu/roms/openbios/libopenbios/font_8x16.c
deleted file mode 100644
index 26c4e449c..000000000
--- a/qemu/roms/openbios/libopenbios/font_8x16.c
+++ /dev/null
@@ -1,4622 +0,0 @@
-/**********************************************/
-/* */
-/* Font file generated by cpi2fnt */
-/* *
- * *
- * originally from the Linux distribution *
- * *
- **********************************************/
-
-#include "libopenbios/fontdata.h"
-
-const unsigned char fontdata_8x16[FONTDATAMAX_8X16] = {
-
- /* 0 0x00 '^@' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 1 0x01 '^A' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x81, /* 10000001 */
- 0xa5, /* 10100101 */
- 0x81, /* 10000001 */
- 0x81, /* 10000001 */
- 0xbd, /* 10111101 */
- 0x99, /* 10011001 */
- 0x81, /* 10000001 */
- 0x81, /* 10000001 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 2 0x02 '^B' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0xff, /* 11111111 */
- 0xdb, /* 11011011 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xc3, /* 11000011 */
- 0xe7, /* 11100111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 3 0x03 '^C' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x6c, /* 01101100 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0x7c, /* 01111100 */
- 0x38, /* 00111000 */
- 0x10, /* 00010000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 4 0x04 '^D' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x7c, /* 01111100 */
- 0xfe, /* 11111110 */
- 0x7c, /* 01111100 */
- 0x38, /* 00111000 */
- 0x10, /* 00010000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 5 0x05 '^E' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0xe7, /* 11100111 */
- 0xe7, /* 11100111 */
- 0xe7, /* 11100111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 6 0x06 '^F' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 7 0x07 '^G' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 8 0x08 '^H' */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xe7, /* 11100111 */
- 0xc3, /* 11000011 */
- 0xc3, /* 11000011 */
- 0xe7, /* 11100111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
-
- /* 9 0x09 '^I' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x42, /* 01000010 */
- 0x42, /* 01000010 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 10 0x0a '^J' */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xc3, /* 11000011 */
- 0x99, /* 10011001 */
- 0xbd, /* 10111101 */
- 0xbd, /* 10111101 */
- 0x99, /* 10011001 */
- 0xc3, /* 11000011 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
-
- /* 11 0x0b '^K' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1e, /* 00011110 */
- 0x0e, /* 00001110 */
- 0x1a, /* 00011010 */
- 0x32, /* 00110010 */
- 0x78, /* 01111000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 12 0x0c '^L' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 13 0x0d '^M' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3f, /* 00111111 */
- 0x33, /* 00110011 */
- 0x3f, /* 00111111 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x70, /* 01110000 */
- 0xf0, /* 11110000 */
- 0xe0, /* 11100000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 14 0x0e '^N' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7f, /* 01111111 */
- 0x63, /* 01100011 */
- 0x7f, /* 01111111 */
- 0x63, /* 01100011 */
- 0x63, /* 01100011 */
- 0x63, /* 01100011 */
- 0x63, /* 01100011 */
- 0x67, /* 01100111 */
- 0xe7, /* 11100111 */
- 0xe6, /* 11100110 */
- 0xc0, /* 11000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 15 0x0f '^O' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xdb, /* 11011011 */
- 0x3c, /* 00111100 */
- 0xe7, /* 11100111 */
- 0x3c, /* 00111100 */
- 0xdb, /* 11011011 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 16 0x10 '^P' */
- 0x00, /* 00000000 */
- 0x80, /* 10000000 */
- 0xc0, /* 11000000 */
- 0xe0, /* 11100000 */
- 0xf0, /* 11110000 */
- 0xf8, /* 11111000 */
- 0xfe, /* 11111110 */
- 0xf8, /* 11111000 */
- 0xf0, /* 11110000 */
- 0xe0, /* 11100000 */
- 0xc0, /* 11000000 */
- 0x80, /* 10000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 17 0x11 '^Q' */
- 0x00, /* 00000000 */
- 0x02, /* 00000010 */
- 0x06, /* 00000110 */
- 0x0e, /* 00001110 */
- 0x1e, /* 00011110 */
- 0x3e, /* 00111110 */
- 0xfe, /* 11111110 */
- 0x3e, /* 00111110 */
- 0x1e, /* 00011110 */
- 0x0e, /* 00001110 */
- 0x06, /* 00000110 */
- 0x02, /* 00000010 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 18 0x12 '^R' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 19 0x13 '^S' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 20 0x14 '^T' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7f, /* 01111111 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0x7b, /* 01111011 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 21 0x15 '^U' */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0x60, /* 01100000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x0c, /* 00001100 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 22 0x16 '^V' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 23 0x17 '^W' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 24 0x18 '^X' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 25 0x19 '^Y' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 26 0x1a '^Z' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0xfe, /* 11111110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 27 0x1b '^[' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xfe, /* 11111110 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 28 0x1c '^\' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 29 0x1d '^]' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x28, /* 00101000 */
- 0x6c, /* 01101100 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x28, /* 00101000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 30 0x1e '^^' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x38, /* 00111000 */
- 0x7c, /* 01111100 */
- 0x7c, /* 01111100 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 31 0x1f '^_' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0x7c, /* 01111100 */
- 0x7c, /* 01111100 */
- 0x38, /* 00111000 */
- 0x38, /* 00111000 */
- 0x10, /* 00010000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 32 0x20 ' ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 33 0x21 '!' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 34 0x22 '"' */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x24, /* 00100100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 35 0x23 '#' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 36 0x24 '$' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc2, /* 11000010 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x86, /* 10000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 37 0x25 '%' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc2, /* 11000010 */
- 0xc6, /* 11000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc6, /* 11000110 */
- 0x86, /* 10000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 38 0x26 '&' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 39 0x27 ''' */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 40 0x28 '(' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 41 0x29 ')' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 42 0x2a '*' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0xff, /* 11111111 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 43 0x2b '+' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 44 0x2c ',' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 45 0x2d '-' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 46 0x2e '.' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 47 0x2f '/' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x02, /* 00000010 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0x80, /* 10000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 48 0x30 '0' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 49 0x31 '1' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x38, /* 00111000 */
- 0x78, /* 01111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 50 0x32 '2' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 51 0x33 '3' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x3c, /* 00111100 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 52 0x34 '4' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x0c, /* 00001100 */
- 0x1c, /* 00011100 */
- 0x3c, /* 00111100 */
- 0x6c, /* 01101100 */
- 0xcc, /* 11001100 */
- 0xfe, /* 11111110 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x1e, /* 00011110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 53 0x35 '5' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xfc, /* 11111100 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 54 0x36 '6' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xfc, /* 11111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 55 0x37 '7' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 56 0x38 '8' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 57 0x39 '9' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7e, /* 01111110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 58 0x3a ':' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 59 0x3b ';' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 60 0x3c '<' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x06, /* 00000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 61 0x3d '=' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 62 0x3e '>' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 63 0x3f '?' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 64 0x40 '@' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xde, /* 11011110 */
- 0xde, /* 11011110 */
- 0xde, /* 11011110 */
- 0xdc, /* 11011100 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 65 0x41 'A' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 66 0x42 'B' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfc, /* 11111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0xfc, /* 11111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 67 0x43 'C' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0xc2, /* 11000010 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc2, /* 11000010 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 68 0x44 'D' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xf8, /* 11111000 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0xf8, /* 11111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 69 0x45 'E' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x66, /* 01100110 */
- 0x62, /* 01100010 */
- 0x68, /* 01101000 */
- 0x78, /* 01111000 */
- 0x68, /* 01101000 */
- 0x60, /* 01100000 */
- 0x62, /* 01100010 */
- 0x66, /* 01100110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 70 0x46 'F' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x66, /* 01100110 */
- 0x62, /* 01100010 */
- 0x68, /* 01101000 */
- 0x78, /* 01111000 */
- 0x68, /* 01101000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 71 0x47 'G' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0xc2, /* 11000010 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xde, /* 11011110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x66, /* 01100110 */
- 0x3a, /* 00111010 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 72 0x48 'H' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 73 0x49 'I' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 74 0x4a 'J' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1e, /* 00011110 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 75 0x4b 'K' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xe6, /* 11100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0x78, /* 01111000 */
- 0x78, /* 01111000 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 76 0x4c 'L' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xf0, /* 11110000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x62, /* 01100010 */
- 0x66, /* 01100110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 77 0x4d 'M' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xee, /* 11101110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xd6, /* 11010110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 78 0x4e 'N' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xe6, /* 11100110 */
- 0xf6, /* 11110110 */
- 0xfe, /* 11111110 */
- 0xde, /* 11011110 */
- 0xce, /* 11001110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 79 0x4f 'O' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 80 0x50 'P' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfc, /* 11111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 81 0x51 'Q' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xd6, /* 11010110 */
- 0xde, /* 11011110 */
- 0x7c, /* 01111100 */
- 0x0c, /* 00001100 */
- 0x0e, /* 00001110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 82 0x52 'R' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfc, /* 11111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 83 0x53 'S' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x60, /* 01100000 */
- 0x38, /* 00111000 */
- 0x0c, /* 00001100 */
- 0x06, /* 00000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 84 0x54 'T' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x5a, /* 01011010 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 85 0x55 'U' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 86 0x56 'V' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x10, /* 00010000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 87 0x57 'W' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xfe, /* 11111110 */
- 0xee, /* 11101110 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 88 0x58 'X' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x7c, /* 01111100 */
- 0x38, /* 00111000 */
- 0x38, /* 00111000 */
- 0x7c, /* 01111100 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 89 0x59 'Y' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 90 0x5a 'Z' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0x86, /* 10000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc2, /* 11000010 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 91 0x5b '[' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 92 0x5c '\' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x80, /* 10000000 */
- 0xc0, /* 11000000 */
- 0xe0, /* 11100000 */
- 0x70, /* 01110000 */
- 0x38, /* 00111000 */
- 0x1c, /* 00011100 */
- 0x0e, /* 00001110 */
- 0x06, /* 00000110 */
- 0x02, /* 00000010 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 93 0x5d ']' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 94 0x5e '^' */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 95 0x5f '_' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 96 0x60 '`' */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 97 0x61 'a' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 98 0x62 'b' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xe0, /* 11100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x78, /* 01111000 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 99 0x63 'c' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 100 0x64 'd' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1c, /* 00011100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x3c, /* 00111100 */
- 0x6c, /* 01101100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 101 0x65 'e' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 102 0x66 'f' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1c, /* 00011100 */
- 0x36, /* 00110110 */
- 0x32, /* 00110010 */
- 0x30, /* 00110000 */
- 0x78, /* 01111000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 103 0x67 'g' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x7c, /* 01111100 */
- 0x0c, /* 00001100 */
- 0xcc, /* 11001100 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
-
- /* 104 0x68 'h' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xe0, /* 11100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x6c, /* 01101100 */
- 0x76, /* 01110110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 105 0x69 'i' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 106 0x6a 'j' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x00, /* 00000000 */
- 0x0e, /* 00001110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 107 0x6b 'k' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xe0, /* 11100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0x78, /* 01111000 */
- 0x78, /* 01111000 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 108 0x6c 'l' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 109 0x6d 'm' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xec, /* 11101100 */
- 0xfe, /* 11111110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 110 0x6e 'n' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 111 0x6f 'o' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 112 0x70 'p' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
-
- /* 113 0x71 'q' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x7c, /* 01111100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x1e, /* 00011110 */
- 0x00, /* 00000000 */
-
- /* 114 0x72 'r' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x76, /* 01110110 */
- 0x66, /* 01100110 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 115 0x73 's' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0x60, /* 01100000 */
- 0x38, /* 00111000 */
- 0x0c, /* 00001100 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 116 0x74 't' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0xfc, /* 11111100 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x36, /* 00110110 */
- 0x1c, /* 00011100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 117 0x75 'u' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 118 0x76 'v' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 119 0x77 'w' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 120 0x78 'x' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x38, /* 00111000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 121 0x79 'y' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7e, /* 01111110 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0xf8, /* 11111000 */
- 0x00, /* 00000000 */
-
- /* 122 0x7a 'z' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xcc, /* 11001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 123 0x7b '{' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x0e, /* 00001110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x70, /* 01110000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x0e, /* 00001110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 124 0x7c '|' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 125 0x7d '}' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x70, /* 01110000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x0e, /* 00001110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 126 0x7e '~' */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 127 0x7f '' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 128 0x80 '€' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0xc2, /* 11000010 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc2, /* 11000010 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 129 0x81 '' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 130 0x82 '‚' */
- 0x00, /* 00000000 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 131 0x83 'ƒ' */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 132 0x84 '„' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 133 0x85 '…' */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 134 0x86 '†' */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 135 0x87 '‡' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x18, /* 00011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 136 0x88 'ˆ' */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 137 0x89 '‰' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 138 0x8a 'Š' */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 139 0x8b '‹' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 140 0x8c 'Œ' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 141 0x8d '' */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 142 0x8e 'Ž' */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 143 0x8f '' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 144 0x90 '' */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x66, /* 01100110 */
- 0x62, /* 01100010 */
- 0x68, /* 01101000 */
- 0x78, /* 01111000 */
- 0x68, /* 01101000 */
- 0x62, /* 01100010 */
- 0x66, /* 01100110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 145 0x91 '‘' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xec, /* 11101100 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x7e, /* 01111110 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0x6e, /* 01101110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 146 0x92 '’' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3e, /* 00111110 */
- 0x6c, /* 01101100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xfe, /* 11111110 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xce, /* 11001110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 147 0x93 '“' */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 148 0x94 '”' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 149 0x95 '•' */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 150 0x96 '–' */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x78, /* 01111000 */
- 0xcc, /* 11001100 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 151 0x97 '—' */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 152 0x98 '˜' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7e, /* 01111110 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
-
- /* 153 0x99 '™' */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 154 0x9a 'š' */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 155 0x9b '›' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 156 0x9c 'œ' */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x64, /* 01100100 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xe6, /* 11100110 */
- 0xfc, /* 11111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 157 0x9d '' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 158 0x9e 'ž' */
- 0x00, /* 00000000 */
- 0xf8, /* 11111000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xf8, /* 11111000 */
- 0xc4, /* 11000100 */
- 0xcc, /* 11001100 */
- 0xde, /* 11011110 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 159 0x9f 'Ÿ' */
- 0x00, /* 00000000 */
- 0x0e, /* 00001110 */
- 0x1b, /* 00011011 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xd8, /* 11011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 160 0xa0 ' ' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 161 0xa1 '¡' */
- 0x00, /* 00000000 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 162 0xa2 '¢' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 163 0xa3 '£' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 164 0xa4 '¤' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 165 0xa5 '¥' */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xe6, /* 11100110 */
- 0xf6, /* 11110110 */
- 0xfe, /* 11111110 */
- 0xde, /* 11011110 */
- 0xce, /* 11001110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 166 0xa6 '¦' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x3e, /* 00111110 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 167 0xa7 '§' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 168 0xa8 '¨' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 169 0xa9 '©' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 170 0xaa 'ª' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 171 0xab '«' */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0xe0, /* 11100000 */
- 0x62, /* 01100010 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xdc, /* 11011100 */
- 0x86, /* 10000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x3e, /* 00111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 172 0xac '¬' */
- 0x00, /* 00000000 */
- 0x60, /* 01100000 */
- 0xe0, /* 11100000 */
- 0x62, /* 01100010 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x66, /* 01100110 */
- 0xce, /* 11001110 */
- 0x9a, /* 10011010 */
- 0x3f, /* 00111111 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 173 0xad '­' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 174 0xae '®' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x36, /* 00110110 */
- 0x6c, /* 01101100 */
- 0xd8, /* 11011000 */
- 0x6c, /* 01101100 */
- 0x36, /* 00110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 175 0xaf '¯' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xd8, /* 11011000 */
- 0x6c, /* 01101100 */
- 0x36, /* 00110110 */
- 0x6c, /* 01101100 */
- 0xd8, /* 11011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 176 0xb0 '°' */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
- 0x11, /* 00010001 */
- 0x44, /* 01000100 */
-
- /* 177 0xb1 '±' */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
-
- /* 178 0xb2 '²' */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
-
- /* 179 0xb3 '³' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 180 0xb4 '´' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 181 0xb5 'µ' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 182 0xb6 '¶' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf6, /* 11110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 183 0xb7 '·' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 184 0xb8 '¸' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 185 0xb9 '¹' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf6, /* 11110110 */
- 0x06, /* 00000110 */
- 0xf6, /* 11110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 186 0xba 'º' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 187 0xbb '»' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x06, /* 00000110 */
- 0xf6, /* 11110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 188 0xbc '¼' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf6, /* 11110110 */
- 0x06, /* 00000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 189 0xbd '½' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 190 0xbe '¾' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 191 0xbf '¿' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 192 0xc0 'À' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 193 0xc1 'Á' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 194 0xc2 'Â' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 195 0xc3 'Ã' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 196 0xc4 'Ä' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 197 0xc5 'Å' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 198 0xc6 'Æ' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 199 0xc7 'Ç' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x37, /* 00110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 200 0xc8 'È' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x37, /* 00110111 */
- 0x30, /* 00110000 */
- 0x3f, /* 00111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 201 0xc9 'É' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3f, /* 00111111 */
- 0x30, /* 00110000 */
- 0x37, /* 00110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 202 0xca 'Ê' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf7, /* 11110111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 203 0xcb 'Ë' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xf7, /* 11110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 204 0xcc 'Ì' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x37, /* 00110111 */
- 0x30, /* 00110000 */
- 0x37, /* 00110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 205 0xcd 'Í' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 206 0xce 'Î' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf7, /* 11110111 */
- 0x00, /* 00000000 */
- 0xf7, /* 11110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 207 0xcf 'Ï' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 208 0xd0 'Ð' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 209 0xd1 'Ñ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 210 0xd2 'Ò' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 211 0xd3 'Ó' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x3f, /* 00111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 212 0xd4 'Ô' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 213 0xd5 'Õ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 214 0xd6 'Ö' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3f, /* 00111111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 215 0xd7 '×' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xff, /* 11111111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 216 0xd8 'Ø' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 217 0xd9 'Ù' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 218 0xda 'Ú' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 219 0xdb 'Û' */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
-
- /* 220 0xdc 'Ü' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
-
- /* 221 0xdd 'Ý' */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
-
- /* 222 0xde 'Þ' */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
-
- /* 223 0xdf 'ß' */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 224 0xe0 'à' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0xdc, /* 11011100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 225 0xe1 'á' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xd8, /* 11011000 */
- 0xcc, /* 11001100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xcc, /* 11001100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 226 0xe2 'â' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 227 0xe3 'ã' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 228 0xe4 'ä' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 229 0xe5 'å' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 230 0xe6 'æ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0x00, /* 00000000 */
-
- /* 231 0xe7 'ç' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 232 0xe8 'è' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 233 0xe9 'é' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 234 0xea 'ê' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0xee, /* 11101110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 235 0xeb 'ë' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1e, /* 00011110 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x3e, /* 00111110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 236 0xec 'ì' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 237 0xed 'í' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x03, /* 00000011 */
- 0x06, /* 00000110 */
- 0x7e, /* 01111110 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0xf3, /* 11110011 */
- 0x7e, /* 01111110 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 238 0xee 'î' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1c, /* 00011100 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x7c, /* 01111100 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x1c, /* 00011100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 239 0xef 'ï' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 240 0xf0 'ð' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 241 0xf1 'ñ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 242 0xf2 'ò' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 243 0xf3 'ó' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 244 0xf4 'ô' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x0e, /* 00001110 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 245 0xf5 'õ' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 246 0xf6 'ö' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 247 0xf7 '÷' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 248 0xf8 'ø' */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 249 0xf9 'ù' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 250 0xfa 'ú' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 251 0xfb 'û' */
- 0x00, /* 00000000 */
- 0x0f, /* 00001111 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0xec, /* 11101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x3c, /* 00111100 */
- 0x1c, /* 00011100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 252 0xfc 'ü' */
- 0x00, /* 00000000 */
- 0x6c, /* 01101100 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 253 0xfd 'ý' */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x32, /* 00110010 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 254 0xfe 'þ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 255 0xff 'ÿ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
-};
diff --git a/qemu/roms/openbios/libopenbios/font_8x8.c b/qemu/roms/openbios/libopenbios/font_8x8.c
deleted file mode 100644
index 861929ea4..000000000
--- a/qemu/roms/openbios/libopenbios/font_8x8.c
+++ /dev/null
@@ -1,2571 +0,0 @@
-/**********************************************/
-/* */
-/* Font file generated by cpi2fnt */
-/* */
-/**********************************************/
-
-#include "libopenbios/fontdata.h"
-
-const unsigned char fontdata_8x8[FONTDATAMAX_8X8] = {
-
- /* 0 0x00 '^@' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 1 0x01 '^A' */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
-
- /* 2 0x02 '^B' */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 3 0x03 '^C' */
- 0x6c, /* 01101100 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0x7c, /* 01111100 */
- 0x38, /* 00111000 */
- 0x10, /* 00010000 */
- 0x00, /* 00000000 */
-
- /* 4 0x04 '^D' */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x7c, /* 01111100 */
- 0xfe, /* 11111110 */
- 0x7c, /* 01111100 */
- 0x38, /* 00111000 */
- 0x10, /* 00010000 */
- 0x00, /* 00000000 */
-
- /* 5 0x05 '^E' */
- 0x38, /* 00111000 */
- 0x7c, /* 01111100 */
- 0x38, /* 00111000 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xd6, /* 11010110 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
-
- /* 6 0x06 '^F' */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x7c, /* 01111100 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0x7c, /* 01111100 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
-
- /* 7 0x07 '^G' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 8 0x08 '^H' */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xe7, /* 11100111 */
- 0xc3, /* 11000011 */
- 0xc3, /* 11000011 */
- 0xe7, /* 11100111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
-
- /* 9 0x09 '^I' */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x42, /* 01000010 */
- 0x42, /* 01000010 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 10 0x0a '^J' */
- 0xff, /* 11111111 */
- 0xc3, /* 11000011 */
- 0x99, /* 10011001 */
- 0xbd, /* 10111101 */
- 0xbd, /* 10111101 */
- 0x99, /* 10011001 */
- 0xc3, /* 11000011 */
- 0xff, /* 11111111 */
-
- /* 11 0x0b '^K' */
- 0x0f, /* 00001111 */
- 0x07, /* 00000111 */
- 0x0f, /* 00001111 */
- 0x7d, /* 01111101 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x78, /* 01111000 */
-
- /* 12 0x0c '^L' */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
-
- /* 13 0x0d '^M' */
- 0x3f, /* 00111111 */
- 0x33, /* 00110011 */
- 0x3f, /* 00111111 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x70, /* 01110000 */
- 0xf0, /* 11110000 */
- 0xe0, /* 11100000 */
-
- /* 14 0x0e '^N' */
- 0x7f, /* 01111111 */
- 0x63, /* 01100011 */
- 0x7f, /* 01111111 */
- 0x63, /* 01100011 */
- 0x63, /* 01100011 */
- 0x67, /* 01100111 */
- 0xe6, /* 11100110 */
- 0xc0, /* 11000000 */
-
- /* 15 0x0f '^O' */
- 0x18, /* 00011000 */
- 0xdb, /* 11011011 */
- 0x3c, /* 00111100 */
- 0xe7, /* 11100111 */
- 0xe7, /* 11100111 */
- 0x3c, /* 00111100 */
- 0xdb, /* 11011011 */
- 0x18, /* 00011000 */
-
- /* 16 0x10 '^P' */
- 0x80, /* 10000000 */
- 0xe0, /* 11100000 */
- 0xf8, /* 11111000 */
- 0xfe, /* 11111110 */
- 0xf8, /* 11111000 */
- 0xe0, /* 11100000 */
- 0x80, /* 10000000 */
- 0x00, /* 00000000 */
-
- /* 17 0x11 '^Q' */
- 0x02, /* 00000010 */
- 0x0e, /* 00001110 */
- 0x3e, /* 00111110 */
- 0xfe, /* 11111110 */
- 0x3e, /* 00111110 */
- 0x0e, /* 00001110 */
- 0x02, /* 00000010 */
- 0x00, /* 00000000 */
-
- /* 18 0x12 '^R' */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
-
- /* 19 0x13 '^S' */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
-
- /* 20 0x14 '^T' */
- 0x7f, /* 01111111 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0x7b, /* 01111011 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x00, /* 00000000 */
-
- /* 21 0x15 '^U' */
- 0x3e, /* 00111110 */
- 0x61, /* 01100001 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x86, /* 10000110 */
- 0x7c, /* 01111100 */
-
- /* 22 0x16 '^V' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
-
- /* 23 0x17 '^W' */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
-
- /* 24 0x18 '^X' */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 25 0x19 '^Y' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 26 0x1a '^Z' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0xfe, /* 11111110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 27 0x1b '^[' */
- 0x00, /* 00000000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xfe, /* 11111110 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 28 0x1c '^\' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 29 0x1d '^]' */
- 0x00, /* 00000000 */
- 0x24, /* 00100100 */
- 0x66, /* 01100110 */
- 0xff, /* 11111111 */
- 0x66, /* 01100110 */
- 0x24, /* 00100100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 30 0x1e '^^' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 31 0x1f '^_' */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0x7e, /* 01111110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 32 0x20 ' ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 33 0x21 '!' */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 34 0x22 '"' */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x24, /* 00100100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 35 0x23 '#' */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
-
- /* 36 0x24 '$' */
- 0x18, /* 00011000 */
- 0x3e, /* 00111110 */
- 0x60, /* 01100000 */
- 0x3c, /* 00111100 */
- 0x06, /* 00000110 */
- 0x7c, /* 01111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 37 0x25 '%' */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xcc, /* 11001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x66, /* 01100110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 38 0x26 '&' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 39 0x27 ''' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 40 0x28 '(' */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x00, /* 00000000 */
-
- /* 41 0x29 ')' */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
-
- /* 42 0x2a '*' */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0xff, /* 11111111 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 43 0x2b '+' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 44 0x2c ',' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
-
- /* 45 0x2d '-' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 46 0x2e '.' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 47 0x2f '/' */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0x80, /* 10000000 */
- 0x00, /* 00000000 */
-
- /* 48 0x30 '0' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xd6, /* 11010110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
-
- /* 49 0x31 '1' */
- 0x18, /* 00011000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
-
- /* 50 0x32 '2' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0x06, /* 00000110 */
- 0x1c, /* 00011100 */
- 0x30, /* 00110000 */
- 0x66, /* 01100110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
-
- /* 51 0x33 '3' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0x06, /* 00000110 */
- 0x3c, /* 00111100 */
- 0x06, /* 00000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 52 0x34 '4' */
- 0x1c, /* 00011100 */
- 0x3c, /* 00111100 */
- 0x6c, /* 01101100 */
- 0xcc, /* 11001100 */
- 0xfe, /* 11111110 */
- 0x0c, /* 00001100 */
- 0x1e, /* 00011110 */
- 0x00, /* 00000000 */
-
- /* 53 0x35 '5' */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xfc, /* 11111100 */
- 0x06, /* 00000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 54 0x36 '6' */
- 0x38, /* 00111000 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
- 0xfc, /* 11111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 55 0x37 '7' */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
-
- /* 56 0x38 '8' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 57 0x39 '9' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7e, /* 01111110 */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
-
- /* 58 0x3a ':' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 59 0x3b ';' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
-
- /* 60 0x3c '<' */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x06, /* 00000110 */
- 0x00, /* 00000000 */
-
- /* 61 0x3d '=' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 62 0x3e '>' */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x00, /* 00000000 */
-
- /* 63 0x3f '?' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 64 0x40 '@' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xde, /* 11011110 */
- 0xde, /* 11011110 */
- 0xde, /* 11011110 */
- 0xc0, /* 11000000 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
-
- /* 65 0x41 'A' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 66 0x42 'B' */
- 0xfc, /* 11111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0xfc, /* 11111100 */
- 0x00, /* 00000000 */
-
- /* 67 0x43 'C' */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 68 0x44 'D' */
- 0xf8, /* 11111000 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0xf8, /* 11111000 */
- 0x00, /* 00000000 */
-
- /* 69 0x45 'E' */
- 0xfe, /* 11111110 */
- 0x62, /* 01100010 */
- 0x68, /* 01101000 */
- 0x78, /* 01111000 */
- 0x68, /* 01101000 */
- 0x62, /* 01100010 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
-
- /* 70 0x46 'F' */
- 0xfe, /* 11111110 */
- 0x62, /* 01100010 */
- 0x68, /* 01101000 */
- 0x78, /* 01111000 */
- 0x68, /* 01101000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
-
- /* 71 0x47 'G' */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xce, /* 11001110 */
- 0x66, /* 01100110 */
- 0x3a, /* 00111010 */
- 0x00, /* 00000000 */
-
- /* 72 0x48 'H' */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 73 0x49 'I' */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 74 0x4a 'J' */
- 0x1e, /* 00011110 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x78, /* 01111000 */
- 0x00, /* 00000000 */
-
- /* 75 0x4b 'K' */
- 0xe6, /* 11100110 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0x78, /* 01111000 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
-
- /* 76 0x4c 'L' */
- 0xf0, /* 11110000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0x62, /* 01100010 */
- 0x66, /* 01100110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
-
- /* 77 0x4d 'M' */
- 0xc6, /* 11000110 */
- 0xee, /* 11101110 */
- 0xfe, /* 11111110 */
- 0xfe, /* 11111110 */
- 0xd6, /* 11010110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 78 0x4e 'N' */
- 0xc6, /* 11000110 */
- 0xe6, /* 11100110 */
- 0xf6, /* 11110110 */
- 0xde, /* 11011110 */
- 0xce, /* 11001110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 79 0x4f 'O' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 80 0x50 'P' */
- 0xfc, /* 11111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
-
- /* 81 0x51 'Q' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xce, /* 11001110 */
- 0x7c, /* 01111100 */
- 0x0e, /* 00001110 */
-
- /* 82 0x52 'R' */
- 0xfc, /* 11111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x6c, /* 01101100 */
- 0x66, /* 01100110 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
-
- /* 83 0x53 'S' */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 84 0x54 'T' */
- 0x7e, /* 01111110 */
- 0x7e, /* 01111110 */
- 0x5a, /* 01011010 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 85 0x55 'U' */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 86 0x56 'V' */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
-
- /* 87 0x57 'W' */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
-
- /* 88 0x58 'X' */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 89 0x59 'Y' */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 90 0x5a 'Z' */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0x8c, /* 10001100 */
- 0x18, /* 00011000 */
- 0x32, /* 00110010 */
- 0x66, /* 01100110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
-
- /* 91 0x5b '[' */
- 0x3c, /* 00111100 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 92 0x5c '\' */
- 0xc0, /* 11000000 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x06, /* 00000110 */
- 0x02, /* 00000010 */
- 0x00, /* 00000000 */
-
- /* 93 0x5d ']' */
- 0x3c, /* 00111100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 94 0x5e '^' */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 95 0x5f '_' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
-
- /* 96 0x60 '`' */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 97 0x61 'a' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 98 0x62 'b' */
- 0xe0, /* 11100000 */
- 0x60, /* 01100000 */
- 0x7c, /* 01111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
-
- /* 99 0x63 'c' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 100 0x64 'd' */
- 0x1c, /* 00011100 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 101 0x65 'e' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 102 0x66 'f' */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x60, /* 01100000 */
- 0xf8, /* 11111000 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
-
- /* 103 0x67 'g' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x7c, /* 01111100 */
- 0x0c, /* 00001100 */
- 0xf8, /* 11111000 */
-
- /* 104 0x68 'h' */
- 0xe0, /* 11100000 */
- 0x60, /* 01100000 */
- 0x6c, /* 01101100 */
- 0x76, /* 01110110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
-
- /* 105 0x69 'i' */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 106 0x6a 'j' */
- 0x06, /* 00000110 */
- 0x00, /* 00000000 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
-
- /* 107 0x6b 'k' */
- 0xe0, /* 11100000 */
- 0x60, /* 01100000 */
- 0x66, /* 01100110 */
- 0x6c, /* 01101100 */
- 0x78, /* 01111000 */
- 0x6c, /* 01101100 */
- 0xe6, /* 11100110 */
- 0x00, /* 00000000 */
-
- /* 108 0x6c 'l' */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 109 0x6d 'm' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xec, /* 11101100 */
- 0xfe, /* 11111110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0x00, /* 00000000 */
-
- /* 110 0x6e 'n' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
-
- /* 111 0x6f 'o' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 112 0x70 'p' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
-
- /* 113 0x71 'q' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x7c, /* 01111100 */
- 0x0c, /* 00001100 */
- 0x1e, /* 00011110 */
-
- /* 114 0x72 'r' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x76, /* 01110110 */
- 0x60, /* 01100000 */
- 0x60, /* 01100000 */
- 0xf0, /* 11110000 */
- 0x00, /* 00000000 */
-
- /* 115 0x73 's' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x06, /* 00000110 */
- 0xfc, /* 11111100 */
- 0x00, /* 00000000 */
-
- /* 116 0x74 't' */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0xfc, /* 11111100 */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x36, /* 00110110 */
- 0x1c, /* 00011100 */
- 0x00, /* 00000000 */
-
- /* 117 0x75 'u' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 118 0x76 'v' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
-
- /* 119 0x77 'w' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xd6, /* 11010110 */
- 0xd6, /* 11010110 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
-
- /* 120 0x78 'x' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 121 0x79 'y' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7e, /* 01111110 */
- 0x06, /* 00000110 */
- 0xfc, /* 11111100 */
-
- /* 122 0x7a 'z' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x4c, /* 01001100 */
- 0x18, /* 00011000 */
- 0x32, /* 00110010 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
-
- /* 123 0x7b '{' */
- 0x0e, /* 00001110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x70, /* 01110000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x0e, /* 00001110 */
- 0x00, /* 00000000 */
-
- /* 124 0x7c '|' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 125 0x7d '}' */
- 0x70, /* 01110000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x0e, /* 00001110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
-
- /* 126 0x7e '~' */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 127 0x7f '' */
- 0x00, /* 00000000 */
- 0x10, /* 00010000 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
-
- /* 128 0x80 '€' */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x0c, /* 00001100 */
- 0x78, /* 01111000 */
-
- /* 129 0x81 '' */
- 0xcc, /* 11001100 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 130 0x82 '‚' */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 131 0x83 'ƒ' */
- 0x7c, /* 01111100 */
- 0x82, /* 10000010 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 132 0x84 '„' */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 133 0x85 '…' */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 134 0x86 '†' */
- 0x30, /* 00110000 */
- 0x30, /* 00110000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 135 0x87 '‡' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0x7e, /* 01111110 */
- 0x0c, /* 00001100 */
- 0x38, /* 00111000 */
-
- /* 136 0x88 'ˆ' */
- 0x7c, /* 01111100 */
- 0x82, /* 10000010 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 137 0x89 '‰' */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 138 0x8a 'Š' */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 139 0x8b '‹' */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 140 0x8c 'Œ' */
- 0x7c, /* 01111100 */
- 0x82, /* 10000010 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 141 0x8d '' */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 142 0x8e 'Ž' */
- 0xc6, /* 11000110 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 143 0x8f '' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 144 0x90 '' */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xf8, /* 11111000 */
- 0xc0, /* 11000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
-
- /* 145 0x91 '‘' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0xd8, /* 11011000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
-
- /* 146 0x92 '’' */
- 0x3e, /* 00111110 */
- 0x6c, /* 01101100 */
- 0xcc, /* 11001100 */
- 0xfe, /* 11111110 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xce, /* 11001110 */
- 0x00, /* 00000000 */
-
- /* 147 0x93 '“' */
- 0x7c, /* 01111100 */
- 0x82, /* 10000010 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 148 0x94 '”' */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 149 0x95 '•' */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 150 0x96 '–' */
- 0x78, /* 01111000 */
- 0x84, /* 10000100 */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 151 0x97 '—' */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 152 0x98 '˜' */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7e, /* 01111110 */
- 0x06, /* 00000110 */
- 0xfc, /* 11111100 */
-
- /* 153 0x99 '™' */
- 0xc6, /* 11000110 */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
-
- /* 154 0x9a 'š' */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 155 0x9b '›' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 156 0x9c 'œ' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x64, /* 01100100 */
- 0xf0, /* 11110000 */
- 0x60, /* 01100000 */
- 0x66, /* 01100110 */
- 0xfc, /* 11111100 */
- 0x00, /* 00000000 */
-
- /* 157 0x9d '' */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 158 0x9e 'ž' */
- 0xf8, /* 11111000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xfa, /* 11111010 */
- 0xc6, /* 11000110 */
- 0xcf, /* 11001111 */
- 0xc6, /* 11000110 */
- 0xc7, /* 11000111 */
-
- /* 159 0x9f 'Ÿ' */
- 0x0e, /* 00001110 */
- 0x1b, /* 00011011 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0xd8, /* 11011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
-
- /* 160 0xa0 ' ' */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x7c, /* 01111100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 161 0xa1 '¡' */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x38, /* 00111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 162 0xa2 '¢' */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
-
- /* 163 0xa3 '£' */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 164 0xa4 '¤' */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0xdc, /* 11011100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x00, /* 00000000 */
-
- /* 165 0xa5 '¥' */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0xe6, /* 11100110 */
- 0xf6, /* 11110110 */
- 0xde, /* 11011110 */
- 0xce, /* 11001110 */
- 0x00, /* 00000000 */
-
- /* 166 0xa6 '¦' */
- 0x3c, /* 00111100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x3e, /* 00111110 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 167 0xa7 '§' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 168 0xa8 '¨' */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x63, /* 01100011 */
- 0x3e, /* 00111110 */
- 0x00, /* 00000000 */
-
- /* 169 0xa9 '©' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 170 0xaa 'ª' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x06, /* 00000110 */
- 0x06, /* 00000110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 171 0xab '«' */
- 0x63, /* 01100011 */
- 0xe6, /* 11100110 */
- 0x6c, /* 01101100 */
- 0x7e, /* 01111110 */
- 0x33, /* 00110011 */
- 0x66, /* 01100110 */
- 0xcc, /* 11001100 */
- 0x0f, /* 00001111 */
-
- /* 172 0xac '¬' */
- 0x63, /* 01100011 */
- 0xe6, /* 11100110 */
- 0x6c, /* 01101100 */
- 0x7a, /* 01111010 */
- 0x36, /* 00110110 */
- 0x6a, /* 01101010 */
- 0xdf, /* 11011111 */
- 0x06, /* 00000110 */
-
- /* 173 0xad '­' */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 174 0xae '®' */
- 0x00, /* 00000000 */
- 0x33, /* 00110011 */
- 0x66, /* 01100110 */
- 0xcc, /* 11001100 */
- 0x66, /* 01100110 */
- 0x33, /* 00110011 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 175 0xaf '¯' */
- 0x00, /* 00000000 */
- 0xcc, /* 11001100 */
- 0x66, /* 01100110 */
- 0x33, /* 00110011 */
- 0x66, /* 01100110 */
- 0xcc, /* 11001100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 176 0xb0 '°' */
- 0x22, /* 00100010 */
- 0x88, /* 10001000 */
- 0x22, /* 00100010 */
- 0x88, /* 10001000 */
- 0x22, /* 00100010 */
- 0x88, /* 10001000 */
- 0x22, /* 00100010 */
- 0x88, /* 10001000 */
-
- /* 177 0xb1 '±' */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
- 0x55, /* 01010101 */
- 0xaa, /* 10101010 */
-
- /* 178 0xb2 '²' */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
- 0x77, /* 01110111 */
- 0xdd, /* 11011101 */
-
- /* 179 0xb3 '³' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 180 0xb4 '´' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 181 0xb5 'µ' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 182 0xb6 '¶' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf6, /* 11110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 183 0xb7 '·' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 184 0xb8 '¸' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 185 0xb9 '¹' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf6, /* 11110110 */
- 0x06, /* 00000110 */
- 0xf6, /* 11110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 186 0xba 'º' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 187 0xbb '»' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x06, /* 00000110 */
- 0xf6, /* 11110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 188 0xbc '¼' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf6, /* 11110110 */
- 0x06, /* 00000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 189 0xbd '½' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 190 0xbe '¾' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 191 0xbf '¿' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xf8, /* 11111000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 192 0xc0 'À' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 193 0xc1 'Á' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 194 0xc2 'Â' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 195 0xc3 'Ã' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 196 0xc4 'Ä' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 197 0xc5 'Å' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 198 0xc6 'Æ' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 199 0xc7 'Ç' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x37, /* 00110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 200 0xc8 'È' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x37, /* 00110111 */
- 0x30, /* 00110000 */
- 0x3f, /* 00111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 201 0xc9 'É' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3f, /* 00111111 */
- 0x30, /* 00110000 */
- 0x37, /* 00110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 202 0xca 'Ê' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf7, /* 11110111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 203 0xcb 'Ë' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xf7, /* 11110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 204 0xcc 'Ì' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x37, /* 00110111 */
- 0x30, /* 00110000 */
- 0x37, /* 00110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 205 0xcd 'Í' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 206 0xce 'Î' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xf7, /* 11110111 */
- 0x00, /* 00000000 */
- 0xf7, /* 11110111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 207 0xcf 'Ï' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 208 0xd0 'Ð' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 209 0xd1 'Ñ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 210 0xd2 'Ò' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 211 0xd3 'Ó' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x3f, /* 00111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 212 0xd4 'Ô' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 213 0xd5 'Õ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 214 0xd6 'Ö' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3f, /* 00111111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 215 0xd7 '×' */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0xff, /* 11111111 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
-
- /* 216 0xd8 'Ø' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0xff, /* 11111111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 217 0xd9 'Ù' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xf8, /* 11111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 218 0xda 'Ú' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x1f, /* 00011111 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 219 0xdb 'Û' */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
-
- /* 220 0xdc 'Ü' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
-
- /* 221 0xdd 'Ý' */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
- 0xf0, /* 11110000 */
-
- /* 222 0xde 'Þ' */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
- 0x0f, /* 00001111 */
-
- /* 223 0xdf 'ß' */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0xff, /* 11111111 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 224 0xe0 'à' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0xc8, /* 11001000 */
- 0xdc, /* 11011100 */
- 0x76, /* 01110110 */
- 0x00, /* 00000000 */
-
- /* 225 0xe1 'á' */
- 0x78, /* 01111000 */
- 0xcc, /* 11001100 */
- 0xcc, /* 11001100 */
- 0xd8, /* 11011000 */
- 0xcc, /* 11001100 */
- 0xc6, /* 11000110 */
- 0xcc, /* 11001100 */
- 0x00, /* 00000000 */
-
- /* 226 0xe2 'â' */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0xc0, /* 11000000 */
- 0x00, /* 00000000 */
-
- /* 227 0xe3 'ã' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x00, /* 00000000 */
-
- /* 228 0xe4 'ä' */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
-
- /* 229 0xe5 'å' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0x70, /* 01110000 */
- 0x00, /* 00000000 */
-
- /* 230 0xe6 'æ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x7c, /* 01111100 */
- 0xc0, /* 11000000 */
-
- /* 231 0xe7 'ç' */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
-
- /* 232 0xe8 'è' */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x3c, /* 00111100 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
-
- /* 233 0xe9 'é' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xfe, /* 11111110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
-
- /* 234 0xea 'ê' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0xee, /* 11101110 */
- 0x00, /* 00000000 */
-
- /* 235 0xeb 'ë' */
- 0x0e, /* 00001110 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x3e, /* 00111110 */
- 0x66, /* 01100110 */
- 0x66, /* 01100110 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
-
- /* 236 0xec 'ì' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 237 0xed 'í' */
- 0x06, /* 00000110 */
- 0x0c, /* 00001100 */
- 0x7e, /* 01111110 */
- 0xdb, /* 11011011 */
- 0xdb, /* 11011011 */
- 0x7e, /* 01111110 */
- 0x60, /* 01100000 */
- 0xc0, /* 11000000 */
-
- /* 238 0xee 'î' */
- 0x1e, /* 00011110 */
- 0x30, /* 00110000 */
- 0x60, /* 01100000 */
- 0x7e, /* 01111110 */
- 0x60, /* 01100000 */
- 0x30, /* 00110000 */
- 0x1e, /* 00011110 */
- 0x00, /* 00000000 */
-
- /* 239 0xef 'ï' */
- 0x00, /* 00000000 */
- 0x7c, /* 01111100 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0xc6, /* 11000110 */
- 0x00, /* 00000000 */
-
- /* 240 0xf0 'ð' */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0xfe, /* 11111110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 241 0xf1 'ñ' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x7e, /* 01111110 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
-
- /* 242 0xf2 'ò' */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
-
- /* 243 0xf3 'ó' */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x18, /* 00011000 */
- 0x0c, /* 00001100 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
-
- /* 244 0xf4 'ô' */
- 0x0e, /* 00001110 */
- 0x1b, /* 00011011 */
- 0x1b, /* 00011011 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
-
- /* 245 0xf5 'õ' */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0xd8, /* 11011000 */
- 0xd8, /* 11011000 */
- 0x70, /* 01110000 */
-
- /* 246 0xf6 'ö' */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x7e, /* 01111110 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 247 0xf7 '÷' */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0x76, /* 01110110 */
- 0xdc, /* 11011100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 248 0xf8 'ø' */
- 0x38, /* 00111000 */
- 0x6c, /* 01101100 */
- 0x6c, /* 01101100 */
- 0x38, /* 00111000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 249 0xf9 'ù' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 250 0xfa 'ú' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x18, /* 00011000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 251 0xfb 'û' */
- 0x0f, /* 00001111 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0x0c, /* 00001100 */
- 0xec, /* 11101100 */
- 0x6c, /* 01101100 */
- 0x3c, /* 00111100 */
- 0x1c, /* 00011100 */
-
- /* 252 0xfc 'ü' */
- 0x6c, /* 01101100 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x36, /* 00110110 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 253 0xfd 'ý' */
- 0x78, /* 01111000 */
- 0x0c, /* 00001100 */
- 0x18, /* 00011000 */
- 0x30, /* 00110000 */
- 0x7c, /* 01111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 254 0xfe 'þ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x3c, /* 00111100 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
- /* 255 0xff 'ÿ' */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
- 0x00, /* 00000000 */
-
-};
diff --git a/qemu/roms/openbios/libopenbios/forth_load.c b/qemu/roms/openbios/libopenbios/forth_load.c
deleted file mode 100644
index c3a1929f2..000000000
--- a/qemu/roms/openbios/libopenbios/forth_load.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* tag: forth source loader
- *
- * Copyright (C) 2004 Stefan Reinauer
- *
- * See the file "COPYING" for further information about
- * the copyright and warranty status of this work.
- */
-
-#include "config.h"
-#include "kernel/kernel.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/sys_info.h"
-#include "libc/diskio.h"
-#include "libopenbios/forth_load.h"
-#define printk printk
-#define debug printk
-
-static int fd;
-static char *forthtext=NULL;
-
-int is_forth(char *forth)
-{
- return (forth[0] == '\\' && forth[1] == ' ');
-}
-
-int forth_load(ihandle_t dev)
-{
- char magic[2];
- unsigned long forthsize;
- int retval = -1;
-
- /* Mark the saved-program-state as invalid */
- feval("0 state-valid !");
-
- fd = open_ih(dev);
- if (fd == -1) {
- goto out;
- }
-
- if (read_io(fd, magic, 2) != 2) {
- debug("Can't read magic header\n");
- retval = LOADER_NOT_SUPPORT;
- goto out;
- }
-
- if (!is_forth(magic)) {
- debug("No forth source image\n");
- retval = LOADER_NOT_SUPPORT;
- goto out;
- }
-
- /* Calculate the file size by seeking to the end of the file */
- seek_io(fd, -1);
- forthsize = tell(fd);
- forthtext = malloc(forthsize+1);
- seek_io(fd, 0);
-
- printk("Loading forth source ...");
- if ((size_t)read_io(fd, forthtext, forthsize) != forthsize) {
- printk("Can't read forth text\n");
- goto out;
- }
- forthtext[forthsize]=0;
- printk("ok\n");
-
- // Initialise saved-program-state
- PUSH((ucell)forthtext);
- feval("saved-program-state >sps.entry !");
- PUSH((ucell)forthsize);
- feval("saved-program-state >sps.file-size !");
- feval("forth saved-program-state >sps.file-type !");
-
- feval("-1 state-valid !");
-
- retval=0;
-
-out:
- //if (forthtext)
- // free(forthtext);
- return retval;
-}
-
-void
-forth_init_program(void)
-{
- // Currently not implemented
- feval("0 state-valid !");
-}
diff --git a/qemu/roms/openbios/libopenbios/helpers.fs b/qemu/roms/openbios/libopenbios/helpers.fs
deleted file mode 100644
index 8f5db9ffc..000000000
--- a/qemu/roms/openbios/libopenbios/helpers.fs
+++ /dev/null
@@ -1,35 +0,0 @@
-\ tag: helper functions
-\
-\ deblocker / filesystem support
-\
-\ Copyright (C) 2003 Samuel Rydh
-\
-\ See the file "COPYING" for further information about
-\ the copyright and warranty status of this work.
-\
-
-
-\ create device node and any missing parents.
-\ The new node becomes the active package
-
-: create-node ( nodepath -- )
- recursive
- ascii / right-split
- 2dup find-dev if
- active-package!
- 2drop
- else
- ( nodename path )
- dup if
- create-node
- else
- device-tree @ active-package!
- 2drop
- then
- then
- new-device
- device-name
- active-package
- finish-device
- active-package!
-;
diff --git a/qemu/roms/openbios/libopenbios/init.c b/qemu/roms/openbios/libopenbios/init.c
deleted file mode 100644
index 10fb55cd6..000000000
--- a/qemu/roms/openbios/libopenbios/init.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Creation Date: <2010/04/02 12:00:00 mcayland>
- * Time-stamp: <2010/04/02 12:00:00 mcayland>
- *
- * <init.c>
- *
- * OpenBIOS intialization
- *
- * Copyright (C) 2010 Mark Cave-Ayland (mark.cave-ayland@siriusit.co.uk)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "libopenbios/openbios.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/initprogram.h"
-
-void
-openbios_init( void )
-{
- // Bind the C implementation of (init-program) into Forth
- bind_func("(init-program)", init_program);
-}
diff --git a/qemu/roms/openbios/libopenbios/initprogram.c b/qemu/roms/openbios/libopenbios/initprogram.c
deleted file mode 100644
index 1fa33ba66..000000000
--- a/qemu/roms/openbios/libopenbios/initprogram.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Creation Date: <2010/04/02 13:00:00 mcayland>
- * Time-stamp: <2010/04/02 13:00:00 mcayland>
- *
- * <initprogram.c>
- *
- * C implementation of (init-program) word
- *
- * Copyright (C) 2010 Mark Cave-Ayland (mark.cave-ayland@siriusit.co.uk)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "kernel/kernel.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/initprogram.h"
-
-/* Because the a.out loader requires platform-specific headers */
-#ifdef CONFIG_LOADER_AOUT
-#include "libopenbios/aout_load.h"
-#endif
-
-#include "libopenbios/bootinfo_load.h"
-#include "libopenbios/elf_load.h"
-#include "libopenbios/fcode_load.h"
-#include "libopenbios/forth_load.h"
-#include "libopenbios/xcoff_load.h"
-
-
-void init_program(void)
-{
- /* Get the value of load-base and use it to determine the correct loader
- to use */
- ucell addr;
-
- feval("load-base");
- addr = POP();
-
-#ifdef CONFIG_LOADER_AOUT
- if (is_aout((struct exec *)cell2pointer(addr))) {
- aout_init_program();
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_BOOTINFO
- if (is_bootinfo((char *)cell2pointer(addr))) {
- bootinfo_init_program();
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_ELF
- if (is_elf((Elf_ehdr *)cell2pointer(addr))) {
- elf_init_program();
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_FCODE
- if (is_fcode((unsigned char *)cell2pointer(addr))) {
- fcode_init_program();
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_FORTH
- if (is_forth((char *)cell2pointer(addr))) {
- forth_init_program();
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_XCOFF
- if (is_xcoff((COFF_filehdr_t *)cell2pointer(addr))) {
- xcoff_init_program();
- return;
- }
-#endif
-
-}
diff --git a/qemu/roms/openbios/libopenbios/ipchecksum.c b/qemu/roms/openbios/libopenbios/ipchecksum.c
deleted file mode 100644
index 83f39bcea..000000000
--- a/qemu/roms/openbios/libopenbios/ipchecksum.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Taken from Etherboot */
-
-#include "libopenbios/ipchecksum.h"
-
-unsigned short ipchksum(const void *data, unsigned long length)
-{
- unsigned long sum;
- unsigned long i;
- const unsigned char *ptr;
- union {
- unsigned char byte[2];
- unsigned short word;
- } u;
-
- /* In the most straight forward way possible,
- * compute an ip style checksum.
- */
- sum = 0;
- ptr = data;
- for(i = 0; i < length; i++) {
- unsigned long value;
- value = ptr[i];
- if (i & 1) {
- value <<= 8;
- }
- /* Add the new value */
- sum += value;
- /* Wrap around the carry */
- if (sum > 0xFFFF) {
- sum = (sum + (sum >> 16)) & 0xFFFF;
- }
- }
- u.byte[0] = (unsigned char) sum;
- u.byte[1] = (unsigned char) (sum >> 8);
- return (unsigned short) ~u.word;
-}
-
-unsigned short add_ipchksums(unsigned long offset, unsigned short sum, unsigned short new)
-{
- unsigned long checksum;
- sum = ~sum & 0xFFFF;
- new = ~new & 0xFFFF;
- if (offset & 1) {
- /* byte swap the sum if it came from an odd offset
- * since the computation is endian independant this
- * works.
- */
- new = (new << 8) | (new >> 8);
- }
- checksum = sum + new;
- if (checksum > 0xFFFF) {
- checksum -= 0xFFFF;
- }
- return (~checksum) & 0xFFFF;
-}
diff --git a/qemu/roms/openbios/libopenbios/linuxbios.h b/qemu/roms/openbios/libopenbios/linuxbios.h
deleted file mode 100644
index 0f7cba96a..000000000
--- a/qemu/roms/openbios/libopenbios/linuxbios.h
+++ /dev/null
@@ -1,181 +0,0 @@
-#ifndef LINUXBIOS_TABLES_H
-#define LINUXBIOS_TABLES_H
-
-/* The linuxbios table information is for conveying information
- * from the firmware to the loaded OS image. Primarily this
- * is expected to be information that cannot be discovered by
- * other means, such as quering the hardware directly.
- *
- * All of the information should be Position Independent Data.
- * That is it should be safe to relocated any of the information
- * without it's meaning/correctnes changing. For table that
- * can reasonably be used on multiple architectures the data
- * size should be fixed. This should ease the transition between
- * 32 bit and 64 bit architectures etc.
- *
- * The completeness test for the information in this table is:
- * - Can all of the hardware be detected?
- * - Are the per motherboard constants available?
- * - Is there enough to allow a kernel to run that was written before
- * a particular motherboard is constructed? (Assuming the kernel
- * has drivers for all of the hardware but it does not have
- * assumptions on how the hardware is connected together).
- *
- * With this test it should be straight forward to determine if a
- * table entry is required or not. This should remove much of the
- * long term compatibility burden as table entries which are
- * irrelevant or have been replaced by better alternatives may be
- * dropped. Of course it is polite and expidite to include extra
- * table entries and be backwards compatible, but it is not required.
- */
-
-
-struct lb_header
-{
- uint8_t signature[4]; /* LBIO */
- uint32_t header_bytes;
- uint32_t header_checksum;
- uint32_t table_bytes;
- uint32_t table_checksum;
- uint32_t table_entries;
-};
-
-/* Every entry in the boot enviroment list will correspond to a boot
- * info record. Encoding both type and size. The type is obviously
- * so you can tell what it is. The size allows you to skip that
- * boot enviroment record if you don't know what it easy. This allows
- * forward compatibility with records not yet defined.
- */
-struct lb_record {
- uint32_t tag; /* tag ID */
- uint32_t size; /* size of record (in bytes) */
-};
-
-#define LB_TAG_UNUSED 0x0000
-
-#define LB_TAG_MEMORY 0x0001
-
-struct lb_memory_range {
- uint64_t start;
- uint64_t size;
- uint32_t type;
-#define LB_MEM_RAM 1 /* Memory anyone can use */
-#define LB_MEM_RESERVED 2 /* Don't use this memory region */
-#define LB_MEM_TABLE 16 /* Ram configuration tables are kept in */
-
-};
-
-struct lb_memory {
- uint32_t tag;
- uint32_t size;
- struct lb_memory_range map[0];
-};
-
-#define LB_TAG_HWRPB 0x0002
-struct lb_hwrpb {
- uint32_t tag;
- uint32_t size;
- uint64_t hwrpb;
-};
-
-#define LB_TAG_MAINBOARD 0x0003
-struct lb_mainboard {
- uint32_t tag;
- uint32_t size;
- uint8_t vendor_idx;
- uint8_t part_number_idx;
- uint8_t strings[0];
-};
-
-#define LB_TAG_VERSION 0x0004
-#define LB_TAG_EXTRA_VERSION 0x0005
-#define LB_TAG_BUILD 0x0006
-#define LB_TAG_COMPILE_TIME 0x0007
-#define LB_TAG_COMPILE_BY 0x0008
-#define LB_TAG_COMPILE_HOST 0x0009
-#define LB_TAG_COMPILE_DOMAIN 0x000a
-#define LB_TAG_COMPILER 0x000b
-#define LB_TAG_LINKER 0x000c
-#define LB_TAG_ASSEMBLER 0x000d
-struct lb_string {
- uint32_t tag;
- uint32_t size;
- uint8_t string[0];
-};
-
-/* The following structures are for the cmos definitions table */
-#define LB_TAG_CMOS_OPTION_TABLE 200
-/* cmos header record */
-struct cmos_option_table {
- uint32_t tag; /* CMOS definitions table type */
- uint32_t size; /* size of the entire table */
- uint32_t header_length; /* length of header */
-};
-
-/* cmos entry record
- This record is variable length. The name field may be
- shorter than CMOS_MAX_NAME_LENGTH. The entry may start
- anywhere in the byte, but can not span bytes unless it
- starts at the beginning of the byte and the length is
- fills complete bytes.
-*/
-#define LB_TAG_OPTION 201
-struct cmos_entries {
- uint32_t tag; /* entry type */
- uint32_t size; /* length of this record */
- uint32_t bit; /* starting bit from start of image */
- uint32_t length; /* length of field in bits */
- uint32_t config; /* e=enumeration, h=hex, r=reserved */
- uint32_t config_id; /* a number linking to an enumeration record */
-#define CMOS_MAX_NAME_LENGTH 32
- uint8_t name[CMOS_MAX_NAME_LENGTH]; /* name of entry in ascii,
- variable length int aligned */
-};
-
-
-/* cmos enumerations record
- This record is variable length. The text field may be
- shorter than CMOS_MAX_TEXT_LENGTH.
-*/
-#define LB_TAG_OPTION_ENUM 202
-struct cmos_enums {
- uint32_t tag; /* enumeration type */
- uint32_t size; /* length of this record */
- uint32_t config_id; /* a number identifying the config id */
- uint32_t value; /* the value associated with the text */
-#define CMOS_MAX_TEXT_LENGTH 32
- uint8_t text[CMOS_MAX_TEXT_LENGTH]; /* enum description in ascii,
- variable length int aligned */
-};
-
-/* cmos defaults record
- This record contains default settings for the cmos ram.
-*/
-#define LB_TAG_OPTION_DEFAULTS 203
-struct cmos_defaults {
- uint32_t tag; /* default type */
- uint32_t size; /* length of this record */
- uint32_t name_length; /* length of the following name field */
- uint8_t name[CMOS_MAX_NAME_LENGTH]; /* name identifying the default */
-#define CMOS_IMAGE_BUFFER_SIZE 128
- uint8_t default_set[CMOS_IMAGE_BUFFER_SIZE]; /* default settings */
-};
-
-#define LB_TAG_OPTION_CHECKSUM 204
-struct cmos_checksum {
- uint32_t tag;
- uint32_t size;
- /* In practice everything is byte aligned, but things are measured
- * in bits to be consistent.
- */
- uint32_t range_start; /* First bit that is checksummed (byte aligned) */
- uint32_t range_end; /* Last bit that is checksummed (byte aligned) */
- uint32_t location; /* First bit of the checksum (byte aligned) */
- uint32_t type; /* Checksum algorithm that is used */
-#define CHECKSUM_NONE 0
-#define CHECKSUM_PCBIOS 1
-};
-
-
-
-#endif /* LINUXBIOS_TABLES_H */
diff --git a/qemu/roms/openbios/libopenbios/linuxbios_info.c b/qemu/roms/openbios/libopenbios/linuxbios_info.c
deleted file mode 100644
index bef996cf0..000000000
--- a/qemu/roms/openbios/libopenbios/linuxbios_info.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Adapted from Etherboot 5.1.8 */
-
-#include "config.h"
-#include "sysinclude.h"
-#include "asm/types.h"
-#include "asm/io.h"
-#include "linuxbios.h"
-#include "libopenbios/ipchecksum.h"
-#include "libopenbios/sys_info.h"
-
-#ifdef CONFIG_DEBUG_BOOT
-#define debug printk
-#else
-#define debug(x...)
-#endif
-
-#define for_each_lbrec(head, rec) \
- for(rec = (struct lb_record *)(((char *)head) + sizeof(*head)); \
- (((char *)rec) < (((char *)head) + sizeof(*head) + head->table_bytes)) && \
- (rec->size >= 1) && \
- ((((char *)rec) + rec->size) <= (((char *)head) + sizeof(*head) + head->table_bytes)); \
- rec = (struct lb_record *)(((char *)rec) + rec->size))
-
-static void convert_memmap(struct lb_memory *lbmem, struct sys_info *info)
-{
- int lbcount;
- int i;
-
- lbcount = lbmem->size / sizeof(struct lb_memory_range);
- info->memrange = malloc(lbcount * sizeof(struct memrange));
- info->n_memranges = 0;
- for (i = 0; i < lbcount; i++) {
- debug("%#016llx %#016llx %d\n",
- (long long)lbmem->map[i].start, (long long)lbmem->map[i].size,
- (int) lbmem->map[i].type);
- if (lbmem->map[i].type != LB_MEM_RAM)
- continue;
- info->memrange[info->n_memranges].base = lbmem->map[i].start;
- info->memrange[info->n_memranges].size = lbmem->map[i].size;
- info->n_memranges++;
- }
-}
-
-static int read_lbtable(struct lb_header *head, struct sys_info *info)
-{
- int retval = 0;
-
- /* Read linuxbios tables... */
- struct lb_record *rec;
-
- for_each_lbrec(head, rec) {
- switch(rec->tag) {
- case LB_TAG_MEMORY:
- convert_memmap((struct lb_memory *) rec, info);
- retval = 1;
- break;
- };
- }
- return retval;
-}
-
-static unsigned long count_lb_records(void *start, unsigned long length)
-{
- struct lb_record *rec;
- void *end;
- unsigned long count;
- count = 0;
- end = ((char *)start) + length;
- for(rec = start; ((void *)rec < end) &&
- ((signed long)rec->size <=
- ((signed long)end - (signed long)rec));
- rec = (void *)(((char *)rec) + rec->size)) {
- count++;
- }
- return count;
-}
-
-static int find_lb_table(void *start, void *end, struct lb_header **result)
-{
- unsigned char *ptr;
- /* For now be stupid.... */
- for(ptr = start; (void *)ptr < end; ptr += 16) {
- struct lb_header *head = (struct lb_header *)ptr;
- if ( (head->signature[0] != 'L') ||
- (head->signature[1] != 'B') ||
- (head->signature[2] != 'I') ||
- (head->signature[3] != 'O')) {
- continue;
- }
- if (head->header_bytes != sizeof(*head))
- continue;
- debug("Found canidate at: %p\n", head);
- if (ipchksum((uint16_t *)head, sizeof(*head)) != 0)
- continue;
- debug("header checksum o.k.\n");
- if (ipchksum((uint16_t *)(ptr + sizeof(*head)), head->table_bytes) !=
- head->table_checksum) {
- continue;
- }
- debug("table checksum o.k.\n");
- if (count_lb_records(ptr + sizeof(*head), head->table_bytes) !=
- head->table_entries) {
- continue;
- }
- debug("record count o.k.\n");
- *result = head;
- return 1;
- };
- return 0;
-}
-
-void collect_linuxbios_info(struct sys_info *info)
-{
- struct lb_header *lb_table;
- int found;
- debug("Searching for LinuxBIOS tables...\n");
- found = 0;
- if (!found) {
- found = find_lb_table(phys_to_virt(0x00000), phys_to_virt(0x01000), &lb_table);
- }
- if (!found) {
- found = find_lb_table(phys_to_virt(0xf0000), phys_to_virt(0x100000), &lb_table);
- }
- if (!found)
- return;
-
- debug("Found LinuxBIOS table at: %p\n", lb_table);
- info->firmware = "LinuxBIOS";
- read_lbtable(lb_table, info);
-}
diff --git a/qemu/roms/openbios/libopenbios/load.c b/qemu/roms/openbios/libopenbios/load.c
deleted file mode 100644
index 4bc12ea35..000000000
--- a/qemu/roms/openbios/libopenbios/load.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Creation Date: <2010/06/25 20:00:00 mcayland>
- * Time-stamp: <2010/06/25 20:00:00 mcayland>
- *
- * <load.c>
- *
- * C implementation of load
- *
- * Copyright (C) 2010 Mark Cave-Ayland (mark.cave-ayland@siriusit.co.uk)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "kernel/kernel.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/sys_info.h"
-#include "libopenbios/load.h"
-
-#ifdef CONFIG_LOADER_ELF
-#include "libopenbios/elf_load.h"
-#endif
-
-#ifdef CONFIG_LOADER_AOUT
-#include "libopenbios/aout_load.h"
-#endif
-
-#ifdef CONFIG_LOADER_FCODE
-#include "libopenbios/fcode_load.h"
-#endif
-
-#ifdef CONFIG_LOADER_FORTH
-#include "libopenbios/forth_load.h"
-#endif
-
-#ifdef CONFIG_LOADER_BOOTCODE
-#include "libopenbios/bootcode_load.h"
-#endif
-
-
-struct sys_info sys_info;
-void *elf_boot_notes = NULL;
-
-/* ( addr -- size ) */
-
-void load(ihandle_t dev)
-{
- /* Invoke the loaders on the specified device */
- char *param;
- ucell valid;
-
- /* TODO: Currently the internal loader APIs use load-base directly, so
- drop the address */
- POP();
-
-#ifdef CONFIG_LOADER_ELF
-
- /* Grab the boot arguments */
- push_str("bootargs");
- push_str("/chosen");
- fword("(find-dev)");
- POP();
- fword("get-package-property");
- POP();
- param = pop_fstr_copy();
-
- elf_load(&sys_info, dev, param, &elf_boot_notes);
- feval("state-valid @");
- valid = POP();
- if (valid) {
- feval("saved-program-state >sps.file-size @");
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_AOUT
- aout_load(&sys_info, dev);
- feval("state-valid @");
- valid = POP();
- if (valid) {
- feval("saved-program-state >sps.file-size @");
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_FCODE
- fcode_load(dev);
- feval("state-valid @");
- valid = POP();
- if (valid) {
- feval("saved-program-state >sps.file-size @");
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_FORTH
- forth_load(dev);
- feval("state-valid @");
- valid = POP();
- if (valid) {
- feval("saved-program-state >sps.file-size @");
- return;
- }
-#endif
-
-#ifdef CONFIG_LOADER_BOOTCODE
- /* Check for a "raw" %BOOT bootcode payload */
- bootcode_load(dev);
- feval("state-valid @");
- valid = POP();
- if (valid) {
- feval("saved-program-state >sps.file-size @");
- return;
- }
-#endif
-
- /* Didn't load anything, so return zero size */
- PUSH(0);
-}
diff --git a/qemu/roms/openbios/libopenbios/ofmem_common.c b/qemu/roms/openbios/libopenbios/ofmem_common.c
deleted file mode 100644
index 052aa2f4d..000000000
--- a/qemu/roms/openbios/libopenbios/ofmem_common.c
+++ /dev/null
@@ -1,990 +0,0 @@
-/*
- * <ofmem_common.c>
- *
- * OF Memory manager
- *
- * Copyright (C) 1999-2004 Samuel Rydh (samuel@ibrium.se)
- * Copyright (C) 2004 Stefan Reinauer
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation
- *
- */
-
-#include "config.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/ofmem.h"
-
-/* Default size of memory allocated for each of the MMU properties (in bytes) */
-#define OFMEM_DEFAULT_PROP_SIZE 2048
-
-/*
- * define OFMEM_FILL_RANGE to claim any unclaimed virtual and
- * physical memory in the range for ofmem_map
- *
- * TODO: remove this macro and wrapped code if not needed by implementations
- */
-//#define OFMEM_FILL_RANGE
-
-
-static inline size_t align_size(size_t x, size_t a)
-{
- return (x + a - 1) & ~(a - 1);
-}
-
-static inline phys_addr_t align_ptr(uintptr_t x, size_t a)
-{
- return (x + a - 1) & ~(a - 1);
-}
-
-static ucell get_ram_size( void )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- return ofmem->ramsize;
-}
-
-/************************************************************************/
-/* debug */
-/************************************************************************/
-
-#if 0
-static void
-print_range( range_t *r, const char *str )
-{
- printk("--- Range %s ---\n", str );
- for( ; r; r=r->next )
- printk("%p : " FMT_plx " - " FMT_plx "\n", r, r->start, r->start + r->size - 1);
- printk("\n");
-}
-
-static void
-print_phys_range(void)
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- print_range( ofmem->phys_range, "phys" );
-}
-
-static void
-print_virt_range(void)
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- print_range( ofmem->virt_range, "virt" );
-}
-
-static void
-print_trans( void )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- translation_t *t = ofmem->trans;
-
- printk("--- Translations ---\n");
- for( ; t; t=t->next )
- printk("%p : " FMT_ucellx " -> " FMT_plx " [size " FMT_ucellx "]\n", t, t->virt, t->phys, t->size);
- printk("\n");
-}
-#endif
-
-/************************************************************************/
-/* OF private allocations */
-/************************************************************************/
-
-int ofmem_posix_memalign( void **memptr, size_t alignment, size_t size )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- alloc_desc_t *d, **pp;
- void *ret;
- ucell top;
- phys_addr_t pa;
-
- if( !size )
- return ENOMEM;
-
- if( !ofmem->next_malloc )
- ofmem->next_malloc = (char*)ofmem_arch_get_malloc_base();
-
- size = align_size(size + sizeof(alloc_desc_t), alignment);
-
- /* look in the freelist */
- for( pp=&ofmem->mfree; *pp && (**pp).size < size; pp = &(**pp).next ) {
- }
-
- /* waste at most 4K by taking an entry from the freelist */
- if( *pp && (**pp).size > size + 0x1000 ) {
- /* Alignment should be on physical not virtual address */
- pa = va2pa((uintptr_t)*pp + sizeof(alloc_desc_t));
- pa = align_ptr(pa, alignment);
- ret = (void *)pa2va(pa);
-
- memset( ret, 0, (**pp).size - sizeof(alloc_desc_t) );
- *pp = (**pp).next;
-
- *memptr = ret;
- return 0;
- }
-
- top = ofmem_arch_get_heap_top();
-
- /* Alignment should be on physical not virtual address */
- pa = va2pa((uintptr_t)ofmem->next_malloc + sizeof(alloc_desc_t));
- pa = align_ptr(pa, alignment);
- ret = (void *)pa2va(pa);
-
- if( pointer2cell(ret) + size > top ) {
- printk("out of malloc memory (%x)!\n", size );
- return ENOMEM;
- }
-
- d = (alloc_desc_t*)((uintptr_t)ret - sizeof(alloc_desc_t));
- ofmem->next_malloc += size;
-
- d->next = NULL;
- d->size = size;
-
- memset( ret, 0, size - sizeof(alloc_desc_t) );
-
- *memptr = ret;
- return 0;
-}
-
-void* ofmem_malloc( size_t size )
-{
- void *memptr;
- int res;
-
- res = ofmem_posix_memalign( &memptr, CONFIG_OFMEM_MALLOC_ALIGN, size );
- if (!res) {
- /* Success */
- return memptr;
- } else {
- /* Failure */
- return NULL;
- }
-}
-
-void ofmem_free( void *ptr )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- alloc_desc_t **pp, *d;
-
- /* it is legal to free NULL pointers (size zero allocations) */
- if( !ptr )
- return;
-
- d = (alloc_desc_t*)((char *)ptr - sizeof(alloc_desc_t));
- d->next = ofmem->mfree;
-
- /* insert in the (sorted) freelist */
- for( pp=&ofmem->mfree; *pp && (**pp).size < d->size ; pp = &(**pp).next ) {
- }
-
- d->next = *pp;
- *pp = d;
-}
-
-void* ofmem_realloc( void *ptr, size_t size )
-{
- alloc_desc_t *d = (alloc_desc_t*)((char *)ptr - sizeof(alloc_desc_t));
- char *p;
-
- if( !ptr )
- return malloc( size );
- if( !size ) {
- free( ptr );
- return NULL;
- }
- p = malloc( size );
- memcpy( p, ptr, MIN(d->size - sizeof(alloc_desc_t),size) );
- free( ptr );
- return p;
-}
-
-
-/************************************************************************/
-/* "translations" and "available" property tracking */
-/************************************************************************/
-
-static int trans_prop_size = 0, phys_range_prop_size = 0, virt_range_prop_size = 0;
-static int trans_prop_used = 0, phys_range_prop_used = 0, virt_range_prop_used = 0;
-static ucell *trans_prop, *phys_range_prop, *virt_range_prop;
-
-static void
-ofmem_set_property( phandle_t ph, const char *name, const char *buf, int len )
-{
- /* This is very similar to set_property() in libopenbios/bindings.c but allows
- us to set the property pointer directly, rather than having to copy it
- into the Forth dictonary every time we update the memory properties */
- if( !ph ) {
- printk("ofmem_set_property: NULL phandle\n");
- return;
- }
- PUSH(pointer2cell(buf));
- PUSH(len);
- push_str(name);
- PUSH_ph(ph);
- fword("encode-property");
-}
-
-phandle_t s_phandle_memory = 0;
-phandle_t s_phandle_mmu = 0;
-
-static void ofmem_update_mmu_translations( void )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- translation_t *t;
- int ncells, prop_used, prop_size;
-
- if (s_phandle_mmu == 0)
- return;
-
- for( t = ofmem->trans, ncells = 0; t ; t=t->next, ncells++ ) {
- }
-
- /* Get the current number of bytes required for the MMU translation property */
- prop_used = ncells * sizeof(ucell) * ofmem_arch_get_translation_entry_size();
-
- if (prop_used > trans_prop_size) {
-
- /* The property doesn't fit within the existing space, so keep doubling it
- until it does */
- prop_size = trans_prop_size;
- while (prop_size < prop_used) {
- prop_size *= 2;
- }
-
- /* Allocate the new memory and copy all of the existing information across */
- trans_prop = realloc(trans_prop, prop_size);
- trans_prop_size = prop_size;
- trans_prop_used = prop_used;
- }
-
- if (trans_prop == NULL) {
- /* out of memory! */
- printk("Unable to allocate memory for translations property!\n");
- return;
- }
-
- /* Call architecture-specific routines to generate translation entries */
- for( t = ofmem->trans, ncells = 0 ; t ; t=t->next ) {
- ofmem_arch_create_translation_entry(&trans_prop[ncells], t);
- ncells += ofmem_arch_get_translation_entry_size();
- }
-
- ofmem_set_property(s_phandle_mmu, "translations",
- (char*)trans_prop, ncells * sizeof(trans_prop[0]));
-
-}
-
-
-static void ofmem_update_memory_available( phandle_t ph, range_t *range,
- ucell **mem_prop, int *mem_prop_size, int *mem_prop_used, u64 top_address )
-{
- range_t *r;
- int ncells, prop_used, prop_size;
- phys_addr_t start;
- ucell size, *prop;
-
- if (s_phandle_memory == 0)
- return;
-
- /* count phys_range list entries */
- for( r = range, ncells = 0; r ; r=r->next, ncells++ ) {
- }
-
- /* inverse of phys_range list could take 2 or more additional cells for the tail
- For /memory, physical addresses may be wider than one ucell. */
- prop_used = (ncells + 1) * sizeof(ucell) * ofmem_arch_get_available_entry_size(ph) + 1;
-
- if (prop_used > *mem_prop_size) {
-
- /* The property doesn't fit within the existing space, so keep doubling it
- until it does */
- prop_size = *mem_prop_size;
- while (prop_size < prop_used) {
- prop_size *= 2;
- }
-
- /* Allocate the new memory and copy all of the existing information across */
- *mem_prop = realloc(*mem_prop, prop_size);
- *mem_prop_size = prop_size;
- *mem_prop_used = prop_used;
- }
-
- if (*mem_prop == NULL) {
- /* out of memory! */
- printk("Unable to allocate memory for memory range property!\n");
- return;
- }
-
- start = 0;
- ncells = 0;
- prop = *mem_prop;
-
- for (r = range; r; r=r->next) {
- if (r->start >= top_address) {
- break;
- }
-
- size = r->start - start;
- if (size) {
- ofmem_arch_create_available_entry(ph, &prop[ncells], start, size);
- ncells += ofmem_arch_get_available_entry_size(ph);
- }
- start = r->start + r->size;
- }
-
- /* tail */
- if ((start - 1) < top_address) {
- ofmem_arch_create_available_entry(ph, &prop[ncells], start, top_address - start + 1);
- ncells += ofmem_arch_get_available_entry_size(ph);
- }
-
- ofmem_set_property(ph, "available",
- (char*)prop, ncells * sizeof(prop[0]));
-}
-
-static void ofmem_update_translations( void )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
-
- ofmem_update_memory_available(s_phandle_memory, ofmem->phys_range,
- &phys_range_prop, &phys_range_prop_size, &phys_range_prop_used, get_ram_size() - 1);
- ofmem_update_memory_available(s_phandle_mmu, ofmem->virt_range,
- &virt_range_prop, &virt_range_prop_size, &virt_range_prop_used, (ucell)-1);
- ofmem_update_mmu_translations();
-}
-
-
-/************************************************************************/
-/* client interface */
-/************************************************************************/
-
-static int is_free( phys_addr_t ea, ucell size, range_t *r )
-{
- if( size == 0 )
- return 1;
- for( ; r ; r=r->next ) {
- if( r->start + r->size - 1 >= ea && r->start <= ea )
- return 0;
- if( r->start >= ea && r->start <= ea + size - 1 )
- return 0;
- }
- return 1;
-}
-
-static void add_entry_( phys_addr_t ea, ucell size, range_t **r )
-{
- range_t *nr;
-
- for( ; *r && (**r).start < ea; r=&(**r).next ) {
- }
-
- nr = (range_t*)malloc( sizeof(range_t) );
- nr->next = *r;
- nr->start = ea;
- nr->size = size;
- *r = nr;
-}
-
-static int add_entry( phys_addr_t ea, ucell size, range_t **r )
-{
- if( !is_free( ea, size, *r ) ) {
- OFMEM_TRACE("add_entry: range not free!\n");
- return -1;
- }
- add_entry_( ea, size, r );
- return 0;
-}
-
-#if defined(OFMEM_FILL_RANGE)
-static void join_ranges( range_t **rr )
-{
- range_t *n, *r = *rr;
- while( r ) {
- if( !(n=r->next) )
- break;
-
- if( r->start + r->size - 1 >= n->start -1 ) {
- int s = n->size + (n->start - r->start - r->size);
- if( s > 0 )
- r->size += s;
- r->next = n->next;
- free( n );
- continue;
- }
- r=r->next;
- }
-}
-
-static void fill_range( phys_addr_t ea, ucell size, range_t **rr )
-{
- add_entry_( ea, size, rr );
- join_ranges( rr );
-}
-#endif
-
-static ucell find_area( ucell align, ucell size, range_t *r,
- phys_addr_t min, phys_addr_t max, int reverse )
-{
- phys_addr_t base = min;
- range_t *r2;
- ucell old_align = align;
- int i;
-
- if( (align < PAGE_SIZE) ) {
-
- /* Minimum alignment is page size */
- align = PAGE_SIZE;
-
- OFMEM_TRACE("warning: bad alignment " FMT_ucellx " rounded up to " FMT_ucellx "\n", old_align, align);
- }
-
- if( (align & (align-1)) ) {
-
- /* As per IEEE1275 specification, round up to the nearest power of 2 */
- align--;
- for (i = 1; i < sizeof(ucell) * 8; i<<=1) {
- align |= align >> i;
- }
- align++;
-
- OFMEM_TRACE("warning: bad alignment " FMT_ucellx " rounded up to " FMT_ucellx "\n", old_align, align);
- }
-
- base = reverse ? max - size : min;
- r2 = reverse ? NULL : r;
-
- for( ;; ) {
- if( !reverse ) {
- base = (base + align - 1) & ~(align-1);
- if( base < min )
- base = min;
- if( base + size - 1 >= max -1 )
- break;
- } else {
- if( base > max - size )
- base = max - size;
- base -= base & (align-1);
- }
- if( is_free( base, size, r ) )
- return base;
-
- if( !reverse ) {
- if( !r2 )
- break;
- base = r2->start + r2->size;
- r2 = r2->next;
- } else {
- range_t *rp;
-
- for( rp=r; rp && rp->next != r2 ; rp=rp->next ) {
- }
-
- r2 = rp;
- if( !r2 )
- break;
- base = r2->start - size;
- }
- }
- return -1;
-}
-
-static phys_addr_t ofmem_claim_phys_( phys_addr_t phys, ucell size, ucell align,
- phys_addr_t min, phys_addr_t max, int reverse )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- if( !align ) {
- if( !is_free( phys, size, ofmem->phys_range ) ) {
- OFMEM_TRACE("Non-free physical memory claimed!\n");
- return -1;
- }
- add_entry( phys, size, &ofmem->phys_range );
- ofmem_update_translations();
- return phys;
- }
- phys = find_area( align, size, ofmem->phys_range, min, max, reverse );
- if( phys == -1 ) {
- printk("ofmem_claim_phys - out of space (failed request for " FMT_ucellx " bytes)\n", size);
- return -1;
- }
- add_entry( phys, size, &ofmem->phys_range );
-
- ofmem_update_translations();
-
- return phys;
-}
-
-/* if align != 0, phys is ignored. Returns -1 on error */
-phys_addr_t ofmem_claim_phys( phys_addr_t phys, ucell size, ucell align )
-{
- OFMEM_TRACE("ofmem_claim_phys phys=" FMT_plx " size=" FMT_ucellx
- " align=" FMT_ucellx "\n",
- phys, size, align);
-
- return ofmem_claim_phys_( phys, size, align, 0, get_ram_size(), 1 );
-}
-
-static ucell ofmem_claim_virt_( ucell virt, ucell size, ucell align,
- ucell min, ucell max, int reverse )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- if( !align ) {
- if( !is_free( virt, size, ofmem->virt_range ) ) {
- OFMEM_TRACE("Non-free virtual memory claimed!\n");
- return -1;
- }
- add_entry( virt, size, &ofmem->virt_range );
- ofmem_update_translations();
- return virt;
- }
-
- virt = find_area( align, size, ofmem->virt_range, min, max, reverse );
- if( virt == -1 ) {
- printk("ofmem_claim_virt - out of space (failed request for " FMT_ucellx " bytes)\n", size);
- return -1;
- }
- add_entry( virt, size, &ofmem->virt_range );
-
- ofmem_update_translations();
-
- return virt;
-}
-
-ucell ofmem_claim_virt( ucell virt, ucell size, ucell align )
-{
- OFMEM_TRACE("ofmem_claim_virt virt=" FMT_ucellx " size=" FMT_ucellx
- " align=" FMT_ucellx "\n",
- virt, size, align);
-
- /* printk("+ ofmem_claim virt %08lx %lx %ld\n", virt, size, align ); */
- return ofmem_claim_virt_( virt, size, align,
- get_ram_size(), ofmem_arch_get_virt_top(), 1 );
-}
-
-static ucell ofmem_claim_io_( ucell virt, ucell size, ucell align,
- ucell min, ucell max, int reverse )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- if( !align ) {
- if( !is_free( virt, size, ofmem->io_range ) ) {
- OFMEM_TRACE("Non-free I/O memory claimed!\n");
- return -1;
- }
- add_entry( virt, size, &ofmem->io_range );
- return virt;
- }
-
- virt = find_area( align, size, ofmem->io_range, min, max, reverse );
- if( virt == -1 ) {
- printk("ofmem_claim_io - out of space (failed request for " FMT_ucellx " bytes)\n", size);
- return -1;
- }
- add_entry( virt, size, &ofmem->io_range );
- return virt;
-}
-
-ucell ofmem_claim_io( ucell virt, ucell size, ucell align )
-{
- /* Claim a section of memory from the I/O range */
- return ofmem_claim_io_( virt, size, align,
- ofmem_arch_get_iomem_base(), ofmem_arch_get_iomem_top(), 0 );
-}
-
-/* if align != 0, phys is ignored. Returns -1 on error */
-phys_addr_t ofmem_retain( phys_addr_t phys, ucell size, ucell align )
-{
- retain_t *retained = ofmem_arch_get_retained();
- phys_addr_t retain_phys;
-
- OFMEM_TRACE("ofmem_retain phys=" FMT_plx " size=" FMT_ucellx
- " align=" FMT_ucellx "\n",
- phys, size, align);
-
- retain_phys = ofmem_claim_phys_( phys, size, align, 0, get_ram_size(), 1 /* reverse */ );
-
- /* Add to the retain_phys_range list */
- retained->retain_phys_range[retained->numentries].next = NULL;
- retained->retain_phys_range[retained->numentries].start = retain_phys;
- retained->retain_phys_range[retained->numentries].size = size;
- retained->numentries++;
-
- return retain_phys;
-}
-
-/* allocate both physical and virtual space and add a translation */
-ucell ofmem_claim( ucell addr, ucell size, ucell align )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- ucell virt;
- phys_addr_t phys;
- ucell offs = addr & (PAGE_SIZE - 1);
-
- OFMEM_TRACE("ofmem_claim " FMT_ucellx " " FMT_ucellx " " FMT_ucellx "\n", addr, size, align );
- virt = phys = 0;
- if( !align ) {
- if( is_free(addr, size, ofmem->virt_range) &&
- is_free(addr, size, ofmem->phys_range) ) {
- ofmem_claim_phys_( addr, size, 0, 0, 0, 0 );
- ofmem_claim_virt_( addr, size, 0, 0, 0, 0 );
- virt = phys = addr;
- } else {
- OFMEM_TRACE("**** ofmem_claim failure ***!\n");
- return -1;
- }
- } else {
- if( align < PAGE_SIZE )
- align = PAGE_SIZE;
- phys = ofmem_claim_phys_( -1, size, align, 0, get_ram_size(), 1 /* reverse */ );
- virt = ofmem_claim_virt_( phys, size, 0, 0, 0, 0 );
- if( phys == -1 || virt == -1 ) {
- OFMEM_TRACE("ofmem_claim failed\n");
- return -1;
- }
- /* printk("...phys = %08lX, virt = %08lX, size = %08lX\n", phys, virt, size ); */
- }
-
- /* align */
- if( phys & (PAGE_SIZE - 1) ) {
- size += (phys & (PAGE_SIZE - 1));
- virt -= (phys & (PAGE_SIZE - 1));
- phys &= PAGE_MASK;
- }
- if( size & (PAGE_SIZE - 1) )
- size = (size + (PAGE_SIZE - 1)) & PAGE_MASK;
-
- /* printk("...free memory found... phys: %08lX, virt: %08lX, size %lX\n", phys, virt, size ); */
- ofmem_map( phys, virt, size, -1 );
- return virt + offs;
-}
-
-
-/************************************************************************/
-/* keep track of ea -> phys translations */
-/************************************************************************/
-
-static void split_trans( ucell virt )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- translation_t *t, *t2;
-
- for( t=ofmem->trans; t; t=t->next ) {
- if( virt > t->virt && virt < t->virt + t->size-1 ) {
- t2 = (translation_t*)malloc( sizeof(translation_t) );
- t2->virt = virt;
- t2->size = t->size - (virt - t->virt);
- t->size = virt - t->virt;
- t2->phys = t->phys + t->size;
- t2->mode = t->mode;
- t2->next = t->next;
- t->next = t2;
- }
- }
-}
-
-int ofmem_map_page_range( phys_addr_t phys, ucell virt, ucell size, ucell mode )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- translation_t *t, **tt;
-
- OFMEM_TRACE("ofmem_map_page_range " FMT_ucellx
- " -> " FMT_plx " " FMT_ucellx " mode " FMT_ucellx "\n",
- virt, phys, size, mode );
-
- split_trans( virt );
- split_trans( virt + size );
-
- /* detect remappings */
- for( t=ofmem->trans; t; ) {
- if( virt == t->virt || (virt < t->virt && virt + size > t->virt )) {
- if( t->phys + virt - t->virt != phys ) {
- OFMEM_TRACE("mapping altered virt=" FMT_ucellx ")\n", t->virt );
- } else if( t->mode != mode ){
- OFMEM_TRACE("mapping mode altered virt=" FMT_ucellx
- " old mode=" FMT_ucellx " new mode=" FMT_ucellx "\n",
- t->virt, t->mode, mode);
- }
-
- for( tt=&ofmem->trans; *tt != t ; tt=&(**tt).next ) {
- }
-
- *tt = t->next;
-
- /* really unmap these pages */
- ofmem_arch_unmap_pages(t->virt, t->size);
-
- free((char*)t);
-
- t=ofmem->trans;
- continue;
- }
- t=t->next;
- }
-
- /* add mapping */
- for( tt=&ofmem->trans; *tt && (**tt).virt < virt ; tt=&(**tt).next ) {
- }
-
- t = (translation_t*)malloc( sizeof(translation_t) );
- t->virt = virt;
- t->phys = phys;
- t->size = size;
- t->mode = mode;
- t->next = *tt;
- *tt = t;
-
- ofmem_update_translations();
-
- return 0;
-}
-
-static int unmap_page_range( ucell virt, ucell size )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- translation_t **plink;
-
- /* make sure there is exactly one matching translation entry */
-
- split_trans( virt );
- split_trans( virt + size );
-
- /* find and unlink entries in range */
- plink = &ofmem->trans;
-
- while (*plink && (*plink)->virt < virt+size) {
- translation_t **plinkentry = plink;
- translation_t *t = *plink;
-
- /* move ahead */
- plink = &t->next;
-
- if (t->virt >= virt && t->virt + t->size <= virt+size) {
-
- /* unlink entry */
- *plinkentry = t->next;
-
- OFMEM_TRACE("unmap_page_range found "
- FMT_ucellx " -> " FMT_plx " " FMT_ucellx
- " mode " FMT_ucellx "\n",
- t->virt, t->phys, t->size, t->mode );
-
- // really map these pages
- ofmem_arch_unmap_pages(t->virt, t->size);
-
- free((char*)t);
- }
- }
-
- ofmem_update_translations();
-
- return 0;
-}
-
-int ofmem_map( phys_addr_t phys, ucell virt, ucell size, ucell mode )
-{
- /* printk("+ofmem_map: %08lX --> %08lX (size %08lX, mode 0x%02X)\n",
- virt, phys, size, mode ); */
-
- if( (phys & (PAGE_SIZE - 1)) || (virt & (PAGE_SIZE - 1)) || (size & (PAGE_SIZE - 1)) ) {
-
- OFMEM_TRACE("ofmem_map: Bad parameters ("
- FMT_plx " " FMT_ucellx " " FMT_ucellx ")\n",
- phys, virt, size );
-
- phys &= PAGE_MASK;
- virt &= PAGE_MASK;
- size = (size + (PAGE_SIZE - 1)) & PAGE_MASK;
- }
-
-#if defined(OFMEM_FILL_RANGE)
- {
- ofmem_t *ofmem = ofmem_arch_get_private();
- /* claim any unclaimed virtual memory in the range */
- fill_range( virt, size, &ofmem->virt_range );
- /* hmm... we better claim the physical range too */
- fill_range( phys, size, &ofmem->phys_range );
- }
-#endif
-
- if (mode==-1) {
- mode = ofmem_arch_default_translation_mode(phys);
- }
-
- /* install translations */
- ofmem_map_page_range(phys, virt, size, mode);
-
- /* allow arch to map the pages */
- ofmem_arch_map_pages(phys, virt, size, mode);
-
- return 0;
-}
-
-int ofmem_unmap( ucell virt, ucell size )
-{
- OFMEM_TRACE("ofmem_unmap " FMT_ucellx " " FMT_ucellx "\n",
- virt, size );
-
- if( (virt & (PAGE_SIZE - 1)) || (size & (PAGE_SIZE - 1)) ) {
- /* printk("ofmem_unmap: Bad parameters (%08lX %08lX)\n",
- virt, size ); */
- virt &= PAGE_MASK;
- size = (size + (PAGE_SIZE - 1)) & PAGE_MASK;
- }
-
- /* remove translations and unmap pages */
- unmap_page_range(virt, size);
-
- return 0;
-}
-
-ucell ofmem_map_io( phys_addr_t phys, ucell size )
-{
- /* Claim virtual memory from the I/O range and map the page-aligned
- physical address phys to it, returning the newly allocated
- virtual address */
- ucell virt, mode;
- phys_addr_t off;
- int npages;
-
- off = phys & (PAGE_SIZE - 1);
- npages = (off + size - 1) / PAGE_SIZE + 1;
- phys &= ~(PAGE_SIZE - 1);
-
- virt = ofmem_claim_io(-1, npages * PAGE_SIZE, PAGE_SIZE);
-
- mode = ofmem_arch_io_translation_mode(off);
-
- ofmem_map_page_range(phys, virt, npages * PAGE_SIZE, mode);
- ofmem_arch_map_pages(phys, virt, npages * PAGE_SIZE, mode);
-
- return (virt + off);
-}
-
-/* virtual -> physical. */
-phys_addr_t ofmem_translate( ucell virt, ucell *mode )
-{
- ofmem_t *ofmem = ofmem_arch_get_private();
- translation_t *t;
-
- for( t=ofmem->trans; t && t->virt <= virt ; t=t->next ) {
- ucell offs;
- if( t->virt + t->size - 1 < virt )
- continue;
- offs = virt - t->virt;
- *mode = t->mode;
- return t->phys + offs;
- }
-
- /*printk("ofmem_translate: no translation defined (%08lx)\n", virt);*/
- /*print_trans();*/
- return -1;
-}
-
-static void remove_range_( phys_addr_t ea, ucell size, range_t **r )
-{
- range_t **t, *u;
-
- /* If not an exact match then split the range */
- for (t = r; *t; t = &(**t).next) {
- if (ea > (**t).start && ea < (**t).start + (**t).size - 1) {
- u = (range_t*)malloc(sizeof(range_t));
- u->start = ea;
- u->size = size;
- u->next = (**t).next;
-
- OFMEM_TRACE("remove_range_ splitting range with addr=" FMT_plx
- " size=" FMT_ucellx " -> addr=" FMT_plx " size=" FMT_ucellx ", "
- "addr=" FMT_plx " size=" FMT_ucellx "\n",
- (**t).start, (**t).size, (**t).start, (**t).size - size,
- u->start, u->size);
-
- (**t).size = (**t).size - size;
- (**t).next = u;
- }
- }
-
- for (t = r; *t; t = &(**t).next) {
- if (ea >= (**t).start && ea + size <= (**t).start + (**t).size) {
- OFMEM_TRACE("remove_range_ freeing range with addr=" FMT_plx
- " size=" FMT_ucellx "\n", (**t).start, (**t).size);
- u = *t;
- *t = (**t).next;
- free(u);
- break;
- }
- }
-}
-
-static int remove_range( phys_addr_t ea, ucell size, range_t **r )
-{
- if( is_free( ea, size, *r ) ) {
- OFMEM_TRACE("remove_range: range isn't occupied\n");
- return -1;
- }
- remove_range_( ea, size, r );
- return 0;
-}
-
-/* release memory allocated by ofmem_claim_phys */
-void ofmem_release_phys( phys_addr_t phys, ucell size )
-{
- OFMEM_TRACE("ofmem_release_phys addr=" FMT_plx " size=" FMT_ucellx "\n",
- phys, size);
-
- ofmem_t *ofmem = ofmem_arch_get_private();
- remove_range(phys, size, &ofmem->phys_range);
-}
-
-/* release memory allocated by ofmem_claim_virt */
-void ofmem_release_virt( ucell virt, ucell size )
-{
- OFMEM_TRACE("ofmem_release_virt addr=" FMT_ucellx " size=" FMT_ucellx "\n",
- virt, size);
-
- ofmem_t *ofmem = ofmem_arch_get_private();
- remove_range(virt, size, &ofmem->virt_range);
-}
-
-/* release memory allocated by ofmem_claim_io */
-void ofmem_release_io( ucell virt, ucell size )
-{
- OFMEM_TRACE("ofmem_release_io addr=" FMT_ucellx " size=" FMT_ucellx "\n",
- virt, size);
-
- ofmem_t *ofmem = ofmem_arch_get_private();
- remove_range(virt, size, &ofmem->io_range);
-}
-
-/* release memory allocated by ofmem_claim - 6.3.2.4 */
-void ofmem_release( ucell virt, ucell size )
-{
- OFMEM_TRACE("%s addr=" FMT_ucellx " size=" FMT_ucellx "\n",
- __func__, virt, size);
-
- ucell mode;
- phys_addr_t phys = ofmem_translate(virt, &mode);
- if (phys == (phys_addr_t)-1) {
- OFMEM_TRACE("%s: no mapping\n", __func__);
- return;
- }
- ofmem_unmap(virt, size);
- ofmem_release_virt(virt, size);
- ofmem_release_phys(phys, size);
-}
-
-/************************************************************************/
-/* init / cleanup */
-/************************************************************************/
-
-void ofmem_register( phandle_t ph_memory, phandle_t ph_mmu )
-{
- s_phandle_memory = ph_memory;
- s_phandle_mmu = ph_mmu;
-
- /* Initialise some default property sizes */
- trans_prop_size = phys_range_prop_size = virt_range_prop_size = OFMEM_DEFAULT_PROP_SIZE;
- trans_prop = malloc(trans_prop_size);
- phys_range_prop = malloc(phys_range_prop_size);
- virt_range_prop = malloc(virt_range_prop_size);
-
- ofmem_update_translations();
-}
diff --git a/qemu/roms/openbios/libopenbios/video_common.c b/qemu/roms/openbios/libopenbios/video_common.c
deleted file mode 100644
index 9bbc18c3c..000000000
--- a/qemu/roms/openbios/libopenbios/video_common.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Creation Date: <2002/10/23 20:26:40 samuel>
- * Time-stamp: <2004/01/07 19:39:15 samuel>
- *
- * <video_common.c>
- *
- * Shared video routines
- *
- * Copyright (C) 2002, 2003, 2004 Samuel Rydh (samuel@ibrium.se)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation
- *
- */
-
-#include "config.h"
-#include "libc/vsprintf.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/fontdata.h"
-#include "libopenbios/ofmem.h"
-#include "libopenbios/video.h"
-#include "packages/video.h"
-#include "drivers/vga.h"
-#define NO_QEMU_PROTOS
-#include "arch/common/fw_cfg.h"
-
-struct video_info video;
-
-unsigned long
-video_get_color( int col_ind )
-{
- unsigned long col;
- if( !VIDEO_DICT_VALUE(video.ih) || col_ind < 0 || col_ind > 255 )
- return 0;
- if( VIDEO_DICT_VALUE(video.depth) == 8 )
- return col_ind;
- col = video.pal[col_ind];
- if( VIDEO_DICT_VALUE(video.depth) == 24 || VIDEO_DICT_VALUE(video.depth) == 32 )
- return col;
- if( VIDEO_DICT_VALUE(video.depth) == 15 )
- return ((col>>9) & 0x7c00) | ((col>>6) & 0x03e0) | ((col>>3) & 0x1f);
- return 0;
-}
-
-/* ( fbaddr maskaddr width height fgcolor bgcolor -- ) */
-
-void
-video_mask_blit(void)
-{
- ucell bgcolor = POP();
- ucell fgcolor = POP();
- ucell height = POP();
- ucell width = POP();
- unsigned char *mask = (unsigned char *)POP();
- unsigned char *fbaddr = (unsigned char *)POP();
-
- ucell color;
- unsigned char *dst, *rowdst;
- int x, y, m, b, d, depthbytes;
-
- fgcolor = video_get_color(fgcolor);
- bgcolor = video_get_color(bgcolor);
- d = VIDEO_DICT_VALUE(video.depth);
- depthbytes = (d + 1) >> 3;
-
- dst = fbaddr;
- for( y = 0; y < height; y++) {
- rowdst = dst;
- for( x = 0; x < (width + 1) >> 3; x++ ) {
- for (b = 0; b < 8; b++) {
- m = (1 << (7 - b));
-
- if (*mask & m) {
- color = fgcolor;
- } else {
- color = bgcolor;
- }
-
- if( d >= 24 )
- *((uint32_t*)dst) = color;
- else if( d >= 15 )
- *((uint16_t*)dst) = color;
- else
- *dst = color;
-
- dst += depthbytes;
- }
- mask++;
- }
- dst = rowdst;
- dst += VIDEO_DICT_VALUE(video.rb);
- }
-}
-
-/* ( x y w h fgcolor bgcolor -- ) */
-
-void
-video_invert_rect( void )
-{
- ucell bgcolor = POP();
- ucell fgcolor = POP();
- int h = POP();
- int w = POP();
- int y = POP();
- int x = POP();
- char *pp;
-
- bgcolor = video_get_color(bgcolor);
- fgcolor = video_get_color(fgcolor);
-
- if (!VIDEO_DICT_VALUE(video.ih) || x < 0 || y < 0 || w <= 0 || h <= 0 ||
- x + w > VIDEO_DICT_VALUE(video.w) || y + h > VIDEO_DICT_VALUE(video.h))
- return;
-
- pp = (char*)VIDEO_DICT_VALUE(video.mvirt) + VIDEO_DICT_VALUE(video.rb) * y;
- for( ; h--; pp += *(video.rb) ) {
- int ww = w;
- if( VIDEO_DICT_VALUE(video.depth) == 24 || VIDEO_DICT_VALUE(video.depth) == 32 ) {
- uint32_t *p = (uint32_t*)pp + x;
- while( ww-- ) {
- if (*p == fgcolor) {
- *p++ = bgcolor;
- } else if (*p == bgcolor) {
- *p++ = fgcolor;
- }
- }
- } else if( VIDEO_DICT_VALUE(video.depth) == 16 || VIDEO_DICT_VALUE(video.depth) == 15 ) {
- uint16_t *p = (uint16_t*)pp + x;
- while( ww-- ) {
- if (*p == (uint16_t)fgcolor) {
- *p++ = bgcolor;
- } else if (*p == (uint16_t)bgcolor) {
- *p++ = fgcolor;
- }
- }
- } else {
- char *p = (char *)(pp + x);
-
- while( ww-- ) {
- if (*p == (char)fgcolor) {
- *p++ = bgcolor;
- } else if (*p == (char)bgcolor) {
- *p++ = fgcolor;
- }
- }
- }
- }
-}
-
-/* ( color_ind x y width height -- ) (?) */
-void
-video_fill_rect(void)
-{
- int h = POP();
- int w = POP();
- int y = POP();
- int x = POP();
- int col_ind = POP();
-
- char *pp;
- unsigned long col = video_get_color(col_ind);
-
- if (!VIDEO_DICT_VALUE(video.ih) || x < 0 || y < 0 || w <= 0 || h <= 0 ||
- x + w > VIDEO_DICT_VALUE(video.w) || y + h > VIDEO_DICT_VALUE(video.h))
- return;
-
- pp = (char*)VIDEO_DICT_VALUE(video.mvirt) + VIDEO_DICT_VALUE(video.rb) * y;
- for( ; h--; pp += VIDEO_DICT_VALUE(video.rb) ) {
- int ww = w;
- if( VIDEO_DICT_VALUE(video.depth) == 24 || VIDEO_DICT_VALUE(video.depth) == 32 ) {
- uint32_t *p = (uint32_t*)pp + x;
- while( ww-- )
- *p++ = col;
- } else if( VIDEO_DICT_VALUE(video.depth) == 16 || VIDEO_DICT_VALUE(video.depth) == 15 ) {
- uint16_t *p = (uint16_t*)pp + x;
- while( ww-- )
- *p++ = col;
- } else {
- char *p = (char *)(pp + x);
-
- while( ww-- )
- *p++ = col;
- }
- }
-}
-
-void setup_video()
-{
- /* Make everything inside the video_info structure point to the
- values in the Forth dictionary. Hence everything is always in
- sync. */
- phandle_t options;
- char buf[6];
-
- feval("['] display-ih cell+");
- video.ih = cell2pointer(POP());
-
- feval("['] frame-buffer-adr cell+");
- video.mvirt = cell2pointer(POP());
- feval("['] openbios-video-width cell+");
- video.w = cell2pointer(POP());
- feval("['] openbios-video-height cell+");
- video.h = cell2pointer(POP());
- feval("['] depth-bits cell+");
- video.depth = cell2pointer(POP());
- feval("['] line-bytes cell+");
- video.rb = cell2pointer(POP());
- feval("['] color-palette cell+");
- video.pal = cell2pointer(POP());
-
- /* Set global variables ready for fb8-install */
- PUSH( pointer2cell(video_mask_blit) );
- fword("is-noname-cfunc");
- feval("to fb8-blitmask");
- PUSH( pointer2cell(video_fill_rect) );
- fword("is-noname-cfunc");
- feval("to fb8-fillrect");
- PUSH( pointer2cell(video_invert_rect) );
- fword("is-noname-cfunc");
- feval("to fb8-invertrect");
-
- /* Static information */
- PUSH((ucell)fontdata);
- feval("to (romfont)");
- PUSH(FONT_HEIGHT);
- feval("to (romfont-height)");
- PUSH(FONT_WIDTH);
- feval("to (romfont-width)");
-
- /* Initialise the structure */
- VIDEO_DICT_VALUE(video.w) = VGA_DEFAULT_WIDTH;
- VIDEO_DICT_VALUE(video.h) = VGA_DEFAULT_HEIGHT;
- VIDEO_DICT_VALUE(video.depth) = VGA_DEFAULT_DEPTH;
- VIDEO_DICT_VALUE(video.rb) = VGA_DEFAULT_LINEBYTES;
-
-#if defined(CONFIG_QEMU) && (defined(CONFIG_PPC) || defined(CONFIG_SPARC32) || defined(CONFIG_SPARC64))
- /* If running from QEMU, grab the parameters from the firmware interface */
- int w, h, d;
-
- w = fw_cfg_read_i16(FW_CFG_ARCH_WIDTH);
- h = fw_cfg_read_i16(FW_CFG_ARCH_HEIGHT);
- d = fw_cfg_read_i16(FW_CFG_ARCH_DEPTH);
- if (w && h && d) {
- VIDEO_DICT_VALUE(video.w) = w;
- VIDEO_DICT_VALUE(video.h) = h;
- VIDEO_DICT_VALUE(video.depth) = d;
- VIDEO_DICT_VALUE(video.rb) = (w * ((d + 7) / 8));
- }
-#endif
-
- /* Setup screen-#rows/screen-#columns */
- options = find_dev("/options");
- snprintf(buf, sizeof(buf), FMT_ucell, VIDEO_DICT_VALUE(video.w) / FONT_WIDTH);
- set_property(options, "screen-#columns", buf, strlen(buf) + 1);
- snprintf(buf, sizeof(buf), FMT_ucell, VIDEO_DICT_VALUE(video.h) / FONT_HEIGHT);
- set_property(options, "screen-#rows", buf, strlen(buf) + 1);
-}
diff --git a/qemu/roms/openbios/libopenbios/xcoff_load.c b/qemu/roms/openbios/libopenbios/xcoff_load.c
deleted file mode 100644
index 0dcb28ca4..000000000
--- a/qemu/roms/openbios/libopenbios/xcoff_load.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- *
- * <xcoff_load.c>
- *
- * XCOFF file loader
- *
- * Copyright (C) 2009 Laurent Vivier (Laurent@vivier.eu)
- *
- * from original XCOFF loader by Steven Noonan <steven@uplinklabs.net>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "libopenbios/bindings.h"
-#include "libopenbios/xcoff_load.h"
-
-#include "arch/common/xcoff.h"
-
-#ifdef CONFIG_PPC
-extern void flush_icache_range( char *start, char *stop );
-#endif
-
-//#define DEBUG_XCOFF
-
-#ifdef DEBUG_XCOFF
-#define DPRINTF(fmt, args...) \
- do { printk("%s: " fmt, __func__ , ##args); } while (0)
-#else
-#define DPRINTF(fmt, args...) \
- do { } while (0)
-#endif
-
-int
-is_xcoff(COFF_filehdr_t *fhdr)
-{
- return (fhdr->f_magic == U802WRMAGIC
- || fhdr->f_magic == U802ROMAGIC
- || fhdr->f_magic == U802TOCMAGIC
- || fhdr->f_magic == U802TOMAGIC);
-}
-
-int
-xcoff_load(struct sys_info *info, const char *filename)
-{
- // Currently not implemented
- return LOADER_NOT_SUPPORT;
-}
-
-void
-xcoff_init_program(void)
-{
- char *base;
- COFF_filehdr_t *fhdr;
- COFF_aouthdr_t *ahdr;
- COFF_scnhdr_t *shdr;
- uint32_t offset;
- size_t total_size = 0;
- int i;
-
- feval("0 state-valid !");
-
- feval("load-base");
- base = (char*)cell2pointer(POP());
-
- fhdr = (COFF_filehdr_t*)base;
-
- /* Is it an XCOFF file ? */
- if (!is_xcoff(fhdr)) {
- DPRINTF("Not a XCOFF file %02x\n", fhdr->f_magic);
- return;
- }
-
- /* Is it executable ? */
- if (fhdr->f_magic != 0x01DF &&
- (fhdr->f_flags & COFF_F_EXEC) == 0) {
- DPRINTF("Not an executable XCOFF file %02x\n", fhdr->f_flags);
- return;
- }
-
- /* Optional header is a.out ? */
- if (fhdr->f_opthdr != sizeof(COFF_aouthdr_t)) {
- DPRINTF("AOUT optional error size mismatch in XCOFF file\n");
- return;
- }
-
- ahdr = (COFF_aouthdr_t*)(base + sizeof(COFF_filehdr_t));
-
- /* check a.out magic number */
- if (ahdr->magic != AOUT_MAGIC) {
- DPRINTF("Invalid AOUT optional header\n");
- return;
- }
-
- offset = sizeof(COFF_filehdr_t) + sizeof(COFF_aouthdr_t);
-
- DPRINTF("XCOFF file with %d sections\n", fhdr->f_nscns);
-
- for (i = 0; i < fhdr->f_nscns; i++) {
-
- DPRINTF("Read header at offset %0x\n", offset);
-
- shdr = (COFF_scnhdr_t*)(base + offset);
-
- DPRINTF("Initializing '%s' section from %0x %0x to %0x (%0x)\n",
- shdr->s_name, offset, shdr->s_scnptr,
- shdr->s_vaddr, shdr->s_size);
-
- if (strcmp(shdr->s_name, ".text") == 0) {
-
- memcpy((char*)(uintptr_t)shdr->s_vaddr, base + shdr->s_scnptr,
- shdr->s_size);
- total_size += shdr->s_size;
-#ifdef CONFIG_PPC
- flush_icache_range((char*)(uintptr_t)shdr->s_vaddr,
- (char*)(uintptr_t)(shdr->s_vaddr + shdr->s_size));
-#endif
- } else if (strcmp(shdr->s_name, ".data") == 0) {
-
- memcpy((char*)(uintptr_t)shdr->s_vaddr, base + shdr->s_scnptr,
- shdr->s_size);
- total_size += shdr->s_size;
-
- } else if (strcmp(shdr->s_name, ".bss") == 0) {
-
- memset((void *)(uintptr_t)shdr->s_vaddr, 0, shdr->s_size);
- total_size += shdr->s_size;
- } else {
- DPRINTF(" Skip '%s' section\n", shdr->s_name);
- }
- offset += sizeof(COFF_scnhdr_t);
- }
-
- DPRINTF("XCOFF entry point: %x\n", *(uint32_t*)ahdr->entry);
-
- // Initialise saved-program-state
- PUSH(*(uint32_t*)(uintptr_t)ahdr->entry);
- feval("saved-program-state >sps.entry !");
- PUSH(total_size);
- feval("saved-program-state >sps.file-size !");
- feval("xcoff saved-program-state >sps.file-type !");
-
- feval("-1 state-valid !");
-}