domingo, 30 de diciembre de 2012

El sonido en 8 bits (IV): En los MSX

Artículo publicado en el número 5 de RetroWiki Magazine


El estándar MSX1 definía una máquina con el típico chip de sonido de General Instrument, el AY-3-8910, lo que se mejoró mínimamente en el MSX2, se aumentó en los  MSX2, llegando al máximo en los Tubo-R. En su versión del Microsoft Basic incluyeron una forma muy sencilla de usar para hacer música. En su versión del Basic para los MSX1, Microsoft incluyó tres instrucciones de manejo del sonido, que daban todo el control del chip al usuario. 

El sonido en los MSX
El estándar original de los MSX definía el uso de un chip generador de sonido programable (PSG) de General Instrument, el AY-3-8910, que proporciona tres canales configurables de sonido para generar ondas cuadradas y ruido blanco, con dos puertos de entrada/salida para su gestión. Como cada fabricante podía implementar sus máquinas con muchas opciones, la mayoría de los MSX1 solo disponían de salida de sonido mono a través del televisor, solo algunos permitían salida estéreo desde un conector trasero. 

En los MSX2 no se mejoró mucho la capacidad de generar sonido, ya que usaba el chip de Yamaha YM2149 que es compatible con el AY-3-8910, pero todas las implementaciones ya tenían mono o estéreo por la tele, y siempre estéreo por un conector de salida. El MSX2+ mantenía el sistema, añadiendo opcionalmente un segundo chip de sonido Yamaha YM2413, que proporcionaba síntesis musical de 1 instrumento entre 15 posibles, que también fue muy usado en cartuchos de ampliación.  El TURBO-R cambiaba todo el sistema, mejorando los chips usados y añadiendo MIDI, pero muy pocas máquinas lo usaron.

Sonido desde BASIC

Para producir sonido desde el BASIC hay tres formas, usando BEEP, SOUND o PLAY, cada una tiene una forma diferente de enviar los comandos.

La forma mas sencilla es usar BEEP, que hace un sonido fijo de duración establecida, es un pitido sencillo en el altavoz, y se usa mucho antes de una interacción con el usuario para avisarle:

10 BEEP
20 INPUT “Introduzca un valor: “;A$


La orden SOUND permite enviar a los registros internos del chip los valores que se deseen, por lo que hay completo control del sonido, a costa de necesitar conocer perfectamente como trabaja el chip. La sintaxis es: SOUND registro, valor
  • Registro: indica el registro que se desea modificar. Los AY-3-8910 disponían de 16 registros de 8 bits, algunos usados de dos en dos para conseguir valores de 16 bits, pero no todos admitían cualquier valor: 
    • 0 y 1: En los 12 bits se establece la frecuencia para el canal A, el 0 es el byte bajo (0-255) y el 1 el medio byte alto (0-15), pudiendo manejar 4096 tonos. Para enviar un sonido, por ejemplo de 1456, hay que calcular:
      • Byte alto: parte entera del valor dividido entre 256 -> |1456/256|=5 
      • Byte bajo: el valor menos el byte alto por 256 -> 1456-(5*256)=176
    • 2 y 3: Lo mismo para el canal B. 
    • 4 y 5: Lo mismo para el canal C .
    • 6: En 5 bits el tono del canal de sonido blanco. 
    • 7: En 6 bits que canales se activan a la vez, será la suma de los valores deseados entre los siguiente, así si queremos que suenen a la vez A y C, y por el A añadir ruido blanco, sería 1+4+8=13:
      •    1: Canal A
      •    2: Canal B
      •    4: Canal C-Sonido Blanco)
      •    8: Ruido blanco en el canal A
      •  16: Ruido blanco en el canal B
      •  32: Ruido blanco en el canal C
    • 8, 9 y 10: Volumen del canal A, B o C respectivamente, entre 0 (mínimo) y 15 (máximo), pero siempre hay que sumarle 16 para activar el registro.
    • 11, 12: Frecuencia del patrón de envolvente del sonido, 11 byte bajo y 12 byte alto.
    • 13: Modo del patrón del envolvente de volumen, con valores que se sumen entre:  1 para activar Hold, 2 para activar Alternate, 4 para activar Attack, 8 para activar Continue (ver el artículo sobre los Amtrad para entender mejor los envolventes).
    • 14 y 15: No se usan para el sonido, son los valores de los puertos de entrada/salida del chip
  • Valor: es el valor a guardar en el registro, dependiendo de los bits que pueda recoger cada uno.
Esta forma de ejecutar sonido nos da todo el control sobre el chip generador de sonido, pero es más compleja de manejar. Un ejemplo con el canal de sonido blanco:

10 SOUND 6,0
20 SOUND 7,55
30 SOUND 8,16
40 SOUND 11,23
50 SOUND 12,2
60 SOUND 13,9

Como esta forma de manejarlo es mas compleja, hay una segunda forma de hacerlo mucho mas sencilla, que nos permite hacerlo incluso a los que no sabemos casi nada de música, con la orden PLAY, que tiene esa sintaxis: PLAY [EA] [,EB][,EC] en donde EA, EB y EC son tres cadenas de caracteres con las notas que se desea hacer sonar en los canales A, B y C respectivamente. Solo es obligatorio indicar una de las tres cadenas, y se componen de notas y variaciones de sonido, pudiendo usar cualquiera de estos comandos sin separaciones entre ellos (lo que dificulta un tanto la lectura):
  • Notas Musicales: Se indican mediante una letra o una “N” seguida de un número de una o dos cifras, y al igual que en un piano de una octava, se usa la escala cromática en lugar de la natural, con los semitonos usando sostenidos (añadiendo “#” o “+”) y bemoles (añadiendo “-“), y al igual que en un piano de una sola octava no están permitidos B# (Do de la siguiente octava), C- (Si de la anterior octava), E# (Fa), F- (Mi):
    •     Do        N36, C
    •     Do#      N37, C#, C+, D-
    •     Re        N38, D
    •     Re#      N39, D#, D+, E-
    •     Mi        N40, E
    •     Fa        N41, F
    •     Fa#      N42, F#, F+,G-
    •     Sol       N43, G
    •     Sol#     N44, G#, G+, A-
    •     La        N45, A
    •     La#      N46, A, A+, B-
    •     Si         N47, B   
  • Octava: Si no se indica nada se entiende la octava natural (la cuarta), si se desea usar otra octava se indica con al expresión “On” antes de la nota, donde n es el número de la octava de 1 a 8. Así O2B es el Si de la segunda octava. Si se usa la notación numérica, no es necesario, solo hay que usar el número mas o menos 12 veces la octava a usar, así el Do en las 8 octavas sería O1C=1,  O2C=12, O3C=24, O4C=36, O5C=48, O6C=60, O7C=72, O8C=84
  • Duración de la nota: Se indica usando “L” mas la duración entre 1 y 64, siendo L1=redonda y el resto la fracción 1/n del tiempo, así L2=blanca (1/2), L4=negra (1/4), L8=corchea (1/8), etc. Si solo queremos que afecte a una nota, lo pondremos justo después de su símbolo, Así A16 es una La semicorchea, y E4F es Mi negra Fa redonda, mientras que L4EF es Mi negra Fa negra.
  • Silencios: Se indican mediante “R” seguido de la duración, igual que la de una nota, así R1 es silencio de redonda y R8 silencio de corchea.
  • Puntillo: El símbolo “.” extiende la nota o silencio por 3/2 de su valor.
  • Tempo: Se usa “T” seguida de un número entre 32 y 255, indicando la duración base de una blanca. Si no se indica nada se asume T120.
  • Volumen: Se usa “V” seguida de un número entre 0 y 15 para indicar el volumen del canal.
  • Envolvente: Para manejarlo se usan “S” seguida de un número entre 0 y 15, para indicar la forma de la envolvente, y “M” seguida de un número entre 0 y 65535 para el periodo de la envolvente.
  • Uso de variables: Si se desea usar el contenido de una variable numérica en lugar de cualquier argumento numérico (no para notas), se puede usar en lugar de un número la expresión “=” mas el nombre de la variable mas “;”, así si disponemos de una variable llamada A y otra llamada B, podemos usar “BBO=A;T=B;”.

Un ejemplo sacado de un manual, en el que se presenta una melodía en tono de rock, o eso ponen en el libro:

10 A$=”T230O3EG#BO4C#DC#O3BG#”
20 B$=”T230O3AO4C#EF#GF#EC#”
30 C$=”T230O3BO4D#F#G#AG#F#D#”
40 PLAY A$ : PLAY A$ : PLAY B$
50 PLAY A$ : PLAY C$ : PLAY B$
60 GOTO 40

Este sistema de producir sonido es muy sencillo para que cualquiera pueda transcribir una partitura en su MSX.


Jose Antonio Vaqué Urbaneja, podéis contactar conmigo en mi mail o ver más cosas en mi blog

sábado, 29 de diciembre de 2012

Introducción a la programación usando BASIC (V): FOR y GOSUB


Artículo publicado en el número 5 de RetroWiki Magazine

BUCLES y SUBRUTINAS.

En este artículos presento los bucles y el manejo de las subrutinas, con esto simplificamos el manejo del control del programa, sin usar tantas sentencias GOTO.

BUCLES FOR

Una vez hemos repasado las sentencias IF y GOTO, que son las básicas para el manejo del programa, en esta entrada veremos dos que nos simplificarán su manejo, haciendo que el propio programa realice el control.

Un bucle es un trozo del programa que se ejecuta repetidamente, al final del bucle una sentencia GOTO nos retorna al principio, y en cualquier momento podemos salir de él usando otros GOTO. Vamos a hacer un bucle que nos calcule el factorial de un número, sabemos que el factorial de un número (que se marca con el símbolo de admiración) es el producto de los números entre 1 y el número que estamos calculando, así el factorial de 5 es:
5! = 5.4.3.2.1 = 120


100 REM --------------------------------------------------------
110 REM - Calculo de factoriales, JAVaqué‚ 2012                -
120 REM --------------------------------------------------------
130 CLS: INPUT "Número: ";N              :REM Pedimos el número mero
140 IF (N>=0) THEN GOTO 170             :REM No para negativos
150 PRINT "ERROR: No se puede calcular el factorial de un negativo"
160 GOTO 240                            :REM Ir al final
170 LET R=1                             :REM R será el resultado
180 IF (N=0) THEN GOTO 230              :REM El factorial de 0 es uno
190 LET S=1                             :REM En S lo que multiplicamos
200 LET R=S*R                           :REM Multiplicamos anterior
210 LET S=S+1                           :REM Sumamos 1 al número
220 IF (S<=N) THEN GOTO 200             :REM Mientras no sea mayor
230 PRINT ,N;"! = ";R                   :REM El resultado
240 PRINT : PRINT                       :REM Dejamos línea en blanco
250 INPUT "¿Otro? (S/N): ";O$           :REM Preguntamos si seguimos
260 PRINT : PRINT                       :REM Dejamos línea en blanco
270 IF (O$="S") OR (O$="s") GOTO 130    :REM Si es si seguimos
280 IF (O$="N") OR (O$="n") GOTO 310    :REM Si es no salimos
290 PRINT "Responda S o N" : GOTO 240   :REM Repetir pregunta
310 PRINT "Fin del programa"

La parte marcada en verde es la inicialización de las variables necesarias, en R tendremos el resultado, lo empezamos en uno ya que lo usamos multiplicando (si fuera sumando empezaríamos en cero), en S ponemos un contador hasta el número, empezamos a contar en uno. Luego en rojo el bucle, multiplicamos el resultado anterior por el contador del número, le sumamos uno al número, y se repite mientras no lleguemos a superar el número. Para entender mejor un bucle se usan diagramas de valores de variables, en el que se expresa como van cambiando las variables del programa a lo largo del tiempo, con un valor de ejemplo:

Paso Valor de N Valor de R Valor de S
130 INPUT N
<Se pide el número>
5 Indeterminado Indeterminado
170 LET R=1 5 1 Indeterminado
180 IF (N=0) THEN GOTO 230
<NO es 0, comienza el bucle>
5 1 Indeterminado
190 LET S=1 5 1 1
PASO 1 POR EL BUCLE
200 LET R=S*R 5 1 1
210 LET S=S+1 5 1 2
220 IF (S<=N) THEN GOTO 200
<Es menos, seguir el bucle>
5 1 2
PASO 2 POR EL BUCLE
200 LET R=S*R 5 2 2
210 LET S=S+1 5 2 3
220 IF (S<=N) THEN GOTO 200
<Es menos, seguir el bucle>
5 2 3
PASO 3 POR EL BUCLE
200 LET R=S*R 5 6 3
210 LET S=S+1 5 6 4
220 IF (S<=N) THEN GOTO 200
<Es menos, seguir el bucle>
5 6 4
PASO 4 POR EL BUCLE
200 LET R=S*R 5 24 4
210 LET S=S+1 5 24 5
220 IF (S<=N) THEN GOTO 200
<Es menos, seguir el bucle>
5 24 5
PASO 5 POR EL BUCLE
200 LET R=S*R 5 120 5
210 LET S=S+1 5 120 6
220 IF (S<=N) THEN GOTO 200
<Es mayor, fin del bucle>
5 120 6


Podemos simplificar esto usando la sentencia FOR - NEXT, que es el bucle usado en el BASIC para realizar estas labores. Es un bucle automático, en el que una variable va aumentando (o disminuyendo) su valor de forma automática. Veamos como cambiar las 6 líneas anteriores por
170 LET R=1                  :REM En R tendremos el resultado
180 IF (N=0) THEN GOTO 230   :REM El factorial de cero es uno
190 FOR S=1 TO N             :REM Bucle desde 1 hasta el valor de N
200   LET R=S*R              :REM Multiplicamos por el anterior
220 NEXT S                   :REM Repetir el bucle

Es muy similar, pero nos ahorramos inicializar el valor de S e ir comparando, el bucle se repite de forma automática, la sintaxis es FOR variable = inicial TO final [STEP suma] en el que usamos una variable por su nombre, que partirá de un valor inicial, y se irá sumando el valor indicado por STEP, hasta que se sobrepase al valor final, momento en que se sale del bucle
Paso Valor de N Valor de R Valor de S
130 INPUT N
<Se pide el número>
5 Indeterminado Indeterminado
170 LET R=1 5 1 Indeterminado
180 IF (N=0) THEN GOTO 230
<NO es 0, comienza el bucle>
5 1 Indeterminado
190 FOR S=1 TO N 5 1 1
PASO 1 POR EL BUCLE      
200 LET R=S*R 5 1 1
220 NEXT S
<Es menos, seguir el bucle>
5 1 2
PASO 2 POR EL BUCLE      
200 LET R=S*R 5 2 2
220 NEXT S
<Es menos, seguir el bucle>
5 2 3
PASO 3 POR EL BUCLE      
< 200 LET R=S*R 5 6 3
220 NEXT S
<Es menos, seguir el bucle>
5 6 4
PASO 4 POR EL BUCLE      
200   LET R=S*R 5 24 4
220 NEXT S
<Es menos, seguir el bucle>
5 24 5
PASO 5 POR EL BUCLE      
200 LET R=S*R 5 120 5
220 NEXT S
<Es mayor, fin del bucle>
5 120 6

Podemos usar STEP para indicar decremento, usando un valor negativo de incremento, si queremos usar bucle que empiece por 10 y llegue hasta 1 decrementando de uno en uno, usaremos FOR i=10 TO 1 STEP -1.

Podemos usar STEP para indicar que cuente de n en n, no tiene por qué ser uno, por ejemplo sumaremos todos los números múltiplos de 2 menores de cien, usaremos un bucle FOR i=0 TO 99 STEP 2, lo que hará un bucle  con los valores 0,0+2=2, 2+2=4, 4+2=6, etc. Si queremos multiplicar todos los números múltiplos de 13 menores de 130 inclusive, podemos usar FOR i=130 TO 0 STEP -13 (lo que dará 130, 117, 104,…, 13, 0) o bien FOR i=0 TO 130 STEP 13 (lo que dará 0, 13, 26,…, 117, 130).

En versiones más modernas del BASIC existen otras instrucciones de control de bucle, pero solo el FOR está disponible en todas las versiones de BASIC de nuestras máquinas.

Subrutinas

La sentencia GOTO hemos visto que transfiere la ejecución del programa a otra parte del mismo, y si queremos regresar a donde estábamos debemos usar otro GOTO. Para evitar este mecanismo, podemos usar el manejo de subrutinas, que nos ayudará en la definición de partes del programa reutilizables en otros programas, usando las instrucciones GOSUB y RETURN.

Una subrutina es un trozo del programa que se ejecuta por si mismo, de manera independiente del resto del programa, y que podemos llamar cuando queramos, devolviendo el control al punto donde la hemos llamado de forma automática, sin necesidad de sabe desde que punto la hemos llamado. Voy ha convertir nuestro programa de cálculo de factoriales en una subrutina, y nos dará la diferencia entre el factorial de dos números:

100 REM -------------------------------------------------------------
110 REM - Calculo de diferencia de dos factoriales, JAVaqué 2012    -
120 REM -------------------------------------------------------------
130 INPUT "Primer Número: ";N        :REM Pedimos el primer número
140 GOSUB 1000                       :REM Llamamos a la subrutina
150 IF (R=-1) THEN GOTO 130          :REM No para negativos
160 LET N1=N : LET F1=R              :REM Guardamos el valor
170 INPUT "Segundo Número: ";N       :REM Pedimos el segundo número
180 GOSUB 1000                       :REM Llamamos a la subrutina
190 IF (R=-1) THEN GOTO 130          :REM No para negativos
200 LET N2=N : LET F2=R              :REM Guardamos el valor
210 PRINT ,N1;"! (";F1;")- ";N2;"! (";F2;") = ";F1-F2 
220 PRINT : PRINT                    :REM Dejamos línea en blanco
230 INPUT "¨Otro? (S/N): ";O$        :REM Preguntamos si seguimos o no
240 PRINT : PRINT                    :REM Dejamos línea en blanco
250 IF (O$="S") OR (O$="s") GOTO 130 :REM Si es si seguimos
260 IF (O$="N") OR (O$="n") GOTO 280 :REM Si es no salimos
270 PRINT "Responda S o N": GOTO 220 :REM Si no es si o no repetir pregunta
280 PRINT "Fin del programa"
290 STOP                             :REM Necesario para finalizar
1000 REM -------------------------------------------------------------
1010 REM - Subrutina de cálculo de un facTOrial.                     -
1020 REM - Pasamos en N el número a calcular                         -
1030 REM - Retorna en F el factorial, o -1 si no puede calcularlo    -
1040 REM -------------------------------------------------------------
1050 IF (N>=0) THEN GOTO 1090       :REM No para negativos
1060 PRINT "ERROR: No se puede calcular el factorial de un negativo"
1070 LET R=-1                       :REM Marcamos el error
1080 RETURN                         :REM Salimos
1090 LET R=1                        :REM En R tendremos el resultado
1100 FOR S=1 TO N                   :REM Bule de 1 a N
1110   LET R=S*R                    :REM Multiplicamos por el anterior
1120 NEXT S                         :REM Bucle
1130 RETURN                         :REM Salimos

Tras pedir el primer número, llamamos a la nueva subrutina en la línea en verde usando GOSUB nro_de_linea, esto equivale a hacer GOTO 1000, y hacemos el cálculo del número factorial. Si el número es negativo ponemos el resultado como -1 indicando error y retornamos a la llamada usando la instrucción RETURN, que en este caso sería como hacer un GOTO 150. Si el número es correcto, calculamos el factorial  y al final volvemos con otro RETURN, lo que nuevamente sería equivalente a hacer un GOTO 150. Luego pedimos el segundo número, y llamamos nuevamente a la subrutina, lo que equivale a hacer un GOTO 1000, pero cuando finalice la subrutina con el RETURN primero o con el segundo, hará esta vez un GOTO 190, por lo que podemos usar la misma subrutina desde dos partes de nuestro programa, sin preocuparnos de desde donde se llame, cuando finalice continúa el programa por donde estaba, lo que es una gran ventaja, ya que no hay que preocuparse de donde era ese lugar. 

Solo existe una limitación, hay una pila de llamadas a subrutinas, en donde el programa guarda la dirección de retorno de la misma, y esta pila tiene un tamaño limitado, dependiendo de la versión del BASIC serán mas o menos, el mínimo creo que son 7, por lo que no podemos usar llamadas anidadas a subrutinas en muchos niveles, para evitar esto. Por otro lado, siempre que se pueda es mejor hacer un salto a una subrutina que poner muchos GOTO, ya que mejora la legibilidad del programa, sobre todo pensando que se puede salir de una subrutina desde cualquier parte, sin pensar a donde regresamos, evitando muchos GOTO a la misma línea.

En esta entrada hemos aprendido a manejar los bucles FOR y las subrutinas. En la próxima entrada seguiré con los bucles hablando de bucles anidados, y mejoraré el control del programa usando ON GOTO y ON GOSUB (que no son del primer BASIC pero si están en casi todos), y mejoraré nuestra calculadora. Luego nos queda DEF FN y READ/DATA para terminar el repaso de los comandos estándar. Animaros a teclear estos programas y a idear nuevos, entenderlo bien, e intentar mejorarlo, solo se aprende a programar programando.


Jose Antonio Vaqué Urbaneja, podéis contactar conmigo en mi mail o ver más cosas en mi blog

viernes, 28 de diciembre de 2012

Electrónica de Andar por Casa, Artículo 6: Montajes básicos 1

Artículo publicado en el número 5 de RetroWiki Magazine

MONTAJES


Hasta ahora no hemos visto más que componentes y algo de teoría, y vimos como usar un polímetro, y ahora vamos a hacer unos montajes básicos, que nos ayudarán a empezar a entender los circuitos y a manejarnos con los componentes. Solo indico tres circuitos muy sencillos en esta entrada, en la próxima veremos ya algo con transistores.

Componentes

Estos son todos los que usaremos, marco con una “T” cuando se usa en todos los montajes, y con un número el número del montaje en que se usa
  • (T)     Placa de prototipos sin soldaduras
  • (T)     Cablecillos para puentes
  • (T)     Pila de 9 voltios, con un conector apropiado
  • (1,2)  Diodo LED rojo
  • (1,2)  Resistencia 220Ohm, ¼ de watio
  • (2)     Potenciómetro de 100K Ohm
  • (3)     Diodo 1N4004 o similar

Montaje de circuitos de pruebas
Usaremos muy pocas cosas para estos montajes, pero lo principal es una base para hacerlos que nos evite problemas. Podemos montar los circuitos soldando los cables directamente, o incluso uniendo con cinta aislante, pero una forma sencilla y económica es una placa de prototipos sin soldaduras, como esta:


Los puntos van unidos entre sí en grupos de 5, los bordes marcados como “+” y “–“ lo están en la imagen en grupos horizontales, mientras que os interiores marcados como “a” hasta “l” lo están verticalmente. Los bordes externos se suelen usar como alimentación (por eso se marcan como  “+” y “–“), mientras que el interior se usa para el circuito. Los chips se deben ubicar con una fila de patitas en un lado del centro (fina “e”), y la otra fina en el otro lado (fila “f”), así dispondremos de todas las patas conectadas, dejando filas libres para otros componentes o cables, y sin cortocircuitarse entre sí ninguna. Para unir el resto usaremos cablecillos pelados con la punta estañada preferentemente, aunque sin abusar de estaño para que entren. Estas placas las hay de mucho tamaños, yo tengo una muy pequeña, suficiente para cualquier circuito de los que vamos a hacer.

Para alimentar nuestros circuitos podemos usar muchas cosas, pero lo más sencillo es usar una pila de 9Voltios, que proporciona suficiente corriente y voltaje para cualquiera de estos voltajes.

(1)    Encender un LED

El primer circuito siempre es el más sencillo, vamos a encender un LED. En estos componentes el terminal mas largo es el ánodo, que se conecta al lado positivo, mientras el terminal más corto es el cátodo que va al negativo. También la cabeza redonda del LED tiene una pequeña muesca en el lado del cátodo, pero recuerda que es un diodo, si lo conectas al contrario no lucirá. Los diodos LED funcionan con corrientes muy pequeñas, alrededor de 2voltios, por lo que si partimos de 9 voltios, debemos reducir el voltaje, para ello conectaremos en serie con el diodo una resistencia de 220Ohm, suficiente para protegerlo. El circuito que usaremos será el que se presenta a continuación. Por convención, para los cables de alimentación hay que usar el color rojo para el polo positivo, y el negro para el negativo. Los dos puentes necesarios están marcados con un hilo verde y otro morado. 


Podéis probar varias cosas, a cambiar el sentido del LED, veréis que no luce pero no se estropea, podéis poner la resistencia antes o después del LED, viendo que no afecta, y podéis jugar con una resistencia más grande, veréis que el LED luce menos, y si os pasáis dejará de lucir. Si os quedáis cortos con la resistencia, en lugar de lucir mas se quemará el LED.

Luego coge el tester y a medir, primero los voltajes entre el polo negativo de la pila (punto d) y los puntos a, b y c del circuito, viendo como se comporta. Después podéis medir la resistencia para ver como en un circuito en varios puntos, midiendo entre a y b, entre b y c, entre a y c, y la resistencia total entre a y d. Medir con y sin la pila en el circuito, y veréis como afecta su resistencia interna al mismo.

(2)    Manejo de un potenciómetro

Añadiremos uno de 100K a nuestro circuito, y veremos como va cambiando la cantidad de luz del LED al girarlo. El montaje es muy sencillo, solo hay que cambiar el puente que va al polo negativo, intercalándolo con el potenciómetro. En ellos, el terminal central es el que varía, siempre sobre los dos laterales que son indiferentes, en uno aumenta y en el otro disminuye el voltaje, y siempre la resistencia del potenciómetro variará entre cero y su valor como máximo (en el nuestro entre 0 y 100K Ohm), dependiendo de la posición del mando giratorio.. Podéis ver como responde conectando al punto A o al punto B del potenciómetro. Incluso se puede usar ambos para controlar que uno aumente y el otro disminuya. 



Luego coge el tester y a medir, en este circuito lo mas interesante es voltaje y resistencia entre los puntos c y d variando el potenciómetro lentamente para ver como va cambiando el valor de la señal, ya que entre estos dos puntos es donde mas se ve afectados el circuito por el potenciómetro, pero no dejéis de medir en todos los puntos, aprender cosas con la práctica es interesante.

(3)    Manejo de un Diodo

Sabemos que los diodos permiten que la corriente circule en un sólo sentido, por lo que podemos usar el circuito anterior para probarlo, conectando el diodo en uno u otro sentido, el LED lucirá o no. Para ello usaremos este circuito. En el hemos añadido un diodo del tipo de baja corriente, un 1N4004 o similar. Los diodos tienen una banda que marca el cátodo, por tanto es sencillo instalarlos. Podéis probar a conectarlo en sentido contrario, y el LED no lucirá.




En este circuito poco podemos medir, pero si que hay una cosa interesante, para ver si un diodo funciona, lo que se hace es poner el tester en modo medición de resistencias, y ver como se comporta la misma si medimos poniendo el terminal rojo en el punto c y el negro en el d, y luego al contrario. Vemos que la resistencia varía entre una pequeña y una muy grande, teóricamente infinita. Esto es por que el tester pone entre sus puntas una corriente, y por la ley de Ohm, conociendo la corriente que envías y la intensidad que circula, puedes conocer la resistencia en ese punto. Pero a una resistencia le da igual la polaridad de la corriente, pero no a un diodo, que no dejará pasar la corriente si circula en sentido inverso, por lo que la resistencia será infinita, pero dejará pasar casi toda en sentido directo, por lo que la resistencia interna será baja (la caída de voltaje será de 0.7 Voltios si el diodo es de cilicio, y de 0.2 Voltios si es de germanio).

Jose Antonio Vaqué Urbaneja, podéis contactar conmigo en mi mail o ver más cosas en mi blog

jueves, 27 de diciembre de 2012

Un recorrido por la historia del Spectrum


Índices: Máquinas Sinclair       Historia de la Informática


Ya que hablo mucho de la historia de la informática, creo que para conocer la evolución de nuestros queridos Spectrum, que mejor que ver como fueron cambiando a lo largo del tiempo. La verdad es que esto se me ha ocurrido buscando el esquema de una placa para mirar donde colocar un reset, pensé en hacer un artículo sobre el tema, y de eso ha surgido esta idea. Luego buscando imágenes de las placas, he encontrado en la web de microhobby un artículo similar, prueba de que la misma idea se puede tener de forma independiente, y no quiero dejar de mencionarlo, sobre todo si alguno no conoce esa web.

Internamente existió un único modelo, ya que solo cambiaban algunos componentes y su disposición, pero existieron varias versiones de placa. El aparato inicialmente se podía comprar con una memoria de 16Kb ampliables a 48Kb, luego podías elegir entre 16Kb ampliables o directamente con una memoria de 48Kb, y luego solo existía el modelo con 48Kb. Decir que esa cantidad era de memoria RAM, cuando lo normal es indicar la total incluyendo la ROM, por lo que hay que sumar 16Kb mas, y para comparar con otros modelos, diríamos que eran de 32Kb o de 64Kb.

Existieron dos carcasas diferentes, la carcasa con teclado de goma, que denominamos "Spectrum gomas" coloquialmente, y luego la carcasa con teclado ampliado "Spectrum+", pero en su interior se pueden apreciar cambios entre las versiones.

Luego aparecieron los Timex, fabricados en colaboración entre ambas marcas, con diferencias sobre los originales y multitud de clónicos "no oficiales" (aunque en algunos se cree ayudó Sinclair directamente como en los brasileños), entre los que destacan los Inves Spectrum Plus, diseñados y fabricados en España., pero existieron los de Microdigital (Brasil), Czerweny (Argentica), los SAM Coupe (GB), los Lambda 8300 (Hong Kong), y los innumerables clones rusos y polacos.

Por no duplicar, las imágenes las he obtenido de otras Webs, la mayoría de hardware.speccy.org, y recordar que podéis pinchar en las imágenes para ampliarlas. Solo hablaré de los modelos de Sinclair y de los licenciados a Timex, los "oficiales" de Sinclair,

Evolución externa

En 1982 apareció el Spectrum, con el modelo "Sinclair Spectrum 16K" y modelo "Sinclair Spectrum 48K", externamente no cambiaron a lo largo de su historia de ventas, aunque una serie se fabricó por Samsung en Corea, con un membrana de mejor calidad que las inglesas, por lo demás solo cambia por fuera la referencia en la parte trasera del aparato.


Modelo "Sinclair Spectrum 48Kb" teclado duro, solo cambiaba el tacto del teclado, al no ser de teclas de goma sino de teclas duras, tal y como puso Timex en sus modelos, y no lleva el arco-iris en la caja. Yo no he visto ninguna unidad de este modelo.
En 1984 apareció el nuevo "Sinclair Spectrum+", con su nueva carcasa y teclado, en el que se añadía un botón de reset en la zona lateral izquierda, y un teclado mejor con mas teclas (duplicando las ya existentes, por ejemplo las comillas se obtenían por Symbol Shift mas P o por una tecla añadida para sacarlas de forma directa, que realmente enviaba las dos teclas al ordenador). Este tipo de teclado fue usado mas adelante en el QL. Internamente era el mismo modelo del anterior gomas, aunque existieron dos variantes de la serigrafía y de la ROM para caracteres nacionales ingleses (arriba) o españoles (abajo), siendo el resto igual:



Evolución interna

Aquí si tuvieron lugar cambios de componentes y ubicaciones, aunque básicamente son todos el mismo aparato. Lo que si cambia en casi todas las versiones en la versión de la ULA, y no todas son compatibles entre sí. Cada placa tiene una versión (issue) diferente, existiendo estas variantes:

Issue 1, versión con 16Kb. Este fue el primer Spectrum, y su placa tenía una disposición de componentes  diferente a las posteriores, aunque todas conservan la memoria base, los 16Kb de memoria con la zona de pantalla incluida, ubicados en la zona inferior izquierda (8 chips), y la ULA justo arriba (chip mas grande de todos, aunque luego subió un poco mas), a la izquierda de la ULA el circuito generador de la señal de vídeo, que usa un sistema que mezcla dos señales de color, por eso dispone de dos resistencias y dos condensadores variables (responsables de que la imagen aparezca en amarillo o verde en algunas máquinas), los dos chips mas grandes a la derecha son el procesador debajo (en general un NEC en lugar de un Zilog, por tema de precio) y la ROM encima, y a su izquierda dos chips de apoyo para lectura de la RAM. Junto a ellos se ve un placa pequeña montada de forma invertida, servía para corregir un error de la ULA. El altavoz abajo a la derecha, junto al circuito de alimentación con su disipador. Los otros chips cambiaron de ubicación en el resto de issues. Los dos zócalos libres de la parte superior sirven para enchufar la ampliación de memoria, aunque con el modelo salió una ampliación externa. Se calcula que se fabricaron 50.000 placas de este modelo.



Issue 1, versión con 48Kb. Como se ve es el mismo del anterior, pero con una placa interna de ampliación de memoria enchufada.


Issue 2, versión con 16Kb. Esta es la placa con la disposición de componentes de la mayoría de modelos, ya que a partir de esta tienen menores diferencias. Se ve como han desplazado hacia arriba los chips que no son la memoria, que son de izquierda a derecha la ULA, los dos chips de apoyo de acceso a memoria y zócalos para otros 4 si se amplia, el procesador y la ROM. En algunas placas estos chips van también en zócalo, y en otras soldados directamente. El procesador solía ser un NEC. Los zócalos libres de abajo son para la ampliación de la RAM a 48Kb. Los condensadores y componentes de la zona inferior derecha se han reubicado completamente. De esta placa se fabricaron medio millón de unidades, tanto para salir con 16Kb como con 48Kb.


Issue 2, versión 16Kb ampliada a 48Kb. Se han llenado los zócalos libres. Se ve como se ha soldado un transistor adicional encima del Z80, para resolver un problema de esta issue, y el chip de apoyo de la fila superior junto al Z80 tiene un puente. También se han visto placas con una placa pequeña ubicada de forma invertida en el lugar de ese chip con el puente.




Issue 2, versión 48Kb. Es la misma placa, pero los chips se han soldado directamente a la misma sin zócalos. El apaño del transistor sigue presente.



Issue 3. Ya no se vende el modelo de 16Kb, por tanto a partir de este modelo solo hay placas con 48Kb. Esta versión cambia la versión de la ULA y la forma de generar el vídeo, por lo que desaparecen de su  izquierda los condensadores y resistencias variables, se ubica en la parte superior derecha el circuito de alimentación, se vuelven a reubicar ligeramente los componentes de la zona inferior derecha, y se mejora el altavoz, sacando mas potencia. El cambio de ULA produce incompatibilidad en algún juego inglés, aunque parece que no en los españoles. Se calcula que se fabricaron unos tres millones de placas entre la issue 3 y la 3B.


Issue 3B. Ligeros cambios en algún componente para resolver algún problema del circuito, el resto es lo mismo. Es la placa que se usó en los Spectrum+, si se encuentra alguna anterior son reparaciones en que se cambiaba la placa. El puslador de reset va soldado al condensador directamente, aunque por la parte inferior de la placa. Esta versión es conocida por tener un problema con el generador de vídeo, primero se perdía un color de los tres básicos, y luego los otros, quedando la imagen en blanco y negro.


Issue 4A. Esta placa es una 3 con ligeros cambios de componentes y una nueva versión de la ULA, hay placas de color crema y otras de color verde, pero son las mismas. A partir de estas placas hay un cambio en los componentes de la fuente de alimentación, y la mayoría usan el chip de Zilog.





Issue 4B. Nuevos ligeros cambios de componentes


Issue 4E. Esta placa se usó en los Spectrum+, por lo que lleva el interruptor de reset soldado directamente al condensador, esto se hacía normalmente por la parte inferior de la placa, no por arriba como en esta foto, pero en ella se aprecian dos tacos de espuma en la zona superior, uno sobre el modulador y otro sobre el disipador, es difícil encontrarlos en este estado, por la cantidad de calor que se generaba en esa zona.


Issue 5. De esta placa se fabricaron 1.000 unidades, pero solo para GB. Aunque hay esquemas de esta placa, no he encontrado imágenes de la misma. En esta se cambian los 6 chips de apoyo para el acceso a la RAM, agrupándolos en uno solo, una pequeña ULA, pero añade un inversor adicional, por lo que al final cambian 6 chips por solo 1 y añade otro. Esta placa es usada solo en los modelos Spectrum+, y lleva ya el reset soldado directamente a posiciones específicas en la placa

Issue 6. Es una 5 pero aparecen algunos con la ULA fabricada por Saga. No he encontrado imágenes de ella, pero está referenciada en el manual de servicio técnico.

Issue 6A. Esta es la última placa de los Spectrum, con cambios menores en algún componente, es la placa que se encuentras habitualmente en los Spectrum+. Aquí se ven los restos de los dos tacos de espuma de la zona superior, y en este estado están la mayoría de las placas actualmente.


Issue 6A para máquinas españolas. Para adaptar los Spectrum+ a España, no solo se cambia el teclado, sino que se rehizo la ROM, traduciendo todos los mensajes. En lugar de una ROM se usó una EPROM, por lo que había que cambiar algunas líneas, lo que se hizo soldando unos hilos y componentes adicionales, se ve un hilo suelto de la EPROM al Z80, y un condensador un poco por encima y a la derecha del conector del teclado derecho. Por el resto es una placa normal.



Fabricación por modelos

Se calcula que se fabricaron las sigueintes unidades de cada issue de placa, lo que nos indica el número total de Spectrum fabricados:

  • Issue 1: 60.000
  • Issue 2: 500.000
  • Issue 3: 3.000.000
  • Issue 4: desconocido
  • Issue 5: 1.000
  • Issue 6: desconocido

Las máquinas de Timex

Estos Spectrum fabricados por la americana Timex bajo licencia de Sinclair aportaban mejoras sobre los modelos ingleses, ya que el mercado americano era mas exigente por lo que parece. Se vendieron en USA, Portugal, Polonia y algunos países Sudamericanos.

TS 1500. Cuando apareció el Spectrum, Timex diseñó el TS 2000, pero abandonó el proyecto por su mejorado TS 2068, aunque se usó el diseño de la caja en Portugal para fabricar esta máquina en 1983, que es es realmente un TS 1000 en una nueva caja de color plata, por lo que solo es un ZX81 en la caja de un Spectrum, por lo que cambia la serigrafía de las teclas, que son de plástico en lugar de goma, y la membrana es mejor que la del propio spectrum. El parato llevaba 16Kb internos de RAM de serie. Fueron fabricados y vendidos solo en Portugal.

Aunque lo parece, esto no es un Spectrum, es un ZX81 con otra caja

TS 2068. Estas máquina de 1983 son un spectrum 48Kb mejorado, el teclado usaba teclas de plástico en lugar de goma, incluía un interface para dos Joystick, un chip de sonido y entrada de cartuchos incorporada, la ULA soportaba varios modos gráficos adicionales, y se añadieron algunos comandos al Basic. Se vendió en USA (TS 2068), Portugal (TC 2068) y Polonia (Komputer 2086, cambiando el Joystick por un puerto paralelo), en caja negra o plateada.



TS 2048. Esta máquina de 1983 es un Spectrum con interface de Joystick y modos gráficos mejorados, llegando a 80 columnas para el CP/M. Solo se vendió en Portugal y Polonia.






miércoles, 26 de diciembre de 2012

El camino a los ordenadores personales: Cuatro años que marcaron la historia


Índices: El camino al O.P.       Historia de la Informática


Esta historia es muy rápida, nace en 1972 con el Intel 4004 y finaliza en 1976 con el Apple I, en estos escasos 4 años pasamos de no haber nada al alcance de cualquiera, a crearse una serie de máquinas que se vendían por millares, y en 1977 comienza la época de los ordenadores personales con máquinas que se venden por millones y entran el todos los hogares. Este es un breve repaso a la historia de esos 4 años.

Los ordenadores nacen sobre 1940 y su evolución fue bastante rápida de la mano de la evolución de la electrónica. Los ordenadores nacieron muy grandes, pero fueron reduciendo su tamaño paulatinamente conforme se hacían mas pequeños los componentes, de los tubos de vacío a los transistores, y luego cuando se empaquetaron varios transistores en un solo chip. Esto permitió el nacimiento del primer procesador en un solo chip de uso comercial.

Aunque en 1970 ya estaban disponibles chips como el AL1, una ULA de 4 bits enlazable en cadena para aumentar su capacidad de cálculo, y existía un chip para uso militar, el F14A de un propósito muy específico, no fue hasta que Busicom pidió a Intel un conjunto de chips para su nueva calculadora que nació el primer procesador comercial. Le habían solicitado el desarrollo de 12 chips para formar una máquina de 4 bits, pero Intel unió los relacionados con el procesador en uno solo, y así nació en 1972 el Intel 4004, que junto a 3 chips de apoyo hacían lo solicitado. La evolución fue muy rápida, y en un solo año salió el Intel 8008, que ampliaba a  8 bits su capacidad de proceso, y un año después el Intel 8080, el procesador que disponía de potencia suficiente para montar las primeras máquinas personales operativas.

Estos procesadores fueron los que marcaron el comienzo de la informática personal, ya que permitían montar un sistema con un precio reducido, aunque el primer intento de ordenador no usara estos chips sino que se montara con chips discretos, el Kenbak-1 de 1971, no fue muy popular pues se fabricaron solo 40 unidades, pero marcó una forma de interactuar muy sencilla con la máquina, usando interruptores y luces, que fue imitada por los primeros ordenadores de la época que usaban un Intel 8008 como procesador, el Micral de uso comercial y el SacState 8008, que no tuvieron gran venta pero si mucha influencia, crearon una gran espectación, al marcar que era posible el desarrollo de máquinas potentes y económicas.

En 1973 nacen varias máquinas importantes, dos de ellas de uso comercial, el Xerox Alto, que marcó el futuro de los interfaces gráficos de usuario y ratón, y el IBM SCAMP, que sería el que comenzó la línea que acabó en los IBM PC. La tercera fue el TV Typewriter, una maquina que hacía muy poco, pero que posibilitó que aparecieran las placas gráficas y poder interactuar con los ordenadores de forma sencilla.

En 1974 comienza a popularizarse la idea de un ordenador en las revistas de aficionados, el camino lo inicial el Mark-8, que marca un gran revuelo y posibilita el nacimiento del padre de los ordenadores personales, el Altair 8800, máquina que podemos decir es el primero ordenador personal popular de la historia, del que se vendieron miles de unidades. Junto a el se populariza el primer sistema operativo popular de la historia, el CP/M marcó un hito, se adaptó a miles de máquinas diferentes, y se vendió por millones de unidades.

En 1975 nace otros dos hitos importantes, el nacimiento del Microsoft Basic, que marcó el lenguaje mas común en los ordenadores posteriores, y fue el mas usado en todos los personales con un lenguaje incluido en ROM, junto al nacimiento del Homebrew Computer Club, una serie de personas que marcaron tendencias y popularizaron los ordenadores, intercambiando libremente información.

En 1974 nace el Motorola 6800, poco usado pero que fue el padre el 68000, el mejor procesador de 16 bits, pero en 1975 nacen dos procesadores que marcaron una época, una versión del 6800 muy económica, el MOS 6502 que se usó en algunas de las máquinas mas vendidas de la historia, y el rey de los 8 bits que fue el Zilog Z80, junto al CP/M marcaron una línea a seguir.

Todos estos hitos confluyeron en las últimas máquinas que prepararon el camino, el MOS Kim-1 y sobre todo el Apple I, ya que el siguiente año surgieron tres máquinas que marcaron el comienzo de la informática personal, en que ya no se necesitaba saber de electrónica para disponer de un ordenador en casa y comenzar a usarlo desde el primer momento. El año 1975 marca el comienzo de la informática personal con lo que se denominó la trinidad del 75:
  • El Apple II, basado en el Apple I y usando un MOS 6502, se mantuvo hasta los noventa, vendiéndose millones en todo el mundo.
  • El Commodore PET, basado en el Kim-1 y usando un MOS 6502, por temas comerciales luego se cambió su nombre a Commodore CBM.
  • El Tandy TRS-80, usando un Z80 y con mas de 250.000 unidades vendidas.


En el camino quedan máquinas como el Kentelec-8, primer ordenador español (solo se fabricaron 20), el Scelbi 8H que fue el primero en venderse en Kit, el MCM/70 fue el primer portable, el IMSAI 8080 fue el primer clónico de la historia, el Compucolor 8001 el primero en color, el Sphere 1 fuen el primero en integrar monitor y teclado. 

lunes, 24 de diciembre de 2012

El camino a los ordenadores personales: El Apple I


Índices: El camino al O.P.       Historia de la Informática


He querido dejar para el final la escritura de esta entrada, pues este fue el ordenador que marcó el final del camino, ya que comenzó la famosa trinidad de 1977, Apple II, Commodore PET y Tandy TRS-80, y a partir de aquí podemos hablar ya de la explosión de los ordenadores personales, que nos ha llevado a tener un ordenador en cada casa.

Comencemos por el principio, que es mucho antes de la propia máquina, con la historia de dos Stephen, Wozniak era brillante y un genio de la electrónica, Jobs estaba fascinado por la tecnología y arrastraba a todo el mundo con su arrolladora personalidad.

Stephen G. Wozniak (apodado Woz) nació en 1950 en California, creció a la vez que la industria de la electrónica en Silicon Valley, y estuvo interesado en la electrónica desde niño, ya que su padre era ingeniero electrónico. A los 13 años ganó el premio de la feria científica local por una sumadora y restadora. Su profesor de electrónica  reconoció el talento excepcional Woz, y organizó que pudiera acudir a una empresa local a aprender y trabajar una vez a la semana, allí conoció los ordenadores, ya que disponían de un DEC PDP-8, estudió sus manuales y soñó con poseer uno algún día. En 1971 Wozniak construyó su primer ordenador, junto con su gran amigo Bill Fernandez, usando el garaje de casa de Bill como taller, al que llamaron "Creme Soda Computer" (ordenador de crema de soda), por la cantidad de ellas que consumieron en su diseño y montaje. Se manejaba de forma similar al Altair, con luces e interruptores. Bill presentó a Woz a otro amigo suyo llamado Steven Jobs.

Stephen Jobs nació en 1955, fue un hijo adoptado por una familia humilde de trabajadores, pero al crecer en la cuna de la electrónica fue atrapado por ella. Jobs era un solitario, con un carácter impetuoso, muy ambicioso y con una inquebrantable confianza en sí mismo. Tenía la capacidad de transmitir sus ideas y su visión a los demás de forma arrebatadora, no tenía miedo de hablar con gente famosa, es conocido que necesitando piezas de recambio para su contador de frecuencias, llamó directamente a Bill Hewlett, presidente y co-fundador de HP.

John T. Draper, conocido como "Captain Crunch", sabía que la ATT usaba una frecuencia de 2600Hz para que sus operadores probaran las líneas, un amigo ciego, Joe Engressia (conocido como Joybubbles) le contó que un pequeño juguete que era distribuido con los cereales Cap'n Crunch emitía una frecuencia similar, por lo que modificó el aparato y construyó la primera caja azul.

(Fuente: macrumors.com)
Al conocerlo, Jobs ideó su primer negocio juntos, montaron unas cuantas y las vendieron a sus conocidos. En verano de 1973 Wozniak comenzó a trabajar en Hewlett-Packard, mientras que Jobs llevaba algún tiempo trabajando esporádicamente en Atari, que planeaba desarrollar una nueva máquina recreativa llamada "Breakout" (el Arkanoid es un descendiente suyo), y Jobs fanfarroneó en que podía diseñarla en sólo cuatro días, en Atari le ofrecieron 700$ mas una prima por usar pocos chips. Jobs embarcó a su amigo Woz, y trabajaron cuatro días y cuatro noches para tenerla lista, por lo que compartieron los 700$ prometido por ella (aunque Jobs se quedó con la prima el solo). Luego Atari decidió no usar el circuito, diseñando otro con componentes a los que tenían mas acceso. Esta experiencia les demostró que podían trabajar juntos en un proyecto difícil y tener éxito.

Cuando comenzaron las reuniones del Homebrew Computer Club, Wozniak comenzó a asistir a sus reuniones, lo que el mismo dijo que "fue una revelación y cambió su vida", ya que se reunía con personas que compartían su amor por las computadoras. Algunos trajeron sus Altair, que el no se lo podía permitir, y al ver que era similar a su viejo equipo, lo llevó a una reunión, pero murió nada mas encenderlo por problemas con la fuente. Poco después, MOS lanzó su nuevo chip por sólo 20$, en contra de los 400$ que costaba un Intel. Woz vio una gran oportunidad y decidió escribir una versión de BASIC para el MOS 6502, y tras terminarla, montó un ordenador en que hacerlo funcionar. Los miembros del Homebrew quedaron impresionados por el circuito de pruebas lleno de chips y cables de la máquina de Wozniak, con su interface de vídeo y su teclado incorporados, y Steve Jobs vio la oportunidad en esta máquina, a la que llamaron Apple, y convenció a Wozniak para montar una empresa en abril de 1976.

Prototipo del Apple I (fuente: old-computers.com)


Por obligación contractual con HP, Wos les ofreció primero a ellos la idea, pero la rechazaron al pensar que nadie querría un ordenador en casa, eso era cosa de profesionales. Los dos reunieron el dinero para fabricar los prototipos, para lo que Job vendió su viejo coche, y Wos su calculadora HP. Con el Apple I bajo el brazo, Jobs acudió a la universidad, donde tuvo mucho éxito de ventas, y luego acudió a la tienda Byte, propiedad de Paul Terrell, al que vendió 50 apple I. Obtuvieron un crédito, compraron los componentes y en 30 días tuvieron montadas las 50 unidades, trabajando en el garaje de los padres de Jobs.

Anuncio del Apple I (fuente: vintage-computer.com)

El aparato se vendía por 666'66$, usaba un procesador MOS 6502 a 1Mhz, con 4Kb o 8Kb de RAM y 1Kb de memoria de vídeo, una ROM de 256 bytes, salida de video capaz de ofrecer 24 líneas de 40 columnas en modo caracter monocromo, incluía el circuito de la fuente de alimentación, y disponía de salidas para monitor, teclado, casete y puerto de expansión, aparte se ofrecía un teclado opcional.

Mientras vendían placas del Apple I, Woz no paraba de introducir mejoras, que confluyeron en el Apple II, que lanzó a la pareja al estrellato, les hizo mutimillonarios, y colocó un ordenador en cada casa (o en muchas de ellas, pues se vendieron millones), pero esto ya es otra historia.

domingo, 23 de diciembre de 2012

El camino a los ordenadores personales: Otras máquinas de 1976



Índices: El camino al O.P.       Historia de la Informática


Esta serie de máquinas salieron al mercado en 1976, aprovechando el tirón del resto de máquinas, aunque no tuvieron mucha influencia en el mercado al venderse minoritariamente:


Fuente: chookfest.net

Z1, de Cromemco

En la caja de un IMSAI 8080, con una placa de 22 ranuras de expansión para el Bus S-100 y una fuente, la empresa Cromemco montó su sistema personal usando un Zilog Z80 a 4Mhz en lugar de un Intel 8080, con 8Kb de RAM, 8Kb con una ROM propia que incluía un intérprete de Basic, un puerto serie para un terminal estándar de 24x80. En su gama profesional presento sus System 0, System I y System III, máquinas con un Z80 y 64Kb de memoria. Al año siguiente presentó el Z2, en una caja nueva sin botones ni luces en el frontal.

Un sistema completo

POLY 88, de Polymorphic Systems

Inicialmente se llamó MiniAltair, pero MITS les obligó a cambiar de nombre. Usaba una placa base con el 8080, 512 bytes de RAM, ampliables a 8Kb, 1Kb de ROM, interface de vídeo, manejador del teclado, puerto serie y de casete, y solo 3 ranuras de expansión S-100, sin luces ni interruptores en el frontal. Se vendía con o sin un monitor y un teclado, tanto en Kit como montado, desde 595$.

Fuente: OldComputers

MCM/800, de MCM COMPUTERS (Canadá)

El sucesor del MCM/70 de 1974, que fue el primer ordenador que podemos considerar portable, fue esta máquina que mantenía las mismas características que su predecesor, usando un Intel 8008 mas rápido, aumentando la memoria hasta 16Kb, cambiando la carcasa, mejorando el teclado, y añadiendo la posibilidad de conectar un monitor externo.

Fotografía publicitaria

HP 9825, de Hewlett Packard

Esta fue la máquina de transición entre las anteriores calculadora de sobremesa programables y los posteriores ordenadores HP-85. Incluía una CPU propia de HP con chips TTL denominada 5061, un coprocesador matemático, 8 Kb de RAM ampliables a 32 KB, una ROM en 8Kb, ampliables hasta 32Kb, con una versión de un lenguaje similar al Basic denominada HPL, un teclado completo de perfil bajo, que en el modelo  9825A se cambió a uno estándar, una impresora térmica de 16 columnas y un display LED de una línea de 32 caracteres, además un unidad de cintas QIC DC-100.

Un sistema completo

Vector 1, de Vector Graphics Inc.

Otro clon del ALTAIR 8800 con un Intel 8080A y bus S-100. Para reducir costes el frontal no disponía de luces ni interruptores, en su lugar disponía de un monitor en ROM y un puerto serie para conectarse a un terminal estándar. Ver esta entrada mas completa

sábado, 22 de diciembre de 2012

El camino a los ordenadores personales: Entrenadores



Índices: El camino al O.P.       Historia de la Informática


Esta serie de máquinas se vendían para introducir a los ingenieros en el uso de los nuevos procesadores, o directamente para la formación, por lo que tuvieron poca influencia en el mercado en general, salvo el KIM-1 que si se vendió como un ordenador y fue la base de los Commodore PET, el resto fueron poco vendidas o poco conocidas, no habiendo demasiada información de las mismas:

1975

Unidad montada por Jeffrey R. Owen

TIM, de MOS Technology

El TIM (Terminal Interface Monitor) fue un sistema de desarrollo para el MOS 6502, anterior al KIM-1, pero del tipo "hágalo usted mismo", desarrollados ambos por MOS Technology. Cuando un aficionado a estos equipos encargaba uno, recibía una ROM de 1K MCS6530-004, con el programa monitor TIM, y un manual de 15 hojas con los esquemas, incluyendo el listado fuente del monitor. El propio aficionado debía conseguir los otros componentes, incluyendo el procesador, RAM y chips de apoyo, montarlo en una placa de circuito y poner en marcha su sistema.

Anuncio en BYTE

JOLT, de Microcomputer Associates Inc.

En diciembre de 1975, la revista Byte publicó un artículo de dos páginas sobre el "sistema de ordenador de más bajo costo del mundo". El Jolt (sacudida en inglés) fue la primera máquina basada en un MOS 6502 no diseñada por MOS en salir al mercado. El equipo se podía comprar en kit por 249$ o montado por 348$, junto a algunos complementos como una placa de 4Kb de RAM por 265$, una placa de entrada/salida por 96$, y una fuente de alimentación por 145$. Es conocido por jugar un papel importante en el desarrollo de los prototipos de la consola Atari 2600 VCS, que se realizó usando las placas del Jolt. El Jolt fue diseñado y desarrollado por Raymond M. Holt, mientras el software del monitor incluido lo fue por Manny Lemas, ambos fueron co-fundadores de Microcomputer Associates. Holt estuvo en el equipo que desarrolló el primer chip microprocesador, el usado en el F-14 Tomcat, pero hasta 1990 era secreto militar y no salió a la luz. Luego diseñó el SYM-1, un clon del KIM-1. Manny Lemas escribió el programa DEMON (Depurador / Monitor) para MOS Technology, el usado en los TIM y KIM-1, y dieron autorización para usarlo en el Jolt, que uso una versión modificada en su máquina. Se calcula que se vendieron unas 5.000 unidades en total de esta máquina.

1976


Fuente: OldComputers

KIM-1, de MOS Technology

Tengo otra entrada para esta máquina. Fue una de las mas vendidas del momento, pues unía todo lo necesario en una sola placa, procesador MOS 6502, 1'1Kb de memoria RAM, un programa monitor en ROM (el TIM), lo que unido a poseer un teclado hexadecimal y 6 displays LED de un carácter, permitían introducir programas y ver el contenido de la memoria. También disponía de posibilidad de expansión, por lo que salieron al mercado varias expansiones, y de un sistema básico se podía llegar a un sistema muy completo.

Fuente: OldComputers

ET-3400, de HEATHKIT

Entrenador con un Motorola 6800, 256Kb de RAM y un monitor en ROM. Fue muy popular en las universidades, ya que disponía de un área para montar prototipos. Se vendía en kit sobre los 200$, o ya montado. Utilizando las especificaciones en el manual era muy sencillo construir una ampliación de RAM casera muy económica. Junto a el, Heathkit vendía tres cursos educativos, EE-3401 sobre microprocesadores, EE-3402 de interconexión con microprocesadores, y el EE-3405 sobre aplicaciones de los microprocesadores.

Fuente: OldComputers

IA-7301, de IASIS Inc.

Llamado "El computador en un libro", era un entrenador basado en el Intel 8080, con 1Kb de RAM, 1Kb de ROM con un programa monitor, dos puertos de entrada/salida, conector para un casete estándar, teclado hexadecimal y 8 displays de un carácter. Se suministra junto a una carpeta de anillas con un curso de programación 250 páginas, pero sin fuente de alimentación, el usuario debía adquirirla aparte. Los programas se podían almacenar en un casete, y existía una tarjeta de expansión opcional para poder aumentar el tamaño de la memoria y conectar tarjetas de extensión.

Fuente: OldComputers

IntroKit, de National Semiconductor

Era un equipo muy asequible, ya que usaba muy pocos componentes, sobre la base del procesador National SC/MP, el procesador mas económico del momento, añadía una ROM de 512 bytes con el programa monitor, 256 bytes de RAM, y conexión serie para entrada/salida. Había que añadir siempre una fuente de alimentación con voltaje dual, y National ofrecía también un kit de visualización con una calculadora modificado para hacer de teclado y la pantalla. Se podían conectar entre sí varios de estos kits, ya que el SC/MP permitía liberar los buses para montar sistemas multiprocesador, cosa que lo admitían las otras CPU del momento. Chris Curry uso una IntroKit como punto de partida para diseñar el MK-14, primer ordenador de la Sinclair.

Fuente: OldComputers

TK-80 (Training Kit 80), de NEC

Está considerado como primer ordenador personal japonés, usaba un Intel 8080A, 512 bytes de RAM, una ROM de 2Kb, teclado hexadecimal de 25 teclas, y 8 displays de un carácter. Estaba dirigido a los técnicos, pero tuvo gran éxito entre los aficionados. Se vendía normalmente en Kit. La versión TK-80E era de menor coste, usando variantes en encapsulado plástico de los chips, en lugar de los habituales cerámicos de esa época. El TK-80BS (Basic Station, estación base)se componía de una TK-80, una ROM con una versión del BASIC, 7Kb de RAM y un teclado alfanumérico. El Compo BS/80 era un TK-80BS en una bonita caja de plástico. El TK-80 se utilizó como base para las computadora de NEC de la serie PC-8001, PC-8801 y PC-9801 .

Fuente: OldComputers

Cosmac Microtutor, de RCA

El Microtutor estaba diseñado para entrenamiento de ingenieros en los procesadores de RCA. La unidad solo necesitaba un alimentador de 9-voltios para funcionar. Todos los chips están etiquetados en la placa para su perfecta identificación. Disponía de 3 ranuras para tarjetas, llamadas M, P y E. La ranura P era para el Procesador, lo que permitía usar tarjetas con distintos procesadores, aunque inicialmente usaba un RCA CDP1801, y posteriormente una CDP1802 . La ranura M era para la memoria, se insertaba una tarjeta de 256bytes. La ranura E es para la expansión, que permite tarjetas personalizadas para controlar dispositivos. En la placa base están la fuente, chips de soporte, cuatro interruptores de control y ocho conmutadores para introducir datos, y dos displays de un carácter. En 1977, RCA lanzó el Microtutor II, eliminado la ranura P e incluyendo directamente un RCA CDP-1802 en la placa principal.

Fuente: OldComputers

AIM 65, de Rockwell

Este equipo es una versión del KIM-1, diseñado como sistema de desarrollo para las versiones licencias por Rockwell del MOS 6502. Disponía de una pantalla LED de una línea de 20 caracteres, y una pequeña impresora térmica, en una carcasa con un teclado alfabético completo, lo que lo convertían mas en un ordenador que en un entrenador. La placa contaba con 4Kb de RAM, ampliables hasta 32Kb, y 5 conectores para enchufar ROM de 4Kb, dos de ellos estaban dedicados al programa monitor interno de supervisión, incluyendo un ensamblador de entrada instantánea (sin etiquetas) y un desensamblador. En las tres restantes se podían añadir varios lenguajes de programación, como un BASIC con capacidad para punto flotante, una versión interpretada del Pascal llamada Instant Pascal, un ensamblador completo, el lenguaje FORTH o el PL/65, una mezcla entre el Algol y el PL/1. Los usuarios podían añadir también sus propias aplicaciones personalizadas en estas ROM.

Equipo de Steve Perry

LCM-1001, de Texas Instruments

Entrenador desarrollado por TI para sus procesadores de 4 bits, pero poco mas se sabe de ellos, salvo su pecio, unos 280$. Disponía de dos placas,  una con cuatro chips NAND 74279, y otra con un procesador SPB0400 de 4-bit, que fue el primer procesador VLSI que se fabricó. Se programaba usando varios interruptores y presentaba los resultados con diodos LED.