Intentando arreglar mi clon de "Tron"


Troff es cutre, ya lo sé. Pero para mí representa ese momento de los años 90 en que, siŕndome casi imposible conseguir un compilador (no sabía donde comprarlo, y cuando encontraba uno, valía una millonada, nada parecido a los 50 dólares (10.000 pesetas) que he visto que valía Turbo Pascal, sino más parecido a las 400.000 pesetas que valía Office), decidí tirar adelante y hacer lo que se hacía en el mundo del Spectrum: programar en código máquina.

Al fin y al cabo, DOS incluía la utilidad debug, que, sin ser capaz de ensamblar (en el sentido de traducir etiquetas, gestionar memoria, etcétera), era, sin embargo, capaz de traducir mnemónicos a código maquina  (es decir, convertir MOV AX, 0E21 INT 10 en B8 21 0E CD 10 ) y viceversa.

De hecho, algo extraño de MsDOS/PCDOS es que incluía exe2bin y link, que son utilidades destinadas a usarse durante el desarrollo de un programa ensamblado o compilado, pero ningún ensamblador ni compilador (aparte del mencionado debug, que, como ya digo, no era un auténtico ensamblador).

Pero, por otro lado, todas las versiones de Ms-DOS incluían un lenguaje interpretado y lo que hoy llamaríamos un IDE. Hasta Ms-DOS 4, se incluía gw-basic (Basica en los DOS de IBM, que incluían una ROM con BASIC). Desde MS-DOS 5, incluían QBASIC, una versión recortada de QuickBasic.

Combinando QBasic con DEBUG, fabriqué mi propio "ensamblador". El formato de etiquetas lo copié del lenguaje de script de MS-DOS. El hecho de usar símbolos raros para distinguir palabras reservadas, etiquetas, etc., era habitual en muchos programas de los 80 y primeros 90. Por ejemplo, Lotus 123 usaba @ para indicar que algo era una función, y yo lo había copiado en algún programa por ahí. Como no había usado nunca un ensamblador auténtico, no se me ocurrió usar ese símbolo, ni el punto, como marca para etiquetas.

Y, todo hay que decirlo, mis proyectos más extensos en ensamblador fueron este clon de Tron y un "gestor de sprites" que era un programa residente en memoria en el que qbasic podía almacenar sprites y mostrar un mapa en modo 13 (MCGA 320x200 a 256 colores).

Podéis ver la fuente en su estado de 1994 en http://doc.apagada.com/doku.php?id=es:cutressembler:troncol . En el mismo wiki podéis ver el estado de CSEMBL antes de que le metiese mano para arreglar dos bugs tan estúpidos que no sé por qué no había arreglado antes (quizá es que el arreglo ralentizase la ejecución en un 286).

Files

troffv4.zip 82 kB
63 days ago

Get Troffv4

Leave a comment

Log in with itch.io to leave a comment.