# CHAPTER 6: Non-Printing Data Characters

When data are entered into `CHAR` type 3 or `TEXT` attributes from a terminal or loaded from a file, problems may be encountered if these data include a number of special characters: control characters, line-feeds, etc. These problems arise because these characters have special interpretations for the operating system or the terminal handler, and are thus not treated as data. For example, <Ctrl+D> is the normal UNIX end-of-file character (<Ctrl+Z> for Windows NT), and will terminate data entry if entered at a terminal or included in a data file.

It is always possible to load problem characters (except ASCII NUL) via a C program using the mx or mr Routines (see the Empress Host Language: C Interface - mx Routines and Empress Host Language: C Kernel Level Interface - mr Routines manuals).

When data are loaded from a file, the following characters are normally treated as terminators and not stored:

Table 6-1: Terminator Characters

Character Name | Octal Representation
`NUL` | 000
`LF` | 012
`VT` | 013
`FF` | 014
`CR` | 015
`<Ctrl+V>` | 026

When entering data from a terminal, both the above and a number of other characters may cause problems (depending on the terminal handler). These may include the following:

Table 1-2: Problem Characters

Character Name | Octal Representation
`<Ctrl+D>` | 004
`<Ctrl+H>` | 010
`<Ctrl+P>` | 020
`<Ctrl+Q>` | 021
`<Ctrl+S>` | 023
`<Ctrl+U>` | 025

If you need to enter these or other control characters as data, we suggest that you first experiment to see whether you will have difficulties on your particular operating system. If there are problems, you will need a short C program to load the data. A simple program to place data values into a table is illustrated in the Empress Host Language: C Interface - mx Routine manual.