src/Tools/8bit/c-sources/isa2latex/conv-translate.c
author wenzelm
Tue, 24 Aug 1999 11:50:58 +0200
changeset 7333 6cb15c6f1d9f
parent 1826 2a2c0dbeb4ac
permissions -rw-r--r--
isar: no_pos flag;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     1
/*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     2
 * translation functions
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     3
 * table ranges are checked
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     4
 */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     5
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     6
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     7
#include <stdio.h>
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     8
#include "conv-defs.h"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     9
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    10
extern char *translationTableLow[END_LOW_TABLE - START_LOW_TABLE + 1];
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    11
extern char *translationTableHi[END_HI_TABLE - START_HI_TABLE + 1][2];
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    12
extern char *translationTableSeq[SEQ_TABLE][2];
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    13
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    14
char *translateLow(int ch) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    15
  if ((ch >= START_LOW_TABLE) && (ch <= END_LOW_TABLE))
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    16
    return (translationTableLow[ch - START_LOW_TABLE]);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    17
  else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    18
    fprintf(stderr, "Error in translateLow!\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    19
	exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    20
  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    21
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    22
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    23
char *translateHi(int ch, int code) { 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    24
  /*(256 + ch) is used to convert from character to unsigned short */ 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    25
  if (((256 + ch) >= START_HI_TABLE) && ((256 + ch) <= END_HI_TABLE))
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    26
    return (translationTableHi[(256 + ch) - START_HI_TABLE][code]);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    27
  else {   
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    28
    fprintf(stderr, "Sorry, the file contains a high-bit character which\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    29
    fprintf(stderr, "is not in the translation table!\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    30
    exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    31
  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    32
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    33
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    34
char *translateLong(int ch, int code) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    35
  if ((ch < SEQ_TABLE))
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    36
    return (translationTableSeq[ch][code]);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    37
  else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    38
    fprintf(stderr, "Error in translateLong!\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    39
	exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    40
  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    41
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    42