USART, UART, RS232, USB, SPI, I2C, TTL

Serial es la palabra general para cualquier cosa que sea multiplexación por división de tiempo, para usar un término caro. Esto significa que los datos se transfieren con el tiempo, la mayoría de las veces un bit tras otro. Todos los protocolos que nombra son protocolos en serie.

UART , para un receptor asíncrono genérico, es uno de los protocolos seriales más utilizados. Es casi tan antiguo como yo y muy simple. La mayoría de los controladores tienen un UART de hardware a bordo. Utiliza una línea de datos para transmitir y otra para recibir datos. Más comúnmente, se transmiten datos de 8 bits: 1 bit de inicio (bajo), 8 bits de datos y 1 bit de parada (alto). Un bit de inicio bajo y un bit de parada alto significan que siempre hay una transición de alto a bajo para iniciar la comunicación. Esto es lo que describe la UART. No hay nivel de voltaje, por lo que puede usarlo a 3.3V o 5V, dependiendo del microcontrolador que esté usando. Tenga en cuenta que los microcontroladores que quieran comunicarse a través de UART deben acordar la velocidad en baudios, velocidad de bits porque solo tienen un bit de inicio para la sincronización. A esto se le llama comunicación asincrónica.

Para comunicaciones de larga distancia (no debe ser de cientos de metros), el UART de 5 V no es muy confiable, por lo que se convierte a un voltaje más alto, generalmente + 12V para «0» y -12 V para «1». El formato de datos sigue siendo el mismo. Luego tiene RS-232 (que en realidad debe llamar EIA-232, pero nadie más lo hace).

La dependencia del tiempo es una de las grandes desventajas del UART y la solución USART para un transmisor de recepción universal síncrono / asíncrono. UART puede hacer esto, pero también el protocolo síncrono. En modo síncrono, no solo hay datos, sino también el reloj transmitido. Con cada bit, un pulso de sincronización le dice al receptor que se enganche en ese bit. Los protocolos síncronos requieren un mayor ancho de banda, como en el caso de la codificación Manchester, o un cable adicional para relojes como SPI e I2C.

SPI (Serial Peripheral Interface) es un protocolo serial muy simple. El maestro envía una señal de reloj y cada pulso de sincronización cambia un bit al esclavo y un bit al esclavo. Por lo tanto, los nombres de las señales son SCK para el reloj, MOSI para Master Out Slave In y MISO para Master In Slave Out. Usando señales SS (Selección de esclavos), el maestro puede controlar múltiples esclavos en el bus. Hay dos formas de conectar varios esclavos a un maestro, una se menciona anteriormente, es decir, usando la selección de esclavos y la otra usando la conexión en serie, usa menos pines de hardware (selecciona líneas), pero el software se vuelve complejo.

I2C (Inter-Integrated Circuit, pronunciado «I cuadrado C») es también un protocolo sincrónico, y es lo primero que vemos que tiene «inteligencia»; otros movieron estúpidamente los bits hacia adentro y hacia afuera, y así fue. I2C usa solo 2 cables, uno para reloj (SCL) y otro para datos (SDA). Esto significa que el maestro y el esclavo envían datos por el mismo cable, nuevamente controlado por el maestro, que genera una señal de reloj. I2C no utiliza selecciones de esclavos independientes para seleccionar un dispositivo específico, pero es direccionable. El primer byte enviado por el maestro contiene una dirección de 7 bits (por lo que puede usar 127 dispositivos en el bus) y un bit de lectura / escritura que indica si los siguientes bytes también vendrán del maestro o deberían venir del esclavo. Después de cada byte, el receptor debe enviar un «0», para acusar recibo de un byte, que el maestro captura con el noveno pulso de reloj. Si el maestro quiere escribir un byte, se repite el mismo proceso: el maestro coloca bit tras bit en el bus y cada vez da un pulso de sincronización para indicar que los datos están listos para ser leídos. Si el maestro desea recibir datos, solo genera pulsos de reloj. El esclavo debe asegurarse de que el siguiente bit esté listo cuando se dé el pulso de sincronización. Este protocolo está patentado por NXP (anteriormente Phillips) para ahorrar el costo de licencia de Atmel al usar la palabra TWI (interfaz de dos cables) que es exactamente igual que I2C, por lo que cualquier dispositivo AVR no tendrá I2C, pero sí TWI. el maestro pone bit tras bit en el bus y cada vez da un pulso de reloj para indicar que los datos están listos para ser leídos. Si el maestro desea recibir datos, solo genera pulsos de reloj. El esclavo debe asegurarse de que el siguiente bit esté listo cuando se dé el pulso de sincronización. Este protocolo está patentado por NXP (anteriormente Phillips) para ahorrar el costo de licencia de Atmel al usar la palabra TWI (interfaz de dos cables) que es exactamente igual que I2C, por lo que cualquier dispositivo AVR no tendrá I2C, pero sí TWI. el maestro pone bit tras bit en el bus y cada vez da un pulso de reloj para indicar que los datos están listos para ser leídos. Si el maestro desea recibir datos, solo genera pulsos de reloj. El esclavo debe asegurarse de que el siguiente bit esté listo cuando se dé el pulso de sincronización. Este protocolo está patentado por NXP (anteriormente Phillips) para ahorrar el costo de licencia de Atmel al usar la palabra TWI (interfaz de dos cables) que es exactamente igual que I2C, por lo que cualquier dispositivo AVR no tendrá I2C, pero sí TWI.

Dos o más señales en el mismo cable pueden causar conflictos y usted tiene un problema si un dispositivo envía un «1» y el otro envía un «0». Por lo tanto, el bus está conectado a un sistema cableado OR: dos resistencias elevan el bus y los dispositivos solo envían niveles bajos. Si quieren enviar un alto nivel, simplemente sueltan el bus.

TTL (Transistor Transistor Logic) no es un protocolo. Esta es una tecnología más antigua para la lógica digital, pero el nombre se usa a menudo para referirse al voltaje de suministro de 5 V, a menudo se refiere incorrectamente a lo que debería llamarse UART.

Hay dos tipos principales de interfaces seriales: síncronas y asíncronas.

Las interfaces síncronas tienen datos transferidos con su sincronización relativa a un reloj explícito que también se proporciona. El ejemplo clásico de esto es SPI, pero también existen formas especiales como I2S para convertidores de audio, JTAG, interfaces de configuración FPGA, etc. Muchos canales de comunicación paralelos solo esta idea se extiende a mover más bits al mismo tiempo. A menudo, pero no siempre, envían primero la parte más significativa.

Las interfaces asincrónicas tienen el tiempo codificado en el propio flujo de datos. Para los «puertos seriales» y estándares relacionados como RS232, el tiempo de palabra es relativo al bit de inicio, y el receptor simplemente muestrea a intervalos apropiados. Otras interfaces pueden ser un poco más complejas y requerir una recuperación de reloj más rápida mediante el uso de algoritmos y bucles de bloqueo de fase. El UART es un «transmisor / receptor asíncrono universal», en realidad un nombre para un bloque de funciones que se usa a menudo para implementar un «puerto serie» con cierta flexibilidad en términos de longitud de palabra, velocidad e inicio / fin. Cosas como RS232, RS422, etc. son los estándares para la señalización eléctrica exterior de los datos que recibirá de estos voltajes,

El «USART» puede ser una fuente de confusión legítima, ya que es una especie de dispositivo híbrido, «Transmisor receptor sincrónico / asincrónico universal». Básicamente, esto se usa y se usa con mayor frecuencia como un UART, pero también se puede configurar para generar (o contabilizar) un reloj de sincronización de datos separado y puede revertir el orden de los bits. Por lo general, está configurado para comunicarse con SPI, pero es posible que no elimine el tiempo asignado para los bits de inicio / parada, por lo que no podrá funcionar con algo como I2S que puede esperar un flujo continuo de datos sin espacios entre palabras.

RS-232 es un protocolo serie muy simple que se utilizó originalmente para módems y teleimpresores. Esto es lo que comúnmente se conoce como puerto serie (o puerto COM en MS-Windows). En la línea, usa nominalmente niveles de ± 12 V, pero estos pueden variar ampliamente ya que la detección se define en ± 3 V. Siempre hay un controlador de línea (actualmente generalmente en la familia MAX232) que convierte estos niveles en niveles de señal digital interna de la computadora o microcontrolador. y fuera de ella.

TTL significa transistor-transistor-lógica y tiene su propio nivel de cero lógico alrededor de 0 V y de lógica alrededor de 5 V. A menudo, cualquier lógica de 5 V se llama TTL, aunque la mayoría de los circuitos se construyen actualmente como CMOS. También hay muchos circuitos en la actualidad que operan a 3.3V, que ya no es TTL.

En términos de niveles internos, los niveles en la línea RS-232 están invertidos, + 12V es el mínimo lógico y -12 V es el máximo lógico, lo que puede resultar confuso.

Por lo general, se muestra una señal lógica para describir el formato de datos. Cuando la línea está inactiva, es alta. La transmisión comienza con el bit de inicio menos significativo, el bit de datos con el bit menos significativo primero, un bit de paridad adicional y uno o dos bits de parada (1 lógico). Esto se denomina transmisión asíncrona porque los bits de inicio y parada sincronizan los datos de cada byte por separado.

Un UART (transmisor receptor universal asíncrono) es un dispositivo en una computadora o microcontrolador que realiza dicha comunicación asíncrona.

El USART (Receptor-transmisor síncrono asíncrono universal) es un dispositivo que además puede realizar algunos tipos de transmisión síncrona, de ahí la S. adicional. Qué tipo cambia, debe encontrarlo en la hoja de datos.

SPI, I2C y USB difieren (y en el caso de USB muy largos) historiales.

Para mejorar el rendimiento, se desarrolló el protocolo CAN. En este concepto se utiliza el arbitraje, en el que dos dispositivos están listos para comunicarse, luego, dependiendo de su prioridad, se produce la transmisión o recepción. CAN se usa ampliamente en muchas industrias.

Emulador real de la unidad 1541 mediante Raspberry Pi – PI1541 para Commodore 64 – 128

La unidad de disco Commodore 1541 contiene en su interior  CPU, ROM, RAM, dispositivos IO y la mecánica de la unidad por lo que es una computadora en si misma. Debido a la popularidad de las máquinas Commodore y la consiguiente proliferación de software creado para ellas, se desarrollaron todo tipo de exóticos cargadores rápidos y esquemas de protección contra copias. Como consecuencia la solución de tarjeta SD  de ciclo exacto ha tardado más que otros sistemas en llegar a buen término.

¿En qué se diferencia Pi1541 de SD2IEC?

A diferencia de SD2IEC, Pi1541 emula un 6502 y los dos 6522. Cualquier código que se le pida que ejecute se ejecuta en un ciclo exacto. SD2IEC admite un conjunto limitado de cargadores rápidos al intentar adivinar el cargador rápido a partir del código que se le envía. SD2IEC no ejecutará ni puede ejecutar el código, simplemente simula los protocolos de comunicación. Como consecuencia, solo se admite una pequeña cantidad de cargadores rápidos populares. Como Pi1541 puede ejecutar código en su núcleo 6502 emulado, admite una amplia gama de cargadores rápidos (juegos y escenas de demostración), incluso originales protegidos contra copia.

Antecedentes

Preparación

Para usar Pi1541, necesitará una Raspberry Pi 3B (o 3B +), una tarjeta SD, un cable, firmware gratuito de la Raspberry Pi Foundation y un archivo ROM Commodore 1541 válido.
El cable fue diseñado para ser lo más simple y económico posible.

CONFIGURACIÓN DE TARJETA SD

1. Formatee una tarjeta SD en Fat32.
2. Descargue Raspberry Pi Firrmware de la Raspberry Pi Foundation.
3. Una vez descargado, descomprima el archivo.
4. Copie los 3 archivos (bootcode.bin, fixup.dat y start.elf (que se encuentran en firmware-master \ boot)) en la carpeta raíz de su tarjeta SD.
2. Descomprima el archivo zip suministrado (Pi1541.zip) en la tarjeta SD en blanco. (Esto creará una carpeta llamada 1541 en la carpeta raíz de la tarjeta SD. Aquí es donde puede colocar las imágenes y carpetas de su disco Commodore).
3. Copie un archivo que contenga una imagen ROM 1541 (por ejemplo, vice-3.1 \ DRIVES \ dos1541) en la carpeta raíz de la tarjeta SD. La ROM debe llamarse dos1541 o d1541.rom o d1541II o Jiffy.bin.
4. (OPCIONAL) Copie un archivo que contenga una ROM de fuente CBM (por ejemplo, vice-3.1 \ C64 \ chargen ) en la carpeta raíz de la tarjeta SD. La ROM debe llamarse chargen.
5. Copie las imágenes y carpetas de su disco en la carpeta 1541 que ahora se encuentra en la tarjeta SD.
6. Cree un cable.

Para obtener una guía paso a paso sobre los pasos adicionales necesarios para configurar un Pi0 o Pi1, consulte el increíble canal de You Tube de mi amigo Tony: The LEEC – Lagom Effort Electronics Channel y su tremendamente útil video; –
Howto: Pi1541 en RPi Zero y 1 

CABLE

Las computadoras Commodore pueden producir 5V en sus puertos seriales. Las Raspberry Pi solo pueden tolerar 3.3V en sus pines GPIO. Desafortunadamente, esto complica el diseño del cable. Se requiere un convertidor de nivel lógico bidireccional I2C para convertir los voltajes para que cada dispositivo solo esté expuesto a los voltajes que requiere.

Los interruptores son completamente opcionales. Si va a conectar un teclado a su Pi, entonces no los necesita. El zumbador piezoeléctrico también es opcional (de hecho, para habilitarlo, debe configurarlo en el archivo options.txt que se explica a continuación). Por el momento, solo se admiten zumbadores piezoeléctricos sin generadores. Si no conecta y configura un Piezo, aún puede obtener los sonidos de pasos de cabeza a través de la toma de auriculares de Pi. Nuevamente, el LED de actividad es opcional. Se me ha proporcionado para aquellos que desean un LED externo para sus carcasas Pi personalizadas.

Opciones de cable

Hay muchas opciones para el hardware.
Las dos opciones que presento aquí varían en complejidad.

La opción A está bien si no tiene otros dispositivos (unidades, impresoras, SD2IEC, etc.) en el bus serie. Si es así, cree la opción B.

Opción A

Esta es la versión más simple del hardware. Alimente el Pi con una fuente de alimentación externa adecuada. El convertidor de nivel lógico bidireccional I2C obtiene sus 5 V del pin 2 de Pi y 3,3 V del pin 1 de PI. Ambos lados GND y el pin 2 del puerto serie GND del C64 están conectados al pin PI 9. El pin 3 del puerto serie ATN del C64 está conectado a un pin lateral de 5v libre del convertidor de nivel y el lado de 3.3v se conecta al pin 3 de Pi (GPIO02). El pin 4 del puerto serie CLOCK de C64 se conecta a un pin lateral de 5v libre del convertidor de nivel y el lado de 3.3v se conecta al pin 11 de Pi (GPIO17).


El pin 5 del puerto serie DATA de C64 se conecta a un pin lateral de 5v libre del convertidor de nivel y el lado de 3.3v se conecta al pin 12 de Pi (GPIO18).
El pin 6 del puerto serie RESET de C64 está conectado a un pin lateral de 5v libre del convertidor de nivel y el lado de 3.3v luego se conecta al pin 5 de Pi (GPIO03).

Los botones / interruptores, el zumbador piezoeléctrico y el LED son opcionales.

Opción B

Esta opción utiliza un 7406 al igual que todos los equipos Commodore y, por lo tanto, puede admitir más dispositivos conectados al bus serie.
(Nota: también puede usar un 7405, 7416, 74LS05, 74LS06 o un 74LS16)
Nuevamente, los botones / interruptores, el zumbador piezoeléctrico y el LED son todos opcionales.

Si crea la opción B, deberá colocar la línea «splitIECLines = 1» en el archivo options.txt que se encuentra en la carpeta raíz de la tarjeta SD.

Botones / interruptores

Opcionalmente, puede conectar botones de contacto momentáneos que pueden ayudar en el uso del Pi1541.
(Estos son opcionales y no son necesarios si va a utilizar un teclado USB conectado a su Pi)
Los botones están conectados así; –
 – Restablecer (o Seleccionar) el pin 13 de Pi (GPIO27)
 – Disco anterior (o Subir) Pin 15 de Pi (GPIO22)
 – Siguiente disco (o Bajar) Pin 16 de Pi (GPIO23)
 – Carpeta de salida Pin 7 de Pi (GPIO04)
 – Inserte el pin 29 de Pi (GPIO05) del disco
 El otro lado del botón está conectado a tierra. (Se utilizan pullups internos para que no necesite resistencias)

Partes

Puede construir su propio sombrero Pi siguiendo el esquema anterior con las siguientes partes; –

Busque; –
«Raspberry Pi 3 Modelo 3 (o 3B +) con fuente de alimentación adecuada» x1
«Terminal S hembra 6 pines DIN PCB» x2
«2×20 pines Conector hembra PCB «x1 (paso de 2,54 mm)
» Convertidor de nivel lógico
bidireccional I2C «x1 (4 u 8 canales) » Tarjeta Micro SD 8-32GB «x1
» 5cm x 7cm Tablero perfilado «x1
» 6x6x4.Interruptor momentáneo de PCB DIP de 5 mm y 4 pines «x5 (opcional)

Utilizando

Una vez configurado, opcionalmente puede conectar el Pi a una pantalla a través del puerto HDMI (también conecte un teclado USB).
Luego, puede usar el teclado para navegar por las carpetas y seleccionar imágenes de disco.
PAGEUP / DOWN ayuda a moverse más rápido por las carpetas.
INSERT agrega una imagen a la lista seleccionada.
ENTER agrega una imagen a la lista seleccionada y entra en modo de emulación.
ESC sale de una imagen montada (y del modo de emulación) (y borra las selecciones).
RETROCESO sale de una carpeta (y borra las selecciones).
Mientras está en modo de emulación, las teclas numéricas se utilizan para intercambiar imágenes de disco (cuando se seleccionan varias imágenes).
Mientras está en el modo de exploración, las teclas numéricas se utilizan para intercambiar imágenes ROM.

Una vez que se monta una imagen, puede usar la computadora Commodore como lo haría con un disco insertado en un 1541

real.O

Una vez que el Pi se haya iniciado, simplemente escriba LOAD * , 8 y cargará fb64 (CBM-Browser) y puede usar esto para navegar por carpetas y seleccionar imágenes.
Nota
: fb64 se puede utilizar para cargar archivos PRG.
– puede utilizar CBM-Browser fb20, fb16, etc. para otras computadoras Commodore. (solo descomprime el fb.zip en la carpeta 1541 de su tarjeta). También necesitará usar las versiones que he proporcionado, ya que tuve que modificar la fuente para agregar una verificación de errores adicional para que esperen a que el Pi cargue la imagen y el 1541 emulado para que arranque. LOAD «*», 8 carga el primer archivo colocado en la carpeta 1541, así que asegúrese de que el fb del comuter que más usa sea el primer archivo copiado en la carpeta 1541 durante la configuración.

– Usando fb64 (o los otros fbs para otros sistemas) para seleccionar imágenes de, por ejemplo, C64_Preservation_Project_10th_ Anniversary_Collection, los nombres de archivo pueden ser demasiado largos para el 64 y solo mostrará 16 caracteres. Como puede haber varias imágenes de disco que comienzan con los mismos primeros 16 caracteres, puede resultar confuso cuál ha seleccionado. El 64 solo devuelve los primeros 16 caracteres, por lo que Pi montará la primera imagen que encuentre en esa carpeta que coincida con los primeros 16 caracteres. (el uso de la pantalla Pi mostrará el nombre completo).
– Si apaga y enciende el Pi para reiniciarlo e intenta cargar fb64 y obtiene un « dispositivo no encontrado », intente nuevamente ya que el Pi necesita un poco de tiempo para arrancar.

Al usar G64 e imágenes de disco originales, la mayoría de ellas fueron diseñadas para ejecutarse automáticamente y, por lo tanto, cargarse con LOAD «*», 8,1 (Algunos directorios incluso están vacíos si los enumera). Esto puede confundir al navegador CBM, por lo que le recomiendo que una vez que navegue en la imagen de disco de su elección, salga del navegador CBM presionando Q y luego puede escribir la CARGA obligatoria «*», 8,1

Nota: algún software original previene su directorio se muestre a través del comando LOAD «$», 8.

Algunos archivos NIB también funcionan. Tenga en cuenta que hay muchos NIB y G64 sospechosos que no funcionan incluso cuando se transfieren a disquetes reales (incluso dentro de c64pp)

OPCIONES

Se puede colocar un archivo de texto simple llamado options.txt en la carpeta raíz de la tarjeta SD.

ID del dispositivo

Si desea cambiar el ID de la unidad, edite el archivo options.txt y puede agregar / descomentar la línea; –
deviceID = 9

ROM

También puede cargar una ROM alternativa copiando otras imágenes de ROM y agregando líneas a options.txt con sus nombres, por ejemplo; –
ROM2 = Jiffy.bin
ROM3 = d1541II
(Puede intercambiar ROMS cuando no está en modo de emulación – a través de el teclado (teclas numéricas))

OnResetChangeToStartingFolder

Cuando utilice uno de los archivos de CBM-Browser para buscar carpetas en la computadora Commodore, deberá volver a cargarlo cada vez que reinicie la computadora. Cuando esta opción se establece en 1, Pi1541 volverá a cambiar a la carpeta \ 1541 cada vez que se restablezca el 1541 emulado (ver restablecimiento a continuación).

SoundOnGPIO

Cuando use un zumbador piezoeléctrico en lugar de sonido a través de la toma de auriculares de Pi, habilite esta opción.

Ancho de pantalla

ScreenHeight

Cuando utilice video compuesto, es posible que desee disminuir la resolución.
Estas opciones le permiten experimentar con tamaños de pantalla.
Por ejemplo, agregar estas líneas hará que el texto sea más grande; –
ScreenWidth = 512
ScreenWidth = 384

SplitIECLines

Esta opción debe configurarse si su hardware es como schamatic B.

Inversiones

Esta opción debe configurarse si su hardware es como schamatic B pero en lugar de un cambiador de nivel de voltaje, está utilizando otros dispositivos que invierten las entradas.

UTILIZANDO

Si una imagen de disco en la tarjeta SD está configurada para solo lectura, eso equivale a que el disco esté protegido contra escritura. (Su nombre también aparecerá en un color diferente en la pantalla de la Pi)

La línea RESET en el puerto serie de la máquina Commodore se comporta de manera diferente entre las computadoras Commodore e incluso entre diferentes revisiones del mismo modelo. Es posible que el 1541 emulado no se reinicie cuando reinicie su máquina. Puede reiniciar instalando un interruptor de reinicio en el cable y presionándolo o simplemente salir de la imagen del disco emulado a través del teclado de Pi. Nota: el Pi emulado siempre se reiniciará cuando se apague y encienda la máquina a la que está conectada.

ADVERTENCIAS

ADVERTENCIA: Construya bajo su propio riesgo su equipo Pi y Commodore.

ADVERTENCIA: asegúrese de que está utilizando copias de las imágenes de su disco, ya que podría destruirlas.

Asegúrese de utilizar una fuente de alimentación adecuada para el Pi. La Fundación Respberry Pi recomienda un mínimo de 2.5A.
Hasta ahora, el 100% de los problemas encontrados por otros al configurar y hacer funcionar el PI1541 se debían a que usaban una fuente de alimentación incorrecta o intentaban alimentar todo tipo de dispositivos exóticos a través de los puertos USB del Pi mientras intentaban usarlo.
Si el Pi muestra el icono del rayo, entonces la fuente de alimentación es insuficiente y el Pi1541 probablemente no funcionará.

Nota: algunas demostraciones pueden bloquear algunos 64 que son susceptibles al error VSP. Esto no es causado por Pi1541.

Si está construyendo la opción A, tenga en cuenta: –
«El método FET para adaptar un bus de drenaje abierto de 3.3V a un bus de drenaje abierto de 5V requiere que el RPi absorba toda la corriente que las fuentes laterales de 5V. gran problema si es la única unidad conectada, pero el bus IEC permite conectar varias unidades, impresoras y trazadores al mismo tiempo. Con el método FET, toda la corriente de cada resistencia pull-up debe ser absorbida por los pines RPi, que eventualmente se romperá «.

 

https://mingos-commodorepage.com/tutorials/pi1541tut.php?id=124&title=Der%20PI1541%20Floppy%20Emulator

https://www.thingiverse.com/thing:3127040

http://users.on.net/~clockmeister/JiffyDOS-Binaries/

Principales Mensajes de Error Atari

Nro.

Descripción del error

2

La memoria es insuficiente para el programa o las variables

3

Valor fuera del Rango esperado

4

Demasiadas Variables

5

Error en el largo del string. Se excedio el largo dimensionado.

6

Falta de DATA en una instrucción READ

7

Numero entero mayor a 32.767

8

Error en INPUT. Una variable numérica no puede almacenar letras, símbolos o caracteres gráficos.

9

Error de dimensionamiento DIM . sub-string excede el dimensionamiento dado. Variable ya dimensionada.

10

Demasiadas instrucciones GOSUB utilizadas en el programa. El  Stack de parámetros esta excedido.

11

Error de division por cero. Rango de coma flotante excedido.

12

Linea de programa inexistente.

13

Uso de NEXT si su correspondiente NEXT. Lo mas probables es que hayan ciclos anidados y estos se crucen.

14

Sentencia demasiado larga o es compleja

15

Sentencias GOSUB o FOR eliminadas.

16

Sentencias RETURN sin su correspondiente  GOSUB.

17

Instrucción indescifrable para ejecutar.

18

String con un carácter no valido. Programa trata de obtener el valor de un caracter no numerico con VAL.

SDrive-MAX Emulador de disquete Atari de 8 bits basado en Arduino y con pantalla táctil

SDrive-MAX es un  emulador de disquete Atari de 8 basado en Arduino y con pantalla táctil 

Ahora es posible insertar o cambiar imágenes independientemente del funcionamiento de la computadora, y esa es probablemente una de las características principales de este proyecto. También existe ahora una emulación de cinta.
Además, evité el obstáculo de tener que construir el hardware yo mismo portándolo a la plataforma comercial Arduino. Para que todos puedan obtenerlo fácilmente por sí mismos, y solo tienen que actualizar el firmware a través de USB y establecer la conexión con el Atari.

Las características principales de este proyecto es la posibilidad de insertar y cambiar imágenes independientemente de la función de la computadora, también tiene disponible una emulación de cinta.

Este proyecto fue desarrollado por los Alemanes Daniel y Klauss.

Mediante el AVRDUDE que es un software gratuito y que permite utilizar las capacidades y características del dispositivo Touch Screen o pantalla táctil. AVRDUDE es una utilidad para descargar / cargar / manipular el contenido de ROM y EEPROM de microcontroladores AVR utilizando la técnica de programación en el sistema (ISP).

Para flashear el firmware a dispositivo debemos utilizar el puerto USB disponible en la tarjeta de Arduino UNO o compatible.

El SDrive-MAX es un emulador de unidad de casete y disquete basado en Arduino para la gama de computadoras Atari de 8 bits. El SDrive-MAX le permite leer y escribir archivos ATR y CAS en hardware Atari real como si fueran discos y casetes reales. El SDrive-MAX puede cargar archivos XEX ejecutables como si estuvieran en discos de arranque de solo lectura, y puede coincidir con la sincronización de las unidades de disquete 810 y 1050, lo que le permite cargar discos copiados con flujo ATX con protección contra copia aún en su lugar. El software SDrive-MAX todavía está en desarrollo activo.

De Re SDrive-MAX