Pues con nuestro "Gomas", algunos nos dedicábamos a algo mas que jugar a los muchos juegos con que estaba dotado su mercado entonces. Nos dedicábamos a maltratarlo y él se vengaba. ¡Eso si que eran bloqueos y no los de Windows!. Con la diferencia de que no había disco duro y te tocaba cargar todo de nuevo. No es que fuera una maravilla de ordenador, pues no tenía ni puerto de Joystick ni de impresora. Tenía lo justo para cargar programas y enchufar una tele. Pero al ser barato, todos tus amigos tenían uno y se podían cambiar juegos y programas y si a algunos nos gustaba las "chapuzas", nos intercambiábamos ideas para hacernos nuestro propios interfaces Kempston etc. "..oyes, que en la revista Tal, hay un montaje la mar de guapo para poner una impresora...".
Estos montajes que aquí os pongo, ya han sido probados y puestos en funcionamiento por mi.
Se le han conectado bombillas de todo tipo ( incluso una lámpara de una insoladora casera, para hacer circuitos impresos ), motores... Hice una especie de digitalizador casero de gráficos muy sencillo con 8 LDR, que iba "leyendo" de 8 en 8 cuadrados. En fin, que se dejó de fabricar y yo seguí haciendo experimentos.
Antes de meternos en harina, vamos a hablar de algunos componentes:
Puertas lógicas
|
Puertas OR: Tienen varias entradas y solo una salida.
Su funcionamiento es el siguiente: Las dos rayas de la izquierda, son las entradas y la única raya de la derecha, la salida. Si una de las entradas es 1, la salida es siempre 1. si las dos entradas son 0, la salida es 0. |
|
Puertas AND: Tienen varias entradas y solo una salida.
Su funcionamiento: Las dos rayas de la izquierda, son las entradas y la única raya de la derecha, la salida. Si una de las entradas es 1, pero la otra es 0, la salida es siempre 0. Y si las dos entradas son 0, la salida es 0. La salida solo es 1, si las dos entradas son 1. |
|
Puertas NOT:
Tienen una entrada y una salida. Fijaros en el circulito de la derecha,significa que la salida está negada, es decir; que si metemos +5 Voltios por ejemplo en su entrada, a la salida tenemos 0 Voltios. Y si metemos 0 Voltios en la entrada, en la salida tendremos +5 Voltios. |
Luego hay combinaciones de puertas, como Nor. (Y no es publicidad encubierta
de una determinada marca de alimentación):
|
Esta es una OR como la de mas arriba, solo que está negada la salida. Es exactamente igual, que si le ponemos una puerta NOT a la salida de OR. Esto no quiere decir otra cosa, que la única salida positiva, es cuando ambas entradas son 0. |
Aunque parezca una tontería, con miles y miles de estas puertas, está hecho vuestro ordenador.
Y aquí tenéis una tabla con las principales puertas lógicas.Seguidamente hablaremos de las salidas que mas os interesan del viejo Spectrum alias "Gomas" (¡O "El Cables"!. Que me decían en casa que un dia me iba a electrecutar! ) 8 ).
Ahora que ya sabemos como va esto de las puertas, vamos a echar un vistazo al gráfico de la izquierda.
Entrada 1 Entrada 2 Salida
1 1 0 0
1 0 1 0
1 1 1 0
1 1 0 0
1 0 1 0
1 0 0 0
1 0
0 1
1 1 0 0
1 0 1 0
0 0 0 1
1 1 0 0
1 0 1 0
0 1 1 1
Vemos una serie de palabras al principio: IORQ, A"n",
RD, WR y todas ellas tienen una rayita encima, que significa
que están negadas. Esto es, que las activa el Z80 con un 0. Después
tenemos D0...Dn. Eso es parte del "Bus de datos, que van
desde D0, hasta D7,que son los 8 bits con los que puede trabajar
el Spectrum ( aunque internamente puede hacer operaciones de 16 bits).
A"n" representa al bus de direcciones, que va desde A0 hasta A15. O lo que es lo mismo 16 bits: (1111111111111111-FFFF-65535). Para entendernos mejor usaremos el A5, que era el que mas se usaba, tal vez por estar "libre". Es decir, que no se usaba para otros menesteres, como control de teclado o del sonido. Este era precisamente el motivo por el que los personajes se volvian "locos" cuando no teníamos conectado un interface Kempston. Al no tener un control, tomaba valores aleatorios y no nos quedaba mas que hacer "reset" (era muy fácil de conectar un botón de reset ) o desenchufar. Su codigo era 223 (11011111) en binario (empezara contar desde la derecha y por A0). Y nótese que son todos unos, menos el bit activo el A5, que está a 0, que como se comentó esta negado. |
Escribir en la salida
10 Out 223,1
Si el último bit (suponiendo que nuestro interface es de sólo 4 bits):
10 Out 223,8
Los cuatro bits:
10 Out 223,15
Leer la entrada
Si con el comando Out (salida) escribíamos en nuestro
puerto, con el comando IN (entrada) leemos la pulsación de un botón
del joystick, el recorrido de un final de carrera (el dispositivo que se
le dice a una máquina que ha llegado al final del recorrido) o la
lectura de un fotodiodo o una LDR, ambos dispositivos que detectan la luz.
También se puede detectar el calor mediante otro dispositivo llamado
NTC. Haré una breve relación de ellos al final de todo esto.
Así que tenemos:
10 Print IN 223
10 LET a=IN 223
En la primera, imprime directamente la lectura del puerto de entrada y en la segunda, lo guarda en la variable "a".
Un paso adelante
Unos programas para ver mejor todo esto.
Respecto a los circuitos, debo decir que han variado por una razón:
Primero porque a veces el circuito de entrada y el de salida, (los que están en contacto con los sensores y con los dispositivos de salida, diodos led o bombillitas, transistores para activar relés o transistoresde mas potencia, etc) a veces son activados por un 1 o por 0 y en vez de una puerta OR, se activa con una NOR. Entonces lo que se hace es usar un circuito de 4 NOR para no complicar el montaje y unas de las puertas se le juntan las entradas para convertirla en un inversor.
La salida de la puerta NOR sin invertir, está conectada con un buffer como dije antes, y en cambio la NOR invertida, la cual se convierte en OR, Está conectada a un Triestado. Este es un dispositivo, que cuando RD IORQ y A"n" están a uno, es activo y "lee" el dato que tiene esperando ( pulsaciónde tecla P1-P"n", etc ).
El otro cambio son los diodos led que he puesto en la salida, se les puede poner directamente, debido a su bajísimo consumo y su completa compatibilidad con los componentes TTL, los circuitos integrados de nuestros experimentos.
Y aquí están los programas:
Programa contador binario
Las lucecitas se van encendiendo a medida que van saliendo del contador,
repitiendose el proceso mediante la sentencia GO TO
10 For f=0 To 15
|
Programa coche fantástico
En este programa, multiplicamos por dos una variable, encendiendo así
solamente uno de los leds cada vez.
Acto seguido, se hacía una división entre dos de este
número, repitiendose el ciclo.
10 a=1
|
¿Siguientes pasos?
Lo siguiente sería dotar a nuestras entradas de los dispositivos adecuados para detectar obstáculos, por ejemplo, y a las salidas de otros dispositivos para hacer funcionar un motor, por ejemplo.
Una posible solución de comunicación con el exterior:
Aquí se podría conectar un motor y una batería
o una fuente de alimentación, y mover un vehículo.
Usando un transistor MC140 para excitar el relé, manejé en unas Navidades las luces de un árbol. Lo bueno de este sistema frente al tradicional, es que puedes variar la cadencia de las bombillas a voluntad con programas muy sencillos.
|
Algunos componentes
|
7400 - 4 puertas NAND |
7402 - 4 puertas NOR | |
7432 - 4 puertas OR | |
|
7408 - 4 puertas AND |
|
74125 - 4 puertas triestado |
|
74245 - Buffer |
Resistencia | |
Diodo luminiscente o LED | |
Resistencia detectora de luz | |
Resistencia de temperatura
o NTC
( negativa, si es positiva, PTC ) |
Es posible que se me haya deslizado algún error sin querer y estaría agradecido cualquier sugerencia o corrección.
Mi correo: turriano@terra.es