]> gitweb.factorcode.org Git - factor.git/commitdiff
Add cp437 8-bit encoding, AKA IBM437
authorAlexander Iljin <ajsoft@yandex.ru>
Thu, 27 Oct 2016 09:48:23 +0000 (12:48 +0300)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 27 Oct 2016 15:44:15 +0000 (08:44 -0700)
basis/io/encodings/8-bit/CP437.TXT [new file with mode: 0644]
basis/io/encodings/8-bit/cp437/authors.txt [new file with mode: 0644]
basis/io/encodings/8-bit/cp437/cp437-docs.factor [new file with mode: 0644]
basis/io/encodings/8-bit/cp437/cp437.factor [new file with mode: 0644]

diff --git a/basis/io/encodings/8-bit/CP437.TXT b/basis/io/encodings/8-bit/CP437.TXT
new file mode 100644 (file)
index 0000000..70570b2
--- /dev/null
@@ -0,0 +1,273 @@
+#
+#    Name:     cp437_DOSLatinUS to Unicode table
+#    Unicode version: 2.0
+#    Table version: 2.00
+#    Table format:  Format A
+#    Date:          04/24/96
+#    Contact: Shawn.Steele@microsoft.com
+#                   
+#    General notes: none
+#
+#    Format: Three tab-separated columns
+#        Column #1 is the cp437_DOSLatinUS code (in hex)
+#        Column #2 is the Unicode (in hex as 0xXXXX)
+#        Column #3 is the Unicode name (follows a comment sign, '#')
+#
+#    The entries are in cp437_DOSLatinUS order
+#
+0x00   0x0000  #NULL
+0x01   0x0001  #START OF HEADING
+0x02   0x0002  #START OF TEXT
+0x03   0x0003  #END OF TEXT
+0x04   0x0004  #END OF TRANSMISSION
+0x05   0x0005  #ENQUIRY
+0x06   0x0006  #ACKNOWLEDGE
+0x07   0x0007  #BELL
+0x08   0x0008  #BACKSPACE
+0x09   0x0009  #HORIZONTAL TABULATION
+0x0A   0x000A  #LINE FEED
+0x0B   0x000B  #VERTICAL TABULATION
+0x0C   0x000C  #FORM FEED
+0x0D   0x000D  #CARRIAGE RETURN
+0x0E   0x000E  #SHIFT OUT
+0x0F   0x000F  #SHIFT IN
+0x10   0x0010  #DATA LINK ESCAPE
+0x11   0x0011  #DEVICE CONTROL ONE
+0x12   0x0012  #DEVICE CONTROL TWO
+0x13   0x0013  #DEVICE CONTROL THREE
+0x14   0x0014  #DEVICE CONTROL FOUR
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE
+0x16   0x0016  #SYNCHRONOUS IDLE
+0x17   0x0017  #END OF TRANSMISSION BLOCK
+0x18   0x0018  #CANCEL
+0x19   0x0019  #END OF MEDIUM
+0x1A   0x001A  #SUBSTITUTE
+0x1B   0x001B  #ESCAPE
+0x1C   0x001C  #FILE SEPARATOR
+0x1D   0x001D  #GROUP SEPARATOR
+0x1E   0x001E  #RECORD SEPARATOR
+0x1F   0x001F  #UNIT SEPARATOR
+0x20   0x0020  #SPACE
+0x21   0x0021  #EXCLAMATION MARK
+0x22   0x0022  #QUOTATION MARK
+0x23   0x0023  #NUMBER SIGN
+0x24   0x0024  #DOLLAR SIGN
+0x25   0x0025  #PERCENT SIGN
+0x26   0x0026  #AMPERSAND
+0x27   0x0027  #APOSTROPHE
+0x28   0x0028  #LEFT PARENTHESIS
+0x29   0x0029  #RIGHT PARENTHESIS
+0x2A   0x002A  #ASTERISK
+0x2B   0x002B  #PLUS SIGN
+0x2C   0x002C  #COMMA
+0x2D   0x002D  #HYPHEN-MINUS
+0x2E   0x002E  #FULL STOP
+0x2F   0x002F  #SOLIDUS
+0x30   0x0030  #DIGIT ZERO
+0x31   0x0031  #DIGIT ONE
+0x32   0x0032  #DIGIT TWO
+0x33   0x0033  #DIGIT THREE
+0x34   0x0034  #DIGIT FOUR
+0x35   0x0035  #DIGIT FIVE
+0x36   0x0036  #DIGIT SIX
+0x37   0x0037  #DIGIT SEVEN
+0x38   0x0038  #DIGIT EIGHT
+0x39   0x0039  #DIGIT NINE
+0x3A   0x003A  #COLON
+0x3B   0x003B  #SEMICOLON
+0x3C   0x003C  #LESS-THAN SIGN
+0x3D   0x003D  #EQUALS SIGN
+0x3E   0x003E  #GREATER-THAN SIGN
+0x3F   0x003F  #QUESTION MARK
+0x40   0x0040  #COMMERCIAL AT
+0x41   0x0041  #LATIN CAPITAL LETTER A
+0x42   0x0042  #LATIN CAPITAL LETTER B
+0x43   0x0043  #LATIN CAPITAL LETTER C
+0x44   0x0044  #LATIN CAPITAL LETTER D
+0x45   0x0045  #LATIN CAPITAL LETTER E
+0x46   0x0046  #LATIN CAPITAL LETTER F
+0x47   0x0047  #LATIN CAPITAL LETTER G
+0x48   0x0048  #LATIN CAPITAL LETTER H
+0x49   0x0049  #LATIN CAPITAL LETTER I
+0x4A   0x004A  #LATIN CAPITAL LETTER J
+0x4B   0x004B  #LATIN CAPITAL LETTER K
+0x4C   0x004C  #LATIN CAPITAL LETTER L
+0x4D   0x004D  #LATIN CAPITAL LETTER M
+0x4E   0x004E  #LATIN CAPITAL LETTER N
+0x4F   0x004F  #LATIN CAPITAL LETTER O
+0x50   0x0050  #LATIN CAPITAL LETTER P
+0x51   0x0051  #LATIN CAPITAL LETTER Q
+0x52   0x0052  #LATIN CAPITAL LETTER R
+0x53   0x0053  #LATIN CAPITAL LETTER S
+0x54   0x0054  #LATIN CAPITAL LETTER T
+0x55   0x0055  #LATIN CAPITAL LETTER U
+0x56   0x0056  #LATIN CAPITAL LETTER V
+0x57   0x0057  #LATIN CAPITAL LETTER W
+0x58   0x0058  #LATIN CAPITAL LETTER X
+0x59   0x0059  #LATIN CAPITAL LETTER Y
+0x5A   0x005A  #LATIN CAPITAL LETTER Z
+0x5B   0x005B  #LEFT SQUARE BRACKET
+0x5C   0x005C  #REVERSE SOLIDUS
+0x5D   0x005D  #RIGHT SQUARE BRACKET
+0x5E   0x005E  #CIRCUMFLEX ACCENT
+0x5F   0x005F  #LOW LINE
+0x60   0x0060  #GRAVE ACCENT
+0x61   0x0061  #LATIN SMALL LETTER A
+0x62   0x0062  #LATIN SMALL LETTER B
+0x63   0x0063  #LATIN SMALL LETTER C
+0x64   0x0064  #LATIN SMALL LETTER D
+0x65   0x0065  #LATIN SMALL LETTER E
+0x66   0x0066  #LATIN SMALL LETTER F
+0x67   0x0067  #LATIN SMALL LETTER G
+0x68   0x0068  #LATIN SMALL LETTER H
+0x69   0x0069  #LATIN SMALL LETTER I
+0x6A   0x006A  #LATIN SMALL LETTER J
+0x6B   0x006B  #LATIN SMALL LETTER K
+0x6C   0x006C  #LATIN SMALL LETTER L
+0x6D   0x006D  #LATIN SMALL LETTER M
+0x6E   0x006E  #LATIN SMALL LETTER N
+0x6F   0x006F  #LATIN SMALL LETTER O
+0x70   0x0070  #LATIN SMALL LETTER P
+0x71   0x0071  #LATIN SMALL LETTER Q
+0x72   0x0072  #LATIN SMALL LETTER R
+0x73   0x0073  #LATIN SMALL LETTER S
+0x74   0x0074  #LATIN SMALL LETTER T
+0x75   0x0075  #LATIN SMALL LETTER U
+0x76   0x0076  #LATIN SMALL LETTER V
+0x77   0x0077  #LATIN SMALL LETTER W
+0x78   0x0078  #LATIN SMALL LETTER X
+0x79   0x0079  #LATIN SMALL LETTER Y
+0x7A   0x007A  #LATIN SMALL LETTER Z
+0x7B   0x007B  #LEFT CURLY BRACKET
+0x7C   0x007C  #VERTICAL LINE
+0x7D   0x007D  #RIGHT CURLY BRACKET
+0x7E   0x007E  #TILDE
+0x7F   0x007F  #DELETE
+0x80   0x00C7  #LATIN CAPITAL LETTER C WITH CEDILLA
+0x81   0x00FC  #LATIN SMALL LETTER U WITH DIAERESIS
+0x82   0x00E9  #LATIN SMALL LETTER E WITH ACUTE
+0x83   0x00E2  #LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x84   0x00E4  #LATIN SMALL LETTER A WITH DIAERESIS
+0x85   0x00E0  #LATIN SMALL LETTER A WITH GRAVE
+0x86   0x00E5  #LATIN SMALL LETTER A WITH RING ABOVE
+0x87   0x00E7  #LATIN SMALL LETTER C WITH CEDILLA
+0x88   0x00EA  #LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x89   0x00EB  #LATIN SMALL LETTER E WITH DIAERESIS
+0x8A   0x00E8  #LATIN SMALL LETTER E WITH GRAVE
+0x8B   0x00EF  #LATIN SMALL LETTER I WITH DIAERESIS
+0x8C   0x00EE  #LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x8D   0x00EC  #LATIN SMALL LETTER I WITH GRAVE
+0x8E   0x00C4  #LATIN CAPITAL LETTER A WITH DIAERESIS
+0x8F   0x00C5  #LATIN CAPITAL LETTER A WITH RING ABOVE
+0x90   0x00C9  #LATIN CAPITAL LETTER E WITH ACUTE
+0x91   0x00E6  #LATIN SMALL LIGATURE AE
+0x92   0x00C6  #LATIN CAPITAL LIGATURE AE
+0x93   0x00F4  #LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x94   0x00F6  #LATIN SMALL LETTER O WITH DIAERESIS
+0x95   0x00F2  #LATIN SMALL LETTER O WITH GRAVE
+0x96   0x00FB  #LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x97   0x00F9  #LATIN SMALL LETTER U WITH GRAVE
+0x98   0x00FF  #LATIN SMALL LETTER Y WITH DIAERESIS
+0x99   0x00D6  #LATIN CAPITAL LETTER O WITH DIAERESIS
+0x9A   0x00DC  #LATIN CAPITAL LETTER U WITH DIAERESIS
+0x9B   0x00A2  #CENT SIGN
+0x9C   0x00A3  #POUND SIGN
+0x9D   0x00A5  #YEN SIGN
+0x9E   0x20A7  #PESETA SIGN
+0x9F   0x0192  #LATIN SMALL LETTER F WITH HOOK
+0xA0   0x00E1  #LATIN SMALL LETTER A WITH ACUTE
+0xA1   0x00ED  #LATIN SMALL LETTER I WITH ACUTE
+0xA2   0x00F3  #LATIN SMALL LETTER O WITH ACUTE
+0xA3   0x00FA  #LATIN SMALL LETTER U WITH ACUTE
+0xA4   0x00F1  #LATIN SMALL LETTER N WITH TILDE
+0xA5   0x00D1  #LATIN CAPITAL LETTER N WITH TILDE
+0xA6   0x00AA  #FEMININE ORDINAL INDICATOR
+0xA7   0x00BA  #MASCULINE ORDINAL INDICATOR
+0xA8   0x00BF  #INVERTED QUESTION MARK
+0xA9   0x2310  #REVERSED NOT SIGN
+0xAA   0x00AC  #NOT SIGN
+0xAB   0x00BD  #VULGAR FRACTION ONE HALF
+0xAC   0x00BC  #VULGAR FRACTION ONE QUARTER
+0xAD   0x00A1  #INVERTED EXCLAMATION MARK
+0xAE   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xAF   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xB0   0x2591  #LIGHT SHADE
+0xB1   0x2592  #MEDIUM SHADE
+0xB2   0x2593  #DARK SHADE
+0xB3   0x2502  #BOX DRAWINGS LIGHT VERTICAL
+0xB4   0x2524  #BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xB5   0x2561  #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xB6   0x2562  #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xB7   0x2556  #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xB8   0x2555  #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xB9   0x2563  #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xBA   0x2551  #BOX DRAWINGS DOUBLE VERTICAL
+0xBB   0x2557  #BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xBC   0x255D  #BOX DRAWINGS DOUBLE UP AND LEFT
+0xBD   0x255C  #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xBE   0x255B  #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xBF   0x2510  #BOX DRAWINGS LIGHT DOWN AND LEFT
+0xC0   0x2514  #BOX DRAWINGS LIGHT UP AND RIGHT
+0xC1   0x2534  #BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xC2   0x252C  #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xC3   0x251C  #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xC4   0x2500  #BOX DRAWINGS LIGHT HORIZONTAL
+0xC5   0x253C  #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xC6   0x255E  #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xC7   0x255F  #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xC8   0x255A  #BOX DRAWINGS DOUBLE UP AND RIGHT
+0xC9   0x2554  #BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xCA   0x2569  #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xCB   0x2566  #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xCC   0x2560  #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xCD   0x2550  #BOX DRAWINGS DOUBLE HORIZONTAL
+0xCE   0x256C  #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xCF   0x2567  #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xD0   0x2568  #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xD1   0x2564  #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xD2   0x2565  #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xD3   0x2559  #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xD4   0x2558  #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xD5   0x2552  #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xD6   0x2553  #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xD7   0x256B  #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xD8   0x256A  #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xD9   0x2518  #BOX DRAWINGS LIGHT UP AND LEFT
+0xDA   0x250C  #BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xDB   0x2588  #FULL BLOCK
+0xDC   0x2584  #LOWER HALF BLOCK
+0xDD   0x258C  #LEFT HALF BLOCK
+0xDE   0x2590  #RIGHT HALF BLOCK
+0xDF   0x2580  #UPPER HALF BLOCK
+0xE0   0x03B1  #GREEK SMALL LETTER ALPHA
+0xE1   0x00DF  #LATIN SMALL LETTER SHARP S
+0xE2   0x0393  #GREEK CAPITAL LETTER GAMMA
+0xE3   0x03C0  #GREEK SMALL LETTER PI
+0xE4   0x03A3  #GREEK CAPITAL LETTER SIGMA
+0xE5   0x03C3  #GREEK SMALL LETTER SIGMA
+0xE6   0x00B5  #MICRO SIGN
+0xE7   0x03C4  #GREEK SMALL LETTER TAU
+0xE8   0x03A6  #GREEK CAPITAL LETTER PHI
+0xE9   0x0398  #GREEK CAPITAL LETTER THETA
+0xEA   0x03A9  #GREEK CAPITAL LETTER OMEGA
+0xEB   0x03B4  #GREEK SMALL LETTER DELTA
+0xEC   0x221E  #INFINITY
+0xED   0x03C6  #GREEK SMALL LETTER PHI
+0xEE   0x03B5  #GREEK SMALL LETTER EPSILON
+0xEF   0x2229  #INTERSECTION
+0xF0   0x2261  #IDENTICAL TO
+0xF1   0x00B1  #PLUS-MINUS SIGN
+0xF2   0x2265  #GREATER-THAN OR EQUAL TO
+0xF3   0x2264  #LESS-THAN OR EQUAL TO
+0xF4   0x2320  #TOP HALF INTEGRAL
+0xF5   0x2321  #BOTTOM HALF INTEGRAL
+0xF6   0x00F7  #DIVISION SIGN
+0xF7   0x2248  #ALMOST EQUAL TO
+0xF8   0x00B0  #DEGREE SIGN
+0xF9   0x2219  #BULLET OPERATOR
+0xFA   0x00B7  #MIDDLE DOT
+0xFB   0x221A  #SQUARE ROOT
+0xFC   0x207F  #SUPERSCRIPT LATIN SMALL LETTER N
+0xFD   0x00B2  #SUPERSCRIPT TWO
+0xFE   0x25A0  #BLACK SQUARE
+0xFF   0x00A0  #NO-BREAK SPACE
diff --git a/basis/io/encodings/8-bit/cp437/authors.txt b/basis/io/encodings/8-bit/cp437/authors.txt
new file mode 100644 (file)
index 0000000..8e1955f
--- /dev/null
@@ -0,0 +1 @@
+Alexander Ilin
diff --git a/basis/io/encodings/8-bit/cp437/cp437-docs.factor b/basis/io/encodings/8-bit/cp437/cp437-docs.factor
new file mode 100644 (file)
index 0000000..b9a1b25
--- /dev/null
@@ -0,0 +1,13 @@
+! Copyright (C) 2016 Alexander Ilin.
+! See http://factorcode.org/license.txt for BSD license.
+USING: help.markup help.syntax ;
+IN: io.encodings.8-bit.cp437
+
+HELP: cp437
+{ $var-description "This is the IBM437 encoding, also called CP437. It is an 8-bit superset of ASCII and provides the original DOS character set with the box-drawing characters used to draw windows and frames on the text terminals back in the day." }
+{ $see-also "encodings-introduction" } ;
+
+ARTICLE: "io.encodings.8-bit.cp437" "CP437 encoding"
+"The " { $vocab-link "io.encodings.8-bit.cp437" } " vocabulary provides the " { $link cp437 } " encoding." ;
+
+ABOUT: "io.encodings.8-bit.cp437"
diff --git a/basis/io/encodings/8-bit/cp437/cp437.factor b/basis/io/encodings/8-bit/cp437/cp437.factor
new file mode 100644 (file)
index 0000000..5c56001
--- /dev/null
@@ -0,0 +1,6 @@
+! Copyright (C) 2016 Alexander Ilin.
+! See http://factorcode.org/license.txt for BSD license.
+USING: io.encodings.8-bit ;
+IN: io.encodings.8-bit.cp437
+
+8-BIT: cp437 IBM437 CP437