Added more graphic character conversions for petscii.
1 files changed, 110 insertions(+), 1 deletions(-)

M jasm/strings/string_conversions.cpp
M jasm/strings/string_conversions.cpp +110 -1
@@ 69,10 69,32 @@ StringConversions::StringConversions()
 		for (wchar_t c = 0; c < 26; ++c)
 			map[c + L'a'] = c + 65;
 		map[L'['] = 91;
-		map[L'\u00a3'] = 92;
+		map[L'\u00a3'] = 92; // pound
 		map[L']'] = 93;
+		map[L'\u2191'] = 94;
+		map[L'\u2190'] = 95;
+		map[L'\u2501'] = 96; // horizontal line
 		for (wchar_t c = 0; c < 26; ++c)
 			map[c + 'A'] = c + 97;
+		map[L'\u254b'] = 123; // junction
+		map[L'\u2503'] = 125; // vertical line
+
+		map[L'\u2592'] = 166; // medium checker
+
+		map[L'\u2523'] = 171; // vertical and right crossing
+		map[L'\u2597'] = 172; // quadrant lower right
+		map[L'\u2517'] = 173; // up and right bend
+		map[L'\u2513'] = 174; // down and left bend
+		map[L'\u250f'] = 176; // down and right bend
+		map[L'\u253b'] = 177; // up and horizontal crossing
+		map[L'\u2533'] = 178; // down and horizontal crossing
+		map[L'\u252b'] = 179; // vertical and left crossing
+		map[L'\u2596'] = 187; // quadrant lower left
+		map[L'\u259d'] = 188; // quadrant upper right
+		map[L'\u251b'] = 189; // up and left bend
+		map[L'\u2598'] = 190; // quadrant upper right
+		map[L'\u259a'] = 191; // quadrant upper left lower right
+
 	}
 
 	{

          
@@ 86,6 108,38 @@ StringConversions::StringConversions()
 		map[L'['] = 91;
 		map[L'\u00a3'] = 92;
 		map[L']'] = 93;
+		map[L'\u2191'] = 94;
+		map[L'\u2190'] = 95;
+		map[L'\u2501'] = 96; // horizontal line
+		map[L'\u2660'] = 97; // spades
+		map[L'\u2572'] = 109; // nw diagonal line
+		map[L'\u2571'] = 110; // ne diagonal line
+		map[L'\u25cf'] = 113; // filled circle
+		map[L'\u2665'] = 115; // heart
+		map[L'\u2573'] = 118; // cross
+		map[L'\u25cb'] = 119; // circle
+		map[L'\u2663'] = 120; // club
+		map[L'\u2666'] = 122; // diamond
+		map[L'\u254b'] = 123; // junction
+		map[L'\u2503'] = 125; // vertical line
+		map[L'\u23c0'] = 126; // pi
+		map[L'\u25e5'] = 127; // upper right triangle
+		map[L'\u2592'] = 166; // medium checker
+		map[L'\u25e4'] = 169; // upper left triangle
+
+		map[L'\u2523'] = 171; // vertical and right crossing
+		map[L'\u2597'] = 172; // quadrant lower right
+		map[L'\u2517'] = 173; // up and right bend
+		map[L'\u2513'] = 174; // down and left bend
+		map[L'\u250f'] = 176; // down and right bend
+		map[L'\u253b'] = 177; // up and horizontal crossing
+		map[L'\u2533'] = 178; // down and horizontal crossing
+		map[L'\u252b'] = 179; // vertical and left crossing
+		map[L'\u2596'] = 187; // quadrant lower left
+		map[L'\u259d'] = 188; // quadrant upper right
+		map[L'\u251b'] = 189; // up and left bend
+		map[L'\u2598'] = 190; // quadrant upper right
+		map[L'\u259a'] = 191; // quadrant upper left lower right
 	}
 
 	{

          
@@ 99,8 153,29 @@ StringConversions::StringConversions()
 		map[L'['] = 27;
 		map[L'\u00a3'] = 28;
 		map[L']'] = 29;
+		map[L'\u2191'] = 30;
+		map[L'\u2190'] = 31;
 		for (wchar_t c = 0; c < 26; ++c)
 			map[c + 'A'] = c + 65;
+
+		map[L'\u2501'] = 64; // horizontal line
+		map[L'\u254b'] = 91; // junction
+		map[L'\u2503'] = 93; // vertical line
+		map[L'\u2592'] = 102; // medium checker
+
+		map[L'\u2523'] = 107; // vertical and right crossing
+		map[L'\u2597'] = 108; // quadrant lower right
+		map[L'\u2517'] = 109; // up and right bend
+		map[L'\u2513'] = 110; // down and left bend
+		map[L'\u250f'] = 112; // down and right bend
+		map[L'\u253b'] = 113; // up and horizontal crossing
+		map[L'\u2533'] = 114; // down and horizontal crossing
+		map[L'\u252b'] = 115; // vertical and left crossing
+		map[L'\u2596'] = 123; // quadrant lower left
+		map[L'\u259d'] = 124; // quadrant upper right
+		map[L'\u251b'] = 125; // up and left bend
+		map[L'\u2598'] = 126; // quadrant upper right
+		map[L'\u259a'] = 127; // quadrant upper left lower right
 	}
 
 	{

          
@@ 114,6 189,40 @@ StringConversions::StringConversions()
 		map[L'['] = 27;
 		map[L'\u00a3'] = 28;
 		map[L']'] = 29;
+		map[L'\u2191'] = 30;
+		map[L'\u2190'] = 31;
+
+		map[L'\u2501'] = 64; // horizontal line
+		map[L'\u2660'] = 65; // spades
+		map[L'\u2572'] = 77; // nw diagonal line
+		map[L'\u2571'] = 78; // ne diagonal line
+		map[L'\u25cf'] = 81; // filled circle
+		map[L'\u2665'] = 83; // heart
+		map[L'\u2573'] = 86; // cross
+		map[L'\u25cb'] = 87; // circle
+		map[L'\u2663'] = 88; // club
+		map[L'\u2666'] = 90; // diamond
+		map[L'\u254b'] = 91; // junction
+		map[L'\u2503'] = 93; // vertical line
+
+		map[L'\u23c0'] = 94; // pi
+		map[L'\u25e5'] = 95; // upper right triangle
+		map[L'\u2592'] = 102; // medium checker
+		map[L'\u25e4'] = 105; // upper left triangle
+
+		map[L'\u2523'] = 107; // vertical and right crossing
+		map[L'\u2597'] = 108; // quadrant lower right
+		map[L'\u2517'] = 109; // up and right bend
+		map[L'\u2513'] = 110; // down and left bend
+		map[L'\u250f'] = 112; // down and right bend
+		map[L'\u253b'] = 113; // up and horizontal crossing
+		map[L'\u2533'] = 114; // down and horizontal crossing
+		map[L'\u252b'] = 115; // vertical and left crossing
+		map[L'\u2596'] = 123; // quadrant lower left
+		map[L'\u259d'] = 124; // quadrant upper right
+		map[L'\u251b'] = 125; // up and left bend
+		map[L'\u2598'] = 126; // quadrant upper right
+		map[L'\u259a'] = 127; // quadrant upper left lower right
 	}
 
 	{