ArmSCII

ArmSCII or ARMSCII is a set of obsolete single-byte character encodings for the Armenian alphabet defined by Armenian national standard 166–9. ArmSCII is an acronym for Armenian Standard Code for Information Interchange, similar to ASCII for the American standard. It has been superseded by the Unicode standard.

However, these encodings are not widely used because the standard was published one year after the publication of international standard ISO 10585 that defined another 7-bit encoding, from which the encoding and mapping to the UCS (Universal Coded Character Set (ISO/IEC 10646) and Unicode standards) were also derived a few years after, and there was a lack of support in the computer industry for adding ArmSCII.

Encodings defined in the ArmSCII standard
Very few systems support these encodings. Microsoft Windows does not support them, for example. It is usually better to use Unicode for proper interchange of Armenian text for web browsers and email, since most modern computers do not support ArmSCII by default.

The following three main variants are defined:
 * ArmSCII-7 defined in AST 34.005 is a 7-bit encoding, not containing Latin characters.
 * ArmSCII-8 defined in AST 34.002 is an 8-bit encoding and a superset of ASCII.
 * ArmSCII-8A defined in AST 34.002 is an alternate 8-bit encoding and also a superset of ASCII.

Note that each ArmSCII encoding also has several minor variants, depending on the revision of the related Armenian standard (which was not made official before 1997, and was defined informally before that; this has caused various confusions and the mappings described below are just best practices according to the latest 1997 revision of the Armenian standard); that may change the exact mapping and usage of a few punctuation characters and symbols.

None of the ArmSCII encodings have reached international approval (unlike the ISO 10585 standard, despite the critiques sent by the official Armenian standard body to ISO/DIS JTC 1/SC 2/WG 2, working on single byte-coded character sets) because all international efforts have been made since then to work with the UCS (in Unicode and ISO 10646).

ArmSCII-8 is intended for use on Unix and Windows systems, and for information interchange on the WWW and by email. However, Microsoft wanted users to use Unicode and not introduce a plethora of new code pages, so it is not supported natively on Windows. It just consists in remapping ArmSCII-7 in the higher range above the standard US ASCII range.

ArmSCII-8A is intended for use on DOS and Mac systems. It is a rearrangement of ArmSCII-8, to work with existing DOS and Mac code that reserve a range of code values for characters not intended for text but for presentation layout, using modified fonts; it is, however, considered as a "hack" of the code pages over which it is applied, as neither DOS (nor Windows in the "OEM" compatibility codepages used by the text-only console) nor MacOS has ever supported this encoding natively, notably in their file system (but this is also true for the now deprecated ISO 10585 standard). However, this encoding cannot map all the punctuation characters normally needed for Armenian, so the missing characters must be approximated using fallbacks to ASCII punctuation (some Armenian fonts may display these ASCII punctuation using the rendering intended for the Armenian characters that are mapped to them by these fallbacks).

ArmSCII-7
In this table, code value 21 is the eternity sign, which has, since 2013, a designated point in Unicode U+058E (LEFT-FACING ARMENIAN ETERNITY SIGN) and another for its right-facing variant: U+058D (RIGHT-FACING ARMENIAN ETERNITY SIGN). Some mappings incorrectly claim that it has a code point of U+0530.

Code value 20 is the regular SPACE character; code values 00–1F and 7F are not assigned to characters by AST 34.005, though they may be the same as the ASCII control characters that are located in those positions.

Code value 22 is used to encode the Armenian ligature ew (և). In some variants, it encodes the section sign (§) instead. It is strongly suggested to encode this ligature with the normal Armenian ech (yech) and yiwn (vyun) small letters pair, as various software or fonts will render it differently depending on the version of ArmSCII-7 they are assuming, and so let the renderer generate the ligature.

Code value 7F may be used sometimes as a substitution for the non-breaking space.

Note that the characters encoded at code values 2D and 7E (Armenian hyphen and apostrophe) may not be visible with all fonts supporting Armenian.

This table is simply remapped to higher codes by simple offset in ArmSCII-8 (below).

ArmSCII-8
In this table, code value 20 is reserved for the regular SPACE character, code value A0 is reserved for the non-breaking space, and code value A1 is assigned to the eternity sign, which has, since 2013, a designated point in Unicode U+58E (LEFT-FACING ARMENIAN ETERNITY SIGN) and another for its right-facing variant: U+58D (RIGHT-FACING ARMENIAN ETERNITY SIGN). Some mappings incorrectly claim that it has a code point of U+0530.

Code values 00–1F and 7F–9F are not assigned to characters by AST 34.002, though they may be the same as the ISO-8859-1 control characters that are located in those positions.

The code value A2 is used to encode the Armenian ligature ew (և). In some variants it encodes the section sign (§) instead. Some Armenian fonts display this ligature at the position of the ASCII ampersand symbol, but it is strongly suggested to encode the ligature using the two standard Armenian small letters that compose it.

The code value FF may be filled with the Armenian small letter modifier apostrophe (but it has no mapping in Unicode, and shown here using the ASCII apostrophe instead, for correct rendering with Unicode fonts, it is suggested that the small letter modifier be represented using code value FE with ligature control to change its position because it only occurs after a small Armenian letter), and the Armenian apostrophe encoded at FE occurs only after a capital Armenian letter. So most implementations do not encode anything at code value FF.

This standard is the only one that makes an apparent distinction for the "mirrored" Armenian parentheses, because it was created by simply remapping the ArmSCII-7 standard. However, many documents will not consider this as a productive distinction, and the usual ASCII-based parenthesis punctuation are most commonly used instead of the ArmSCII-7-based mirrored parentheses, just because Armenian keyboards and editors using ArmSCII-8 generated the lower ASCII codes (whose usage is just swapped in classical Armenian). Also, the duplication of the ASCII comma at code value AB is also the result of the simple remapping of ArmSCII-7, so there is no difference with the ASCII comma that most ArmSCII-8 documents are using.

Note that the characters encoded at code values AD and FE (Armenian hyphen and apostrophe) may not be visible with all fonts supporting Armenian. FreeDOS calls this Code Page 65506.

ArmSCII-8A
In this table, code value 20 is the regular SPACE character, and code value DC is the eternity sign, which has, since 2013, a designated point in Unicode U+58E (LEFT-FACING ARMENIAN ETERNITY SIGN) and another for its right-facing variant: U+58D (RIGHT-FACING ARMENIAN ETERNITY SIGN). Some mappings incorrectly claim that it has a code point of U+0530.

Code values 00–1F, 7F, and B0–DB are not assigned to characters by AST 34.002, though they may be the same as those used in a legacy DOS/OEM codepage 437 (box drawing characters) or Macintosh Roman.

Note that the characters encoded at code values DD and FE (Armenian hyphen and apostrophe) may not be visible with all fonts supporting Armenian. FreeDOS calls this Code Page 899 (probably an error, as IBM uses this code page number for a different encoding.

ISO 10585:1996
For comparison, this is the 7-bit encoding in the international standard ISO/IEC 10585 standard that was used before the revision in the Armenian standard AST34.002:1997 (ArmSCII-8).

In this standard (as well as in ISO/IEC 10646 and Unicode), there's only one Armenian apostrophe modifier letter encoded at 0x49 when Armenian uses two modifier letter apostrophes which are cased (U+055A represents the capital apostrophe but is not considered dual-cased in Unicode and this ISO 15985 standard, the small letter apostrophe is absent but generally represented by the ASCII apostrophe U+0027 in Unicode documents).

The left half-ring punctuation (a modifier letter) and the eternity symbol are also missing, and only one double quotation mark (U+2033) is encoded in code value 7A instead of double guillemets in the three ArmSCII variants.

However, this standard maps the Armenian full stop (whose glyph looks very close to the ASCII colon) in code value 4C and the Armenian abbreviation mark (that looks very similar to an angular grave accent) in code value 4F, that are both missing from all ArmSCII code charts.

Note that the characters encoded at code values 49 and 4A (Armenian apostrophe and hyphen) may not be visible with all fonts supporting Armenian.

Windows Paratype code page, replaced by ArmSCII-8 by 2005
This encoding is supported by FontLab Studio 5. This encoding was previously used by Paratype, but it was replaced by ARMSCII-8.

ISO/IEC 10646-1 and Unicode
For comparison, this is the Unicode code points charts for Armenian.

Its encoding since Unicode 1.1 (except the Armenian hyphen U+058A, the last character added since Unicode 3.0) was based on the previous ISO 10585 7-bit international encoding standard, rather than on ArmsCII that was missing a dozen of characters present in ISO 10585. However, non-letters were reorganized by type, and some extensions have been added for rare Armenian characters that were missing in all past 7-bit and 8-bit standards.

Capital letters are encoded in the first half of the block (terminated by modifier letters).

Lowercase letters are encoded in the second half of the block (terminated by Armenian punctuation signs).

Unlike the ArmSCII encodings, this encoding is stable and portable across systems, and contain all characters needed for Armenian (with the exception of the Armenian eternity sign). Some Unicode-encoded fonts for Armenian are mapping the eternity sign at code point U+0530. This is incorrect, as that code point has been allocated in 2013 at U+58E, and another for its right-facing variant: U+58D.

However, no distinction is kept for the Armenian (mirrored) parenthesis, so the standard ASCII/Unicode punctuation must be used according to their usual rendering. The left half-ring mark (modifier letter) is encoded here, and some other marks are unified with other scripts (notably the quotation marks, middle dot and dashes).

Note that the characters encoded at code points U+055A and U+058A (Armenian apostrophe and hyphen, like in the charts for ArmsCII and ISO 10585), and as well as U+0559 (the modifier mark for numeric, added specifically into ISO 10646-1 and Unicode), may not be visible with all fonts supporting Armenian.

Code mappings and classification
Note that some transcodings are shown below between parentheses. They are only approximation fallbacks but do not map exactly the intended character.