Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

Operación Tridente

-Creando un Software que Dibuje Por Mi-

Lo que están por leer es un «The story so far…» pues se trata de algo que comenzó hace ya tiempo pero que todavia no termina y se trata de una fase crucial en el desarrollo de un software que llevo años queriendo programar. Pero no seria hasta épocas muy recientes que se dieron las condiciones para hacerlo.

Desde hace ya tiempo quiero hacer un editor gráfico que haga cosas que los editores disponibles no ofrecen. Ya iré contando todas esas cosas más adelante pero hubo dos eventos o tal vez tres que hicieron que el proyecto avanzara lo que no habia avanzado en años: El primero fue la motivación. Pues lo que conocen el ‘lore’ de Modo Protegido saben que en Noviembre del 2021 supe de la existencia de otro programador con un proyecto muy parecido al mio. Así que decidí tomarlo como un reto. Es mas, es probable que ese programador llegue a leer esto y no se como vaya a reaccionar. Pero no nos adelantemos. Mi plan hasta ese momento era usar el software para crear sprites y otros assets para videojuegos pero luego de ese curioso evento consideré rediseñarlo para que pudiera producir animaciones y hasta dibujo tradicional con tinta y papel. Pero eso apenas seria el principio.

Los meses pasaron y esa competencia declarada de manera unilateral no llegó a nada por parte de ninguno de los dos. Una carrera de tortugas seria una comparación injusta para las tortugas. Total que luego de eventos tales como hardware roto, daños catastróficos en el Centro de Operaciones y varias carcajadas llegaron Las 54 Horas de Terror.

En ese corto período que sentí interminable todo el caos llegó a su cenit y de pronto todo se arregló. O casi todo. Pues le perdí la pista al otro programador y luego me enteré que desistió de su intento de seguir con su proyecto. En el lore de Modo Protegido este evento es conocido como El Fatality

El Fatality ocurrió poco antes de la primavera del 2023. Y ese punto pudo haber significado el fin de esa rivalidad no declarada entre ambos. Así que a partir de ese punto me tocaria seguir por mi cuenta. En mayo tuve algunas reuniones con viejos amigos programadores en los que repasamos algunos algoritmos 3D. Lo cual fue bueno aunque en ese entonces no avanzamos gran cosa. Luego en agosto del 2023 ocurrió otro evento canónico que no se si hasta ahora es bueno o malo: Me detectaron un problema en la vista.

Así es. Al parecer mi visión se fue deteriorando de manera lenta e imperceptible a partir de una cirugia ocular. Lo que me causó muchos problemas para leer y en años recientes me cansaba mucho usar una laptop. La manera como se solucionó eso fue con lo que en Modo Protegido se hace referencia como El Ojo Biónico. Y si bien este accesorio me devolvió mis capacidades visuales que no sabia que habia perdido también es un recordatorio de que el tiempo con el que cuento para programar no es infinito y que más temprano que tarde ya no podré continuar. O como dicen los intelectuales: Memento Mori.

Con mis capacidades visuales renovadas no solo pude volver a leer y programar como tal vez nunca lo habia hecho antes. También pude desarrollar los algoritmos necesarios para obtener información a partir de imágenes. E incluso aplicarlos de manera inversa para generar imágenes con lápiz y papel como lo haria un dibujante de verdad. También encontré ciertos documentos en el último lugar donde se me hubiera ocurrido buscar. Y hasta dias antes de escribir esta entrada estaba organizando un viejo código de un RPG de acción que quiero portar a 64 bits y que en su tiempo no acabé por falta de sprites. Aunque en realidad no me interesa acabar ese juego por ahora. Pero ese código tiene rutinas gráficas y de interacción con dispositivos de interfaz que le vendrian bien al editor que estoy haciendo. Ya cuando el editor pueda crear sprites y otros archivos de assets tal vez termine ese juego y lo libere al público. Pero por ahora lo importante es programar el editor gráfico.

Por cierto. A esto se le llama Operación Tridente porque el software tiene tres aspectos clave: El primero es que está programado en assembly de 64 bits e implementa todos los adelantos que tiene implementados el procesador con el que estoy programando. Bendito CPUID.

El segundo aspecto y tal vez el más interesante es que el software dibuja. Y cuando digo que dibuja hablo en serio. Pues una parte del desarrollo se hace en papel, con lápices, tintas y otras herramientas de dibujo tradicional. Lo que no es tan tradicional son los algoritmos que se siguen para trazar esas lineas. Y ahí es donde viene el tercer pico del tridente: Los algoritmos. Pero esos ya se explicarán cuando llegue el momento.

La Paradoja de Moravec

En resumen se reduce a: No mandes a una computadora a hacer el trabajo de un humano.Esta paradoja dice que programar razonamientos lógicos avanzados y cálculos matemáticos es sencillo. Pero hacer que una computadora haga cosas tan simples para un humano como experimentar el mundo con los sentidos es extraordinariamente dificil. Y ya se mencionará en otra entrada por qué esto es clave en el desarrollo del software de dibujo.

¿Y qué tan avanzado va? ¿Ya hace algo? La respuesta es si. En caso de que esta entrada sea publicada vedrá acompañada de una ilustración muy simple. Pues bien: Esa ilustración fue hecha con el software gráfico. Si, un software que dibuja por mi. No importa que lo haya dibujado con mi mano. Eso lo dibujó un programa de computadora que me indicó dónde y cómo trazar cada linea, y la razón es que no soy dibujante. Ya veremos hasta dónde llego con esto. Al menos antes de que llegue mi propio Fatality.

ACTUALIZACION:

Esta entrada debió publicarse el 4 de Noviembre del 2023 pero terminó de escribirse el 16 de Diciembre de ese mismo año. Sin embargo unos pocos dias después de esa fecha ocurrió una serie de eventos inesperados que espero poder publicar en una siguiente entrada. La situación cambió tanto y tan rápido que no supe cómo reaccionar.

Todo esto se relaciona con la Operación Tridente. Pues esta era el plan para hacer evolucionar el software a un estado que fuera usable. Y aunque todavia no alcanza su máximo potencial si es que algún dia lo alcanza ya es capaz de hacer dibujos sencillos como el que acompaña esta publicación y que si logro subirla el mismo dia que escribo esta actualización deberia de salir el 27 de febrero del 2024.

Y si bien el software que estoy haciendo no es una Inteligencia Artificial si que me está causando algunos problemas con gente particularmente inestable del internet y todo indica que esos problemas serán cada vez más grandes. Ya hasta habia pensado en detener el desarrollo de este software, pero tampoco quiero renunciar a ese poder. Así que espero no mejorarlo más allá del punto en que ya no lo pueda controlar. Pero hay algo que no les dije:

Ese software se mejora a si mismo cada vez que se ejecuta.

febrero 27, 2024 - Posted by | Uncategorized

2 comentarios »

  1. Hola acabo de leerte y tu relato desperto en mi un objetivo que he retrasado durante mucho mucho tiempo, que es aprender assembly o ensamblador. Ahora tengo tiempo y si quieres te puedo ayudar a continuar tu proyecto. Aprendi a usar los lenguajes de programacion hace bastante tiempo, pero nunca logre que mis profesores de programacion ahondaran en assembler, me decian que no se usaria mas, bueno hace unos meses empece con c++ nuevamente y recupere el placer de programar. Se que lo puedes ver como algo dificil o casi imposible, sumale a eso que tengo 61 anos. Pero me gustaria mucho participar con idea. Saludos, Cristian Figueroa

    Comentarios por Cristian Figueroa | abril 12, 2024 | Responder

    • Toda ayuda es bienvenida. Es bueno ver que todavia quedamos quienes conocimos el assembly y podemos compartirlo con los que no lo conocieron.

      Hoy en dia hay programadores que no vivieron los tiempos en que los videojuegos se hacian sin engines. Y en mi caso todavia recuerdo cuando ni siquiera habia APIs como DirectX. Sin duda tenemos mucho que hacer en cuanto a programar se refiere.

      Comentarios por asm86 | abril 12, 2024 | Responder


Deja un comentario