Ir al contenido principal

Mas recursos por favor!!!

En mis tempranos días de Universidad, cuando el turbo pascal pagaba mis cuentas, recuerdo una tarde en que programaba, mejor dicho, tiraba unas líneas de código para una encomienda que mi hicieron, y me di cuenta que la pantalla, mi diseño, se pintaba muy lento…. Corrían los días del fiel DOS y sus pantallas de 80 x 25 en modo carácter. La inquietud me vino, porque tenía instalado un programa de Norton, no recuerdo cual era, y en este último las pantallas volaban, superponían ventanas y se pintaban en un dos por tres!!!

Yo me dije, Carambolas Blas! ¿Que ocurre aquí? Repámpanos, que el diablo me lleve, y toda esa suerte de frases rebuscadas que usan en los comics para no decir groserías!!! Jajajajaja. El caso es que me dije, ¿cómo es esto posible? ¿Qué estoy haciendo mal?

Yo pintaba mis pantallas con una rutina….. si, si, era muy inocente. Y se podía ver como se dibujaba cada línea de caracteres por el monitor, una tras otra…. Lentoooooo….

Las de Norton aparecían casi al instante!!!  QUE ENVIDIA!!!

Me puse a pensar entonces, si, a veces lo hago, y me dije que todo esto que se ve son ceros y unos, que deben estar almacenados en algún lugar de la memoria del computador, lo que ahora llamaré Memoria de Vídeo. Imaginé que si podía diseñar mis pantallas y almacenarlas a disco, y luego cuando las necesitara cargarlas a una memoria cache y, en su momento, mover todos esos bytes directamente a la Memoria de Video, seguramente mis pantallas parecerían ser tan rápidas como las que veía en otros sistemas comerciales.


Así que me propuse a buscar un manual de la computadora  modelo IBM AT que estaba usando, una manual de referencia del MS DOS que usaba, y ponerme a leer en busca de la información que me indicara la dirección de memoria donde se inicia o se carga la Memoria de Video.

Luego de mucho leer encontré lo que buscaba!!!

En tarjetas de video monocromáticas la dirección de la Memoria de Video inicia en la posición $B000, y la dirección $B800 en tarjetas a color en modo texto ambos casos.

Ya sólo me quedaba averiguar cuál era la instrucción para mover bloques de memoria, hacer mi programa que diseñara y guardara las pantallas en disco, y LISTO!!! A probar el mover esos bytes a la Memoria de Video!!!

No tengo palabras que reflejen el júbilo cuando logre que mis pantallas “volaran”, al poder superponer ventanas y cargar otras de manera casi instantánea. Fue una tontería, de mediana complejidad para ese entonces, pero marcó la diferencia en mi modo de pensar y de resolver problemas con la maravillosa herramienta que tenemos.

Con pocos recursos se podían hacer grandes cosas.

Hoy por hoy me enojo cuando algún novato, y no tan novatos, me dice que necesitan 16 Gb de RAM, procesadores de 8 y más núcleos, memorias SSD…. Y los sistemas siguen LENTOS y LENTOS!!!!

&”%”$”$#!#”&!/! sapos y centellas!!!

Por eso mis respetos al programador que hizo un programa de ajedrez para la Sinclair ZX-81, con apenas 1K de memoria RAM, cpu tipo tortuga, cinta magnética de casette como dispositivo de almacenamiento y salida a TV de color como pantalla.
1K de memoria señores. 1K. Yo con eso no alcanzo a escribir un Hola Mundo en C!!! jajajajajaja

Respetos y Honor a quien honor merece.


Comentarios

Entradas populares de este blog

El Melange todavía corre

Ese era el estribillo de un capítulo de unas de mis series favoritas de la infancia, Meteoro o Speed Racer. En ese capítulo un auto “fantasma” el X-3, aparecía de imprevisto y dejaba a todos asombrados con su rendimiento y prestaciones y volvía a desaparecer. Traigo ese episodio a colación puesto que recientemente sostuve una amena charla con un querido amigo, en la que el me manifestaba como los Mainframes habían muerto, o mejor dicho, el concepto de la computación distribuida basada en Mainframes había desaparecido. Para variar, yo no estuve de acuerdo, y le dije que por el contrario, el modelo de computación basado en Mainframes está mas vigente que nunca. Estos fueron mis argumentos:

Primeros pasos con Camunda BPM – Modelando un Proceso BPMN 2.0

Tenemos entre manos la tercera publicación de nuestra serie sobre la Plataforma de BPM de Camunda .  El día de hoy vamos, por fin, a empezar a modelar o construir nuestro primer proceso sencillo en notación BPMN 2.0. Para ello vamos a usar el modelador o editor que ya hemos instalado en nuestra primera publicación , y vamos a guardarlo en la sección de recursos del proyecto Maven Java que configuramos en la segunda publicación . Así que, como ya es costumbre, manos a las sobras…

Como configurar jBPM para usar nuestra propia Base de Datos en un sólo paso

Llevo un buen rato trabajando con jBPM en su serie 6.x, y mi opinión sobre este producto en la versión mecionada no ha mejorado para nada. Es una herramienta plena de funciones y caracteristicas avanzadas, pero tambien está llena de Bugs y es realmente inestable, sobre todo en el ambiente de modelamiento.  Así mismo, debo decir que tiene una muy aceptable API REST y que el motor de procesos y la consecuente ejecución de los procesos es estable y bastante rápida. En esta publicación daré inicio a una serie de artículos que hablan sobre ciertas configuraciones comunes e importantes que se hacen con jBPM. Hoy iniciamos con la configuración de jBPM para que use nuestra base de datos favorita. Esto tiene sentido porque el producto viene con la base de datos H2 por omisión, la cual es excelente para pruebas y evaluaciones rápidas de la herramienta, pero es completamente inaceptable en un ambiente de desarrollo, QA o producción cualquiera. Así que manos a l