~~NOTOC~~
===== REFERENCIA TÉCNICA DEL AMSTRAD CPS8256 =====
----
Las fuentes de este documento son dos archivos de texto PD, DART.DOC (de SJ Dibble) y AMS-SIO.DAT, que cubren únicamente el puerto serie. Se agradecería información sobre el puerto paralelo y cualquier otra interfaz serie/paralelo.
Richard Fairhurst , 1997
**DIRECCIONES DE PUERTO**
El CPS8256 utiliza las siguientes direcciones de E/S. Como referencia, los puertos equivalentes en las interfaces Amstrad, Pace y Cirkit para el CPC se incluyen entre paréntesis.
| &E0 | (&FADC) | Datos de DART |
| &E1 | (&FADD) | Control de DART |
| &E2 | (&FADE) | Datos de DART (puerto B) |
| &E3 | (&FADF) | Control DART (puerto B) |
| &E4 | (&FBDC) | 8253 contador 0 |
| &E5 | (&FBDD) | 8253 contador 1 |
| &E6 | (&FBDE) | no usado |
| &E7 | (&FBDF) | 8253 palabra en modo de escritura |
**VELOCIDADES EN BAUDIOS**
Para configurar la velocidad de transmisión, envíe &36 al puerto &E7 y dos valores de la tabla (en el orden indicado) al puerto &E4. Para configurar la velocidad de recepción, sustituya &36 por &76. Estos valores se obtienen con el CTC 8253 conectado a 1.84375 MHz.
Tenga en cuenta que el 8250 solo es fiable a velocidades de hasta 9600 baudios. Para velocidades más altas, debería sustituirlo por un chip 16550AF, compatible con el 8250. (Gracias a Rob Scott por esta información).
| 31250 | &00, &04 |
| 19200 | &00, &07 |
| 9600 | &00, &0D |
| 7200 | &00, &11 |
| 4800 | &00, &1A |
| 3600 | &00, &23 |
| 2400 | &00, &34 |
| 2000 | &00, &3F |
| 1800 | &00, &45 |
| 1200 | &00, &68 |
| 600 | &00, &D0 |
| 300 | &01, &A0 |
| 200 | &02, &71 |
| 150 | &03, &41 |
| 110 | &04, &70 |
| 75 | &06, &83 |
| 50 | &09, &C4 |
| 45 | &0A, &D9 |
**REGISTROS DART**
Otras funciones de control implican la programación del DART. Para escribir un valor en un registro, primero envíe el número de registro y luego el nuevo valor a &E1. Para leer un valor, envíe el número de registro y luego podrá ingresarlo desde el mismo puerto.
* **__Escribir registro 0__**
| &18: | restablecer puerto |
| &38: | restablecer bits de error |
* **__Escribir registro 3__**
| b7 y b6: | bits de datos Rx ( 118 bits, 107, 016, 005) |
| b5: | protocolo de enlace de hardware mediante RTS/CTS |
| b4 a b1: | deben ser 0 |
| b0: | habilita la línea de datos Rx |
* **__Escribir registro 4__**
|b7 y b6: |modo de reloj DART (establecido en 01)|
|b5 y b4: |no utilizados (establecidos en 0)|
|b3 y b2: |bits de parada ( 112 bits, 101, 011,5, 00ilegales)|
|b1: |tipo de paridad ( 1par, 0impar)|
|b0: |verificación de paridad activada/desactivada|
* **__Escribir registro 5__**
|b7: |DTR habilitado/deshabilitado|
|b6 |bits de datos de Tx ( 118 bits, 107, 016, 005)|
|b4: | interrupción de envío|
|b3: |habilitar línea de datos de Tx|
|b2: |no utilizado|
|b1: |RTS habilitado/deshabilitado|
|b0: |no utilizado|
* **__Leer registro 0__**
|b7: |interrupción recibida|
|b6: |no utilizada|
|b5: |CTS|
|b4: |indicación de timbre|
|b3: |DCD (detección de portadora)|
|b2: |búfer de transmisión listo|
|b1: |relacionado con interrupción|
|b0: |carácter de recepción disponible|
* **__Leer registro 1__**
|b7: |no utilizado|
|b6: |error de trama|
|b5: |error de desbordamiento de Rx|
|b4: |error de paridad|
|b3 a b1: |no utilizado|
|b0: |todos enviados|