/*
  ascii.c.  Produce a table for ISO 646 German variant.
  F. da Cruz, Columbia University, 1991.
*/
char *name[] = {
    "SPACE",
    "EXCLAMATION MARK",
    "QUOTATION MARK",
    "NUMBER SIGN",			/* # */
    "DOLLAR SIGN",
    "PERCENT SIGN",
    "AMPERSAND",
    "APOSTROPHE",
    "LEFT PARENTHESIS",
    "RIGHT PARENTHESIS",
    "ASTERISK",
    "PLUS SIGN",
    "COMMA",
    "HYPHEN, MINUS SIGN",
    "PERIOD, FULL STOP",
    "SOLIDUS, SLASH",
    "DIGIT ZERO",
    "DIGIT ONE",
    "DIGIT TWO",
    "DIGIT THREE",
    "DIGIT FOUR",
    "DIGIT FIVE",
    "DIGIT SIX",
    "DIGIT SEVEN",
    "DIGIT EIGHT",
    "DIGIT NINE",
    "COLON",
    "SEMICOLON",
    "LESS-THAN SIGN, LEFT ANGLE BRACKET",
    "EQUALS SIGN",
    "GREATER-THAN SIGN, RIGHT ANGLE BRACKET",
    "QUESTION MARK",
    "PARAGRAPH SIGN",			/* @ */
    "CAPITAL LETTER A",
    "CAPITAL LETTER B",
    "CAPITAL LETTER C",
    "CAPITAL LETTER D",
    "CAPITAL LETTER E",
    "CAPITAL LETTER F",
    "CAPITAL LETTER G",
    "CAPITAL LETTER H",
    "CAPITAL LETTER I",
    "CAPITAL LETTER J",
    "CAPITAL LETTER K",
    "CAPITAL LETTER L",
    "CAPITAL LETTER M",
    "CAPITAL LETTER N",
    "CAPITAL LETTER O",
    "CAPITAL LETTER P",
    "CAPITAL LETTER Q",
    "CAPITAL LETTER R",
    "CAPITAL LETTER S",
    "CAPITAL LETTER T",
    "CAPITAL LETTER U",
    "CAPITAL LETTER V",
    "CAPITAL LETTER W",
    "CAPITAL LETTER X",
    "CAPITAL LETTER Y",
    "CAPITAL LETTER Z",
    "CAPITAL LETTER A WITH DIAERESIS",	/* [ */
    "CAPITAL LETTER O WITH DIAERESIS",	/* \ */
    "CAPITAL LETTER U WITH DIAERESIS",	/* ] */
    "CIRCUMFLEX ACCENT",		/* ^ */
    "LOW LINE, UNDERLINE",		/* _ */
    "GRAVE ACCENT",			/* ` */
    "SMALL LETTER a",
    "SMALL LETTER b",
    "SMALL LETTER c",
    "SMALL LETTER d",
    "SMALL LETTER e",
    "SMALL LETTER f",
    "SMALL LETTER g",
    "SMALL LETTER h",
    "SMALL LETTER i",
    "SMALL LETTER j",
    "SMALL LETTER k",
    "SMALL LETTER l",
    "SMALL LETTER m",
    "SMALL LETTER n",
    "SMALL LETTER o",
    "SMALL LETTER p",
    "SMALL LETTER q",
    "SMALL LETTER r",
    "SMALL LETTER s",
    "SMALL LETTER t",
    "SMALL LETTER u",
    "SMALL LETTER v",
    "SMALL LETTER w",
    "SMALL LETTER x",
    "SMALL LETTER y",
    "SMALL LETTER z",
    "SMALL LETTER a WITH DIAERESIS",	/* { */
    "SMALL LETTER o WITH DIAERESIS",	/* | */
    "SMALL LETTER u WITH DIAERESIS",	/* } */
    "GERMAN SHARP S",			/* ~ */
    "RUBOUT, DELETE"
};


main() {
    int i, j;
    char c;

    printf("ISO 646 German variant\n");
    printf("char dec col/row oct hex  description\n");
    for (i = 32; i < 128; i++) {
	j = i - 32;
	c = (i == 127) ? 32 : i;
	printf("(%c)  %3d  %02d/%02d  %3o  %2X  %s\n",
	       c, i, i/16, i%16, i, i, name[j]);
    }
}