SAM Coupé
El SAM Coupé (pronunciado /sæm ku:peɪ/ de su marca original en inglés británico) es una computadora doméstica británica de 8 bits fabricada por Miles Gordon Technology (MGT), con sede en Swansea en el Reino Unido y lanzado en diciembre de 1989.
Se basó y se diseñó para tener un modo de compatibilidad con el ZX Spectrum 48K con influencias del proyecto Loki y se comercializó como una actualización lógica del Spectrum pero con mayor memoria, capacidades gráficas y de sonido, compatibilidad nativa con periféricos (disquete, MIDI, joystick, lápiz óptico/pistola de luz y un mouse patentado).
La inclusión de soporte para modos gráficos superiores permitió la presentación de texto de 80 columnas, proporcionando una plataforma para soportar aplicaciones de productividad y CP/M a través de software adicional.
Estar basado en tecnología de 8 bits en un momento en que las computadoras domésticas de 16 bits eran más frecuentes, junto con la falta de títulos de software comercial, lo llevó a ser un fracaso comercial.
Cuando MGT entró en suspensión de pagos en junio de 1990, se hicieron dos intentos más para reiniciar la computadora y la marca, primero bajo SAM Computers Limited y luego en noviembre de 1992 bajo West Coast Computers, una empresa derivada de Format Publications que duró hasta su liquidación en 2005.
Nombramiento
El SAM en mayúsculas es un acrónimo de 'Some Amazing Micro' Según Alan Miles.
También se ha informado que está relacionado con 'Some Amazing Machine'.
El apodo 'Coupé' tiene dos orígenes: uno es un helado llamado "Ice Cream Coupé" y el otro porque la máquina se asemeja a un automóvil fastback de perfil con los pies como ruedas.
Hardware
El hardware del SAM Coupé fue diseñado por Bruce Gordon de Miles Gordon Technology. La computadora incluía silicio personalizado para manejar la pantalla, la memoria y la funcionalidad IO. Originalmente se creó un prototipo utilizando chips lógicos de la serie 7400 envueltos en alambre, antes de ser producido como un ASIC de matriz de compuertas VLSI VGT-200.
Procesador y lógica
La máquina se basa en una CPU Z80B con frecuencia de 6 MHz y un ASIC de 10 000 puertas. El ASIC desempeña un papel similar en la computadora al ULA en el ZX Spectrum. La CPU Z80B accede a partes seleccionadas del gran espacio de memoria en su espacio de direcciones de 64 KB al dividirlo en bancos de 16 KB y usar registros de E/S para seleccionar las páginas de memoria asignadas a cada banco de 16 KB.
Memoria y almacenamiento
El modelo SAM Coupé básico tiene 256 KiB de RAM, actualizable internamente a 512 KiB a través de un conector en la placa principal accesible a través de una trampilla debajo, y externamente hasta 4 MiB adicionales, agregados en paquetes de 1 MiB a través del Euroconector en la parte trasera del sistema.
La computadora tiene una conexión directa para una grabadora de casete para el almacenamiento de datos, pero también se pueden instalar dos unidades de disquete de 3,5 pulgadas dentro de la carcasa o externamente mediante una interfaz.
Gráficos
El SAM Coupé se diseñó principalmente para el mercado del Reino Unido y está diseñado en torno al estándar de televisión PAL, que se actualiza a 50 fotogramas por segundo. A diferencia de una señal PAL estándar que está entrelazada, el SAM está diseñado para emitir dos campos colocados de forma idéntica a 50 FPS, dando algo más parecido a una señal progresiva de 312 líneas que las señales de televisión de transmisión entrelazadas de 625 líneas comunes en el Reino Unido en ese momento.
La pantalla está rodeada por una gran área de borde para proporcionar una zona de visualización segura para los títulos de los televisores CRT de esa época. El color de esta región se puede cambiar en el software utilizando el puerto BORDER para seleccionar un color de la paleta.
El SAM Coupé tiene cuatro modos de visualización:
- Modo 4 — 256×192, cuadro lineal, 4 bits por pixel (16 colores) = 24 KB
- Modo 3 — 512×192, cuadro lineal, 2 bits por pixel (4 colores) = 24 KB
- Modo 2 — 256×192, cuadro lineal, 1 bit por pixel con atributos de color separados para cada bloque de píxeles de 8 dimensiones = 12 KB
- Modo 1 — 256×192, no lineal framebuffer, 1 bit por pixel con atributos de color separados para cada bloque 8×8 de píxeles = 6.75 KB (ordenado para que coincida con la pantalla del ZX Spectrum para compatibilidad atrasada)
El 'atributo' Los modos toman prestado su diseño del ZX Spectrum, donde se usa un mapa de bits para seleccionar entre un color de papel y tinta de dos grupos de ocho colores. El grupo a usar se selecciona mediante un 'brillo' bandera. El bloque de color también se puede establecer en 'flash' - es decir, alternar entre los dos colores utilizados para papel y tinta.
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|
Flash | Brillante | Documento 2 | Documento 1 | Documento 0 | Tinta 2 | Tinta 1 | Tinta 0 |
Todos los modos usan tablas de búsqueda de colores basadas en paletas, seleccionando de una paleta de 128 colores. Los valores de la paleta constan de 2 bits para cada uno de los componentes rojo, verde y azul, así como un bit adicional que aumenta la intensidad de los tres componentes en medio paso (un bit de 'brillo').
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|
- | Verde 1 | Rojo 1 | Azul 1 | Medio derecho | Verde 0 | Rojo 0 | Azul 0 |
El ASIC se puede configurar para generar interrupciones cuando se comienza a emitir una línea en la pantalla, lo que permite sincronizar los efectos de video con líneas específicas de la pantalla con poco esfuerzo. Por defecto, generará una interrupción para cada cuadro. Por lo general, esta interrupción se usa para duplicar el búfer del cuadro, leer el estado del teclado/mouse y emitir música.
El estado de interrupción también se puede sondear directamente desde el registro de estado del ASIC.
El codificador de video Motorola MC1377P RGB a PAL/NTSC crea una señal de video compuesta a partir de las señales RGB y de sincronización de la máquina (salida por el ASIC) para el modulador de RF.
El conector de pantalla SCART no estándar incluye salida compuesta y RGB, así como señales para controlar un monitor TTL de 16 colores.
El acceso a la RAM interna se compartió entre la pantalla y la CPU, y los accesos a la CPU sufrieron una penalización de velocidad (contención de memoria) ya que se vio obligado a esperar a que se completaran los accesos isócronos a la memoria ASIC. Como resultado, la CPU del SAM Coupé funcionó efectivamente solo alrededor de un 14 % más rápido que la CPU del ZX Spectrum, pero se requirió mucho más trabajo en los modos de alta resolución de SAM para producir un movimiento similar en la pantalla. mostrar. Una pantalla Modo 3 o Modo 4 usa cuatro veces más RAM que una pantalla ZX Spectrum Modo 1, por lo que se tuvo que hacer cuatro veces el trabajo en el mismo tiempo al actualizarla.
Una pequeña compensación fue la disposición sencilla de los píxeles de color en esta memoria, en lugar de la pantalla y la memoria de atributos más limitadas del ZX Spectrum. Las operaciones de software de gráficos de bajo nivel podrían ser mucho más simples que sus equivalentes de Spectrum y, por lo tanto, algo más rápidas de ejecutar.
La penalización del retraso por contención de la memoria se aplicó a todos los accesos a la memoria RAM, y no solo a la memoria asociada con el circuito de video (como en el caso del ZX Spectrum). Los sprites de hardware y el desplazamiento habrían mejorado en gran medida el rendimiento de los juegos, desafortunadamente no había suficiente espacio de oblea en el VLSI ASIC para incluir dicho circuito.
Mientras se dibujaba el área principal de 256 × 192 de la pantalla, el procesador solo podía acceder a la memoria en 1 de cada 8 estados t. Durante el área de borde, esto fue 1 de cada 4 estados t, lo que no tuvo efecto en las muchas instrucciones cuyos tiempos eran un múltiplo de 4. En los modos 3 y 4, la pantalla podía desactivarse por completo, eliminando estos retrasos de contención de memoria para un velocidad de funcionamiento completa de 6 MHz. El código que se ejecuta en la ROM o en la RAM externa no se vio afectado por la contención, aunque los accesos a la RAM que realizaron a la RAM interna compartida sí se verían afectados.
Conjunto de personajes
El conjunto de caracteres incluye gráficos de bloque y caracteres internacionales. El tamaño de la fuente se puede modificar para que el texto se muestre en 32, 64 u 85 columnas, y también son posibles los caracteres de doble altura. Los usuarios pueden definir libremente sus propios caracteres creando Gráficos definidos por el usuario (UDG). Hay disponible una gran cantidad de códigos de caracteres (144 a 255) para este propósito. Los gráficos de bloque (código 128 a 143) se pueden desactivar para liberar más caracteres para UDGs.
Cuando está en BÁSICO, el cursor se compone de los caracteres Bloques desactivados (128/129) para mayúsculas y minúsculas respectivamente, independientemente de la configuración actual de Bloques, por lo que sobrescribir estas posiciones también cambiará el cursor. Si esto no es deseable, entonces la variable de sistemas (SVAR) 1 se puede establecer en un valor de 2 caracteres para que se utilicen los nuevos caracteres de cursor en mayúsculas y minúsculas.
Las cintas de utilidad y los medios del sistema operativo de disco SAMDOS incluían un cargador de fuentes de caracteres internacionales para permitir la carga de caracteres adicionales en la región de gráficos de bloques a partir de 128 (0x80). Esto significó que los caracteres del cursor se sobrescribieron, por lo que el cargador BASIC adjunto estableció el cursor en * y + para mayúsculas y minúsculas, respectivamente.
La siguiente tabla muestra la disposición del juego de caracteres predefinido:
Notas:
- Códigos de caracteres 0 a 31 (0x00 a 0x1F): códigos de control
- Códigos de caracteres 32 a 168 (0x20 a 0xA8): predefinido conjunto de caracteres
- Códigos de caracteres 128 a 143 (0x80 a 0x8F): gráficos bloque / caracteres extranjeros o Gráficos definidos por el usuario ()UDGs)
- Códigos de caracteres 144 a 255 (0x90 a 0xFF): Gráficos definidos por el usuario ()UDGs)
Sonido
Un chip generador de sonido Philips SAA1099 proporciona seis canales de sonido estéreo de 8 octavas. Este chip de sonido también puede producir cuatro canales de sonido muestreados de 3 bits que permiten la reproducción de módulos Amiga Tracker y generar ruido.
Para proporcionar compatibilidad con versiones anteriores del ZX Spectrum, el SAM también proporciona un 'beeper' de un solo bit. canal que se puede utilizar para emitir tonos simples activando y desactivando el bit según el Spectrum original.
Firmware y DOS
La máquina se envió con 32 KB de ROM que contenía código para iniciar la máquina y un intérprete BASIC (SAM BASIC) escrito por Andrew Wright y fuertemente influenciado por su Beta BASIC anterior para ZX Spectrum. Las ROM contenían solo el código de arranque y, en cambio, el DOS se cargó desde el disco usando el comando BOOT
o la tecla F9. La mayoría de los discos se enviaron con SAMDOS, el primer DOS del sistema, para que pudieran arrancarse directamente. También se desarrolló un reemplazo mejorado, MasterDOS, que ofrece un acceso al disco más rápido, más archivos y soporte para el accesorio de reloj en tiempo real para proporcionar marcas de tiempo de archivos, entre muchas otras mejoras.
El BASIC era muy avanzado e incluía código para dibujar sprites y formas vectoriales básicas como líneas y círculos. El sistema de coordenadas de pantalla para estos era variable y podía escalarse y centrarse arbitrariamente. Una disposición para "grabar" Se proporcionaron secuencias de comandos gráficos para que luego pudieran repetirse sin la penalización de velocidad de un intérprete BASIC en el medio.
La máquina es capaz de ejecutar CP/M 2.2 usando el software Pro-Dos con soporte para discos de formato de 720 Kilobytes y unidades IDE
Unidades de disco
El SAM originalmente usaba unidades delgadas Citizen de 3,5 pulgadas que se ubicaban debajo del teclado para proporcionar ranuras frontales. Al igual que los discos duros IDE, estos gabinetes contenían no solo las unidades sino también los controladores de la unidad, un WD1772-02, con el efecto de que el SAM podía usar ambas unidades simultáneamente.
Debido a una falla en el diseño del Coupé, reiniciar la máquina mientras se dejó un disco en una unidad podría causar daños en los datos en ese disco, ya que mientras la línea RESET se mantiene baja en la lógica del ASIC (que genera el reloj de 8Mhz) se detiene, por lo que no se envía ninguna señal de reloj a los controladores de la unidad.
Los discos de doble densidad utilizaban un formato de 2 lados, 80 pistas por lado y 10 sectores por pista, con 512 bytes por sector. Esto dio una capacidad total de 800 KB, aunque el directorio estándar ocupaba 20 KB, dejando 780 KB libres para archivos de usuario. Los archivos se almacenaron en la misma estructura que la interfaz +D original de MGT, pero con códigos adicionales utilizados para los tipos de archivo SAM Coupé. La codificación de disco (NRZ), la estrategia de codificación (velocidad angular lineal) y los formatos de encabezado de pista y sector eran compatibles con los utilizados en IBM PC y Atari ST, y había programas disponibles para leer discos con formato FAT.
Puertos de expansión
Se proporcionó una gran variedad de puertos de expansión, incluidos:
- Dos bahías internas.
- Conector SCART no estándar que ofrece video compuesto y RGB digital y lineal, así como entrada de potencia.
- Euroconnector 64-pin para expansiones de hardware de propósito general.
- Enchufe de ratón (formato propietario, aunque un convertidor para ratones de estilo Atari ST estaba disponible más tarde).
- Lápiz de luz / Pistola de luz y salida de sonido Stereo a través de conector DIN 5-pin.
- puertos MIDI IN/OUT (y THROUGH, a través de un interruptor de software).
- Red usando el puerto MIDI (hasta 16 máquinas podrían interconectarse).
- Puerto de joystick de 9 pines de estilo Atari (capacidad final con cable de splitter aunque debido a un defecto los dos joysticks interferirían entre sí).
- jack mono Cassette de 3.5mm (uso dual para la carga y el ahorro).
Se podían conectar hasta cuatro dispositivos al puerto Euroconector del Coupé, mediante el uso de SAMBUS, que también proporcionaba un reloj incorporado. Al usar más periféricos que consumen mucha energía, el SAMBUS requería una fuente de alimentación adicional.
Poder
La fuente de alimentación del SAM era una unidad moduladora Amstrad CPC MP1/MP2 modificada, con el modulador de RF integrado y conectado a través de una toma de alimentación/TV conjunta a la computadora. Esto hizo que la interferencia de la señal del convertidor CA/CC fuera común y fue una modificación popular pero completamente no oficial para eliminar el modulador y mantenerlo como una unidad separada.
Compatibilidad con ZX Spectrum
La emulación de ZX Spectrum se limitó a 48K y se logró mediante el uso de una utilidad suministrada y una imagen de ROM de esqueleto (que no contiene código original) o cargando una copia completa de la ROM de ZX Spectrum (obtenida de un ZX Spectrum). Para igualar la velocidad de procesamiento del ZX Spectrum (3,5 MHz), el SAM Coupé introduce estados de espera adicionales en el modo de visualización 1 (el modo de gráficos compatible con ZX Spectrum) para ralentizar la CPU y alcanzar aproximadamente la velocidad de ese sistema.
El mapa de memoria del modelo 128K era incompatible con el modelo de memoria del Coupé y la máquina presentaba un generador de sonido completamente diferente. Fue posible convertir algunos juegos y demostraciones pirateando directamente el código de 128K o usando un parche de software con la expansión de RAM de 1 megabyte para proporcionar el espacio de direcciones.
Debido a que el Coupé no funcionaba exactamente a la misma velocidad que el Spectrum, incluso en el modo de emulación, muchos cargadores de cinta antipiratería no funcionaban en el hardware del Coupé. Esto condujo al desarrollo por parte de MGT de una interfaz de hardware especial llamada Messenger que podía capturar el estado de un ZX Spectrum conectado al disco SAM Coupé para reproducirlo más tarde sin el Spectrum conectado. El Messenger se conectó al puerto de red del Coupé y a la ranura de expansión del Spectrum. Debido a los botones de interrupción integrados (NMI) inadecuados (necesarios para activar el software Messenger), también se proporcionó una tarjeta de botón de interrupción sin rebote, que se conectó a la ranura de expansión del Coupé.
Contenido relacionado
Spl (Unix)
Tabla de métodos virtuales
ALGOL Y
Hacer bucle while
API de repositorio de contenido para Java