shithub: choc

Download patch

ref: f75826fa71ff17f3b8852918e9051ddee9f5e119
parent: 8f20863e40e5f721adc616817eae8442898b9a70
author: Simon Howard <[email protected]>
date: Sat Oct 1 23:16:03 EDT 2005

Text mode emulation code

Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 146

--- /dev/null
+++ b/textscreen/Makefile.am
@@ -1,0 +1,8 @@
+
+AM_CFLAGS = @SDL_CFLAGS@
+
+noinst_LIBRARIES=libtextscreen.a
+
+libtextscreen_a_SOURCES = txt_main.c txt_main.h txt_font.h
+
+
--- /dev/null
+++ b/textscreen/txt_font.h
@@ -1,0 +1,555 @@
+// Emacs style mode select -*- C++ -*-
+//---------------------------------------------------------------------------
+//
+// $Id: txt_font.h 146 2005-10-02 03:16:03Z fraggle $
+//
+// Copyright(C) 2005 Simon Howard
+// Copyright (C) 2002-2004  The DOSBox Team
+//
+// 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 of the License, or
+// (at your option) any later version.
+//
+// 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+// $Log$
+// Revision 1.1  2005/10/02 03:16:03  fraggle
+// Text mode emulation code
+//
+//
+//---------------------------------------------------------------------------
+// 
+// VGA font data
+// Font data is from the DOSBox project (http://dosbox.sourceforge.net/)
+//
+//---------------------------------------------------------------------------
+
+#ifndef __FONT_H__
+#define __FONT_H__
+
+static unsigned char int10_font_16[256 * 16] = 
+{
+  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, 0x18, 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,
+  0x7e, 0x3c, 0x18, 0x00, 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,
+  0x7e, 0x3c, 0x18, 0x7e, 0x00, 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, 0x00, 0xc0, 0xc0,
+  0xc0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x66, 0xff,
+  0x66, 0x24, 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,
+  0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18, 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, 0x3c, 0x66, 0xc3, 0xc3, 0xdb, 0xdb,
+  0xc3, 0xc3, 0x66, 0x3c, 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, 0x06,
+  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, 0x7e, 0x00, 0x00,
+  0x7e, 0x00, 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, 0x66, 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, 0xc3, 0xe7, 0xff, 0xff, 0xdb, 0xc3,
+  0xc3, 0xc3, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce,
+  0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
+  0xc6, 0xc6, 0xc6, 0x7c, 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, 0xff, 0xdb, 0x99, 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, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
+  0xc3, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xdb,
+  0xdb, 0xff, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 0x18,
+  0x3c, 0x66, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc3, 0xc3, 0xc3, 0x66, 0x3c, 0x18,
+  0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xff, 0xc3, 0x86, 0x0c, 0x18, 0x30,
+  0x60, 0xc1, 0xc3, 0xff, 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, 0x7c, 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, 0xe6, 0xff, 0xdb,
+  0xdb, 0xdb, 0xdb, 0xdb, 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, 0x66,
+  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, 0xc3, 0xc3, 0xc3,
+  0xc3, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3, 0xc3,
+  0xdb, 0xdb, 0xff, 0x66, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x66, 0x3c,
+  0x18, 0x3c, 0x66, 0xc3, 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, 0x00, 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, 0x00, 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, 0x00, 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, 0x00, 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, 0x00, 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, 0x6e, 0x3b, 0x1b,
+  0x7e, 0xd8, 0xdc, 0x77, 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, 0x00, 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, 0x00, 0x00, 0xc6, 0xc6, 0xc6,
+  0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00,
+  0x00, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6,
+  0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
+  0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x18, 0x18, 0x7e, 0xc3, 0xc0, 0xc0, 0xc0,
+  0xc3, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60,
+  0x60, 0x60, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18, 0xff, 0x18,
+  0xff, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0xfc, 0x66, 0x66, 0x7c, 0x62, 0x66, 0x6f,
+  0x66, 0x66, 0x66, 0xf3, 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, 0x9b, 0x06, 0x0c, 0x1f, 0x00, 0x00,
+  0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30,
+  0x66, 0xce, 0x96, 0x3e, 0x06, 0x06, 0x00, 0x00,
+  0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18,
+  0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6c, 0xd8,
+  0x6c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36,
+  0x6c, 0xd8, 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, 0x78, 0xcc, 0xcc, 0xcc, 0xd8, 0xcc,
+  0xc6, 0xc6, 0xc6, 0xcc, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xfe, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0,
+  0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xfe, 0x6c, 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, 0xdb, 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, 0xd8, 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
+};
+
+#endif /* __FONT_H__ */
+
--- /dev/null
+++ b/textscreen/txt_main.c
@@ -1,0 +1,162 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// $Id: txt_main.c 146 2005-10-02 03:16:03Z fraggle $
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 2005 Simon Howard
+//
+// 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
+// of the License, or (at your option) any later version.
+//
+// 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+// $Log$
+// Revision 1.1  2005/10/02 03:16:03  fraggle
+// Text mode emulation code
+//
+//
+//-----------------------------------------------------------------------------
+//
+// Text mode emulation in SDL
+//
+//-----------------------------------------------------------------------------
+
+#include <SDL.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "txt_main.h"
+#include "txt_font.h"
+
+#define SCREEN_W 80
+#define SCREEN_H 25
+#define CHAR_W 8
+#define CHAR_H 16
+
+static SDL_Surface *screen;
+static unsigned char *screendata;
+
+static SDL_Color ega_colors[] = 
+{
+    {0x00, 0x00, 0x00},          // 0: Black
+    {0x00, 0x00, 0xa8},          // 1: Blue
+    {0x00, 0xa8, 0x00},          // 2: Green
+    {0x00, 0xa8, 0xa8},          // 3: Cyan
+    {0xa8, 0x00, 0x00},          // 4: Red
+    {0xa8, 0x00, 0xa8},          // 5: Magenta
+    {0xa8, 0x54, 0x00},          // 6: Brown
+    {0xa8, 0xa8, 0xa8},          // 7: Grey
+    {0x54, 0x54, 0x54},          // 8: Dark grey
+    {0x54, 0x54, 0xfe},          // 9: Bright blue
+    {0x54, 0xfe, 0x54},          // 10: Bright green
+    {0x54, 0xfe, 0xfe},          // 11: Bright cyan
+    {0xfe, 0x54, 0x54},          // 12: Bright red
+    {0xfe, 0x54, 0xfe},          // 13: Bright magenta
+    {0xfe, 0xfe, 0x54},          // 14: Yellow
+    {0xfe, 0xfe, 0xfe},          // 15: Bright white
+};
+
+//
+// Initialise text mode screen
+//
+// Returns 1 if successful, 0 if an error occurred
+//
+
+int TXT_Init(void)
+{
+    SDL_InitSubSystem(SDL_INIT_VIDEO);
+    
+    screen = SDL_SetVideoMode(SCREEN_W * CHAR_W, SCREEN_H * CHAR_H, 8, 0);
+
+    if (screen == NULL)
+        return 0;
+
+    SDL_SetColors(screen, ega_colors, 0, 16);
+
+    screendata = malloc(SCREEN_W * SCREEN_H * 2);
+    memset(screendata, 0, SCREEN_W * SCREEN_H * 2);
+
+    return 1;
+}
+
+void TXT_Shutdown(void)
+{
+    free(screendata);
+    SDL_QuitSubSystem(SDL_INIT_VIDEO);
+}
+
+unsigned char *TXT_GetScreenData(void)
+{
+    return screendata;
+}
+
+static inline void UpdateCharacter(int x, int y)
+{
+    unsigned char character;
+    unsigned char *p;
+    unsigned char *s, *s1;
+    int bg, fg;
+    int x1, y1;
+
+    p = &screendata[(y * SCREEN_W + x) * 2];
+    character = p[0];
+
+    fg = p[1] & 0xf;
+    bg = (p[1] >> 4) & 0xf;
+
+    p = &int10_font_16[character * CHAR_H];
+
+    s = screen->pixels + (y * CHAR_H * screen->pitch) + (x * CHAR_W);
+
+    for (y1=0; y1<CHAR_H; ++y1)
+    {
+        s1 = s;
+
+        for (x1=0; x1<CHAR_W; ++x1)
+        {
+            if (*p & (1 << (7-x1)))
+            {
+                *s1++ = fg;
+            }
+            else
+            {
+                *s1++ = bg;
+            }
+        }
+
+        ++p;
+        s += screen->pitch;
+    }
+}
+
+void TXT_UpdateScreenArea(int x, int y, int w, int h)
+{
+    int x1, y1;
+
+    for (y1=y; y1<y+h; ++y1)
+    {
+        for (x1=x; x1<x+w; ++x1)
+        {
+            UpdateCharacter(x1, y1);
+        }
+    }
+
+    SDL_UpdateRect(screen, x * CHAR_W, y * CHAR_H, w * CHAR_W, h * CHAR_H);
+}
+
+void TXT_UpdateScreen(void)
+{
+    TXT_UpdateScreenArea(0, 0, SCREEN_W, SCREEN_H);
+}
+
--- /dev/null
+++ b/textscreen/txt_main.h
@@ -1,0 +1,60 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// $Id: txt_main.h 146 2005-10-02 03:16:03Z fraggle $
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 2005 Simon Howard
+//
+// 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
+// of the License, or (at your option) any later version.
+//
+// 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+// $Log$
+// Revision 1.1  2005/10/02 03:16:03  fraggle
+// Text mode emulation code
+//
+//
+//-----------------------------------------------------------------------------
+//
+// Text mode emulation in SDL
+//
+//-----------------------------------------------------------------------------
+
+#ifndef TXT_MAIN_H
+#define TXT_MAIN_H
+
+// Initialise the screen
+// Returns 1 if successful, 0 if failed.
+
+int TXT_Init(void);
+
+// Shut down text mode emulation
+
+void TXT_Shutdown(void);
+
+// Get a pointer to the buffer containing the raw screen data.
+
+unsigned char *TXT_GetScreenData(void);
+
+// Update an area of the screen
+
+void TXT_UpdateScreenArea(int x, int y, int w, int h);
+
+// Update the whole screen
+
+void TXT_UpdateScreen(void);
+
+#endif /* #ifndef TXT_MAIN_H */
+