Arqueologia digita caseral: Easy Shell

26 de Mayo de 2014

A veces es difícil recordar que fue lo primero que uno programo. A veces la memoria falla, o a veces el código y los programas se pierden en el vacío o vaya uno a saber donde.

En mi caso, si bien no me acuerdo de todo, ni tengo todo, si tengo un programa que hice hace mucho tiempo y que, hoy, mas de 15 años después cuando lo veo, me sorprendo de lo que fui capaz de hacer en su momento.

El inicio

Yo me inicie programando con Basic. No Visual basic, no. Fue con Quick Basic, un basic para DOS de Microsoft, que permitía compilar los .bas a .exe, lo que vendría ser una versión profesional del QBasic que venia incorporado en el MS-DOS.

Con ese compilador hice muchos programas, algunos que ni recuerdo bien, como un reproductor de audio (que en si era un shell para un reproductor de linea de comandos), un editor de textos, y un par de herramientas que ya ni recuerdo.

Pero el programa que si conservo, es uno de los últimos que hice con QBasic y el mas complejos que hice para DOS.

El programa

A Easy Shell lo empece a programar en 1994, aun en el apogeo de DOS. Windows 3.1 no dejaba ejecutar muchos juegos de DOS porque consumía  mucha memoria y en caso de hacerlo en DOS, uno tenia que ingresar los comandos manualmente. Eso no era problema para mi, pero mi en mi familia me vivían preguntando donde estaba tal o cual juego y como se cargaba. Intente usar algunos Shells, pero mucho no lo entendian.

De modo que en mis tiempos libres (iba a la secundaria en ese tiempo) empece a darle forma a este programa.

La idea básica era una lista, que se convirtió en 8 listas, con 36 programas cada una. Se podía editar cada programa y definir los comandos a ejecutar para cada uno. Eso fue la primera versión.

Agregados

Con el correr del tiempo, le fui agregando módulos, como las opciones de configuración, un modulo para escanear el disco rígido y agregar programas automáticamente, un modulo para auto-ejecutar CDs, Protección por contraseña de menús y de edición de programas y un visor de ayuda.

Las características son estas:

- 288 menús de aplicaciones divididos en 8 paginas de 18 cada una.

- Opciones de configuración de funcionamiento y apariencia

- Soporte para Mouse en la interfase

- Ocupa solo 3k residentes en memoria (10k en ordenadores con 640kb de memoria)

- Modulo para agregar programas existentes en el disco rígido.

- Protección por contraseña de menúes particulares o de los módulos de edición / configuración.

- Increíbles animaciones de pantalla, que solo podrás apreciar en un Pentium II o en un procesador mas viejo. En los procesadores nuevos ya casi no se pueden ver debido a la velocidad de estos.

- Protector de pantalla.

Gracias a las librerías de QuickBasic, ADVBAS (http://www.tgh3.com/products_libraries.html), esta aplicación podía tener soporte para Mouse, animaciones en pantalla, y muchas otras características que hacían que la aplicación fuera fácil de usar.

ES Ayuda

La jugada Pascal

El gran problema que tenia con el programa en sus inicios, era que el shell desde QuickBasic ocupaba mucha memoria. ¿Como tener un shell y a la vez reducir el consumo de memoria?

Fue por esos tiempos que empece a conocer un poco de pascal. La realidad mucho no entendía al principio, pero con un libro y un conocido que si sabia pascal, hice el programa que seria el shell en si mismo. Esta aplicación, al cargarse ejecutaba la interfase de Easy Shell, escrita en QB y recibian, bien no recuerdo de que forma, los comandos a ejecutar. Con este truco, lograba tener una aplicación en Pascal muy pequeña que permitía tener un shell con una interfase compleja y un residente en memoria de solo 3kb.

ES Colors

Visto 10 años después, mas allá de lo fuera de tiempo de la aplicación en estos tiempos, uno se siente tranquilo de haber hecho algo profesional, pese a lo escaso del conocimiento que uno tenia en esa época.

Lamentablemente, el código fuente se ha perdido, pero bueno, se conserva la aplicación completamente funcional.

En conclusión, lo que aprendí haciendo programas como este fue muchísimo. Si bien hoy no programo para DOS, los conceptos y formas de resolver problemas que aprendí en este entonces aun me acompañan.

Descargar

Categorizado en: General Programación Quick Basic Pascal DOS 
Arqueologia digita caseral: Easy Shell