Index: uspace/srv/hid/output/meson.build
===================================================================
--- uspace/srv/hid/output/meson.build	(revision 06f10ac669769c5153b94682f2807b60a365293a)
+++ uspace/srv/hid/output/meson.build	(revision 9b2e20c0a5eabb2e6c8d5c488e41253a920dda59)
@@ -28,5 +28,5 @@
 #
 
-deps = [ 'drv', 'fbfont', 'pixconv', 'ddev' ]
+deps = [ 'codepage', 'drv', 'fbfont', 'pixconv', 'ddev' ]
 src = files(
 	'ctl/serial.c',
Index: uspace/srv/hid/output/port/ega.c
===================================================================
--- uspace/srv/hid/output/port/ega.c	(revision 06f10ac669769c5153b94682f2807b60a365293a)
+++ uspace/srv/hid/output/port/ega.c	(revision 9b2e20c0a5eabb2e6c8d5c488e41253a920dda59)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2021 Jiri Svoboda
  * Copyright (c) 2011 Martin Decky
  * All rights reserved.
@@ -31,4 +32,5 @@
  */
 
+#include <codepage/cp437.h>
 #include <errno.h>
 #include <sysinfo.h>
@@ -106,8 +108,8 @@
 {
 	uint8_t glyph;
-
-	if (ascii_check(field->ch))
-		glyph = field->ch;
-	else
+	errno_t rc;
+
+	rc = cp437_encode(field->ch, &glyph);
+	if (rc != EOK)
 		glyph = '?';
 
