• Agregué seis juegos mas para la tarjeta SD. En este paquete junté todo.
    Los 12 títulos son.
    ANDROIDS,, PENETRATOR, ORC ATTACK., ASTRO BLASTER, FLIGHT SIMULATOR, MANIC MINER, STOP THE EXPRESS, CHESS , HORACE GOES TO SKI , CRAZY BUGS , RIVER RESCUE, PACKMAN. (Z-MAN).

     

  • Siguiendo con este proyecto, tenía pendiente de agregarle un módulo mas, (ESP8266 MODEMCU) para que pueda cargar un programa por WIFI a la Timex Sinclair 2068.
    En este ejemplo utilizo una página web simple, donde cargo un programa con el método POST de texto plano, copiando y pegando el código en hexadecimal de un archivo TXT (algunos de los que tenía almacenado en la memoria SD), y luego lo envío por Wifi desde el navegador a la interface de 4bits , que se lo pasa a la interface Kempston conectada a la TS2068.

    Este es el LINK link de demostración.

    Subo algunas fotos, y los archivos de los programas. luego hago una explicación mas detallada.
     

  • Básicamente el funcionamiento de este proceso, consiste en ingresar en el área de texto del Webserver, un código assembler en formato hexadecimal , manteniendo el mismo formato que se almacena en la tarjeta SD , conteniendo los primeros 16 caracteres el encabezado del archivo.(los primero dos , inicio de carga del programa, dos bytes, longitud del programa, y los últimos dos bytes la ejecución del programa, si son ceros retorna al Basic).
    Al presionar el botón Submit, ,se envía por método POST ,al mismo servidor, el contenido del campo textarea, guardando en un archivo temporal en la memoria FLASH del módulo ESP8266. En el siguiente paso, se lee este archivo para comenzar a enviar de a 4 bits los códigos hexadecimales. Al finalizar la lectura del archivo, el mismo es eliminado. y se puede volver a la Home Page, para luego cargar otro programa.
    Limite de Tamaño para el POST: Por las pruebas ensayadas, el límite estaría en archivos de texto mayor a los 20k, lo cual representa unos 10k de programa para las Sinclair. En caso de exceder el límite de bytes, el mismo no hace nada ni tampoco se cuelga la página e interfaces.
    Un truco para cargar programa más extensos , sería ingresando por bloques (en forma recursiva), y solo el último archivo hexa ingresado tendría la dirección de memoria para la ejecución del programa . (los bloques anteriores deben tener la dirección de memoria para de ejecución de la interface lógica, en decimal 23300, en HEXA 5B04 , y en complemento a dos para el archivo 045B").
    Como comentaba anteriormente, el módulo ESP8266 Modemcu, tiene una memoria Flash de 1M, Por lo tanto nos permitiría realizar otras variantes, como ser:
    a) Cargar varios programas y almacenarlos en la memoria flash por el método POST
    b) Adicionar otra página Web para leer los nombres de los programas almacenados en la memoria Flash, seleccionar alguno y hacer un submit hacia la Sinclair.
    Como verán, esta interface es simple, pero potente.

    A continuación detallo brevemente los fuentes.

    Archivos fuentes para el Arduino:
    Wifi_TS2068_POST.ino : Este programa se carga en el módulo ESP8266 Modemcu. Es el webserver y WIFI, La ip es estática (192.1681.251), pero se puede configurar como IP dinámica. También hay que especificar el nombre de la red WIFI y su contraseña.
    ts2068_IK_WIFI.ino : Este fuente se carga en el Arduino UNO y trabaja en conjunto con el módulo WIFI.
    Wifi_TS2068.ino : Este módulo se carga en el Arduino UNO y trabaja con el módulo de tarjetas SD. No tiene cambios de versión, es el mismo que se publicó la primera vez

    Archivos Timex Sinclair:
    cart_arduino_2.bin : Tiene una mejora, el cual ahora arranca y ejecuta automáticamente el programa que lee los datos ingresados por la interface Kempston. Ya NO hace falta teclear OUT 244,16 : PRINT :RANDOMIZE USR 23300 . En caso de realizar algún BREAK en el proceso, se vuelve a correr el programa con RANDOMIZE USR 23300
    cart_arduino_2.dck. Archivo para correr en el emulador.
    readIK4.tzx : Para cargar el programa en la Sinclair como LOAD "" CODE . Con las mejoras mencionadas en el archivo bin.
     

  • Excelente Proyecto!!!! Te independizas de la tarjeta SD y podes enviar desde el celu, esta genial.
     

  • TERCERA PARTE DEL PROYECTO: Mejora con el módulo WIFI ESP8266 Modemcu:

    En esta 3ra etapa (como para ir cerrando), se desarrolla una nueva página web para el módulo (ESP8266 MODEMCU) , donde se puede administrar la carga de los juegos almacenados en la memoria interna del módulo WIFI. Este módulo cuenta con una memoria flash interna de 1M (que también lo utiliza el propio sistema para su uso interno).
    En está modesta página web, se muestra un listado de los programas almacenados en la memoria flash, con botones disponible para, seleccionar y cargar un juego, borrar un juego almacenado de la lista, formatear la memoria flash , resetear una selección de juego y agregar un nuevo juego a la lista de programas que previamente lo almacena en la memoria flash.
    Para almacenar un nuevo programa en la memoria flash, primero hay que ingresar el nombre del archivo (recomendable que el formato sea ocho caracteres para el nombre y tres caracteres para la extensión como ser TXT) y luego copiando y pegando el código en hexadecimal de un archivo TXT (de un programa de la sinclair) y presionamos el botón que inserta o agrega datos hexadecimales para enviarlo al web server (ESP8266 MODEMCU) , con el método POST de texto plano.
    La ventaja de este nuevo desarrollo, es que se puede enviar en un mismo archivo.txt /juego, el código hexadecimal, fraccionado en mas de un bloque por el método POST plano. Esto es de utilidad, cuando el programa excede los 10K y el método POST plano no puede insertar los datos en el archivo. Podemos controlar el almacenamiento de estos datos enviados, observando si se incrementa el tamaña del archivo txt( que no sea de tamaño cero en la carga inicial o que no sume cero cuando agregamos mas datos hexadecimal al mismo)..
    Una vez almacenado un nuevo juego en la memoria flash , podemos iniciar el proceso de carga vía Wifi , utilizando el navegador de una PC o desde un teléfono celular con wifi.
    El esquema de conexión física continúa siendo la misma hacia la interface de 4bits con Wifi, conectada a la interface Kempston que a su vez está conectada en el slot trasero dea la TS2068.


    Archivo fuente para el módulo ESP8266:
    Wifi_TS2068_POST_V2.ino : Es el webserver y WIFI, con su IP estática (192.1681.251., También se puede configurar como IP dinámica. Se ha mejora la velocidad de carga (8k en 33 segundos), aprovechando que los juegos están almacenados en la memoria interna del WIFI.

    El resto de los fuentes (ts2068_IK_WIFI.ino para el Arduino UNO y cart_arduino_2.bin o readIK4.tzx , que manejan la escucha de la Interface Kempston conectada a la Sinclair ), no sufrieron modificaciones.


    Esta es una demostración (ver LINK ) donde se agrega a la lista de programas (almacenados en la memoria flash del módulo wifi) el juego Crazy Bugs ,en dos partes, y luego es cargado en la Timex Sinclair 2068. Igualmente un programa como este o el de androids y otros se pueden almacenar en un solo block POST. Otros programas, como ser Manic Miner, Flight Simulator necesitan ser incorporados en varios bloques.
     


  • TERCERA PARTE DEL PROYECTO: Mejora con el módulo WIFI ESP8266 Modemcu:............

    ariel_022017


    Muchas gracias Ariel por dedicarte a la ts2068, te felicito ampliamente.

    GRACIAS.
     



  • TERCERA PARTE DEL PROYECTO: Mejora con el módulo WIFI ESP8266 Modemcu:............

    ariel_022017


    Muchas gracias Ariel por dedicarte a la ts2068, te felicito ampliamente.

    GRACIAS.

    zilogz80a

    Gracias zilogz80a !!

    Saludos !

     

  • Ya sé que viene con mucho delay, pero aún no es tarde para felicitarte!!!!
     


  • Ya sé que viene con mucho delay, pero aún no es tarde para felicitarte!!!!

    Alex


    Gracias, Alex!, nunca es tarde.
    Durante estos meses publicaré algo mas rápido y completo, para cargar programas desde una tarjeta SD en la TS2068.
     

  • Unifico en este post el proyecto de interface SD Card de 8 bits.

    - Link : Cargando archivos .TAP desde una tarjeta SD

    Muestra un listado de archivos .TAP en la pantalla de la TS2068 y seleccionar por número de índice el juego a cargar:
    OUT 14,x :LOAD ""
    siendo x el número del juego a cargar.
    .
    -Link : Cargando archivos SnapShot (.sna) desde una tarjeta SD

    Cargando archivos SnapShot (desde un listado de archivos .sna y .TAP impreso en la pantalla de la TS2068 ), seleccionando por número de índice el juego a cargar:
    OUT 14,x : PRINT USER 14450""
    Siendo x, el número del juego a cargar. La dirección de memoria ROM 14450, tiene la rutina que carga archivos snapshot.

    - 1er ejemplo: Cargando el juego de CyclePath. Un archivo SnapShot (cyclepath.sna) creado con Fuse Emulator.
    - 2do ejemplo: Manic Miner Games. Un archivo SnapShot (ManicMinerP3.sna) creado con Fuse Emulator desde la pantalla o el paso tres.
    -3er ejemplo: Tranzam Game: un archivo SnapShot (TRANZAM.SNA) creado a partir de la interfaz DivMMC.

    Por los ensayos realizados, el formato de archivos SNA es compatible con emuladores como FUSE u otros y la placa DivMMC, siempre que se mantenga la siguiente estructura de archivo.

    Offset Size Description
    ------------------------------------------------------------------------
    0 1 byte I
    1 8 word HL',DE',BC',AF'
    9 10 word HL,DE,BC,IY,IX
    19 1 byte Interrupt (bit 2 contains IFF2, 1=EI/0=DI)
    20 1 byte R
    21 4 words AF,SP
    25 1 byte IntMode (0=IM0/1=IM1/2=IM2)
    26 1 byte BorderColor (0..7, not used by Spectrum 1.7)
    27 49152 bytes RAM dump 16384..65535
    ------------------------------------------------------------------------
    Total: 49179 bytes

    La interface es totalmente autónoma y es controlada 100% desde la TS2068, sin necesidad de operar el Raspberry desde una PC o Notebook
     

Moderador (s): homecomputer, Selandari, pastbytes, Palamar, phd, Durandal