Herramientas de usuario

Herramientas del sitio


es:puerto_serie

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

es:puerto_serie [2026/04/24 15:18] – creado jesuses:puerto_serie [2026/04/24 15:19] (actual) jesus
Línea 1: Línea 1:
 ~~NOTOC~~ ~~NOTOC~~
-===== GUIA DE REFERENCIA DE HARWARE DEL AMSTRAD PCW =====+===== REFERENCIA TÉCNICA DEL AMSTRAD CPS8256 =====
  
 ---- ----
  
 <WRAP justify> <WRAP justify>
-Esta es una guía incompleta del hardware de la serie PCW original de Amstrad: 8256/85129256/9512 10No cubre el PCW16.+Las fuentes de este documento son dos archivos de texto PDDART.DOC (de SJ Dibble) AMS-SIO.DAT, que cubren únicamente el puerto serie. Se agradecería información sobre el puerto paralelo y cualquier otra interfaz serie/paralelo.
  
-Las fuentes incluyen "Todo lo que siempre quisiste saber..." de CP Software, John Elliott, Jacob Nevins (y sus excelentes páginas web), Cliff Lawson (quien amablemente realizó el reconocimiento óptico de caracteres (OCR) de la documentación original de Amstrad), Howard Fisher (quien me prestó un KeyMouse), Paul Hunt y el recurso CPC de Kevin Thacker , que contiene información sobre Z80 y FDC relevante para el PCW. Gracias, chicos. Cualquier información adicional siempre es bienvenida. +Richard Fairhurst , 1997
- +
-Richard Fairhurst , 1996-1997+
 </WRAP> </WRAP>
  
-**INTRODUCCIÓN**+**DIRECCIONES DE PUERTO**
  
 <WRAP justify> <WRAP justify>
-El sistema operativo de PCW es CP/M, que se compone de dos partes principales. +El CPS8256 utiliza las siguientes direcciones de E/SComo referencialos puertos equivalentes en las interfaces Amstrad, Pace Cirkit para el CPC se incluyen entre paréntesis.
- +
-El **BDOS** (Basic Disc Operating System) es el código del sistema operativoescrito por Digital Research. Debería permanecer prácticamente igual en cualquier máquina que ejecute CP/M. +
- +
-La **BIOS** (Sistema Básico de Entrada/Salida) proporciona un conjunto de rutinas que acceden al hardware de la máquina fue escrita en el caso de la PCW por Locomotive/Amstrad. El BDOS invoca las rutinas de la BIOS para todas las operaciones de pantalla, disco e impresora. +
- +
-También es relevante el **CCP** (Procesador de Consola de Comandos), la interfaz que acepta los comandos ingresados ​​en el indicador A>. La implementación de CP/M en PCW solo lo carga al iniciar el sistema, por lo que no debe sobrescribirse. +
- +
-El **TPA** (Área de programa transitorio) es el área de memoria, que comienza en &0100 en un espacio de direcciones de 64k, donde los programas de usuario (archivos .COM) se cargan y se ejecutan.+
 </WRAP> </WRAP>
- 
-**PUERTOS DE E/S** 
- 
-  * **__Hardware externo/FDC__** 
  
 <WRAP box> <WRAP box>
-| &00 | I | Registro de estado de FDC | +| &E0 (&FADC) Datos de DART 
-| &01 | E/S Registro de datos FDC +| &E1 (&FADD) Control de DART 
-|&88-&8F | | Puertos paralelos | +| &E2 (&FADE) Datos de DART (puerto B) | 
-| &9F I | Joystick Kempston | +| &E3 (&FADF) Control DART (puerto B) 
-| &A0 | I | Ratón AMX. Movimiento vertical: b0-3 contador ascendente de 4 bits, b4-7 contador descendente. +| &E4 | (&FBDC) 8253 contador 0 
-| &A1 | I | Ratón AMX. Movimiento horizontal: b0-3 contador derecho de 4 bits, b4-7 contador izquierdo. | +| &E5 | (&FBDD) | 8253 contador 1 
-| &A2 I | Ratón AMX. Estados de los botones: b2 derecha, b1 central, b0 izquierda (0 si se presiona, 1 si no)+| &E6 (&FBDE) no usado 
-| &A0-&A2 |  | Interfaz MIDI EMR | +| &E7 | (&FBDF) | 8253 palabra en modo de escritura |
-| &A8-&AF  | Disco duro +
-| &C8-&CF E/S | Interfaz de enlace de fax circuito compatible con [[es:puerto_serie|CPS8256]]). +
-| &D0-&D4  | Ratón Kempston (similar a AMX) | +
-| &DF | I | MasterScan: tinta b0 debajo del cabezal de escaneo. | +
-| &E0 I | Joystick Cascade/Spectravideo. b4 derecha, b3 arriba, b2 izquierda, b1 fuego, b0 abajo. +
-| &E0-&EF E/S | [[es:puerto_serie|Puertos serie]] (haga clic para más información) |+
 </WRAP> </WRAP>
  
-  * **__Puertos internos__** +**VELOCIDADES EN BAUDIOS**
- +
-<WRAP box> +
-| &F0 | EL | Seleccione el banco para &0000 | +
-| &F1 | EL | Seleccione banco para &4000 | +
-| &F2 | EL | Seleccione banco para &8000 | +
-| &F3 | EL | Seleccione el banco para &C000. Normalmente, &87. | +
-| &F4 | EL | b7-b4: cuando se configura, fuerza que las lecturas de memoria accedan al mismo banco que las escrituras para &C000, &0000, &8000 y &4000 respectivamente | +
-| &F4 | I | Como &F8, con la condición de que b3-0 se restablezca al leer el puerto. Por lo tanto, lea para reactivar las interrupciones. | +
-| &F5 | EL | Dirección de la RAM del rodillo. b7-5: banco (0-7). b4-1: dirección / 512. | +
-| &F6 | EL | Posición de pantalla vertical | +
-| &F7 | EL | b7: video inverso. b6: habilitación de pantalla. | +
-| &F8 | EL | 0 finalizar arranque, 1 reiniciar, 2/3/4 conectar FDC a NMI/interrupciones estándar/ninguna, 5/6 establecer/borrar conteo de terminales FDC, 7/8 encender/apagar pantalla (para video externo), 9/10 encender/apagar motor de disco, 11/12 encender/apagar pitido | +
-| &F8 | I | b6: retorno de 1 línea, leer dos veces seguidas indica retorno de trama. b5: interrupción FDC. b4: indica pantalla de 32 líneas. b3-0: contador de interrupciones de 300 Hz: permanece en 1111 hasta que se restablece in a,(&F4)(ver arriba). | +
-| &FC-&FD |  | Puerto paralelo (PCW9512) | +
-| &FC | E/S | Datos de la impresora matricial | +
-| &FD | EL | Comandos de impresora matricial | +
-| &FD | I | Estado de la impresora matricial. Barra de seguridad b7 (0 fuera), papel b2 encontrado. | +
-</WRAP> +
- +
-<WRAP justify> +
-A diferencia del CPC, el PCW utiliza el método estándar Z80 para acceder a los puertos de E/S. El puerto se almacena como un número (de un solo byte) en C y out ( c ),a se utiliza una instrucción como [insertar número], o bien se pasa como parte de la instrucción out (&port),a. +
-</WRAP> +
- +
-**INTERRUPCIONES/VELOCIDAD DE RELOJ**+
  
 <WRAP justify> <WRAP justify>
-Las interrupciones ocurren 300 veces por segundoo 6 veces por fotograma (como en el CPC), a las 2 líneas de escaneo del flyback de fotograma y cada 52 líneas a partir de entoncesEl flyback de fotograma se puede detectar leyendo el puerto &F8 dos veces consecutivasSolo si b6 está configurado cada vez, el PCW está en flyback de fotograma.+Para configurar la velocidad de transmisiónenvíe &36 al puerto &E7 y dos valores de la tabla (en el orden indicadoal puerto &E4. Para configurar la velocidad de recepciónsustituya &36 por &76Estos valores se obtienen con el CTC 8253 conectado a 1.84375 MHz.
  
-La velocidad de reloj del PCW es de 3,4 MHz, inferior la de una CPU de 4 MHzSin embargo, el acceso del hardware de vídeo ralentiza el acceso la memoria hasta los primeros 128k (bancos 0-7). La interrupción del BIOS también es lenta y debe desactivarse para operaciones de tiempo crítico donde no se requieren operaciones como el escaneo del teclado ni el acceso al disco. +Tenga en cuenta que el 8250 solo es fiable velocidades de hasta 9600 baudiosPara velocidades más altasdebería sustituirlo por un chip 16550AF, compatible con el 8250. (Gracias Rob Scott por esta información).
-</WRAP> +
- +
-**MAPA DE MEMORIA** +
- +
-<WRAP justify> +
-El PCW 8256 tiene 16 bancos de 16k cada uno. Las máquinas de 512k y las expandidas obviamente contienen más. El contenido predeterminado es:+
 </WRAP> </WRAP>
  
 <WRAP box> <WRAP box>
-|0| &0000-&3FFF:BIOSjumpblock extendido+31250 | &00, &04 | 
-|1| &0000-&192F:| BIOS+| 19200 | &00&07 
-| | &1930-&3FFF:| pantalla+9600 | &00, &0D 
-|2| &0000-&332F:| pantalla+7200 | &00, &11 
-| | &3600-&37FF:| roller RAM+4800 | &00, &1A 
-| | &3800-&3FFF:| conjunto de caracteres+3600 | &00, &23 
-|3| &0000-&3FEF:BIOSBDOS+2400 | &00, &34 
-| | &3FF0-&3FFF:| Mapa de teclado DMA+2000 | &00, &3F | 
-|4| &0000-&00FF:| espacio de trabajo y saltos de BIOS/BDOS+| 1800 | &00&45 
-| | &0100-&3FFF:| TPA+1200 | &00, &68 
-|5| &0000-&3FFF:| TPA+600 | &00, &D0 
-|6| &0000-&3FFF:| TPA+300 | &01, &A0 
-|7| &0000-&2FFF:| RAM común (disponible para su uso en todas las configuraciones)+200 | &02, &71 
-| | &3000-&3FFF:| espacio de trabajo CP/M+150 | &03, &41 
-|8| &0000-&3FFF:| CCP, tablas hash, buffers de datos+110 | &04, &70 
-|9-16| &0000-&3FFF:| Disco RAM (unidad M:)|+75 | &06, &83 
 +50 | &09, &C4 
 +45 | &0A, &D9 |
 </WRAP> </WRAP>
  
-<WRAP justify> +**REGISTROS DART**
-La RAM del rodillo y la memoria de pantalla pueden almacenarse en cualquiera de los bancos 0 a 7. Por lo tanto, los requisitos de acceso a los circuitos de vídeo ralentizan el acceso a código/datos en estos bancos.+
  
-Cualquier banco puede mapearse en cualquiera de los cuatro segmentos de 16k del espacio de direcciones del Z80 mediante los puertos &F0-&F3En CP/Mlas siguientes configuraciones (con nombre) son estándar:+<WRAP justify> 
 +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 &E1Para leer un valorenvíe el número de registro y luego podrá ingresarlo desde el mismo puerto.
 </WRAP> </WRAP>
  
 <WRAP box> <WRAP box>
-^ ^ Pantalla ^ BDOS (0) ^ Extra (n+2) ^ TPA (1) ^ +  * **__Escribir registro 0__**
-| &C000 (&F3) | 7 comunes | 7 comunes | 7 comunes | 7 comunes | +
-| &8000 (&F2) | 2 pantallas | 3 BDOS/BIOS | 3 BDOS/BIOS | 6 TPA | +
-| &4000 (&F1) | 1 pantalla/BIOS | 1 pantalla/BIOS | 8+n CCP o M: | 5 TPA | +
-| &0000 (&F0) | 0 BIOS | 0 BIOS | 0 BIOS |4 TPA | +
-</WRAP>+
  
-<WRAP justify> +| &18: | restablecer puerto | 
-Al enviar el número de banco (con b7 activado) a uno de los puertos &F0-&F3, se selecciona ese banco para lectura y escritura. Al enviar el número de banco para escritura a b0-2 de un puerto y el banco para lectura a b4-b6 (con b7 desactivado), se asignan bancos separados para lectura y escritura: esto solo se puede usar para los primeros 8 bancos.+&38: | restablecer bits de error |
  
-Como ejemplo de acceso de lectura/escritura, para mapear el banco 5 en la memoria desde &4000, usaría ld a,&85: out (&F1),a. +  * **__Escribir registro 3__**
-</WRAP>+
  
-**MEMORIA DE PANTALLA**+| 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 |
  
-<WRAP justify> +  * **__Escribir registro 4__**
-La pantalla PCW en los modelos de 50 Hz (no estadounidenses) tiene una resolución de 90 x 32 caracteres o 720 x 256 píxeles. Cada línea de píxel puede comenzar en cualquier dirección dentro de los primeros 128 kB de memoria: la dirección de cada línea se almacena en un área de memoria de 512 bytes conocida como RAM de rodillo. Por defecto, la RAM de rodillo se encuentra en &3600 (asignada a &B600) en el banco 2, pero esto puede cambiarse mediante el puerto &F5. Contiene 256 direcciones consecutivas, almacenadas en el formato habitual de Z80, primero el byte bajo: b16-14 controlan en qué banco se encuentra la línea, b13-3 la dirección en el banco (en unidades de 16 bytes) y b2-0 el desplazamiento. Por lo tanto, una dirección de RAM de rodillo bbbxxxxxxxxxxxyyy indica banco bbb, dirección 00xxxxxxxxxxx0yyy.+
  
-Cada línea tiene una longitud de 720 bytes, no de 90. Esto se debe a que el PCW ocupa cada octavo byte a partir de la dirección indicada por la RAM de rodillos. De esta manerase pueden intercalar ocho líneas de pantalla de la siguiente manera para facilitar la escritura de caracteres (suponiendo una disposición consecutiva de la RAM de rodillos): +|b7 y b6: |modo de reloj DART (establecido en 01)| 
-</WRAP>+|b5 y b4: |no utilizados (establecidos en 0)| 
 +|b3 y b2: |bits de parada ( 112 bits101, 011,5, 00ilegales)| 
 +|b1: |tipo de paridad 1par, 0impar)| 
 +|b0: |verificación de paridad activada/desactivada|
  
-  (a+0) (a+8)  (a+16) ...  +  * **__Escribir registro 5__**
-  (a+1) (a+9)  (a+17)  +
-  (a+2) (a+10) (a+18)  +
-  (a+3) (a+11) (a+19)  +
-  (a+4) (a+12) (a+20)  +
-  (a+5) (a+13) (a+21)  +
-  (a+6) (a+14) (a+22)  +
-  (a+7) (a+15) (a+23)+
  
-La posición vertical de la pantalla en el monitor se puede alterar incrementando o disminuyendo el puerto &F6.+|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|
  
-**MAPEO DEL TECLADO**+  * **__Leer registro 0__**
  
-<WRAP justify> +|b7: |interrupción recibida| 
-El teclado del PCW se asigna directamente a los últimos 16 bytes del banco 3, incluso con las interrupciones deshabilitadas. Cada tecla se refleja en un bit en los bytes &3FF0-&3FFA. +|b6: |no utilizada| 
-</WRAP>+|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|
  
-<WRAP box> +  * **__Leer registro 1__**
-| b7: | k2 k1 [+] . , espacio VXZ del< alt |  +
-| b6: | k3 k5 1/2 / MNBC bloquear k. |  +
-| b5: | k6 k4 shift ; KJFDA enter |  +
-| b4: | k9 k8 k7 ¤ LHGS tab f8 |  +
-| b3: | pegar copiar # PIYTWQ [-] |  +
-| b2: | f2 cortar regresar [ OURE parar puede |  +
-| b1: | k0 ptr ] - 9 7 5 3 2 extra |  +
-| b0: | f4 salir del> = 0 8 6 4 1 f6 |  +
-|      | &3FF0 &3FF1 &3FF2 &3FF3 &3FF4 &3FF5 &3FF6 &3FF7 &3FF8 &3FF9 &3FFA |  +
-</WRAP>+
  
-<WRAP justify> +|b7: |no utilizado| 
-Los bytes &3FFB-&3FFF reflejan el teclado de forma diferente e incompleta. Estos bytes también son utilizados por KeyMouse de Creative Technology (en su modo estándar de MicroDiseño) y el teclado Teqniche de 102 teclas para proporcionar funcionalidad adicional, lo que genera algunas incompatibilidades. Entre las asignaciones más interesantes se encuentran las siguientes:+|b6: |error de trama| 
 +|b5: |error de desbordamiento de Rx| 
 +|b4: |error de paridad| 
 +|b3 a b1: |no utilizado| 
 +|b0|todos enviados|
 </WRAP> </WRAP>
- 
-<WRAP box> 
-| &3FFB | Teclado estándar | b7-b0 sin usar (0) | 
-|       | KeyMouse         | b6-b0 contador de movimiento horizontal. | 
-| &3FFC | KeyMouse    | b7-b6 bits altos del contador de movimiento vertical. | 
-| &3FFD | Todos            | b7 siempre establecido; b6 estado actual de SHIFT LOCK | 
-|       | los teclados estándar | b3-b0 teclas de cursor, b4 tecla de matriz | 
-|       | KeyMouse         | b3-b0 bits bajos del contador de movimiento vertical. | 
-| &3FFE | KeyMouse      | b7 botón izquierdo, b6 botón derecho. | 
-</WRAP> 
- 
- 
  
es/puerto_serie.1777043923.txt.gz · Última modificación: por jesus