60
Ingenio en la informática de los ‘80 Miguel Angel Rodríguez Jódar. Dept. ATC. Universidad de Sevilla.

Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Embed Size (px)

Citation preview

Page 1: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Ingenio en la informática de los ‘80

Miguel Angel Rodríguez Jódar.Dept. ATC. Universidad de Sevilla.

Page 2: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 3: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

¿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

Page 4: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Un ordenador…¿para todo el mundo?

Page 5: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Sí, pero sin pantalla ni teclado…

Page 6: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 7: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 8: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 9: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 10: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 11: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

El teclado

Page 12: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

El teclado (II)

Page 13: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

El teclado (III)

Page 14: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 15: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 16: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 17: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Acceso a la memoria de video

RAM

CPU Chip de video

BUS DE DATOS

BUS DE DIRECCIONES

Page 18: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 19: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Solución 2: alternar accesos a memoria

CLK CPU

CLK VIDEO

CLK RAM

CLK CPU

Accesos delchip de video

Page 20: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 21: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 22: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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?

Page 23: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 24: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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)

Page 25: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

¿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.

Page 26: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

En resumidas cuentas…

Page 27: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 28: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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…)

Page 29: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 30: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Secuencia de tonos

TONO GUIA

11 0 1 1 0 0 0 0 1 1 0 0

Page 31: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 32: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 33: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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

Page 34: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

La impresora ZX

Page 35: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 36: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

El motor

Page 37: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 38: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 39: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 40: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay
Page 41: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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?

Page 42: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Altair BASIC. Microsoft, 1975.

Page 43: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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”.

Page 44: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

¿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

Page 45: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

¿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

Page 46: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Lenslok

Page 47: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Lenslok (II)

Page 48: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

Lenslok (III)

Page 49: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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)

Page 50: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

… hecha la trampa

Page 51: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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 Ñ

Page 52: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

R.D. 1950/1985 (B.O.E.)

Page 53: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

¡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.

Page 54: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

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.

Page 55: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

El “workaround” (II)

• Se añade la memoria… (8KB en un chip de 64 Kbit)

Page 56: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

El “workaround” (III)

• Pero ¡¡en ninguna parte dice que esa memoria tenga que ir conectada a algún sitio!!…

Page 57: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

El “workaround” (IV)

• Y claro… pasa lo que pasa:

Page 58: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

¿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)

Page 59: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay

ERBE se pone las pilas

Secuencia de viñetas publicitarias aparecidas en la revista Microhobby, nº 120, en 1987

Page 60: Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro, mejor ... • Problemas –La generación de video exige mucha circuitería –Hay