jueves, 27 de agosto de 2015

Utilizando el emulador DosBox

DosBox es un emulador que recrea un entorno similar al sistema DOS con el objetivo de poder ejecutar programas y videojuegos originalmente escritos para el sistema operativo MS-DOS de Microsoft en ordenadores más modernos. (referencia  wikipedia: https://es.wikipedia.org/wiki/DOSBox)

Pagina oficial: http://www.dosbox.com/

Quizás el uso común que se le ha dado a este emulador es para poder ejecutar videojuegos, pero en mi caso lo he usado para instalar programas que se usaban años atrás.

Aquí dejo una pantallas de como ha quedado con Windows 3.11 y los programas que instale.






He instalado por supuesto el primer entorno de programación que conocí cuando comencé a programar, me refiero al Turbo C de Borland versión 2.01 (Lo admito en aquellos tiempos no instale nada, todo venia en un diskette que me dieron y listo)





Dejo un ejemplo de un programa que escribí, pues la tentación ha sido grande (Algunos programadores comprenderán esa sensación)

Código de un programa que invierte una cadena de caracteres que se escribe por teclado

/* Programa: Invierte cadena de caracteres
    Versión: 1.0
 */

 #include <stdio.h>
 #include <conio.h>

 char *inviertecadena(char *cadena);
 int largocadena(char *cadena);

 void main(void)
 {
   char cadena[60]; /* Para guardar el texto que se escriba */
   clrscr(); /* Borrado de pantalla */
   printf("\n\tEscribe un texto: ");
   gets(cadena); /* Guardamos el texto escrito */
   printf("\n\t***************************************************");
   printf("\n\tCadena original: %s", cadena);
   printf("\n\tCadena invertida: %s", inviertecadena(cadena));
   printf("\n\n\tPulsar cualquier tecla para continuar");
   getch(); /* Funcion que lee la tecla pulsada, se usa para la pausa */
 }

 /* Funcion que retorna una cadena invertida */

 char *inviertecadena(char *cadena)
 {
   char cadenainvertida[60] = "\0"; /* Para guardar la nueva cadena ya invertida */
   int longitud = largocadena(cadena); /* Obtenemos el largo de la cadena */
   int i = 0, j = longitud; /* Asignamos valores a los indices */
   for(i=0;i<longitud;i++) /* Un ciclo para recorrer la cadena */
   {
     j-= 1; /* El indice de la nueva cadena lo decrementamos */
     cadenainvertida[j] = cadena[i]; /* Colocamos al final cada caracter */
   }
   return(cadenainvertida); /* Retornamos la nueva cadena ya invertida */
 }

 /* Funcion que retorna el largo de una de cadena de caracteres */

 int largocadena(char *cadena)
 {
   int largo = 0, i = 0; /*Variables para el indice y el largo de la cadena*/
   while(cadena[i]!='\0') /*Un ciclo mientras no se encuentre un valor nulo*/
   {
    largo += 1; /* Incrementamos el largo */
    i += 1; /* Incrementamos el indice para leer el siguiente caracter*/
   }
   return(largo); /* Retornamos el largo de la cadena */
 }

Resultado de la ejecución