Características del Proyecto:Etapa de conectividad del Arduino: La interface física contiene un módulo SD , un Arduino UNO, y una plaqueta que interconecta el Arduino con la interface Kempston. para las 5 salidas digitales del Arduino. La tarjeta SD es de 16Gb. Las 5 salidas digitales, representan los 4 bits que se enviaran a la interface kempston, teniendo el quinto bit (botón del joystick el cual avisa que se enviará un bloque de 4 bits). En una plaqueta experimental simple faz agujereada, con los pines correspondientes para conectar el Arduino UNO con el módulo SD y el cableado a la Interface Kempston. El circuito en esta plaqueta tiene un el led testigo de transferencia, cinco diodos 1N4148, para que la tensión circule en una sola dirección desde la salida digital del arduino, hacia la entrada de la interface Kempston. (Ver el esquema de conexión completa)
La interface lógica del Arduino Se encarga el fuente
ts2068.ino , el cual envía bloques de 4 bits. El bit 5, avisa que se está enviando medio octeto. Lee el archivo txt de la memoria SD , el cual contiene dígitos en hexadecimal, La lectura es de a un dígito a la vez , enviando el medio octeto más significativo y luego el medio octeto menos significativo. La parte de intérprete y armado del octeto final, se encarga la interface lógica del programa en la TS2068.
Etapa conectividad Timex Sinclair 2068. Interface Kempston: Tiene replicadp cinco pines del conector DB9 , recibirán +5 volt, de los cincos salida digital de la interface de Arduino. También se agrega el pin GND, para tener un negativo en común. Por último, se agrega una llave de dos puntos para seleccionar el +5 volt de la TS2068 que alimenta el común del conector DB9 (pin 8 ) de la interface Kempston o los +5 volt que ingresan de la interface Arduino cuando está cargando un programa. Esta llave selectora se utiliza para cargar un programa o para conectar el Joystick.
Interface lógica de la Timex Sinclari 2068. El cual lee el puerto 31 de la interface Kempston, donde recibe el par de medio octetos, lo transforma en un solo octeto y lo localiza en la memoria de la TS2068. El desarrollo está programado en lenguaje Assmebler Z80 para tener la mejor performance de velocidad de transferencia de los 4 bits.
Como generar un Archivo TXT para la Memoria SD.Preparación:
a) Cargar un programa / juego (sin hacerlo arrancar) en el emulado FUSE. Detectar dirección de comienzo en memoria , longitud y dirección de ejecución en la memoria.
b) Grabar el programa en formato de archivo bin (no TZX) .
c) Editarlo con algún programa editor de binarios y grabarlo en formato de archivo TXT
d) Copiar el archivo TXT al raíz de la memoria SD y correr el programa de Arduino
Ripear_Files_Timex.ino, el cual filtra todos los caracteres que no corresponden a dígitos hexa.
e) Volver a editar el archivo y agregarle los 6 bytes (en Hexa) del encabezado que corresponde al punto a). Los primeros dos bytes son para la dirección de memoria de inicio, dos bytes para la longitud, y los dos últimos bytes para la dirección de memoria de ejecución. (este último si se especifica con cuatro ceros 0000 , retorna al Basic). Tener en cuenta de especificar primero el bytes menos significativo y luego el más significativo). Ejemplo Dirección de inicio 32768, longitud 8192, ejecución 33400, el formato es el siguiente: 00878820020. Para cargar una pantalla (16384,6912 y 0 para retornar al Basic) : 0040001B0000.
f) Grabar el archivo TXT
Modo de Uso.1) Conectar la Interface Kempston a la Timex Sinclair 2068 u otro modelo de sinclair (SIEMPRE CON LA MÁQUINA APAGADA) con la llave selectora para el Arduino.
2) Cargar el programa en la Timex Sinclar 2068 (u otro modelo de sinclair) llamado
readIK3.tzx con LOAD "" CODE y ejecutarlo con los siguientes comandos. PRINT USR 23300 , o cargar el programa
interface_4bits.tzx , el cual arranca automáticamente . El programa se puede cargar desde audio o cartridge. Para un cartridge (archivo cart_arduino.bin en una EPROm de 8K), se ejecuta como OUT 244,16: PRINT USR 32768
3) Conectar el Arduino al USB de una PC o Notebook para que comience la carga. Si el Arduino ya estaba encendido, entonces arrancar la ventana del Monitor Serie del programa Arduino.
4) Elegir uno de los programas listados en el monitor serie y escribirlo (o copy-paste)en la barra de comandos y presionar ENTER.
5) Una vez cargado el programa y corriendo sobre la TS2068 (u otro modelo de sinclair), cambiar la llave de la interface Kempston para el lado del conector DB9, el cual habilita el uso del Joystick.
Mensajes de los Sistemas en Pantalla.a)
Arduino: El monitor serial muestra los siguientes mensajes: 1) El resultado del inicio de la memoria SD.
2) El listado de los programas disponibles para cargar desde la memoria SD.
3) El nombre del programa que está cargando.
4) Procesando y final de carga..
b)
TS2068. El programa readIK3 / cart_arduino.bin (cartridge), puede mostrar tres tipos de mensajes, 1) ERROR IK, este mensaje lo muestra, si la interface Kempston no está conectada en el slot trasero de la máquina.
2) READY, este mensaje en pantalla avisa que está listo para recibir la información de la tarjeta SD conectada al Arduino.
3) BREAK, Presionando simultáneamente las teclas Symbol Shift y Break, se puede interrumpir el proceso de carga del programa.
Adjunto los archivos fuentes del Arduino.(Fuentes Arduino.rar) , los archivos de audio y cartridge para la Sinclair (Archivos_Timex_Sinclair.rar) y los juegos que van copiados dentro de la carpeta sinclair en la memoria SD (Memoria SD_Juegosr.rar).
Me falta armar un gráfico explicativo del esquema de conexiones y subirlo.