Zorro III de Amiga
# Zorro III de Amiga

El Zorro III salió como una expansión de la Commodore Amiga 3000 en 1990. Este bus se utilizó para vincular dispositivos periféricos a la placa base de Amiga. Fue diseñado por el ingeniero jefe de Commodore International, Dave Haynie; el Zorro III de 32-bit sustituyó al Zorro II de 16-bit, utilizado en la Amiga 2000. Al igual que el Zorro II, el Zorro III permitía la autodetección de conectar y jugar (de forma similar a las placas PCI de PC).

Zorro III mantuvo el diseño de mapeado de memoria directa de Zorro II (a diferencia de los procesadores 80x86, la familia MC68K que se usó en la Amiga no tenía mecanismo de direcciones de entrada y salida por separado). Al igual que el Zorro II de 24-bits, Zorro III reservó una gran parte de 32-bits a memoria real para tarjetas de mayor mapeado de memoria y una parte menor a la asignación de granularidad para placas de entrada y salida. Zorro III nunca tuvo compatibilidad con 24 bit ni 16 bit, requiriendo una CPU completa de 32 bit. La CPU podía dirigir directamente cualquier dispositivo Zorro III como memoria, por lo que las expansiones podían emplearse (y de hecho, se emplearon) como memoria o tarjetas de vídeo, a modo RAM.

El Zorro III especificaba los ciclos de buses como un bus asíncrono, evaluando la duración durante la cual podría realizarse una transacción conforme a las especificaciones del bus. La implementación inicial del Zorro III fue en el Fat Buster de Commodore (BUS conTrollER), con ayuda de chips PAL rápidos y varios chip de búfer TTL para el búfer, aislamiento y multiplexación del bus. La implementación de la Amiga 4000 fue, fundamentalmente, lo mismo, pero integrando una segunda entrada para sustituir los búfer TTL. El chip Buster proporcionó arbitrariedad en el bus, traducción entre los protocolos del bus MC68030 e incluso entre los ciclos de bus de Zorro II o Zorro III bus cycles (basados geográficamente en el mapeado de la dirección bus del Zorro) y un mecanismo de interrupción vectorial, el cual no se utilizó apenas.

A pesar de ser un bus de 32 bits, el Zorro III usaba las mismas ranuras de expansión y las 100 vías del Zorro II. La dirección adicional y las líneas de datos que se obtenían mediante la multiplexación de algunas conexiones con la naturaleza de las líneas variaban en distintas fases del ciclo de acceso del bus (por ejemplo, al convertir la dirección en datos). Sin embargo, la multiplexación del bus no era total; los primeros 8 bits de la dirección estaban disponibles durante los ciclos de datos, permitiendo que el Zorro III soportase un intenso ciclo de ráfaga. Obviamente, las tarjetas de expansión del Zorro II podían coexistir con las del Zorro III; no era esencial un maestro de bus del Zorro III para que fuera compatible con acceso DMA de bus del Zorro II. Las tarjetas podían detectar si era Zorro II o Zorro III, permitiendo que algunas tarjetas Zorro III pudieran conectar con buses antiguos de Zorro II, reduciendo el número de datos de las mismas.

El bus del Zorro III tiene un ancho de banda teórico de 150 MByte/s, basado en un dispositivo ideal del Zorro III ejecutándose con una configuración de ajustes mínima. La velocidad de transferencia real entre la implementación del Zorro III en Amiga 3000/4000 y la tarjeta Zorro III es de unos 13,5 MByte/s debido a las limitaciones del chip de Buster. Esto fue comparable a la primera implementación PCI de Intel, con un pico de 25 MByte/s. El Zorro III se optimizó para las implementaciones de protocolo de chip individual que se harían más adelante, pero los recursos disponibles de Commodore en 1990 limitaron la implementación inicial.

Esto también fue una limitación para los servicios de terceros que se dedicaban a expansión de placas base PCI de Amiga, como Elbox Mediator PCI o Matay Prometheus PCI (con 12 MByte/s en sistemas de 68k). Las transferencias DMA entre tarjetas Zorro III (o PCI/placas de expansión PCI) podían ser mucho más rápidas.

## Mapa de memoria del Amiga (32bits)

| Dirección | Capacidad [MByte] | Descripción |
| - | - | - |
| 0x0000 0000 | 2.0 | Chip de memoria |
| 0x0020 0000 | 8.0 | Expansión de memoria Zorro II |
| 0x00A0 0000 | 1.5 | Expansión de espacio Zorro II I/O |
| 0x00B8 0000 | 3.0 | Espacio de registro placa base A2000 |
| 0x00E8 0000 | 0.5 | Zorro II I/O |
| 0x00F0 0000 | 1.0 | Placa base ROM |
| 0x0100 0000 | 112.0 | Espacio de placa base A3000 |
| 0x0800 0000 | 128.0 | Expansión de memoria 32-Bit |
| 0x1000 0000 | 1792.0 | Expansión de espacio Zorro III |
| 0x8000 0000 | 2032.0 | Reservado |
| 0xFF00 0000 | 64 KB | Unidad de config. Zorro III |
| 0xFF01 0000 | 16.0 | Reservado |
| 0xFFFF FFFF | 16.0 | Reservado |

## Físico

El conector físico es un conector de tarjetas estándar, de 2,54 mm con 2 × 50 pines en fila.

Corriente:

| [Voltios] | [Amperios] |
| - | - |
| +5 | 2.0 |
| -5 | < 0.3 |
| +12 | < 8.0 |
| -12 | < 0.3 |
