Nt~ TRANSLATE.BCKڰ TRANSLATE.BCK%BACK *.* [-]TRANSLATE.BCK/SAV/GROUP=0 SYSTEM gQ|ϓV5.3 _BATMAN::  _$1$DUA7: V5.3 ~ *[SRC.TRANSLATE]ARGS.C;1+,). / 4M -e0123KPWO 56(Xb7LZb89`eБGHJ/*; * ARGS.C - command line argument processing for TRANSLATE.6 * Copyright (C) Nick Brown 1991. All rights reserved. */#include climsgdef#include descrip#include ssdef#include stdio#include "translate.h"/*F * For the following structures, see the definition of LIB$LOOKUP_KEY. */typedef struct { char count; char string [31];} COUNTED_STRING;'#define counted(x) { (sizeof(x)-1), x }/*K * We make an array of the following structures for each qualifier keyword,) * with one element per qualifier value.J * The zeroth element contains a dummy first longword; the second longwordM * of this element is later filled in with the number of longwords remainingI * (= 2 * number of keywords). This calculation is done by counting fromH * the first element until another is found with a zero address for theL * counted_string element. The address of the second longword of the zerothD * element is passed to LIB$LOOKUP_KEY as the address of the table. */typedef struct {! COUNTED_STRING *counted_string; int value;} KEYWORD_VALUE;2static COUNTED_STRING cs_msdos = counted("MSDOS");Fstatic COUNTED_STRING cs_variable_length = counted("VARIABLE_LENGTH");.static COUNTED_STRING cs_mcs = counted("MCS");:static COUNTED_STRING cs_dos_ascii = counted("DOS_ASCII");4static COUNTED_STRING cs_nordic = counted("NORDIC");@static COUNTED_STRING cs_multilingual = counted("MULTILINGUAL");2static COUNTED_STRING cs_canon = counted("CANON");,static KEYWORD_VALUE charset_keywords [] = { { 0, 0 }, { &cs_mcs, CS_MCS }," { &cs_dos_ascii, CS_DOS_ASCII }, { &cs_nordic, CS_NORDIC },( { &cs_multilingual, CS_MULTILINGUAL }, { &cs_canon, CS_CANON }, { 0, 0 }};+static KEYWORD_VALUE format_keywords [] = { { 0, 0 }, { &cs_msdos, OF_MSDOS },. { &cs_variable_length, OF_VARIABLE_LENGTH }, { 0, 0 }};G#define CHARSET_NUMBER(value) (keyword_number(value, charset_keywords))E#define FORMAT_NUMBER(value) (keyword_number(value, format_keywords))/*; * Parse the command line arguments for the requested data. */void get_args (){ char value [FNAME_SIZE];2 if (my_get_value("P1", infile) == CLI$_ABSENT) {' panic("get_args: problem with P1"); }3 if (my_get_value("P2", outfile) == CLI$_ABSENT) {' panic("get_args: problem with P2"); }; if (my_get_value("FROM_CHARSET", value) == CLI$_ABSENT) {2 panic("get_args: problem with /FROM_CHARSET"); }' from_charset = CHARSET_NUMBER(value);9 if (my_get_value("TO_CHARSET", value) == CLI$_ABSENT) {0 panic("get_args: problem with /TO_CHARSET"); }% to_charset = CHARSET_NUMBER(value);/*> * Get output format; default depends on output character set. */ switch (to_charset) { case CS_MCS: case CS_CANON: {) output_format = OF_VARIABLE_LENGTH; break; } case CS_DOS_ASCII: case CS_NORDIC: case CS_MULTILINGUAL: { output_format = OF_MSDOS; break; } default: {3 panic("get_args: invalid /TO_CHARSET value"); break; } }< if (my_get_value("OUTPUT_FORMAT", value) != CLI$_ABSENT) {) output_format = FORMAT_NUMBER(value); }}/*3 * Convert a keyword name to a number, via a table. */6keyword_number (char *keyword, KEYWORD_VALUE table []){ int key_value; $DESCRIPTOR(keyword_des, ""); int result; int count; KEYWORD_VALUE *kv;& keyword_des.dsc$a_pointer = keyword;- keyword_des.dsc$w_length = strlen(keyword);/*K * See how long the table is by counting the items with a non-zero pointer. table[0].value = 0;2 for (kv = &table[1]; kv->counted_string; kv++) { table[0].value += 2; } */ if (table[0].value == 0) {4 for (kv = &table[1]; kv->counted_string; kv++) { table[0].value += 2; } }K result = lib$lookup_key(&keyword_des, &table[0].value, &key_value, 0, 0); if (result != SS$_NORMAL) {/ panic("keyword_number: bad keyword value"); } return key_value;}/*C * Function to call cli$get_value with valid descriptor parameters. */static+my_get_value (char *qualifier, char *value){! $DESCRIPTOR(qualifier_des, ""); $DESCRIPTOR(value_des, ""); int result; short retlen;* qualifier_des.dsc$a_pointer = qualifier;1 qualifier_des.dsc$w_length = strlen(qualifier);" value_des.dsc$a_pointer = value; value_des.dsc$w_length = 80;> result = cli$get_value(&qualifier_des, &value_des, &retlen); if (result & 1) { value[retlen] = '\0'; } return result;}/*B * Function to call cli$present with a valid descriptor parameter. */staticmy_present (char *qualifier){! $DESCRIPTOR(qualifier_des, ""); int result;* qualifier_des.dsc$a_pointer = qualifier;1 qualifier_des.dsc$w_length = strlen(qualifier);' result = cli$present(&qualifier_des); return result;}*[SRC.TRANSLATE]ARGS.OBJ;1+,G* . / 4 N -e0123KPWO56 YXb73MZb89`eБGHJ1ARGSV1.025-MAR-1991 18:33VAX C V3.1-051PMSDOS PVARIABLE_LENGTH@PMCS`P DOS_ASCIIPNORDICP MULTILINGUALPCANONP@` P PP1Pget_args: problem with P1PP2 Pget_args: problem with P2:PFROM_CHARSETGPget_args: problem with /FROM_CHARSETlPTO_CHARSETwPget_args: problem with /TO_CHARSETPget_args: invalid /TO_CHARSET valuePOUTPUT_FORMATPkeyword_number: bad keyword valueP<^R UTb0ЮݮSTRLENPЮ0P? CLI$GET_VALUEP2\L0P\\ ߢPANICޢɮ,ЮݮSTRLENPЮ,P? CLI$GET_VALUEP2\L,P\\ ߢ PANICޢ:(ͷ͹ͺͻͿЮͻݮSTRLENPͷЮ(PͿ?Ϳͷ CLI$GET_VALUEP2\L(P\\ ߢGPANIC<ޮ', /* GREATER_THAN_OR_EQUAL */" '<', /* LESS_THAN_OR_EQUAL */ '/', /* DIVIDE */# '~', /* APPROXIMATELY_EQUAL */ 176, /* SOLID_DEGREE */ 'V', /* SQUARE_ROOT */ 'n', /* NTH_POWER */ '*', /* BLOCK */ 'L', /* UPPERCASE_L_DOT */ 'l', /* LOWERCASE_L_DOT */ 'l', /* SCRIPTED_L */! 'n', /* LOWERCASE_N_QUOTE */ 'x', /* MULTIPLY */% 'R', /* REGISTERED_TRADE_MARK */ 'd', /* LOWERCASE_ETH */ 'D', /* UPPERCASE_ETH */ 'i', /* DOTLESS_I */ 'p', /* LOWERCASE_THORN */ 'P', /* UPPERCASE_THORN */! 'y', /* LOWERCASE_Y_ACUTE */! 'Y', /* UPPERCASE_Y_ACUTE */ '-', /* MACRON */ 39, /* ACUTE */ '_', /* UNDERLINE */ '_', /* DOUBLE_UNDERLINE */ '%', /* THREE_QUARTERS */! 183, /* DOUBLE_MIDDLE_DOT */! END_TO_TABLE /* terminator */};FROM_TABLE from_dos_ascii = {! UPPERCASE_C_CEDILLA, /* */ LOWERCASE_U_UMLAUT, /* */ LOWERCASE_E_ACUTE, /* */# LOWERCASE_A_CIRCUMFLEX, /* */ LOWERCASE_A_UMLAUT, /* */ LOWERCASE_A_GRAVE, /* */ LOWERCASE_A_RING, /* */! LOWERCASE_C_CEDILLA, /* */# LOWERCASE_E_CIRCUMFLEX, /* */ LOWERCASE_E_UMLAUT, /* */ LOWERCASE_E_GRAVE, /* */ LOWERCASE_I_UMLAUT, /* */# LOWERCASE_I_CIRCUMFLEX, /* */ LOWERCASE_I_GRAVE, /* */ UPPERCASE_A_UMLAUT, /* */ UPPERCASE_A_RING, /* */ UPPERCASE_E_ACUTE, /* */# LOWERCASE_A_E_DIARESIS, /* */# UPPERCASE_A_E_DIARESIS, /* */# LOWERCASE_O_CIRCUMFLEX, /* */ LOWERCASE_O_UMLAUT, /* */ LOWERCASE_O_GRAVE, /* */# LOWERCASE_U_CIRCUMFLEX, /* */ LOWERCASE_U_GRAVE, /* */ LOWERCASE_Y_UMLAUT, /* */ UPPERCASE_O_UMLAUT, /* */ UPPERCASE_U_UMLAUT, /* */ US_CENT, /* */ UK_POUND, /* */ YEN, /* */ PESETA, /* Pt */ FLORIN, /* f */ LOWERCASE_A_ACUTE, /* */ LOWERCASE_I_ACUTE, /* */ LOWERCASE_O_ACUTE, /* */ LOWERCASE_U_ACUTE, /* */! LOWERCASE_N_TWIDDLE, /* */! UPPERCASE_N_TWIDDLE, /* */ FEMININE_ORDINAL, /* */ MASCULINE_ORDINAL, /* */& UPSIDE_DOWN_QUESTION_MARK, /* */ BEGINNING_OF_LINE, /* */ END_OF_LINE, /* */ HALF, /* */ QUARTER, /* */) UPSIDE_DOWN_EXCLAMATION_MARK, /* */" LEFT_DOUBLE_GUILLEMET, /* */# RIGHT_DOUBLE_GUILLEMET, /* */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ GERMAN_DOUBLE_S, /* */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ UPPERCASE_O_SLASH, /* */ BLANK, /* ??? */ BLANK, /* ??? */% IDENTITY, /* three-line equals */ PLUS_MINUS, /* */" GREATER_THAN_OR_EQUAL, /* >= */ LESS_THAN_OR_EQUAL, /* <= */ BLANK, /* ??? */ BLANK, /* ??? */ DIVIDE, /* */, APPROXIMATELY_EQUAL, /* double twiddle */ DEGREE, /* */ SOLID_DEGREE, /* */ MIDDLE_DOT, /* */ SQUARE_ROOT, /* */ NTH_POWER, /* */ SQUARED, /* */ BLOCK, /* */ BLANK, /* ??? */" END_FROM_TABLE /* terminator */};TO_TABLE to_dos_ascii = { 32, /* BLANK */, 173, /* UPSIDE_DOWN_EXCLAMATION_MARK */ 155, /* US_CENT */ 156, /* UK_POUND */ 157, /* YEN */ 'S', /* SECTION_SIGN */ '*', /* BULLET */ 'c', /* COPYRIGHT */ 166, /* FEMININE_ORDINAL */% 174, /* LEFT_DOUBLE_GUILLEMET */ 248, /* DEGREE */ 241, /* PLUS_MINUS */ 253, /* SQUARED */ '3', /* CUBED */ 230, /* MU */ 20, /* PARAGRAPH_SIGN */ 250, /* MIDDLE_DOT */ '1', /* POWER_ONE */! 167, /* MASCULINE_ORDINAL */& 175, /* RIGHT_DOUBLE_GUILLEMET */ 172, /* QUARTER */ 171, /* HALF */) 168, /* UPSIDE_DOWN_QUESTION_MARK */! 'A', /* UPPERCASE_A_GRAVE */! 'A', /* UPPERCASE_A_ACUTE */& 'A', /* UPPERCASE_A_CIRCUMFLEX */# 'A', /* UPPERCASE_A_TWIDDLE */" 142, /* UPPERCASE_A_UMLAUT */ 143, /* UPPERCASE_A_RING */& 146, /* UPPERCASE_A_E_DIARESIS */# 128, /* UPPERCASE_C_CEDILLA */! 'E', /* UPPERCASE_E_GRAVE */! 144, /* UPPERCASE_E_ACUTE */& 'E', /* UPPERCASE_E_CIRCUMFLEX */" 'E', /* UPPERCASE_E_UMLAUT */! 'I', /* UPPERCASE_I_GRAVE */! 'I', /* UPPERCASE_I_ACUTE */& 'I', /* UPPERCASE_I_CIRCUMFLEX */" 'I', /* UPPERCASE_I_UMLAUT */# 165, /* UPPERCASE_N_TWIDDLE */! 'O', /* UPPERCASE_O_GRAVE */! 'O', /* UPPERCASE_O_ACUTE */& 'O', /* UPPERCASE_O_CIRCUMFLEX */# 'O', /* UPPERCASE_O_TWIDDLE */" 153, /* UPPERCASE_O_UMLAUT */& 153, /* UPPERCASE_O_E_DIARESIS */! 237, /* UPPERCASE_O_SLASH */! 'U', /* UPPERCASE_U_GRAVE */! 'U', /* UPPERCASE_U_ACUTE */& 'U', /* UPPERCASE_U_CIRCUMFLEX */" 154, /* UPPERCASE_U_UMLAUT */" 'Y', /* UPPERCASE_Y_UMLAUT */ 225, /* GERMAN_DOUBLE_S */! 133, /* LOWERCASE_A_GRAVE */! 160, /* LOWERCASE_A_ACUTE */& 131, /* LOWERCASE_A_CIRCUMFLEX */# 'a', /* LOWERCASE_A_TWIDDLE */" 132, /* LOWERCASE_A_UMLAUT */ 134, /* LOWERCASE_A_RING */& 145, /* LOWERCASE_A_E_DIARESIS */# 135, /* LOWERCASE_C_CEDILLA */! 138, /* LOWERCASE_E_GRAVE */! 130, /* LOWERCASE_E_ACUTE */& 136, /* LOWERCASE_E_CIRCUMFLEX */" 137, /* LOWERCASE_E_UMLAUT */! 141, /* LOWERCASE_I_GRAVE */! 161, /* LOWERCASE_I_ACUTE */& 140, /* LOWERCASE_I_CIRCUMFLEX */" 139, /* LOWERCASE_I_UMLAUT */# 164, /* LOWERCASE_N_TWIDDLE */! 149, /* LOWERCASE_O_GRAVE */! 162, /* LOWERCASE_O_ACUTE */& 147, /* LOWERCASE_O_CIRCUMFLEX */# 'o', /* LOWERCASE_O_TWIDDLE */" 148, /* LOWERCASE_O_UMLAUT */& 148, /* LOWERCASE_O_E_DIARESIS */! 237, /* LOWERCASE_O_SLASH */! 151, /* LOWERCASE_U_GRAVE */! 163, /* LOWERCASE_U_ACUTE */& 150, /* LOWERCASE_U_CIRCUMFLEX */" 129, /* LOWERCASE_U_UMLAUT */" 152, /* LOWERCASE_Y_UMLAUT */ 158, /* PESETA */ 159, /* FLORIN */! 169, /* BEGINNING_OF_LINE */ 170, /* END_OF_LINE */ 240, /* IDENTITY */% 242, /* GREATER_THAN_OR_EQUAL */" 243, /* LESS_THAN_OR_EQUAL */ 246, /* DIVIDE */# 247, /* APPROXIMATELY_EQUAL */ 249, /* SOLID_DEGREE */ 251, /* SQUARE_ROOT */ 252, /* NTH_POWER */ 254, /* BLOCK */ 'L', /* UPPERCASE_L_DOT */ 'l', /* LOWERCASE_L_DOT */ 'l', /* SCRIPTED_L */! 'n', /* LOWERCASE_N_QUOTE */ 'x', /* MULTIPLY */% 'R', /* REGISTERED_TRADE_MARK */ 'd', /* LOWERCASE_ETH */ 'D', /* UPPERCASE_ETH */ 'i', /* DOTLESS_I */ 'p', /* LOWERCASE_THORN */ 'P', /* UPPERCASE_THORN */! 'y', /* LOWERCASE_Y_ACUTE */! 'Y', /* UPPERCASE_Y_ACUTE */ '-', /* MACRON */ 39, /* ACUTE */ '_', /* UNDERLINE */ '_', /* DOUBLE_UNDERLINE */ '%', /* THREE_QUARTERS */! 250, /* DOUBLE_MIDDLE_DOT */! END_TO_TABLE /* terminator */};FROM_TABLE from_nordic = {! UPPERCASE_C_CEDILLA, /* */ LOWERCASE_U_UMLAUT, /* */ LOWERCASE_E_ACUTE, /* */# LOWERCASE_A_CIRCUMFLEX, /* */ LOWERCASE_A_UMLAUT, /* */ LOWERCASE_A_GRAVE, /* */ LOWERCASE_A_RING, /* */! LOWERCASE_C_CEDILLA, /* */# LOWERCASE_E_CIRCUMFLEX, /* */ LOWERCASE_E_UMLAUT, /* */ LOWERCASE_E_GRAVE, /* */ LOWERCASE_I_UMLAUT, /* */# LOWERCASE_I_CIRCUMFLEX, /* */ LOWERCASE_I_GRAVE, /* */ UPPERCASE_A_UMLAUT, /* */ UPPERCASE_A_RING, /* */ UPPERCASE_E_ACUTE, /* */# LOWERCASE_A_E_DIARESIS, /* */# UPPERCASE_A_E_DIARESIS, /* */# LOWERCASE_O_CIRCUMFLEX, /* */ LOWERCASE_O_UMLAUT, /* */ LOWERCASE_O_GRAVE, /* */# LOWERCASE_U_CIRCUMFLEX, /* */ LOWERCASE_U_GRAVE, /* */ LOWERCASE_Y_UMLAUT, /* */ UPPERCASE_O_UMLAUT, /* */ UPPERCASE_U_UMLAUT, /* */ LOWERCASE_O_SLASH, /* */) UK_POUND, /* */h UPPERCASE_O_SLASH, /* */r UPPERCASE_L_DOT, /* */c LOWERCASE_L_DOT, /* */  LOWERCASE_A_ACUTE, /* */? LOWERCASE_I_ACUTE, /* */N LOWERCASE_O_ACUTE, /* */  LOWERCASE_U_ACUTE, /* */,! LOWERCASE_N_TWIDDLE, /* *//! UPPERCASE_N_TWIDDLE, /* *//! LOWERCASE_O_TWIDDLE, /* */L! UPPERCASE_O_TWIDDLE, /* */ & UPSIDE_DOWN_QUESTION_MARK, /*~ TRANSLATE.BCKY e[SRC.TRANSLATE]TABLES.C;1MHM"* */! LOWERCASE_A_TWIDDLE, /* */N! UPPERCASE_A_TWIDDLE, /* *// SCRIPTED_L, /* */L LOWERCASE_N_QUOTE, /* */M) UPSIDE_DOWN_EXCLAMATION_MARK, /* */P CUBED, /* */ BULLET, /* */? BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ GERMAN_DOUBLE_S, /* */* BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */% IDENTITY, /* three-line equals */  PLUS_MINUS, /* */M" GREATER_THAN_OR_EQUAL, /* >= */ LESS_THAN_OR_EQUAL, /* <= */ BLANK, /* ??? */ BLANK, /* ??? */ DIVIDE, /* */ , APPROXIMATELY_EQUAL, /* double twiddle */ DEGREE, /* */  SOLID_DEGREE, /* */, MIDDLE_DOT, /* */_ SQUARE_ROOT, /* */ NTH_POWER, /* */ SQUARED, /* */ BLOCK, /* */ BLANK, /* ??? */" END_FROM_TABLE /* terminator */};TO_TABLE to_nordic = { 32, /* BLANK */_, 173, /* UPSIDE_DOWN_EXCLAMATION_MARK */ 'c', /* US_CENT */  156, /* UK_POUND */ 'Y', /* YEN */S 'S', /* SECTION_SIGN */ 175, /* BULLET */ 'c', /* COPYRIGHT */X 'a', /* FEMININE_ORDINAL */% 174, /* LEFT_DOUBLE_GUILLEMET *// 248, /* DEGREE */ 241, /* PLUS_MINUS */ 253, /* SQUARED */ 174, /* CUBED */, 230, /* MU */ 20, /* PARAGRAPH_SIGN */ 250, /* MIDDLE_DOT */ '1', /* POWER_ONE */X! 'o', /* MASCULINE_ORDINAL */ & 175, /* RIGHT_DOUBLE_GUILLEMET */ '%', /* QUARTER */, '%', /* HALF */) 168, /* UPSIDE_DOWN_QUESTION_MARK */_! 'A', /* UPPERCASE_A_GRAVE */ ! 'A', /* UPPERCASE_A_ACUTE */ & 'A', /* UPPERCASE_A_CIRCUMFLEX */# 'A', /* UPPERCASE_A_TWIDDLE */ " 142, /* UPPERCASE_A_UMLAUT */ 143, /* UPPERCASE_A_RING */& 146, /* UPPERCASE_A_E_DIARESIS */# 128, /* UPPERCASE_C_CEDILLA */ ! 'E', /* UPPERCASE_E_GRAVE */O! 144, /* UPPERCASE_E_ACUTE */E& 'E', /* UPPERCASE_E_CIRCUMFLEX */" 'E', /* UPPERCASE_E_UMLAUT */! 'I', /* UPPERCASE_I_GRAVE */_! 'I', /* UPPERCASE_I_ACUTE */ & 'I', /* UPPERCASE_I_CIRCUMFLEX */" 'I', /* UPPERCASE_I_UMLAUT */# 165, /* UPPERCASE_N_TWIDDLE */K! 'O', /* UPPERCASE_O_GRAVE */A! 'O', /* UPPERCASE_O_ACUTE */T& 'O', /* UPPERCASE_O_CIRCUMFLEX */# 'O', /* UPPERCASE_O_TWIDDLE */G" 153, /* UPPERCASE_O_UMLAUT */& 153, /* UPPERCASE_O_E_DIARESIS */! 237, /* UPPERCASE_O_SLASH */O! 'U', /* UPPERCASE_U_GRAVE */G! 'U', /* UPPERCASE_U_ACUTE */& 'U', /* UPPERCASE_U_CIRCUMFLEX */" 154, /* UPPERCASE_U_UMLAUT */" 'Y', /* UPPERCASE_Y_UMLAUT */ 225, /* GERMAN_DOUBLE_S */W! 133, /* LOWERCASE_A_GRAVE */O! 160, /* LOWERCASE_A_ACUTE */L& 131, /* LOWERCASE_A_CIRCUMFLEX */:*# 'a', /* LOWERCASE_A_TWIDDLE */U" 132, /* LOWERCASE_A_UMLAUT */ 134, /* LOWERCASE_A_RING */& 145, /* LOWERCASE_A_E_DIARESIS */# 135, /* LOWERCASE_C_CEDILLA */,! 138, /* LOWERCASE_E_GRAVE */9! 130, /* LOWERCASE_E_ACUTE */9& 136, /* LOWERCASE_E_CIRCUMFLEX */" 137, /* LOWERCASE_E_UMLAUT */! 141, /* LOWERCASE_I_GRAVE */0! 161, /* LOWERCASE_I_ACUTE */0& 140, /* LOWERCASE_I_CIRCUMFLEX */" 139, /* LOWERCASE_I_UMLAUT */# 164, /* LOWERCASE_N_TWIDDLE */,! 149, /* LOWERCASE_O_GRAVE */,! 162, /* LOWERCASE_O_ACUTE */,& 147, /* LOWERCASE_O_CIRCUMFLEX */# 'o', /* LOWERCASE_O_TWIDDLE */ " 148, /* LOWERCASE_O_UMLAUT */& 148, /* LOWERCASE_O_E_DIARESIS */! 237, /* LOWERCASE_O_SLASH */ ! 151, /* LOWERCASE_U_GRAVE */,! 163, /* LOWERCASE_U_ACUTE */1& 150, /* LOWERCASE_U_CIRCUMFLEX */" 129, /* LOWERCASE_U_UMLAUT */" 152, /* LOWERCASE_Y_UMLAUT */ 'P', /* PESETA */ 'f', /* FLORIN */! '-', /* BEGINNING_OF_LINE */P '-', /* END_OF_LINE */, 240, /* IDENTITY */% 242, /* GREATER_THAN_OR_EQUAL */" 243, /* LESS_THAN_OR_EQUAL */ 246, /* DIVIDE */# 247, /* APPROXIMATELY_EQUAL */U 249, /* SOLID_DEGREE */ 251, /* SQUARE_ROOT */* 252, /* NTH_POWER */  254, /* BLOCK */U 158, /* UPPERCASE_L_DOT */A 159, /* LOWERCASE_L_DOT */A 171, /* SCRIPTED_L */! 172, /* LOWERCASE_N_QUOTE */  'x', /* MULTIPLY */% 'R', /* REGISTERED_TRADE_MARK */3 'd', /* LOWERCASE_ETH */  'D', /* UPPERCASE_ETH */L 'i', /* DOTLESS_I */A 'p', /* LOWERCASE_THORN */R 'P', /* UPPERCASE_THORN */W! 'y', /* LOWERCASE_Y_ACUTE */*! 'Y', /* UPPERCASE_Y_ACUTE */* '-', /* MACRON */ 39, /* ACUTE */E '_', /* UNDERLINE */L '_', /* DOUBLE_UNDERLINE */ '%', /* THREE_QUARTERS */! 250, /* DOUBLE_MIDDLE_DOT */ ! END_TO_TABLE /* terminator */4}; FROM_TABLE from_multilingual = {! UPPERCASE_C_CEDILLA, /* */4 LOWERCASE_U_UMLAUT, /* */ LOWERCASE_E_ACUTE, /* */# LOWERCASE_A_CIRCUMFLEX, /* *// LOWERCASE_A_UMLAUT, /* */ LOWERCASE_A_GRAVE, /* */U LOWERCASE_A_RING, /* */! LOWERCASE_C_CEDILLA, /* */B# LOWERCASE_E_CIRCUMFLEX, /* */O LOWERCASE_E_UMLAUT, /* */ LOWERCASE_E_GRAVE, /* */E LOWERCASE_I_UMLAUT, /* */# LOWERCASE_I_CIRCUMFLEX, /* */  LOWERCASE_I_GRAVE, /* */ UPPERCASE_A_UMLAUT, /* */ UPPERCASE_A_RING, /* */ UPPERCASE_E_ACUTE, /* */*# LOWERCASE_A_E_DIARESIS, /* */D# UPPERCASE_A_E_DIARESIS, /* */*# LOWERCASE_O_CIRCUMFLEX, /* */, LOWERCASE_O_UMLAUT, /* */ LOWERCASE_O_GRAVE, /* */*# LOWERCASE_U_CIRCUMFLEX, /* */  LOWERCASE_U_GRAVE, /* */* LOWERCASE_Y_UMLAUT, /* */ UPPERCASE_O_UMLAUT, /* */ UPPERCASE_U_UMLAUT, /* */ LOWERCASE_O_SLASH, /* */E UK_POUND, /* */* UPPERCASE_O_SLASH, /* */  MULTIPLY, /* x */* FLORIN, /* f */* LOWERCASE_A_ACUTE, /* */_ LOWERCASE_I_ACUTE, /* */Q LOWERCASE_O_ACUTE, /* */I LOWERCASE_U_ACUTE, /* *//! LOWERCASE_N_TWIDDLE, /* */f! UPPERCASE_N_TWIDDLE, /* */E FEMININE_ORDINAL, /* */ MASCULINE_ORDINAL, /* */_& UPSIDE_DOWN_QUESTION_MARK, /* */" REGISTERED_TRADE_MARK, /* */ END_OF_LINE, /* */ HALF, /* */ QUARTER, /* */) UPSIDE_DOWN_EXCLAMATION_MARK, /* */" LEFT_DOUBLE_GUILLEMET, /* */# RIGHT_DOUBLE_GUILLEMET, /* */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ UPPERCASE_A_ACUTE, /* */E# UPPERCASE_A_CIRCUMFLEX, /* */S UPPERCASE_A_GRAVE, /* */S COPYRIGHT, /* */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ US_CENT, /* */ YEN, /* *// BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */! LOWERCASE_A_TWIDDLE, /* */E! UPPERCASE_A_TWIDDLE, /* */N BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BULLET, /* */ LOWERCASE_ETH, /* ??? */* UPPERCASE_ETH, /* ??? */ # UPPERCASE_E_CIRCUMFLEX, /* */ UPPERCASE_E_UMLAUT, /* */ UPPERCASE_E_GRAVE, /* */  DOTLESS_I, /* */ UPPERCASE_I_ACUTE, /* */S# UPPERCASE_I_CIRCUMFLEX, /* */L UPPERCASE_I_UMLAUT, /* */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ BLANK, /* ??? */ UPPERCASE_I_GRAVE, /* */_ BLANK, /* ??? */ UPPERCASE_O_ACUTE, /* */L GERMAN_DOUBLE_S, /* */ # UPPERCASE_O_CIRCUMFLEX, /* */, UPPERCASE_O_GRAVE, /* *//! LOWERCASE_O_TWIDDLE, /* *//! UPPERCASE_O_TWIDDLE, /* */  MU, /* */ LOWERCASE_THORN, /* */  UPPERCASE_THORN, /* */ UPPERCASE_U_ACUTE, /* *//# UPPERCASE_U_CIRCUMFLEX, /* */L UPPERCASE_U_GRAVE, /* */? LOWERCASE_Y_ACUTE, /* */N UPPERCASE_Y_ACUTE, /* */  MACRON, /* *// ACUTE, /* */ UNDERLINE, /* */ PLUS_MINUS, /* */, DOUBLE_UNDERLINE, /* */ THREE_QUARTERS, /* */ PARAGRAPH_SIGN, /* */ SECTION_SIGN, /* *// DIVIDE, /* */ BLANK, /* ??? */ DEGREE, /* */  DOUBLE_MIDDLE_DOT, /* */  MIDDLE_DOT, /* *// POWER_ONE, /* */ CUBED, /* */ SQUARED, /* */ BLOCK, /* */ BLANK, /* ??? */" END_FROM_TABLE /* terminator */};TO_TABLE to_multilingual = { 32, /* BLANK *//, 173, /* UPSIDE_DOWN_EXCLAMATION_MARK */ 189, /* US_CENT */_ 156, /* UK_POUND */ 190, /* YEN */  245, /* SECTION_SIGN */ 207, /* BULLET */ 184, /* COPYRIGHT */L 166, /* FEMININE_ORDINAL */% 174, /* LEFT_DOUBLE_GUILLEMET */  248, /* DEGREE */ 241, /* PLUS_MINUS */ 253, /* SQUARED */  252, /* CUBED *// 230, /* MU */ 244, /* PARAGRAPH_SIGN */ 250, /* MIDDLE_DOT */ 251, /* POWER_ONE */A! 167, /* MASCULINE_ORDINAL */S& 175, /* RIGHT_DOUBLE_GUILLEMET */ 172, /* QUARTER */? 171, /* HALF */) 168, /* UPSIDE_DOWN_QUESTION_MARK */w! 183, /* UPPERCASE_A_GRAVE */! 181, /* UPPERCASE_A_ACUTE */D& 182, /* UPPERCASE_A_CIRCUMFLEX */# 199, /* UPPERCASE_A_TWIDDLE */ " 142, /* UPPERCASE_A_UMLAUT */ 143, /* UPPERCASE_A_RING */& 146, /* UPPERCASE_A_E_DIARESIS */# 128, /* UPPERCASE_C_CEDILLA */ ! 212, /* UPPERCASE_E_GRAVE */O! 144, /* UPPERCASE_E_ACUTE */*& 210, /* UPPERCASE_E_CIRCUMFLEX */" 211, /* UPPERCASE_E_UMLAUT */! 222, /* UPPERCASE_I_GRAVE */ ! 214, /* UPPERCASE_I_ACUTE */6& 215, /* UPPERCASE_I_CIRCUMFLEX */" 216, /* UPPERCASE_I_UMLAUT */# 165, /* UPPERCASE_N_TWIDDLE */I! 227, /* UPPERCASE_O_GRAVE */ ! 224, /* UPPERCASE_O_ACUTE */M& 226, /* UPPERCASE_O_CIRCUMFLEX */# 229, /* UPPERCASE_O_TWIDDLE */*" 153, /* UPPERCASE_O_UMLAUT */& 153, /* UPPERCASE_O_E_DIARESIS */! 157, /* UPPERCASE_O_SLASH */R! 235, /* UPPERCASE_U_GRAVE */ ! 233, /* UPPERCASE_U_ACUTE */& 234, /* UPPERCASE_U_CIRCUMFLEX */" 154, /* UPPERCASE_U_UMLAUT */" 'Y', /* UPPERCASE_Y_UMLAUT */ 225, /* GERMAN_DOUBLE_S */*! 133, /* LOWERCASE_A_GRAVE */ ! 160, /* LOWERCASE_A_ACUTE *//& 131, /* LOWERCASE_A_CIRCUMFLEX */# 198, /* LOWERCASE_A_TWIDDLE */" 132, /* LOWERCASE_A_UMLAUT */ 134, /* LOWERCASE_A_RING */& 145, /* LOWERCASE_A_E_DIARESIS */# 135, /* LOWERCASE_C_CEDILLA *//! 138, /* LOWERCASE_E_GRAVE */! 130, /* LOWERCASE_E_ACUTE */& 136, /* LOWERCASE_E_CIRCUMFLEX */" 137, /* LOWERCASE_E_UMLAUT */! 141, /* LOWERCASE_I_GRAVE */*! 161, /* LOWERCASE_I_ACUTE */*& 140, /* LOWERCASE_I_CIRCUMFLEX */" 139, /* LOWERCASE_I_UMLAUT */# 164, /* LOWERCASE_N_TWIDDLE */*! 149, /* LOWERCASE_O_GRAVE */ ! 162, /* LOWERCASE_O_ACUTE */E& 147, /* LOWERCASE_O_CIRCUMFLEX */# 228, /* LOWERCASE_O_TWIDDLE */" 148, /* LOWERCASE_O_UMLAUT */& 148, /* LOWERCASE_O_E_DIARESIS */! 157, /* LOWERCASE_O_SLASH *//! 151, /* LOWERCASE_U_GRAVE *//! 163, /* LOWERCASE_U_ACUTE */& 150, /* LOWERCASE_U_CIRCUMFLEX */" 129, /* LOWERCASE_U_UMLAUT */" 152, /* LOWERCASE_Y_UMLAUT */ 'P', /* PESETA */ 159, /* FLORIN */! '-', /* BEGINNING_OF_LINE */  170, /* END_OF_LINE */, '=', /* IDENTITY */% '>', /* GREATER_THAN_OR_EQUAL */A" '<', /* LESS_THAN_OR_EQUAL */ 246, /* DIVIDE */# '~', /* APPROXIMATELY_EQUAL */A 250, /* SOLID_DEGREE */ 'V', /* SQUARE_ROOT */4 'n', /* NTH_POWER */* 254, /* BLOCK */A 'L', /* UPPERCASE_L_DOT */R 'l', /* LOWERCASE_L_DOT */* 'l', /* SCRIPTED_L */! 'n', /* LOWERCASE_N_QUOTE */  158, /* MULTIPLY */% 169, /* REGISTERED_TRADE_MARK */* 208, /* LOWERCASE_ETH */R 209, /* UPPERCASE_ETH */A 213, /* DOTLESS_I */  231, /* LOWERCASE_THORN */  232, /* UPPERCASE_THORN */ ! 236, /* LOWERCASE_Y_ACUTE */ ! 237, /* UPPERCASE_Y_ACUTE */  238, /* MACRON */ 239, /* ACUTE */L 240, /* UNDERLINE */ 242, /* DOUBLE_UNDERLINE */ 243, /* THREE_QUARTERS */! 249, /* DOUBLE_MIDDLE_DOT */ ! END_TO_TABLE /* terminator */G};/*M * Note: in the following table, characters in the IBM extended character setRG * (>= 128) have been avoided where possible, as they cause some CanonDK * models to output spurious formfeeds at the end of the job. Where there5L * is no character in the other Canon sets, the IBM character has been used! * and marked with a !! comment. G * It is possible that some of these characters might work OK using theL4 * Norwegian/Danish IBM set; I haven't tested this. */*TO_TABLE to_canon = {* 32, /* BLANK */A6 "\033(Z[\033(B", /* UPSIDE_DOWN_EXCLAMATION_MARK */# "\033(&$2`\033(B", /* US_CENT */E" "\033(A#\033(B", /* UK_POUND */ "\033(J\\\033(B", /* YEN */& "\033(R]\033(B", /* SECTION_SIGN */ '*', /* BULLET */ 'c', /* COPYRIGHT */E 'a', /* FEMININE_ORDINAL */% '<', /* LEFT_DOUBLE_GUILLEMET */, "\033(R[\033(B", /* DEGREE */' "\033(&$2\\\033(B", /* PLUS_MINUS */B# "\033(&$2<\033(B", /* SQUARED */B! "\033(&$2>\033(B", /* CUBED */E 230, /*!!*/ /* MU */ 20, /* PARAGRAPH_SIGN */O 249, /*!!*/ /* MIDDLE_DOT */ '1', /* POWER_ONE */! 'o', /* MASCULINE_ORDINAL */ & '>', /* RIGHT_DOUBLE_GUILLEMET */$ "\033(\"$1<\033(B", /* QUARTER */! "\033(\"$1>\033(B", /* HALF */E3 "\033(Z]\033(B", /* UPSIDE_DOWN_QUESTION_MARK */ ! 'A', /* UPPERCASE_A_GRAVE */*! 'A', /* UPPERCASE_A_ACUTE */ & 'A', /* UPPERCASE_A_CIRCUMFLEX */) 170, /*!!*/ /* UPPERCASE_A_TWIDDLE */P, "\033(K[\033(B", /* UPPERCASE_A_UMLAUT */* "\033(C]\033(B", /* UPPERCASE_A_RING */0 "\033(E[\033(B", /* UPPERCASE_A_E_DIARESIS */) 128, /*!!*/ /* UPPERCASE_C_CEDILLA */S! 'E', /* UPPERCASE_E_GRAVE */C+ "\033(C@\033(B", /* UPPERCASE_E_ACUTE */,& 'E', /* UPPERCASE_E_CIRCUMFLEX */" 'E', /* UPPERCASE_E_UMLAUT */! 'I', /* UPPERCASE_I_GRAVE *//! 'I', /* UPPERCASE_I_ACUTE */ & 'I', /* UPPERCASE_I_CIRCUMFLEX */" 'I', /* UPPERCASE_I_UMLAUT */. "\033(Z\\\033(B", /* UPPERCASE_N_TWIDDLE */! 'O', /* UPPERCASE_O_GRAVE */ ! 'O', /* UPPERCASE_O_ACUTE */*& 'O', /* UPPERCASE_O_CIRCUMFLEX */) 167, /*!!*/ /* UPPERCASE_O_TWIDDLE */S- "\033(K\\\033(B", /* UPPERCASE_O_UMLAUT */*& 'O', /* UPPERCASE_O_E_DIARESIS */, "\033(E\\\033(B", /* UPPERCASE_O_SLASH */! 'U', /* UPPERCASE_U_GRAVE */P! 'U', /* UPPERCASE_U_ACUTE */ & 'U', /* UPPERCASE_U_CIRCUMFLEX */, "\033(K]\033(B", /* UPPERCASE_U_UMLAUT */" 'Y', /* UPPERCASE_Y_UMLAUT */) "\033(K~\033(B", /* GERMAN_DOUBLE_S */ + "\033(R@\033(B", /* LOWERCASE_A_GRAVE */*' 160, /*!!*/ /* LOWERCASE_A_ACUTE */ & 'a', /* LOWERCASE_A_CIRCUMFLEX */) 169, /*!!*/ /* LOWERCASE_A_TWIDDLE */,, "\033(K{\033(B", /* LOWERCASE_A_UMLAUT */* "\033(C}\033(B", /* LOWERCASE_A_RING */0 "\033(E{\033(B", /* LOWERCASE_A_E_DIARESIS */. "\033(R\\\033(B", /* LOWERCASE_C_CEDILLA */+ "\033(R}\033(B", /* LOWERCASE_E_GRAVE *//+ "\033(R{\033(B", /* LOWERCASE_E_ACUTE */, 136, /*!!*/ /* LOWERCASE_E_CIRCUMFLEX */( 137, /*!!*/ /* LOWERCASE_E_UMLAUT */+ "\033(Y~\033(B", /* LOWERCASE_I_GRAVE */' 161, /*!!*/ /* LOWERCASE_I_ACUTE *//, 140, /*!!*/ /* LOWERCASE_I_CIRCUMFLEX */( 139, /*!!*/ /* LOWERCASE_I_UMLAUT */- "\033(Z|\033(B", /* LOWERCASE_N_TWIDDLE */+ "\033(Y|\033(B", /* LOWERCASE_O_GRAVE */' 162, /*!!*/ /* LOWERCASE_O_ACUTE *//, 147, /*!!*/ /* LOWERCASE_O_CIRCUMFLEX */) 166, /*!!*/ /* LOWERCASE_O_TWIDDLE */, "\033(K|\033(B", /* LOWERCASE_O_UMLAUT */& 'o', /* LOWERCASE_O_E_DIARESIS */+ "\033(E|\033(B", /* LOWERCASE_O_SLASH *//+ "\033(R|\033(B", /* LOWERCASE_U_GRAVE */' 163, /*!!*/ /* LOWERCASE_U_ACUTE *//& 'u', /* LOWERCASE_U_CIRCUMFLEX */, "\033(K}\033(B", /* LOWERCASE_U_UMLAUT */( 152, /*!!*/ /* LOWERCASE_Y_UMLAUT */ 'P', /* PESETA */# "\033(\"#2[\033(B", /* FLORIN */! '-', /* BEGINNING_OF_LINE *// '-', /* END_OF_LINE *// 240, /*!!*/ /* IDENTITY */+ 242, /*!!*/ /* GREATER_THAN_OR_EQUAL */ ( 243, /*!!*/ /* LESS_THAN_OR_EQUAL */ 246, /*!!*/ /* DIVIDE */) 247, /*!!*/ /* APPROXIMATELY_EQUAL */H" 249, /*!!*/ /* SOLID_DEGREE */! 251, /*!!*/ /* SQUARE_ROOT */  252, /*!!*/ /* NTH_POWER */I 254, /*!!*/ /* BLOCK */M% 158, /*!!*/ /* UPPERCASE_L_DOT */ % 159, /*!!*/ /* LOWERCASE_L_DOT */ 171, /*!!*/ /* SCRIPTED_L */' 172, /*!!*/ /* LOWERCASE_N_QUOTE */O 'x', /* MULTIPLY */% 't', /* REGISTERED_TRADE_MARK */  'd', /* LOWERCASE_ETH */M 'D', /* UPPERCASE_ETH */ 'i', /* DOTLESS_I */3 'p', /* LOWERCASE_THORN */U 'P', /* UPPERCASE_THORN */ ! 'y', /* LOWERCASE_Y_ACUTE */*! 'Y', /* UPPERCASE_Y_ACUTE */ ',', /* MACRON */ '\'', /* ACUTE */ '_', /* UNDERLINE */T '_', /* DOUBLE_UNDERLINE */ '/', /* THREE_QUARTERS */! ':', /* DOUBLE_MIDDLE_DOT *//! END_TO_TABLE /* terminator */ };*[SRC.TRANSLATE]TABLES.LIS;1+,.u/ 4us -e0123KPWOt56{:ϓ7Cϓ89GHJ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 1{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) 1 /*= 2 * TABLES.C - translation tables for TRANSLATE.D 3 * Copyright (C) Nick Brown 1991. All rights reserved. 4 */ 5 $ 6 #include "translate.h" 200 % 201 FROM_TABLE from_mcs = {" 202 BLANK, /* ??? */" 203 BLANK, /* ??? */" 204 BLANK, /* ??? */" 205 BLANK, /* ??? */" 206 BLANK, /* IND */" 207 BLANK, /* NEL */" 208 BLANK, /* SSA */" 209 BLANK, /* ESA */ 210 " 211 BLANK, /* HTS */" 212 BLANK, /* HTJ */" 213 BLANK, /* VTS */" 214 BLANK, /* PLD */" 215 BLANK, /* PLU */" 216 BLANK, /* RI */" 217 BLANK, /* SS2 */" 218 BLANK, /* SS3 */ 219 " 220 BLANK, /* DCS */" 221 BLANK, /* PU1 */" 222 BLANK, /* PU2 */" 223 BLANK, /* STS */" 224 BLANK, /* CCH */" 225 BLANK, /* MW */" 226 BLANK, /* SPA */" 227 BLANK, /* EPA */ 228 " 229 BLANK, /* ??? */" 230 BLANK, /* ??? */" 231 BLANK, /* ??? */" 232 BLANK, /* CSI */" 233 BLANK, /* ST */" 234 BLANK, /* OSC */" 235 BLANK, /* PM */" 236 BLANK, /* APC */ 237 " 238 BLANK, /* ??? */7 239 UPSIDE_DOWN_EXCLAMATION_MARK, /* */$ 240 US_CENT, /* */% 241 UK_POUND, /* */" 242 BLANK, /* ??? */! 243 YEN, /* */" 244 BLANK, /* ??? */) 245 SECTION_SIGN, /* */ 246 # 247 BULLET, /* */& 248 COPYRIGHT, /* */ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 2{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1), 249 FEMININE_ORDINAL, /* */0 250 LEFT_DOUBLE_GUILLEMET, /* */" 251 BLANK, /* ??? */" 252 BLANK, /* ??? */" 253 BLANK, /* ??? */" 254 BLANK, /* ??? */ 255 # 256 DEGREE, /* */' 257 PLUS_MINUS, /* */$ 258 SQUARED, /* */" 259 CUBED, /* */" 260 BLANK, /* ??? */ 261 MU, /* */* 262 PARAGRAPH_SIGN, /* */' 263 MIDDLE_DOT, /* */ 264 " 265 BLANK, /* ??? */& 266 POWER_ONE, /* */- 267 MASCULINE_ORDINAL, /* */1 268 RIGHT_DOUBLE_GUILLEMET, /* */$ 269 QUARTER, /* */" 270 HALF, /* */" 271 BLANK, /* ??? */4 272 UPSIDE_DOWN_QUESTION_MARK, /* */ 273 - 274 UPPERCASE_A_GRAVE, /* */- 275 UPPERCASE_A_ACUTE, /* */1 276 UPPERCASE_A_CIRCUMFLEX, /* *// 277 UPPERCASE_A_TWIDDLE, /* */. 278 UPPERCASE_A_UMLAUT, /* */, 279 UPPERCASE_A_RING, /* */1 280 UPPERCASE_A_E_DIARESIS, /* *// 281 UPPERCASE_C_CEDILLA, /* */ 282 - 283 UPPERCASE_E_GRAVE, /* */- 284 UPPERCASE_E_ACUTE, /* */1 285 UPPERCASE_E_CIRCUMFLEX, /* */. 286 UPPERCASE_E_UMLAUT, /* */- 287 UPPERCASE_I_GRAVE, /* */- 288 UPPERCASE_I_ACUTE, /* */1 289 UPPERCASE_I_CIRCUMFLEX, /* */. 290 UPPERCASE_I_UMLAUT, /* */ 291 " 292 BLANK, /* ??? *// 293 UPPERCASE_N_TWIDDLE, /* */- 294 UPPERCASE_O_GRAVE, /* */- 295 UPPERCASE_O_ACUTE, /* */1 296 UPPERCASE_O_CIRCUMFLEX, /* *// 297 UPPERCASE_O_TWIDDLE, /* */. 298 UPPERCASE_O_UMLAUT, /* */1 299 UPPERCASE_O_E_DIARESIS, /* */ 300 - 301 UPPERCASE_O_SLASH, /* */- 302 UPPERCASE_U_GRAVE, /* */- 303 UPPERCASE_U_ACUTE, /* */1 304 UPPERCASE_U_CIRCUMFLEX, /* */. 305 UPPERCASE_U_UMLAUT, /* */ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 3{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1). 306 UPPERCASE_Y_UMLAUT, /* */" 307 BLANK, /* ??? */+ 308 GERMAN_DOUBLE_S, /* */ 309 - 310 LOWERCASE_A_GRAVE, /* */- 311 LOWERCASE_A_ACUTE, /* */1 312 LOWERCASE_A_CIRCUMFLEX, /* *// 313 LOWERCASE_A_TWIDDLE, /* */. 314 LOWERCASE_A_UMLAUT, /* */, 315 LOWERCASE_A_RING, /* */1 316 LOWERCASE_A_E_DIARESIS, /* *// 317 LOWERCASE_C_CEDILLA, /* */ 318 - 319 LOWERCASE_E_GRAVE, /* */- 320 LOWERCASE_E_ACUTE, /* */1 321 LOWERCASE_E_CIRCUMFLEX, /* */. 322 LOWERCASE_E_UMLAUT, /* */- 323 LOWERCASE_I_GRAVE, /* */- 324 LOWERCASE_I_ACUTE, /* */1 325 LOWERCASE_I_CIRCUMFLEX, /* */. 326 LOWERCASE_I_UMLAUT, /* */ 327 " 328 BLANK, /* ??? *// 329 LOWERCASE_N_TW IDDLE, /* */- 330 LOWERCASE_O_GRAVE, /* */- 331 LOWERCASE_O_ACUTE, /* */1 332 LOWERCASE_O_CIRCUMFLEX, /* *// 333 LOWERCASE_O_TWIDDLE, /* */. 334 LOWERCASE_O_UMLAUT, /* */2 335 LOWERCASE_O_E_DIARESIS, /* */ 336 - 337 LOWERCASE_O_SLASH, /* */- 338 LOWERCASE_U_GRAVE, /* */- 339 LOWERCASE_U_ACUTE, /* */1 340 LOWERCASE_U_CIRCUMFLEX, /* */. 341 LOWERCASE_U_UMLAUT, /* */. 342 LOWERCASE_Y_UMLAUT, /* */" 343 BLANK, /* ??? */" 344 BLANK, /* ??? */ 345 0 346 END_FROM_TABLE /* terminator */ 347 }; 348 ! 349 TO_TABLE to_mcs = {# 350 32, /* BLANK */: 351 161, /* UPSIDE_DOWN_EXCLAMATION_MARK */% 352 162, /* US_CENT */& 353 163, /* UK_POUND */! 354 165, /* YEN */* 355 167, /* SECTION_SIGN */$ 356 168, /* BULLET */' 357 169, /* COPYRIGHT */. 358 170, /* FEMININE_ORDINAL */3 359 171, /* LEFT_DOUBLE_GUILLEMET */$ 360 176, /* DEGREE */( 361 177, /* PLUS_MINUS */% 362 178, /* SQUARED */ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 4{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)# 363 179, /* CUBED */ 364 181, /* MU */, 365 182, /* PARAGRAPH_SIGN */( 366 183, /* MIDDLE_DOT */' 367 185, /* POWER_ONE *// 368 186, /* MASCULINE_ORDINAL */4 369 187, /* RIGHT_DOUBLE_GUILLEMET */% 370 188, /* QUARTER */" 371 189, /* HALF */7 372 191, /* UPSIDE_DOWN_QUESTION_MARK */ / 373 192, /* UPPERCASE_A_GRAVE */ / 374 193, /* UPPERCASE_A_ACUTE */ 4 375 194, /* UPPERCASE_A_CIRCUMFLEX */1 376 195, /* UPPERCASE_A_TWIDDLE */.0 377 196, /* UPPERCASE_A_UMLAUT */. 378 197, /* UPPERCASE_A_RING */4 379 198, /* UPPERCASE_A_E_DIARESIS */1 380 199, /* UPPERCASE_C_CEDILLA *// 381 200, /* UPPERCASE_E_GRAVE */ / 382 201, /* UPPERCASE_E_ACUTE */ 4 383 202, /* UPPERCASE_E_CIRCUMFLEX */0 384 203, /* UPPERCASE_E_UMLAUT *// 385 204, /* UPPERCASE_I_GRAVE */ / 386 205, /* UPPERCASE_I_ACUTE */E4 387 206, /* UPPERCASE_I_CIRCUMFLEX */0 388 207, /* UPPERCASE_I_UMLAUT */1 389 209, /* UPPERCASE_N_TWIDDLE */// 390 210, /* UPPERCASE_O_GRAVE */1/ 391 211, /* UPPERCASE_O_ACUTE */L4 392 212, /* UPPERCASE_O_CIRCUMFLEX */1 393 213, /* UPPERCASE_O_TWIDDLE */ 0 394 214, /* UPPERCASE_O_UMLAUT */4 395 215, /* UPPERCASE_O_E_DIARESIS *// 396 216, /* UPPERCASE_O_SLASH */ / 397 217, /* UPPERCASE_U_GRAVE */ / 398 218, /* UPPERCASE_U_ACUTE */ 4 399 219, /* UPPERCASE_U_CIRCUMFLEX */0 400 220, /* UPPERCASE_U_UMLAUT */0 401 221, /* UPPERCASE_Y_UMLAUT */- 402 223, /* GERMAN_DOUBLE_S */ / 403 224, /* LOWERCASE_A_GRAVE */,/ 404 225, /* LOWERCASE_A_ACUTE */4 405 226, /* LOWERCASE_A_CIRCUMFLEX */1 406 227, /* LOWERCASE_A_TWIDDLE */L0 407 228, /* LOWERCASE_A_UMLAUT */. 408 229, /* LOWERCASE_A_RING */4 409 230, /* LOWERCASE_A_E_DIARESIS */1 410 231, /* LOWERCASE_C_CEDILLA */ / 411 232, /* LOWERCASE_E_GRAVE */ / 412 233, /* LOWERCASE_E_ACUTE */4 413 234, /* LOWERCASE_E_CIRCUMFLEX */0 414 235, /* LOWERCASE_E_UMLAUT *// 415 236, /* LOWERCASE_I_GRAVE */ / 416 237, /* LOWERCASE_I_ACUTE */-4 417 238, /* LOWERCASE_I_CIRCUMFLEX */0 418 239, /* LOWERCASE_I_UMLAUT */1 419 241, /* LOWERCASE_N_TWIDDLE */ 4TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 5{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) / 420 242, /* LOWERCASE_O_GRAVE */S/ 421 243, /* LOWERCASE_O_ACUTE *//4 422 244, /* LOWERCASE_O_CIRCUMFLEX */1 423 245, /* LOWERCASE_O_TWIDDLE *//0 424 246, /* LOWERCASE_O_UMLAUT */4 425 247, /* LOWERCASE_O_E_DIARESIS *// 426 248, /* LOWERCASE_O_SLASH */ / 427 249, /* LOWERCASE_U_GRAVE */ / 428 250, /* LOWERCASE_U_ACUTE */I4 429 251, /* LOWERCASE_U_CIRCUMFLEX */0 430 252, /* LOWERCASE_U_UMLAUT */0 431 253, /* LOWERCASE_Y_UMLAUT */$ 432 'P', /* PESETA */$ 433 'f', /* FLORIN *// 434 '-', /* BEGINNING_OF_LINE */P) 435 '-', /* END_OF_LINE */ & 436 '=', /* IDENTITY */3 437 '>', /* GREATER_THAN_OR_EQUAL */ 0 438 '<', /* LESS_THAN_OR_EQUAL */$ 439 '/', /* DIVIDE */1 440 '~', /* APPROXIMATELY_EQUAL */* 441 176, /* SOLID_DEGREE */) 442 'V', /* SQUARE_ROOT */C' 443 'n', /* NTH_POWER */ # 444 '*', /* BLOCK */ - 445 'L', /* UPPERCASE_L_DOT */ - 446 'l', /* LOWERCASE_L_DOT */ ( 447 'l', /* SCRIPTED_L *// 448 'n', /* LOWERCASE_N_QUOTE */& 449 (5~ TRANSLATE.BCKeRC.TRANSLATE]TABLES.LIS;1u> 'x', /* MULTIPLY */3 450 'R', /* REGISTERED_TRADE_MARK */ + 451 'd', /* LOWERCASE_ETH */,+ 452 'D', /* UPPERCASE_ETH */D' 453 'i', /* DOTLESS_I */S- 454 'p', /* LOWERCASE_THORN */S- 455 'P', /* UPPERCASE_THORN */S/ 456 'y', /* LOWERCASE_Y_ACUTE */C/ 457 'Y', /* UPPERCASE_Y_ACUTE */C$ 458 '-', /* MACRON */# 459 39, /* ACUTE */' 460 '_', /* UNDERLINE */S. 461 '_', /* DOUBLE_UNDERLINE */, 462 '%', /* THREE_QUARTERS *// 463 183, /* DOUBLE_MIDDLE_DOT */S 464 / 465 END_TO_TABLE /* terminator *// 466 }; 467 + 468 FROM_TABLE from_dos_ascii = {7/ 469 UPPERCASE_C_CEDILLA, /* */ . 470 LOWERCASE_U_UMLAUT, /* */- 471 LOWERCASE_E_ACUTE, /* */11 472 LOWERCASE_A_CIRCUMFLEX, /* */0. 473 LOWERCASE_A_UMLAUT, /* */- 474 LOWERCASE_A_GRAVE, /* */ , 475 LOWERCASE_A_RING, /* *// 476 LOWERCASE_C_CEDILLA, /* */  TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 6{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)E 477 1 478 LOWERCASE_E_CIRCUMFLEX, /* */ . 479 LOWERCASE_E_UMLAUT, /* */- 480 LOWERCASE_E_GRAVE, /* */E. 481 LOWERCASE_I_UMLAUT, /* */1 482 LOWERCASE_I_CIRCUMFLEX, /* */E- 483 LOWERCASE_I_GRAVE, /* */E. 484 UPPERCASE_A_UMLAUT, /* */, 485 UPPERCASE_A_RING, /* */ 486 - 487 UPPERCASE_E_ACUTE, /* */M1 488 LOWERCASE_A_E_DIARESIS, /* */L1 489 UPPERCASE_A_E_DIARESIS, /* */L1 490 LOWERCASE_O_CIRCUMFLEX, /* */ . 491 LOWERCASE_O_UMLAUT, /* */- 492 LOWERCASE_O_GRAVE, /* */L1 493 LOWERCASE_U_CIRCUMFLEX, /* */,- 494 LOWERCASE_U_GRAVE, /* */T 495 . 496 LOWERCASE_Y_UMLAUT, /* */. 497 UPPERCASE_O_UMLAUT, /* */. 498 UPPERCASE_U_UMLAUT, /* */$ 499 US_CENT, /* */% 500 UK_POUND, /* */ ! 501 YEN, /* */*# 502 PESETA, /* Pt */T# 503 FLORIN, /* f */S 504 - 505 LOWERCASE_A_ACUTE, /* */4- 506 LOWERCASE_I_ACUTE, /* */- 507 LOWERCASE_O_ACUTE, /* *//- 508 LOWERCASE_U_ACUTE, /* */ / 509 LOWERCASE_N_TWIDDLE, /* */*/ 510 UPPERCASE_N_TWIDDLE, /* */N, 511 FEMININE_ORDINAL, /* */- 512 MASCULINE_ORDINAL, /* */O 513 4 514 UPSIDE_DOWN_QUESTION_MARK, /* */- 515 BEGINNING_OF_LINE, /* */L( 516 END_OF_LINE, /* */" 517 HALF, /* */$ 518 QUARTER, /* */7 519 UPSIDE_DOWN_EXCLAMATION_MARK, /* */ 0 520 LEFT_DOUBLE_GUILLEMET, /* */1 521 RIGHT_DOUBLE_GUILLEMET, /* */ 522 " 523 BLANK, /* ??? */" 524 BLANK, /* ??? */" 525 BLANK, /* ??? */" 526 BLANK, /* ??? */" 527 BLANK, /* ??? */" 528 BLANK, /* ??? */" 529 BLANK, /* ??? */" 530 BLANK, /* ??? */ 531 " 532 BLANK, /* ??? */" 533 BLANK, /* ??? */ 8TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 7{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) " 534 BLANK, /* ??? */" 535 BLANK, /* ??? */" 536 BLANK, /* ??? */" 537 BLANK, /* ??? */" 538 BLANK, /* ??? */" 539 BLANK, /* ??? */ 540 " 541 BLANK, /* ??? */" 542 BLANK, /* ??? */" 543 BLANK, /* ??? */" 544 BLANK, /* ??? */" 545 BLANK, /* ??? */" 546 BLANK, /* ??? */" 547 BLANK, /* ??? */" 548 BLANj"K, /* ??? */ 549 " 550 BLANK, /* ??? */" 551 BLANK, /* ??? */" 552 BLANK, /* ??? */" 553 BLANK, /* ??? */" 554 BLANK, /* ??? */" 555 BLANK, /* ??? */" 556 BLANK, /* ??? */" 557 BLANK, /* ??? */ 558 " 559 BLANK, /* ??? */" 560 BLANK, /* ??? */" 561 BLANK, /* ??? */" 562 BLANK, /* ??? */" 563 BLANK, /* ??? */" 564 BLANK, /* ??? */" 565 BLANK, /* ??? */" 566 BLANK, /* ??? */ 567 " 568 BLANK, /* ??? */" 569 BLANK, /* ??? */" 570 BLANK, /* ??? */" 571 BLANK, /* ??? */" 572 BLANK, /* ??? */" 573 BLANK, /* ??? */" 574 BLANK, /* ??? */" 575 BLANK, /* ??? */ 576 " 577 BLANK, /* ??? */+ 578 GERMAN_DOUBLE_S, /* */ " 579 BLANK, /* ??? */" 580 BLANK, /* ??? */" 581 BLANK, /* ??? */" 582 BLANK, /* ??? */" 583 BLANK, /* ??? */" 584 BLANK, /* ??? */ 585 " 586 BLANK, /* ??? */" 587 BLANK, /* ??? */" 588 BLANK, /* ??? */" 589 BLANK, /* ??? */" 590 BLANK, /* ??? */ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 8{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) - 591 UPPERCASE_O_SLASH, /* */ " 592 BLANK, /* ??? */" 593 BLANK, /* ??? */ 594 3 595 IDENTITY, /* three-line equals */ ' 596 PLUS_MINUS, /* */D0 597 GREATER_THAN_OR_EQUAL, /* >= */. 598 LESS_THAN_OR_EQUAL, /* <= */" 599 BLANK, /* ??? */" 600 BLANK, /* ??? */# 601 DIVIDE, /* */ : 602 APPROXIMATELY_EQUAL, /* double twiddle */ 603 # 604 DEGREE, /* */) 605 SOLID_DEGREE, /* */E' 606 MIDDLE_DOT, /* */E( 607 SQUARE_ROOT, /* */& 608 NTH_POWER, /* */$ 609 SQUARED, /* */" 610 BLOCK, /* */" 611 BLANK, /* ??? */ 612 0 613 END_FROM_TABLE /* terminator */ 614 }; 615 ' 616 TO_TABLE to_dos_ascii = { # 617 32, /* BLANK */E: 618 173, /* UPSIDE_DOWN_EXCLAMATION_MARK */% 619 155, /* US_CENT */U& 620 156, /* UK_POUND */! 621 157, /* YEN */I* 622 'S', /* SECTION_SIGN */$ 623 '*', /* BULLET */' 624 'c', /* COPYRIGHT */ . 625 166, /* FEMININE_ORDINAL */3 626 174, /* LEFT_DOUBLE_GUILLEMET */_$ 627 248, /* DEGREE */( 628 241, /* PLUS_MINUS */% 629 253, /* SQUARED */ # 630 '3', /* CUBED */ 631 230, /* MU */, 632 20, /* PARAGRAPH_SIGN */( 633 250, /* MIDDLE_DOT */' 634 '1', /* POWER_ONE */ / 635 167, /* MASCULINE_ORDINAL */4 636 175, /* RIGHT_DOUBLE_GUILLEMET */% 637 172, /* QUARTER */ " 638 171, /* HALF */7 639 168, /* UPSIDE_DOWN_QUESTION_MARK */ / 640 'A', /* UPPERCASE_A_GRAVE */ / 641 'A', /* UPPERCASE_A_ACUTE */ 4 642 'A', /* UPPERCASE_A_CIRCUMFLEX */1 643 'A', /* UPPERCASE_A_TWIDDLE */*0 644 142, /* UPPERCASE_A_UMLAUT */. 645 143, /* UPPERCASE_A_RING */4 646 146, /* UPPERCASE_A_E_DIARESIS */1 647 128, /* UPPERCASE_C_CEDILLA */  TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 9{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1);/ 648 'E', /* UPPERCASE_E_GRAVE */_/ 649 144, /* UPPERCASE_E_ACUTE */ 4 650 'E', /* UPPERCASE_E_CIRCUMFLEX */0 651 'E', /* UPPERCASE_E_UMLAUT *// 652 'I', /* UPPERCASE_I_GRAVE *// 653 'I', /* UPPERCASE_I_ACUTE */ 4 654 'I', /* UPPERCASE_I_CIRCUMFLEX */0 655 'I', /* UPPERCASE_I_UMLAUT */1 656 165, /* UPPERCASE_N_TWIDDLE */L/ 657 'O', /* UPPERCASE_O_GRAVE */ / 658 'O', /* UPPERCASE_O_ACUTE */-4 659 'O', /* UPPERCASE_O_CIRCUMFLEX */1 660 'O', /* UPPERCASE_O_TWIDDLE */70 661 153, /* UPPERCASE_O_UMLAUT */4 662 153, /* UPPERCASE_O_E_DIARESIS *// 663 237, /* UPPERCASE_O_SLASH */ / 664 'U', /* UPPERCASE_U_GRAVE */*/ 665 'U', /* UPPERCASE_U_ACUTE */ 4 666 'U', /* UPPERCASE_U_CIRCUMFLEX */0 667 154, /* UPPERCASE_U_UMLAUT */0 668 'Y', /* UPPERCASE_Y_UMLAUT */- 669 225, /* GERMAN_DOUBLE_S *// 670 133, /* LOWERCASE_A_GRAVE */,/ 671 160, /* LOWERCASE_A_ACUTE */S4 672 131, /* LOWERCASE_A_CIRCUMFLEX */1 673 'a', /* LOWERCASE_A_TWIDDLE */X0 674 132, /* LOWERCASE_A_UMLAUT */. 675 134, /* LOWERCASE_A_RING */4 676 145, /* LOWERCASE_A_E_DIARESIS */1 677 135, /* LOWERCASE_C_CEDILLA *// 678 138, /* LOWERCASE_E_GRAVE */_/ 679 130, /* LOWERCASE_E_ACUTE */M4 680 136, /* LOWERCASE_E_CIRCUMFLEX */0 681 137, /* LOWERCASE_E_UMLAUT *// 682 141, /* LOWERCASE_I_GRAVE */ / 683 161, /* LOWERCASE_I_ACUTE */ 4 684 140, /* LOWERCASE_I_CIRCUMFLEX */0 685 139, /* LOWERCASE_I_UMLAUT */1 686 164, /* LOWERCASE_N_TWIDDLE */ / 687 149, /* LOWERCASE_O_GRAVE *// 688 162, /* LOWERCASE_O_ACUTE */*4 689 147, /* LOWERCASE_O_CIRCUMFLEX */1 690 'o', /* LOWERCASE_O_TWIDDLE */ 0 691 148, /* LOWERCASE_O_UMLAUT */4 692 148, /* LOWERCASE_O_E_DIARESIS *// 693 237, /* LOWERCASE_O_SLASH */ / 694 151, /* LOWERCASE_U_GRAVE */ / 695 163, /* LOWERCASE_U_ACUTE */ 4 696 150, /* LOWERCASE_U_CIRCUMFLEX */0 697 129, /* LOWERCASE_U_UMLAUT */0 698 152, /* LOWERCASE_Y_UMLAUT */$ 699 158, /* PESETA */$ 700 159, /* FLORIN *// 701 169, /* BEGINNING_OF_LINE */ ) 702 170, /* END_OF_LINE */2& 703 240, /* IDENTITY */3 704 242, /* GREATER_THAN_OR_EQUAL *// ?TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 103{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) 0 705 243, /* LESS_THAN_OR_EQUAL */$ 706 246, /* DIVIDE */1 707 247, /* APPROXIMATELY_EQUAL */ * 708 249, /* SOLID_DEGREE */) 709 251, /* SQUARE_ROOT */ ' 710 252, /* NTH_POWER */?# 711 254, /* BLOCK */ - 712 'L', /* UPPERCASE_L_DOT */ - 713 'l', /* LOWERCASE_L_DOT */N( 714 'l', /* SCRIPTED_L *// 715 'n', /* LOWERCASE_N_QUOTE */ & 716 'x', /* MULTIPLY */3 717 'R', /* REGISTERED_TRADE_MARK */ + 718 'd', /* LOWERCASE_ETH */N+ 719 'D', /* UPPERCASE_ETH */?' 720 'i', /* DOTLESS_I */- 721 'p', /* LOWERCASE_THORN */ - 722 'P', /* UPPERCASE_THORN */ / 723 'y', /* LOWERCASE_Y_ACUTE */,/ 724 'Y', /* UPPERCASE_Y_ACUTE */$ 725 '-', /* MACRON */# 726 39, /* ACUTE */5' 727 '_', /* UNDERLINE */ . 728 '_', /* DOUBLE_UNDERLINE */, 729 '%', /* THREE_QUARTERS *// 730 250, /* DOUBLE_MIDDLE_DOT */? 731 / 732 END_TO_TABLE /* terminator */  733 }; 734 ( 735 FROM_TABLE from_nordic = {/ 736 UPPERCASE_C_CEDILLA, /* *//. 737 LOWERCASE_U_UMLAUT, /* */- 738 LOWERCASE_E_ACUTE, /* */ 1 739 LOWERCASE_A_CIRCUMFLEX, /* */?. 740 LOWERCASE_A_UMLAUT, /* */- 741 LOWERCASE_A_GRAVE, /* */L, 742 LOWERCASE_A_RING, /* *// 743 LOWERCASE_C_CEDILLA, /* */U 744 1 745 LOWERCASE_E_CIRCUMFLEX, /* */ . 746 LOWERCASE_E_UMLAUT, /* */- 747 LOWERCASE_E_GRAVE, /* */. 748 LOWERCASE_I_UMLAUT, /* */1 749 LOWERCASE_I_CIRCUMFLEX, /* */ - 750 LOWERCASE_I_GRAVE, /* */ . 751 UPPERCASE_A_UMLAUT, /* */, 752 UPPERCASE_A_RING, /* */ 753 - 754 UPPERCASE_E_ACUTE, /* */ 1 755 LOWERCASE_A_E_DIARESIS, /* */ 1 756 UPPERCASE_A_E_DIARESIS, /* */ 1 757 LOWERCASE_O_CIRCUMFLEX, /* */ . 758 LOWERCASE_O_UMLAUT, /* */- 759 LOWERCASE_O_GRAVE, /* */_1 760 LOWERCASE_U_CIRCUMFLEX, /* */?- 761 LOWERCASE_U_GRAVE, /* */  TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 11_{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)  762 . 763 LOWERCASE_Y_UMLAUT, /* */. 764 UPPERCASE_O_UMLAUT, /* */. 765 UPPERCASE_U_UMLAUT, /* */- 766 LOWERCASE_O_SLASH, /* */ % 767 UK_POUND, /* */- 768 UPPERCASE_O_SLASH, /* */ + 769 UPPERCASE_L_DOT, /* */ + 770 LOWERCASE_L_DOT, /* */C 771 - 772 LOWERCASE_A_ACUTE, /* */ - 773 LOWERCASE_I_ACUTE, /* */o- 774 LOWERCASE_O_ACUTE, /* */ - 775 LOWERCASE_U_ACUTE, /* */ / 776 LOWERCASE_N_TWIDDLE, /* */*/ 777 UPPERCASE_N_TWIDDLE, /* */ / 778 LOWERCASE_O_TWIDDLE, /* */*/ 779 UPPERCASE_O_TWIDDLE, /* */ 780 4 781 UPSIDE_DOWN_QUESTION_MARK, /* *// 782 LOWERCASE_A_TWIDDLE, /* */*/ 783 UPPERCASE_A_TWIDDLE, /* *//' 784 SCRIPTED_L, /* */G- 785 LOWERCASE_N_QUOTE, /* */ 7 786 UPSIDE_DOWN_EXCLAMATION_MARK, /* */ " 787 CUBED, /* */# 788 BULLET, /* */  789 " 790 BLANK, /* ??? */" 791 BLANK, /* ??? */" 792 BLANK, /* ??? */" 793 BLANK, /* ??? */" 794 BLANK, /* ??? */" 795 BLANK, /* ??? */" 796 BLANK, /* ??? */" 797 BLANK, /* ??? */ 798 " 799 BLANK, /* ??? */" 800 BLANK, /* ??? */" 801 BLANK, /* ??? */" 802 BLANK, /* ??? */" 803 BLANK, /* ??? */" 804 BLANK, /* ??? */" 805 BLANK, /* ??? */" 806 BLANK, /* ??? */ 807 " 808 BLANK, /* ??? */" 809 BLANK, /* ??? */" 810 BLANK, /* ??? */" 811 BLANK, /* ??? */" 812 BLANK, /* ??? */" 813 BLANK, /* ??? */" 814 BLANK, /* ??? */" 815 BLANK, /* ??? */ 816 " 817 BLANK, /* ??? */" 818 BLANK, /* ??? */ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 12,{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)L" 819 BLANK, /* ??? */" 820 BLANK, /* ??? */" 821 BLANK, /* ??? */" 822 BLANK, /* ??? */" 823 BLANK, /* ??? */" 824 BLANK, /* ??? */ 825 " 826 BLANK, /* ??? */" 827 BLANK, /* ??? */" 828 BLANK, /* ??? */" 829 BLANK, /* ??? */" 830 BLANK, /* ??? */" 831 BLANK, /* ??? */" 832 BLANK, /* ??? */" 833 BLANK, /* ??? */ 834 " 835 BLANK, /* ??? */" 836 BLANK, /* ??? */" 837 BLANK, /* ??? */" 838 BLANK, /* ??? */" 839 BLANK, /* ??? */" 840 BLANK, /* ??? */" 841 BLANK, /* ??? */" 842 BLANK, /* ??? */ 843 " 844 BLANK, /* ??? */+ 845 GERMAN_DOUBLE_S, /* */" 846 BLANK, /* ??? */" 847 BLANK, /* ??? */" 848 BLANK, /* ??? */" 849 BLANK, /* ??? */" 850 BLANK, /* ??? */" 851 BLANK, /* ??? */ 852 " 853 BLANK, /* ??? */" 854 BLANK, /* ??? */" 855 BLANK, /* ??? */" 856 BLANK, /* ??? */" 857 BLANK, /* ??? */" 858 BLANK, /* ??? */" 859 BLANK, /* ??? */" 860 BLANK, /* ??? */ 861 3 862 IDENTITY, /* three-line equals */ ' 863 PLUS_MINUS, /* */ 0 864 GREATER_THAN_OR_EQUAL, /* >= */. 865 LESS_THAN_OR_EQUAL, /* <= */" 866 BLANK, /* ??? */" 867 BLANK, /* ??? */# 868 DIVIDE, /* */,: 869 APPROXIMATELY_EQUAL, /* double twiddle */ 870 # 871 DEGREE, /* */R) 872 SOLID_DEGREE, /* */*' 873 MIDDLE_DOT, /* */ ( 874 SQUARE_ROOT, /* */& 875 NTH_POWER, /* */ /TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 13L{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)$ 876 SQUARED, /* */" 877 BLOCK, /* */" 878 BLANK, /* ??? */ 879 0 880 END_FROM_TABLE /* terminator */ 881 }; 882 $ 883 TO_TABLE to_nordic = {# 884 32, /* BLANK */4: 885 173, /* UPSIDE_DOWN_EXCLAMATION_MARK */% 886 'c', /* US_CENT */ & 887 156, /* UK_POUND */! 888 'Y', /* YEN */ * 889 'S', /* SECTION_SIGN */$ 890 175, /* BULLET */' 891 'c', /* COPYRIGHT */ . 892 'a', /* FEMININE_ORDINAL */3 893 174, /* LEFT_DOUBLE_GUILLEMET */ $ 894 248, /* DEGREE */( 895 241, /* PLUS_MINUS */% 896 253, /* SQUARED */ # 897 174, /* CUBED */_ 898 230, /* MU */, 899 20, /* PARAGRAPH_SIGN */( 900 250, /* MIDDLE_DOT */' 901 '1', /* POWER_ONE */*/ 902 'o', /* MASCULINE_ORDINAL */S4 903 175, /* RIGHT_DOUBLE_GUILLEMET */% 904 '%', /* QUARTER */L" 905 '%', /* HALF */7 906 168, /* UPSIDE_DOWN_QUESTION_MARK */W/ 907 'A', /* UPPERCASE_A_GRAVE */A/ 908 'A', /* UPPERCASE_A_ACUTE */*4 909 'A', /* UPPERCASE_A_CIRCUMFLEX */1 910 'A', /* UPPERCASE_A_TWIDDLE */ 0 911 142, /* UPPERCASE_A_UMLAUT */. 912 143, /* UPPERCASE_A_RING */4 913 146, /* UPPERCASE_A_E_DIARESIS */1 914 128, /* UPPERCASE_C_CEDILLA */I/ 915 'E', /* UPPERCASE_E_GRAVE */N/ 916 144, /* UPPERCASE_E_ACUTE *//4 917 'E', /* UPPERCASE_E_CIRCUMFLEX */0 918 'E', /* UPPERCASE_E_UMLAUT *// 919 'I', /* UPPERCASE_I_GRAVE */ / 920 'I', /* UPPERCASE_I_ACUTE */ 4 921 'I', /* UPPERCASE_I_CIRCUMFLEX */0 922 'I', /* UPPERCASE_I_UMLAUT */1 923 165, /* UPPERCASE_N_TWIDDLE */E/ 924 'O', /* UPPERCASE_O_GRAVE */O/ 925 'O', /* UPPERCASE_O_ACUTE */E4 926 'O', /* UPPERCASE_O_CIRCUMFLEX */1 927 'O', /* UPPERCASE_O_TWIDDLE */I0 928 153, /* UPPERCASE_O_UMLAUT */4 929 153, /* UPPERCASE_O_E_DIARESIS *// 930 237, /* UPPERCASE_O_SLASH */E/ 931 'U', /* UPPERCASE_U_GRAVE */C/ 932 'U', /* UPPERCASE_U_ACUTE */S _TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 14 {V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)_4 933 'U', /* UPPERCASE_U_CIRCUMFLEX */0 934 154, /* UPPERCASE_U_UMLAUT */0 935 'Y', /* UPPERCASE_Y_UMLAUT */- 936 225, /* GERMAN_DOUBLE_S */R/ 937 133, /* LOWERCASE_A_GRAVE */C/ 938 160, /* LOWERCASE_A_ACUTE */R4 939 131, /* LOWERCASE_A_CIRCUMFLEX */1 940 'a', /* LOWERCASE_A_TWIDDLE */10 941 132, /* LOWERCASE_A_UMLAUT */. 942 134, /* LOWERCASE_A_RING */4 943 145, /* LOWERCASE_A_E_DIARESIS */1 944 135, /* LOWERCASE_C_CEDILLA */ / 945 138, /* LOWERCASE_E_GRAVE */ / 946 130, /* LOWERCASE_E_ACUTE */ 4 947 136, /* LOWERCASE_E_CIRCUMFLEX */0 948 137, /* LOWERCASE_E_UMLAUT *// 949 141, /* LOWERCASE_I_GRAVE */S/ 950 161, /* LOWERCASE_I_ACUTE */ 4 951 140, /* LOWERCASE_I_CIRCUMFLEX */0 952 139, /* LOWERCASE_I_UMLAUT */1 953 164, /* LOWERCASE_N_TWIDDLE */,/ 954 149, /* LOWERCASE_O_GRAVE */ / 955 162, /* LOWERCASE_O_ACUTE */*4 956 147, /* LOWERCASE_O_CIRCUMFLEX */1 957 'o', /* LOWERCASE_O_TWIDDLE */*0 958 148, /* LOWERCASE_O_UMLAUT */4 959 148, /* LOWERCASE_O_E_DIARESIS *// 960 237, /* LOWERCASE_O_SLASH */I/ 961 151, /* LOWERCASE_U_GRAVE */W/ 962 163, /* LOWERCASE_U_ACUTE */W4 963 150, /* LOWERCASE_U_CIRCUMFLEX */0 964 129, /* LOWERCASE_U_UMLAUT */0 965 152, /* LOWERCASE_Y_UMLAUT */$ 966 'P', /* PESETA */$ 967 'f', /* FLORIN *// 968 '-', /* BEGINNING_OF_LINE */,) 969 '-', /* END_OF_LINE */?& 970 240, /* IDENTITY */3 971 242, /* GREATER_THAN_OR_EQUAL */ 0 972 243, /* LESS_THAN_OR_EQUAL */$ 973 246, /* DIVIDE */1 974 247, /* APPROXIMATELY_EQUAL */ * 975 249, /* SOLID_DEGREE */) 976 251, /* SQUARE_ROOT */ ' 977 252, /* NTH_POWER */L# 978 254, /* BLOCK */N- 979 158, /* UPPERCASE_L_DOT */ - 980 159, /* LOWERCASE_L_DOT */ ( 981 171, /* SCRIPTED_L *// 982 172, /* LOWERCASE_N_QUOTE */ & 983 'x', /* MULTIPLY */3 984 'R', /* REGISTERED_TRADE_MARK *//+ 985 'd', /* LOWERCASE_ETH */ + 986 'D', /* UPPERCASE_ETH */L' 987 'i', /* DOTLESS_I */ - 988 'p', /* LOWERCASE_THORN */N- 989 'P', /* UPPERCASE_THORN */  TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 151{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)1/ 990 'y', /* LOWERCASE_Y_ACUTE */ / 991 'Y', /* UPPERCASE_Y_ACUTE */ $ 992 '-', /* MACRON */# 993 39, /* ACUTE */ ' 994 '_', /* UNDERLINE *//. 995 '_', /* DOUBLE_UNDERLINE */, 996 '%', /* THREE_QUARTERS *// 997 250, /* DOUBLE_MIDDLE_DOT */L 998 / 999 END_TO_TABLE /* terminator */  1000 }; 1001 . 1002 FROM_TABLE from_multilingual = {/ 1003 UPPERCASE_C_CEDILLA, /* */N. 1004 LOWERCASE_U_UMLAUT, /* */- 1005 LOWERCASE_E_ACUTE, /* */ 1 1006 LOWERCASE_A_CIRCUMFLEX, /* */ . 1007 LOWERCASE_A_UMLAUT, /* */- 1008 LOWERCASE_A_GRAVE, /* */ , 1009 LOWERCASE_A_RING, /* *// 1010 LOWERCASE_C_CEDILLA, /* */M 1011 1 1012 LOWERCASE_E_CIRCUMFLEX, /* */ . 1013 LOWERCASE_E_UMLAUT, /* */- 1014 LOWERCASE_E_GRAVE, /* */?. 1015 LOWERCASE_I_UMLAUT, /* */1 1016 LOWERCASE_I_CIRCUMFLEX, /* */ - 1017 LOWERCASE_I_GRAVE, /* */L. 1018 UPPERCASE_A_UMLAUT, /* */, 1019 UPPERCASE_A_RING, /* */ 1020 - 1021 UPPERCASE_E_ACUTE, /* */ 1 1022 LOWERCASE_A_E_DIARESIS, /* */ 1 1023 UPPERCASE_A_E_DIARESIS, /* */ 1 1024 LOWERCASE_O_CIRCUMFLEX, /* */ . 1025 LOWERCASE_O_UMLAUT, /* */- 1026 LOWERCASE_O_GRAVE, /* */ 1 1027 LOWERCASE_U_CIRCUMFLEX, /* */L- 1028 LOWERCASE_U_GRAVE, /* */? 1029 . 1030 LOWERCASE_Y_UMLAUT, /* */. 1031 UPPERCASE_O_UMLAUT, /* */. 1032 UPPERCASE_U_UMLAUT, /* */- 1033 LOWERCASE_O_SLASH, /* */ % 1034 UK_POUND, /* */7- 1035 UPPERCASE_O_SLASH, /* */ % 1036 MULTIPLY, /* x */S# 1037 FLORIN, /* f */  1038 - 1039 LOWERCASE_A_ACUTE, /* */ - 1040 LOWERCASE_I_ACUTE, /* */ - 1041 LOWERCASE_O_ACUTE, /* */Y- 1042 LOWERCASE_U_ACUTE, /* */;/ 1043 LOWERCASE_N_TWIDDLE, /* */ / 1044 UPPERCASE_N_TWIDDLE, /* */ , 1045 FEMININE_ORDINAL, /* */- 1046 MASCULINE_ORDINAL, /* */  TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 16O{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)  1047 4 1048 UPSIDE_DOWN_QUESTION_MARK, /* */0 1049 REGISTERED_TRADE_MARK, /* */( 1050 END_OF_LINE, /* */" 1051 HALF, /* */$ 1052 QUARTER, /* */7 1053 UPSIDE_DOWN_EXCLAMATION_MARK, /* */40 1054 LEFT_DOUBLE_GUILLEMET, /* */1 1055 RIGHT_DOUBLE_GUILLEMET, /* */ 1056 " 1057 BLANK, /* ??? */" 1058 BLANK, /* ??? */" 1059 BLANK, /* ??? */" 1060 BLANK, /* ??? */" 1061 BLANK, /* ??? */- 1062 UPPERCASE_A_ACUTE, /* */G1 1063 UPPERCASE_A_CIRCUMFLEX, /* */Q- 1064 UPPERCASE_A_GRAVE, /* */ 1065 & 1066 COPYRIGHT, /* */" 1067 BLANK, /* ??? */" 1068 BLANK, /* ??? */" 1069 BLANK, /* ??? */" 1070 BLANK, /* ??? */$ 1071 US_CENT, /* */! 1072 YEN, /* */ " 1073 BLANK, /* ??? */ 1074 " 1075 BLANK, /* ??? */" 1076 BLANK, /* ??? */" 1077 BLANK, /* ??? */" 1078 BLANK, /* ??? */" 1079 BLANK, /* ??? */" 1080 BLANK, /* ??? *// 1081 LOWERCASE_A_TWIDDLE, /* */ / 1082 UPPERCASE_A_TWIDDLE, /* */, 1083 " 1084 BLANK, /* ??? */" 1085 BLANK, /* ??? */" 1086 BLANK, /* ??? */" 1087 BLANK, /* ??? */" 1088 BLANK, /* ??? */" 1089 BLANK, /* ??? */" 1090 BLANK, /* ??? */# 1091 BULLET, /* */, 1092 ) 1093 LOWERCASE_ETH, /* ??? */P) 1094 UPPERCASE_ETH, /* ??? */ 1 1095 UPPERCASE_E_CIRCUMFLEX, /* */ . 1096 UPPERCASE_E_UMLAUT, /* */- 1097 UPPERCASE_E_GRAVE, /* */ & 1098 DOTLESS_I, /* */- 1099 UPPERCASE_I_ACUTE, /* */1 1100 UPPERCASE_I_CIRCUMFLEX, /* */  1101 . 1102 UPPERCASE_I_UMLAUT, /* */" 1103 BLANK, /* ??? */ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 17 {V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) " 1104 BLANK, /* ??? */" 1105 BLANK, /* ??? */" 1106 BLANK, /* ??? */" 1107 BLANK, /* ??? */- 1108 UPPERCASE_I_GRAVE, /* */A" 1109 BLANK, /* ??? */ 1110 - 1111 UPPERCASE_O_ACUTE, /* */R+ 1112 GERMAN_DOUBLE_S, /* */A1 1113 UPPERCASE_O_CIRCUMFLEX, /* */A- 1114 UPPERCASE_O_GRAVE, /* */R/ 1115 LOWERCASE_O_TWIDDLE, /* */A/ 1116 UPPERCASE_O_TWIDDLE, /* */W 1117 MU, /* */+ 1118 LOWERCASE_THORN, /* */  1119 + 1120 UPPERCASE_THORN, /* */,- 1121 UPPERCASE_U_ACUTE, /* */ 1 1122 UPPERCASE_U_CIRCUMFLEX, /* */ - 1123 UPPERCASE_U_GRAVE, /* */ - 1124 LOWERCASE_Y_ACUTE, /* */ - 1125 UPPERCASE_Y_ACUTE, /* */ # 1126 MACRON, /* */U" 1127 ACUTE, /* v_~ TRANSLATE.BCKeRC.TRANSLATE]TABLES.LIS;1u2:W*/ 1128 & 1129 UNDERLINE, /* */' 1130 PLUS_MINUS, /* */*, 1131 DOUBLE_UNDERLINE, /* */* 1132 THREE_QUARTERS, /* */* 1133 PARAGRAPH_SIGN, /* */) 1134 SECTION_SIGN, /* *//# 1135 DIVIDE, /* */E" 1136 BLANK, /* ??? */ 1137 # 1138 DEGREE, /* */ - 1139 DOUBLE_MIDDLE_DOT, /* */,' 1140 MIDDLE_DOT, /* */ & 1141 POWER_ONE, /* */" 1142 CUBED, /* */$ 1143 SQUARED, /* */" 1144 BLOCK, /* */" 1145 BLANK, /* ??? */ 1146 0 1147 END_FROM_TABLE /* terminator */ 1148 }; 1149 * 1150 TO_TABLE to_multilingual = {# 1151 32, /* BLANK */ : 1152 173, /* UPSIDE_DOWN_EXCLAMATION_MARK */% 1153 189, /* US_CENT */ & 1154 156, /* UK_POUND */! 1155 190, /* YEN */ * 1156 245, /* SECTION_SIGN */$ 1157 207, /* BULLET */' 1158 184, /* COPYRIGHT */W. 1159 166, /* FEMININE_ORDINAL */3 1160 174, /* LEFT_DOUBLE_GUILLEMET */  TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 18 {V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)E$ 1161 248, /* DEGREE */( 1162 241, /* PLUS_MINUS */% 1163 253, /* SQUARED */*# 1164 252, /* CUBED */ 1165 230, /* MU */, 1166 244, /* PARAGRAPH_SIGN */( 1167 250, /* MIDDLE_DOT */' 1168 251, /* POWER_ONE */e/ 1169 167, /* MASCULINE_ORDINAL */ 4 1170 175, /* RIGHT_DOUBLE_GUILLEMET */% 1171 172, /* QUARTER */ " 1172 171, /* HALF */7 1173 168, /* UPSIDE_DOWN_QUESTION_MARK */9/ 1174 183, /* UPPERCASE_A_GRAVE */ / 1175 181, /* UPPERCASE_A_ACUTE */U4 1176 182, /* UPPERCASE_A_CIRCUMFLEX */1 1177 199, /* UPPERCASE_A_TWIDDLE *//0 1178 142, /* UPPERCASE_A_UMLAUT */. 1179 143, /* UPPERCASE_A_RING */4 1180 146, /* UPPERCASE_A_E_DIARESIS */1 1181 128, /* UPPERCASE_C_CEDILLA */0/ 1182 212, /* UPPERCASE_E_GRAVE */0/ 1183 144, /* UPPERCASE_E_ACUTE */ 4 1184 210, /* UPPERCASE_E_CIRCUMFLEX */0 1185 211, /* UPPERCASE_E_UMLAUT *// 1186 222, /* UPPERCASE_I_GRAVE */ / 1187 214, /* UPPERCASE_I_ACUTE */ 4 1188 215, /* UPPERCASE_I_CIRCUMFLEX */0 1189 216, /* UPPERCASE_I_UMLAUT */1 1190 165, /* UPPERCASE_N_TWIDDLE */ / 1191 227, /* UPPERCASE_O_GRAVE */ / 1192 224, /* UPPERCASE_O_ACUTE */ 4 1193 226, /* UPPERCASE_O_CIRCUMFLEX */1 1194 229, /* UPPERCASE_O_TWIDDLE */ 0 1195 153, /* UPPERCASE_O_UMLAUT */4 1196 153, /* UPPERCASE_O_E_DIARESIS *// 1197 157, /* UPPERCASE_O_SLASH */ / 1198 235, /* UPPERCASE_U_GRAVE */ / 1199 233, /* UPPERCASE_U_ACUTE */ 4 1200 234, /* UPPERCASE_U_CIRCUMFLEX */0 1201 154, /* UPPERCASE_U_UMLAUT */0 1202 'Y', /* UPPERCASE_Y_UMLAUT */- 1203 225, /* GERMAN_DOUBLE_S */ / 1204 133, /* LOWERCASE_A_GRAVE */ / 1205 160, /* LOWERCASE_A_ACUTE */ 4 1206 131, /* LOWERCASE_A_CIRCUMFLEX */1 1207 198, /* LOWERCASE_A_TWIDDLE */ 0 1208 132, /* LOWERCASE_A_UMLAUT */. 1209 134, /* LOWERCASE_A_RING */4 1210 145, /* LOWERCASE_A_E_DIARESIS */1 1211 135, /* LOWERCASE_C_CEDILLA */ / 1212 138, /* LOWERCASE_E_GRAVE *// 1213 130, /* LOWERCASE_E_ACUTE */,4 1214 136, /* LOWERCASE_E_CIRCUMFLEX */0 1215 137, /* LOWERCASE_E_UMLAUT *// 1216 141, /* LOWERCASE_I_GRAVE */*/ 1217 161, /* LOWERCASE_I_ACUTE */* TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 19*{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) 4 1218 140, /* LOWERCASE_I_CIRCUMFLEX */0 1219 139, /* LOWERCASE_I_UMLAUT */1 1220 164, /* LOWERCASE_N_TWIDDLE */ / 1221 149, /* LOWERCASE_O_GRAVE */,/ 1222 162, /* LOWERCASE_O_ACUTE */,4 1223 147, /* LOWERCASE_O_CIRCUMFLEX */1 1224 228, /* LOWERCASE_O_TWIDDLE */ 0 1225 148, /* LOWERCASE_O_UMLAUT */4 1226 148, /* LOWERCASE_O_E_DIARESIS *// 1227 157, /* LOWERCASE_O_SLASH */O/ 1228 151, /* LOWERCASE_U_GRAVE */ / 1229 163, /* LOWERCASE_U_ACUTE */N4 1230 150, /* LOWERCASE_U_CIRCUMFLEX */0 1231 129, /* LOWERCASE_U_UMLAUT */0 1232 152, /* LOWERCASE_Y_UMLAUT */$ 1233 'P', /* PESETA */$ 1234 159, /* FLORIN *// 1235 '-', /* BEGINNING_OF_LINE */ ) 1236 170, /* END_OF_LINE */ & 1237 '=', /* IDENTITY */3 1238 '>', /* GREATER_THAN_OR_EQUAL */L0 1239 '<', /* LESS_THAN_OR_EQUAL */$ 1240 246, /* DIVIDE */1 1241 '~', /* APPROXIMATELY_EQUAL */ * 1242 250, /* SOLID_DEGREE */) 1243 'V', /* SQUARE_ROOT */ ' 1244 'n', /* NTH_POWER */L# 1245 254, /* BLOCK */N- 1246 'L', /* UPPERCASE_L_DOT */ - 1247 'l', /* LOWERCASE_L_DOT */ ( 1248 'l', /* SCRIPTED_L *// 1249 'n', /* LOWERCASE_N_QUOTE */& 1250 158, /* MULTIPLY */3 1251 169, /* REGISTERED_TRADE_MARK */ + 1252 208, /* LOWERCASE_ETH */ + 1253 209, /* UPPERCASE_ETH *//' 1254 213, /* DOTLESS_I */ - 1255 231, /* LOWERCASE_THORN */ - 1256 232, /* UPPERCASE_THORN */1/ 1257 236, /* LOWERCASE_Y_ACUTE */ / 1258 237, /* UPPERCASE_Y_ACUTE */ $ 1259 238, /* MACRON */# 1260 239, /* ACUTE *//' 1261 240, /* UNDERLINE */V. 1262 242, /* DOUBLE_UNDERLINE */, 1263 243, /* THREE_QUARTERS *// 1264 249, /* DOUBLE_MIDDLE_DOT */  1265 / 1266 END_TO_TABLE /* terminator *// 1267 }; 1268  1269 /*[ 1270 * Note: in the following table, characters in the IBM extended character set U 1271 * (>= 128) have been avoided where possible, as they cause some Canon Y 1272 * models to output spurious formfeeds at the end of the job. Where there Z 1273 * is no character in the other Canon sets, the IBM character has been used/ 1274 * and marked with a !! comment.  TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 201{V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)RU 1275 * It is possible that some of these characters might work OK using theCB 1276 * Norwegian/Danish IBM set; I haven't tested this. 1277 */_# 1278 TO_TABLE to_canon = {1# 1279 32, /* BLANK */ D 1280 "\033(Z[\033(B", /* UPSIDE_DOWN_EXCLAMATION_MARK */1 1281 "\033(&$2`\033(B", /* US_CENT */ 0 1282 "\033(A#\033(B", /* UK_POUND */, 1283 "\033(J\\\033(B", /* YEN */4 1284 "\033(R]\033(B", /* SECTION_SIGN */$ 1285 '*', /* BULLET */' 1286 'c', /* COPYRIGHT */ . 1287 'a', /* FEMININE_ORDINAL */3 1288 '<', /* LEFT_DOUBLE_GUILLEMET */E. 1289 "\033(R[\033(B", /* DEGREE */5 1290 "\033(&$2\\\033(B", /* PLUS_MINUS */11 1291 "\033(&$2<\033(B", /* SQUARED */ / 1292 "\033(&$2>\033(B", /* CUBED */,& 1293 230, /*!!*/ /* MU */+ 1294 20, /* PARAGRAPH_SIGN */O. 1295 249, /*!!*/ /* MIDDLE_DOT */' 1296 '1', /* POWER_ONE */O/ 1297 'o', /* MASCULINE_ORDINAL */ 4 1298 '>', /* RIGHT_DOUBLE_GUILLEMET */2 1299 "\033(\"$1<\033(B", /* QUARTER *// 1300 "\033(\"$1>\033(B", /* HALF */RA 1301 "\033(Z]\033(B", /* UPSIDE_DOWN_QUESTION_MARK */ / 1302 'A', /* UPPERCASE_A_GRAVE */ / 1303 'A', /* UPPERCASE_A_ACUTE */ 4 1304 'A', /* UPPERCASE_A_CIRCUMFLEX */7 1305 170, /*!!*/ /* UPPERCASE_A_TWIDDLE */ : 1306 "\033(K[\033(B", /* UPPERCASE_A_UMLAUT */8 1307 "\033(C]\033(B", /* UPPERCASE_A_RING */> 1308 "\033(E[\033(B", /* UPPERCASE_A_E_DIARESIS */7 1309 128, /*!!*/ /* UPPERCASE_C_CEDILLA */L/ 1310 'E', /* UPPERCASE_E_GRAVE */ 9 1311 "\033(C@\033(B", /* UPPERCASE_E_ACUTE */14 1312 'E', /* UPPERCASE_E_CIRCUMFLEX */0 1313 'E', /* UPPERCASE_E_UMLAUT *// 1314 'I', /* UPPERCASE_I_GRAVE */T/ 1315 'I', /* UPPERCASE_I_ACUTE */ 4 1316 'I', /* UPPERCASE_I_CIRCUMFLEX */0 1317 'I', /* UPPERCASE_I_UMLAUT */< 1318 "\033(Z\\\033(B", /* UPPERCASE_N_TWIDDLE *// 1319 'O', /* UPPERCASE_O_GRAVE *// 1320 'O', /* UPPERCASE_O_ACUTE */ 4 1321 'O', /* UPPERCASE_O_CIRCUMFLEX */7 1322 167, /*!!*/ /* UPPERCASE_O_TWIDDLE */R; 1323 "\033(K\\\033(B", /* UPPERCASE_O_UMLAUT */*4 1324 'O', /* UPPERCASE_O_E_DIARESIS */: 1325 "\033(E\\\033(B", /* UPPERCASE_O_SLASH *// 1326 'U', /* UPPERCASE_U_GRAVE */ / 1327 'U', /* UPPERCASE_U_ACUTE */ 4 1328 'U', /* UPPERCASE_U_CIRCUMFLEX */: 1329 "\033(K]\033(B", /* UPPERCASE_U_UMLAUT */0 1330 'Y', /* UPPERCASE_Y_UMLAUT */7 1331 "\033(K~\033(B", /* GERMAN_DOUBLE_S */A ATABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 21 {V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1)E9 1332 "\033(R@\033(B", /* LOWERCASE_A_GRAVE */5 1333 160, /*!!*/ /* LOWERCASE_A_ACUTE */ 4 1334 'a', /* LOWERCASE_A_CIRCUMFLEX */7 1335 169, /*!!*/ /* LOWERCASE_A_TWIDDLE */ : 1336 "\033(K{\033(B", /* LOWERCASE_A_UMLAUT */8 1337 "\033(C}\033(B", /* LOWERCASE_A_RING */> 1338 "\033(E{\033(B", /* LOWERCASE_A_E_DIARESIS */< 1339 "\033(R\\\033(B", /* LOWERCASE_C_CEDILLA */9 1340 "\033(R}\033(B", /* LOWERCASE_E_GRAVE */ 9 1341 "\033(R{\033(B", /* LOWERCASE_E_ACUTE */ : 1342 136, /*!!*/ /* LOWERCASE_E_CIRCUMFLEX */6 1343 137, /*!!*/ /* LOWERCASE_E_UMLAUT */9 1344 "\033(Y~\033(B", /* LOWERCASE_I_GRAVE */R5 1345 161, /*!!*/ /* LOWERCASE_I_ACUTE */U: 1346 140, /*!!*/ /* LOWERCASE_I_CIRCUMFLEX */6 1347 139, /*!!*/ /* LOWERCASE_I_UMLAUT */; 1348 "\033(Z|\033(B", /* LOWERCASE_N_TWIDDLE */ 9 1349 "\033(Y|\033(B", /* LOWERCASE_O_GRAVE */A5 1350 162, /*!!*/ /* LOWERCASE_O_ACUTE */E: 1351 147, /*!!*/ /* LOWERCASE_O_CIRCUMFLEX */7 1352 166, /*!!*/ /* LOWERCASE_O_TWIDDLE */1: 1353 "\033(K|\033(B", /* LOWERCASE_O_UMLAUT */4 1354 'o', /* LOWERCASE_O_E_DIARESIS */9 1355 "\033(E|\033(B", /* LOWERCASE_O_SLASH */ 9 1356 "\033(R|\033(B", /* LOWERCASE_U_GRAVE */R5 1357 163, /*!!*/ /* LOWERCASE_U_ACUTE */A4 1358 'u', /* LOWERCASE_U_CIRCUMFLEX */: 1359 "\033(K}\033(B", /* LOWERCASE_U_UMLAUT */6 1360 152, /*!!*/ /* LOWERCASE_Y_UMLAUT */$ 1361 'P', /* PESETA */1 1362 "\033(\"#2[\033(B", /* FLORIN */ / 1363 '-', /* BEGINNING_OF_LINE */ ) 1364 '-', /* END_OF_LINE */T, 1365 240, /*!!*/ /* IDENTITY */9 1366 242, /*!!*/ /* GREATER_THAN_OR_EQUAL */ 6 1367 243, /*!!*/ /* LESS_THAN_OR_EQUAL */* 1368 246, /*!!*/ /* DIVIDE */7 1369 247, /*!!*/ /* APPROXIMATELY_EQUAL */W0 1370 249, /*!!*/ /* SOLID_DEGREE *// 1371 251, /*!!*/ /* SQUARE_ROOT */*- 1372 252, /*!!*/ /* NTH_POWER */ ) 1373 254, /*!!*/ /* BLOCK */ 3 1374 158, /*!!*/ /* UPPERCASE_L_DOT */ 3 1375 159, /*!!*/ /* LOWERCASE_L_DOT */,. 1376 171, /*!!*/ /* SCRIPTED_L */5 1377 172, /*!!*/ /* LOWERCASE_N_QUOTE */ & 1378 'x', /* MULTIPLY */3 1379 't', /* REGISTERED_TRADE_MARK */ + 1380 'd', /* LOWERCASE_ETH */ + 1381 'D', /* UPPERCASE_ETH */5' 1382 'i', /* DOTLESS_I */ - 1383 'p', /* LOWERCASE_THORN */,- 1384 'P', /* UPPERCASE_THORN */ / 1385 'y', /* LOWERCASE_Y_ACUTE */R/ 1386 'Y', /* UPPERCASE_Y_ACUTE */S$ 1387 ',', /* MACRON */$ 1388 '\'', /* ACUTE */ TABLES 27-MAY-1991 17:18:01 VAX C V3.1-051 Page 22 {V1.0 27-MAY-1991 17:17:55 NICKD:[SRC.TRANSLATE]TABLES.C;2 (1) ' 1389 '_', /* UNDERLINE */ . 1390 '_', /* DOUBLE_UNDERLINE */, 1391 '/', /* THREE_QUARTERS *// 1392 ':', /* DOUBLE_MIDDLE_DOT */  1393 / 1394 END_TO_TABLE /* terminator */A 1395 };  Command Line ------------ 1 CC/LIS TABLES1 /* DOTLESS_I */ - 1255 231, /* LOWERCASE_THORN */ - 1256 232, /* UPPERCASE_THORN */1/ 1257 236, /* LOWERCASE_Y_ACUTE */ / 1258 237, /* UPPERCASE_Y_ACUTE */ $ 1259 238, /* MACRON */# 1260 239, /* ACUTE *//' 1261 240,*[SRC.TRANSLATE]TABLES.OBJ;1+,*. / 4  -e0123KPWO 56{:ϓ7 jFϓ89GHJ 3TABLESV1.027-MAY-1991 17:18VAX C V3.1-051PPP P PPP !"#$%&DP'()*+,-./0123|P456789:;<=>?@ABCDPEFGHIJKLMNOPQPP Pf--=></~Vn*LllnxRdDipPyY-'__% PP>795:<?@=DCA ;HJFOMQ,2RS6BGNE'TU  P4 P. PV WX PYZ [\] ^ P P S*c31AAAAEEEIIIIOOOOUUUYaoLllnxRdDipPyY-'__% PP>795:<?@=DCA ;HJFOMQ,2L._`6BGNE'I+8ab  P4 PV WX PYZ [\] ^ P P cYSca1o%%AAAAEEEIIIIOOOOUUUYaoPf--xRdDipPyY-'__% PP>795:<?@=DCA ;HJFOMQ,2L.cS6BGNE'dU  P P P8 <Pef!"g$%& xP# P)4*(I+hi01/jklmn opY P q ^ PP YP-=><~VnLllnP P(Z[(BPP(&$2`(BPP(A#(B PP(J\(BP"P(R](BP"*ca<*P(R[(B(P*2P(&$2\(B,P2(B4PF1o>PP("$1<(BPPPZP("$1>(BTPZdP(Z](BXPdAAAlP(K[(BlPltP(C](BpPt|P(E[(BtP|EP(C@(BPEEIIIIP(Z\(BPOOOP(K\(BPOP(E\(BPUUUP(K](BPYP(K~(BPP(R@(BPaP(K{(BPP(C}(BPP(E{(BPP(R\(BPP(R}(BPP(R{(BPP(Y~(BR TABLESN$CODE$DATAINFILEOUTFILE FROM_CHARSET TO_CHARSET OUTPUT_FORMATFROM_MCSTO_MCSFROM_DOS_ASCII TO_DOS_ASCII FROM_NORDIC TO_NORDICFROM_MULTILINGUALTO_MULTILINGUALTO_CANON.$CHAR_STRING_CONSTANTS`PP(Z|(BPP(Y|(BPP(K|(B(Po P(E|(B0P P(R|(B4PuP(K}(B@PP$P("#2[(BLP$--xtdDipPyY,'__/:P*[SRC.TRANSLATE]TRANSLATE.C;1+,|. / 4I  -e0123KPWO56nVb7@,NZb89`eБGHJ/*= * TRANSLATE.C - convert file between RMS sequential formats,+ * and translate ASCII codes.6 * Copyright (C) Nick Brown 1991. All rights reserved. */#include errno#include stdio#include "translate.h"main (){ FILE *ip; FILE *op; unsigned int c; char *rfm; char *rat; unsigned int *from_table; unsigned int *to_table; get_args(); if (from_charset == CS_MCS) {* from_table = (unsigned int *)from_mcs; }* else if (from_charset == CS_DOS_ASCII) {0 from_table = (unsigned int *)from_dos_ascii; }' else if (from_charset == CS_NORDIC) {- from_table = (unsigned int *)from_nordic; }- else if (from_charset == CS_MULTILINGUAL) {3 from_table = (unsigned int *)from_multilingual; } else {* panic("Unknown source character set"); } if (to_charset == CS_MCS) {& to_table = (unsigned int *)to_mcs; }( else if (to_charset == CS_DOS_ASCII) {, to_table = (unsigned int *)to_dos_ascii; }% else if (to_charset == CS_NORDIC) {) to_table = (unsigned int *)to_nordic; }+ else if (to_charset == CS_MULTILINGUAL) {/ to_table = (unsigned int *)to_multilingual; }$ else if (to_charset == CS_CANON) {( to_table = (unsigned int *)to_canon; } else {* panic("Unknown target character set"); }/*+ * Check initialisation of selected tables. */6 if (from_table[FROM_TABLE_SIZE] != END_FROM_TABLE) {A panic("Source character set table not initialised properly"); }0 if (to_table[TO_TABLE_SIZE] != END_TO_TABLE) {A panic("Target character set table not initialised properly"); }/* * Open files. */* if ((ip = fopen(infile, "r")) == NULL) {> fprintf(stderr, "Unable to open input file %s\n", infile); exit(vaxc$errno); }" if (output_format == OF_MSDOS) { rfm = "rfm=stm"; rat = "rat=cr"; }1 else if (output_format == OF_VARIABLE_LENGTH) { rfm = "rfm=var"; rat = "rat=cr"; } else {# panic("Unknown output format"); }5 if ((op = fopen(outfile, "w", rfm, rat)) == NULL) {@ fprintf(stderr, "Unable to open output file %s\n", outfile); exit(vaxc$errno); }" while ((c = fgetc(ip)) != EOF) { unsigned int translation;: translation = translate_char(c, from_table, to_table); if (translation < 256) { fputc(translation, op); } else {% fputs((char *)translation, op); } } if (errno) { exit(vaxc$errno); } fclose(op); fclose(ip);}/*F * Function to convert character to equivalent in other character set. */staticItranslate_char (unsigned int c, unsigned int *from_t, unsigned int *to_t){ if (c > 255) {$ panic("Character out of range"); } if (c < 128) { return c; } return to_t[from_t[c - 128]];}/*H * Function to handle unexpected events (that indicate internal errors). */voidpanic (char *s){$ fprintf(stderr, "panic: %s\n", s); exit(4);}*[SRC.TRANSLATE]TRANSLATE.CLD;1+,y./ 49-e0123KPWO56@GSb7BNZb89`eБGHJDEFINE VERB TRANSLATE IMAGE "TRANSLATE" PARAMETER P1# PROMPT="Input file", VALUE (TYPE=$FILE, REQUIRED) PARAMETER P2$ PROMPT="Output file", VALUE (TYPE=$FILE, REQUIRED) QUALIFIER FROM_CHARSET, DEFAULT NONNEGATABLE8 VALUE (TYPE=FROM_CHARSET_TYPE, REQUIRED) QUALIFIER TO_CHARSET, DEFAULT NONNEGATABLE6 VALUE (TYPE=TO_CHARSET_TYPE, REQUIRED) QUALIFIER OUTPUT_FORMAT9 VALUE (TYPE=OUTPUT_FORMAT_TYPE, REQUIRED) NONNEGATABLEDEFINE TYPE OUTPUT_FORMAT_TYPE KEYWORD MSDOS KEYWORD VARIABLE_LENGTHDEFINE TYPE FROM_CHARSET_TYPE KEYWORD MCS, DEFAULT KEYWORD DOS_ASCII KEYWORD NORDIC KEYWORD MULTILINGUALDEFINE TYPE TO_CHARSET_TYPE KEYWORD MCS, DEFAULT KEYWORD DOS_ASCII KEYWORD NORDIC KEYWORD MULTILINGUAL KEYWORD CANON*[SRC.TRANSLATE]TRANSLATE.EXE;1+,)./ 4-e0123 KPWO56d˓71r ˓89GHJ0DX0205(,$h TRANSLATEV1.0 ,˓05-05    ? ! VAXCRTL_001! LIBRTL_001! MTHRTL_001Unknown source character setUnknown target character setSource character set table not initialised properlyTarget character set table not initialised properlyrUnable to open input file %s rfm=stmrat=crrfm=varrat=crUnknown output formatwUnable to open output file %s Character out of rangepanic: %s P1get_args: problem with P1P2get_args: problem with P2FROM_CHARSETget_args: problem with /FROM_CHARSETTO_CHARSETget_args: problem with /TO_CHARSETget_args: invalid /TO_CHARSET valueOUTPUT_FORMATkeyword_number: bad keyword valueMSDOSVARIABLE_LENGTHMCS DOS_ASCIINORDAN MULTILINGUALp0PP>795:<?@=DCA ;HJFOMQ,2RS6BGNE'TU 4.V WXYZ [\] ^  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQP>795:<?@=DCA ;HJFOMQ,2L.cS6BGNE'dU 8ef!"g$%&#)4*(I+hi01/jklmn opY q ^P>795:<?@=DCA ;HJFOMQ,2L._`6BGNE'I+8ab 4V WXYZ [\] ^ S*c31AAAAEEEIIIIOOOOUUUYaoLllnxRdDipPyY-'__% Pf--=></~Vn*LllnxRdDipPyY-'__% YP-=><~VnLlln cYSca1o%%AAAAEEEIIIIOOOOUUUYaoPf--xRdDipPyY-'__%'~ TRANSLATE.BCK)e[SRC.TRANSLATE]TRANSLATE.EXE;1 ^@ So Y#RR [VPR [BPR [.PR [Pc.i  RR ZXPR ZCPR Z/PR ZPߣ.ih O ߣ:.iD + ߣn.i  â PX äi    UT6UTP.i  TUxq PV fie H XK PWW\\mVWR[UZTR.i  RRPR\Le\LdPP X PWW\\   V X P ^=RѬ. } d ѬЬPP޼Q@aP Q@P ^Rݬ.W (  <^RUTb0ЮݮPЮ0P?P2\L0P\\ ߢ.ޢ_,ЮݮPЮ,P?P2\L,P\\ ߢ ޢ:(ͷ͹ͺͻͿЮͻݮPͷЮ(PͿ?Ϳͷ~P2\L(P\\ ߢG<ޮ A program to translate files between various character sets.I The intention is to translate each character into one which will appearJ more or less identical on a screen or printer. Characters which are notL exactly available in the target character set will be translated to a near" equivalent, or output as spaces. Format:* $ TRANSLATE infile outfile [/qualifiers]2 More_about_TRANSLATEK You should have received the C source of TRANSLATE. If you have access toI VAX C, you are encouraged to review the program and compile it yourselfH before using it, not because I think that the software is so wonderfulK that you must read it, but because this is a good way to protect yourself) against some of the bad guys out there.J TRANSLATE requires no privileges to run (obviously, NETMBX is needed for: remote operations). Do not install it with privileges !@ If you have any questions, comments, or bugs to report, please contact: Nick Brown Council of Europe BP 431 R6 67006 Strasbourg FranceD Naturally, since this is free software, I accept no responsibilityG for any loss or damage to any data. Nor do I offer any warranty thatF this software works as described under any particular circumstances.) In other words, no price, no guarantee. 2 ParametersInfileH The file to be translated. Wildcards are not supported; you will have< to write a small DCL loop with F$SEARCH() to handle these.OutfileJ The name of the output file to be created. There is no clever RMS-styleL substitution of missing components by the equivalents from the input file;: just the standard C run-time system way of doing things. 2 Qualifiers /FROM_CHARSET& /FROM_CHARSET=charset (default = MCS)D Specifies the input file's character set. Possible values are MCSG (Digital Multinational Character Set), DOS ASCII (DOS code page 437),B MULTILINGUAL (DOS code page 850), or NORDIC (DOS code page 865)./OUTPUT_FORMAT /OUTPUT_FORMAT=filetypeE Specifies the organisation of the output file. Possible values areK VARIABLE_LENGTH and MSDOS. VARIABLE_LENGTH is a "standard" VMS text fileH as created by EDT. MSDOS is a STREAM record format / CARRIAGE_CONTROL: record attribute file, as created by PCSA file services.E The default is VARIABLE_LENGTH if /TO_CHARSET is MCS, and MSDOS for any other /TO_CHARSET value. /TO_CHARSET$ /TO_CHARSET=charset (default = MCS)H Specifies the output file's character set. Possible values are any of2 the possibilities for /FROM_CHARSET, plus CANON.L CANON is a multi-character translation which allows the file to be printedL on a Canon LBP8II series laser printer, avoiding where possible use of IBML (8-bit) characters (which provoke spurious form feeds on some LBP models).*[SRC.TRANSLATE]TRANSLATE.OBJ;1+,0%./ 4* -e0123KPWO56 WXb7 OZb89`eБGHJ 6 TRANSLATEV1.025-MAR-1991 18:34VAX C V3.1-051PUnknown source character setPUnknown target character set:PSource character set table not initialised properlynPTarget character set table not initialised properlyPrPUnable to open input file %s Prfm=stmPrat=crPrfm=varPrat=crPUnknown output formatPwPUnable to open output file %s PCharacter out of range.Ppanic: %s P^C$MAINSZGET_ARGS RR  TUR TAR T-R Tc.jFPRINTFEXIT RR  [lPR [WPR [CPR [/PR [Pߣ.jFPRINTFEXITЮTRߣ:.jFPRINTFEXITߣn.jFPRINTFEXITâFOPENPY äjFPRINTFEXIT  UT6 ޏUTP.jFPRINTFEXITTUFOPENPV jFPRINTFR TRANSLATE maintranslate_char` Xpanic* }PANICPANICGET_ARGSFPUTCFPRINTFFPUTSFGETCFCLOSEFOPENEXITEXIT MAIN XPANICC$MAIN$CODE$DATAERRNO VAXC$ERRNOSTDINSTDOUTSTDERRINFILEOUTFILE FROM_CHARSET TO_CHARSET OUTPUT_FORMATFROM_MCSTO_MCSFROM_DOS_ASCII TO_DOS_ASCII FROM_NORDIC TO_NORDICFROM_MULTILINGUALITO_MULTILINGUALTO_CANON9$CHAR_STRING_CONSTANTSEXITYFGETCPXX\\1XRЮTU[TR.jFPRINTFEXITRRPR\Le\LdPPWWVWFPUTCPVWFPUTSYFGETCPXX\\1r EXITVFCLOSEYFCLOSE2P ^RѬ.FPRINTFEXITѬЬPP޼Q@aP Q@P ^Rݬ.FPRINTFEXIT*[SRC.TRANSLATE]TRANSLATE.OPT;1+,v./ 4V-e0123KPWO56 0^7VRb89`eБGHJ! LINK /NOTRACE TRANSLATE /OPT translateargstablessys$library:vaxcrtl/share: