# INFLD Character Type Codes > [HTML Version](infld-character-codes.htm) Control Character Input \[ _Type_ code = **@** \] Works as a "fast" field to return the first _n_ characters typed (where _n_ is the value of _xmin_) , whether control characters or not. The only character you cannot retrieve this way is Ctrl+C. (You can trap that with ON ERROR GOTO or by using the **V** code.) Ordinarily you should specify a minimum of 0 or 1 for this to return a single control character properly. Also note that this code over-rides all other codes (where conflicting). See codes **C** and **<**. Note that function keys will only return the first byte of the sequence (typically ASCII 7). ccc Currency Field \[ _Type_ code = **\$** \] Redisplays as "\$\$###,###,###.##". If ** . ** (period) code not used, displays with last 2 digits entered to the right of the decimal point. Otherwise inserts ".00" after the number entered (if hard decimal not entered) or simply formats the cents as ".#Z" (if hard decimal entered). Default decimal position and number of digits past the decimal point are adjustable with the _maxpt_ and _defpt_ parameters. Currency symbol is determined by the applicable Language Definition File (LDF). Note that the symbol may be one or two characters, with or without a space between it and the number, and it may appear before or after the number, depending on the LDF parameters. Also note that by setting _defpt_ = -2, you can eliminate the decimal point and cents (for handling currency in whole numbers). No/Yes Field \[ _Type_ code = **N** \] When following a **Y** code, specifies a Yes/No field with "N" default (and pre-display). Otherwise, like **#** but does not display a "0" if nothing entered or supplied, and does display one blank after the marker characters. This is a useful alternative to the **#** code when the screen may be cluttered by the display of many fields containing 0 (e.g. "0", "0.00", "\$0", etc. (See **B** to display the blanking.) Phone Or Zip Code Input \[ _Type_ code = **P** \] If _xmax_ = 7 or 10, specifies phone number and allows alphanumeric entry. Must be either 0, 7 or 10 characters. Redisplayed as "(###) ###-####" with the area code omitted if only 7 digits entered. If _xmax_ = 5 or 9, specifies zip code and allows numeric entry only. Must be either 0, 5 or 9 characters. Redisplayed as "#####-####", with the dash and last 4 digits used only if more than 5 digits entered. Note that this field ignores the language definition file, since there is no guarantee that the phone number or zip being entered actually belongs to the language of the current user. One solution is to prompt for the country first, and then if it is not USA, use alternate _type_ codes for zip and phone. Yes/No Field \[ _Type_ code = **Y** \] Default to (and pre-display as) "Y", unless followed by a **N** code, or followed exclusively by an **E** or **T** code. (This is to maintain compatibility with INPUT's YE and YT.) The keyboard character "1" is interpreted as (and converted to) "Y" and "0" as "N" in Yes/No fields. Note that the English "Y" and "N" abbreviations may be changed by the language definition file (LDF) to more appropriate ones for the local language. See the [GUI-Related Codes](gui-related_codes.htm.md) topic for information on converting a Yes/No field to a checkbox. Setdef Qualifier Indicates that _setdef_ contains a list of all the allowable characters. To be accepted, input characters must first pass the normal _type_ code acceptance rules, and then must be listed within the _setdef_ string. Consequently, to use _setdef_ exclusively to specify the allowable characters, combine _type_ codes **\{** and **A**. Note that upper and lower case is significant when _setdef_ is used this way. See the [setdef](setdef.htm.md) topic.