diff -Naur ./gnu/usr.bin/Makefile /usr/home/agh/Dev/KGI/kgi8/kgi8-src/gnu/usr.bin/Makefile --- ./gnu/usr.bin/Makefile 2008-02-23 21:08:54.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/gnu/usr.bin/Makefile 2008-02-23 20:00:32.000000000 +1100 @@ -30,9 +30,9 @@ .endif .endif -.if ${MK_CVS} != "no" -_cvs= cvs -.endif +#.if ${MK_CVS} != "no" +#_cvs= cvs +#.endif .if ${MK_MAN} != "no" _man= man diff -Naur ./gnu/usr.bin/cvs/contrib/Makefile /usr/home/agh/Dev/KGI/kgi8/kgi8-src/gnu/usr.bin/cvs/contrib/Makefile --- ./gnu/usr.bin/cvs/contrib/Makefile 2008-02-23 21:08:52.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/gnu/usr.bin/cvs/contrib/Makefile 2008-02-23 20:00:30.000000000 +1100 @@ -1,31 +1,447 @@ -# $FreeBSD: src/gnu/usr.bin/cvs/contrib/Makefile,v 1.18 2005/06/03 15:08:29 imp Exp $ +# Makefile.in generated by automake 1.7.9 from Makefile.am. +# @configure_input@ -.include "../Makefile.inc" +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. -.PATH: ${CVSDIR}/contrib -.PATH: ${CVSDIR}/man +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. -SCRIPTS= clmerge cln_hist commit_prep cvs2vendor cvs_acls cvscheck \ - log log_accum mfpipe rcs-to-cvs rcs2log rcslock sccs2rcs \ - easy-import +@SET_MAKE@ -FILES= README cvscheck.man cvshelp.man descend.man intro.doc +# Makefile for GNU CVS contributed sources. +# Do not use this makefile directly, but only from `../Makefile'. +# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, +# 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Free Software Foundation, Inc. -EXAMPDIR= ${SHAREDIR}/examples/cvs -FILESDIR= ${EXAMPDIR}/contrib -SCRIPTSDIR= ${FILESDIR} -PERLPATH= /usr/bin/perl -CLEANFILES+= $(SCRIPTS) +# 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; either version 2, or (at your option) +# any later version. -.SUFFIXES: .sh .pl .in +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. -.sh: - cp $< $@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSH = /bin/csh +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EDITOR = @EDITOR@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KRB4 = @KRB4@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MAKE_TARGETS_IN_VPATH_FALSE = @MAKE_TARGETS_IN_VPATH_FALSE@ +MAKE_TARGETS_IN_VPATH_TRUE = @MAKE_TARGETS_IN_VPATH_TRUE@ +MKTEMP = @MKTEMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = /usr/bin/perl +PR = @PR@ +PS2PDF = @PS2PDF@ +RANLIB = @RANLIB@ +ROFF = @ROFF@ +SENDMAIL = @SENDMAIL@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TEXI2DVI = @TEXI2DVI@ +VERSION = @VERSION@ +YACC = @YACC@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +ac_prefix_program = @ac_prefix_program@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build_alias = @build_alias@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +includedir = @includedir@ +includeopt = @includeopt@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ + +contribdir = $(pkgdatadir)/contrib + +contrib_SCRIPTS = \ + check_cvs \ + clmerge \ + cln_hist \ + commit_prep \ + cvs2vendor \ + cvs_acls \ + cvscheck \ + debug_check_log \ + log \ + log_accum \ + mfpipe \ + pvcs2rcs \ + rcs-to-cvs \ + rcs2log \ + rcslock \ + sccs2rcs + + +contrib_DATA = \ + README \ + intro.doc + + +contrib_MANS = \ + cvscheck.man + + +bin_LINKS = \ + rcs2log + + +EXTRA_DIST = \ + .cvsignore \ + $(contrib_DATA) \ + $(contrib_MANS) \ + cvs2vendor.sh \ + cvscheck.sh \ + cvshelp.man \ + debug_check_log.sh \ + descend.sh \ + descend.man \ + dirfns.shar \ + rcs-to-cvs.sh \ + rcs2log.sh \ + rcs2sccs.sh + + +CLEANFILES = $(bin_SCRIPTS) $(contrib_SCRIPTS) + +SUFFIXES = .sh +subdir = contrib +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = check_cvs clmerge cln_hist commit_prep cvs_acls log \ + log_accum mfpipe pvcs2rcs rcs2log rcslock sccs2rcs +SCRIPTS = $(contrib_SCRIPTS) + +DIST_SOURCES = +DATA = $(contrib_DATA) + +DIST_COMMON = README $(srcdir)/Makefile.in ChangeLog Makefile.am \ + check_cvs.in clmerge.in cln_hist.in commit_prep.in cvs_acls.in \ + log.in log_accum.in mfpipe.in pvcs2rcs.in rcs2log.sh rcslock.in \ + sccs2rcs.in +all: all-am + +.SUFFIXES: +.SUFFIXES: .sh +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu contrib/Makefile +Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) +check_cvs: $(top_builddir)/config.status check_cvs.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +clmerge: $(top_builddir)/config.status clmerge.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +cln_hist: $(top_builddir)/config.status cln_hist.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +commit_prep: $(top_builddir)/config.status commit_prep.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +cvs_acls: $(top_builddir)/config.status cvs_acls.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +log: $(top_builddir)/config.status log.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +log_accum: $(top_builddir)/config.status log_accum.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +mfpipe: $(top_builddir)/config.status mfpipe.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +pvcs2rcs: $(top_builddir)/config.status pvcs2rcs.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +rcs2log: $(top_builddir)/config.status rcs2log.sh + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +rcslock: $(top_builddir)/config.status rcslock.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +sccs2rcs: $(top_builddir)/config.status sccs2rcs.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +contribSCRIPT_INSTALL = $(INSTALL_SCRIPT) +install-contribSCRIPTS: $(contrib_SCRIPTS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(contribdir) + @list='$(contrib_SCRIPTS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f $$d$$p; then \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(contribSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f"; \ + $(contribSCRIPT_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f; \ + else :; fi; \ + done + +uninstall-contribSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(contrib_SCRIPTS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f $(DESTDIR)$(contribdir)/$$f"; \ + rm -f $(DESTDIR)$(contribdir)/$$f; \ + done +uninstall-info-am: +contribDATA_INSTALL = $(INSTALL_DATA) +install-contribDATA: $(contrib_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(contribdir) + @list='$(contrib_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(contribDATA_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f"; \ + $(contribDATA_INSTALL) $$d$$p $(DESTDIR)$(contribdir)/$$f; \ + done + +uninstall-contribDATA: + @$(NORMAL_UNINSTALL) + @list='$(contrib_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(contribdir)/$$f"; \ + rm -f $(DESTDIR)$(contribdir)/$$f; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(SCRIPTS) $(DATA) + +installdirs: + $(mkinstalldirs) $(DESTDIR)$(contribdir) $(DESTDIR)$(contribdir) +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: -.pl: - sed -e 's,xPERL_PATHx,$(PERLPATH),' $< > $@ +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -.in: - sed -e 's,@CSH@,/bin/csh,' -e 's,@PERL@,$(PERLPATH),' $< > $@ +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: install-contribDATA install-contribSCRIPTS \ + install-data-local + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-contribDATA uninstall-contribSCRIPTS \ + uninstall-info-am uninstall-local + +.PHONY: all all-am check check-am clean clean-generic distclean \ + distclean-generic distdir dvi dvi-am info info-am install \ + install-am install-contribDATA install-contribSCRIPTS \ + install-data install-data-am install-data-local install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-contribDATA uninstall-contribSCRIPTS \ + uninstall-info-am uninstall-local + + +# we'd rather have a link here rather than two copies of a script +install-data-local: + : FIXME - this path should be determined dynamically from bindir + : and contribdir + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_LINKS)'; for p in $$list; do \ + echo "test ! -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ + echo " && cd $(DESTDIR)$(bindir) && $(LN_S) ../share/$(PACKAGE)/contrib/`echo $$p|sed '$(transform)'` ."; \ + (test ! -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'` \ + && cd $(DESTDIR)$(bindir) && $(LN_S) ../share/$(PACKAGE)/contrib/`echo $$p|sed '$(transform)'` .) \ + || (echo "Link creation failed" && if test -f $$p; then \ + echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + else if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; fi); \ + done + +uninstall-local: + @$(NORMAL_UNINSTALL) + list='$(bin_LINKS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ + done + +.sh: + rm -f $@ + cp $< $@ + chmod +x $@ -.include +# for backwards compatibility with the old makefiles +realclean: maintainer-clean +.PHONY: realclean +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Naur ./sys/conf/NOTES /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/NOTES --- ./sys/conf/NOTES 2008-02-23 21:08:16.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/NOTES 2008-02-23 19:59:46.000000000 +1100 @@ -2344,6 +2344,68 @@ device lpbb device pcfclock +# KGI - Kernel Graphic Interface +# +# +# Enables KGI compatibility +# +options KGI_COMPAT + +# Prevent KGI debug output +# +options KGI_DBG_LEVEL=0 + +# Enable probe of higher modes +# +options KGC_RENDER_800x600 +options KGC_RENDER_1024x768 + +# Use 16bit mode +# +options KGC_RENDER_16BITS + +# Enable console background +# +options KGC_RENDER_BACKGROUND + +# The default font to be used by kgc console. See dev/kgc/kgc_gfbdflt.c +# Currently nothing else than kgc_bold8x16 is in the kernel. +# +options KGC_DEFAULT_FONT=kgc_bold8x16 + +# KGI Kernel Input Parser +# +# It works on top of kbd in RAW mode. Scancodes are translated by +# kip maps which are similar to Linux ones. +# +device kip # Default Kernel Input parser + +# Kernel Graphic Interface core +# +device kgi # Kernel Graphic Interface core system (include KII) + +# Input and Graphic user interfaces (e.g /dev/graphic and /dev/event) +# +device kgu # KGI graphic user interface +device kiu # KGI input user interface + +# Default font to be used by kgc console. See dev/kgc/kgc_gfbdflt.c +# Currently nothing else than kgc_bold8x16 is in the kernel. +# +options KGC_DEFAULT_FONT=kgc_bold8x16 + +# Kernel Graphic Console +# +device kgc # KGI console + +# Experimental FreeBSD adapter implementation on top of KGI +# +#device kga # FreeBSD compatible adapter (broken) + +# Syscons emulation for KGC +# +device scemul + # Kernel BOOTP support options BOOTP # Use BOOTP to obtain IP address/hostname diff -Naur ./sys/conf/files /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/files --- ./sys/conf/files 2008-02-23 21:08:16.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/files 2008-02-23 19:59:46.000000000 +1100 @@ -758,6 +758,46 @@ dev/joy/joy_isa.c optional joy isa dev/joy/joy_pccard.c optional joy pccard dev/kbdmux/kbdmux.c optional kbdmux +dev/kgc/kgc_emudumb.c optional kgc kgi +dev/kgc/kgc_emuxterm.c optional kgc kgi +dev/kgc/kgc_textbuf.c optional kgc kgi +dev/kgc/kgc_gfbdflt.c optional kgc kgi +dev/kgc/kgc_gfbrndr.c optional kgc kgi +dev/kgc/kgc_kgirndr.c optional kgc kgi +dev/kgc/kgc_mapper.c optional kgc kgi +dev/kgc/kgc_render.c optional kgc kgi +dev/kgc/kgc_backgnd.c optional kgc kgi +dev/kgc/kgc_bgndpcx.c optional kgc kgi +dev/kgc/kgc_daemon.c optional kgc kgi +dev/kgc/kgc_scroller.c optional kgc kgi +dev/kgc/kgc_textscroller.c optional kgc kgi +dev/kgc/render_if.m optional kgc kgi +dev/kgc/scroller_if.m optional kgc kgi +dev/scemul/sce_bootconsole.c optional scemul kgc kgi +dev/scemul/sce_vtconsole.c optional scemul kgc kgi +dev/scemul/sce_sysmouse.c optional scemul kgc kgi +dev/scemul/sce_scmouse.c optional scemul kgc kgi +dev/kgi/kgi_core.c optional kgi +dev/kgi/kgi_daemon.c optional kgi +dev/kgi/kgi_dpynull.c optional kgi +dev/kgi/kgi_syspci.c optional kgi +dev/kgi/kgi_sysatomic.c optional kgi +dev/kgi/kgi_sysmem.c optional kgi +dev/kgi/kgi_sysmutex.c optional kgi +dev/kgi/kgu_graphic.c optional kgu kgi +dev/kgi/kgu_resource.c optional kgu kgi +dev/kgi/kgu_command.c optional kgu kgi +dev/kgi/kgu_map.c optional kgu kgi +dev/kgi/kgu_accel.c optional kgu kgi +dev/kgi/kgu_mmio.c optional kgu kgi +dev/kii/kii_core.c optional kgi +dev/kii/kii_action.c optional kgi +dev/kii/kiu_event.c optional kiu kgi +dev/kip/kip_defaults.c optional kip kgi +dev/kip/kip_kbdriver.c optional kip kgi +dev/kip/kip_keymap.c optional kip kgi +dev/kip/kip_modifiers.c optional kip kgi +dev/kip/kip_symbols.c optional kip kgi dev/le/am7990.c optional le dev/le/am79900.c optional le dev/le/if_le_pci.c optional le pci @@ -875,7 +915,7 @@ dev/pci/pci_pci.c optional pci dev/pci/pci_user.c optional pci dev/pci/pcib_if.m standard -dev/pci/vga_pci.c optional pci +#dev/pci/vga_pci.c optional pci dev/pdq/if_fea.c optional fea eisa dev/pdq/if_fpa.c optional fpa pci dev/pdq/pdq.c optional nowerror fea eisa | fpa pci @@ -2088,6 +2128,7 @@ ufs/ufs/ufs_vnops.c optional ffs vm/default_pager.c standard vm/device_pager.c standard +vm/kgi_pager.c standard vm/phys_pager.c standard vm/redzone.c optional DEBUG_REDZONE vm/swap_pager.c standard diff -Naur ./sys/conf/files.i386 /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/files.i386 --- ./sys/conf/files.i386 2008-02-23 21:08:16.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/files.i386 2008-02-23 19:59:46.000000000 +1100 @@ -221,7 +221,12 @@ dev/ipmi/ipmi_smbios.c optional ipmi dev/ipmi/ipmi_ssif.c optional ipmi smbus dev/ipmi/ipmi_pci.c optional ipmi pci -dev/kbd/kbd.c optional atkbd | sc | ukbd +dev/kbd/kbd.c optional atkbd | sc | ukbd | vt | kgi +dev/kgy/kgy_disp.c optional kgy kgi +dev/kgy/kgy_mode.c optional kgy kgi +dev/kgy/kgy_text16.c optional kgy kgi +dev/kgy/kgy_splash.c optional kgy kgi +dev/kgim/kgim.c optional kgim kgi dev/le/if_le_isa.c optional le isa dev/mem/memutil.c optional mem dev/mse/mse.c optional mse diff -Naur ./sys/conf/kern.mk /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/kern.mk --- ./sys/conf/kern.mk 2008-02-23 21:08:16.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/kern.mk 2008-02-23 19:59:46.000000000 +1100 @@ -12,7 +12,7 @@ .else CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \ - ${_wundef} ${_Wno_pointer_sign} -fformat-extensions + ${_wundef} ${_Wno_pointer_sign} -fformat-extensions -fgnu89-inline .if !defined(WITH_GCC3) _Wno_pointer_sign=-Wno-pointer-sign .endif diff -Naur ./sys/conf/kmod.mk /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/kmod.mk --- ./sys/conf/kmod.mk 2008-02-23 21:08:16.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/kmod.mk 2008-02-23 19:59:46.000000000 +1100 @@ -333,7 +333,8 @@ dev/sound/midi/synth_if.m dev/usb/usb_if.m isa/isa_if.m \ kern/bus_if.m kern/cpufreq_if.m kern/device_if.m kern/serdev_if.m \ libkern/iconv_converter_if.m opencrypto/cryptodev_if.m \ - pc98/pc98/canbus_if.m + pc98/pc98/canbus_if.m pci/agp_if.m \ + dev/kgc/scroller_if.m dev/kgc/render_if.m .for _srcsrc in ${MFILES} .for _ext in c h diff -Naur ./sys/conf/options /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/options --- ./sys/conf/options 2008-02-23 21:08:16.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/options 2008-02-23 19:59:46.000000000 +1100 @@ -513,6 +513,15 @@ NETATALKDEBUG opt_atalk.h SI_DEBUG opt_debug_si.h +# KGI options +KGI_COMPAT opt_kgi.h +KGI_DBG_LEVEL opt_kgi.h +KGC_DEFAULT_FONT opt_kgi.h +KGC_RENDER_BACKGROUND opt_kgi.h +KGC_RENDER_1024x768 opt_kgi.h +KGC_RENDER_800x600 opt_kgi.h +KGC_RENDER_16BITS opt_kgi.h + # Fb options FB_DEBUG opt_fb.h FB_INSTALL_CDEV opt_fb.h diff -Naur ./sys/conf/options.i386 /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/options.i386 --- ./sys/conf/options.i386 2008-02-23 21:08:16.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/options.i386 2008-02-23 19:59:46.000000000 +1100 @@ -91,6 +91,10 @@ VESA VESA_DEBUG opt_vesa.h + +KGI_NOSPLASH opt_kgi.h +CONFIG_FB_ATY_GX opt_kgi.h +CONFIG_FB_ATY_CT opt_kgi.h PSM_DEBUG opt_psm.h PSM_HOOKRESUME opt_psm.h diff -Naur ./sys/conf/updep.sh /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/updep.sh --- ./sys/conf/updep.sh 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/conf/updep.sh 2008-02-23 19:59:46.000000000 +1100 @@ -0,0 +1,12 @@ +#! /bin/sh +# +# updep +# +# $FreeBSD$ +# + +OFILE=$1; shift; +CFILE=$1; shift; + +sed -e "s#^.*: ${CFILE}#${OFILE}: ${CFILE}#" .newdep > .depend +mv .depend .newdep diff -Naur ./sys/dev/fb/fb.c /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/fb/fb.c --- ./sys/dev/fb/fb.c 2008-02-23 21:08:23.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/fb/fb.c 2008-02-23 19:59:54.000000000 +1100 @@ -533,6 +533,7 @@ { KD_VGA, "VGA" }, { KD_PC98, "PC-98x1" }, { KD_TGA, "TGA" }, + { KD_KGI, "KGI" }, { -1, "Unknown" }, }; int i; @@ -608,6 +609,7 @@ { FBTYPE_VGA, KD_VGA }, { FBTYPE_PC98, KD_PC98 }, { FBTYPE_TGA, KD_TGA }, + { FBTYPE_KGI, KD_KGI }, }; int i; diff -Naur ./sys/dev/fb/kgia.c /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/fb/kgia.c --- ./sys/dev/fb/kgia.c 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/fb/kgia.c 2008-02-23 19:59:54.000000000 +1100 @@ -0,0 +1,550 @@ +/* ---------------------------------------------------------------------------- +** KGI vidsw emulation driver +** ---------------------------------------------------------------------------- +** Copyright (C) 2002 Nicholas Souchu +** +** This file is distributed under the terms and conditions of the +** MIT/X public license. Please see the file COPYRIGHT.MIT included +** with this software for details of these terms and conditions. +** Alternatively you may distribute this file under the terms and +** conditions of the GNU General Public License. Please see the file +** COPYRIGHT.GPL included with this software for details of these terms +** and conditions. +** ---------------------------------------------------------------------------- +** +** $FreeBSD$ +** +** Currently this is only a complementary video_switch like VESA. XXX +** Later, it should be a true adapter/video driver like TGA/GFB couple with +** a syscons renderer. +*/ +#include +#define MAINTAINER Nicholas_Souchu + +#include +#include +#include +#include +#include + +#include +#include + +#define DEBUG_LEVEL 2 + +#define KGI_SYS_NEED_IO +#include +#include + +#include +#include + +static int kgia_init_done = 0; + +static video_switch_t *prevvidsw; +static video_adapter_t *kgia_adp = NULL; + +struct kgia_data +{ +#ifdef kii_used + kii_device_t kii; +#endif + kgi_device_t kgi; + kgi_mode_t kgimode; + + kgi_mmio_region_t *mmio; + kgi_text16_t *text16; + kgi_ilut_t *ilut; + kgi_tlut_t *tlut; + kgi_marker_t *cur; + kgi_marker_t *ptr; + kgi_font_t *font; + + kgi_ucoord_t visible; /* visible size of buffer */ +} kgia; + +static int +kgia_error(void) +{ + return 1; +} + +static int +kgia_probe(int unit, video_adapter_t **adpp, void *arg, int flags) +{ + return (*prevvidsw->probe)(unit, adpp, arg, flags); +} + +static int +kgia_init(int unit, video_adapter_t *adp, int flags) +{ + return (*prevvidsw->init)(unit, adp, flags); +} + +static int +kgia_get_info(video_adapter_t *adp, int mode, video_info_t *info) +{ + /* Bypass the KGI framework to provide directly the mode info XXX + */ + return (*prevvidsw->get_info)(adp, mode, info); +} + +static int +kgia_query_mode(video_adapter_t *adp, video_info_t *info) +{ + kgi_device_t k; + kgi_mode_t m; + + memset(&m.img[0], 0, sizeof(info)); + m.images = 1; + + if (!(info->vi_flags & V_INFO_GRAPHICS)) + goto error; + + m.img[0].fam |= KGI_AM_COLORS; + + switch (info->vi_depth) { + case 16: /* XXX only 16 bit modes */ + default: + m.img[0].bpfa[0] = 5; + m.img[0].bpfa[1] = 6; + m.img[0].bpfa[2] = 5; + break; + } + m.img[0].size.x = m.img[0].virt.x = info->vi_width; + m.img[0].size.y = m.img[0].virt.y = info->vi_height; + + k.mode = &m; + + if (kgi_register_device(&k, 0) != KGI_EOK) + goto error; + + kgi_unregister_device(&k); + + return 0; + + error: + return ENODEV; +} + +static int +kgia_set_mode(video_adapter_t *adp, int mode) +{ + kgi_image_mode_t kgi_mode; + + /* XXX refuse other modes than 640x480x4 */ + if (mode != M_CG640x480) + return EINVAL; + + if (kgia.kgi.flags & KGI_DF_FOCUSED) + kgi_unmap_device(kgia.kgi.id); + + /* XXX search mode according to mode index */ + memset(&kgi_mode, 0, sizeof(kgi_mode)); + kgi_mode.fam |= KGI_AM_COLORS; + kgi_mode.cam |= KGI_AM_COLOR_INDEX; + kgi_mode.bpfa[0] = 4; + kgi_mode.bpfa[1] = 0; + kgi_mode.size.x = kgi_mode.virt.x = 640; + kgi_mode.size.y = kgi_mode.virt.y = 480; + + kgia.kgi.mode->img[0] = kgi_mode; + + kgi_map_device(kgia.kgi.id); + + return 0; +} + +static int +kgia_save_font(video_adapter_t *adp, int page, int fontsize, u_char *data, + int ch, int count) +{ + if (!kgia.font) + return EINVAL; + + kgia.font->Save(kgia.font, page, fontsize, data, ch, count); + + return 0; +} + +static int +kgia_load_font(video_adapter_t *adp, int page, int fontsize, u_char *data, + int ch, int count) +{ + if (!kgia.font) + return EINVAL; + + kgia.font->Load(kgia.font, page, fontsize, data, ch, count); + + return 0; +} + +static int +kgia_show_font(video_adapter_t *adp, int page) +{ + if (!kgia.font) + return EINVAL; + + kgia.font->Show(kgia.font, page); + + return 0; +} + +static int +kgia_save_palette(video_adapter_t *adp, u_char *palette) +{ + return 1; +} + +static int +kgia_load_palette(video_adapter_t *adp, u_char *palette) +{ + return 1; +} + +static int +kgia_set_border(video_adapter_t *adp, int color) +{ + return (*prevvidsw->set_border)(adp, color); +} + +static int +kgia_save_state(video_adapter_t *adp, void *p, size_t size) +{ + return (*prevvidsw->save_state)(adp, p, size); +} + +static int +kgia_load_state(video_adapter_t *adp, void *p) +{ + return (*prevvidsw->load_state)(adp, p); +} + +static int +kgia_set_origin(video_adapter_t *adp, off_t offset) +{ + if (!kgia.mmio) + return EINVAL; + + kgia.mmio->SetOffset(kgia.mmio, (kgi_size_t)offset); + + return 0; +} + +static int +kgia_read_hw_cursor(video_adapter_t *adp, int *col, int *row) +{ + return 1; +} + +static int +kgia_set_hw_cursor(video_adapter_t *adp, int col, int row) +{ + return 1; +} + +static int +kgia_set_hw_cursor_shape(video_adapter_t *adp, int base, int height, + int celsize, int blink) +{ + return 1; +} + +static int +kgia_blank_display(video_adapter_t *adp, int mode) +{ + return (*prevvidsw->blank_display)(adp, mode); +} + +static int +kgia_mmap(video_adapter_t *adp, vm_offset_t offset, int prot) +{ + return 1; +} + +static int +kgia_clear(video_adapter_t *adp) +{ + return 1; +} + +static int +kgia_fill_rect(video_adapter_t *adp, int val, int x, int y, int cx, int cy) +{ + return 1; +} + +static int +kgia_bitblt(video_adapter_t *adp,...) +{ + return 1; +} + +static int +kgia_ioctl(video_adapter_t *adp, u_long cmd, caddr_t arg) +{ + return 1; +} + +static int +kgia_diag(video_adapter_t *adp, int level) +{ + return 1; +} + +static video_switch_t kgividsw = { + kgia_probe, + kgia_init, + kgia_get_info, + kgia_query_mode, + kgia_set_mode, + kgia_save_font, + kgia_load_font, + kgia_show_font, + kgia_save_palette, + kgia_load_palette, + kgia_set_border, + kgia_save_state, + kgia_load_state, + kgia_set_origin, + kgia_read_hw_cursor, + kgia_set_hw_cursor, + kgia_set_hw_cursor_shape, + kgia_blank_display, + kgia_mmap, + kgia_ioctl, + kgia_clear, + kgia_fill_rect, + kgia_bitblt, + kgia_error, + kgia_error, + kgia_diag, +}; + +static int +kgia_configure(int flags) +{ + int error = 0; + int i; + video_adapter_t *adp; + + kgi_u_t index = 0; + kgi_resource_t *resource; + kgi_marker_t *marker; + + /* + * If the kgia module has already been loaded, abort loading + * the module this time. + */ + for (i = 0; (adp = vid_get_adapter(i)) != NULL; ++i) { + if (adp->va_flags & V_ADP_KGI) + return ENXIO; + if (adp->va_type == KD_VGA) + break; + } + + /* + * The VGA adapter is not found. This is because either + * 1) the VGA driver has not been initialized, or 2) the VGA card + * is not present. If 1) is the case, we shall defer + * initialization for now and try again later. + */ + + /* XXX may collide with VESA */ + if (adp == NULL) { + vga_sub_configure = kgia_configure; + return ENODEV; + } + + kgia_adp = adp; + kgia_adp->va_flags |= V_ADP_KGI; + + /* Check that a kgi display is registered */ + if (kgi_display_registered(0) != KGI_EOK) { + error = ENODEV; + goto end; + } + + /* Register the adapter as a KGI device */ + if ((error = kgi_register_device(&(kgia.kgi), 0)) != KGI_EOK) { + goto end; + } + + while ((index < __KGI_MAX_NR_IMAGE_RESOURCES) && + (resource = kgia.kgi.mode->img[0].resource[index])) { + + switch (resource->type) { + + case KGI_RT_MMIO_FRAME_BUFFER: + KRN_DEBUG(2, "mmio: %s", resource->name); + kgia.mmio = (kgi_mmio_region_t *) resource; + break; + + case KGI_RT_TEXT16_CONTROL: + KRN_DEBUG(2, "text16: %s", resource->name); + kgia.text16 = (kgi_text16_t *) resource; + break; + + case KGI_RT_CURSOR_CONTROL: + marker = (kgi_marker_t *) resource; + if ((NULL == kgia.cur) || + (kgia.cur->Undo && (NULL == marker->Undo))) { + + KRN_DEBUG(2, "cursor: %s", resource->name); + kgia.cur = marker; + } + break; + + case KGI_RT_POINTER_CONTROL: + marker = (kgi_marker_t *) resource; + if ((NULL == kgia.ptr) || + (kgia.ptr->Undo && (NULL == marker->Undo))) { + + KRN_DEBUG(2, "pointer: %s", resource->name); + kgia.ptr = marker; + } + break; + + case KGI_RT_TLUT_CONTROL: + KRN_DEBUG(2, "tlut: %s", resource->name); + kgia.tlut = (kgi_tlut_t *) resource; + break; + + case KGI_RT_ILUT_CONTROL: + KRN_DEBUG(2, "ilut: %s", resource->name); + kgia.ilut = (kgi_ilut_t *) resource; + break; + + case KGI_RT_FONT_CONTROL: + KRN_DEBUG(2, "font: %s", resource->name); + kgia.font = (kgi_font_t *) resource; + break; + + default: + break; + } + index++; + } + + if (! (kgia.text16)) { + + KRN_DEBUG(1, "could not get text16 resource " + "(text16 %p, cur %p, ptr %p)", + kgia.text16, kgia.cur, kgia.ptr); + return EINVAL; + } + + kgia.visible.x = kgia.text16->size.x; + kgia.visible.y = kgia.text16->size.y; + + kgia.kgimode.images = 1; + kgia.kgimode.img[0].flags |= KGI_IF_TEXT16; + + kgia.kgi.mode = &(kgia.kgimode); + kgia.kgi.flags |= KGI_DF_CONSOLE; + kgia.kgi.priv.priv_ptr = &kgia; + +#ifdef kii_used + kgia.kii.tty = current->tty; + kgia.kii.flags |= KII_DF_CONSOLE; + kgia.kii.priv.priv_ptr = kgia; +#endif + kgia.kgi.MapDevice = NULL; + kgia.kgi.UnmapDevice = NULL; + kgia.kgi.HandleEvent = NULL; + + if (!kgi_current_focus(kgia.kgi.dpy_id)) { + kgi_map_device(kgia.kgi.id); +#ifdef kii_used + if (! kii_current_focus(kgia.kgi.kii.focus_id)) + kii_map_device(kgia.kgi.kii.id); +#endif + } + + end: + if (error) { + kgia_adp = NULL; + return error; + } + + prevvidsw = vidsw[kgia_adp->va_index]; + vidsw[kgia_adp->va_index] = &kgividsw; + kgia_init_done = TRUE; + + return 0; +} + +static int +kgia_load(void) +{ + int error = 0; + int s; + + if (kgia_init_done) + return 0; + + /* locate a VGA adapter */ + s = spltty(); + kgia_adp = NULL; + error = kgia_configure(0); + splx(s); + + return error; +} + +static int +kgia_unload(void) +{ + int error = 0; + int s; + + s = spltty(); + if (kgia_adp != NULL) { + +#ifdef kii_used + if (kgia.kii.flags & KII_DF_FOCUSED) { + kii_unmap_device(kgia.kii.id); + } +#endif + if (kgia.kgi.flags & KGI_DF_FOCUSED) { + kgi_unmap_device(kgia.kgi.id); + } +#ifdef kii_used + kii_unregister_device(&(kgia.kii)); +#endif + kgi_unregister_device(&(kgia.kgi)); + + kgia_adp->va_flags &= ~V_ADP_KGI; + vidsw[kgia_adp->va_index] = prevvidsw; + } + splx(s); + + return error; +} + +static int +kgia_mod_event(module_t mod, int type, void *data) +{ + switch (type) { + case MOD_LOAD: + return kgia_load(); + case MOD_UNLOAD: + return kgia_unload(); + default: + break; + } + return 0; +} + +static moduledata_t kgia_mod = { + "kgia", + kgia_mod_event, + NULL, +}; + +DECLARE_MODULE(kgia, kgia_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE); +MODULE_VERSION(kgia, 1); + +#include +MODULE_DEPEND(kgia, kgi, KGI_MINVER, KGI_PREFVER, KGI_MAXVER); +MODULE_DEPEND(kgia, dpysw, 1, 1, 1); diff -Naur ./sys/dev/kbd/kbd.c /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kbd/kbd.c --- ./sys/dev/kbd/kbd.c 2008-02-23 21:08:24.000000000 +1100 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kbd/kbd.c 2008-02-23 19:59:56.000000000 +1100 @@ -180,6 +180,8 @@ return (0); } +void kip_kbd_register(keyboard_t *kbd, int index); + /* register a keyboard and associate it with a function table */ int kbd_register(keyboard_t *kbd) @@ -222,7 +224,7 @@ kbdd_ioctl(mux, KBADDKBD, (caddr_t) &ki); } - return (index); + goto found; } } SET_FOREACH(list, kbddriver_set) { @@ -239,11 +241,15 @@ kbdd_ioctl(mux, KBADDKBD, (caddr_t) &ki); } - return (index); + goto found; } } return (-1); + +found: + kip_kbd_register(kbd, index); /* XXX hardwired */ + return (index); } int diff -Naur ./sys/dev/kgc/default-color /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-color --- ./sys/dev/kgc/default-color 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-color 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,26 @@ +/* ---------------------------------------------------------------------------- +** default ANSI textmode palette +** ---------------------------------------------------------------------------- +*/ +#define I(x) ((0xFFFF * (x))/100) + +const kgi_u16_t default_color_text16_ilut[3*16] = +{ + I( 0), I( 0), I( 0), /* black */ + I( 0), I( 0), I( 66), /* blue */ + I( 0), I( 66), I( 0), /* green */ + I( 0), I( 66), I( 66), /* cyan */ + I( 66), I( 0), I( 0), /* red */ + I( 66), I( 0), I( 66), /* magenta */ + I( 66), I( 66), I( 0), /* brown */ + I( 66), I( 66), I( 66), /* light gray */ + I( 33), I( 33), I( 33), /* dark gray */ + I( 33), I( 33), I(100), /* light blue */ + I( 33), I(100), I( 33), /* light green */ + I( 33), I(100), I(100), /* light cyan */ + I(100), I( 33), I( 33), /* light red */ + I(100), I( 33), I(100), /* light magenta */ + I(100), I(100), I( 33), /* yellow */ + I(100), I(100), I(100) /* white */ +}; +#undef I diff -Naur ./sys/dev/kgc/default-font-ibm437 /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437 --- ./sys/dev/kgc/default-font-ibm437 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,210 @@ +/* +** mapping info to map iso10646 characters to IBM codepage 437 +*/ + +#define NONE 0x00 + +static kgi_u8_t default_font_ibm437_info_00[256] = +{ 0x00, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + 0xff, 0xad, 0x9b, 0x9c, NONE, 0x9d, NONE, 0x15, + NONE, NONE, 0xa6, 0xae, 0xaa, NONE, NONE, NONE, + 0xf8, 0xf1, 0xfd, NONE, NONE, 0xe6, 0x14, 0xfa, + NONE, NONE, 0xa7, 0xaf, 0xac, 0xab, NONE, 0xa8, + NONE, NONE, NONE, NONE, 0x8e, 0x8f, 0x92, 0x80, + NONE, 0x90, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, 0xa5, NONE, NONE, NONE, NONE, 0x99, NONE, + NONE, NONE, NONE, NONE, 0x9a, NONE, NONE, 0xe1, + 0x85, 0xa0, 0x83, NONE, 0x84, 0x86, 0x91, 0x87, + 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, + NONE, 0xa4, 0x95, 0xa2, 0x93, NONE, 0x94, 0xf6, + NONE, 0x97, 0xa3, 0x96, 0x81, NONE, NONE, 0x98 +}; + +static kgi_console_font_cellinfo_t default_font_ibm437_info_01[] = +{ { 0x0192, 1 }, + { 0x0192, 0x9f } +}; + +static kgi_console_font_cellinfo_t default_font_ibm437_info_03[] = +{ { 0x03c6, 12 }, + { 0x0393, 0xe2 }, { 0x0398, 0xe9 }, { 0x03a3, 0xe4 }, { 0x03a6, 0xe8 }, + { 0x03a9, 0xea }, { 0x03b1, 0xe0 }, { 0x03b4, 0xeb }, { 0x03b5, 0xee }, + { 0x03c0, 0xe3 }, { 0x03c3, 0xe5 }, { 0x03c4, 0xe7 }, { 0x03c6, 0xed } +}; + +static kgi_console_font_cellinfo_t default_font_ibm437_info_20[] = +{ { 0x20a7, 4 }, + { 0x2022, 0x07 }, { 0x203c, 0x13 }, { 0x207f, 0xfc }, { 0x20a7, 0x9e } +}; + +static kgi_console_font_cellinfo_t default_font_ibm437_info_21[] = +{ { 0x21a8, 7 }, + { 0x2190, 0x1b }, { 0x2191, 0x18 }, { 0x2192, 0x1a }, { 0x2193, 0x19 }, + { 0x2194, 0x1d }, { 0x2195, 0x12 }, { 0x21a8, 0x17 } +}; + +static kgi_console_font_cellinfo_t default_font_ibm437_info_22[] = +{ { 0x2265, 9 }, + { 0x2219, 0xf9 }, { 0x221a, 0xfb }, { 0x221e, 0xec }, { 0x221f, 0x1c }, + { 0x2229, 0xef }, { 0x2248, 0xf7 }, { 0x2261, 0xf0 }, { 0x2264, 0xf3 }, + { 0x2265, 0xf2 } +}; + +static kgi_console_font_cellinfo_t default_font_ibm437_info_23[] = +{ { 0x2321, 4 }, + { 0x2302, 0x7f }, { 0x2310, 0xa9 }, { 0x2320, 0xf4 }, { 0x2321, 0xf5 } +}; + +static kgi_u8_t default_font_ibm437_info_25[256] = +{ 0xc4, NONE, 0xb3, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, 0xda, NONE, NONE, NONE, + 0xbf, NONE, NONE, NONE, 0xc0, NONE, NONE, NONE, + 0xd9, NONE, NONE, NONE, 0xc3, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, 0xb4, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, 0xc2, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, 0xc1, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, 0xc5, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, + 0xd0, 0xca, 0xd8, 0xd7, 0xce, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + 0xdf, NONE, NONE, NONE, 0xdc, NONE, NONE, NONE, + 0xdb, NONE, NONE, NONE, 0xdd, NONE, NONE, NONE, + 0xde, 0xb0, 0xb1, 0xb2, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + 0xfe, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, 0x16, NONE, NONE, NONE, + NONE, NONE, 0x1e, NONE, NONE, NONE, 0x10, NONE, + NONE, NONE, NONE, NONE, 0x1f, NONE, NONE, NONE, + 0x11, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, 0x09, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + 0x08, 0x0a, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE +}; + +static kgi_console_font_cellinfo_t default_font_ibm437_info_26[] = +{ { 0x266b, 11 }, + { 0x263a, 0x01 }, { 0x263b, 0x02 }, { 0x263c, 0x0f }, { 0x2640, 0x0c }, + { 0x2642, 0x0b }, { 0x2660, 0x06 }, { 0x2663, 0x05 }, { 0x2665, 0x03 }, + { 0x2666, 0x04 }, { 0x266a, 0x0d }, { 0x266b, 0x0e } +}; + +#define I(x) default_font_ibm437_info_##x +static kgi_console_font_info_t default_font_ibm437_info = +{ + 256, /* number font positions */ + '?' /* NONE */, /* default font position */ + { 0x00000001, 0x00000020, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000 + }, + { I(00),I(01),NULL, I(03),NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + I(20),I(21),I(22),I(23),NULL, I(25),I(26),NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + }, + { 0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, + 0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, + 0x25b6, 0x25c0, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x25ac, 0x21a8, + 0x2191, 0x2193, 0x2192, 0x2190, 0x221f, 0x2194, 0x25b2, 0x25bc, + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, + 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, + 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, + 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, + 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, + 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, + 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2302, + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 + } +}; +#undef I + +#ifdef CONFIG_ISO_FONT_9x16 +# include +# undef CONFIG_ISO_FONT_9x16 +# define CONFIG_ISO_FONT_9x16 &default_font_ibm437_9x16, +#endif +#ifdef CONFIG_ISO_FONT_8x14 +# include +# undef CONFIG_ISO_FONT_8x14 +# define CONFIG_ISO_FONT_8x14 &default_font_ibm437_8x14, +#endif +#ifdef CONFIG_ISO_FONT_8x8 +# include +# undef CONFIG_ISO_FONT_8x8 +# define CONFIG_ISO_FONT_8x8 &default_font_ibm437_8x8, +#endif diff -Naur ./sys/dev/kgc/default-font-ibm437-08x08 /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437-08x08 --- ./sys/dev/kgc/default-font-ibm437-08x08 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437-08x08 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,273 @@ +/* +** 8x8 standard VGA font (IBM codepage 437) +*/ + +static kgi_u8_t default_font_ibm437_data_8x8[] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, + 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, + 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, + 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, + 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C, + 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, + 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, + 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, + 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, + 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, + 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, + 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, + 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0, + 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, + 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, + 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, + 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, + 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, + 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, + 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, + 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, + 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, + 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, + 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, + 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, + 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, + 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, + 0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00, + 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, + 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00, + 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, + 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, + 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, + 0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00, + 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, + 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00, + 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00, + 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, + 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00, + 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, + 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, + 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, + 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00, + 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, + 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00, + 0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, + 0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, + 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00, + 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00, + 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, + 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, + 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00, + 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00, + 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00, + 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, + 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, + 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, + 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, + 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, + 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00, + 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, + 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, + 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, + 0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00, + 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00, + 0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00, + 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, + 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, + 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, + 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, + 0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00, + 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00, + 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00, + 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, + 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00, + 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, + 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, + 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00, + 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00, + 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, + 0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00, + 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, + 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00, + 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, + 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, + 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00, + 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, + 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00, + 0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, + 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, + 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0, + 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E, + 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00, + 0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00, + 0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00, + 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, + 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, + 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, + 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00, + 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, + 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, + 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, + 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, + 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C, + 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, + 0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, + 0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00, + 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, + 0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, + 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38, + 0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, + 0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, + 0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, + 0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, + 0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, + 0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, + 0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, + 0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00, + 0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00, + 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00, + 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00, + 0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, + 0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, + 0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, + 0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, + 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00, + 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, + 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18, + 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00, + 0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30, + 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3, + 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70, + 0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, + 0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, + 0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, + 0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00, + 0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00, + 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, + 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, + 0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00, + 0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F, + 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03, + 0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00, + 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, + 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, + 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, + 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, + 0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, + 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, + 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, + 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, + 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, + 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, + 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, + 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, + 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, + 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, + 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, + 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00, + 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0, + 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, + 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, + 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00, + 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00, + 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0, + 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00, + 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC, + 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00, + 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00, + 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00, + 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, + 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0, + 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00, + 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, + 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, + 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00, + 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00, + 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00, + 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70, + 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, + 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, + 0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, + 0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static kgi_console_font_t default_font_ibm437_8x8 = +{ + { 8, 8 }, /* character cell */ + { 8, 8 }, /* bitmap size */ + 6, /* base line */ + + &default_font_ibm437_info, + default_font_ibm437_data_8x8 +}; diff -Naur ./sys/dev/kgc/default-font-ibm437-08x14 /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437-08x14 --- ./sys/dev/kgc/default-font-ibm437-08x14 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437-08x14 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,465 @@ +/* +** 8x14 standard VGA font (IBM codepage 437) +*/ + +static kgi_u8_t default_font_ibm437_data_8x14[] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD, 0x99, 0x81, + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, + 0xDB, 0xFF, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE, + 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, + 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x3C, 0x3C, 0xE7, 0xE7, 0xE7, 0x99, 0x18, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, + 0x7E, 0xFF, 0xFF, 0x7E, 0x18, 0x18, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, + 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x1E, 0x0E, 0x1A, 0x32, + 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, + 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30, 0x70, 0xF0, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x63, + 0x7F, 0x63, 0x63, 0x63, 0x67, 0xE7, 0xE6, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, + 0xE7, 0x3C, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF8, 0xFE, 0xF8, + 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x06, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x06, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, + 0x7E, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, + 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x7C, + 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x38, + 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, + 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, + 0xFE, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x28, 0x6C, 0xFE, 0x6C, 0x28, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x38, 0x38, 0x7C, 0x7C, 0xFE, 0xFE, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, + 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, + 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, + 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0, 0x7C, 0x06, + 0x86, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0x18, 0x30, 0x66, + 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, + 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, + 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18, + 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xCE, 0xDE, 0xF6, 0xE6, + 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, + 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC6, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, + 0x3C, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, + 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xC0, 0xC0, 0xFC, 0x0E, 0x06, 0x06, 0xC6, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x60, + 0xC0, 0xC0, 0xFC, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x06, 0x0C, + 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, + 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7C, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x06, 0x0C, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x30, + 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, + 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, + 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE, 0xDE, 0xDE, + 0xDC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, + 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x66, + 0x66, 0x66, 0x7C, 0x66, 0x66, 0x66, 0xFC, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, + 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x66, + 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, + 0xC0, 0xDE, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0C, + 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xE6, 0x66, 0x6C, 0x6C, + 0x78, 0x6C, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0xC6, + 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xE6, + 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0xC6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x60, + 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xDE, 0x7C, + 0x0C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x66, + 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0xE6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, + 0x38, 0x0C, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, + 0xD6, 0xD6, 0xFE, 0x7C, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x38, 0x38, 0x38, + 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC6, + 0x8C, 0x18, 0x30, 0x60, 0xC2, 0xC6, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, + 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, + 0x3C, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, + 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x60, + 0x60, 0x78, 0x6C, 0x66, 0x66, 0x66, 0xDC, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, + 0xC6, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC, + 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC6, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, + 0x64, 0x60, 0xF0, 0x60, 0x60, 0x60, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, + 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00, + 0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C, 0x76, 0x66, + 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, + 0x00, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, + 0x3C, 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, + 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xD6, 0xD6, 0xD6, + 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, + 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, + 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0x7C, + 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xDC, 0x76, 0x62, 0x60, 0x60, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, + 0xC6, 0x70, 0x1C, 0xC6, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x30, 0x30, 0xFC, 0x30, 0x30, + 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, + 0xC6, 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, + 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, + 0x06, 0x0C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xCC, 0x18, 0x30, 0x66, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, + 0x70, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, + 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x18, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, + 0x6C, 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC2, + 0x66, 0x3C, 0x0C, 0x06, 0x7C, 0x00, 0x00, 0x00, + 0xCC, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, + 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC6, 0x7C, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, + 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x30, 0x18, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x38, + 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, + 0x60, 0x66, 0x3C, 0x0C, 0x06, 0x3C, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xFE, + 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xCC, 0xCC, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC6, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, + 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0xC6, 0x7C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x38, + 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18, + 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x10, + 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, + 0x00, 0x00, 0x38, 0x6C, 0x38, 0x00, 0x38, 0x6C, + 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x60, 0x7C, + 0x60, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xCC, 0x76, 0x36, 0x7E, 0xD8, 0xD8, + 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x6C, + 0xCC, 0xCC, 0xFE, 0xCC, 0xCC, 0xCC, 0xCE, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, + 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, + 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x78, 0xCC, + 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0xCC, + 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00, 0x00, 0xC6, + 0xC6, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, + 0x38, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC0, + 0xC0, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, + 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x7E, 0x18, + 0x18, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xCC, 0xCC, + 0xF8, 0xC4, 0xCC, 0xDE, 0xCC, 0xCC, 0xC6, 0x00, + 0x00, 0x00, 0x00, 0x0E, 0x1B, 0x18, 0x18, 0x18, + 0x7E, 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x0C, + 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, + 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, + 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x76, 0xDC, + 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, 0xC6, + 0xC6, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x6C, 0x6C, + 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, + 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC6, 0xCC, 0xD8, + 0x30, 0x60, 0xCE, 0x93, 0x06, 0x0C, 0x1F, 0x00, + 0x00, 0xC0, 0xC0, 0xC6, 0xCC, 0xD8, 0x30, 0x66, + 0xCE, 0x9A, 0x3F, 0x06, 0x0F, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x3C, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x66, + 0x33, 0x66, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, + 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x55, 0xAA, + 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, + 0x55, 0xAA, 0x55, 0xAA, 0xDD, 0x77, 0xDD, 0x77, + 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, + 0xDD, 0x77, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, + 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, + 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, + 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, + 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, + 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8, + 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xFC, 0xC6, 0xC6, 0xFC, + 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xFE, 0xC6, + 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, + 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0xC6, 0x60, 0x30, 0x18, 0x30, + 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0xD8, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66, 0x66, 0x66, + 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0x6C, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, + 0xC6, 0xC6, 0xC6, 0x6C, 0x6C, 0x6C, 0xEE, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1E, 0x30, 0x18, 0x0C, + 0x3E, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x06, 0x7E, 0xCF, 0xDB, 0xF3, 0x7E, 0x60, + 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x30, + 0x60, 0x60, 0x7C, 0x60, 0x60, 0x30, 0x1C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, + 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, 0x7E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, + 0x30, 0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, + 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, + 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x98, 0x30, 0x60, 0xC8, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +static kgi_console_font_t default_font_ibm437_8x14 = +{ + { 8, 14 }, /* character cell */ + { 8, 14 }, /* bitmap size */ + 10, /* base line */ + + &default_font_ibm437_info, + default_font_ibm437_data_8x14 +}; diff -Naur ./sys/dev/kgc/default-font-ibm437-09x16 /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437-09x16 --- ./sys/dev/kgc/default-font-ibm437-09x16 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-font-ibm437-09x16 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,529 @@ +/* +** 9x16 standard VGA font (IBM codepage 437) +*/ + +static kgi_u8_t default_font_ibm437_data_9x16[] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD, + 0x99, 0x81, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xC3, + 0xE7, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE, 0xFE, + 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, + 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7, 0xE7, + 0xE7, 0x99, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, + 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, + 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3, + 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x42, + 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x99, 0xBD, + 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x1E, 0x0E, 0x1A, 0x32, 0x78, 0xCC, + 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, + 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30, + 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x63, + 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, 0xE7, + 0x3C, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0xF8, + 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0xFE, 0x3E, + 0x1E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, + 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, + 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6, + 0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, + 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0xFE, + 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xFE, + 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, + 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6C, 0xFE, + 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7C, + 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, 0x7C, + 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18, + 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, + 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0, 0x7C, 0x06, + 0x86, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0x18, + 0x30, 0x60, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x76, 0xDC, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, + 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF, + 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, + 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18, + 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xCE, 0xD6, 0xD6, + 0xE6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x0C, 0x18, 0x30, + 0x60, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x3C, 0x06, + 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, + 0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0x0E, + 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0, 0xFC, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x0C, 0x18, + 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, + 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, + 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, + 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x18, 0x18, + 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE, 0xDE, + 0xDE, 0xDC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, + 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x66, + 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, + 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, + 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68, + 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xDE, + 0xC6, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, + 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xE6, 0x66, 0x6C, 0x6C, 0x78, 0x78, + 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE, + 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x60, + 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xD6, 0xDE, 0x7C, 0x0C, 0x0E, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x6C, + 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, 0x38, 0x0C, + 0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, + 0xD6, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38, + 0x6C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x18, 0x30, + 0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, + 0x1C, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, + 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0x60, 0x60, 0x78, 0x6C, 0x66, + 0x66, 0x66, 0x66, 0xDC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, + 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xFE, + 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, + 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00, + 0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C, 0x76, 0x66, + 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C, 0x00, + 0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x6C, 0x78, + 0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xD6, + 0xD6, 0xD6, 0xD6, 0xD6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x62, + 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x60, + 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x30, 0x30, 0xFC, 0x30, 0x30, + 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, + 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, + 0x38, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCC, 0x18, + 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x70, 0x18, + 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18, + 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, + 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, + 0xC2, 0x66, 0x3C, 0x0C, 0x06, 0x7C, 0x00, 0x00, + 0x00, 0x00, 0xCC, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xFE, + 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x60, + 0x66, 0x3C, 0x0C, 0x06, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xFE, + 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xFE, + 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xFE, + 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0x10, 0x38, 0x6C, 0xC6, 0xC6, + 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x6C, 0x38, 0x00, 0x38, 0x6C, 0xC6, 0xC6, + 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x60, 0x7C, + 0x60, 0x60, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x76, 0x36, + 0x7E, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xFE, 0xCC, + 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x78, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x30, 0x18, 0x00, 0xCC, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00, + 0x00, 0xC6, 0xC6, 0x00, 0x38, 0x6C, 0xC6, 0xC6, + 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x3C, 0x66, 0x60, 0x60, 0x60, + 0x66, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60, + 0x60, 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, + 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC4, 0xCC, 0xDE, + 0xCC, 0xCC, 0xCC, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1B, 0x18, 0x18, 0x18, 0x7E, 0x18, + 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0C, 0x7C, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0x7C, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x76, 0xDC, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, + 0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, + 0xC0, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, + 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, + 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, + 0x60, 0xCE, 0x93, 0x06, 0x0C, 0x1F, 0x00, 0x00, + 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30, + 0x66, 0xCE, 0x9A, 0x3F, 0x06, 0x0F, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, + 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC, + 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33, + 0x66, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, + 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, + 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, + 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, + 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, + 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8, + 0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC6, 0xFC, + 0xC6, 0xC6, 0xFC, 0xC0, 0xC0, 0xC0, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0xC6, 0xC6, 0xC0, 0xC0, 0xC0, + 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xFE, 0x6C, 0x6C, + 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x60, 0x30, 0x18, + 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8, + 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x7C, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66, 0x66, + 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, + 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, + 0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1E, 0x30, 0x18, 0x0C, 0x3E, 0x66, + 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, + 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x06, 0x7E, 0xCF, 0xDB, + 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C, 0x60, + 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, + 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, + 0x18, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, + 0x18, 0x30, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30, + 0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E, + 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, + 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC, + 0x6C, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x98, 0x30, 0x60, 0xC8, 0xF8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x7C, 0x7C, + 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static kgi_console_font_t default_font_ibm437_9x16 = +{ + { 9, 16 }, /* character cell */ + { 8, 16 }, /* bitmap size */ + 11, /* baseline */ + + &default_font_ibm437_info, + default_font_ibm437_data_9x16 +}; diff -Naur ./sys/dev/kgc/default-ptr /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-ptr --- ./sys/dev/kgc/default-ptr 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/default-ptr 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,159 @@ +#define I(x) ((0xFFFF * (x))/100) +const kgi_rgb_color_t default_ptr_color[3] = +{ + { I( 0), I( 0), I( 0) }, + { I(100), I(100), I(100) }, + { I(100), I( 0), I( 0) } +}; +#undef I + +const kgi_u8_t default_ptr_64x64[1024] = +{ + /* AND mask + */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x0f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* XOR mask + */ + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x24, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x14, 0x80, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0a, 0x4e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0a, 0x91, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x20, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x48, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x44, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x49, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x32, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x01, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x83, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x10, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x10, 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; diff -Naur ./sys/dev/kgc/kgc_backgnd.c /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/kgc_backgnd.c --- ./sys/dev/kgc/kgc_backgnd.c 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/kgc_backgnd.c 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,261 @@ +/*- + * Copyright (c) 1999 Kazutaka YOKOTA + * Copyright (c) 2003 Nicholas Souchu + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer as + * the first lines of this file unmodified. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * From FreeBSD: src/sys/dev/fb/splash.c,v 1.14 2004/05/30 20:08:31 phk Exp + * + */ +#include +__FBSDID("$FreeBSD$"); + +#include "opt_kgi.h" + +#ifndef KGI_DBG_LEVEL +#define KGI_DBG_LEVEL 2 +#endif + +#include +#include +#include +#include + +#define KGI_SYS_NEED_MALLOC +#include + +#include +#include +#include + +#include +#include +#include + +/* decoder candidates */ +#define MAX_NR_DECODERS 4 +static backgnd_decoder_t *decoder_set[MAX_NR_DECODERS]; + +static backgnd_decoder_t *backgnd_decoders[KGI_MAX_NR_DEVICES]; +static backgnd_callback_t backgnd_callbacks[KGI_MAX_NR_DEVICES]; +static void *backgnd_args[KGI_MAX_NR_DEVICES]; + +static void +kgc_backgnd_init(void) { + + bzero(decoder_set, sizeof(decoder_set)); + bzero(backgnd_decoders, sizeof(backgnd_decoders)); + bzero(backgnd_callbacks, sizeof(backgnd_callbacks)); + bzero(backgnd_args, sizeof(backgnd_args)); +} + +SYSINIT(backgnd, SI_SUB_KGI, SI_ORDER_ANY, kgc_backgnd_init, NULL); + +static int +backgnd_find_data(backgnd_decoder_t *decoder) +{ + caddr_t image_module; + caddr_t p; + + if (decoder->data_type == NULL) + return 0; + image_module = preload_search_by_type(decoder->data_type); + if (image_module == NULL) + return ENOENT; + p = preload_search_info(image_module, MODINFO_ADDR); + if (p == NULL) + return ENOENT; + decoder->data = *(void **)p; + p = preload_search_info(image_module, MODINFO_SIZE); + if (p == NULL) + return ENOENT; + decoder->data_size = *(kgi_u32_t *)p; + KRN_BOOT("backgnd: image@%p, size:%lu\n", + (void *)decoder->data, (long)decoder->data_size); + return 0; +} + +static int +backgnd_test(backgnd_decoder_t *decoder, kgi_u_t devid) +{ + render_t r; + + if (!(r = kgc_get_render(devid))) + return EINVAL; + + decoder->data = NULL; + decoder->data_size = 0; + + /* Let the decoder provide its own defaults if backgnd + * data not found. + */ + backgnd_find_data(decoder); + + if (*decoder->init && (*decoder->init)(r)) { + decoder->data = NULL; + decoder->data_size = 0; + return ENODEV; /* XXX */ + } + if (bootverbose) + printf("backgnd: image decoder found: %s\n", decoder->name); + return 0; +} + +static void +backgnd_new(backgnd_decoder_t *decoder, kgi_u_t devid) +{ + render_t r; + + if (!(r = kgc_get_render(devid))) + return; + + backgnd_decoders[devid] = decoder; + if (backgnd_callbacks[devid] != NULL) + (*backgnd_callbacks[devid])(r, BACKGND_INIT, backgnd_args[devid]); +} + +int +backgnd_register(backgnd_decoder_t *decoder) +{ + int i, error = ENOMEM; + kgi_u_t devid; + + /* register the decoder for later use */ + for (i = 0; i < MAX_NR_DECODERS; ++i) { + if (decoder_set[i] == NULL) { + decoder_set[i] = decoder; + error = 0; + break; + } + } + + /* Parse the devids to find any render that would + * have not decoder. + */ + for (devid=0; KGI_VALID_DEVICE_ID(devid); devid++) { + if (backgnd_callbacks[devid] && !backgnd_decoders[devid]) { + if (backgnd_test(decoder, devid) == 0) { + backgnd_new(decoder, devid); + } + } + } + + return error; +} + +int +backgnd_unregister(backgnd_decoder_t *decoder) +{ + int error; + kgi_u_t i, j; + render_t r; + + if (!decoder) + return 0; + + for(j=0; j= MAX_NR_DECODERS) + return EINVAL; + + for(i=0; KGI_VALID_DEVICE_ID(i); i++) { + if (backgnd_decoders[i] == decoder) { + if (!(r = kgc_get_render(i))) + continue; + if ((error = backgnd_term(i)) != 0) { + KRN_ERROR("Can't terminate backgnd %d (%d)", i, error); + } + } + } + decoder_set[i] = NULL; + + return 0; +} + +int +backgnd_init(kgi_u_t devid, backgnd_callback_t callback, void *arg) +{ + int i, error = ENODEV; + + if (!KGI_VALID_DEVICE_ID(devid)) + return EINVAL; + + backgnd_callbacks[devid] = callback; + backgnd_args[devid] = arg; + + backgnd_decoders[devid] = NULL; + + /* Scan the decoders to find one */ + for (i = 0; i < MAX_NR_DECODERS; ++i) { + if (decoder_set[i] == NULL) + continue; + if (backgnd_test(decoder_set[i], devid) == 0) { + backgnd_new(decoder_set[i], devid); + error = 0; + break; + } + } + return error; +} + +int +backgnd_term(kgi_u_t devid) +{ + int error = 0; + render_t r; + + if (!KGI_VALID_DEVICE_ID(devid) || !(r = kgc_get_render(devid))) + return EINVAL; + + if (backgnd_decoders[devid] != NULL) { + if (backgnd_callbacks[devid]!= NULL) + error = (*backgnd_callbacks[devid])(r, BACKGND_TERM, + backgnd_args[devid]); + if (error == 0 && backgnd_decoders[devid]->term) + error = (*backgnd_decoders[devid]->term)(r); + } + + /* XXX Free decoder and callback entries anyway */ + backgnd_decoders[devid] = NULL; + backgnd_callbacks[devid] = NULL; + backgnd_args[devid] = NULL; + + return error; +} + +int +backgnd_draw(kgi_u_t devid, unsigned char *mem, kgi_u16_t *pal) +{ + render_t r; + + if (!KGI_VALID_DEVICE_ID(devid) || !(r = kgc_get_render(devid))) + return EINVAL; + + if (backgnd_decoders[devid] != NULL) + return (*backgnd_decoders[devid]->draw)(r, mem, pal); + + return ENODEV; +} diff -Naur ./sys/dev/kgc/kgc_backgnd.h /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/kgc_backgnd.h --- ./sys/dev/kgc/kgc_backgnd.h 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/kgc_backgnd.h 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,86 @@ +/*- + * Copyright (c) 1999 Kazutaka YOKOTA + * Copyright (c) 2003 Nicholas Souchu + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer as + * the first lines of this file unmodified. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * From FreeBSD: src/sys/dev/fb/splashreg.h,v 1.6 2004/07/15 08:26:01 phk Exp + * + * $FreeBSD$ + * + */ +#ifndef _kgc_backgnd_h +#define _kgc_backgnd_h + +#define BACKGND_IMAGE "splash_image_data" + +struct render_t; + +struct backgnd_decoder { + char *name; + int (*init)(render_t r); + int (*term)(render_t r); + int (*draw)(render_t r, unsigned char *mem, kgi_u16_t *pal); + char *data_type; + void *data; + size_t data_size; +}; + +typedef struct backgnd_decoder backgnd_decoder_t; + +typedef int (*backgnd_callback_t)(render_t, int, void *); + +#define BACKGND_DECODER(name, sw) \ + static int name##_modevent(module_t mod, int type, void *data) \ + { \ + switch ((modeventtype_t)type) { \ + case MOD_LOAD: \ + return backgnd_register(&sw); \ + case MOD_UNLOAD: \ + return backgnd_unregister(&sw); \ + default: \ + break; \ + } \ + return 0; \ + } \ + static moduledata_t name##_mod = { \ + #name, \ + name##_modevent, \ + NULL \ + }; \ + DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_ANY); + +/* entry point for the splash image decoder */ +extern int backgnd_register(backgnd_decoder_t *decoder); +extern int backgnd_unregister(backgnd_decoder_t *decoder); + +/* entry points for the render */ +extern int backgnd_init(kgi_u_t, backgnd_callback_t, void *arg); +extern int backgnd_term(kgi_u_t devid); +extern int backgnd_draw(kgi_u_t devid, unsigned char *mem, kgi_u16_t *pal); + +/* event types for the callback function */ +#define BACKGND_INIT 0 +#define BACKGND_TERM 1 + +#endif /* !_kgc_backgnd_h */ diff -Naur ./sys/dev/kgc/kgc_bgndpcx.c /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/kgc_bgndpcx.c --- ./sys/dev/kgc/kgc_bgndpcx.c 1970-01-01 10:00:00.000000000 +1000 +++ /usr/home/agh/Dev/KGI/kgi8/kgi8-src/sys/dev/kgc/kgc_bgndpcx.c 2008-02-23 20:00:00.000000000 +1100 @@ -0,0 +1,238 @@ +/*- + * Copyright (c) 1999 Michael Smith + * Copyright (c) 1999 Kazutaka YOKOTA + * Copyright (c) 1999 Dag-Erling Coïdan Smørgrav + * Copyright (c) 2003 Nicholas Souchu + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer + * in this position and unchanged. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * From FreeBSD: src/sys/modules/backgnd/pcx/backgnd_pcx.c,v 1.5 2002/11/11 10:28:44 mux Exp + * + */ +#include +__FBSDID("$FreeBSD$"); + +#include "opt_kgi.h" + +#ifndef KGI_DBG_LEVEL +#define KGI_DBG_LEVEL 2 +#endif + +#include +#include +#include +#include +#include + +#define KGI_SYS_NEED_MALLOC +#include + +#include +#include +#include + +#include +#include +#include +#include + +#define FADE_TIMEOUT 300 /* sec */ + +static int pcx_start(render_t r); +static int pcx_end(render_t r); +static int pcx_init(char *data, int sdepth); +static int pcx_draw(render_t r, unsigned char *vidmem, kgi_u16_t *pal); + +static backgnd_decoder_t pcx_decoder = { + "backgnd_pcx", pcx_start, pcx_end, pcx_draw, BACKGND_IMAGE, +}; + +BACKGND_DECODER(backgnd_pcx, pcx_decoder); + +static struct +{ + int width, height, bpsl; + int bpp, zlen; + const u_char *zdata; + u_char *palette; +} pcx_info; + +extern const char daemon_pcx[]; + +static int +pcx_start(render_t r) +{ + kgirndr_meta *render = kgc_render_meta(r); + kgi_image_mode_t *img = &render->mode.img[0]; + int depth; + + /* Use the nebula daemon by default */ + if (pcx_de