¡Trabajadores! Nuestro Movimiento enarbola tres banderas: la de un software Libre, Justo y Soberano; aquel en el cual la CPU no hace más de lo que el Usuario quiere y sigue un sólo interés: ¡el del usuario! Llena mi corazón ver - bajo este día luminoso - una compacta Masa, que no duda en sopesar el Software Libre en la balanza de la Justicia Social. _______ \o/ \ peron \ --------- -----¬ \------- | C G T | ::::::::::::::\::::::::::|---------|::::::::::: %%%%%%%%%%%%%%%\%%%%%%%%%|%%%%%%%%%|%%%%%%%%%%% &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ooooooooooooooooooooooooooooooooooooooooooooooo La IMSAI 8080 está presta a responder a los anhelos del Pueblo. Parte 3: Programar en Ensablador 8080 en CP/M En lugar de introducir los códigos de operación y valores "a lo vikingo" a través de los interruptores, el sistema operativo CP/M nos privilegiará con facilidades para escribir la rutina en Ensamblador Intel 8080, interpretarlo, y ejecutarlo. Como primer medida podrán ejecutar el editor "ed", proveyéndole un nombre de fichero de código fuente en ensamblador (de extensión .asm). Como un ejemplo suele aclararlo todo - como decía Napoleón, os indicaré los resultados que devuelve la terminal. Ustedes podrán ingresar lo que figura a continuación del prompt A>: En el prompt A> ingresen: A>ed pocho.asm NEW FILE : * Como vemos, el editor Ed presenta el mensaje NEW FILE denotando que estamos creando un fichero nuevo, y cambia el prompt al de modo comando, el cual es un asterisco "*". Ingresamos i para pasar al Modo de Insersión de texto, y la IMSAI nos hablitará para escribir la línea número 1 de nuestro código en ensamblador. : *i 1: Ahora habrán de meter las patas en el código fuente. Escribirán muy cuidadosamente el código de ensamblador, a tres columnas. Sean precavidos, pues si bien podrían borrar errores con la tecla RETROCEDER, su funcinamiento es diferente al que es usual en las videoterminales: el antediluviano editor ed replica a las teletipo, y en caso de presionar RETROCEDER, vuelverá a presentar en pantalla el caracter anterior. Permitirá así la acción de sobreescritura. Recuerden especialmente que, para saltar a la siguiente columna dentro de la línea, debe presionarse la tecla TAB. Toda vez que completen correctamente una línea, deben introducirla en memoria presionando la tecla INTRO. Ed nos presentará el siguiente número de línea. Introduzcan ahora las siguientes nueve líneas de código (recuerden presionar INTRO para confirmar cada línea, a lo que ed presentará el número de línea siguiente): ORG 0100H BDOS EQU 0005H START: MVI C,9 LXI D,MSG$ CALL BDOS RET MSG$ DB 'VIVA PERON!$' END START Conforme hayan terminado de introducir la última línea de código ensablador, deben presioanr Ctrl+z para abandonar el Modo de Inserción de texto del editor Ed; el prompt volverá a ser un *. Podrán ahora indicar el comando "e" para escribir en disco flexible virtual el archivo pocho.asm y retornar al CP/M. : *e Al retornar al prompt A> de CP/M, bien podrían desear tipear el comando "type pocho.asm" con el fin de comprobar fehacientemente que el código de ensamblador esté bien escrito y almacenado en el diskette de 8 pulgadas. Acto seguido lo ensamblamos: A> asm pocho CP/M ASSEMBLER - VER 2.0 0115 000H USE FACTOR END OF ASSEMBLY Esto creará una serie de archivos nuevos en la unidad de disco flexible virtual. Si ingresamos type pocho.prn veremos el desensamblado del código para el microprocesador Intel 8080. A>type pocho.prn 0100 ORG 0100H 0005 = BDOS EQU 0005H 0100 0E09 START: MVI c,9 0102 110901 LXI D,MSG$ 0105 CD0500 CALL BDOS 0108 C9 RET 0109 5649564120 MSG$ DB 'VIVA PERON!$' 0115 END START ...y si ingresamos type pocho.hex veremos el código hexadecimal del mismo. A>type pocho.hex :100100000E09110901CD0500C95649564120504537 :05011000524F4E2124B6 :00010000FF Ahora compilamos el objeto, usando el comando load pocho. Esto creará un archivo ejecutable llamado pocho.com. A>load pocho SOURCE IS DISK FIRST ADDRESS 0100 LAST ADDRESS 0114 BYTES READ 0015 RECORDS WRITTEN 01 Indudablemente que un Conductor del Justicialismo ha de ser capaz de ejecutar un software "in mente", con tan sólo observar un volcado hexadecimal del mismo. Si quisiéramos probarnos como Hackers de la Conducción, podríamos solicitar un volcado de depuración del código máquina mediante la orden dump pocho.com. A>dump pocho.com 0000 0E 09 11 09 01 CD 05 00 C9 56 49 56 41 20 50 45 0010 52 4F 4E 21 24 00 00 00 00 00 00 00 00 00 00 00 (...) 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Técnicamente, la primer columna nos indica la dirección o posición en memoria, en tanto que las 16 restantes indican el contenido de los bytes. La Ejecución in Mente es una resultante práctica del Arte de la Ingeniería Inversa. El Conductor VE los bytes. Ver, base para Apreciar. Apreciar base para Intepretar, e Interpretar base para Ejecutar. Pero técnica y teoría son meros componentes intertes de la Depuración. La parte Vital es es Artista. Indudablemente que para poder ejecutar código "in mente" dependemos de aquel Óleo Sagrado de Samuel con que hayamos sidos ungidos al nacer. Indudablemente que, siendo ustedes ciegos integrantes de la Masa Obrera, sólo necesitarán ejecutar las órdenes emanada de los órganos de conducción. Por ello simplemente deben ingresar el comando "pocho". Si el entorno de emulación y el programa ensamblado funcionaron de la manera correcta, el panel de la IMSAI 8080 debería iluminarse como un arbolito y gritar a la termimal un estruendoso: A>pocho VIVA PERON! Podremos ahora continuar utilizando CP/M 2.2, o bien utilizar los conmutadores de los registros para escribir binariamente en memoria los siguientes bits: 50 55 45 52 54 41 20 44 45 20 48 49 45 52 52 4f 3a 20 50 45 52 4f 4e 40 54 45 58 54 4f 2d 50 4c 41 4e 4f 2e 58 59 5a También podremos apagar la IMSAI emulada. Para ello podríamos indicar: A>bye System halted, bye. Y se apagará el emulador (desapareciendo el panel de la IMSAI). Y recuerden Programadores: ¡Únanse! ¡Sean hoy más hermanos que nunca! Sobre la unidad de los que programan, ha de fundarse en esta Hermosa Patria la Unión de Todos los Argentinos. Y cuando uno de nuestros servidores caiga, ¡CAERÁN CINCO DE LOS DE ELLOS! ____________ / __________ \ / | VIVA | \ / | | \ / | PERON! | \ / |__________| \ / ,------------------ \ / / :::::::::::: :::: \ \ \ ====================== / \==v================v==/ ============================== | oooooooooo oo ooo ooo | | oo | | o ooo ooo ooo ooo ooo ooo | | + +++ +++ +++ +++ +++ +++ | |_+__+__+__+__+__+__+__+_+_____| |MITS Altair 8800 Computer | ============================== - - CONCLUSIÓN La emulación de los equipos primigenios del cómputo hogareño sirve como material de estudio de las Ciencias del Cómputo y la historia del ingenio humano, y constituye - por extensión - una demostración palpable de las bondades del Software Libre como instrumento de Justicia Social. BIBLIOGRAFÍA: Intel 8080 Assembly Language Programming Manual. https://altairclone.com/downloads/manuals/8080%20Programmers%20Manual.pdf