Hola:
Estos días he estado hojeando/ojeando el Libro de "Lenguaje Máquina - MSX" de Data Becker. He sentido curiosidad por algunos de los Programas que vienen en ese Libro y me he puesto "manos a la obra" con ellos...
Cogí las Páginas del Libro que contienen esos Listados, los "OCRreé" y por supuesto el resultado fue desastroso no, ¡lo siguiente...! Para minimizar errores y "basura" varia elegí como Salida del OCR un Fichero ".txt" directamente en vez de un Fichero de Word. Luego tocó la parte más dura... repasar y repasar y volver a repasar los Ficheros TXT que obtuve ya que eran caóticos... La tipografía utilizada en el Libro no ayuda. Los ceros apenas se distinguen de las oes, los unos de las eles minúsculas, las ies mayúculas de las eles minúsculas, etc, etc, etc.
Para ayudarme visualmente con la tarea, después de muchas pruebas y correcciones opté por usar una Tipografía/Fuente que ayudara visualmente a distinguir todo ese batiburrillo de caractéres con los que tienes dudas y es más fácil confundir. En su día estuve investigando y hay una fuente que es muy buena para estas tareas. Se llama "HERMIT" y hace que todas estas dudas entre carácteres sean mucho más fáciles de resolver/ver a la hora de corregir los Listados.
Bien, voy a explicar los Programas que he copiado:
- ENSAMBLADOR: Es un Programa "sencillo" pero con una gran extensión en cuanto a líneas de Código... Su funcionamiento es bastante curioso. Nuestro listado Ensamblador tenemos teclearlo entre las líneas 1 y 10.000 del Programa, poniendo el carácter ese que en el PC está en la Tecla del Interrogante de cierre (es como una especie de coma, acento....) (es el cáracter que en el MSX Basic equivale al REM) Después de ese carácter creo que es obligatorio dejar un espacio y entre los operandos de una misma instrucción no puede haber espacios, por ejemplo LD A,5 (entre la A, la coma y el 5 no puede haber espacios). Si usamos etiquetas se ponen tal cual y a continuación se deja un espacio (no hay que poner dos puntos ni nada por el estilo...)
No es ninguna maravilla de Ensamblador, pero resulta curioso al menos. Y quizás analizándo el Listado de este Ensamblador pueda mejorarse ampliarse...
En el Listado que incluyo ya lleva un pequeño Programa Ensamblador, así que basta cargar y ejecutar el Programa tal cual y nos muestra las instrucciones Ensambladas, sus Códigos Hexadecimales, errores, etc.
- DESENSAMBLADOR: Es un Listado menos largo que el anterior y quizás también pueda mejorarse y ampliarse. Para probarlo podéis cargarlo y ejecutarlo directamente y usar como dirección de inIcio &H146A y como dirección final &H146F.
- SIMULADOR: Este Programa lo cargamos y lo ejecutamos directamente, mostrando el contenido de los Registros y demás en Pantalla y si vamos pulsando Intro nos va mostrando más información de las siguientes posiciones. En este Programa hay una cosa que o no entiendo no no he logrado hacer funcionar... Teóricamente en el Libro mencionan que si está activada la Tecla "CAP" nos permite editar y modificar la info de los Registros. Entiendo que esa Tecla a la que hacen referencia es la de Bloqueo de Mayúsculas.. (o sino que alguien me corrija). No obstante yo eso de poder editar y modificar la info de los Registro no he logrado que me funcione... (no sé si se debe a algún problema con las Teclas del Emulador o vaya usted a saber...) Si alguien consigue hacerlo funcionar, que me lo comente por favor y me diga cómo lo ha hecho, en qué Emulador, etc.
- MONITOR: Es un sencillo Programa BASIC que nos vuelca en Pantalla el contenido de las direcciones que le indiquemos. Para probarlo, cargamos y ejecutamos el Programa y ponemos por ejemplo como dirección inicial &H8000 y como dirección final &H8030 (sólo ponemos los números, los carácteres &H no hace falta ponerlos...) Con esto, veremos que causalmente... los carácteres que nos muestra en Pantalla son justo los que he puesto en nuestra primera línea REM del Código BASIC. ;-)
Pues nada, AQUÍ comparto todos esos Listados. Incluyo una imagen DSK que contiene todos los Listados y diferentes imágenes CAS (una por cada Programa), así como los PDF con los Listados originales y los ficheros TXT con cada uno de los Listados... ;-)
Ah, se me olvidaba comentar que a la hora de introducir el Código de esos Listados en el Emulador, usé la genial opción que incluye-ofrece el MSX para pegar el Texto en el Apartado "Input Text", luego pulsas en "Type" y para no esperar toda la tarde... pulsas F9 para que lo haga "cagando leches"... XD
Como digo he revisado cada Listado concienzudamente varias veces... no obstante si véis alguna errata o cualquier cosa que queráis comentar lo podéis hacer por aquí o en mi Dirección de GMAIL --> josemanuel74
En el Libro viene comentado cada Programa, lo que hace cada grupo de Líneas del Código, las variables usadas, etc. Por cierto, las variables que usa aparecen reflejadas de forma un poco caótica... parece que vienen por orden alfabético pero no es así y hay veces que cuesta diferenciar-descifrar los nombres de las variables... :-(
El Libro es relativamente fácil de conseguir. No obstante, si alguien quiere el Libro completo me lo puede pedir a mi Correo.
¡Gracias & Saludetes! ;-)