diff --git a/src/xpdev/cp437defs.h b/src/xpdev/cp437defs.h
new file mode 100644
index 0000000000000000000000000000000000000000..b36c8718866bc5b3a8258ccfab9acca4abaf1d46
--- /dev/null
+++ b/src/xpdev/cp437defs.h
@@ -0,0 +1,163 @@
+/* Synchronet IBM Code Page 437 (CP437) definitions */
+
+/* $Id$ */
+
+/****************************************************************************
+ * @format.tab-size 4		(Plain Text/Source Code File Header)			*
+ * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
+ *																			*
+ * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
+ *																			*
+ * This library is free software; you can redistribute it and/or			*
+ * modify it under the terms of the GNU Lesser General Public License		*
+ * as published by the Free Software Foundation; either version 2			*
+ * of the License, or (at your option) any later version.					*
+ * See the GNU Lesser General Public License for more details: lgpl.txt or	*
+ * http://www.fsf.org/copyleft/lesser.html									*
+ *																			*
+ * Anonymous FTP access to the most recent released source is available at	*
+ * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
+ *																			*
+ * Anonymous CVS access to the development source and modification history	*
+ * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
+ * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
+ *     (just hit return, no password is necessary)							*
+ * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
+ *																			*
+ * For Synchronet coding style and modification guidelines, see				*
+ * http://www.synchro.net/source.html										*
+ *																			*
+ * You are encouraged to submit any modifications (preferably in Unix diff	*
+ * format) via e-mail to mods@synchro.net									*
+ *																			*
+ * Note: If this box doesn't appear square, then you need to fix your tabs.	*
+ ****************************************************************************/
+
+#ifndef CP437DEFS_H_
+#define CP437DEFS_H_
+
+enum cp437_char {
+	CP437_CHAR_WHITE_SMILING_FACE = '\x01',
+	CP437_CHAR_BLACK_SMILING_FACE = '\x02',
+	CP437_CHAR_BLACK_HEART_SUIT = '\x03',
+	CP437_CHAR_BLACK_DIAMOND_SUIT = '\x04',
+	CP437_CHAR_BLACK_CLUB_SUIT = '\x05',
+	CP437_CHAR_BLACK_SPADE_SUIT = '\x06',
+	CP437_CHAR_BULLET = '\x07',
+	CP437_CHAR_INVERSE_BULLET = '\x08',
+	CP437_CHAR_WHITE_CIRCLE = '\x09',
+	CP437_CHAR_INVERSE_WHITE_CIRCLE = '\x0A',
+	CP437_CHAR_MALE_SIGN = '\x0B',
+	CP437_CHAR_FEMALE_SIGN = '\x0C',
+	CP437_CHAR_EIGHTH_NOTE = '\x0D',
+	CP437_CHAR_BEAMED_EIGHTH_NOTES = '\x0E',
+	CP437_CHAR_WHITE_SUN_WITH_RAYS = '\x0F',
+	CP437_CHAR_BLACK_RIGHT_POINTING_POINTER = '\x10',
+	CP437_CHAR_BLACK_LEFT_POINTING_POINTER = '\x11',
+	CP437_CHAR_UP_DOWN_ARROW = '\x12',
+	CP437_CHAR_DOUBLE_EXCLAMATION_MARK = '\x13',
+	CP437_CHAR_PILCROW_SIGN = '\x14',	// Paragraph mark
+	CP437_CHAR_SECTION_SIGN = '\x15',
+	CP437_CHAR_BLACK_RECTANGLE = '\x16',
+	CP437_CHAR_UP_DOWN_ARROW_WITH_BASE = '\x17',
+	CP437_CHAR_UPWARDS_ARROW = '\x18',
+	CP437_CHAR_DOWNWARDS_ARROW = '\x19',
+	CP437_CHAR_RIGHTWARDS_ARROW = '\x1A',
+	CP437_CHAR_LEFTWARDS_ARROW = '\x1B',
+	CP437_CHAR_RIGHT_ANGLE = '\x1C',
+	CP437_CHAR_LEFT_RIGHT_ARROW = '\x1D',
+	CP437_CHAR_BLACK_UP_POINTING_TRIANGLE = '\x1E',
+	CP437_CHAR_BLACK_DOWN_POINTING_TRIANGLE = '\x1F',
+
+	// 0x20 - 0x7E are ASCII characters
+
+	CP437_CHAR_HOUSE = '\x7F',
+	CP437_CHAR_LATIN_CAPTIAL_LETTER_C_WITH_CEDILLA = '\x80',
+	CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_DIAERESIS = '\x81',
+	CP437_CHAR_LATIN_SMALL_LETTER_E_WITH_ACUTE = '\x82',
+	CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX = '\x83',
+	CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_DIAERESIS = '\x84',
+	CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_GRAVE = '\x85',
+	CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE = '\x86',
+	CP437_CHAR_LATIN_SMALL_LETTER_C_WITH_CEDILLA = '\x87',
+	CP437_CHAR_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX = '\x88',
+	CP437_CHAR_LATIN_SMALL_LETTER_E_WITH_DIAERESIS = '\x89',
+	CP437_CHAR_LATIN_SMALL_LETTER_E_WITH_GRAVE = '\x8a',
+	CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_DIAERESIS = '\x8b',
+	CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX = '\x8c',
+	CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_GRAVE = '\x8d',
+	CP437_CHAR_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS = '\x8e',
+	CP437_CHAR_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE = '\x8f',
+	CP437_CHAR_LATIN_CAPITAL_LETTER_E_WITH_ACUTE = '\x90',
+	CP437_CHAR_LATIN_SMALL_LETTER_AE = '\x91',
+	CP437_CHAR_LATIN_CAPITAL_LETTER_AE = '\x92',
+	CP437_CHAR_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX = '\x93',
+	CP437_CHAR_LATIN_LATIN_SMALL_LETTER_O_WITH_DIAERESIS = '\x94',
+	CP437_CHAR_LATIN_SMALL_LETTER_O_WITH_GRAVE = '\x95',
+	CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX = '\x96',
+	CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_GRAVE = '\x97',
+	CP437_CHAR_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS = '\x98',
+	CP437_CHAR_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS = '\x99',
+	CP437_CHAR_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS = '\x9a',
+	CP437_CHAR_CENT_SIGN = '\x9b',
+	CP437_CHAR_POUND_SIGN = '\x9c',
+	CP437_CHAR_YEN_SIGN = '\x9d',
+	CP437_CHAR_PESETA_SIGN = '\x9e',
+	CP437_CHAR_LATIN_SMALL_LETTER_F_WITH_HOOK = '\x9f',
+	CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_ACUTE = '\xA0',
+	CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_ACUTE = '\xA1',
+	CP437_CHAR_LATIN_SMALL_LETTER_O_WITH_ACUTE = '\xA2',
+	CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_ACUTE = '\xA3',
+	CP437_CHAR_LATIN_SMALL_LETTER_N_WITH_TILDE = '\xA4',
+	CP437_CHAR_LATIN_CAPITAL_LETTER_N_WITH_TILDE = '\xA5',
+	CP437_CHAR_FEMININE_ORDINAL_INDICATOR = '\xA6',
+	CP437_CHAR_MASCULINE_ORDINAL_INDICATOR = '\xA7',
+	CP437_CHAR_INVERTED_QUESTION_MARK = '\xA8',
+	CP437_CHAR_REVERSED_NOT_SIGN = '\xA9',
+	CP437_CHAR_NOT_SIGN = '\xAA',
+	CP437_CHAR_VULGAR_FRACTION_ONE_HALF = '\xAB',
+	CP437_CHAR_VULGAR_FRACTION_ONE_QUARTER = '\xAC',
+	CP437_CHAR_INVERTED_EXCLAMATION_MARK = '\xAD',
+	CP437_CHAR_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = '\xAE',
+	CP437_CHAR_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = '\xAF',
+	// TODO...
+	CP437_CHAR_GREEK_SMALL_LETTER_ALPHA = '\xE0',
+	CP437_CHAR_GREEK_SMALL_LETTER_BETA = '\xE1',
+	CP437_CHAR_LATIN_SMALL_LETTER_SHARP_S = '\xE1',		// Duplicate
+	CP437_CHAR_GREEK_CAPITAL_LETTER_GAMMA = '\xE2',
+	CP437_CHAR_GREEK_SMALL_LETTER_PI = '\xE3',
+	CP437_CHAR_GREEK_CAPITAL_LETTER_SIGMA = '\xE4',
+	CP437_CHAR_GREEK_SMALL_LETTER_SIGMA = '\xE5',
+	CP437_CHAR_GREEK_SMALL_LETTER_MU = '\xE6',
+	CP437_CHAR_MICRO_SIGN = '\xE6',	// Duplicate
+	CP437_CHAR_GREEK_SMALL_LETTER_TAU = '\xE7',
+	CP437_CHAR_GREEK_CAPITAL_LETTER_PHI = '\xE8',
+	CP437_CHAR_GREEK_SMALL_LETTER_THETA = '\xE9',
+	CP437_CHAR_GREEK_CAPITAL_LETTER_OMEGA = '\xEA',
+	CP437_CHAR_GREEK_SMALL_LETTER_DELTA = '\xEB',
+	CP437_CHAR_INFINITY = '\xEC',
+	CP437_CHAR_GREEK_SMALL_LETTER_PHI = '\xED',
+	CP437_CHAR_GREEK_SMALL_LETTER_EPSILION = '\xEE',
+	CP437_CHAR_INTERSECTION = '\xEF',
+	CP437_CHAR_IDENTICAL_TO = '\xF0',
+	CP437_CHAR_TRIPLE_BAR = '\xF0',	// Duplicate
+	CP437_CHAR_PLUS_MINUS_SIGN = '\xF1',
+	CP437_CHAR_GREATER_THAN_OR_EQUAL_TO = '\xF2',
+	CP437_CHAR_LESS_THAN_OR_EQUAL_TO = '\xF3',
+	CP437_CHAR_TOP_HALF_INTEGRAL = '\xF4',
+	CP437_CHAR_BOTTOM_HALF_INTEGRAL = '\xF5',
+	CP437_CHAR_DIVISION_SIGN = '\xF6',
+	CP437_CHAR_ALMOST_EQUAL_TO = '\xF7',
+	CP437_CHAR_DEGREE_SIGN = '\xF8',
+	CP437_CHAR_BULLET_OPERATOR = '\xF9',
+	CP437_CHAR_MIDDLE_DOT = '\xFA',
+	CP437_CHAR_SQUARE_ROOT = '\xFB',
+	CP437_CHAR_CHECK_MARK = '\xFB',	// Duplicate
+	CP437_CHAR_SUPERSCRIPT_LATIN_SMALL_LETTER_N = '\xFC',
+	CP437_CHAR_SUPERSCRIPT_TWO = '\xFD',
+	CP437_CHAR_BLACK_SQUARE = '\xFE',
+	CP437_CHAR_HALFWIDTH_BLACK_SQUARE = '\xFE',	// Duplicate
+	CP437_CHAR_NO_BREAK_SPACE = '\xFF'
+};
+
+#endif // Don't add anything after this line
\ No newline at end of file
diff --git a/src/xpdev/unicode.c b/src/xpdev/unicode.c
index bf0e15cf4bb8abab251d92dcd5f022c9a8f9b664..355132b18fe04bf17df035db4353969188e07952 100644
--- a/src/xpdev/unicode.c
+++ b/src/xpdev/unicode.c
@@ -34,6 +34,8 @@
  ****************************************************************************/
 
 #include "unicode.h"
+#include "cp437defs.h"
+#include "unicode_defs.h"
 
 // Want UNICDE encodings of terminal control characters?
 #if defined USE_UNICODE_FOR_TERM_CTRL_CHARS
@@ -309,26 +311,26 @@ uint32_t cp437_unicode_tbl[] =
 bool unicode_is_zerowidth(uint32_t u)
 {
 	switch(u) {
-		case 0x200B: // ZERO WIDTH SPACE
-		case 0x200C: // ZERO WIDTH NON-JOINER
-		case 0x200D: // ZERO WIDTH JOINER
-		case 0xFE00: // VARIATION SELECTOR-1
-		case 0xFE01: // VARIATION SELECTOR-2
-		case 0xFE02: // VARIATION SELECTOR-3
-		case 0xFE03: // VARIATION SELECTOR-4
-		case 0xFE04: // VARIATION SELECTOR-5
-		case 0xFE05: // VARIATION SELECTOR-6
-		case 0xFE06: // VARIATION SELECTOR-7
-		case 0xFE07: // VARIATION SELECTOR-8
-		case 0xFE08: // VARIATION SELECTOR-9
-		case 0xFE09: // VARIATION SELECTOR-10
-		case 0xFE0A: // VARIATION SELECTOR-11
-		case 0xFE0B: // VARIATION SELECTOR-12
-		case 0xFE0C: // VARIATION SELECTOR-13
-		case 0xFE0D: // VARIATION SELECTOR-14
-		case 0xFE0E: // VARIATION SELECTOR-15
-		case 0xFE0F: // VARIATION SELECTOR-16
-		case 0xFEFF: // ZERO WIDTH NO-BREAK SPACE
+		case UNICODE_ZERO_WIDTH_SPACE:
+		case UNICODE_ZERO_WIDTH_NON_JOINER:
+		case UNICODE_ZERO_WIDTH_JOINER:
+		case UNICODE_VARIATION_SELECTOR_1:
+		case UNICODE_VARIATION_SELECTOR_2:
+		case UNICODE_VARIATION_SELECTOR_3:
+		case UNICODE_VARIATION_SELECTOR_4:
+		case UNICODE_VARIATION_SELECTOR_5:
+		case UNICODE_VARIATION_SELECTOR_6:
+		case UNICODE_VARIATION_SELECTOR_7:
+		case UNICODE_VARIATION_SELECTOR_8:
+		case UNICODE_VARIATION_SELECTOR_9:
+		case UNICODE_VARIATION_SELECTOR_10:
+		case UNICODE_VARIATION_SELECTOR_11:
+		case UNICODE_VARIATION_SELECTOR_12:
+		case UNICODE_VARIATION_SELECTOR_13:
+		case UNICODE_VARIATION_SELECTOR_14:
+		case UNICODE_VARIATION_SELECTOR_15:
+		case UNICODE_VARIATION_SELECTOR_16:
+		case UNICODE_ZERO_WIDTH_NO_BREAK_SPACE:
 			return true;
 	}
 	return false;
@@ -337,18 +339,112 @@ bool unicode_is_zerowidth(uint32_t u)
 char unicode_to_cp437(uint32_t codepoint)
 {
 	switch(codepoint) {
-		case 0x00B4: // ACUTE ACCENT
-			return '\'';
-		case 0x00CD: // LATIN CAPITAL LETTER I WITH ACUTE
-			return '\xA1'; // Lower-case Letter i with Acute
-
-		case 0x2014: // EM DASH
+		case 0:													return '\0';
+
+		case UNICODE_ACUTE_ACCENT:								return '\'';
+
+		case UNICODE_BROKEN_BAR:								return '|';
+
+		// Perform Upper -> Lower case mapping where an upper case equivalent doesn't exist in CP437:
+		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_GRAVE:			return CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_GRAVE;
+		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_ACUTE:			return CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_ACUTE;
+		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX:	return CP437_CHAR_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX;
+
+		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_GRAVE:			return CP437_CHAR_LATIN_SMALL_LETTER_E_WITH_GRAVE;
+		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX:	return CP437_CHAR_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX;
+		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS:		return CP437_CHAR_LATIN_SMALL_LETTER_E_WITH_DIAERESIS;
+
+		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_GRAVE:			return CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_GRAVE;
+		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_ACUTE:			return CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_ACUTE;
+		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX:	return CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX;
+		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS:		return CP437_CHAR_LATIN_SMALL_LETTER_I_WITH_DIAERESIS;
+
+		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_GRAVE:			return CP437_CHAR_LATIN_SMALL_LETTER_O_WITH_GRAVE;
+		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_ACUTE:			return CP437_CHAR_LATIN_SMALL_LETTER_O_WITH_ACUTE;
+		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX:	return CP437_CHAR_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX;
+
+		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_GRAVE:			return CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_GRAVE;
+		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_ACUTE:			return CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_ACUTE;
+		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX:	return CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX;
+
+		case UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS:		return CP437_CHAR_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS;
+
+		// Greek letters
+		case UNICODE_GREEK_CAPITAL_LETTER_ALPHA:
+		case UNICODE_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS:		return 'A';
+		case UNICODE_GREEK_CAPITAL_LETTER_BETA:					return 'B';
+		case UNICODE_GREEK_CAPITAL_LETTER_GAMMA:
+		case UNICODE_GREEK_SMALL_LETTER_GAMMA:					return CP437_CHAR_GREEK_CAPITAL_LETTER_GAMMA;
+		case UNICODE_GREEK_CAPITAL_LETTER_DELTA:
+		case UNICODE_GREEK_SMALL_LETTER_DELTA:					return CP437_CHAR_GREEK_SMALL_LETTER_DELTA;
+		case UNICODE_GREEK_CAPITAL_LETTER_EPSILON:
+		case UNICODE_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS:
+		case UNICODE_GREEK_SMALL_LETTER_EPSILON:
+		case UNICODE_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS:		return CP437_CHAR_GREEK_SMALL_LETTER_EPSILION;
+		case UNICODE_GREEK_CAPITAL_LETTER_ZETA:					return 'Z';
+		case UNICODE_GREEK_CAPITAL_LETTER_ETA:					return 'H';
+		case UNICODE_GREEK_CAPITAL_LETTER_THETA:
+		case UNICODE_GREEK_SMALL_LETTER_THETA:
+		case UNICODE_GREEK_THETA_SYMBOL:						return CP437_CHAR_GREEK_SMALL_LETTER_THETA;
+		case UNICODE_GREEK_CAPITAL_LETTER_IOTA:					
+		case UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA:	return 'I';
+		case UNICODE_GREEK_CAPITAL_LETTER_KAPPA:				return 'K';
+		case UNICODE_GREEK_CAPITAL_LETTER_MU:					return 'M';
+		case UNICODE_GREEK_CAPITAL_LETTER_NU:					return 'N';
+		case UNICODE_GREEK_CAPITAL_LETTER_OMICRON:				return 'O';
+		case UNICODE_GREEK_CAPITAL_LETTER_PI:
+		case UNICODE_GREEK_SMALL_LETTER_PI:
+		case UNICODE_GREEK_PI_SYMBOL:							return CP437_CHAR_GREEK_SMALL_LETTER_PI;
+		case UNICODE_GREEK_CAPITAL_LETTER_RHO:					return 'P';
+		case UNICODE_GREEK_CAPITAL_LETTER_SIGMA:				return CP437_CHAR_GREEK_CAPITAL_LETTER_SIGMA;			
+		case UNICODE_GREEK_CAPITAL_LETTER_TAU:
+		case UNICODE_GREEK_SMALL_LETTER_TAU:
+																return 'T';
+		case UNICODE_GREEK_CAPITAL_LETTER_UPSILON:				return 'Y';
+		case UNICODE_GREEK_CAPITAL_LETTER_PHI:					return CP437_CHAR_GREEK_CAPITAL_LETTER_PHI;
+		case UNICODE_GREEK_CAPITAL_LETTER_CHI:					return 'X';
+		case UNICODE_GREEK_CAPITAL_LETTER_OMEGA:
+		case UNICODE_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS:
+		case UNICODE_GREEK_SMALL_LETTER_OMEGA:
+		case UNICODE_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS:		return CP437_CHAR_GREEK_CAPITAL_LETTER_OMEGA;
+		case UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA:
+																return CP437_CHAR_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS;
+		case UNICODE_GREEK_SMALL_LETTER_ALPHA:
+		case UNICODE_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS:		return CP437_CHAR_GREEK_SMALL_LETTER_ALPHA;
+		case UNICODE_GREEK_SMALL_LETTER_BETA:					return CP437_CHAR_GREEK_SMALL_LETTER_BETA;
+		case UNICODE_GREEK_SMALL_LETTER_MU:						return CP437_CHAR_GREEK_SMALL_LETTER_MU;
+		case UNICODE_GREEK_SMALL_LETTER_NU:						return 'v';
+		case UNICODE_GREEK_SMALL_LETTER_OMICRON:				return 'o';
+		case UNICODE_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS:		return CP437_CHAR_LATIN_SMALL_LETTER_O_WITH_ACUTE;
+		case UNICODE_GREEK_SMALL_LETTER_UPSILON:				return 'u';
+		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS:		return CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_ACUTE;
+		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA:
+		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS:
+																return CP437_CHAR_LATIN_SMALL_LETTER_U_WITH_DIAERESIS;
+		case UNICODE_GREEK_SMALL_LETTER_IOTA:					
+		case UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_TONOS:		return 'i';
+		case UNICODE_GREEK_SMALL_LETTER_KAPPA:					return 'k';
+		case UNICODE_GREEK_SMALL_LETTER_CHI:					return 'x';
+		case UNICODE_GREEK_SMALL_LETTER_SIGMA:
+		case UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA:			return CP437_CHAR_GREEK_SMALL_LETTER_SIGMA;
+		case UNICODE_GREEK_SMALL_LETTER_RHO:					return 'p';	
+		case UNICODE_GREEK_SMALL_LETTER_ZETA:					return 'z';
+		case UNICODE_GREEK_SMALL_LETTER_ETA:					return 'n';
+
+		case UNICODE_EM_DASH:
 			return '\xC4';
 
-		case 0x2022: // BULLET
+		case UNICODE_BULLET: // BULLET
 			return '\xF9';
 
-		case 0x203E: // OVERLINE
+		case UNICODE_NO_BREAK_SPACE:
+		case UNICODE_EN_QUAD:
+		case UNICODE_EM_QUAD:
+		case UNICODE_EN_SPACE:
+		case UNICODE_EM_SPACE:
+			return ' ';
+
+		case UNICODE_OVERLINE:
 		case 0x2500: // Box Drawings Light Horizontal
 		case 0x2501: // Box Drawings Heavy Horizontal
 		case 0x2504: // Box Drawings Light Triple Dash Horizontal
@@ -520,5 +616,11 @@ char unicode_to_cp437(uint32_t codepoint)
 			return '\xDF';
 	}
 
+	// Look for a 1:1 match in the CP437 -> Unicode table
+	for(int i = 1; i < 0x100; i++) {
+		if(cp437_unicode_tbl[i] == codepoint)
+			return i;
+	}
+
 	return '\0'; // Not-mapped
 }
diff --git a/src/xpdev/unicode_defs.h b/src/xpdev/unicode_defs.h
new file mode 100644
index 0000000000000000000000000000000000000000..97bf03aca672f3222fa2714fb994864b7fe8ae6b
--- /dev/null
+++ b/src/xpdev/unicode_defs.h
@@ -0,0 +1,268 @@
+/* Synchronet Unicode definitions */
+
+/* $Id$ */
+
+/****************************************************************************
+ * @format.tab-size 4		(Plain Text/Source Code File Header)			*
+ * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
+ *																			*
+ * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
+ *																			*
+ * This library is free software; you can redistribute it and/or			*
+ * modify it under the terms of the GNU Lesser General Public License		*
+ * as published by the Free Software Foundation; either version 2			*
+ * of the License, or (at your option) any later version.					*
+ * See the GNU Lesser General Public License for more details: lgpl.txt or	*
+ * http://www.fsf.org/copyleft/lesser.html									*
+ *																			*
+ * Anonymous FTP access to the most recent released source is available at	*
+ * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
+ *																			*
+ * Anonymous CVS access to the development source and modification history	*
+ * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
+ * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
+ *     (just hit return, no password is necessary)							*
+ * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
+ *																			*
+ * For Synchronet coding style and modification guidelines, see				*
+ * http://www.synchro.net/source.html										*
+ *																			*
+ * You are encouraged to submit any modifications (preferably in Unix diff	*
+ * format) via e-mail to mods@synchro.net									*
+ *																			*
+ * Note: If this box doesn't appear square, then you need to fix your tabs.	*
+ ****************************************************************************/
+
+#ifndef UNICODE_DEFS_H_
+#define UNICODE_DEFS_H_
+
+enum unicode_codepoint {
+	UNICODE_NO_BREAK_SPACE = 0x00A0,
+
+	UNICODE_INVERTED_EXCLAMATION_MARK = 0x00A1,
+	UNICODE_CENT_SIGN = 0x00A2,
+	UNICODE_POUND_SIGN = 0x00A3,
+	UNICODE_CURRENCY_SIGN = 0x00A4,
+	UNICODE_YEN_SIGN = 0x00A5,
+	UNICODE_BROKEN_BAR = 0x00A6,
+	UNICODE_SECTION_SIGN = 0x00A7,
+
+	UNICODE_DEGREE_SIGN = 0x00B0,
+	UNICODE_PLUS_MINUS_SIGN = 0x00B1,
+	UNICODE_SUPERSCRIPT_TWO = 0x00B2,
+	UNICODE_ACUTE_ACCENT = 0x00B4,
+	UNICODE_PILCROW_SIGN = 0x00B6,	// Paragraph mark
+
+	UNICODE_INVERTED_QUESTION_MARK = 0x00BF,
+
+	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_GRAVE = 0x00C0,
+	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_ACUTE = 0x00C1,
+	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX = 0x00C2,
+	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_TILDE = 0x00C3,
+	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS = 0x00C4,
+	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE = 0x00C5,
+	UNICODE_LATIN_CAPITAL_LETTER_AE = 0x00C6,
+	UNICODE_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA = 0x00C7,
+	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_GRAVE = 0x00C8,
+	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_ACUTE = 0x00C9,
+	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX = 0x00CA,
+	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS = 0x00CB,
+	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_GRAVE = 0x00CC,
+	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_ACUTE = 0x00CD,
+	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX = 0x00CE,
+	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS = 0x00CF,
+	UNICODE_LATIN_CAPITAL_LETTER_ETH = 0x00D0,
+	UNICODE_LATIN_CAPITAL_LETTER_N_WITH_TILDE = 0x00D1,
+	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_GRAVE = 0x00D2,
+	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_ACUTE = 0x00D3,
+	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX = 0x00D4,
+	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_TILDE = 0x00D5,
+	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS = 0x00D6,
+	UNICODE_MULTIPLICATION_SIGN = 0x00D7,
+	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_STROKE = 0x00D8,
+	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_GRAVE = 0x00D9,
+	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_ACUTE = 0x00DA,
+	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX = 0x00DB,
+	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS = 0x00DC,
+	UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE = 0x00DD,
+	UNICODE_LATIN_CAPITAL_LETTER_THORN = 0x00DE,
+	UNICODE_LATIN_SMALL_LETTER_SHARP_S = 0x00DF,
+	UNICODE_LATIN_SMALL_LETTER_A_WITH_GRAVE = 0x00E0,
+	UNICODE_LATIN_SMALL_LETTER_A_WITH_ACUTE = 0x00E1,
+	UNICODE_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX = 0x00E2,
+	UNICODE_LATIN_SMALL_LETTER_A_WITH_TILDE = 0x00E3,
+	UNICODE_LATIN_SMALL_LETTER_A_WITH_DIAERESIS = 0x00E4,
+	UNICODE_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE = 0x00E5,
+	UNICODE_LATIN_SMALL_LETTER_AE = 0x00E6,
+	UNICODE_LATIN_SMALL_LETTER_C_WITH_CEDILLA = 0x00E7,
+	UNICODE_LATIN_SMALL_LETTER_E_WITH_GRAVE = 0x00E8,
+	UNICODE_LATIN_SMALL_LETTER_E_WITH_ACUTE = 0x00E9,
+	UNICODE_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX = 0x00EA,
+	UNICODE_LATIN_SMALL_LETTER_E_WITH_DIAERESIS = 0x00EB,
+	UNICODE_LATIN_SMALL_LETTER_I_WITH_GRAVE = 0x00EC,
+	UNICODE_LATIN_SMALL_LETTER_I_WITH_ACUTE = 0x00ED,
+	UNICODE_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX = 0x00EE,
+	UNICODE_LATIN_SMALL_LETTER_I_WITH_DIAERESIS = 0x00EF,
+	UNICODE_LATIN_SMALL_LETTER_ETH = 0x00F0,
+	UNICODE_LATIN_SMALL_LETTER_N_WITH_TILDE = 0x00F1,
+	UNICODE_LATIN_SMALL_LETTER_O_WITH_GRAVE = 0x00F2,
+	UNICODE_LATIN_SMALL_LETTER_O_WITH_ACUTE = 0x00F3,
+	UNICODE_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX = 0x00F4,
+	UNICODE_LATIN_SMALL_LETTER_O_WITH_TILDE = 0x00F5,
+	UNICODE_LATIN_SMALL_LETTER_O_WITH_DIAERESIS = 0x00F6,
+	UNICODE_DIVISION_SIGN = 0x00F7,
+	UNICODE_LATIN_SMALL_LETTER_O_WITH_STROKE = 0x00F8,
+	UNICODE_LATIN_SMALL_LETTER_U_WITH_GRAVE = 0x00F9,
+	UNICODE_LATIN_SMALL_LETTER_U_WITH_ACUTE = 0x00FA,
+	UNICODE_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX = 0x00FB,
+	UNICODE_LATIN_SMALL_LETTER_U_WITH_DIAERESIS = 0x00FC,
+	UNICODE_LATIN_SMALL_LETTER_Y_WITH_ACUTE = 0x00FD,
+	UNICODE_LATIN_SMALL_LETTER_THORN = 0x00FE,
+	UNICODE_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS = 0x00FF,
+	UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS = 0x0178,
+
+	UNICODE_EN_QUAD = 0x2000,
+	UNICODE_EM_QUAD = 0x2001,
+	UNICODE_EN_SPACE = 0x2002,
+	UNICODE_EM_SPACE = 0x2003,
+	UNICODE_ZERO_WIDTH_SPACE = 0x200B,
+	UNICODE_ZERO_WIDTH_NON_JOINER = 0x200C,
+	UNICODE_ZERO_WIDTH_JOINER = 0x200D,
+	UNICODE_EM_DASH = 0x2014,
+	UNICODE_BULLET = 0x2022,
+	UNICODE_DOUBLE_EXCLAMATION_MARK = 0x203c,
+	UNICODE_OVERLINE = 0x203E,
+
+	UNICODE_GREEK_CAPITAL_LETTER_HETA = 0x0370,
+	UNICODE_GREEK_SMALL_LETTER_HETA = 0x0371,
+	UNICODE_GREEK_CAPITAL_LETTER_ARCHAIC_SAMPI = 0x0372,
+	UNICODE_GREEK_SMALL_LETTER_ARCHAIC_SAMPI = 0x0373,
+	UNICODE_GREEK_NUMERAL_SIGN = 0x0374,
+	UNICODE_GREEK_LOWER_NUMERAL_SIGN = 0x0375,
+	UNICODE_GREEK_CAPITAL_LETTER_PAMPHYLIAN_DIGAMMA = 0x0376,
+	UNICODE_GREEK_SMALL_LETTER_PAMPHYLIAN_DIGAMMA = 0x0377,
+	UNICODE_GREEK_YPOGEGRAMMENI = 0x037A,
+	UNICODE_GREEK_SMALL_REVERSED_LUNATE_SIGMA_SYMBOL = 0x037B,
+	UNICODE_GREEK_SMALL_DOTTED_LUNATE_SIGMA_SYMBOL = 0x037C,
+	UNICODE_GREEK_SMALL_REVERSED_DOTTED_LUNATE_SIGMA_SYMBOL = 0x037D,
+	UNICODE_GREEK_QUESTION_MARK = 0x037E,
+	UNICODE_GREEK_CAPITAL_LETTER_YOT = 0x037F,
+	UNICODE_GREEK_TONOS = 0x0384,
+	UNICODE_GREEK_DIALYTIKA_TONOS = 0x0385,
+	UNICODE_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS = 0x0386,
+	UNICODE_GREEK_ANO_TELEIA = 0x0387,
+	UNICODE_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS = 0x0388,
+	UNICODE_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS = 0x0389,
+	UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS = 0x038A,
+	UNICODE_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS = 0x038C,
+	UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS = 0x038E,
+	UNICODE_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS = 0x038F,
+	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS = 0x0390,
+	UNICODE_GREEK_CAPITAL_LETTER_ALPHA = 0x0391,
+	UNICODE_GREEK_CAPITAL_LETTER_BETA = 0x0392,
+	UNICODE_GREEK_CAPITAL_LETTER_GAMMA = 0x0393,
+	UNICODE_GREEK_CAPITAL_LETTER_DELTA = 0x0394,
+	UNICODE_GREEK_CAPITAL_LETTER_EPSILON = 0x0395,
+	UNICODE_GREEK_CAPITAL_LETTER_ZETA = 0x0396,
+	UNICODE_GREEK_CAPITAL_LETTER_ETA = 0x397,
+	UNICODE_GREEK_CAPITAL_LETTER_THETA = 0x0398,
+	UNICODE_GREEK_CAPITAL_LETTER_IOTA = 0x0399,
+	UNICODE_GREEK_CAPITAL_LETTER_KAPPA = 0x039A,
+	UNICODE_GREEK_CAPITAL_LETTER_LAMDA = 0x039B,
+	UNICODE_GREEK_CAPITAL_LETTER_MU = 0x039C,
+	UNICODE_GREEK_CAPITAL_LETTER_NU = 0x039D,
+	UNICODE_GREEK_CAPITAL_LETTER_XI = 0x039E,
+	UNICODE_GREEK_CAPITAL_LETTER_OMICRON = 0x039F,
+	UNICODE_GREEK_CAPITAL_LETTER_PI = 0x03A0,
+	UNICODE_GREEK_CAPITAL_LETTER_RHO = 0x03A1,
+	UNICODE_GREEK_CAPITAL_LETTER_SIGMA = 0x03A3,
+	UNICODE_GREEK_CAPITAL_LETTER_TAU = 0x03A4,
+	UNICODE_GREEK_CAPITAL_LETTER_UPSILON = 0x03A5,
+	UNICODE_GREEK_CAPITAL_LETTER_PHI = 0x03A6,
+	UNICODE_GREEK_CAPITAL_LETTER_CHI = 0x03A7,
+	UNICODE_GREEK_CAPITAL_LETTER_PSI = 0x03A8,
+	UNICODE_GREEK_CAPITAL_LETTER_OMEGA = 0x03A9,
+	UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA = 0x03AA,
+	UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA = 0x03AB,
+	UNICODE_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS = 0x03AC,
+	UNICODE_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS = 0x03AD,
+	UNICODE_GREEK_SMALL_LETTER_ETA_WITH_TONOS = 0x03AE,
+	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_TONOS = 0x03AF,
+	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS = 0x03B0,
+	UNICODE_GREEK_SMALL_LETTER_ALPHA = 0x03B1,
+	UNICODE_GREEK_SMALL_LETTER_BETA = 0x03B2,
+	UNICODE_GREEK_SMALL_LETTER_GAMMA = 0x03B3,
+	UNICODE_GREEK_SMALL_LETTER_DELTA = 0x03B4,
+	UNICODE_GREEK_SMALL_LETTER_EPSILON = 0x03B5,
+	UNICODE_GREEK_SMALL_LETTER_ZETA = 0x03B6,
+	UNICODE_GREEK_SMALL_LETTER_ETA = 0x03B7,
+	UNICODE_GREEK_SMALL_LETTER_THETA = 0x03B8,
+	UNICODE_GREEK_SMALL_LETTER_IOTA = 0x03B9,
+	UNICODE_GREEK_SMALL_LETTER_KAPPA = 0x03BA,
+	UNICODE_GREEK_SMALL_LETTER_LAMDA = 0x03BB,
+	UNICODE_GREEK_SMALL_LETTER_MU = 0x03BC,
+	UNICODE_GREEK_SMALL_LETTER_NU = 0x03BD,
+	UNICODE_GREEK_SMALL_LETTER_XI = 0x03BE,
+	UNICODE_GREEK_SMALL_LETTER_OMICRON = 0x03BF,
+	UNICODE_GREEK_SMALL_LETTER_PI = 0x03C0,
+	UNICODE_GREEK_SMALL_LETTER_RHO = 0x03C1,
+	UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA = 0x03C2,
+	UNICODE_GREEK_SMALL_LETTER_SIGMA = 0x03C3,
+	UNICODE_GREEK_SMALL_LETTER_TAU = 0x03C4,
+	UNICODE_GREEK_SMALL_LETTER_UPSILON = 0x03C5,
+	UNICODE_GREEK_SMALL_LETTER_PHI = 0x03C6,
+	UNICODE_GREEK_SMALL_LETTER_CHI = 0x03C7,
+	UNICODE_GREEK_SMALL_LETTER_PSI = 0x03C8,
+	UNICODE_GREEK_SMALL_LETTER_OMEGA = 0x03C9,
+	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA = 0x03CA,
+	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA = 0x03CB,
+	UNICODE_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS = 0x03CC,
+	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS = 0x03CD,
+	UNICODE_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS = 0x03CE,
+	UNICODE_GREEK_CAPITLA_KAI_SYMBOL = 0x03CF,
+	UNICODE_GREEK_BETA_SYMBOL = 0x03D0,
+	UNICODE_GREEK_THETA_SYMBOL = 0x03D1,
+	UNICODE_GREEK_UPSILON_WITH_HOOK_SYMBOL = 0x03D2,
+	UNICODE_GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL = 0x03D3,
+	UNICODE_GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL = 0x03D4,
+	UNICODE_GREEK_PHI_SYMBOL = 0x03D5,
+	UNICODE_GREEK_PI_SYMBOL = 0x03D6,
+	UNICODE_GREEK_KAI_SYMBOL = 0x03D7,
+	UNICODE_GREEK_LETTER_ARCHAIC_KOPPA = 0x03D8,
+	UNICODE_GREEK_SMALL_LETTER_ARCHAIC_KOPPA = 0x03D9,
+	UNICODE_GREEK_LETTER_STIGMA = 0x03DA,
+	UNICODE_GREEK_SMALL_LETTER_STIGMA = 0x03DB,
+	UNICODE_GREEK_LETTER_DIGAMMA = 0x03DC,
+	UNICODE_GREEK_SMALL_LETTER_DIGAMMA = 0x03DD,
+	UNICODE_GREEK_LETTER_KOPPA = 0x03DE,
+	UNICODE_GREEK_SMALL_LETTER_KOPPA = 0x03DF,
+	UNICODE_GREEK_LETTER_SAMPI = 0x03E0,
+	UNICODE_GREEK_SMALL_LETTER_SAMPI = 0x03E1,
+
+	UNICODE_BLACK_SQUARE = 0x25A0,
+
+	UNICODE_VARIATION_SELECTOR_1 = 0xFE00,
+	UNICODE_VARIATION_SELECTOR_2 = 0xFE01,
+	UNICODE_VARIATION_SELECTOR_3 = 0xFE02,
+	UNICODE_VARIATION_SELECTOR_4 = 0xFE03,
+	UNICODE_VARIATION_SELECTOR_5 = 0xFE04,
+	UNICODE_VARIATION_SELECTOR_6 = 0xFE05,
+	UNICODE_VARIATION_SELECTOR_7 = 0xFE06,
+	UNICODE_VARIATION_SELECTOR_8 = 0xFE07,
+	UNICODE_VARIATION_SELECTOR_9 = 0xFE08,
+	UNICODE_VARIATION_SELECTOR_10 = 0xFE09,
+	UNICODE_VARIATION_SELECTOR_11 = 0xFE0A,
+	UNICODE_VARIATION_SELECTOR_12 = 0xFE0B,
+	UNICODE_VARIATION_SELECTOR_13 = 0xFE0C,
+	UNICODE_VARIATION_SELECTOR_14 = 0xFE0D,
+	UNICODE_VARIATION_SELECTOR_15 = 0xFE0E,
+	UNICODE_VARIATION_SELECTOR_16 = 0xFE0F,
+	UNICODE_ZERO_WIDTH_NO_BREAK_SPACE = 0xFEFF,
+
+	UNICODE_HALFWIDTH_BLACK_SQUARE = 0xFFED,
+	UNICODE_HALFWIDTH_WHITE_CIRCLE = 0xFFEE,
+
+	UNICODE_REPLACEMENT_CHARACTER = 0xFFFD
+};
+
+#endif // Don't add anything after this line
\ No newline at end of file