Pues eso , que al final he tenido un poco de tiempo y como me llamó mucho la atención del 8084 , me puse manos a la obra ...
Yo

tengo el equipo físico, así que todas las pruebas han sido en el emulador
------------------------------------------
MODO BRICK ON
-------------------------------------------
HERRAMIENTAS NECESARIAS+++++++ Entorno de programación +++++++++++++++++++Me preparé un pequeño entorno, esencialmente para manejar desde línea de comandos todo
El soft que he utilizado ha sido:
ASL : Ensamblador desde línea de comandos
http://john.ccac.rwth-aachen.de:8000/as/O2EM : Emulador desde línea de comandos
http://web.archive.org/web/201306151213 ... forge.net/S8048 : Emulador de 8048, versión para DOS
http://www.acebus.com/8048.htmPN: Editor programmer’s notepad
Como todo lo ejecutamos desde línea de comandos me creé unos ficheros bat que solucionan y agilizan el proceso.
Se puede utilizar cualquier editor de texto tradicional, incluso el mismo Notepad. Yo utilizo el programmer’s Notepad.
El proceso es sencillo:
1.- Editamos el fichero con el código ensamblador y lo guardamos con extensión .a48 ( si modificais los .bat, podeis poner la extensión que queráis).
2.- Make <nombre de fichero sin extensión>
3.- Si todo va bien lanza el emulador y podremos observar el piñazo que se pegará el programa
4.- Si ha dado un error el proceso se para, leemos y a depurar …
Lo más difícil es depurar los programas, aunque hay un monitor dentro del emulador, no he sido capaz de manejarlo correctamente.
El S8048 cumple su cometido , la sintaxis es bastante compatible con el asl ( terminar las etiquetas con : y no tendremos casi ningún problema más). Me ha servido para verificar 'trozos' de código, esto junto con el debug mental de toda la vida, me ha sido suficiente para las 4 lineas que he escrito.
+++++ Documentación +++++++++++++++++++++++++++++Tirando del enlace que facilitó Wilco y googleando un poco más, se puede acceder a unos pocos documentos, pero valiosos.
Al final o he tirado del refrito de datasheets y manuales de intel que se encuentra aquí:
https://archive.org/details/grokking-the-mcs-48Además es de obligada lectura
http://web.archive.org/web/201306092145 ... 7kbios.pdf y revisarse los ejemplos de programa que hay en el enlace de archive.org
http://web.archive.org/web/201306091902 ... Index.htmlY por supuesto el set de instrucciones en txt , porque está en formato tabla muy resumidito.
http://web.archive.org/web/201306302021 ... s/8048.txtEn esta otra dirección hay enlaces a alguno de los ficheros anteriores, pero tiene más cosas:
http://home.kpn.nl/rene_g7400/vp_info.html** Sobre o2em
http://web.archive.org/web/201211010209 ... mPort.html++++++ Impresiones +++++++++++++++++++++++++++++++++++++++++++No esperéis un conjunto de instrucciones amplio, incluso faltan algunas de las 'básicas' que esperamos los que hemos programado en un 6502, Z80, 6809.
Disponéis de una pila de 8 posiciones, así que anidar lo justo y no tenemos instrucciones push / pop.
Cuando diseñeis tablas de datos, cadenas , etc, tened en cuenta que tanto el código que usa los datos como los datos tienen que estar en la misma página.
¿Y de que tamaño es una página para el 8048?, pues de 256 bytes.
Hay 8 registros r0, a r7, pero solo se pueden hacer direccionamientos indirectos ( con @ ) con el r0 y el r1.
No hay instrucciones de paso de valores entre registros específicas, hay que hacerlo a través del acumulador.
Para comparar la forma más rápida que se me ha ocurrido ha sido utilizar el operador xor.
Lo bueno es que prácticamente todas las instrucciones se ejecutan en un ciclo de reloj, para aquellas operaciones a las que estaba acostumbrado en otras arquitecturas lo mejor es crearse unas macros y a correr
En resumen, un micro de 8 bits en el sentido estricto. Programación minimalista, a tope.
En cuanto a la consola, están circulando los fuentes de la Bios (el primer K de código que lleva 'impreso' el micro ), con lo que se pueden aprovechar y aprender bastantes cosas de su estudio.
+++++++++++ Mi primer programa +++++++++++++++++++++++++++++++++++Me llamó mucho la atención lo de la rejilla con el porrón de registros que se necesitan para manejarla y la limitación de escribir cadenas de texto de 11 caracteres como máximo. Los sprites los dejé para otra ocasión y para el sonido, utilicé los tonos de la bios.
Además los valores no se corresponden con los códigos ascii que esperamos. Me hice un fichero .h con etiquetas para que fuese más fácil.
Al igual que en la 2600, jugando con las interrupciones y el haz de electrones se pueden hacer muchas perrerías, pero no he tenido tiempo para meterme con ello.
Me gusta cada vez más programar en ensamblador, es algo así como saber hacer fuego con un par de palitos, cuesta lo que no está en los escritos, pero cuando funciona es la leche.
Espero que alguien se anime y construya alguna virguería.
Os dejo los fuentes y el binario.
- race.rar
- Binario y fuentes
- (3.48 KiB) Descargado 14 veces