<< Anterior
Siguiente >>
Índice

Caracteres internacionales

  SUBCHAR "<carácter>" "<cadena de sustitución>";

Problemática con los caracteres internacionales

El juego de caracteres ASCII que maneja el Spectrum tiene un "espectro visible" que sólo llega hasta el código 127 (algo más para los UDG). Todo lo que esté por encima de ese código en los modernos PC, no es representable en un Spectrum per sé. PAW utiliza estos códigos por encima del 127 para generar las abreviaturas.

Esto implica que si en tu aventura escribes alegremente un mensaje en tu editor de texto como "Estás en un camión añil", luego, al ejecutarla en el emulador te mostrará algo como "Est STOP s en un cami NOTn a\il" o incluso peor.

Para solventar este problema, lo que se hace en PAW es redefinir ciertos UDG o caracteres del juego de caracteres por defecto que no se utilicen (como el %, $ o la barra invertida) y que sí los muestra el Spectrum para representar esos extraños códigos internacionales. Una vez definidos estos códigos tendrías que indicarlos en el sitio del mensaje donde vayan a ser utilizados. En el ejemplo anterior, quedaría en tu editor algo como "Est{144}s en un cami{158}n a\nil".

Lo anterior permitiría mostrar caracteres en nuestro idoma en la aventurqa final, pero tiene el inconveniente de dificultar el proceso de creación de la misma, ya que nos obliga, a la hora de escribir los mensajes, a tener en cuenta todos estos caracteres especiales.

Para facilitar esta labor de conversión, y poder escribir los mensajes como lo harías en cualquier editor de texto, InPAWS te permite especificar para ciertos caracteres, por qué código o cadena debe sustituirlos antes de generar la aventura. Si por ejemplo has definido la "á" mediante el UDG 'A', correspondiente al código 144, simplemente indica al principio de tu aventura:

  SUBCHAR "á" "{144}";

Esto hace que antes de volcar los mensajes al .tap resultante de la compilación (de hecho antes de comprimir el texto), se haga una sustitución de todas las "á" por "{144}". A partir de ese momento si definimos un mensaje con el texto "Estás en un sitio muy bonito", InPAWS lo tratará como si hubieras tecleado "Est{144}s en un sitio muy bonito".

El carácter de sustitución sólo puede tener longitud 1, es decir, ser realmente un sólo carácter. En cambio la cadena de sustitución podrá tener la extensión que consideres, pero recuerda que debe cumplir las normas de codificación para el resto de cadenas "normales", ya que va a formar parte de varias de ellas.

Algunos ejemplos de sustitución de caracteres:

SUBCHAR "¿" "{146}";
SUBCHAR "á" "{144}";
SUBCHAR "é" "{148}";
SUBCHAR "í" "{152}";
SUBCHAR "ó" "{158}";
SUBCHAR "ú" "{159}";
SUBCHAR "¡" "{147}";
SUBCHAR "ñ" "{149}";
SUBCHAR "Ñ" "{150}";
SUBCHAR "ü" "{151}";
<< Anterior
Siguiente >>
Índice