Added character I/O capabilities and function