La Página de DriverOp

Turbo Pascal - Preguntas Frecuentes Respondidas.

  1. ¿Cómo creo un ejecutable .exe en Turbo Pascal? Respuesta.
  2. ¿De qué año es el compilador Turbo Pascal 7.0? Respuesta.
  3. ¿Para qué sistema operativo es el Turbo Pascal? Respuesta.
  4. ¿Dónde puedo encontrar el Turbo Pascal para Windows XP? Respuesta.
  5. ¿Por qué me sale el "error 200: division by zero" si yo no hago ninguna división en mi programa? Respuesta.
  6. ¿Dónde puedo descargar el Turbo Pascal en español o castellano? Respuesta.
  7. ¿Existe una versión de Turbo Pascal para Windows? Respuesta.
  8. ¿Cómo uso o le cambio los colores en Turbo Pascal? Respuesta.
  9. ¿Cómo muestro bien un real?, cuando trato de hacerlo me sale algo como "1.2334539500E+02". Respuesta.
  10. ¿Cómo incluyo dentro mi ejecutable los drivers para gráficos .BGI?. Respuesta.
  11. ¿Por qué el IDE de Turbo Pascal responde lento a las pulsaciones de teclas cuando estoy escribiendo mi código?. Respuesta.
  12. Mi teclado no está bien configurado, aparecen las teclas incorrectas cuando estoy en el IDE y uso Windows XP. Respuesta.

1.- ¿Cómo creo un ejecutable .exe en Turbo Pascal?

Si quieres que el IDE de Turbo Pascal cree el archivo ejecutable correspondiente al código fuente que estás haciendo debes...

Ir al menú "Compile" y cambiar la opción "Destination" de "Memory" a "Disk", luego compilar el programa con F9 o ALT+F9. El .exe resultante quedará en el directorio especificado en "Options" -> "Directories..." -> "EXE & TPU directory". Si está vacío, el .exe quedará en el mismo lugar donde está el código fuente.

Cada vez que compilas un programa el IDE te muestra un cuadro con el estado de la compilación, si observas ese cuadro verás que una de las cosas que te informa es "Destination", si dice "Disk" entonces está creando el .exe.

2.- ¿De qué año es el compilador Turbo Pascal 7.0?.

Hay dos versiones "7.0" de Turbo Pascal. La 7.0 en sí se llama "Turbo Pascal 7.0" y salió el 3 de noviembre de 1992. Al año siguiente apareció el "Borland Pascal 7.0" también llamado "Turbo Pascal 7.01" el cual es idéntico al anterior salvo que se habían corregido algunos errores del IDE y se arreglaron algunos bugs en la biblioteca Turbo Vision. Esta versión se puede distinguir porque sus archivos tienen la hora 07:01 en vez de 07:00 en la fecha de creación. Estas versiones "7.0" son las últimas desarrolladas hasta la fecha.

3.- ¿Para qué sistema operativo es el Turbo Pascal?.

La línea de compiladores Turbo Pascal de Borland crea ejecutables para el sistema operativo DOS (MS-DOS/DR-DOS). A partir de la versión 5.5 también es capaz de usar la API de Windows 3.0/3.1 de 16 bits (que es anterior a Windows 95).

4.- ¿Dónde puedo encontrar el Turbo Pascal para Windows XP?.

No existe tal compilador, lee las dos preguntas anteriores.

5.- ¿Por qué me sale el "error 200: division by zero" si yo no hago ninguna división en mi programa?.

Independientemente de si tengas o no una operación de división en tu programa, para que aparezca este error es suficiente que hayas incluido la biblioteca estandar CRT como parte de la cláusula USES en tu programa. El error está en esa biblioteca y no tiene nada que ver con lo que hayas escrito tú.

El problema con el RTL200 aparece con procesadores de más 166 MHZ si son Pentiums, o más de 200 MHZ si son Pentium MMX (y los AMD de esas o mayor velocidad también). Hoy en día esas máquinas están bastante obsoletas por lo que casi cualquier máquina actual experimentará el error mencionado.

El RTL200 aparece cuando se declara la unidad estandar CRT ("uses crt;"), concretamente el problema está en la implementación del procedimiento Delay() dentro de esa unidad. El error de división por cero se debe a que cuando se inicializa la unidad CRT debe calcular a cuántos ciclos de CPU equivale una centécima de segundos, para ello se pone un contador a contar los ciclos, usualmente en CPUs "lentos" la cantidad de ciclos por segundos no alcanzan a un valor muy grande como para desbordar un integer pero en los CPUs rápidos sí se produce un overflow, la variable correspondiente toma valor cero (por el overflow) y luego es usada en una división, es allí donde salta el error RTL200.

Borland nunca ha publicado un parche oficial para este problema pero programadores independientes han propuesto diferentes soluciones, una de ellas es el parche que ofrezco en mi página aquí.

6.- ¿Dónde puedo descargar el Turbo Pascal en español o castellano?.

Oficialmente no existe una versión del IDE o compilador en español. Borland nunca hizo tal traducción (ni siquiera con Delphi). La ayuda en español (traducción no oficial) la puedes descargar aquí.

7.- ¿Existe una versión de Turbo Pascal para Windows?.

Sí, existe, pero no es lo que piensas que podría ser.

En el año 1992, exactamente el 8 de Junio de ese año Borland editó un compilador llamado Turbo Pascal for Windows 1.5.. que servía para crear programas para Windows con interfaz gráfica, pero para la versión de Windows de ese momento, es decir la 3.0/3.1 que es de 16 bits y es anterior a Windows 95. Este compilador no tuvo el éxito esperado debido a que no tenía un diseñador de formulario tal como lo tenía Visual Basic en ese momento y fue rápidamente abandonado en favor del desarrollo de Delphi. La programación de aplicaciones Windows visuales y conducida por eventos según el paradiga orientado a objeto era tediosa y no resultaba en aplicaciones muy estables que digamos (te lo digo por experiencia...).

8.- ¿Cómo uso o le cambio los colores en Turbo Pascal?.

En modo texto se usan dos procedimientos. Textcolor(color); cambia el color de las letras, donde color es un número de tipo byte que puede valer de 0 a 15 inclusive, los valores del 0 al 7 cambian a un tono obscuro, mientras que del 8 al 15 hacen un tono más claro. Textbackground(color); cambia el color del fondo de las letras, puede ser un valor entre 0 y 7. Para poder usar estos procedimientos debes declarar la unidad CRT ("uses crt;").

Además existe una variable predefinida TextAttr que es de tipo byte y contiene los atributos de color actualmente en uso. Con ella puedes "recordar" qué combinación de colores había antes de hacer un cambio y luego restaurarlo. Un ejemplo típico sería:

uses crt;
var
  ColorAnterior: byte;
begin
  ColorAnterior:=TextAttr;
  WriteLn('Esto se escribe en color normal.');
  ReadKey;
  Textcolor(9);
  WriteLn('Esto se escribe en color azul claro');
  ReadKey;
  TextAttr:=ColorAnterior;
  WriteLn('De regreso a color normal.');
  ReadKey;
end.

9.- ¿Cómo muestro bien un real?, cuando trato de hacerlo me sale algo como "1.2334539500E+02".

Por omisión Turbo Pascal muestra los tipos de datos reales en notación científica. Para mostrarlo en notación "normal" hay que indicar el formato siguiendo la sintaxis:

  WriteLn(tipo_real:parte-entera:parte-fraccionaria);

Donde tipo_real es una variable o expresión real, parte-entera es un número entero positivo y parte-fraccionaria también. Parte-entera indica cuántas cifras de la parte entera (a la izquierda de la coma) del número real se mostrarán, mientras que parte-fraccionaria (a la derecha de la coma, mal llamada "decimales") indica cuántas cifras de la parte fraccionaria se mostrarán. Si el número excede en su parte entera la cantidad indicada por parte-entera el número no se truncará, mientras que si la cantidad de cifras en la parte fraccionaria excede parte-fraccionaria se redondeará a la cifra más cercana. Ejemplo:

  a:=123.345395;WriteLn(a:2:4);

En este ejemplo indicamos que a debe ser mostrada con por lo menos 2 cifras en la parte entera y hasta cuatro cifras en la parte fraccionaria, como la parte fraccionaria excede las cuatro cifras, la cuarta cifra se redondea, dando como resultado:

  123.3454

El separador de decimales es siempre el punto (notación anglosajona).

10.- ¿Cómo incluyo dentro mi ejecutable los drivers para gráficos .BGI?.

Sí, se puede hacer. El proceso requiere varios pasos y contar con algunas herramientas incluidas en el paquete de instalación estandar de Turbo Pascal. He escrito un minitutorial para responder esta pregunta aquí.

11.- ¿Por qué el IDE de Turbo Pascal responde lento a las pulsaciones de teclas cuando estoy escribiendo mi código?.

Borra el archivo "turbo.pif" que está en el directorio "bin" dentro de la instalación de Turbo Pascal. Eso solucionará el problema.

12.- Mi teclado no está bien configurado, aparecen las teclas incorrectas cuando estoy en el IDE y uso Windows XP.

En los viejos tiempos, cuando lo único que había era DOS (lo que ahora se conoce como la consola de Windows) y había que hacer todo con comandos, existía un comando para cada cosa. Una de esas cosas era configurar la distribución de teclas del teclado. Esto es, hacer que el sistema operativo reconociera correctamente la distribución de las teclas del teclado. Para ello usábamos el comando MODE. En aquellos tiempos había un archivo especial llamado AUTOEXEC.BAT que se ejecutaba automáticamente al arrancar la computadora y servía para ejecutar comandos que quisiéramos al inicio, entre ellos el comando MODE.

AUTOEXEC.BAT siguió existiendo hasta Windows 98. Pero en los Windows de la familia NT (NT4, 2000, XP, Vista, etc...) ese archivo no existe puesto que no se ejecutan sobre DOS, el archivo que lo reemplaza es el archivo AUTOEXEC.NT que suele estar en windows/system32. Se ejecuta cada vez que se abre una ventana de consola (con el comando cmd en Inicio->Ejecutar) o cada vez que se ejecuta un programa hecho para DOS, como lo es Turbo Pascal.

El comando MODE en DOS sirve para configurar dispositivos de entrada/salida. Mouse, teclado, pantalla, puertos COM y LPT. El problema ocurre que a veces Windows no está configurado para usar la misma distribución de teclado en modo gráfico que en modo de consola, entonces hay que forzar a que use una distribución de teclado específica, allí entra el comando MODE.

La siguiente sintaxis del comando MODE establecerá la distribución de teclado LATIN I que incluye teclados en español y latinoamericanos.

MODE CON CP SELECT=850

Ese "850" se refiere a la tabla de códigos interna del sistema operativo, aquí hay una lista de otras distribuciones:

Valor Región/País
437 Estados Unidos
850 Multilenguaje - Latino I
852 Eslavo - Latino II
855 Cirílico
857 Turco
860 Portugués
861 Islandés
863 Franco canadiense
865 Nórdico
866 Ruso
869 Griego moderno

Para probar esto en el IDE de Turbo Pascal elije el menú "File", luego "DOS Shell". En el prompt escribe el comando indicado más arriba. Luego "exit" para regresar el IDE y prueba si funciona la distribución indicada. Si funciona puedes editar el archivo AUTOEXEC.NT, que no es más que un archivo de texto, usando el Bloc de Notas (nada de Word, ¿ok?) y agregar al final del archivo ese comando.

¿No encuentras respuesta a tu pregunta?. Escríbeme.

Por Diego Romero,