Read Error A y B como lo sabía la máquina?¿

Sistemas 464, 664, 6128, 472, ...
Avatar de Usuario
mentalthink
Amiga 2500
Amiga 2500
Mensajes: 2840
Registrado: 11 Abr 2010, 15:06
Gracias dadas: 45 veces
Gracias recibidas: 14 veces

Read Error A y B como lo sabía la máquina?¿

Mensajepor mentalthink » 29 Dic 2014, 23:37

Pongo esto en Amstrad pero supongo que es lo mismo en Spectrum, MSX o el mismo Amstrad.

El asunto es, como por ejemplo, un Amstrad devolvía un error Read erro A o B (Que no se cual es la diferencia)... al leer la cinta... Ya sé que me direís la cinta no la leía bien, OK, pero en que se basa la CPU para determinar el error, me explico, si la CPU no tiene referencia de los comandos que tiene internos y los mira y compara con lo que lee no puede determinar que hay un error, no?¿, y menos que haya 2...(Digo yo que sería algo asi)...

Entonces como digo, que proceso hacía la CPU para determinar lo errores de carga, cada X baudios iba mirando lo que leía y lo comprobaba en una tabla en dónde estuvieran todas los Comandos de la CPU, una y otra vez?¿... que me parece a mi demasiado lento eso, o no tiene nada que ver la CPU y viene de la señal que envian los cabezales al conversor analógico Digital...

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 3012
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 86 veces
Gracias recibidas: 356 veces
Contactar:

Re: Read Error A y B como lo sabía la máquina?¿

Mensajepor zup » 29 Dic 2014, 23:52

No sé exactamente cómo lo hace el Amstrad, pero (al menos) hay varias cosas en las que fijarse en las comunicaciones:

- Pérdida de señal. Por ejemplo, vas leyendo el tercer bit de un byte y te desaparece la señal. Como lees de 8 en 8 bytes, ahí hay un error.
- Longitud errónea. Sabes que tienes que cargar 12000 bytes, pero solo cargas 5000. En el otro extremo, podrías tener que cargar 12000 pero encontrarte 12300 (esto no suelen comprobarlo...).
- Paridad. Haces que el número de bits a uno en un byte sea par o impar, según decidas. Para ello, en vez de grabar 8 bytes, grabas 9. Si tienes paridad par y el byte 01010100, añades un 1 al final (4 bits a 1); si tienes 00110000, añades un 0 (2 bits a 1). En el primer caso, un byte 01100000(1) daría error (número impar de bits a 1). No creo que eso lo usen en el Amstrad ya que acabas incrementando un 12.5% el tiempo de carga, pero se usa en los protocolos RS232.
- Checksum. Añades un byte con algún dato de comprobación. Por ejemplo, un XOR de lo que hay grabado, la suma de todos los bytes... cualquier cosa vale. Si al terminar la carga, el byte de comprobación no concuerda con los datos que has leído, ahí tienes un error.

Al final, tienes varias maneras de encontrar errores al leer. Hay también maneras de corregirlos, pero eso no se implementaba en los equipos de 8 bits (porque se lleva tiempo de proceso y tiempo de carga).
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
pinace
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 149
Registrado: 07 May 2012, 22:38

Re: Read Error A y B como lo sabía la máquina?¿

Mensajepor pinace » 30 Dic 2014, 00:26

Read error a: bit muy largo
Read error b: error de CRC
Read error d: Bloque de más de 2048 bytes

Creo recordar que era así. De todas formas consulta el manual del firmware del Amstrad CPC, sección 8 cassette manager.

http://www.cpcwiki.eu/index.php/Soft968:_CPC_464/664/6128_Firmware

Avatar de Usuario
mentalthink
Amiga 2500
Amiga 2500
Mensajes: 2840
Registrado: 11 Abr 2010, 15:06
Gracias dadas: 45 veces
Gracias recibidas: 14 veces

Re: Read Error A y B como lo sabía la máquina?¿

Mensajepor mentalthink » 30 Dic 2014, 00:38

Gracias por ambas respuestas, muy interesantes las 2...
Me miraré lo del cassete de Amstrad...


Volver a “Amstrad CPC”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados