Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro,...
Transcript of Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro,...
Ingenio en la informática de los ‘80
Miguel Angel Rodríguez Jódar.Dept. ATC. Universidad de Sevilla.
Motivación de esta charla
• No todo se resuelve haciendo que el usuario compre más memoria, más disco duro, mejor tarjeta gráfica,…
• Un diseño ingenioso y barato puede rendir como un diseño caro y convencional.
• La necesidad es la madre de la inventiva: quiero vender ordenadores, pues tengo que hacerlos usables sin encarecerlos.
• La imaginación al poder
¿Por qué ordenadores “antiguos”?
• Mucho menos complejos en su hardware• El concepto de “open” no era estrictamente para
el “software”.– Podemos por tanto estudiar no solamente sus
sistemas operativos, sino todos los detalles de su hardware.
• Más prestaciones con hardware sencillo implica:– Buscar soluciones ingeniosas– Enviar toda la carga de trabajo al software
Un ordenador…¿para todo el mundo?
Sí, pero sin pantalla ni teclado…
Perfil del usuario de informática
• Hasta finales de los 70…– El consumidor de informática es
aficionado a la electrónica.– Ve al ordenador como lo que es: un
ingenio electrónico de última generación.
– No les da miedo trabajar en binario y usar luces como interfaz de usuario.
– Pueden arreglar ellos mismos sus equipos, e incluso ampliarlos.
Perfil del “nuevo” usuario de informática
• No tiene por qué ser un experto en electrónica.
• Un montón de interruptores y un montón de luces no le dice nada.
• Quieren aprender a programar ordenadores, pero sin la frustración que supone trabajar en hexadecimal
• No quieren invertir mucho dinero en algo que no saben a ciencia cierta si les valdrá para algo.
Preocupaciones del fabricante de microodenadores
• Si se quiere abrir mercado y llegar a mucha gente hay que:– Vender equipos baratos– Venderlos montados, no como kits– Abandonar la interfaz de usuario
hexadecimal.– Dotar a los nuevos equipos de
aplicaciones listas para usar.
Un microordenador debe por tanto:
• Venir montado.– Para equilibrar el coste del montaje, éste no debe ser
complejo pocos chips– Pocos chips pocas prestaciones. ¿Cómo lo
soluciono?• Usar un teclado QWERTY común.
– Los contactos mecánicos de las teclas son caros. ¿Cómo lo soluciono?
• Reusar elementos comunes del nuevo cliente– La TV del salón se convierte en el monitor del
microordenador.– El radiocassette comprado en Algeciras se convierte en
la unidad de almacenamiento masivo.
Sinclair Research
• Visión comercial: ofrecer equipos baratos
• Soluciones ingeniosas a problemas comunes.– El creador, Sir Clive
Sinclair, es presidente de MENSA Gran Bretaña.
El teclado
El teclado (II)
El teclado (III)
El teclado (IV)
Parte alta del bus de
direcciones de la CPU (A8 – A15)
Latch: al bus de datos (D0-D4)
Señal delectura
del teclado
Bus de direcciones
Bus
de
dato
s
El teclado: modo de operación
• Toda la gestión está en software– Si hay “espacio” en ROM, se puede
implementar “autorrepeat”• Gestión por “polling”
– Normalmente, una interrupción periódica del sistema
El monitor
• TV doméstica– Generar señales PAL o NTSC, según el
país.– Monitor raster Parte de la memoria se
dedica a la pantalla• Problemas
– La generación de video exige mucha circuitería
– Hay que compartir el acceso a la memoria de video
Acceso a la memoria de video
RAM
CPU Chip de video
BUS DE DATOS
BUS DE DIRECCIONES
Solución 1: bus exclusivo para la memoria de video, con arbitrador de bus
RAM
CPU Chip de video
BUS DE DATOS
BUS DE DIRECCIONES
Video RAM
BUS DE DATOS DE VIDEO
BUS DE DIRECCIONES DE VIDEO
Arbitrador de bus
Solución 2: alternar accesos a memoria
CLK CPU
CLK VIDEO
CLK RAM
CLK CPU
Accesos delchip de video
Solución 3: sólo la CPU accede a memoria
• Usado en el Sinclair ZX-81• El chip de video no accede a
la RAM– Escucha cuándo la CPU accede
a la RAM de video y “roba” el dato.
– Se usa a la CPU como un generador de accesos secuenciales a memoria
– El chip de video “engaña” a la CPU para que siga generando accesos secuenciales
Esquema de acceso en el ZX-81
RAM
CPU Chip de video
BUS DE DATOS
BUS DE DIRECCIONES
Inte
rrup
ción
pe
riódi
ca
Generación de video en el ZX-81
• Memoria de video a partir de la dirección 8000h– Cada línea de pantalla ocupa 32 bytes (256 bits
que son 256 pixels)• La CPU recibe una interrupción no
enmascarable– Salta a la dirección 0066h– De ahí llama a una supuesta subrutina en la
dirección 8000h (CALL 8000h)• Un momento… ¿La CPU “ejecuta” código
en la memoria de video?
Generación de video en el ZX-81
• Sí, o al menos, eso “cree” la CPU– La CPU inicia un ciclo de lectura de instrucción y pone la
dirección de la próxima instrucción en el bus de direcciones
• Todas las direcciones de la memoria de video tienen A15=1– Chip de video detecta condición A15=1 y espera a que la
memoria ponga el valor de la supuesta instrucción en el bus de datos
– Chip de video lee dato (8 píxeles) y a continuación…– “Fuerza” todas las líneas del bus de datos a 0– CPU finaliza ciclo de bus y se queda el 0 como instrucción
a ejecutar (= NOP)– CPU ejecuta NOP (instrucción nula)– CPU ejecuta la siguiente instrucción a continuación,
repitiendo el proceso.
Generación de video en el ZX-81
• ¿Hasta cuando se mantiene esta “farsa”?– El chip de video va contando los bytes que va
leyendo– Al llegar al que hace el número 32, debe decirle
a la CPU que no necesita más bytes para generar la línea
• Para ello, en el siguiente acceso, en lugar de forzar un NOP (código 00h), fuerza el código C9h (instrucción RET)
• La CPU vuelve al código original de la interrupción no enmascarable y de ahí, a la tarea que estaba haciendo.
• Esto se repite cada 64 microsegundos (duración de una línea de video en PAL)
¿Qué hemos conseguido?
• La lógica del chip de video se simplifica enormemente– Lo cual permite usar un circuito semi-custom de bajo
nivel de integración para fabricarlo.– Al ser de bajo nivel de integración, su fabricación es
barata– Mato dos pájaros de un tiro:
• Un circuito semi-custom de bajo nivel de integración es barato de fabricar
• Meter toda la lógica en un semi-custom reduce drásticamente el número de chips necesarios: se simplifica el montaje de la placa, que se puede entregar soldada y lista.
• Pero esto tiene sus inconvenientes– El programa principal del usuario debe compartir
tiempo de CPU con la rutina de generación de líneas de video.
En resumidas cuentas…
Almacenamiento externo
• Disquetes– Solución ideal, pero cara
• Cassettes– La solución más económica, pero…
• No admiten acceso aleatorio• Lentos• Poco fiables
– Por otra parte, ya existe una infraestructura industrial que permite hacer copias
• La industria discográfica “se pasa” a la industria informática• Hubo otros inventos como alternativa barata a los
disquetes…– No tuvieron éxito comercial.
Funcionamiento del cassette
• Mismo principio que con el módem– Se usan frecuencias audibles, en la parte central
del espectro, donde una cinta ofrece el mejor rendimiento.
• Ratios de transferencia de entre 300 y 1500 bps– Cargas “turbo” elevan esta cifra hasta los 2400 bps,
y más• Factibles una vez que aparecieron los denominados
“cassettes para ordenadores” (Computone, etc…)
Caso práctico: el ZX Spectrum
• Tono guía: 800 Hz– Sirve sobre todo para indicar al sistema de ganancia
automática del cassette del nivel de volumen con el que se debe grabar
• Pulso de sincronismo– Una semionda positiva de 400uS, seguida de una
semionda negativa de 420uS.• Este pulso es de una frecuencia muy diferente al tono guía
para poder diferenciarse fácilmente de él.• Ráfaga de bytes
– Un periodo completo de 1000Hz para el “1” y un periodo completo de 2000Hz para el “0”.
– Al final se envía un byte de “checksum” que se calcula como el resultado de la operación XOR con todos los byte enviados en la ráfaga.
Secuencia de tonos
TONO GUIA
11 0 1 1 0 0 0 0 1 1 0 0
Otras soluciones
• Basadas en cinta magnetofónica, y cabezales estándar
• Mejoran la mecánica de tracción, la velocidad, y hacen el sistema automático
• Acceso pseudo-aleatorio• Por lo general, tan (poco) fiables como
los cassettes
La impresora
• Los usuarios quieren tener copias impresas de los listados de sus programas
• Añadir puerto serie o paralelo– No todo el mundo lo necesita– Encarecería el equipo base– Se opta por añadirlo en un módulo aparte
• Impresora de conexión directa– Herencia de ZX-81
Tecnologías de impresión para todos los públicos
• Matricial– Cara, aunque sería la deseable
• Nos olvidamos de la impresión láser: costaría mucho más la impresora que el ordenador
• Papel térmico– En el momento del lanzamiento del ZX
Spectrum, aún no era muy asequible• Solución propietaria
– Parecida a la impresión térmica
La impresora ZX
La idea…
• Una impresora tiene un rodillo por el que el papel avanza por fricción
• Una impresora necesita un cabezal que imprima, avanzando por todo el ancho del papel.
• Unimos los dos movimientos de forma que sólo haga falta un motor– El motor hace avanzar rapidamente el cabezal,
mientras un juego de engranajes hace avanzar más lentamente el papel.
El motor
El cabezal de impresión
• Es un alambre conductor• ¿Cómo imprime eso?
– El papel tiene una capa de color negro, y encima, otra de aluminio
– La impresora dispone de una fuente de tensión de alto voltaje (50V), y uno de los electrodos de la fuente está conectado permanentemente a la cara metálica del papel.
El cabezal de impresión (II)
– El otro polo está conectado al alambre, mediante un interruptor electrónico.
– Cuando se desea escribir un punto, la lógica de la impresora cierra durante un momento el interruptor electrónico, enviando un pulso de alto voltaje al alambre, que literalmente, “evapora” el aluminio, dejando ver la capa inferior, de color negro.
El encoder
• Un encoder va solidario a una de las ruedas que al girar, desplaza los cabezales.
• La lógica de la impresora cuenta los pulsos del encoder, de tal forma que sólo se permite imprimir cuando hay pulso. De esa forma se corrigen las variaciones de velocidad del motor, que de otra forma harían que la imagen saliera distorsionada.
El sistema operativo
• Windows, definitivamente, no cabe– Los más antiguos microordenadores no tienen casi
ROM (es muy cara)• Los primeros micros tienen del orden de 4K de
ROM• No se puede hablar de un SO propiamente
dicho– Programa monitor, o bootstraper– Lenguaje BASIC residente
• ¿Por qué BASIC?
Altair BASIC. Microsoft, 1975.
El software
• Ya tenemos todos los componentes. Ahora hace falta software.
• El formato cassette es muy fácil de producir…– Ya se tienen máquinas copiadoras de cassettes en
la industria discográfica.• Y aún más fácil de copiar
– No hace falta una alta fidelidad. Basta con que las 3 frecuencias fundamentales se reproduzcan con claridad.
– Como siempre, aparecen los programas “copiones”.
¿Cómo me protejo de la piratería?
• Uso frecuencias distintas (turbo)– Los programas copiones, por lo general,
sólo pueden “escuchar” las frecuencias estándar.
– Hace falta que el programa cargue en memoria RAM la nueva rutina de carga con las nuevas frecuencias
– El programa debe proteger a la rutina de carga de miradas indiscretas
¿Cómo me protejo de la piratería?
• Dispositivo físico que se debe tener para acceder al programa– Lo que hoy sería una “mochila”
• El más conocido, para Spectrum y Commodore 64, el LENSLOK
Lenslok
Lenslok (II)
Lenslok (III)
Hecha la ley…
• ¿Cómo copio este sistema?– O se desprotege la rutina que pregunta el
código– O se graba el programa en un punto posterior
a la petición del código (snapshot)
… hecha la trampa
Hablando de leyes…
• En 1985 se publica un Real Decreto, el 1950/1985, que regula la homologación de equipos informáticos.– En una primera versión de este R.D. se
consideran “juguetes” todos aquellos microordenadores con 64 KB de RAM o menos
– Todos estos equipos deben cumplir:• Manuales e instrucciones en español.• En el teclado y pantalla, la Ñ
R.D. 1950/1985 (B.O.E.)
¡Nos han pillado!
• Indescomp, la empresa filial de Amstrad PLC en España, tiene exceso de stock del Amstrad CPC 464.– Un microordenador con pantalla y cassette
integrado, más caro que el ZX Spectrum.– El teclado del Amstrad, como el de todos los
micros de la época, no tiene Ñ.– El R.D. le obliga a modificar su equipo, o
deshacerse de él.
El “workaround”
• Si el equipo tiene más de 64K no se considera “juguete” y se libra de lo dispuesto en el R.D.
• Problema:– El equipo tiene ya instalada toda la memoria
que es capaz de direccionar la CPU (64 KB)– Se puede añadir más, usando mecanismos
de paginación• Problema: eso significa añadir hardware a una
placa que ya está construida.
El “workaround” (II)
• Se añade la memoria… (8KB en un chip de 64 Kbit)
El “workaround” (III)
• Pero ¡¡en ninguna parte dice que esa memoria tenga que ir conectada a algún sitio!!…
El “workaround” (IV)
• Y claro… pasa lo que pasa:
¿Y cómo arreglo el tema de la piratería?
• Como todas las expuestas anteriormente, es una idea genial.
• Precios de programas para microordenadores en el año 1985 (fuente: Microhobby, Nº 18)
ERBE se pone las pilas
Secuencia de viñetas publicitarias aparecidas en la revista Microhobby, nº 120, en 1987