Ingenio en la informática de los ‘80 - zxprojects.com · compre más memoria, más disco duro,...

Post on 07-Oct-2018

226 views 0 download

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